ページへ戻る

− Links

 印刷 

tek5​/rangecoder のバックアップ差分(No.6) :: OSASK計画

osaskwiki:tek5編集/rangecoder のバックアップ差分(No.6)

« Prev[4]  Next »[5]
5: 2004-10-08 (金) 18:18:05 ソース[6] 6: 2004-10-08 (金) 18:18:05 ソース[7]
Line 20: Line 20:
-と出力します(後ろには適当に0を補った)。これなら24ビットを18ビットで出力できたことになります。 -と出力します(後ろには適当に0を補った)。これなら24ビットを18ビットで出力できたことになります。
-この例ですと、"1"を出力するのに3bit要しますが、"0"は最小で0.429ビットで出力できています。これが1ビットをより少ないビットで出力できるという分かりやすい例だと思います。 -この例ですと、"1"を出力するのに3bit要しますが、"0"は最小で0.429ビットで出力できています。これが1ビットをより少ないビットで出力できるという分かりやすい例だと思います。
--ちなみに''レンジコーダのほうがもっと柔軟で拡張性のある考え方''ですが、とにかくビットの出現頻度の偏(かたよ)りを利用して1ビットを1ビット未満の長さで出すという発想は同じなのです。つまり、これはレンジコーダのアルゴリズムとは''全く別である''ことを忘れないでください。+-ちなみに''レンジコーダのほうがもっと柔軟で拡張性のある考え方''ですが、とにかくビットの出現頻度の偏(かたよ)りを利用して1ビットを1ビット未満の長さで出すという発想は同じなのです。でも、これはレンジコーダのアルゴリズムとは''全く別である''ことを忘れないでください。
*** こんな1ビット単位のレンジコーダで縮むのか *** こんな1ビット単位のレンジコーダで縮むのか
Line 50: Line 50:
-tek5ではこれをやめて少しくらい計算が重くなってもいいので精度よく計算できるモードがあります。しかしもちろんこれはオフにすることもできます。どうしてかというと、不正確さがたまたま圧縮に有利になることがありますし、圧縮率よりも速度がほしい時だってありうるからです。 -tek5ではこれをやめて少しくらい計算が重くなってもいいので精度よく計算できるモードがあります。しかしもちろんこれはオフにすることもできます。どうしてかというと、不正確さがたまたま圧縮に有利になることがありますし、圧縮率よりも速度がほしい時だってありうるからです。
-またLZMAやstk5では、"0"と"1"の出現比が1:1000よりも極端になった場合を扱えず、常に1:1000くらいとして近似しています。これは実用上十分な場合もありますが、先の0x00と0xffのときのように、あるビットに関しては完全にどちらかしか出ない、という場合もありえます。これはまさに比が0:1の場合で、これを1:1000で近似するのはそれなりに損です。ということで、tek5ではこの比を1:10000くらいまで対応できるようになっています。 -またLZMAやstk5では、"0"と"1"の出現比が1:1000よりも極端になった場合を扱えず、常に1:1000くらいとして近似しています。これは実用上十分な場合もありますが、先の0x00と0xffのときのように、あるビットに関しては完全にどちらかしか出ない、という場合もありえます。これはまさに比が0:1の場合で、これを1:1000で近似するのはそれなりに損です。ということで、tek5ではこの比を1:10000くらいまで対応できるようになっています。
---この1:1000や1:10000という数字は間違っている気がしてきた。が、とにかくtek5ではより極端な比が扱えるようになったことはまちがない。1:275と、1:726810かもしれない。+--この1:1000や1:10000という数字は間違っている気がしてきた。が、とにかくtek5ではより極端な比が扱えるようになったことはまちがいない。1:275と、1:726810かもしれない。
-LZMAやstk5では、過去のビット列から出現比を予想する場合、どのくらい速く新しい傾向に追従できるようにするか、を決めるパラメータが固定されています。これは結構有害で、このせいで"0"と"1"が交互に来る場合などでは無圧縮よりも長くなってしまうという問題がありました。ということで、このパラメータを可変にして、全く追従しなかったり、LZMAくらいで追従したり、むしろそれよりも速く追従したりを選択できるようになっています。 -LZMAやstk5では、過去のビット列から出現比を予想する場合、どのくらい速く新しい傾向に追従できるようにするか、を決めるパラメータが固定されています。これは結構有害で、このせいで"0"と"1"が交互に来る場合などでは無圧縮よりも長くなってしまうという問題がありました。ということで、このパラメータを可変にして、全く追従しなかったり、LZMAくらいで追従したり、むしろそれよりも速く追従したりを選択できるようになっています。
-これらの設定はすべてファイルの途中で何度でも変更可能です。アーカイブなど、ファイルの途中で統計的傾向がどんどん変わるものでは都合がいいでしょう。 -これらの設定はすべてファイルの途中で何度でも変更可能です。アーカイブなど、ファイルの途中で統計的傾向がどんどん変わるものでは都合がいいでしょう。
« Prev[4]  Next »[5]