DUT MMI S2 2016 CULTURE SCIENTIFIQUE CM DU 12/09/ 2016 II) LA COMPRESSION VIDÉO I) Pourquoi compresser? Les différentes techniques de compression I) Pourquoi compresser? Full HD : 1920x1080 = 2 073 600 pixels 2K : 2048x1080 = 2 211 840 pixels 4K : 4096x2160 = 8 847 360 pixels Calcul du débit théorique nécessaire pour le transport d une vidéo HD codée sur 8 bits : 8 (bits) x 2 073 600 (définition) x 24 (i/s) = environ 400 Mbits/s! Et en plus, il faut coder le rouge, le vert, et le bleu Donc ce n est pas sur 8 bits (1 octet) mais sur 3 octets 3 x 8 x 2 073 600 x 24 = 1,2 Gbits/s!! En 4K, il faut compter un débit de 5 Gbits/s La course à la définition de l image numérique ne risque pas de s achever de sitôt Mais elle implique des débits toujours plus gourmands, ce qui entraîne des difficultés de stockage et de transport du signal. L heure est au régime Il est donc impératif de faire subir un régime drastique au signal afin de «perdre du poids» binaire! Le principal enjeu de la compression est de diminuer la taille des fichiers à stocker/diffuser/transférer, sans pour autant perdre en qualité! Compresser une image puis une vidéo, c est exploiter intelligemment ce qui la compose. Une vidéo numérique, c est : - un flux d images, mais aussi.. - un flux audio DUT MMI S2 2016 / CULTURE SCIENTIFIQUE / (12/09/2016) 1
- du texte - des métadonnées L ensemble peut être défini par un format vidéo (quicktime, avi ) Mais en réalité ce qu on appelle format résulte de deux concepts techniques distincts : Conteneur + CoDec Conteneur : structure du fichier vidéo Flux vidéo Métadonnées Flux audio Format AVI Format WMV Etc Conteneur AVI Conteneur ASF Si le conteneur organise les différents flux audio et vidéo, il faut les encoder en amont selon le format attendu par le conteneur, en optimisant la compression. C est le rôle du Codec (Codeur-Decodeur). Si on compare le Conteneur à une boîte, le Codec décrit la méthode pour ranger ou déballer la vidéo. L efficacité d un codec se mesure à la qualité sa compression, mais aussi à celle de sa décompression : capacité à restituer la vidéo lors de sa diffusion au plus près de sa qualité d origine dans un débit performant. Un conteneur peut utiliser plusieurs codecs différents : MP4 AVI Codec MJPEG Codec XVID Codec DIVX Codec H.264 Codec MPEG-4 Quelles différences entre tous ces conteneurs / codecs? Comment les choisir? Différents critères : la taille de l image, la compatibilité avec tel ou tel lecteur/diffuseur/logiciel.la qualité souhaitée, l objectif de diffusion Pour en revenir à la compression, le but est de réduire la quantité de données stockées tout en minimisant l impact sur la qualité. On distingue : - La compression sans perte : aucune donnée n est réellement supprimée de l image DUT MMI S2 2016 / CULTURE SCIENTIFIQUE / (12/09/2016) 2
- La compression avec perte : on élimine des données de manière sélective Pour cela, plusieurs stratégies sont mises en œuvre, basée sur le principe des redondances : 1 ) redondances physiologiques : l œil humain n est pas sensible à tout, il n est donc pas nécessaire de transmettre ce qu il ne peut pas apprécier! 2 ) redondances spatiales : sur la photo d un mur gris uni, un pixel gris a de fortes chances de cotoyer un autre pixel gris 3 ) redondances temporelles : transmettre de l image que ce qui évolue dans le temps III) Les différentes techniques de compression 1) Redondances physiologiques - les ratios luma/chroma La première stratégie est basée sur un constat assez simple : en adaptant l'image aux caractéristiques physiologiques de l œil et du cerveau, il doit être possible de "perdre" des données sans que l œil et le cerveau ne s'en rendent compte. Quelles sont les caractéristiques de la vision humaine? - La couleur d un objet est captée par des photorécepteurs appelés cônes. Ils sont au nombre de 6 millions environ, soit moins de 5 % du nombre total des photorécepteurs. Appelons ce type d informations la chrominance. - Le «contraste», ou niveau de détails d un objet, soit l'information en dégradés de gris, est captée par des photorécepteurs appelés bâtonnets, qui sont aussi reliés à la détection du mouvement. Ils sont au nombre de 120 millions environ. Appelons ce type d informations la luminance. L œil accorde donc plus d importance à la luminance d un objet qu à sa chrominance. L idée est donc de réduire les informations de chrominance, en partant du principe que l œil n en a pas spécialement besoin pour apprécier la qualité d une image. Problème : le signal vidéo d'une caméra est nativement transporté sur 3 couleurs primaires R (Rouge), G (Vert) et B (Bleu) (cf matrice de Bayer et répartition des photosites) Solution : il faut transformer, matricer les 3 signaux R+G+B en 4 signaux NB/R/G/B, pour avoir d'un coté le signal noir et blanc, de l'autre les signaux de la couleur. Sans entrer dans le détail de chaque norme de vidéo numérique, voici la recette (basée sur la courbe de réponse des cônes et des bâtonnets, mais peut varier en fonction de la technologie du moment ) pour calculer la valeur en noir et blanc du pixel à partir de ses 3 composantes couleurs : 100% NB = 30% R + 60% G + 10% B DUT MMI S2 2016 / CULTURE SCIENTIFIQUE / (12/09/2016) 3
En vidéo, le terme "NB" est remplacé par la lettre "Y". Y = 30% R + 60% G + 10% B Sachant que le but ultime est de réduire le débit de la vidéo, il faut simplifier le transport et non l'alourdir. Or, nous avions 3 signaux : R, G et B. Et après matriçage, nous en avons 4: Y, R, G, B. Un peu de mathématiques Y étant la somme des 3 primaires couleurs, on peut faire disparaître l'une des primaires et la retrouver à la fin en connaissant la somme; c'est une équation à une inconnue (x) : Y = 30% R + x(?) + 10% B ce qui permet de ne transporter que Y R B sur 3 canaux, puis ensuite de retrouver mathématiquement la composante G. Par ailleurs, il est stratégiquement plus léger de transporter la différence entre les composantes couleurs et Y, que les composantes en elles-mêmes. Nous obtenons ainsi le mode de transport vidéo dit "composantes" sur 3 signaux : Y B-Y R-Y En numérique, le signal s'écrit généralement avec la lettre de la composante (C) primaire transportée : Y Cb Cr OU Y U V R G B Définition horizontale 1920 1920 1920 Définition verticale 1080 1080 1080 Poids d une image 1,7 Mo 1,7 Mo 1,7 Mo Débit nécessaire 4,1 Mbits/s 4,1 Mbits/s 4,1 Mbits/s Maintenant, il s agit de diminuer les informations de chrominance sans toucher aux informations de luminance du signal. Tableau 1 : DUT MMI S2 2016 / CULTURE SCIENTIFIQUE / (12/09/2016) 4
Y Cr Cb Définition horizontale 1920 960 960 Définition verticale 1080 1080 1080 Poids d une image 1,7 Mo 0,83 Mo 0,83 Mo Débit nécessaire 4,1 Mbits/s 2,07 Mbits/s 2,07 Mbits/s On a donc sous-échantillonné la chrominance, ce qui réduit le «poids numérique» d une image d environ 1/3 Voyons si l on peut faire plus Tableau 2 : Y Cr Cb Définition horizontale 1920 480 480 Définition verticale 1080 1080 1080 Poids d une image 1,7 Mo 0,4 Mo 0,4 Mo Débit nécessaire 4,1 Mbits/s 1,03 Mbits/s 1,03 Mbits/s Pour pouvoir qualifier le niveau de sous-échantillonnage de la chrominance par rapport à la luminance, on associe à chaque composante un rapport (ratio) entre la luminance (Y) et la chrominance (Cb et Cr) : R (ratio sur 4) G (ratio sur 4) B (ratio sur 4) 4 4 4 4 pixels de R 4 pixels de G 4 pixels de B Du coup, le tableau 1 décrit ce que l on nomme le 4 :2 :2 et le tableau 2 le 4 :1 :1 DUT MMI S2 2016 / CULTURE SCIENTIFIQUE / (12/09/2016) 5
- L enregistrement et le stockage en 4:4:4 est rare car lourd, destiné aux productions cinéma chères, aux effets spéciaux, aux incrustations - L enregistrement en 4:2:2 est dit «broadcast», destiné à la production «de qualité» - L enregistrement en 4:1:1 ou 4:2:0 trouve sa place au niveau du grand public et la diffusion ou télédiffusion numérique (TNT, Blu-ray ) 2) Redondances spatiales Dans de nombreuses images, on constate qu il existe des redondances : un pixel est souvent identique au pixel voisin. La norme JPEG utilise un algorythme de compression nommé «Transformée en Cosinus Discrète» a) Matrice d analyse On commence par «découper» notre image en blocs de 8x8 pixels. DUT MMI S2 2016 / CULTURE SCIENTIFIQUE / (12/09/2016) 6
Puis, l algorythme va comparer chaque bloc de pixels 8x8 à une «bibliothèque de motifs» (dont les blocs vont d une valeur moyenne de luminance à des motifs de plus en plus complexes) Il cherche : - La présence de chaque motif - L amplitude de chaque motif - La phase de chaque motif Et il attribue une valeur correspondante. On passe donc d une représentation «spatiale» à une représentation «fréquentielle». Mais jusqu ici la DCT n est pas destructive, c est juste une autre manière de décrire notre bloc de pixels, qui permet de choisir judicieusement les informations à garder et celles à négliger. b) Quantification Pour permettre de compresser notre image, on applique à la table des valeurs DCT une table de coefficients. Les coefficients sont différents en fonction des valeurs de fréquence de notre DCT. C est donc lors de la quantification qu on parle de compression destructive, puisqu il y a simplification. Le taux de compression d une image JPEG dépend directement de la table des coefficients appliquée lors de la quantification. c) Application d un codage Si l exploitation des redondances spatiales est intelligente, elle l est tout autant dans son codage : on utilise le «VLC» : Variable Length Coding. On effectue d abord une lecture en zig-zag de la matrice des valeurs, ce qui permet de mettre en évidence les longues suites de «0» (c est-à-dire des motifs qui n existent pas du tout dans notre bloc de 8x8 pixels) DUT MMI S2 2016 / CULTURE SCIENTIFIQUE / (12/09/2016) 7
La transcription VLC combine deux chiffres. 1 er chiffre : nombre de zéros précédant la valeur 2 e chiffre : valeur en elle-même Ainsi, on évite de coder les longues suites de 0 qui peuvent exister. Exemple : Valeurs différentielles d un bloc de pixel : 110 ; -2 ; 8 ; 4 ; 1 ; 2 ; 0 ; 0 ; 0 ; 3 ; 1 ; -1 ; 1 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0.. Codage VLC : (0,110) (0,-2) (0,8) (0,4) (0,1) (0,2) (3,3) (0,1) (0,-1), (0,1) End of Bloc Ensuite, on exploite le potentiel d entropie d une image : l entropie, c est la mesure de l incertitude d un message donné à partir de celui qui le précède. Exemple : la photo d un ciel bleu azur a une forte entropie. La probabilité que le pixel qui suit un pixel bleu soit lui aussi bleu est forte. Il existe donc des codes qui seront plus courants que d autres : - Une valeur courante est codée avec un mot court - Une valeur rare est codée avec un mot long - (du coup, il y aura souvent plusieurs valeurs par mot de 8 bits il faut attendre qu un code soit complet avant de l interpréter ) - Le VLC est relativement compliqué, mais il permet une grande économie de débit sans générer de pertes! Tout est dans le codage!! 3) Redondances temporelles La première norme vidéo à exploiter la redondance temporelle est le MPEG-1, mais ce principe est utilisé dans de nombreux codecs récents comme le H264. La maison ne bouge pas, il n est donc pas nécessaire de coder l image de la maison, uniquement le petit bonhomme qui bouge L idée est donc d envoyer la différence entre deux images consécutives DUT MMI S2 2016 / CULTURE SCIENTIFIQUE / (12/09/2016) 8
On en vient donc à cette stratégie : - On travaille sur un groupe d images (GOP-12 images=1/2 seconde) - Certaines images sont codées sans exploitation de redondance temporelle. Codées sur elles-mêmes, ce sont des images Intra. - Certaines images sont codées en exploitant la redondance temporelle ou non, en fonction de la zone analysée. Ce sont des images Prédites. - Certaines images sont codées en exploitant la redondance temporelle passée et future. Ce sont des images Bidirectionnelles. I : Intra. Codées, sur elles-mêmes références P : Prédites B : Bidirectionnelles Image Intra : image issue d aucune prédiction et n utilisant que la redondance spatiale. Image Prédite : image codée à partir des images Intra ou Prédites précédentes (utilisation des informations du passé, estimation du mouvement, calcul du vecteur de mouvement) Image Bidirectionnelle : image codée à partir des images Prédites ou Intra voisines. (utilisation des informations du passé et du futur) L'estimation de mouvement consiste à trouver un vecteur assurant la correspondance entre une zone de départ sur une image et une zone d'arrivée sur la suivante. Les zones de recherches sont des carrés de 16 pixels de côté appellés 'Macroblocs'. On déplace le bloc de départ dans une fenêtre de recherche de manière à trouver le macrobloc le plus ressemblant (Block matching), ce qui donne un vecteur de mouvement qui s'appliquera à tous les pixels du macrobloc. On calcule ensuite la différence entre le bloc à coder et le bloc le plus ressemblant et cette différence est soumise à un codage similaire à celui des images I. Les vidéos utilisant des codecs exploitant les redondances temporelles sont destinées à la visualisation et non au montage précis Car il n est pas possible de faire un point d entrée en plein milieu d un GOP, les cuts sont donc limités à toutes les demies-secondes Tout est une question de choix : que veut-on faire de nos images? Et on en revient à notre problématique de départ - Montage précis? - Montage rapide de gros blocs de vidéo? - Visualisation seule, accès rapide pour webdiffusion? - Taille de l image? Qualité souhaitée? - Etc DUT MMI S2 2016 / CULTURE SCIENTIFIQUE / (12/09/2016) 9