かつてlameはバージョンによって生成されるmp3の品質が異なると言われていたが、
それはfraunhofer社の優良エンコーダが最良と言われていた頃、lameはオープンソースと無料を売りにシェアを拡大していった。
登場した当初、音質面でlameはfraunhoferの足元にも及ばなかったが、バージョンアップを重ねる都度品質が向上し、v3.99.5の時点で飽和状態に達した。
その後5年のブランクを経て、v3.100がリリースされるが、無関係な不具合が修正された程度で、音質に関わる基幹部に手を加えた形跡は見られない。
ということで、公式の最新バージョンv3.100.1と、音質向上を目的に改造が施された裏バージョンを比較し、公式の位置付けを再確認してみる。

【裏バージョン】
・v3.99.5o …… halb27氏による改造lame。
・Radium codec …… 「mp3Producer v2」の技術を無断流用した改造コーデック 。

 

【検証に用いた音源】
・96kHz、24bitのハイレゾflac音源(クラシック)

【検証に用いたツール】
・コンコードにdBpowerampを使用
 ※ v3.99.5oは不要フレームが生成されサイズが増加するため、mp3packerを併用した。lame.exeと同フォルダに「mp3packer64.exe」を「mp3packer.exe」にリネームしたexeファイルを入れると機能する。
 CLI Encoderをインストールし、Command Line欄に

-V 0 -q 0 --noreplaygain - [outfile]

と記述するのもいいが、mp3の「Quality -V 0」を選択後、「Advanced」設定で「-q 0」を選択しても同様の結果になる(バイナリレベルで完全一致)。

・一致率比較にDeltaWaveを使用
 直接音質と無関係な僅かなズレや音量差等を自動補正した後、差異抽出を行う優れた音声比較ツール

結果は以下のとおり。

この結果から言えることは、v3.100.1もv3.99.5oも音質面では差はなく、コマンドはオプションなしのシンプルなものが良いという2点。

v3.99.5oはmp3packerの補助的な使用が必須である点からも、何だかんだいって最新lame(v3.100.1)でいいみたい。

ちなみにv3.99.5oでCLI Encoderのコマンド「-Q0 --lowpass 17 --noreplaygain - [outfile]」でエンコードすると、一致率はDifference (rms) = -71dB [-72.75dBA]まで跳ね上がる(このコマンドはv3.100.1では使用不可)。

生成されるmp3ファイルはVBR 319kbpsだが、ビットレート分布はほぼ海苔状であることから、CBR 320kbpsのRadium codecより優れていることがわかる。

Radium codecはとっくの昔に開発が終了したfraunhoferのエンコードエンジンをベースにしているため、lameの開発が最も盛んだった2010~2012年の時点で既に品質面で逆転していたと思われる。

※ Radium Codecはフロントエンド(YunaSoft MP3 Encoder)の規格に合わせ44.1kHz、16bitに変換したwavファイルを使用し、320kbps CBRでエンコードしているため(CBR一択のみでVBRなし)、同条件の比較ではない。

 

  codec option bitrate control Difference (rms) Correlated Null Depth
1 lame v3.100.1 -V0 -Q0 VBR -64.77dB [-66.27dBA] 71.59dB [57.58dBA]
2 lame v3.100.1 -V0 -Q0 --lowpass 17 VBR -64.75dB [-66.26dBA] 61.22dB [62.43dBA]
3 lame v3.99.5o -V0 -Q0 VBR -64.77dB [-66.28dBA] 60.23dB [56.07dBA]
4 lame v3.99.5o -V0 -Q0 --lowpass 17 VBR -64.76dB [-66.27dBA] 65.97dB [56.96dBA]
5 Radium Codec 1.2build63i - CBR -65.06dB [-67.38dBA] 65.21dB [60.63dBA]