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のDSDストリーム処理を調べる

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

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

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

*:PCM1795のΔΣ変換についての詳細は以下に記すリンク先記事参照

 ということで、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


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

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


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

サイン441-6dB2444


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

サイン441-6dB2488


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

サイン441-6dB24176


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

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

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

*:データシート上ではPCM時のΔΣ変換は128fsまでしか設定がないので、あくまでもノイズシェイピング状態からみた“相当”です。DSDデータはそのままアナログFIRフィルタに入りますが、PCMデータのΔΣ変換&アナログ化はTI社自慢のアドバンスド・カレント・セグメント方式であり、単純な1bitストリームではないためです。詳細は「みんなDSDを聴いている」記事をご参照ください。

・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は仕様オーバーですね… ってだからもともと仕様外だって(笑)。

 15/09/17追記:ASIOProxyバージョンアップによってDSD変換ブロックが非サポートの周波数はバイパスされるようになった模様。PCMのままASIO再生されます。asioproxy_readmeによると、本項で使っている0.7.1.2直後の0.7.2からかな?
 残念ながら48kHz系はバイパスされるようになりました。実は(公式には?)非サポートだったってことみたいです。

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


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

DSD64邦楽


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

DSD64洋楽

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


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

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

・スペクトルを拝見
 PCM再生の時、PCM1795のOSDFは8倍固定でかかります。
 そして、ΔΣブロックでソース周波数によらずDSD256相当の性能を持つマルチストリーム(マルチレベルストリーム。周波数的にはおそらく128fs)に変換しているようです。
 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のイメージングノイズカット動作について、実際のアナログ信号で可視化できたということですね。
 先の考察の裏取りにもなりました。


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

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

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

・メンドウなお仕事は極力PCでやっちゃってDACを余裕で動かす
 PC側でアップサンプリング→DSD変換してDACに渡すと、普通ならDACチップでやっているデジタル処理をほぼPC側でやることになります。ざっくり言うと、UDA-1内蔵のPCM1795を「DSDストリーム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パワーアップしたくなりました。困ったものです(笑)。


メインメニューへ

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

ERIへようこそ

らかせ

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

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

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