# Optimisation débit-distorsion

L'optimisation débit-distorsion ou RDO pour (en) Rate-distortion optimization est une méthode utilisée dans la compression vidéo afin d'augmenter la qualité de la vidéo. Le nom se réfère à un calcul d'optimisation entre le niveau de distorsion (perte de qualité) et la quantité de données nécessaire pour encoder une vidéo, le débit qui est lié à la taille d'un flux compressé. Bien qu'elle soit principalement utilisée par les encodeurs vidéo, cette technique peut être utilisée pour améliorer la qualité dans d'autres domaines de compression (image, vidéo, audio) car la décision d'optimisation entre qualité et débit est la même, seuls les paramètres de réglage changent et doivent s'adapter au contexte car si on favorise l'un des deux, l'autre sera dégradé.

## Contexte

Pour un encodeur vidéo, la méthode classique de prise de décision est de choisir le résultat qui donne la meilleure qualité d'image de sortie. Cependant, ce choix a un défaut puisqu'il requiert beaucoup plus de bits d'encodage alors que souvent l'amélioration de la qualité est faible. Un exemple commun de ce problème est utilisé dans l'estimation de mouvement avec une précision au quart de pixel, qui est une étape d'encodage présente dans les normes de codage vidéo MPEG-2 et H264. En améliorant la précision du mouvement d'un macrobloc durant l'estimation de mouvement, cela pourrait accroître la qualité mais dans certains cas, elle n'apporte pas assez en comparaison au nombre de bits supplémentaires qu'il faudra encoder et qui correspond à un vecteur de mouvement plus précis.

## Fonctionnement

L'optimisation débit-distorsion permet de résoudre le problème susmentionné en agissant sur la mesure de la qualité vidéo et en optimisant à la fois la distorsion à partir des images sources et le coût en bit du macrobloc encodé, avant chaque prise de décision d'encodage. Les bits sont mesurés mathématiquement en multipliant le débit par un multiplicateur de Lagrange, une valeur représentant la relation entre le débit et la qualité pour un niveau de qualité particulier. La différence de qualité entre l'image d'origine et l'image encodée est souvent définie par l'erreur quadratique moyenne dans le but de maximiser le PSNR qui est une référence en tant que mesure de la qualité vidéo.
Le calcul du coût binaire est réalisé d'une façon plus complexe par les encodeurs entropiques dans les codecs vidéo modernes car pour réaliser le RDO, il est nécessaire que chaque bloc de la vidéo soit testé par le codeur entropique dans le but d'établir son coût en bit réel qui est en général différent du coût final. Dans les codecs MPEG, le processus d'encodage est composé d'une transformée en cosinus discrète, suivie d'une quantification et d'un codage entropique. À cause de ceci, l'optimisation débit-distorsion est beaucoup plus lente que les autres systèmes de mesure de block-matching, tels que la somme des différences absolues (SAD) et la somme des différences absolues transformées (SATD). C'est pourquoi elle est généralement plus adaptée pour la prise de décision dans les étapes finales du processus d'estimation de mouvement et de compensation de mouvement, telle que le choix de mode de partitionnement d'un macrobloc dans H264.

## Liste des encodeurs supportant le RDO

* L'encodeur H264 ATEME
* Les encodeurs ViBE de Thomson Video Networks (SD & HD MPEG-2/MPEG-4)
* L'encodeur Harmonic Electra 8000 (SD & HD MPEG-2/MPEG-4)
* libavcodec
* L'encodeur H.264 de MainConcept
* L'encodeur VC-1 de Microsoft
* L'encodeur SD MPEG-2 EN8100 de TANDBERG Television
* L'encodeur HD MPEG-4 EN8190 de TANDBERG Televisio
* L'encodeur SD & HD MPEG-4 iPlex de TANDBERG Television
* L'encodeur Theora 1.1-alpha1 et plus tard (la branche Thusnelda)
* L'encodeur H.264 x264
* L'encodeur MPEG-4 ASP Xvid
* L'encodeur JPEG 2000