PCMの「TruePeak」とは何か

15/04/11初稿

 「ハイレゾとDACについて考えていたらいろいろメンドクサイことに気がついちゃったかも知れない」シリーズ(笑)。


■TruePeakとは何か

・データがクリップしていなくても再生するとクリップする?
 とある邦楽CD音源のUDA-1出力をアナログサンプリングしてスペクトルを眺めていた時のことです。
 頻度は多くありませんが、22kHz以上の帯域がヘンな表示に崩れることがあります。録音レベルを下げても発生します。DSD変換でも、PCMのそのまんま再生でもアップサンプリング再生でも同じです。フルスイングのサイン波では発生しないようにボリウム調整したヘッドホン出力でも発生します。
 しかし、プレーヤの≪foobar2000≫のボリウムをちょっと下げると発生しなくなります。

 ≪JRiver MediaCenter20≫でも、PCM単純再生、DSD256変換再生共に発生します。

フィルタリング・クリップ
(アナログキャプチャ)

 ずっと、たまたま何かFFT処理のツボみたいな時に発生するのかと思ってたけどなんだか違うみたいです。
 ということで、これをきっかけ(*)にいろいろ調べることになりました。

*:この「きっかけ」には何か勘違いあるかも知れませんが、以下考察には影響ないと思います。


 クリップして潰れている時の現象? と思って“海苔系音源”で見てみると確かに多発します。しかし、当該ソースの最大音量を≪SoundEngineFree 5.02≫で調べてみると「-0.10dB」です。
 ≪Audacity 2.0.6≫の1of1条件で調べてもクリップしていません。

 これってもしかしてどこかで見た記憶がある「TruePeak」ってヤツでは? と、Resampler-Vで2倍アップサンプリングしたファイル(Convert機能で作成)を作ってみたところ、最大音量は「0dB」になり、「1of1クリップ」も大量発生しました。

 以下、発生箇所の例です。
 上がオリジナル、下が2倍アップサンプリングです。

TruePeak:1644と1688:音楽:トリミング2

*:ただし、このポイントはきっかけになった「スペクトル崩れ」箇所ではありません。
 また、1サンプルのみがフルスケール値になったとしてもピーク潰れとは限りません(本来あるべきレベルはもっと高いのに飽和したのかリアルにフルスケールなのかは判らない)。上記は単純に「アップサンプリングでピーク値が上昇する」例として使っています。
 1サンプルのみフルスケール(フルビット)であることを≪Audacity≫表示にならって「1of1クリップ」と呼ぶことにします。

 オリジナルのサンプルは全くクリップしていません。が、2倍アップサンプリングして“本来あるべきアナログ波形”に近づけたら「1of1クリップ」が発生しています。
 これはPC内でのアップサンプリングで発生した例(*)ですが、DACチップ内でも同様の処理であるオーバーサンプリングデジタルフィルタ(PCM1795の場合は8倍)が行われていることはDAC動作を考えた記事などで詳述した通りです。

*:本実験は、解りやすくするために2倍で実施しています。

 つまり、PC内でアップサンプリングしなくとも、DACユニット内のデジタル→アナログ変換において

オーバーサンプリングデジタルフィルタ処理=リコンストラクションフィルタ処理によってピークは上昇する

のです。

 「TruePeak」「インターサンプルピーク」などと呼ぶようです。
http://pro.miroc.co.jp/2012/08/03/6782/

 DSDのMaxPeak考察時に参照したJPPA資料にもあります。
http://www.jppanet.or.jp/documents/audio_doc/jppa_chair_of_loudness_vol-1_2010.pdf

 ARIBの資料。P.33あたりが詳しいです。
http://www.arib.or.jp/english/html/overview/doc/4-TR-B32v1_0.pdf

TruePeakのリクツを確かめる
 TruePeakは、いわゆる音圧戦争によって発生した現象ではありません。もちろんその方が発生しやすくなるでしょうけれど、意識的に音圧を上げたりせず良心的に0dB未満に抑えた場合でも発生するものです。
 それを確かめてみましょう。

 以下は、≪WaveGene 1.50≫で生成した16kHz:2448サイン波(左)と、それを≪foobar2000≫のResampler-Vでx4:24192にした波形(右)を並べたものです。≪Wavosaur≫にて。
 ピーク関連の実験ですので、念のため-3dBで生成しています。
 16kHzを48kHzサンプリングですから、1周期には3サンプルしかないことになります。

TruePeak:2448とそのx4サイン波 30°:トリミング

 1周期にサンプルポイントが3カ所しかありませんからそれがサイン波のピークを捉えるとは限らず、むしろサンプルとサンプルの間にピークがあることの方が多くなります。
 これが「インターサンプルピーク」です。サイン波なら、一番厳しいのはサンプルリングのちょうど中間がアナログ信号のピークだった時です。本例の場合は位相が30度ズレた時そうなります。波形生成で言うと、周期をゼロクロスからではなく30/360=1/12進んだ状態からスタートしている状態です(自分で作図してみればすぐ解ります。上記資料に図ありますし)。周波数が高くなるほど(1周期のサンプルポイントが少なくなるほど)リアルサンプルピークとの差が大きくなるのが解ると思います。

 上記2448波形は30度ズラして生成したものです。16kHz-3dBのサイン波を48kHzキャプチャした時、たまたま波形とキャプチャ周期のタイミングが30度(1/12周期)ズレた場合のシミュレーションになっているハズです。
 左側の2448では、プラス側振幅は全く-3dBに届いていません。先の資料の通りおそらく-6dB程度低いでしょう。しかし、サンプリング定理に基づいてリコンストラクションされるとキレイなサイン波が再現されるのです。右側の24192は、4倍アップサンプリングすればほぼサイン波が再現できることをシミュレートしていることになります。

 (アップサンプリングなどしない)普通のPCM再生でもTruePeakは発生していると思われます。ので、DACユニット内のOSDF(*)でも上記と同じことが起きているようです(リクツ上その方が納得できます)。

*:Over Sampling Digital Filter

 でも、感覚的には腑に落ちないところもありますよね。本当にそうなっているのか? ていうか、元のデジタルデータよりも約6dBも大きなアナログデータに再現されるのって本当に正しいのか? と。
 そこで、実際にこの2448ファイルを無加工“ネイティブPCM再生”してアナログキャプチャしてみました。環境は「基音と倍音」記事と同じです。

TruePeak:2448サイン波16kHz-3dB 30°の再生波形
(アナログキャプチャ)

 データとしては3サンプル/周期しかなく、しかもプラス側ピークはデータ値としては-9dB程度しかないのに、キレイな16kHzサイン波が再生されています。
 サンプリング定理(リコンストラクション処理)って凄いですね。

・TruePeakは制作側でどう扱われているか
 さて、とすると

「デジタルデータの値としてピークがサチっていなくても、アナログ化したらクリップする可能性がある」

と言うことです。
 制作サイドが、44.1kHz(や48kHz)のデータとしてサチらないようにピークレベルを確認しても、再生(DA変換)におけるリコンストラクションフィルタによってサチる(ピーク潰れが発生する)ことがあるワケです。
 そして、それはDAC(リコンストラクション)が余計なことをしているのではなく、正しい動作なのです。

 単純にAD→DAするだけであればアナログ波形が復元されるだけで元のアナログ波形よりピークが上昇することはないでしょう。
 が、一般の音楽制作ではそうはいきません。デジタルドメインでミキシングしますしシンセなどの人工音声も入ってくるでしょうから。
 少なくとも非ハイサンプリングの音楽データにおいては、リアルデータ値で注意していてもダメってことです。

 これを避ける=事前に確認・修正する方法はあります。データをアップサンプリングしてDAC内におけるリコンストラクションをシミュレートすればよいのです。上記資料には、4倍すればリアルサンプルピークとインターサンプルピークの誤差を0.3dBにまで抑えられるとあります。上で見た24192(4倍)ファイルではほぼ16kHzサイン波が再現できていますので、確かにそのようです。
 「アップサンプリングでリコンストラクションをシミュレートし、クリップしないか確認し、修正する」ということですね。

 以上のことはデジタルオーディオのリクツを熟知している専門家にとっては意外でもなんでもないことだと思います。
 また、アップサンプリングによるクリップチェックは確認だけであってデータに手を加えるワケではありませんから弊害はありません。なので実施していて当然と思いますが、どうもそうではないようですねぇ。
 「TruePeak問題」は制作現場には浸透していなかったのでしょうか。それとも、あまり気にしなくて良いという判断だったのでしょうか。
 まあ、そもそもインターサンプルのピークどころか「“リアルサンプルのピーク”をガンガンクリップさせまくるマスタリング」が横行しているくらいですから、見えないピークなんて、知ってても無視なのかもしれません(苦笑)。

 昔のCDは2~3dBヘッドルームマージンがあるものが多いですが、“かつては”こういうことも配慮していたのかも知れません。

 web検索していたら、「Mastered for iTunes勉強会」の報告書(*)という情報を見つけました。
 この中の【クリッピングをチェックするツール】項に、「すごい数出てくる」「いくつかなら問題ない(とAppleに言われている)」「compかけてガツガツ入れてる音源では1.5dBくらい下げないと出てきちゃう」などとあります。
 おそらくアップサンプリングしてチェックかけるツールなのだと思いますが、もしかすると圧縮エンコードのシミュレーションも入っているかも知れません(圧縮エンコードするとデコード時にピークが上がることがあるらしい)。
 いずれにしてもその結果について意外そうに言われると、TruePeakは制作者側にあんまり意識されてないような気がします。

*:http://jarec.com/report/2492

 どうも“そういうもの”ってことみたいですねぇ。意外ですけれど。


■TruePeakをどうすればよいか

 制作側では“そういうもの”らしいとなると、じゃあ、これエンドユーザはどうすればいいのでしょう?
 「発生数が多くなければ無視してよい」ってのは作る方の事情であって、聴く方にすれば発生数の多少なんて音源データ解析しないと判らないですもんね。

・デジタルボリウムでデータ演算して回避
 PCMそのまま再生でもPCM→DSD変換再生でも、プレーヤ側で2dBくらい絞って送出すれば発生しなくなるっぽいですので、今後はそうしようかなぁ。
 でも、

「もともとピークが-3dB以下くらいのソースならそのままでもいい」
けれど、逆に
「もともとクリップしまくりのソースだとTruePeakを救っても焼け石に水」

ですよねぇ。だからってソースの素性をいちいちチェックしてから再生ってのも… リッピング時にチェックしてフォルダにマーキングでもしとく?(苦笑)

 また、やるなら排他WASAPIやASIOなどビットパーフェクトなAPIに対応してて、かつ、ボリウム機能があるプレーヤを使う必要があります。アップサンプリングする場合はそれより前にボリウム絞らねばなりません。プレーヤソフトに対する条件が増えちゃう=選択肢が狭まるということですね。TruePeakを気にするのなら、ですが。
 ちなみに≪foobar2000≫ではボリウムはDSPより前段でかかっていると思います。

・デジタルボリウムは音質劣化しているのか
 デジタル演算でボリウム調整することには、「音質劣化する」と抵抗ある人も多いと思います。
 ですが、ちゃんとしたプレーヤソフトならそれはあまり気にする必要はないと思っています。
 例えば≪foobar2000≫の内部処理は32bitFloatのよう(*)ですから、(32bitネイティブ音源以外は)“音声情報劣化”を心配する必要はないでしょう。

*:BBSに、SoX Resamplerはプラグインとして32bitFloatでfoobarコアとIN/OUTしているという記述があることから。

 どうして気にする必要ないのか、ちょっとたとえ話で説明してみます。

 PCさんが持ってる10円をDACさんに7/8にして渡さなければならなくなったとします。PCさんとDACさんが“円単位”でしか取引できない場合は四捨五入して9円にするしかないですが、“銭の単位”で取引できるならバッチリ「8円75銭」渡せますよね。
 もちろんいくら拡張しても割り切れるケースの方が少ないですが、例えば16bitを32bit拡張して演算した結果は、元の1bitを65,536段階で表現しているワケで、さらにそこで残る誤差(余り?)はもう無視していいでしょう。

 個人的には、ビット拡張してなお発生する誤差より、TruePeakによるクリップ発生の方がキモチワルイです。

・“ビット落ち”とは何か
 ところで、デジタル演算が嫌いな理由としてよく「“ビット落ち”が発生するから」と言われますが、この言葉、正しく用いる必要があると思っています。
 16bit深度データのプラス側フルスイング値は7FFFhです。例えばこれを256分の1の音量にする時、16bitのままだと8bitシフトですから007Fhになってしまいます。情報量が8bit分もなくなっています。明らかに“ビット落ち”ですね。
 しかし、24bit拡張して処理すれば7FFF00h→007FFFhですよね。元の情報量(16bit分)はそのまま残っています。
 これは、ざっくり言うと、「ボリウム演算する時、16bitを24bit拡張して実施するなら8x6=48dBゲインダウンするまでは情報の欠損はない」ということです。48dB以上絞る場合に初めて気にした方がよい、ということですね。
 逆に、EQなどで音量が上がる可能性がある場合は24bit拡張した後一旦07FFF0hなどにしてから演算すればよいワケです。

 以上、16bitデータを32bit拡張演算して32bitや24bitで再生するような場合、情報量欠損はほぼ発生していないハズですので“ビット落ち”という表現は不適切だと思っています。
 一方、24bitデータの場合、32bitで受けられるDACチップじゃないとDAC-I/Fの段階でビット深度拡張できず情報量欠損となりますから、“ビット落ち”といってもいいでしょう。例えば6dB以上音量絞ったら有効ビットが23bitに減りますので“1bit落ち”です。
 しかしそれって「ダイナミックレンジが144dB→138dBになる“だけ”」です。それを音質劣化と認識できる人はたぶんいない…ていうかそれ以前にその音質違いを表現できる再生装置がない(熱雑音以下?)でしょうから、実効的には無視していいと思っています。逆に、16bitが15bitになっちゃうビット落ちは無視できないと思います。
 ので、「ホントにビット落ち(情報量欠損)しているのか」「落ちてるとしても実効的な音質劣化なのか(それによって得られる効果を上回る劣化なのか)」をよく考えてシステム構築・運用した方がいいと思っています。

 なお、演算結果7FFFh(マイナス側なら8000h)を超えてしまうことは単純に「オーバーフロー」、波形的には「ピーク潰れ」「クリッピング」と呼ぶべきでしょう。ビット落ちてないので。敢えて言うなら“ビット溢れ”?

・≪foobar2000≫の内部処理
 ≪foobar2000 1.3.6≫で実際に32bit内部処理されているかカンタンに調べてみました。ボリウムが一番手軽なのですが、Convert機能によるファイル化ではボリウム効かないんですよね。といってウチの機材のS/PDIFデジタル録音方式だと24bitまでしか扱えません。そこで、16bitデータに≪-6dBLimiter≫というプラグインかけてConvert機能の32bit出力でファイル化。あんまりいい方法じゃないと思いますけどとりあえず。
 値を覗いてみたところ、おそらく32bit有意な値になってると思います。最大振幅値は7FFFhが3F6178D7hになってましたので。

1648.png
1648を3248で-6dB

 色付けしたサンプルはサイン波の1/4周期(ゼロクロス~プラスピーク)分です(ステレオ)。

 ボリウム演算がビットシフトに相当する比率じゃない場合はデータ値は変わってしまいます。ですので、私も気持ち的には「なるべく弄りたくない」派です(笑)。が、例えば送り出し側でアップサンプリングする場合、増やしたサンプルだけでなく元サンプルも値は変わってしまいます。何も加工せずに出したとしても、イマドキのDACユニット内ではOSDFなど「デジタル演算」は必ずかかります。
 ので、「送り出し側でのデジタル演算の副作用はあまり気しても仕方ない(ビット落ちレベルにならないなら)」と、なんとか自分を納得させています。

 ≪foobar2000≫は上記の通り内部32bit処理、UDA-1(PCM1795)は32bit入力、そしてWASAPIもASIOも32bit出力可能、です。
 おお、「フル32bit処理」完成だ(笑)。
 “なんちゃって32bit”とか言われることもあるPCM1795ですが、スペック的にはキモチいいですね(爆)。

・FloatingPointの意味
 ところで、上記説明は敢えて「FixedPoint(ていうかINT:integer)」形式に限定しています。プレーヤソフトがFloatingPointで演算しても、DACチップで再生するまでのどこか(プレーヤソフトかDACユニット内のデータレシーバ部か)でFixedPointに変換されてしまうのが一般的だと思いますので。
 ていうか、浮動小数点形式は「計算」のためのものですから、普通はプレーヤソフトの出力時点でINTになってるハズです。Floatで受けられるDACユニットがあったとしても、内部で何らかの演算処理をFloat形式で行う仕様(*)じゃないと意味ありません。それでも、DACチップにはINTで入れる必要があるでしょうから演算結果はINT変換されちゃうのですが。
 「Floatで受けられるけど特に内部演算はしないDACユニット」があるなら、受け取ってもただINT変換するだけですから、対応フォーマットを広げるって意味しかないです。
 「Floatで受けてOSDFやΔΣ変換演算をFloat形式で行うDACチップ」を搭載しているなら別ですが、そのようなチップは寡聞にして知らないです。ないですよね?

*:Roland社の「S1LKi」エンジンはこれに相当します。32bitFloat形式で受け取り、DSPで1bit化やPCMx4処理まで行うようです。

    


 なお、念のためですが、本Blogで言う「ピットパーフェクト」とは「意図した加工するにせよしないにせよ、その前提として必要な“意図しない加工が発生しない転送・処理システム、状態”」という意味です。意図した加工を否定するものではありません。


■実事情

・ハイレゾとTruePeak
 ハイレゾ(ハイサンプリング)には、TruePeakが発生しにくいというメリットがあるかも知れませんね。インターサンプルピークとリアルサンプルピークと差が小さくなりますので。
 ただ、96kHzくらいだとまだ残っちゃうみたいです。上記資料の通り、やっぱり4倍(176.4kHz,192kHz)程度は必要ってことですね。

・DACとTruePeak
 JPPA資料によると4kHzくらいならリアルサンプルとインターサンプルの誤差は0.3dB程度のようです。フルスケールになるような周波数は5kHz程度までと仮定すると、OSDFかける前に0.5dB程度絞ればかなりのTruePeakは防げるのではないかと思います。まあ、実際の楽曲では複数の波形(周波数)が重なるのでカンペキに防ぐことはできないでしょうけれど。

 ここで思い出されるのが、DSDにおける「MaxPeak」について調べてた時、同じファイルでもPCM→DSD変換再生よりPCM再生の方が0.4~0.6dBほどレベルが低かったことです。
 もしかすると、DACユニットはPCM再生モードではTruePeakを考慮し、「OSDF前段のAttenuation機能で0.5dB絞る」ようにDACチップを設定しているのかも知れません。
 定かではありませんが…


メインメニューへ

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

DSDの「MaxPeak」とは何か

15/03/28初稿

 PCM→DSD変換によるUDA-1の“なんちゃってNOS-DAC(というかアナログFIRフィルタとしてのみ)”用法の際、ちょっと気になってるのがこれ。

具体的にはDSDはPCMよりも最大で6dB低くなっている。澤田氏によれば、「DSDはノイズシェーパー(Δ∑変換器)の技術を用いて可聴帯域のダイナミックレンジを稼いでいるため、理論上の100%変調をかけるとノイズが増加してしまう」ため、抑えられているそうだ。
出典:http://av.watch.impress.co.jp/docs/topic/20131029_618702.html

 この記事によると、SACD規格ではΔΣ変調フルスケールの-6dBで使うように規定されているようです。それ以上のゲインではΔΣ変調歪みが出るからだそうで。
 とすると、PC側で行うPCM→DSD変換の際、変調歪みを避けるためPCMのピークを絞るべきなのでしょうか?
 というか、そもそもPCM再生の時、DACチップ側で行われるΔΣ変換はフルスケール(100%変調)なのでしょうか?


■6dBの謎

 早速、441Hz-6dBサイン波(2444)を再生してアナログキャプチャ、波形のレベルを見てみました。
 すると、≪foobar2000≫のリアルタイムDSD変換再生、≪JRiverMediaCenter≫の同再生、PCMそのまま再生(DACチップ内でΔΣ変換している)では、少なくとも数dBも違うようには見えませんでした。

 PCMをΔΣ変換する際、ソフトもDACチップも、すべて6dB絞ってる? またはすべて絞ってない?

 DACチップから出てLINE-OUTされるまでのアナログ信号ゲインはPCMモードとDSDモードで違っていても不思議ではないので、デジタルドメインで何か起こっているのかこれでは解りません。

・デジタル事情を調べる
 まず、“ライターがホントに解って書いてるのかアヤシイ(苦笑)”レポート記事や、メーカの宣伝文句などでこんがらがる前に、「技術資料」を紐解きます。

 JPPAという協会の資料だと、「-6dBから+3.1dB上(つまりフルスケールから-2.9dB?)が“MaxPeak”」とあります。
http://www.jppanet.or.jp/documents/audio_doc/jppa_chair_of_loudness_vol-1_2010.pdf

 TIのDACチップPCM1738の技術資料には明確に「DSDはPCMより6dB出力レベルが低い」とあります。
http://www.tij.co.jp/jp/lit/an/jaja008/jaja008.pdf

 プロ用サイト(と銘打っている)。PCMのフルスケールがDSDの50%変調に相当する図があります。
http://www.super-audiocd.com/professional/guide5.php

 これらを見ると、どうもSACDのフルスケール=0dBは確かにΔΣ変調50%のようです。DACチップからは、(細工しない場合は)DSDの0dBはPCMの-6dBのレベルで出力されるということでいいと理解しました。

 しかし、DSDには「Peak」と、それより3.1dB高い「MaxPeak」というふたつのピークがあるようです。PeakがMaxじゃないってどういうこと?

 というデジタル事情を踏まえ、さて、DSDとPCMの実際のアナログレベルはどのような関係になっているのでしょうか。
 冒頭のmarantzインタビュー記事ではいろんなケースがあるようですが…

・アナログ事情を試す
 ということで、UDA-1で実際にやってみることに。
 まず、便宜上“データ的な意味”でのゲインを以下のように表記することにします。

・DSD50%変調=DSD0dB  100%変調はDSD6dBとなります
・PCMのフルスケール=PCM0dB

 本当はSACD0dB、0dBFSなどと表記するようですが、本稿においてはこの方が解りやすいと思いまして。

 最終的なアナログレベルはアナログ段での増幅率によるのでこの数値と直接関係はありません。
 アナログキャプチャでのレベルは「DSD」や「PCM」を付けずdB表記します。

 そして、以下の条件でファイルの再生波形をアナログキャプチャで観察してみます。

・再生ファイル・・・サイン波 1200Hz-0dB/24192 ≪WaveGene 1.50≫で生成
           データ値改変を防ぐためリサンプラは使用しないのでPCM最高精度の192kHzとした
           +側ピーク値は7FFFFFhになっている(確かに0dB)ことをバイナリエディタで確認
・キャプチャ環境・・・Z68自作PCにSB-DM-PHD(2496モード)  ≪WaveSpectra 1.50≫にて
            録音レベル79(おおよそPCMフルスケール=キャプチャ時0dBになるように調整した結果)
           *オンボのLINE-INはPCMフルスケール入力できず1dBほど下げないとサチってしまうので
            SBを使用
・DSD変換・・・≪AudioGate 2.3.2≫  SACDを想定して2.8MHzに変換(DSD64)
・プレーヤ・・・≪foobar2000 1.3.6≫
        PCM→DSD変換再生の設定はDSD128(UDA-1仕様内で使おうということで),TypeB(FP32)
        DSD→PCM変換再生の設定は以下の通り

fb2kLPCM変換設定
*:ちなみに当設定では30kHzくらいでLPFかかります。「Multistage」では設定したSamplerateのナイキストでLPFかかります。「Installable FIR」は何かインストールしてないと使えませんでした。


 いろいろ試した結果、アナログレベルは以下のようになりました。「P」はPCM1795にとってPCMモード、「D」はDSDモードです。

P:PCM再生・・・0dB
     そのようにアナログキャプチャレベルを設定したのでアタリマエ。

D:PCM→DSDリアルタム変換再生・・・0dB
     ただし、こちらの方がPCM再生より0.4~0.6dB程度レベルが大きくなる。
     DACチップ内やDACチップ外で、PCMとDSDではDA変換動作が違うため?
     本稿の目的は3dBクラスの差違を見ることなのでとりあえず無視し、
     実際にはこちらを0dBとして調整した。

D:≪AudioGate≫でPCM→DSD変換して生成したdsfファイルをDSDネイティブ再生・・・0dB
     ≪foobar2000≫によるリアルタイム変換再生とゲインの扱いは同じと推定。

P:上記dsfをDSD→PCMリアルタイム変換再生・・・激しく音量低下。目視だがおそらく半分=-6dB

P:上記dsfを≪AudioGate≫で再び24192化したファイルをPCM再生・・・0dBに戻った。
     DSD→PCM変換については≪foobar2000≫とゲインの扱いが異なる。

D:≪AudioGate≫でゲイン+3dB設定でdsf化したファイルのDSDネイティブ再生・・・完全にクリップ。
     +3dBで再生している模様。

P:上記dsfをDSD→PCMリアルタイム変換再生・・・-3dBの一見マトモなサイン波が再生される。
     -6dB + 3dB = -3dB になってると推定。
     そして、+3dBというゲインでも「“dsfファイル内では(データとしては)”クリップしていない」ということ。
     これがPCMでは不可能な「MaxPeak」ということではないか?

P:同じく+6dB設定で作ったdsfをDSD→PCMリアルタイム変換再生・・・ピークあたりの波形が崩れた。
     また、DSDファイル内ではフルスケールのハズだが、再生されたアナログは0dB近傍まで
     届いていない。
     これが50%以上の変調率だと歪みが出るってことではないか?


 以上を見ると、DSDデータのピークはやはりΔΣ変調100%から-6dB(DSD0dB)が基本であって、DACチップ内でもその通り再生されているようです。

 また、UDA-1ではPCM0dBとDSD0dBの最終的アナログ出力レベルを揃えていると言えます。
 「DACチップ内の処理 or 外の処理」「デジタル or アナログ」などの段階や方法は解りませんが。
 DACチップ内の「Attenuation」機能でPCMを絞ってるような気はしますが…

 さらに、≪AudioGate≫では、PCMとDSDの相互変換でDSD0dBとPCM0dBをイコールに置いているっぽいですね。PCMのフルスケールから+3dBゲインアップしてもDSDデータとしては存在しえるようですが、PCMに戻すとサチってしまいますので。
 ≪foobar2000≫のPCM→DSD変換再生でもそうしている(PCMのフルスケールがDSD変換してアナログ0dBで再生されるので)ようですが、DSD→PCM変換においてはDSD6dBをPCM0dBに当てるのをデフォルトに置いているようです。つまりDSD0dBはPCM-6dBとして再生されるということですが、イキナリ明らかに音量が小さくなりますので聴感上も矛盾ありません。デフォルトではPCMで表現できない「プラスdB」の世界に入らないようにしているのでしょう。ここは≪AudioGate≫とコンセプト逆ですね。
 なので、0~+6dBまでゲイン調整可能になってるんですね。
 余談ですが、PS3のSACD再生音量がとっても低かったのはこのリクツかも知れません。

 ということで、少なくとも≪foobar2000≫のPCM→DSD変換においてはPCMフルレンジが変調率50%だと思いますので、“なんちゃってNOS-DAC”用法においてPCMのゲインを気にする必要はなさそうです。
 逆のDSD→PCM変換はちょっと考慮する必要ありそうですね。

・クリップしているのは出力か入力か
 実は上記実験ではこれが判っていません。
 DSD0dB以上のdsfファイル再生(上記でやったのは3dBと6dBだけですが)のキャプチャは、

・録音ボリウム下げてもサチる
・念のためやってみたM/BのオンボLIN-INでもサチる
・UDA-1純正プレーヤでもサチる

のですが、これだけだと

「出力がクリップしてる可能性」と
「出力はクリップはしていないがLINE-INが受けられないレベルなので受け側でクリップしている可能性」

両方考えられます(厳密には両方ダメな可能性もありますが(苦笑))。確かめるためには、どちらかで「確実にクリップしていない状態」を作る必要があります。
 UDA-1の出力をLINE-INが充分受けられるレベルに調整してキャプチャできればいいのですが…
 世の中にはゲイン調整するアダプタなどもありますね。

  ←-10dB     ←-20dB(商品説明にないけど)


 けど、このためだけに買うのもナンなので、「ボリウムを適量に絞ったUDA-1のヘッドホン出力」をキャプチャすることにしました。

 再生ファイルは、≪WaveGene≫で生成した0dBのwavを≪AudioGate≫でゲイン設定0dBと3dBでdsf化したものです。
 CDやSACDを意識して周波数は44.1kHz系で。ビット深度は波形歪みを見るので24bitで。疑似周波数が発生しないようサンプル数が整数になる1470Hzのサイン波としました。
 キャプチャ環境はハイレゾを聞いて見る記事と同じです。


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

DSD+0dB HP出力波形


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

DSD+3dB HP出力波形


 +3dB化したdsfファイルのDSD再生では、ゲイン弄っていない0dBのdsfファイルより3dB大きいと思われます。
 これで、UDA-1のDSD0dB=PCM0dB以上のアナログレベルでサチっていたのはキャプチャ側だと判りました(ヘッドホン出力は大丈夫だけどLINE-OUTはダメなんてことはないでしょう)。
 DSD3dB、0dBを超えたあたりからやや乱れ、頭がワニャワニャしてるのが気になりますね(笑)。

 しかし、これでもまだUDA-1の出力が一般機器より“大きすぎる”可能性が残ります。仕様には2Vとありおそらく2.0Vppのことであり、DSD3.1dBがそのスケールだと思いますので異常とは思えませんけれど、念のため。
 そこで、UDA-1のLINE-OUTをAVアンプであるDSP-Z7のLINE-INに入れ、DSP-Z7のヘッドホン出力を採取してみました。UDA-1の0dB以上の出力が一般的なAV機器の標準より大きすぎるのならDSP-Z7でもサチってしまうハズですが、UDA-1のヘッドホン出力と同じ結果となりました。
 また、+4dB,5dB,6dBのファイル再生しても、ピークはドンツキのまま(サイン波の頭が潰れていく)になるようです。
 以上、

「UDA-1のアナログLINE-OUTのフルスケールはDSD3.1dBまでであり、PCMのフルスイングより3.1dB大きい」

ということです。
 そして、DSP-Z7(まっとうなAV機器の代表として)のLINE-INはそれを受けられますが、オンボやSB-DM-PHDといったPC用機器(*)のLINE-INの許容レベルは超えてしまうということですね。

*:PC用機器のLINE-INはPCMデジタル録音するという目的がありますので、LINE-IN=AD入力のフルスケールを、PCM0dBの一般的アナログフルスケールレベルで規定&固定しているのかも知れません。


■「DSD変調歪」を可視化する

 マトモなDACユニットならDSD3.1dBまではちゃんと再生できるハズです。
 ですので、上記「DSD3dBサイン波キャプチャ」において頭がウニャムニャしているのはUDA-1のアナログ性能などの問題ではなく“変調歪み”によるものだと思えるのですが、UDA-1の出力限界点に近いということもあり、断定は躊躇します。
 そこで考えました。
 上記のファイルをプラスdBゲインでdsf化した後、-6dB設定で再PCM化することで、「DSD領域でDSD0dB以上=変調率50%以上における変調歪み」をデジタルドメインのスペクトルで見ることができるのではないでしょうか。

 ただ、特にDSD3.1dB以上は“あっちゃダメ”な領域なので、≪AudioGate≫の変換保証範囲外である可能性もあります。


0.DSD+0dB-6dB
 とりあえずフツーのハズの0dBを。

DSD+0dB-6dB.png


1.DSD+3dB-6dB

DSD+3dB-6dB.png


2.DSD+4dB-6dB

DSD+4dB-6dB.png

3.DSD+5dB-6dB

DSD+5dB-6dB.png


4.DSD+6dB-6dB

DSD+6dB-6dB.png


 確かに50%~100%領域はフォーマットとしては記録できるが音質はどんどん悪化する領域っぽいですね。
 上記はスペクトルを優先しましたが、波形の方を拡大すると頭がウニャムニャしてるのも確認できます。

 つまり、DSDにおける「Peak」と「MaxPeak」とは、

「突入的なピークを許容するマージンとしてDSD3.1dBまでは許可する(=MaxPeak)けど、なるべくDSD0dBで抑えときなね(=Peak)」

ということのようです。
 DSD音源商品で実際にあるかどうか知りませんが、これを見ると、規格上許されてるからとMaxPeakまでガンガン突っ込む「DSD版海苔マスタリング」とかあったらヤですね… 元々海苔マスタリングなPCMデータをPCM0dB=DSD3.1dB設定で変換などされたら悲惨なことになりそうです。


 なお、UDA-1のPCMフルスケール再生においてこのような歪みは認められませんから、ΔΣブロックにおける変調歪みについては充分考慮されていると考えていいでしょう。まあ、アタリマエと言えばアタリマエですね(苦笑)。
 なので、少なくともPCM1795においては、「PCM再生の時も内部ΔΣ変換ブロックの変調歪みを考慮して3~6dBくらい下げて入力した方がいいカモ?」といったことはなさそうです。


■MaxPeakの現実

 PCMをDSDに変換することで「なんちゃってNOS-DAC」として使う時、PCM0dBをデフォルトで敢えてDSD3.1dBなどにゲインアップする変換ソフトは多分ないと思いますので、変調歪みに関して考慮する必要はまずないでしょう。一応、変換ソフトはそのヘンの仕様を確認してから使い始めた方がいいとは思いますが。
 また、通常のPCM再生においても、少なくともPCM1795では充分考慮されているようです。万全を期すなら、DACユニットはそのヘンの仕様を確認してから使い始めた方がいいかも知れませんが。

 とりあえずは一安心ですが、ハイレゾ配信などの「DSD音源商品」をDSDネイティブ再生する時の事情が気になってきました。当面やらないとは思いますが(笑)。

・「DSDファイルの規格」はどうなっているのか
 ところで、+3.1dBまで許容されているというのはあくまでも「SACD用DSD」規格(ScarletBook AnnexD.3)のハナシです。
 SACDは専用プレーヤでしか再生できませんが、DSDファイルは単体DACユニットなど“ディスクプレーヤ”以外でも再生します。考慮すべき事情が異なりそうですが、「DSDファイルオーディオ」の規格はあるのでしょうか。

 DSD音源商品はSACD用を流用するケースが多いような気がしますので、事実上ScarletBook規格に準拠しちゃってると考えた方がよい気がします。また、後述するweb記事などを見ても、おそらくDSDファイル制作は“SACD用でなくても”ScarletBookの通り+3.1dBをMaxPeakにしてるのだと推察します。
 もし、DSD“ファイル”再生規格はDSD0dBまでだとするなら、ちゃんと“DSDドメインで”DSD0dBをピークにゲイン調整してから売ってるのでしょうか?
 たぶんそんなことしてないと思います(笑)。

 ですので、上記の通り例えばUDA-1のLINE-OUTを入れるとクリップしてしまうLINE-IN機器もありえます。
 その場合は、DSDドメインでのデジタルボリウムは一般的にはムリなので、DSDネイティブ再生しようとするとユーザ側ではどうしようもないということになります。まあ、問題になるのはPC用くらいしかも知れませんけれど。
 それより、例えば≪AudioGate≫がDSD0dBをPCM0dBに一致させている(ゲイン設定しないでPCM変換するとDSDの0~3.1dB領域はクリップする)方が問題かも?
 といってもそんなに山ほど当該目的のソフトあるワケじゃないですし、ゲイン設定できますし、そもそもあんまり出番もないかもですが(苦笑)。「いつかDSDネイティブ再生できるDAC買う」つもりで前倒しでDSDファイル買ってPCM変換して聴くような場合くらい?
 でも、気をつけないとですね。

・製作側はどうしているか
 こちらの記事では、ピークはDSD0dBではなくDSD3.1dBでAD変換しているようです。

レベル調整時には、SADiE上のメーターでチェックを行い、マックスピークが+3.1dBを超えないようチェックする。というのは、SACDとして販売し再生する場合は、SACDプレーヤー側に3.1dB分レベルを下げて再生する機能が入っていたが、PCで再生される配信音源の場合では、PC側にそういった機能がないため歪みの原因になってしまうのだという。
出典:http://www.phileweb.com/interview/article/201402/26/220.html

*:主旨からは外れますが疑問点を。
 文脈では「+3.1dBを超えないようにすることでPC再生で歪みを発生させないようにしている」ように読めますが、ScarletBookに準ずるならそこで抑えるのは当たり前ですよね。
 「SACDプレーヤではDSD3.1dBをアナログ出力の最大振幅にしていたが、PCではしてない=PCM0dBをフルレンジとしているので“もともと”+3.1dBレンジオーバーするところにさらにオーバーすると“さらに”歪みの原因になる」と読解すればいいのかな?

 OTOTOYにも以下のような音源説明があります。

また、DSDのネイティヴ再生を念頭に置いて、リマスタリングしていますので、以下のことにお気をつけ下さい。DSDにはPCMよりもヘッドルームがあります。PCMの0dbの上に、3.1dbほど余裕があるのです。今回のDSDリマスターの中には、レベルが0dbを越えて、その3.1dbのヘッドルームに達しているものもあります。AudioGateでこうしたDSDのファイルをwavファイルなどに変換すると、ピーク時にクリップして、歪んでしまいます。クリップしないように変換したい場合は、AudioGateの変換時のゲイン設定を-3dbに下げれば、避けることができます。
出典:http://ototoy.jp/feature/20130402

 明確に+3.1dBまで使ってると言ってます。

 一方、e-onkyoの2L無料サンプルDSD64を≪AudioGate≫でPCMに変換したファイルの最大音量は0dB未満でした。
 2LではDXD(352.8kHz/24bit)のオリジナルソースからいろんなフォーマットに変換して商品化しているよう(*)ですので、DSDデータでもプラスdBゲインがないのでしょうね。

*:http://www.2l.no/hires/
  http://ascii.jp/elem/000/000/947/947845/index-4.html

 このように、DSDデータでもSACD用ではないマスタリングもあるでしょう。

・データの中身と再生機器と
 e-onkyoは次のように言っています。

DSDのほうが圧倒的に小さいのが波形からも確認できます。つまり、CDとDSDを聴き比べるときは、アンプのボリューム位置が同じではいけません。DSDを再生するとき、まずはCDと同じ音量感で聞こえるまで、グイッとボリュームをアップさせてください。音量さえ揃えれば、圧倒的なDSDサウンドの本質に触れることができるでしょう。
出典:http://www.e-onkyo.com/news/115/

 データの話としては大正解でしょう。が、実際の再生ではDSDとPCMのアナログゲインは再生装置によって違うので、「圧倒的に小さいとは限らない」ハズです。
 例えば、アナログゲインとして「DSD0dBをPCM0dBに合わせる」プレーヤと、「DSD3.1dBをPCM0dBに合わせる」プレーヤがあるとすると、前者は「SACDの方がCDよりピークが3.1dB大きい」となり、後者だと「(MaxPeakをPCMのPeakと見るなら)同じ」となります。
 さらに、冒頭記事の「DSDが3dB低いまま出す」というmarantzコンセプトは、DSD6dB=PCM0dB(MaxPeakであるDSD3.1dBでもPCM0dBより約3dB低い)と理解できます。DSD6dBを変調率100%=DSD0dBを50%変調とするDACチップ処理そのまま、ということでしょう。この場合は「DSDの方が約3dB小さい」となりますね。一方、見てきた通りUDA-1ではDSD0dB=PCM0dBですので、「DSDの方が約3dB大きい」となります。
 データの事情は変わりませんが、それをアナログ段で(*)どう増幅するかによって最終出力は「DSD(SACD)の方が3dB大きい~3dB小さい」まで変わっちゃうワケです。実に6dBもの違いがあることに。
 DACユニット商品のコンセプトは統一されていないようですので、ここの事情を踏まえて評しないとこんがらがりますよね。

*:前述の通り、厳密に言えばDACチップ内のデジタル処理でPCMを下げている場合もあり得ます。


 以上、

「DSDファイル商品は結果的にScarletBookに準じて製作されているものがあり、最大音量がDSD3.1dBになっている楽曲がある」

「PCMから変換されているものもあるので、この場合の最大音量はDSD0dB、つまりPCMと同じ」

「DSD→PCMファイル変換する時は要注意」

「アナログ音量としてDSDの方が大きいとか小さいとかってハナシは、再生機器の設計に依存するので一般論にならない」

「DSDネイティブ再生アナログ出力レベルがPCM0dBより最大3.1dB大きくなるDACユニットもあるので、受け側が許容できるか要チェック」


ということですね。


■備忘録

・変調率50%以上だと歪むワケ
 例えば入力フルスケールが10のΔΣ変調器があったとして。
 レベル4のサンプルは「0」判定となり、0との差分4が次のサンプルにフィードバックされます。そのサンプルのレベルが7だったら足して11、オーバーフローします。サンプル値の上限が5なら、10を超えることはありません。
 原理はそういうことでいいのかな。単純すぎ?

・出力レベルと入力感度
 出力電圧2Vを入力感度200mVで受けた時、入力側の有意な増幅(というか減衰)最大ゲインは
20 x log10(0.2/2) で計算できる。
 このゲインで減衰させた時入力された2Vが内部で200mVになる。入力感度とは、その値がその後段回路のフルスケール(パワーアンプなら出力最大)になる値という意味。なので、このゲイン以上に上げても歪むだけで意味がない。

 Vrmsは平均値(振幅の半分の)、Vppはピークトゥピーク(全振幅)。なのでVrmsは少なくともVppの半分以下。
http://www.g200kg.com/jp/docs/dic/rms.html

・オーサリング関連
http://surroundterakoya.blogspot.jp/2009_07_01_archive.html

・JPPA
 「日本ポストプロダクション協会」。ポストプロダクションとは、テレビ番組などのコンテンツ制作を技術面からサポートする業務だそうです。
http://www.jppanet.or.jp/annai/annai_top.html


メインメニューへ

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

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.1% 選択できず
   100.2% 83.4%(Medium)  StopBand最低(100%だとメッセージはない)
   100.3% 93.4%(Steep)
   100.4% 選択できず
   100.5% なし
   100.6% 93.7%(Steep)
   100.6% 83.8%(Medium)
   100.6% 66.9%(Gentle)
   101.7% 68.0%(Gentle)
   102.0% 95.1%(Steep)
   102.3% 68.6%(Gentle)
   102.7% 95.8%(Steep)
   102.7% 69.0(Gentle)
   103.0% 96.1%(Steep)
   103.0% 86.2%(Medium) 
   103.0% 69.3%(Gentle) 
   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倍とし、3fsイメージングノイズ除去くらいまでは行う必要があるでしょう。
 ただ、二段目以降の設定は「一番ゆるゆる」でいいのではと思っています。


 これで、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」にも需要があるようで、「Non OSDF-DAC」通称“NOS-DAC”と呼ぶようです(最初NOSってメーカ名かと思いました(苦笑))。

 OSDFかけないのですから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倍固定の理由、なんか解った気がします

・意外と楽しい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絞るとサイン波の頭がキレイに丸まりました。


メインメニューへ

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

ERIへようこそ

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

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

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