最新の記事
タグ
PCオーディオ(32)
デジタルオーディオ(9) NF-4A(8) SoX Resampler(7) ジッタ(7) オーバーサンプリング(7) DORD 265(5) オーディオボード(5) 雑音(5) FilterMeister(4) カテゴリ
お気に入りブログ
最新の状況
10-11-17
PCオーディオについて印刷物もやっと追いつこうとして来てるようですね。書店で立ち読みしてみましたけど、ネットの方が情報が明らかに早いし的確ですねえ。audithallもおかげで助かってます。 以前の記事
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧
|
4. 実用例
続いてSoX Resamplerの使用例をいってみます。ユーザの持っている音源のサンプル周波数が44.1、48、88.2、96、176.4、192kHzと様々になっている中で、全てを176.4~192kHzのサンプル周波数でDACに通したい場合を考えてみましょう。 こんな時に便利なのが実はmod2版で、またfoobar 2000では同じ種類のDSPコンポーネントを任意の順番で繰り返し投入できる仕様になっているので非常に助かります。ここではmod2版を2つ連ねる方法でやってみます。 これに続くもう一つのmod2版の設定画面で、88.2kHzおよび96kHzの音源を2倍にオーバーサンプリングします。"Target samplerate"を"Upsample x 2"にし、"Resample ONLY frequencies"には"88200;96000"と書き込めば良いですね。Passbandを欲張る必然性が全くないのを理解した上で色々試してみると面白そうです。先ほどオーバーサンプリングした音源や元々の高サンプルレートの音源は素通りするので心配は要りません。 ちなみに44.1kHz~48kHzの音源に2倍オーバーサンプリングを2段重ねにするような設定はCPUパワーの無駄に過ぎず、音質の面からも良い事は一つもないので避けるべきです。また使用するDSPコンポーネントチェーンの最後にこれらの再サンプリングコンポーネントを配置するようにしましょう。 他にもオーバーサンプリングにおける音質を極限まで保証しておきたい人のためには、foobar 2000に音源のコンバータ機能が付いているのを利用してあらかじめオーバーサンプリングしたWAVファイルを準備しておく手もあります。コンバータの設定画面でDSPを有効にすると出力用に使っていたDSPコンポーネントがそのまま使えますから、これで好みの設定を選びます。そして"Output bit depth" = 出力ビット長の設定も忘れずにしておきしょう。 5. SoX Resamplerにこだわる理由 foobar 2000上で動作する再サンプリングDSPコンポーネントがいくつかある中で、audithallがSoX Resamplerを使い続けている理由は、元となっているSoXの行う再サンプリングが現代のDSP技術の水準を満たしているのが、既にネット上にあるデータで確認できているからです。これより更に質の高いオーバーサンプリングをおこなったところで人間にはその違いが聞こえませんからね。他の再サンプリングプロセッサで音の違いが聞こえたのなら、それはそのプロセッサでデータに何らかの脚色が施されてるからだとか、あるいはデータ以外が問題なんだとか、デジタルオーディオの基本に従って判断できるのは大事な事だと思いますよ。 また再サンプリングの理屈がちょっと理解できていれば、パラメータの選択にも迷うところがなくなって使いやすいように感じます。それとやはりフリーウェアなのも大きいですよね。 #
by audithall
| 2010-12-07 20:36
| PCオーディオ
PC上で音源をオーバーサンプリングした上で出力する意義とその限界がおおよそ理解できたところで、foobar 2000で使える再サンプリングコンポーネントの一つである、SoX Resamplerについての解説をしてみましょう。ずいぶん前にも一度触れた記憶がありますけど、audithallの理解が多少進んだので、もう少しましなお話ができそうな気がします。
0. 由来 SoX Resamplerコンポーネントは、sourceforge.net上で展開しているSoXプロジェクトで公開されている再サンプリング処理コードを基にして、ハンドル名lvqcl氏によってfoobar 2000のDSPコンポーネント用に編集~ビルド~公開されているものです。 1. コンポーネントのダウンロード この記事を訪れるほとんどの方は既にご存じだと思いますけど、再び改めて書いておきます。SoX Resamplerコンポーネントは現在までのところ(2010年12月時点)フリーウェアとしてDLと使用が許可されています。なおDLしたコンポーネントの組み込み方法の説明は割愛いたします。 A new resampler DSP for foobar2000 - Hydrogenaudio Forums http://www.hydrogenaudio.org/forums/index.php?showtopic=67373 ちなみに現時点で利用可能なSoX Resamplerコンポーネントのバージョンは大きく分けて3通りあります。 (1) SSE3まで対応するIntel CPU向けの0.5.5版 (2) AMD Athron64 CPU向けの0.5.5版 (3) SSE2まで対応するx86 CPU向けの0.5.4.4版 2. mod版について 最も採用される機会が多いと思われるIntel CPU向け0.5.5版の書庫には3通りのコンポーネントが入っています。いずれも同じ品質で再サンプリングをしてくれる一方で、(1)無条件で指定されたサンプル周波数に変換する通常版、(2)再サンプリングしないサンプル周波数を指示できるmod版、そして(3)再サンプリングする周波数を指示しなければならないmod2版、に別れています。 様々なサンプル周波数の音源を気に入った条件で再生したいと思えば、mod版/mod2版が何かと重宝します。続くSoX Resamplerの設定画面の解説はmod版に基づいて行いますね。 3. 設定画面 0.5.5版のResampler(SoX) modの設定画面を開くと次のような感じになります。 (1) Target samplerate : 再サンプリング周波数 (2) Quality : 再サンプリング品質 (3) DON'T resample frequencies : 再サンプリングしないサンプル周波数 (4) Passband: 通過帯域 (5) Allow aliasing : エイリアス許可 (6) Phase response : 位相応答 では各項目の解説をaudithallが把握している範囲内でしてみます。 (1) Target samplerate : 再サンプリング周波数 - コンボボックス = テキスト入力 + ドロップダウンリスト 読んだままに再サンプリング周波数を指定します。SoX Resamplerコンポーネントでは1つのコンポーネントで指定できる再サンプリング周波数は1つだけです。それだけではちょっと不便と思ってくれたのか、"Upsample x 4" = 4倍にアップサンプリング、"Downsample x 2" = 1/2にダウンサンプリングなどとある程度柔軟な対応も選択できます。 そして再サンプリングの対象となるサンプル周波数のデータは全て、ここで指定したサンプル周波数のデータに変換されます。元の周波数がより低ければアップサンプリングに、高ければダウンサンプリングになります。 この項目がコンボボックスになっているなんて、最近までaudithallは気づいていませんでした。その気になれば画像のように好き勝手なサンプリング周波数を手入力できます。ドロップダウンリストの項目には組み込まれませんけど、一応記憶はしてくれます。このやり方が本当に通るのかどうかはまだ試していません。しかし通ったところで規格外れのサンプリング周波数がDACを通るとは思えませんけどね。 (2) Quality : 再サンプリング品質 - ドロップダウンリスト 再サンプリングの質が不十分だと通過帯域内にエイリアスや演算誤差による余分な音声成分が生じます。SoX Resamplerにおいてこの項目が、補間アルゴリムの品質を指すのかそれともLPFの品質なのかは解説されてないので把握できてなくてすみません。それらのおまけが生じない"very high"しか使わないのでaudithallは頭も使ってないです。 (3) DON'T resample frequencies : 再サンプリングしないサンプル周波数 - テキスト入力 サンプル周波数をここに書き込むと、このコンポーネントはそのサンプル周波数を持つ音声データに一切手を着けずに素通りさせます。素通りさせたいサンプル周波数が複数ある時は、セミコロンで区切って連ねて書く事ができます。例えば、Target samplerateをUpsample x 2にしてここに"88200;96000"(書き込む際には引用符はなしで)を指定しておくと、44.1kHzや48kHzの音源は2倍にオーバーサンプリングされ、88.2kHzや96kHzの音源はそのままでこのコンポーネントを通過します。 (4) Passband: 通過帯域 - スライダ 再サンプリングの処理によって余計な音声を付け加えるのは基本的に許されないため、SoX Resamplerが用いるLPFの阻止帯域は、サンプル周波数についてオリジナルか再サンプリング後かの、どちらか低い方のナイキスト周波数に固定されています。そしてその阻止帯域に対して何パーセントを通過帯域にするのかをここで指定します。 通過帯域を少なめに取るほどに演算負荷が減り、リンギングも短くなって聞こえる可能性も減っていきます。逆に高めに取ると演算負荷が増加すると同時にリンギングが聞こえやすくなると言われています。audithallはCD-DAを96%でやってましたけど、SoX ResamplerのLPFの性能を考えれば、91%とか低めの方が良いのかもしれませんね。 (5) Allow aliasing : エイリアス許可 - チェックボックス これにチェックを入れると、阻止帯域での音圧の抑制が緩くなってナイキスト周波数以上の音声成分が出力に漏れるようになります。ダウンサンプリングの場合にはこれはナイキスト周波数で折り返されてエイリアス歪みとなります。リンギングとCPU負荷を軽減するためのオプションらしいですけど、普通は要らないと思います。 (6) Phase response : 位相応答 - スライダ 群遅延歪みを来さない実装が可能なのがデジタルLPFの強みですけど、それに固執するとリンギングが時間軸について前後対称に発生します。前にできると言う事は例えばオリジナルの音声のアタックの手前に、その前触れとなる音が聞こえ始めるのを意味しています。これはプリエコーとも呼ばれ、人間にとっては不自然かつ相当不快なものです。 そこでこのリンギングについてSoX Resamplerでは、時間軸の前側に何パーセント残すのかを指定できるようになっています。デフォルトは前後対称の50%で、この時群遅延歪みは聞こえず即ち通過帯域の位相応答は"linear"になります。そこからスライダーを左に動かしていけばプリエコーの成分は短く聞こえにくくなり、その分だけエコー成分が長くなっていきます。それと同時に群遅延歪みも増加してアナログLPFの性質に近づいていきます。ただしアナログLPFのエミュレータではないので、このスライダを0%にしてもアナログLPFの特性をそのまま再現できるわけではありません。 #
by audithall
| 2010-12-07 00:44
| PCオーディオ
26. ソフトウェアでのオーバーサンプリングは必要か
それでは実際のDAC ICの行っているオーバーサンプリングの質はどうなっているのでしょうか。ここでは例としてaudithallが使っているGrace DESIGNのm902に搭載されているとされる、TI社のPCM1730の仕様書から情報を拾ってみます。 すると阻止帯域がオリジナルのサンプリング周波数を1fsとして、0.546fsとナイキスト周波数よりも高く採られているのがまず目に止まります。0.546 x 44.1 ~= 24.1kHzであって、この数値はCD-DAフォーマットをそのままにDA変換した際の、イメージ信号の下限の周波数と一致しています。もしオーバーサンプリングなしでこのLPFに通したのであれば、ナイキスト周波数からそこまでの音域には信号成分が含まれてないはずなので問題ないですけど、今回はオーバーサンプリングのためのLPFなので決して看過できません。 しかも阻止帯域とされながら0.546fsでの音圧は-75dBとCD-DAの再構成フィルタで必要とされていた-96dBにも達しておらず、24ビットと言わず16ビット長の入力信号を処理するLPFとしても十分な性能があるとは到底思えません。このLPFで抑えられなかった成分は前の記事に書いた、(1)元の音声成分以外に新たに付け加わった音声となります。 CD-DAの場合にはこの音声は20kHz以上に分布するわけですから、出力するアナログ音声信号についての性能を機器で測定する際に、帯域を20kHzまでに制限してしまうと直接には検出されなくなります。もちろん人間にもこの音声が直接聞こえたりはしません。 しかしながら実際のオーディオシステムでは、DACコンポーネントから信号が出た後はアナログオーディオの世界であって、早晩オリジナルの音声と混変調を来すようになります。そして付け加わった音声はオリジナルの音声と完全に相関しているのでより聞こえやすい歪みとなって現れます。その影響は付け加わる音声信号の帯域がより低く、また振幅が大きいほどに大きくなると予想されます。 以上のように半端なLPF性能しかもたないDAC ICにオーバーサンプリングを任せるのは、音質上の問題となる可能性が高いと考えられます。このような状況を緩和したければDAC ICのLPFによる影響を抑える手段を講じるべきです。そこであくまでも可能性の一つとして有用と考えられるのが、あらかじめ高サンプル周波数のデータを準備しておく事で、DAC ICでのオーバーサンプリングの演算量を減らすと共に、付け加えられる音声信号成分の帯域を高くして可聴音域からなるだけ遠ざける手法です。 そしてPCのソフトウェアでおこなうオーバーサンプリングもこの手法の一つとなります。ただしDACに入力された音声データをどこまで正確にあるいは不正確にオーバーサンプリングするのかはDACによって決定されるので、PC側でおこなうオーバーサンプリングの効果がどこまであるのかは残念ながらやってみないと分かりません。その効果は主に高音の音質と空間情報の再現性に現れると予想されますけど、DAC ICの種類によって様々な結果になるでしょう。 ちなみに同じマスタリングの音源について、CD-DAと高サンプル周波数あるいは24ビットフォーマットとの音質の違いは、十分な性能を持つマルチビットΔΣDACを適切に実装する限りにおいては、人間の聴覚に限界があるせいでピークが120dBSPLを越える極端な大音量でなければ聞き取れないはずです。 そして通常の音圧で再生してそれらのフォーマットの間で音質の違いが聞こえるとすれば、それはフォーマットの優劣ではなく、(1)用いているDACの性能の不十分さ、(2)DAC以降のアナログステージでの混変調歪み、のいずれかと考えられ、ほとんどの場合は両者を同時に聞いているはずです。 一応のまとめ PC側でのオーバーサンプリングが十分な品質で行われる事を前提にして、PC上のオーバーサンプリングによってマルチビットΔΣDACの出力するアナログ音声信号が変化するならば、それはDAC ICのおこなうオーバーサンプリング処理の正確さが不十分であるのを意味しています。そのような場合にはソフトウェアでのオーバーサンプリングは、使用している特定のDACについて人間に聞こえたままの効果があると言えます。 これに対してマルチビットΔΣDACの性能が現代のデジタルオーディオ技術の水準を満たすものであれば、その上流側で音源に施すオーバーサンプリングは、上記と同じ前提ではことごとく無意味になります。その時にはCD-DA音源を24/192あるいはそれ以上にオーバーサンプリングしたところで、人間には全く同じ音に聞こえるはずです。 #
by audithall
| 2010-12-04 15:51
| 聞こえる音・聞こえない音
|
ファン申請 |
||