Codecs Techniques de compactage
Le codage des images Une image peut être représentée par un tableau de pixels chaque case contenant trois valeurs R, V, B représentant les intensités des trois couleurs primaires additives rouge, vert, bleu Ainsi si l'on quantifie l'intensité lumineuse de chaque teinte primaire sur 256 niveaux, on occupe 1 octet pour chaque couleur, soit 3 octets pour un pixel. Ce codage correspond à environ 16 millions de couleurs (256 x 256 x 256 = 16 777 216) (codage sur 24 bits) On ajoute parfois un coefficient de transparence, codé lui aussi sur un octet ce qui conduit à 4 octets par pixel (codage sur 32 bits)
Obtention de la couleur Le système additif L'écran de télévision produit l'image par ajout de lumière. On part d'un écran noir, on allume des points lumineux de chacune des trois couleurs primaires rouge, vert, bleu dosées de manière à obtenir toutes les couleurs.
Le codage des images En vidéo on utilise le codage YUV qui prend en compte les caractéristiques de la vision humaine pour un meilleur rendu et une plus grande efficacité (codage luminance, chrominance) Y est la luminance U et V codent la couleur Le passage du RVB au YUV est sans perte et inversible mathématiquement (système linaire). Le système visuel humain est moins sensible aux nuances de couleurs qu'aux différences d'intensités lumineuses. D'où l'intérêt de ce codage au moment du compactage.
Le codage YUV La luminance Y : Y = 0,3 R + 0,59 V + 0,11 B Les coefficients (pourcentages) ont été déterminés en fonction de la sensibilité de l'œil humain pour les trois couleurs primaires. U et V codent la couleur : U la différence de couleur exprimée à partir du bleu DiffBleu = B - Y = 0,89 B - 0,3 R - 0,59 V V la différence de couleur exprimée à partir du rouge DiffRouge = R - Y = 0,7 R - 0,59 V - 0,11 B Le passage du RVB au YUV est sans perte et inversible mathématiquement (système linaire). Le système visuel humain est moins sensible aux nuances de couleurs qu'aux différences d'intensités lumineuses. D'où l'intérêt de ce codage au moment du compactage (voir plus loin).
Nécessité des codecs La compression des données est indispensable Le format DV propose des images dont la taille est de 720 576. Si l'on raisonne sur une seule image de cette taille codée en millions de couleurs, il faut 3 octets par pixel, donc 1 244 160 octets par image. À 25 images par secondes on arrive au nombre impressionnant de 31 104 000 octets/ seconde soit en valeurs arrondies 31 Mo par seconde ou encore 1,8 Go par minute. En réalité le débit du DV est environ de 3,2 Mo par secondes en qualité maximale (compression minimale) soit environ 10 fois moins que ce calcul théorique
Compactage Le compactage permet : De diminuer la place occupées sur les supports, De diminuer les débits (temps de transmission, ou fluidité) C est possible car les décompactages peuvent se faire en temps réel
Compactage Sans compactage impossible de : Diffuser des vidéos sur l internet Stocker de manière raisonnable des heures de vidéos Diffuser la télévision par câble ou TNT Enregistrer avec une caméra sur des supports de type mémoire, disque dur ou DVD
Types de compression Deux grandes catégories d'algorithmes de compactage de la vidéo : la compression spatiale la compression temporelle
Types de compression Dans le premier cas les images sont traitées une à une. À chacune d'elle est appliqué un algorithme de compression pour images fixes. Dans le deuxième cas on utilise la cohérence temporelle, c'est-à-dire que, d'une image à la suivante, on s'efforce de ne stocker que ce qui change. En pratique le compactage temporel est toujours accompagné du compactage spatial.
Codecs courants M-JPEG (Motion JPEG) Le M-JPEG utilise la cohérence spatiale pour la compression. En conséquence l'accès à une image précise est facile. Il est utilisé dans les studios de montage numérique. (débit 1Mo/s environ)
Codecs courants MPEG (Moving Pictures Experts Group 1988) Le MPEG utilise la cohérence temporelle pour la compression. Plusieurs MPEG : MPEG1 débit de 180 Ko/s qualité proche du VHS (352x240 à 30 images par seconde en NTSC et 352x288 à 25 images par seconde en PAL/SECAM) MPEG2 débit de 5 Mo/s qualité prévue pour la télévision à haute définition. Jusqu'à 5 canaux audios. C'est le format typique des DVD. MPEG4 version vectorisée permettant de l'interactivité avec les objets composants le flux vidéo. Application au multimédia et au WEB mais aussi MPEG7, MPEG21,...
Codecs courants Le DivX (de type MPEG-4) Compactage temporel Le DivX se caractérise par un très fort taux de compression permettant de stocker plus d'une heure de vidéo sur un cédérom de 650Mo (ce qui lui vaut son succès). La qualité est bien inférieure toutefois à celle du MPEG2 plus gourmand en place il est vrai. XviD, VP3, 3ivX sont différentes implémentations du codec.
Codecs courants Le H.264 ou MPEG-4 AVC (Advanced video Coding) Excellent codec pour l internet C est du MPEG4 Part 10 (ISO/CEI 14496-10)
Codecs courants Le DV (Compactage spatial) Il fait appel à des algorithmes récents de compressions (DCT = Discrete Cosine Transform). Bon rendu des couleurs Taux de compression de 5 à 1 Débit constant de 3,2 Mo/s environ Correction d'erreur évitant ainsi les sauts d'images fréquents en analogique Qualité analogue à celle du Betacam SP, qui fut la norme la plus utilisée en télévision-diffusion professionnelle
Le codec DV
Codecs courants Comparaison du DV avec les normes professionnelles analogiques Bande passante vidéo (vitesse lente) Bande passante vidéo (vitesse rapide) Rapport signal vidéo/ bruit (vitesse lente) Dynamique audio Bande passante audio Pleurage et scintillement Durée des bandes Format DV 5.75MHz 1.5 MHz > 54db > 96db 20 à 16 khz non mesurable 60/240mn Betacam UVW 4.0MHz 1.5 MHz > 49db > 70db 50 à 15 khz < 0,18% 30/90mn Betacam BVW/PVW 4.5MHz 1.5 MHz > 51db > 70db 40 à 15 Khz < 0,10% 30/90mn
Algorithmes DV Chaque image est compressée isolément Une image est formée de deux trames compressées ensemble Sous-échantillonnage YUV sur chaque image à partir des données RVB Pour chaque pixel, on garde, par exemple, 4 échantillons Y et seulement 2 pour U et 2 pour V. Ceci explique la notation (4:2:2) Un traitement DCT (Discrete Cosine Transform) des données se fait ensuite sur ces informations.
Sous-échantillonnage YUV Principe Pour une image, on mémorise toujours une intensité lumineuse Y pour chaque pixel. Pour les composantes de couleur U et V on ne mémorise une valeur de U ou de V que pour un groupe de 2 ou de 4 pixels. Pas de perte visuelle car l œil est plus sensible au intensités lumineuses qu aux couleurs
Sous-échantillonnage YUV Image initiale en RVB fournie par le capteur CCD :
Sous-échantillonnage YUV Image codée en YUV sans réduction :
Sous-échantillonnage YUV Image codée en YUV avec réduction 4:2:2 (DVC50 Pro)
Sous-échantillonnage YUV Image codée en YUV avec réduction 4:2:0 (DV PAL)
Sous-échantillonnage YUV Image codée en YUV avec réduction 4:1:1 (DV NTSC)
La transformation DCT (Discrete Cosine Transform) C'est une transformation analogue à la transformation discrète de Fourier On découpe l'image en bloc de 8 x 8 pixels Si l'on nomme M la matrice mathématique constituée des valeurs de ce bloc (valeurs de luminance ou de chrominance) on lui applique une transformation matricielle : Mf = t BMB où B est une matrice orthogonale de changement de base, sa matrice inverse étant sa transposée t B. Cette opération est inversible, sans perte.
La transformation DCT (Discrete Cosine Transform) La matrice B est donnée par : et pour j>0 Le résultat est une matrice représentant les fréquences spatiales qui composent l'image
La transformation DCT (Discrete Cosine Transform) Une image ayant des détail fins possède des fréquences spatiales élevées. Une image plate sans détail n'a que des fréquences basses. La transformation produit une matrice dans laquelle les coefficients en haut à gauche sont les basses fréquences et en bas à droite les hautes fréquences. Ainsi un bloc correspondant à une image unie produira une matrice avec un coefficient en basse fréquence et tous les autres coefficients nuls. On imagine bien ensuite qu'une telle matrice puisse être stockée de manière efficace.
La transformation DCT (Discrete Cosine Transform) La quantification Une fois réalisée la transformation de chaque bloc en matrices de fréquences, il faut quantifier les coefficients afin de les traduire par des valeurs entières d'un intervalle [0, n]. C'est la quantification. Si tous les entiers se trouvaient dans un intervalle [256, 511] on voit bien que le stockage ne serait pas optimal puisque deux octets seraient nécessaires et pourtant la précision ne serait pas meilleure qu'avec l'intervalle [0, 255]. On peut par division s arranger à avoir les valeurs dans un bon intervalle. Le résultat pour un bloc est stocké dans une table 8 x 8 (il y a une table différente pour la luminance et la chrominance). Le résultat est arrondi à l'entier le plus proche. Ce sont les calculs de quantification qui introduisent des pertes d'informations. La quantification fait perdre de la finesse dans les fréquences et fait disparaître des fréquences basses en les annulant.
Compactage du DV L'algorithme de compactage s'achève par le calcul d'un arbre de Huffman sur la matrice globale des fréquences de l'image que l'on a organisée au préalable de manière à placer les fréquences basses en haut à gauche jusqu'aux fréquences hautes en bas à droite. Ce codage est sans perte. Le principe est d'attribuer des codes aux différentes valeurs à mémoriser. On espère bien sûr que ces codes vont prendre moins de place que les valeurs elles-même. L'idée est de faire en sorte d'affecter des codes courts aux valeurs fréquentes et des codes plus longs aux valeurs rares.
Algorithme de Huffman On construit un arbre de la manière suivante : On commence par classer les valeurs par ordre des fréquences d'apparition (d'où l'intérêt pour notre cas de réorganiser d'abord la matrice pour faciliter ce tri) La valeur V1 la moins fréquente ainsi que la suivante V2 sont retirées de la liste à coder. On appelle poids le nombre des apparitions de chaque valeur. On forme un arbre binaire dont le fils gauche est V1 et le fils droit V2. Sur la racine on place la somme des poids de V1 et de V2. Cet arbre est traité comme une nouvelle valeur de poids égale à la valeur située sur sa racine et il est ajouté à la liste. On continue ainsi le traitement jusqu'à l'obtention d'un arbre binaire contenant toutes les valeurs. Les codes binaires des valeurs sont obtenus en lisant l'arbre depuis la feuille de la valeur jusqu'à la racine de l'arbre : selon que l'on est sur un fils gauche ou droit on a le code 0 ou 1. La construction même de l'arbre fait que les valeurs rares sont profondément placées dans l'arbre et donc possèdent un code long tandis que les valeurs fréquentes sont proches de la racine et possèdent donc un code court
Algorithme de Huffman Exemple de codage sur du texte
Le codec MPEG
Algorithmes MPEG On pratique d'abord une réduction Y:U:V analogue à celle du DV (4:2:2) On utilise ensuite un algorithme de compactage spatial de type jpeg On termine par un compactage temporel qui cherche à ne coder que ce qui change d'une image à l'autre. Pour cela on définit différents type d'images : Les images I qui ne présentent qu'un compactage interne (compactage spatial en jpeg). Ce sont les images qui occupent le plus de place en mémoire. Les images P calculées à partir de l'images I ou P la plus proche en amont. P ne mémorise que les différences avec cette image de référence. Les images B sont obtenues par interpolation de deux images calculées. Ce sont les images qui occupent le moins de place en mémoire. Ce sont les images P et B qui sont responsables du compactage (ainsi que de la perte de qualité)
Algorithmes MPEG Les GOP Les images de type I, P, B sont regroupés en motifs répétitifs nommés GOP (Group Of Pictures) Au niveau du traitement, tant au codage qu'au décodage, un GOP est considéré comme un tout. L'algorithme travaille sur l'ensemble du GOP au lieu de travailler sur une image isolé. Le traitement global d'un GOP permet un compactage bien plus fort que le travail sur des images isolées. Exemple d'un GOP de 15 images basé sur le motif IBBP Références des images de type P Références des images de type B
Les GOP du MPEG La norme MPEG permet l'utilisation de différents types de GOP Un GOP contient toujours une image I, pas obligatoirement en tête du GOP On peut modifier le motif de base en changeant ainsi la proportion de P et de B. Les motifs les plus utilisés sont IBP et IBBP et IP plus rarement. Durée maximale de GOP En NTSC : 18 images En PAL : 15 images Efficacité des GOP Un GOP long produit un compactage plus efficace (moins d'images I). Pour des vidéo à mouvement rapide, il est préférable d'utiliser des motifs courts avec des GOP courts.
Algorithmes MPEG Les algorithmes d'encodage du MPEG doivent déterminer les GOP en analysant la séquence à traiter Deux catégories d'algorithmes : Méthode CBR : le débit est constant indépendant du contenu de la vidéo Méthode VBR : débit variable compris entre deux valeurs pré-déterminées. Le débit est plus grand lorsque le contenu de la vidéo est plus animé Cette dernière méthode donne de meilleurs taux de compactage à qualité égale. Inconvénient : impossibilité de prédire la taille du fichier résultant et donc de savoir s'il va tenir sur un DVD si l'on fait le traitement en une passe. Amélioration : utiliser un encodage VBR en deux passes. La séquence est examinée une première fois entièrement pour optimiser ensuite l'encodage selon la technique précédente. Inconvénient on double le temps d'encodage.
Utilisation des codecs Le montage d un film exige l accès à chaque image Lorsqu on veut monter un film disponible sous un codec à compression temporelle (genre MPEG) deux solutions sont possibles : Décompacter tout le film (solution grand public avec des outils bon marché) Utiliser un outil professionnel permettant le montage dans le format natif (Final Cut Pro,...)
Utilisations du MPEG MPEG-2 : norme DVD vidéo MPEG-2 : TNT publique ou privée gratuite MPEG-4: TNT payante et TNT haute résolution (HD) Divers MPEG : internet
Utilisation des codecs Les codecs à compression spatiale sont à préférer pour le montage (accès à chaque image) DV, DV-PRO, M-JPEG,... Les codecs à compression temporelle sont à préférer pour la diffusion (accès seulement à des groupes d images) MPEG2, MPEG4, DIVX, H.264,...
Problèmes de montage Inconvénient de faire du montage à partir de MPEG : Si l on décompacte tout on perd le bénéfice du compactage (il faut de gros disques) Le plus souvent après montage il faudra compacter à nouveau : problème d artefacs, perte de qualités ne sont pas rares. Le traitement numérique n est plus sans perte!
La HD La haute définition, c'est avant tout le format DVCPRO HD qui permet de pratiquer le montage professionnel avec la qualité maximale (c'est du DV à ne pas confondre avec le codec suivant) Le format haute résolution HDV (résolution native de 1440 1080) est une solution alternative plus destiné au grand public (malgré le coût). Ce format utilise des cassettes minidv, tout comme le DV dont la résolution n'est que de 720 576. L'explication est que le HDV utilise le codec MPEG2 pour mémoriser la vidéo.
La HD La haute définition (HD), à ne pas confondre avec le rapport d image 16/9, pose pour l utilisateur tous les problème de montage du MPEG. Il faut en général du matériel dopé (disques durs, processeurs,...) À quoi sert le montage en HD si la chaîne est incomplète? caméra HD, logiciel de montage, graveur blue-ray, téléviseur HD...
Le marché actuel Recul des caméra minidv pour le grand public (travaillant en simple définition) multiplication des supports et des normes basés sur le MPEG, apparition de nouveau formats propriétaires (AVCHD) arrivée du HDV à des prix accessibles au niveau familial (mais cher tout de même) et travaillant elle aussi en MPEG. Par contre certaines de ces caméras offre une sortie en DV avec décompactage et réduction à la volée de la résolution.