LAME FAQ version 0.00003 -------------LAMEそのものについて------------- そもそも LAME ってなんですか Lame Ain't MP3 Encoder, MP3エンコーダーではない何かです。 より具体的には mp3 エンコード/デコードなどができるプログラムの ソースコードです。 ソースコードだけですか? じゃあ、実行できないの? そうです。LAME 開発チームが公式に配るのはソースコードだけです。 ただし、一部の環境に関してはソースコードをコンパイルして、バイナリを 再配布している人もいます。 で、そのソースコードを入手するにはどうしたらいい? 多分 http://sf.net/projects/lame/ からダウンロードできるはずです。 あるいは http://www.mp3dev.org/ からリンクがはられているはずなので、 頑張ってリンクをたどってください。 LAMEってどう発音すればいいんですか フランス語が好きな人は「らめ」、英語が好きな人は「れいむ」と 読んでください。 なお、「らめ」は光り輝くという意味と同時に、安っぽい、という意味も あります。また、「れいむ」は非完全、足の不自由な、音の悪い、出来の 悪い、手抜きな、といった意味になります。 LAMEは誰が作っているんですか 世界中の暇人が暇つぶしに作っています。 バグレポートとかコードのごく一部を書いたという人を含め、 100人以上の人が関わっています。 まあ、全ての人が暇なわけではないので、メインのコードを書いているのは ほんの数人です。 LAMEはいろんなバージョンがあるみたいだけど、どれを使えばいいの? 安定したバージョンには番号の後にStableってつくので、とりあえず 使う分にはもっとも新しいバージョン(バージョン番号が大きな数字) の、Stableとついているバージョンを使うことをお勧めします。 Alpha/Betaはいわゆる人柱用なので、開発に参加したい人以外は使わ ないほうが良いでしょう。 LAMEの歴史を教えてください Mike Cheng という人物が LAME Project をはじめた「らしい」です。彼の開発 開始にあたっての「檄文」が http://lame.sourceforge.net/rationale.html に て読めます。 ここにあるとおり、LAME は当時あちこちにあった 8Hz などのエンコーダで 使われているコードを集め、さらに独自の改良を加えるというところから開発が スタートしました。また、特許問題を回避するため、ISO の配っていたコード に対するパッチという形で配布されていました。 が、途中からすべてのコードが ISO の配っていたコードとはまったく異なる、 スクラッチから書かれたものになったため、パッチのサイズが余りにも大きくなっ てしまい、またバイナリ配布さえしなければ問題は起きない「ようだ」と判明 したため、現在はソースコードそのものの配布を行うようになっています。 ただし、今でもバイナリの配布は行っていません。公式バイナリというのは 存在しません。 なんでみんなLAMEを使えって言うの? なんででしょうねぇ。 で、ぶっちゃけたところ、LAMEって音質どうなの? どうだろう。人によって意見が違うのでなんとも。 バージョンがあがるに従って少しずつ音質も上げているつもりではあるけど、 本当にどんな入力音に対してもそうなっているかというと、微妙かもしれません。 まあ、信じるものは救われます。多分。 -------------MP3について------------- MP3 ってなんですか ISO の定めた MPEG1 MPEG2 という規格書の中で、Layer 3 といわれて いる部分に規定されている音声圧縮技術のことです。また、広義にはこれに 加え、フラウンフォーファー社による独自拡張技術である MPEG2.5 Layer 3 を含めることもあります。 ISO とか MPEG って何ですか ISOは国際標準規格を決めている団体で、MPEG はこの団体の中で特に動画や 音声の圧縮技術の標準を定めている部会です。 MPEG2.5って何ですか ドイツのフランフォーファー社が独自にMP3を拡張したもので、非常に低い サンプリングレートに対応するという規格です。 MP3の規格ってどこで手に入れられますか ISOにお金を払ってゲットしてください。 ドラフト版ならば http://mp3-tech.org の Programmer's corner からゲットできます。 同じMP3なのに音が全然違うのは何故? 同じMP3という規格でも、サンプリングレート、ビットレートなどによって いろんなモノがありえます。 また、それらが同じであったとしても、MP3 のエンコーダーやデコーダー によって音が変わることが知られています。 エンコーダーによって音が変わるのは何故? mp3 の規格でエンコーダーが何をすべきか、最低限の定義しかされていないた めです。 mp3 の規格では「デコードの仕方」は厳密に定義されていますが、エンコード の仕方は参考情報という形でしか提示されていません。つまり、デコーダーし か規格では定義されていません。 規格上、エンコーダーは「デコーダーが解釈できるビットストリームを作るプ ログラム」でしかなく、実装者によって自由に作ることが出来るとされています。 たとえば、どんな入力が入ってきても、常にホワイトノイズとなるようなmp3の ビットストリームを出力するプログラムであっても、規格上はmp3エンコーダー と呼んでも問題ありません。ええ、そんなエンコーダー誰も使わないと思いますが。 そこまでひどいものは別としても、世の中には沢山のさまざまな品質の「mp3 エ ンコーダ」が存在しているわけです。 デコーダーによって音が変わるのは何故? 一部のデコーダーにはバグがあったり、速度をかせぐために計算精度を落として いたりするからです。 デコーダーの精度に関しては、mp3 規格において最低限の基準が決められています。 正弦波のデコード結果に関する基準のみなのですが、これが結構厳しく、守れて いないデコーダが意外と沢山あります。 さまざまなデコーダーに対してこの基準テストを行った結果が http://www.underbit.com/resources/mpeg/audio/compliance/ にあります。またこのほかにもいくつかのテストを行った結果が http://mp3decoders.mp3-tech.org/overall.html にあります。参考にしてみてください。 MP3にはマルチチャネルとかがあるらしいけど… あります。ただし、ほとんどサポートしているエンコーダー、デコーダーは 存在しないみたいです。LAME もサポートしていません。 mp3のフリーフォーマットって何ですか 標準で決められている以外のビットレートを実現する規格です。ただし、 フリーフォーマットはOptionalな規格なのでどんなmp3デコーダーでも再生 できるとは限りません。 規格上は無限!のビットレートを許すことになっています。ただ、メモリ他は 有限ですので、当たり前ですが規格上許されるからといってそんなビットレー トが実現できるわけではありません。 リザーバー(Reservoir)ってなんですか ビットストリーム全体としては一定ビットレート(CBR,Constant BitRate))の ビットストリームに見せかけつつ、実質的に可変ビットレート(VBR)を実現す る方法です。 音楽には情報量の多いところとそうでないところがあります。音がなった瞬間 のような遷移部分などは情報量が多く、一定の正弦波が変化せずになっている とかが情報量が少なく、完全な無音だとほとんど情報量はありません。 こういった特性をうまく使って、同じ圧縮率でよりよい音質を実現するための 方法がリザーバーです。具体的には、一つ以上前のフレームで余ったビットを 今のフレームで使うということで実現されています。 これを使うことで音質は向上するのですが、フレーム間の依存性が高まるため、 編集やシークは難しくなり、エラー耐性はさがるという問題があります。 VBR ってなんですか 可変ビットレート(Variabl BitRate)の略です。 リザーバーを使うことによって、見かけ上CBRのビットストリームでも、ある程 度のVBRを実現することが出来ます。しかし、mp3規格上の制限により、限界があ ります(前のフレームから借りることの出来るビット量の制限などがある)。 そこで、見かけ上CBRであることをあきらめることで、より自由度の高いビット 配分を実現するのがmp3におけるVBRです。 VBRはmp3の規格で定められており、正しくmp3に対応したデコーダーであれば、 通常はVBRに対応できるはずです。 グローバルゲインってなんですか スケールファクタってなんですか 記録(量子化)精度をどのぐらいにしているかを示すための係数のことです。 mp3 をはじめとする音声符号化技術では、周波数帯域ごとに量子化係数を変化させて、 記録精度を変化させるということをやっています。mp3 では、量子化係数はグローバル ゲインとスケールファクタの和を用いて表現されます。 16kHz より上の音が消えるんだけど何故? mp3 では、規格により 16kHz より高い周波数領域に対する「スケールファクタ」 の値は常に0となる、と決められています。 通常は16kHz以上の音というのはほとんど聞こえないため、大抵の場合において問 題になりません。が、スペアナで音を見る人たちにとっては大きな問題になります。 耳で聞く分にはまず問題になることはありませんが、そうでないことも時々あるよう です。 -------------LAMEの使い方について------------- とりあえずどういう風に使えばいい? 何故こんなにいっぱいオプションがあるの? どういうコマンドラインオプションをつければいいの? それは、LAMEが一般人向けのソフトではないからです。 内部構造を出来る限り沢山いじれるようにオプションが沢山用意してあります。 そんなにいじれなくてもいいからもっと簡単なのを、というのを希望される方は、 世の中に存在する LAME のフロントエンドをお使いください。 いっぱいある曲をまとめてエンコードしたいんだけど・・・ シェルスクリプトなどを使って頑張ってください。 そんなの面倒だ、という方は適当なフロントエンドを探してくるといいでしょう。 エンコードが遅いんだけど何とかならない? LAMEってmp3のデコードも出来るの? できます。--decode オプションとかを使ってみてください CDに入っている曲をmp3にしたいのですが それにはCDのリッピングという処理が必要で、それはLAMEでは出来ません。 何か他のソフトでリッピングしてください。 わかりやすいGUIとかないですか ないです。それはLAMEの目指しているものではありません。 LAMEのフロントエンドを探してください。 -------------これってバグですか?------------- まったく起動さえ出来ないんだけど、どうなってんねん! まあおちついて。VIAやCyrix の CPU を搭載したマシンだとうまく動かないこと があるみたいです。--noasm オプションをつけるとうまく動くようです。 これはCPUがCPUIDというコマンドをうまく実行できないのが原因らしいです。 我々ではなく、CPU/BIOS メイカーに文句を言ってください :) エンコードできない音源があるんですが、なぜでしょう 特定のファイルのエンコード結果が雑音になってます 入力ファイルの形式がLAMEがサポートしていない形式である可能性が高いです。 何らかの方法でLAMEがサポートする形式に変換してください。 なお十分に賢いフロントエンドプログラムは自動的に変換してくれることが多い です。そういったソフトを見つけて使うというのも手でしょう。 "Internal buffer inconsistency. flushbits <> ResvSize" というメッセー ジが大量に出てきた。で、出来上がったエンコード結果のファイルはものすごい 雑音だらけだ。どうなってんの? ご使用の LAME が Stable バージョンであった場合は、大抵の場合 LAME の 問題ではなく、マシン環境の問題であることが多いです。 CPUやメモリの冷却などを確認してください。またオーバークロックしている 場合は定格運転に戻してください。 他のベンチマークプログラムなどがちゃんと動く環境であっても、どういう わけかLAMEは動かないということが起きるようです。MMX や SSE といった部 分、外部バスへのアクセスなど、CPU全体を使うプログラムであるためと想像 されますが、理由は不明です。 それでもやっぱりおかしい、という場合は、LAME のバグである可能性があり ます。バグレポートしてください。 で、バグレポートはどうしたらいいの? とりあえずパッチを作って lame-dev @ lists . sf . net に 英語でメールしてください。 え、そんなのできないって?そういうときは、・・・どうしましょう。 なんかこのFAQ、すげー内容が薄いんだけど 文章を書く担当者がいないからです。手伝ってくれるとうれしいです。 エンコードした後のmp3ファイルを聞くと先頭と尻尾に無音が付加されるんだけど そういうものです。ギャップレスモードって何? 参考 元のファイルより音が悪いように聞こえるんだけど mp3は可逆圧縮じゃないのでそういうものです。mp3 にエンコードしてデコード して、元のファイルと比較すると、元の音声が完全無音とかでない限り何らか の変化が発生します。 でもって、99.9%以上の確率で、音が悪くなる方向に変化します。 -------------音声圧縮について------------- プリエコーって何? ローパスフィルタはなぜかかるの? ローパスフィルタを無効にしたら音はよくなるの? クリッピング問題って何? 圧縮の品質とその確認方法は? 特に音声圧縮が難しいタイプの音(キラーサンプル)がありますので そいつを使うといいみたい。 じゃあそのキラーサンプルってどこにあるの? -------------再生環境に固有の問題------------- うちのDVDプレーヤーでかからないんだけど WMP6.4で再生できません 高いビットレートで無音部分が長い音をエンコードするとWMP6.4では再生できない ことがあるようです。 これはmp3の規格文面を LAME が甘めに、WMP が厳しめに解釈していたためと思わ れます。 最近のWMPなら問題は解決しているということなので、そちらを使ってください。 あるいは最近のLAMEなら問題は起きないと思われます。ただWMPがどういうプロ グラムになっているかがわからないため、なんともいえない状況です。 --strict-enforce-ISO (ISO規格に厳しく準拠する)オプションって何 mp3規格には微妙にどう解釈していいかわからないところがいくつかあります。その ような部分を「厳しい方向(デコーダーを作るのは楽になるが、音質は悪くなる方向)」 に解釈するのがこのオプションの意味です。 特にバッファのサイズなどの制限が厳しくなります。 Windowsでファイルのプロパティを見ると正しい演奏時間が表示されない VBR タグの読み方をどうもWindowsは間違っているようです。 こいつはmicrosoftじゃないとなおせません。あきらめてください。 同様の理由によりWindowsMediaPlayerの特定バージョンでもうまくシーク が出来ないことがあります。これもどうもWMPの問題のようです。 もちろんLAME側でなおそうと思えば直せるのですが、どこをどう直したら Windowsが正しく解釈してくれるのかが良くわかっていないうえ、将来また 状況が変わるかもしれないため、現状誰も直そうという気が起きないようです。 ID3 tagの問題 ID3v2 Tag はまったく互換性を考えていないひどいフォーマットであるため、 つけるとうまく再生できなくなるデコーダーが大量に存在します (ID3v2.x は、x の値によって互換性が取れません)。 ということで、あまりお勧めできません。 対応するビットレートなどの問題 最大ビットレートや最小ビットレート、サンプリングレートに制限のあるデコー ダーも世の中には存在するようです。あるいはVBRには対応していないといった デコーダーも存在するようです。本来は全てのビットレートとサンプリングレー ト、VBR に対応しないとmp3対応とはいってはいけないはずなんですが… とりあえず、しょうがないのでそういう時はLAMEに対して--resampleオプション や-b,-Bオプションなどを与えて、適当にごまかしてください。 - 全般 - LAMEそのものについて - MP3について - 特許問題について教えてください - MP3ほか音声圧縮一般 - - - クリッピング - LAMEの使い方 - ソースの入手、バイナリ作成 - バイナリの入手 - 個々のオプションについて - 入力ファイル形式について - 曲の前後に入る無音について - 他の情報元 - BBS他