foobar2000八面六臂

15/03/08初稿

 DSD再生につき、DAC側がどんな動作しているのかはおおよそ解りました。(少なくともUDA-1では)DACユニットは受けた1bitストリームを“ありのままに”アナログ化しているようです(UDA-1ではLPFとしてPCM1795のアナログFIRフィルタを通すだけ)。
 なら、PCMをDSD変換する時、PC側はどんな動作をどう設定すればよいのでしょうか。
 DSDネイティブ再生やPCM→DSDリアルタイム変換再生が可能で、いろんな設定が解放されているプレーヤソフトとして≪foobar2000≫について考えてみようと思います。

 ≪foobar2000≫のいろんなバージョンは以下の通りです。

foobarバージョンV


■≪foobar2000≫の「PCM to DSD」機能を調べる

・「PCM to DSD Method」とは何か
 いろいろ試す前に、まず用語の意味について確認しておきたいと思います。

 SDMは「Sigma-Delta Modulation」の略でしょう。

 FP32は普通に「32bit FloatingPoint」だと思います。
 readmeに

05/06/13:Version 0.6.4 - PCM to DSD multithreading, floating point SDMs.

とありますし、以下ページにもそういう記述ありますので。
https://diyaudioheaven.wordpress.com/digital/pc-software/foobar-2000-for-dummies-part-2/

 また、64bitのチェックをハズしても両方選べますから無印が64bitフロートってこともないでしょう。
 つまり、無印は言ってみれば“INT32”だと思います。
 なお、同じTypeなら無印よりFP32の方がCPU負荷(ASIOhost64のCPU使用率)は低いです。

 ということで、無印系ではなくFP32系を使うことにします。

・タイプ違い
 ということを踏まえて、では、Typeを変えると何がどう変わるのでしょうか。
 おそらくDSDエンコーディングパラメータ(アルゴリズム?)の違いと推察されますが、普通に試聴してみてもなかなか判りませんよね。
 しかしスペクトルキャプチャしてみると一目瞭然でした。採取条件は以下の通りです。

・441Hz/-6dBサイン波の24176ファイル再生
 純音ですので88.2kHzまで余計なスペクトルはなく、イメージングノイズも「176kHz-441Hz」まで発生しないハズで、さらにそのあたりはポストフィルタでカットされてるので事実上倍音やイメージングノイズがないスペクトルになるハズ
・アップサンプリングなどの処理はナシ
 上記の通りなので余計な処理はなくていいハズ
・ノイズシェイピングの差が一番判りやすいであろうDSD64にて
・Z68+Core i7-2600K自作機のUSB3.0拡張カードPP2U-E経由UDA-1にて
・アナログキャプチャ環境は基音と倍音を見て聞いた時と同じ(録音レベルのみ50)

 参考までにCPU負荷を添えておきます。
 2600Kを2コア・1.6GHzに固定かつTBとHTをDisableにしてパフォーマンスを下げ、DSD256で負荷を上げた状態でのASIOhost64の値をタスクマネージャ読みしたものですので、フラフラしてる中でのざっくり値ですけれど。


1.TypeA (FP32) (アナログキャプチャ)  約28%

TypeA:DSD64


2.TypeB (FP32) (アナログキャプチャ)  約30%

TypeB:DSD64


3.TypeC (FP32) (アナログキャプチャ)  約23%

TypeC:DSD64


4.TypeD (FP32) (アナログキャプチャ)  約32%

TypeD:DSD64


・処理負荷とノイズシェイプ結果とのバランス型の A
・とにかくノイズシェイピングによるノイズの最大値を抑える B (Dよりノイズエネルギーの帯域は低くなる)
・とにかくノイズエネルギーを極力高域に持っていく D (Bより最大値は大きくなる)

ってところでしょうか。実際の音質の善し悪しは一概には言えませんが、TypeBかDがよさそうな気がします。

 TypeCの意図はヨクワカリマセン(笑)。負荷を下げるにしても効果があるほどとは思えませんし。理由は解りませんがかなりノイジーですし(添付版は中でも穏やかな瞬間を選んだものです)。

 なお、無印もFP32と原則同じ特性のようです。若干異なるようにも見えましたが意図したものではないと思います。


■≪foobar2000≫ VS ≪JRiver MediaCenter≫

 ところで、リアルタイムPCM→DSD変換できるプレーヤとしては≪JRiver MediaCenter≫というソフトもありますよね。有料ですけれど。よく≪foobar2000≫と音質比較されているみたいですので、特性にどんな違いがあるのか気になったので調べてみました。有料ソフトの有意性や如何に?
 以下、JRMC20にて。

・DSD変換Method
 1xDSD(DSD64)、2xDSD(DSD128)、4xDSD(DSD256)、8xDSD(DSD512)が選択できます(UDA-1ではDSD512は通りません)。ちなみに「ビットストリーミング」はHDMI,S/PDIF,DSD,カスタムが選べますが「無し(推奨)」で変換再生もネイティブ再生も問題ありません。何の設定なんでしょうかね?

JRMC20:DSPスタジオ2

 それぞれのノイズシェイピング状態を見てみます。


1.DSD64(アナログキャプチャ)

サイン441-6dBDSD64:JR:PP2U-E


2.DSD128(アナログキャプチャ)

サイン441-6dBDSD128:JR:PP2U-E


3.DSD256(アナログキャプチャ)

サイン441-6dBDSD256:JR:PP2U-E


 最大値は高めでもその発生をなるべく高域に追いやる変換タイプのようです。≪foobar2000≫で言うとTypeDの方向性みたいですが、20kHzあたりを見ると差がありますね。

・DSD変換とアップサンプリング
 PCM→DSD変換再生を選択するとアップサンプリングは選択できなくなります。通常楽曲のスペクトルを見るとイメージングノイズがありませんので、DSD変換の場合は自動的にアップサンプリングをかけているようです。DACチップ内の動作を再現しているのですね。「4xDSD(DSD256)」でもイメージングノイズは見えませんので、4倍以上のOSDF処理をしてからDSD変換しているようです。
 ですので、≪foobar2000≫と≪JRiverMediaCenter≫のDSD変換音質を比較するなら、fb2k側にアップサンプリング設定しないと同条件にならないです。「DSD変換」を有効にしただけだとフィルタなし=イメージングノイズまみれと比較することになってしまいますので。

 アップサンプリングかけて比較したところ、強いて言えばJRMC20の方が厚みやエネルギーを感じるでしょうか。もちろんfb2kの設定にも依りますが。

 ということで、JRMC20では“なんちゃってNOS-DAC”的な使い方はできないということですが、リクツを考えるとDSD変換するなら強制的にアップサンプリングフィルタ入れるのはスジでしょうね。

 ちなみに、2xDSDと4xDSDではバッファリングをデフォルトより大きくとらないと音跳びしてました。また、同じDSD倍率でもfb2kよりCPU負荷は高めで、マルチスレッドではありますが複数コアにまんべんなくではなく1コアに集中処理させてるようでした。ですのでfb2kよりCPUパフォーマンス要求は高くなります。もしかしてそのあたりも音質チューニング?


■≪foobar2000≫ VS ≪AudioGate≫

 PCM→DSD変換できるソフトとしては≪AudioGate≫も有名ですよね。音質も評判いいです。
 KORG製DACユニットじゃないとリアルタイム再生は出来ませんけれどファイル変換(エクスポート)はできますから、dsfファイル化して≪foobar2000≫でネイティブDSD再生したスペクトル採取しました。
 TwitterWareだったバージョン2.3.2にて。

 みせてもらおうか、業務用DSD機器開発メーカの実力とやらを!

・DSD変換Method
 2.8MHz(DSD64)と5.6MHz(DSD128)のみ選択できます。


1.DSD64(アナログキャプチャ)

AudioGate:DSD64


2.DSD128(アナログキャプチャ)

AudioGate:DSD128


 うおお、これはさすがと言うべきでしょうか。シェイピングしたノイズの抑えっぷりは見事、これは音良さそうだなぁと思わせるスペクトルですね。DACユニット選ばなければ(*)≪AudioGate3≫買うのになぁ(苦笑)。

 こちらも同じく、DSD変換すると自動的にアップサンプリングかかっています。普通の楽曲のスペクトル見たところイメージングノイズは認められませんでしたので、4倍以上と推定されます。


*:KORG社の説明は以下の通り。有償版でもDSD再生に他社製DACは使えないと読める。

※:AudioGate 3 を使ってDSDネイティブ再生をするにはDS-DACシリーズが必要となります。他社のDACではサンプリング周波数を2.8Hz/5.6MHzには設定することができないことをご了承頂きました上で、ライセンスをご購入くださいますようお願い申し上げます。
出典:http://www.korg.com/jp/news/2014/0530/


 以上、Type設定の参考にしようと思います。

 なお、DSD変換の違いをノイズシェイピング状態で見ているのは私にはとりあえずそれしか手がないからで(笑)、実際のパラメータやアルゴリズムの違いは解っていません。

 ところで、PCM→DSD変換を「アップサンプリング」と呼ぶことがあるようですが、どうなんでショ?
 確かにサンプリング周波数は格段に上がってますがビット深度は劇的に減少してますし、そもそもPCMとDSDは基本原理からして違うのですから、当BlogではPCM→DSD変換は「アップサンプリング」とは呼ばないようにしています。


■必須のアップサンプリングを考える

 先の考察で、「≪foobar2000≫でDSD変換するならアップサンプリングしておかないとイメージングノイズまみれになる」ことが解りました。ですので、組み合わせるアップサンプラを選びその設定を決める必要があります。

 といっても、2496以上などの場合はこれまでみてきた通り「イメージングノイズを許容してフィルタによる変形を防ぐ」考え方もあるでしょうから、その場合は不要です。が、44.1kHzや48kHz音源の場合はイメージングノイズは可聴域のすぐ隣にありますから一般的には必要でしょう。もちろん、それでもフィルタヤダって考え方もアリですし、「DSD64だとどうせシェイピングしたノイズまみれぢゃん」と言われればそれまでですけれど(笑)。

 fb2k用のリサンプラとしては≪SoX Resampler≫プラグインが代表的だと思いますが、最近登場した≪Resampler-V≫なるプラグインは設定項目が多彩で視覚的にも解りやすくなっています。
 本稿では“V”を使ってみようと思います。

・リ・サンプラーV!
 アルゴリズムはSoXかSSRCを使っており、どちらか選べるようになっています。それぞれのプラグインが無くても動作しましたので≪Resampler-V≫が内蔵しているようです。とりあえずこれまで使っていたSoXの方でちょっと弄ってみます。
 設定項目は以下の通りです。

・PassBand・・・LPFの減衰開始周波数でしょう
・StopBand・・・LPFの遮断周波数でしょう
・StopBandAttenuation・・・遮断帯域での減衰レベルでしょう
                SoXなら-96dB~-198dB、SSRCだと-240dBまで調整可です
・PhaseResponse・・・フィルタ特性と理解しておけばよいかと

 ≪SoX Resampler≫では、「aliasing/imaging」をAllowするとStopbandが高周波数に移動するようです。比率で設定しているためPassbandも一緒に移動しますので、Vではそれを独立させたというカンジですね。
 逆にPhaseResponseはスライダじゃなくて3種類の選択にしたようです。それはそれでいいかも。
 Attenuation設定があるのはいいですね。減衰特性を強くすると演算対象のサンプルが増えてエコーが拡散するデメリットがあるようですから、あまり欲張らない方がいいと思いますので。

 ちょっと弄っていたら面白い仕掛け(?)を発見しました。PassBandとStopBandの組み合わせでメッセージが出るんですね。Gentleは「ゆるゆる」、Mediumは「フツー」、Steepは「きっつぅ」かな? 作者さんの推奨値なのでしょうか。
 以下発見した組み合わせをメモしておきます。

 StopBand/PassBand
   100.0% 98.2%(Steepest) -144dB以下にしないと出てこない
   100.2% 83.4%(Medium)  StopBand最低(100%だとメッセージはない)
   100.3% 93.4%(steep)
   101.7% 68.0%(Gentle)
   102.0% 95.1%(steep)
   102.7% 95.8%(steep)
   103.0% 96.1%(Steep)
   106.4% 89.6%(Medium)
   106.8% 90.0%(Medium)
   108.8% 92.0%(Medium)
   110.5% 93.7%(Medium)
   111.9% 95.1%(Mesdium)
   116.1% 82.4%(Gentle)
   115.0% 98.2%(Medium)

 さて、どんな設定がいいのでしょう? 最終的には“聴いて決める”のはアタリマエとしても、どんな設定も出来てしまいますから、何か“アタリ”は欲しいところです。

 ちょっと考えて、「市販ソフトの特性をパクる参考にさせていただく」のはどうだろうかと(笑)。
 DSD変換の前段のLPFも同じ特性と仮定して、PCM再生におけるアップサンプリングスペクトルを採取してみます。


■商用ソフトのアップサンプリング特性

 「SoundBlaster DigitalMusic PremiumHD」のS/PDIFループバック機能を使ってデジタルドメインで比較してみます。DSD再生ではデジタルダイレクト録音できませんが、PCMならお手の物、デジタルで録らない手はありません。
 SB-DM-PHDの最大スペックが2496ですので、2448ファイルの2倍アンプサンプリングを行います。
 再生ファイルは≪WaveGene 1.50≫で生成した「ホワイトノイズ-3dB」です。人工波形ですのでLPFかかってません(ナイキストのヘソはありません)し、ホワイトノイズですのでナイキスト周波数以降もホワイトノイズのイメージングノイズが連続しますから、LPF特性がそのまま現れると考えたためです。
 APIは、JRMC20はWASAPI排他モードにて(ボリウム効きませんしWMPが同時動作できませんので排他でしょう)。≪AudioGate≫のWASAPIは排他じゃない(ボリウム効くしWMP同時動作します)ようなのでASIOにて。

・≪JRiver MediaCenter20≫

ホワイトノイズ2448-3dB x2:JRMC20


・≪AudioGate 2.3.2≫ 高品位
 ちなみに「リアルタイム変換:低品位」だと、どうもWindowsSoundEngineのリサンプラを使ってるような? DSD変換エクスポートの場合はノンリアルタイムでもあるので高品位だと思いますが…

ホワイトノイズ2448-3dB:AudioGateでx2


 ≪AudioGate≫はDSD変換の時のような驚きはありませんでした(笑)。StopBandはナイキストをオーバーしてる=イメージングノイズを許容するタイプのようです。
 JRMC20はずいぶんと急峻なLPFかけてるんですね。ナイキスト周波数たる24kHzで“真っ逆さま”です。念のためインパルス応答も見てみましたが一般的なプリ・ポスト対象型(Linear型)のようです。フィルタ特性には自信たっぷりってことでしょうか。

・≪Resampler-V≫設定を詰める
 fb2kのSoXアルゴリズムも劣らないと仮定し、JRMC20の特性とニアリーになる≪Resampler-V≫設定を詰めてみました。

JRMC20と近似設定(WN2448-3dBx2にて)

 スペクトルはこんなカンジです。x2だけのものなので、厳密には上記商用ソフトと条件異なりますけれど。

ホワイトノイズ2448-3dB:Resampler-V近似設定でx2

 PassBandはこれ以上キツくできないので落ち始めはちょっと丸くなってます。
 Attenuationは、-96dBだと減衰が安定しないように見えますが(VのGUI表示上の問題かも知れませんが)、-120dBもあれば充分っぽいです。

 とりあえずエコー状態を1200Hz-3dBのノコギリ波で比較してみましたが、おおむね同じに見えました。

 近似設定になってるかどうか本当のところは解りませんしもちろん似せるほどいいとも思っていませんが、参考にはなるかなと思います。少なくとも闇雲にチャレンジするよりいいかなと。

 なお、例えばTI製DACチップでのPCM再生では、ΔΣブロックの前で8倍オーバーサンプリングデジタルフィルタ処理されています。
 よって、極力DACチップ動作に近づけるコンセプトでいくなら、少なくとももう一段2倍アップサンプリングを入れて合計4倍とし、2fsイメージングノイズ除去くらいまでは行う必要があるでしょう。
 ただ、二段目以降の設定は「一番ゆるゆる」でいいのではと思っています。


 これで、DACユニット側の動作に加えてPC側ソフトの処理特性もおおよそ解りました。
 DSD128かDSD256、TypeB(FP32)かTypeD(FP32)、アップサンプリングは上記設定を中心に、いろいろ聴きこんでいこうと思っています。

 しょわしょわノイズが気になりますけれど。


メインメニューへ

テーマ : オーディオ
ジャンル : 趣味・実用

UDA-1を活かす

15/02/21初稿

 DSDネイティブ再生可能なDACユニットにPCMをDSD変換して渡せば、PCMデータでもOSDF(*)をバイパスして鳴らすことが可能だと解りました。

*:OSDF=オーバーサンプリングデジタルフィルタ(以下同)

 いろいろ活用できそうな用法ですので、その際のDAC動作について確認しておこうと思います。
 所有しているSONY製USB-DACアンプUDA-1にて行いますが、DSDネイティブ再生可能なDACユニット(*)なら同じ動作する可能性は高いと思います。

*:「DSDストリームをそのままアナログ化するタイプのDACチップ」に「無加工データを送り込んでいる」製品を指します。DSDをPCM変換して処理するDACチップ搭載機は当然含みませんし、DACチップの前に独自のフィルタやSRCなど搭載している製品(それをオフできない製品)も含みません。




■UDA-1でPCM1795の1bitストリーム処理を調べる

 “なんちゃってNOS-DAC”とっても楽しそうですが、OSDFだけでなくDACチップのΔΣ処理までPCで行ってしまうことになります。
 その際、渡された1bitストリームデータはDACユニットの中でどのようにDA変換されているのでしょうか?

 UDA-1では、カタログに「アナログFIRフィルタ」とあります。
 おそらく「アドバンスドカレントセグメントブロック」がDSD時には「アナログFIRフィルタ」になるというTI資料記述通り、なのだと思いますが、DACユニットとしてチップ前段で何かしている可能性もあります。
 ので、「ΔΣ型DACチップ搭載のDACユニット」として、PCM再生の事情も合わせ以下のような点を確認したいと思います。

・DSDモードでは入力された1bitストリームを無加工で再生しているのか
・PCMモードでは何ヘルツの1bitストリームにΔΣ変換されているのか(TI推奨のDSD128?)
・それはPCMソースのサンプリング周波数で変わるのか固定なのか(TI推奨の固定?)
・結局、アナログポストフィルタはどうなっているか
・ところで48kHz系のDSDデータの倍率は整数倍か・そのまま受けているのか

 ということで、2444,2488,24176ファイルのPCM再生と、DSD64,DSD128,DSD256再生をアナログキャプチャして比較してみました。

・再生録音・・・≪foobar2000≫のバージョンやAD変換環境は「基音と倍音」記事と同じ(録音レベルのみ50)
・再生音声・・・441Hz/-6dBのサイン波
         44.1kHz系にしたのは、通常DSD**といった数字は44.1kHzの倍数を示していることが多いため
・API・・・DSD再生と比較するのでPCM再生時もAPIはASIOで統一
・DSD変換Method・・・とりあえず「SDM TypeA(FP32)」

 受信周波数はUDA-1のLEDで確認しながら実施しました。
 ちなみに、最初無音ファイルでやってみたのですが、PCM→DSD変換アルゴリズムが「そんなデータしらね」状態になるのか、盛大なノイズ発生をみたのでサイン波にした次第。サイン波なら倍音もありませんし。

・DSDデータは素直にDA変換されているか
 まず、サイン波24176を≪foobar2000≫でDSD64、DSD128、DSD256変換再生した場合です(アップサンプリングはナシ)。UDA-1にとってはDSDネイティブ再生モードになります。


1.DSD64 (アナログキャプチャ)

サイン441-6dBDSD64


2.DSD128 (アナログキャプチャ)

サイン441-6dBDSD128


3.DSD256 (アナログキャプチャ)

サイン441-6dBDSD256


 1bitストリームはソースの周波数のまま処理されている(例えばDSD64をDSD256に変換したりはしていない)と見ていいでしょう。「アナログFIRフィルタ」にそのまま突っ込まれているようですね。

・PCMデータはΔΣブロックで何ヘルツの1bitストリームに変換されているか
 続いてPCM3種のスペクトルを見ます。


1.2444 (アナログキャプチャ)

サイン441-6dB2444


2.2488 (アナログキャプチャ)

サイン441-6dB2488


3.24176 (アナログキャプチャ)

サイン441-6dB24176


 ΔΣブロックでDSD変換された後の周波数特性は原則同じとみていいでしょう。DSD64,128,256は上記の通りもっと明らかに違いますので。
 つまり、

・ΔΣブロックにおける変換結果としての1bitストリーム周波数はPCMソース周波数には依存しない
・高域のノイズシェイプ状態を比較すると、UDA-1はどうもDSD256と同等性能レベルの変換(*)している模様
・確かに「ポストフィルタの特性はPCM周波数に関係なく同じ」と見てよさそう

 176.4kHzがちょっとノイジーに見えるのはUDA-1が忙しいからでしょうか。8kHzの高調波ノイズはおそらくUSB Audio Class2のフレーム周期125usでしょう。88.2kHzだけややフラットに見えるのは面白いですね。

*:データシート上ではPCM時のΔΣ変換はDSD128までしか設定がないので、あくまでもノイズシェイピング状態からみた“相当”です。DSDデータはそのままアナログFIRフィルタに入りますが、PCMデータのΔΣ変換&アナログ化はTI社自慢のアドバンスド・カレント・セグメント方式であり、単純な1bitストリームではないためです。後述します。

・48kHz系のDSD倍率は整数か
 UDA-1では48kHz系PCMのDSD256変換も通っちゃいます。この時≪foobar2000≫のPCM→DSD変換では、どんな処理されてるのでしょう? 12.288MHzになってるのでしょうか? それとも44.1kHz系のDSD256たる11.2896MHzに非整数倍変換?(あんまり可能性はないと思えますが…)
 また、UDA-1ではそれをそのまま再生しているのでしょうか?
 それを確かめるため、2444と2448のサイン波(それぞれ441Hz,480Hz/-6dB)をDSD64変換し、ノイズシェイプ状態を比較してみました。確実と言える方法ではありませんけれど。
 DSD64にしたのは、ノイズシェイプ状態が一番ハデなので、差があるなら一番判りやすいのではと思ったためです。


1.2444のDSD64 (アナログキャプチャ)

2444DSD64.png


2.2448のDSD64 (アナログキャプチャ)

2448DSD64.png


 微妙ですが、2448の方がノイズの山が若干高域側にシフトしているように見えます。少なくとも同じではなさそうです。
 ということは、≪foobar2000≫のDSD変換は48kHz系でもズバリ整数倍にしており、PCM1795もそのまま受け付けているようです。48kHz系のDSD256は仕様オーバーですね… ってだからもともと仕様外だって(笑)。

・ソースによるノイズシェイピングに違いはあるか&DACはそれを再現しているか
 ついでに、もともと1bitストリームであるDSDソースのDSDネイティブ再生に違いがあるのかも見てみました。
 もし違いがあることが確認できるなら、PCM1795はソースのビットストリームを忠実にアナログ化している追加事例になると思います。加えて、「ソースによってDSDエンコーディングの特性は違う」ということにもなります。
 違いがなかった場合は、どんなソースも同じシェイピング状態になのか、UDA-1で何らかの変換されて同じになっているのかは判別できませんので、特に役に立たないサンプリングですけれど(笑)。


1.とある邦楽 (アナログキャプチャ)

DSD64邦楽


2.とある洋楽 (アナログキャプチャ)

DSD64洋楽

 よかった、違いがありました(笑)。


■デジタルフィルタリングとΔΣ変換をPCで行う

 以上、DSDネイティブ再生時、DACユニットでは1bitストリームをそのままDA変換しているようだと解りました。
 DACユニット内で未知の変換は行われていないことを踏まえ、改めてどんな動作しているかみてみます。

・スペクトルを拝見
 PCM再生の時、PCM1795のOSDFは8倍固定でかかります。
 そして、ΔΣブロックでソース周波数によらずDSD256相当の性能を持つマルチストリーム(マルチレベルストリーム。周波数的にはおそらくDSD128)に変換しているようです。
 DSD再生の時、入ってきたシングルストリームデータは特に変換などはされていないようです。

 一方、≪foobar2000≫では、リサンプリング機能で倍率が、PCM→DSD変換機能でDSD64,128,256(UDA-1相手の場合)が選択できます。

 ですので、例えば

「SoXをx4とx2の2段入れて8倍アップサンプリング」&「ASIOでDSD256に変換」

すれば、普通にPCM再生する際PCM1795内部でやっているデジタル処理をPC側で実行する状態にできるということです。ざっくり言えば、ですが。

 さて、この時のアナログ出力につき、あるCD音源ファイル再生をキャプチャしてみました。


1.無音時:RealtekのAD変換回路のフロアノイズ (アナログキャプチャ)
 まず、AD変換の限界を確かめておきます。

Realtekフロアノイズ


 ざっくり-110dBあたりでしょうか(値がホントかどうかはこの際無関係)。
 ということを押さえた上で、次に、あるCD音源→DSD256変換のアナログスペクトルを見ます。PCでLPFかけると、前稿で見たOSDFなし状態のイメージングノイズはどうなるでしょうか。

2.SoXでx2した時 (アナログキャプチャ)

OSx2→DSD256


3.SoXでx4した時 (アナログキャプチャ)

OSx4→DSD256


 20kHz以上はバッチリLPF(Realtek測定限界以下(笑))されてます。x2だと66kHz以上は残ってます。
 想定通りの動作していると見ていいでしょう。また、奇しくもサンプリング定理を考えた記事でデジタルデータ状態でシミュレートしたOSDFのイメージングノイズカット動作について、実際のアナログ信号で可視化できたということですね。
 先の考察の裏取りにもなりました。

・PCM1795のPCM処理とDSD処理の違い
 ところで、PCMモードでのΔΣ変換結果は、DSDモードで受信したデータとイコールになるワケではありません。実際には以下のような違いがあるようです。
 ざっくり言えば、ですが。難しいんですもん(苦笑)。

・PCM通常再生
  PC側:PCM(マルチビット)出力
 ⇒
  PCM1795側:PCMをOSDF→複数の1bitストリームに分割変換→カレントセグメント機能でアナログ変換

・PCM→DSD変換再生(PCM1795にとってはDSDネイティブ再生)
  PC側:PCMをアップサンプリング→1本の1bitストリーム(DSD)に変換→出力
 ⇒
  PCM1795側:アナログFIRフィルタ(カレントセグメントブロックがそのように動作)でアナログ変換


■DSDネイティブ再生対応DACユニットの有効活用

 あくまでも「DACユニットにDSD形式でデータを渡す場合」のハナシです。「DSDフォーマット音源」の有利不利のハナシではありません。

・ハイレゾはNOS-DACとして再生する
 イメージングノイズが高域にしかないことでフィルタリングしなくても済む可能性があることもハイレゾの効能のひとつだと考えています。
 そのためにはDACユニットにOSDFをオフする機能が必要なのですが、それがないDACでもPCM→DSD変換して渡せば同等の処理ができることが解りました。
 例えば2496のハイレゾなら、
「デジタルフィルタリングで波形変更を許容して48kHz以上にあるイメージングノイズをカットする」のと
「超高域にノイズは残るがフィルタリングによる波形変形はない」
のとどちらがいいか、聴き比べることも出来ますね。

・メンドウなお仕事は極力PCでやっちゃってDACを余裕で動かす
 PC側でアップサンプリング→DSD変換してDACに渡すと、普通ならDACチップでやっているデジタル処理をほぼPC側でやることになります。ざっくり言うと、UDA-1内蔵のPCM1795を「1bitストリームDA変換チップとしてのみ使っている(*)」状態に出来るということです。
 しかも、普通ならほとんど出来ないデジタルフィルタやΔΣ変換機能の設定もいろいろ可能になります。
 改造も工作もせずこういうことが出来ることこそ、「PC-Audio」の醍醐味だなぁと思いました。

*:UDA-1の説明には「DSD再生時アナログFIRフィルター方式、PCM再生時アドバンス・セグメント方式を使用しています」とありますから、正確には「DSDストリームをアナログ化するためのLPFとして、アナログFIRフィルタとしてのみ使っている」となります。しかも「192KHz 32bit 対応 D/A コンバーターのアナログ出力をセレクターやコネクターを一切介さずダイレクトに出力するD/A DIRECT端子を搭載」だそうで。鮮度高そう~


 SoX Resamplerを重ねて16倍アップサンプリングにしてみたり、Resampler-VでPassBandとStopBandの差を広げてみたり。DSD変換ではMethod Typeを変えてみたり。
 楽しいですね。

 これも≪foobar2000≫をはじめとするフリーソフトを提供してくださっている方々のお陰。感謝感謝です。

・効果のほどと効果の理由
 音質はシステムや主観に依存するので詳論しませんが、ざっくり、アップサンプリング=OSDFの倍率を上げていくとキレイになっていくカンジです。DSDの倍率も高い方が好ましいでしょうか。
 少なくとも、UDA-1においては、試してみる価値はあると思います。追加コストありませんし。

 ただ、いろいろ弄っている中で、PCの処理能力に影響されるかも知れない気がしています。
 また、DSD変換だと曲がフェードアウトして終わるあたりに“しゅるしゅろしゅれ”ってノイズ(?)が聞こえることがあります。DSD256だと聞こえちゃいますね。DSD128、DSD64と倍率が小さいほど小さいようです。≪foobar2000≫よりは小さいですが≪JRiverMC20≫でもDSD256だとやや聞こえますので、≪foobar2000≫特有の現象ではなくPCM→DSD変換による付帯音ではないかと。ちなみにアップサンプリングの有無や変換Methodは関係ない模様。

 いずれにしろ、「いろんな鳴らし方がある」のはいいことですよね。ERIとしてはこれでUDA-1を使う機会も増えそうです。


 「DACチップでの処理とPC側での処理」どっちが高性能かは定かではありません。専用ハードと汎用コンピュータのソフト処理ですので、比較するならちゃんと考える必要があるでしょう。私には即断は無理っす。上述の通り最終的なアナログ変換の仕組みも異なるみたいですし。
 よって、その点での音質メリット有無は現時点ではなんとも言えません。

 が、少なくともDACチップの“忙しさが圧倒的に緩和されている”のは間違いないでしょう。デジタル処理がほとんど無くなっちゃうワケですから。
 参考までにワットチェッカでUDA-1の消費電力をみてみました。家庭用ACの変動をなるべく抑えるため、CSE製レギュレータRG-50のACにて。調べた時は99.5~99.7Vでした。
 とあるCD音源につき≪foobar2000≫の設定を変更して以下を計測。PCMモードもASIOにて。出力ビット深度は32Bitです(16Bitにしても変わらないようですが)。ResamplerはSoXのデフォルトを使いました。

・起動直後アイドル 0.23A 12W安定
・x4&DSD256再生 0.23A 12Wたまに13W
・x4&DSD128再生 0.23A 12W安定
・x4&DSD64再生  0.23A 12W安定
・x4再生        0.23A 13W安定
・x2再生        0.23A 12W~13W
・x1再生        0.23A 12W安定

*ちなみに、UDA-1は再生停止すると直前の“PCMモード動作状態”でアイドル化するようです(DSDモードは無視)。

 x4(176.4kHz)は32bit転送されていると仮定してもx4x32=DSD128相当ですので、ビットレートを考えるとDSDモードの方が低消費電力に見えます。
 「AC電力のふらつき」のハナシですので、あくまでも参考レベルですけれど(AC電圧が変わると変わっちゃう)。


 「デジタルフィルタOFF機能付きDACユニット」買わなくてよかった(笑)。

 しかし、こうして見てくると、DSD再生モードはDSD64じゃ物足りない気がしますねぇ。20kHz以上の信号はノイズに埋もれちゃいそうですので(*)。DSD128でもどうでしょう…?

*:DSD64=2.8MHz=SACDは100kHzをカバーできるとかって言われてますけど(だから24192相当と言われる?)、20kHz以上はシェイピングされたノイズがどんどん大きくなる一方、“普通の音楽”では周波数成分のレベルは逆にどんどん小さくなっていきますよね。実質的にはカバーになってないような気がするのですが。


 どんどん贅沢になってゆく(笑)。

 現在HDMI-Audio用に使っているE-350システムだとDSD128以上の変換はキツイので、PCパワーアップしたくなりました。困ったものです(笑)。


メインメニューへ

テーマ : オーディオ
ジャンル : 趣味・実用

アップサンプリングとDACとハイレゾをデジタルフィルタする

15/01/31初稿

 サンプリング定理について勉強した時、「イマドキのDACチップではLPFとしてオーバーサンプリングデジタルフィルタ処理が行われている」と理解しました。
 では、とすると、です。
 ≪foobar2000≫のSoX Resamplerなど、PC側で行うアップサンプリングとの関係や違いはどうなっているのでしょう?


 本稿ではオーバーサンプリングデジタルフィルタをOSDFと略しています。
 また、本Blogでは、なかった高域を補間生成する処理は「オーバーサンプリング」や「アップサンプリング」とは呼ばずに区別しています。
 念のためですが、本稿の対象は「PCM」のみです。DSD音源の再生は含みません。


■PCのアップサンプリングとDACのOSDF…もうひとつのハイレゾの効能

・プレーヤ側で行うアップサンプリングの意義・効果とは
 周波数をアップする時、単純にサンプルを“間足し”するだけではイメージングノイズは減りませんから、LPFをかけないと成立しません。そして、理論上LPFをかけることは補間フィルタ(インターポレーションフィルタ)をかけることとイコールになるそうです。つまり、送り出し側で行うアップサンプリングにはLPF処理=デジタルフィルタ処理が必ず含まれています。
 実際、≪foobar2000≫のSoXによるアップサンプリング結果を見ると、DACチップの実動作で説明されるOSDFと原則的には同じ結果をもたらしていると思います。

 ですので、送り出し側でDACユニットへの入力前に行うアップサンプリングは、原則として「DACチップで行っているOSDFと同じ目的の処理=イメージングノイズの除去」と考えていいでしょう。

 ということは、

 OSDFが搭載されているDACを用いるシステム(イマドキは普通これ)に対する送り出し側でのアップサンプリングとは、「その多段処理の組み合わせを変えること」

になります。
 組み合わせは多岐にわたりますが、一番影響があると思われる“1段目(*)”がPC処理かDAC処理かはどんな設定でも絶対変わりますので、これは効くような気はします。

*:1fsイメージングノイズの除去。サンプリング周波数を中心とした折り返し領域。48kHzなら24~72kHz。

 ところで、DACチップにおけるOSDF処理には規格があるワケではありません。本来のリクツではアナログLPFの仕事を各社独自にデジタル化している部分ですので。
 そのため、「48kHzなら8倍、96kHzなら4倍、192kHzなら2倍」といったようにソースの周波数によって倍率を変動させる場合や「全部8倍」といった場合があるなど、DACシステムによってOSDF(DACチップ内蔵ではなく外付けもアリ)の動作・性能は異なるでしょう。
 例えば、TI製PCM1795を用いたDACユニットとSoX Resamplerを組み合わせて48kHzソースを再生する場合は、

・アップサンプリングしない場合:DACチップ内のOSDFでx8されて384kHzに
・x4した場合:PC側で192kHzにアップサンプリングされ、DACチップ内のOSDFでx8されて1536kHzに

なってからΔΣ変調かけられることになるのだと思います(TI社DACのOSDFはソース周波数に依らず全部x8らしい)。
 ソースの周波数によってOSDFの倍率を可変するDACの場合は、

・アップサンプリングしない場合:DACチップ内のOSDFでx8されて384kHzに
・x4した場合:PC側で192kHzにアップサンプリングされ、DACチップ内のOSDFでx2されて384kHzに

になるのかなと。

 つまり、送り出し側でのアップサンプリング有無・倍率によってDACチップ内のOSDF動作やΔΣ変調部での倍率が異なるのですから、アップサンプリング処理のデキ以前に、それによって音質が変わるのは当然と言えましょう。
 これがいわゆる「アップサンプリングの効果(?)」の実態だと考えていますが、その変化は「DACシステムによって異なる」と考えられますから、善し悪しその他、一般論にはならないでしょう。
 PCM1795などの場合、PC側でx4にしたらDAC内でさらにx8になっちゃうワケで、“32倍オーバーサンプリングデジタルフィルタ”がかかっちゃうことに。単純に考えると、高域のイメージングノイズが猛烈に取り除かれる代わりにフィルタ演算によるエコーが増え、「スッキリして響きがある音」になるような気がします。

 DACチップ内部のお仕事については、PCM1795などDACチップのデータシート掲載ブロック図をみるのが一番いいと思います。簡易的にはジッタ記事に載せた簡易ブロック図をよろしければご参考に。

・実事情
 DACチップとPCとの間に「デジタルフィルタの倍率」をやりとりするようなI/Fはありません。
 ですので「もう2倍にしてあるからヨロシク。PCのCPUガンガン回して高精度にやったぜ」「じゃあこっちでは8倍じゃなくて4倍でいいよね。ポストフィルタの特性も甘くしとこう」なんてことはできません。
 PCとDACチップではその演算能力の違いは言わずもがなでしょうから、積和演算の嵐であろうアップサンプリング処理はPCの方がより高精度にできる…かどうかは何とも言えません(苦笑)。ワイヤードロジックとソフトウェアの勝負ですし。

 ただし、例えば≪foobar2000≫のプラグインなどでは“デジタルフィルタの多彩な設定が可能”ですから、PC側でやる場合はそういう「自由度こそ意義」と言えるかも知れません。

・デジタルフィルタの功罪
 ところで、デジタルフィルタリングはいいことばかりではありません。存在しなかったエコー(リンギング)成分を付加してしまうなどの弊害があります(処理する場所がPCでもDACでも基本は同じ)。
 これもやはりTIさんのページが解りやすいかも。フィルタ演算かけると元波形は変形するイメージができるかと思います。
http://www.tij.co.jp/dsp/jp/docs/dspcontent.tsp?contentId=53937

 本Blog記事の中では、iTunes音質検証におけるインパルス応答波形や上記foobar2000記事などをご参照くださればイメージできるかと思います。
 通過周波数と遮断周波数が近いほど、遮断性能が高いほどデメリットも大きくなるのが基本だと理解しています。

 ですので、デジタルフィルタをかけずに済むならそれに越したことはありません。かけるにしてもできる限り緩い特性にしてエコーなどの発生を低減したいところです。
 さて、そのためにはどうしたらいいでしょう?

 「最初からサンプリング周波数が高ければいいんじゃない?」

 これは“ハイレゾの効能”と言えるでしょう。

・イメージングノイズをありのままに
 具体的に考えてみます。
 例えば、サンプリング周波数96kHzならイメージングノイズは48kHz以上にしかありませんから、ほっといても聞こえないでしょう。そういうワケにもいかないのでLPFするとしても、アンチイメージングフィルタの遮断帯域は48kHzからでいいことになり、可聴域を20kHzのままと考えるなら「20kHz以下を通過&48kHz以上を遮断」というかなり緩やかなLPFでOKなことになります。可聴域をもうちょっと高め(例えば30kHz)と考えてもLPFとしてはゆとりがありそうです。
 AD変換時も同様の事情になりますね。

 アナログ→デジタル→アナログの変換時に原理的に発生する「エイリアシングノイズ」と「イメージングノイズ」の除去作業のレベルを“緩和”することによって波形変形が低減される、ということです。

 AD段階からハイサンプリングで高域まで有意なデータがあるということは、DAC事情的には
周波数ドメインで言えば
「イメージングノイズ帯域を高域に追いやる(リコンストラクションフィルタの負荷を下げる)」
ことであり、
時間(波形)ドメインで言えば
「離散的であるデジタルデータの密度(解像度)を上げることで波形をアナログに近づける」
ということですね。

 LPFの遮断帯域が低めだとあまり「倍音が増える」効果が出なくなりますが、これもハイレゾの効能のひとつだと思います。
 この効能について言えば「192kHzや384kHz」というハイサンプリングも意味がありそうな気がします。遮断帯域80kHz~くらいでも成立しそうですもんね。

・ただしソースはネイティブハイサンプリングでないとダメ
 さて、この効能はDA処理段階に発揮されるものですが、AD段階からハイサンプリングしたソースである必要があります。フォーマットが96kHzでも、48kHzサンプリングソースを96kHzにアップサンプリングしたソースなどではダメです。その処理自体がアンチイメージングフィルタ処理しちゃってますので。
 そう考えると「ハイレゾ」と「アップサンプリング」ではその効果の意味が全く異なるということですね。
 逆に言うと、20kHzまでしか入ってないアナログマスターだったとしても、96kHzでのAD変換には意味があるということです。「無い高域を“無い”ことを表すデータとして存在させる」ことに意味があるんですね。
 おお、そうだったのか~

 ということだとすると、20kHz以上の帯域の意味の判断は難しいですね。
 あったとしても「AD元のアナログソースに入ってた」場合と「アップコンバートで生成した」可能性があります。
 なかったとしても「AD元のアナログソースに入ってなかった」「アップサンプリングだから」という可能性があります。
 まあ、アナログソースの高域とアップコンバートの高域だとゲインが全然違うでしょうから判るとは思いますが。
 やっぱりそのソースの“出自”を示してもらわないと、リクツ上意味があるか否か正確な判断はできないってことですねぇ。

 もちろん「実際に聴いてよければいい」のはアタリマエとして記しています。だってそれはハイレゾか否かとは関係ないことですから。

・ただしDACはOSDFをオフできないとダメ
 いきなり“前言撤回”みたいなハナシですけれど(苦笑)。
 「ハイサンプリングソースの場合は、OSDFをオフしてもイメージングノイズは聞こえないと判断し、フィルタ演算による波形変形を防ぐ」というメリットを享受するためには、明示的にデジタルフィルタをバイパス設定できるDACユニットが必要になりますが、現実的ではなさそうです。
 以下にその実情を記します。


■DACユニットの実際

 上述の通り、特にハイサンプリングを聴くためのPCオーディオ用DACユニットとしては「フィルタを選択できる」だけでなく「バイパスできる」機能は標準的に欲しいところです。ハイサンプリングソースの時はバイパスしてみたいですから。もし必要ならデジタルフィルタリング(=アップサンプリング)はPC側でできちゃいますし。

・フィルタはオフできないという現実
 しかし、そのようなDACユニットは一般的ではありません。通常のオーディオ用としては許されないでしょうから仕方ありませんけれど(デジタルフィルタはオマケではなく必要な機能ですので)。
 私の知るところでは以下くらいでしょうか。

  ←TEACのこれとか     ←Esotericのこれとか

 Esotericなんて「オフが推奨」と言ってます。

推奨のデジタルフィルターOFFモードのほか、PCM信号処理用に4種類のデジタルフィルターを搭載。FIR型デジタルフィルター2種類に加え、プリエコーのない自然な音の立ち上がりを特長とするショートディレイ型デジタルフィルターも2種類搭載。
出典:http://www.esoteric.jp/products/esoteric/d07x/

 UD-501もOffがデフォルトらしいですね。

・NOS-DACとは
 ということで、「OSDFが搭載されていないDAC」にも需要があるようで、「NonOverSampling-DAC」通称“NOS-DAC”と呼ぶようです(最初NOSってメーカ名かと思いました(苦笑))。

 NOS-DACの出力はイメージングノイズまみれの音(波形的にはカクカク)になってるハズですが、デジタルフィルタリングするよりヨイって考え方もあるようですね。特に、ちゃんとしたハイレゾ音源なら48kHzや96kHzまでイメージングノイズはないハズですから、「それ以上の帯域のイメージングノイズを許容する」のと「OSDFかける」のはどちらが音質へ悪影響があるか、確かに微妙な気もします。素人ですけど。

 「イメージングノイズがあること=元がカクカクな波形はより正確に再現できるが、元がサイン波っぽい波形は逆に不正確になる」というカンジでしょうか。といってもイメージングノイズはあくまでもノイズなので、元アナログ波形を再現しているとは言い難いですけれど。
 実際問題としては、カクカクの水平部分=DC成分も垂直部分=無限周波数成分も、最後はスピーカやヘッドホンがある意味フィルタリングしちゃうと思いますので、それに任せるってことなのかも知れません。とすると、NOS-DACは周波数特性が~20kHzくらいのアナログ段との組み合わせが相性いいのかも知れませんね。

 前述のUD-501などのデジタルフィルタOFFモードは“設定によるNOS-DAC化”と言えるでしょう。ポストフィルタはOSDF前提で「高域で緩くかける特性」固定みたいですけれど。
 ただし、UD-501もD-07Xも「アップコンバータ」を搭載しているようですので、これを使ってOSDFをOffするのが推奨なのかも知れません。詳細は不明です。

 「ネイティブ192kHz音源」なんかをフィルタオフで聴いてみたいものです。
 けどそのためだけにDACユニット買うっていうのも…(苦)


■デジタルフィルタとΔΣ変換とアナログポストフィルタ

 ところで、OSDFはDA変換ロジックの中核たるリコンストラクションフィルタ機能の一部である「プリフィルタ」であり、その後アナログによる「ポストフィルタ」をかける連携機能になっているハズです。
 とすると、デジタルフィルタをオフできるDACユニットでは、ポストフィルタの特性はどうなっているのでしょうか。
 ナイキスト周波数あたりで急峻にかかるアナログLPFが必要なハズですが、ナイキスト周波数はソースのサンプリング周波数によって当然変わりますから、特性可変フィルタでないと対応できないような気がするのですが、はたして?

・UD-501では
 UD-501の周波数特性を載せてくださっているBlogさんのデジタルフィルタOFF出力スペクトルを見ると、44.1kHzソースの場合20kHz以上にノイズの盛り上がりが発生しています。つまり、デジタルフィルタでイメージングノイズを除去しないモードでもポストフィルタのカットオフ周波数は降りてきておらず、高域側のままのように見えます(Onにするとノイズはガクンと減る)。
 つまり、アナログポストフィルタの特性はOSDFのON/OFFで変動していないようです。

 なんだかOSDFがすでに“ほとんどリコンストラクション”しちゃってるような気が。とすると、イマドキのアナログポストフィルタの役割って…?

・DA変換ブロックにLPF機能はあるか
 ここで、TIのDACチップ仕様を見てみると、DSDモード時LPF特性を変更できるようで、その設定を解放しているDACユニットもあるようです。資料にも「Advanced Current SegmentブロックはDSD時のLPFとして機能する」と記されていました。ですが、PCM時にはそのような機能は見当たりません。

 ということは、PCM時は、OSDFでかなりの高域までノイズ除去(LPF処理)は済んでいると見なし「Advanced~」ブロックはLPF機能はなく(*)アナログ化のみを担っているのかも知れません。

*:new_western_elecさんが公開されているPCM1792AのOSDFをOffしたサイン波は「カクカク」になってましたし。
http://nw-electric.way-nifty.com/blog/2013/11/dac-pcm1792-f49.html

・「トランジスタ技術」の記事
 「トランジスタ技術2013年12月号」P.125によると、ΔΣ変調ブロックで元ソースのサンプルレートによって倍率を変えて1bitストリームの周波数を一定にし(44,.1kHzと48kHzの差はありますが)、アナログフィルタの特性を固定にしているようです。

  ←デジタルオーディオの理屈に興味がある向きには一読の価値アリと思います

・DACデータシートの記述
 さらに調べていると、PCM1795のデータシートに以下の記述がありました。

The OS bits are used to change the oversampling rate of ΔΣ modulation. Use of this function enables the designer to stabilize the conditions at the post low-pass filter for different sampling rates. As an application example, programming to set 128 times in 44.1-kHz operation, 64 times in 96-kHz operation, or 32 times in 192-kHz operation allows the use of only a single type (cut-off frequency) of post low-pass filter. The 128-fS oversampling rate is not available at sampling rates above 100 kHz. If the 128-fS oversampling rate is selected, a system clock of more than 256 fS is required.
出典:「pcm1795.pdf」 P.33

 やはりオーバーサンプリングは8倍固定ですが、ΔΣブロックでの倍率を変更することで、1bitストリームの周波数を一定にしてポストフィルタの特性を統一しているようです。
 44.1kHzの時は128倍、96kHzで64倍、192kHzで32倍が推奨されていますので、「44.1または48kHzという“基準fs”に対して128倍に統一しましょう」ということのようですね。つまり、データシートの記述通りにPCM1795を使った場合は、44.1kHzも48kHzも96kHzも192kHzもPCMはすべて最終的にはDSD128(44.1kHz系では5.6MHz,48kHz系では6.1MHz)に変換されているとみていいでしょう。
 ただし、TI製DACチップにおけるPCMデータのΔΣ変換は1bit化しますが1本ではなく“マルチストリーム”のようですので、「DSD128データ」と同じ動作とは言えません。

 一方、DSDモードの場合は、当データシートのP.3のスペックによるとSystem Clockはmin2.8224MHz、Max11.2986MHzとなっています。つまり44.1kHz系におけるDSD64~DSD256です。
 UDA-1では正式仕様にないDSD256も通ってしまいますが、(44.1kHz系なら)デバイスレベルでは対応していると見ていいかも知れません。
 逆に、DACチップがサポートしていないモードは例え通ってもあまり意味がないということです。例えばPCM1795システムでもしDSD512が通っても、DACチップ前で“ダウンサンプリング”されてるハズです。
 iFi-Audio製「micro iDSD」という製品はPCMで768kHz、DSDはDSD512まで受け付ける仕様ですが、搭載しているDACチップ(*)DSD1793の仕様は24bit/192kHz/DSD256です。2個使いによる何らかの方法でユニットとしてはDAC単体スペックを超えている可能性も否定できませんが、少なくともDACチップにとっては非ネイティブだと理解して選ぶべきでしょう。

*:eイヤホン社のサイト:http://ameblo.jp/e-earphone/entry-11852192877.html


■“なんちゃってNOS-DAC”で遊ぶ

 このあたりまで考えたところで、ふと気がついちゃった気が。

 PC側でPCM→DSD変換してDSDネイティブ再生可能なDACユニットに渡した時って、DACチップ内のOSDFブロックをバイパスしてるってことではないでしょうか?

 つまりDSD変換すればOSDFオフ機能のがないDACユニットでもフィルタオフで鳴らせるということです。
 もしそうなら、OSDFオフ機能付きDACユニットを買わなくてもフィルタオフモードでDACが使えるじゃありませんか。
 以下、それを確かめてみます。

・DSD変換“だけ”実施したスペクトルを見てみる
 早速、≪foobar2000≫でCD音源をDSD変換してUDA-1で鳴らしたアナログ出力を確認してみました(環境は前稿と同じ)。

 シェイピングされた高域ノイズの影響を極力排除するためDSD256にて。変換MethodはとりあえずTypeA(FP32)です。

OSx1→DSD256
(アナログキャプチャ)

 ナイキスト周波数以上の帯域にイメージングノイズが盛大に発生しています。つまりOSDFかかっていません
 やはりDSD変換してDACチップにInputした場合はOSDFをバイパスすると見ていいようです。
 80kHz以上には盛り上がりが見られませんので、おそらくこのあたりで「リコンストラクションフィルタのポストフィルタとしてのアナログフィルタ」が働いていると推察します。

 一方、これは「≪foobar2000≫の当機能でPCM→DSD変換する際は、DSP機能でアップサンプリング(LPF)しておかないとイメージングノイズまみれの音になっちゃう」ということを示しています。試聴などでは要注意かと思います。ただし≪foobar2000≫のような機能ブロックを組み合わせて使うソフトの場合であって、例えば≪JRiverMediaCenter20≫ではDSD変換再生にすると自動的にフィルタかけているようです。≪AudioGate≫のEXPORTでもイメージングノイズは見られませんでした。

 なお、TypeB,C,D(いずれもFP32)でもイメージングノイズは発生していました。「フィルタを内蔵しているTypeもある」といったことは無いようです。

・ノコギリ波はどうなる?
 上で、周波数ドメインにてOSDFがかかっていないこと(イメージングノイズがそのままであること)を確認しましたが、時間(波形)ドメインではどんな変化しているのでしょうか。
 そこで、ハイレゾの効果をPCMで考えた時使った2448ノコギリ波(Downsamplingなし)をDSD128で再生してみました。

2448R→DSD128rec
(アナログキャプチャ)

 わははは、DSDサイコー!(爆) シャノンさん真っ青~

 アルゴリズムにもよると思いますが、こんなふうにDSD化されるんですね。
 これを見ると、DSDって波形再現性はとっても優れているように思えます。
 再生時にOSDFかかっていない故ですが、それが「アナログっぽい」「柔らかい」といった印象になっているのかも知れません。

 しかし、それにしてもキレイにノコギリになりすぎな気が。ナイキストあたりも何も変化なく繋がっちゃってますし。結果的に倍音をスムーズに補間しちゃってるってことでしょうか。
 ナントナクですが、人工ノコギリ波形にとってのエイリアスノイズとは、歪みではなく直線的な斜め傾斜を構成する成分として有効であって、OSDFかけずに再生した時に発生するイメージングノイズはその成分(歪み)を再現したものになるのかも?
 かも? レベルですけれど。

 ちなみにDSD64だとそんなに感動しませんでした(笑)。理由はワカリマセン。

2448R→DSD64rec
(アナログキャプチャ)


 以上、PCM→DSD変換することで、フィルタオフ機能がないDACでも“なんちゃってNOS-DAC”として動作させることが出来ることが解りました。
 ただし、本当のNOS-DACと違ってΔΣ変換までPC側になっちゃうワケで、DAC側は1bitストリームのアナログ化しか行わない状態になりますが、それはそれでまた一興かと。正確には(?)「“なんちゃってアナログLPF”として動作させることが出来る」と言った方がいいかも知れませんね。

 これは面白そうです。
 引き続きいろいろ試してみようと思います。


■余談

・DSD再生モード時のOSDF
 OSDFはかかってないことを確かめる方法を考えていた時、「インパルス応答にエコーが付かないのではないか」と思いました。
 自分でやってみる前にweb検索してみたらそれを示す資料があるようです。
http://tech.juaneda.com/en/articles/dsd.pdf

 P.5にPCM(ハイレゾ)とDSDのインパルス応答比較があります。
 「Why Direct Stream Digital is the best choice as a digital audio format」というタイトルの2001年Philips? 著作のようですが、正体はヨクワカリマセン。

 以下にもDSDとPCMのインパルス応答比較図がありました。
http://tackbon.ldblog.jp/archives/52275169.html

 上記資料を見るとインパルス応答していませんので、やっぱりDSD再生においてはOSDFは無縁と考えていいようです。

・オーバーサンプリングの倍率は可変か一定か
 エレアトさんは「44/48系なら4倍、88/96系なら2倍、176/192系ならそのまま」というロジックを組んでらっしゃった模様(*)。

*:http://fpga.cool.coocan.jp/wordpress/?p=40

 new_western_elecさんによると、どうもTIは入力に依らず8倍なら8倍固定らしく、アナデバなどは入力に応じて倍率を変える仕様の模様です。
 確かに、TI(BB)のPCM1704(24bitマルチビット型)データシート(*)では、入ってきた周波数の8倍と言ってるようです。

*:http://www.tij.co.jp/jp/lit/an/jaja006/jaja006.pdf

 また、PCM1795データシートの機能説明やブロック図では「x8 Oversampling Digital Filter」って“倍数含みで”機能名記してます。
 8倍固定って個人的感覚的には違和感ある(*)のですが、ホントみたいです(苦笑)。

*:倍率を可変にしてOSDF結果を一定にし、ΔΣブロックへの入力周波数とイメージングノイズ状態およびΔΣブロックでの倍率を固定した方がキレイな気がするのですけれど。
 15/05/19追記:8倍固定の理由、なんか解った気がします。ΔΣ変換ブロックでは128倍(DSD128:44.1kHz系なら5.6MHz)までオーバーサンプリングしますが、当該ブロックではあくまでも「サンプル数を増やすだけ(零次ホールド?)」または「インターポレーションフィルタかけるけど簡易的なもの」なのでは。つまりOSはするけどDFはないor簡易版、と。
 とすると、どんな周波数であれ前段のOSDFブロック=インターポレーションフィルタ(LPF)の専門ブロックでその能力限界倍率まで上げた方がよい、ということではないかと。同じ増やすならなるべく高性能なフィルタかけた方がアナログに近い波形が得られるワケですから。

・意外と楽しいM/Bオンボードサウンド
 結構オモシロイ実験できますね。LINE-OUTとLINE-INをループバック接続し、≪WaveGene≫でいろいろな波形を生成して再生し、≪WaveSpectra≫で表示すると、DACがどんな波形(スペクトル)出力しているのか手軽にリアルタイムに見ることができます。DACのLINE-OUTを入力すれば、ヘッドホンで聴きながらアップサンプリングやDSD変換におけるスペクトルや波形の変化を見ることもできます。
 もちろんサンプルレートは一番高速な192kHzで。
 15/03/07追記:どうもGA-Z68X-UD3H-B3のオンボサウンドのLINE-INは-1dBあたりが最大振幅になる(それ以上の音量ではクリッピングする)ようです。フルスケールのサイン波を入れるとクリップします。録音ボリウム絞っても同じです。≪foobar2000≫で-1.10dB絞るとサイン波の頭がキレイに丸まりました。


メインメニューへ

テーマ : オーディオ
ジャンル : 趣味・実用

基音と倍音でハイレゾを聞いて見る

15/01/12初稿
15/03/04改訂

 欲しいアルバムがハイレゾでも出るようになり、CDで買うかハイレゾファイルを買うか悩ましいケースも出てきたため、そろそろハイレゾってホントに意味があるのか判断しなきゃって思い始めたのが昨年9月ごろ。

 まずは実際に比較試聴していたら、そもそもちゃんと比較するにはどうしたらいいか気になり、さらにファイルの素性はどうすれば確認できるのかシステムは対応しているのかを芋づる式に調べたり実験したりすることになりました。
 あげく改めて「サンプリング定理」について考えるざるを得なくなり、何とか一歩前進したかなと思います。

 それら知見を踏まえることで、足掛け5ヶ月、やっと「ハイレゾの意味」についてひとまず納得するところまでたどり着きましたので、以下にまとめてみたいと思います(PCMについてです。DSDは含みません)。


■“巷で言われる”ハイレゾフォーマットの効能とは

 まず初めに、「ハイレゾという“大きくなった(細かくなった?)入れ物”」は何で音がいいことになっているのか、おさらいしておきたいと思います。
 「音源の録音状態」や「マスタリングの善し悪し」や「違いが判る再生できるのか(アナログ的に)」といった要素より“前”の問題、純粋なリクツとして、です。

・ハイサンプリング:20kHz以上の高域が入ってるから?
 と言われても、「聞こえない音」が入ってると何で音いいの? かは疑問のままですよね。何か学術的な“データ”はないのかと思って検索してみたのですが、ハイレゾに関するこんな博士論文があり、「20kHz以上の高域(の成分が含まれること)を聴き取れた事例」が紹介されています。
http://ir.lib.uec.ac.jp/infolib/user_contents/9000000355/9000000355.pdf

 私は“選ばれし者”じゃないと思う。たぶん(笑)。

 ところで、「20kHz以上の高域が聴き取れるか・意味があるか」という議論では、対象が例えば「30kHzのサイン波などの単一波形」なのか「30kHzまでの高域成分を含む音楽波形」なのかはハッキリは分けて考えた方がいいと思っています。前者が聞こえなくても後者がCDより良いと感じるなら、オーディオとして意味があると言えるでしょう。
 「ディザリングによる音質向上」なんて技術があります。ざっくり言うと高域のランダムノイズを付加するものですが、そのディザノイズ自体は聞こえるようなレベルではありません。“前者と後者”に似た事例かも知れません。

 いろいろ考えた結果、ハイサンプリングについてはどうもこのあたりがミソっぽいです。単独の周波数だけに着目した考え方と周波数成分として見た時の考え方を分けることがキモだと思うようになりました。
 例えば、「楽器」や「肉声」の一番高い音は4kHzくらいまでのようですが、サンプルレート8kHzじゃ音楽として聴けませんよね。何故でしょう。
 後述します。

・ビット深度拡大:ダイナミックレンジが拡大してるから?
 ハイサンプリングと同じように、「どれだけ小さい音が聴こえるか」「大きな音と小さな音の聴き分けできるか」といった効果で考えない方がいいのかも。
 実効的な解説としては以下などいいかも知れません。
http://ednjapan.com/edn/articles/1205/21/news001.html

 上質なアナログ回路のS/N比は100dBを超えますから、単純スペックとしては16bitじゃ足りないかも知れません。
 が、逆に24bitの144dBはアナログ限界を超えており、実効的には20bitくらいでもいいのでは? と感じています。
 ただ、ハイビットに関してはハイサンプリングとペアな気がしています。サンプリング(時間軸)を細かくするなら必然的にレンジ(振幅軸)も細かくしないと効果が半減する、と。
 ぶっちゃけ、ハイビットの実効的な意味はヨクワカリマセン。

 ということで、本稿では、特記なき「ハイレゾ」はほぼハイサンプリングのこととして記させていただきます。

・そもそもマルチビットの考え方でいいの?
 実は一番気になってるのはこれ(笑)。
 実質的に世の中のオーディオのほとんどはΔΣ型DACで聴いていることを考えると、PCMデータの違いがΔΣ変換された後の1bitストリームに違いを与えるのは間違いないので、単純な周波数やレンジの違いではなくその差を聴いている可能性はあるかも知れません。


■基音と倍音から考えるハイレゾの効能

 さて、我々が聴きたいのは普通「音楽」ですから、人工的な高周波数サイン波などではなく「音楽」としての条件で考えていく必要がありそうです。
 以下、「楽器」「音楽」には肉声も含むこととさせていただきます。

・「基音」と「倍音」
 楽器の奏でる音の周波数とは、「その楽器に“特徴的な波形”の繰り返し周期」です。すべての波形は複数周波数のサイン波を無限(*)に含むことで“音色としての波形”を形成しています(フーリエさんがそう言ってます)。

*:理論的には、です。もちろん現実的にはどこかに発音体の限界があるでしょう。

 波形の周波数のサイン波が「基音(基本波)」。
 波形を形成するための整数倍周波数のサイン波群が「倍音(高調波)」。

です(実際には倍音以外の構成要素もあるようですが本稿では割愛します)。
 時間ドメインで考えた時の楽器の“波形”は、周波数ドメイン(すべてサイン波として考える。“波形”の概念はない)ではその周波数の「基音」+無限の整数倍の「倍音」で形成されるということです。

 フーリエさん的に言う「倍音」は、基本的に豊かに含まれないと本来の波形にはならないのですね。音楽的に言う「倍音」はちょっとニュアンスが違うことがあるようですので、区別して考えた方がよさそうです。

・楽器の「基音」最高周波数は何ヘルツ?
 ざっくりですが、下はピアノの30Hzくらいとのこと。上は、

・肉声(ソプラノ歌手)・・・ 2kHz
・ヴァイオリンやピアノなどの楽器・・・4kHz

くらいらしいです。

 4kHzの音を奏でた場合基音は4kHzです。再現可能周波数が20kHzまでのフォーマットなら、フーリエさん的に言うなら5倍までの倍音の合成波形としてデジタルデータ化されていることになります(6倍音以上はカットされている)。
 説明のため楽器が基本波形を奏でるとすると、例えば三角波(奇数倍音しか含まない)の場合、CDフォーマットでは基音と3倍音と5倍音のみっつだけで再現することになります。2496なら11倍音までの6個です。

 つまり、音楽においては、「4kHzくらいまでの基音周波数に対し“倍音をいくつ重ねられるか”でアナログ波形の再現性が違ってくる」ということです。
 通常の楽曲においては「基音」は約4kHzまでであり、それ以上の周波数は「倍音」の領域ということになりますから、検討対象とする“音色としての波形”の周波数は4kHz程度まででよい、ということになります。

 ちなみに、実際にどのくらい倍音が出ているか、ヴァイオリンにつき測定された方がいらっしゃいました。
http://www.sasakivn.com/werkstatt/qa/vnspectram.htm

 AudioDesign社社長のBlogにもCDのヴァイオリンソロ部の実際の波形やスペクトルが掲載されていました。
http://blog.audiodesign.jp/?day=20120219


 さて、であれば、ハイレゾの効果を可視化できるのではないでしょうか。
 サンプルレート違いによる波形再現性を確認してみればよいワケです。どんな波形がいいでしょう?

 基本波形と似ていると言われる楽器は次のようです。

・ノコギリ波・・・ヴァイオリン、金管楽器など
・三角波・・・フルート、弱く弾いたピアノなど
・矩形波・・・クラリネットなど

 ヴァイオリンの波形が近しいこと、整数倍の倍音で構成される波形であることから、ノコギリ波でいってみようと思います。周波数は音楽っぽい範囲で厳しめに1200Hzにて。


■基音と倍音の関係を可視化する

・ノコギリ波の周波数成分
 まず、上述した基音と倍音のスペクトルを見ておきます。
 1200Hz/-3dBノコギリ波のスペクトルはこんなカンジです。サンプルレート384kHzのファイルにて。

ノコギリ1200Hz

 次に、フーリエさんの言うことを視覚的に体験してみます。
 波形生成と言えば≪WaveGene 1.50≫。8個の波形を合成できますので、以下の基音と7個の倍音を順番に足していき、サイン波だけでノコギリ波を合成してみました。

1.基音のみ

ノコギリ生成1


2.2倍音を合成 1200Hz+2400Hz

ノコギリ生成2


3.3倍音まで合成 1200Hz+2400Hz+3600Hz

ノコギリ生成3


4.4倍音まで合成 1200Hz+2400Hz+3600Hz+4800Hz

ノコギリ生成4


 途中省略させていただいて

5.8倍音まで合成 1200Hz+2400Hz+3600Hz+4800Hz+6000Hz+7200Hz+8400Hz+9600Hz

ノコギリ生成8


 このあともナイキスト周波数まで倍音の合成は続きます。言い換えると、「48kHzサンプリングなら24kHz(20倍音)まで/96kHzサンプリングなら48kHz(40倍音)まで/192KHzサンプリングなら96kHz(80倍音)まで」しか含まれないことによる“理想に近づききれないという意味での変形”が、それぞれのサンプリングにおいて発生しているということです。
 サンプリング周波数を高めた方がこの変形がより少なくなるのは自明でしょう。

 ですので、

「20kHz以上は聞こえないから」というリクツは、「20kHz以上の倍音がないことによる波形変形は音質差として認識できないから」と言い換えた方が本質的

だと思います。

 「20kHzは聞こえないから」と言われると「そうかもナ~」とも思いますが、「波形変形は認識できないから」と言われると「なにお~」って思っちゃったりします(苦笑)。だいぶ印象違いますね(爆)。

 15/02/28追記:裏取りのため、以下で使うノコギリ波2448ファイルを≪Wavosaur x64 1.1.0.0≫でカットオフ10kHzのLPFしたデータのスペクトルを示します。9倍音(10800Hz)以上はカットされ、8倍音までで合成した波形になっているハズです。

ノコギリ2448 位相反転 LPF10kHz

 2448フォーマットですが、もっと低サンプルレートの波形(倍音合成イメージ)になっています。
 つまり、周波数成分を「足していった場合」と「減らした場合」で同様の結果が得られたということです。
 逆に、アップサンプリングで2448を2496にしても原則2448の波形(倍音合成イメージ)のままであることも確認しました。「アップサンプリングでは合成すべき倍音は増えない」ためです。

 矛盾ないようですね。


■含む倍音数違いによる波形の違いを視覚で確認する

 含んでいる倍音の数が波形再現性の差ということは解りました。では、実際のアナログ波形はサンプリングフォーマットによってどのくらい違うのでしょうか。

・ノコギリ波の再現性をデジタルドメインで可視化する
 準備できるソースは「音楽」か≪WaveGene≫などで生成する「人工波形」です。しかし音楽波形では本稿で考えているような検証はできません。単純な理想波形=人工波形である必要があります。
 が、人工波形はAD変換されたものではないため、そのままだとナイキスト以上をカットするLPF(アンチエイリアシングフィルタ)がかかっていません。
 しかし、実事情に則したソースをAD変換して得ようにも、そもそも「理想ノコギリ波アナログ信号」を間違いなく発生させる術がありません。AD変換時の事情も含んでしまいますし。
 そこで、まずは試しにデジタルドメインでAD変換をシミュレーションしてみることにみます。
 LPFかけて各フォーマットのノコギリ波ファイルを生成して比較してみます。

・ソース・・・≪WaveGene 1.50≫で生成した24384の1200Hz/-3dBノコギリ波を位相反転
       (WaveGene表示と合わせるため)
・AD変換シミュレーション(LPF)・・・≪SoX Resampler 0.8.3≫(デフォルト設定)で
                      48kHz,96kHz,192kHzにDownsampling


1.2448

ノコギリ2448


2.2496

ノコギリ2496


3.24192

ノコギリ24192


 …百聞は一見にしかず。これがズバリ「ハイレゾの効能」を示しているのでは?

 上述した考え方を当てはめると、「20kHz以上は聞こえないから要らないと考える」=「2448と2496や24192との波形の差は認識できないと考える」ということです。
 う~ん、“イメージ的”には認識できちゃいそうな気がしますよね。ていうか、これを見ちゃうとたとえ実際には認識できなくても気分的にはハイレゾです(笑)。認識できなくてもリッピングエラー発生はヤなのと同じ感覚ですね(爆)。

 しかし、これはあくまでも「フォーマットにパッキングしたデジタルデータ」の可視化です。実際に聞くアナログ信号としてはどうなっているのでしょう。
 いよいよアナログドメインに踏み込んでみます。

・ノコギリ波の再現性をアナログドメインで可視化する
 上記のファイルが実際のDAC出力ではどんなアナログ波形に再現されているかを見てみます。
 オシロスコープで見るのが本当だと思いますけれど持ってませんので、192kHzサンプリングのアナログ→デジタル録音で代用します(デスクトップ型PCがあれば出来ちゃう可能性高いという意味も含めて)。

・PC・・・再生・キャプチャとも自作Z68+Core -7-2600K
・再生デバイス・・・SONY製UDA-1 USB-I/FはM/BオンボードEtronチップ ≪foobar2000 1.3.6≫にて 
・キャプチャデバイス・・・LINE-IN(Realtek ALC889) 16bit192kHz設定 ≪WaveSpectra 1.50≫にて
・設定・・・録音レベル46,エフェクトオフ,APIは録再とも排他WASAPI

 ≪foobar2000≫の各種バージョンは以下の通りです。

foobarバージョン

 192kHzサンプリングならなんとか2448と2496は波形が採れると考えました。24192は参考値になるでしょうか。AD処理での波形変形も含まれてしまいますが、すべてのキャプチャでAD時の事情は同じですから差は見られるのではないかと。


1.2448 (アナログキャプチャ)

ノコギリ2448rec


2.2496 (アナログキャプチャ)

ノコギリ2496rec


3.24192 (アナログキャプチャ)

ノコギリ24192rec


 意外なほど再現性あるみたいですね。元ファイルのデジタルスペクトルからの変化はあまり認められませんが、DA変換時にもう一度かかるOSDFの分だけリンギングが増えているようです。

 さらに、Downsamplingせず=LPFかけてない“素の人工波形データ”のアナログ信号はどうなってるかも採取。


1.素のまま2448 (アナログキャプチャ)

2448Rrec.png


2.素のまま2496 (アナログキャプチャ)

2496Rrec.png


3.素のまま24192 (アナログキャプチャ)

24192Rrec.png


 エイリアスノイズ満載の波形のためか、AD変換したと見立てたファイルのアナログ化よりもDACのOSDFでのリンギングが大きくなるようです。
 いずれにしろ、2448,2496,24192の差違は同傾向同程度に発生していると思いますので、比較としては問題ないでしょう。


 個人的にはこれでスッキリしました。

 ただしあくまでも「フォーマットの効能」として、です。それも人工波形において、です。「音楽としてどれだけ効果があるかは別問題」なのは言うまでもありません。
 自然界の音は複数の基本波形が複数の周波数で発音され、その基音と倍音が複雑に絡み合って形成されていますので、実際の音楽再生では何が起きているかこれで解るものではありません。例えばリンギング発生は、多分に人工ノコギリ波の“縦変化”に含まれるインパルス的な特性によるものだと思いますが、音楽波形にはまずない応答でしょう。
 実際の音質はマスタリングのデキで決まっちゃうと思いますし。

 「トランジスタ技術2013年12月号」P.73,74にも同じような実験が掲載されています。そこでは差違理由は「デジタルフィルタのリンギング収束時間」と説明されていますが、本稿では「含まれる倍音の数による波形再現性の違い」という捉え方をしています。前述したサイン波合成の件と同じで、周波数成分を「減らす」処理と見るか「増やす」処理と見るかの違いであって同じ現象です。

 一応ちゃんとしたオーディオ機器の出力をということでUDA-1を用いましたが、PCのLINE-OUTでも同様の結果を得ています。

・ハイサンプリングの意味
 以上より、

 周波数ドメインで言うと「倍音が確保できる」。
 時間(波形)ドメインで言うと「元の波形に近づく」。

と言えるでしょう。

 1200Hzでも「ハイレゾ領域の倍音を含むことによって“理想波形”に近づいていくこと」がハイレゾの効果なのですから、「2496や24192なのに20kHz以上の領域に有効な音がない音源はやっぱりニセレゾ」と言っていいことになります。高域が無いのに「高域ではなく20kHz以下の再現性が効果」というのは詭弁です(*1)。
 それはおそらく「アップサンプリング」ですが、それはDA変換で本来やるべきフィルタリングですから、それをソース段階で“前倒し”でやっているだけ(*2)であり、レゾリューションアップしたことにはなりませんから。

 よく、サイン波(のリコンストラクションをかける前のカクカク波形)を例に「サンプリングポイントが増えるとなめらかになる」といった説明を見かけますが、二重に誤解を招きます。アナログ化されたデジタル波形はカクカクしていません(できません)し、サイン波は純音ですからサンプル数が2倍になっても4倍になっても理屈上変わらないハズですので。詳細はサンプリング定理お勉強記事にて。
 このイメージで「可聴域の波形もなめらかになるので」といった効果を考えているとハマります(笑)。


*1:サンプリング定理に従う限り、サンプル間にサンプルを増やしたとしてもそれは「どうせリコンストラクションフィルタで再現できるもの」だからです。もし再現できない値のサンプルだとしたらそれはナイキスト以上の周波数成分ということであり、つまり20kHz以上の音ですから「20kHz以下の再現性~」とは言えません。「DACのフィルタでやるより高精度」という意味なら解らなくもないですが、効能書きとしては苦しいですよね。
 ただし、高域がなくても、AD変換時点からハイサンプリングして「ない高域もAD変換している」場合は、DACチップの動作としてはメリットが出る可能性もあります。「基音と倍音」とは別のリクツになりますので別稿にて。

*2:「DA処理時のデジタルフィルタ動作軽減」という効果はあるかも知れませんが、それをハイレゾの効果として言うのは微に入りすぎだと思います(ウリにはならないでしょう)。ていうか、ユーザ側でもリアルタイム・ノンリアルタイム問わず処理できちゃうワケですし。業務用の方が圧倒的に優れているともあんまり思えませんし。そもそもDACチップによってDA処理方式違いますし。

 なお、「倍音」と「イメージングノイズ」は全く別モノです。念のため。

・ハイビット(ビット深度拡大)の意味
 こちらについては、アナログソースの再ADなどにおいて“ちゃんとAD”しているなら、レゾリューションアップと言えるでしょう。


■含む倍音数違いによる波形の違いを聴覚で確認する

・ノコギリ波の再現性を試聴する
 ということで、視覚的&リクツ的にはおおむね納得いったのですが、実際に再生音として違いは判るのでしょうか。
 試しに、≪WaveGene 1.50≫で生成したまんま、何も加工していないぴっかぴかの1200Hz-3dBのノコギリ波2448,2496,24192の3種をHD700で聞いてみました。ヴァイオリンのつもりで(笑)。

 …大変微妙ですがなんとか判るような?

 では、楽器の最高周波数である4kHzではどうでしょう? 厳しめに4800Hz/-3dBのノコギリ波を3種生成。倍音は9600,14400,19200,24000,28800…です。2448だと4倍音がギリギリということですね。

 …こちらの方が判る気がします。

 奇数倍音しか含まない三角波などでは倍音数は半減しますので、もっと判りやすくなるかも知れません。

 12kHzなどで行えばもっと判るのかも知れませんが、上述の通り、このような試聴音源の周波数は4kHzあたりまででいいことになると思います。

 本件に限ったことではありませんが、試聴にはプラシーボ的な要因も多分に考えられますので「とりあえずやってみたらそう感じた」の域を出るものではありません(なのでまずリクツで考えています)。
 個人的には、「-3dBのノコギリ波」みたいなかなりハッキリした波形でもハッキリ判らないのですから、無数の基音と倍音が混ざり合って複雑奇っ怪な音楽波形におけるハイサンプリングのメリットは(確かにあるでしょうけれど)ほとんど判らないんじゃないかという気がします。ハイレゾ試聴結果に「さらに自信ない」と記している通りです(苦笑)。

・ダイナミックレンジ拡大と倍音再現
 ところで、実際の音楽における20kHz以上の倍音のレベルはかなり小さくなってるのではないかと思えます。
 とすると、同時にダイナミックレンジを拡大しないと(フロアノイズの低減といってもいい?)意味がないような。
 そういう意味があるなら、ハイサンプリングはビット深度拡大とセットでないと真価を発揮しないのではないかと思えます。

 前出のAudioDesign社社長のBlogに、高域の倍音はビット数が減っちゃうので歪みが大きいとありました。
http://blog.audiodesign.jp/?eid=1018817

 要するに、「倍音合成による波形再現性向上」においてハイサンプリングは“倍音の数”、ハイビットは“特に高周波数域での倍音のカタチ(原理的にはサイン波なので単純モデルにおいては=レベル)”の向上を担っている、ということかも知れません。


 以上、繰り返しになりますが「理想ノコギリ波」なんて自然界には存在しない音でのオハナシです。
 あくまでもひとつの“とある実験”として。


メインメニューへ

テーマ : オーディオ
ジャンル : 趣味・実用

ジッタ対策にできること

15/01/10初稿

 冗長度ありすぎな気がしてきましたので、ジッタについて考えた記事をリクツと実事情に分割しました。


■ジッタ対策

 上記記事にて、ジッタの発生とその影響について私としての現時点での理解をまとめました。一応、ですけれど。
 さて、それを踏まえると、デジタルオーディオにおいてジッタ低減するため実際にできることは何でしょう?

 といっても、実質的な影響のリクツがヨクワカリマセン(アパーチャ誤差とはあんまり思えない(苦笑))から、どこまで抑えればいいのかすら解りません。
 とりあえず、「少ないに越したことはない」精神で考えることにします。「聴こえなくてもリッピングエラーはヤダ」と同じ価値観です(笑)。
 実効的な効果があるのかないのか、それは別問題になりますね。

・機器間I/Fを選ぶ
 とりあえずMCLKとDACチップの関係から、以下は言えるのではないかと思います。

・まずは極力DACチップに突っ込まれるMCLKが「原発振ダイレクト」なこと
・そのためには「Tx側と非同期にできる機器間I/F」を使うこと

 現実的にはUSBアシンクロナスモードを使うのが一番よさそうです。

 「機器間I/Fを使わない」って考え方もありますが、ここではコンポシステムに限ろうと思います。
 PCにサウンドカードを実装するような場合は“一体型PC-Audio”ですね。PCIやPCIeはアシンクロナスですし。
 I2Sは機器間I/Fではないと思いますのでここでは対象外としています。一般ユーザとしては原則として“一体型を自作する”時のみ出てくる概念として捉えておこうと思っています。

 もちろん、PLLを使うI/Fが絶対ダメというワケではありません(PLL機能・性能にもいろいろあるでしょうし)。I/Fのリクツに即した「RxでのPLL動作の安定度向上」対策することになりますね。
 この工夫(チューニング)のネタはシステムによって千差万別でしょう。
 例えばERIでは現在HDMI-Audioをやっていますので、GfxカードのコアクロックやメモリクロックをいじったりしてHDMI転送クロックPLL生成の安定化を試みています。といっても、実際意図したように効いているかを確認する術はありません。こうじゃないかと考えてやってみてそれっぽい変化したらしめしめとほくそ笑む、そんな楽しみ方の範疇です。一般論にはなり得ないでしょう。

・原発振を低ジッタ化する
 次なる野望はそもそも「原発振のジッタ性能を良くすること」でしょう。王道はズバリ低ジッタの発振器を使うことです。

 しかし、原発振=水晶発振器のジッタ性能は何をもって判断すればよいのか、最近まで「?」だったと思います。
 何故かジッタは本来別モノのppm=発振精度(周波数安定度)で語られることが多く、どんな根拠で“代替特性”としているのかずっと疑問でした。
 今はとりあえず、水晶振動子/発振器メーカNDK社の「オーディオと水晶の関係 ~音の品質とクロックの位相雑音~」というページ(*)の記述でいいのかなと思っています。

*:http://www.ndk.com/jp/ad/2013/001/index.html

 低位相ノイズ型製品のアピールページではありますが、「周波数安定度と位相ノイズは関係ないが、“結果的に”OCXOなどは位相ノイズ特性もよくなっている」旨記されています。ただ、オーディオ業界ではこれまで散々ppm値でジッタを語ってしまったので、今更「関係ないッス」とは言えないのかも知れませんが(苦笑)。

 水晶の性能パラメータとしては、周波数成分のノイズが上記「位相雑音」であり、それを時間軸上のゆらぎとしてとらえたものが「ジッタ」とのこと。
 TCXO(Temperature Compensated crystal Oscillator)やOCXO(Oven Controlled crystal Oscillator)、はてはルビジウムがどれだけいいのかは本情報をもって考えた方がよいと思っています。

 さて、発振器は改造しないと取り替えられないので、最初からそういう製品を導入する必要があります。
 一般的なPC-Audioとはちょっと違いますが、以下のような製品が明確に「低位相雑音発振器搭載」を謳っています。

・DENON製ディスクプレーヤ(兼USB-DAC):DCD-SX1  https://www.denon.jp/jp/dcdsx1/technology.html
 「超低位相雑音(≒低ジッター)」とあります。搭載されている発振器は、型番はDENON特注っぽいですが、マーキングからNDK製では。



・SONY製HDDプレーヤ:HAP-Z1ES  http://www.sony.jp/audio/products/HAP-Z1ES/feature_1.html#L1_50
 「低位相雑音クロック採用」とし、通常品との違いを示すグラフを載せています。
 システムアップの楽しみはありませんが、その代わりソースまで内蔵することでSONYがトータルチューニングできます。
 ネットワークプレーヤとの違いは、ソースをネットワーク上から取ってくるか内蔵HDDから取り出すかであり、MCLKについては原則的有利不利はありません。ざっくり、汎用ネットワークと接続しデータ通信することによるデメリットとローカルHDDのデメリット(*)の違いになると思いますが、どっちが音質に不利なのでしょうね。
 前者はネットワークシステムのチューニングで変わりそうですが、後者は“SONY任せ”ってことですね。趣味としては前者?(笑)

*:ちなみに、光学ディスクとHDDを“回転系”として括っちゃうのはどうかと思っています。
 例えばHDDには回転数可変サーボはない点、光学ピックアップと磁気ヘッドじゃ物理負荷が大違いな点、ディスク精度が桁違いな点(HDDは脱着しませんし)など事情は大分違うと思いますので。

  ←SSDバージョン出せばいいのに

 他にも、最近は「低位相雑音水晶(クリスタル)搭載」を謳っている製品は結構あるようです。ただ、“低位相雑音性能”もピンキリかも知れませんが。


■マスタークロックジェネレータとは何か

 「発振器は取り替えられないので」と記しました。
 が、「“マスタークロックジェネレータ”を使えば改造しなくても原発振を換えられるのでは?」と思えますよね。
 けれど、どうにも個人的には「?」なところが多いんですよね…

 そもそも疑問なのは、ユーザは「ジッタの低さ」を求めているハズなのにメーカは「発振精度の高さ=安定度の高さ」を謳っている場合が多いことです。上述の通りそれらは原則別モノですし、別にppm値が低くなくてもオーディオ再生にはあまり問題ないハズだと思うんですよね(*)。
 例えば+20ppm精度の原発振を持つDACユニットに精度0ppmの外部クロックを入れたとしても、60分の音楽再生時間が0.072秒長くなるだけです。これを音質変化(音程の違い?)として感じ取れるとは思えません。
 温度変化や経年変化は短時間で変動しませんし、サンプル単位で変動したりしませんから、“音程変化”はあっても長周期的なもので、短周期的には安定しているハズですし。
 上記NDK社のページにも以下の記述があります。

オーディオ機器においては、長期間における安定度よりも、短期間における変動が少ないことが求められますので、周波数安定度としては±30ppm~±100ppm程度の特性を持ったSPXO(*6)がクロック源として多く使われています。
出典:http://www.ndk.com/jp/ad/2013/001/index.html

 意訳すると「ppm値は普通のでいいッス」ということですね(笑)。

*:参考:http://fidelix.jp/technology/jitter.html

・マスタークロックジェネレータの効果とは
 さて、もし「ジッタ低減」を目的とするなら、製品の機能として以下は絶対押さえる必要があると思います。

・普通の水晶より明らかに低ジッタ性能の発振モジュール
・DACチップにダイレクトに供給できるMCLK出力

 特にふたつめは必須と思えます。だってDACユニット内でPLLかけたらそのPLL性能に上書きされちゃいますから。
 だとすると、「低ジッタ(実は超高発振精度)モジュール」の代表格である「ルビジウムモジュール」は256fsや512fsを発振しているハズです。ですが、実際には10MHzが規格っぽいんですよね。これを突っ込まれたDACユニットは、22.5792MHzや24.576MHzといったMCLKを内部でPLL生成しなくてはなりません。
 MCLKでなくLRCLK(サンプリング周波数)を供給する場合も多いですが、この場合はクロックを受けた機器が内部PLLで256倍や512倍してMCLKを生成しているハズです。整数倍(ていうか2のべき乗)はPLLに有利な逓倍数だとは思いますが、せっかく外部からクロック入れてPLLすんの? って思っちゃいます。
 なんかヘンだなと。

 加えて外部からのクロック入力にはノイズ混入などいろんなデメリットもあるでしょうから、内蔵原発振よりもそんなに良くなるとはあんまり思えないんですよね。確かに、原発振でなくてもジッタ性能がバツグンによい発振器の出力をバツグンに高性能なPLLするなら、原発振に匹敵する低ジッタクロックが得られるかも知れません。しかし、外部クロック入力機能があるようなコンスーマ機器はかなりの高級機ですから“自前の発振器のジッタ性能”がそんなに悪いとも思えません。
 私が無知なだけかも知れませんが…

 ということで、続けて、クロックを入力される側の例として、イコライザとして人気のBEHRINGER製DEQ2496(業務用)のマニュアルを見てみます。

~前略~ この信号は、セルフタクトおよびセルフシンクロ方式です。(複数のデジタル機器を接続する際に重要です)です。したがってDEQ2496と接続したAES/EBUデバイスの間に、ワードクロック接続は必要ありません
~中略~ もし、デジタル録音システムに含まれる複数のデバイスに例えばデジタルミキサーをつなげると、接続されているすべてのデジタル機器は、統一されたワードクロック信号を用いて同期する必要があります
~中略~ このワードクロック入力は、アナログ入力を使用する場合にのみアクティブになります。

出典:http://www.behringer.com/assets/DEQ2496_P0146_M_JA.pdf P.18

 データの流れの中にシリーズに入れてデジタルIN/OUTで使う場合、上記の通りRxとして同期生成したクロックで処理を行った後そのクロックで出力しますから、敢えて外部からクロックを入れる必要はないということですね。機能ブロック的には「通すとデータ処理されるS/PDIFケーブル」と見なせるでしょう。
 一方、複数機器(おそらくソース源)をパラレルに用いる場合はシンクロが必要になるということのようです。アナログの場合はAD変換してから処理するワケですから、確かにAD変換用クロックはアナログ出力側と同期させないとダメでしょう。でないとサンプル数が変わっちゃいますから。
 そうだよね、ってカンジです。

 ということで、上記ルビジウムクロックジェネレータや業務用イコライザの仕様からすると、

「クロックジェネレータ」は原則として業務用機器であり、主用途は「低ジッタ」もさることながら「正確な時間精度(安定度)をもっての複数機器間の同期

ではないかと思っています。主用途は同期ですが、制作音源のピッチが狂わないように周波数精度が必要、と。特に「温度差」によって曲の長さ(サンプル数)が変わっちゃったりしたら困りますので、OCXOなどが使われるのでしょう。
 ただし、AD変換においては「アパーチャ誤差」の発生を抑えるという意味で低ジッタ性能が必要になりますし、複数のAD変換装置を同時に使って録音(あとでミキシング)するような場合やアナログ変換を介しての編集などでは外部同期が必要になりますから、AD変換としては同期と低ジッタは両方必要ではあるでしょう。

 では、コンスーマ用機器の(本来の)用途は何でしょう?
 複数のソース源をミキシングしながら聴いたり一旦アナログに戻してエフェクトしたりはフツーはしないと思いますので、

「S/PDIFを使ったトランスポートとDACユニット間の外部同期」によってPLLを排することであり、単体の低ジッタ性能は副次的

だったのではないかと思えます。普通の原発振のジッタ性能でもS/PDIFのPLLより絶対優秀でしょうから、これは意味あると思います。
 Txだけに投入してもRxでPLL必要になりますし、Rxだけに投入したら先の記事の通りサンプル過不足が発生してしまいます。ので、やっぱり「同期用」が基本ではないでしょうか。
 SONYがCDP-R1とDAS-R1で実装していた「ツインリンク」と同目的です。同期とPLL排除が目的ならこのようにDACユニットからクロックを供給すればよいワケですから、ぶっちゃけクロックジェネレータユニットの意義は「?」です。
 「低ジッタ」を謳っていない製品もありますしね(後述)。

 ところで、例えば±20ppmというスペックは「必ず+20か-20ppm誤差がある」ではなく、当然「-20ppm~+20ppmに入っている」という意味です。ということは、もし内蔵発振器がバラツキ0ppmの“アタリ”個体だったら、恐ろしいことに個体バラツキの意味では外部クロックの効果は「ない…ていうか悪化?」ってことになりますよね。
 やっぱり、低ppmの本来の意義はジッタでも個体バラツキでもなく「温度変化や経年変化への耐性が高いこと」な気がします。

・マスタークロックジェネレータの発振は“低ジッタ”なのか
 ものすごくソモソモなハナシですが、上記を踏まえてちょっと見てみます。

・Esoteric製G-01  http://www.esoteric.jp/products/esoteric/g01/
 ルビジウム発振です。しかし、実は当製品のwebページには「低ジッタ」というアピールはひとつもありません。「安定性」「高純度」といった文言になっています。 [ps]や[dBc/Hz]といった単位のジッタに関するスペック提示もありません。
 業務用ブランドTASCAM製品(CG-2000他)も同様「安定性」をウリにしています。
http://tascam.jp/product/cg-2000/

・Antelope製Isochrone 10M  http://www.antelopeaudio.com/jp/products/10m-atomic-clock
 これは一応業務用。
 こちらもルビジウム。ことさら「低ジッタ」をウリにはしていませんが、「フェイズノイズ(位相雑音)」つまりジッタ性能は示されており、マニュアルによると「-140dBc/Hz@10kHz」のようです。
 が、これは上記NDKページにあるグラフに当てはめるとノーマル水晶発振器レベルです。
 見方違うのかな?

 これらを見ると、やっぱり「マスタークロックジェネレータ」という製品の基本的用途は「正確な時間精度(温度や経年変化への高耐性)」「同期」じゃないのかなと思います。もっと現実的には、ビデオコンテンツ作成時の画と音のシンクロっていう目的もありそうです(オーディオだけの見地からするとあんまり関係ないので調べていませんけれど)。

 一方、明確に「低ジッタ」をアピールしている製品もあるようです。MCLKの低ジッタ化を目指す場合は「低ジッタ性能がスペックで確認できる」&「MCLKダイレクト出力(入力機器がPLLしなくてよい)を持つ」モノがよいのだろうと思います。
 例えばMUTEC製MC-3+はジッタ性能「1ps以下」だそうです。「クロック精度(±0.1ppm)」とは別に示されています。MCLKは256fsになるようですが。
http://www.hibino-intersound.co.jp/mutec/3684.html


 MCLKはデジタルオーディオのキモです。
 外部クロックと内蔵クロックではその信号品質が大きく異なるでしょうから、ジッタの変化に限らず、間違いなく音質に影響するでしょう。
 ケーブル換えても激変するそうですがさもありなんです。


■おまけ

・水晶の発振周波数個体差を可視化する
 同じ周波数仕様の水晶デバイスでも、“ppm値の範囲内で”発振周波数は微妙に違っています(くどいですがそれはジッタではありません)。
 試しに以下の実験してみました。APIはもちろん排他WASAPI。

・波形再生ソフト:≪WaveGene 1.50≫ 1200Hz-3dBのサイン波 1648にて
・再生機器:UDA-1
・録音ソフト:≪WaveSpectra 1.50≫ 1648にて
・録音機器:SB-DM-PHD

 フォーマットとしては再生録音とも48kHzですが、UDA-1とSB-DM-PHD搭載水晶の発振周波数個体バラツキの違いが、録音したサイン波のサンプルポイントが時間と共にズレていく現象として可視化できるハズです。

    UDA1→SB(2)
    UDA1→SB(1)

 同じ録音の中から抽出したものです。
 一方はサンプルポイントの中間がピークっぽいですが、一方はサンプルポイントがほぼピークになっています。ゼロクロスラインの方が判りやすいでしょうか。この違いが周期性を持って変化していくことが確認できました(そんなに長い周期じゃないです)。録音側をPCのオンボLINE-INにした場合も同様でした。
 なお、SB-DM-PHDのOUTとINを直結するアナログループバックではズレないことも確認しました。再生(DA)と録音(AD)のMCLKが同じ水晶発振源だからです。オンボのループバックでも同じでした。

 SB-DM-HDの方は48kHzの512fsの水晶搭載が判明しているのですが、UDA-1の方は情報ありません。44.1kHz系1系統だとしたら48kHz系はPLLかも知れませんが、マクロな発振精度は原発振に支配されるでしょうから本件には影響与えないと思います。

 こりゃ、音楽制作現場などでは確かにクロックシンク必須と感じます。

・GPS方式クロックジェネレータ
 これって“原発振は空の上”ってことですよね。結構高級な水晶でも、同じスペック同型番であっても周波数の個体差は避けられないと思いますが、GPS方式の場合は個体差がないということになるのでしょうか。
 「TxとRxに別個体を使っても“同期できちゃう”」っていう特殊事情がありそうです。


メインメニューへ

テーマ : オーディオ
ジャンル : 趣味・実用

ERIへようこそ

Author:らかせ
 「最新記事」または「メインメニュー」からどうぞ。

・ファイルへの直接リンク以外はリンクフリー(連絡不要)です。
・一応、拍手にコメント(非公開)付けられるようにしてあります。
・DB的に利用しており、過去記事もガシガシ書き換えています。特に「最新記事」は初稿から一週間くらいは直してることが多く、大幅に変わっちゃうことも。ご了承ください。
・ということもありますし、記すまでもないですが無断転載(ファイル含む)はご遠慮ください。
・引用の考え方については「008:AVC基本コンセプトと使用機材履歴」をご参照ください。
・アフィリエイトはAmazonのみです。
・ハイパーリンクは当Blog記事のみです(054:節電記事のみ例外)。
・オーディオ再生環境については「008:AVC基本コンセプトと使用機材履歴」の当該日付を含む期間をご参照ください。

最新記事
カテゴリ
検索フォーム
FC2カウンター