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 | Révision précédente | ||
les_exposes:compression [26/10/2016 16:08] rozec |
les_exposes:compression [30/10/2016 15:45] (Version actuelle) rozec |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ''simon rozec'' | ||
====== Comment fonctionne un logiciel de compression de données ====== | ====== Comment fonctionne un logiciel de compression de données ====== | ||
Ligne 49: | Ligne 48: | ||
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. | 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 | + | Pour définir le code d'un octet, on utilise un arbre. |
//exemple:// | //exemple:// | ||
Ligne 59: | Ligne 58: | ||
'' | '' | ||
A:5, | A:5, | ||
- | B:2, | + | B:2, |
+ | R:2, | ||
C:1, | C:1, | ||
- | D:1, | + | D:1 |
- | R:2 | + | |
'' | '' | ||
+ | |||
+ | L'arbre correspondant à cette chaîne de caractères sera le suivant: | ||
+ | |||
+ | {{:les_exposes:huffman_abracadabra.png?nolink&200 |}} | ||
+ | |||
+ | (Les chiffres en rouge correspondent au nombre d'occurences de chaque caractère ) | ||
+ | |||
+ | Partant du haut et en lisant les chiffres en vert, on peut alors déterminer le code correspondant à chaque caractère. | ||
+ | |||
+ | '' | ||
+ | A:1, | ||
+ | R:01, | ||
+ | B:001, | ||
+ | C:0000, | ||
+ | D:0001 | ||
+ | '' | ||
+ | |||
+ | On a donc bien un code plus petit sur les caractères apparaîssant le plus dans la chaîne. | ||
+ | |||
+ | La chaîne, une fois compressée sera donc écrite de cette manière : '' 1 001 01 1 0000 1 0001 1 001 01 1 '' ce qui donne une taille de 23bits. | ||
+ | |||
+ | La chaîne compressée est donc bien plus courte que l'originale. | ||
+ | |||
+ | Le problème de cet algorithme est qu'il faut, pour pouvoir décompresser les donnée, écrire la table des correspondances caractère-code au début du fichier, qui peut être volumineuse. | ||
+ | |||
+ | |||
+ | |||
+ | ===== La compression avec pertes ===== | ||
+ | |||
+ | Dans le cas d'une compression avec pertes, le nombre d'informations est réduit. Pour éviter que cette dégradation ne soit perçue, on se base ici sur les caractéristiques des systèmes visuel et auditif humains. | ||
+ | |||
+ | Les algorithmes de compression avec pertes ne peuvent pas être utilisés pour compresser du texte au risque de le rendre illisible. | ||
+ | |||
+ | Dans le cas d'une image, on pourra procèder à un sous-échantillonnage: l'œil perçevant plus la luminosité que les couleurs, il sera possible de supprimer une grande partie des informations dédiées aux couleurs dans l'image sans que le résultat le soit visible. | ||
+ | |||
+ | Dans le cas d'un fichier audio, on pourra par exemple, supprimer les fréquences jouées avec une trop faible intensité sonore pour être au dessus du seuil d'audibilité en présence d'un autre son masquant. | ||
+ | |||
+ | Il existe d'autres algorithmes de compression avec pertes plus complexes comme par exemple, la compression par ondelettes qui consiste à décomposer une image en un ensemble d'autres images de plus faible résolution(très efficace sur les images), ou encore, la transformée en cosinus discrète. | ||
+ | |||
---- | ---- | ||
Ligne 72: | Ligne 110: | ||
[[https://fr.wikipedia.org/wiki/Compression_de_donn%C3%A9es|Wikipédia - Compression de données]] | [[https://fr.wikipedia.org/wiki/Compression_de_donn%C3%A9es|Wikipédia - Compression de données]] | ||
+ | [[http://www.ulb.ac.be/cours/acohen/travaux_2006_infodoc/CompressionNumerique/AvecPertes.htm|La compression numérique]] | ||