
ハイレゾ音源(24bit以上)をCDフォーマット(16bit)へ変換する際には、**量子化ノイズを抑えるための ディザリング処理 **が重要になります。
この記事では、Audacityを使ってディザリングを適用した場合と、適用しない場合の違いをスペクトル分析を通して比較します。
また、次の3つのケースでディザリングを行うべきかどうかを考察しました。
- ハイレゾ録音のデジタル音源からCDフォーマットへ変換する場合
- レコードから録音した24bitハイレゾ音源をCDに書き出す場合
- ハイレゾ音源をAAC(またはMP3)へ変換する場合
ディザリングの原理は専門的で難解ですので、ここでは1khz 正弦波(24bitハイレゾ音源)を用いて、CDフォーマット(16bit)に変換した時に、ディザリングが付加されているとスペクトル上でどのような振る舞いになるかを調べてみました。
なお、ディザリングを評価するに当たりAudacityを使って評価しました。(Audacity以外にfoober2000でもディザリングを追加する機能があります)
ディザリングとは?量子化ノイズを抑える仕組み
ウィキペディアによるディザリングの説明(一部引用)を下に記します。
引用
ディザ(Dither)とは、量子化誤差(端数)を、単純に丸めるのではなく、全体の量子化誤差が最小化するよう確率を調整して切り捨てまたは切り上げのどちらかをランダムにおこなうためによるゆらぎのことである。そのような一種のノイズ的データを追加する作業および技法はディザリング(Dithering)またはディザ法と呼ばれる。誤差を周囲のデータに拡散する手法をも含めて言うこともある。ディザリングは、デジタル音響やデジタル動画のデータを処理する際に普通に行われ、CDの制作でも最終段階でよく行われている。
たとえばSACDなどに収められる量子化ビット数(ビット深度)24ビットのデータがあるのにたいしてCDのデータは16ビットである。16ビットはCDの規格の数字であり、制作工程では24ビットで処理されていたとしてもCDに収録するためのマスターの段階では16ビットにしなければならない。プレイヤーが再生するデータも16ビットである。この規格の枠内で高品位化を図る手法のひとつとして、量子化ビット数の多い(たとえば24ビットの)データを16ビットに変換する際に、ディザリングをおこなう、という手法がある。
音質面から説明すると、「デジタル臭い」と表現される硬質な音の傾向を緩和することが出来る。具体的には、サ行の声が耳に刺さらなくなる様な変化が起きる。
以上の説明では分かり難いので、自分なりの解釈を含めて具体的に説明しますと、CDの場合は、ビット深度が16bitですので、測定できるポイントは、2の16乗ですので、フルスケールで65536の測定ポイントがあります。 (Dレンジで言うと96db) 例えば、入力信号が1khzの正弦波で10vp-pの信号を記録すると、65536の測定ポイントがあり1ポイント当たりの最小測定電圧は、153uvということになります。 では、極端な例として1khzの正弦波で入力電圧が微小の306uvp-p(-90dbFS)を記録しますと1bit分(2値)の分解能しかとれず、その時の波形は、下のように正弦波と異なる信号劣化した階段状の波形になります。

16bit -90dbFS波形(ノーマライズ-3db増幅)
この階段状の波形は、奇数次の高調波成分が含まれ、これが量子化ノイズ(=量子化誤差)になります。(後段で示す「CD変換 ディザ無し」のスペクトルをご覧ください。 全帯域に奇数次の高調波成分が草むらの様に量子化ノイズが分布しています)
今度は、レベルを28db上げて16bit -78dbFSの場合は下の様に細かい階段状の正弦波になります。

16bit -78dbFS波形(ノーマライズ-3db増幅)
更に、レベルを上げて16bit -60dbFSの場合は、見た目は殆ど正弦波になりますが、量子化誤差は内在しています。 つまり、記録レベルが上がると量子化誤差の影響が相対的に減少することになります。

16bit -60dbFS波形(ノーマライズ-3db増幅)
量子化ノイズが相対的に減少するので歪率が減少します。 実際の歪率で置き換えると、16bit -60dbFSで約1%THD+N(「CDフォーマットのここがダメ」参照)になります。(24bit -60dbFSの場合は約0.01%THD+N)
リアルサウンドで考えますと、フォルテでの大きな音量レベルであれば、このノイズは殆ど影響しませんが微小なピアニッシモレベルになると、「デジタル臭い」と表現される硬質な音の傾向が生る可能性があります。
16bit化による、この量子化ノイズ(奇数次の高調波成分)を改善する(硬質さをぼやかす)ために、微小なノイズ的データを追加する作業および技法をディザリング(Dithering)と言うことと解釈しました。(毒をもって毒を制す と言うことですね)
一方、ビット深度24bitのハイレゾの場合、1khzの正弦波で入力電圧が微小の306uvp-p(-90dbFS)を記録すると9bit分(512値)の分解能がありますので、その時の波形は、下の様に、16bitとは違って綺麗な正弦波が再現され量子化ノイズ(=量子化誤差)も桁違いに少なくなりますのでディザリングは不要です。

24bit -90dbFS波形(ノーマライズ-3db増幅)
Audacityでのディザリング設定方法
ディザリングのノイズ種類は、下の環境設定画面に示します様に「無し」、「矩形」「三角形(triangle)」「ノイズシェービング(shaped)」の3種類から選択することが出来ます。
ポイント
英文の「Audacityのディザ詳細」(ここをクリック)によりますと、「ディザリングの種類の中で、”In most cases, triangle or shaped dither produce the subjectively best results.” (ほとんどの場合、triangleやshapedディザが主観的に最適な結果をもたらします。):DeepLで機械翻訳」との表記があり、「triangle dither」か「shaped dither」を推奨しています。
そのため、今回は「三角形(triangle)」と「ノイズシェービング(shaped)」の2種類に絞って評価することにしました。
ディザリングの種類を設定しておけば、24bitハイレゾファイルをAudacityに取り込んだ後、16bit CDフォーマット(Wav)で書き出すと、ディザリング設定に従ったノイズが付加されて書き出されます。
1kHz正弦波で見るディザリングのスペクトル比較(24bit→16bit)
1khz 正弦波(-20db)ファイルのスペクトルを表示させるツールは、今回もWS(WaveSpectra)を使わせて頂きました。 スペクトルと合わせて、歪率を示すTHD+N と THDを測定しました。
(備考)THDとは、total harmonic distortionで全高調波歪。 THD+N とは、全高調波歪にノイズを含めたものです。
CD(16bit)変換 ディザ無し
CD変換 三角形ディザ付加
CD変換 ノイズシェービング ディザ付加
ディザリング効果・マトメ
- 三角形ディザ付加の場合:全帯域に亘って均一にノイズが付加され、高調波歪だけに着目すると、ディザ無しよりも改善されていました。(THD:0.0032% → 0.00174% )
- ノイズシェービング ディザ付加の場合:高域ノイズが大きくなっていますが、可聴感度が高くなる1khz〜5khz帯域に対してディザ無しよりもノイズが低減していました。
※ デジタル録音ベースの24bitハイレゾ音源からCDへ変換する場合、夫々の特徴を踏まえた上で、ディザリング処理を行うことが有効と考えられます。
ディザリング付加のケース・バイ・ケース(考察)
Case
1 ハイレゾ音源からCDフォーマットへ変換する場合
例えば、外来ノイズの少ない環境で収録したスタジオなどで収録したハイレゾ音源をCD化する場合は、ディザリング処理は有効と考えられます。
Case
2 レコードから録音した24bitハイレゾ音源をCDに書き出す場合
下に示すスペクトル比較から、レコードからの録音ではノイズフロアーが-100db程度付近にあり、このノイズに更にディザノイズを乗せることは不要と考えます。
テストレコード(AD-1)で24bit ハイレゾ録音した1khz 正弦波をCDフォーマットに変換した時のスペクトルを以下に示します。
Case
3 ハイレゾ音源をAAC(またはMP3)へ変換する場合
AAC(MP3)エンコーダの中には、16ビット入力に対応するものと、24ビット入力に対応するものがあります。 24bit入力エンコーダの場合はディザリングは不要で、16bit入力エンコーダの場合はディザリングは有効と考えられます。
例えば、ハイレゾファイルを24bit入力対応のXLDアプリでAACに変換すると、下のスペクトルで示すようにノイズフロアがオリジナルの24bit ハイレゾファイルとほぼ同じレベルにあり、CDの16bit 量子化ノイズより格段に小さくなっています。 そのため、ディザリングは不要です。
変換アプリの入力bit 状況
| 変換アプリ(含むCLI) | MP3 | AAC |
| VinylStudio(OSX用) | 16bit | 24bit |
| iTunes(OSX用) | 24bit | 24bit |
| XLD(OSX用) | 24bit | 24bit |
| Audacity(OSX用) | 16bit | 16bit |
| foober2000(Windows用) | 24bit | 24bit |
| Apple Afconvert(CLI) | ー | 24bit |
| FFmpeg NativeAAC(CLI) | ー | 24bit |
| FFmpeg libfdk_aac(CLI) | ー | 16bit |
| FFmpeg libmp3lame(CLI) | 24bit | ー |
| Apple Digital Masters ドロップレット | ー | 24bit |
この記事中に変換アプリの入力ビット深度を調べる方法も書かれています。







