SlideShare une entreprise Scribd logo
1  sur  75
Télécharger pour lire hors ligne
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.
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.
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)
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.
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
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
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
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
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
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.
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.
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é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
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
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
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
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.
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.
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.
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
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
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)
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 ;
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
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
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é.
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 ;
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
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é.
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].
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.
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.
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,
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].
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.
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 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 ;
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.
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
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
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].
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
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.
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.
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.
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 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.
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
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.
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 :
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.
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 :
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
 
 
 
 
 
 
 
 
 
 
 
 
 
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
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
 
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

Contenu connexe

Tendances

Reseau Ad hoc - Bachar Haydar
Reseau Ad hoc - Bachar HaydarReseau Ad hoc - Bachar Haydar
Reseau Ad hoc - Bachar HaydarBashar Haidar
 
Methodes d'accès dans les réseaux locaux
Methodes d'accès dans les réseaux locauxMethodes d'accès dans les réseaux locaux
Methodes d'accès dans les réseaux locauxInes Kechiche
 
Système d'acquisition température
Système d'acquisition températureSystème d'acquisition température
Système d'acquisition températureennsim
 
Rapport W-CDMA Coding & Multiplexing
Rapport W-CDMA  Coding & MultiplexingRapport W-CDMA  Coding & Multiplexing
Rapport W-CDMA Coding & MultiplexingAnouar Loukili
 
interferences entre-symboles
interferences entre-symbolesinterferences entre-symboles
interferences entre-symbolesBAKKOURY Jamila
 
Tp 2 transmission de donné modulation analogique
Tp 2 transmission de donné modulation analogiqueTp 2 transmission de donné modulation analogique
Tp 2 transmission de donné modulation analogiquehamdinho
 
Présentation Cdma, Multiplexage CDMA, principes de Code et cas d'exemple
Présentation Cdma, Multiplexage CDMA, principes de Code et cas d'exemplePrésentation Cdma, Multiplexage CDMA, principes de Code et cas d'exemple
Présentation Cdma, Multiplexage CDMA, principes de Code et cas d'exempleMax Benana
 
Tp 3 transmission de donné modulation d'amplitude,de fréquence et de phase
Tp 3 transmission de donné modulation d'amplitude,de fréquence et de phaseTp 3 transmission de donné modulation d'amplitude,de fréquence et de phase
Tp 3 transmission de donné modulation d'amplitude,de fréquence et de phasehamdinho
 
Mini projet de reseaux de communication
Mini projet  de reseaux de communicationMini projet  de reseaux de communication
Mini projet de reseaux de communicationOlga Ambani
 
Mpls foudhaili oussama
Mpls foudhaili oussamaMpls foudhaili oussama
Mpls foudhaili oussamaGilles Samba
 
cours transmission numerique.pdf
cours transmission numerique.pdfcours transmission numerique.pdf
cours transmission numerique.pdfHassnTAI
 

Tendances (20)

CDMA
CDMACDMA
CDMA
 
Reseau Ad hoc - Bachar Haydar
Reseau Ad hoc - Bachar HaydarReseau Ad hoc - Bachar Haydar
Reseau Ad hoc - Bachar Haydar
 
Methodes d'accès dans les réseaux locaux
Methodes d'accès dans les réseaux locauxMethodes d'accès dans les réseaux locaux
Methodes d'accès dans les réseaux locaux
 
Système d'acquisition température
Système d'acquisition températureSystème d'acquisition température
Système d'acquisition température
 
rapportfinal
rapportfinalrapportfinal
rapportfinal
 
Réseaux mobiles
Réseaux mobiles Réseaux mobiles
Réseaux mobiles
 
Conf scee ldpc
Conf scee ldpcConf scee ldpc
Conf scee ldpc
 
Technologie wdm
Technologie wdmTechnologie wdm
Technologie wdm
 
Rapport W-CDMA Coding & Multiplexing
Rapport W-CDMA  Coding & MultiplexingRapport W-CDMA  Coding & Multiplexing
Rapport W-CDMA Coding & Multiplexing
 
interferences entre-symboles
interferences entre-symbolesinterferences entre-symboles
interferences entre-symboles
 
Cours fondement du multimedia
Cours fondement du multimediaCours fondement du multimedia
Cours fondement du multimedia
 
Tp 2 transmission de donné modulation analogique
Tp 2 transmission de donné modulation analogiqueTp 2 transmission de donné modulation analogique
Tp 2 transmission de donné modulation analogique
 
Présentation Cdma, Multiplexage CDMA, principes de Code et cas d'exemple
Présentation Cdma, Multiplexage CDMA, principes de Code et cas d'exemplePrésentation Cdma, Multiplexage CDMA, principes de Code et cas d'exemple
Présentation Cdma, Multiplexage CDMA, principes de Code et cas d'exemple
 
Tp 3 transmission de donné modulation d'amplitude,de fréquence et de phase
Tp 3 transmission de donné modulation d'amplitude,de fréquence et de phaseTp 3 transmission de donné modulation d'amplitude,de fréquence et de phase
Tp 3 transmission de donné modulation d'amplitude,de fréquence et de phase
 
Mini projet de reseaux de communication
Mini projet  de reseaux de communicationMini projet  de reseaux de communication
Mini projet de reseaux de communication
 
Atm
AtmAtm
Atm
 
FTTH
FTTHFTTH
FTTH
 
Mpls foudhaili oussama
Mpls foudhaili oussamaMpls foudhaili oussama
Mpls foudhaili oussama
 
cours transmission numerique.pdf
cours transmission numerique.pdfcours transmission numerique.pdf
cours transmission numerique.pdf
 
QoS & VoIP
QoS & VoIPQoS & VoIP
QoS & VoIP
 

Similaire à Master thesis

Implémentation de la QoS au sein d'un IP/MPLS - Rapport
Implémentation de la QoS au sein d'un IP/MPLS - RapportImplémentation de la QoS au sein d'un IP/MPLS - Rapport
Implémentation de la QoS au sein d'un IP/MPLS - RapportRihab Chebbah
 
mise en place d'un système de classes virtuelles utilisant le webRTC + openfi...
mise en place d'un système de classes virtuelles utilisant le webRTC + openfi...mise en place d'un système de classes virtuelles utilisant le webRTC + openfi...
mise en place d'un système de classes virtuelles utilisant le webRTC + openfi...Bassirou Dime
 
Conception et implémentation d'un nouveau langage de programmation
Conception et implémentation d'un nouveau langage de programmationConception et implémentation d'un nouveau langage de programmation
Conception et implémentation d'un nouveau langage de programmationAymen Bouein
 
Istqb ctfl syllabus_french_v2010_01
Istqb ctfl syllabus_french_v2010_01Istqb ctfl syllabus_french_v2010_01
Istqb ctfl syllabus_french_v2010_01Helena Le Goff
 
PCONT2016-Projet1.3-Fourmaux-AnalCodecParamVideo-RapFinal
PCONT2016-Projet1.3-Fourmaux-AnalCodecParamVideo-RapFinalPCONT2016-Projet1.3-Fourmaux-AnalCodecParamVideo-RapFinal
PCONT2016-Projet1.3-Fourmaux-AnalCodecParamVideo-RapFinalBelkacem KAID
 
Mémoire fin de cycle1
Mémoire fin de cycle1Mémoire fin de cycle1
Mémoire fin de cycle1Mustafa Bachir
 
Convertisseur m2ts
Convertisseur m2ts Convertisseur m2ts
Convertisseur m2ts AcelinNicole
 
Hevc enjeux, impacts et perspectives
Hevc   enjeux, impacts et perspectivesHevc   enjeux, impacts et perspectives
Hevc enjeux, impacts et perspectivesMyriam Renard
 
Hyper-V Cloud Guides de déploiement Module 2
Hyper-V Cloud Guides de déploiement Module 2Hyper-V Cloud Guides de déploiement Module 2
Hyper-V Cloud Guides de déploiement Module 2Microsoft France
 
Cours achirecture des ordi 1
Cours achirecture des ordi 1Cours achirecture des ordi 1
Cours achirecture des ordi 1fofanaabou
 
Flash as2 components_help
Flash as2 components_helpFlash as2 components_help
Flash as2 components_helpFaiz Morchid
 
Rapport de Mémoire Master Recherche
Rapport de Mémoire Master RechercheRapport de Mémoire Master Recherche
Rapport de Mémoire Master RechercheRouâa Ben Hammouda
 
Mémoire platre carreau hopital p_pfe_-_claire_casenave
Mémoire platre carreau hopital  p_pfe_-_claire_casenaveMémoire platre carreau hopital  p_pfe_-_claire_casenave
Mémoire platre carreau hopital p_pfe_-_claire_casenaverabahrabah
 

Similaire à Master thesis (20)

Implémentation de la QoS au sein d'un IP/MPLS - Rapport
Implémentation de la QoS au sein d'un IP/MPLS - RapportImplémentation de la QoS au sein d'un IP/MPLS - Rapport
Implémentation de la QoS au sein d'un IP/MPLS - Rapport
 
mise en place d'un système de classes virtuelles utilisant le webRTC + openfi...
mise en place d'un système de classes virtuelles utilisant le webRTC + openfi...mise en place d'un système de classes virtuelles utilisant le webRTC + openfi...
mise en place d'un système de classes virtuelles utilisant le webRTC + openfi...
 
MMEDDEB_PHD_FirstP
MMEDDEB_PHD_FirstPMMEDDEB_PHD_FirstP
MMEDDEB_PHD_FirstP
 
Rapport
RapportRapport
Rapport
 
Kaprykowsky rapport
Kaprykowsky rapportKaprykowsky rapport
Kaprykowsky rapport
 
Asterisk
AsteriskAsterisk
Asterisk
 
Conception et implémentation d'un nouveau langage de programmation
Conception et implémentation d'un nouveau langage de programmationConception et implémentation d'un nouveau langage de programmation
Conception et implémentation d'un nouveau langage de programmation
 
Istqb ctfl syllabus_french_v2010_01
Istqb ctfl syllabus_french_v2010_01Istqb ctfl syllabus_french_v2010_01
Istqb ctfl syllabus_french_v2010_01
 
PCONT2016-Projet1.3-Fourmaux-AnalCodecParamVideo-RapFinal
PCONT2016-Projet1.3-Fourmaux-AnalCodecParamVideo-RapFinalPCONT2016-Projet1.3-Fourmaux-AnalCodecParamVideo-RapFinal
PCONT2016-Projet1.3-Fourmaux-AnalCodecParamVideo-RapFinal
 
Mémoire fin de cycle1
Mémoire fin de cycle1Mémoire fin de cycle1
Mémoire fin de cycle1
 
Convertisseur m2ts
Convertisseur m2ts Convertisseur m2ts
Convertisseur m2ts
 
Hevc enjeux, impacts et perspectives
Hevc   enjeux, impacts et perspectivesHevc   enjeux, impacts et perspectives
Hevc enjeux, impacts et perspectives
 
47750479 cours-c
47750479 cours-c47750479 cours-c
47750479 cours-c
 
Hyper-V Cloud Guides de déploiement Module 2
Hyper-V Cloud Guides de déploiement Module 2Hyper-V Cloud Guides de déploiement Module 2
Hyper-V Cloud Guides de déploiement Module 2
 
Cours achirecture des ordi 1
Cours achirecture des ordi 1Cours achirecture des ordi 1
Cours achirecture des ordi 1
 
Flash as2 components_help
Flash as2 components_helpFlash as2 components_help
Flash as2 components_help
 
vanderpypendaniel_msc
vanderpypendaniel_mscvanderpypendaniel_msc
vanderpypendaniel_msc
 
Deploy automatic in the cloud
Deploy automatic in the cloudDeploy automatic in the cloud
Deploy automatic in the cloud
 
Rapport de Mémoire Master Recherche
Rapport de Mémoire Master RechercheRapport de Mémoire Master Recherche
Rapport de Mémoire Master Recherche
 
Mémoire platre carreau hopital p_pfe_-_claire_casenave
Mémoire platre carreau hopital  p_pfe_-_claire_casenaveMémoire platre carreau hopital  p_pfe_-_claire_casenave
Mémoire platre carreau hopital p_pfe_-_claire_casenave
 

Dernier

GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...Institut de l'Elevage - Idele
 
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageGAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageInstitut de l'Elevage - Idele
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Ville de Châteauguay
 
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...Institut de l'Elevage - Idele
 
firefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirstjob4
 
GAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéGAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéInstitut de l'Elevage - Idele
 
GAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesGAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesInstitut de l'Elevage - Idele
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...Institut de l'Elevage - Idele
 
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...Institut de l'Elevage - Idele
 
optimisation logistique MLT_231102_155827.pdf
optimisation logistique  MLT_231102_155827.pdfoptimisation logistique  MLT_231102_155827.pdf
optimisation logistique MLT_231102_155827.pdfSoukainaMounawir
 
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...Institut de l'Elevage - Idele
 
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestionyakinekaidouchi1
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de planchermansouriahlam
 
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusGAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusInstitut de l'Elevage - Idele
 

Dernier (15)

GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
 
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageGAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
 
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
 
firefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdf
 
GAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéGAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversité
 
GAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesGAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentes
 
JTC 2024 Bâtiment et Photovoltaïque.pdf
JTC 2024  Bâtiment et Photovoltaïque.pdfJTC 2024  Bâtiment et Photovoltaïque.pdf
JTC 2024 Bâtiment et Photovoltaïque.pdf
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
 
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
 
optimisation logistique MLT_231102_155827.pdf
optimisation logistique  MLT_231102_155827.pdfoptimisation logistique  MLT_231102_155827.pdf
optimisation logistique MLT_231102_155827.pdf
 
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
 
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestion
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de plancher
 
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusGAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
 

Master thesis

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Chapitre I : Le Codage Vidéo et la Norme H.264/AVC
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Chapitre II : Le Standard HEVC, Caractéristiques et Nouveautés
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. Chapitre III : Etude du Module de la Transformée Entière ICT du Standard HEVC
  • 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. 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. 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. 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. 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. 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. 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. 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                                                   