ハフマンエンコーディングは常に最適ですか?


9

接頭辞のないエンコーディングである必要があるため、ツリーを完成させる必要があるため、ツリーが大きくなります。データの固定長の非エンコードストレージがデータのエンコードよりも効率的であるしきい値はありますか?


一般に「いいえ」。平均的なデータの場合、各文字の頻度は1より

@arunmoezhi上記で提供した例を取り上げていただけませんか?各文字の頻度は1より大きいが、固定長の方が最適です。

この例は興味深いものです。しかし、そのようなシナリオに頻度ではなく各キャラクターの確率を提供し、すべてのキャラクターの確率が1に

@arunmoezhi私は文字の確率が含まれていると、彼らは1まで追加でください

回答:


4

H(A)この問題のエントロピーは1.998です。この問題のハフマン符号化と固定長符号化の両方の平均コードワード長は2です。また、ハフマンエンコーディングを使用して取得したコーディングは間違っています。ハフマンエンコーディングは、この問題の固定長に似たコードも生成します。それは貪欲なアプローチを使用しています。したがってa、コードは取得しませんが、0代わりに取得し00ます。ハフマンコーディングを使用して生成したツリーを再加工します。あなたが得るべき木は:ここに画像の説明を入力してください


ありがとうございました。Huffman Encodingが常に固定長より最適であるという何らかの証拠を提供できますか、それとも少なくとも1つ参照してください。

1
あなたはを参照することができますIntroduction to AlgorithmsによってCLRSgreedy algorithmsあなたが話す章では、の正式な証明を得ることができますHuffman algorithm。その長い証拠と読むには忍耐が必要です。

8

ハフマンコーディングは、人口分布を2のべき乗で近似します。真の分布が2つの確率の累乗で構成されている(そして入力シンボルが完全に無相関である)場合は、ハフマン符号化が最適です。そうでない場合は、範囲エンコーディングを使用することでより適切に実行できます。ただし、入力の特定のシンボルに特定のビットのセットを割り当てるすべてのエンコーディングの中で最適です。


「人口分布を近似する」とはどういう意味ですか?

3
仮説的に送信される可能性のあるメッセージの理論的な真の分布があります。理想的には、各メッセージはその確率の対数に比例する方法でエンコードする必要がありますが、ハフマンコードは整数のビット数であるため、暗黙的に2のべき乗の確率に対応します。したがって、近似です。シャノンのコーディング定理を調べます。

8

はい、常に最適です。

いいえ、固定長のエンコードされていないデータを使用するために使用するスペースが少なくなるというしきい値はありません。

私はウェブ上でいくつかの証拠を見つけましたが、 、ウィキペディアの記事Huffmanコーディングます。

これは、より高い圧縮を達成する他の手法もカバーします(ハフマンコードが最適である領域外での作業)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.