【はふまんふごうか】
ハフマン符号化 とは?
💡 よく使う文字は短く、あまり使わない文字は長く、メリハリで圧縮
📌 このページのポイント
ハフマン符号化ってどうやってデータを圧縮するの?
どうやって符号の長さを決めるの?
ハフマン木という二分木を作るんだ。出現頻度の低い文字から順にペアにして木を組み上げる。するとよく出る文字は木の上の方、めったに出ない文字は下の方に配置されて、自然と最適な符号長になるよ。
「01」の後に「011」が来たら、どこで区切るか分からなくならない?
いい質問だね!ハフマン符号は「接頭符号」という性質を持っていて、ある符号が別の符号の先頭部分になることがないんだ。だから区切り記号がなくても一意にデコードできるよ。
実際にはどこで使われてるの?
まとめ:ざっくりこれだけ覚えればOK!
「ハフマン符号化」って出てきたら「よく出る文字を短い符号にして圧縮する方法」と思えればだいたいOK!
📖 おまけ:英語の意味
「Huffman Coding」 = ハフマン符号化
💬 MITの大学院生デビッド・ハフマンが1952年に課題レポートとして発表したアルゴリズムなんだよ