ハフマン符号化は現実世界ではどのような応用例があるのでしょうか?
-
25-09-2019 - |
質問
ハフマン符号化が使われているそうです 可逆データ圧縮アルゴリズムとして, 、しかし、実際のデータ圧縮ソフトウェアでは圧縮できるとも言われています。 ない キーが十分に分散されていない場合、圧縮ファイルが元のファイルよりさらに大きくなる可能性があるため、ハフマンコーディングを使用します。
このことを考えると、ハフマン コーディングを実際に応用できるものはあるのだろうか、と疑問に感じます。
解決
ハフマンは、GZIP、PKZIP (winzip など)、BZIP2 から JPEG や PNG などの画像形式まで、遭遇する可能性のあるすべての主流の圧縮形式で広く使用されています。
すべての圧縮スキームには、意味のある圧縮ができない病的なデータセットが含まれています。上でリストしたアーカイブ形式は、そのようなファイルが見つかったときに非圧縮で「保存」するだけです。
新しい 算術および範囲コーディング スキームは次の理由で避けられることが多い 特許問題, これは、ハフマンが圧縮業界の主力であり続けることを意味します。
他のヒント
を参照してください。ウィキペディアのテーマに関する記事ます:
ハフマンは、多くの場合、他のいくつかの圧縮方式に「バックエンド」として使用されている今日コーディング。 JPEGやMP3などDEFLATE(PKZIPのアルゴリズム)とマルチメディアコーデックは、フロントエンドモデルと量子化は、ハフマン符号化が続いています。
ハフマン符号化の実際のアプリケーションのかなり多くがあります。 ZIPは、おそらくその基礎として、ハフマン符号化を使用する最も広く使用されている圧縮ツールです。最も効率的な可逆圧縮アルゴリズムの最新のは、先月GoogleがリリースしBrotli圧縮は、また、ハフマン符号化を使用します。それとは別に、BrotliもLZ77およびその他のいくつかの基本的な可逆圧縮アルゴリズムを使用しています。 Brotli。に
を参照してください。1は、圧縮アルゴリズムを考えると、多くの場合、それぞれにメリットとデメリットがあります。それが良いと悪い圧縮アルゴリズムそのデータの存在、入力のセットが与えられること圧縮の性質である。
ハフマンは、いくつかの点で、本当に、本当に良いです。最も注目すべきデータとの繰り返しが多くを注文すると、文字スペースのサブセットが含まれていること。たとえば、英語のテキストファイル。英語の言語が同じ他の文字が続く同じ文字を有する傾向がある。
あなたの教授や本があなたにハフマンが使用されていないという印象を与えた場合は、、彼らは間違っています。たとえば、ほとんどで、インターネットからのすべての通信は、ハフマン符号化されたいくつかの点です。 (通信プロトコルの数は、それを使用しています。)ほとんどの画像ファイル(JPEGファイル)ハフマン符号化されています。ほとんどの音楽ファイル(MP3ファイル)ハフマン符号化されています。他の多くの例があります。
それは、適応型ハフマンと呼ばれるわずかに異なるアルゴリズムによって「発見」することができますので、ハフマンが使用されている一つの理由です。あなたは、ファイルを読むと、「あなたが行くように圧縮」あなたはハフマン符号とを学びます。これは単純化の概要ですが、あなたのアイデアを得る。
使用に状況の問題のための最良のアルゴリズムを解決するには、は、ファイルが異なる圧縮の数は最高1が与えられたファイルのために何であるかに応じて使用することを可能にするジップます。
のハフマンコードは可逆圧縮をもたらすvarible長符号、に固定長コードを変換するために使用されます。可変長コードは、さらに、所望の圧縮比を得るために、JPEGやMPEGの技術を用いて圧縮することができる。
A非常に広範囲のアプリケーションは、HPACKにおける文字列の符号化であるヘッダ圧縮>の HTTP / 2 ののテクニックます。
以下のために最適化されたRFCを直接提供しないA ハフマンコードテーブルする圧縮HTTPヘッダます。