IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

l'algorithme L Z W


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    280
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 280
    Par défaut l'algorithme L Z W
    Bonsoir,

    Je recherche un peu d'informations sur l'algorithme LZW.

    Donc au niveau de la compression j'ai lu plusieurs articles. Certains auteurs disent que la taille des bits de sortie (ceux qui représentent les données compressées) est définie en fonction des besoins, dès que le compresseur a besoin d'écrire une donnée du dictionnaire supérieure à 256 (en huit bits), et ce au moyen d'une ligne "spéciale" de valeur 0000 0000, ou 1111 1111 selon les auteurs.

    Cette ligne permetrait au décompresseur de savoir que le codage ne se fait plus sur 8 bits mais sur 9 or ces deux valeurs font partie des valeurs de départ sur 8 bits.

    Comment fait-on alors si l'on veut coder effectivement une telle valeur sans déclencher un élargissement des mots dans le fichier compressé ?

  2. #2
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut!
    As-tu regardé dans Wikipedia?
    Jean-Marc Blanc

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    280
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 280
    Par défaut
    Oui justement c'est ce point là qui est un peu obscur, dans wikipedia et dans d'autres documents trouvés sur le net...
    En fait j'y ai passé toute ma soirée d'hier, de plus si l'on trouve de la doc sur LZW on entrouve peu en ce qui concerne les algorithme dont LZW hérite...
    J'ai trouvé un truc en python qui propose de coder un LZ78 je vais tester ça.

    Voici le passage de wikipedia qui me pose problème :
    Notons que les codes binaires sont au début généralement émis sur 8 bits, jusqu'à ce que ces 8 bits ne suffisent plus à coder l'indice que l'on désire(par exemple l'indice 256, qu'il est nécessaire de coder sur 9 bits). On émet alors l'indice 0 pour signifier que l'on augmente le nombre de bits émis de 1.
    Alors comment je code le code ASCII : 0 ?

    J'ajoute que depuis un moment j'ai de plus en plus de mal à trouver des infos sur certains sujet aborder en cours sur le net en français. En vrac : la compression des données, les pipelines, les encodages sur les disques dur, les processeur EPIC, etc... Sur ces sujets les Wikis sont parfois succinct,, parfois inexact... Comme lire une page en anglais me prend beaucoup plus de temps je désespère un peu de wikipédia et google...

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par PyNub Voir le message
    Alors comment je code le code ASCII : 0 ?
    On n'écrit pas l' "ASCII 0" mais on écrit la valeur de l'index dans le dictionnaire pour l' "ASCII 0" .

    Il suffit donc de réserver l'index "0" du dictionnaire pour signifier le changement de taille.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    280
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 280
    Par défaut
    Oui j'entends bien...

    Mais si l'on considère que le dictionnaire de base contient tous les caractères sur huit bits du code ascii (à moins que ce ne soit les 7 mais alors pourquoi commencé le dictionnaire des symboles suivants à 256 celui-ci doit commencer à 128) il manque forcément un symbole qui n'est pas indexé...

    Bien sûr on peut me répondre qu'il y a des caractères inutiles, précisément le caractère nul (celui qui est utilisé dans l'exemple de wikipédia)... Mais l'algorithme ne sert pas seulement qu'à compresser du texte. Comment on fait si l'on veut compresser des octets ? Faut-il ajouter un bits dès le début sachant que l'on peut rencontrer dans le texte à compresser les symboles 00 à FF ? ou faut-il réserver 00 et indexer celui-ci quand on le rencontre avec une valeur supérieure à 255 ?

    Il y a un truc qui m'échappe désolé... Cela a pourtant l'air d'être clair pour toi.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    280
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 280
    Par défaut
    chaque lettre est associé son code ASCII. Le dictionnaire est initialisé et associe l'indice 1 au code '0', l'indice 2 au code '1' ... etc. jusqu'à l'indice 256 qui correspond au code '255'.
    Oups... autant pour moi. Donc la première valeur qu'on ajoute au dictionnaire commence 2^8+2=257 puisque chaque code ASCII est décalé de 1 dans l'index du tableau... Reste que pour une compression de données brute l'apparition de FF a autant de chance de se produire que les autres valeurs donc on peut être amené très vite a ajouter un bit....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Formalisation graphique des algorithmes
    Par David R. dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 08/12/2012, 10h21
  2. Algorithme de randomisation ... ( Hasard ...? )
    Par Anonymous dans le forum Assembleur
    Réponses: 8
    Dernier message: 06/09/2002, 14h25
  3. recherches des cours ou des explications sur les algorithmes
    Par Marcus2211 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/05/2002, 22h18
  4. Recherche de documentation complète en algorithmes
    Par Anonymous dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 29/03/2002, 12h09
  5. Algorithme génétique
    Par Stephane.P_(dis Postef) dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 15/03/2002, 17h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo