2008年12月30日火曜日

lameはコンパイラが違うと音質が変わるのか

LAMEをマルチスレッドで実行するプログラム v1.1を作っていてふと、「コンパイルの仕方によって音質は変わるのか」という疑問が。

…ということで、さっそく実行。

以前環境が変わってもlameは同じファイルを出力するのかで、環境が変わってもバイナリが同じならば同じファイルを出力することは分かっていたので、今回はコンパイルで比較してみることにした。


ソースには、以前エンコード×100実験でも使用した、"miku.wav 96kHz 3072kbps 1307774byte"を使用。

まず、http://sourceforge.net/project/showfiles.php?group_id=290&package_id=309から、lame3.98.2のソースをダウンロード。
とりあえずはインストール先だけを指定して、make | make install。
そしてmiku.wavをオプション無しでエンコード。

次に、RareWaresで配布されているWindows用lame3.98.2バイナリを使用し、オプション無しでmiku.wavをエンコード。


最後に、出来上がったファイルのsha1ハッシュを比較。


その結果…
hachune@Hachune-VM:~/Desktop$ sha1sum miku_org.mp3 miku_win.mp3
31c0d40ce1bbafa6aa3c3b1eabc25714c622ddd5 miku_org.mp3
a89fb2c22fb83d9b0c38dcbddb998fae35515d67 miku_win.mp3



見事に全然違うファイルに…(;´Д`)
エンコード結果が違うってのは、全てのmp3ファイルのエンコーダを統一している人にとっては、ちょっと痛いな…

コンパイルの最適化を行った場合もやはり出力されるファイルが変わるのだろうか…

0 件のコメント: