「マスタークロックレシピ」と「DAC事情」からジッタに挑んでみる

14/12/20初稿

 ハイレゾについて考えていたら「サンプリング定理」のちゃんとした理解を避けて通れなくなり、さらにその流れでジッタの音質への影響について考えざるを得なくなりました。
 自分の頭の中整理のために記してみましたが、結論があるワケじゃありませんし間違ってるかも知れませんが…(苦笑)

 本稿、「「発振精度(ppm値で示される)」と「ジッタ」は原則として別パラメータである」ことを大前提にしています。ていうか、本稿は当該記事の「増補改訂版」みたいになっちゃいました(笑)。


■万能の悪玉? どの信号が対象?

 一昔前は「転送過程でのデータエラー」「リッピングでデータエラー」がデジタルオーディオのおける音質変化理由としてよく取り上げられてました。
 しかし、“実はエラーしてないし”ということがだいぶ浸透したせいか、最近では「ジッタ」が主力になっているように思います。
 しかし、どうにも

 デジタルデータの欠損・改変はない。のに音が変わる。のは何故か?
   →静的なデータは変わらないのだから、動的な何かが変わっているハズ。
     →動的…つまりきっと時間的な乱れがあるに違いない。
       →理屈はヨクワカラナイが、他に可能性がないからこれが原因に違いない。

 という状況のような。ですので、何か変わった時は「ジッタ~が~」と思ってる自分がいるような(苦笑)。
 でも、それではジッタに関して“理屈から考えるチューニング”はできませんよね。いえ、たとえ考えたリクツが正しくなくてもいいんです。何の仮説もなくカット&トライするにはPC-Audioってパラメータ多すぎるので…

・ジッタを語るべき信号は何か
 まずはこれ。
 え~、ズバリ、DACチップの基準クロックである「マスタークロック=MCLK」のみだと理解しています。
 MCLKがDA変換の時間軸上の精度を支配しているからです。ていうか、最近のDACチップは「サンプリング定理再理解」でも記した通り立派な“デジタルプロセッサ”であり、MCLKはその駆動クロックです。データの0/1を確定させてレジスタに取り込んだり読み出したりするのはMCLKのエッジをトリガにして行われますので、たとえ他の信号に時間軸上の揺れがあったとしても原則無関係です(もちろん0/1が崩れるほど酷いのは論外です)。
 なんと言っても、ΔΣ型DACチップにおけるデジタル最終段階(アナログ化直前)である1bitストリームの波形もこれに支配されますので。

 その意味で、以下のようなパラメータは本来の意味でのジッタではない、と考えています。

・ワウフラッタのようなもの。「パーセント」スケールで語られる、ピッチの揺れ
 そのまんま再生速度の揺らぎとして認知されるものですね。シンプルです。
 メカ機構を持たず水晶発振精度でデータを処理するデジタルオーディオにおいては原則無関係と言っていいと思っています。
 「発振周波数の長周期ジッタ」という可能性もあるような気もしますがとりあえず無視です(笑)。

・何らかの原因による各種信号(MCLK以外)波形の揺れ
 オーディオシステムの中の信号は山ほどありますから、例えばCD-Rのビット長のバラツキが原因で発生したジッタの影響が及ぶ“可能性”は際限ありません。ので、ここではDACチップに直接影響を与えるI2Sに限定して考えてみます。
 I2SのDATAやLRCLKは、上述の通りDACチップにとって時間制御の意味は持ちません。例えばDATA信号波形に何らかの揺らぎ(*)があったとしても、それは立ち上がりや立ち下がりエッジのタイミングズレや形の違いによるアナログ的な後段への影響の変化(突入電流が発生するタイミングが変化することでGNDが振られるタイミングが変化するとか?)にしかなりえません。
 つまり影響があるとしても「サンプルの時間軸的なものではない」と言うことです。

*:データ転送クロック周期クラスのミクロさでぷるぷる変化して初めて時間軸変動になります。もし波形が理想矩形波からかなり変形していてノイジーだとしても、その“変形具合が安定”しているならジッタ的なものではなくノイズの範疇になるでしょう。

・MCLKはいかに作られるか
 普通は水晶振動子が作ります。ロジックレベルの矩形波を出力するようにモジュール化したものが水晶発振器です。
 DACチップはサンプリング周波数の256倍か512倍のMCLKで動作させることが一般的だと思います。
 512倍の場合、44.1kHz系なら22.5792MHz、48kHz系なら24.576MHzです(*)。

 この出力をダイレクトにDACチップに投入するのがジッタが一番少ないであろうことは想像できると思います。
 しかし、現実にはDACチップに原発振をそのまま使うにはちょっと“工夫(注意)”が必要になるのですよね。
 デジタルオーディオの機器間I/Fは、もともとはTxとRxのデータレートを一致させる概念がなかったからです。

*:2種類のMCLKが必要なワケですが、音質に拘る機器ではPLLを使わず発振器を2個搭載して対応していると思います。逆説になりますが、そういう機器がありそれをウリにしているということからしても、音質には「PLLより原発振」なのだと言えそうです。
 本稿は、原発振を使うシステムの場合は2個の発振器で2系統の原発振に対応している前提で記します。


■ジッタはなぜ発生するか:機器間I/Fと原発振とPLL

・転送されないMCLK
 CDプレーヤからアナログ出力するのとは異なり、PC-Audioでは普通「トランスポートとDACユニット」「その間にDDCユニット」を挟んだりしてシステムを組みますよね。
 Tx側は当然Tx側の内蔵クロックでデータ出力制御を行っています。Rx側もクロックは必要です。けれど、生MCLK(256fsや512fs)を転送するオーディオI/Fは原則存在しません。

 もし、TxもRxも原発振を使っていたらどうなるでしょう。
 水晶(クォーツ)は大変高い発振精度を持ちますが、それでも別個体の発振精度は微妙に異なります。物理物質であるゆえのバラツキです(短周期に動的変化するものではありません。メカ部品の寸法誤差のようなものです)。経年変化や温度による影響も避けられません。
 これがppmで示される発振器のスペックの意味です。ですので、±20ppmの同型式発振器を使ったとしても、Tx側が+20ppm、Rx側が-20ppmの個体かも知れません(*)。つまりデータレートが最大40ppm異なるということです。
 ちなみに冒頭に記した通りppmはジッタそのものではありません(ジッタ性能を示す単位としては用いられない。詳細後述)。

*:仕様が「20MHz±20ppm」の製品なら、低い方に最大にバラついた個体は19.99996MHz、高い方は20.00004MHzですがどちらも良品です。

 データレートが違うとどうなるでしょう?
 Tx側が速ければRx側で受け損なってサンプルが欠損します。
 Tx側が遅ければサンプル不足になり同じサンプルを繰り返して使ったりすることになるでしょう。
 これでは困りますよね。

 でも、実際にサンプル過不足の可能性があるのでしょうか?
 例えばCDフォーマットで3分の曲があったとすると、総サンプル数は44100x60x3=7938000です。この再生が終わるまでに1サンプル分の差が発生しないようにするには、Tx側とRx側の発振精度差は7938000±1以下であればよいハズです。これはppm値にすると0.126ppmです。 
 通常の水晶の発振精度は±20ppm程度です。3分で区切れるワケでもありませんから、個別の非同期発振でサンプル過不足発生を防ぐことは事実上できないということです。

 そのため、オーディオにおける機器間I/FではRx側がTx側のデータレートに同期するのが基本になっています。
 Rx側は、Tx側のMCLKに同期したMCLKを改めて生成するのです。

 周波数を可変するのですから、生成にはPLLが使われます。
 PLL自体は悪者ではありませんが、ジッタ性能はどうしたって原発振よりは劣るでしょう(だって周波数を可変できちゃうんですから)。もちろん同期する対象のジッタレベルにも影響されます。特にS/PDIFの場合、MCLK(20MHz級)よりはるかに遅いレートのシリアル通信から“クロックアップ”PLLするため、どうしてもジッタは大きくなるようです。
 EDN Japan(*)によると、通常の水晶のジッタは20~30ps程度ですが、S/PDIFデコーダPLLの実力値は200ps程度とのこと。S/PDIFのPLLジッタは原発振とケタが違うようですね。

*:http://ednjapan.com/edn/articles/1208/24/news015.html

 つまり、同期MCLKを生成するPLL機能の性能・精度・動作の健全さがジッタ性能のキモになるということです。

 DAC(DDC)ユニット側が自身の持つ原発振をそのまま使えた方がPLLよりジッタ性能には有利なハズです。しかし、なんということか普通はそれが出来ないといことです。それを可能にするには、Tx側からRx側に“足りないからもっと”“余ったから待て”というフィードバック制御(マクロなデータレートを一致させる)する必要があります(独自I/FでMCLKをI/Fする場合やSRCを入れる場合を除く)。
 具体的には、フレームやパケットという転送単位の中にパッキングするサンプル数を可変させる制御です。

 この事情につき、各I/F種類とDACブロックとMCLKの関係を以下に図示してみました。
 3種類のMCLK発振パターンがあることが解ると思います。HDMIはこの図ではUSBの仲間とみなせるでしょう。

DACブロックとMCLK

*あくまでも概念図です。「1bit変換」はPDMとPWM、DSD64→128といった処理があるかも知れないので仮に入れています。
*OSDFはOverSamplingDigitalFilterを勝手に略したものです。


■PLLを使わざるを得ないI/F

 上図について簡単に説明します。以下はフィードバック制御がなくPLLで同期MCLKを生成せざるを得ないI/Fです。

・USB:アダプティブなどアシンクロナス以外のモード
 「足りない」「余った」のやりとりはできないので、Tx側のデータレートにRx側が合わせるしかありません。
 詳細はppmとPLLについての記事にて。

・S/PDIF
 プリアンブルからMCLKをPLL生成するようです。プリアンブルは1chごとに入っていますので、ステレオならサンプリング周波数の2倍の周期でしょうか。
 1本しかなくてかつ一方通行ですからフィードバック制御できるハズはありません。

・HDMI
 一応不可です。規格上は出来るハズですけれど実装されていません(H.A.T.SやPQLSやDENON LINKなどは独自仕様(*))。
 ただ、HDMIってTx側のクロックを独立した信号線で転送する珍しいI/Fなんですね。しかもMHz級の高クロックです。
 Rx側でPLLリクロックし再生成する点は変わりませんが、S/PDIFに比べるとエンベデッドクロックじゃない分再生されたオーディオ用クロックの純度は高いかも知れません。また、「MCLKより高い周波数から“クロックダウン”PLLする」というのも有利かも。

*:http://av.watch.impress.co.jp/docs/series/avt/20090331_80213.html

・ちなみにI2S:Txマスターモード(本来は機器内I/Fなので“一応”ですが)
 I2Sとは、本来「DATA」「LRCLK」「BCLK」の3線シリアルで構成される“機器内I/F”です。
 DSPやDACチップ間のデータ転送に用いられます。同じ機器の中にありますから同じMCLKで動くのが前提であり、「3線」の中にMCLKは普通含まれません。
 さて、TxマスターモードではDATAだけでなくLRCLK,BCLKがTx側から転送されます。機器間I/Fに使った場合、Rx側のMCLKはPLL生成することになります。
 繰り返しますが、本来は「機器内I/F」ですから、一般的・汎用的ではないと思います。ゆえにMCLKも送りつける独自仕様もあり得ますけれど、例えそうでも、そのMCLKは原発振じゃないとあんまり嬉しくないですよね。

 iLINK(IEEE1394)もフィードバック制御可能でしたがもういいでしょう。


■原発振を使えるI/F

 以下は、フィードバック制御がありRxがTxと非同期に動ける(Rx側が原発振を使える)ケースです。
 以下2種が存在すると思います(汎用的な規格として)。

・USB:アシンクロナスモード
 詳細はアシンクロナスモードについて考えた記事をご参照ください。

・ネットワーク…と言うかソースデータを自分のタイミングで取得できる単体機器
 オーディオI/Fじゃないですけど(笑)。
 そもそもネットワークは非同期ですもんね。ていうか他にもSATA-I/Fなど“PC用I/F”は原則非同期です。「足りないからもっと」って制御はありませんから、正確には上述している「フィードバック制御」とは違いますね(もともと充分に速いので必要になったら転送すればOK。もし何らかの理由で転送が間に合わなければサンプル欠損)。
 ただし、「単体機器ではなくネットワークでデータ取ってきて別I/FでDAC(DDC)ユニットに転送する」場合は、その機器間I/Fの方が支配的になるでしょう。

・ちなみにI2S:Txスレーブモード(本来は機器内I/Fなので“一応”ですが)
 これはフィードバック制御ではありません。概念的にはRx側のMCLK(実際にはLRCLKとBCLK)をTx側に送ってTx側を動かすモードです。「Rxマスターモード」と言った方がイメージしやすいかも。当然サンプル過不足は発生しません。


 「PLLがキモ」の前提条件として、これらの場合は除きます。設計に依りますので“一応”ですが。

 なお、ネットワークプレーヤに限らずHDD内蔵プレーヤ(ストレージは外付けでも可)など「単体機器」なら、音源からDACチップまで管轄下ですから“DACクロックマスター”で動けます。USBメモリからの再生なども含まれるでしょう。例えばCDプレーヤだってそれは可能です(*)。

*:http://www.denon.jp/jp/product/pages/Product-Detail.aspx?Catid=382c2279-a153-4d3c-b8fa-81b930454f67&SubId=f8d37cce-9c7b-4dfa-8ab5-5dfab512b42a&ProductId=DCD-1650RE

 でも、敢えてウリにすることでもないような気が。こうなってないCDプレーヤってヤですよね(苦笑)。SACDだって44.1kHzの整数倍なんですし(したんですし、かな?)。
 でも、以下に記すEVM-1702の資料などを見ると、実は、結構最近までDAC部ではなくディスク読み取り制御部の方がマスターだったのかも知れません。

・同期を諦めたS/PDIF
 これは例外ですが、意外なことに、外部クロックモードでS/PDIF受信している時、Rx側とクロックシンクしていなくても外部クロックで動作するDACユニットもあるようです。ていうか、Tx側にも同じ外部クロックが投入されているかどうかはRx側(DACユニット側)には判りようがありませんからどうしてもそうなっちゃうのかも知れませんが。
 某メーカに電話で質問してみたのですが、「当然想定仕様外でありケースバイケースだが、サンプル過不足が発生しながら再生できてしまうかも」とのことでした。
 この「サンプル過不足をを顧みず強制的に非同期にする」モードの場合はPLLは使われません。

 余談ですが、どうもESS社製DACチップはこの発想のような気がします。「勝手に非同期にして多少過不足が発生しても、どうせその後段のオーバーサンプリングでインターポレーションするんだから、そこで帳尻合わせればいいぢゃん」という仕組みのような?
 サンプルの過不足は絶対ダメという呪縛から解き放たれた発想ですね。確かにその方が現実的音質はよさそうな気がします。


 以上が「機器間I/FによるMCLKの作り方によるジッタ発生事情」です。
 「Rx側で原発振が使えるか」「原発振が使えないならPLL動作の安定度は」という点で、機器間I/Fによって明確な有利不利があることが解ると思います。


■ジッタはなぜ音質に影響するか:アパーチャ誤差

 さて、

・時間軸上の問題としてのジッタを語るべきはDACチップ制御用MCLKのみ
・MCLKはいくつかの作り方があり、ジッタ性能にはそれによる有利不利がある

ことは判明したかと思います。

 ですが、それ以前に、ジッタはなぜ音質に悪影響を及ぼすのでしょう?

 調べていると100psとか2psといった数字を目にしますが、「ジッタの音質への影響」として説明されている理屈は原則「アパーチャ誤差(エラー)」だけのようです。ジッタは時間軸上の揺れですが、ピッチやテンポといった要素ではなく「ダイナミックレンジを削る」影響を与えるというものです。
 本件につき、私なりに理解した内容を以下に記してみます。

 先に行ったサンプリング定理の考察から、デジタルオーディオの基本波形はサイン波ですので、サイン関数における振幅=ダイナミックレンジを確保するためのジッタ=時間量を計算すればよいようです。
 以下図示します。
 見やすくするため、ビット深度3bit=8段階の場合としました。
 n はビット深度、f は信号周波数、A は振幅のピークトゥピークです。

ジッタ計算グラフ

 さて、この図は

「1bit分のダイナミックレンジは、誤差がその半分以下のレンジ(Y軸)の場合に確保されたと考える。そのために許される時間誤差(X軸)が許容ジッタである」

ことを示しています。一番急峻な変化するのはゼロクロス点ですよね。ここが一番厳しいハズです。
 つまり、Y軸の値(1bitの電圧の半分の値)からX軸の値(ゼロクロスからのズレ=ジッタ)を求めればよいワケです。
 そのためのサイン関数を導出するとこんなカンジになります。

ジッタ計算式

 あとは変数としている fと nに値を入れるだけです。
 πとか出てくるので難しそうに思いますが、考え方は大変シンプルだったんですね。

 信号周波数やビット深度が大きくなると許容ジッタ値は小さくなることが判ると思います。
 また、上記では煩雑さを避けるため振幅方向のパラメータを消してしまいましたが、振幅値が大きくなるほど厳しくなることもイメージできると思います。

 ですので、CD規格で一番厳しいのは f=22050Hz、n=16、振幅最大の時です。計算すると約110psとなります。
 BB(現TI)社製DACチップ「PCM1702の開発ボード「EVM-1702」資料(*)P.5にアパーチャ誤差としてのジッタについて記載があり、上記計算式が載っています。結果は「16bit、信号周波数20kHzで119.4[ps]」となっています。16bit精度を0.0015%として計算したようです。

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


■ジッタはなぜ音質に影響するか:現実的事情

 以下、間違ってる可能性も高いですがとりあえず個人的メモとして。

・実際の影響は
 アパーチャ誤差のリクツは「最大振幅をとる最大周波数」の場合ということに注意が必要でしょう(オーディオ用DACだけのリクツではない)。CDで言えば「22.05kHzで16bit使い切る」場合ですが、普通の音楽にはそのような周波数成分は存在しないですよね。22.05kHz付近にある周波数成分は楽器や肉声の倍音ですから最大振幅は取り得ないためです。

 ですので、現実的にアパーチャ誤差として許容される値はもっと大きいと考えていいでしょう。
 仮に-6dBまで確保できればよいとしても2倍=220psになります。上に引用したEDN Japanによると「通常の水晶のジッタは20~30ps程度、S/PDIFデコーダPLLの実力値は200ps程度であり、“現実的な”DACチップの性能からしてほぼ充分な値」とのことですが、ですのでこれは頷けます。

・実際の性能は
 ところで、実際の水晶発振器のジッタスペックはどのくらいなのでしょう? 大真空やNDKなどでは発見できなかったのですが、富士コム社(*)というメーカがズバリ記載してました。
 おそらく一番一般的と思われる品種でも30psのようです。

*:http://www.fujicom.jp/FCO-200.pdf

 また、東京情報大学研究論という資料の測定結果(*)を見てもジッタ値のスケール感はおおよそニアリーみたいです。

*:http://www.iic.tuis.ac.jp/edoc/journal/ron/r7-2-8/r7-2-8.pdf

 余談ですが、この結果の中でDVDプレーヤの成績が悪いのは、PLL使ってるからではないかと思っています。

 以上、CDフォーマット級ならフツーの水晶発振器の原発振でまず問題にならないと思われます。

・ハイレゾだとどうなるか
 2496で計算すると0.2psになってしまいます。エライコッチャです。やっぱりハイレゾだとフツーの水晶では大問題になるのでしょうか?
 ここで、DACチップを中心としたシステムの現実的性能を加味してみます。
 アナログ的なS/N比は良くても110~120dB程度ですから、これを達成するにはざっくり20bit確保できればよいでしょう。
 また、振幅値としても最大信号周波数48kHz付近の倍音成分はCD規格よりさらに高次のものになりますから、最大の1/8程度を想定すればまず充分ではないかと。
 その条件ならは約25ps程度となり、一気に現実的になってきます。

 余談ですが、実はダイナミックレンジ、24bitあっても無駄なんじゃないかと密かに思ってたり(笑)。
 16bitでは不足ですけれど20bit(120dB)程度で必要充分なのではないでしょうか。144dBを活かせるコンスーマ機器のアナログ回路って事実上ないと思いますし。
 なのに16bitの次が20bitではなく24bitなのは、演算誤差を許容するためと、“デジタルシステム(コンピュータ)だから”という事情で決まっているのでは。

・アパーチャ誤差(だけ)が音質悪化のリクツなのか
 以上、「アパーチャ誤差としてのジッタ」について見てきました。
 が、これはオーディオDAC技術として“最初っから認識されている”ものでしょう。であれば、少なくともマトモなオーディオ機器なら最初から必要充分なジッタ性能のMCLKが使われているハズです。それが上記EDN Japan記事の内容だと思います(ユーザの間でオーディオの音質として意識されるようになったは最近かも知れませんが)。
 また、たとえハイレゾレベルであっても、上述した通り現実的な問題があるとはあまり思えません(PLLだと厳しそうですが)。

 でも、実際にはCDで200ps、ハイレゾ(2496)で30psではナントナク不十分な気がしますよね。
 それって何故なのでしょう?
 ジッタの音質への影響のリクツとしては、「アパーチャ誤差」以外寡聞にして知らないですし…

 ひとつ気になるのは、アパーチャ誤差のリクツは原則「マルチビットDAC」のものであるということです。
 現実には現在のDACチップはΔΣ方式です。ざっくり言うと振幅軸をシンプルにする代わり時間軸方向を細かくして情報量を稼ぐ方式です。
 なんだか、ΔΣ方式におけるジッタの影響は「アパーチャ誤差」では語りきれないのではと思えます。
 と言ってもこれ以上はサッパリ解りませんけれど(苦笑)。
 が、例えば「2.8MHzの1bitは44.1kHz/16bitの64倍の精度が求められる」と仮定すると、確かに数psオーダーの精度が必要になることになります。

 そのあたりかな? と思う程度で今はよしとしています。


■参考資料

・ジッタ解説
http://techon.nikkeibp.co.jp/article/LECTURE/20120319/209455/?rt=nocnt
http://www.altima.jp/column/fpga_edison/clk_accuracy.html
http://www.ndk.com/jp/ad/2013/001/
http://www5.epsondevice.com/ja/quartz/library/tech_note/techl_notes__2013_04jitter.pdf

・PLL解説
file:///C:/Users/p000283634/Downloads/DP30231preview15.pdf
http://gate.ruru.ne.jp/rfdn/TechNote/BasePllTech.asp
http://www.cqpub.co.jp/hanbai/books/33/33451/33451.pdf

・デジタルPLL解説
http://ja.wikipedia.org/wiki/ADPLL

・RATOC社製品に載っているルビジウムモジュールのスペック
http://www.toyo.co.jp/file/lcr_spec_2.pdf

・ESS社DACの技術解説「DAIのジッタ量とTHDの関係」
http://www.teddigital.com/ES9008B_tech.htm

・TI社のΔΣADC資料
 オーディオ用ではなく16bitで4.9MHzまでサンプルできるチップ。P.14にジッタ許容値があり、100kHzの-1dBで65psだそうな。1MHzだと6.5psなので周波数に反比例している
http://www.tij.co.jp/jp/lit/ds/symlink/ads1610.pdf


メインニューへ

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

「サンプリング定理」その深淵なるセカイ

14/11/20初稿

 ハイレゾについて考えていたらここにたどり着きました。
 新しい地平が開けたカンジします(笑)。

 以下、私が理解した内容を記してみます。間違ってたら申し訳ありません。


■シャノンさん&フーリエさんと向き合う

・サンプリング定理を改める
 これ、単純に見えて凄く奥深い定理だったんですね。
 そして、定理自体は数学的理論であり、デジタルオーディオはそれを“応用したもの”であることを理解すべきだったんですね。
 つまり、この定理を大前提としつつ、デジタルオーディオの実際における現実的破綻(理論との乖離)への対応機能を理解する必要があり、それこそがDAC動作としての音質に支配的影響を与えていたのですね。

 といってもナンノコッチャですよね。で、まずは基本から。
 本件については、TI社のDSPトレーニング「第2章 デジタル信号処理入門 (サンプリング定理/エイリアシング)」は解りやすいと思います。
http://www.tij.co.jp/dsp/jp/docs/dspcontent.tsp?contentId=53936

 これによると、

「取り扱う信号が周波数 fc より高い周波数成分を持たないとき、サンプリング周波数 fs は
  fs≧2fc
であれば、サンプリングされた信号から元の信号は完全に再現される。」


とあります。

 一見単純に見えますがよく考えてみると奥深い定理ですね。例えば、サンプリングされた信号は不連続(離散的)なのになんで“完全に再現される”のでしょう? 実はそれ長年疑問だったのですが、今回考えてやっと腑に落ちた気がします。

 何気なく読んじゃってますが、実は「取り扱う信号が周波数fcより高い周波数成分を持たないとき」という条件が大変重要だったんです。
 人工的な信号であればそれは可能ですが、音楽などには広範囲の周波数成分を含みます。が、CD規格を例にすれば、「22.05kHz以上の周波数成分を持たない」ことがこの定理の“大前提”、必須条件なのです。
 ですので、具体的には

・AD変換時には「22.05kHz以上の周波数成分をカット」することでデジタル化
・DA変換時には「22.05kHz以上の周波数成分をカット」することで原アナログ信号を復元

しているのです。

 といっても、何でDA変換時にまたカットする必要があるのでしょう? AD変換時点で22.05kHz以上の周波数成分はカットしているのに…? アナログだったらカットした後はカットされたままですよね。
 実はこのあたりが「デジタルオーディオ」のキモでした。
 そして、それを理解するためには、そもそも「“周波数成分”とは何か」を理解する必要があったんです。

・周波数成分とは
 やはりTI社のページが解りやすいでしょうか(「フーリエ変換」としての解説ですが)。
http://www.tij.co.jp/dsp/jp/docs/dspcontent.tsp?contentId=53938

 かいつまんで言うと、ある時フーリエさん(フランス在住)という方が、

「どんな信号波形でも、それをいくつかのサイン波(それぞれ異なる周期と振幅を持つ)の重ねあわせに変換できることを発見」

したのです。これを利用し、波形を「構成するサイン波の周波数分布」分解したのが周波数成分(スペクトル)です。

 ただし、“どんな波形も~”が成立するのは「無限の周波数まで想定した場合の数学的理論として」です。デジタルオーディオにはデジタルの事情があるのです。例えば矩形波の垂直立ち上がり部分は周波数無限大までのサイン波を足し合わさないと表現できませんが、現実に扱える周波数は有限です。よって、例えば、22.05kHzまでの周波数成分しか持たない(と定義されている)デジタルデータでは「立ち上がりは22.05kHzのサイン波以上に急峻には表現できない」ということになります。詳しくは後述します。

 一方、逆説的ですが、サイン波はその周波数成分しか持ちません(純音という。それが周波数成分の定義ですから当たり前?)。
 そして、22.05kHz周期を示すデジタルデータがあった時、そのデータが示せるアナログ波形の最高周波数はサンプリング定理の前提条件から「22.05kHz」です。
 具体的にみてみます。以下の図のような★サンプルがあったとします。アナログ化するとサイン波になるワケですが、例えば三角波や矩形波は何故あり得ないのでしょうか。
サイン波再現イメージ
*:この考察ではDACチップのアナログ変換速度は無視できるほど速いとします。また、矩形波は半周期ズラしてイメージしてもいいと思います。

 ★サンプルは「22.05kHz以下の周波数成分しか持たない22.05kHz周期の波形」を示していることになります。
 サイン波以外の波形は22.05kHz以上の周波数成分を含みます。
 よって、このサンプルは2個しかないけれど表現しているのは「22.05khzのサイン波」しかあり得ないことになります。

 そして、22.05kHzという“サイン波の最小単位(最高周波数)”を復元できるならそれ以下の周波数も復元可能ですから、数多の波形はフーリエさんの言うサイン波の重ね合わせで再現できることになります。

 これが「断続的(離散的)デジタルデータから連続的アナログデータに“完全に”復元できる」理屈の基本だと思います。

 イメージ的には「CDというデジタルデータ規格は22.05kHzサイン波の集合体として音声波形を表現している」と言っていいかも知れません。
 ただし、多くのフーリエ変換の説明では「サイン波を無限に足し合わせていくと複雑な波形や矩形波などが再現できる」ことを表現していると思いますが、これは数学的フーリエ変換において無限周波数を扱う概念ですので、有限の周波数しか扱えない現実のデジタルオーディオそのものの説明ではない、という点に注意が必要でしょう。

 実際には、電圧(電流)変換した直後の階段状波形をアナログLPFに通すことによって“サイン波の集合体としてのアナログ信号”に復元します(そうなるようにLPFを組む。数学的にはsinc関数のたたみ込みとなる処理を電気的に行う)。
 このLPFは「リコンストラクションフィルタ」と呼ばれることもあるようです。その名の通りの役割ですね。

 以下に実際のDACシステムからの出力例を示します。数字的に判りやすい24kHz系で。
 2448をアナログ再生したものを192kHzサンプリングでデジタル化することで「アナログ波形観測」に見立てた波形です。超粗いデジタルオシロ?(苦笑)。 4倍の解像度があるのでとりあえず代用になるかと。AD変換側のフィルタ事情なども含まれてしまいますが、無視できると仮定します。
 まず、12kHzサイン波です。“最大最小とゼロクロスの4サンプル/周期しかない”のに、サンプルポイントを直線で結んだような波形ではなくちゃんとサイン波が再現されているのが判ります。念のためですが、この図の「・」は192kHzでADしたサンプルポイントです。
sin12kHz2448.png
*:デスクトップPCオンボードサウンドのLINE-OUTとLINE-INを直結し、≪WaveGene1.50≫で生成した2448ファイルを≪PlayPcmWin≫で再生し、≪WaveSpectra1.50≫で16192録音したものです。

 「もしかして、じゃあCDって矩形波や三角波は表現できないの?」というと実はその通りで、サイン波の集合体としての近似波形になってしまいます。理想矩形波や理想三角波には22.05kHz以上の周波数成分が含まれているからです。
 といってそれは再生側(DA側)の欠陥ではありません。44.1kHzサンプリングでは22.05kHz以上の周波数成分はカットされているのが前提であり、AD変換の時点ですでに“カクカク成分”はなくなっているのですから。

 カクカクできない例として、1.2kHz矩形波のAD結果を添付します。40サンプル/周期あるハズですね。
矩形波
 まるでカクカクしていません(できていません(笑))。また、1周期が20個のサイン波の重ね合わせになっているようにも見えると思います(24kHz/1.2kHz=20。中心から上と下でサイン波の形は逆)。念のためですが、アナログ的なノイズやリンギングでこうなっているのではありません。なお、DA・ADとも後述するデジタルフィルタのエコーも含んでいると思いますが、24kHz以下の帯域ではなくオーバーサンプリング帯域で発生するハズであり、今回はおおよそ無視してよいのではないかと思っています。実際、元データを4倍アップサンプリングしたデジタルデータ波形もほぼ同形になりますので(エコー成分の付加は見られない)。
 ちなみに、12kHzの矩形波はほとんどサイン波になってしまいます。イメージできると思います。


 「デジタルはカクカクな波形になる」と思われがちですが、それはまるで誤解だったんです。実はカクカクなんてしていない…と言うか逆に「カクカクできない」のです(*)。
 そしてそれは決してナマっていたりするワケではなく、理論上正しくスムーズになっているのですね。
 実は、デジタルオーディオ(おそらくアナログでも)では「カクカクは正確に表現できない」のです。一般的な印象とは真逆、目からウロコですね(笑)。まあ、そもそも「カクカク」の“水平部分”はDC成分ですし“垂直部分”は無限周波数ですから、自然界には存在し得ない音なワケで、考えてみればアタリマエかも知れません。

*:たまにそう見える生波形の写真・図もありますが、リコンストラクションフィルタをかける前のものでしょう。


 繰り返しますが、この理屈が成立するのは、CD規格の数字で言えば
「22.05kHz以上の周波数成分はないという前提(約束事)があるから」
です。
 そして、これと同時に
「現実的には22.05kHz以上を遮断し22.05kHz以下を通過させる理想LPFは存在しない」
という点がキモでした。
 それによって「DA変換の現実問題」が発生し、それこそがデジタルオーディオの音質に大きな影響を与えていると思われるからです。


■AD変換の現実

 上で「理論」を一応一通り見てきました。それを踏まえ、「現実」にはどうなっているか考えてみようと思います。

・理想ローパスフィルタは存在しない…ので
 上述した通り、DA変換で22.05kHzまでの音声を復元するためには、AD変換=サンプリングする際に22.05kHz以上の周波数成分を完全にカットする必要があります。
 しかし、22.05kHz以下を通過させ22.05kHz以上を遮断する垂直なカットオフ特性を持つ理想LPFは存在しません。ゆえに、現実的にはLPFはある程度“斜めの(緩い)”カットオフ特性を持つことになります。
 ここに「人間の可聴域は約20kHz」という条件を加味すると、「20kHz以下を通過させ22.05kHz以上を遮断する」LPFが“現実的理想”となります。AD変換する前ですからもちろんアナログフィルタです。プロ用機材ですから、それなりにコストをかけてなんとかニアリーな特性を実現していたようです。

 では、「20kHz以下通過&22.05kHz以上遮断」という特性が完全に実現できていないとどうなるでしょう?

・20kHz以前に遮断周波数がひっかかる場合は高域のゲインダウンとなります。

・22.05kHz以上の周波数成分が完全に遮断しきれていないとすると、これはAD変換時点でとしてデータに内包されることになります(再生時には見分けつきませんので除去できないノイズとなる)。これが「エイリアシングノイズ」です。22.05kHz以上の周波数でもそこに波形があればサンプリングされてしまうことは容易に想像できるでしょう。面白いことに22.05kHz(ナイキスト周波数)を中心に折り返された周波数成分として出現するので、“折り返し歪み(雑音)”と呼ばれるようです。ただ、アナログ的な「シャー」とか「ザザザ」とか言うような“雑音という意味でのノイズ”とはちょっと概念違うことに惑わされそうです(笑)。

 よって、このAD変換前のLPFは「アンチエイリアシングフィルタ」と呼ばれるようです。
 「アンチエイリアシングフィルタリングのデキ」は、デジタル音源生成時の音質差要因のひとつになるでしょう。

・エイリアシングノイズを可視化する
 例えば、foobar2000の記事で用いた2496サンプル音源をAD対象のアナログ音源、それを2448でダウンサンプリングすることを2448でデジタルサンプリング、とみたてることで可視化を試みました。

 ≪WAVEフォーマット変換プラス1.02≫というフリーソフトで“単純間引き”した2448と、SoX(もちろんAliasing許可しない)でダウンサンプリングしたファイルを反転mixしました。前者は“エイリアスノイズまみれ”、後者はカットされているハズですので、ノイズが抽出されるハズです。

Souvenir2448WCPmix.png

 確かに無視できないノイズと言えそうです。

 これが「エイリアシングノイズ」の正体なのでしょうか。
 試しに元音源の24kHz以上のスペクトルを画像として左右反転して(折り返して)みます。

Souvenir2496半分反転

 比べてみると、確かにナイキスト周波数(24kHz)で“折り返し”てるように見えます。アンチエイリアシングフィルタなしでAD変換した場合、理論的にはこの折り返しが無限に続くんですよね。

 これはAD変換時にちゃんと除去しといてもらわないと、ですね。


■DA変換の現実

 プロ現場の高性能なADシステムなら「AD変換時のエイリアシングノイズ」はほぼキャンセル出来ていると考えてよいと推察しています(特にイマドキは)。しかし、そうやって得られたデジタルデータでも、今度は理論上「イメージングノイズ」なるノイズを必ず内包しているのです。

・イメージングノイズとは何か
 前述のTI社のDSPトレーニング「第2章 デジタル信号処理入門 (サンプリング定理/エイリアシング)」の後半の内容になりますが、私なりに理解の補助図を作ってみました。
 数字の解りやすさを優先し、ここでは48kHzサンプリングを例とします。≪Wavosaur≫を使って並べて作ってみました(波形を得ることが目的ですので、図中の周期や振幅は説明とは無関係です)。

イメージングのイメージppt

 元のアナログ波形は24kHzのサイン波とします。48kHzサンプリングの最小単位ですね。AD変換時★印のポイントでサンプリングされ、2サンプルでピークトゥピークのサイン波データとなっている状態です。
 しかし、上図を見ると、サンプリングポイントを通過するサイン波は24kHzだけではありません。72kHzや120kHzも条件を満たすことが解ると思います。もちろんもっと高い周波数にも無限に存在できます。
 “存在することをイメージ”できてしまうとも言えるでしょうか。
 これが「イメージングノイズ」です。こちらも、「ノイズ」と言ってもアナログ的なものではなく、デジタルデータ(離散的)であるが故に存在するものなので、アナログ的なノイズの概念で捉えないことがポイントかと思います。前述したリコンストラクションフィルタを通す前の「カクカク」部分に含まれる無限周波数のこと、とも言えると理解しています。
 面白いことに、「サンプリング周波数×N±周波数」に出現します。48kHzサンプリングの12kHzサイン波なら1fsのイメージング領域には36,60kHz、2fsの領域には84,108kHzに出現します。

 では、この「イメージングノイズ」を除去するにはどうすればよいでしょう?
 ここで、改めてサンプリング定理をひもときますと「元信号には24Hz以上の周波数成分はない」という前提条件があるのですから、「イメージングノイズ」と「シグナル」はそれで区別できることが解ります。つまり24kHz以上の周波数成分はノイズとみなしてカットすればよいワケです(24kHz以下にはイメージングノイズは絶対に出現しません。イメージではなくリアル領域ですので)。

 これってつまり前述した「リコントラクションフィルタ」の役割の別表現と言えますね。こちらの理解の仕方では「アンチイメージングフィルタ」と呼ばれるようです。

・イメージングノイズを可視化する
 2448音声データを≪WAVEフォーマット変換プラス1.02≫によって単純間足し24192とすることで擬似的にイメージングノイズを可視化し、上記動作を説明を書き込んでみます。

イメージングノイズイメージ

 と、理屈はカンタンなワケですが…

・イメージングノイズカットの現実問題
 でも、しかし、つまりそれって、DA変換においてもAD変換時と同等の急峻な遮断特性を持つ高性能LPFが必要ということです。しかし今度はプロ用ではなくコンスーマ機器に実装する機能です。
 コンスーマ機器でそんなLPFを実現するにはどうすればよいのでしょう? 20kHz以上に存在するイメージングノイズはどうせ聞こえないのだから「何もしなくてもいい」という極論もありえますが実際にはそういうワケにもいかないですよね。そこで…
 CD黎明期のプレーヤではコンスーマ機器として許容範囲のコストや規模でアナログLPFを実装していたようです。しかし、おそらくプロ用LPF技術の簡易版としてバーターがあったであろうことは容易に想像できます。例えば、遮断特性を厳しくすれば波形を崩すけれど緩くすればイメージングノイズが漏れ出る、どっちを取るか? というような。
 初期のCDプレーヤではそれが音質劣化の大きな要因になったという話は納得できるものがありますし、プレーヤ製品間の音質差違の大きな要因になっていたことでしょう。
 しかし、現在では大きく事情が変わりました。デジタル技術の進化よって安価かつ高性能(?)に処理する技術が開発されたからです。
 それが「オーバーサンプリングデジタルフィルタ」です。

・オーバーサンプリングデジタルフィルタとは
 一言で言うと、

「リコンストラクションフィルタの役割を“デジタルのプリフィルタ”と“アナログのポストフィルタ”の2段構成にすることによってアナログフィルタの必要特性を緩くすることを可能にし、そのコスト・規模を大幅に削減する」

でよろしいかと思います。
 現在ではDACチップに内蔵されており、「8倍オーバーサンプリングデジタルフィルタ」などといったスペックがこれを表しています。
 以下、OSDFと略します。

 何が行われているかの理解のため、以下の方法で2倍OSDF動作を擬似的に可視化してみました。
 
step1.≪WAVEフォーマット変換プラス1.02≫で単純間足しして2496化し、イメージングノイズをデータ化
step2.≪Wavosaur x64 1.1.0.0≫のLPFで24kHz以上をカット
step3.≪WAVEフォーマット変換プラス1.02≫で24192化し、イメージングノイズ状態を可視化

 以下がそのスペクトルになります。

デジタルフィルタ動作イメージ

 2倍OSDFをかけると1fsのイメージングノイズ(上記例では48kHz中心の折り返しで24~72kHzに発生)をカットできることが解ります。ただし2fs以上のイメージングノイズは残っているため、この除去はアナログのポストフィルタに担ってもらうということですね。しかし、OSDFがない場合よりかなり緩やかな特性でよくなっていることが解ると思います。
 4倍にすると3fs中心まで、8倍にすると7fs中心で折り返すイメージングノイズまでカットできるため、残留ノイズはかなりの高周波数帯域にしかなくなります。アナログポストフィルタはそれをカットすればよいので、倍率を上げればどんどん緩い特性でよくなる、ということですね。確定的な情報は得られていませんが、遮断周波数は100kHz~150kHzあたりみたい?
 もちろんこのOSDFの性能はDACチップによって千差万別であり、それがDACチップの音質差要因になっていることでしょう。
 OSDFの効果を「ノイズを高域に“移動させる”」という説明を見ることがありますが、移動じゃあないような(苦笑)。もともと離散的であるが故にデータに内在しているノイズのハズですから…
 なお、念のためですが実際にはDACチップ内での“リアルタイム”処理です。

 イマドキのDACチップは、DA変換する前にかなり大量のデジタル演算する半導体なのですね。


 上述の通りDACユニットが謳う「デジタルフィルタ」機能は「DA変換機能の一部=必須機能」です。決して「音質を損ねる余計なフィルタ機能」ではありません。念のため。
 では、≪foobar2000≫のSoX Resamplerなど、送り出し側で行うアップサンプリングとDACチップ(ユニット)で行うオーバーサンプリングとはどんな関係になるのでしょう? 当記事を踏まえて考えてみましたのでよろしければ。


■余談

・デジタルフィルタ部の機能
 実際のデジタルフィルタブロックにはアッテネータやデエンファシス処理など含むことは、本稿では割愛させていただきました。また、DSDについては無視しています。
 イマドキはADもDAもΔΣ方式で行われていると思いますが、原則として本稿の内容とは直接関係しないと思っています(さらに現実的なハナシになる)。

・「エイリアシングノイズ」と「イメージングノイズ」の定義
 これら用語に明確な定義はなさそうで、混在使用されているように見えます。例えばRoland社のインタビュー記事(*)では明らかにアナデバ社の言う「イメージングノイズ」を「エイリアス成分」と呼んでいます。「エイリアス」と「エイリアシング」も区別が微妙。
 web検索ヒット内容とSoXの表記から、本BlogではAD段階を「エイリアシングノイズ」DA段階を「イメージングノイズ」と記すことにしました。

*:http://av.watch.impress.co.jp/docs/series/dal/20141020_672091.html


■参考資料

・東京電気大の「ディジタル信号処理の基礎」
 大学の教材としてはかなり平易に書かれている
 「理想LPFがデジタル離散信号から原波形を復元する」と明記されている
 末尾の数字は年度を表していて、例えば12、13、14もある
http://www.asp.c.dendai.ac.jp/ASP/DSPseminar08.pdf

・同じく東京電気大の「信号理論(第5回)」
 フーリエ級数について正弦波を重ねて矩形波などを表現できることが図で解りやすく記されている
http://www.asp.c.dendai.ac.jp/courses/spectrum01.pdf

・Resonessence社の「エイリアシング(エイリアス)とは」
 CD黎明期の事情を交えてAD時のエイリアシング除去、DA時のイメージング除去を解りやすく書いている
 DA段階のフィルタをリコンストラクションフィルタと呼んでいる
http://www.resonessencelabs.jp/resonessence-labs/technologies/digital-filter/

・EDNJapanの記事
 こちらにもDAC原理が記されており、同じく「リコンストラクションフィルタ」と呼んでいる
http://ednjapan.com/edn/articles/0607/01/news010.html

・アナログデバイセズ社「データ変換の基本ガイド」
 音声に限らないADC/DACの解説
 エイリアシングノイズが折り返されてずっと続いていく図が掲載されている
 DA変換時に発生する折り返しノイズを除去するのは「アンチイメージングフィルタ」と記されている
http://www.analog.com/static/imported-files/jp/overviews/ADI_Data_Conversion_Poster_F.pdf

・アナログデバイセズ社のΔΣADC/DACの原理解説
 ADCについてだが、P.8に「48kHzで115dB減衰させるフィルタを構成するには4096tap必要」とある。196MHz/tapの計算能力が必要であり、現在(2009年)は無理と言っている
http://www.analog.com/static/imported-files/jp/application_notes/AN-283_jp.pdf

・TI社のオーバーサンプリングデジタルフィルタ解説
 本稿に記している原理が解説されている(アナログポストフィルタの特性など)
http://www.tij.co.jp/jp/lit/an/jaja016/jaja016.pdf

・CDプレーヤからの「11.025kHzサイン波」と「5.5125kHz矩形波」の出力波形
http://www.tcgroup-japan.com/TCE/Tech/0dbf_D-Mastering_JPN.pdf


メインメニューへ

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

ハイレゾ領域の高音は再生されているか

14/11/02初稿

 最近ハイレゾ試聴についていろいろ考えている中で、

 ・本当にハイレゾな音源か
 ・試聴環境はハイレゾ対応しているか

を確認する必要があると思い、音源がハイレゾリューションかどうか調べる方法は自分なりに考えてみました。

 次は、再生環境がハイレゾに対応できているかです。
 ダイナミックレンジを確認する術は私などには思いつけないのでさておき、ハイサンプリングについては「20kHz以上の音って再生できてんの?」という疑問は昔からあります。
 現在ERIでは、プレーヤPCからHDMIでYAMAHA製AVアンプDSP-Z7に送り込みA-1VLで805Sを駆動、およびZ7のヘッドホンアンプでZENNHEISER製HD700を鳴らしています。HD650(11年当時)で実験したこともありました。
 このシステムはハイレゾ高音を再生できているのでしょうか?

 ADCとして一応SB-DM-PHDが手元にありますので、試しに測ってみました。

*:人工的加工音声の再生は機器を破損する可能性がありますので、ご注意ください。


■32kHzサイン波

 まずは判りやすいものでと思い、人工波形で行います。
 環境は以下の通りです。

・ソース:≪WaveGene1.50≫で32kHz/-10dBのサイン波を2496形式で作成
・プレーヤPC:E-350ベース自作
・プレーヤソフト:≪PlayPcmWin x64 4.0.64.0≫ もちろん排他WASAPI
・DAC:DSP-Z7 音量は-20.0dB(ふだんの値)
・ADC:Sound Blaster Digital Music Premium HD 2496で
・マイク:DSP-Z7付属のYPAOキャリブレーション用マイクEMX-251
・レコーダPC:Versa Pro(ノートPC) ACアダプタは接続せずバッテリ駆動
・スペクトル表示&録音ソフト:≪WaveSpectra1.50≫ 排他WASAPI

 マイクは当然20kHz以上の帯域採取を保証するような代物ではありませんが、なにはともあれやってみようということで。

 生成したファイルの直接スペクトルはこんなカンジです。

32kHz再生:データスペクトル

・Z7のヘッドホン出力(アナログキャプチャ)
 まずはヘッドホン出力をライン入力に突っ込んで。どきどき。

32kHz再生:HD700をZ7マイクで採取

 おお、意外とハッキリ再生してるモンなんですね。ちょっと驚いたと同時に、DSP-Z7はヘッドホン出力に変な手抜きしてなさそうだと判ってちょっと安心(笑)。

・HD700(アナログキャプチャ)
 次は、そのヘッドホン出力を「実際に音波にできてるか」です。
 対象のHD650とHD700のスペックはハイレゾOKと考えていいと思います(HD650はもう手元にありませんが)。

・HD650:http://www.sennheiser.co.jp/sen.user.Item/id/7.html  10~39,500kHz
・HD700:http://www.sennheiser.co.jp/sen.user.Item/id/897.html 15~40,000kHz

 先入観としては、マイク性能も仕様外ですしADCも高級品じゃありませんから、32kHzの音なんて採取できるのか疑問でした。
 そもそも実際に鳴るのかすら半信半疑だったのですが、HD700のイヤーカップに突っ込んでスペクトル見てみると

32kHz再生:Z7ヘッドホン出力をSBDMPHDで採取

再生してる… ていうか音採れてる…

 マイク遠ざけるとレベル小さくなりますし、再生システムと録音システムは全く電気的には繋がっていません(前述の通り録音側はバッテリ駆動)ので、ノイズ回り込みなどではないと思います。もちろん32kHzはマイクの仕様外でしょうけれど、反応はしてるってことですね。
 これは意外… 何事もやってみるモンですねぇ。

・Nautilus805Sツィータ(アナログキャプチャ)
 気をよくして(?)、スピーカの音も拾ってみました。ツィータにマイクくっつけて。
 Nautilus805Sのスペックは42~50kHzとなっています。

32kHz再生:805SツィータをZ7マイクで採取

 おお、こちらも再生してます。スペックに偽りなし(笑)。

・試聴位置(アナログキャプチャ)
 では、いつもの試聴位置まで届いているのでしょうか。

32kHz再生:試聴位置(どまんなか)をZ7マイクで採取

 へええ、結構届いてるようです。


■ハイレゾ音源

 こうなると、普通の音楽ではどうなのかも確認したくなります。32kHz/-10dBのサイン波はスペック確認にはいいでしょうけれど音楽再生とは無縁ですもんね。
 そこで、「ハイレゾ音源に有意な高域は入っているか」を確認させてもらった「HPFをかけたe-onkyoのハイレゾサンプル」を再生してみました。
 ただ、この帯域のこの音量レベルの音声再生は無理な可能性も高いと思いましたので、≪SoundEngineFree5.02≫でノーマライズしたファイルも用意。
 音源以外の環境はサイン波と同じです。

・Z7のヘッドホン出力(アナログキャプチャ)
 ノーマライズしていない音源ですが、なんとか反応してます。へぇ~

HPF再生:Z7ヘッドホン出力をSBDMPHDで採取

 ノーマライズ音源はよりハッキリ反応しました。

・HD700(アナログキャプチャ)
 こちらは残念ながらノーマライズしていない音源には無反応(ていうかADCのフロアノイズ以下?)。
 ノーマライズ音源なら

HPFノーマライズ再生:HD700をZ7マイクで採取

・Nautilus805Sツィータ(アナログキャプチャ)
 ノーマライズ音源を、サイン波と同じくマイクをツィータにくっつけて。

HPFノーマライズ再生:805SツィータをZ7マイクで採取

 なお、ノーマライズしていない音源にも微かに反応していました。
 さすがB&W自慢のチョンマゲツィータ。そもそも“ツィータ”は高域専用スピーカですから、そのツィータでの再生は基本的にワンウェイであるヘッドホンより有利なのは当たり前かも知れません。

・試聴位置(アナログキャプチャ)

HPFノーマライズ再生:試聴位置(Lchのみ再生)をZ7マイクで採取

 上記の通り普段の試聴位置でも反応。ノーマライズ音源です。非ノーマライズ音源はさすがにダメでした。

 となると、今度は「これってどんな音なのか」確認したくなります。ただのノイズだったらしおしおですから。
 そこで、この音を録音、≪Wavosaur x64 1.1.0.0≫で24kHz以下カットのHPFかけたファイルを作成。以下がそのスペクトルです。

HPFノーマライズ再生:試聴位置(どまんなか)をZ7マイクで採取→HPF

 このファイルをノーマライズして0.5倍速再生したら、リズムとって聞こえました。少なくとも実験過程で発生したノイズではなさそうです。

 なんかちょっと感動。
 そもそも可聴周波数帯ではないことに加え、音量的にも音源としてノーマライズしたものを録音後にさらにノーマライズしていますから通常とは全く異なる音ではありますすが、1メートルちょっとの空間を超えてツィータから試聴位置まで音源ファイルに入ってる高音が届いてるんですねぇ。
 「実際には何も聞こえない空間で録音した音」を聞くことができるって不思議なカンジです。


 ということで、「現システムにおけるヘッドホン再生およびスピーカ再生は20kHz以上再生可能である」と言ってよさそうです。DSP-Z7自体(プリ部?)はBDなどのハイレゾ対応ですから問題ないのは当然ですが、アンプ部(特にヘッドホンアンプ)およびヘッドホン&スピーカ(パワーアンプ含む)の性能を実際に確認できた、のは良かったです。
 何か間違ってることあるかも知れませんが…(やや不安(笑))

 もちろん“音質”は考慮していません。繰り返しますが、「元々音源ファイルに入ってた高域を再生しているか(ノイズではなく)」のみの確認です。
 音質、確認する術ありませんし(笑)。


■今そこにある機器

 ちなみに、当実験におけるUSBケーブルやアナログケーブルは“フツー”のものを用いました。
 また、マイクもいくつか試してみましたが、こちらも普通のものでも意外と反応するみたいです。
 ので、アリモノを使って自システムの能力はどうなのか試しに測ってみるのもいいかも知れません。

 ADCなんてない…かも知れませんが、実はデスクトップPCオンボードサウンドのMIC-INやLINE-INでもイケそうです。
 私が現在メインPCにしているGIGABYTE製Z67マザー(Realtek ALC889)のMIC-INは192kHzサンプリングまで対応しており、HD700の32kHzサイン波を拾えることを確認しました。
 当実験には音質あまり関係ありませんので、オンボードサウンドでも有用だと思います。

 ≪WaveSpectra 1.50≫の排他WASAPIデバイス使用可能フォーマット

MIC-INスペック


メインニューへ

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

そのハイレゾ音源はハイレゾリューションなのか確認する

14/10/13初稿

 ハイレゾに関する試聴する際には、そもそも「本当にハイレゾに足る情報量を持っている」ハイレゾ音源をもってする必要があります。「非ハイレゾ音源」を作って比較する記事にも記していますが、元にするハイレゾ音源は「フォーマットがハイレゾ」なだけでなくハイレゾとして有意義なデータでなくては意味がありません。
 でも、それってどうやって確かめればいいのでしょう。“聴いて確認”では本末転倒ですもんね(笑)。

 さて、ハイレゾフォーマット(本稿ではLPCMのこととします)のパラメータは「サンプリング周波数」と「ビット深度」です。
 このふたつについて「ホントにハイレゾか」の確かめ方を考えてみました。

 ハイレゾ音源は2496として記します。


■サンプリング周波数:高域入っているか見分ける方法

 単純にフォーマットを活かしているかの確認方法として記しますので、「ハイレゾの効果はCDを超える高域が含まれること」の是非は置いて考えます。
 あったらあった、なかったらなかったで、その意味は別途考えることになるでしょう。

・スペクトルを見る
 とりあえず、≪WaveSpectra≫などのスペクトル表示ソフトで「24kHz以上の音が含まれているか」を確認するのが第一歩ですよね。
 22kHzくらいで急峻に減少している場合はCDっぽいLPFがかかっていることになりますので、出自を確認した方がいいかも知れません。
 また、再生時に「ちょっとでも倍音のピークが立つ」とか「20kHz以下と連動してレベルが変化する」といった点も確認するといいと思います。

・確認ファイルを作る
 しかし、LPFがかかっておらず高域があったとしても、それは「ノイズではない」有意な音でないと“高域が入っている”とは言えないでしょう(「ノイズでも効果がある」といった説は別の議論になると思います)。
 よって、24kHz以上の帯域にある音の有意性を確かめる必要があります。
 そのためにはどうすればいいか考えた結果、「周波数成分が24kHz以上のみのファイル」を作って聞いてみることにしました。
 方法としては以下の2種類を考えました。

(1)HPFで24kHz以下をカットする
 ただし、普通HPFは低域をカットするのに使われるためか、この加工がマトモに動かないソフトも多いようです。
 フリーの波形加工ソフトでは、≪Wavosaour≫のHPFがちゃんと24kHzのHPFとして動作するようです。

(2)2448にダウンサンプリングして24kHz以上の情報をカット → それを2496にアップサンプリングし「なんちゃって2496」を得る → 「なんちゃって2496」と元の2496を反転mixする

 リサンプルしてもサンプル位置はズレないと思いますが、≪SoX Resampler0.8.3≫でx0.5x2した結果とオリジナルを≪Audacity≫で並べ、時間軸を拡大して比較し、ズレは発生していないことを確認しました。
 また、SoXで作った「なんちゃって2496」には24kHz以上の有意な音は生成されていませんでした。

 これによって24kHz(付近)以上の帯域しか入ってないWAVファイルを得ることができました。

 以下、≪foobar2000≫に関する記事で用いたe-onkyoの2496ハイレゾサンプルにつき、「≪Wavosaur x86 1.0.8.0≫にて24kHzをスレッシュにしたHPFかけたスペクトル」です。

Souvenir2496HPF.png

 24kHz以下(ナイキスト周波数以下)にも若干周波数成分残っていますが、気になる場合はもうちょっと高いスレッシュに設定してもよいでしょう。

・確認ファイルを聞く
 当然、これを普通に再生しても何も聞こえません。
 そこで、次のような再生を行います。≪SoundEngineFree≫などで実施できます。

step1.音量を上げる
 高域はもともとピークでもほとんど聞こえない音量しかありませんのでブーストします。今回は「有意な音が入っているか=ノイズじゃない音か」が判ればいいので、精度などはあまり気にする必要はないと思います。
 波形編集ソフトでノーマライズするのがカンタンでしょう。

step2.周波数を低域にシフトする
 ノーマライズしたまま再生速度を変えて再生すればOKです。例えば0.5倍速再生にすれば24~28kHzの帯域は12~24kHzに下がってきますので、高音として聞こえるようになります。

 これで「このハイレゾ音源には“CDを超える有意な高域音声”は入っているか」を聞いて確かめることができます。
 もちろん楽曲には聞こえませんが、元ファイルと同じリズム(特に高音の楽器)を刻む音が入っているか否かは確認できると思います。ナンでしたらDTMソフトや≪Audacity≫などにように複数ファイルを同時再生できる環境で「リズムが同期しているか」を確かめることもできます。
 リズムが確認できたなら、少なくとも「ノイズ以外の音も入っている」とは言えると思います。もちろん、それがどこまで有意義な音(録音時からある音? 機器の仕様上保証された音?)なのか確認する術はありませんが。

 上記e-onkyoサンプルは、24kHzと30kHzをスレッシュにHPFしたファイルで「リズム刻んでいる」ことが確認できました。

 繰り返しになりますが、最初に記した通り、高域の有無だけがハイレゾの価値かどうかについては別問題として本稿は記しています。

 ちなみに、しかるべき性能のADCによってデジタル化すれば「アナログレコード音源」を「ハイレゾ音源」とみなして同種の確認することも出来るのでは、なんて密かに思ってるんですけど…


■実験注意

 本項15/01/17追記。
 初稿に以下のように書きました。

> ただし、HPFのフィルタやリサンプリング処理や再生速度変更処理によって何らかの高域音声が
>生成されてしまっている可能性も否定はできません。
> ただ、ふたつの方法で作ったファイルがほぼニアリーな音になったことなどから、とりあえず、
>その影響“だけ”で何か聞こえているのではないと想定しています。

 甘かったです(苦笑)。その後、以下のような挙動が確認されました。

・≪SoundEngineFree 5.02≫で可変速再生すると、「1.0倍以上」にしても音が聞こえる。
・24kHzカットオフ設定のHPFだと24kHzのやや下までは残ってしまうので、念のため≪Wavosaur x64 1.1.0.0≫で30kHzカットオフしたファイルを生成して同様な再生してみると、0.5倍や1.0倍では何も聞こえない。逆に0.4倍や1.2倍などにすると聞こえる。

 この現象から、以下のことが想像されます。

・可変速再生は一種のリサンプリング処理であり、付帯音が生成され、上記の場合それを聞いている可能性が高いのではないか。
・0.5倍速では「サンプルを単純2倍」にしているためリサンプリング処理による付帯音がない状態なのではないか。
・ということは、24kHzあたりの周波数を1/2にした12kHzは聞こえたけれど、30kHzの半分の15kHzは聞こえなかったということではないか。

 とすると、30kHz以上の高域を確認するためには、1/3倍速程度の低速再生を“リサンプリングせず”実現する必要があります。加えて言うと、同じ理由でWindowsAudioEngineによるリサンプリングも避けたいので、排他WASAPIによって再生することが望ましいです。
 それを満たすため次の方法を考えて確認してみました。

・≪Wavosaur x64 1.1.0.0≫で30kHzHPFかけた2496ファイルを、バイナリエディタでヘッダ情報を書き換えることにより24bit32kHzのファイルに“変換”。
 これで「30kHz以上」は「10kHz以上」になります。これなら聞こえるハズ。
・≪SoundEngineFree 5.02≫でノーマライズ。
 Impulse波形を同処理し、当該処理ではフィルタ演算は行われていない(単純にレベルが上がるだけ)ことを確認。
・≪ WAVEフォーマット変換プラス 1.02≫の“単純間足し”で2496化。
 排他WASAPIで再生するためにはデバイスネイティブフォーマットである必要がありますが、32kHz、64kHzは非対応なので96kHzに。
 バイナリエディタで同サンプルが3個続いていることを確認(フィルタ演算なしでサンプリング周波数変換)。
・≪PlayPcmWin x64 4.0.72.0≫で排他WASAPI再生。

 これならリサンプリング処理はどこにもなく、フィルタ演算による付帯音は発生していないハズです。
 できたファイルのスペクトルはこれ。16kHz以上にイメージングノイズが付加されていますが、フィルタ演算で生成されたものではないので今回の目的においては無視していいでしょう。

30kHzHPF 2432 nrm WCPx3

 ただのノイズではなくリズムのある音に聞こえました。完璧な方法とは言えませんがひと安心(笑)。
 参考までに、2496ファイルをリサンプルなく1/3倍速再生となる2432ファイルに“変換”するために書き換えるWAVファイルのヘッダは以下の反転部分です。

2432ヘッダ

 元の2496ファイルでは「00 77 01 00 00 CA 08 00」となっているハズ。WAVヘッダの意味はこちらです。

 なお、波形編集ソフトは“目的以外の処理も明示せず行う”ことがありますので注意が必要です。
 ノーマライズ処理に使った≪SoundEngineFree 5.02≫はリンク先記事で問題ないことを確認しています。切った貼ったではありませんが、おそらくノーマライズ処理でもそれ以外のことはしていないと思います。 

 HPFで何かくっついてきてたらやむなしです。


■高域があっても“ネイティブじゃない高域”かも知れない話

 本項15/02/25追記:22~24kHzくらいより上の高域がない場合は、CD音源やDAT音源のアップサンプリングである可能性が高いです(高域がまるでないアナログ音源のリマスタかも知れませんが(笑))。
 しかし、高域があっても安心はできません。“ネイティブ高域”でない場合もありえるためです。
 そんな可能性を示すスペクトルをふたつほど作ってみました。

DSD64→2488

 これはあるDSD64音源を2488に変換したものです。22kHzあたりで一旦減衰した後、DSD特有のシェピングノイズが発生しています。もちろん有意な高音ではありません。
 「再生中に変動しない右肩上がりのノイズ」があったらこのパターンでしょう。

 もうひとつ。

1644→WaveUpCnvx2

 こちらはCD音源の「アップコンバート」です。見事に高域を生成していますが、元ソースの限界点22kHzあたりの減衰は残っています。
 「ナイキストのヘソ」があったらこれかな。

 以上、22~24kHz以上の高域があるソースでも、このような特徴がある場合はネイティブではない可能性が高いでしょう。それが即ダメとは思っていませんが、“売り物”の場合はちゃんと明示して欲しいとも思っています。
 以下オマケ。

WaveCnvPlus x2

 これは同じサンプルを“単純間足し”してサンプル数を倍にしたデータのスペクトルです。高域は「イメージングノイズ」で満ちています。もちろん有意とは言えません。
 「全体的に右肩下がりなロールシャッハテスト画像」なカンジになります。
 もしこんな音源があったら憚ることなく「ニセレゾ」と言っていいでしょう。そんな商品は流石に無いと思いますが…


■ビット深度:24bit有効か見分ける方法 ⇒ 改めピーク潰れしてないか確認する方法

 「24bit有効かどうか」 ズバリ、これはワカリマセン(笑)。
 周波数のようにファイルをいじって、下位8bitが元々有意なデータなのか? 演算によって生成された“小数点以下”なのか? を見分けるのはたぶん無理だと思いますので…
 ですので、できることとしたら「コンプかけすぎてないか」「クリッピングしてピーク潰れていないか」を確認する程度かと思います。
 ≪Audacity≫でクリッピングチェックするのが一般的でしょうか。
 ただ、それにも以下のような点に注意が必要でしょう。

・「昆布」や「海苔」の見え方は時間軸で変わる
 曲の長さによって時間軸のスパンが変わるので、同じ表示領域なら長い曲は圧縮されているため「昆布」や「海苔」に見えやすいでしょう。表示の密度に留意する必要があると思います。
 また、当たり前ですけれど、「無理にコンプかけたワケではなく、もともと全体の音圧が高い音楽」もあると思います。

・「クリッピングを検出」したからといって必ずダメなワケではない
 例えば以下のような波形(*)では、ピーク1サンプルだけが天井にドンツキしているので検出されていますが、波形が崩れているとは言い難いでしょう。

*:≪Audacity 2.0.6≫、クリッピング検出は「開始閾値」「停止閾値」どちらも1にて。それぞれ「この数だけピークドンツキになったらクリップ開始とみなす」「この数だけドンツキじゃなくなったらクリップ終了とみなす」という設定だと思います。
 「クリッピングを表示」はおそらく検出のデフォルト設定「3&3」ではないかと思います。この場合、ドンツキ連続3サンプルでクリッピング認定しますが3サンプル以上連続ドンツキしなくならないとひとつのクリッピング終了とは見なされません。「of」は、「ドンツキサンプル数 of そのクリッピングの総サンプル数」という意味だと思います。

クリップしてるけど潰れてない例

 CD音源ですが事情の例示としては問題ないですよね。 

 また、そもそも16bitや24bit分のダイナミックレンジはなるべく使い切った方がよいワケですから(*)、「楽曲のほんの一瞬だけ突出したピークがある」ような場合、敢えてそこをクリップさせても全体のレベルを上げた方が総合的によいと判断したマスタリングもあり得るでしょう。

*:DACのオーバーサンプリングでピークが上がる“TruePeak”も絡んで難しい問題ですけれど、方向性として。

・「クリッピングを検出」していないからといって必ずピーク潰れしていないワケではない
 例えば以下ような波形です。

クリップしてないけど潰れている例

 クリップ表示は出ませんし最大音量も-0.07dB(≪SoundEngineFree 5.02≫にて)ですが、最大音量波形としては潰れていると見えます(こちらもCD音源)。
 ただし、潰れているから必ずダメというものでもないでしょう。


 以下は、あるハイレゾ(2496)女性ヴォーカルの最大音量(-0.10dB)あたりの波形です。

クリップしてないし潰れてない例

 最大音量あたりでもピークは超えず滑らかに変化しているように見えます。
 波形を覗いてこのようなカンジだったら、ビット深度方向に関しては“丁寧なマスタリング”されている音源、と判断していいのではないかと思います。24bit=144dBもありながら(無意味に)ピーク潰すマスタリングされていたら、それは高音質なハイレゾ音源とはちょっと思えませんので、一応判断基準になるのでは。

 多分に感覚的ですが、ビット深度についてはこのような判断方法しか思いつかないですゴメンナサイ。


 上記の方法には何か間違いあるかも知れません。が、ハイレゾ関連の比較試聴する場合は、自分で納得した何らかの「ファイルの素性確認」した方がよいのでは、と思っています。


メインメニューへ

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

「ハイレゾフォーマット」の音質向上効果を比較試聴するには

14/09/27初稿

 「ハイレゾは音がいいのか」という議論ありますよね。
 ですが、CDとハイレゾ配信では同じ曲でもマスタリングから異なっているケースが大半でしょう。ならば違って聴こえるのは当たり前ですから、その差が「判る・判らない」や「どっちが良い悪い」という評価結果が示すものは「ハイレゾというフォーマットの効果」なのか「マスタリングの違い」なのか判然としません。

 ので、標題のためには「フォーマットがハイレゾリューションなことによる効果」“だけ”を比較試聴する必要がありますが、結構いろいろ考えることがありましたので、以下に記しておこうと思います。
 ただ、「ハイレゾだからこそ、そのマスタリングをしている」という関連性もあり得ますので、厳密に言えば両者は切り離せず、純粋に“だけ”の比較は無理とは思います。


 とりあえずLPCMについて。DSDは事情がまるで違いますのでここでは除きます。
 ハイレゾは2496、非ハイレゾは1648として記します。
 CDの1644は1648とニアリーでしょう。32bitや192kHz、44.1kHzなどは応用編と考えていいと思います。

 データ量が異なればシステム動作が異なるので、それによる影響も考えられます。本Blogでは、一応
「マスタリングが異なればDAC動作モードが同じでも違って聞こえるか=マスタリングから違うことは解る」
「マスタリングが同じでもDAC動作モードが異なれば違って聞こえるか=2448を1648に変換して比較、2496を2448に変換して比較…解る気がするけどすごく微妙」
ということは以前比較試聴しています。
 上記記事の前半は結構昔なのでナンですが、後半は本項の内容を踏まえたものです。


■比較ソースを準備する

 さて、理屈はいろいろありますがそれはさておき、ハイレゾフォーマットの効能を実際に聴いて確認したくなったとします。

 上述の通り「入れ物の効果」だけを比較するには「CDリッピングとハイレゾ配信の比較」ではダメでしょうから、出自の明確な音源を自ら準備した方がよいと思います(*)。
 以下、その方法をちょっと考えてみます。

*:プロが作成して出自を明確化していて比較に足る音源も存在するかも知れませんが、特殊事例だと思いますので。

・アナログをデジタル録音して得る
 ひとつのアナログ音源からふたつの同型デジタル録音装置に同時にInputして、録音パラメータ変えて記録すれば一応出来るでしょうか。機器のバラツキが無視できるレベルであること、ADCに入る前のアナログ品質に差がないことが条件になりますけれど。
 ひとつの録音装置で同時ではなく2回に分けて録音してもいいかも知れませんが、アナログ音源(例えばレコード再生)の品質を2回同一に揃える必要があります。それなりに難しい気がします。
 また、この方式の場合、デジタル面でも、録音装置の「フォーマットごとの音質」について理解しておく必要があると思います。
 DACと同じく近頃のADCはΔΣ型じゃないかと思いますので、出力設定に依らず一旦1bitDigital化し、それを設定に基づき1644や2496などのLPCMに変換しているのではないでしょうか。とするなら、その「1bitDigital→LPCM変換」における性能差も影響するかも知れません。なんとなくですが、いいADCになればなるほど16bitより24bitや32bitなどの方にオプティマイズしてあるような気がします。今時「入り口から16bitで録る」ケースは少ないでしょうから。極論すると、もしかすると48kHz未満や16bitなどは“オマケ”かも知れません。
 ですので、例えば、「録音した2448を以下に記すデジタル加工方式で1648に変換してネイティブ録音の1648と比較」するなどして、まずADCの素性を把握しておいた方がいいような気がします。

・デジタルをデジタル加工して得る
 ということで、アナログソース録音方式はアナログ面でもデジタル面でも結構難しい気がしています。
 ですので、ERI的には「ハイレゾ音源を入手し“非ハイレゾ音源”に加工して比較試聴」するのがよいのでは思っています。
 ただし、

 ・「ハイレゾとしてちゃんと高音質」な音源であること
 ・「ちゃんとした性能を持つ・素性が判明している加工ツール」を使うこと

に留意する必要があるでしょう。

 さて、LPCMフォーマットのパラメータは「サンプリング周波数」と「ビット深度」のふたつあります。ふたつのパラメータは独立していますので(マスタリング的な観点ではなく純粋にフォーマットとして)、以下、それぞれ別に「非ハイレゾ化」手法について記します。
 もちろん一例として、です。


■デジタル加工法

・ビット深度を縮小する方法
 24bitを16bitに変換するにはどうしたらいいでしょう?
 「入れ物のサイズ」の効果を比較するためには、24bitの下位8bitを単純カットするのがよいのではと思います(もちろんサンプリング周波数は変えず)。
 カット後の最下位ビットを“そのまま”にすべきか“カット時の演算結果を反映”すべきかはやや議論があるかも知れませんが、フォーマットの比較試聴という意味では誤差と判断していいと考えています。

(1)S/PDIF録音
 S/PDIF信号を録音できる機器でのデジタル録音において、録音ソフトである≪RecPcmWin(1.0.4 x64)≫の特性を利用した例です。
 ハード的に下位8bitを無視しますので確実なのが魅力ですね。上記記事の通り、逆に下位8bitを単純ゼロ詰めすることも出来ます。
 改めて、下位8bitが単純カットされていることをバイナリエディタで確認しました。
 上が2448、下がそれを1648録音したものです。

2448.png

2448を1648録音

 例として反転したサンプルでは、下位8bitのE6hがカットされているのが判ると思います。
 なお、以下に示すPlayPcmWinの出力ビット深度設定機能で、再生側で操作することもできるでしょう。

(2)≪foobar2000≫でファイル化
 Convert機能「Output bit depth」を16bitに設定してファイルに書き出す方法です。う~ん、カンタン。
 なぜ波形編集ソフトなどでの変換ではないのかというと、それらソフトは結構、意図せぬ加工をすることがあるようだからです。

 当然ですが、DSP処理、DitherなどはすべてOffします。
 v1.2.9の設定画面です。

fb2k-convert.png

 こちらは下位8bit単純カットではなく“四捨五入(?)”されているようで、16bit化したサンプルの最下位ビットは24bit時と同じにはならないようです。例えば、6Ehをカットした場合はそのままですが、E4hをカットした場合は+1になっていました。

(3)≪WAVEフォーマット変換プラス≫で変換
 上記を書いた後見つけたフリーソフトウェアです。
 下位8bitを単純カットしてくれます。それ以外の加工はないことをバイナリエディタで確認しました。録音したりする必要ありませんでしたね(苦笑)。
 ていうか、このソフト素晴らしいです。詳しくは後述。作者様ありがとうございます。

http://dreamthemetropolis.sitemix.jp/page/blog/wave_999c/wave_999c.html

・ダウンサンプリングする方法
 96kHzを48kHzにするにはどうしたらいいでしょう?

(1)≪foobar2000≫でファイル化
 リサンプリング専用ソフトを用いるのが王道かも知れませんが、使い慣れた≪foobar2000≫のSoX Resamplerを使うのが簡単では(Convert機能でファイル化)。リサンプラとしても定評ありますし。

(2)≪WAVEフォーマット変換プラス≫で変換
 ビット深度縮小でも紹介したソフトウェアですが、なんとなんと、“単純間引き”でダウンサンプリングします。エイリアスノイズ除去のためのLPFかけていないのでノイズを含むことになると思いますが、「何のフィルタリングもしていない単純にサンプル数の少ない音源」という比較対象として貴重かと思います。

・得られた「非ハイレゾ」ソースの有意性について
 「ビット深度縮小」はほぼ問題ない気がしますが、「ダウンサンプリング」の方は(普通は)フィルタリング演算によってリサンプリングするワケですから、最初から48kHzでサンプリングされた場合より音質的には不利でしょう。が、前述した通りサンプリング周波数またはビット深度どちらか“のみ”をパラメータにした比較ソースを準備することは素人には難しいですよね。そういう意味では簡易比較になっちゃいますけれど、「16bitや48kHzという非ハイレゾの入れ物」と「24bitや96kHzというハイレゾの入れ物」とのフォーマット比較ならば充分有意ではないかと思っています。


■ハイレゾフォーマットだけどハイレゾリューションではない音源を作る

 ハイレゾの音質について「マスタリングから違う」と同じく疑問なのが「DAC動作が違う」という点です。2496は単位時間あたり1644の3倍以上のデータ量があるワケですから、DACシステムの忙しさは間違いなく異なるでしょう。それによる音質変化の影響はないのでしょうか?
 ズバリそれを確認できるかはワカリマセンが、「DACにとっては24bitや96kHzだけど情報量としては16bitだったり48kHzだったり」するファイルがあればDAC動作は同じだけれど有意なデータが違う場合の比較ができます。
 以下そういうファイルの作り方です。

・なんちゃって24bitを作る
 16bit音源の下位8bitを単純ゼロ詰めすればいいワケです。ビット深度とプレーヤ設定について考えた時の知見でS/PDIF録音する方法は持っていたのですが、前述の≪WAVEフォーマット変換プラス≫を使うのがカンタンです。16→24bit化すると下位8bitは単純ゼロ詰めされます。元の上位16bitはもちろんそのまま。
 24bit音源を16bit化して24bit化すると、「24bitフォーマットだがビット深度レゾリューションとしては16bitしかない」ファイルができます。

・なんちゃって96kHzを作る
 ビット深度と同じような理屈で言うと「同じサンプルを2個づつ並べたもの」になるでしょうか。これも≪WAVEフォーマット変換プラス≫で96→48→96kHz変換するだけでOK。このソフトはアップする際は「同じサンプルを繰り返す」のですが、アップサンプリングとしては「零次ホールド」という手法になるようです。
 これだと“イメージングノイズ(24kHz以上の折り返しノイズ)”が含まれる音源になるようですが、「96kHzフォーマットだが周波数レゾリューションとしては48kHzしかない」ファイルを得ることができます。

 上が2496のオリジナル。それを48kHzにして96kHzにして、16bitにして24にしたのが下です。1.02にて。

WCPオリジナル

WCPダブル変換

 オリジナルのステレオサンプル1個めと2個目は「L:24E209,R:EF5C0C」と「L:0C0B0B,R:FBF30D」です。
 変換後は「L:00E209,R:005C0C」と「L:00E209,R:005C0C」になっているのが判ると思います。下位8bitがゼロ詰めされ、同じサンプルが繰り返されています。


 ステレオのサンプルはWAVEファイル内に交互に並んでいるのを利用する方法:LchをRchにコピーしたステレオファイルを作り、ヘッダを「モノラルの96kHz」に書き換える。Rchも以下同じ。二つのモノラルファイルを合成してステレオにする。
 って手法を考えたんですけど無駄でした(苦笑)。


■比較再生時に注意すること

 ネットワークプレーヤなど専用機では問題ないかも知れませんが、PCなどから再生する場合はプレーヤソフトやAPIなどの設定に注意する必要があります。

・API
 例えば、Windowsオーディオエンジンを通したら、変換機能によって出力はそこで設定されているサンプリング周波数やビット深度に“統一”されてしまっているハズです。そもそもWindowsOSのリサンプラを通した時点で音質的にはアウトですよね。Windowsなら排他WASAPI、ASIOなどのビットパーフェクトが保証されているAPI使用は必須です。
 ちなみにですが、これは録音時も同様です。

・出力ビット深度
 また、プレーヤソフトの出力ビット深度設定も適切に行う必要があるでしょう。でないと、24bitのつもりで16bitしか出力されてなかったりということになります。これは結構盲点では。
 再生のたびに設定を変更して…というのでは、試聴間隔が空いてしまうため比較が難しくなります。ですので、「異なるフォーマットの連続再生でもファイルのフォーマットに合わせて出力フォーマットを曲ごとに自動的に変更」してくれるプレーヤソフトが必要になりますが、実は希少ではないかと思います。例えば、リンク記事の通り≪foobar2000≫ではファイルの仕様でビット深度は変化せず出力設定固定になるようです。
 自動変更してくれるソフトとしては≪PlayPcmWin≫でしょうか。念のため、“連続再生でも”自動変更してくれているか確認してみました。4.0.64.0 x64にて。
 ビット深度は明確に「自動選択」が可能になっています。1648と2448ファイルの再生を上記手法にて2448でS/PDIF録音し、前者は下位8bitがゼロ、後者は有意であることを確認しました。
 サンプリング周波数についてはDSP-Z7の表示が曲ごとに切り替わるのを確認しました。

・アナログ性能
 もちろん、それなりのシステムじゃないと違いは判らないと思います。例えば、極端な例ですが、CDからAAC128kbpsで取り込んだファイルと無劣化WAVで取り込んだファイルの違いが判らないシステムでは無理じゃないかなと。
 もうちょっとメンドクサイのがシステムチューンかも。かなりハイスペックなシステムでも、「海苔CDに最適化」してたりすると、海苔になってないハイレゾには「ヴォーカルが引っ込んじゃっておとなしすぎ」とかネガティヴな評価が出るかも知れません。

・「ハイレゾ対応」とは何か
 いろいろなオーディオ機器で「ハイレゾ対応」が謳われています。電源ケーブルにもあるそうです。
 “対応”には、「ハイレゾフォーマットの音楽ファイルが再生できる(扱える)」という意味と、「ハイレゾ再生に足るアナログ性能を有している」というふたつの意味があると思います。
 例えば、2448までしか受け付けないDACでもソフトやDSPでリサンプリングすれば2496でも24192でも再生は可能です。
 その機器が言う“対応”の意味は何か、正しく認識する必要があるでしょう。


 以上、逆に言うとハイレゾフォーマットの音質に関する批評を正確に咀嚼するためには、「何と何を比べたか」「どんなシステムで聴いたのか」「ちゃんと設定されていたのか」という情報が必要でしょう。

 また、念のためですが、上述した通り厳然と存在するであろうマスタリングの違いにも、「ハイレゾにデータ増量しただけで元ソースが低音質なのでCDと差がつかない」「ハイレゾがいいというよりCDが昆布とか海苔とか低音質すぎただけ」といった要素もたくさんあるようですから、そういった点も考慮しないといけませんよね。
 「mp3と聴き比べ」なんてのも紛れてるかも…


メインメニューへ

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

ERIへようこそ

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

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

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