0

任意のシンボルをビット文字列にエンコードしようとしていますが、それらを生成したり、それらを含むビット文字列をデコードしたりする方法がよくわかりません。

圧縮する任意のシンボルに取り組みたいのですが、一意にデコード可能なコードが探しているものなのか、おそらく算術コードなのか正規のハフマンコードなのかよくわかりません。

任意のサイズのシンボル テーブルについて、最も頻度の高いものから最も頻度の低いものまでを示すビット文字列のリストが必要なだけです。

4

1 に答える 1

0
  1. エンコーディング:

    1. シンボルごとに頻度表を生成する
    2. この頻度表に基づいて確率ツリーを生成します
    3. コード テーブルの生成 - 最も頻繁に使用されるシンボルが最小のビット文字列を取得するように
    4. 出力: [度数表 + ビット列のシーケンス (端から端までまとめたもの)]

      注意すべき重要なことは、これらのビット文字列のシーケンスは、後でそれら自体で直接分離できることです。つまり、[10010001] => {100, 1000, 1} とします (ほんの一例です)。

  2. デコード:

    1. 度数表とビット列列を取得します。
    2. 確率ツリーの生成 (1.2 と同じ)
    3. コード表の生成 (1.3 と同じ)
    4. データの再作成:

      1. ビット文字列の解析
      2. コード表との照合
      3. 出力一致記号
于 2012-10-12T09:22:18.117 に答える