0

HTML5 オーディオコンテキスト (例: buffer.getChannelData(0)...) の PCM 出力を、「FLAC__stream_encoder_process_interleaved」で必要な PCM データに変換しようとしています。

奇妙なことに、FLAC はデータを int32 バッファ ( const FLAC__int32 buffer[]) として必要としますが、audiocontext の出力は正規化された float32 配列です。オーディオ コンテキストの正規化されたバッファを FLAC が必要とする形式に変換する方法がわかりません。

リンク

FLAC が一般的な float32 配列ではなく int32 のバッファを必要とする理由を誰か説明できますか?

4

1 に答える 1

0

良い。しばらく前に C# FLAC デコーダーを作成しましたが、ドキュメントがすべてをカバーしていないため、libFlac のコードのいくつかの部分を読む必要がありました。Int32 は内部で頻繁に使用されます。パフォーマンスの向上以外の正当な理由はわかりません。int32 は float を使用するよりも高速です。しかし、ieeefloat サンプルがある場合は、単純に [(2^BitsPerSample) / 2] を掛けて整数を取得できます。出力が float32 である理由。知らない。全体として、ライブラリのコードは非常に奇妙で、多くの場合、開発者の概念を理解するのは非常に困難です。

于 2013-12-02T17:41:38.713 に答える