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