圧縮率向上の工夫として、やはり、振幅に応じてステップサイズ乗じるのが効くはず。(固定でシフト量をいじるとかなり圧縮率が変わってくるので)
- やってみたが、計測した振幅(分散)をどうステップサイズに反映させるかがうまく行かないのでやめる。単純に分散逆数を乗じるとステップサイズが大きくなりすぎて劣化。
他にも、
- プリエンファシスのシフト量を5から4に変えたら若干の改善が見られたので採用。とおもったけどもう一度検証したら悪化してた。5のままにする。
- SAのフィルタ次数を16にした時、そのままでは性能が悪いが、係数更新時にlog2(次数)だけ右シフトすると具合がいい(これは次数で割っていることに相当する)。高振幅な音源では改善したけど、問題のデータでは悪化。
さらにあがいていると、SAは右シフト量0で更新すると、低振幅音源で安定してよい圧縮率を出してくれる事がわかった(当然高振幅音源は悪化するけど、それほどひどくない)。特にクラシック音源に限ればwavpack(-hh)を0.5%リードしている。ワン・ツー・スゥイーツでもリードしているし、話の作り方としても良いかもしれないので、これで検証掛けてみる。就寝。
3:30くらいになんか勝手に起きた。結果を見たら0.1%リードしてるのを確認した。念の為テストを実行したら圧縮できずにアサートしている…まだ怪しい。