如何在 PC 上处理 PCM 音频数据?

问题描述

我知道,例如在 DSP 中,样本正在被一个一个地处理。在 PC afaik 上,数据以样本块的形式进行处理。那么你是逐块引入并丢弃旧的还是在FIFO队列或循环缓冲区中处理?它取决于硬件吗?

解决方法

我看到过逐帧或批量编辑的音频数据。我猜当您说“样本”时,您指的是构成信号的各个 PCM 音频值。您选择的方法将取决于权衡,例如,如果在每帧基础上组织操作比最大化吞吐量具有更高的优先级。

我见过两种将音频路由到系统进行播放的方式,一种是将一系列数组复制到预定义位置(例如,使用 OpenAL),或者通过将数组写入一行使用阻塞队列(例如,Java 的 SourceDataLine.write() 方法)。