テスト環境整備中。

gtestはC++用のフレームワークのようで、Cコンパイラでビルドするとエラーが出る( <limits> なんて無い、と言われた)。 でも無理やりビルドするためにcmakeの CXX で新しくプロジェクトを作った。 かなり強引にやった。型を中心に色々警告でてるし、C89との差異で苦しむかもしれない。

さて、フォーマットを決めよう。フォーマットが決まればあとはそのとおり実装していくだけのはずだ。

基本設計方針

  • AR(p) Natural Gradientの実装。
  • 符号はSLAの再帰的ライスを使用する。SLAの実装はそのままでシンボルを変えてポーティングする。
  • 目標はTTA, Wavpackの圧縮率を超えること。(超えたら対外発表可能とする)
  • 圧縮性能を試すだけなので、SIMDやアセンブリレベルの過度な高速化はしない。
  • 無音時のランレングス符号化はあり。
    • ひとまずは残差のみで実装していく。
  • データの正常性検査はほとんど入れない。(ブロックのシグネチャはあり。CRCはやらない。)
  • ひとまずは16bitwavの対応で良い。
    • やろうと思えばできるが、複雑化のコストが大。