【情報理論】平均符号長とは?簡単に説明しました!

平均符号長

こんにちは!くるです!

今回は符号化するときに重要になる「平均符号長」について簡単に解説していきます!

平均符号長とは?

平均符号長とは「次に送信される符号の符号語長の期待値」と言うことができます。

例えば、次のような符号を考えてみましょう。

そして、各記号の符号を次のようにします。

このとき、平均符号長は「(発生確率×記号長)の和」で求めることが出来ます。今回の例では平均符号長を$L$とすると、

$$L=(0.5×1)+(0.2×2)+(0.2×3)+(0.1×3)=1.8$$

となり、平均符号長は「$1.8$」だと分かりました。

ここで注意しなくてはならないのは「平均符号長は各符号の符号長の平均ではない!」ということです。

つまり、「$a→1, b→00, c→011, d→010$」だから、$\frac{1+2+3+3}{4}=2.25$より平均符号長は$2.25$だ!というわけではないのです。

平均符号長は「次に送信される符号の符号語長の期待値」で、今回の例では「次に送信される符号の符号長は平均的に長さが$1.8$だろう」ということを示しているのです。

なぜ平均符号長が求まるのか?

どうして「(発生確率×記号長)の和」で平均符号長が求まるのか分からないっす…

これは期待値の考え方を用いているわけですが、どうも期待値っていまいち良く分からないんですよね。確率を掛けて和をとるってのがあんまりピンときません。

なので、次のように考えてみましょう。各記号と個数が以下のようになっているとします。

そして、各記号は$a→1, b→00, c→011, d→010$というように符号化されるとしましょう。

この記号10個を全部並べたら、符号長は$(5×1) + (2×2) + (2×3) + (1×3) = 18$となります。

つまり、記号10個で符号長が18です。ということは$\frac{18}{10}$は記号1個あたりの符号長になりますよね?

これは「$(5×1) + (2×2) + (2×3) + (1×3) = 18$」という式全体を10で割ることと同じです。

なので、

$$(0.5×1)+(0.2×2)+(0.2×3)+(0.1×3)=1.8$$

という式で得られる$1.8$という値は「記号1個あたりの符号長」を表しています。

だから、「(発生確率×記号長)の和」で平均符号長が求まるんです。

理解できたでしょうか?

先生
先生

なんとなく分かったっす!

なぜ平均符号長を求める必要があるのか?

ポンタ
ポンタ

平均符号長は何のために求めるのですか?

情報がどれだけ効率的に通信されているかを調べるためです。

先生
先生

例えば、先ほどの例をもう一度使って考えてみましょう。

各記号は次のように符号化されました。

この符号の平均符号長は$1.8$でした。

では、もう一つ次のような符号があったとします。

この符号の平均符号長は

$$(0.5×2)+(0.2×2)+(0.2×2)+(0.1×2)=2.0$$

となります。つまり、こちらの符号の方が平均符号長が$0.2$長いのです。

平均符号長が長いということはそれだけ通信する情報が長くなるということで、通信に時間がかかってしまいます。

すなわち、平均符号長は「情報がどれだけ効率的に通信されているか」を示すものであり、低ければ低いほど効率が良いと言えます。

だから、平均符号長を求める必要があるのです。

先生
先生
ポンタ
ポンタ

なるほど!

まとめ

・平均符号長は「次に送信される符号の符号語長の期待値」

・「(発生確率×記号長)の和」で平均符号長が求まる

・平均符号長は「情報がどれだけ効率的に通信されているか」を示すもの

お疲れ様でした!

先生
先生

シェアしてね!

コメントを残す

メールアドレスが公開されることはありません。

PHP Code Snippets Powered By : XYZScripts.com