Quando si confrontano due codifiche dello stesso video, la valutazione a occhio è indispensabile ma ha due problemi: è lenta e cambia da persona a persona, e perfino nella stessa persona a seconda dello schermo e della stanchezza. Le metriche oggettive permettono di dare un numero alla qualità e di confrontare in modo ripetibile encoder, preset e bitrate. Usate con criterio, sono uno strumento prezioso; usate alla cieca, possono portare a conclusioni sbagliate.
Metriche con riferimento
Le metriche più usate sono con riferimento completo: confrontano il video compresso con l'originale non compresso, fotogramma per fotogramma. Funzionano quindi solo quando si possiede la sorgente, come nella preparazione di contenuti per lo streaming o nella scelta delle impostazioni di un encoder.
PSNR
Il Peak Signal-to-Noise Ratio misura la differenza numerica tra i pixel dell'originale e quelli del video compresso, espressa in decibel. Più il valore è alto, più i due video sono simili.
Pregi: - semplice e velocissimo da calcolare; - utile per confrontare impostazioni dello stesso encoder sullo stesso contenuto.
Limiti: - non tiene conto di come funziona la visione umana: un leggero spostamento dell'intera immagine abbassa molto il PSNR anche se l'occhio non vede differenze; - penalizza allo stesso modo errori visibili e invisibili; - alcuni encoder, se ottimizzati per il PSNR, producono immagini più morbide che l'occhio giudica peggiori.
SSIM
Lo Structural Similarity Index confronta luminosità, contrasto e struttura di piccole zone dell'immagine. Il risultato va da 0 a 1, dove 1 significa identità. È più vicino alla percezione umana del PSNR, perché dà importanza alla conservazione di bordi e trame più che alla differenza esatta dei singoli pixel.
Esiste anche una variante multiscala, MS-SSIM, che valuta l'immagine a più risoluzioni e si comporta meglio su contenuti con dettagli di dimensioni diverse.
VMAF
VMAF (Video Multimethod Assessment Fusion) è stato sviluppato da Netflix e rilasciato come software open source. Invece di una sola formula, combina più metriche elementari attraverso un modello di apprendimento automatico, addestrato su valutazioni date da spettatori reali. Il risultato è un punteggio da 0 a 100.
Pregi: - buona correlazione con il giudizio umano su molti tipi di contenuto; - tiene conto anche di aspetti temporali; - esistono modelli diversi per diverse condizioni di visione, per esempio televisore in salotto o telefono.
Limiti: - è più lento da calcolare; - è stato addestrato su determinati tipi di contenuto e di difetti, e può essere meno affidabile in casi diversi, come animazione molto particolare o artefatti insoliti; - può essere «ingannato» da filtri di nitidezza che alzano il punteggio senza migliorare davvero l'immagine.
Calcolare le metriche con FFmpeg
FFmpeg include filtri per tutte e tre le metriche. Il primo ingresso è il video da valutare, il secondo il riferimento:
ffmpeg -i codificato.mp4 -i originale.mov -lavfi "[0:v][1:v]psnr" -f null -
ffmpeg -i codificato.mp4 -i originale.mov -lavfi "[0:v][1:v]ssim" -f null -
ffmpeg -i codificato.mp4 -i originale.mov -lavfi "[0:v][1:v]libvmaf" -f null -
Il filtro libvmaf è disponibile solo se FFmpeg è stato compilato con la libreria corrispondente.
Le condizioni da rispettare
Perché il confronto abbia senso:
- i due video devono avere la stessa risoluzione: se il codificato è a 720p e l'originale a 1080p, va prima riportato alla risoluzione di visione;
- devono essere allineati nel tempo, fotogramma per fotogramma; un solo fotogramma di sfasamento falsa tutto;
- devono avere lo stesso frame rate e, idealmente, lo stesso formato dei pixel.
Interpretare i risultati
- Guardate la media, ma anche i minimi. Un punteggio medio alto può nascondere pochi secondi molto degradati, e sono proprio quelli che lo spettatore ricorda.
- Confrontate sullo stesso contenuto. Un VMAF di 90 su un cartone animato e uno di 90 su una partita non indicano la stessa esperienza.
- Considerate le differenze piccole come non significative. Uno o due punti di VMAF raramente sono percepibili.
- Usate le metriche per ridurre le opzioni, l'occhio per decidere. Le metriche servono a scartare le impostazioni chiaramente peggiori; la scelta finale va verificata guardando i passaggi più difficili.
Un uso tipico
Supponiamo di voler scegliere tra due preset di un encoder. Si codifica lo stesso estratto con entrambi a diversi bitrate, si calcola il VMAF di ogni versione e si traccia la curva qualità-bitrate. Se un preset raggiunge lo stesso punteggio con il 15% di bitrate in meno, la scelta è evidente; se le curve si sovrappongono, conviene il preset più veloce.
In sintesi
- Le metriche con riferimento confrontano il video compresso con l'originale.
- Il PSNR è semplice ma lontano dalla percezione umana.
- SSIM valuta la struttura dell'immagine ed è più realistico.
- VMAF combina più metriche con un modello addestrato su giudizi reali.
- Allineate risoluzione e tempi, guardate i minimi e confermate sempre a occhio.