beruponの日記

物置
 | 

2013-03-02

花粉症

とうとう本格的にきた。3/1からだ。。

zopfli

ニュースで zopfli の存在を知った。

https://code.google.com/p/zopfli/

zlib圧縮はPNGとかSWF等のファイルフォーマットで使われてるけど、圧縮率が上がればファイルサイズが小さくなるという事で結構おいしいかも、と思った。でも圧縮率を上げると解凍時間が掛かるようにはならないんだろうか?

DeflateのAlgorithmがよくわかってないしベンチマークとか見てないからわからない。。

いつか↓のを読んで理解したい。

http://www.zlib.net/feldspar.html

まぁzlibは展開は速い方だから気にしなくて良いのかも?

ニュースを見た時に、PNG画像の圧縮率を高めるのに使えそう、とか当然思ったけど花粉症だし実装する気は起きなかったら既に作られてた。

http://blog.livedoor.jp/imaya_js/archives/6334344.html

zlib圧縮されているSWFファイルを処理するプログラムを作った。

https://github.com/beru/swf-zopfli

結構圧縮するのに時間が掛かるけれど期待してたよりはファイルサイズは縮まなかった。

SWFってデータ全体をzlib圧縮しているけど、それ以前に DefineBitsJPEG2, DefineBitsJPEG3, DefineBitsLossless, DefineBitsLossless2, DefineBitsJPEG4, Screen Video bitstream format 等の部分が既にzlib圧縮済みなので、それらをzopfliで再圧縮するようにしたら良いのかもしれない。圧縮時間は更に増えるのはまぁ良いとして、ちょっと実装が面倒くさい。。

refactoring...

ちょこちょこ書き直していて4万1千行ぐらいにまで減らせた。4万弱くらいまで減らしたい。機能を増やしたら行数は増えるんだし。

度数分布

データ区間頻度
10231
25158
5084
7532
10018
25043
50017
次の級11

gperf

ちょっと前のエントリでgperfでkey比較処理がなんで必要なのか疑問に思っていた。

なぜkey比較必要になるかというと、perfect hash functionの候補外のkeyが渡された場合に同じhash値が出てしまう可能性があるからだった。

トラックバック - http://d.hatena.ne.jp/berupon/20130302
 | 
プロフィール

berupon

beruponについて

Connection: close