Encodage H.264 - CPU vs GPU : Nvidia CUDA, AMD Stream, Intel MediaSDK et x264 en test

Publié le 28/04/2011 par
Imprimer

Mesurer la qualité : PSRN, SSIM et leurs travers
Nous avons l'habitude sur hardware.fr d'essayer d'utiliser les tests les plus objectifs possibles. Il est assez facile de déterminer un niveau de performance quand le résultat est facilement mesurable (un temps d'execution pour une tâche donnée par exemple). Dans le cadre de la vidéo, la question de l'objectivité en matière de qualité vidéo est malheureusement très… subjective. Le vrai critère objectif est la qualité visuelle de la vidéo perçue par l'œil humain. Quelque chose que, malheureusement, on ne peut pas mesurer et quantifier autrement que par des tests humains.

Au fil des années, plusieurs outils ont été développés pour tenter de comparer la qualité d'une vidéo par rapport à une autre. Le concept de base reste toujours le même, on compare, une par une, une image de la vidéo compressée à l'image de la vidéo source. On obtient ainsi une série de valeurs, pour chacune des images qui composent la vidéo.

La métrique classique utilisée pour comparer deux images est le PSNR  qui tente de déterminer le niveau de distortion d'une image compressée par rapport à sa source. Surtout utilisée pour juger les formats de compression d'images fixes, le PSNR est considéré comme une mesure très indicative qui dépend grandement du format de compression choisi ou des particularités de l'encodeur. L'autre métrique utilisée est baptisée SSIM  et tente de déterminer la similarité structurelle des images, avec pour but d'être un peu plus réaliste que le PSNR.

Si en pratique SSIM est un meilleur indicateur de la qualité des images, le problème reste relativement complexe tant la perception humaine de la vision est difficile à mesurer pour un algorithme. Notre œil est par exemple instinctivement attiré sur les visages. Dès lors, l'œil humain préfèrera une image dont le visage est net mais qui peut être infidèle sur le reste de l'écran (et qui aurait un PSNR bas), par rapport à une image dont la qualité est plus homogène sur toute sa surface avec un visage globalement moins net (mais un PSNR ironiquement plus haut !).

S'ajoute à cette problématique le fait que comme pour toute métrique dont l'algorithme est connu, il est très facile d'optimiser son encodeur pour l'une d'entre elle au détriment de la qualité globale de la vidéo. L'encodeur x264 illustre assez bien ce problème en proposant, au milieu de ses options qui permettent d'optimiser l'encodeur pour un film ou un anime, d'optimiser l'encodage pour obtenir les valeurs les plus hautes possibles de PSNR et de SSIM ! Voici un petit exemple de ce que cela peut donner sur une scène du film Inception, nous avons calculé les valeurs moyennes de PSNR et SSIM avec quatre optimisations différentes de x264 (aucune, Film, PSNR, SSIM). Notez pour la suite que les valeurs de PSNR s'expriment en dB (plus il est élevé et meilleur est le ratio signal/bruit), tandis que le SSIM est une valeur entre 0 et 1 qui indique la corrélation par rapport à la source, 1 indiquant une correlation parfaite.


Tenter d'optimiser pour un algorithme ne marche pas toujours en fonction de la scène. La scène choisie ici est remplie d'explosions et l'optimisation PSNR obtient les plus bas scores. La version optimisée SSIM semble donc la meilleure, elle obtient les deux meilleurs scores en SSIM et en PSNR. Vrai en image ? Voyons ce que cela donne sur une image fixe tirée de chaque vidéo :



[ No Tune ]  [ Film ]  [ PSNR ]  [ SSIM ]
Passez la souris/cliquez sur les liens pour faire apparaitre l'image correspondante. Inception, Warner Bros


Commençons par le plus évident, sur la version PSNR, peu de choses vont. Des parties entières du visage sont floues et le dégradé sur la droite est empli de blocs. La version SSIM est elle supérieure à la version Film ? Non. Les sourcils sont plus nets sur la version Film, et le visage conserve plus de détails. Pourquoi alors un score plus bas alors que la version SSIM est légèrement plus floue ? A cause d'un dernier paramètre qui rend encore plus complexe les comparaisons PSNR et SSIM, les optimisations psycho visuelles qui tentent de conserver un maximum de détails dans les zones intéressantes. Une optimisation qui se distingue sur une image fixe mais qui se reconnait nettement une fois les images animées : la vidéo conserve tout simplement plus de détails, et ce qui peut ressembler à des artefacts sur une image fixe (pour PSNR et SSIM) apportent un bond en avant en matière de qualité, au détriment de notes plus basses.

Pour toutes ces raisons, si nous donnerons par la suite des résultats SSIM/PSNR de divers encodeurs, ces valeurs ne peuvent être considérées comme absolues !
Vos réactions

Top articles