fmetrics es una biblioteca y herramienta de línea de comandos publicada por Halide Compression que implementa de forma rápida varias métricas de calidad perceptual aplicadas a imágenes y vídeos. Está escrita en C y en Zig, se compila con Zig 0.16 o superior y funciona en macOS, Linux y sistemas tipo Unix. Ofrece cinco métricas: IW-SSIM, MS-SSIM, SSIMULACRA2, Butteraugli y CVVDP, y acepta archivos PNG sRGB, PNM/PAM, QOI o Y4M como entrada. Algunas métricas, además, generan mapas visuales de error.
La compilación se realiza con zig build --release=fast, con banderas opcionales para LTO y stripping, y produce un binario (fmetrics), una cabecera C (fmetrics.h) y una librería estática (libfmetrics.a). La cabecera expone una API en C pensada para ser enlazada desde cualquier proyecto, mientras que los proyectos en Zig pueden importarla como módulo nativo.
Las pruebas comparan cada implementación de fmetrics con una referencia reconocida: libjxl para Butteraugli, fcvvdp para CVVDP, un fork de IW-SSIM, el filtro MS-SSIM de libvmaf mediante ffmpeg y ssimulacra2 de Cloudinary. Evaluadas sobre el conjunto CID22 con imágenes PAM 3840×2160, la mayoría de las métricas igualan o se acercan al coeficiente de correlación de Spearman de la referencia, con diferencias dentro del ±3 %. En rendimiento, medido en un Core i7-13700K, fmetrics es entre un 211 % y un 1225 % más rápida que las referencias y reduce el consumo de memoria entre un 31 % y un 79 %. El proyecto se distribuye bajo licencia Apache 2.0.
