Lossless 圧縮のための Huffman Coding について本当に助けが必要です。試験が迫っていて、これを理解する必要があります。これを理解するために作成された簡単なチュートリアルを知っている人はいますか、誰かが説明してくれますか?
試験の質問は次のようになります。
アルファベットが [A, B, C] で、既知の確率分布が P(A)=0.6、P(B)=0.2、P(C)=0.2 であるとします。簡単にするために、エンコーダーとデコーダーの両方が、メッセージの長さが常に 3 であることを認識していると仮定して、ターミネーターは必要ありません。
メッセージ ACB をハフマン コーディングでエンコードするには、何ビットが必要ですか? シンボルごとにハフマン ツリーとハフマン コードを提供する必要があります。(3 点)
算術符号化でメッセージ ACB をエンコードするには、何ビットが必要ですか? エンコード プロセスの詳細を提供する必要があります。(3 点)
上記の結果を使用して、ハフマン符号化に対する算術符号化の利点について説明します。(1 点)
答え:
ハフマンコード:A-1、B-01、C-00。エンコード結果は10001なので5ビット必要。(3 点)
算術符号化のエンコード プロセス: シンボル 低高範囲 0.0 1.0 1.0 A 0.0 0.6 0.6 C 0.48 0.6 0.12 B 0.552 0.576 0.024 最終的なバイナリ コードワードは 0.1001、つまり 0.5625 です。したがって、4 ビットが必要です。(3 点)
ハフマン符号化では、各シンボルの符号語の長さは整数でなければなりません。しかし、算術符号化では分数になる可能性があります。したがって、上に示した結果のように、算術符号化は多くの場合、ハフマン符号化よりも効率的です。(1 点)