フォーラム › TuneBrowser › AACなどのクリップ検出のすすめ › 返信先: AACなどのクリップ検出のすすめ
こんばんわ、Tikiです。
1.正規化されたデータを、32bit intから64bit floatに変えてみる
これは、わたしも考えたことがあるのですが、一方で、できるだけビットパーフェクトの状態を維持したいという考えもあって、float型の導入は現在はあまり考えていません。
64bit floatとおっしゃっているのは、仮数部が32bit以上(52bit)あるので、32bit整数相当の精度は格納できるから、というご配慮と拝察しますが、ここはやはり、ビットシフト以外の演算は行わないようにして、オーディオ用ソフトとしての処理の透明性は確保しておきたいと思っています (これまで何度か、TuneBrowserの音質に関連して、この内部でのデータの取扱いについていろいろと疑義のご連絡をいただいたことがあります…(^^;)。
それで、すこしちがうやり方を考えていました。
全体ゲインについて、現行のようにデバイスへの引き渡し直前に適用する方法と、デコード直後の生データに適用する方法を、設定で選択できるようしたらどうか、ということです。
後者の方法であれば、クリッピングは抑制できます。
ただ、その場合、現在のように再生中に動的に切り替えられるようにはせず、全体ゲインを切り替える操作を行ったら、一時的に再生を停止して、ゲインの切り替え後、再生を再開する、というような動作にします。これは、ゲイン切替時にはすでにバッファ内にデータが溜まっており、それらに対して新しいゲインを遡って反映するのは煩雑であるということと、逆に反映しなかった場合に、たとえば-18dBから最大に切り替えると、相応のショック音が出てしまうことが好ましくない故です。
4.2.2は先行版のまま停滞してしまっていますが(UWP版のほうのMicrosoftの審査が今回はなぜか時間がかかっています…)、そのさらに次のリリースに向けて、検討したいと思います。