2014年2月21日金曜日

  

Walkmanのギャップレス再生を検証してみた。

WalkmanにNonstopMixなCDをLAME(V0)オプションでmp3にエンコードして聴いていたら、
明らかに曲間の欠落があるCDが有った。
プツっといった音は聴こえないが、数秒間の音が抜けた形でギャップレスになった感じに聴こえた。
SONY WALKMAN ウォークマン NW-F880 Part5
NW-F880のスレッドにはEAC+LAMEでエンコードしたファイルも
ギャップレス再生出来たとの書き込みがあって、
嘘をついている様な書き込みとも思えなかった。

そこで、LAMEでエンコードする時の設定で、
ギャップレス再生の有無が変わるのではないかと考え、検証をしてみる事とした。

そもそも、ATRACファイルのギャップレス再生は、すべての曲を同じ条件でエンコード(CBR)し、
曲間のサンプル数を無理やりに合わせ、あたかも1つのファイルを再生していると
デコーダーをだますやり方で行われている。このため、X-apli等でエンコードしたファイルは
1曲1曲の長さが違ってきてしまう。(LAMEでいう所の--nogapオプション)

Walkmanがmp3再生に対応したのは、私が記憶している中では
MZ-RH10であり、mp3を再生するデコーダはWalkmanの中では結構長く、
レガシーな物なのではないかと想像した。
なおかつ、ISO基準で本来はLAMEタグには対応しない方が自然である。

そこで、LAMEオプションでVBR、ABR、CBRをそれぞれエンコードして聴いてみた。
すると、CBRでエンコードしたファイルでは、確かに曲間の欠落が気にならないレベルになった。
LAMEでエンコードしてギャップレス再生が出来ている人は、CBRオプションでエンコード
している人だというのが分かった。

しかし、私はLAMEの良さはVオプションによるVBRエンコードだと思っているので、
BオプションのCBRエンコードは使いたくない。
実際にVBRエンコードの音質は高いことが知られており、OGGやACCではVBRが標準となっている。
そこで、AACでエンコードした場合のギャップレスエンコードも検証してみる事とした。

私が、AACを使ってこなかった理由はギャップレス再生の実装が不鮮明だったからである。
NEROのエンコーダが独自に実装したり、AppleがITunes(QuickTime)で実装したり(iTunSMPB)
ISO標準の方式になったりと、二転三転しているなと印象を持っていた。
NEROのエンコーダーのギャップレス方式がISO標準方式になったという情報と、
QuickTimeのエンコーダーがfoobar2000から利用出来、ギャップレス方式を選択できる事が分かったので、この2つを試してみた。
結果を表にまとめてみる。





NW-A867 NW-F807 NW-ZX1
ATRAC
MP3 LAME CBR × ×
VBR × ×
ABR × ×
AACーLC NERO VBR × ×
QT VBR × ×
ALAC VBR - -
FLAC Flaccl VBR -

×→プツっと音が鳴り明らかに曲間が切れている形式
△→一見ギャップレスの様に聞こえるが実際には数サンプル(数秒??)スキップしている形式
○→ギャップレス再生できているか、あるいは、ほとんど曲間が気にならない形式

オプション
lame.exe
-S --noreplaygain -V 0 -h - %d
neroAacEnc.exe
-lc -ignorelength -q 0.65  -if - -of %d
qaac.exe
--ignorelength --tvbr 122 -q 2  --threading --gapless-mode 2 - -o %d


結果、LAME(MP3)は CBRでエンコードすればギャップが気にならなくなる事がわかった。
AACはVBRが基本なので、1つのオプションしか試していません。

0 件のコメント :

コメントを投稿