960 likes | 1.22k Views
DEA-INFO Analyse et Compression de Séquences Vidéos. Partie Compression Stéphane Pateux IRISA / projet Temics stephane.pateux@irisa.fr. Plan. Introduction Rappel de théorie de l ’information Outil de codage entropique Codage sans / avec pertes Quantification Codage par prédiction
E N D
DEA-INFOAnalyse et Compression de Séquences Vidéos Partie Compression Stéphane Pateux IRISA / projet Temics stephane.pateux@irisa.fr
Plan • Introduction • Rappel de théorie de l ’information • Outil de codage entropique • Codage sans / avec pertes • Quantification • Codage par prédiction • Codage par transformation • Normes et Codages • Nouvelles fonctionnalités
Introduction • Définitions • Représentation d ’une image / vidéo • Formats classiques d ’images • Besoin en compression • Fil conducteur: Codeur Vidéo
Définitions • Codage: • mise en forme d ’un message en vue de sa transmission, de son stockage, ou de son traitement • Compression: • réduction de la quantité d ’information nécessaire pour la représentation d ’une information • Quantité d ’information: • signaux analogiques: bande passante • signaux numériques: nombre de bits Codage ne veut pas dire compression
Représentation d ’une image • Images numériques • tableau LxH de pixels • pixel: • niveau de gris • point couleur (RVB, YCbCr, …) • autres (multi-bande satellite, mouvement, …) H L pixel
Représentation d ’images • Image noir et blanc • en général: [0-256] -> 8 bits/pel • Image couleur • RGB: [0-256]^3 -> 24 bits/pel • sous-échantillonage couleur • 4:4:4 - 4:2:2 - 4:2:0 • Vidéo numérique: • simplement une suite d ’images • fréquence d ’apparition des images(intervalle de temps entre 2 images)
Formats classiques d’images • Image informatique • dimensions: 640*480 (photo numérique 1600*1200) • pixels: RGB 24 bits /pels • quantité d ’information: 640*480*24 = 7 Mb • Vidéo (CCIR-601) • dimensions: 720*576 • pixels couleurs…. 24 bits/pels …. • fréquence: 25 im/s • débit: 720*576*24*25 = 237 Mb/s • Vidéo CIF (352*288) • débit: 58 Mb/s 1 b != 1 B 1 Byte (octet) = 8 bits
Besoin en compression • Stockage • disquette 3’5: 1.44 MB = 11.5 Mb • 1.5 image de taille 640*480 • CD-ROM: 640 MB • 21 secondes de vidéo • DVD: 4.5 GB - 20 GB • qq minutes de vidéo…. • Débit • RTC: 56 Kb/s • RNIS: 64Kb/s k lignes: k*64Kb/s (max 2Mb/s) • CD-ROM: 1.2 Mb/s • ADSL: 500 Kb/s à 8Mb/s • DVD: 4.6 Mb/s • fibre optique: 140 Mb/s
Besoin en compression • Sans compression, il est quasiment impossible de transmettre dans un temps raisonnable des données images. • Diffusion massive d ’informations • Internet • bouquets satellites (+ de 100 chaînes) • HDTV • ...
+ DCT Q Codage - invQ 0 IDCT + EM CM + Mémoire Fil conducteur:Codeur vidéo hybride • Schéma de codage vidéo • schéma de base
Théorie de l ’information • Introduction • Définitions • Rappel de probabilités • Information propre • Entropie • Théorème de Shannon • Modèle de sources
Introduction • Travaux de Shannon en 1948 Canal source codeur modulation Canal de transmission Bruit démodulation décodeur client
Définitions • Source • générateur de message • séquence de variables aléatoires • correspond à un message émis • Codeur • transforme message en un mot défini sur un alphabet • exemple: • représentation binaire: 9 = 1001
Définitions • But de la compression • si un message est codé sur une longueur ; faire en sorte que soit le plus petit possible • Taux de compression
But de la compression • Comme il y a différents message, il faut que tous les soient petits. • En fait, plus le message est fréquent, plus il doit avoir un mot de code court • Inégalité de Kraft • condition nécessaire pour que le code soit réalisable Contrainte sur le choix des
Rappel de probabilités • Pour chaque événement Ai, on associe une loi de probabilité: p(Ai) • Propriétés • Probabilité uniforme: • Probabilité conditionnelle • loi de Bayes:
Information propre • Mesure définissant la quantité d ’information apporté par un message: I(A) • propriétés de l ’information propre • est une solution
Entropie • Entropie de Shannon, source sans mémoire • source sans mémoire • les variables aléatoires sont iid • valeur moyenne de la quantité d ’information pour les messages d ’une source X • Exemples • loi uniforme: H(X)= • distribution de Bernouilli • 2 messages possibles • probas: p et (1-p) H 1 0 p 0.5 1
Entropie • Exemple • source 3 messages possibles • probas: 0.1 , 0.3 et 0.6 • H ~= 1.30 • Autres exemples • Entropie augmente avec le nombre de symboles présents • si loi plus « étalée », entropie plus élevée
Entropie • Propriété 1 • soit 2 lois de probabilité • on a alors: • avec égalité ssi • Démonstration: • on a
Entropie • Propriété 2 • source S avec N messages, probas • alors • Démonstration • La source équiprobable est celle qui a une entropie maximale • Remarque: • plus la loi de probabilité est homogène, plus l ’entropie est élevée
Théorème de Shannon • Si l ’on code les messages avec des longueurs respectives , on a alors: • les longeurs de code sont optimales • Démonstration
Modèles de source • Entropie d ’ordre N • on regroupe les messages par groupe de N éléments • On définit l ’entropie de B: • On montre alors que • avec égalité ssi les sont indépendents • Exemple • source binaire source N-aire • images • 1 pixel a des valeurs dans [0..255] • regroupement par blocs
Modèles de source • Source de Markov d ’ordre l • dépend de • on a alors les lois de probabilités conditionnelles: • Entropie de l ’état • Puis l ’entropie de la source par: • On montre que: • Plus on utilise de connaissances, moins il y a d ’informations….
Outils de codage • Shannon-Fano • Huffman • Arithmétique • Run Length Encoding • LZW • Codage par plan de bits
Codage à longueur variable • Principe • a chaque message Mi est affecté un code Ci de longueur variable • Exemple: • a -> 0 , b -> 10, c->11 • Codes préfixés • pour que l ’on puisse décoder sans ambiguïté, aucun code ne doit être le début d ’un autre code • représentation par arbre binaire 0 1 a 0 1 b c
Codage à longueur variable • But: • trouver le jeu de code le plus efficace • Rappel: selon théorème de Shannon • Remarque: • les li sont entiers, on ne peut donc être optimale que si: • Codeur optimal pour code entier: codeur de Huffman
Shannon-Fano • Algorithme • construire table des messages mi ordonnée avec proba décroissante • diviser la table en 2, le plus équiprobablement possible • affectation de 0 et 1 à chaque table • itération sur chaque table P(i) 0.4 0.18 0.10 0.10 0.07 0.06 0.05 0.04 M(i) 00 01 100 101 1100 1101 1110 1111
Codage de Huffman • Optimal au sens de: • Algorithme • liste L de tous les symboles • on retire les 2 symboles ayant les probas les plus faibles • l ’union donne un nouveau symbole qui sera inséré avec comme proba la somme des 2 probas • on affecte 0/1 à chaque symbole oté • On itère tant que la liste contient plus qu ’un symbole • l ’arbre de regroupement créé donne alors les codes
Codage de Huffman • Exemple • On trouve P(i) 0.4 0.18 0.10 0.10 0.07 0.06 0.05 0.04 0.4 0.18 0.10 0.10 0.09 0.07 0.06 0.4 0.18 0.13 0.10 0.10 0.09 0.4 0.19 0.18 0.13 0.10 0.4 0.23 0.19 0.18 0.4 0.37 0.23 0.6 0.4 1.0 a b c d e f g h
Codage arithmétique • On ne code pas chaque symbole séparément, mais les messages constitué de plusieurs symboles • Principe: • représentation par intervalle • message [Mi] avec probas [Pi] • Il suffit de définir un nombre v contenu dans l ’intervalle du message…. 1 0
Codage arithmétique • Problèmes • définition du nombre v • précision dans la définition des intervalles • Définition du nombre v • dans v, on retient les L premiers bits • v vérifie alors forcément: • si l ’intervalle tombe dans un intervalle associé à un symbole, c ’est alors suffisant. • Condition suffisante: • soit • on atteint alors la longueur optimale à 1 bit près (qq soit le nombre de symbole du message…)
Codage arithmétique • Calcul des intervalles • message: 1 bbb bb bba b bab ba baa abb ab aba a aab aa 0 aaa
Codage arithmétique • Mise en œuvre pratique • On s’assure en permanence que l’on a: • Si l ’on a |H-L|<0.25: • si H<0.5: transmet bit 0, H*=2 L*=2 • si L>0.5: transmet bit 1, H=2(H-0.5) L=2(L-0.5) • sinon: (ambiguïté) underflow++, H=0.5+2(H-0.5), L=0.5+2(L-0.5) • à la fin des underflow: 1 2H’ H 1/2 H’ 2L’ L’ L 0 underflow
Codeur arithmétique • Intérêts • performance • possibilité d ’avoir des statistiques variables • Défauts • complexité… • breveté par IBM • Utilisés dans les nouvelles normes de codage • JPEG2000 • MPEG4
Codage par plage • Run Length Encoding (RLE) • on code les répétitions • Exemple: • aaaabcbb • (4,a) (1,b) (1,c) (2,bb) • Intéressant uniquement lorsqu ’il y a de larges zones où des valeurs sont identiques • images avec palette (BMP) • fax
Codage LZW • Lempel Ziv modifié par Welsh • Codage par substition • Principe: • construction d ’un dictionnaire en fonction de ce que l ’on observe • on transmet alors les indices des mots dans le dictionnaire • prise en compte de motifs répétitifs • Utilisation • format image GIF, TIFF • compression de texte • compression fichiers ZIP, GZIP
Codage LZW • Exemple • Codage • Message transmis: 0,1,3,5,0,2,1 • Décodage
Codage par plans de bits • Pas un vrai outil de compression • Remise en forme du message afin de pouvoir bien être comprimé • Exemple Codage par plage du MSB A1 : 0 1 0 1 0 0 1 A2 : 0 0 1 0 0 0 0 A3 : 0 0 0 1 0 1 0 A4 : 0 1 0 1 1 0 1 A5 : 1 0 0 0 1 0 1 A6 : 0 1 1 1 0 1 0 Pour les autres bits: codage par plage sur les non signifiants codage simple sur les autres
Codage avec / sans pertes • Limites du codage sans pertes • Codage avec pertes • Mesure des distorsions • Sous-échantillonnage • Optimisation codage avec pertes
Limites du codage sans-pertes • En codage sans pertes, on arrive à des taux de compression limités • typiquement de l ’ordre de 2 pour des images naturelles • de l ’ordre de 3 à 4 pour de la vidéo • Pour augmenter la compression, il faut s ’autoriser des dégradations • Exemple: • suppression d ’images en vidéo • fréquence 5Hz pour visiophonie • réduction de la taille d ’une image • CIF, QCIF • dégradations sur les valeurs originales • réduction de couleurs • valeurs approchées: 102 ~ 100
Codage avec pertes R: Rate (débit) D: Distortion • Codage optimal • Situation réelle R(D) Information de source Redondance Entropie Information non pertinente Information utile R D D Distorsion maximale R(D) Le résultat n ’est pas toujours optimal R D D
Mesure des distorsions • Critères de qualités • mesures subjectives • prise en compte SVH • masquage • sensibilité nombre de couleurs • sensibilité sur la teinte • mesures objectives • Erreur Quadratique Moyenne EQM (MSE) • Peak Signal over Noise Ratio PSNR • Picture Quality Scale, mesure de Franti • vise à avoir même mesure qu ’un critère subjectif
Optimisation débit-distorsion • But: • pour un débit donné, avoir la plus faible distorsion possible • pour une distorsion acceptable, avoir le plus faible débit possible • Approche classique • Multiplicateurs de Lagrange • recherche du l afin de vérifier la condition limite D pente R
Quantification • Principe • Critères de qualité • Quantificateur uniforme • Quantificateur optimal • Quantification vectorielle
Principe • Indexation des valeurs admissibles • exemples: • conversion analogique numérique • numérique vers numérique • Signal original: • Signal quantifié: • où • On ne transmet alors en général que l ’indice de quantification: • Codage: fonction • Décodage:
Fonction de quantification • on définit en général Q en définissant les ensembles de valeurs qui se quantifient en une même valeur • seuils de quantification • niveaux de quantification • Exemple
Quantification uniforme • Quantificateur le plus simple • tous les intervalles de quantification ont la même longueur: Q • (si centré en 0)
dead-zone Quantification uniforme avec deadzone • L ’intervalle allouée à la valeur 0 est plus grand que les autres intervalles • Intérêt: • limitation des oscillations pour faibles valeurs • augmente efficacité codage ….
Quantification emboîtée • Possibilité de quantifier grossièrement, puis de re-quantifier le résidu • Pour des raisons d ’efficacité, les intervalles doivent être emboîtés • Exemple • quantification uniforme emboîtée • quantification emboîtée avec deadzone 1 3 5 7 9 11 0 2 4 6 8 10 12 0 1