エンコしまくってて自分の耳だけじゃ不安なので、いろいろ調べまくってた。
概要
HE-AACv1 の客観的評価について (実験概要)- 評価にあたっての注意事項
- 比較 (実験結果)
- まとめ
この記事に関しての重要な追記
まず、こちらのツイートをご覧ください。
HE-AAC に客観評価 (PEAQ) が適用できない理由を、独 AudioLabs の C.R.Helmrich 氏が解説(英語)。http://t.co/UuTb4jjJ5E 残念ながら、@mntoneさんのHE-AACv1 の客観的評価への試みは正しくないようです。
— 音風景の管理人 (@kamedo2) 2015, 3月 2
ということで、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。ここでこのソフトの存在を知りました