CDF42をC言語で実装してみた。懸念だった1ループによる実装もOK。想像通り。 分散は確かに減っているからエントロピーも減っているはず。
さて、もう符号化まで試してしまうべきか? ちょっと考えてたけど、やってしまおうと思う。 今までのありあわせの符号化スキームを転用してやってみる。
やっつけで超簡易コーデックを作った。風の巡る場所で試す。観察としては、
- 何もしないで直接再帰的ライス符号を適用すると(元データ比)90%
- Haarの1段適用では84%, 2段適用で82.7%
- CDF22の1段適用では81%, 2段適用で79.0%
- CDF42を1段かませた場合76%
- 低域が42%
- 高域が34%
- CDF42を2段かませると75%
- 低域/低域が20%
- 低域/高域が20%
- 高域が34%
- 高域を分割すると悪化(77%くらい)
- flac(-8)は60.2%, WavPack(-hh)は59.1%
- ブロックサイズを4096から8192に上げると0.05%程度の減少。
SAの導入はこれから、さてどれくらい減らせるだろうか。 分割設定を変えながら見るべし。
CDF(8,2)も試したいと思い係数を探していたが見つからず。代わりに以下の論文がヒット。
- Optimization of biorthogonal wavelet filters for signal and image compression フィルタ係数を代数的に求めている?制約を入れて望ましいフィルタを設計しているように見える。