Documents sur la compression |
|
AIDE AU PROJET COMPRESSION by SICO
La compression est un processus magique ;),
mysterieux, reduire la taille d'un fichier sans perte est un acte
purement jouissif.... qd c'est vous qui l'avait coder (utiliser
winzip n'a (heureusement) jamais provoqué ca). On peut qd
meme s'interroger de nos jours sur le bien fondé de compresser
des fichiers. S'il n'y avait pas ces putains de disquettes de 1.44
qui perdurent, internet par le telephone... alors la compression
(sans perte) n'aurait peut etre plus lieu d'exister. |
|
-Ne vous faites
pas d'illusion sur le taux de compression 2) Le basique: La compression RLE RLE pour Run Lenght Encoding, la plus basique
des compression utilise principalement pour les images '.pcx'. explication. 3) La Huffman compression Plus elaboré, avec un taux de compression
superieur. Le principe est de calculer pour chaque byte son nombre
d'occurence dans un fichier donnée. On obtient ainsi une
probabilite d'apparition d'un caractere donnée. Ainsi plus
un caractere a une probabilie grde, plus le nombre de bits pour
le coder sera petit Calcul les codes: h: ---------- 0 h: 0 Pas tres probant l'arbre a 3 branches
a:------ 0 Un peu mieux A chq codeur de crée sa variante. 4) LZW and Co Si brownie n'y est pas, on met le dictionnaire a jour en le rajoutant, et a la prochaine occurence de brownie, il sera remplacé par son index. Il existe deux grand type de LZ: *Le LZ77 Ce type de compression est base sur un dictionnaire qui
est constitué des données precedement compressé.
Le dictionnaire est une fenetre sur un nombre n de bytes qui se
trouve juste avant la position courante dans le fichier a compressé.
Ex: "il dit: |court |cousine" (exemple a la con) Ici la taille de notre fenetre est de 6 bytes et la position courante se trouve au 'c' de 'cousine' 1)On cherche
'c' dans la fenetre, il y en a un a la position relative 0 Et on remet a jour la position courante et donc la fenetre: "il dit: cou|rt cou|sine" Le choix du nombre de bits de l'offset et de la longueur vous appartient, il peut evoluer au cours du processus. Ce type de compression est generalement utilisé en parallele avec une compression Huffman sur le tableau des offsets et des longueurs. La plupart des compresseurs utilise cette technique. *Le LZ78 Ce type de compression est basé sur un dictionnaire
qui est constitué des données precedement compressé
(bis repetita).Cette methode est notamment utilisé pour la
compression .GIF. chaine lut chaine
rajoute au dico index
ecrit A la fin du processus la taille du dico sera de 9bits. Le dico ne pouvant
allez qu'en grossissant, avec lui la taille en bits de l'index,
il deviendra necessaire de le purger un coup a un moment ou
a un autre, par exemple qd le % de compression commence a baisser....
Mais dans ts les cas où la purge depend du taux de compression, cette purge necessite un code special a emettre dans le fichier à l'encontre du decompresseur. 5)L'arithmetique.... (a faire) 6)La NACA (Nithril ACiX compression algorithm) Prq pas crée son propre algo de compression....Tout
le temps des Lempel des Ziv des Welch et j'en passe..... Cette methode
tres perfectionné utilise le fait que danns un fichier image
,par exemple, TRES filtré chaque composante du pixel successif
est proche de leurs voisins 7)La multimedia compression La pas de mystere, il s'agit pas d'un type
de compression geniale, mais de simple constation comme la NACA,
de la, a vous de modifier le LZ, ou autres, pour qu'il
|