久々に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の高音質設定について
この記事のおかげで 22.05kHz の極音質 MP3 化における高音域の問題を解決できました。ありがとうございます!
返信削除私は念押しで --vbr-old も添えてます。