2011年2月10日木曜日

LAMEパラメータの見直し

関連記事:LAMEの高音質設定について

久々にLAMEのパラメータ設定を見直してみた。

今まではEAC + LAME (Ver 3.97)で320kbpsのMP3ファイルでライブラリ化していた。
今日までVer 3.97を使い続けていたのには訳がある。

今まではEACの「エンコード オプション」にて、
-k -q 0 --preset insane %s %d
としていた。(なお、%s %d はEACのオプションである)

-k は、フィルタを使用せずに全てのバンド幅を対象とするパラメータである。
ところがLAMEのVer 3.98以降は-kパラメータが使用できなくなってしまった。

少し前に、Ver 3.98における-kの代替案をテストしたが、当時はどうしてもLowpassフィルタをdisableにできなかった。-kが使えないことで少し焦っていたようだった。

今日は少し頭を冷やして、ソースコードからあたることにした。
最新のVer 3.98.4のソース一式をDLして、全ソースファイルに"argc"にて検索をかけた。すると、main.c、parse.cがヒットした。

parse.cを参照すると、確かに、-k使用時のエラーメッセージがあり、そのそばのコメントに
Highpass、Lowpassパラメータに-1を渡せ
と書いてあった!

そこで、新しく --highpass -1 --lowpass -1 と指定すると、-kの使用時と同じく”ポリフェーズ ローパスフィルタ OFF”と表示された。(パチパチ)

続いて、エンコード結果の検証を行なった。
テストデータとして、クリス・レアの「オン・ザ・ビーチ」を使って、周波数スペクトルを調べた。

図1:オリジナル

図2:LAME Ver 3.97

図3:LAME Ver 3.98.4

いずれのエンコード結果も、中低音域のスペクトル波形はオリジナルとほぼ同じとなった。
高音域(16k~20k)ではVer 3.98.4の方がオリジナルに近いスペクトル波形となった。


ということで、これからはVer 3.98.4のLAMEを使うことにする。

そしてEACの「エンコード オプション」は、
-q 0 --preset insane --highpass -1 --lowpass -1 %s %d
とする。

関連記事:LAMEの高音質設定について

1 件のコメント:

  1. この記事のおかげで 22.05kHz の極音質 MP3 化における高音域の問題を解決できました。ありがとうございます!
    私は念押しで --vbr-old も添えてます。

    返信削除