AACなどのクリップ検出のすすめ

フォーラム TuneBrowser AACなどのクリップ検出のすすめ

このトピックには11件の返信が含まれ、2人の参加者がいます。1 年、 9 ヶ月前 Tiki さんが最後の更新を行いました。

12件の投稿を表示中 - 1 - 12件目 (全12件中)
  • 投稿者
    投稿
  • #787

    saku
    参加者

    sakuです。
    MP3やAACはクリップを発生させる可能性がある、との説明が気になって以下の設定を入れてみました。

    再生の設定、デコードの設定
    デコードのその他の設定、クリップを検出する、[No]->[Yes]

    私の手持ちのiTunseライブラリには、大量のAACがあるのですが、驚いたことに多くの曲でクリップが発生していました(^^;

    (長年知りませんでしたよ!)

    対応としては、AACを聴くときは「全体のゲイン」を[-3dB]あたりにすることでしょうか。
    効果は劇的とは言えませんが、聴感が良い方向に変わったと感じました。

    なお、「再生設定:-3 dB」と「再生設定:最大」をキーボードショートカット入れておくと、切り替えが楽になります。

     

    以上となります。

    #790

    Tiki
    キーマスター

    sakuさん、こんばんわ。

    Tikiです。

    あー、見てしまいましたか(^^;。しかもそれを「すすめ」ますか(^^;;;。

    とくに音圧の高い系の音楽などは、クリップすることも含めて音作りをされているような感じもするので(すいません音楽制作は詳しくはないのですが)、個人的には、それを視覚的に見えるようにしても、あまり精神衛生上いいことはないのかなと思っていました。

    似た例では、ビットパーフェクトを「ほどほど」にしているときには、フェード操作が効きます。ボリュームバーの色を、そのフェード中の200msの間だけ(ビットパーフェクトではなくなるので)オレンジにするように設定することもできるのですが、作ってみたあとで、再生の開始/停止時に一瞬オレンジになるのを目撃しても気ぜわしいだけで何のメリットもないな、と思い、標準設定からは外しました。

    自分の思っている設定で鳴っているかどうかを確認できるようにするのはとても大切なことですが、それが確認できたら、あとは細かいことは気にせず(^^;、楽しむのが良いような気がします。

    それから、全体ゲインを-3dBにした場合ですが、例示していただいたスクリーンショットに現れているように、現在のTuneBrowserは、ゲインを設定した状態でもクリップは発生し、検出します。聴感上すこし良く感じられたのは、ビット幅としてほぼデバイスの限界値に近いところで鳴っていたものが、余裕を持ったレンジで鳴るようになったからではないかと推測します。私も、日常は-3dB下げて、ReplayGainなどが効く範囲を広くとり、すこし余裕のある範囲で聴いています。

     

    #793

    saku
    参加者

    Tikiさん、こんばんわ。
    sakuです。

    あー、見てしまいましたか(^^;。しかもそれを「すすめ」ますか(^^;;;。

    おっと、これは失礼したようで…(^^;;
    もし、お気になるようでしたら、タイトル修正などお願いいたします。

    それから、全体ゲインを-3dBにした場合ですが、例示していただいたスクリーンショットに現れているように、現在のTuneBrowserは、ゲインを設定した状態でもクリップは発生し、検出します。

    (引用が前後しますが)
    すみません。確認なのですが、

    • 「全体ゲインの-12dB」もしくは「ReplayGain基準の89dB」が適応されている状況で、AACデコード時にクリップが発生する(現在のTuneBrowser)

    ということになりますでしょうか?

    例示スクリーンショットでは、「ゲイン0dB」だったらクリップしていたよ、というサインと受け取っていました。
    もしクリップするのだとしても、このあたりを気にするならFLACに行けばいいので、情報として知りたいという感じです。

    個人的には、それを視覚的に見えるようにしても、あまり精神衛生上いいことはないのかなと思っていました。

    似た例では、ビットパーフェクトを「ほどほど」にしているときには、フェード操作が効きます。ボリュームバーの色を、そのフェード中の200msの間だけ(ビットパーフェクトではなくなるので)オレンジにするように設定することもできるのですが、作ってみたあとで、再生の開始/停止時に一瞬オレンジになるのを目撃しても気ぜわしいだけで何のメリットもないな、と思い、標準設定からは外しました。

    なるほど。表示の落ち着きも大事ですよね。
    個人的には、目に厳しい表示でなければ使ってみたい気がします。そういうの好きなんですよね(^^;

    聴感上すこし良く感じられたのは、ビット幅としてほぼデバイスの限界値に近いところで鳴っていたものが、余裕を持ったレンジで鳴るようになったからではないかと推測します。私も、日常は-3dB下げて、ReplayGainなどが効く範囲を広くとり、すこし余裕のある範囲で聴いています。

    方法としては、ゲインを下げて音量上げるのね、と思い(AAC以外の)FLACで[-6dB]にして聴いてみました。
    これは、少し変わり…ますでしょうか。

    このあたりはいろいろあって、結構面白いですね。

    #801

    Tiki
    キーマスター

    こんばんわ、Tikiです。

    もし、お気になるようでしたら、タイトル修正などお願いいたします。

    いえ 大丈夫です(たぶん(^^;)。

    TuneBrowserのクリップ検出とゲイン(ボリューム)の関係について、きちんとご説明したほうが良いですね。

    まずTuneBrowserでのクリップは、32bit float形式のデータで1より大きい(-1より小さい)値を言っています。現在、この形式でデコードしているのはAACとMP3です。

    デコード時にこのデータを検出すると、時刻とともにそれを記録します。GUIのほうは、その情報を使って、ピークメータを赤く表示します.

    いっぽう再生用のデータのほうは、デコード後、すべていちど32bit整数に変換します. 16bitも24bitも32bit floatもすべてです. そしてある一定のブロックごとにまとめ、必要に応じてリサンプリング処理を行い, デバイス転送待ちのバッファに投入します.

    デバイスへの転送は、デバイス側のタイミングに合わせて行います. 上で用意したバッファからブロックを取り出し, ここで 1. 全体ゲイン, 2. デバイス毎のプリアンプ, 3. ボリューム, 4. フェード, 5.リプレイゲイン の5つのボリューム要素のうち、ひとつでも設定する必要があれば時系列に変化させながら演算し、デバイスの要求するビット幅に合わせてバッファへ設定します.

    以上の動作からおわかりになるかと思いますが、全体ゲインを演算するときには、すでに32bit整数に正規化されているため、現在の動作では, 残念ながらクリップした情報はその前に失われてしまっていることになります.

    ゲイン/ボリュームの制御をデバイスに引き渡す直前に行っているのは, バッファに入れるまえだと, どうしてもディレイが発生し, ボリューム類の操作がとても気持ち悪いものになってしまうためです.

    このあたりの処理は以前から悩みどころのひとつで, いまもときどき, この処理を眺めてはもう一歩手を入れるべきか思い巡ったりしています (改善したらいいやんか、という話かもしれませんが、このあたりの処理に手を入れると、期間がかかるのと、プチノイズ系のような捕捉の難しい不具合を出してしまったりするので、どうしても慎重になります).

    方法としては、ゲインを下げて音量上げるのね、と思い(AAC以外の)FLACで[-6dB]にして聴いてみました。

    ゲインをすこし下げたほうがよいかも、というのは、あくまでも推測です (使い勝手は確実に良くなります). いろいろ試してみてくださいね (^^)

    #802

    saku
    参加者

    Tikiさん、こんばんわ。
    sakuです。

    TuneBrowserのクリップ検出とゲイン(ボリューム)の関係について、きちんとご説明したほうが良いですね。

    詳しい説明、ありがとうございます。
    いろいろ合点が行く内容で、興味深かったです。

    AACデコードに関しても、音質的に不満はありませんので、このままで良いのではないかなと思っています。

    ですので、以下は蛇足話となります(^^;
    もしも案を出すならと、考えてみました。

    1.正規化されたデータを、32bit intから64bit floatに変えてみる
     MP3とAACのクリップ対策にしては、大掛かりになってダメっぽい感じがします。メモリや負荷の増大の他、音質の変化がありそうです。

    2.MP3とAACのみ、五つのボリューム要素のうち頻繁に変えない「全体ゲイン、デバイス毎のプリアンプ、リプレイゲイン」の合計を2回に分けて適応する
      全体ゲイン+デバイス毎のプリアンプ+リプレイゲイン=[-8dB]とすると、[-3dB][-5dB]に分ける
      デコード後(32bit float)を[-3dB]してから正規化(32bit int)する
      デバイスに引き渡す直前に、ボリューム+フェード+[-5dB]を適応する

     結果が良くなるかどうか、賭けな感じです。前段ボリューム処理がちょっと嫌な予感がします。

    ここまできて、うーん、現状と比べてメリット薄いなと気づきました(^^;;
    下手の考え休むに似たり、となりました。

    #805

    Tiki
    キーマスター

    こんばんわ、Tikiです。

    1.正規化されたデータを、32bit intから64bit floatに変えてみる

    これは、わたしも考えたことがあるのですが、一方で、できるだけビットパーフェクトの状態を維持したいという考えもあって、float型の導入は現在はあまり考えていません。

    64bit floatとおっしゃっているのは、仮数部が32bit以上(52bit)あるので、32bit整数相当の精度は格納できるから、というご配慮と拝察しますが、ここはやはり、ビットシフト以外の演算は行わないようにして、オーディオ用ソフトとしての処理の透明性は確保しておきたいと思っています (これまで何度か、TuneBrowserの音質に関連して、この内部でのデータの取扱いについていろいろと疑義のご連絡をいただいたことがあります…(^^;)。

    それで、すこしちがうやり方を考えていました。

    全体ゲインについて、現行のようにデバイスへの引き渡し直前に適用する方法と、デコード直後の生データに適用する方法を、設定で選択できるようしたらどうか、ということです。

    後者の方法であれば、クリッピングは抑制できます。

    ただ、その場合、現在のように再生中に動的に切り替えられるようにはせず、全体ゲインを切り替える操作を行ったら、一時的に再生を停止して、ゲインの切り替え後、再生を再開する、というような動作にします。これは、ゲイン切替時にはすでにバッファ内にデータが溜まっており、それらに対して新しいゲインを遡って反映するのは煩雑であるということと、逆に反映しなかった場合に、たとえば-18dBから最大に切り替えると、相応のショック音が出てしまうことが好ましくない故です。

    4.2.2は先行版のまま停滞してしまっていますが(UWP版のほうのMicrosoftの審査が今回はなぜか時間がかかっています…)、そのさらに次のリリースに向けて、検討したいと思います。

    #830

    saku
    参加者

    Tikiさん、こんばんわ。
    sakuです。

    丁寧な返信ありがとうございます。

    ビットパーフェクト維持をめざした音質は、TuneBrowserの大きな魅力と思います。
    今後の機能拡張もあわせて、楽しみにしておりますね(^^。

    #903

    Tiki
    キーマスター

    sakuさん、こんばんわ、Tikiです.

    先日リリースした4.2.3の先行版で, 全体ゲインをデコード直後のデータに適用する設定を追加しています. 全体ゲインの選択肢のいちばん下に, 「デコーダに設定」という項目があり, 選択するとチェックマークがつきます.

    すこし迷ったのですが、「デコーダに設定」している場合, そのゲインはピークメーター横のボリュームバーには反映されません. ゲイン調整している部位が, TuneBrowserの内部ではまったくちがうところになるのでそのようにしているのですが, ひょっとしたら 作っている側の論理でしかないかもしれないので, もし混乱するようでしたら, その旨教えてください.

    よろしくお願いします.

    #912

    saku
    参加者

    Tikiさん、こんばんわ。

    sakuです。

    先日リリースした4.2.3の先行版で, 全体ゲインをデコード直後のデータに適用する設定を追加しています.

    こちらについても、迅速な対応ありがとうございます。
    希望した動作となっており、いろいろな曲を聞きなおしてみようかと思っています(^^。

    AACのクリッピングが無くなったことで、印象が変わった曲と、違和感が減ったように感じる曲があるように思いました。
    (昔買った曲もTuneBrowserで聞いてみたくなって、DRM解除のため、iTunes Matchに入ってみようかと思い始めています(^^;)

    「デコーダに設定」している場合, そのゲインはピークメーター横のボリュームバーには反映されません. ゲイン調整している部位が, TuneBrowserの内部ではまったくちがうところになるのでそのようにしているのですが

    了解です。私は少しいじって、違和感が無くなりました。
    一点あるとすれば、「デコーダに設定」を選択している場合、[-3dB]部のインジケーター表示を少し変えたほうが良いのではないかと感じました。
    (色を変えたり、小さなマークを入れたりなど…)

    以下は、小さな不具合報告です。

    上記のように、ツールチップの[Decoder]表示が間違っている状況が見られました。音量はインジケータ表示どおりで問題ありません。

    以上となります。

     

    #919

    Tiki
    キーマスター

    sakuさん、こんばんわ、Tikiです.

    夜分にさっそくご確認いただき、ありがとうございました。

    表示の件のご指摘、どうもありがとうございます。あらためて確認したところ、結構ケース抜けしていました。(^^; 次のリリースまでに改めます。

    ありがとうございました。

    #943

    saku
    参加者

    Tikiさん、こんばんわ。
    sakuです。

    4.2.3(1339)で、本件表示の件、問題ないことを確認できました。
    ありがとうございました。

    #950

    Tiki
    キーマスター

    sakuさん、こんばんわ、Tikiです.

    別項の件も含め、ご確認いただき、ありがとうございました。

     

12件の投稿を表示中 - 1 - 12件目 (全12件中)

トピック「AACなどのクリップ検出のすすめ」への新規返信追加は締め切られています。