19.7 圧縮

今度は,欠席,遅刻,早退,出席の確率が, それぞれ 1/2, 1/4, 1/8, 1/8 であるとしましょう.すべての確率を足し合わせると 1になることに注意してください. すると,平均情報量は,次のように 1.75 bit となります.対数の底を2とします.

H = ( (−(1/2)log(1/2)) + (−(1/4)log(1/4)) + 2×(−(1/8)log(1/8)) ) bit = 1.75 bit

つまり,1回の記録には,本来 2 bit 分の情報はないということになります.

しかし,4通りの情報を 2 bit 未満で符号化することは可能なのでしょうか? 実際には,次のような符号化を行なえば,平均の符号の長さは 1.75 bit になります.

出欠欠席遅刻早退出席
ビット列010110111
ビット長1 bit2 bit3 bit3 bit

1/2×1 bit + 1/4×2 bit + 1/8×3 bit + 1/8×3 bit = 1.75 bit

このように情報の性質に応じて, より効率の良い符号化の方法が存在する可能性があります. 平均情報量は理論的に最短の平均符号長を示しますが, 平均情報量での符号化はいつでも実現できるわけではありません. 最も短い符号を得る方法として, ハフマン符号 があります.

与えられた情報の性質を解析し,よりコンパクトな符号化を行なうことを, 圧縮と呼びます. たとえば,文書ファイルの中で特定の文字が良く使われ, それ以外の文字が殆んど使われていないことが判明したとします. その場合,良く使われている文字には短い符号, あまり使われていない文字には長い符号を割り当てれば, 平均の符号の長さが短くなり,ファイル全体をコンパクトにできるわけです. 圧縮には,損失のない手法と損失のある手法があります. ハフマン符号は, 損失のない圧縮手法のひとつです. 文書ファイルの例は損失のない圧縮方法であり, この場合, もとの情報を完全に復元することが可能です. 一方,画像情報や音声情報などの場合には, 損失はあるものの圧縮率の高い手法がよく用いられます. 詳しくはrelated_s22.3 データの圧縮で扱います.

圧縮された情報を復元して元の情報に戻すことを専門的には 伸張 と呼びますが,圧縮されたファイルを元のファイルに復元することを俗に 解凍と呼びます.

advanced_s19.7.1 コマンドラインからの圧縮

シェルのコマンドラインにおいて,コマンドを用いて圧縮してみます.またファイルの種類によってどのくらい小さくなるかを考えます.

advanced_s19.7.2 Finderからの圧縮

Mac OS X の環境において, Finder を使ってファイルを圧縮する方法について,扱います.