帯域分割信号に対してSAを適用してどれくらい減るか様子を見る。こればかりはやってみないと分からない。

試してみた概観。ブロックサイズは8192。

  • MS変換: 89.4%
  • MS変換 + SA適用: 72.4%
  • MS変換 + CDF42の1段適用: 74.3%
  • MS変換 + CDF42の2段適用: 71.72%
  • MS変換 + CDF42の1段適用で両帯域にSA: 66.5%
  • MS変換 + CDF42の2段適用で全帯域にSA: 66.4%

うーん、パット見渋い。エントロピー見て符号が悪いかどうか判定する。

  • MS変換 + CDF42の2段適用で全帯域にSA: で9.87[bit] -> 61.69%

だから、理論上FLACより悪い。。。符号というよりは残差のエントロピーがまだ高い。 SAじゃ弱すぎるか。LPC使うか。。。

悲しみに暮れていたが、MS変換の後ろにプリエンファシスを突っ込むと有意に改善。。。

  • MS変換 + プリエンファシス: 76.7%
  • MS変換 + プリエンファシス + SA適用: 66.0%
  • MS変換 + プリエンファシス + CDF42を1段: 69.9%
  • MS変換 + プリエンファシス + CDF42を2段: 69.7%
  • MS変換 + プリエンファシス + CDF42を1段 + 各帯域でSA: 63.2%
  • MS変換 + プリエンファシス + CDF42を2段 + 各帯域でSA: 63.3% (エントロピー: 9.63bit, 60.2%)
    • ただし瞬間的に大きい残差が出ているようだ(サンプルカウントでSEGVした)
  • MS変換 + プリエンファシス + SA適用 + CDF42を1段: 63.4%
  • MS変換 + プリエンファシス + SA適用 + CDF42を1段 + 各帯域でSA: 58.8% <- !!!
  • MS変換 + プリエンファシス + SA適用 + CDF42を2段 + 各帯域でSA: 59.5%
  • MS変換 + プリエンファシス + SA適用 + SA適用: 60.6%
  • MS変換 + プリエンファシス + SA適用 + SA適用 + SA適用: 59.2%
  • MS変換 + プリエンファシス + SA適用 + SA適用 + CDF42を1段: 59.9%
  • MS変換 + プリエンファシス + SA適用 + SA適用 + CDF42を2段: 61.0%
  • MS変換 + プリエンファシス + SA適用 + SA適用 + CDF42を2段 + 各帯域でSA: 59.8%
  • MS変換 + プリエンファシス + SA適用 + SA適用 + SA適用 + CDF42を2段 + 各帯域でSA: 60.9%
  • MS変換 + プリエンファシス + プリエンファシス + SA適用 + CDF42を2段 + 各帯域でSA: 58.7% <- !!!
  • MS変換 + プリエンファシス + プリエンファシス + SA適用 + CDF42を1段 + 各帯域でSA: 58.0% <- !!!
  • MS変換 + プリエンファシス + プリエンファシス + SA適用: 64.5%

CDFは、2段適用より1段の方が良さそう。

SAを適用してから帯域分割すると有意…?どう考察すればよい? また、次数4のSAでここまでやれているから、まだ伸びしろがありそうに思える。 いや、弱いフィルタを連結しているから性能が良くなっているのか?

「音声の高能率符号化」で、プリエンファシスのような差分処理によって確か分散(符号量)が減ることは言及していた。 (書籍を確認すると、1ラグの正規化相関を乗じて差分符号化すると確実に分散(符号量)を落とせると書いてある。式的にも明らか。) かといって2連結でさらに小さくなるのは聞いてない。初めての経験。1処理で消しきれない分があるということだ。 ガチの1ラグ相関(=最適値)でプリエンファシスやるとどうなる?→良くなった。統計的にもそうか。 多段適用すると、頭打ちになるけど減り続けている。

上の構成を並べて思ったのは、予測は大域的なものから局所的なものに持っていくと良さそうに見える。