Traitement et Codage Vidéo
CHAPITRE 02 : CODAGE INTRA POUR LES STANDARTS
VIDEOS
Pr. Mohamed Ali Ben Ayed
Ecole Nationale d’Électronique et des Télécommunications de Sfax
Sommaire
I. Techniques élémentaires: MotionJPEG,
II. Principe du codage Intra par prédiction
I. Exemple Pratique
III. Présentation des 9 modes intra directionnels
pour la norme H264/AVC
IV. Codage intra pour la norme H265/HEVC
V. Exercice d’application
1
Motion JPEG (MJPEG)
Norme internationale normalisée par le groupe
JPEG/JPEG2000 en 2002, au même titre que JPEG ou
JPEG2000.
N’exploite pas la redondance temporelle, chaque image
est codée indépendamment des autres.
Encode chaque image source avec (TCD 8x8) pour
MJPEG ou (TOD) pour MJPEG2000.
I I I I
Motion JPEG (MJPEG)
S'avère très utile en studio de montage puisqu’il facilite
les arrêts sur image et l’ajout des effets
cinématographiques
Adapté par la cinéma Numérique (Digital Cinema
Initiative, groupement de studios hollywoodiens: Disney,
Paramount, Sony,..etc)
Performance en terme de débit binaire médiocre
comparé au H264 ( intra only)
Temps d’exécution du codage relativement rapide vu la
complexité réduite de l’algorithme de compression
2
H262/MPEG2 (2003)
L’image initiale (I) est codée sans référence à des
images précédemment codées formant ainsi des points
d’accès pour le décodage de la séquence.
Chaque image est devisée en bloc de 8x8 pixels
On applique la TCD, puis quantification scalaire et enfin
un codeur entropique à l’image source
I P P P P
Performance: 2 à 4 fois en terme de débit binaire par
rapport au MJPEG
5
Codage Intra par prédiction
Exemple: prédiction horizontale
124 123 124 121 123
123 124 125 122 121
121 122 Source
121 120 123
4x4 pixels
122 121 123 124 124 124 123 124 121 123
124 123 124 122 124 123 1 2 -1 -2
source 121 1 0 -1 2
124 123 124 121 123 122 -1 1 2 2
123 123 123 123 123 124 -1 0 -2 0
121 121 121 121 121 Résiduel = source - prédit
122 122 122 122 122
124 124 124 124 124
6
prédit
3
CODAGE INTRA:
ETUDE DE CAS
H264/AVC – MPEG4 [partie 10]
Les modes Intra pour H.264 :
I_PCM : Pas de Prédiction ou de Transformée
Intra 16x16 : Très utile pour le codage des block lisse
Intra 4x4 : Pour les blocks texturés
Intra 8x8 : pour le profile « fidelity range extension (FRExt) »
4
Les modes Intra pour H.264 :
INTRA 16x16: 4 modes de prédiction. Horizontale, verticale, moyenne (DC) et
planaire.
INTRA 4x4: 9 modes de prédiction. C.à.d Outre la prédiction DC, huit modes de
prédiction angulaires sont spécifiés.
Les modes Intra pour H.264 :
INTRA 8x8: 9 modes de prédiction. Comparable au 4x4 juste pour le profile FRext
10
5
Les différents modes
INTRA 4x4
Mode Fonctionnement
Mode 0 (vertical) [A-D] sont extrapolés verticalement
Mode 1 (horizontal) [I-L] sont extrapolés horizontalement
Mode 2 (composante continue) [a-p] sont prédits par la moyenne de [A-D] et [I-L]
Mode 3 (diagonal bas-gauche) [a-p] sont interpolés à un angle de 45º bas-gauche
Mode 4 (diagonal bas-droit) [a-p] sont interpolés à un angle de 45◌º
ْ bas-droit
Mode 5 (vertical-droit) [a-p] sont interpolés à un angle de 22,5º vertical-droit
Mode 6 (horizontal-bas) [a-p] sont interpolés à un angle de 22,5º horizontal-bas
Mode 7 (vertical-gauche) [a-p] sont interpolés à un angle de 22,5º vertical-gauche
Mode 8 (horizontal-haut) [a-p] sont interpolés à un angle de 22,5º horizontal-haut
8
1
6
3
5 4 11
7 0
Prédiction intra 4x4
selon le mode 0 et 1
8
1 Mode 1: Horizontal
6
3
a=b=c=d=I
4
7 0 5 e=f=g=h=J
i=j=k=l=K
m=n=o=p=L
Mode 0: Vertical
a = e = i = m =A
b=f=j=n=B
c = g = k =o = C
d=h=l=p=D
12
6
Prédiction intra 4x4
selon le mode 2
8
1
6
3
5 4
7 0
Mode 2: DC (continue)
M = 128
Si (Top block)
M = (A+B+C+D+2)/4
Si (Left block)
M = (I+J+K+L+2)/4
Si (Top block & Left block)
M = (A+B+C+D+I+J+K+L+4)/8
13
Prédiction intra 4x4
selon le mode 3 et 4
8
1 Mode 3: Diagonal Bas Gauche
6 d = g= j = m = (D+2E+F+2)/4
3
0 5 4 c = f = i = (C+2D+E+2)/4
7
b = e = (B+2C+D+2)/4
a = (A+2B+C+2)/4
h = k = n = (E+2F+G+2)/4
l = o = (F+2G+H+2)/4
P = (G+3H+2)/4
Mode 4: Diagonal Bas Droite
a = f = k = p = (I+2X+A+2)/4
b = g = l = (X+2A+B+2)/4
c = h = (A+2B+C+2)/4
d = (B+2C+D+2)/4
e = j = o = (X+2 I +J+2)/4
i = n = (I+2J +K+2)/4
m = (J+2K+L+2)/4
14
7
Prédiction intra 4x4
selon le mode 5 et 6
8
Mode 5: Vertical Droit
1
6
a = j = (X+A+1)/2; b = k = (A+B+1)/2
3
4
c = l = (B+C+1)/2; d = (C+D+1)/2
5
7 0 e = n = (I+2X+A+2)/4;
f = o = (X+2A+B+2)/4
g = p = (A+2B+C+2)/4; h = (B+2C+D+2)/4
i = (X+2I+J+2)/4 ; M = (I+2J+K+2)/4
Mode 6: Horizontal bas
a =g= (A+B+1)/2; b = h = (B+C+1)/2
c = j = (C+D+1)/2 ; d = k = (D+E+1)/2
l = (E+F+1)/2 ; e = (2B+A+C+2)/4
f = m = (B+2C+D+2)/4
n = (C+2D+E+2)/4
i = o = (D+2E+F+2)/4
p = (E+2F+G+2)/4
15
Prédiction intra 4x4
selon le mode 7 et 8
8
1
6 Mode 7: Vertical Gauche
3
5 4 a = (I+J+1)/2
7 0
b = (2J+I+K+2)/4
c = e = (J+K+1)/2
d = f = (2K+J+L+2)/4
g = i = (K+L+1)/2
h = j = (2L+L+K+2)/4
l = n= m = o = p = k = L
Mode 8: Horizontal Haut
a =g = (X+I+1)/2; b = h = (I+2X+A+2)/4
c = (X+2A+B+2)/4; d = (A+2B+C+2)/4
e = k = (I+J+1)/2; f = l = (X+2I+J+2)/4
i = o = (J+K+1)/2
j = p = (I+2J+K+2)/4
m = (K+L+1)/2; n = (J+2K+L+2)/4
16
8
Chrominance: Codage Intra
Les blocs de chrominance 8x8 correspondant au format 4:2:0, les modes
de prédiction sont similaires à ceux des luminances 16x16.
17
Sélection des modes
Pour coder un macro-bloc de 16x16, l’encodeur H264/AVC doit évaluer suivant
son propre critère de distorsion (non défini par le standard) les modes suivants:
DC
Sélectionner le meilleur partitionnement
PLANE Best
16x16 Best 16x16
H
avec les modes appropriés
P0
. Best
4x4 . Best0 4x4
.
P8
16 fois Somme
Best
Best15 4x4
P0
. Best
. Best0 8x8
8x8 .
P8
4 fois Somme
18
Best
Best3 8x8
9
Prediction Intra pour H265/HEVC
Différentes tailles pour les unités de prédiction (PU) de 4x4
jusqu’à 64x64.
33 modes directionnels, mode planar et un mode DC.
Les modes sont codés en se basant sur les MPM (most
probable modes). Ces modes sont déduits à partir des blocs
voisins.
Modes et directions pour la prediction intra
Prediction Intra pour H265/HEVC
HEVC applique le filtrage d'échantillon dans 2 situations distinctes,
pour améliorer les résultats de la prédiction intra :
1 Le filtrage des échantillons de référence ( Pré-Filtrage )
2 Le filtrage des échantillons prédits ( Post-Filtrage)
Améliorer l'apparence visuelle du bloc de prédiction.
Les artefacts causés par les limites des échantillons
de référence peuvent être considérablement réduits.
10
Prediction Intra pour H265/HEVC
Pré-filtrage
Dans HEVC, le Pré-Filtrage se fait de manière adaptative, en
fonction de la taille du bloc et du mode de prédiction intra :
HEVC utilise un filtre 3-tap [1 2 1] / 4.
Prediction Intra pour H265/HEVC
Pré-filtrage
Blocs 8x8 Blocs 4x4
Blocs
16x16
Pas de filtrage
Blocs Pas
Blocs
de≥filtrage
8x8
32x32
11
Prediction Intra pour H265/HEVC
Pré-filtrage
Deux types de processus de filtrage d'échantillons de référence choisi en
fonction de la taille du bloc et de la continuité des échantillons de référence.
Un Filtrage simple three-tap utilisant Un Filtrage strong utilisant des
deux échantillons de référence voisins. échantillons de référence situant aux
coins.
Prediction Intra pour H265/HEVC
Post-filtrage
Le post-filtrage proposé dans HEVC est utilisé pour lisser les discontinuités
générées le long des limites du bloc en raison de la prédiction intra.
Ce filtre est appliqué sur les échantillons prédits aux limites pour les modes
DC, angulaire 10 et angulaire 26. (only for Luma)
Pixels de réferences
Filtrer par 2-tap filter
Filtrer par 3-tap filter
12
Prediction Intra pour H265/HEVC
Post-filtrage
En cas de mode DC, lorsque le bloc est inférieur à 32x32, les échantillons
de la première ligne et de la première colonne du bloc prédis sont filtrés.
Un filtre 2-tap [3 1] / 4 alimenté par la valeur d'origine et l'échantillon de
référence adjacent est utilisé.
En cas du mode angulaire 10, seuls les échantillons de la première ligne sont
modifiés en ajoutant la moitié de la différence entre l'échantillon de référence
adjacent et l'échantillon de référence supérieur gauche.
Un filtrage similaire est fait pour le mode angulaire 26, mais uniquement
pour la première colonne d'échantillons prédits.
Exercice d’application
Soit le block 4x4 d’une image source représenté par les pixels suivants et ces
avoisinants haut et gauche:
198 190 205 205 200
195 180 210 200 210
195 190 195 205 200
190 200 205 210 195
195 190 190 200 190
1) Lequel des modes suivants: horizontal, vertical, DC qui sera choisi en se
basant sur le métrique de distance SAD?
26
13
Fin
27
14