2012-01-04 4 views
2

私はfreemp3droidを使ってwavファイルをmp3に変換しています。ファイルの先頭にクリックがあります。大胆にファイルを見ると、最初の100バイト(ヘッダーを越えて)は同じパターンになります。何が起こっている可能性がありますか?ここでwavを圧縮した後にクリックが発生するのはなぜですか?

は、クリックの波形(それは、毎回99%の同一である)

enter image description here

http://code.google.com/p/freemp3fordroid/source/browse/trunk/jni/frontend/main.c#215

+2

ウェブサイトでバグレポートを開きましたか? –

+0

私はあなたが何を意味するのか分かりません:*ファイルの先頭にクリックがあります。* – karlphillip

+0

カール、沈黙があるはずです。しかし、すべての圧縮には、記録されていないクリックがあり、圧縮プロセスのいくつかの論理的なバグによって生成されました。 – hunterp

答えて

0

クリックが何であるかを理解することは価値があります。実際にヘッダーを圧縮した場合は、不連続な不連続な信号が流れ始めます。何が起きているのかを知るためには、信号について少しは理解しなければなりません。波形がゼロ値で始まらない。これは、電圧から電圧まで瞬時に取得する必要があることを意味します。ゼロから始まる正弦波があれば、純粋な音が聞こえます。信号から始めるので、最初は高音域の鳴き声と同じで、スピーカーはポップに変わります。

ゼロで始まらない信号を圧縮すると、同じポップが得られます。

これを停止する方法は、サウンドを開始するランプアップを追加することです。ゼロから始まり、波の開始値に達するまで直線的に上昇し、ポップ音は出ません。

2

はWAV/RIFF 44バイトのヘッダを圧縮しようとしているあなたのエンコーダはありますあたかもオーディオであるかのように?

+0

Iveは、44バイトで圧縮し、両方とも試してみました。 – hunterp

+0

参考までに、エンコーダはオープンソースです。質問にソースコードへのリンクがあります。 – hunterp

0

ここでは本当に問題はありません。なぜなら、非可逆圧縮は一般に、入力データを近似するために継続関数を使用するからである。 MP3の場合、異なるコサイン関数を含むModified Cosine Discrete Transformが使用されます(基本コンセプトを理解するにはFourier Seriesを参照してください)。その結果、そのようなアプローチでは簡単に高い周波数を表現することができず、ピークが高くなったり、ある点で歪みが生じたりします。

0

少し遅れていますが、正解はです。freemp3droidはraw pcm以外の形式をエンコードできませんでした。あなたの入力フォーマットはwavだったので、freemp3droidはwavヘッダーをシグナルとして解釈し、巨大な初期クリックを生成します。

文章"convertFile:MP3に変換する生のpcmまたはwavデータ"http://code.google.com/p/freemp3fordroidは間違っています。

関連する問題