Range Coder for Perl
Perl
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
t
README
adaptive_rc.pl
finite_context.pl
rc_sample.pl
rc_wide.pl

README

* これはなに?

perl で実装した Range Coder です (速度的には褒められた実装ではありません)

- lib/RangeCoder.pm : 静的 Range Coder, low: 31bit, range 初期値 0x7fffffff
- lib/RangeCoder/Adaptive.pm : 適応型, 累積頻度表の実装はナイーブ, low 31 bit
- lib/RangeCoder/Adaptive/BIT.pm : 適応型, Binary Indexed Tree で高速化, low 31 bit
- lib/RangeCoder/FiniteContext.pm : 有限文脈モデル (1-order), low 31bit

WEB+DB PRESS Vol.53 で解説しています

* 参考にした情報

広井誠さんの "Algorithms with Python" を参考に実装

- http://www.geocities.jp/m_hiroi/light/pyalgo36.html
- http://www.geocities.jp/m_hiroi/light/pyalgo37.html
- http://www.geocities.jp/m_hiroi/light/pyalgo38.html

* 謝辞

low を 31 bit で扱う方法に関して、Alogrithms with Python の執筆者でもあ
られる広井誠さんから直々に方法を教えていただきました。ありがとうござい
ました。

* TODO

- テストコード
- 速度チューニング