デジタルオーディオあれこれ

半田ごての人。紙と鉛筆だけではちょっと。

国際標準機構ではないISOとリンギング(プリエコー)との化学反応。

ISO(Inter Sample Overs)を検索すると、まずは国際標準化機構が出て来るし、ISP(Inter Sample Peak)はインターネット・サービス・プロバイダーと相場は決まっている。知られていない方のISOの歴史は意外と古くて、2004年の記事にもう出て来る。

https://www.audioholics.com/audio-technologies/issues-with-0dbfs-levels-on-digital-audio-playback-systems

これは必ず起きてしまうし、起きるのが正しいDACのあり方だけれど、当時はあんまりラウドネス・ウォーの所謂海苔波形が少なかったからか、はたまたクロックジッタ程には簡単に理解できないからなのか、今に至るまでほとんど顧みられない。

 

最近になって、DAC3がその対策をしたという売りで、特にCDの再生では素晴らしいという評価がありながら、やっぱり何も対策をしないままのDACが、自作品を含めてほとんど。常識的に考えて、未だにNOSの人気が高いとか、CDの再生時にはDACの内蔵フィルターは良くないので外付けとか、ソフトでのアップサンプリングが良いとかは、まずISOの問題を片付けないと話は前に進まない。ほとんどがISOに起因している筈。

 

ISOが問題にされないのは、何故DACには普通オーバーサンプリングのreconstruction filterが入っているかを理解していないからだ、と思う。デジタルのシステムは完全な帯域制限で成り立っていて、尚且つデジタルと書いて漢字を振るならば輪廻。サンプリングには、不必要な高調波のイメージが永遠に繰り返されているので、輪廻からの解脱としてこれを何らかの方法で取らないといけない。

 

CDの初期には高次のアナログフィルターで取っていたけれど、性能として宜しくないので、今はオーバーサンプリングのフィルターをほぼ全てのDACが内蔵している。これが嫌な人はNOSにして、今でも高次のアナログフィルターを使う。オーバーサンプリングのフィルターは、元のアナログ信号にかなり近い所までデジタル的なデータを作り出す。CDのような場合、元の信号とイメージの周波数が近いので、仕方なく急峻な煉瓦塀型を使う。

 

煉瓦塀自体には何の問題もない。帯域制限されたシステムで、方形波がリンギングするのは当たり前。それが嫌な場合、デジタルシステムは使えない。リンギング自体には何の意味もない。帯域制限≒リンギング(=ではない)。問題になるのは、再生ファイルが海苔波形の時。海苔は、ほとんどがマキシマイザーで平均音圧を上げている。元々は存在しなかった波形を作り上げているので、それをオーバーサンプリングで元の信号に正しく戻すと、オーバーフローしてしまう。要は、0dBFSを超える。

 

海賊が嫌いなのは、一が機雷で二が機雷、三、四がなくて五が機雷。デジタルの場合は、オーバーフロー。CDの読み取りエラーだとかはゴミ。マリア・カラスが言うには、大事なのは修練と勇気で、後はゴミ。デジタルの場合はオーバーフローが大事で、後はゴミ。とにかくオーバーフローだけは拙い。でも、海苔とオーバーサンプリングフィルターの組み合わせは、ほぼ100%オーバーフローを起こす。十分に聞いて分かるほどの問題。

https://benchmarkmedia.com/blogs/application_notes/intersample-overs-in-cd-recordings

 

オーバーサンプリングはソフトでシミュレーションできる。これはRX7で四倍に上げた時。上段のLchは元の48kHzサンプリングの方形波。こういう信号は存在しないけれども、書き込むことは可能で海苔波形と同じ。192kHzのサンプリングなので96kまでしか表示できないけれども、輪廻なのでイメージは永遠に再生されている。

f:id:xx3stksm:20191214210336j:plain

下のRchは煉瓦塀で24kHz以上を取った。正確には、24kHzから168kHzまでとその永遠に続くイメージ。急峻な遮断特性のために、出力は0dBFSを超えてしまう。でもDACの出力は0dBFSでサチるので、実際にDACから出て来るのは下のような波形。

f:id:xx3stksm:20191214211657j:plain

計算結果は上段であっても、実際の出力は下段のサチった方なので、青のスペクトルのようにしかならない。だいたい100Hz刻みのインパルスを入れているので、大体の周波数特性が分かる。白のようにスパッと落ちるはずが、全然落ちない。余計なスペクトルは歪ではなくて、元々あった高調波を落とせないので残ってしまっている。皮肉な事に、これではほとんどNOSと変わらない。全然、煉瓦塀していない。オーバーフローするとこうなる。白のスペクトルが本来の煉瓦塀。

 

この機能不全は、煉瓦塀でなくてもオーバーフローしてしまうと大差ない。かなりソフトな特性でも似たようなものになる。これはイメージが残ってしまうぐらいの緩めの特性。Resampleの図で、赤はイメージが残るよと言う警告のエリア。

f:id:xx3stksm:20191214212521j:plain

白の特性から、かなり緩めだと分かる。オーバーフローの程度は小さいのだけれど、全く煉瓦塀していないのはほとんど同じ。見た目では、サチっているのはほんの少し。見た目がいかに当てにならないかの一例。機能不全は同じでも、その在り様はフィルターの係数次第で少しは変わるという事。幸の形は一つでも、不幸の形は星の数ほどあるのと同じで、不具合の状況は皆違う。オーバーフローしてしまうと、全てはゴミ。

 

実際の海苔波形で何が起きるかも、シミュレーションすれば良し。うちには海苔波形がなくて、何とか探したのがマイルスのギル・エバンスとの共演を集めた復刻のCD。中身は海苔しているだろうから聞くつもりはなくて、解説の資料目当てで中古を買った。上段のLchがCD。参考として、Rchは60年代のオリジナルのレコード。勿論、海苔していない。

f:id:xx3stksm:20191214213430j:plain

これは、とてもおとなしい海苔。一部分だけ太筆書きしたようにリマスター。Sample peak levelというのが実際のデジタルデータ。既に0dBFSなので、初めからサチっている。Possibly clipped samplesは、オーバーサンプルで元の信号に戻すと、オーバーフローしますよと言うサンプル数。20秒程度の間で、979個。標準的な海苔ファイルだと、最初から最後まで、この979/20≒49ぐらいの数が一秒間に起きる。

 

FFTを見ると、12kHz前後の音を異形化して目立たせようとしたんでしょう。たぶんトランペットかなんかの音。青のレコードと比べるならば歴然。他にもCDは低音側を不必要に落とす事が多くて、これもそう。60Hzはアメリカなのでおそらくハム。でもその上の80Hzぐらいは楽器の音のはず。それより下は、要らないと思うととんでもない誤解で、これをCDのように切ると、臨場感と言うか生感がものの見事になくなる。低音側の再生能力に依存するだろうけれど、死んだ目になった魚の刺身を食わされたような、活きの悪い音になる。

 

お前は既にサチっているのだが、でもまあ四倍に上げてみるとこうなる。

f:id:xx3stksm:20191214214857j:plain

方形波のシミュレーションと同じく、白は全然フィルターが効かない。オーバーフローしない青は、見事な煉瓦塀。ISOは1721で増えているけれど、サンプリング数が増えているので、気にする程ではなし。目くそが鼻くそ笑うような話なんで。結局の所、海苔のCDに関しては、reconstruction filterはほとんど効かない。オーバーフローが全てを台無しにする。

 

だからデジタルはダメでアナログの方が良いかと言うならば、それは迷信。テストレコードに1kHzの方形波が入っていたので、96kHz/24bitでデジタル化したのがこれ。カンチレバーレスの伝説の名器MC-L1000で再生。プレーヤーは、昔京セラが出したセラミック製のターンテーブルと言うやつ。

f:id:xx3stksm:20191214215743j:plain

Lchはクロストークカートリッジの問題は、SFDRが30dBぐらいという点。本来は存在しない偶数のスペクトルがかなり出てしまう。この場合も、基本波の-30dBぐらいで出る。これは見易いように後からゲインを12dB上げている。レコードにこんな高いレベルは刻めない。リンギングしないのは、厳密な帯域制限がかからずに、だらだら落ちるからだと思う。 

 

これは2kHzとか4kHzのような、人の耳が敏感な所にかなりの歪を出しているので、おそらく本来の方形波とは音色が違う筈。楽器であれば、マイクの歪もあるのでなおさら。エンジニアも馬鹿ではないから、これよりもデジタルに可能性を見出す。勿論、うちのファイルは、ほぼ全てがレコードからの自録りなので、音楽用として十分な特性であるのは事実。このぐらいでも、人の耳では中々区別がつかないもの。ジッタなんて、デジタルの100倍は悪いけどね。

 

ついでに、RX4からRX7にバージョンアップしたので、RX7のアップサンプリングも試した。これは、post limitterも違うアルゴリズムになったぽい。post limitterをonにすると、海苔に対してもオーバーフローはしなくなるので、ちゃんと煉瓦塀特性になる。同じ所を見てみるとこう。およよっ、という感じ。

 

f:id:xx3stksm:20191214221014j:plain

どんな特性にしたのかと方形波で追試。

f:id:xx3stksm:20191214221140j:plain

煉瓦塀特性なのは当然として、辻褄は大きなスペクトルの近くに少しの余計なスペクトルという話。この辺りは、各社それぞれ秘伝のタレみたいなノウハウがあるんでしょう。Chordも、なんかアップサンプラーを持っていたような。所詮はモグラ叩きであって、本質的な解決法は、DAC3のようにレベルを落とす事以外にはない。自作品であれば、デジタル入力を落としてから入れる。1/2+1/8程度で十分だから、掛け算器は不要で足し算だけで解決。

 

ここからは余談。レベルを落とすような本質的な解決法ではなくて、デジタル領域のお遊び。オーバーサンプリングの問題点は、オーバーフローを起こす事に起因するので、リンギングしないフィルターを用意するならばオーバーフローはしないので、計算通りの特性となる。帯域制限は、必ずしもリンギングを意味しない。結論から言うならば、リンギングの有無を決めるのは、デジタルフィルターの係数の正負。

 

通常のフーリエ逆変換で作る係数は、必ず正負の両方を持つ。どんなに緩めであったとしても。フーリエ逆変換に、極性の縛りなんかは入れられないと思う。まあ不可能ではないのだろうけれど。正負を含むとどうしてリンギングするかは、単純な理由。デシタルフィルターは、係数と入力データの畳み込みで計算される。方形波のような場合、立ち上がりの所では、全部0だった入力データが一つづつ1に変わっていく。

 

全部ゼロの時は、勿論出力はゼロ。畳み込みと言っても、デジタルでの畳み込みとは単純な積和演算で、積分はしない。ただ足すだけ。一つだけ1に変わると、それに対応した係数との掛け算なので、結果はその係数そのもの。係数が正ならば正で負ならば負。次は、もう一つだけ係数を足す事になる。ここで問題。2つの係数を足す事になるので、両者の正負と大きさで結果が決まる。

f:id:xx3stksm:20191214223247j:plain

 

こんなインパルス応答で、これがそっくりそのまま係数の並び。方形波の入力に対しては、これを一つずつ足していくと出力になる。紫も緑も正規化してあるので、全部を足すと1になる。つまり、直流に対するゲインが1でそれが最大値。どんな海苔波形であっても、1を超える出力を出せない。全てが1の時に最大値だから、海苔が直流であっても1になるだけ(実際は最大値を0.99ぐらいに設定してある)。リンギングしてオーバーフローするフィルターの係数は、紫のようになっている。煉瓦塀でない緩めのものでも、このぐらいは正と負の間を行き来する。結果として、方形波に対する応答はリンギングを含む。こんな感じ。

f:id:xx3stksm:20191215143419j:plain



方形波の立ち上がりの所では、LPFは基本的に出力は入力に応じて大きくなるのだけれど、係数が正負に振れるので惑星の逆行のように一時的に減少する所が出来て、そのためにリンギングしてオーバーフローとなる。リンギングしないフィルターは、正または負のみの係数で出来ている。なので、一つづつ係数を足していった時、決して「逆行」は起きない。単調増加か単調減少のみで、リンギングはしない。上の緑のように。勿論、オーバーフローはしない。

f:id:xx3stksm:20191214224522j:plain

紫は緩めなので、20kHzぐらいまではフラットで、96kHzでは120dBぐらいの減衰量。8倍のOSRでも(384kHzサンプリング)1024ぐらいの係数で実現できる。緑のリンギングレスは、そこまでは落ちない。48kHzサンプリングとするならば、かなりのイメージは残る。それがリンギングレスの対価。モグラ叩きなので、某かの対価は必要。24kHz から96kHzまでのイメージは残る。もう少し良いのも作れるけど。

 

方形波で較べると、こんな按配になる。これでもオーバーフローした煉瓦塀よりはずっと落ちが良い。更に、大切なものは目に見えない。取れないイメージは24kHz から96kHzだけで、その上は煉瓦塀とは違って完全に落とせる。正確には次のイメージがメガヘルツを超えるので無視できるという意味。これは最低でも、64(3.072MHz)以上のOSRでしか機能しないので。

f:id:xx3stksm:20191214225247j:plain


帯域制限がリンギングと同義ではない、という実例。リンギングレスフィルターは、高い周波数を落とす事でリンギングを回避して、オーバーフローも起こさない。欠点は、急峻にはならないので、若干のイメージが残る事。OSRが大きいので、8倍程度のPCMやソフトウエアでの実装は不可。ハードウエア実装でDSMならば問題なし。PCMでもRF用のAD9717のようなものならば可能。RX7のアップサンプラーのように、隙間商品。 現象としては面白いけど。