2012-11-26 6 views
7

コアオーディオのパケット損失隠蔽を行う基本的なアルゴリズムを作成しようとしています。失われたデータを無音で置き換えたいだけです。コアオーディオを学習する本では、ロスレスPCMではゼロは無音を意味しています。私はVBR(すなわち圧縮されたデータ)を演奏しているのか疑問に思っていました。私の既存のコード..私は、オーディオキューにゼロを接続したとき...それは突然渋滞(すなわち、それはもはやオーディオキューコールバックでの消費データを解放...)と私は、なぜコアオーディオ:PCMオーディオの場合のみ無音に等しい?

+0

最も一般的な圧縮形式では、圧縮されていないデータを置き換える、言い換えれば、圧縮解除後に無音にするランプが唯一の問題ではありません。 (Re)ドロップアウト後の圧縮データストリームとの同期も大きな問題です。どこでもデコードを開始することはできませんし、データを意味をなさないものにすることはできません。 – hotpaw2

答えて

3

を思ったんだけどで

PCMは生のコード化されたサンプルです。すべて0(サンプルに符号付きデータを使用する場合)は、実際には無音です。 (実際には、すべての値が無音ですが、DCオフセットはフィルタされていないと、アンプやスピーカーを損傷する可能性があります)。

損失の多いコーデックで圧縮すると、無音を追加するだけでは簡単ではないデジタル形式を入力してください。 ZIPファイルにデータを追加して、ファイルの最後にヌルバイトを追加することを考えてみましょう。 ZIPファイルに任意に挿入するだけでは簡単ではありません。

圧縮ファイルに無音を追加する場合は、適切なコーデックを使用して無音を追加する必要があります。その後、それをビットストリームに収める必要がありますが、これも簡単なことではありません。通常、ストリームはフレームで分割されますが、一部のフォーマットではそれらのフレームで分割することもできません。 MP3およびAACは、以前のフレームの未使用データを後でより複雑なフレームを符号化するために使用することができ、ファイルを非常に難しくするビットリザーバを使用します。

+0

PCMに圧縮されたデータ形式(MP3やAACなど)を変換するとどうなりますか?*次に*ゼロの形式で無音を追加します。これは簡単な操作でしょうか? – abbood

+0

それは正しいです。再圧縮したい場合は、オーディオの品質を失うことに注意してください。 – Brad

+0

再圧縮は必要ありません。b/c私は、圧縮解除して無音部分を挿入した直後に音楽を再生します。 私の唯一の心配は待ち時間です。私アプリケーションはリアルタイムです:電話はオーディオパケットを取得し、同期でそれらを再生する必要がある他の携帯電話に音楽をブロードキャストします..圧縮解除時間が一定以上であれば、それは最初に一定のバッファリング時間を追加します。それが変わるならば、私はトラブルに陥っている。 – abbood

関連する問題