基本情報暗記無料で始める

ハフマン符号とは?はふまんふごう

ハフマン符号とは、文字ごとの出現頻度をもとに、よく出る文字には短いビット列、めったに出ない文字には長いビット列を割り当てる可変長の符号。出現頻度の小さい2つを束ねて1つにする操作をくり返して木を作り、根から各文字までの左右の分かれ道を0と1で表して符号を決める。こうして作った符号はどの符号も他の符号の先頭部分にならない(語頭条件を満たす)ので、区切りの記号が無くても先頭から一意に読み戻せ、平均の符号の長さが最も短くなる。

最終更新:2026-10-10

試験情報

基本情報技術者試験の過去問では1回出題されています。

基本情報技術者試験の頻出用語/テクノロジ系

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

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

背景

文字を固定長で表すと、4種類なら全部2ビットのように、よく出る文字にもまれな文字にも同じ長さを使うことになり、データ量に無駄が出る。出現の偏りを利用して全体を短くしたいが、長さがばらばらだと区切りが分からなくなる。その両方を解決する作り方として考えられた。

具体例

A・B・C・Dの出現確率がそれぞれ50%・25%・12.5%・12.5%なら、A=0、B=10、C=110、D=111とできる。1文字あたりの平均は0.5×1+0.25×2+0.125×3+0.125×3=1.75ビットで、固定長の2ビットより短い。ZIPファイルやPNG画像で使われる圧縮方式(Deflate)や、JPEG画像の圧縮の最後の段階でもハフマン符号が使われている。

試験での引っ掛け

「どの符号も他の符号の先頭部分にならない」条件を破った符号表(例:Aが0でBが01)は一意に読み戻せないので、符号表の穴埋め問題ではこの条件で選択肢を消す。また、同じ値の連続を「値と個数」に置き換えるランレングス符号化とは別の方式。誤りを見つけて直すハミング符号(通信路符号化)とも目的が違い、ハフマン符号はデータを短くするための情報源符号化にあたる。

関連用語

出た過去問

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

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

試験での特徴
  • 試験では1回出題
  • 分野:テクノロジ系
  • 「どの符号も他の符号の先頭部分にならない」条件を破った符号表(例:Aが0でBが01)は一意に読み戻せないので、符号表の穴埋め問題ではこの条件で選択肢を消す。