Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Abstract
Advance in video compression technology has been driven by
ever-increasing processing power available in software...
Résumé
Le progrès de la technologie de compression vidéo a été poussé par
la puissance de traitement de plus en plus dispo...
A mes parents, Abderrahim MARS et Fatiha MECHROUHI
A ma famille
A tous ceux qui me tiennent à cœur. . .
A Jamila SINDAB, “...
Remerciement
Je remercie, au premier lieu, mon Dieu qui m’a offert et préservé une
bonne santé et qui m’a entouré de sa bi...
Tables de matières
Table des matières
Listes des figures ....................................................................
Tables de matières
Chapitre III : ...........................................................................................
Liste des figures
Figure 1.1 : Matrice de pixels ............................................................................
Liste des figures
Figure 2.3 : Partitionnement d’unité CTU en unités CTB...........................................30
Figu...
Glossaire
AVC Advanced Video Coding
CABAC Context Adaptive Binary Arithmetic Coding
CALVAC Context-Adaptive Variable-Lengt...
Introduction générale
1
Aujourd'hui, la vidéo numérique permet d'offrir aux utilisateurs un très grand
nombre de services ...
Introduction Générale
2
Et pour réduire la redondance spatiale, la plupart des systèmes de compression
utilisent la prédic...
Chapitre I :
Le Codage Vidéo
et la Norme H.264/AVC
Chapitre I : Le Codage Vidéo et le Standard H264/AVC
4
11..11 IInnttrroodduuccttiioonn
Une vidéo numérique est une séquenc...
Chapitre I : Le Codage Vidéo et le Standard H264/AVC
5
Pour les images monochromatiques, la plupart des systèmes définisse...
Chapitre I : Le Codage Vidéo et le Standard H264/AVC
6
Figure 1.4: Composantes YUV
Les composantes YUV sont calculées à pa...
Chapitre I : Le Codage Vidéo et le Standard H264/AVC
7
représentent la proportionnalité du sous-échantillonnage des compos...
Chapitre I : Le Codage Vidéo et le Standard H264/AVC
8
11..33 PPrriinncciippeess dduu CCooddaaggee VViiddééoo
Afin de rédu...
Chapitre I : Le Codage Vidéo et le Standard H264/AVC
9
11..33..11 EEssttiimmaattiioonn eett CCoommppeennssaattiioonn ddee ...
Chapitre I : Le Codage Vidéo et le Standard H264/AVC
10
Figure 1.9 : Estimation de
mouvement pour les images prédites
Figu...
Chapitre I : Le Codage Vidéo et le Standard H264/AVC
11
Après l'estimation et la compensation en mouvement (Figure 1.8), l...
Chapitre I : Le Codage Vidéo et le Standard H264/AVC
12
On effectue la transformation DCT de la matrice précédente à l’aid...
Chapitre I : Le Codage Vidéo et le Standard H264/AVC
13
Q est le coefficient, d’une matrice de quantification, associé au ...
Chapitre I : Le Codage Vidéo et le Standard H264/AVC
14
Figure 1.13 : Structure d’un train binaire
La séquence avec son en...
Chapitre I : Le Codage Vidéo et le Standard H264/AVC
15
basé sur Les vecteurs de mouvement obtenus, le bloc de compensatio...
Chapitre I : Le Codage Vidéo et le Standard H264/AVC
16
stockée dans la mémoire interne et servira de trame de référence p...
Chapitre I : Le Codage Vidéo et le Standard H264/AVC
17
11..55 DDeessccrriippttiioonn DDééttaaiillllééee ddee llaa NNoorrm...
Chapitre I : Le Codage Vidéo et le Standard H264/AVC
18
Ce résiduel est décorrélé avec la transformée DCT entière. Puis, i...
Chapitre I : Le Codage Vidéo et le Standard H264/AVC
19
estimation de mouvement : la taille des blocs est variable et la p...
Chapitre I : Le Codage Vidéo et le Standard H264/AVC
20
comme sur la figure 1.18, la prédiction Inter est utilisée. Le cho...
Chapitre I : Le Codage Vidéo et le Standard H264/AVC
21
Figure 1.19 : Modes Intra prédiction des blocs de luminance 16*16
...
Chapitre I : Le Codage Vidéo et le Standard H264/AVC
22
Figure 1.21 : Partitionnement des MBs pour l’Inter prédiction
11.....
Chapitre I : Le Codage Vidéo et le Standard H264/AVC
23
Transformée DCT entière 4*4 :
La transformée DCT entière 4*4 d’une...
Chapitre I : Le Codage Vidéo et le Standard H264/AVC
24
Transformée 2*2 des coefficients DC de chrominance :
Chaque compos...
Chapitre I : Le Codage Vidéo et le Standard H264/AVC
25
l’ensemble des hautes fréquences est supprimé de l’image, cela fou...
Chapitre I : Le Codage Vidéo et le Standard H264/AVC
26
11..66 RRééssuumméé dduu CChhaappiittrree
Dans ce chapitre, après ...
Chapitre II :
Le Standard HEVC,
Caractéristiques et
Nouveautés
Chapitre II : Le standard HEVC, Caractéristiques et Nouveautés
28
22..11 IInnttrroodduuccttiioonn
La norme HEVC est le plu...
Chapitre II : Le standard HEVC, Caractéristiques et Nouveautés
29
interpolation et filtrage plus sophistiqués ;
prédiction...
Chapitre II : Le standard HEVC, Caractéristiques et Nouveautés
30
22..33 PPaarrttiittiioonnnneemmeenntt AAddaappttaattiiff...
Chapitre II : Le standard HEVC, Caractéristiques et Nouveautés
31
Chaque CTB a toujours la même taille que CTU : 64*64, 32...
Chapitre II : Le standard HEVC, Caractéristiques et Nouveautés
32
22..44 PPrrééddiiccttiioonn SSppaattiiaallee eett TTeemm...
Chapitre II : Le standard HEVC, Caractéristiques et Nouveautés
33
Lorsque le mode Intra_Angular est utilisé, chaque PB est...
Chapitre II : Le standard HEVC, Caractéristiques et Nouveautés
34
22..44..22 PPrrééddiiccttiioonn IInntteerr oouu TTeemmpp...
Chapitre II : Le standard HEVC, Caractéristiques et Nouveautés
35
22..66 CCooddaaggee EEnnttrrooppiiqquuee
Contrairement a...
Chapitre II : Le standard HEVC, Caractéristiques et Nouveautés
36
Cependant, il existe également des aspects de HEVC qui a...
Chapitre III :
Etude du Module de la
Transformée Entière ICT du
Standard HEVC
Chapitre III : Etude du module de la transformée ICT du standard HEVC
38
33..11 IInnttrroodduuccttiioonn
La transformée DC...
Chapitre III : Etude du module de la transformée ICT du standard HEVC
39
Figure 3.1.a : Partitionnement
petit d’une CU
Fig...
Chapitre III : Etude du module de la transformée ICT du HEVC
40
CU
TUDepht
CU 8*8 CU 16*16 CU 32*32 CU 64*64
0 TU 8*8 TU 1...
Chapitre III : Etude du module de la transformée ICT du HEVC
41
Toutes les données résiduelles de chaque CU résultantes de...
Chapitre III : Etude du module de la transformée ICT du HEVC
42
 
   
3.4
1 ; 0 0, N 1
A(m,n)
m(2 1)2 *cos( ) ; 1, N...
Chapitre III : Etude du module de la transformée ICT du HEVC
43
Exemple de calcul de l’ICT 4*4 pour la norme H.264 :
Pour ...
Chapitre III : Etude du module de la transformée ICT du HEVC
44
1 1 1 1 1 2 1 1
2 1 -1 -2 1 1 -1 -2
) * *
1 -1 -1 1 1 -1 -...
Chapitre III : Etude du module de la transformée ICT du HEVC
45
33..33..11..33 MMaattrriiccee ddee TTrraannssffoorrmmaatti...
Master thesis
Master thesis
Master thesis
Master thesis
Master thesis
Master thesis
Master thesis
Master thesis
Master thesis
Master thesis
Master thesis
Master thesis
Master thesis
Master thesis
Master thesis
Master thesis
Master thesis
Master thesis
Master thesis
Master thesis
Master thesis
Upcoming SlideShare
Loading in …5
×

Master thesis

400 views

Published on

In this thesis, we introduce the concepts of digital video and the processes associated with the steps of encoding and decoding video. Thus, we describe the main modules constituting the architecture of the HEVC and H.264 standards. Then, we focus more particularly on the Integer Cosine Transform ICT of HEVC standard for the purpose to implement in MATLAB and C languages.

Published in: Engineering
  • Be the first to comment

Master thesis

  1. 1. Abstract Advance in video compression technology has been driven by ever-increasing processing power available in software and hardware. The emerging High Efficiency Video Coding (HEVC) standard can provide a doubling in coding efficiency with respect to the H.264/AVC high profile, delivering the same video quality at half the bit rate. This improvement comes at the cost of increased complexity through the addition of new coding tools and increased computation in existing tools. Among the modules HEVC that have been improvements compared to H.264/AVC, there is the modulus of the integer frequency transform DCT. For the DCT and DST to be practical, the fast algorithms for their efficient implementation in terms of reduced memory and complexity. The implementation of the module transform entire DCT is the purpose of this memory. In this memory, we introduce the concepts of digital video and the processes associated with the steps of encoding and decoding video. Thus, we describe the main modules constituting the architecture of the HEVC and H.264 standards. Then, we focus more particularly on the modulus of the integer frequency transform DCT standard HEVC for the purpose to implement in MATLAB and C languages.
  2. 2. Résumé Le progrès de la technologie de compression vidéo a été poussé par la puissance de traitement de plus en plus disponible dans le logiciel et le matériel. La nouvelle norme de compression vidéo High Efficiency Video Coding (HEVC) permet de fournir une efficacité doublée du codage par rapport au profil High-level de la norme H.264/AVC, offrant la même qualité de la vidéo à la moitié du débit binaire. Cette amélioration se fait au détriment de la complexité accrue grâce à l'ajout de nouveaux outils de codage et l'augmentation de calcul dans les outils existants. Parmi les modules de HEVC qui ont connu des améliorations par rapport à H.264/AVC, on trouve le bloc de la transformée fréquentielle DCT entière. Pour que les transformées DCT et DST être pratique, des algorithmes rapides sont appliqués afin de les implanter efficacement en terme de réduction de la mémoire et de la complexité. L’implémentation du module de la transformée DCT entière est l’objectif de notre mémoire. Dans cette mémoire, nous présentons les concepts de vidéo numérique et les traitements associés aux étapes d’encodage et de décodage de vidéo. Ainsi, nous décrivons les principaux modules constituant l’architecture des deux normes HEVC et H.264/AVC. Ensuite, nous étudions plus particulièrement le module de la transformée fréquentielle DCT entière du standard HEVC dans le but de l’implémenter dans les deux langages de programmation MATLAB et C.
  3. 3. A mes parents, Abderrahim MARS et Fatiha MECHROUHI A ma famille A tous ceux qui me tiennent à cœur. . . A Jamila SINDAB, “parce que c’était lui, parce que c’était moi.” (Montaigne - Essais)
  4. 4. Remerciement Je remercie, au premier lieu, mon Dieu qui m’a offert et préservé une bonne santé et qui m’a entouré de sa bienveillance et sa grâce. Je le remercie également de m’avoir confié à des gens respectueux, responsables et scientifiques pendant ces années d’étude. Ce mémoire de Master est le résultat d’un travail de quatre mois. En préambule, je souhaite adresser tous mes remerciements aux personnes qui m'ont apporté leur aide et qui ont ainsi contribué à l'élaboration de ce mémoire. Je remercie tout d’abord le professeur Mr. E ABERKAN qui, en tant que Coordonateur du Master SMTII et Directeur du laboratoire de recherche LSSC (Laboratoire Signaux Systèmes et Composants) dans lequel j’ai effectué mon stage, pour sa générosité et la grande patience dont il a su faire preuve malgré ses charges professionnelles. Je remercie sincèrement mes encadrants Mr. M. Razi et Mr. H. EL Moussaoui, de m’avoir encadrés de près durant cette période de stage. Leur sagesse et leur sens des responsabilités ont été une source de sérénité et de discussions fructueuses. Je remercie spécialement Mr. F. ABDI et Mr. N.S. ECHETOUI pour avoir accepté d’évaluer mon travail de stage présenté dans ce manuscrit. Je ne peux pas écrire de remerciements sans remercier chaleureusement toute ma famille et ceux sans qui je ne serai pas là : mes parents, Abderrahim MARS et Fatiha MECHROUHI. Je les remercie infiniment pour leur soutien, leur sacrifice et leur éducation. Je remercie aussi tous mes amis et mes proches.
  5. 5. Tables de matières Table des matières Listes des figures ........................................................................................................vii Glossaire.......................................................................................................................ix Introduction Générale .................................................................................................1 Chapitre I : ...................................................................................................................3 1.1 Introduction..........................................................................................4 1.2 Principes de Base des Normes de Compression Vidéo........................4 1.2.1 Formats des Scènes Vidéo................................................................4 1.2.2 Systèmes Colorimétrique RVB et YUV...........................................5 1.2.3 Sous-Echantillonnage des Composantes de Chrominances .............6 1.3 Principes du Codage Vidéo..................................................................8 1.3.1 Estimation et Compensation de Mouvement....................................9 1.3.2 Transformation Fréquentielle.........................................................10 1.3.3 Quantification.................................................................................12 1.3.4 Codage Entropique.........................................................................13 1.4 Modèle Hybride DPCM/DCT des CODECs Vidéo...........................14 1.5 Description Détaillée de la Norme H.264/AVC.................................17 1.5.1 Calcul du Résiduel..........................................................................19 1.5.2 Codage du Résiduel........................................................................22 1.6 Résumé du Chapitre ...........................................................................26 Chapitre II :................................................................................................................27 2.1 Introduction........................................................................................28 2.2 Architecture Global du CODEC HEVC.............................................28 2.3 Partitionnement Adaptatif d’une Image Vidéo ..................................30 2.4 Prédiction Spatiale et Temporelle des Unités ....................................32 2.4.1 Prédiction Intra ou Spatiale ............................................................32 2.4.2 Prédiction Inter ou Temporelle.......................................................34 2.5 Transformation et Quantification.......................................................34 2.6 Codage Entropique.............................................................................35 2.7 Filtres de Déblocage et SAO..............................................................35 2.8 Résumé du Chapitre ...........................................................................36
  6. 6. Tables de matières Chapitre III : ..............................................................................................................37 3.1 Introduction........................................................................................38 3.2 Structure de Codage ...........................................................................38 3.3 Etude du Module de la Transformée Entière ICT du HEVC .............40 3.3.1 Transformée DCT Entière..............................................................41 3.3.2 Transformée DST...........................................................................47 3.4 Résumé du Chapitre ...........................................................................48 Chapitre IV : ..............................................................................................................49 4.1 Introduction........................................................................................50 4.2 Implémentation du Module ICT en MATLAB..................................50 4.2.1 Implémentation de l’ICT du Standard H.264/AVC .......................50 4.2.2 Implémentation de l’ICT du Standard HEVC................................54 4.3 Implémentation du Module ICT en Langage C .................................57 4.3.1 Fonctionnement du programme......................................................57 4.3.2 Résultats et simulations..................................................................62 4.4 Résumé du chapitre............................................................................62 Conclusion Générale..................................................................................................63 Bibliographie ..............................................................................................................64
  7. 7. Liste des figures Figure 1.1 : Matrice de pixels ........................................................................................4 Figure 1.2 : Composantes RVB de chaque pixel ...........................................................5 Figure 1.3: Composantes RVB ......................................................................................5 Figure 1.4: Composantes YUV......................................................................................6 Figure 1.5 : Profil 4 :2 :0 du système YUV...................................................................7 Figure 1.6 : Profil 4 :2 :2 du système YUV...................................................................7 Figure 1.7 : Profil 4 :2 :4 du système YUV...................................................................7 Figure 1.8 : Schéma hybride d’un encodeur vidéo ........................................................8 Figure 1.9 : Estimation de mouvement pour les images prédites ................................10 Figure 1.10 : Compensation en mouvement des images bidirectionnelles..................10 Figure 1.11 : Configuration et d’ordre de codage d’une séquence vidéo ....................10 Figure 1.12 : Balayage en zigzag classique .................................................................13 Figure 1.13 : Structure d’un train binaire.....................................................................14 Figure 1.14 : Encodeur vidéo DPCM/DCT .................................................................15 Figure 1.15 : Décodeur vidéo DPCM/DCT.................................................................16 Figure 1.16 : Schéma global d’un codeur H.264/AVC................................................17 Figure 1.17 : Prédiction Intra.......................................................................................20 Figure 1.18 : Prédiction Inter.......................................................................................20 Figure 1.19 : Modes Intra prédiction des blocs de luminance 16*16 ..........................21 Figure 1.20 : Modes Intra prédiction des blocs de luminance 4*4 ..............................21 Figure 1.21 : Partitionnement des MBs pour l’Inter prédiction...................................22 Figure 1.22 : Regroupement des coefficients DC de Luma et ceux de Chroma..........24 Figure 2.1 : Architecture de l’encodeur HEVC ...........................................................29 Figure 2.2 : Partitionnement d’image en unités CTUs ................................................30
  8. 8. Liste des figures Figure 2.3 : Partitionnement d’unité CTU en unités CTB...........................................30 Figure 2.8 : Partitionnement de bloc CB en blocs PBs................................................32 Figure 2.9.a : Modes de prédiction de l’Intra_Angular ...............................................33 Figure 2.9.b : Exemple de prédiction de l’Intra_Angular...........................................33 Figure 3.1.a : Partitionnement petit d’une CU.............................................................39 Figure 3.1.b : Partitionnement grand d’une CU...........................................................39 Figure 3.2 : Processus de partitionnement d’une unité CU .........................................39 Figure 3.3 : Positionnement du module ICT dans une chaîne de codage....................40 Figure 3.4 : Histogramme normalisé de la fraction de coefficients non nuls. .............40 Figure 4.1 : Image RGB...............................................................................................50 Figure 4.2 : Image RGB convertit en YUV .................................................................50 Figure 4.3 : Image résultante après la transformée ICT 4*4 H.264/AVC ...................51 Figure 4.4 : Image résultante après la transformée ICT 4*4 HEVC............................54 Figure 4.5 : Organigramme proposé pour la gestion du module ICT..........................57 Figure 4.6 : Organigramme proposé pour le calcul des différentes ICT .....................58 Figure 4.7 : Menu de l’interface utilisateur .................................................................59 Figure 4.8 : Sous-menu correspondant au standard H.264/AVC.................................60 Figure 4.9 : Sous-menu correspondant au standard HEVC .........................................60 Figure 4.11 : Exemple de calcul de l’ICT 4*4 du HEVC avec le langage C...............61
  9. 9. Glossaire AVC Advanced Video Coding CABAC Context Adaptive Binary Arithmetic Coding CALVAC Context-Adaptive Variable-Length Coding Cb Chrominance bleu CB Coding Block Cr Chrominance rouge CTB Coding Tree Block CTU Coding Tree Unit CU Coding Unit DCT Discrete Cosine Transform DPCM Differential Prediction Compensated Motion DSL Digital Subscriber Line DSP Digital Signal Processor DST Discrete Sine Transform DWT Discrete Wavelet Transform FPGA Field Programmable Gate Array GOP Group Of Picture HD Haute Définition HEVC High Efficiency Video Coding ICT Integer Cosine Transform IDCT Inverse Integer Cosine Transform IEC International Electrotechnical Commission ISO International Standardization Organization ITU International Telecommunication Union JPEG Joint Photographic Experts Group JVT Joint Video Team MB MacroBloc MPEG Moving Pictures Expert Groupe MSE Main Square Error PB Prediction Block PU Prediction Unit RLE Run-Length Encoding RQT Residual QuadTree RVB Red Green Blue SAO Sample Adaptive Offset TB Transform Block TU Transform Unit VCEG Video Coding Expert Groupe VHDL Very Hardware Description Language VLC Variable Length Coding
  10. 10. Introduction générale 1 Aujourd'hui, la vidéo numérique permet d'offrir aux utilisateurs un très grand nombre de services tels que la vidéo sur réseaux (DSL, terrestre, mobile…), les DVD, le broadcasting, la vidéo à la demande, etc. Ces applications ont nécessité le développement d'outils de codage efficaces et rapides afin de compresser au maximum les flux vidéo tout en gardant une qualité visuelle optimale. Selon la nature des informations véhiculées, les techniques de compression ont beaucoup progressé. On en distingue deux types, avec et sans pertes. La compression est dite sans pertes lorsqu'il n'y a aucune perte de données sur l'information originale, ce type de technique utilise le principe du dictionnaire où il s'agit de réécrire les données d'une manière plus concise tout en assurant la possibilité de retrouver exactement le message d'origine après décompression. Les taux de compression obtenus avec ce type de technique sont faibles. Dans la compression avec pertes, il est impossible de retrouver les données d'origine après la décompression. La qualité des données décompressées dépend du taux de compression appliqué. Afin de répondre au besoin de compression de vidéo numérique, plusieurs normes de codage vidéo ont été développées durant la dernière vicennale. En 1988 le groupe MPEG a publié le premier standard ISO/IEC 11172, connu sous le nom de MPEG1. Le développement de ce standard visait l'implémentation d'un système de codage pour les images vidéo sur des médias numériques tel que les CD-ROM. En 1994, le même groupe a développé le second standard ISO/IEC 13818, nommé MPEG2, il a apporté des améliorations par rapport à MPEG1 en vue de son utilisation dans la télévision numérique. Un peu plus tard, ce standard a été amélioré pour supporter les formats vidéo de haute définition. En mai 2003, la norme H264/AVC a vu le jour. Cette norme est le fruit de la collaboration entre le groupe VCEG de l’ITU- T et le groupe MPEG de l’ISO/IEC. Ce standard, dédié aux applications à bas débit, permet la manipulation des objets multimédia et le codage des objets vidéo de formes arbitraires tout en offrant des performances intéressantes en termes d’efficacité de codage, de flexibilité et de qualité. A l'heure actuelle, l'état de l'art en codage vidéo est représenté par la norme HEVC qui est normalisée depuis janvier 2013. Ses applications concernent la compression des vidéos en très haute définition (2K, 4K...) et la diminution du débit de transmission sur réseau pour les vidéos en définition standard avec des applications pour la vidéo sur mobile et pour l'extension de l'éligibilité aux services audiovisuels des abonnés aux réseaux [1]. Le standard HEVC a pour but d'améliorer significativement le codage/compression par rapport à son prédécesseur H264/AVC. En effet, l'objectif est de réduire le débit nécessaire de moitié, à qualité comparable. Cette amélioration des performances est obtenue au détriment de la complexité calculatoire des étapes de compression et de décompression.
  11. 11. Introduction Générale 2 Et pour réduire la redondance spatiale, la plupart des systèmes de compression utilisent la prédiction Intra, alors que la redondance temporelle se diminue par l'estimation et la compensation de mouvement. Un module important du codage vidéo est la transformation fréquentielle (DCT, DWT…). L’objectif de cette opération est de réécrire l’image dans un domaine fréquentiel où les coefficients sont décorrélés, et ceci pour minimiser les dépendances entre les composantes de l’image traitée et de regrouper une grande partie de l’énergie de l’image dans un nombre restreint de coefficients. Là-dessus, plusieurs travaux de recherches ont été effectués dont le but est de réduire de plus les redondances spatiales et de faciliter les calculs et par conséquent son implantation matérielle. Notre objectif, d’une part, étant d’étudier la nouveau standard HEVC de traitement de vidéo, son architecture, ses caractéristiques et ses avantages par rapport à son prédécesseur H264/AVC, et d’autre part, de se focaliser sur l’étude approfondie du module de la transformée DCT entière de cette norme afin de l’implémenter en software dans les deux langages de programmation MATLAB et C. Après l’introduction ci-dessus, le présent manuscrit s’articule en quatre chapitres organisés comme suit : Le premier chapitre est consacré à l’état de l’art du codage vidéo dans lequel nous examinerons les concepts de vidéo numérique et les traitements associés aux étapes d’encodage de la norme H.264/AVC. Le deuxième chapitre décrit le standard HEVC, son architecture, ses caractéristiques, ses nouveautés et ses améliorations par rapport à H.264/AVC. Le troisième chapitre s’intéresse plus particulièrement au fonctionnement du module de la transformée DCT entière qui est l’objet de notre projet. Le quatrième chapitre présentera notre travail pratique sur le module ICT tel que son implémentation software dans les deux langages de programmation MATLAB et C.
  12. 12. Chapitre I : Le Codage Vidéo et la Norme H.264/AVC
  13. 13. Chapitre I : Le Codage Vidéo et le Standard H264/AVC 4 11..11 IInnttrroodduuccttiioonn Une vidéo numérique est une séquence d'images numériques permettant de représenter une grande quantité d'informations, qu’on doit stocker et/ou transmettre. Exemple : la taille d’une vidéo de durée de 90 minutes et de résolution TV est : 720*576*25*16*90*60 896T Gbits  On voit que le volume représenté par les informations est très important pour le stockage et/ou la transmission, d'où la nécessité de compresser les données [2]. Dans ce chapitre, nous présentons les principes de la compression vidéo, puis nous décrivons les techniques employées dans le codec H.264/AVC. 11..22 PPrriinncciippeess ddee BBaassee ddeess NNoorrmmeess ddee CCoommpprreessssiioonn VViiddééoo 11..22..11 FFoorrmmaattss ddeess SSccèènneess VViiddééoo Une vidéo numérique est constituée d’une suite d’images numériques. Chaque image est formée d’une matrice de pixels (Figure 1.1). L’œil humain est capable de distinguer le rafraichissement des images que lorsque la fréquence de mise à jour est inférieure à 25 images par seconde. La fluidité d’une vidéo est caractérisée par sa résolution temporelle, c’est à dire par le nombre d’images par seconde exprimé en fps (frame per second). Ce dernier est toujours supérieur à 25 fps et peut atteindre pour certaines applications 100 fps [3]. Une séquence vidéo est aussi caractérisée par sa résolution spatiale. Cette caractéristique définit le nombre de lignes et le nombre de colonnes de pixels composant chacune des images. A titre d’exemple, la résolution spatiale d’une image extraite d’une vidéo haute définition est actuellement de 1920 pixels en largeur et de 1080 pixels en hauteur. Une autre caractéristique d’une vidéo est la profondeur. Elle détermine le nombre de variantes de couleurs qui peuvent être représentées et qui sont exprimées en nombre de bits par pixel. Figure 1.1 : Matrice de pixels
  14. 14. Chapitre I : Le Codage Vidéo et le Standard H264/AVC 5 Pour les images monochromatiques, la plupart des systèmes définissent chaque pixel de l’image par une seule composante codée sur un octet ; ce qui correspond à 256 niveaux de gris possibles. Pour les images couleurs, plusieurs espaces colorimétriques permettent la représentation de l’intensité lumineuse et des couleurs d’une image. La plupart des systèmes multimédia utilisent les systèmes colorimétriques RVB ou YUV. 11..22..22 SSyyssttèèmmeess CCoolloorriimmééttrriiqquuee RRVVBB eett YYUUVV Dans le système RVB, une couleur est produite par l’addition des trois composantes de base : Rouge, Vert et Bleu (Figure 1.2 et 1.3). En général, chaque composante de l’image RVB est codée sur huit bits. Dans ce cas, vingt quatre bits sont nécessaires afin de coder la couleur d’un pixel. A l’aide des différentes combinaisons (224 ), il est possible d’obtenir 16,8 millions de couleurs par pixel. L’espace colorimétrique YUV, nommé aussi YCbCr, est un autre espace de représentation des couleurs. Dans ce format, Y représente la luminance, Cb et Cr représentent respectivement la chrominance bleue et la chrominance rouge (Figure 1.4). Ce format est couramment employé dans les applications de compression vidéo en remplacement le format RVB. Ce modèle a été initialement mis en place pour deux principales raisons : il permet l’harmonie entre les anciens équipements noir et blanc avec un signal couleur. il permet un meilleur usage de la bande passante en encodant plus d’information sur la luminance au détriment de la chrominance, puisque l’œil humain est plus sensible à la luminance qu’à la chrominance. Figure 1.2 : Composantes RVB de chaque pixel Figure 1.3: Composantes RVB
  15. 15. Chapitre I : Le Codage Vidéo et le Standard H264/AVC 6 Figure 1.4: Composantes YUV Les composantes YUV sont calculées à partir des composantes RVB [3] à l’aide des formules suivantes (Eqt 1.1, 1.2 et1.3) : 𝑌 = 0.229 ∗ 𝑅 + 0.587 ∗ 𝑉 + 0.114 ∗ 𝐵 𝐸𝑞𝑡 1.1 𝑈 = 0.596 ∗ 𝑅 + −0.274 ∗ 𝑉 + −0.322 ∗ 𝐵 𝐸𝑞𝑡 1.2 𝑉 = 0.212 ∗ 𝑅 + −0.523 ∗ 𝑉 + 0.11 ∗ 𝐵 𝐸𝑞𝑡 1.3 En écrivant les formules (Eqt 1.1, 1.2 et 1.3) sous forme matricielle, on obtient la transformation matricielle suivante (Eqt 1.4) : Y U V = 0.229 0.587 0.114 0.596 − 0.274 − 0.322 0.212 − 0.523 0.110 ∗ R V B 𝐸𝑞𝑡 1.4 Puisque le Système Visuel Humain (SVH) est plus sensible à la luminance qu’aux chrominances, toutes les normes de compression vidéo sous échantillonnent les informations de chrominance afin de réduire fortement le volume d’informations à mémoriser. 11..22..33 SSoouuss--EEcchhaannttiilllloonnnnaaggee ddeess CCoommppoossaanntteess ddee CChhrroommiinnaanncceess Du fait que les composantes de chrominance ont une largeur de bande beaucoup plus réduite que celle de la luminance, l’œil humain s’avère moins sensible aux variations des chrominances. Cette limite de perception a été exploitée pour réduire la quantité d’informations à coder, sans trop altérer la qualité visuelle des images, en effectuant un sous-échantillonnage des composantes de chrominances. Il existe plusieurs profils de YUV à savoir 4 : 2 : 0, 4 : 2 : 2 et 4 : 4 : 4, la désignation des composantes YUV s’écrit sous la forme 4 : m : n où le nombre 4 représente la fréquence d’échantillonnage de la luminance et les nombres m et n
  16. 16. Chapitre I : Le Codage Vidéo et le Standard H264/AVC 7 représentent la proportionnalité du sous-échantillonnage des composantes de chrominance U et V par rapport à la luminance Y [4]. Le sous-échantillonnage peut être vertical ou/et horizontal. Généralement, le volume des données liées aux chrominances Cb et Cr est divisé par un facteur quatre (sous échantillonnage d’un facteur deux sur les deux dimensions). Ce format d’image dans lequel les informations de chrominances sont sous échantillonnées d’un facteur de quatre est appelé mode 4 : 2 : 0. Dans ce cas, un quart de l’information de couleur est conservé (Figure 1.5). Dans le profil 4 : 2 : 2, on ne garde qu’une ligne sur deux pour les composantes de couleur. Ainsi, seulement la moitié de l’information de couleur est conservée (Figure 1.6). Pour le mode 4 : 4 : 4 toutes les composantes sont codées de la même manière, et donc il n’y a pas de sous-échantillonnage des chrominances (Figure 1.7). Figure 1.5 : Profil 4 :2 :0 du système YUV Figure 1.6 : Profil 4 :2 :2 du système YUV Figure 1.7 : Profil 4 :2 :4 du système YUV
  17. 17. Chapitre I : Le Codage Vidéo et le Standard H264/AVC 8 11..33 PPrriinncciippeess dduu CCooddaaggee VViiddééoo Afin de réduire efficacement le volume d’informations nécessaires à la mémorisation ou à la transmission d’un contenu vidéo, il est nécessaire de réduire autant que possible les redondances d’informations dans le flux. Cette réduction des redondances d’informations doit être réalisée d’une manière contrôlée afin d’affecter au minimum la qualité visuelle après décompression. Il existe une relation liant le taux de compression d’une séquence vidéo et la qualité visuelle de cette dernière. Du fait que les méthodes de compression sans perte n’offrent que de faibles taux, la plupart des codecs vidéo se basent sur d’autres méthodes avec perte, qui permettent d’atteindre des taux élevées avec une certaine dégradation de la qualité visuelle. Les systèmes de codage vidéo avec perte se basent sur l’élimination des redondances temporelle et spatiale qui existent dans une séquence d’images, et ne préservent que les informations relatives au déplacement des objets tout au long de la scène vidéo. Le schéma de codage vidéo le plus courant est le schéma hybride puisqu'il est utilisé dans toutes les normes de codage vidéo (MPEG-x, H.26x) [5]. Il est appelé hybride parce que c'est un schéma en boucle fermée qui utilise les informations déjà codées/décodées pour réaliser le codage de la partie courante à l'aide des différents modules. De plus, ce schéma a toujours la même forme (Figure 1.8), seuls les modules composant diffèrent d'un codeur à l'autre. Figure 1.8 : Schéma hybride d’un encodeur vidéo Les quatre modules importants de ce schéma sont : Estimation et Compensation en Mouvement ; Transformation ; Quantification ; Codage Entropique.
  18. 18. Chapitre I : Le Codage Vidéo et le Standard H264/AVC 9 11..33..11 EEssttiimmaattiioonn eett CCoommppeennssaattiioonn ddee MMoouuvveemmeenntt Le principe de la compression est d'exploiter les redondances présentées naturellement dans le contenu. En compression vidéo, le codage temporel permet de réduire la redondance temporelle en utilisant des données passées et/ou futures pour prédire l'image courante. La première opération réalisée sur une séquence vidéo à coder est de découper chacune de ses images en MBs (MB) 16*16 pixels (pour la norme MPEG-2). Ces MBs sont alors l'unité de compensation en mouvement. Il existe trois types d'images compensées : Les images Intra I Une image I peut être codée, seulement en mode Intra, sans référence à d’autres images. Pour ce type d’images il n’y a ni estimation ni compensation de mouvement. Les images Inter prédites P Une image P est une Inter image prédictive qui fait référence aux parties des images I et/ou P antérieures pour l’encodage. Pour cela et pour chacun des MBs de l'image courante, on recherche dans l'image codée/décodée précédemment le MB qui le caractérise le mieux. On extrait alors le vecteur qui permet de translater le MB candidat vers le MB courant (Figure 1.9). Après cette estimation de mouvement, tous les MBs de l'image courante peuvent être représentés par ceux de l'image précédente de référence. Les images Inter Bi-Prédites B Pour les images B, on suppose, comme pour les images P, que tous les pixels de l'image courante sont prédictibles par translation de ceux d'images de référence. Les images B utilisent les images I et P passées ou futures pour l’encoder. Il s'agit ici d'une compensation "bidirectionally predictive" qui se réfère à des images antérieures et futures (Figure 1.10). Notons que le standard H.264/AVC utilise aussi ces trois types d’images : les images Intra I, les images Inter prédites P et les images Inter Bi-prédites B. Un exemple de configuration et d’ordre de codage des images intra et Inter est illustré dans la figure 1.11.
  19. 19. Chapitre I : Le Codage Vidéo et le Standard H264/AVC 10 Figure 1.9 : Estimation de mouvement pour les images prédites Figure 1.10 : Compensation en mouvement des images bidirectionnelles Figure 1.11 : Configuration et d’ordre de codage d’une séquence vidéo A la sortie du codeur temporel, l’image contient encore une redondance spatiale entre ses blocs adjacents, l’objectif du codage Intra est de décorréler les données de l’image de la trame pour générer les coefficients qui seront compressés par le codeur entropique. Le codage spatial, aussi utilisé pour la compression des images fixes, est basé sur trois étapes : Transformation ; Quantification ; Réorganisation des coefficients. 11..33..22 TTrraannssffoorrmmaattiioonn FFrrééqquueennttiieellllee La transformation a pour but d'exploiter les redondances spatiales contenues naturellement dans les images. Pour cela, on utilise une transformation fréquentielle qui permet de concentrer l'information dans les basses fréquences. En effet, cette transformation permet de réécrire l’image dans le domaine fréquentiel où les coefficients sont décorrélés dans le but de minimiser la dépendance entre les composantes de l’image traitée et de regrouper une grande partie de l’énergie de l’image dans un nombre restreint de coefficients.
  20. 20. Chapitre I : Le Codage Vidéo et le Standard H264/AVC 11 Après l'estimation et la compensation en mouvement (Figure 1.8), l'image prédite est soustraite à l'image courante et ceci uniquement pour les images Inter, les images Intra I étant codées directement sans compensation en mouvement. La transformation s'applique donc aux images I et aux images résiduelles Inter. Elle peut être appliquée à l’image entière ou à des blocs de l’image. On utilise généralement les transformations par blocs pour augmenter le taux de compression, ceci se fait au détriment de la qualité visuelle. La transformation fréquentielle utilisée par plusieurs systèmes de compression vidéo est la transformée DCT qui est définie par [6]:    1 1 , , 0 0 2 1 2 1 cos cos Eqt1.5 2 2 N N u v i ju v i j i u j v N N C CY X                      Où uC et vC sont les coefficients de normalisation définis par : Eq 1.t 6 1 pour k = 0 2 pour k 0 N C k N        Et ,Yu v sont les coefficients DCT de l’image caractérisée par ses pixels ,i jX Cette transformation est caractérisée par sa faible complexité et exige moins de ressources en terme de mémoire et de calcul. Elle est inversible, on peut retrouver l'image originale à partir des coefficients DCT en utilisant la transformée inverse définie par :    1 1 i,j u,v 0 0 2 1 2 1 cos cos Eqt 1.7 2 2 N N u v i u j v u v N N YX C C                           Exemple : Calcul de la DCT d’un bloc 8*8 Soit la matrice 8*8 suivante : 139 144 149 153 155 155 155 155 144 151 1 156 159 156 156 156 150 155 160 163 18 156 156 156 159 161 162 160 160 159 159 159 159 160 161 162 162 155 155 155 161 161 161 161 160 157 157 157 162 162 161 163 162 157 157 157 162 162 161 161 163 158 158 158 X                          Matrice de taille 8*8 pixels
  21. 21. Chapitre I : Le Codage Vidéo et le Standard H264/AVC 12 On effectue la transformation DCT de la matrice précédente à l’aide de l’équation (Eqt 1.5), on obtient la matrice transformée suivante : 1260 -1 -12 -5 2 -2 -3 1 -23 -17 -6 -3 -3 0 0 -1 -11 -9 -2 2 0 -1 -1 0 -7 -2 0 1 1 0 0 0 -1 -1 1 2 0 -1 1 1 2 0 2 0 -1 1 1 -1 -1 Y  0 0 -1 0 2 1 -1 -3 2 -4 -2 2 1 -1 0                          Matrice après DCT (Arrondi au plus proche entier) Le premier élément 0,0Y de la transformée DCT est la valeur moyenne du bloc 8*8 original, alors que les derniers coefficients représentent les hautes fréquences liées aux détails fins du bloc. Jusqu'ici, le schéma est totalement inversible, c'est-à-dire que l'on peut retrouver l'information originale sans perte (en négligeant les erreurs liées aux arrondis de la transformation DCT). Les blocs DCT ainsi obtenus seront par la suite quantifiés. 11..33..33 QQuuaannttiiffiiccaattiioonn L'étape de quantification introduit des pertes dans le schéma de codage. L'œil humain est plus sensible aux basses fréquences qu'aux hautes fréquences, il est donc possible de diminuer l'information contenue dans les hautes fréquences avec une pénalité minimale. De plus, de faibles variations entre les pixels de l'image traitée ne sont pas visibles, on peut donc les supprimer pour ne garder que les fortes variations. Ce sont des opérations que réalise la quantification. La quantification diminue la quantité d'information contenue dans les blocs DCT en augmentant le nombre des valeurs à 0. Elle réalise donc une transformation irréversible qui entraîne des pertes de précision pour la reconstruction des blocs. Elle consiste à diviser chacun des coefficients DCT ,u vY d'un bloc par un pas de quantification scalaire Q et de n'en conserver que la partie entière (Eqt 1.8) : , , ( ) * u v q u v q Y Y arrondi Q Y Y Q Q          Eqt 1.8
  22. 22. Chapitre I : Le Codage Vidéo et le Standard H264/AVC 13 Q est le coefficient, d’une matrice de quantification, associé au coefficient DCT ,u vY Q est l’erreur de quantification. On peut utiliser une matrice de quantification qui associe à chaque coefficient son pas de quantification. Cela permet de donner plus d'importance aux basses fréquences qu'aux hautes fréquences. Dans le cas des images de gris, très souvent les coefficients de la matrice de quantification sont obtenus selon l’équation suivante :  , = 1 1i jQ K i j   Avec K est le pas de quantification Eqt 1.9 La quantification permet aussi de réguler le débit de sortie du codeur. En effet, plus on prendra un pas de quantification grand, plus on diminuera la quantité d'information à coder et donc le débit, mais cela influe sur la qualité de la vidéo. Il y a donc un compromis à trouver entre la qualité et le débit souhaité. 11..33..44 CCooddaaggee EEnnttrrooppiiqquuee Une fois les blocs DCT quantifiés, il ne reste plus qu'à les coder avec un codeur entropique afin de diminuer le débit de transmission. En effet, un tel codage exploite les propriétés statistiques des coefficients quantifiés en utilisant des mots courts pour représenter les événements les plus probables et des mots plus longs pour les occurrences rares. Pour faciliter ce codage, les coefficients DCT quantifiés sont réorganisés. Les coefficients sont d'abord réordonnancés dans un vecteur unidimensionnel en les balayant en zigzag (Figure 1.12). Cet ordonnancement place le coefficient DC en premier dans le vecteur, et les coefficients restants AC sont arrangés des basses vers les hautes fréquences. Lorsque tous les blocs des images (Intra ou Inter) ont été transformés, quantifiés et codés entropiquement, il faut les mettre en forme pour la transmission et/ou le stockage. Figure 1.12 : Balayage en zigzag classique Dans la plupart des normes, le train binaire est composé de plusieurs parties comme la séquence, les images, les MBs, les blocs, etc. (figure 1.13)
  23. 23. Chapitre I : Le Codage Vidéo et le Standard H264/AVC 14 Figure 1.13 : Structure d’un train binaire La séquence avec son en-tête permet de définir le contexte et d'initialiser un décodeur. Cette séquence est divisée en GOP qui est l'unité d'accès aléatoire dans la séquence, chacun des GOP commencera donc avec une image I pour assurer cet accès aléatoire et le point de reprise. Chaque GOP contient un ensemble d'images qui est l'unité d'affichage, images qui sont décomposées en slices représentant des groupes de MBs et servant à la synchronisation. Ces slices sont eux composés de MBs 16*16 qui est l'unité d'estimation/compensation en mouvement, eux-mêmes formés de blocs 8*8, unité de codage DCT. La plupart des CODECs vidéo utilisent les trois fonctions principales décrites auparavant (codage temporel, spatial et entropique). Le groupe MPEG a proposé un modèle de mise en œuvre de ces trois fonctions : le DPCM/DCT. 11..44 MMooddèèllee HHyybbrriiddee DDPPCCMM//DDCCTT ddeess CCOODDEECCss VViiddééoo Les principales normes de codages vidéo libérés depuis le début des années 1990 ont été basées sur le même modèle générique d'un codec vidéo connu sous le nom du modèle hybride DPCM/DCT, qui intègre un étage d’estimation et de compensation en mouvement, un étage de transformation et un codeur entropique. N'importe quel codec compatible avec H.261, H.263, MPEG-1, MPEG-2, MPEG-4 Visual, H.264/AVC doit mettre en œuvre un ensemble similaire de fonctions de base de codage et de décodage. Flux de données de l'encodeur Le schéma de l’encodeur est donné dans la figure 1.14. Il existe deux grandes voies de flux de données dans le codeur, de gauche à droite, elle correspond au sens d’encodage des trames vidéo, et de droite à gauche, correspond au sens de reconstitution des trames encodées. Le flux de codage est le suivant : une trame d'entrée vidéo Fn est présenté pour l'encodage et aussi partitionnée en MBs, correspondant à une région de 16*16 pixels de l'image vidéo ; Fn est comparée à une image de référence, par exemple la trame précédemment codée Fn-1; l'estimateur de mouvement permet de calculer les vecteurs de déplacement entre la trame précédemment reconstruite Fn-1, disponible dans la mémoire interne, et la trame courante Fn, qui est présenté à l'entrée du codeur ;
  24. 24. Chapitre I : Le Codage Vidéo et le Standard H264/AVC 15 basé sur Les vecteurs de mouvement obtenus, le bloc de compensation de mouvement génère une version prédite P de la trame courante ; la trame générée P est soustraite du MB courant pour produire un MB résiduel ; la trame résiduelle résultante Dn subit à une transformation DCT dont le but est de réduire les redondances spatiales existantes dans cette trame. Généralement, Dn est divisée en sous blocs 8*8 ou 4*4 et chaque sous blocs et transformé séparément ; les coefficients DCT obtenus sont quantifiés (X) puis traités en phase avec les vecteurs de mouvement par le codeur entropique ; pour faciliter le codage, les coefficients DCT quantifiés (X) sont réorganisés ; enfin, le vecteur unidimensionnel obtenu après réorganisation, les vecteurs de mouvements et les informations sur l’entête associé sont codés entropiquement pour produire le train binaire. Figure 1.14 : Encodeur vidéo DPCM/DCT Flux de données de reconstruction chaque MB quantifié (X) est remis à l’échelle (Q-1 ) et transformé en inverse IDCT pour produire une trame résiduelle décodée D’n ; à noter que le processus de quantification est non réversible, ce qui signifie que D’n n’est pas identique à Dn, c'est à dire la distorsion a été introduite. dans le but de produire une copie F’n de la trame courante Fn, la trame prédite P est ajoutée à la trame résiduelle décodée D’n. Cette copie sera
  25. 25. Chapitre I : Le Codage Vidéo et le Standard H264/AVC 16 stockée dans la mémoire interne et servira de trame de référence pour le calcul des vecteurs de mouvement de la prochaine trame F’n+1. Le flux de données du décodeur Le schéma du décodeur est donné dans la figure 1.15. le train binaire compressé est entropiquement décodé pour extraire les coefficients, les vecteurs de mouvement et les entêtes pour chaque MB ; la mise à niveau et la réorganisation sont inversées pour produire le MB transformé et quantifié X ; X est déquantifié (Q-1 ) et inversement transformée (IDCT) pour générer la trame résiduelle décodée D’n ; les vecteurs de mouvement décodés sont utilisés pour localiser les MBs 16*16 dans l’image précédente D’n-1 (référence) du décodeur pour générer la version prédite P de la trame courante ; la trame P est ajoutée à D’n pour reconstruire la trame F’n. à cette étape, la trame F’n est prête à être affichée et peut également être stockée en tant que trame de référence pour la prochaine trame décodée F’n+1. Figure 1.15 : Décodeur vidéo DPCM/DCT
  26. 26. Chapitre I : Le Codage Vidéo et le Standard H264/AVC 17 11..55 DDeessccrriippttiioonn DDééttaaiillllééee ddee llaa NNoorrmmee HH..226644//AAVVCC La norme H.264/AVC fait partie des normes de compression vidéo les plus efficaces actuellement. Elle offre un taux de compression supérieur par rapport aux normes antérieures à qualité visuelle constante. Toutefois, sa complexité calculatoire est plus importante. Cette norme est développée conjointement par l'ITU-T VCEG ainsi que l'ISO/CEI MPEG et aussi le produit d'un effort de partenariat connu sous le nom JVT. Les deux normes UIT-T H.264 et ISO/CEI MPEG-4 Part 10 (ISO/CEI 14496-10) sont techniquement identiques, et la technologie employée est aussi connue sous le nom AVC. La première version de la norme a été approuvée en mai 2003 et la plus récente date d'avril 2013 [3]. Le standard H.264/AVC est un codeur vidéo en boucle fermée, tout comme l'ensemble de ses prédécesseurs. En effet, les informations déjà décodées sont utilisées pour le codage de la partie courante. Le schéma global de codage de cette norme est représenté dans la figure 1.16. Figure 1.16 : Schéma global d’un codeur H.264/AVC La séquence en entrée, est une succession d'images (matrices de pixels). Chaque image est découpée en "slices". Un slice est une partie de l'image ou l'image entière en fonction des paramètres d'entrée. Ces slices sont découpés en MBs (bloc de taille 16*16), le MB étant l'unité de codage dans la norme. Chaque MB est codé soit en Intra, soit en Inter. Chacun de ces codages engendre plusieurs résiduels qui sont comparés avec un module de décision. Le résiduel qui donne la meilleure possibilité de codage, en terme de critère débit-distorsion est alors sélectionné.
  27. 27. Chapitre I : Le Codage Vidéo et le Standard H264/AVC 18 Ce résiduel est décorrélé avec la transformée DCT entière. Puis, il est quantifié et les coefficients engendrés sont envoyés vers le codeur entropique sans perte qui produit le train binaire. Le standard H.264/AVC étant un codeur en boucle fermée, il est nécessaire d'introduire une boucle de décodage à l'intérieur de l'encodeur. Par conséquent, les résiduels transformés et quantifiés sont déquantifiés et transformés en inverse à l'intérieur du codeur. Aux blocs ainsi générés, on applique la prédiction inverse. Cette opération consiste à ajouter le prédicteur sélectionné dans le module de décision. Ensuite, un filtre de deblocking est appliqué sur l'image reconstruite, permettant d’éliminer certaines dégradations produites par le module de quantification qui engendre des pertes d'information. Ce filtre lisse les images de référence en bordure des blocs. Enfin, les MBs et slices décodés sont stockés en mémoire. Les blocs décodés de l'image courante, stockés dans ce module, sont utilisés pour le calcul des prédicteurs Intra. De même, les images précédemment décodées et débloquées (lissées) sont utilisées pour le codage Inter. En effet, le mouvement entre le bloc courant et ces images est estimé, le prédicteur engendré par cette estimation de mouvement servira pour la prédiction Inter que l'on appelle généralement compensation de mouvement. Afin que le décodeur soit capable de retrouver ce prédicteur Inter, un vecteur correspondant au mouvement entre le bloc courant et le prédicteur est transmis au décodeur. Les vecteurs issus du codage Inter sont prédits puis envoyés dans le codeur entropique. Ces vecteurs sont ensuite insérés dans le train binaire. Les caractéristiques principales de la chaîne de compression H.264/AVC sont les suivantes : divers modes de prédiction Intra :  treize modes pour la luminance : neuf pour l’Intra 4*4 et quatre pour l’Intra 16*16 ;  Quatre modes pour la chrominance 8*8 ; transformée DCT : elle est simplifiée grâce à l’utilisation d’une transformée DCT entière. Cela reporte en effet la partie décimale des coefficients transformés à l’étape de quantification. Cette approche réduit la complexité calculatoire de la DCT vis-à-vis de celle utilisée dans les normes précédentes ; quantification : le pas de quantification est variable afin de pouvoir accéder à l’image entière, ce qui n’était pas possible avec les normes antérieures et qui laissait des zones inaccessibles pour certains quantificateurs ;
  28. 28. Chapitre I : Le Codage Vidéo et le Standard H264/AVC 19 estimation de mouvement : la taille des blocs est variable et la précision des mouvements atteint le ¼ de pixel ; filtrage après décompression est fait par l’élément "loopfilter" afin d’éliminer certains artéfacts visuels. Cela permet une amélioration notable de la qualité visuelle. Les différentes étapes de ce schéma de codage peuvent être segmentées en deux parties : Le calcul du résiduel ; Le codage du résiduel. Nous décrivons, alors, brièvement ces deux parties dans la suite de ce chapitre. 11..55..11 CCaallccuull dduu RRééssiidduueell Le résiduel du bloc courant, appelé aussi erreur de prédiction, est la différence entre un prédicteur et le bloc courant. L'expression du résiduel e est donnée par l’équation (Eqt 1.10) où ( , )p x y est le pixel du bloc courant à la position ( , )x y et 'p est le prédicteur [5]: ( , ) ( , ) '( , )e x y p x y p x y  Eqt 1.10 L'opération de prédiction inverse est donnée dans l'équation (Eqt 1.11). Le prédicteur 'p est ajouté au résiduel pour retrouver les pixels ( , )p x y du bloc courant. Le décodeur calcule le prédicteur 'p à partir des informations déjà décodées et extraites du train binaire : ( , ) ( , ) '( , )p x y e x y p x y  Eqt 1.11 Le principal but de la compression vidéo est de réduire le volume d’information nécessaire à la transmission de l’information. Parmi les méthodes utilisées pour atteindre cet objectif, des techniques de prédiction (permettant de réduire la redondance d’information) sont efficaces pour diminuer la quantité de données à envoyer ou à stocker. En effet, en sortie de la chaîne de compression, au lieu de transmettre les données de l’image, il est plus intéressant de transmettre les données résiduelles et le mode de prédiction. Les données résiduelles représentent la différence entre l’image originale et l’image prédite. La valeur de ces données résiduelles est généralement faible. Cette propriété des résidus est exploitée afin d’atteindre des taux de compression élevés. Pour la norme H.264/AVC, deux types de prédiction sont utilisés en fonction de la nature des redondances. Si les redondances appartiennent à la même image comme c’est le cas de la figure 1.17, la prédiction Intra est la mieux adaptée. Dans le cas d’une redondance temporelle, c’est-à-dire une ressemblance entre des images successives
  29. 29. Chapitre I : Le Codage Vidéo et le Standard H264/AVC 20 comme sur la figure 1.18, la prédiction Inter est utilisée. Le choix du type de prédiction ne dépend pas seulement du type de redondance mais aussi du type d’image et de la qualité visuelle à atteindre. Figure 1.17 : Prédiction Intra Figure 1.18 : Prédiction Inter 11..55..11..11 PPrrééddiiccttiioonn IInnttrraa La première image d’une séquence est obligatoirement codée en Intra car on ne dispose pas encore d’une image de référence. A son tour, la prédiction Intra utilise deux types de prédiction pour un MB de luminance selon son homogénéité et un troisième type pour la chrominance. Le premier est le type 16*16. Il est appliqué à un MB entier afin de déterminer une direction prédite. Le second est le type 4*4, il est appliqué à un bloc de 16 pixels alors que pour la chrominance il n’y a seulement que l’Intra 8*8 [6]. Prédiction Intra 16*16 : la prédiction Intra 16*16 fait recourt à quatre modes obéissant chacun à une direction et à des équations caractéristiques (Figure 1.19) ; Prédiction Intra 4*4 : si la prédiction Intra 4*4 a été sélectionnée, un MB a seize choix de direction de prédiction. Pour ce type, neuf modes sont proposés pour chaque bloc 4*4. Chaque mode favorise une direction et utilise les positions de pixels voisins qui lui sont appropriés (Figure 1.20) ; Prédiction Intra 8*8 : Les quatre modes de prédiction sont similaires aux modes de prédiction de la luminance 16*16. La seule différence provient de la taille des blocs manipulés qui est alors de 8*8 pixels. En fonction de la ressemblance entre le MB original et le celui prédit, le mode de prédiction fournissant l’erreur résiduelle la plus faible est sélectionné.
  30. 30. Chapitre I : Le Codage Vidéo et le Standard H264/AVC 21 Figure 1.19 : Modes Intra prédiction des blocs de luminance 16*16 Figure 1.20 : Modes Intra prédiction des blocs de luminance 4*4 11..55..11..22 PPrrééddiiccttiioonn IInntteerr La prédiction Inter est employée pour les images possédant une image de référence. Elle est appliquée aux images de type P et B afin d’éliminer les redondances temporelles entre deux images successives. La prédiction Inter identifie la position d’un MB de l’image courante par rapport à sa position dans l’image de référence. Pour cela, il existe de multiples techniques d’estimation de mouvement sont employées. Suite à l’identification du mouvement d’un MB entre deux images successives, il devient alors possible de ne mémoriser que le vecteur de mouvement au lieu de coder tous les pixels du MB. L’efficacité en termes de taux de compression ainsi obtenu se fait au détriment d’une augmentation importante de la complexité calculatoire. Afin d’identifier le mouvement le plus probable, l’ensemble des possibilités est évaluée. Le meilleur mouvement (celui produisant l’erreur résiduelle la plus faible) est ensuite sélectionné. Le codage Inter de la norme H.264/AVC offre un partitionnement variable du MB. Les tailles de bloc possibles sont 16*16, 16*8, 8*16, 8*8, et chaque bloc 8*8 peut avoir un partitionnement 8*8, 8*4, 4*8 ou 4*4 (Figure 1.21). Ce partitionnement variable du MB permet de segmenter le mouvement lorsqu’il est nécessaire, notamment pour les bords des objets [6].
  31. 31. Chapitre I : Le Codage Vidéo et le Standard H264/AVC 22 Figure 1.21 : Partitionnement des MBs pour l’Inter prédiction 11..55..22 CCooddaaggee dduu RRééssiidduueell Le codage des résiduels permet à la fois d'exploiter les redondances spatiales de notre signal et d'éliminer une partie de l'information, afin de réduire la quantité d'information à transmettre. Ces résiduels issus du codage Inter et Intra sont transformés, puis les coefficients générés sont quantifiés avant d'être codés avec un codeur entropique. Dans cette section nous présentons ces trois étapes. 11..55..22..11 TTrraannssffoorrmmaattiioonn FFrrééqquueennttiieellllee Comme nous avons déjà vu, l’étape de transformation a pour objectif de décorréler le signal et de réduire le nombre de coefficients significatifs dans le bloc. Pour cela, on utilise une transformée par bloc permettant de mettre en évidence les fréquences spatiales du signal 2D. En effet, l’énergie des résiduels engendrés par le codage Inter et le codage Intra est concentrée dans les basses fréquences. Notons que dans la norme H.264/AVC on exploite des redondances spatiales contenues dans des résiduels de bloc et les redondances temporelles des blocs de l'image. Dans la majorité des standards de codage vidéo et d'image, la transformée utilisée pour décorréler le signal est celle DCT par bloc. Cette transformée est celle de Fourier sur la partie paire de l'image. La formule de la DCT pour un bloc de taille N*N est donnée par l’équation (Eqt 1.5). Le standard H.264/AVC utilise une transformée entière, qui a les mêmes propriétés que la DCT classique. L'avantage est qu'elle permet de transmettre des coefficients entiers et non des coefficients en virgule flottante, ce qui permet à la fois de réduire le débit et d'éviter les problèmes d'implémentation liés à la précision, comme dans les standards précédents. La transformée entière de la norme H.264/AVC est utilisée pour traiter les informations de luminance mais aussi pour les informations de chrominance. La norme H.264/AVC utilise aussi une transformée de Hadamard pour les coefficients DC de chaque bloc résiduel 4*4 de luminance dans le cas d’une prédiction Intra 16*16 ainsi que les coefficients DC de chaque bloc 2*2 de la chrominance.
  32. 32. Chapitre I : Le Codage Vidéo et le Standard H264/AVC 23 Transformée DCT entière 4*4 : La transformée DCT entière 4*4 d’une matrice d’entrée X est donnée par l’équation suivante (Eqt 1.12) [7] : * *AT Y A X Avec 1 1 1 1 2 1 -1 -2 1 -1 -1 1 1 -2 2 -1 A             Eqt 1.12 Comme on peut le voir, l'implémentation de cette transformée ne nécessite que des décalages et des additions, ce qui engendre une faible complexité par rapport à la DCT classique de l'équation (Eqt 1.5). Notons qu'une partie de la transformée est effectuée dans l'étape de quantification, ce qui permet d'obtenir l'équation (Eqt 1.12) contenant uniquement des entiers compris entre -2 et 2. Enfin la norme H.264/AVC permet d'utiliser une transformée DCT de taille 8*8 définie par (Eqt 1.13) : * *AT Y A X Avec 1 1 1 1 1 1 1 1 5 3 2 1 -1 -2 -3 -5 3 1 -1 -3 -3 -1 1 3 3 -1 -5 -2 2 5 1 3 1 -1 -1 1 1 -1 -1 1 2 -5 1 3 -3 -1 5 -2 1 -3 3 -1 -1 3 -3 1 1 A  -2 3 -5 5 -3 2 1                           Eqt 1.13 Cette transformée est plus complexe que la DCT 4*4, néanmoins sa complexité reste inferieure à celle de la DCT classique de l'équation (Eqt 1.5). Transformée 4*4 des coefficients DC de luminance : Si le MB est codé en mode Intra 16*16 (où toute la composante luminance 16*16 est prédite à partir des pixels voisins), chaque bloc résiduel 4*4 est d'abord transformé à l'aide de la transformée «noyau» décrite ci-dessus (Eqt 1.12). Le coefficient DC de chaque bloc 4*4 est alors transformé à nouveau en utilisant une transformée de Hadamard 4*4 (Eqt 1.14) : / 2 1 1 1 1 1 1 1 1 1 1 -1 -1 1 1 -1 -1 * * 1 -1 -1 1 1 -1 -1 1 1 -1 1 -1 1 -1 1 -1 LLY W                                     Eqt 1.14 LW est un bloc 4*4 des coefficients DC de luminance et LY est le bloc après la transformation.
  33. 33. Chapitre I : Le Codage Vidéo et le Standard H264/AVC 24 Transformée 2*2 des coefficients DC de chrominance : Chaque composante de chrominance dans un MB est constituée de quatre blocs 4*4. Chaque bloc 4*4 est transformé comme décrit précédemment (Eqt 1.12). Les coefficients DC de chaque bloc 4*4 de coefficients sont regroupés dans des blocs de 2*2 et sont transformés avant d’être quantifiés : 1 1 1 1 * * 1 1 1 1CCY W                   Eqt 1.15 CW est un bloc 2*2 des coefficients DC de chrominance et CY est le bloc après la transformation. La figure 1.22 illustre le regroupement des coefficients DC de luminance dans des blocs 4*4 ainsi ceux de chrominance dans des blocs 2*2 : Figure 1.22 : Regroupement des coefficients DC de Luma et ceux de Chroma 11..55..22..22 QQuuaannttiiffiiccaattiioonn La quantification est l’étape responsable de la perte d’information (Eqt 1.8). En effet, Cette opération consiste à diviser chaque coefficient du résiduel du bloc transformé par son coefficient de quantification provenant d'une matrice de quantification (Eqt 1.9) et à ne garder que la partie entière dans le but d’éliminer les coefficients hautes fréquences afin d’augmenter le nombre de coefficients nuls dans la représentation fréquentielle de l’image. La valeur du pas de quantification est définie dans la norme. Sa valeur est comprise entre 1 et 52 en fonction de la qualité visuelle souhaitée [8]. Lorsque le pas de quantification nommé pQ possède la valeur 1, la qualité visuelle est optimale mais le taux de compression est très faible. A l’inverse lorsque pQ a pour valeur 52,
  34. 34. Chapitre I : Le Codage Vidéo et le Standard H264/AVC 25 l’ensemble des hautes fréquences est supprimé de l’image, cela fourni un fort taux de compression mais aussi une piètre qualité visuelle. Dans les normes vidéo précédentes, le pas de quantification augmente par pas constant, ce qui entraîne des zones inaccessibles pour certains quantificateurs. En effet, le pas de quantification pQ de la norme H.264/AVC donne à l’encodeur la possibilité d’un contrôle exact et souple permettant d’améliorer le compromis entre débit binaire et qualité. 11..55..22..33 CCooddaaggee EEnnttrrooppiiqquuee A la suite de la quantification, la matrice du résiduel transformé contient beaucoup de valeurs égales à zéro. La matrice quantifiée va être parcourue par ordre croissant des fréquences. Notons que les basses fréquences se situent en haut à gauche et les hautes fréquences se situent en bas à droite du bloc des coefficients. A la suite de ce parcours dit en zigzag, on obtient un vecteur unidimensionnel qui va être codé à l'aide de l'algorithme RLE. Cet algorithme consiste à remplacer toute suite de bits ou de caractères identiques par un couple (nombre d'occurrences ; bit ou caractère répété). Le nouveau vecteur généré par le RLE est codé soit à l'aide du CAVLC, soit à l'aide du CABAC en fonction du profil de la norme utilisé. Ces deux codages sont adaptés au contexte, ce qui signifie que pour chaque composante (résiduel, mode, vecteur, etc.) le contexte utilisé dépend des informations précédemment décodées. Le codage CAVLC est un codage adaptatif à longueur variable. C’est la technique employée par défaut. Ce choix est lié à sa faible complexité calculatoire. Il est disponible dans tous les profils et il est l’unique mode de codage pour le profil Baseline. Le codage CAVLC est moins complexe que le codage CABAC mais il est moins efficace en terme de compression de l’information surtout pour les flux vidéo à haut débit. Le codage CABAC est un codage disponible à partir du profil Main Profile. Le gain en termes de débit binaire par rapport à l’utilisation de CAVLC se situe entre 10% et 15% [6].
  35. 35. Chapitre I : Le Codage Vidéo et le Standard H264/AVC 26 11..66 RRééssuumméé dduu CChhaappiittrree Dans ce chapitre, après une présentation synthétique du principe de compression vidéo, nous avons détaillé le fonctionnement des différents blocs du CODEC H.264/AVC. Ce standard fournit des performances nettement supérieures en comparaison aux normes antérieures. Cependant, cette amélioration des performances s’accompagne d’une augmentation de la complexité calculatoire. L’augmentation de la complexité calculatoire implique un travail de conception long et complexe pour les intégrateurs en charge de son implantation matériels. Depuis la fin de la normalisation du standard H.264/AVC, le groupe JVT s'est focalisé sur la normalisation de l'annexe scalable H.264/SVC de H.264 et l'annexe multivue H.264/MVC. Cependant, les activités classiques d'amélioration du codage vidéo ont continuée durant cette période. Les nouveaux formats de contenus HD et Ultra HD et les progrès réalisés en matière d’algorithmes de compression- décompression vidéo ont imposé la création et l'utilisation de nouveaux codecs. Cette nécessité a conduit au développement d’un nouvel CODEC vidéo nommé HEVC, pour High Efficiency Video Coding, finalisé depuis Janvier 2013. Cette norme est basée sur la technologie de son prédécesseur H.264/AVC. Elle supporte les résolutions 1080p et Ultra HD et permet une amélioration de 50% du taux de compression avec une qualité visuelle accrue de 25%. Cette amélioration des performances est obtenue au détriment de la complexité calculatoire des étapes de compression et de décompression.
  36. 36. Chapitre II : Le Standard HEVC, Caractéristiques et Nouveautés
  37. 37. Chapitre II : Le standard HEVC, Caractéristiques et Nouveautés 28 22..11 IInnttrroodduuccttiioonn La norme HEVC est le plus récent projet développé conjointement par l’UIT-T VCEG ainsi que l’ISO/CEI MPEG, et aussi le produit d'un effort de partenariat connu sous le nom JVT. L’UIT-T a produit H.261 et H.263 tandis que l’ISO/IEC a produit MPEG-1et MPEG-4 visuel, et les deux organismes ont développé conjointement les deux normes H.262/MPEG-2 et H.264/MPEG-4 AVC, qui est le prédécesseur majeur de HEVC. Ces deux normes qui ont été produites conjointement ont eu un impact particulièrement fort et ont trouvé leur place dans une grande variété de produits qui sont de plus en plus répandue dans nos vies quotidiennes. Tout au long de cette évolution, des efforts soutenus ont été déployés pour maximiser la capacité de compression et améliorer d'autres caractéristiques telles que la robustesse de la perte de données, tout en tenant compte des ressources de calcul qui étaient pratiques pour une utilisation dans les produits au moment du déploiement attendu de chaque norme. HEVC a été conçu pour répondre essentiellement à toutes les applications existantes de H.264/AVC et de se concentrer particulièrement sur deux questions clés : augmentation de la résolution vidéo et l'utilisation accrue des architectures de traitement parallèle. En effet, cette norme assure une réduction de débit de 50% par rapport au standard précédant H.264/AVC avec une qualité vidéo perceptive égale, ainsi elle supporte une résolution de 7680*4320 pixels. La première version de la norme HEVC est finalisée en janvier 2013 [1]. Dans ce chapitre nous présentons un aperçu général des caractéristiques techniques du standard HEVC, puis nous expliquons son architecture globale et ses technologies de codage. 22..22 AArrcchhiitteeccttuurree GGlloobbaall dduu CCOODDEECC HHEEVVCC Le standard HEVC utilise le même modèle générique du CODEC vidéo nommé DPCM/DCT que son prédécesseur H.264/AVC. La figue 2.1 représente le schéma de principe de l’encodeur HEVC. La source vidéo, constitué d'une séquence de trames vidéo, est codée par l’encodeur vidéo HEVC pour créer un flux binaire compressé. Le train de bits compressé est stocké ou transmis. Un décodeur vidéo décompresse le flux binaire afin de créer une séquence de trames décodées. Le codec HEVC a la même structure de base que les normes précédentes telles que MPEG-2 et H.264/AVC. Cependant, HEVC contient de nombreuses améliorations telles que [9] : partitionnement plus souple de la trame vidéo ; une plus grande flexibilité dans les modes de prédiction et de transformation blocs partitionnés ;
  38. 38. Chapitre II : Le standard HEVC, Caractéristiques et Nouveautés 29 interpolation et filtrage plus sophistiqués ; prédiction et signalisation des modes et des vecteurs de mouvement plus complexes ; intégration du traitement parallèle dans le profil High-level. Figure 2.1 : Architecture de l’encodeur HEVC Vue de toutes ces améliorations, Il en résulte une norme de codage vidéo permettant une meilleure compression, au détriment de la complexité des étapes de traitement de codage et de décodage. Avec cette norme, il est possible de stocker ou de transmettre des vidéos plus efficacement que les technologies précédentes telles que H.264/AVC. Cela signifie que le codec HEVC permet d’offrir une meilleure compression avec une qualité comparable à H.264/AVC. Les étapes effectuées par un encodeur vidéo sont: partitionnement de chaque image en plusieurs unités ; prédiction de chaque unité en utilisant la prédiction Inter ou Intra ; transformation et quantification du bloc résiduel ; codage entropique des données du contrôle, des coefficients transformés et quantifiés, des données de prédictions et de filtres. Au niveau du décodeur, les fonctions appliquées dans l’encodeur seront inversées pour reconstruire la trame vidéo originale.
  39. 39. Chapitre II : Le standard HEVC, Caractéristiques et Nouveautés 30 22..33 PPaarrttiittiioonnnneemmeenntt AAddaappttaattiiff dd’’uunnee IImmaaggee VViiddééoo Le standard HEVC à garder la même architecture de codage hybride de base que les versions précédentes, telle que H.264/AVC. Une différence importante réside dans l’utilisation de nouvelles structures et unités de codage, de prédiction et de transformation, à savoir : CTU, CU, CTB, CB, PB et TB à la place des MB 16*16 et des blocs 4*4 pour H.264/AVC. HEVC divise l'image en unités CTUs, la largeur et la hauteur de la CTU sont signalées dans un ensemble de paramètres, ce qui signifie que toutes les CTUs dans une séquence vidéo ont la même taille: 64*64, 32*32 ou 16*16 (Figure 2.2). Nous devons comprendre une convention de nomination importante. Dans la norme HEVC, si quelque chose est appelé xxUnit, il indique une unité logique de codage qui est à son tour codé en un flux de bits. D'autre part, si quelque chose est appelé xxBlock, il indique une partie de tampon de trame vidéo où un processus est la cible. CTU est donc une unité logique de codage. Il est généralement composé de trois blocs, à savoir le bloc de luminance (Y) et deux blocs de chrominance (Cb et Cr), et des éléments de syntaxe associés (Figure 2.3). Chaque bloc est appelé CTB. Figure 2.2 : Partitionnement d’image en unités CTUs Figure 2.3 : Partitionnement d’unité CTU en unités CTB
  40. 40. Chapitre II : Le standard HEVC, Caractéristiques et Nouveautés 31 Chaque CTB a toujours la même taille que CTU : 64*64, 32*32 ou 16*16. En fonction de partie de la trame vidéo, la CTB peut être trop grande pour décider si nous devons effectuer une prédiction Inter ou Intra. Par conséquent, chaque CTB peut être différemment divisé en plusieurs CBs et chaque CB devient le point de décision de type de prédiction. Le bloc CTB peut contenir une seule CU ou peut être divisé pour former plusieurs CUs, et chaque CU est associée aux unités de prédiction PU et de transformation TU. Certains CTB sont divisés en des CBs 16*16 tandis que d'autres sont répartis en des CBs 8*8. La figure 2.4 illustre comment peut être divisé un CTB 64*64 en des CBs. CB est le point de décision permettant de déterminer le type de prédiction à utiliser. Plus précisément, le type de prédiction est codé en CU. CU est constituée de trois CBs (Y, Cb et Cr) et les éléments syntaxiques associés (Figure 2.5). Le bloc CB est assez bon pour le choix du type de prédiction, mais il pourrait être encore trop grand pour stocker les vecteurs de mouvement ou le mode de prédiction Intra. Par exemple, un très petit objet comme la neige peut se déplacer au milieu de CB 8*8. Par conséquent, le bloc PB a été introduit. Chaque CB peut être différemment divisé en plusieurs PBs en fonction de la prédictibilité temporelle et/ou spatiale (Figure 2.6). Une fois que la prédiction est faite, nous avons besoin de coder le résiduel résultant (différence entre l'image prédite et l'image réelle) avec la transformée DCT entière. Encore une fois, CB pourrait être trop grand car un CB peut contenir à la fois une partie haute fréquence et une partie basse fréquence. Par conséquent, chaque CB peut être différemment divisé en plusieurs TBs (figure 2.7). Figure 2.4 : Partitionnement de bloc CTB en blocs CBs Figure 2.6 : Partitionnement de bloc CB en blocs PBs Figure 2.5 : Partitionnement d’unité CU en bloc CBs Figure 2.7 : Partitionnement d’unité CB en unités TBs
  41. 41. Chapitre II : Le standard HEVC, Caractéristiques et Nouveautés 32 22..44 PPrrééddiiccttiioonn SSppaattiiaallee eett TTeemmppoorreellllee ddeess UUnniittééss Le mode de prédiction pour l’unité CU est signalé comme étant Intra ou Inter. Lorsque le mode de prédiction est signalé comme Intra, la taille de bloc au cours de laquelle le mode Intra est établie est la même que celle de CB pour toutes les blocs à l'exception de la plus petite taille CB qui est autorisé dans le flux binaire. Pour ce dernier cas, un flag est présent qui indique si le CB est divisé en quatre quadrants qui ont chacun leur propre mode de prédiction Intra. La raison pour laquelle cette division est activée est de choisir des modes de prédiction Intra distincts pour les blocs de taille aussi petits que 4*4 pixels. Lorsque le mode de prédiction Inter est signalé, les blocs CBs de luminance et de chrominance sont divisés en un, deux, ou quatre blocs de prédiction PBs. La division en quatre PBs n'est autorisée que lorsque la taille de CB est égale à la taille minimale autorisée. Quand un CB est divisé en quatre PBs, chaque PB couvre un quart de CB. Quand un CB est divisé en deux PBs, différents types de partitionnement sont possibles. Les possibilités de partitionnement de CB sont représentées sur la figure 2.8 [10]. Figure 2.8 : Partitionnement de bloc CB en blocs PBs 22..44..11 PPrrééddiiccttiioonn IInnttrraa oouu SSppaattiiaallee Dans la prédiction Intra, Les pixels sont prédits à partir des pixels reconstruits de blocs voisins. Les types de mode de prédiction restent identiques : DC, plane, horizontal/vertical, et directionnelle ; bien que la nomenclature a changé avec plane et angulaire, respectivement, correspondant au mode plane de H.264/AVC et modes directionnels. Les directions de prédiction possibles sont indiquées sur la figure 2.9.a, les prédictions plane et peuvent également être utilisés. Prédiction Angulaire La prédiction Intra dans le standard HEVC est assez similaire à H.264/AVC, mais se prolonge de manière significative, principalement en raison de la taille accrue du PB et une augmentation du nombre de directions de prédiction. Comparativement à 8 modes de prédictions Intra directionnelles de H.264/AVC, HEVC supporte 33 modes notés Intra_Angular[k] où k désigne le numéro du mode et variant de 2 à 34 [10].
  42. 42. Chapitre II : Le standard HEVC, Caractéristiques et Nouveautés 33 Lorsque le mode Intra_Angular est utilisé, chaque PB est prédit directionnellement à partir des pixels spatialement voisins qui sont déjà reconstruits. Pour un PB de taille N*N, un total de 4N+1 pixels spatialement voisins peuvent être utilisés pour la prédiction, comme indiqué dans la Figure 2.9.b. Pour la norme HEVC, le processus de prédiction des modes Intra_Angular est uniforme dans toutes les tailles de bloc et les directions de prédiction, alors que H.264/AVC utilise pour chaque taille de bloc un processus de prédiction différent. Cette uniformité conceptuelle est particulièrement souhaitable, car HEVC prend en charge une grande variété de tailles de PB et du nombre de directions de prédiction par rapport à H.264/AVC. Prédiction DC et planaire En plus de la prédiction Intra_Angular qui cible les régions ayant des bords directionnels, HEVC prend en charge deux autres méthodes de prédictions alternatives, Intra_Planaire et Intra_DC qui sont similaire à ceux de H.264/AVC [6]. La prédiction Intra_DC utilise une valeur moyenne des pixels de référence pour la prédiction, alors que les valeurs moyennes des deux prédictions linéaires, en utilisant les quatre pixels d'angle de référence, sont utilisées dans la prédiction Intra_Planaire pour éviter des discontinuités le long des bords des blocs. Le mode de prédiction Intra_Planaire est supporté par toutes les tailles de bloc dans HEVC tandis que H.264/AVC ne le supporte que lorsque la taille du bloc de luminance est de 16*16 pixels, et sa prédiction planaire fonctionne un peu différemment que celle dans HEVC Figure 2.9.a : Modes de prédiction de l’Intra_Angular Figure 2.9.b : Exemple de prédiction de l’Intra_Angular
  43. 43. Chapitre II : Le standard HEVC, Caractéristiques et Nouveautés 34 22..44..22 PPrrééddiiccttiioonn IInntteerr oouu TTeemmppoorreellllee Les pixels de PB pour un Inter CB sont obtenus à partir de ceux d'un bloc correspondant dans l'image de référence. Comme dans H.264/AVC, HEVC assure une précision d’un quart de pixel de vecteurs de mouvements entre les pixels de luminance. Pour les pixels de chrominance, la précision de vecteur de mouvement est déterminée en fonction du format d'échantillonnage de chrominance. Pour le format 4:2:0, la précision est d’un huitième de pixel. HEVC introduit un nouveau mode dans la prédiction Inter, dit de fusion, qui définit tous les paramètres de mouvement d’un bloc d’image Inter. Le mode de fusion et le processus de prédiction de vecteur de mouvement permettent à une image de réutiliser les vecteurs de mouvements des images antérieures. Alors que pour H.264/AVC, les vecteurs de mouvement sont propres. Par conséquent, HEVC réduit les besoins en mémoire en gardant un seul vecteur de mouvement par bloc 16*16 pixels. 22..55 TTrraannssffoorrmmaattiioonn eett QQuuaannttiiffiiccaattiioonn Comme H.264/AVC, HEVC utilise la transformation DCT entière bidimensionnelle, pour transformer les blocs résiduels. Contrairement au standard H.264/AVC qui utilise deux transformées de tailles 4*4 (profil Baseline) et 8*8 (High profil), son successeur HEVC supporte une large gamme de transformées de tailles 4*4, 8*8, 16*16 et 32*32. En plus de la transformée DCT entière, nommée aussi transformée ICT, HEVC dispose d’une autre transformée appelée DST Cette transformée est plus adaptée pour transformer les blocs résiduels de luminance prédit en Intra car elle fournit un gain de performance, d’environ 1%, par rapport à DCT. Pour la quantification, HEVC utilise essentiellement la même quantification contrôlée par un paramètre de quantification (QP) comme dans H.264/ AVC. La gamme des valeurs QP varie entre 0 et 51, et le pas de quantification a été multiplié par un facteur de six [1]. Etant donné que les coefficients des matrices de la transformée DCT entière, sont proches aux coefficients réels de la fonction de base DCT, la matrice de mise à l’échelle qui est incorporé dans le module de déquantification, pour la norme H.264/AVC, n’est pas utilisée dans le standard HEVC, ce qui a permis une réduction importante de la taille de mémoire intermédiaire, en particulier lorsqu’on considère que la taille de la transformation est de 32*32 pixels. Dans le chapitre suivant nous détaillerons le module de la transformée DCT entière du standard HEVC.
  44. 44. Chapitre II : Le standard HEVC, Caractéristiques et Nouveautés 35 22..66 CCooddaaggee EEnnttrrooppiiqquuee Contrairement au standard H.264/AVC qui dispose deux codeurs entropiques CAVLC et CABAC, HEVC définit CABAC comme l’unique codeur entropique. CABAC comporte trois étapes: la binarisation d'éléments de syntaxe, de la modélisation de contexte, et le codage arithmétique binaire. Il y a un certain nombre de différences dans la modélisation du contexte et la binarisation comme décrit ci- dessous. Dans le développement de HEVC, un effort considérable a été consacré à réduire le nombre de contextes. La version 1.0 du HM présente plus de 700 contextes, alors que la version 8.0 a seulement 154. Ce chiffre se compare favorablement à H.264/AVC, où 299 contextes sont utilisés. Lorsqu’on compare la réduction de 53% dans le codage résiduels avec la réduction de 32% pour les éléments de syntaxe restants, il devient clair que la plupart des efforts ont été mis en réduisant le nombre de contextes associés à la syntaxe résiduelle. Cette réduction du nombre de contextes contribue à diminuer la quantité de mémoire requise par le décodeur entropique. Une méthode généralement utilisée pour déterminer les contextes dans H.264/AVC est d'utiliser les relations de voisinage spatial. Par exemple, en utilisant les valeurs en haut et à gauche pour trouver un contexte pour le bloc courant. Dans HEVC ces dépendances spatiales ont été essentiellement évitées afin de réduire le nombre des mémoires tampons de lignes. 22..77 FFiillttrreess ddee DDéébbllooccaaggee eett SSAAOO Le filtre de déblocage de HEVC repose sur les mêmes principes que dans H.264/AVC et partagent de nombreux aspects de la conception. Cependant, il diffère de façon à avoir un impact significatif sur la complexité. Alors que dans H.264/AVC chaque bord 4*4 peut être filtré. HEVC limite le filtrage sur les bords 8*8, cela permet de réduire de moitié le nombre de modes de filtrage qui doivent être calculés et le nombre d'échantillons qui peuvent être filtrés. L'ordre dans lequel les bords sont traités est également modifié de façon à permettre un traitement parallèle. Une image peut être segmentée en blocs 8*8 qui peuvent tous être traités en parallèle, car seuls les bords internes de ces blocs qui doivent être filtrés. Notez que les bords verticaux sont filtrés avant les bords horizontaux. Par conséquent, les échantillons modifiés résultant de la filtration des bords verticaux sont utilisés dans le filtrage des bords horizontaux. Cela permet des implémentations parallèles. Les bords verticaux et horizontaux sont tous filtrés en parallèle. Une autre implémentation permettant le traitement parallèle simultané des bords verticaux et horizontaux est que le processus de filtrage de bord horizontal est retardé d'une manière telle que les échantillons qui doivent être filtrés ont déjà été traitées par le filtre de bord vertical.
  45. 45. Chapitre II : Le standard HEVC, Caractéristiques et Nouveautés 36 Cependant, il existe également des aspects de HEVC qui augmentent la complexité du filtre, tel que l'addition de l'écrêtage dans le mode de filtrage solide. Comparé à H.264/AVC, où un seul filtre de déblocage est appliqué dans la boucle de décodage, le standard actuel HEVC dispose d'un autre filtre supplémentaire SAO. Ce filtre ajoute une étape supplémentaire, ce qui augmente la complexité. Cette amélioration consiste à ajouter des valeurs de décalage à certains échantillons qui sont obtenues à l’aide d’une table de consultation dont le but est de minimiser supplémentairement les erreurs de reconstruction et d'améliorer la netteté des bords. En plus, le SAO est très efficace pour supprimer les pseudo-bords dits «artéfacts de bande", ainsi que les "artefacts" de sonnerie provenant des erreurs de quantification des composantes haute fréquence dans le domaine de la transformation. 22..88 RRééssuumméé dduu CChhaappiittrree La norme HEVC est le point de départ de notre projet. Dans ce chapitre, nous avons détaillé les différents modules composants l’architecture de cette norme, leurs caractéristiques, leurs améliorations ainsi leurs nouveautés par rapport à leur homologues dans le standard H.264/AVC. L’un des modules qui a connu des améliorations est le bloc de transformation DCT entière ou ICT. Contrairement au standard H.264/AVC qui dispose, seulement, deux transformées de tailles 4*4 et 8*8, HEVC supporte une large gamme de transformée de tailles 4*4, 8*8, 16*16 et 32*32. Ces améliorations et autres ont permis au CODEC HEVC de supporter les résolutions 1080p et Ultra HD et une amélioration de 50% du taux de compression avec une qualité visuelle accrue de 25%. Cette amélioration des performances est obtenue au détriment de la complexité calculatoire des étapes de compression et de décompression. Dans le chapitre suivant, nous allons étudier, plus particulièrement, le module de la transformée DCT entière du standard HEVC, qui est l’objet de notre projet, ainsi nous démontrons les différentes étapes mathématiques amenant à trouver la transformée entière ICT à partir de la DCT classique et les matrices approximées de la transformée DCT 4*4, 8*8, 16*16 et 32*32.
  46. 46. Chapitre III : Etude du Module de la Transformée Entière ICT du Standard HEVC
  47. 47. Chapitre III : Etude du module de la transformée ICT du standard HEVC 38 33..11 IInnttrroodduuccttiioonn La transformée DCT, et en particulier la DCT entière, ou ICT, est couramment utilisée en traitement d'image et de vidéo, et spécialement en compression. La DCT possède en effet une excellente propriété de « regroupement » de l'énergie : l'information est essentiellement portée par les coefficients basses fréquences. Dans ce chapitre, nous détaillons, plus particulièrement, le fonctionnement du module de la transformée ICT du standard HEVC, qui est l’objet de notre projet, ainsi nous démontrons les différentes étapes mathématiques amenant à trouver la transformée ICT à partir de la DCT classique et ces matrices approximées. 33..22 SSttrruuccttuurree ddee CCooddaaggee En H.264/AVC, l’unité de codage de base est le MB de taille 16*16 pixels. Mais HEVC utilise plusieurs unités de base, à savoir CU, PU, et TU. CU est l’unité de codage de base, comme le MB en H.264/AVC. Il dispose de plusieurs tailles. PU est l’unité de prédiction de base. Elle est définie après le dernier niveau de partitionnement de CU. Alors CU peut encore être divisé en PU. TU est l’unité de base pour la transformation et la quantification, sa taille doit être inférieure ou égale à la taille de CU, mais elle peut être plus grande que la taille de PU. La structure globale de codage est caractérisée par les unités CU, PU et TU. En utilisant les différentes tailles de CU, un encodage efficace pour divers résolution spatiale est possible. En général, lorsque la résolution spatiale est faible ou les valeurs de pixels changent de manière significative dans la zone locale, la prédiction Intra et Inter pour les petites CU sont plus utiles, comme indiqué dans la Figure 3.1. Lorsque cette résolution est élevée ou les valeurs de pixels changent un peu dans la zone locale, les grandes CU peuvent améliorer l'efficacité du codage, comme démontré dans la Figure 3.2. Lorsque les grandes unités de codage CU sont utilisées pour la prédiction à la place de petites CU, l’erreur de prédiction diminue [11]. HEVC exploite la structure RQT [12,13]. Le résidus de prédiction est transformé et quantifié en se basant sur la structure RQT comme indiqué dans la Figure 3.2. La taille de l’unité TU est déterminée de façon adaptative en fonction des caractéristiques de résidus de prédiction des PUs. L’unité PU peut être subdivisée en plusieurs TUs au cas où les résidus de prédiction des partitions TUs dans l’unité PU sont très différents. Au contraire, plusieurs PUs peuvent être combinées en une TU si les résidus de prédiction de PUs combinées dans l’unité TU sont assez semblables. En transformant et en quantifiant les TUs de différentes tailles, l'efficacité globale de codage peut être considérablement améliorée.
  48. 48. Chapitre III : Etude du module de la transformée ICT du standard HEVC 39 Figure 3.1.a : Partitionnement petit d’une CU Figure 3.1.b : Partitionnement grand d’une CU Figure 3.2 : Processus de partitionnement d’une unité CU La référence HM 4.0 HEVC utilise huit unités de transformation de tailles TU 32*32, TU16*16 TU 8*8, TU 4*4, TU 32*8, TU 8*32, TU 16*4, TU 4*16. La taille d’une TU dépend de TUDepth, CUSize et PUSize comme indiqué dans les tableaux ci-dessous. Les tailles de TUs de chrominance correspondantes peuvent être obtenues à partir du même tableau en considérant que la moitié de la taille de CU, sauf lorsque la taille de TU de luminance est TU 4*4. Dans ce cas, la TU de chrominance a la même taille (TU 4*4), c’est équivalent à la fusion de quatre TUs dans un bloc 8*8. Pour CU 8*8, TU 4*4 est la seule taille possible pour les TUs de chrominance. CU TUDepht CU 8*8 CU 16*16 CU 32*32 CU 64*64 0 TU 8*8 TU 16*16 TU 32*32 - 1 TU 4*4 TU 8*8 TU 16*16 TU 32*32 2 - TU 4*4 TU 8*8 TU 16*16 Taille de PU : N*N, 2N*2N CU TUDepht CU 8*8 CU 16*16 CU 32*32 CU 64*64 0 TU 8*8 TU 16*16 TU 32*32 - 1 TU 4*4 TU 4*16 TU 8*32 TU 32*32 2 - TU 4*4 TU 4*16 TU 8*32 Taille de PU : N*N, nL*2N, nR*2N
  49. 49. Chapitre III : Etude du module de la transformée ICT du HEVC 40 CU TUDepht CU 8*8 CU 16*16 CU 32*32 CU 64*64 0 TU 8*8 TU 16*16 TU 32*32 - 1 TU 4*4 TU 4*16 TU 8*32 TU 32*32 2 - TU 4*4 TU 4*16 TU 8*32 Taille de PU : 2N*N, 2N*nU, 2N*nD Après le partitionnement et la prédiction des unités CUs, les unités TUs subissent à une transformation dans le domaine fréquentiel dont le but est d’éliminer les redondances spatiales. C’est l’objectif de la partie suivante. 33..33 EEttuuddee dduu MMoodduullee ddee llaa TTrraannssffoorrmmééee EEnnttiièèrree IICCTT dduu HHEEVVCC Le standard HEVC utilise la transformée entière ICT. Cette transformée, comme DCT, permet de concentrer la plupart de l'énergie du signal dans les coefficients DC d’indices faibles. Après la quantification, la plupart des coefficients AC passe à zéro, ce qui entraîne une matrice creuse de coefficients quantifiés. La matrice 2D est réorganisée en un vecteur 1D à l’aide d’un balayage en zigzag de telle sorte que le vecteur possède tous les coefficients différents de zéro au début suivi d'une longue queue de coefficients nuls. Le codeur entropique peut ensuite compresser efficacement cette information (Figure 3.3). La Figure 3.4 montre un histogramme de la fraction de coefficients différents de zéro présents dans une séquence vidéo codée par HEVC typique. Figure 3.3 : Positionnement du module ICT dans une chaîne de codage Figure 3.4 : Histogramme normalisé de la fraction de coefficients non nuls. On constate que la plupart de l'énergie est concentrée dans le premier coefficient DC.
  50. 50. Chapitre III : Etude du module de la transformée ICT du HEVC 41 Toutes les données résiduelles de chaque CU résultantes de la prédiction sont transformées en utilisant une transformée en bloc qui se base sur la DCT entière ou la DST. Un ou plusieurs transformées de taille 32*32, 16*16, 8*8 et 4*4 sont appliquées à ces blocs de données résiduelles. Par rapport à H.264/AVC, la transformée HEVC est intensivement compliquée en calcul. Ceci est le résultat de deux facteurs : transformée de grandes tailles : la plus grande transformée en H.264 est de taille 8*8 pixels, alors HEVC peut avoir jusqu'à 32*32 pixels. Une matrice 8*8 pixels nécessite huit multiplications par ligne par rapport à trente deux multiplications pour une matrice de 32*32 pixels, et donc, une augmentation de la complexité de quatre fois. grande précision de transformation : Il est préférable de voir les deux matrices (dans les sections 1.1.1.3 et 3.1.1.2) DCT 8*8 pixels des deux normes H.264/AVC et HEVC. La norme H.264/AVC utilise une précision de cinq bits par rapport à une précision de huit bits pour HEVC. 33..33..11 TTrraannssffoorrmmééee DDCCTT EEnnttiièèrree HEVC spécifie des procédés de transformation permettant de fournir un codage efficace des données vidéo, afin d'éliminer l’inadéquation entre les encodeurs et les décodeurs et de faciliter les implémentations. Les normes antérieures de compression d'image et de vidéo tels que JPEG, MPEG-2 et MPEG-4 Visual spécifient une transformée en cosinus discrète bidimensionnelle (DCT 2D) appliquée aux données résiduelles de l'image. Dans ces normes, la transformée est définie par l’équation Eqt 3.1 :    1 1 , , 0 0 2 1 2 1 cos cos Eqt 3.1 2 2 N N u v i ju v i j i u j v N N C CY X                      Où uC et vC sont les coefficients de normalisation définis par : 3.2 1 pour k = 0 2 pour k 0 Eqt N C k N        Et ,u vY sont les coefficients DCT de l’image caractérisée par ses pixels ,i jX . La forme matricielle de l’équation Eqt 3.1 est donnée par l’équation Eqt 3.2 : * * Eqt 3.3T Y A X A Avec X est la matrice d’entrée et A définie comme suit :
  51. 51. Chapitre III : Etude du module de la transformée ICT du HEVC 42       3.4 1 ; 0 0, N 1 A(m,n) m(2 1)2 *cos( ) ; 1, N 1 ; 0, N 1 2 Eqt m et n N n m n N N                   Exemple de calcul de la DCT 4*4 : Dans notre cas, N=4 et  (m,n) 0, 1N  . En calculant les coefficients de la matrice de transformation A pour la DCT 4*4 en utilisant l’équation 3.4, on trouve : a a a a b c -c -b a -a -a a c -b b -c A                Avec 1/ 2 0.5; 1 *cos( / 8) 0.653;2 1 *cos(3 / 8) 0.271;2 a b c                Et donc, l’équation 3.3 devient : a a a a a a b c -c -b c -a -b * * Eqt 3.5 a -a -a a -c -a c -b b -c -b -c b c a Y X a b a a                         L’implémentation de l’équation Eqt 3.1 pour n>2 dans un processeur nécessite l’approximation de certains facteurs irrationnels, cos (nπ/2N). Différentes approximations peuvent changer significativement la sortie de la transformation, conduisant à l’inadéquation entre l’encodeur et le décodeur. Pour remédier à ce problème, les normes antérieures spécifient que la transformation inverse doit répondre à des critères de précision basée sur la norme IEEE 1180-1990 [14]. Dans le standard HEVC et d'autres normes antérieures comme H.264/AVC, les processus de transformation et de quantification sont conçus pour réduire la complexité de calcul, convenir à l’implémentation et éviter le problème d’inadéquation entre l’encodeur et le décodeur. Ceci est réalisé par : utilisation d’une transformée entière ICT et, intégration d'une étape de normalisation dans le processus de quantification afin de minimiser le nombre de multiplications nécessaires pour traiter un bloc de données résiduelles.
  52. 52. Chapitre III : Etude du module de la transformée ICT du HEVC 43 Exemple de calcul de l’ICT 4*4 pour la norme H.264 : Pour obtenir l’ICT 4*4 de la norme H.264/AVC à partir de la DCT classique, on suit les étapes suivantes : L’équation (Eqt 3.5) peut se factoriser sous la forme suivante : 2 2 2 2 2 2 2 2 ) ab a ab1 1 1 1 1 1 1 d 1 d -d -1 1 d -1 -1 ab ab ( * * E * * 1 -1 -1 1 1 -d -1 1 ab a ab d -1 1 -d 1 -1 1 -d ab ab T a b b Y C X C X a b b                                            Le produit matriciel * * T C X C est une transformée 2D "noyau". E est une matrice de facteurs d'échelle et le symbole  signifie que chaque élément de la matrice * * T C X C est multiplié par le facteur d'échelle dans la même position dans la matrice E (multiplication scalaire à la place d’une multiplication matricielle). Les constantes a et b gardent les mêmes valeurs que précédemment. Pour simplifier la mise en œuvre de la transformation, la valeur d est approximée par 0,5. Pour s'assurer que la transformation reste orthogonale, b doit également être modifié: 0.414 c d b  Et 2 5 b  En multipliant les lignes deux et quatre de la matrice C et les colonnes deux et quatre de la matrice T C par un facteur deux et la matrice E est réduite pour compenser. Cela évite des multiplications par ½ dans la transformée * * T C X C qui se traduirait par une perte de précision en utilisant l'arithmétique entière. La transformée DCT devient: 2 2 2 2 2 2 2 2 ) ab ab 2 2 ab ab 2 4 2 4 ab ab 2 2 ab ab 2 4 2 4 a 1 1 1 1 1 2 1 1 2 1 -1 -2 1 1 -1 -2 ( * * E * * 1 -1 -1 1 1 -1 -1 2 a 1 -2 2 -1 1 -2 1 -1 T b b b b a Y C X C X a                                                          De l’équation précédente, on peut extraire la transformée entière ICT :
  53. 53. Chapitre III : Etude du module de la transformée ICT du HEVC 44 1 1 1 1 1 2 1 1 2 1 -1 -2 1 1 -1 -2 ) * * 1 -1 -1 1 1 -1 -1 2 1 -2 2 -1 1 -2 1 -1 ( * * T XZ C X C                           Cette transformée est une approximation de la DCT 4*4. En raison de la modification des coefficients d et b, la sortie de la nouvelle transformée ne sera pas identique à celle de la DCT 4*4. La transformée entière ICT du standard HEVC se calcul de la même manière que celle du standard H.264/AVC. 33..33..11..11 MMaattrriiccee ddee TTrraannssffoorrmmaattiioonn IICCTT 44**44 En faisant le même calcul que précédemment, et en appliquant les approximations proposées par le standard HEVC, on trouve la matrice de transformation ICT 4*4 donnée ci-dessous : 4,4 64 64 64 64 83 36 36 83 64 64 64 64 36 83 83 36 C                      33..33..11..22 MMaattrriiccee ddee TTrraannssffoorrmmaattiioonn IICCTT 88**88 La matrice de transformation ICT 8*8 donnée par HEVC est : 8,8 64 64 64 64 64 64 64 64 89 75 50 18 -18 -50 -75 -89 83 36 -36 -83 -83 -36 36 83 75 -18 -89 -50 50 89 18 -75 64 -64 -64 64 64 -64 -64 64 50 -89 18 75 -75 -18 89 -50 36 -83 83 -36 C  -36 83 -83 36 18 -50 75 -89 89 -75 50 -18                          
  54. 54. Chapitre III : Etude du module de la transformée ICT du HEVC 45 33..33..11..33 MMaattrriiccee ddee TTrraannssffoorrmmaattiioonn IICCTT 1166**1166 De même, on trouve la matrice ICT 16*16 : 16,16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 90 87 80 70 57 43 25 09 -09 -25 -43 -57 -70 -80 -87 -90 89 75 50 18 -18 -50 -75 -89 -89 -75 -50 -18 18 50 75 89 87 C  57 09 -43 -80 -90 -70 -25 25 70 90 80 43 -09 -57 -87 83 36 -36 -83 -83 -36 36 83 83 36 -36 -83 -83 -36 36 83 80 09 -70 -87 -25 57 90 43 -43 -90 -57 25 87 70 -09 -80 75 -18 -89 -50 50 89 18 -75 -75 18 89 50 -50 -89 -18 75 70 -43 -87 09 90 25 -80 -57 57 80 -25 -90 -09 87 43 -70 64 -64 -64 64 64 -64 -64 64 64 -64 -64 64 64 -64 -64 64 57 -80 -25 90 -09 -87 43 70 -70 -43 87 09 -90 25 80 -57 50 -89 18 75 -75 -18 89 -50 -50 89 -18 -75 75 18 -89 50 43 -90 57 25 -87 70 09 -80 80 -09 -70 87 -25 -57 90 -43 36 -83 83 -36 -36 83 -83 36 36 -83 83 -36 -36 83 -83 36 25 -70 90 -80 43 09 -57 87 -87 57 -09 -43 80 -90 70 -25 18 -50 75 -89 89 -75 50 -18 -18 50 -75 89 -89 75 -50 18 09 -25 43 -57 70 -80 87 -90 90 -87 80 -70 57 -43 25 -09                                                   

×