モノトーンの伝説日記

Apex Legends, Splatoon, Programming, and so on...

FDKAAC について音質を調べてみた。

 エンコしまくってて自分の耳だけじゃ不安なので、いろいろ調べまくってた。

概要

  1. HE-AACv1 の客観的評価について (実験概要)
  2. 評価にあたっての注意事項
  3. 比較 (実験結果)
  4. まとめ

この記事に関しての重要な追記

 まず、こちらのツイートをご覧ください。

 ということで、High Efficiency に関してはこの評価が無効らしいので、取り消し線を記述しています。FDKAAC は HE 特化されているので、PEAQ が悪く出てくるのかな? とかいう想像をしていますが、ソースコードとかで検証しているわけでないのでわかりません。

 訂正しておきます。

1. HE-AACv1 の客観的評価について (実験概要)

 ニコ生でできるだけ映像にビットレートを振りたいので、音声をどの程度にすべきなのか、また HE-AACv1 はどの程度のビットレートが適切なのか調べてみた。

 今回用いたのは、ITU-R BS.1387-1 PEAQ (Perceptual Evaluation of Audio Quality) による ODG (Objective Difference Grade: 客観品質劣化度合) スコアである。ちなみに ITU-R の文章はきちんと目を通していないので間違っていたらすみません。

 この ODG とはいわゆる人間的にいえば、5 (劣化がわからない)~1 (劣化が気になる) という 5 段階評価みたいなもので、ODG では 0 (劣化がわからない)~-4 (劣化が気になる) という評価を指す。

 ソフトウエアにはカナダのマギル大学にある Telecommunications & Signal Processing Lab. が提供している CUI オーディオ編集ツールAFsp を使いました*1

2. 評価にあたっての注意事項

 今回、マスター音源は普通にノイズ交じりの音声である。FLAC とかの CD 音源でないことには注意。マスター音源は ffmpeg を用いて 16-bit 48 kHz LCPM に変換され、それをもとにして ODG を算出する (マスター音源は 44.1 kHz AAC-LC)。

 なお、比較対象音源については、マスター音源 (AAC) から直接 FDKAAC を用いて各ビットレートに調整してエンコードし、そののちに wav 化した。

3. 比較 (実験結果)

 結果について以下の表にまとめる。なお、詳細結果は最後の備考に記載しておく。

 表を見てもあまりいい結果ではないように見える。てか、使い方間違えてるんかなぁ…

HE-AACv2

ビットレート (kbps) 12 16 20 24 32
ODG -3.903 -3.899 -3.891 -3.891 -3.889

HE-AACv1

|ビットレート (kbps)|40|44|48|52|64|72| |-----------------|--|--|--|--|--|--| |ODG|-3.892|-3.893|-3.891|-3.891|-3.890|-3.889|

AAC-LC

ビットレート (kbps) 80 96 112 128
ODG -3.877 -3.876 -3.872 -3.872

4. まとめ

 いまいちよくわからない結果。この数値を信用していいのかすら不明。ただ 1 つ言えることは数値的に見ると HE-AACv2 32 kbps と HE-AACv1 72 kbps が同じ値で、多少ステレオ感を犠牲にしてもいいのなら、PS の効果は絶大っていえるんじゃないかな、って思ったりする。あと HE-AACv2 にも境目があって、それは明らかに 16 と 20 kbps の壁があるってことが数値的に出てたりするところは興味深い (実際耳で聞いてもそんな感じ)。 逆にいえば、HE-AACv1 はどのビットレートでもあまり差は感じられなかったっていう印象。

 使い方間違っているかソフトが間違っているかよくわからないけど、相対的に見れば直感に近いのかなぁ、って思ったり。高音質なら 112 kbps の AAC-LC でいいと思うし、ステレオ感ほしいし、圧縮したいってのは、40 kbps の HE-AACv1 でいいと思うし、いや、もっと行くとにかく映像に回すって場合は 20 kbps の HE-AACv2 でいいんじゃないんでしょうか。

 ソースによるのでいろいろベストを目指してください。

 PS FDKAAC でエンコした 128 kbps の AAC-LC をソースに 112 kbps の AAC-LC 食わせたらおよそ -2 になった。これは FDKAAC のエンコ品質があまりにもよくないってことを指しているのかもしれない。

追記

 qtaacenc 使ったら雲泥の差すぎた。オリジナルと qtaacenc 128 kbps 比較で -1.389。ほぼ劣化なし。

   BandwidthRefB: 649.284
  BandwidthTestB: 644.156
      Total NMRB: -12.1758
    WinModDiff1B: 10.192
            ADBB: 0.348987
            EHSB: 0.466137
    AvgModDiff1B: 10.1549
    AvgModDiff2B: 18.8489
   RmsNoiseLoudB: 0.172935
           MFPDB: 0.995364
  RelDistFramesB: 0.00549451
Distortion Index: 0.477
Objective Difference Grade: -1.389

追記の追記

 neroAacEnc についても同様に調べてみた。最初 128 bps にしてあるぇ? ってなってたのは内緒。数値は悪くない。

   BandwidthRefB: 649.213
  BandwidthTestB: 641.958
      Total NMRB: -10.3842
    WinModDiff1B: 9.91275
            ADBB: 0.421511
            EHSB: 0.513419
    AvgModDiff1B: 9.87736
    AvgModDiff2B: 18.9915
   RmsNoiseLoudB: 0.17131
           MFPDB: 0.992471
  RelDistFramesB: 0.0918538
Distortion Index: 0.211
Objective Difference Grade: -1.659

*. 備考

12 kbps (HE-AACv2)

   BandwidthRefB: 649.698
  BandwidthTestB: 463.829
      Total NMRB: 6.64942
    WinModDiff1B: 69.5255
            ADBB: 2.879
            EHSB: 2.12054
    AvgModDiff1B: 66.7262
    AvgModDiff2B: 154.513
   RmsNoiseLoudB: 6.51585
           MFPDB: 1
  RelDistFramesB: 1
Distortion Index: -3.978
Objective Difference Grade: -3.903

16 kbps (HE-AACv2)

   BandwidthRefB: 649.794
  BandwidthTestB: 508.264
      Total NMRB: 6.9535
    WinModDiff1B: 62.767
            ADBB: 2.84248
            EHSB: 1.49199
    AvgModDiff1B: 60.8804
    AvgModDiff2B: 136.096
   RmsNoiseLoudB: 6.22589
           MFPDB: 1
  RelDistFramesB: 1
Distortion Index: -3.928
Objective Difference Grade: -3.899

20 kbps (HE-AACv2)

   BandwidthRefB: 649.777
  BandwidthTestB: 636.748
      Total NMRB: 7.49982
    WinModDiff1B: 63.847
            ADBB: 2.83566
            EHSB: 1.30608
    AvgModDiff1B: 61.7483
    AvgModDiff2B: 141.361
   RmsNoiseLoudB: 6.16516
           MFPDB: 1
  RelDistFramesB: 1
Distortion Index: -3.838
Objective Difference Grade: -3.891

24 kbps (HE-AACv2)

   BandwidthRefB: 649.625
  BandwidthTestB: 636.66
      Total NMRB: 7.48712
    WinModDiff1B: 63.7443
            ADBB: 2.83859
            EHSB: 1.29561
    AvgModDiff1B: 61.6438
    AvgModDiff2B: 141.198
   RmsNoiseLoudB: 6.16381
           MFPDB: 1
  RelDistFramesB: 1
Distortion Index: -3.837
Objective Difference Grade: -3.891

32 kbps (HE-AACv2)

   BandwidthRefB: 649.708
  BandwidthTestB: 649.315
      Total NMRB: 7.55238
    WinModDiff1B: 64.0471
            ADBB: 2.83904
            EHSB: 1.17956
    AvgModDiff1B: 61.883
    AvgModDiff2B: 141.781
   RmsNoiseLoudB: 6.23503
           MFPDB: 1
  RelDistFramesB: 1
Distortion Index: -3.809
Objective Difference Grade: -3.889

40 kbps (HE-AACv1)

   BandwidthRefB: 649.505
  BandwidthTestB: 649.145
      Total NMRB: 6.57398
    WinModDiff1B: 64.0051
            ADBB: 2.81395
            EHSB: 1.27486
    AvgModDiff1B: 62.3814
    AvgModDiff2B: 144.069
   RmsNoiseLoudB: 6.40838
           MFPDB: 1
  RelDistFramesB: 1
Distortion Index: -3.844
Objective Difference Grade: -3.892

44 kbps (HE-AACv1)

   BandwidthRefB: 649.58
  BandwidthTestB: 648.749
      Total NMRB: 6.65263
    WinModDiff1B: 63.8212
            ADBB: 2.81298
            EHSB: 1.31442
    AvgModDiff1B: 62.2123
    AvgModDiff2B: 142.795
   RmsNoiseLoudB: 6.41878
           MFPDB: 1
  RelDistFramesB: 1
Distortion Index: -3.854
Objective Difference Grade: -3.893

48 kbps (HE-AACv1)

   BandwidthRefB: 649.517
  BandwidthTestB: 648.747
      Total NMRB: 6.64743
    WinModDiff1B: 63.6112
            ADBB: 2.81421
            EHSB: 1.21521
    AvgModDiff1B: 61.9839
    AvgModDiff2B: 141.818
   RmsNoiseLoudB: 6.37475
           MFPDB: 1
  RelDistFramesB: 1
Distortion Index: -3.833
Objective Difference Grade: -3.891

52 kbps (HE-AACv1)

   BandwidthRefB: 649.474
  BandwidthTestB: 649.09
      Total NMRB: 6.59661
    WinModDiff1B: 63.461
            ADBB: 2.81415
            EHSB: 1.21102
    AvgModDiff1B: 61.8882
    AvgModDiff2B: 141.355
   RmsNoiseLoudB: 6.36231
           MFPDB: 1
  RelDistFramesB: 1
Distortion Index: -3.831
Objective Difference Grade: -3.891

64 kbps (HE-AACv1)

   BandwidthRefB: 649.513
  BandwidthTestB: 649.241
      Total NMRB: 6.60314
    WinModDiff1B: 63.5301
            ADBB: 2.81481
            EHSB: 1.13981
    AvgModDiff1B: 61.8807
    AvgModDiff2B: 141.5
   RmsNoiseLoudB: 6.41445
           MFPDB: 1
  RelDistFramesB: 1
Distortion Index: -3.822
Objective Difference Grade: -3.890

72 kbps (HE-AACv1)

   BandwidthRefB: 649.664
  BandwidthTestB: 649.316
      Total NMRB: 6.58681
    WinModDiff1B: 63.8295
            ADBB: 2.81542
            EHSB: 1.10963
    AvgModDiff1B: 62.119
    AvgModDiff2B: 142.239
   RmsNoiseLoudB: 6.4424
           MFPDB: 1
  RelDistFramesB: 1
Distortion Index: -3.815
Objective Difference Grade: -3.889

80 kbps (AAC-LC)

   BandwidthRefB: 649.478
  BandwidthTestB: 610.069
      Total NMRB: 2.26135
    WinModDiff1B: 59.7861
            ADBB: 2.6245
            EHSB: 1.207
    AvgModDiff1B: 59.1698
    AvgModDiff2B: 127.983
   RmsNoiseLoudB: 4.94109
           MFPDB: 1
  RelDistFramesB: 1
Distortion Index: -3.685
Objective Difference Grade: -3.877

96 kbps (AAC-LC)

   BandwidthRefB: 649.382
  BandwidthTestB: 610.202
      Total NMRB: 2.23816
    WinModDiff1B: 59.8632
            ADBB: 2.6246
            EHSB: 1.17251
    AvgModDiff1B: 59.2337
    AvgModDiff2B: 127.784
   RmsNoiseLoudB: 4.95387
           MFPDB: 1
  RelDistFramesB: 1
Distortion Index: -3.675
Objective Difference Grade: -3.876

112 kbps (AAC-LC)

   BandwidthRefB: 649.376
  BandwidthTestB: 642.917
      Total NMRB: 2.2557
    WinModDiff1B: 60.3942
            ADBB: 2.62588
            EHSB: 1.16645
    AvgModDiff1B: 59.7706
    AvgModDiff2B: 129.538
   RmsNoiseLoudB: 4.94904
           MFPDB: 1
  RelDistFramesB: 1
Distortion Index: -3.639
Objective Difference Grade: -3.872

128 kbps (AAC-LC)

   BandwidthRefB: 649.379
  BandwidthTestB: 643.148
      Total NMRB: 2.19761
    WinModDiff1B: 60.5322
            ADBB: 2.62536
            EHSB: 1.15655
    AvgModDiff1B: 59.8894
    AvgModDiff2B: 129.656
   RmsNoiseLoudB: 4.97255
           MFPDB: 1
  RelDistFramesB: 1
Distortion Index: -3.636
Objective Difference Grade: -3.872

FDKAAC AAC-LC 128 kbps をソースに FDKAAC AAC-LC 112 kbps を比較

   BandwidthRefB: 645.313
  BandwidthTestB: 644.896
      Total NMRB: -10.8873
    WinModDiff1B: 12.8957
            ADBB: 0.814092
            EHSB: 0.491809
    AvgModDiff1B: 12.8348
    AvgModDiff2B: 24.4704
   RmsNoiseLoudB: 0.225168
           MFPDB: 0.999979
  RelDistFramesB: 0.0342809
Distortion Index: -0.135
Objective Difference Grade: -2.022

*1:素晴らしきエントリー: http://www.syncronica.net/2013/08/afsp-cui.html。ここでこのソフトの存在を知りました