Cours6 cdmm suite

352 vues

Publié le

  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Cours6 cdmm suite

  1. 1. Compression des données Multimédia…suite Cours N°06 du 22 Avril 2014 Présenté par: Mme ZERF.N 1
  2. 2. Plan  Compression de données sans pertes  Compression de données avec pertes 2
  3. 3. Compression de données sans pertes  Rappel…  Compression de données sans pertes signifie que lorsque des données sont compressées et ensuite décompressées, l'information originale contenue dans les données a été préservée. Aucune donnée n'a été perdue ou oubliée. Les données n'ont pas été modifiées. 3
  4. 4. Type de données de compression sans pertes  Ce type de compression est utilisée en :  - Audio : RealPlayer (Windows, Mac OS X, Linux, Unix, Palm OS, Windows Mobile),  WMA (Windows Media Audio)  - Images : GIF (Graphics Interchange Format), PNG (Portable_Network_Graphics),  JPEG et JPEG 2000 (Joint Photographic Experts Group), TIFF (Tagged Image File  Format)  - Video : H.264 ou MPEG-4 AVC (Advanced Video Coding), format propriétaire du  Moving Picture Experts Group 4
  5. 5. 1- Pixel Packing Ce n'est pas exactement une méthode de compression de données mais plutôt une manière d'enregistrer des informations de manière contiguës en mémoire. Beaucoup de formats bitmaps utilisent le Pixel Packing pour conserver la quantité de mémoire ou de place disque dont ils ont besoin pour stocker une image. Si on a une mémoire organisée  Byte de mémoire = 4 bits. Donc un pixel est enregistré dans 4bits.  Une image contenant 4096 pixels contenant 4 bit par pixels prendra donc 4096 bytes de mémoire de stockage. 5
  6. 6.  Pour sauvegarder de la mémoire on peut alors faire appel au Pixel Packing. Au lieu de sauver une seule fois 4 bit par byte, on peut sauver 2 fois 4 bits par byte. La taille alors utilisée pour contenir notre image passera de 4096 à 2048 bytes. 6 1- Pixel Packing
  7. 7. (2) Run-length Encoding (RLE)  RLE est un algorithme de compression de données qui est utilisé par la plupart des formats de fichiers bitmaps tels que TIFF, BMP et PCX.  Il a été créé pour compresser n'importe quel type de données sans tenir compte de l'information qu'elle contient.  La plupart des algorithmes RLE ne puissent pas atteindre les forts taux de compression, mais RLE est à la fois simple à implémenter et rapide d'exécution.  RLE est l'une des méthodes les plus anciennes, les plus simples et la plus utilisée. 7
  8. 8.  Principe:  1)Identifier et supprimer des redondances en les codant  sous une forme plus compacte.  2) Réduire la taille physique d'une répétition de chaîne de caractère (run).  3) La chaîne répétée est appelée un passage (run) et est typiquement codée avec 2 bytes.  4) Le premier byte représente le nombre de caractères dans le passage et est appelé le compteur de passage (run count). Le second byte est la valeur du caractère dans le passage. 8 (2) Run-length Encoding (RLE)
  9. 9.  Exemple:  AAAAAAAAAAAAAAA  15A (RLE packet)  AAAAAAbbbXXXXXT  6A3b5X1T.  Inconvénient: Si l'on code des chaînes de caractères en RLE constituées de passages composés uniquement de 2 caractères on n'aura aucun gain et la taille du fichier après compression sera exactement la même.  Si les passages sont composés uniquement de 1 caractère, la taille du fichier après compression sera le double de celle de départ.  Compression  1C1o1m1p1r1e2s1i1o1n 9 (2) Run-length Encoding (RLE)
  10. 10. (3)Codage RLE par Bit, Byte ou niveau de pixel  Le niveau Bit : s'intéresse à une succession de bits similaires tout en ne tenant absolument pas compte du niveau byte ou du niveau pixel.  Un codage typique de RLE au niveau Bit code le tout sur un byte ; Soit la valeur du passage sur le MSB (Most Significant Bit) et la valeur du compteur de passage sur les 7 derniers bits. 10
  11. 11.  Le niveau Byte : s'intéresse quant à lui à des valeurs de bytes identiques en ne tenant pas compte du niveau bit ou du niveau pixel. Le plus courant de ces types de codage code les informations sur 2 bytes: Le premier byte contient la valeur du compteur de passage (0 à 255) et le second byte la valeur du passage. 11 (3)Codage RLE par Bit, Byte ou niveau de pixel
  12. 12.  Le niveau Pixel : ce niveau est utilisé quand un ou plusieurs bytes consécutifs de données sont utilisés pour stocker un pixel. Ici, on ne tient pas compte du niveau bit et le niveau byte sert juste à déterminer la valeur d'un pixel. La taille des paquets de codage dépend du nombre de byte par pixel. 12 (3)Codage RLE par Bit, Byte ou niveau de pixel
  13. 13. (4)Le codage de Shannon  Le principe du codage statistique remonte à la fin des années quarante et repose sur les travaux du mathématicien Claude Shannon (laboratoires Bell), qui démontrait l'existence d'une méthode permettant de compacter les flux d'information sans rien perdre de leur signification. 13 Fréquence d’apparition des lettres en français
  14. 14.  Pour déterminer les probabilités et en déduire un codage approprié. Nous utiliserons comme exemple, dans la suite, le message "BANANES ET ANANAS" . Les propriétés statistiques de ce message sont données  14 (4) Le codage de Shannon
  15. 15.  s : symbole  f(s) : fréquences d’apparition du symbole  p(s) : probabilité d’apparition du symbole  H(s) : quantité d’information convoyée par le symbole  H : quantité d’information cumulée par ce symbole (f(s) * H(s))  ASCII : quantité de décision selon un code ASCII  On peut constater qu’un codage optimal selon Shannon doit permettre de coder le message en exactement 43.945 bit, contre 136 en ASCII. D’autre part, on doit être en mesure de coder le symbole A avec moins de 2 bit (1.765 bit très exactement), à condition de coder le symbole T avec 4.08 bit. 15 (4)Le codage de Shannon
  16. 16. Le codage Shannon-Fano  Principe: l' idée est de répartir les symboles en deux groupes de valeur à peu près équivalente, cette valeur étant la somme, dans chaque groupe, des probabilités d'apparition des symboles qu'il contient. Le groupe de gauche est appelé 0, celui de droite 1.  Les groupes sont à nouveau subdivisés et nommés 0 ou 1 jusqu'à ce que la subdivision ne contienne plus qu'un symbole. L'arbre binaire ainsi obtenu est formé de segments ou branches et de feuilles.  Chaque branche représente un bit d'informations (0 ou 1), Chaque feuille contient un caractère simple. Pour déterminer le code numérique d'un caractère donné, il faut partir du sommet de l'arbre et suivre les branches jusqu'à atteindre la feuille qui le représente.  Les caractères les plus fréquents se trouvent le plus près du sommet et requièrent donc moins de bits dans leurs transcriptions compressées 16
  17. 17. 17 La subdivision définit deux symboles (qui sont en fait des groupes de symboles), "AN« et ES<space>BT. Cette subdivision est ainsi faite pour que les fréquences des deux subdivisions soient aussi équilibrées que possible. Le codage Shannon-Fano
  18. 18. 18 La deuxième étape va isoler les symboles A et N, et définir une nouvelle subdivision des symboles restants. Le codage Shannon-Fano
  19. 19. 19 Le codage Shannon-Fano La troisième partition ne laisse plus que le couple BT non résolu
  20. 20. 20 Le codage Shannon-Fano Partition final
  21. 21. 21 Le codage Shannon-Fano Pour connaître le code associé à chaque lettre, on parcourt l’arbre final de haut en bas, et l’on obtient :
  22. 22. (5)Le codage de Huffman  C'est là qu'intervient David Huffman qui en 1952 publie le résultat de ses recherches.  Son étude se fonde sur l'idée que certains caractères sont susceptibles d'apparaître plus souvent que d'autres dans un fichier, 22

×