Abstract:
Blind sound quality comparison between the FFmpeg's native AAC encoder (-c:a aac, from the 2016/01/17 version) and the Fraunhofer FDK AAC encoder library(-c:a libfdk_aac), at 64 kbps, 96 kbps and 128kbps.
Encoders:
FFmpeg N-77891-g757248e (2016/01/17 version, it was latest at the time but TNS algorithm was fixed since then.)
fdk-aac-0.1.4 (still the latest as of 2016/01/25)
Settings:
ffmpeg77891 -i in.wav -c:a aac -b:a 64k out.mp4
ffmpeg77891 -i in.wav -c:a aac -b:a 96k out.mp4
ffmpeg77891 -i in.wav -c:a aac -b:a 128k out.mp4
ffmpeg77891 -i in.wav -c:a libfdk_aac -b:a 64k out.mp4
ffmpeg77891 -i in.wav -c:a libfdk_aac -b:a 96k out.mp4
ffmpeg77891 -i in.wav -c:a libfdk_aac -b:a 128k out.mp4
Samples:
Total 15 samples from my corpus
Hardwares:
Sony PSP-3000 + RP-HJE150.
Results:
Conclusions & Observations:
The FDK-AAC was the clear winner. Compared to 2016/01/17 version of the FFmpeg's native encoder, Fraunhofer's FDK-AAC library delivered the same sound quality at 32kbps reduced bitrates.
Anova analysis:
FRIEDMAN version 1.24 (Jan 17, 2002) http://ff123.net/
Blocked ANOVA analysis
Number of listeners: 15
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 89 55.70
Testers (blocks) 14 1.91
Codecs eval'd 5 47.62 9.52 107.92 0.00E+000
Error 70 6.18 0.09
---------------------------------------------------------------
Fisher's protected LSD for ANOVA: 0.216
Means:
fdk128 ffa128 fdk96k ffa96k fdk64k ffa64k
4.33 3.47 3.43 2.83 2.69 2.02
---------------------------- p-value Matrix ---------------------------
ffa128 fdk96k ffa96k fdk64k ffa64k
fdk128 0.000* 0.000* 0.000* 0.000* 0.000*
ffa128 0.668 0.000* 0.000* 0.000*
fdk96k 0.000* 0.000* 0.000*
ffa96k 0.201 0.000*
fdk64k 0.000*
-----------------------------------------------------------------------
fdk128 is better than ffa128, fdk96k, ffa96k, fdk64k, ffa64k
ffa128 is better than ffa96k, fdk64k, ffa64k
fdk96k is better than ffa96k, fdk64k, ffa64k
ffa96k is better than ffa64k
fdk64k is better than ffa64k
Raw data:
64k 96k 128k fdk64k fdk96k fdk128k
%feature 7 FFmpeg's native AAC encoder FFmpeg's native AAC encoder FFmpeg's native AAC encoder FDK AAC encoder FDK AAC encoder FDK AAC encoder
%feature 10 -c:a aac -c:a aac -c:a aac -c:a libfdk_aac -c:a libfdk_aac -c:a libfdk_aac
%feature 11 -b:a 64k -b:a 96k -b:a 128k -b:a 64k -b:a 96k -b:a 128k
%feature 12 66 kbps 99 kbps 134 kbps 66 kbps 98 kbps 130 kbps
1.800 2.600 3.300 2.600 3.600 4.200
2.000 2.800 3.500 2.700 3.200 4.400
2.000 2.900 3.300 2.700 3.900 4.100
2.100 3.300 3.900 2.600 3.800 4.200
2.200 2.700 3.500 3.200 3.800 4.000
1.800 2.700 3.300 2.500 3.300 3.900
2.200 2.800 3.400 2.900 3.700 5.000
2.000 3.100 3.600 2.700 3.800 4.300
1.900 2.500 3.500 3.400 3.800 4.000
2.100 2.900 3.500 2.400 2.800 3.900
1.800 2.800 2.900 2.300 3.200 3.900
2.200 2.400 3.400 2.900 3.500 4.100
2.200 2.800 3.500 2.600 3.300 5.000
2.100 3.000 3.700 2.500 2.700 5.000
1.900 3.100 3.800 2.300 3.000 5.000
%samples 41_30sec Perc.
%samples finalfantasy Strings
%samples ATrain Jazz
%samples BigYellow Pops
%samples FloorEssence Techno
%samples macabre Classic
%samples mybloodrusts Guitar
%samples Quizas Latin
%samples VelvetRealm Techno
%samples Amefuribana Pops
%samples Trust Gospel
%samples Waiting Rock
%samples Experiencia Latin
%samples HearttoHeart Pops
%samples Tom'sDiner Acappella
Bitrates:
The FDK AAC tend to have less bitrate deviations. The unit is in bps.
%bitrate
ffa64k ffa96k ffa128k fdk64k fdk96k fdk128k
65930 99003 135514 65879 97884 129902
66156 99536 132771 65877 97904 129932
65964 97857 129806 66190 98218 130228
66147 99804 134617 65974 97973 129987
67298 100032 137166 66165 98170 130176
66006 97904 129911 66231 98173 130189
65891 97881 129837 66147 98105 130097
65856 99404 134801 65952 97938 129933
66221 98460 130945 66905 98863 130954
66192 98948 134048 65994 97973 129996
65977 98068 130546 65878 97819 129819
65914 97978 130939 66125 98066 130101
66540 99989 137550 66110 98114 130146
65900 98942 133352 65969 97978 130014
66434 103135 141370 66179 98205 130166