LZWではなく2番目のパスでLZ77 DEFLATEがハフマンエンコーディングを使用するのはなぜですか?それらの組み合わせについて最適なものがありますか?もしそうなら、LZWの出力の性質はLZWや他の方法よりもハフマン圧縮に適していますか?DEFLATEメソッド推論
答えて
LZWは、LZ77と同じように、最初の「ステージ」と同じように、繰り返しのある文字列を利用しようとします。それは、その情報をエントロピーコーディングするという貧弱な仕事をします。 LZWは、より現代的なアプローチに完全に取って代わられています。 LZ77がリテラルとマッチのリストを生成すると、LZWが利用するために残されることは何もなく、その情報のためにほぼ完全に無効なエントロピーコーダを作成します。
ハフマン符号化と同じ役割を果たす他の圧縮方法は、高頻度の文字から利益を得ていますか?ハフマン符号化は最適であることが証明されていますか? –
はい、他にもいくつかあります。例えば。算術符号化、レンジ符号化、および有限状態エントロピーは、速度を犠牲にしてより良い圧縮を提供する。 –
圧縮のパフォーマンスが圧縮のサイズよりも価値があるのはなぜですか?パフォーマンスの違いは素晴らしいですか?また、これらの他の方法を検討していただきありがとうございます。 –
Mark Adler could best answer this question.
LZ77とハフマンがどのように連携するかについての詳細は、いくつかの精査を必要としています。生データを文字列と特別な長さ、距離の組に変換したら、これらの要素をハフマンコードで表現する必要があります。
これはNOTですが、標準的な用語ではありませんが、私たちがビットを "ダイヤルトーン"で読み始めるポイントを呼び出してください。結局のところ、我々のアナロジーでは、ダイヤルトーンは、特定の電話機にマッピングされる一連の番号を指定することができる場所です。だから最初の "ダイヤルトーン"と呼んでください。そのダイヤルトーンでは、文字、長さ - 距離のペア、またはブロックの終わりの3つのうちの1つが続きます。可能性のある文字(「リテラル」)、可能な長さの範囲を示す要素(「長さ」)、および特殊なブロック終了標識はすべて、単一のアルファベットにマージされます。そのアルファベットはハフマンツリーの基礎となります。距離は、長さの直後にしか現れないので、このアルファベットに含める必要はありません。リテラルがデコードされるか、またはデコードされた長さ - 距離のペアは、別の「ダイヤルトーン」ポイントにあり、再び読み込みを開始します。もちろん、ブロックの終わりのシンボルを取得した場合は、別のブロックの先頭または圧縮データの最後に位置しています。
実際には、長さコードまたは距離コードは、基本値を表すコードであり、その後に基本値に追加する整数を形成する余分なビットが続きます。
...
かいつまん。 LZ77は重複排除を提供します。ハフマン符号化はビット削減をもたらす。 It's also on the wiki.
- 1. Scalaのメソッド推論ジェネリック型
- 2. スカラー推論メソッドのパラメーター
- 3. 汎用メソッドの型推論の問題
- 4. 推薦プラットフォームの推論エンジン
- 5. サブルーチン推論
- 6. 型推論は
- 7. F#型推論
- 8. 型推論
- 9. オブジェクト検出:推論
- 10. パターンマッチングの推論型
- 11. ghci randomio型推論
- 12. Punning推論がgraphdb
- 13. Typescript推論型エラー
- 14. ≡推論と 'with'パターン
- 15. ハスケル推論型エラー
- 16. スカラパターンマッチングと型推論
- 17. SPARQL CONSTRUCTの推論
- 18. タイプ推論エンジンhaskell
- 19. 自動型推論
- 20. Neo4jの推論を推論する方法は?
- 21. 推論の例は、「Scalaでプログラミング」セミコロン推論規則導入
- 22. タイプ推論 - Monadを推論できませんでした
- 23. ジェネリックメソッドを選択する/ Javaのメソッドを推論する
- 24. pylint、コルーチン、デコレータと型推論
- 25. KotlinとRxJava型推論が
- 26. Typescriptサブジェネリック型の推論
- 27. Kotlinのラムダと型推論
- 28. hLDAのマレット推論エンジン
- 29. タイプ推論JavaScriptのサポート
- 30. Observable.combineLatest型推論in kotlin
バックエンドとしてレンジコーダーに向かう可能性がありますが(遅くなり、ビットストリーム内にこれらの拡張ビットを入れるのは面倒です)、今日はおそらくANSです。 – harold