Compression numérique Image fixe (et vidéo) 1
Contexte Codage ou compression des images numériques Réduc:on de la quan:té d éléments binaires représentant l informa:on (image, vidéo) Taux de comp. = Qté d'info.ima.originale[bit] Qté d'info.ima.compressée[bit] Objec:f : archivage ou transmission 2
Historique Image fixe : JPEG 1980 : premiers travaux : Discrete Cosine Transform 1989: JPEG «Joint Photographic Expert Group» images couleurs et N&B (Ex : satellite, médicales, ) plusieurs modes (Ex : séquen:el, sans perte, progressif, hiérarchique) 2000 : JPEG 2000 (haute robustesse aux erreurs de transmission, descrip:on basé contenu, interface avec MPEG4, ) 3
Historique Vidéo : archivage et diffusion 1988 : fondement de MPEG «Moving Picture Coding Experts Group» 3 par:es : Vidéo, Audio et Système (le «stream») 1993 : MPG1 but : la qualité VHS sur un CD- ROM (=> stockage) débit bas de 1.5 M bit/s Accès aléatoire dans la séquence 1994 : MPEG2 but : diffusion de la vidéo (=> applica:on télévisuelle) adapta:on aux formats («scalabilité») taille image 4/3 16/9 entrelacé ou non, formats 4:2:0, 4:2:2, 4:4:4, compa:bilité entre niveaux de qualité (normale<- > HDTV). 4
MPEG2 Historique 1998 : MPEG4 décomposi:on de la scène en éléments VOP VOP «Video Object Plane» chaque élément = une composante audio + une composante Vidéo éléments réels ou de synthèse, forme arbitraire, une «boîte à ou:ls de compression» pour les VOP 2000 : MPEG7 pour le mul:média ( jusqu à la descrip:on séman:que de la scène) 5
Système de compression Codage avec pertes («irréversible») : Suppression des redondances cad de l informa:on inu:le Prévisible Invisible par système visuel humain Taux de compression élevés (>10) Codage sans perte («entropique») Ex. : Huffman, Lempel- Ziv, Arithmé:que, => taux de compression faible (1.5 à 2) 6
Principe général A C B X Constat : le niveau de gris d un pixel dépend généralement de celui de ses voisins Idée : prédire X en u:lisant A, B ou C. => Phase d analyse de l image 7
Encodage Echan:llonnage un signal con:nu diviser l axe des temps ou spa:al en intervalles réguliers (discré:sa:on) échan:llonnage uniforme => Te constante 8
Encodage Quan:fica:on : passage du con:nu au discret Discré:sa:on des données Quan:fica:on uniforme : des intervalles égaux Quan:fica:on non- uniforme 9
Les types d images (rappel) Binaire ou monochrome à Pixel codé sur «0» ou «1» Couleur 24 bits à Pixel codé sur 3 octets (Ex. RGB) 256x256x256 couleurs possibles Couleur 8 bits 256 couleurs possibles Exemples de formats : GIF (couleur 8 bits, compression sans perte, animée), JPEG (tous types, compression avec pertes) TIFF (tous types, compression sans pertes) Postscript (sans compression) BMP (couleur 24 bits, sans compression) 10
Sous-échantillonnage Première étape de la compression Sous- échan:llonnage des composantes YCbCr Pour un bloc de 4x4 pixels, chaque ligne con:ent : 4 échan:llons de luminance (Y) 4 échan:llons de chrominance rouge (Cr) 4 échan:llons de chrominance bleue (Cb) 4:4:4 : pas d échan:llonage 4:2:2 : échan:llonage horizontal d un facteur 2 4:1:1 : échan:llonage horizontal d un facteur 4 4:2:0 : échant. horizontal et ver:cal d un facteur 4 posi:onnement du pixel de chrominance 11
Sous-échantillonnage Sous échan:llonage 4:4:4 4 échan:llons de luminance (Y) 4 échan:llons de chrominance rouge (Cr) 4 échan:llons de chrominance bleue (Cb) 12
Sous-échantillonnage Sous échan:llonage 4:2:2 4 échan:llons de luminance (Y) 2 échan:llons de chrominance rouge (Cr) 2 échan:llons de chrominance bleue (Cb) 13
Sous-échantillonnage Sous échan:llonage 4:1:1 4 échan:llons de luminance (Y) 1 échan:llon de chrominance rouge (Cr) 1 échan:llon de chrominance bleue (Cb) 14
Sous-échantillonnage Sous échan:llonage 4:2:0 4 échan:llons de luminance (Y) 2 échan:llons de chrominance rouge (Cr) Ou 2 échan:llon de chrominance bleue (Cb) à Chaque couleur est codée une ligne sur deux
Sous- échan:llonnage Exemple 16
Encodage JPEG 17
Encodage JPEG Découpage en blocs Chaque image est décomposée en blocs de 8 x 8 pixels Les bords sont complétés par des 0, prolongement con:nus, symétrie, Chaque bloc est considéré comme une image 18
Encodage JPEG Transforma:on DCT (sur chaque canal) «Discrete Cosine Transforma:on» Chaque blocs (matrice 8 x 8) est transformé en une autre matrice par DCT à Même taille, valeurs réelles à Passage du domaine spa:al au domaine fréquen:el 19
Encodage JPEG Transforma:on DCT Décomposi:on sur 64 fonc:ons de base (changement de base) bloc 20
Quan:fica:on JPEG Constat : Le système visuel humain est moins sensible aux hautes fréquences Idée : moins de bits pour les coefficients rela:fs à ces fréquences Quan:fica:on : F '( u, v) = ent [ F( u, v)/ q( u, v) ] Reconstruc:on : F ''( u, v) = F' ( u, v) q( u, v)
Quan:fica:on JPEG Quan:fica:on uniforme : tous les q(u,v) égaux Quan:fica:on non- uniforme : tables des q(u,v) Vers les htes. Fréq. pour la Luminance pour les Chrominances q(u,v) grand => quan:fica:on grossière tables peuvent- être transmises dans l en- tête («header») de l image
Exemple X= Valeurs d origines ; Y= Valeurs DCT ; Q= Table de quan:fica:on ; Z= Valeurs quan:fiées
Compression JPEG Balayage en «zig- zag» (d un bloc) Coeff. DC Coeff. AC des basses fréquences à Intérêt : former un vecteur où les coefficients rela:fs aux basses fréquences sont regroupés 24
Codage entropique Compression JPEG Codeur «classique» Un alphabet de mots de code de même longueur (Ex. pour 8 symboles : 000, 001, 010, 011, 100, 101, 110, 111) Codeur «entropique» Un alphabet de mots de code de longueurs différentes (Ex. 00, 01, 10, 110, 010, 111, ) Axribuer aux symboles les plus fréquents, les mots de code les plus courts 25
Compression JPEG Codage des coefficients AC Constat : appari:on de longues plages de 0 après quan:fica:on à Méthode : codage des plages «Run Length Coding» Un ensemble de paires (Coeff., Nb 0) Fin d un bloc : paire (0, 0) :
Compression JPEG Coefficients DC : Mise en correspondance valeurs coefficients / taille du mot binaire Ex. : DC = 9 à 4 bits Sauvegarde de la paire (Taille, Valeur) Coefficients AC : Codage de Huffman des paires (Coeff., Nb. de 0) Table de Huffman Pré- existante ou Construite (transmission dans l entête)
Modes d u:lisa:on de JPEG Mode séquen1el : Le mode de base Chaque image est codée classiquement, avec un «niveau de compression» Mode sans perte : Un codage sans perte U:lisa:on d un prédicteur pour coder les coefficients Taux de compression de 1,5 à 2
Modes d u:lisa:on de JPEG Mode progressif : Idée : transmexre d abord une image de basse qualité, puis l améliorer par des ajouts successifs 2 façons : Sélec:on spectrale : transmexre d abord les coeff. DC et quelques coeff. AC, puis d autres coeff. AC Approxima:ons successives : transmexre d abord des coeff. grossièrement quan:fiés, puis les quan:fier plus finement et transmexre cexe nouvelle informa:on Mode hiérarchique : Répond aux besoins de «scalabilité» de certains décodeurs (dans un même flot binaire : plusieurs résolu:ons, plusieurs modes, ) Par l imbrica:on d opéra:ons d échan:llonnages / codages / décodages / interpola:ons
Compression vidéo et Streaming 30