読者になる天使と奇跡を見守る日記2019-03-10非可逆圧縮によってクリッピングが発生する問題とmp3gain(aacgain)十数年ずっとmp3・aacのエンコードをし続けているのに、元ソースがノンクリッピングでもエンコードした後の音源はクリップすることがあるという致命的な問題をまったく把握できていなかった。それに関して騒ぎ立てるような情報が自分のアンテナにインプットされてこなかった。この問題を把握するにあたって非常に参考になったリソースを紹介。iTuneshttps://www.apple.com/jp/itunes/mastered-for-itunes/docs/mastered_for_itunes-jp.pdfに記載されていることによれば、よく用いられるプロセスのひとつがオーバーサンプリングです。オリジナルデータを4倍のサンプルレートでアップサンプリングすると、結果的にアナログへ変換されるデジタル音声信号のクオリティが向上します。この時にオリジナルデータが0dbFSであれば、オーバーサンプリングによりクリッピングが発生する可能性があります。オリジナルのデータが既にクリッピングしていた場合、オーバーサンプリングによってさらに悪化させることになりかねません。これを避けるため、デジタルマスターには若干の余裕(1db程度)を持たせることが推奨されています。wavの段階で波形が0dBに貼りついているような音源はまずアウト、となるとCDから直接aacにリッピングするようなケースはほぼアウトですよね...。(aacgain)を使用していて、これで目標標準音量を音量を下げる方向に設定してやると、ノンクリッピングなファイルにすることはできます。それとも音がつぶれてしまった後で音量を下げているだけなのか?元ファイルの音量を1~2dB下げてからエンコーダにかけるのと同じような効果が、mp3gain(aacgain)で手軽に得られるのなら、今までこの問題を知らずに作り続けてきたmp3/aacファイルをそのまま使い続けられるのですが。この問題を解き明かしたネット記事が今のところ、見つからないのです。エンコード前の音量を下げておくという手順の追加は、根本的にクリッピングを解決できますがあまりにもインパクトが大きすぎるので、mp3/aacのスケールファクタで補正する手法で問題ないと安心したいのです。以下、まったく自信のない私の推論。ディザリングや丸め誤差の蓄積によって標本点の音量が元よりも大きくなって0dBを超えてしまった時、mp3/aacフォーマットは0dBよりも大きな音を記録できるのか。圧縮音源にはビット深度の概念がないようなので、それなら最大音量も定義できないように思えるけれども本当はどうなのか。mp3/aacフォーマットが0dBよりも大きな音を「記録できる」が正解なら、スケールファクタを書き換えることで台形潰れ(saturation)していない波形を復元することができるけれども、「記録できない」が正解なら、エンコード前の音量を下げておくしか解決策になり得ないことになります。生では一部しか聞けなかったのに。1はてなブログをはじめよう!behappy510さんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。