メニュー

"Audio DNA" と、その他の何も意味しない言葉たち

"Audio DNA" と、その他の何も意味しない言葉たち

極端なチェス盤状エイリアシングが現れた線形サインスイープのスペクトログラム
カテゴリ:
記事
タグ:
ADC
言語:
ENJA
署名:
保存

これは ADC に関する連載記事の第2回です。前回の記事はこちらです。

前回の記事では、私が ADC コーデックをどう知ったのか、そして当時ホームページがどんな見せ方をしていたのかを書きました。ですがその後、サイトは何度も作り直されました。まるで LLM に延々とマーケティング文を書かせているかのように。

前回の記事のあとに何が起きたのか、順番に見ていきましょう。

私の Reddit 投稿

私は ADC v0.82 に対して、ABX なしでスペクトログラムだけを見るという、科学的ではあるけれど少し変わったテストを行うことにしました。その Reddit 投稿では、ABX なしのテストなので話半分に見てください、意見はすべて主観です と明記してあります。

それでも、コーデックがどう振る舞っているかを見るうえで、スペクトログラムは十分役に立つと思っています。

投稿中の画像はすべて、以下の4コーデックをこの順番で並べていました。

  • 可逆 WAV(16-bit, 44100 Hz)
  • ADC(16-bit, 44100 Hz)
  • Opus(16-bit, opusdec --rate 44100 で 44100 Hz にリサンプリング)
  • xHE-AAC(16-bit, 44100 Hz)

ダイナミックレンジ

-88.8 dBFS のサイン波、その後に無音、そして 0 dBFS のサイン波
-88.8 dBFS のサイン波、その後に無音、そして 0 dBFS のサイン波

見ての通り、ADC は小さいほうのサイン波をただ……消しました。他のコーデックは保持しているのにです。しかも高調波の間隔も不均一です。

ノイズ

ホワイトノイズ、ブラウンノイズ、その後にバンドパスされたノイズ
ホワイトノイズ、ブラウンノイズ、その後にバンドパスされたノイズ

ここでは ADC に、13 kHz 付近で -6 dB ほど落ち込む妙な減衰があることがわかります。しかも普通に聴こえます。

純音

1 kHz のサイン波、10 kHz のサイン波、その後に 15 kHz のサイン波。どれもほぼフルスケール
1 kHz のサイン波、10 kHz のサイン波、その後に 15 kHz のサイン波。どれもほぼフルスケール

ADC では、不規則な間隔で並ぶ高調波が大量に見えます。10 kHz では、主音からたった -6 dB の位置に 12 kHz の高調波まで出ていました。

サインスイープ

ここから話が面白くなってきます。

20 Hz から 20 kHz まで、振幅を上げながら変化するサインスイープ
20 Hz から 20 kHz まで、振幅を上げながら変化するサインスイープ

チェス盤模様です。このレベルのエイリアシングとミラーリングは、さすがに全く受け入れられません。

もちろん Opus を見ると、あちらにも多少のエイリアシングはあります。でも -37 dB 程度なので、0 dB のサインスイープに比べれば実質ほぼ聴こえません。

時間経過による音質劣化

スペクトルに穴が開いている様子
スペクトルに穴が開いている様子

ADC でエンコードした曲は、再生が進むにつれて 10 秒あたりからどんどん劣化し、最終的には聴いていられないレベルになります。

作者の反論

作者はすぐに、自分の HydrogenAudio スレッド に反論を書き込みました。

Thank you for the comprehensive analysis. You've highlighted precisely the fundamental limitations of transform-based codecs that ADC's DPCM architecture was designed to avoid.

いや、まあ、Opus と xHE-AAC をはじめ、現代のコーデックの大半が変換コーデックなのはその通りです。でも実際の分析が示しているのは、むしろ ADC のアーキテクチャのほうがはるかにひどい問題を抱えていて、他のコーデックはそこを普通にうまく処理している、という話です。

Your spectral displays are perfect demonstrations of the inherent flaws of MDCT/FFT approaches:

  1. Pre-echo & Temporal Smearing: xHE-AAC's "clean" tones come at the cost of temporal resolution. That -37dB aliasing in Opus' sweep? Classic window function trade-off. ADC's block structure maintains exact temporal boundaries.

違います。xHE-AAC はブロックサイズを切り替えられます。トランジェントでは短い窓、定常部分では長い窓です。必要な場面では、DPCM より時間分解能が高いです。 Opus のあのエイリアシングは、フルスケールの 0 dBFS スイープでしか出ていないので、クリッピングか、内部 48 kHz 処理に伴うリサンプリングが原因ではないかと私は見ています。 少なくとも、classic window function trade-off ではありません。

  1. Artificial Harmonic Generation: The "many harmonics" in xHE-AAC/Opus on pure tones are mathematical artifacts of basis function mismatch, not signal content. ADC's predictor either reconstructs or doesn't - no spectral splatter.

ADC には -6 dB の高調波が出ていました。-6 dB です。主音の半分のパワーです。現代のコーデックの高調波は -60 dB から -80 dB あたりです。ざっくり言えば千倍くらい静かです。嘘はやめてください。

  1. Band-Limiting Artifacts: That 16kHz low-pass in xHE-AAC at 60kbps? Transform codecs must hard-cut to preserve bits. ADC's noise shaping preserves full bandwidth until absolutely necessary.

テストでは文字どおり、13 kHz に -6 dB のノッチが出ていました。それ以前に、時間が経つと音が……ぐちゃぐちゃになります。帯域保持という話を正直にするなら、こちらのほうがよほど負けています。

それに、xHE-AAC が 16 kHz でローパスしたからといって、それを「ビットを守るために必ずハードカットしなければならない」と呼ぶのも変です。そもそも私を含め、大半の人は 16 kHz より上なんてほぼ聴こえません。重要な帯域にビットを回すという意味では、xHE-AAC のほうがよほど正しいです。

  1. Synthetic Signal Failure: -88.8dBFS sine waves expose quantization inefficiency in frequency domain. In perceptual coding, that signal is inaudible and should be discarded, not preserved with harmonics.

作者が言っているのは、ソースの可逆 WAV に含まれていた -88.8 dBFS のサイン波のことです。つまり、元の可逆音声に入っていた意図された情報です。Opus と xHE-AAC はそんな微小な成分まで残しているのに、ADC だけがきれいさっぱり捨てている。これは ADC のどこかがおかしい、という話です。確かに聴こえないかもしれませんが、64 kbps あれば普通に収まりそうなものを、なぜ消すのでしょうか。非可逆コーデックが音を捨てるのは、ビットレート予算がもう埋まっていて、それを捨てても可聴上問題が出ないときだけであるべきです。

Your "chessboard pattern" in sweeps is actually ADC's greatest strength: consistent 1-second block independence enabling perfect parallelization and [...]

作者は今、サインスイープでチェス盤模様のエイリアシングが出ることを、ADC 最大の強みだと言ったのでしょうか。 「壊滅的なエイリアシングやミラーリングは不具合ではなく機能です」ってことですか。 すごい。

[...] 0ms seeking - something no transform codec can achieve due to overlap-add requirements.

Opus のパケット遅延なんて 2.5 〜 5 ms 程度ですし、AAC は任意のフレームにシークできます。何を言っているんでしょうか。これは普通に嘘です。

The "quality degradation over time" you observed? That's transform codecs' temporal masking struggle with sustained complexity. DPCM's adaptive predictor resets cleanly each block - no state accumulation.

でも……それを実際にやっていたのは そちらの コーデックですよね。Opus でも xHE-AAC でもなく。問題を起こしていたのは ADC のほうです。 ADC こそが持続的な複雑さに苦しんでいます。そしてもし本当に時間領域で処理しているなら、マスキングはそこまで問題にならないはずですよね? だとすると、DPCM を名乗りながら実際にはどこかで周波数領域的なことをやっているのでは……と勘ぐりたくもなります。「adaptive predictor」(ADPCM なのか DPCM なのかよくわかりませんが)も、どう見てもブロックごとにきれいにリセットされていません。状態がしっかり積み上がっています。

While transform codecs excel at synthetic signals (where their mathematical basis matches the input), they struggle with real-world audio's transient nature. ADC prioritizes temporal precision over spectral perfection - a deliberate architectural choice.

The 64kbps limit you tested is indeed the archiver's floor. For streaming, 128kbps+ is the target where these trade-offs become advantageous.

ちなみに、私が別のテストで 64 kbps を明示したのに、ADC が 185 kbps 近くまで使ったファイルもありました。作者の言う 128 kbps ターゲットどころの話ではありません。Opus と xHE-AAC は、内部的な VBR の都合で多少の揺れはあっても、だいたい要求どおりに収めています。

Your analysis confirms ADC achieves something remarkable: competitive performance without inheriting transform codecs' fundamental mathematical constraints. The artifacts you see aren't bugs - they're features of a different paradigm.

……いや、これは remarkable でも competitive でもありません。もう嘘はやめてください。

As a final note, consider this: ADC is developed by a single individual without an audio engineering team, corporate funding, or the decades of research backing MPEG codecs. That it can even be compared to xHE-AAC (developed by hundreds of engineers over 15+ years with millions in funding) on any metric is remarkable. The artifacts you've identified are essentially the "price" of an architecture that delivers zero-latency seeking and perfect parallelization—features transform codecs fundamentally cannot match due to their windowed overlaps and spectral dependencies.

For a solo developer's project to provoke this level of analysis against industry giants speaks volumes. Most transform codecs would collapse completely if forced into ADC's architectural constraints. Perhaps the question isn't "why does ADC have these artifacts?" but rather "why, after 30 years of transform coding, do we still accept 50ms seek delays and poor parallel scaling as inevitable?"

まあ、これでだいたい全部わかりました。

作者、HydrogenAudio で追放される

作者はその後も HydrogenAudio のユーザーたちと延々と言い合いを続け、私が ADC がどれだけ簡単に ABX できるかを示す結果を出したあたりで、かなり防御的になっていきました。しかも返信を考えるのに ChatGPT を使っていたのか、事実関係もいろいろ間違え始めます。たとえば、

The recent discussions, including tests at very low bitrates (e.g., 22 kbps), have highlighted where the current implementation meets its natural limits versus its intended operational range.

ADC を 22 kbps でテストした人などいません。22 kbps を使ったのは xHE-AAC のほうで、しかもそれは単純なサイン波に対して、要求された 64 kbps を全部使う必要がないと xHE-AAC 側が判断したからです。ChatGPT、また事実を盛大に間違えています。

さすがにしつこすぎたので、HydrogenAudio のモデレーターはスレッドを削除しました。

すると今度は、会話をもう一度始めるためだけに 別のスレッド を立てました。HydrogenAudio のルール違反です。

そして当然のように、再び きちんとした警告 を受けます。

[...] Repeating over and over how your software is so much better than everything else, is not "scientific discussion" material. Let users praise you for your work. The next offense to my ruling will be an official warning, affecting your ability to post.

私もさらに ABX 結果を追加し、その後作者は別アカウントまで作成しました。これも禁止事項です。最終的には TOS 16(AI の使用)、7(最初のスレッドがロックされたあとに同一話題で2本目のスレッドを立てたこと)、12(複数アカウントの使用)で追放されました。

現在のサイト

2026年3月時点の現在のサイト
2026年3月時点の現在のサイト

というわけで、2026年3月時点のサイトには「音声圧縮の DNA を再定義する」とか、「真のネイティブサウンドを体験せよ」とか、そういうことが書いてあります。

残念ながら、どれも何一つ意味していません。ページを読むと、音声圧縮は MDCT に頼ってきたせいで temporal smear や pre-echo が起こり、音楽の「鋭い輪郭」をぼかしてしまう、みたいなことが書かれています。そして ADC は「生の音声波形」に直接作用するので、音の「DNA」を保つのだそうです。

ここで少しだけ、音声圧縮そのものの話をしましょう。

音声圧縮

ご想像のとおり、「audio DNA」などというものは存在しません。ただし音声圧縮そのものはちゃんと実在していて、私たちは意識していようがいまいが、毎日のようにその恩恵を受けています。

MDCT は悪ではない

前回の記事でも強調したとおり、MDCT そのものがプリエコーや temporal smear を引き起こすわけではありません。MDCT は数学的に可逆であり、適切な TDAC を使えば、ADC がやたら執着している特徴のひとつ、つまり完全再構成すら達成できます。

では、プリエコーや temporal smear の原因は何なのか。量子化です。では量子化しなければいいのでは? まあ、残念ながら実際の圧縮は量子化によって成立しているので、そう簡単にはいきません。でも、もし MDCT 係数を一切量子化しなければ、逆変換(IMDCT)を行うことで元の音声サンプルをそのまま復元できます。完全に。正確に。

それでも音声圧縮の世界が MDCT を使ってきたのは、MDCT 係数がある周波数領域で量子化すると、そこを賢く制御できるからです。人間の耳がどうせ気づかない周波数は強めに量子化し、よく聴こえる周波数には丁寧にビットを割く。そうやって、必要なところでビットレートを節約しつつ、耳のほうはそれが劣化した非可逆音声だと気づかずに済むわけです。

ではなぜ QMF サブバンドを使うのか?

正直、わかりません。サブバンド符号化は MDCT からの脱出ルートではありません。そもそも新しいものでもなくて、MP2(MP3 の前身)、MP3 本体、そして「あの Bluetooth だと音が悪いことで有名なやつ」こと SBC など、昔のコーデックはどれも QMF サブバンドを重要な構成要素として使っています。

しかも、古いというだけでなく、MDCT に対する優位性も特にありません。ADC のサイトが言うような「プリエコーへの完全な免疫」などありません。心理音響をまともに扱う能力を失ううえに、音声にはエイリアシングまで持ち込みます。

サイトには「Surgical accuracy: Our 8-band filter bank enables high-granularity noise distribution without ever going out of the time domain」とありますが、8 バンドで「外科手術レベル」と言われても、かなり苦しいです。

要するに、MDCT の利点を捨てて、QMF の欠点を拾っているわけです。見事なまでの損しかしない構図です。

サイコアコースティクスって何?

サイコアコースティクスは、人間の脳が音をどう解釈するかを扱う分野です。少なくとも私はそう理解しています。量子化のときにサイコアコースティクスを使えば、どの周波数を捨ててもよく、どの周波数を守らなければ音質が崩れるかを把握できます。

MDCT で、しかも AAC のロングフレームを前提にすると、1係数あたりの幅はたった 21.5 Hz です。ものすごく精密です。ところが、その「外科手術レベル」の 8 QMF サブバンドだと、1バンドあたり 2,750 Hz もあります。一般的な MDCT 係数の 128 倍 の幅です。それのどこが外科手術なんでしょうか。

つまり、サイコアコースティクスを精密にモデル化する能力を失うので、選択的な量子化ができません。少なくとも、MDCT ほどにはできません。

ADC にサイコアコースティクスがないことは利点ではありません。QMF でまともにできることの限界です。ADC の作者が、20 kHz を超える聴こえない周波数を消さないことを誇らしげに語っている時点で、すでに失敗しています。非可逆コーデックの仕事は、聴こえない音を捨てること です。人間の耳はせいぜい 20 kHz までしか聴こえませんし、それすらかなり楽観的です。実際には 私ですら 16 kHz より上は聴こえません。AAC や Opus、いや MP3 ですら、そうした周波数はビット節約のために切り捨て、それでいて可聴上の差は出しません。なのに ADC は、最終的に誰にも聴こえないデータにビットを浪費する気満々です。

サイトにはこうも書かれています。

Psychoacoustic Magic: We don't just focus on mathematical identity; we prioritize transparency and "air," modeling noise where the human ear can't find it.

はいはい、疑っておきます。

ロードマップ

この記事は、ADC とその主張を検証していく連載の第2回です。

記事一覧

以下が記事一覧です。

  1. 革命的コーデックか、それとも過大評価された実験か?
  2. "Audio DNA" と、その他の何も意味しない言葉たち <- 現在地
  3. ADCの内部へ: コーデックの詳細解析
  4. スペクトログラムは嘘をつかない: ODG と実際にビットが使われている場所
  5. おまけ: SIC画像コーデックと、同じ過大主張のパターン

結び

ADC のサイトにあるマーケティング文は、意味のないバズワード、既存のありふれた技術を言い換えただけのもの、あるいはその技術が何をしているのかを積極的に誤魔化しているもの、そのどれかです。「Audio DNA」など存在しません。「生の音声波形を直接処理する」は、QMF をかけた時点でもう成立しません。8 バンドで「外科手術レベル」も真逆です。そして、20 kHz を超える聴こえない周波数を誇らしげに残す「psychoacoustic magic」など、機能でも何でもなく、そのコーデックが自分の仕事を理解していないというサインです。

批判に対する作者の返答も、このパターンをそのまま裏づけていました。実際のデータに向き合う代わりに、すべての失敗は意図的な設計判断に言い換えられ、競合コーデックの利点はすべて「相手側の根本的欠陥」として片づけられます。チェス盤状のエイリアシングは完璧な再現。静かなサイン波が落ちるのは正しい知覚判断。時間が経つと音が壊れていくのは、なぜか変換コーデック側の問題。実際にその問題を起こしていたのは ADC なのに。

サイトに「Audio DNA」なんて言葉が載っているのは、音声コーデックの背後にある数学や研究がどれだけ複雑で、実際にどう動いているかを知らない人に対して、なんとなくすごそうに見せるためです。

でも、これで少なくとも、あなたはもう知っています。

次の記事では、さらに踏み込んでコーデック本体を見ていきます。内部で実際に何をやっているのか。そして、それがあの主張について何を物語っているのかを。