データ圧縮(ハフマン符号化)とは?でーたあっしゅく
ハフマン符号化は、出現頻度の高い文字ほど短いビット列を、低い文字ほど長いビット列を割り当てて全体のデータ量を減らす可逆圧縮の方式。どの符号も他の符号の先頭部分にならないよう(語頭条件を満たすよう)割り当てるため、区切り記号なしで一意に復号できる。
最終更新:2026-10-07
この語が出る過去問を解く →背景
すべての文字を同じビット数で表すと、めったに出ない文字にも頻出する文字と同じ場所を割り当てることになり、その差のぶんが無駄になる。頻度に偏りがあるなら、偏りに合わせて長さを変えれば平均は必ず短くできる。ただし長さがばらばらだと、どこで1文字が終わるのか分からなくなる——この問題を「短い符号を他の符号の頭に使わない」という制約だけで解いたのがハフマン符号の巧妙さである。午前I(科目A-1)では、この語頭条件と平均符号長の計算が組み合わさった形で出題される。
具体例
a・b・c・dの出現頻度が50%・30%・10%・10%のとき、a=0/b=10/c=110/d=111 と割り当てると平均符号長は0.5×1+0.3×2+0.1×3+0.1×3=1.7ビットとなり、一律2ビットの固定長より短い。ZIPやPNG、JPEGの内部でも最終段の符号化にハフマン符号が使われている。
試験での引っ掛け
ハフマン符号化は元のデータを完全に復元できる可逆圧縮であり、JPEGやMP3のような非可逆圧縮と混同しないこと。またa=0, b=1, c=00 のような割当ては、0がcの先頭になるため一意に復号できず、平均符号長がいくら短くても不正解になる(令和2年秋の出題がまさにこの形)。すべての文字の出現頻度が等しい場合は圧縮効果がなく、乱数列ではむしろ増えうる。
関連用語
出た過去問
出典:令和6年度 秋期 高度試験 午前Ⅰ 問9(IPA)
800×600ピクセル、24ビットカラーで30フレーム/秒の動画像の配信に最小限必要な帯域幅はおよそ幾らか。ここで、通信時にデータ圧縮は行わないものとする。
正解:350Mビット/秒
要点:無圧縮動画の帯域は画素数×色深度×フレームレートで求める
1フレームのデータ量は800×600×24ビット=1,152万ビットで、これを毎秒30フレーム送るので1,152万×30=約3億4,560万ビット/秒となる。無圧縮なので必要な帯域幅はおよそ350Mビット/秒である。
出典・参考
公式シラバスの1 基礎理論 > 3. 情報に関する理論 > (2) 符号理論に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。