4-Algorithmes des codecs
Transcription
4-Algorithmes des codecs
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) Philippe Martin – Faculté des sciences de Nantes 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. Philippe Martin – Faculté des sciences de Nantes 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. Philippe Martin – Faculté des sciences de Nantes 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). Philippe Martin – Faculté des sciences de Nantes 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 Philippe Martin – Faculté des sciences de Nantes 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 Philippe Martin – Faculté des sciences de Nantes 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 Philippe Martin – Faculté des sciences de Nantes Types de compression Deux grandes catégories d'algorithmes de compactage de la vidéo : la compression spatiale la compression temporelle Philippe Martin – Faculté des sciences de Nantes 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. Philippe Martin – Faculté des sciences de Nantes 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) Philippe Martin – Faculté des sciences de Nantes 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,... Philippe Martin – Faculté des sciences de Nantes 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. Philippe Martin – Faculté des sciences de Nantes 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) Philippe Martin – Faculté des sciences de Nantes 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 Philippe Martin – Faculté des sciences de Nantes 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 Philippe Martin – Faculté des sciences de Nantes 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. Philippe Martin – Faculté des sciences de Nantes 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 Philippe Martin – Faculté des sciences de Nantes Sous-échantillonnage YUV Image initiale en RVB fournie par le capteur CCD : Philippe Martin – Faculté des sciences de Nantes Sous-échantillonnage YUV Image codée en YUV sans réduction : Philippe Martin – Faculté des sciences de Nantes Sous-échantillonnage YUV Image codée en YUV avec réduction 4:2:2 (DVC50 Pro) Philippe Martin – Faculté des sciences de Nantes Sous-échantillonnage YUV Image codée en YUV avec réduction 4:2:0 (DV PAL) Philippe Martin – Faculté des sciences de Nantes Sous-échantillonnage YUV Image codée en YUV avec réduction 4:1:1 (DV NTSC) Philippe Martin – Faculté des sciences de Nantes 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 = tBMB où B est une matrice orthogonale de changement de base, sa matrice inverse étant sa transposée tB. Cette opération est inversible, sans perte. Philippe Martin – Faculté des sciences de Nantes 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 Philippe Martin – Faculté des sciences de Nantes 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. Philippe Martin – Faculté des sciences de Nantes 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. Philippe Martin – Faculté des sciences de Nantes 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. Philippe Martin – Faculté des sciences de Nantes 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 Philippe Martin – Faculté des sciences de Nantes Algorithme de Huffman Exemple de codage sur du texte Philippe Martin – Faculté des sciences de Nantes 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é) Philippe Martin – Faculté des sciences de Nantes 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 Philippe Martin – Faculté des sciences de Nantes 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. Philippe Martin – Faculté des sciences de Nantes 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. Philippe Martin – Faculté des sciences de Nantes 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,...) Philippe Martin – Faculté des sciences de Nantes 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 Philippe Martin – Faculté des sciences de Nantes 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,... Philippe Martin – Faculté des sciences de Nantes 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 ! Philippe Martin – Faculté des sciences de Nantes 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. Philippe Martin – Faculté des sciences de Nantes 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... Philippe Martin – Faculté des sciences de Nantes 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. Philippe Martin – Faculté des sciences de Nantes