音風景ブログ RSSフィード

2012-01-14

AACとWMAの音質比較

概要

AACWMAMP3の音質比較。AACエンコーダによる差が非常に激しいので、優秀なエンコーダの代表としてqaac、劣悪なエンコーダの代表としてvo-aacencの2種を使用。その他のエンコーダについては他の記事を参照。

iTunesでも使われているAppleのエンジン(Apple Software Support)を借りてエンコードするqaac 1.18Windows XP以降に付属するマイクロソフト謹製のエンジンでエンコードするWMAEncode_0.2.9、言わずと知れたオープンソースMP3エンコーダ LAME 3.98.4、ビリ基準も兼ねて、最近オープンソースになったVisualOn社のvo-aacenc 0.1.1の計4種を聴いて採点した。

結果

QAAC 192kbps > WMA 192k > QAAC 128k ≒ LAME 192k ≒ WMA 128k > LAME 128k ≒ vo-aac 192k ≒ vo-aac 128k

ただしQAAC 128kbps > WMA 128k(p = 0.025)

Apple社のエンジンを利用したQAACの192kbpsが最も高い評価となり、LAME 128kbps, vo-aac 192kbps, vo-aac 128kbpsが最も低い評価となった。

評価

f:id:kamedo2:20120124200328p:image

エンコーダqaacvoaacwmaelameqaacvoaacwmaelame
リリース年20122011201120092012201120112009
バージョン1.180.1.10.2.9398.41.180.1.10.2.9398.4
フォーマットAACAACWMAMP3AACAACWMAMP3
プロファイルLCLCStd.-LCLCStd.-
レート制御CVBRABRABRCBRCVBRABRABRCBR
ビットレート128k128k128k128k192k192k192k192k
41_30sec打楽器3.92.63.32.15.02.83.73.3
finalfantasy撥弦楽4.43.44.02.94.63.95.03.7
ATrainジャズ4.62.74.62.35.02.95.04.5
BigYellowPOPS3.82.83.12.34.73.24.24.0
FloorEssenceテクノ3.42.53.42.55.02.44.13.4
macabreオケ4.62.85.03.45.02.84.74.7
mybloodrusts弦楽器5.02.43.92.85.02.45.03.9
Quizasラテン4.12.33.63.15.02.34.34.5
VelvetRealmテクノ3.82.52.73.04.52.63.53.2
雨降花POPS4.02.34.42.85.02.34.75.0
TrustGosp3.72.83.63.34.33.24.64.1
Waitingロック3.82.63.72.84.22.74.64.0
Experienciaラテン3.83.83.73.55.02.85.04.0
HeartToHeartPOPS3.73.13.52.84.63.54.53.9
Tom's Diner女声4.62.73.63.35.03.04.54.1
↑音源平均点4.052.743.732.854.782.834.474.00
実レート136k130k135k128k208k194k203k193k
全サイズ(KB)58035555578254958894829486748242
エンコーダqaacvoaacwmaelameqaacvoaacwmaelame

テストに利用した音源を試聴したい方、ダウンロードしたい方、ログを見たい方はこちらへ。

http://zak.s206.xrea.com/bitratetest/main.htm

方法

銘柄に対する先入観が影響しないように、ABC/HR for Java 0.53aとMHP-A1を利用して、8個の音声ファイルをシャッフルして、銘柄を伏せた状態で聴いて採点した。1.0=音質劣化が非常に気になる 2.0=気になる 3.0=少し気になる 4.0=原音からの音質変化が分かるが、気にならない 5.0=音質変化がわからない、区別できない。4.9点以下の評点をつける場合は、ABXテストを20回行い、15回以上(これ以上の成績をまぐれで出す確率は約2%)正解して、違いを聞き取れることを確認してからそうした(2.9以下の場合は省略)。

同じテストを、SE-DIR800CIIでもう一度行い、平均を求めた。このテストでの採点は、15(音源)×4(エンコーダ)×2(ビットレート)×2(回)=240(回)。

使用したオプション

qaac_1.18 --cvbr 128 -o %outfile% %infile%

ffmpeg36030 -y -i %infile% -acodec libvo_aacenc -ab 128k %outfile%

WMAEncode_0.2.9\WMAEncode64 %infile% %outfile% --bitrate 128

lame3.98.4 -q 0 -b 128 %infile% %outfile%

qaac_1.18 --cvbr 192 -o %outfile% %infile%

ffmpeg36030 -y -i %infile% -acodec libvo_aacenc -ab 192k %outfile%

WMAEncode_0.2.9\WMAEncode64 %infile% %outfile% --bitrate 192

lame3.98.4 -q 0 -b 192 %infile% %outfile%


詳細な優劣の分析

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              119          88.91
Testers (blocks)    14           8.12
Codecs eval'd        7          65.64    9.38   60.70  0.00E+000
Error               98          15.14    0.15
---------------------------------------------------------------
Fisher's protected LSD for ANOVA:   0.285

Means:

qaac192  wmaen192 qaac128  lame192  wmaen128 lame128  voaac192 voaac128
  4.78     4.47     4.05     4.00     3.73     2.85     2.83     2.74

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

         wmaen192 qaac128  lame192  wmaen128 lame128  voaac192 voaac128
qaac192  0.035*   0.000*   0.000*   0.000*   0.000*   0.000*   0.000*
wmaen192          0.004*   0.001*   0.000*   0.000*   0.000*   0.000*
qaac128                    0.694    0.025*   0.000*   0.000*   0.000*
lame192                             0.063    0.000*   0.000*   0.000*
wmaen128                                     0.000*   0.000*   0.000*
lame128                                               0.889    0.445
voaac192                                                       0.532
-----------------------------------------------------------------------

qaac192 is better than wmaen192, qaac128, lame192, wmaen128, lame128, voaac192, voaac128
wmaen192 is better than qaac128, lame192, wmaen128, lame128, voaac192, voaac128
qaac128 is better than wmaen128, lame128, voaac192, voaac128
lame192 is better than lame128, voaac192, voaac128
wmaen128 is better than lame128, voaac192, voaac128

整形済みデータ

% AAC/WMA/MP3 128/192kbps ABC/HR score
qaac128 voaac128 wmaen128 lame128 qaac192 voaac192 wmaen192 lame192
%qaac vo-aacenc wmaencode lame qaac vo-aacenc wmaencode lame
%features 6 AAC AAC WMA MP3 AAC AAC WMA MP3
%features 7 128kbps 128kbps 128kbps 128kbps 192kbps 192kbps 192kbps 192kbps
3.850	2.600	3.300	2.100	5.000	2.750	3.650	3.300	
4.350	3.400	4.000	2.900	4.600	3.850	5.000	3.700	
4.550	2.700	4.600	2.350	5.000	2.900	5.000	4.500	
3.800	2.800	3.100	2.300	4.650	3.150	4.200	3.950	
3.400	2.450	3.350	2.450	5.000	2.400	4.050	3.350	
4.550	2.750	5.000	3.350	5.000	2.800	4.650	4.650	
5.000	2.350	3.900	2.750	5.000	2.350	5.000	3.900	
4.100	2.300	3.600	3.100	5.000	2.300	4.250	4.450	
3.800	2.450	2.650	2.950	4.450	2.550	3.500	3.200	
3.950	2.300	4.350	2.850	5.000	2.300	4.700	5.000	
3.650	2.850	3.600	3.300	4.250	3.200	4.600	4.100	
3.750	2.600	3.700	2.800	4.150	2.650	4.600	3.950	
3.800	3.800	3.700	3.450	5.000	2.850	5.000	3.950	
3.700	3.050	3.500	2.800	4.600	3.450	4.450	3.850	
4.550	2.700	3.550	3.300	5.000	2.950	4.450	4.100	

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

IgorCIgorC 2012/01/19 13:49 I´ve found your page to be very interesting.
Thank You for sharing your findings.

kamedo2kamedo2 2012/01/19 18:47 You're welcome.

If you have trouble understanding Japanese, here's the translation ("Method" section):
In this test, ABC/HR for Java 5.3a was used to avoid prejudice. Used headphone is MHP-A1. 1.0=the artifact is very annoying 2.0=annoying 3.0=little annoying 4.0=distinguishable but not annoying 5.0=indistinguishable. ABXed 15+/20(p=0.02) to score 4.9 or less(but not when 2.9 or less).
The test was conducted twice, using another headphone SE-DIR800CII. The average between the two scores was calculated. In this test, 15(sounds)*4(encoders)*2(bitrates)*2(twice)=240 were scored.

In most of the tests in my blog are in this way. The evaluation can be once/twice/three times to yield the precision needed. In some recent tests, my PSP is used to employ ABXY tests because XYXYXY... is less time-consuming than AXBAXBAXB..., and to get a quick result and fix some wrongheaded ideas(My ABX tests are always 20times unless specified otherwise), and to turn off the computer and its fan to achieve silence.

IgorCIgorC 2012/01/21 22:53 100% agree that ABXY is more comfortable and more faster than ABX.:) . Less time consuming and less errors.

Can You provide a link to your PSP. Because it will be great to see an application like ABC/HR+ABXY. Until now we have ABC/HR+ABX http://listening-tests.hydrogenaudio.org/igorc/aac-96-a/ABC-HR_bin.zip

Thank You.

kamedo2kamedo2 2012/01/22 10:32 Photo(on PSP-3000)
http://f.hatena.ne.jp/kamedo2/20120122100844
PSP abc/hr v2.0
http://zak.s206.xrea.com/bitratetest/log_mp3192kbps2.zip

I have to say it's kind of messy and it's not very user-friendly. This software always assumes any scores less than 5.0 were always ABXYed and the ABXY will be done 20 times. The lossy files must be converted to wav32bit beforehand and converted to equalized raw files by rawgene.exe manually. It won't run on official PSP firmware right now.

kamedo2kamedo2 2012/01/22 13:18 Oops, 0.53a, not ABC/HR for Java 5.3a.
I think I have to rewrite much of the code to make PSP abc/hr user-friendly, but I have no time to do so right now.
http://f.hatena.ne.jp/kamedo2/20120122114316
ABC/HR for Java hides intermediate points and wouldn't tell me my answer is right or wrong, so it occasionally cause my memory to "flip", like 1 2 3 4 5 6 6 6 6 6 6 6 7 ... no good.
I assume this is meant to avoid cherry-picking the lower p from the naturally fluctuating p, but it's confusing for users, and unequal N means unequal maximum allowed error, like 0% in N=6, 25% in N=20. Statically questionable.

My method is to have fixed N during tests, and instant results are shown by beep sounds. The test won't end until N=20, so effectively avoiding the cherry-picking. However, some listeners may have a frustrating time ABXYing the most obvious samples until getting 20/20.

ABC/HR for Java includes features pairing hidden reference with lossy one, to disallow bogus audiophiles to say lossy codecs always sounds terrible without ever ABXing or even blind comparing. But in PSP this is omitted, because of my rule to fully ABXYing everything other than 5.0. But it can be a problem if we were to allow unABXYed results.

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/kamedo2/20120114/1326559188