広告 MP3、AAC音質関連

AACエンコーダ(アプリ) 7種類をPink-noiseで劣化量(絶対誤差)を調べてみました。

スポンサーリンク

 

ご存知の様に、AACは不可逆圧縮ですので劣化が伴います。 

前回記事で、劣化を調べる方法の一案である「Pink-noiseを使って絶対誤差から劣化量を求める方法」を使ってFFmpeg AACエンコーダ(2種類)の劣化量を調べた結果、劣化量がAACエンコーダの音質(再現性)を評価する上での一つの指標になり得ると考えられました。

そこで、過去に評価したAACエンコーダの7種類に対して劣化量(絶対誤差)を調べることにしました。 

 

スポンサーリンク

 

 

絶対誤差による劣化評価に当たって

変換前Pink-noiseファイルとAAC変換後ファイルのスペクトルから周波数に対する絶対誤差が不可逆圧縮による劣化と考えられます。 劣化が少なければ音の再現性が良い筈ですので、劣化を現すに当たって以下の3つの「要点」でAACエンコーダの劣化評価を行いました。

 

要点
1
絶対誤差グラフで劣化の可視化

Pink-noise(wav)とAACに変換されたファイル(m4a)の夫々のスペクトル(周波数 vs レベル)を調べ周波数に対する絶対誤差を求めます。 求めた絶対誤差から横軸を周波数、縦軸を絶対誤差にしたグラフ(散布図)を作成し劣化成分を可視化します。

グラフは横軸を「リニア周波数表示」と周波数に対する絶対誤差の傾向が分かり易い横軸を「対数(log)周波数表示」の2通りでグラフ化します。

 

要点
2
劣化量の数値化

再生帯域内の絶対誤差のバラツキから統計データを求め劣化の数値化を行います。

  1. 求める劣化データの範囲:AACの絶対誤差データは、ビットレートに伴って上限周波数でカットされるので再生できる再生帯域が異なります。 このため、上限周波数以下の再生帯域をフィルタリングした絶対誤差データを対象とします。
  2. 劣化量の数値化(定義):再生帯域内の絶対誤差バラツキの標準編(σ)を調べて、3σのレンジ[(x+3σ)-(x-3σ)=2*3σ] を算出し、この値(3σレンジ)を劣化量と定義しました。 (3σレンジを劣化量と定義した意味は、絶対誤差は略正規分布しているので、3σレンジを求めれば、99.7%の確率で絶対誤差のバラツキが含まれると考えたからです)

 

要点
3
劣化量で分かること

Audacityで測定されたPink-noiseのスペクトルは測定時間内の周波数に対するピーク値を現しています。 AAC変換されたスペクトルとの絶対誤差は、ピーク値の乖離を示し乖離が少なければ劣化量が少なく再現性が高いということになります。 つまり、Pink-noiseで調べたAACの劣化量が少なければ、リアル音源の場合でも相関する筈で「音の強い成分の再現性が高くなる」ことが想定できます。 (これは、ビット深度が16bitに比較して量子化誤差の少ない静寂性に優れる24bit と相対している評価項目と言えますね。)

 

オペレータ
オペレータ
では、7種類の24bit対応AACエンコーダの劣化データを示して行きますね!

AACエンコーダ 劣化データ(INDEX)

2023/2/23 追記

今まで、絶対誤差ベースにしたdb単位の統計データ表を付記していましたが db単位のため限定的で分かり難く、下の式で示される絶対誤差率(%)を追加し併記しました。 また、統計データ表の「劣化量」に対しては「劣化率」と表記しました。

絶対誤差率は、要点1で測定した絶対誤差から、下の式で求めます。
絶対誤差=絶対誤差 / 真値=【AACレベル絶対誤差】/【Pink-noise音源レベル】(%)

エンコード条件

  • AACエンコーダ(アプリ)の変換方法:「5つの視点」で再評価・ページ(ここをクリックして参照)で示されるコマンドライン及びオプション等に準じます。

  • ビットレート条件:「5つの視点」で評価した320kbps(Apple DIgital Masters Dropletの場合は256kbps) と、参考として160kbpsでテストを行いました。

Apple Musicアプリ(iTunes) 劣化データ

blank

blank

絶対誤差率・グラフ

統計データ 320kbps 160kbps
統計データ範囲 0hz〜20khz 0hz〜16khz
x(平均) -0.06db
-0.15db
σ(stdevp) 0.07db 0.19db
x+3σ 0.15db 0.42db
x-3σ -0.28db -0.73db
劣化量(2*3σ) 0.43db 1.16db
劣化量・順位 5位 5位
max 0.23db 0.57db
min -0.43db -0.99db
レンジ
0.66db 1.56db
file size(KB) 213  102 
絶対誤差率 %
統計データ
320kbps 160kbps
統計データ範囲 0hz〜20khz 0hz〜16khz
x(平均) 0.09%
0.23%
σ(stdevp) 0.10% 0.28%
x+3σ 0.40% 1.06%
x-3σ -0.22% -0.61%
劣化率(2*3σ) 0.61% 1.68%
劣化率・順位 5位 5位
max 0.59% 1.40%
min -0.33% -0.80%
レンジ
0.92% 2.21%
file size(KB) 213  102 
Apple Musicアプリ(iTunes)はビットレートを下げた時の劣化量が比較的大きい。 256kbps以上で設定することをオススメします。

戻る・INDEX >

  FFmpeg NativeAAC 劣化データ

blank

blank

絶対誤差率・グラフ

統計データ 320kbps 160kbps
統計データ範囲 0hz〜20khz 0hz〜16khz
x(平均) -0.15db -0.33db
σ(stdevp) 0.10db 0.49db
x+3σ 0.14db 1.15db
x-3σ -0.44db -1.80db
劣化量(2*3σ) 0.59db 2.95db
劣化量・順位 6位 6位(worst)
max 0.23db 1.09db
min -0.59db -4.12db
レンジ
0.81db 5.21db
file size(KB) 156  102 
絶対誤差率 %
統計データ
320kbps 160kbps
統計データ範囲 0hz〜20khz 0hz〜16khz
x(平均) 0.22%
0.47%
σ(stdevp) 0.14% 0.70%
x+3σ 0.64% 2.57%
x-3σ -0.20% -1.62%
劣化率(2*3σ) 0.83% 4.19%
劣化率・順位 6位 6位(worst)
max 0.82% 5.94%
min -0.34% -1.52%
レンジ
1.16% 7.46%
file size(KB) 156  102 
NativeAACは他のエンコーダよりもビットレートを下げると劣化量が増大する。 下のグラフから256kbps以上で設定する必要あり!

blank

戻る・INDEX >

FFmpeg libefdk_aac(16bit) 劣化データ

blank

blank

絶対誤差率・グラフ

統計データ 320kbps 160kbps
統計データ範囲 0hz〜19khz 0hz〜16khz
x(平均) -0.07db -0.12db
σ(stdevp) 0.04db 0.08db
x+3σ 0.06db 0.14db
x-3σ -0.20db -0.37db
劣化量(2*3σ) 0.26db 0.51db
劣化量・順位 4位 1位(Best)
max 0.07db 0.20db
min -0.24db -0.48db
レンジ
0.31db 0.68db
file size(KB) 205  106 
絶対誤差率 %
統計データ
320kbps 160kbps
統計データ範囲 0hz〜19khz 0hz〜16khz
x(平均) 0.10%
0.17%
σ(stdevp) 0.06% 0.12%
x+3σ 0.29% 0.54%
x-3σ -0.09% -0.20%
劣化率(2*3σ) 0.37% 0.74%
劣化率・順位 4位 1位(Best)
max 0.34% 0.68%
min -0.11% -0.31%
レンジ
0.44% 1.00%
file size(KB) 205  106 
このエンコーダはビットレートを下げても劣化量が少ない。 16bit入力エンコーダなので、CD等の16bit音源をAAC変換するにはlibefdk_aacエンコーダが最適と思われる。

戻る・INDEX >

Afconvert CLI アプリ 劣化データ

blank

blank

絶対誤差率・グラフ

統計データ 320kbps 160kbps
統計データ範囲 0hz〜20khz 0hz〜16khz
x(平均) -0.04db -0.12db
σ(stdevp) 0.04db 0.13db
x+3σ 0.07db 0.26db
x-3σ -0.15db -0.49db
劣化量(2*3σ) 0.22db 0.75db
劣化量・順位 2位 4位
max 0.09db 0.33db
min -0.24db -0.68db
レンジ
0.33db 1.01db
file size(KB) 209  106 
絶対誤差率 %
統計データ
320kbps 160kbps
統計データ範囲 0hz〜20khz 0hz〜16khz
x(平均) 0.06%
0.18%
σ(stdevp) 0.05% 0.18%
x+3σ 0.21% 0.72%
x-3σ -0.09% -0.37%
劣化率(2*3σ) 0.31% 1.09%
劣化率・順位 2位 4位
max 0.33% 0.96%
min -0.12% -0.46%
レンジ
0.45% 1.42%
file size(KB) 209  106 
このエンコーダはApple系エンコーダ(core audio)を利用している他のXLDやFoober2kの「絶対誤差グラフ」が近似し劣化量も良好

戻る・INDEX >

XLD CLI アプリ 劣化データ

blank

blank

絶対誤差率・グラフ

統計データ 320kbps 160kbps
統計データ範囲 0hz〜20khz 0hz〜16khz
x(平均) 0.04db -0.12db
σ(stdevp) 0.03db 0.13db
x+3σ 0.14db 0.26db
x-3σ -0.05db -0.49db
劣化量(2*3σ) 0.19db 0.75db
劣化量・順位
2位 3位
max 0.09db 0.33db
min -0.24db -0.68db
レンジ
0.33db 1.01db
file size(KB) 266  168 
絶対誤差率 %
統計データ
320kbps 160kbps
統計データ範囲 0hz〜20khz 0hz〜16khz
x(平均) 0.06%
0.18%
σ(stdevp) 0.05% 0.18%
x+3σ 0.21% 0.72%
x-3σ -0.09% -0.37%
劣化率(2*3σ) 0.31% 1.09%
劣化率・順位
2位 3位
max 0.33% 0.96%
min -0.12% -0.46%
レンジ
0.45% 1.42%
file size(KB) 266  168 
このエンコーダはApple系エンコーダ(core audio)を利用している他のAfconvertやFoober2kの「絶対誤差グラフ」が近似し劣化量も劣化量も良好。

戻る・INDEX >

Windows版foober2000 劣化データ

blank

blank

絶対誤差率・グラフ

統計データ 320kbps 160kbps
統計データ範囲 0hz〜20khz 0hz〜16khz
x(平均) -0.04db -0.11db
σ(stdevp) 0.03db 0.12db
x+3σ 0.06db 0.25db
x-3σ -0.15db -0.47db
劣化量(2*3σ) 0.21db 0.72db
劣化量・順位
1位(Best) 2位
max 0.08db 0.39db
min -0.20db -0.64db
レンジ 0.28db 1.03db
file size(KB) 205  106 
絶対誤差率 %
統計データ
320kbps 160kbps
統計データ範囲 0hz〜20khz 0hz〜16khz
x(平均) 0.06%
0.17%
σ(stdevp) 0.05% 0.17%
x+3σ 0.21% 0.69%
x-3σ -0.09% -0.36%
劣化率(2*3σ) 0.29% 1.04%
劣化率・順位
1位(Best) 2位
max 0.28% 0.92%
min -0.11% -0.55%
レンジ 0.38% 1.46%
file size(KB) 205  106 
このエンコーダはApple系エンコーダ(core audio)を利用している他のAfconvertやXLDの「絶対誤差グラフ」が近似し劣化量も劣化量も良好

戻る・INDEX >

Apple DIgital Masters Droplet 劣化データ

blank

blank

絶対誤差率・グラフ

統計データ 255kbps ---
統計データ範囲 0hz〜20khz ---
x(平均) -0.11db ---
σ(stdevp) 0.14db ---
x+3σ 0.31db ---
x-3σ -0.53db ---
劣化量(2*3σ) 0.84db ---
劣化量・順位
7位(Worst) ---
max 0.42db ---
min -0.83db ---
レンジ 1.24db --- 
file size(KB) 155  --- 
絶対誤差率 %
統計データ
255kbps ---
統計データ範囲 0hz〜20khz ---
x(平均) 0.16%
---
σ(stdevp) 0.20% ---
x+3σ 0.75% ---
x-3σ -0.44% ---
劣化率(2*3σ) 1.19% ---
劣化率・順位
7位(Worst) ---
max 1.13% ---
min -0.58% ---
レンジ 1.71% --- 
file size(KB) 155  --- 
何故かApple Music(iTunes)アプリよりも劣化量が多く、256kbpsであることの不利はあるも今回調べたエンコーダの中で、劣化量がWorst

戻る・INDEX >

劣化データの考察(マトメ)

  1. 7種類のAACエンコーダーで言えること、
    • 1khz付近から高域に向かって徐々に劣化が増大し再生上限周波数で最大になる。(不可逆圧縮では人間の感覚に伝わりにくい高域部分の情報を減らしているための現れか?)
    • ビットレートを下げると劣化量も増大する。
    • 320kbpsで同点2位が XLDと Afconvert であった。 これは、XLD はAfconvertエンコーダを利用している左証と思われる。
  2. 320kbps(≒256kbps)では
    調べた7種類のエンコーダの劣化量が上限周波数(20khz付近)で 1 db 以下であったので、聴感上識別できないレベルと思われる。

    劣化率で見ると、

    0.5% 未満: libefdk_aac(16bit)、Afconvert、XLD、foober2k(Best)の4種類
    0.5% 〜1%未満: iTnes、NativeAAC
    1% を超えるApple DIgital Masters(Worst) であった。
  3. 160kbpsでは、
    上限周波数が低下し更に劣化量も増大する傾向なので、エンコーダによってはビットレートを考慮しないと聴感上で不利となる恐れがある。 

    劣化率で見ると、

    1% 未満libefdk_aac(16bit) (Best)
    1% 〜2%未満:iTunes、Afconvert、XLD、foober2kの4種類
    2% を超えるNativeAAC(Worst)は、4%を超えるので、ビットレートを256kbs以上で設定すべきと思われる。

 

 

以上、AACエンコーダ 7種類をPink-noiseで劣化量(絶対誤差)を調べた結果でした。 音源をAAC変換する時のご参考にしてください。

 

スポンサーリンク

 

スポンサーリンク

 

t