|
|
| TPE 2002 |
Site optimisé pour Internet Explorer 5 et
pour une résolution de 1024 x 768
|
|
La première méthode consiste à reconnaître
les répétitions et à trouver un alphabet pour recoder
l'information. Le format compressé est divisé en 2 parties
: la première (avant ##) définit un alphabet de mots séparés
par des # qu'on appellera le dictionnaire, la seconde donne l'ordre
des mots employés en utilisant leur numéro d'ordre d'apparition
dans le dictionnaire. La seconde méthode se nomme LZW, du nom de
ses auteurs, Lempel, Ziw et Welch, vise à déceler des
suites de bits ou d'octets similaires, autrement dit à identifier
des motifs qui se retrouvent dans la succession de valeurs décrivant
l'image. Chaque fois qu'une telle suite est rencontrée, l'algorithme
la range dans un dictionnaire et lui affecte un identificateur, qui
vient la remplacer les données d'origine. Les valeurs isolées
sont conservées telles quelles. Les données sont alors
communiquées par le dictionnaire accompagnées de la succession
de codes d'identification et valeurs isolées. On doit simplement construire des tables renfermant des centaines de mots courants et utiliser les index de ces tables pour la compression. Ces index sont construits dynamiquement, en examinant les données et en construisant une table basée sur cetexte. Évidemment, moins il y a de répétitions de mots dans le texte, moins efficace sera la compression. Même si les techniques Huffman et LZW sont habituellement utilisées pour compresser du texte, le même concept peut être appliqué à d'autres structures telles que les graphiques, le son ou les structures composites. Après initialisation du dictionnaire, l'algorithme pourra lire et traiter les caractères les uns après les autres. Il construit un motif de plus en plus long. Si ce motif existe déjà dans le dictionnaire, il en construit un encore plus long. Les tableaux ci-dessous, montrent sur la gauche l'évolution du dictionnaire et sur la droite, les codes émis lors de la compression. Le résultat de la compression à une taille de 81 bits. Le caractère "-" indique que pour un caractère lu, il n'y a pas de sortie. Le taux de compression est donc de 1-118/304 = 61%. L'algorithme LZW
est pénalisé par le fait qu'il faut conserver le dictionnaire
entre la compression et la décompression (et il peut être
relativement gros). |