LES HUFFMAN DE CPPFRANCE

Messages postés
759
Date d'inscription
samedi 15 mai 2004
Statut
Membre
Dernière intervention
30 janvier 2011
- - Dernière réponse : cs_JCDjcd
Messages postés
1138
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
25 janvier 2009
- 11 juil. 2007 à 17:42
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/38961-les-huffman-de-cppfrance

Afficher la suite 
cs_JCDjcd
Messages postés
1138
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
25 janvier 2009
2 -
jeune d'accord.
débutant ... ca se discute (mais pourquoi pas) ...
Ricky_MacElroy
Messages postés
10
Date d'inscription
mardi 10 juillet 2007
Statut
Membre
Dernière intervention
26 mai 2008
-
Pas trop mal pour un jeune débutant, il manque un zeste de clarté dans le code.
cs_Kirua
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
Notons qu'un Huffman sur une image n'aurait d'intérêt que si, effectivement, le champ "data" est bien aligné, et surtout si seulement une poignée de couleurs sont présentes. Or pour ça, une "colormap" ferait bien mieux l'affaire. Je ne pense pas qu'il faille réellement envisager Huffman pour autre chose que du texte ascii ^^.
cs_JCDjcd
Messages postés
1138
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
25 janvier 2009
2 -
effectivement pour les bitmaps, je prie pour que cela tombe juste, que le header soit aligné sur 3 octets (ie 24 bits), mais je m'en preoccûpe pas trop car si vous voulez comprimer des bitmaps alors il faut faire un prgm specifique dans lequel vous lisez le header ect... le but de cette source était évidemment pas là. Si le header (chunk & compagnie...) n'est pas aligné alors j'aurais 6 fois plus de valeurs de 24 bits avec en moyenne 6 fois moins d'occurences (le 6 provient du 6=3! (factoriel 3) et le 3 provient du 24 bits (car 24=8*3)) donc le fichier sera moins bien zipé
pyrogx
Messages postés
1
Date d'inscription
vendredi 7 février 2003
Statut
Membre
Dernière intervention
5 novembre 2006
-
Moi je dis franchement un grand bravo pour toutes ces comparaisons, très appréciables. De plus, c'est une bonne idée de permettre la compression par blocs de 16, 24 ou 32 bits, car il est vrai que les répétitions peuvent être très nombreuses par blocs, comme avec les images BMP par exemple.

Cependant, ton image est principalement une suite de pixels identiques, donc le RLE (par blocs de 24 bits) est à mon avis plus efficace pour cet exemple. En revanche, pour une autre image BMP (une "vraie"), je pense que huffman marcherait mieux A CONDITION que les blocs de 24 bits tombent bien au bon endroit (début de chaque pixel). As-tu une idée pour faire ça (car avec l'entête qui a une taille variable...) ?

Mais pour en revenir à ton test et ton code, chapeau (à la fois pour le final, mais aussi pour le temps que tu as du prendre)