0

Chromaprint として知られている音響指紋ライブラリの FFT 変換を並列化しようとしています。「元のオーディオを多くの重複するフレームに分割し、それらにフーリエ変換を適用する」ことで機能します。Chromaprint は 2/3 のオーバーラップで 4096 のフレーム サイズを使用します。たとえば、最初のフレームは要素 [0...4095] で構成され、2 番目のフレームは [1366.. 5462] のようなものになります。

cufftPlanMany を使用すると、[0... 4095]、[4096... 8192] などのバッチを実行するサイズ 4096 のバッチを指定できることがわかっています。バッチ化された変換をオーバーラップさせる方法はありますか?バッチ実行を使用しない別のアプローチを検討していますか?

4

1 に答える 1

1

Advanced Data Layoutを使用する場合、idistパラメーターを使用して、2 つの連続する変換入力セットの開始点の間に任意のオフセットを設定できる必要があります。

1D の場合、渡すパラメーターに基づいて、次のように入力が選択されます。

input[ b * idist + x * istride]

(ここbで、現在処理中のバッチ番号、つまり b = 0、1、2、... バッチ サイズ)

「idist および odist パラメーターは、入力データと出力データの 2 つの連続するバッチの最初の要素間の距離を示します。」

于 2014-12-31T12:03:07.580 に答える