2008年7月19日土曜日

環境が変わってもlameは同じファイルを出力するのか

普段、音楽ファイルをmp3にエンコードするのには、lame(現在は3.98の安定版を使用)を使っているのだが、ひとつ疑問に思っていることがあった。それは、

「エンコード結果は、毎回必ず同じになるのか」

…ということで、早速調べてみた。

◇調査環境
lame 3.98 Stableを、Windows Server 2008ではコマンドプロンプト上で、Ubuntu 8.04ではGnome-Terminal上で動かし、wavファイルをエンコード。
ソースには、全て同じ1つのwavファイルを使用。
そして、それを1つエンコードした場合と、同時に4つエンコードした場合を比較。
 ※クアッドコアでは、lameは1つのCPUコアしか使用しないので、4つ処理させたらどうなるのかを確かめるため

ただ、ひたすらエンコードするだけではつまらないので、今回は、Linux上でWindowsのアプリケーションを動作させることのできる互換レイヤー「Wine」を利用して、Linux上でlame.exeを使いエンコードし、Windows上で作成したものと比較する、ということもしてみた。
そして、ファイルの比較には、MD5、SHA1、SHA512を使用した。
…SHA512だけで十分な気もするが。

◇ソースファイル
A Brand New Day.wav
MD5:0333d159a06e66b0e4f72f0ffe49256c
SHA1:6a233dc4fcbba8218b01abb845685c18ca528a55
SHA512:b156c15b0c8747a1a7d9fe58d47c2e3522b43d9cf050ce0169fcdfd1fd392a6467a3b2fa15cc6e7e01d5004eb4733ffda7cc114a97ca58125f5903e6863f66c0

◇結果
・Windows Server 2008上で、一度に1つのエンコードを行った場合
A Brand New Day.mp3
MD5:a014dcaec054369216b150ca64e36d89
SHA1:4c203ef1e46025ce433ad012c5a15f97aab007bb
SHA512:5ecc0a10c4e57ca70bb28cb1c55a8d2df164cbda72b5293ededd6333eeb67869c8e17e9c1f25be593a76dabd4612f0a93c1419e5c86c466eae784c974bcf1577

・Windows Server 2008上で、一度に4つのエンコードを行った場合
すべて上と同じ
WindowsServer2008上で4つ同時にエンコード

・Ubuntu 8.04上で、Wineを使用し、一度に1つのエンコードを行った場合
すべて上と同じ

・Ubuntu 8,04上で、Wineを使用し、一度に4つのエンコードを行った場合
すべて上と同じ
Ubuntu 8.04上で4つ同時にエンコード


◆まとめ
Wineを使ってLinux上で実行しようが、4つ並列処理させようが、処理の結果出力されるファイルは全く同じである。


Wine
http://winehq.org/

lameのバイナリはここで。
http://rarewares.org/

日本語が使用できるlameフロントエンド、Life
http://kkkkk.net/

0 件のコメント: