Le codage vidéo a pour objectif premier de réduire le nombre de bits nécessaires à la représentation d’une séquence vidéo afin de faciliter son stockage ou sa transmission. Ce codage est dit sans perte lorsque le décodage de la séquence encodée produit une séquence vidéo identique à la séquence originale. Ce type de codage a pour avantage de préserver la qualité vidéo, cependant il atteint des taux de compression relativement faibles. Par exemple, une séquence encodée avec un encodeur HEVC configuré en mode sans perte sera seulement environ deux fois plus petite que la séquence originale selon Choi et Ho (2013). Malgré sa faible efficacité de codage (compression), ce type de codage est tout de même employé par certains types d’applications où la qualité vidéo est cruciale, par exemple, pour des applications médicales.
Inversement, le codage est dit avec perte lorsqu’il entraine une perte de qualité. C’est ce type de codage qui est normalement utilisé lorsqu’une perte de qualité (perceptible ou pas) est acceptable, par exemple, pour la diffusion vidéo ciblant le grand public (DVDs, Blu-Rays, télévision numérique, etc.). Par ailleurs, c’est le type de codage que nous ciblons dans nos travaux de recherche. La perte de qualité entrainée par ce type de codage est le résultat d’une élimination d’information qui a pour effet de rendre le codage plus efficace. De manière générale, plus la perte de qualité est grande et plus le fichier compressé sera petit. Par exemple, il est possible d’atteindre un facteur de compression aussi élevé que 50 pour une perte de qualité négligeable. Ce facteur peut augmenter jusqu’à 200, voire davantage, pour une perte de qualité plus importante. Il dépend de plusieurs facteurs, dont l’encodeur vidéo employé, les paramètres de codage ainsi que les caractéristiques de la séquence à encoder.
Pour atteindre des taux de compression aussi élevés, le codage vidéo repose sur plusieurs principes fondamentaux dont les deux plus importants sont : l’emploi de modèles pour prédire les données à encoder et l’utilisation de méthodes avec perte pour encoder la différence entre les données à encoder et celles prédites. Les modèles de prédiction ont pour objectif de réduire la redondance d’information, alors que les méthodes avec perte ont pour but d’éliminer de l’information.
Les modèles de prédiction prédisent les données à encoder à l’aide de données précédemment encodées appelées données de prédiction (ou données de référence). On parle de prédiction temporelle lorsque ces données proviennent de trames (images) antérieures. Ces dernières sont appelées images de référence puisque la prédiction temporelle peut s’y référer. On parle plutôt de prédiction spatiale lorsque les données proviennent directement de la trame traitée. La prédiction temporelle est aussi appelée prédiction inter puisqu’elle représente une prédiction effectuée « entre » deux trames. Inversement, la prédiction spatiale est appelée prédiction intra puisqu’elle fait référence à des données situées « à l’intérieur de » la trame traitée.
Les modèles de prédiction utilisés en vidéo ne permettent pas toujours d’effectuer une prédiction parfaite des données à encoder, notamment parce que certaines parties d’une séquence vidéo contiennent de l’information nouvelle. Les encodeurs vidéos doivent donc encoder les erreurs de prédiction, aussi appelées les données résiduelles ou, plus simplement, le résiduel. Ce résiduel est encodé à l’aide d’une série d’opérations qui a pour effet d’éliminer de l’information (représenter moins fidèlement l’information et ainsi causer une perte de qualité). Cette élimination d’information est habituellement effectuée en tenant compte des caractéristiques du système visuel humain de manière à éliminer d’abord l’information peu ou pas perceptible par l’humain. L’information qui n’a pas été éliminée est par la suite encodée à l’aide d’un encodeur entropique.
Depuis l’apparition du standard H.261 en 1988, le schéma de codage vidéo hybride constitue l’architecture de codage de base employée par les standards développés par l’union internationale des télécommunications (International Telecommunication Union, ITU) et l’organisation internationale de normalisation (International Organization for Standardization, ISO), dont les standards H.264 et HEVC. Il est aussi à la base de l’architecture d’autres formats de codage vidéos populaires, tels que VP8 et VP9 de Google (WebM (2016a,b)). Le codage est dit hybride parce que l’architecture combine des méthodes de codage différentiel (autrement dit, des méthodes de prédiction) et des méthodes de codage par transformée.
Un codeur vidéo décompose la séquence vidéo traitée en une série d’images fixes appelées trames. Une trame est de type intra lorsqu’elle ne dépend d’aucune autre trame. Et inversement, elle est de type inter lorsqu’elle dépend d’au moins une autre trame. La prédiction intra est supportée par ces deux types de trames. Cependant, la prédiction inter est seulement supportée par la trame inter. Grâce à ce mécanisme de prédiction supplémentaire, la trame inter obtient généralement une efficacité de codage nettement supérieure à celle de la trame intra. Pour sa part, la trame intra a l’avantage de pouvoir être utilisée comme point d’accès aléatoire (un point où le décodage d’une séquence peut débuter). C’est ce type de point qui permet de naviguer à travers une séquence compressée. C’est pour cette raison que plusieurs applications vidéos encodent une trame intra périodiquement, par exemple, à chaque seconde.
INTRODUCTION |