TL;DR
Halide Compression published fcvvdp, a C implementation of the Cambridge CVVDP perceptual quality metric, with a reported large reduction in memory and CPU use versus the existing cvvdp tool. Benchmarks on a Core i7-13700k/Linux system show fcvvdp using far less RAM and CPU cycles and completing the same test run almost 18% faster, though it currently runs single-threaded.
What happened
A new implementation named fcvvdp provides a C-language port of the CVVDP perceptual quality metric described in the University of Cambridge work. The code is hosted in a public GitHub repository and published under the Apache 2.0 license. Maintainers provide both a standalone binary and a library build; building requires zlib-rs, libunwind and Zig 0.15.x, and the build instructions use zig build –release=fast (with an optional -Dflto=true flag). The project was benchmarked on Linux using the poop tool on a Core i7-13700k. In that comparison, the original cvvdp run reported a mean wall time of 19.6s and peak RSS around 1.00GB; the fcvvdp run measured 16.1s wall time with peak RSS ≈86.7MB. The repository credits Vship as an upstream implementation and lists contributors and language breakdowns (C and Zig).
Why it matters
- Significant reductions in RAM and CPU cycles lower resource costs for perceptual quality analysis.
- A lightweight, fast implementation can be integrated into automated image/video testing or CI pipelines more easily.
- Open-source Apache‑2.0 licensing enables reuse and incorporation into other projects.
- Current single-threaded operation may limit throughput on multi-core servers until multithreading is added.
Key facts
- Project name: fcvvdp; implements the CVVDP perceptual quality metric.
- Repository: halidecx/fcvvdp on GitHub, release 0.0.1 present.
- Benchmark platform: Linux, Core i7-13700k, benchmarked with the poop tool.
- Comparison results: cvvdp mean wall time 19.6s vs fcvvdp 16.1s (~17.9% faster for fcvvdp).
- Memory: peak RSS reported ~1.00GB for cvvdp vs ~86.7MB for fcvvdp (≈91% reduction).
- CPU cycles: 747G for cvvdp vs 82.8G for fcvvdp (≈88.9% fewer cycles reported).
- Build requirements: zlib-rs, libunwind, Zig 0.15.x; build command: zig build –release=fast (optionally -Dflto=true).
- Binary output path: zig-out/bin/; library output: zig-out/lib/ with cvvdp.h in zig-out/include/.
- License: Apache 2.0; implementation derived in part from Vship (MIT licensed).
- Languages used in repo: C (~83.3%) and Zig (~16.7%); stars: 25, forks: 2.
What to watch next
- Addition of multithreading support to fcvvdp (fcvvdp currently runs single-threaded in the provided benchmark).
- Further benchmark variety across different CPUs, platforms and workloads: not confirmed in the source.
- Wider adoption or integration by other tools and projects: not confirmed in the source.
Quick glossary
- CVVDP: A perceptual video/image quality metric originating from academic work at the University of Cambridge.
- Wall clock time: Elapsed real-world time from start to finish of a process, as perceived by the user.
- CPU cycles: A measure of processor work used by a program; lower cycles generally indicate less CPU effort.
- Apache 2.0: A permissive open-source software license that allows copying, modification and distribution with attribution.
- Zig: A general-purpose programming language used here to build the project artifacts.
Reader FAQ
What is fcvvdp?
A C implementation of the CVVDP perceptual quality metric published by Halide Compression.
How do I build the project?
Install zlib-rs, libunwind and Zig 0.15.x, then run zig build –release=fast (add -Dflto=true for FLTO).
Is fcvvdp multi-threaded?
No — the provided benchmark ran fcvvdp single-threaded while cvvdp used multiple threads; multithreading is not yet supported.
Under what license is fcvvdp released?
The repository is released under the Apache 2.0 license.
Does fcvvdp support Windows or other OSes?
not confirmed in the source
fcvvdp A fast C implementation of the CVVDP metric (arXiv) from the University of Cambridge. More information about how CVVDP works according to this implementation is provided here. Benchmarks Benchmarked…
Sources
- Fast CVVDP implementation in C
- KPMI 2006-2016 FLHX Street Glide Harley Davidson …
- Releases · halide/Halide
- Halide @ CVPR 2015
Related posts
- Valve retires Steam Deck LCD to reshape its hardware pricing
- How Mega-Codebases Produce Massive ELF Binaries and the 2GiB Relocation Barrier
- Z80-μLM: Conversational AI Shrunk to a 40KB CP/M .COM Binary