99

Basics of Mpeg 4 Video Compression

Embed Size (px)

DESCRIPTION

A presentation of MPEG-4 (Part 2 and 10) tools for video compression

Citation preview

Page 1: Basics of Mpeg 4 Video Compression
Page 2: Basics of Mpeg 4 Video Compression

Pourquoi compresser la vidéo?!

* 156 Go (=29,66 Mo/s)

Le film:

Le DVD : 4.5 Go 34

Le CD : 650-700 Mo 222

Le ADSL : 0.25 Mo/s 118

Le pixel

L’image La fréquence En minutes La durée

Page 3: Basics of Mpeg 4 Video Compression

Comment est possible de compresser la vidéo?!

Redondance spatiale

Redondance temporelle

Page 4: Basics of Mpeg 4 Video Compression

Audio (AAC)

Vidéo (V2, AVC)

Image (VTC)

Page 5: Basics of Mpeg 4 Video Compression

Vidéo de forme

arbitraire

Page 6: Basics of Mpeg 4 Video Compression

Les différentes parties du standard MPEG-4

–  Part 1 Systems (2001) –  Part 2 Visual (2001) –  Part 3 Audio (2001) –  Part 4 Conformance (2002) –  Part 5 Reference Software

(2002) –  Part 6 DMIF - Delivery

Multimedia Integration Framework (2000)

–  Part 7 Optimized Software (2002)

–  Part 8 MPEG 4 on IP (2002) –  Part 9 Reference Hardware

(2003) –  Part 10 Advanced Video Coding

(AVC) joint with ITU-T (2003)

Page 7: Basics of Mpeg 4 Video Compression

Objets du cours

Page 8: Basics of Mpeg 4 Video Compression

Architecture générique

Prédiction Transformation Quantification Codage entropique

Page 9: Basics of Mpeg 4 Video Compression

Types des données visuelles

Objet de forme arbitraire

Masque binaire Masque en niveaux de gris

Information supplémentaire à coder: la forme

Information à coder: la texture

Page 10: Basics of Mpeg 4 Video Compression

Codage de la texture : préparation des données

Image Initiale

Y = 0.299*R + 0.587*G + 0.114*B U = -0.169*R - 0.331*G + 0.500*B + 128.0 V = 0.500*R - 0.419*G - 0.081*B + 128.0

R = Y + (1.4075 * (V - 128)); G = Y - (0.3455 * (U - 128) - (0.7169 * (V - 128));

B = Y + (1.7790 * (U - 128);

B

R

G

Y

U

V

Page 11: Basics of Mpeg 4 Video Compression

Codage de la texture : préparation des données

Y

U

V

La composante Y porte plus d’information que les composantes U et V

Sous- échantillonnage

Y

U

V

4:4:4 4:2:2

Y

U

V

4:2:0

Page 12: Basics of Mpeg 4 Video Compression

Codage de la texture : les Macroblocks (16x16 pixels)

Pour des images non multiple de 16, un padding est nécessaire

16x16 pixels

Page 13: Basics of Mpeg 4 Video Compression

Module Prédiction : GOP

Séquence vidéo GOP GOP GOP

Page 14: Basics of Mpeg 4 Video Compression

Codage de la texture : Module Prédiction

En faisant des différences, on diminue la dynamique de l’information à coder

1 5-1 … 2-(5+1)/2 2-5 2-1

Page 15: Basics of Mpeg 4 Video Compression

Module Prédiction avec Compensation de Mouvement

La compensation de mouvement diminue encore la dynamique de l’information

Image Initiale Avec prédiction

+ Vx

Vy

Avec prédiction et compensation de mouvement

Page 16: Basics of Mpeg 4 Video Compression

Module Prédiction avec Compensation de Mouvement

Deux cadres consécutifs

Page 17: Basics of Mpeg 4 Video Compression

Module Prédiction avec Compensation de Mouvement

Différence directe

Page 18: Basics of Mpeg 4 Video Compression

Module Prédiction avec Compensation de Mouvement

Différence avec compensation en mouvement pour block de 16x16

Page 19: Basics of Mpeg 4 Video Compression

Module Prédiction avec Compensation de Mouvement

Différence avec compensation en mouvement pour block de 8x8

Page 20: Basics of Mpeg 4 Video Compression

Module Prédiction avec Compensation de Mouvement

Différence avec compensation en mouvement pour block de 4x4

Page 21: Basics of Mpeg 4 Video Compression

16x16 4x4

Module Prédiction avec Compensation de Mouvement

Page 22: Basics of Mpeg 4 Video Compression

Les vecteurs de mouvement

Les méthodes d’estimation des vecteurs ne sont pas standardisées

Mode 1MV: un vecteur pour un MB

Mode 4MV: un vecteur pour chaque block du MB

Les vecteurs sont estimés que pour la composante de luminance

  Estimation à quart de pixel   Estimation globale pour l’image entière   Mode directe dans la compensation bidirectionnelle

Codage différentiel par rapport aux macroblock voisins

New

Page 23: Basics of Mpeg 4 Video Compression

Estimation à quart de pixel

Augmenter la résolution des VMs, mais réduire l’erreur de prédiction

L’estimation à pixel: les VMs sont des nombres entiers - pb pour des mouvements sous pixel entre deux cadres - l’erreur de prédiction importante

Solution: estimation à demi et à quart de pixel

Interpolation bilinéaire

Demi

A B

C

b c d D

b=(A+B+1)mod(2)

d=(A+B+C+D+2)mod(4)

Interpolation bilinéaire à voisinage 8

Quart

A4 A3 A2 A1 B1 B2 B3 B4 a

a=(-8A4+24A3-48A2+160A1+160B1-48B2+24B3-8B4) mod 256

b

c

a

d

b’

c’ d’ b’=(a+b+1)mod(2)

d’=(a+b+c+d+2)mod(4)

New

Page 24: Basics of Mpeg 4 Video Compression

La prédiction block Inter: vecteurs de mouvement

Page 25: Basics of Mpeg 4 Video Compression

Estimation globale de mouvement

Très utile pour les mouvements de la camera

  Le même ensemble des paramètres de mouvement pour l’image entière   Utilisée alternativement avec la compensation locale (MB) pour

minimiser l’erreur de prédiction

  1 à 4 VMs (et leur positions) à transmettre par image   au décodeur, interpolation pour chaque MB

New

Page 26: Basics of Mpeg 4 Video Compression

Mode direct pour la compensation bidirectionnelle

  Par rapport à une référence passée   Par rapport à une référence future   Par rapport à la moyenne entre une référence passée et une future   Mode direct

New

P P B B

MV

MVF MVB MVF=[(tc-tf)/(tb-tf)]*MV

MVB=MVF-MV

Page 27: Basics of Mpeg 4 Video Compression

Module prédiction: schéma block

Image courante

Image(s) de référence

Estimation de mouvement

+

-

Vecteurs de mouvement

Compensation de mouvement

Page 28: Basics of Mpeg 4 Video Compression

Architecture générique

Prédiction Transformation Quantification Codage entropique

Page 29: Basics of Mpeg 4 Video Compression

Module transformation: les contraintes

  Les données dans le domaine transformé doivent être   Non corrélées : séparées en composants avec interdépendance minimale   Compactes: l’énergie doit être concentrée dans un petit nombre des valeurs

Block-based (Karhunen-Loeve, SVD, DCT) / image-based (DWT)

  La transformée doit être réversible

  La transformée doit être faisable d.p.d.v. temps de calcul

Page 30: Basics of Mpeg 4 Video Compression

Module transformation: DCT

  Transformée par block

Transformée directe: Transformée inverse:

Page 31: Basics of Mpeg 4 Video Compression

Module transformation: DCT

  Exemple pour block 4x4

Page 32: Basics of Mpeg 4 Video Compression

Module transformation: DCT

  Exemple pour block 4x4

Page 33: Basics of Mpeg 4 Video Compression

Module transformation: DCT

  L’élément de base: le block à 8x8 pixels

Luminance et chrominance pour MB I, l’erreur de prédiction pour MB P et B

  4-12 bits / pixel New

Page 34: Basics of Mpeg 4 Video Compression

Module transformation: DCT

Reconstruction à partir d’un sous-ensemble des coefficients DCT

1c 2c

3c 4c

Page 35: Basics of Mpeg 4 Video Compression

Module transformation: prédiction spatiale pour MB I

  Les coefficients DC et certaines coefficients AC entre des blocks voisines

Prédiction pour les coefficients les plus porteurs d’information

Macroblock

Page 36: Basics of Mpeg 4 Video Compression

Modules prédiction et transformation: schéma block

Image courante

Image(s) de référence

Estimation de mouvement

+

-

Vecteurs de mouvement

Compensation de mouvement

DCT

Page 37: Basics of Mpeg 4 Video Compression

Architecture générique

Prédiction Transformation Quantification Codage entropique

Page 38: Basics of Mpeg 4 Video Compression

Module quantification pour les coefficients DC I

Perte de l’information

  Contrôlé par une variable globale (associée au VOP – quantiser_scale)

  Composante DC pour les blocks I :

Qs

dc_scaller (lum)

dc_scaller (crom)

1-4

8

8

5-8

2Qs

(Qs+13)/2

9-24

Qs+8

(Qs+13)/2

24-31

2Qs-16

Qs-6

Page 39: Basics of Mpeg 4 Video Compression

Module quantification pour les coefficients non DC I

  Le pas de quantification est différent pour chaque fréquence spatiale

Perte de l’information

MPEG-2

  Une variable locale est utilisée dans MPEG-2

MPEG-2

  Deux méthodes: MPEG-2 et H263

Page 40: Basics of Mpeg 4 Video Compression

Modules prédiction, transformation, quantification

Image courante

Image(s) de référence

Estimation de mouvement

+

-

Vecteurs de mouvement

Compensation de mouvement

DCT Q

Q-1 DCT-1 Image courante de référence

Page 41: Basics of Mpeg 4 Video Compression

Architecture générique

Prédiction Transformation Quantification Codage entropique

Page 42: Basics of Mpeg 4 Video Compression

Codeur d’entropie pour les coefficients DCT

  Valeurs des coefficients DCT; La probabilité des coefficients zéros

Page 43: Basics of Mpeg 4 Video Compression

Codeur d’entropie pour les coefficients DCT

  Les coefficients DCT quantifiés sont réorganisés en vecteur 1D

  Différents types de balayage afin d’obtenir des vecteurs courts

  Codage pour chaque composante de vecteur (LAST, RUN, LEVEL) par code à longueur variable (code courtes pour les valeurs les plus fréquentes)

Horizontal Vertical Zigzag New New

Page 44: Basics of Mpeg 4 Video Compression

Codeur d’entropie: les symboles

  Codage pour chaque composante de vecteur (LAST, RUN, LEVEL) par code à longueur variable (code courtes pour les valeurs les plus fréquentes)

16, 0, 0, -3, 5, 6, 0, 0, 0, 0, -7, 0, 0, 0, 0, 0, 0, 0

(0,16,0), (2, -3, 0), (0, 5, 0), (0, 6, 0), (4, -7, 1)

No des zéros avant le symbole Indique le dernier symbole non zéro

Page 45: Basics of Mpeg 4 Video Compression

Codage binaire par codes à longueur variable

  Codage Huffman

  La longueur des codés dépend de la fréquence d’apparition des symboles

Symbole La probabilité p Longueur idéal du

code : log2(1/p) -2 0.1 3.32 -1 0.2 2.32 0 0.4 1.32 1 0.2 2.32 2 0.1 3.32

-2 2

p=0.1 p=0.1

A p=0.2 -1

p=0.2

1

p=0.2

B p=0.4 0

p=0.4

C p=0.6

D p=1

1

0

1 0

1 0

1 0

Code 001 011 1

010 000

(1, 0, -2) -> 0101001

Dans la pratique on utilise des tableaux des probabilités pre-calculés

Page 46: Basics of Mpeg 4 Video Compression

Schéma complet de codage

Image courante

Image(s) de référence

Estimation de mouvement

+

-

Vecteurs de mouvement

Compensation de mouvement

DCT Q

Q-1 DCT-1 Image courante de référence

Re-order CLV

Stream

Page 47: Basics of Mpeg 4 Video Compression

Types des données visuelles

Objet de forme arbitraire Masque binaire Masque en niveaux de

gris

Information supplémentaire a coder: la forme Certaines contraintes pour le codage de la texture

Information a coder: la texture

Page 48: Basics of Mpeg 4 Video Compression

Codage de la texture

Object

Bounding Box

Extended Bounding Box

n.16x16

Page 49: Basics of Mpeg 4 Video Compression

Codage de la texture : module prédiction

  Compensation de mouvement

VM

  Padding pour le MB de référence Horizontal, vertical et moyenne

Codage différentiel des VMs par rapport aux blocks voisins

Page 50: Basics of Mpeg 4 Video Compression

Codage de la texture : module de transformation

La méthode normale avec un padding préalable

Transformée DCT adaptée aux formes arbitraires

  Le padding n’est pas standardisé

  Zéro padding

  Le même padding que pour la compensation de mouvement

Shift + DCT 1D

Shift + DCT 1D

Parcours en zigzag - les coeff. transp. sont ignorés

Page 51: Basics of Mpeg 4 Video Compression

Codage de la forme

  Masque binaire : valeurs 0 ou 255

  Masque en niveaux de gris: valeurs entre 0 et 255

Pour chacune des deux méthodes MPEG-4 standardise un ensemble des outils spécifiques

Page 52: Basics of Mpeg 4 Video Compression

Codage du masque binaire New

  Codage par Macroblock

  Utilisation de la prédiction temporelle (par VOP entier)

  Utilisation de l’estimation et compensation du mouvement (calculés indépendants des VM de la texture)   Estimations à demi et quart pixels ne sont pas supportées   4MV n’est pas supporté

Page 53: Basics of Mpeg 4 Video Compression

Codage du masque binaire New

  Codeur arithmétique avec contexte

10 bits 9 bits

  C=(C9C8C7C6C5C4C3C2C1C0)2   C=(C8C7C6C5C4C3C2C1C0)2

1024 valeurs possible 512 valeurs possible

  Calcul des probabilités pour chaque symbole   Les symboles avec une grande probabilité: des codes courts   Possible de coder un symbole avec moins d’un bit

Page 54: Basics of Mpeg 4 Video Compression

Codage du masque en niveaux de gris New

  Association d’un masque binaire

  Codage du masque binaire avec la technique précédemment présentée

  Codage du masque en niveaux de gris comme une texture

Page 55: Basics of Mpeg 4 Video Compression

La scalabilité

Outils spéciaux de codage New

Codage par mosaïques

Codage par ondelettes

Codage résistant aux erreurs de

transmission

Page 56: Basics of Mpeg 4 Video Compression

Outils spéciaux de codage: la scalabilité New

  Organiser le stream vidéo d’une manière "incrémentale" :   une couche de base qui contient l’information à une résolution/qualité

moyenne   Des couches d’amélioration qui s’ajouts à la couche de base pour

augmenter la résolution/qualité

Approche classique:

Approche scalable:

Page 57: Basics of Mpeg 4 Video Compression

Outils spécifiques: la scalabilité New

M S D

L M u x

B a s e L a y e r

M P E G - 4 i n _ 1

i n _ 0

i n P r e P r o c e s s o r M

S D L D

e m u x

D e c o d e r

L a y e r 1 D e c o d e r

o u t _ 0

P o s t P r o c e s s o r

o u t p _ 1

o u t _ 1

o u t p _ 0

M P E G - 4

E n h a n c e m e n t

M P E G - 4

M i d P r o c e s s s o r 1

M P E G - 4 E n h a n c e m e n t

S c a l a b i l i t y

E n c o d e r

L a y e r 1 E n c o d e r

B a s e L a y e r

M i d P r o c e s s s o r 1 S c a l a b i l i t y

Page 58: Basics of Mpeg 4 Video Compression

Les différents types de scalabilité New

  Spatiale

D

C

B

A

D C B A

Page 59: Basics of Mpeg 4 Video Compression

Les relations entre la couche de base et la couche d’amélioration

Page 60: Basics of Mpeg 4 Video Compression

Les différents types de scalabilité New

  Temporelle

D C B A

Page 61: Basics of Mpeg 4 Video Compression

Les différents types de scalabilité New

  En SNR

A B C D

D C B A

Page 62: Basics of Mpeg 4 Video Compression

Les différents types de scalabilité New

  En SNR

Page 63: Basics of Mpeg 4 Video Compression

Outils spéciaux de codage: les mosaïques (sprites) New

  Un sprite est transmis une seule fois pour un segment vidéo

  A chaque cadre, l’image est obtenue par cropping

  Le sprite est codé comme une image I

+

Page 64: Basics of Mpeg 4 Video Compression

Outils spéciaux de codage: les ondelettes New

  Transformation: ondelettes biorthogonales (9,3)   Codage des coefficients avec le Zero Tree Wavelet Coding   Quantification implicite/explicite (dif pour les coeff DC et AC)   Scanning et codage arithmétique

  Relation d’héritage entre les coefficients de la transformée

Page 65: Basics of Mpeg 4 Video Compression

Outils spéciaux de codage: les ondelettes New

  Scalabilité hybride spatiale - SNR

Page 66: Basics of Mpeg 4 Video Compression

Outils spéciaux de codage: les ondelettes New

  Codage par sous-image pour accès direct aux zones specifiques

Page 67: Basics of Mpeg 4 Video Compression

Outils spéciaux de codage: résistance aux erreurs de transmission

New

  Insertions de marqueurs de re-synchronisation dans le flux binaire

  Partitionnement des données vidéos   Extension des codes header   Codes VLC réversibles   Rafraîchissement intra   NEWPRED, pour les communications bidirectionnelles client-

serveur

Page 68: Basics of Mpeg 4 Video Compression

Objets du cours

Page 69: Basics of Mpeg 4 Video Compression

L’encodeur

Même schéma, différences dans les détails des blocks

Page 70: Basics of Mpeg 4 Video Compression

Le décodeur

Même schéma, différences dans les détails des blocks

Page 71: Basics of Mpeg 4 Video Compression

La prédiction block intra

Prédiction Intra directement dans l’espace initial de l’image

  Block de 4x4 ou 16x16 pixels

  Luminance 4x4 : 9 options de prédiction

  Luminance 16x16 : 4 options de prédiction

  Chrominance 4x4 : 1 méthode de prédiction

Page 72: Basics of Mpeg 4 Video Compression

La prédiction block intra : luminance 4x4: 9 options

Prédiction Intra directement dans l’espace initial de l’image

Page 73: Basics of Mpeg 4 Video Compression

La prédiction block intra : luminance 4x4: 9 options

Prédiction Intra directement dans l’espace initial de l’image

Page 74: Basics of Mpeg 4 Video Compression

La prédiction block intra : luminance 4x4: 9 options

Prédiction Intra directement dans l’espace initial de l’image

Page 75: Basics of Mpeg 4 Video Compression

La prédiction block intra : luminance 16x16: 4 options

Prédiction Intra directement dans l’espace initial de l’image

Page 76: Basics of Mpeg 4 Video Compression

La prédiction block Inter

  Référence vers une ou plusieurs images de référence

  Compensation de mouvement en arbre structuré   Le MB (16x16) peut être partagé dynamiquement   VMs associés avec les bloques (16x16), (8x16), (16x8), (8x8),

(8x4), (4x8), (4x4)

Page 77: Basics of Mpeg 4 Video Compression

La prédiction block Inter: exemple de répartition

La différence des images (erreur de prédiction) à coder

Page 78: Basics of Mpeg 4 Video Compression

La prédiction block Inter: vecteurs de mouvement

La différence des images (erreur de prédiction) à coder

  Pour chaque block on cherche une référence avec les mêmes dimensions

  Précision d’estimation des vecteurs de mouvement à quart de pixel

  À démi pixel : filtre FIR (Finite Impulse Response) d’ordre 6   À quart de pixel: interpolation bilinéaire supplémentaire

  Codage prédictif des vecteurs de mouvement par rapport aux VMs des blocks voisines: filtre médian

Page 79: Basics of Mpeg 4 Video Compression

La prédiction

  Liberté de choisir la direction de prédiction pour les cadres P et B

  Plusieurs références (même à longue distance)

  Un cadre B peut être utilisé comme cadre de référence

Page 80: Basics of Mpeg 4 Video Compression

La transformée en fréquence: 3 options

  Une transformée 4x4 pour les coefficients DC dans les MB de luminance I (T3)

  Une transformée 2x2 pour les coefficients DC dans tous les MB de chrominance (T2)

  Une transformée 4x4 pour les autres MB (T1)

Page 81: Basics of Mpeg 4 Video Compression

T1 - La transformée en fréquence; retour à la DCT?!

  Concentration de l’énergie sur un nombre réduit des coefficients

  Transforme les entiers en nombre réels (pas besoin d’une telle précision car une quantification suive

Page 82: Basics of Mpeg 4 Video Compression

T1 - La transformée en fréquence; retour à la DCT?!

=

=

d=c/b=0.414

L’idée: faire d=0.5 La transformée:

Page 83: Basics of Mpeg 4 Video Compression

T1 - La transformée en fréquence: la DCT en « entier »

A considérer dans l’étape de quantification

  La transformée C remplace la DCT   Pas de multiplication nécessaire, que des shifts et adition/

soustraction   Les coefficients sont représentés en 16 bits

Page 84: Basics of Mpeg 4 Video Compression

T3 - La transformée des coefficients Y DCT: Transformée Hadamard

16

16

4

4

Page 85: Basics of Mpeg 4 Video Compression

T2 - La transformée des coefficients Cr DCT: Transformée Hadamard

8

8

4

4

Page 86: Basics of Mpeg 4 Video Compression

La quantification

  Nouvelles contraintes:   Pas de division et opération en point flottant   Inclure un facteur d’échelle donné par les matrices résultées de la

transformée

  52 valeurs pour le Qstep

  Facteur d’échelle

Page 87: Basics of Mpeg 4 Video Compression

Le filtrage à la frontière des blocks

  Q=32

Page 88: Basics of Mpeg 4 Video Compression

Le filtrage à la frontière des blocks

  Q=36

Page 89: Basics of Mpeg 4 Video Compression

Le filtrage à la frontière des blocks

P3 P2 P1 P0 Q0 Q1 Q2 Q3

P3

P2

P1

P0

Q0

Q1

Q2

Q3

  Filtre linéaire d’ordre 5, 4 ou 3 en fonction de l’endroit de frontière (MB ou B) et du gradient

Page 90: Basics of Mpeg 4 Video Compression

Le codage entropique

  CABAC: Contexte based adaptative Binary Arithmetic Coding

  VLC : Variable Length Coding

Page 91: Basics of Mpeg 4 Video Compression

Evaluation des performances

Page 92: Basics of Mpeg 4 Video Compression

Evaluation des performances

Page 93: Basics of Mpeg 4 Video Compression

Evaluation des performances

Page 94: Basics of Mpeg 4 Video Compression

Evaluation des performances

Page 95: Basics of Mpeg 4 Video Compression

Les profiles

Page 96: Basics of Mpeg 4 Video Compression

Simple Profile

Page 97: Basics of Mpeg 4 Video Compression

Simple Profile: Levels

Page 98: Basics of Mpeg 4 Video Compression

Les Profiles, version 2

Page 99: Basics of Mpeg 4 Video Compression