Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | Prochaine révision Les deux révisions suivantes | ||
les_exposes:compression [26/10/2016 15:43] rozec |
les_exposes:compression [26/10/2016 16:08] rozec |
||
---|---|---|---|
Ligne 28: | Ligne 28: | ||
=== RLE (run-length encoding) === | === RLE (run-length encoding) === | ||
- | le codage RLE consiste à remplacer une suite de bits identiques par le nombre de répétitions suivi de la suite répétée : | + | le codage RLE consiste à remplacer une suite de bits identiques par le nombre de répétitions suivi de la suite répétée. |
//exemple:// | //exemple:// | ||
Ligne 41: | Ligne 41: | ||
Nous avons donc bien réduit la taille de la suite initiale. | Nous avons donc bien réduit la taille de la suite initiale. | ||
+ | //Cependant//, dans le cas ou la suite aurait une forme '' ABAB '', la suite finale serait '' 1A1B1A1B'' ce qui est 2 fois plus long. | ||
+ | Cet algorithme sera donc plus adapté à des **images bitmap** possèdant **peu de couleurs différentes** qu'à des fichiers contenant du texte car la probabilité de trouver des suites de bits identiques sera alors plus élevée. | ||
+ | |||
+ | === Le codage de Huffman === | ||
+ | |||
+ | Cet algorithme consiste à remplacer dans un fichier, chaque octet par un code qui lui correspond, tout en attribuant un code plus court aux octets apparaissant plus régulièrement. | ||
+ | |||
+ | Pour définir le code d'un octet, on utilise un arbre | ||
+ | |||
+ | //exemple:// | ||
+ | |||
+ | nous avons la suite d'octets suivante (sous forme de chaîne de caracètres pour simplifier la compréhension): '' ABRACADABRA ''. En considérant que chaque caractère prends 8bits en mémoire, on a une chaîne de 88bits. | ||
+ | |||
+ | On compte alors le nombre d'apparitions de chaque caractère: | ||
+ | |||
+ | '' | ||
+ | A:5, | ||
+ | B:2, | ||
+ | C:1, | ||
+ | D:1, | ||
+ | R:2 | ||
+ | '' | ||
---- | ---- |