2006-10-01から1ヶ月間の記事一覧

lzhuff_compressor

lzhuff_compressorができました。 <hamigaki/iostreams/filter/lzhuff.hpp> テストコード 基本的にこれまでのクラスを繋げるだけなんですが、1点新しい発見がありました。 template<class Sink> boost::iostreams::composite< boost::reference_wrapper<lzhuff_output_impl>, boost::reference_wrapper<Sink> > make_impl(Sink& sink) { re</sink></lzhuff_output_impl></class></hamigaki/iostreams/filter/lzhuff.hpp>…

modified_lzss_compressor

昨日探していたLZSSの派生バージョンの名前ですが、「modified LZSS」(変形LZSS)と呼んでいる人がいたので、これを採用しました。(modifiedなんたらの例に漏れず、多分いろんなmodified LZSSがあるとは思います。) <hamigaki/iostreams/filter/modified_lzss.hpp> 変形LZSSだとSourceのEOFとビットストリー</hamigaki/iostreams/filter/modified_lzss.hpp>…

ハフマンバッファ

一応huffman_encoderができました。 huffman.hppの差分 まとめるつもりが昨日のグダグダコードのままです。 微妙にコンパイルエラーはありましたが、アルゴリズムはあっていたようで、一発で動きました。 追加したテスト さてLZSSとハフマンができたのでこれ…

ハフマン符号化

LZSSの高速化はおいといて、ハフマン符号化の実装に入りました。 何度も書いてますが、LHAで使われているのは長さ制限付きのCanonical Huffman Codeなので、通常のハフマンより少し複雑です。 以下、まだ作りかけなのでバグっているかもしれません。