トップウイング 菅沼です。
デジタルオーディオ機器の仕様表や広報文には、「24bit/192kHz」「DSD256」「32bit DAC」「ΔΣ変調」「ノイズシェーピング」「R-2R」「高精度クロック」といった言葉が並びます。どれも音をデジタルの数値に置き換えるときに必ず生じる誤差、つまり量子化ノイズをどう扱うかという問題に、それぞれの時代の技術者が出してきた答えです。量子化ノイズそのものを消す方法はありません。それぞれの技術はこのノイズをどの周波数へ移し、どこで取り除くかを工夫してきました。
この記事ではPCMの基本的な仕組みから始めて、マルチbitのDAC、オーバーサンプリングとノイズシェーピング、1bitのΔΣ変調とDSD、クロックの精度、マルチbitのΔΣ変調、先読み(look-ahead)のノイズシェーピングへと、信号処理が発展してきた順に、量子化ノイズの行き先をたどります。それぞれの技術が何を解決し、代わりにどんな問題を抱えたのかを追っていくと、仕様表に並ぶ言葉の意味も見えてきます。
PCMの仕組みと量子化ノイズ
PCM(パルス符号変調)は音の波形を一定の時間間隔で測り、その値を決まった段数の数値に丸めて記録する方式です。測る間隔を決めるのがサンプリングレート、段数を決めるのがビット数です。CDの規格は44.1kHzのサンプリングレートと16bitの数値を定めています。16bitは65,536段に当たります。
図1は説明のために段を8つ(3bit)まで減らし、1kHzの正弦波を丸めたようすです。丸めた値と元の波形の差は、段の間隔の半分を超えません。これが量子化誤差です。段を細かくすれば誤差は小さくなりますが、なくなりはしません。
音楽のように複雑な信号では、この誤差は信号と関係のない雑音のようにふるまい、0Hzからサンプリングレートの半分(ナイキスト周波数)までの周波数に均一に広がります。これを量子化ノイズと呼びます。ビット数が1増えると段の間隔は半分になり、ノイズの電力は4分の1、約6dB下がります。フルスケールの正弦波と量子化ノイズの電力の比はNbitで6.02N+1.76dBになり、16bitで約98dB、24bitで約146dBです。
図2は1kHzの正弦波を16bit、20bit、24bitに丸めたときの周波数成分を計算したものです。この記事のグラフの縦軸は周波数1Hzの幅に入る電力で、フルスケールの正弦波を0dBとしています。1kHzに立つ線が正弦波で、横に広がるノイズフロアが量子化ノイズです。ノイズフロアの高さは1Hzあたりの量で、ノイズ全体の量はこれを周波数の幅の分だけ足し合わせたものになります。16bitのノイズフロアは約−137dBですが、20Hzから20kHzまでの約2万Hz分を足し合わせると約−94dBになります。この計算では丸める前に、次の節で説明するディザを加えています。
PCMのディザ
量子化誤差が雑音のようにふるまうのは、信号が段の間隔に比べて十分に大きく、複雑に動いているときです。小さな信号ではそうなりません。
図3は16bitの1段とほぼ同じ大きさ(−90dB)の1kHzの正弦波を、44.1kHzで丸めた例です。ディザを加えずに丸めると、朱色の線のように、出力は−1、0、+1の3つの値だけをとる階段になります。この階段は入力の正弦波に合わせて規則正しく繰り返すので、誤差も同じ規則で繰り返します。
ディザは丸める前に加える小さな乱数です。ディザを加えると、同じ入力でも丸めた結果が毎回変わります。図3の点は1回分の結果で、ばらばらに見えます。しかし乱数を変えて2,000回丸め、その平均をとると、青の線のように元の波形に重なります。丸めた値の平均が入力に一致するので、誤差には入力の形が残りません。
図4は2つの丸め方の出力を、周波数成分で比べたものです。ディザを加えずに丸めると、規則正しく繰り返す誤差が特定の周波数に線として立ちます。2〜20次の高調波だけで約−100dBになり、量子化誤差が雑音ではなく歪みとして現れています。ディザを加えると歪みの線が消え、平らなノイズフロアだけが残ります。
広く使われるのは、±1段の範囲の三角分布のディザ(TPDF)です。一様分布の乱数を2つ足したもので、これを加えると、誤差の平均だけでなく誤差の電力も入力によって変わらなくなります。代わりに、ノイズの電力は丸めの誤差だけのときの3倍、約4.8dB大きくなります。図4のノイズフロアは可聴帯域の合計で約−94dBになり、図2の16bitと同じ高さです。PCMのディザは量子化誤差を入力から切り離し、歪みを一定の雑音に置き換えるものです。
サンプリングレートとオーバーサンプリング
サンプリングレートを上げると、可聴帯域に入る量子化ノイズが減ります。ノイズの総量はビット数で決まり、それがナイキスト周波数までに均一に広がるからです。サンプリングレートを4倍にすれば、同じ総量が4倍の幅に薄く広がり、可聴帯域に入る分は4分の1、約6dB減ります。必要な帯域より高いレートで処理することを、オーバーサンプリングと呼びます。
図5は8bitの量子化を44.1kHz、176.4kHz、2.8224MHzで行った例です。可聴帯域のノイズの合計は、176.4kHz(4倍)で約6dB、2.8224MHz(64倍)でも約18dBしか下がりません。オーバーサンプリングだけではレートを4倍にするごとに1bit分しか得られないのです。「192kHz」のような高いサンプリングレートは記録できる周波数の上限を広げますが、量子化ノイズを減らす効果は、48kHzに比べて約6dBにとどまります。
R-2R型のマルチbit DAC
記録した数値を音に戻すのがDAC(デジタル・アナログ変換器)です。CDが登場した1980年代のDACは、数値の各ビットに重みを付けた電流や電圧を足し合わせ、数値を一度にアナログの値に変える方式でした。その代表的な回路が抵抗値Rと2Rの抵抗をはしご状につないだR-2R型です。各ビットのスイッチが受け持つ電流や電圧は、上位のビットほど2倍ずつ大きくなるように分けられています。最上位のビットはフルスケールの半分、次のビットは4分の1を受け持ち、オンになっているビットの分を足し合わせて出力を作ります。
この方式では、抵抗の比がそのまま出力の正確さを決めます。とくに難しいのが、入力が中央を越える所です。16bitなら、65,536段のちょうど中央を越えるとき、最上位のビットがオンになり、残りの15個のビットがすべてオフになります。このときの1段の高さは最上位ビットの重みと、残りのビットの重みの合計との差で決まります。この段を本来の高さから半段以内に収めるには、最上位ビットの重みを65,536分の1、約0.0015%の精度でそろえなければなりません。24bitでは約1,680万分の1です。
図6は16bitのR-2R回路のすべての抵抗を、標準偏差0.01%(1万分の1)でばらつかせて計算した例です。中央の段が本来1段上がる所で1.5段下がり、入力が増えたのに出力が減っています。抵抗の組み合わせを300通り変えて計算すると、中央の段の高さは標準偏差で約4段ばらつき、4割で上下が逆転しました。
中央の段の狂いは波形が中央を横切るたびに繰り返されるので、正弦波の高調波、つまり歪みとして現れます。図7は図6と同じ抵抗のずれを持つ回路で1kHzの正弦波を再生した出力の周波数成分です。抵抗にずれがなければ高調波は現れませんが、0.01%ずれると高調波の線が並び、2〜20次の合計は約−90dBになりました。
1980年代の終わりには、Philipsの16bitのチップを使う機種を除くほとんどの高級CDプレーヤーが、製造時にレーザーで抵抗を削って値を合わせたり、上位ビットの電流を調整する可変抵抗を設けたりして、この精度を確保していました。Philipsの16bitのDAC(TDA1541)は、上位ビットの電流源を一定の周期で入れ替えて時間的に平均し、ばらつきを打ち消すDEM(ダイナミック・エレメント・マッチング)を使っていました。いまも抵抗をはしご状に組んだディスクリート構成のR-2R型DACがありますが、抵抗の比で数値を電圧に変える以上、抵抗の精度が出力の正確さを決めることは同じです。
CDの14bit DACとノイズシェーピング
Philipsが当初考えていたCDの仕様では、データの長さは14bitでした。Philipsはそれに合わせて14bitのDAC(TDA1540)を開発しましたが、Sonyが加わって決まった規格は16bitになります。1982年秋のCDの発売に16bitのDACは間に合わず、Philipsは14bitのDACで16bitの性能を引き出す必要に迫られました。16bitのTDA1541が登場するのは1985年です。
そこで初期のPhilipsのCDプレーヤーは、デジタルフィルター(SAA7030)でサンプリングレートを4倍の176.4kHzに上げ、フィルターの計算で28bitに伸びた数値を14bitに丸めていました。このとき、丸めで切り捨てた端数を次のサンプルに持ち越していたのです。
端数を持ち越すしくみは図8の簡単な例で分かります。0.3という一定の値を0か1に丸め続けると、普通に丸めれば毎回0になります。丸めた端数を次の値に足してから丸めると、出力は0と1が混ざった並びになり、その平均は0.3に近づきます。1つひとつの値は粗くても、並びとしては細かい値を表せるのです。
このとき出力に残る誤差は、今回の端数から前回の端数を引いたものになります。ゆっくり変わる成分、つまり低い周波数の誤差ほど打ち消し合い、細かく上下する高い周波数の誤差は逆に大きくなります。量子化ノイズの周波数分布をこのように作り変えることを、ノイズシェーピングと呼びます。
計算すると、4倍のオーバーサンプリングで約6dB、176.4kHzで端数を1回持ち越すと0〜22kHzの平均でさらに約7dB、合わせて約13dBノイズが下がり、14bitと16bitの差の約12dBを上回ります。図9は同じ正弦波を44.1kHzの16bitに丸めた場合と、176.4kHzの14bitに丸めた場合を比べたものです。14bitに丸めただけでは16bitより約6dB高いノイズが、端数を持ち越すと低い周波数ほど大きく下がり、20Hzから20kHzまでの合計では16bitより約1.8dB低くなりました。高い周波数へ押し出したノイズは、DACの後の3次のベッセル型アナログフィルターで取り除きます。
ノイズシェーピングの考え方そのものはCDよりずっと古いものです。ベル研究所のCutlerは1954年に、オーバーサンプリングとノイズシェーピングで限られた帯域のS/N比を高める方式の特許を出願しました。CDでは、この技術が14bitのDACで16bitの性能を得るために使われました。
折り返しノイズとアナログフィルター
波形を一定の間隔で測る標本化には、ナイキスト周波数より高い周波数の成分を、低い周波数に折り返してしまう性質があります。
図10は30kHzと18kHzの正弦波を48kHzで測ったものです。2つの正弦波はまったく同じ値の列になり、測った後では区別できません。これが折り返しノイズ(エイリアシング)です。いったん記録されると取り除けないので、ADCの前には、ナイキスト周波数より上の成分を取り除くアナログのローパスフィルターを置きます。
可聴帯域を20kHzまで残すなら、44.1kHzの標本化では、24.1kHz(44.1kHz−20kHz)より上の成分が折り返して可聴帯域に入ります。フィルターは20kHzまでを平らに通し、24.1kHzから上を、16bitのダイナミックレンジに見合う約90dBまで落とさなければなりません。その間はわずか0.27オクターブです。最も急峻にできる楕円型(連立チェビシェフ型)でも11次のフィルターが要り、バターワース型なら66次になります(図11)。
このように急峻なフィルターは通過帯域の上端で位相を大きく回します。図11の11次のフィルターでは、20kHzまでに位相が2回転近く回り、信号の遅れ(群遅延)は1kHzの約52µsに対し、19kHzで約240µs、20kHzで約560µsになります(図12)。周波数によって遅れが違うので、高い周波数を含む波形ほど形が崩れます。
1980年代の業務用のデジタル録音機も、ADCの前にこうした急峻なアナログフィルターを入れていました。ソニーが1982年に発売した24トラックのデジタルマルチトラックレコーダー、PCM-3324もその一つです。1985年12月に設立されたApogee Electronicsは、こうした録音機の標準のフィルターと差し替える、位相の乱れを抑えたフィルター(924と944)を作り、1986年のAESの大会では、PCM-3324の何チャンネルかに組み込んで、オシロスコープで波形の違いを見せました。このフィルターは三菱電機やオタリのデジタル録音機にも使われました。
サンプリングレートを上げると、アナログフィルターの負担は大きく減ります。64倍の2.8224MHzで測れば、折り返して可聴帯域に入るのは約2.8MHzより上の成分だけなので、遮断周波数60kHzの3次のバターワース型でも約100dB落とせます(図11の青の線)。可聴帯域での遅れは約5µsで、ほぼ一定です(図12の青の線)。20kHzより上を急峻に落とす仕事は、測った後のデジタルフィルター(デシメーションフィルター)が受け持ちます。デジタルフィルターなら、遅れが周波数によらず一定の急峻な特性も作れます。
DACの側も同じです。数値をそのままアナログに戻すと、サンプリングレートの整数倍を中心に折り返した成分(イメージ)が出力に現れるので、DACの後にもローパスフィルターが要ります。デジタルフィルターでサンプリングレートを上げてからアナログに戻せば、このフィルターも緩やかなもので済みます。PhilipsのCDプレーヤーは4倍のデジタルフィルターを使うことで、DACの後のアナログフィルターを3次のベッセル型で済ませていました。
高いサンプリングレートには量子化ノイズを薄く広げ、ノイズシェーピングで押しやる場所を作れることに加えて、アナログフィルターを緩やかにできる利点があります。レートを数MHzまで上げ、段の数を極限まで減らしたのが、次に見る1bitです。
デルタ変調から1bitのΔΣ変調へ
端数を持ち越す考え方を突き詰めると、段の数を2つ、つまり1bitまで減らしても、サンプリングレートを十分に高くすれば細かな値を表せることになります。1bitで信号を伝える試み自体は、CDよりずっと前からありました。1950年代には、音声を効率よく伝える方法として、値そのものではなく前の値より上がったか下がったかだけを1bitで送るデルタ変調が、Philips研究所のde Jagerやベル研究所のCutlerらによって考案されました。1962年には猪瀬博らが1bitの変換器の論文でΔΣ変調という名前を使い、1970年代には、1bitの量子化器と1次や2次のループを使ったΔΣ変調が、音声のアナログ・デジタル変換に使われるようになりました。
録音の機材では、米国のdbxが1980年代に、1bitの方式を使ったModel 700という録音用のプロセッサーを製品にしました。予測を組み込んだデルタ変調で毎秒64万4千回(644kHz)の1bitの列を作り、ビデオデッキに記録する仕組みです。量子化ノイズを抑えるために、信号を圧縮してから変調し、再生で元に戻すコンパンディングも組み合わせていました。16bitのリニアPCMの変換器に代わる、低コストの変換技術として開発された方式です。
CDプレーヤーのDACにも1bitが広がります。1989年には、PhilipsのSAA7320というビットストリーム方式のDACが登場しました。CDの16bitのデータを256倍の11.2896MHzまで補間し、2次のノイズシェーピングで1bitの列に変えてから、スイッチトキャパシタの回路でアナログに戻す構成です。録音機のADCも1bitのΔΣ型に移っていきます。PCM-3324の流れをくむソニーの48トラックのレコーダーも、1997年のPCM-3348HRでは、ADCに1bit・64倍オーバーサンプリングのΔΣ型を使っています。
1bitが選ばれた理由は、段が2つしかないことにあります。2つの点は必ず1本の直線の上に乗るので、1bitのDACでは、素子のばらつきが段の高さの不ぞろいになりません。誤差があっても、出力の大きさ(ゲイン)や直流のずれになるだけで、歪みにはなりません。細かな値は1が並ぶ密度で表し、その精度はどれだけ正確に時間を刻めるかで決まります。R-2R型は基準の電流を2等分し続け、16bitなら最上位ビットを65,536分の1の精度でそろえる必要がありました。1bitのDACが正確にそろえる必要があるのは、パルスを出す時刻だけです。基準を正確に2等分し続けるより、一定の周期のクロックを作るほうがはるかに容易で、数MHzで動く1bitの回路は当時の集積回路で安く作れました。数MHzで動かすので、図11と図12で見たように、ADCの前やDACの後のアナログフィルターも緩やかなもので済みます。R-2R型が抵抗の精度に頼っていたのに対し、1bitは精度のよりどころを時間、つまりクロックに移したのです。
図13は1kHzの正弦波を2.8224MHzの1bitのΔΣ変調器に通した出力です。1を黒、0を白として1ms分を元の波形の下に並べると、波形が正に大きい所では黒が多く、負の所では白が多くなっています。
1bitの列そのものは元の波形とは似ていませんが、20kHzのローパスフィルターを通すと、図14のように元の波形に戻ります。フィルターが取り除いているのは、ノイズシェーピングで高い周波数へ押しやった量子化ノイズです。
1bitのための高次のノイズシェーピング
1bitの量子化ノイズは非常に大きく、2.8224MHzで均一に広げても、可聴帯域に残るのは約−20dBです。これを16bit以上の水準まで下げるには、端数を持ち越す仕組みを強める必要があります。持ち越しを何段にも重ねると、低い周波数のノイズはより深く打ち消され、そのぶん高い周波数へ急に押し出されます。この段数をノイズシェーピングの次数と呼びます。
図15は2.8224MHzの1bitの変調器で、次数を1次、2次、5次と変えて計算した例です。可聴帯域のノイズは1次で約−58dB、2次で約−78dB、5次で約−127dBになりました。5次では、可聴帯域の中にノイズが深く下がる谷が2つ見えます。高次の設計では、ノイズを打ち消す周波数(ゼロ点)を0Hzに集めず、可聴帯域の中に散らして置くことで、帯域全体のノイズを下げます。1次の結果に立つ多数の細い線は、出力の並びが周期的になって生じるアイドルトーンです。
レートを上げても、同じように可聴帯域のノイズは下がります。2次のノイズシェーピングでは、レートを2倍にするごとに可聴帯域のノイズが約15dB下がり、64倍から256倍にすると約30dB下がります。ビットストリーム方式のDACと同じ256倍のレートで2次の1bitの変調器を計算すると、可聴帯域の量子化ノイズはフルスケールの正弦波より約108dB低くなり、16bitの約98dBを上回りました。
次数を上げると、押し出されたノイズが可聴帯域のすぐ上に積み上がります。また、後で見るように、大きな入力で変調器が破綻しやすくなります。
1bitの列を記録するDSD
1990年代には、録音のADCの内部で1bitの列を作り、それをCDの16bit/44.1kHzに変換して記録し、CDプレーヤーの中でもう一度1bitの列に戻してDACに送るという流れが一般的になっていました。それなら1bitの列をそのまま記録すれば、途中の変換を省けます。この考えから生まれたのが、2.8224MHz(44.1kHzの64倍)の1bitの列を記録するDSD(Direct Stream Digital)です。DSDはPhilipsとSonyが開発したSuper Audio CD(SACD)の記録方式として1999年に登場し、同年5月にはSACDプレーヤーの1号機、ソニーのSCD-1が発売されました。
1bitの列のままでは、音量を変えたり、複数の信号を混ぜたりできません。1bitの値に係数を掛けたり、2つの列を足したりすると、結果は+1と−1以外の値になるからです。そのため編集や音量の調整を行う制作では、いったんマルチbitのPCMに変換し、最後にもう一度1bitに変調します。
DSD64という呼び名は、サンプリングレートが44.1kHzの64倍であることを表します。この記事ではその2倍の5.6448MHzをDSD128、4倍の11.2896MHzをDSD256と呼びます。DSD256の録音が始まったころの機材については、当社のコラム「DSD256黎明期、私たちは何を聴いていたのか」で紹介しています。
図16は同じ5次の設計規則で、DSD64、DSD128、DSD256の変調器を計算した例です。ノイズが1Hzあたり−100dBを超える周波数は、約55kHz、約115kHz、約241kHzと、レートにほぼ比例して上がりました。可聴帯域のノイズも、レートを2倍にするごとに約33dB下がっています。DSDの信号には、こうして押しやった量子化ノイズがそのまま含まれていて、レートの高いDSDほど、そのノイズの山が可聴帯域から離れます。
SACDの0dBと1bitの入力の上限
1bitで高次のノイズシェーピングを行うと、もう一つの制約が現れます。入力が大きくなると、変調器の内部の値が際限なく大きくなり、出力が入力に追従しなくなるのです。いったんこの状態になると、入力を小さくしても元に戻りません。
図17は図15の5次の変調器に入れる正弦波の大きさを少しずつ変え、それぞれ30秒間計算した結果です。1bitの最大の約53%(−5.5dB)までは可聴帯域のノイズがほとんど変わらずに動き続け、それより大きい入力では内部の値が発散しました。破綻はある大きさを境に起こります。実際の変調器は内部の値を制限する回路(クリッパー)を入れて発振を防ぎますが、クリッパーが働くとノイズが増えるため、それがまれにしか働かない範囲に入力の最大を定めます。
SACDはこの制約を記録レベルの決め方で扱っています。1bitの最大に対して振幅50%の正弦波を基準の0dB(0dB SACD)とし、短時間に限って+3.1dB(振幅71.4%)まで認めます。この最大値は1bitの出力を連続する28サンプルで平均した値で判定します。制作では、0dB SACDをPCMの−6dBFSに対応させます。
50%という基準は、図17の変調器が破綻せずに動く上限(約53%)のすぐ下にあり、実用的な1bitの変調器が歪みをほとんど出さずに扱える大きさです。1bit方式の変換器では、この50%をPCMの0dBFSに対応させる設計が通例になり、それが規格に取り入れられました。一方、短時間に認める71.4%(−2.9dB)は、図17の変調器では破綻する大きさです。ノイズシェーピングを強めて可聴帯域のノイズを下げた変調器ほど、入力の上限は下がり、この最大値を安定に扱うのは難しくなります。
ΔΣ変調のディザ
ΔΣ変調の量子化器もPCMと同じように丸めの誤差を生みます。段が粗い1bitや数bitの量子化器では、誤差が入力と結びついて規則的な成分を作りやすく、図15の1次の結果に立つアイドルトーンがその例です。ΔΣ変調でもディザでこれを崩しますが、ディザを加える場所と形がPCMとは異なります。
図18は段を32(5bit)に増やした変調器で、PCMと同じ±1段のTPDFのディザを加えた例です。PCMと同じように変調器の入力に加えると(朱色の線)、ディザは信号と同じ扱いになり、ノイズシェーピングを受けずにそのまま出力に出ます。可聴帯域にはディザによる平らなノイズフロアが残り、その合計は約−47dBです。ΔΣ変調では、ディザを量子化器の直前に加えます(青の線)。そうするとディザは量子化の誤差と一緒に帰還され、ノイズシェーピングで高い周波数へ押しやられます。可聴帯域のノイズは約−145dBで、ディザを入力に加えた場合より約100dB低くなりました。ディザそのものを高い周波数に寄せた形にすると(緑の線、乱数から1つ前の乱数を引いたもの)、可聴帯域に入るディザの成分がさらに減り、ノイズは約−150dBになります。誤差を入力から切り離す働きはPCMのディザと同じで、その誤差を可聴帯域の外へ追い出すところが、ΔΣ変調のディザの特徴です。
1bitでは、ディザを大きく加えられません。量子化器の段の間隔が出力の全幅(−1から+1)なので、PCMと同じ±1段のディザは、それだけで−2から+2という全幅の2倍の大きさになります。
図19は図17と同じ5次の1bitの変調器で、量子化器の直前に一様分布のディザを加え、破綻せずに動く最大の入力を求めたものです。ディザを大きくするほど入力の上限は下がり、±0.2で約2dB、±0.3で約6dB下がりました。1bitで加えられるのは、入力の上限を大きく損なわない、ごく小さなディザに限られます。1bitのΔΣ変調が高品質の用途に向くかどうかは、このディザの制約を中心に、2000年から2002年にかけてAESの大会で議論になりました。
クロックの揺れと1bit
1bitは抵抗の精度に頼る代わりに、時間の精度に頼る方式です。その分、クロックの刻みのわずかな揺れ(ジッター)が、そのまま誤差になります。
DACの出力はサンプルごとに値を保ち、クロックの刻みで次の値へ切り替わります。切り替わりの時刻がずれると、ずれた時間と段差の高さを掛けた分だけ、出力が本来の波形からはみ出します。
図20の色を付けた部分が、このはみ出した分です。1bitの段差はいつも−1から+1までの全幅で、計算した例では3回に2回近く切り替わっていました。5bit(32段)のΔΣ変調なら、1回の段差はたいてい1段か2段分です。
図21は、切り替わりのずれが毎回でたらめな大きさで起こるとして、ずれの大きさ(標準偏差)と、可聴帯域に生じる誤差の関係を求めたものです。線は誤差を式で求めた値、点はシミュレーションの結果で、両者は一致しています。ずれが100ps(100億分の1秒)のとき、1bitでは誤差が約−82dBに達しました。5bitでは約−110dB、オーバーサンプリングをしない44.1kHzの16bitでは約−130dBです。1bitのままで誤差を−120dBより小さくするには、ずれを1ps程度まで抑える必要があります。
1bitのDACにも、この弱点を和らげる構成があります。同じ1bitの列を32個の素子に1サンプルずつずらして配り、その出力を足し合わせると、出力は32サンプルの移動平均になり、1回の段差は最大でも1bitの全幅の32分の1になります。デジタルフィルター(FIRフィルター)の計算をアナログの素子の足し合わせで行う構成で、FIR型のDACと呼ばれます。図21の「1bit+FIR(32タップ)」がこの例で、同じ揺れによる誤差は1bitのままより約32dB小さく、5bitよりも少し小さくなりました。
揺れ方によって、影響の現れ方も変わります。図22は、揺れが毎回でたらめな場合と、3kHzの正弦波のようにゆっくり周期的に揺れる場合の誤差を比べたものです。
周期的な揺れは、信号の周波数(1kHz)と揺れの周波数(3kHz)の和と差、つまり4kHzと2kHzに線を作ります。その大きさは信号と揺れの大きさと周波数だけで決まり、1bitでも16bitでも同じ約−136dBになりました。ゆっくりした揺れは信号の時間軸をわずかに伸び縮みさせるだけで、高い周波数にある量子化ノイズは高い周波数にとどまるからです。一方、毎回でたらめな揺れは1bitでは可聴帯域全体に約−125dB/Hzの平らなノイズを作り、その合計は約−82dBになります。でたらめな揺れは高い周波数にある大きな量子化ノイズのエネルギーを全帯域に散らし、その一部を可聴帯域に持ち込むのです。1bitが弱いのは、このでたらめで速い揺れです。
DACの広告で高精度のクロックや低ジッターが強調されるのは、ΔΣ方式のDACでは、時間の正確さが振幅の正確さに直結するからです。
マルチbitのΔΣ変調とDEM
1bitの弱点を避けるため、段の数を少しだけ増やす方法が広がりました。段を2つから32(5bit)に増やすと、1段の高さは31分の1になり、量子化の誤差そのものが小さくなります。
図23は図15と同じ5次のノイズシェーピングで、1bitと5bitを比べたものです。100kHzより上のノイズの合計は、1bitの約+2dBから5bitの約−24dBへ下がりました。可聴帯域のノイズも約18dB下がっています。段を増やすと入力の上限も広がり、この5bitの変調器は1bitの最大の約89%(−1dB)の入力でも安定に動きました。ディザも図18のようにPCMと同じ大きさで加えられます。
ただし段を増やすと、R-2R型と同じ問題が戻ってきます。32段のDACは31個の素子(電流源や抵抗)で作りますが、素子の値がわずかにばらつくと段の高さがそろわず、歪みになります。これを避けるのがDEMです。毎回同じ素子を使わず、使う素子を順番に入れ替えていくと、ばらつきの影響が時間的に平均され、歪みではなくノイズに変わり、しかも高い周波数へ押しやられます。
図24は31個の素子に標準偏差0.5%のばらつきを与えて計算した例です。毎回先頭から順に素子を使うと、2〜20次の高調波の合計は約−74dBになりました。前回使った素子の続きから順に使う方式(DWA)に変えると、高調波は約−129dBまで下がり、ばらつきの誤差は周波数とともに大きくなるノイズに変わります。CDの時代にPhilipsの16bit DACが上位ビットの電流源を入れ替えていたのと同じ考え方が、ここでも使われています。こうした数bit(1.5〜5bit)の変換器が、1bitに代わって高級オーディオのDACに広く使われるようになりました。
今のDACチップにも、この構成を取るものがあります。旭化成エレクトロニクスのAK4499は、PCMの入力もDSDの入力も、標準の経路では3次のデジタルΔΣ変調器でマルチbitの信号に変換し直し、スイッチト抵抗型のDAC部でアナログに戻します。DSDには、音量調整と変調器を通らない経路も用意されています。DSDを入力しても、標準の経路では、DACチップの中でマルチbitに変調し直してからアナログに戻しているのです。
仕様表の「32bit」や「64bit」も、この流れの中で読むと意味が分かります。
図25は量子化ノイズだけを考えたときのビット数とS/N比の関係(6.02N+1.76dB)を、DACチップのアナログ出力の公開値と並べたものです。32bitの量子化ノイズは正弦波より約194dB下にありますが、ESS TechnologyのES9038PROのダイナミックレンジは140dB、旭化成エレクトロニクスのAK4499EXEQのS/N比は135dB(ステレオ)です。チップの中のデジタル部はさらに余裕を持たせて作られていて、AK4499EXEQと組み合わせるΔΣ変調器のAK4191EQは、64bitのPCMの入力を受け付け、S/N比は156dBです。仕様表の「32bit」「64bit」は受け取れる数値の長さや内部の計算の細かさを表し、アナログ出力のノイズの低さはS/N比やダイナミックレンジの値に表れます。
可聴帯域の外へ移したノイズの後始末
ノイズシェーピングで可聴帯域の外へ移した量子化ノイズは、DSDの信号やΔΣ方式のDACの出力にそのまま残っています。SACDの規格は、アナログのアンプとスピーカーを保護するために、SACDプレーヤーの出力に遮断周波数50kHz以下、傾き30dB/oct以上のアナログのローパスフィルターを入れることを推奨しています。広帯域のオーディオ機器と組み合わせる場合は、50kHzより高い遮断周波数のフィルターでもよいとしています。
図26はDSD64の信号に、遮断周波数50kHz、傾き30dB/octのフィルター(5次のバターワース型)を通した計算です。20kHzから100kHzのノイズの合計は約22dB、100kHzより上は約64dB下がりました。
帯域外のノイズはアンプを通ると可聴帯域に降りてきます。アンプにはわずかな非線形性があり、高い周波数の成分どうしが混ざって、その差の周波数の成分を作るからです。
図27はDSD64の信号をアナログの波形とみなし、2次と3次の歪みがそれぞれ0.1%のアンプに通した計算です。アンプの入力では約−127dBだった可聴帯域のノイズが、出力では約−70dBまで増えました。可聴帯域の上にある大きなノイズが、アンプの中で混ざり合って可聴帯域に降りてきたのです。アンプの前に50kHzのローパスフィルターを入れると、出力の可聴帯域のノイズは約−127dBのままで、増えませんでした。
可聴帯域より上の不要な成分はDSDのほかにも含まれています。当社のSonic Correctorは、こうした高周波の成分を取り除くANTI-ALIASという高次のアナログのハイカットフィルター(40kHzで−40dB)を搭載しています。ハイレゾ音源の制作段階で混入した高周波の成分や、DACのNOS(ノンオーバーサンプリング)モードで出力される折り返しのノイズを、アンプやスピーカーに届く前に取り除き、それらが非線形性によって可聴帯域に降りてくるのを防ぎます。
振幅をパルスの幅で表すPWM
1bitのDSDが1の密度で振幅を表すのに対し、パルスの幅で振幅を表すのがPWM(パルス幅変調)です。クラスDのアンプ(デジタルアンプとも呼ばれます)は、出力のトランジスタをオンとオフだけで動かし、オンの時間の割合で振幅を表します。その方式の一つがPWMです。
図28のように、音の波形と三角波を比べ、波形のほうが大きい間だけオンにすると、パルスの幅が波形の大きさに沿って変わります。アナログの信号を入力するクラスDのアンプは、この比較をアナログの回路で行います。
デジタルの数値から直接PWMを作る場合は、パルスの幅をクロックの刻みで決めることになります。Nbitの値を幅に置き換えるには、1周期を2のN乗に区切らなければならず、クロックの周波数はPWMの繰り返し周波数の2のN乗倍になります。384kHzで繰り返すPWMで8bitなら約98MHzで済みますが、16bitでは約25GHzになり、現実的ではありません。ノイズシェーピングで段数を数bitまで減らしてからパルスの幅に直せば、必要なクロックを現実的な周波数まで下げられます。ここでもCDの14bitのDACと同じ考え方が使えるのです。
先読みのノイズシェーピング
ここまでの技術はいずれも、出てしまった誤差の扱い方を工夫するものでした。ノイズシェーピングは誤差を高い周波数へ押しやり、ディザは誤差を入力から切り離し、DEMは素子のばらつきの誤差をノイズに変えます。ΔΣ変調器が出力する0と1そのものは、毎回、その時点の誤差が最も小さくなる値に決まっていました。
先読み(look-ahead)のΔΣ変調はこの0と1の選び方を変えます。いま選んだ1bitは帰還を通して、その後のすべての出力に影響します。そこで、数サンプル先までの0と1の並びを候補として比べ、将来の誤差まで含めて最も良い並びを探してから、最初の1bitを確定します。
候補の数は1サンプル進むごとに2倍になるので、16サンプル先までのすべての並びを調べると65,536通りになります。そこで図29のように、各時刻で候補を0と1の2通りに伸ばし、成績の良い候補だけを決まった数(ここでは8本)残して先へ進みます。最も成績の良い候補の、16サンプル前の1bitを出力として確定し、それと食い違う候補を捨てます。出力は16サンプル遅れますが、DSD64では約6μsです。
図30は、先読みが選んだ0と1と、同じ時点で誤差が小さいほうの値を、48サンプル分並べたものです。枠で囲んだ5か所で、先読みはあえて誤差が大きいほうの値を選んでいます。この計算では全体の約11%のサンプルでこうした選び方をしていました。
図31は通常の変調器と先読みのそれぞれの出力から、可聴帯域に残る誤差だけを取り出したものです。先読みがところどころで誤差が大きいほうの値を選んだ結果、可聴帯域に残る誤差は、振幅で通常の変調器の約7分の1になりました。
先読みの性能は候補の成績を何で測るか、つまり評価関数で決まります。評価関数を誤ると、先読みの効果はほとんど出ないか、変調器がかえって破綻します。図32は、探索の仕組みはそのままで、評価関数だけを変えた結果です。
最も素直な評価関数は、通常の変調器が毎回小さくしている量、つまり量子化器の誤差(帰還する誤差)の2乗を、先読みの範囲で足し合わせたものです。図32の「単純な先読み」がこれで、可聴帯域のノイズは通常の変調器の約−127dBから約−130dBへと、3dBしか下がりません。帰還する誤差は全帯域に広がっていて、可聴帯域に入るのはその一部だからです。全体の誤差を小さく保つと変調器の内部の値も小さく保たれるので、破綻せずに扱える入力は約2dB広がります(図34)。
可聴帯域の誤差だけを評価すると、変調器は破綻します。帰還する誤差を、可聴帯域だけを通すフィルター(重み)に通し、その出力の2乗だけを小さくすると、−6dBの入力でも内部の値が発散しました(図32の緑の線)。探索は可聴帯域の誤差を減らすために、可聴帯域の外の誤差が大きくなる並びを選び、その誤差が帰還して内部の値を押し上げるからです。
そこで評価関数を、可聴帯域の誤差の2乗と、帰還する誤差の2乗に重みを掛けたものとの和にします。可聴帯域の誤差を主に減らしながら、帰還する誤差の全体も抑えて、変調器を安定に保つためです。2つの誤差の釣り合いは係数κで決め、κが大きいほど帰還する誤差を重く見ます。図32の「整えた先読み」(κ=1)では、入力の上限は通常の変調器とほぼ同じまま、可聴帯域のノイズが約−145dBまで下がり、通常の変調器より約18dB低くなりました。2〜20次の高調波の合計も約−137dBから約−161dBへ下がっています。
この評価関数には、もう一つ欠かせない項があります。先読みの範囲の後に現れる誤差の見積もりです。
図33は、量子化器の誤差が1回だけ生じたとき、それが可聴帯域にどう現れるかを、可聴帯域の重みのフィルターの応答で示したものです。影響は65サンプルほど後に最大になり、数百サンプルにわたって続きます。先読みの16サンプルの間に現れるのは、その影響のエネルギーの0.04%です。範囲の中だけで成績を比べると、候補の違いが可聴帯域に現れる前に比較が終わってしまいます。
そこで候補を比べるときに、その時点のフィルターの状態から、この先に現れる可聴帯域の誤差のエネルギーを計算して足します。これは、最適制御やモデル予測制御で終端コストと呼ばれる項です。フィルターは線形なので、この量はフィルターの状態から固定の行列を使って正確に求められます。終端コストを外すと、評価関数の残りが同じでも、可聴帯域のノイズは約−130dBにとどまり、単純な先読みとほとんど変わりませんでした(図32の赤紫の線)。
図34は、κを変えながら、破綻せずに扱える入力の上限と、可聴帯域のノイズの関係を求めたものです。κを小さくして可聴帯域の誤差を重く見るほど、ノイズは下がりますが、入力の上限も下がり、κが0.5以下では−6dBの入力でも破綻しました。κを大きくして帰還する誤差を重く見るほど、入力の上限は広がり、ノイズの改善は小さくなります。κを32まで大きくすると、入力の上限と単純な先読みとの差は約0.3dBまで縮まり、それでも可聴帯域のノイズは単純な先読みより約4dB低く保たれます。探索の仕組みが同じでも、何を小さくし、何を抑え、範囲の後をどう見積もるかという評価関数の設計しだいで、結果は破綻から約18dBの改善まで変わるのです。
私の試行錯誤
私は個人として、PCMをDSDに変換する処理を作り続けてきました。目標はここまで見てきた技術を積み重ねて、可聴帯域に残る量子化ノイズと歪みをどこまで下げられるかです。
最初の段階ではMATLABを使って理論から9次のノイズシェーピングの係数を自分で導き、次の段階ではAIのFable 5を使って15次の係数を導きました。続いてGPT-Astra 6を使って15次の係数を最適化し、先読みのノイズシェーパーを組み込みました。最新の段階ではFable 5.1を使ってディザを最適化し、処理を高速化しています。MATLABで理論から係数を導いていたころには届かなかった水準まで最適化を進められたのは、AIを使えるようになったからです。
先読みには図32の「整えた先読み」と同じ形の評価関数を使っています。κは2、先読みの長さは16サンプル、残す候補は4本です。ディザは図18の緑の線と同じく、乱数から1つ前の乱数を引いた、高い周波数に寄せた形に変えました。
図35は各段階の変換処理で、1kHz、−6dBFSの正弦波(88.2kHz、64bit浮動小数点のPCM)をDSD64に変換し、その出力を計算したものです。PCMの0dBFSをSACDの0dB(1bitの最大の50%)に合わせて変換しているので、正弦波は1bitの最大に対して約−12dBになります。可聴帯域のノイズの合計は9次の約−159dBから、15次で約−164dB、最適化と先読みで約−197dB、ディザの改良で約−201dBまで下がりました。最後の段階では15秒の音源を約3.7〜3.8秒で変換できるようになり、前の段階より約1.7倍速くなっています(Core Ultra 7 265KのPCで計算)。
量子化ノイズの置き場所
PCMの誕生から今日まで、量子化ノイズそのものはなくなっていません。技術者が選んできたのは、ノイズをどこへ置き、どこで取り除くかです。R-2R型のDACは抵抗の精度で歪みを抑え、CDの14bitのDACは端数の持ち越しでノイズを可聴帯域の外へ押しやりました。ディザは誤差を入力から切り離して、歪みを雑音に変えます。1bitとDSDはノイズシェーピングを極限まで進め、精度のよりどころをクロックに移しました。マルチbitのΔΣ変調とDEMは段の数と時間の両方を使う形に落ち着き、押しやったノイズはアナログのフィルターで取り除きます。先読みは評価関数に照らして、同じ1bitの列の中でより良い0と1の並びを探します。
仕様表の言葉を見たときには、その技術が量子化ノイズをどこへ追いやり、そのノイズが最後にどこで取り除かれるのかを考えてみてください。それぞれの技術の狙いと、代わりに引き受けた制約が見えてきます。












