高度試験午前I暗記無料で始める

データ圧縮(ハフマン符号化)とは?でーたあっしゅく

ハフマン符号化は、出現頻度の高い文字ほど短いビット列を、低い文字ほど長いビット列を割り当てて全体のデータ量を減らす可逆圧縮の方式。どの符号も他の符号の先頭部分にならないよう(語頭条件を満たすよう)割り当てるため、区切り記号なしで一意に復号できる。

最終更新:2026-10-07

試験情報

高度試験・午前I(全区分共通)の過去問では1回出題されています。

高度試験・午前I(全区分共通)の頻出用語/午前I(全区分共通)

別名:データ圧縮、ハフマン符号化

この語が出る過去問を解く →

背景

すべての文字を同じビット数で表すと、めったに出ない文字にも頻出する文字と同じ場所を割り当てることになり、その差のぶんが無駄になる。頻度に偏りがあるなら、偏りに合わせて長さを変えれば平均は必ず短くできる。ただし長さがばらばらだと、どこで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年秋の出題がまさにこの形)。すべての文字の出現頻度が等しい場合は圧縮効果がなく、乱数列ではむしろ増えうる。

関連用語

出た過去問

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 試験では1回出題
  • 分野:午前I(全区分共通)
  • ハフマン符号化は元のデータを完全に復元できる可逆圧縮であり、JPEGやMP3のような非可逆圧縮と混同しないこと。