Select Your Language

免責事項

  • 本サイトの情報の利用、内容、サービスによって、利用者にいかなる損害、被害が生じても、著者は一切の責任を負いません。ユーザーご自身の責任においてご利用いただきますようお願いいたします。

    本サイトで頒布している基板およびキットは、技術者、またはそれに準ずる電気的知識をお持ちの電子工作ファンの方のためのものです。 一般のオーディオファンの方のためのものではありません。
    また、頒布基板およびキットは、いかなる条件でも動作を保証するものではございませんので、あらかじめご了承ください。

    電子工作では、火傷、感電、火災などの可能性があります。 十分に注意をして作業して下さい。

    営利目的のご使用は認めておりません。  記事の転載や、基板・キットの商用利用の方は、ご連絡ください。
    学生やサークルの学習目的でまとめてご購入する場合は特別なコースをご用意させていただきます。

« 気絶してしまいました。 ステレオ誌付録メタルコーンスピーカーの誘惑 | トップページ | (続) I2S-DACを348kHzで駆動すると、どういうメリットがあるの? »

2016年8月12日 (金)

I2S-DACを348kHzで駆動すると、どういうメリットがあるの?

RaspberryPiのI2S出力は最大で384kHzのサンプリング周波数で出力が可能であることは、日経リナックスに書かれていて、ご存知の方も多いと思います。 

ここでは、実際に試してみた結果と、384kHzで出力できることのメリットとして、どんなケースが考えられるのかを書きたいと思います。 

Dsd2pcm0  

実は、日経リナックス2016年6月を号買ったのですが、この号の読者専用のダウンロードサイトから落としてきたドライバで348kHz駆動がすんなり出来たかというと、そうではありませんでした。 

なぜかカーネル 4.1.21用という中途半端なバージョンになっていて、Rasbianイメージをダウンロードしたままでは組み込むことが出来ないのです。 ここの情報によると、各SDカードイメージのkernelバージョンは

Raspbian Jessie Lite 2016-02-09 (kernel 4.1.7+) 
Raspbian Jessie Lite 2016-02-26 (kernel 4.1.7+) 
Raspbian Jessie Lite 2016-03-18 (kernel 4.1.7+) 
Raspbian Jessie Lite 2016-05-10 (kernel 4.4+) 
Raspbian Jessie Lite 2016-05-27 (kernel 4.4+) 

Linuxに精通している人はご存知とは思いますが、現在のLinuxのドライバはKernelのバージョンが末尾までひとつでも違うと組み込めません。

まあ、それはそれとして、384kHz再生の利用目的も私の考えていたのとちょっと違うなぁっと思いました。 

というのも、 

筆者さんは、CDからリッピングした44.1kHzの信号をそのままDACに出力した場合と、SoXリサンプラーを使ってソフトウェアアップサンプリングした場合とを比較されていました。 

つまり、DAC内蔵オーバーサンプリングデジタルフィルタとSoXリサンプラーの比較(差換え)です。 (アップサンプリングしたらからといってハイレゾになる訳ではないというのは筆者さんと同意見です)

SoXリサンプラーは、動作が軽い割に特性も悪くなく、音もまあまあ良い(カラーレーションが少ない)ので、リアルタイム処理のときには良く使われていますが、ハードウェアによるFIR演算や、高精度なアップサンプリングソフトウェア(非リアルタイム系)と比較するとさすがに負けてしまいます。 

 

実際にSoXを介した場合と、そのままDACへ送って内蔵アップサンプラーを使ったときとを比較試聴した場合、SoXは中高域にキラキラしたキャラクタを感じる人が多いのではないでしょうか? 

一見、華やかで鮮度が高く感じますが、大音量で聴くと、じきに音量を下げたくなってしまう音というと解かり易いかもしれません。 

PCM5102AクラスのDACでも44.1/48kHzは8倍、88.2/96kHzは4倍、176.4/192kHzは2倍のアップサンプリングがDAC内部で行なわれているため、CDを再生しても、よくハイレゾの説明で使われるようなギザギザ波形では再生されていません。 最低でも352.8kHzのサンプリングレートで滑らかにDA変換されています。 

そして、PCM51xx系のDACに内蔵されているデジタルフィルタは、かなり音が良い(特性はソコソコの)ものが搭載されています。 このあたりは30年もの間、DA変換を専門でやってきたバーブラウンのノウハウの賜物でしょう。 

 

 

 

前置きが長くなりすぎました。

さて、

私が384kHz再生でメリットがあるのでは? と思うのは、下図のようなケースです。 

Dsd2pcm1  

「意外と」 と言ってしまうとアレですが、MPDのDSD変換再生は、想像していた以上に上品で聴き応えのある音がしますね。 ですが、この図の上側のようにPCMに変換したあとSoXリサンプラーによって192kHzまでもう一度変換されていました。

これが、348kHzまで対応できるようになると図の下側のようにDSD to PCMで352.8kHz PCMに変換したあと、そのままDACへ出力できます。 無駄な変換がいらなくなり、よりストレートに再生が可能になりますね。 

 

Dsd2pcm3  

Dsd2pcm2  

この図が実際にDSD2.8MHzから352.8kHzで再生しているときの証拠(?)です。 

cat /proc/asound/card0/pcm0p/sub0/hw_params

とコマンドを打つと、再生しているサンプリングレートが分かります。  Alsaドライバは下記のサイトの352.8k and 384k 拡張パッチを実装しました。

https://patchwork.kernel.org/patch/9160203/

それに、SabreBerry32のドライバも合わせて拡張しています。 

 

ただし、完全に音切れなく再生できるかというと、まだそこまでは到達できておらず、時折ノイズが混じってしまう問題が潜んでいます。 (low-latency-kernel なども検討中) 

Dsd2pcm4  

 

DSD変換再生のほか、DXDという348kHz(もしくは352.8k ) 24bitのPCMで録音されたものをNOS-DACで再生するというのも面白いと思います。 

DXD録音のサンプリングレートなら、NOS(ノン・オーバー・サンプリング)で聴いても全く問題がないと考えられるからです。 さいわい2LのサイトにはDXDの無料サンプルが何曲か置いてありますね。(無料DSDサンプルもある)

 

352.8k and 384k 拡張Alsaドライバの対応方法の詳細は、また後日説明したいと思います。 

現時点で2.8MHz のDSD再生の音飛びは、なんとなく解消されつつあります。(曲によっては飛ぶ。 5.6MHzDSDは全然NG )

 

DSDから352.8kHz PCM変換再生の音

肝心な音質の感想はといいますと、SoXを使っていたときのDSDの音とはかなり傾向が違います。  少し引っ込み思案で優しく響いていた音は、あれがDSDの音の良さなのかなと思っていたんですけども。。。 

なんじゃこりゃ!? という具合の鮮烈な音に変わりました。 

実はSABRE9018Q2Cの制約で384kHzのI2S入力時には、約74MHz以上というクロックを入れなければ 8倍の内蔵デジフィルの動作条件を満たせません。 SabreBerry32搭載のクロックは高い方で49MHz。 ということで、デジフィルバイパスモード(つまりNOS)で使用してみました。 

DSDからPCMに一度は変換していますが、その後はDAC内蔵のFIRフィルタもバイパスするという荒業のためでしょうか。 こんなストレートで爽やか、そしてベールが一切かかっていない音をDSD音源で聴いたことがありませんでした。 

好みの分かれる音かもしれませんが、選択肢のひとつとして面白いと思います。 

コンパイルにはかなりの時間がかかるので、バイナリで提供できればと考えています。

 

352.8kHz / 348kHz 再生は必要なの?

実際にはDXDで録音されたものがそのまま聞ける(配信される)ケースは稀だと思います。 

DSDも5.6MHz、11.2MHzと周波数の高いデータがごく一部で配信されていますが、DSD配信自体がPCMにとって代わるほど有利な訳でもありません。 多くのDSD配信が、PCMで編集(ミキシング、マスタリング)した後、DSDに変換、もしくは、一旦アナログに戻したあとDSDレコーダーで再録音されたものであるという事も忘れてはいけません。 (2Lでは明確にPCMからDSDに変換していると書いています) 

ということで、348kHzをそのまま再生できないからといって、普段、音楽を楽しむ上で不都合があるのかと言うと、そんなことはないと思います。 

今のところ、ちょっとした興味を満足させるための「調味料」的存在なのかもしれません。 

 

 

 

 

にほんブログ村 PC家電ブログ PCオーディオへ にほんブログ村
ブログランキングに参加中です。 めざせ1位! 
もしよろしければ「ぽちっと」お願いします。 



« 気絶してしまいました。 ステレオ誌付録メタルコーンスピーカーの誘惑 | トップページ | (続) I2S-DACを348kHzで駆動すると、どういうメリットがあるの? »

Raspberry Pi」カテゴリの記事

コメント

たかじんさん はじめまして。
takobozuと申します。

私の環境でうまくいくかどうかを試させていただきました。
結果は、残念ながらサーというバックグランドノイズが出続けます。
試しました環境は以下のとおりです。
(1)kernel 4.6.6にalsaの上記パッチを当てコンパイルしました。
(2)mpd-0.19.17にlintweakerさんのdsdパッチを当てコンパイル
  しました。
(3)ハードはrpi2B+usb-dac(combo384+pcm1795dac)
kernelはlowlatencyでコンパイルしております。
hw_paramsは上記表示と同じ結果ですのでパッチはしっかり
当たっていると思います。
上記記事とは環境が違いますので当然の結果ですかね。
うーん、たかじんさんのおっしゃるいい音が聴きたかったなあ。

kernelのalsaモジュールがそのままでは、384khz等が定義されてい
ないとは知りませんでしたので今回の記事は勉強になりました。
最後になりましたがお礼申し上げます。

上記のノイズですが、352.8khzをcombo384は受けられても
pcm1795が受けられないんからなんでしょうか。
今さら気づきました、ガックリ。crying

takobozu

takobozuさん

確かに、PCM1795はI2S入力時は192kHzまでですね。 外部デジフィルモード(DFTH)のときは1.5MHzくらいまでのサンプリングレートで入力できます。 
combo384がそのフォーマットで出せるのかは分からないですが。。。

たかじんさん

記事、興味深く拝見しました。

mpdのdsd2pcmはその後にフィルター(soxやlibsamplerateなど)を使うことが前提のようで内蔵のフィルターではノイズがとりきれません。
DACがNOSだとそれ以降のシステムによってはノイズがスピーカーにまで届くかもしれません。
lightMPDの掲示板でも384K対応のDACでdsd2pcmを行うとノイズがのるという報告がありました。

最後にdsd2pcmのフィルター係数をのせますので確認してみてください。
確認は

石川高専 山田洋士 研究室ホームページ Digital Filter Design Services
(http://dsp.jpn.org/dfdesign/)

でできます。

FIRフィルターの特性計算(http://dsp.jpn.org/dfdesign/gfir/fir.shtml)を開いて

インパルス応答長に96をインパルス応答の値に下記の係数をコピペして 送信ボタンを押すと

インパルス応答
振幅特性
位相特性
群遅延特性

が表示されます。

以前、お話したかもしれませんがlightMPDではdsdを直接指定したサンプリング周波数のPCMに変換することができます。
dsd64を352.8のpcmにするときの係数は
フィルタ長 321
窓の種類 Kaiser窓
正規化遮断周波数 0.0124(35KHz)
阻止域での必要減衰量 120db
です。
石川高専のhttp://dsp.jpn.org/dfdesign/fir/mado.shtmlで上記の値を入力すると
係数を計算してくれます。


> SabreBerry32搭載のクロックは高い方で49MHz。 ということで、デジフィルバイパスモード(つまりNOS)で使用してみました。 

この機能は公開されるのでしょうか?
公開されるとlightMPDのdsd2pcmの拡張が生きてくるのですが。

ps3ではsacdをpcmに変換してましたが、音はとてもよかったです。(それでsacdを買い集めることになりました)
個人的にはdsd->pcmにも可能性があると思ってます。

mpdのdsd2pcmの係数

----- ここから -----
3.130441005359396e-08,
1.244182214744588e-07,
3.423230509967409e-07,
7.410039764949091e-07,
1.319400334374195e-06,
1.930520892991082e-06,
2.166655190537392e-06,
1.249721855219005e-06,
-2.017460145032201e-06,
-9.163058931391722e-06,
-2.17407957554587e-05,
-4.07492895872535e-05,
-6.577634378272832e-05,
-9.396247155265073e-05,
-0.0001189970287491285,
-0.0001304796361231895,
-0.0001140625650874684,
-5.279407053811266e-05,
7.002968738383528e-05,
0.000266446345425276,
0.0005381636200535649,
0.0008704322683580222,
0.001226696225277855,
0.001545601648013235,
0.001742046839472948,
0.001713709169690937,
0.001353838005269448,
0.0005700762133516592,
-0.0006922187080790708,
-0.002425035959059578,
-0.004535184322001496,
-0.006828859761015335,
-0.009007905078766049,
-0.0106813877974587,
-0.01139427235000863,
-0.01067241812471033,
-0.008080250212687497,
-0.003284703416210726,
0.003883043418804416,
0.0133774746265897,
0.02490921351762261,
0.0379429484910187,
0.05172629311427257,
0.06534876523171299,
0.07782552527068175,
0.08819647126516944,
0.09562845727714668,
0.09950731974056658,
0.09950731974056658,
0.09562845727714668,
0.08819647126516944,
0.07782552527068175,
0.06534876523171299,
0.05172629311427257,
0.0379429484910187,
0.02490921351762261,
0.0133774746265897,
0.003883043418804416,
-0.003284703416210726,
-0.008080250212687497,
-0.01067241812471033,
-0.01139427235000863,
-0.0106813877974587,
-0.009007905078766049,
-0.006828859761015335,
-0.004535184322001496,
-0.002425035959059578,
-0.0006922187080790708,
0.0005700762133516592,
0.001353838005269448,
0.001713709169690937,
0.001742046839472948,
0.001545601648013235,
0.001226696225277855,
0.0008704322683580222,
0.0005381636200535649,
0.000266446345425276,
7.002968738383528e-05,
-5.279407053811266e-05,
-0.0001140625650874684,
-0.0001304796361231895,
-0.0001189970287491285,
-9.396247155265073e-05,
-6.577634378272832e-05,
-4.07492895872535e-05,
-2.17407957554587e-05,
-9.163058931391722e-06,
-2.017460145032201e-06,
1.249721855219005e-06,
2.166655190537392e-06,
1.930520892991082e-06,
1.319400334374195e-06,
7.410039764949091e-07,
3.423230509967409e-07,
1.244182214744588e-07,
3.130441005359396e-08
----- ここまで -----

digififan さん

とても重要、かつ、貴重なご意見ありがとうございます。
添付いただいたデジフィルの特性を見てみました。 確かにカットオフ周波数が100kHzくらいと過剰に伸びていますね。
もう少し検証してみます。 NOS設定については、近いうちにメールいたします。

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/587107/64049931

この記事へのトラックバック一覧です: I2S-DACを348kHzで駆動すると、どういうメリットがあるの?:

« 気絶してしまいました。 ステレオ誌付録メタルコーンスピーカーの誘惑 | トップページ | (続) I2S-DACを348kHzで駆動すると、どういうメリットがあるの? »

サイト内検索

Sponsors link

2017年6月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

最近のトラックバック

無料ブログはココログ