バイナリストリームを圧縮したい。私は、各「1」の後に「0」を見つける可能性が高く、各「0」の後に「1」を見つける可能性が高いことを知っています。どのようにエンコードする必要がありますか?私はライスのコードについて考えていましたが、これまでには得られませんでした...どんな返事もありがとうございます。バイナリストリームのエントロピー符号化
3
A
答えて
3
シンプルなハフマンコーディングを試しましたか?おそらくそれはそれほど節約できませんが、コード '10'と '01'のいずれかが '00'または '11'よりもはるかに高い確率を持つ場合、 '0'に、 、 '110'、 '111'
もちろん、ストリームを2ビットのチャンクに分割して1つのケースのみを最適化するので、これは最良の選択ではありません。しかし、それは、4ビットまたは8ビットのようなより大きな入力集合の確率を計算/測定することによって改良することができる。 8ビットの場合、10101010と01010101は00000000と11111111よりも頻繁に使用されます。
算術符号化や実際にいくつかの圧縮を行うと、ビットの確率に基づいてより良い結果が得られる場合があります。
もう1つの簡単な方法は、1秒ごとにビットを反転させることです。あなたが言及する確率は、0101010のような多くの交互のストリーム部分に向かう傾向があります。これは、111111のような多くのストリーム部分を提供します。通常、通常の圧縮アルゴリズムでよりよく圧縮できます。しかし、この方法の成功は、「確率ギャップ」がどれほど大きいかによって決まります。
関連する問題
- 1. ハフマン符号化のトラバーサル符号化
- 2. 符号化シルベスターシーケンス
- 3. 符号化のキャリッジリターン
- 4. MIMETextのヘッダーの符号化
- 5. Java URIのポンド記号の符号化
- 6. MailSystem.NET件名の符号化
- 7. 符号化なしのビネットエフェクト
- 8. 符号化ImplodeでTWIG
- 9. HTTPチャンク転送符号化
- 10. アポストロフィを符号化する
- 11. 符号化絵文字アイコン
- 12. はASCII85符号化ピクチャ
- 13. ルビーと符号化変換
- 14. GSM 8ビットデータ符号化
- 15. 固定長符号化を生成するハフマン符号
- 16. FFmpeg:H264へのRGbフレーム(AvFrames)の符号化
- 17. android.util.Base64フラグを符号化/復号化する
- 18. 有限精度算術符号化復号化プロセス?
- 19. NSCodingで符号化/復号化を倍増
- 20. matlabのハフマン符号化(バイナリ値)
- 21. チャンク転送符号化 - ブラウザの動作
- 22. 符号変化浮くとバック
- 23. 可逆階層ランレングス符号化
- 24. ModelState.AddModelErrorがHTMLを符号化します
- 25. wavをmp3に符号化するアルゴリズム
- 26. IDカード磁気ストライプ符号化
- 27. 符号化パラメータを持つRestTemplate
- 28. 64ビット符号化テキストの3Desを復号する
- 29. 符号化されたキーとしてGenericData.Recordフィールドを別々に符号化します
- 30. PHPで急なアクセント記号を符号化する
こんにちは!私はハフマンを試したことがありますが、お気づきのように、最適な結果は得られません...しかし、推薦算術コーディングのおかげです。適切な選択肢のように見える、私はそれを試してみましょう。ありがとう! – zakk
算術符号化は特許取得済みで、レンジコーディングを使用します。 –