并行/多处理器音频处理的资源

时间:2012-07-20 21:31:49

标签: multithreading audio multiprocessing

我最近花了很长时间学习实时音频处理的细节,我发现的大多数库/工具都是c / c ++代码或脚本/图形语言的形式,编译c /引擎盖下的c ++代码。

使用基于回调的API,除了GUI或应用程序中的其他进程之外,运行音频进程非常简单。但是,我无法找到的是如何将多个进程/线程用于应用程序的音频处理部分。

您能否提供链接,书名,以及可能相关的内容?

1 个答案:

答案 0 :(得分:2)

听起来你想要为音频做多线程DSP。这并没有真正做到这一点,因为高性能音频需要低延迟和实时调度。要做多线程DSP,您需要在线程之间传递数据,这通常涉及互斥锁。使用互斥锁时,很难让实时编程工作。

当然还有替代互斥体,并且存在大量非阻塞数据结构,但是,最终,并行化音频DSP算法比其他形式的并行性能提供更少的性能提升。

相反,如果您对将音频数据输入和输出回调感兴趣,则需要了解一些非阻塞数据结构。您可能想查看PortAudio的源代码。特别是PortAudio中的RingBuffer是一个可移植的非阻塞数据传递结构,它对于许多应用程序在线程之间获取数据而不会阻塞非常有用。