Nouveau sujet Répondre Imprimer Syndication RSS 2.0

Arbre de Huffman

Avatar de BuThAnE
  • Age : 26 ans
  • Messages : 48
  • Inscrit : 08 Mars 2005
  Lien vers ce message 17 Octobre 2005, 6:58
Salut tout le monde, j'ai le plaisir d'inaugurer ce topic ^^

Ca fait longtemps que j'ai pas posté mais je garde toujours un petit oeil sur ce forum ;)

Je travail pas mal ces temps ci et voici un applet (langage java) qui permet de compresser du texte.

http://www.buthane.mine.nu/wik...t_arbre_Huffman

Cet algorithme offre des taux de compression démontrés les meilleurs possible dans un codage de texte octet par octet.

Pour les curieux voici une explication détaillée de l'algorithme mis en oeuvre : http://fr.wikipedia.org/wiki/Codage_de_Huffman

A bientôt pour de nouveaux petits programmes ^^ (courbes de Bézier à venir)


http://www.buthane.mine.nu/wiki/images/4/48/Banniere_kenpachi_initiale3.gif
 
Administrateur
Administrateur
Avatar de NumberEight
  • Age : 28 ans
  • Messages : 939
  • Inscrit : 22 Juillet 2004
  Lien vers ce message 17 Octobre 2005, 10:53
Ah, ce Huffman! Quel bel homme! Avant que la question ne tombe, pour ceux qui viendraient à croire que le MP3 est codé de cette façon, détrompez vous! C'est un outil formidable mais pas dans le MP3! :wink:

Si vous regardez l'exemple de codage du mot "wikipédia" sur le lien qu'a donné Buthane, vous remarquerez que le "k" et le "i" ont le même codage binaire. Je pense que c'est une bonne raison également pour laquelle on a besoin de transmettre l'arbre pour pouvoir décoder le mot.


--=<#8>=--
 
Avatar de BuThAnE
  • Age : 26 ans
  • Messages : 48
  • Inscrit : 08 Mars 2005
  Lien vers ce message 20 Octobre 2005, 9:36
Citation
Si vous regardez l'exemple de codage du mot "wikipédia" sur le lien qu'a donné Buthane, vous remarquerez que le "k" et le "i" ont le même codage binaire


Et non :) le but d'un codage c'est qu'il soit bijectif (oui je sais mot barbare...) : il faut qu'un caractère corresponde à un unique code et inversement.Dans l'exemple de la wikipédia 'k' a le code '011' et 'i' a le code '11', ce qui n'est pas la même chose !
En effet il faut bien transmettre la table de codage pour pouvoir décoder le message :D

Ce codage de Huffman n'est valable que pour le texte :)
Pour ce qui est du MP3, il est composé de sons, donc c'est un signal, le codage mis en oeuvre utilise un echantillonnage (dont la fréquence détermine la qualité du MP3) en utilisant des mathématiques vraiment pas drôle :(
Ce n'est vraiment pas la même catégorie d'algo de compression... (outrement plus difficile)


http://www.buthane.mine.nu/wiki/images/4/48/Banniere_kenpachi_initiale3.gif
 
Administrateur
Administrateur
Avatar de NumberEight
  • Age : 28 ans
  • Messages : 939
  • Inscrit : 22 Juillet 2004
  Lien vers ce message 20 Octobre 2005, 16:17
Citation ("BuThAnE")
Et non :) le but d'un codage c'est qu'il soit bijectif (oui je sais mot barbare...) : il faut qu'un caractère corresponde à un unique code et inversement.Dans l'exemple de la wikipédia 'k' a le code '011' et 'i' a le code '11', ce qui n'est pas la même chose !
Que dis-tu là??? ::eek:: Attention, tu es en train de remettre en question toutes mes années d'expérience en électronique numérique! J'ai très bien compris ce que tu veux dire seulement je pense que tu n'as pas employé les bons termes! En revanche, toi tu n'as pas compris ce que j'ai essayé de faire passer dans mon message précédent... :wink:
Au passage, bijectif est un mot barbare quand on n'en connait pas le sens.

Citation ("BuThAnE")
Pour ce qui est du MP3, il est composé de sons, donc c'est un signal, le codage mis en oeuvre utilise un echantillonnage (dont la fréquence détermine la qualité du MP3) en utilisant des mathématiques vraiment pas drôle :(
Ce n'est vraiment pas la même catégorie d'algo de compression... (outrement plus difficile)
Plus difficile? Mouais... Disons que ce n'est pas du tout dans le même contexte de programmation.


--=<#8>=--
 
Avatar de BuThAnE
  • Age : 26 ans
  • Messages : 48
  • Inscrit : 08 Mars 2005
  Lien vers ce message 22 Octobre 2005, 18:20
Et bien réexplique moi ce que tu voulais faire passer dans ton dernier message lol ^^


http://www.buthane.mine.nu/wiki/images/4/48/Banniere_kenpachi_initiale3.gif
 
Administrateur
Administrateur
Avatar de NumberEight
  • Age : 28 ans
  • Messages : 939
  • Inscrit : 22 Juillet 2004
  Lien vers ce message 22 Octobre 2005, 18:51
Eh bien tout simplement que le 0 en binaire a le même rôle qu'en décimal, c'est à dire que 22 et 022 c'est la même chose et donc, sorti du contexte, 11 et 011 c'est la même chose. Le 0 n'est pas significatif s'il a un poids élevé.
Evidemment, heureusement qu'un codage est bijectif sinon on serait souvent dans la m****... :lol: Et donc, sachant tout ça, et c'était le but du message précédent, sans l'arbre, impossible de faire une différence entre le k et le i. :wink:


--=<#8>=--
 
Avatar de BuThAnE
  • Age : 26 ans
  • Messages : 48
  • Inscrit : 08 Mars 2005
  Lien vers ce message 25 Octobre 2005, 11:27
ouai c ca :)
yan a un codé sur 2 bits et l'autre avec un de plus :)


http://www.buthane.mine.nu/wiki/images/4/48/Banniere_kenpachi_initiale3.gif
 
Répondre


.