アカウント名:
パスワード:
平均情報エントロピーと同じビット数になる符号割り当てができれば、 完璧に「出力符号ビット列が00~ffまでをほぼ均等確率で出力」が出来るのですが、 残念ながらJPEGで使う一次元のハフマン符号では1シンボルに割り当てるビット数を1ビット単位でしか変化させられないので、 これを成り立たせることが出来ません。 無限次元のハフマン符号、算術符号とかレンジコーダー使えば別なんですが…
たぶん、この辺の関係で改善率をより「大きくできてしまう」(今現在のアルゴリズムだと損している)のではないかと期待しています。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
※ただしPHPを除く -- あるAdmin
情報量を計算すると (スコア:1)
本来256通りの表現が出来る量が、255通りに減るわけですから、その情報量の比率は
log(255)/log(256)=0.99929417960…
と言うわけで、出力データ列に含められる実質的な情報量は0.07%減少します。
一方、それを考慮しないでffの後に1バイト追加される場合、出力符号ビット列が00~ffまでをほぼ均等確率で出力するとしたならば、出力データは 257/256 倍になります。
このデータ増加率は約 0.39%です。
と言うことは、大雑把に言っておおよそ 0.32% しか改善しないってことじゃないでしょうか?
もし、0.6%改善したとしたら十分立派では?
(と言うか、局所的な偏りを無視すれば、削減率は必ず約0.39%未満になるのでは?)
Re:情報量を計算すると (スコア:2)
平均情報エントロピーと同じビット数になる符号割り当てができれば、 完璧に「出力符号ビット列が00~ffまでをほぼ均等確率で出力」が出来るのですが、 残念ながらJPEGで使う一次元のハフマン符号では1シンボルに割り当てるビット数を1ビット単位でしか変化させられないので、 これを成り立たせることが出来ません。 無限次元のハフマン符号、算術符号とかレンジコーダー使えば別なんですが…
たぶん、この辺の関係で改善率をより「大きくできてしまう」(今現在のアルゴリズムだと損している)のではないかと期待しています。
-- Takehiro TOMINAGA // may the source be with you!