Releases: halidecx/fcvvdp
Release list
0.3.3
- 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
- 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
- Force
zig buildto 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
mcosdisplay model
Full Changelog: 0.3.0...0.3.1
0.3.0
- NEON on ARM via
cvvdp_neon.h - AVX2 on x86-64 via
cvvdp_avx2.h - Scalar fallbacks in
cvvdp_c.h cvvdp_createnow sets*out_c = NULLand usescvvdp_destroy(c)on early failures so the thread pool is released along with any partial allocationscvvdp_temporal_filter_initnow 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
- Utilize allyourcodebase/libspng for PNG decoding instead of relying on system
- Add many new display modes, documented in doc/cvvdp.md
- Update copyright
Full Changelog: 0.2.3...0.2.4
0.2.3
- Fix help menu to print all options (prev wasn't printing
-t/--threads)
Full Changelog: 0.2.2...0.2.3
0.2.2
- 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
- Default to using system zlib instead of zlib-rs, with flag
-Dlibz-rs=trueto 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
- 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 Linuxfcvvdp.xz: ARM macOS
0.1.1
- 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