デジタルオーディオデータがクリッピングしているかどうかを判断するアルゴリズム?
-
09-06-2019 - |
質問
デジタルオーディオデータが正しいかどうかを判断するためのアルゴリズムまたはヒューリスティックはありますか? クリッピング?
解決
最大値または最小値を受け取った場合は、定義上、クリッピングとなります。これらの値は、特定の値だけでなくそれを超えるすべての値も表すため、境界外検出器として最適に使用されます。
-アダム
他のヒント
簡単な答えは、サンプルに最大値または最小値 (16 ビット サンプルの場合はそれぞれ -32768 と +32767) がある場合、そのサンプルはクリッピングしていると考えることができるということです。この値は実際には正しい値である可能性があるため、これは厳密には当てはまりませんが、+32767 が本当に +33000 であるべきかどうかを判断する方法はありません。
より複雑な答えについては、次のようになります。サンプルカウントクリッピング検出器のようなものがありますが、クリッピングとみなされるには、x 個の連続したサンプルが最大/最小値にある必要があります (x は 7 までの場合があります)。ここでの理論は、ほんの数サンプルのクリッピングは聞こえないということです。
とはいえ、最大値を下回る (および最小を超える) 値でもクリップがかなり聞こえるオーディオ機器があります。このため、一般的なアドバイスは、0.0 dB ではなく -0.3 dB でピークになるように音楽をマスタリングすることです。そのレベルを超えるサンプルはクリッピングしていると考えることをお勧めします。それはすべて、何に必要かによって異なります。
デジタル オーディオ データの場合、「クリッピング」という用語は「最大振幅」以外にはあまり意味を持ちません。アナログの世界では、オーディオ データは通常「クリッピング レジスタ」を含むハードウェアから取得され、クリッピングされない最大振幅の可能性が得られます。
デジタル オーディオに適した方法は、出力 D/A の制限に基づいて何らかのしきい値を設定することです。VOIP を実行している場合は、ハンドセットや携帯電話に特有のしきい値を選択し、デジタル オーディオがそれを超えると「クリッピング」と呼びます。ハイエンドのホーム シアター システムに出力している場合、おそらく「クリッピング」は発生しません。
素敵な実装もいくつかあることに気づきました。
たとえば、 大胆さ:
分析する → クリッピングを検索…
アダムが言ったこと。一定期間にわたる最大振幅値を検出し、それらにフラグを立てるだけのロジックを追加することもできますが、本質的には、信号が最大振幅に達するかどうか、またはいつ最大振幅に達するかを判断することです。