web-dev-qa-db-fra.com

Quelles sont les applications réelles du codage de Huffman?

On me dit que le codage de Huffman est utilisé comme algorithme de compression de données sans perte , mais on me dit aussi que le logiciel de compression de données réel fait not utilise le codage de Huffman, car si les clés ne sont pas distribuées de manière décentralisée assez, le fichier compressé pourrait même être plus gros que le fichier original.

Cela me laisse me demander s'il existe une application réelle du codage de Huffman.

23
Jichao

Huffman est largement utilisé dans tous les formats de compression courants que vous pourriez rencontrer - de GZIP à PKZIP (winzip etc.) et BZIP2 aux formats d'image tels que JPEG et PNG.

Tous les schémas de compression ont des ensembles de données pathologiques qui ne peuvent pas être compressés de manière significative; les formats d'archive que j'ai énumérés ci-dessus «stockent» simplement ces fichiers non compressés lorsqu'ils sont rencontrés.

Les schémas plus récents d'arithmétique et de codage de plage sont souvent évités en raison de problèmes de brevets , signifiant que Huffman reste le cheval de bataille de l'industrie de la compression.

28
Will

Voir Wikipedia article sur le sujet:

Le codage de Huffman aujourd'hui est souvent utilisé comme "back-end" pour une autre méthode de compression. DEFLATE (algorithme de PKZIP) et les codecs multimédia tels que JPEG et MP3 ont un modèle frontal et une quantification suivi du codage de Huffman.

5
Anton Gogolev

Il existe de nombreuses applications réelles de l'encodage de Huffman. Zip est peut-être l'outil de compression le plus largement utilisé qui utilise le codage Huffman comme base. Le dernier des algorithmes de compression sans perte les plus efficaces, Brotli Compression, publié par Google le mois dernier, utilise également le codage Huffman. En dehors de cela, Brotli utilise également LZ77 et quelques autres algorithmes de compression fondamentaux sans perte. Reportez-vous à Brotli.

3
Farhan Haque

Quand on considère les algorithmes de compression, il y a souvent des avantages et des inconvénients pour chacun. Selon la nature de la compression, compte tenu d'un ensemble d'entrées, il existe des algorithmes de compression meilleurs et moins bons pour ces données.

Huffman est vraiment très bon pour certaines choses. Plus particulièrement, les données qui répètent beaucoup d’ordre et contiennent un sous-ensemble de l’espace des caractères. Par exemple, les fichiers texte en langue anglaise. La langue anglaise a tendance à avoir les mêmes lettres suivies des mêmes autres lettres.

Si votre professeur ou votre livre vous a donné l’impression que Huffman n’est pas utilisé, ils se trompent. Par exemple, presque toutes les communications avec et depuis Internet sont à un moment codées en Huffman. (Un certain nombre de protocoles de communication l'utilisent.) La plupart des fichiers images (jpeg) sont codés Huffman. La plupart des fichiers de musique (mp3) sont codés Huffman. Il y a beaucoup d'autres exemples.

Une des raisons pour lesquelles Huffman est utilisé est qu’il peut être "découvert" via un algorithme légèrement différent appelé adaptatif de Huffman. En lisant le fichier, vous apprendrez le code de Huffman et vous "compresserez au fur et à mesure". Ceci est un aperçu simplifié, mais vous avez l'idée.

Pour résoudre l'utilisation du meilleur algorithme pour le problème de la situation, les fichiers Zip permettent d'utiliser un certain nombre de compressions différentes en fonction de la meilleure pour un fichier donné.

2
Hogan

Le code de Huffman est utilisé pour convertir des codes de longueur fixe en codes de longueur variable, ce qui permet une compression sans perte. Les codes de longueur variable peuvent être davantage compressés à l'aide de techniques JPEG et MPEG pour obtenir le taux de compression souhaité.

0
R. G. Gupta