SRC_diff

サンプルレートコンバートによる音質劣化(音源あり)


以前にこちらで書いた記事ですが、音源のリンクが死んでいるのでmp3で音源を手軽に聞けて説明を新しくしたものを作成します。

サンプル音源とコンバータについて

今回はサンプリングコンバータ(SRC)での音の変化について実際の音源を紹介しながら書きたいと思います。

まずサンプルに使用した音源はこちら
http://www.projectsam.com/Products/Feature-Products/1403
Project SAM ORCHESTRAL ESSENTIALSの製品デモ(44.1k 24bit wav)です。

SRCはこちらのリンクでの事前調査により、Linear phaseとMinimum phaseが選べてなおかつ高性能かつ入手容易なSOX14.4を使用しました。
http://src.infinitewave.ca/

コマンドライン前提の設計なので一部の方以外にはあまり手軽じゃない設計なのですが、実際のソフトはこちらからDLできます。
http://sox.sourceforge.net/

比較音源の作成手順

原音の44.1k 24bitデータを用意

Linear Phase設定で非整数倍の192kに変換

Linear phaseとMinimum phase別々のファイルで44.1kにダウンコンバート

原音との差分をそれぞれについて取る

注意:SOXはデジタルフィルタのリップルによるクリップを防ぐため、毎処理ごとに-1dBされますので、差分を取るときに44.1k > 192k > 44.1kの計+2dBあげて音量差を調整しています。

実際の音源データ

原音そのまま

SRC変換2回後の音源 Linear phase処理

SRC変換2回後の音源 Linear phase処理 原音との差分

SRC変換2回後の音源 Minimum phase処理

SRC変換2回後の音源 Minimum phase処理 原音との差分

注意点として、耳で聞いて比較すると処理後の音源は音量が-2dBされているのでレンジが狭く感じるかもしれませんが、これは耳の等ラウドネス曲線による影響です。音量を揃えたら違いはほとんどありません。実際に差分データを聞いていただくとわかると思うのですが、Linear phase処理を経由した差分音源は2回のSRC処理を経ているにもかかわらず耳では無音にしか聞こえません。

FFTで見てみるとわかるのですが差分データを見ると-180dB付近のノイズフロア、フィルタの境界にある20kHz以上の残留情報しか存在しません。-160dBのレンジだと音声帯域は何もノイズが存在しないように見えます。このノイズフロアのレベルは24bit再生時の限界に近く、最新最高スペックのDACであっても未だに実現不可能な領域にあります。

SRC_diff

このことは2回のSRCをしてもそれだけ原音からの変化が少ないということを示しています。となると原音との違いを聞き取ることはほぼ不可能だということと思われます。SRC処理を経由したら原音からデータ的に変わるという話がありますがその違いは本当にわずかです。ということで原音データからの変化を避ける場合にはLinear phase処理を使えば良いということになります。

対してMinimum phaseは遮断帯域に近い高域ほど位相ズレが発生するために打ち消し合わず信号が残っていますので、それだけ原音から変化していることになります。こちらは耳で聴き比べてもわかる違いは存在すると思います。

個人的な感想

この検証を個人的にやったのはだいぶ前の話ですが、それまでSRCというと何か音が大きく劣化してしまうイメージがあったのですが、コンバータをきちんと選べば差分をとった際に全くと言っていいほど音が変化していないことは予想外に感じました。ネットでもSRC経由というとデータが変わる=音が変わるという印象が先に立っていることが多いように思うのですが実際にデータにて検証してみると驚くほど変化が無いことがわかりました。SRCによってデータは変わるが音は変わらないというのが実験結果です。

SRCについてはphilewebでもyamamoto2002さんがWindowsソフトでの検証を行なっていますが、こちら(http://community.phileweb.com/mypage/entry/2721/20120630/31560/)の図2をみると標準のMMEドライバの場合には相当SRCにて劣化することがわかります。

SRCというと拒否反応が出やすいイメージが何となくあるのですが(自分もそうだった為)、昔AC97等でPC上で48kに強制SRCされていたころなんかはこのような劣悪な編集を掛けられてたことは大きな理由になってそうです。あとはよくわからないがデジタルで音をいじっているということが、そもそも音を変えているのだからなんとなく悪い!という印象もありそうかなと思いました。

ですがこの検証をしてからは十分な特性のフィルタを使っているSRC、まともなアルゴリズムのSRCであれば原音からの変化は耳で聞き取れる限界を超えていることを知りました。SRCは劣化するとか音質が悪いってのはもう既に過去の話だと思います。現代では高精度なオーバーサンプリング処理を持つものならばSRCは24bitの理想に近い品質にあると言えそうです。

ソフト毎のSRCによる劣化の差

今回はSOXというソフトを使いましたが全てのSRCがこのように高精度ということではなく、ものによっては劣化が多いものもあります。こちらのリンク先に色々なソフトでの変換結果があります。中には結構はっきりした劣化するものがあるのは注意すべき点です。

http://src.infinitewave.ca/

SRC2

上がCubase、下がSOXです。

これをみて個人的に驚くのは普段良く使っているCubaseのSRCのクオリティが低いことです。これを知ってからCubaseでのレート変換は絶対にしないようにしています。最近音楽制作では48kの提出が流行っているので良く48kで納品してくる人がいますが、Innocent Keyではこのような劣化を嫌って全部Soxで44.1kにしてからCD用の音源を作っています。

このようにCubaseで変換したら劣化した成分が付加されてしまうので注意したほうが良いです。

こうなると48kで提出している皆さんがまともなSRCを使っているのかどうかは気になってくるところです。SRCの劣化による倍音を追加して音が太くなった!とかそういう音の変化を知った上で前向きに捉えている場合は別として、このような質の悪いSRCを何度も通過させて44.1kの音源を48kにして提出したり、そのあとCD用に44.1kにしりしてマスタリングしている現場の現状はどうなんだろうというのは個人的に思っている部分です。

映像系なら最終が48k系なので分かるんですけど、CD用なのに48kで納品してくる時はこのような問題もあるということは知った上で作業をしたほうが良いと感じています。このへんはオーディオとは全く関係のない話ですね。すみません。