音風景ブログ

目隠しテストによるエンコーダの音質評価などを行うブログです。

cutoffオプションでFFmpeg内蔵AACエンコーダーの品質を改善する

概要

FFmpegネイティブのAACエンコーダー(実験段階)でAACエンコードする時に、cutoffオプションを使うと音質が少しよくなることを確認した。

結果

AAC 192kbps(with cutoff) > AAC 192kbps(without cutoff) >
AAC 128kbps(with cutoff) > AAC 128kbps(without cutoff) >
AAC 64kbps(with cutoff) > AAC 64kbps(without cutoff)

評価

エンコーダ FFmpeg FFmpeg FFmpeg FFmpeg FFmpeg FFmpeg
リリース年 2012 2012 2012 2012 2012 2012
バージョン r37610 r37610 r37610 r37610 r37610 r37610
フォーマット LC-AAC LC-AAC LC-AAC LC-AAC LC-AAC LC-AAC
ビットレート 64k 64k 128k 128k 192k 192k
-cutoff あり なし あり なし あり なし
数値(Hz) 12000 16000 18000
41_30sec 打楽器 1.8 1.5 2.6 2.3 3.6 3.3
finalfantasy 撥弦楽 2.1 1.8 3.5 2.6 4.3 4.0
ATrain ジャズ 2.3 1.9 4.0 3.2 4.4 4.4
BigYellow POPS 2.3 1.7 3.5 2.7 4.1 3.9
FloorEssence テクノ 2.0 1.7 3.0 2.5 3.6 3.2
macabre オケ 2.1 1.7 3.3 2.6 4.6 3.9
mybloodrusts 弦楽器 2.1 1.7 2.7 2.6 4.1 3.9
Quizas ラテン 2.1 1.6 3.5 2.8 4.0 3.8
VelvetRealm テクノ 2.2 1.9 2.7 2.5 2.9 3.1
雨降花 POPS 2.1 1.7 3.0 2.7 3.8 3.5
Trust Gosp 2.2 1.7 2.9 2.6 3.8 3.5
Waiting ロック 2.3 1.9 3.0 2.6 3.6 3.5
Experiencia ラテン 2.1 1.6 3.2 2.3 4.1 3.9
HeartToHeart POPS 2.3 1.5 3.2 2.2 3.7 3.5
Tom's Diner 女声 2.3 1.8 3.2 2.3 3.4 3.6
ReunionBlues ジャズ 2.3 1.8 3.7 3.1 4.2 4.1
French 男女声 2.5 1.9 3.1 2.6 3.7 3.5
undelete POPS 2.1 1.9 3.1 3.1 4.0 3.7
Dimmu Borgir メタル 1.9 1.8 3.0 3.0 3.9 3.5
Run up POPS 2.3 1.8 3.4 2.8 4.0 3.9
↑音源 平均点 2.16 1.71 3.16 2.63 3.87 3.67
実レート 69k 72k 130k 133k 190k 188k
全サイズ(KB) 4068 4208 7608 7820 11127 11024

テストに利用した音源を試聴したい方、ダウンロードしたい方、ログを見たい方はこちらへ。
http://zak.s206.xrea.com/bitratetest/main.htm

方法

先入観が影響しないように、PSP ABC/HR v2.0とRP-HT560を利用して、WAVからエンコードされた6個のAACをランダムに並び替えて、ブラインドで採点した。WAVとの区別がつかない場合、5.0点をつけた。4.9点以下の評点をつける場合は、ABXYテストを15回行い、12回以上(これ以上の成績をまぐれで出す確率は約2%)正解して、違いを聞き取れることを確認してからそうした。その作業を20音源について繰り返した。同じテストをもう一度行った。2回の平均を使った。このテストでの採点は、20(音源)×3(ビットレート)×2(cutoffあり/なし)×2(回)=240(回)。

使用したオプション

ffmpeg37610 -y -i %wavfile% -vn -aprofile aac_low -acodec aac -strict experimental -ab 64k -cutoff 12000 %outfile%.mp4
ffmpeg37610 -y -i %wavfile% -vn -aprofile aac_low -acodec aac -strict experimental -ab 64k %outfile%.mp4
ffmpeg37610 -y -i %wavfile% -vn -aprofile aac_low -acodec aac -strict experimental -ab 128k -cutoff 16000 %outfile%.mp4
ffmpeg37610 -y -i %wavfile% -vn -aprofile aac_low -acodec aac -strict experimental -ab 128k %outfile%.mp4
ffmpeg37610 -y -i %wavfile% -vn -aprofile aac_low -acodec aac -strict experimental -ab 192k -cutoff 18000 %outfile%.mp4
ffmpeg37610 -y -i %wavfile% -vn -aprofile aac_low -acodec aac -strict experimental -ab 192k %outfile%.mp4

詳細な優劣の分析

FRIEDMAN version 1.24 (Jan 17, 2002) http://ff123.net/
Blocked ANOVA analysis

Number of listeners: 20
Critical significance:  0.05
Significance of data: 0.00E+000 (highly significant)
---------------------------------------------------------------
ANOVA Table for Randomized Block Designs Using Ratings

Source of         Degrees     Sum of    Mean
variation         of Freedom  squares   Square    F      p

Total              119          81.56
Testers (blocks)    19           4.71
Codecs eval'd        5          72.29   14.46   301.50  0.00E+000
Error               95           4.56    0.05
---------------------------------------------------------------
Fisher's protected LSD for ANOVA:   0.137

Means:

192k_cut 192nocut 128k_cut 128nocut 64k__cut 64knocut
  3.87     3.67     3.16     2.63     2.16     1.71

---------------------------- p-value Matrix ---------------------------

         192nocut 128k_cut 128nocut 64k__cut 64knocut
192k_cut 0.005*   0.000*   0.000*   0.000*   0.000*
192nocut          0.000*   0.000*   0.000*   0.000*
128k_cut                   0.000*   0.000*   0.000*
128nocut                            0.000*   0.000*
64k__cut                                     0.000*
-----------------------------------------------------------------------

192k_cut is better than 192nocut, 128k_cut, 128nocut, 64k__cut, 64knocut
192nocut is better than 128k_cut, 128nocut, 64k__cut, 64knocut
128k_cut is better than 128nocut, 64k__cut, 64knocut
128nocut is better than 64k__cut, 64knocut
64k__cut is better than 64knocut

整形済みデータ

% FFmpeg native experimental AAC Encoder ABC/HR score
64k__cut	64knocut	128k_cut	128nocut	192k_cut	192nocut
%features 7 64kbps 64kbps 128kbps 128kbps 192kbps 192kbps
1.800	1.500	2.600	2.250	3.600	3.250	
2.100	1.750	3.450	2.550	4.250	3.950	
2.300	1.850	4.000	3.200	4.350	4.400	
2.300	1.650	3.500	2.650	4.100	3.900	
2.000	1.700	3.000	2.500	3.600	3.200	
2.050	1.700	3.300	2.600	4.600	3.900	
2.100	1.700	2.700	2.550	4.050	3.900	
2.050	1.600	3.450	2.850	4.000	3.800	
2.200	1.850	2.700	2.450	2.900	3.050	
2.100	1.650	2.950	2.700	3.750	3.500	
2.150	1.650	2.900	2.600	3.750	3.500	
2.250	1.850	3.000	2.600	3.550	3.450	
2.100	1.550	3.200	2.350	4.100	3.900	
2.300	1.500	3.150	2.150	3.700	3.500	
2.350	1.800	3.150	2.250	3.400	3.550	
2.300	1.750	3.700	3.050	4.150	4.050	
2.450	1.850	3.100	2.550	3.700	3.450	
2.100	1.900	3.100	3.050	3.950	3.700	
1.900	1.750	2.950	2.950	3.900	3.500	
2.250	1.750	3.350	2.800	3.950	3.900	

注:公開試聴試験での多人数の平均評点と管理人の評点が似たような傾向になることは確認しているので言えるが、ある個人がある再生環境で、ある価値観のもとに聞いたときの評価が、ここに書いた管理人の評価に似るかどうかまでは何とも言えない。また、今回利用した音源とは傾向の異なる音を多くエンコードした場合、結果や順位が異なる可能性があります。