Implantation de la chaîne inter-prédiction utilisée dans l’encodeur H.264/AVC

Principe de la compensation bidirectionnelle

       Contrairement aux normes de codage vidéo précédentes, H.264 peut utiliser une ou plusieurs images de référence, ainsi un Macrobloc d’une image P peut être prédit à partir d’une image de référence, et un Macrobloc d’une image B à partir de deux images de référence, la prédiction est alors obtenue en faisant la moyenne entre chaque pixel des deux blocs de référence, on parle alors de la Bi-prédiction qu’on abordera en détail dans le prochain chapitre. Notons qu’il existe également dans la norme H.264 / AVC, une prédiction pondérée (weighted prediction) [29] qui permet d’ajuster l’importance d’un Macrobloc par rapport à un autre, de manière implicite ou explicite. En effet, on favorisera le bloc de prédiction temporellement le plus proche, par rapport à l’image courante. La prédiction pondérée est aussi applicable de façon explicite dans le casd’une prédiction monodirectionnelle (pour une image P ou B) ; cela permet de réajuster la luminance des pixels. Typiquement, lorsqu’un flash d’appareil photo apparaît sur une image, le phénomène est très court et a de forte chance de n’apparaître que sur cette image. On peut être amené à faire référence à ces pixels localisés au niveau du flash, sans toutefois vouloir reproduire cet effet. La prédiction pondérée permet de compenser cette variation brutale de luminosité. Ces pixels de l’image de référence, ainsi compensés en luminosité, serviront ensuite comme prédicteurs pour un bloc de l’image courante. Enfin, la prédiction de mouvement peut utiliser jusqu’à 16 différentes images de références selon le profil utilisé. Cette possibilité est illustrée sur la Figure 1.31, où l’on voit qu’une trame peut se référer à des images différentes. Des tests effectués ont montré qu’elle permettrait de gagner un facteur de compression d’environ 10% par rapport à une prédiction mono-référence.

La norme HEVC

         A la fin de la période de normalisation du standard H.264/AVC et tout en se concentrant sur les annexes scalables et multivues (3D), le groupe VCEG a créé en avril 2005 un encodeur de travail afin de préparer la future génération d’encodeur normalisé. En effet, l’efficacité de la norme de codage vidéo H.264/AVC en termes de taux de compression et de qualité visuelle n’a pas suffi pour faire face à l’évolution de la technologie visuelle. La popularité croissante de la vidéo HD, l’émergence d’au-delà-de la HD (L’ultra HD : format 4k, 8k), la technologie 3D ou «multiview» et le désir accru de l’utilisation des résolutions élevées avec une qualité visuelle excellente surtout dans les applications mobiles, imposent des contraintes strictes pour le codage  qui dépassent les capacités de la norme H.264/AVC. En outre, plus de 50% de trafic de réseau actuel de la vidéo est destiné aux appareils mobiles et les tablettes PC (Figure 1.35). Cette croissance du trafic ainsi que les besoins de transmission pour les services vidéo à la demande (VOD), imposent des défis difficiles dans les réseaux d’aujourd’hui. Pour ces raisons, et principalement en raison de la nécessité urgente d’une compression plus efficace, le nouveau groupe JCT-VC (Joint Collaborative Team on Video Coding) créé en juillet 2009, décide de réaliser un appel à propositions lançant ainsi une nouvelle phase de standardisation [8].

Screen content (SCC)

       Le JCT-VC établit l’extension la plus récente qui est HEVC à codage screen content [42] ; Les vidéos screen content sont différentes des vidéos naturelles qui sont par défaut un film, une vidéo de télévision, etc. Un tel contenu dispose généralement d’un mélange de graphiques générés par ordinateur, de texte et des images capturées par des caméras. Avec leurs caractéristiques de signaux distincts, un codage adaptatif devient nécessaire. De plus, les vidéos « screen content » présentent moins de couleurs (Figure 1.50) et plus de détails aux bords des différents objets (par exemple sur la Figure 1.50, les pixels de (b) sont bien définis et bien entourés, alors que dans (a) les pixels de bord n’ont pas un bord bien défini). Dans ce même type de vidéo, Il y a aussi des modèles qui sont répétés : par exemple, le texte dans une lettre, les nombres dans un article (ex : Word ou PowerPoint), pour cela, les redondances spatiales doivent être le mieux exploitées, la nécessité d’une modification du codage Intra utilisée précédemment dans HEVC est essentielle, cette modification est faite par l’ajout de nouveaux modules et outils, ainsi le SCC sera compatible avec la première version de HEVC ainsi que la version HEVC-RExt définit les outils suivants :
 La copie du bloc Intra : (Intra block copy : IBC) : c’est un nouveau mode introduit à l’unité de codage CU en plus des deux modes d’intra et d’inter conventionnels, quand un CU est codé en mode IBC, les PUs de ce CU trouve les blocs reconstruits qui sont similaires au sein de la même image, il peut être considéré comme une « compensation de mouvement » dans l’image courante. Ce bloc améliore l’efficacité du codage SCC.
 Le mode palette : pour le contenu « screen », il est observé que pour de nombreux blocs, un nombre limité de différentes valeurs de couleur peut exister. Ainsi, le mode palette énumère les valeurs de ces couleurs pour chaque échantillon, puis envoie un indice pour indiquer à quelle couleur il appartient. Le mode palette peut être plus efficace que l’ensemble de la représentation prédiction-transformée.
 Transformée à couleur adaptative (ACT) : La transformée DCT ne convient pas à ce type de contenu vidéo « screen » ; beaucoup de contenus « screen » utilisent l’espace colorimétrique RGB, la suppression de la redondance de la composante inter-couleur est importante pour un codage efficace. Des travaux précédents qui ont déjà adopté la transformée à couleur adaptative, ont montré des améliorations de l’efficacité [43], une adaptation au niveau du CU est utilisée pour convertir le résiduel à différents espaces de couleur, plus précisément un bloc d’image dans l’espace de couleur RGB peut être codé directement. Ou bien, il peut être converti de façon adaptative au nouvel espace de couleur YCoCg (Y : luminance, Co : chrominance orange, Cg : chrominance verte) pendant le codage (équation 1.12).
 Résolution adaptative du vecteur de mouvement : contrairement aux contenus de la caméra capturés, où le mouvement est continu, le contenu « screen » a souvent un mouvement discret, qui a une granularité d’un ou plusieurs échantillons. Ainsi, pour une grande partie du contenu « screen », il n’est pas nécessaire d’utiliser la compensation de mouvement fractionnelle. En effet, dans HEVC-SCC, un contrôle au niveau des slices est activé pour commuter les vecteurs de mouvement entre la résolution entière et fractionnelle.

L’estimation de mouvement hiérarchique (HME)

       L’estimation de mouvement hiérarchique (HME) [58] est une approche largement utilisée, car elle offre une faible complexité de calcul tout en gardant son efficacité ainsi que sa flexibilité. Cette approche rapide se base sur la réduction de la résolution de l’image. Plusieurs niveaux sont construits en sous-échantillonnant l’image du niveau inférieur d’un facteur de deux ; chacune contenant la même image que le niveau précédent, le résultat est une pyramide dont le niveau le plus bas est l’image de départ (Figure 2.11). Un filtre passe-bas Gaussien est préalablement appliqué afin d’éviter des problèmes liés au sous-échantillonnage (repliement de spectre notamment). Après la création de la pyramide pour les deux images : image courante et image de référence, l’estimation de mouvement proprement dite peut commencer, en partant du niveau le plus élevé (résolution la plus faible). Comme l’image est de taille réduite, une recherche exhaustive peut être effectuée. Le résultat (le vecteur de mouvement) est ensuite propagé au niveau suivant à travers la pyramide (Figure 2.12), pour chaque niveau, une technique prédictive est utilisée : des prédicteurs spatiaux, et hiérarchiques (issus du niveau supérieur et mis à l’échelle) sont évalués pour localiser le meilleur prédicteur pour ce niveau. Le vecteur est ensuite propagé au niveau suivant en multipliant ses deux coordonnées par le facteur d’échelle (dans la plupart des cas, 2). Le procédé de la multiplication du vecteur et de raffinage est répété jusqu’à ce que le résultat du niveau 0 soit trouvé, c’est à ce moment que le processus se termine. De cette façon, l’algorithme limite les calculs à effectuer en restreignant la zone de recherche à chaque niveau. En général, ce type d’algorithme est moins populaire qu’un algorithme prédictif classique, car il requiert plus de puissance de calcul pour la construction de la pyramide et des traitements pour les niveaux hiérarchiques. Cependant, il offre une meilleure robustesse, et détecte les mouvements de grande amplitude. Le résultat est très proche du mouvement réel et demeure en règle générale homogène, ce qui lui permet d’être plus efficace qu’une recherche exhaustive dans un contexte de compression vidéo. De plus, c’est un algorithme régulier dans le sens où le nombre de calculs est relativement constant, indépendant de la séquence vidéo.

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela chatpfe.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières

Introduction générale
Chapitre 1 : La compression et l’encodage des vidéos
1.1. Introduction
1.2. Compression et codage vidéo, une technique toujours nécessaire ?
1.2.1 Principe de base de la compression vidéo
1.2.1.1 Notions de base
1.2.1.2 Composantes de base : Luminance, chrominance
1.2.1.3 Evaluation de la qualité
1.2.2 Evolution des normes de compression vidéo et standardisation
1.3. La norme H.264/AVC
1.3.1 Introduction
1.3.2 Définition du standard
1.3.3 Normalisation et profilage
1.3.4 Description détaillée de la norme H.264/AVC
1.3.4.1 Le découpage ou partitionnement des images en Slice
a. NAL (Network Abstraction Layer)
b. VCL (Video Coding Layer)
c. Slices (ou tranches)
c.1 Notion DP
c.2 Notions des slices indépendants
d. Image
1.3.4.2 La prédiction
a. L’intra prédiction
b. L’inter prédiction et estimation de mouvement
b.1 Compensation de mouvement
b.2 Critère de l’inter prédiction : Optimisation débit / distorsion
1.3.4.3 Codage du résiduel
a. Transformation
b. Quantification
c. Codage entropique et arithmétique
1.3.5 Applications H.264/AVC
1.4. La norme HEVC
1.4.1 Définition du standard
1.4.2 Les profils de l’HEVC
1.4.3 Description détaillée de la norme HEVC
1.4.3.1 Structure de codage
a. Unité de Codage
b. Unité de Prédiction
c. Unité de Transformée
1.4.3.2 Prédiction Intra
1.4.3.3 Inter prédiction
a. Codage du vecteur de mouvement
b. Compensation de mouvement
1.4.3.4 La quantification
1.4.3.5 Autres outils
1.4.4 Extension HEVC
1.4.4.1 HEVC 3D
1.4.4.2 Screen content (SCC)
1.4.5 Applications
1.5. Conclusion
Chapitre 2 : Les techniques d’estimation de mouvement dans les encodeurs vidéo
2.1. Introduction
2.2. Concept de l’estimation de mouvement
2.3. Algorithmes de recherche
2.3.1 Le critère de correspondance : Formulation mathématique
2.3.2 Recherche exhaustive
2.3.2.1 Elimination de candidats
2.3.2.2 Méthodes récursives
a. Méthodes systématiques
a.1 Algorithme 2D logarithmique
a.2 Algorithme à trois pas (TSS)
a.3 Recherche directionnelle
a.4 Recherche en diamant: DS (Diamond Search)
b. Méthodes prédictives
2.3.2.3 Approche multi-résolution
2.3.3 Précision à un quart de pixel : Méthode d’interpolation
2.3.4 Les algorithmes utilisés dans le software de référence : JM
2.3.4.1 Intervalle de recherche dynamique : DSR (Dynamic Search Range)
2.3.4.2 La recherche exhaustive rapide (FFS : Fast Full Search)
2.3.4.3 Estimation de mouvement rapide (FME : fast motion estimation) suivant l’algorithme UMHexagonS (Unsymmetrical cross Multi-Hexagon-grid-Search)
2.3.4.4 Enhanced Predictive Zonal Search
2.3.5 Analyse de la qualité de l’image
2.4. Estimation de mouvement bidirectionnelle
2.4.1 Principe de la compensation bidirectionnelle
2.4.2 Modes de prédiction pour les images B
2.4.2.1 Mode liste 0
2.4.2.2 Mode liste 1
2.4.2.3 Mode Double
2.4.2.4 Mode direct
2.4.2.5 Mode Skip
2.4.3 Comparaison des quatre modes (Liste0, Liste1, double et direct)
2.5. Conclusion
Chapitre 3 : Etat de l’art sur les architectures parallèles
3.1. Introduction
3.2. Etude des architectures existantes
3.2.1 Les différents types de parallélisme
3.2.1.1 Parallélisme au niveau des threads
3.2.1.2 Parallélisme au niveau d’instructions
3.2.1.3 Parallélisme au niveau des données
3.2.2 Les systèmes généralistes parallèles
3.2.2.1 Les systèmes multiprocesseurs
3.2.2.2 Processeurs super-scalaires et technologie Hyper-threading
3.2.2.3 Les systèmes multicoeurs
3.2.3 Les systèmes embarqués parallèles
3.2.3.1 Les DSP multicoeurs
3.2.3.2 Unité de DSP
3.2.3.3 Les FPGAs
3.2.4 Plates-formes multicomposants
3.2.4.1 Intérêts d’une architecture à multicomposants
3.2.4.2 Difficultés de mise en œuvre
3.3. Conception matérielle des tâches élémentaires du codeur H.264
3.3.1 Notion d’exécution temps réel pour la compression vidéo
3.3.2 Algorithme de mise en correspondance
3.3.3 Analyse des architectures dédiées à l’estimation de mouvement
3.3.3.1 Les techniques de base
a. Les architectures systoliques
b. Les algorithmes rapides
3.3.3.2 Autres outils pour l’estimation de mouvement H.264/AVC
3.3.4 Les outils et les langages de développement des systèmes embarqués
3.3.4.1 Les langages de description matérielle
3.3.4.2 Les outils de synthèse et de simulation
3.3.4.3 Flot de prototypage FPGA générique
3.4. Conclusion
Chapitre 4 : Implantation de l’estimation de mouvement de l’encodeur H.264/AVC
4.1. Introduction
4.2. Plateforme cible
4.2.1 Le choix d’une carte Xilinx FPGA
4.2.1.1 Plateformes Virtex5 et Virtex7 de Xilinx
a. La carte Xilinx XUPV5
b. La carte Xilinx XC7V X550T
4.3. Point de départ
4.3.1 Exigence d’un encodeur vidéo
4.3.2 Décomposition d’un encodeur vidéo H.264
4.3.2.1 Décomposition fonctionnelle
4.3.2.2 Décomposition du domaine
4.3.3 Quelques statistiques pour l’encodeur vidéo H.264
4.4. Implémentation de la chaine inter prédiction utilisée dans l’encodeur H.264/AVC 
4.4.1 La mise en œuvre d’une nouvelle conception matérielle pour la méthode VBSME utilisée dans l’encodeur H264/AVC
4.4.1.1 Hypothèse de travail
4.4.1.2 Conception globale du système : estimation de mouvement adoptée
4.4.1.3 La conception proposée : architecture du module VBSME
a. L’architecture interne du module VBSME
a.1 Le PE et le vecteur PE
a.2 Module d’additionneur de SAD
4.4.1.4 Simulation et résultat de synthèse
4.4.2 Accélération et conception matérielle à base d’FPGA du module VBSME pour une recherche FSBMA utilisée dans l’H.264/AVC
4.4.2.1 Algorithme de recherche exhaustive
4.4.2.2 Architecture VBSME à base d’FSBMA proposée
a. Le Module processeur
a.1 Module SAD
a.2 Unité de comparaison (CU)
b. Comparateur trois valeurs
4.4.2.3 Résultat d’implantation
4.5. Conclusion 
Conclusion générale
Références

Télécharger le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *