私は算術符号化、特に有限精度の扱い方について読んでいます。たとえば、範囲が区間(0、0.5)または(0.5、1)内にある場合、それぞれ0または1を出力できます。 、次に範囲を2倍にします。私が理解していないのは、このプロセスが採用されている場合、結果のコードをどのようにデコードするのですか?
user1179499
質問する
820 次
1 に答える
2
デコーダーは、エンコード間隔モデルを含め、エンコーダーの正確な複製を実行します (オリジナルに対して必然的に遅れます)。
デコーダはまた、圧縮されたデータストリームを読み取った時点まで、エンコーダの既知の出力間隔を追跡します。この間隔がエンコーディング モデルの間隔の 1 つに収まると、対応するシンボルをデコードできることがわかります。
圧縮されたデータストリームを読み取っている間、出力間隔はすぐに 1 のサイズ (有限精度エンコーダが表すことができる最小のステップ) に縮小される可能性があることに注意してください。エンコード間隔はすべて離散化されているため、この単位出力間隔は何らかのエンコード間隔に適合することが保証されているため、デコーダーがエンコーダーに大きく遅れることはありません。ただし、圧縮されたストリームの最後には、デコード状態の「フラッシュ」が必要になる場合があります。これは、何らかの補助信号 (ファイル長など) によって、またはエンコーダーが十分な余分なビットを送信して、デコーダーがその終了シンボルを見つけられるようにすることによって行われます。
于 2012-05-10T17:45:27.427 に答える