【发布时间】:2015-12-31 05:12:21
【问题描述】:
我正在研究 GPU 合成音频的可行性,其中每个线程渲染一个样本。这对可以使用哪些算法提出了一些有趣的限制——任何引用先前样本集的算法都不能以这种方式实现。
过滤是其中一种算法。带通、低通或高通——所有这些都需要查看生成的最后几个样本以计算结果。无法执行此操作,因为这些样本尚未生成。
这使得合成带限波形变得困难。一种方法是使用傅立叶级数对部分进行加法合成。然而,这在 O(n) 时间运行,并且在 GPU 上特别慢,以至于失去了并行性的增益。如果有一个算法在 O(1) 时间运行,这将消除分支,并且在处理可听范围时速度提高 1000 倍。
我正在专门寻找用于锯齿的 DSF 之类的东西。我一直在尝试手动简化傅立叶级数,但这真的非常非常难。主要是因为它涉及调和数,也就是 Riemann-Zeta 函数的唯一奇点。
是否可以实现恒定时间算法?如果不是,能证明不是吗?
【问题讨论】:
-
如果您在此处没有得到好的答案,请考虑将此问题移至 dsp.stackexchange.com。
标签: algorithm parallel-processing signal-processing gpgpu audio-processing