オンラインデータ圧縮シミュレーター
テキストを入力してハフマン符号化の圧縮シミュレーションを実行。各文字の符号とビット数を確認し、圧縮の仕組みを学べます. 処理はブラウザ内でローカルに行われます。
使ってみる
ハフマン符号化の仕組みを学ぶ
このシミュレーターは、入力テキストの各文字の出現頻度に基づいてハフマン木を構築し、各文字に可変長の2進符号を割り当てます。例えば「AAAA」と入力すると、元のUTF-8ビット数は32ビットですが、ハフマン符号のペイロードは4ビットになります。「ABBC」では元が32ビット、ペイロードが6ビットです。日本語の「你好」では元が48ビット、ペイロードが2ビットになります。
実際の動作と制限
このツールは教育目的のシミュレーターであり、実際のファイル圧縮は行いません。生成されるのは符号表とペイロードビット数の計算結果のみで、圧縮ファイルや解凍プログラムは出力されません。ペイロードには符号表やヘッダーなどのオーバーヘッドが含まれないため、実際の圧縮率とは異なります。特に短いテキストでは圧縮効果が保証されません。
入力の注意点
入力できるのは最大100,000 UTF-16コード単位です。絵文字などは2コード単位で数えられるため、実際の文字数より少ない場合があります。空のテキストはエラーになります。改行やスペースも1文字として扱われ、結合文字や絵文字のシーケンスは複数のコードポイントに分かれて表示されることがあります。
よくある質問
結果の一覧に「\n」のような表記があるのはなぜ?
JSON引用形式では、改行やタブなどの制御文字がエスケープ表記で表示されます。実際の入力文字とは異なるので注意してください。
同じ頻度の文字がある場合、符号はどう決まる?
ハフマン木の構築時に同頻度のノードの結合順序によって符号が変わることがあります。重要なのは重み付き符号長の合計であり、符号自体の一意性は保証されます。
このツールで実際のファイルを圧縮できますか?
いいえ。このツールはテキストのハフマン符号化をシミュレーションするもので、圧縮ファイルの生成やダウンロードはできません。あくまで教育用です。
チェックリスト
- 入力テキストは100,000 UTF-16コード単位以内か確認する
- 空のテキストでないことを確認する
- 結果のビット数はペイロードのみで、実際の圧縮サイズではないことを理解する
- モバイルでは小さなサンプルから試す
処理はブラウザ内でローカルに行われます。