Skip to content

Releases: halidecx/fcvvdp

0.3.3

Choose a tag to compare

@gianni-rosato gianni-rosato released this 13 Jul 20:06
5b02be6
  • Pixel-major CSF weighting + fast log10 approximation, ~20% faster

Note: scores will be slightly different, but their meaning isn't deeply affected. Here's the updated MOS correlation:

Metric 0.3.2 0.3.3 Diff
KRCC 0.6319 0.6333 +0.0014
SRCC 0.8274 0.8287 +0.0013
PCC 0.8221 0.8229 +0.0008

This is technically an improvement, but it isn't big enough to register.

Full Changelog: 0.3.1...0.3.2

0.3.2

Choose a tag to compare

@gianni-rosato gianni-rosato released this 09 Jul 00:48
4868e86
  • Runtime SIMD dispatch for x86-64 systems, which falls back to scalar C if the host doesn't have FMA or AVX2.

Full Changelog: 0.3.1...0.3.2

0.3.1

Choose a tag to compare

@gianni-rosato gianni-rosato released this 22 Jun 02:21
80bdbea
  • Force zig build to use the LLVM backend at all times, as it fails with the native backend
  • Use mathematically correct sRGB transfer curve instead of approximation; encoder slows slightly (~3-4%), but it is worth it for correctness.
  • Add new mcos display model

Full Changelog: 0.3.0...0.3.1

0.3.0

Choose a tag to compare

@gianni-rosato gianni-rosato released this 22 May 01:44
42bc00e
  • NEON on ARM via cvvdp_neon.h
  • AVX2 on x86-64 via cvvdp_avx2.h
  • Scalar fallbacks in cvvdp_c.h
  • cvvdp_create now sets *out_c = NULL and uses cvvdp_destroy(c) on early failures so the thread pool is released along with any partial allocations
  • cvvdp_temporal_filter_init now nulls freed kernel pointers on partial allocation failure so destructor-based cleanup is safe
  • remove duplicated CVVDP_GAUSSIAN_SIZE

SIMD changes are visible via #14, resulting in up to 51% better performance on x86-64 and up to 33% on ARM. User+sys time improves by up to 58% on both.

Note: fcvvdp is configured to use AVX2 on every x86-64 machine, meaning some ≤3% of x86-64 users may see compilation errors on hardware from before Haswell (2013). Other architectures fall back to C (hence the README benchmark remaining the same). If you are affected, please report it.

Full Changelog: 0.2.4...0.3.0

0.2.4

Choose a tag to compare

@gianni-rosato gianni-rosato released this 08 May 00:01
e95f5cc

Full Changelog: 0.2.3...0.2.4

0.2.3

Choose a tag to compare

@gianni-rosato gianni-rosato released this 23 Apr 20:34
36ae8d2
  • Fix help menu to print all options (prev wasn't printing -t/--threads)

Full Changelog: 0.2.2...0.2.3

0.2.2

Choose a tag to compare

@gianni-rosato gianni-rosato released this 22 Apr 23:26
046b1c8
  • Update to Zig 0.16
  • More accurately requantize 10-bit inputs to 8-bit

Full Changelog: 0.2.1...0.2.2

0.2.1

Choose a tag to compare

@gianni-rosato gianni-rosato released this 12 Mar 21:00
52a3f05
  • Default to using system zlib instead of zlib-rs, with flag -Dlibz-rs=true to toggle zlib-rs. Users complained that zlib-rs was relatively inaccessible for most people, and building with system zlib reduces a lot of friction.

Full Changelog: 0.2.0...0.2.1

0.2.0

Choose a tag to compare

@gianni-rosato gianni-rosato released this 11 Mar 23:15
d7bc126
  • Task threading for video inputs (#8)
  • Memory usage optimizations (#9)
  • FFmpeg patch (applies on FFmpeg n8.0)

Testing on 8-bit 360p Y4M inputs, fcvvdp runs a bit over 50fps on a Core i7-13700k test machine. At 1080p, this is reduced to ~7fps.

Full Changelog: 0.1.1...0.2.0

Binaries:

  • fcvvdp.zst: x86-64-v3 Linux
  • fcvvdp.xz: ARM macOS

0.1.1

Choose a tag to compare

@gianni-rosato gianni-rosato released this 21 Feb 18:50
18db09e
  • fix: temporal filtering bug (thanks @Line-fr for the heads-up!)
  • fix: add newline before help print
  • style: colors in help print for format string (similar to fssimu2)

Full Changelog: 0.1.0...0.1.1