Plan Schéma de compression vidéo G. Laroche 04/0/2006 Introduction Étapes de compression Codage du résiduel Calcul du résiduel Autres étapes Conclusion Questions Plan Introduction Qu est ce qu un codec vidéo? Introduction Étapes de compression Codage du résiduel Calcul du résiduel Autres étapes Conclusion Questions Ensemble d outils. Entrée : séquences vidéo. Sortie : bitstream. Seul le décodeur est standardisé : Doit pouvoir décoder tout bitstream standard. Et doit rendre une qualité équivalente au autres décodeurs standardisés. Introduction A quoi sert un codec vidéo? Introduction Instituts et organisation Deu instituts de normalisation: ITU ISO Compresser un dont on connaît les caractéristiques, les redondances spatiales et temporelles ( de ZIP). H.26 993 ITU-T ISO-IEC H.262 = MPEG-2 995 MPEG- 99 Applications vidéo de plus en plus nombreuses (TV, Cinéma, DVD, Visio). Permet une augmentation des qualités et résolutions. H.263 998 H.263+ 2000 H.265 200 MPEG-4 999 H.264/MPEG-4 AVC 2003 SVC H.264+/JSVC 2006
6 5 4 3 2 0 Introduction Évaluation Profil Average PSNR (db) Évaluation d une technique de compression 35 34 33 32 3 30 29 Codage avec perte: courbe débit-distorsion (R-D) Evaluation Objective 0 00 200 300 400 500 600 700 800 900 Bit-rate (kbits/s) Visual Quality Evaluation Subjective 0 2 3 4 5 6 7 8 Bit-rate (Mbits/s) Recommandation normalisée (ITU) Profil : Ensemble d outils liés à une application. Eemple : H.264 7 profils différents : Baseline : Application mobile, visiophonie. Main : Streaming/broadcast. Etended : Mobile video services. High : High 0 High 4:2:2 : High 4:4:4 : Fidelity Range Etension, TVHD, Digital Cinema, Blue Ray/HDDVD. Evaluation Objective moins fiable/subjective très coûteuse Profil Plan PSNR 45 40 35 30 25 20 R-D Evaluation Objective HIGH BASELINE Introduction Étapes de compression Codage du résiduel Calcul du résiduel Autres étapes Conclusion Questions 5 0,00 00,00 200,00 300,00 400,00 500,00 600,00 700,00 Bit-rate (kbits/s) - - vectors vectors
Transformations - Généralités Transformations - Généralités Entropie : valeur moyenne de la quantité d information associée à une variable aléatoire. Objectif : dé-corréler le. Pourquoi? Codage entropique + efficace. Domaine piel Pourquoi ça marche? Corrélation spatiale dans l image «un piel ressemble souvent à son (ses) voisin(s)» Équiprobabilité des valeurs sur [0 ; 255] Énergie concentrée sur les basses fréquences, proba faible sur les grandes amplitudes dans les hautes fréquences Domaine transformé Entropie en chute libre! + d énergie dans les basses fréquences Transformations - Transformations - Transformée fréquentielle Formule : Implémentation simple Algorithmes rapides Efficace Dans la pratique : (I) = P - IP Utilisée dans JPEG, MPEG-, MPEG-2... Transformations - I est une combinaison linéaire des éléments de la base suivante : Eemple I : (i) :
Transformation H.264 Transformation DWT En pratique : Discrete Wavelet Transform : utilisé dans le standard JPEG2000. 2 2 2 2 00 0 20 30 0 2 3 02 2 22 32 03 3 23 33 2 2 2 2 Pas utilisé (pour l instant) dans les codeurs vidéo STANDARD. H.264 décalages et additions Permet un scalabilité en résolution. Transformation DWT Discrete Wavelet Transform : utilisé dans le standard JPEG2000. Pas utilisé (pour l instant) dans les codeurs vidéo STANDARD. - Permet un scalabilité en résolution. Outil pour la scalabilité vectors Introduction de pertes - quantification Eemple quantification Matrice de quantification en fonction du pas de quantification. (i) : Division entière des coefficients de la matrice par les coefficients de la matrice de quantification. Objectif : réduire l alphabet de la matrice. Entraîne une perte de données. Q((i)) :
Codage entropique - Suite à la quantification on a beaucoup de valeurs proches de 0. Le codage entropique va permettre de réduire la quantité d information. vectors 2 types de codage: Variable Length Coding. Codage Arithmétique. Codage entropique VLC (Variable Length Coding) Codage entropique - Huffman (952) Longueur d une séquence donnée (bits) : L = Nb _ symboles * Entropie de cette séquence (bits/symbole): h = p i log ( p i ) N i= 0 p i. l i Nb de valeurs prises par les symboles Nb de bits attribués à la valeur i Probabilité de la valeur i. 2 i Codage de Huffman (952) = optimal au sens de l entropie(bits/symbole): 0 0 B (p = 0.25) BC (p = 0.45) C (p = 0.2) 0 D (p = 0.5) DE (p = 0.27) E (p = 0.2) ADE (p = 0.55) 0 A (p = 0.28) A = 0 B = 00 C = 0 D = 0 E = On attribue -[log 2 (p i )] bits au symbole i Le RLC Zig-zag scanning Codage entropique - RLC+VLC DC Séquence : 0004000000-300000000000-3 (3,4) (6,-3) (8,) (,) (2,) (0,-3) Ordre de parcours des coefficients quantifiés Matrice (N,N) Vecteur (NN,) 000000000000000000000000 Balayage par ordre croissant des fréquences spatiales. RLC efficace Chaque couple codé par l algorithme de Huffman. plus la fréquence d apparition d un symbole est forte, plus la chaîne est courte.
Codage Arithmétique - IBM, début 80 s Codage Arithmétique - IBM, début 80 s Limite du codage de Huffman : nb de bits entier par symbole. E: p A = 90% A codé sur bit au lieu de 0.5 bit (6 fois trop). Codage arithmétique : on code une suite de symboles par un intervalle en virgule flottante sur [0,[. Eemple 0 /2 7/8 A B C /2 /6 53/64 7/8 A B C /2 9/32 85/28 /6 A (p = 0.500) Symboles : B (p = 0.375) C (p = 0.25) On veut transmettre BAB Probabilités connues du codeur et du décodeur A B C ]9/32 ; 85/28[ Codage Arithmétique - IBM, début 80 s On code 9/32 5 bits. Au décodage on connaît la table de probabilité. On a : /2 > 9/32 > 7/8 premier caractère est B (9/32-/2)/(intervalle de B) = 3/32/(7/8-/2) = 0.25 0 > 0.25 > /2 2ième caractère est A Etc La chaîne est donc BAB - vectors JPEG Plan - Introduction Étapes de compression Codage du résiduel Calcul du résiduel Autres étapes Conclusion Questions vectors
Résiduel? Recherche d un prédicteur à partir de l information déjà connue. Puis codage de la différence entre le prédicteur et le bloc de départ. e(, = p(, pˆ(, Et inversion au décodage. p (, = pˆ(, + e(, - vectors Redondances temporelles Redondances temporelles Compression d image fie : redondance spatiale. Compression d image vidéo : redondance spatiale et temporelle. Entre 2 images successives, peu de différences. il doit y avoir moyen de déduire l une de l autre... Image (t 0 ) Image 2 (t 0 +40 ms) Image Type Temporel - Schémas prédictifs I : (INTRA) Codage uniquement spatial. Équivalent à JPEG. P : (PREDICTED) Codage temporel, en fonction d'une image précédente. B : (BIDIRECTIONAL) Codage temporel, en fonction de 2 images. Débit(I)>Débit(P)>Débit(B) On prédit une image par rapport à une (plusieurs). autre(s) de référence ; on code la. E: images P et B. Suppose une boucle de décodage dans le codeur. Et qu une image soit codée en Intra (I).
Estimation de mouvement nécessaire? Le block matching Zone immobile : Zone en mouvement : Très faible erreur de prédiction Skipping Mouvement trop rapide pour l œil Forte quantification Principe : Mise en correspondance par minimisation de la MSE sur des blocs de taille fie. Avantages : Pas de segmentation à transmettre. Simplicité. Bonne compatibilité avec le codage spatial (block based). Block matching - full search Non normatif Compensation de mouvement - Intérêt Principe : Mise en correspondance par minimisation d une fonction coût sur des blocs de taille fie. V (i,j) Ae temporel (k,l) Iref(n-) Icur(n) Pour chaque bloc B[i][j] centré en (i,j), recherche dans l image de référence du bloc B[k][l] lui ressemblant le plus. Le vecteur est V(B[i][j]) = (i-k, j-l). t0-t Compensation de mouvement entre t0 & t Block Shapes Anciens codeurs : bloc 88 H.264 : 4 modes principau pour la de mouvement. 66 68 86 88 Sub-Piel Prediction Pourquoi?: Mouvement non pielique. Engendre plus de détails. En mode 88, un bloc peut être divisé. Estimation au piel entier, au ½ et au ¼ de piel 88 84 48 44 mise en compétition
Prédiction Intra - BUT : Eploiter la redondance spatiale. H.263 : Prédiction domaine Bloc 88 : 3 modes H.264 : Prédiction domaine piel Bloc 44 : 9 modes Bloc 66 : 4 modes Bloc 88 (high) : 9 modes vectors H.264 plus efficace que H.263 et JPEG2000 Prediction Intra 66 H.264 Plan Le macrobloc est prédit en fonction de la ligne du haut et la colonne de gauche. 4 modes de prédiction : DC Horizontal Vertical Plane Introduction Étapes de compression Codage du résiduel Calcul du résiduel Autres étapes Conclusion Questions mise en compétition Temporel - Codage des vecteurs! - En général: Les vecteurs sont codés sans perte MV et MV y séparément MV et MV y sont codés à l aide d un prédicteur qui est la médiane des vecteurs voisins déjà enregistrés. Résiduel VM = VM Médian ( a, b, c) b c vectors a VM
filter - Pourquoi? Amélioration de la qualité visuelle. Gommage des effets de bloc. Compensation de mouvement plus efficace. Comment? Dans la boucle de de mouvement. Moyenne pondérée des piels en bordure de bloc. Organisé par filtre. Choi des filtres en fonction des caractéristiques des blocs. vectors filter - Beaucoup de tests, clips, très coûteu, très efficace. vectors Conclusion Non normatif Mise en compétition de tous les modes possibles. Minimisation d une fonction coût respectant : La qualité Le bit-rate J = D + λr Compression toujours nécessaire. Eploitation des redondances spatiales et temporelles. Schéma de codage vidéo calqué sur celui du codage d'image. Distortion (qualité) Rate (bit-rate) L enjeu des prochaines années : HD, consommation mobile, la vidéo 3D.
La bibliographie Chiffres et Résultats Jean-Alain Hernandez,René Joly, Les normes et les standards du multimédia, Dunod 2000. Compression d images fies et animées JPEG et MPEG, conférence ENST Bretagne 2003. Un film de h30 : 25 Go non compressé. 650 Mo en MPEG4. 350 Mo en H.264. 75 Mo en H.265 soit 4 films sur un CD de 700 Mo T. Wiegand, G.J. Sullivan, Overview of the H.264/AVC Video Coding Standard, IEEE 2003.