我正在处理一个定制处理器,它在 48kHz 采样率下具有一个样本(20.8 微秒)的处理延迟。我想知道的是......一个样本的这种延迟是否会对音频应用程序产生任何影响......如果是的话,我想重现这个并查看实时场景。
音频应用中单个样本延迟的影响
一个样本延迟几乎是不可避免的,因此这是相当正常的。请注意,您需要查看包括 DA 和 AD 转换在内的总系统级延迟。许多音频应用程序使用 Sigma Delta 转换器,其延迟比一个样本高得多,因此您的处理延迟不会产生太大影响。
延迟的影响很大程度上取决于特定的应用程序。一个样本非常低,唯一会受此影响的应用是任何具有反馈环路(主动噪声消除、主动偏移控制)的应用以及任何具有并行模拟路径的应用(例如模拟混音器中的效果环路)
UI响应、音频/视频同步、播放/唱歌/说话、多扬声器同步等都不是问题。
对延迟最敏感的音频应用是主动降噪,许多专用 ANC 处理器以显着更高的采样率运行,只是为了减少延迟并增加反馈回路的带宽。
在 DSP 是反馈回路的一部分的应用中,通常需要低延迟。反馈回路中的过度延迟会限制在没有振荡的情况下可以实现的最大反馈增益。一个典型的例子是闭环声学噪声消除。
在信号处理中,延迟是不可避免的——您收到一个样本,需要一些时间来执行计算并返回修改后的值。因为可预测和同步通常很重要,所以完整的采样延迟通常是最小的。但请注意,当使用运行操作系统并处理其他任务的通用计算机的处理器时,我们通常会有更大的延迟。这是因为信号处理代码被赋予了一个完整的缓冲区(可能是 256 个样本或更多,通常不少于 64 个)以进行操作。这是因为在调用处理例程时存在一些开销,而这可以通过在一次调用中处理多个样本来减轻。
因此,一个样本延迟是通用音频系统的最小实际延迟,通常需要专用的处理硬件(可能是 DSP 芯片)。
在纯播放系统中,延迟无关紧要。按下智能手机上歌曲的播放按钮。开始玩需要多长时间?只要不是特别长的时间,你可能不知道。音乐是在 1 毫秒暂停还是 30 毫秒后开始播放并不重要。
但是,所有音频流必须及时保持它们的相对位置。对于立体声,您不能让左声道延迟 1 毫秒,而右声道延迟 30 毫秒。如果处理产生这种情况,您需要通过将左通道延迟 29 毫秒来进行补偿,以使通道恢复到原始的相对对齐状态。
多轨录音应用程序通常允许许多处理通道。您可能有一个人声轨道和三个背景人声轨道、一个立体声鼓轨道、吉他和贝斯轨道。每个可能有不同的效果处理,其中一些可能需要额外的延迟(可能需要查看过去 200 毫秒的音量调节过程才能做出增益决定)。这些应用程序通常具有“延迟补偿”功能——每个进程都报告其延迟,并且应用程序将每个通道延迟所需的样本数量,以使它们与最大延迟的通道对齐。
因此,对于音频,您通常需要最小延迟——尤其是对于有人正在录制到计算机,但需要收听来自计算机的信号的情况,可能是因为他们正在使用效果处理进行回听;如果延迟太大,很难在收听结果的同时及时播放。然后在缓冲区大小之间进行权衡,因为更大的缓冲区具有更好的处理效率,但延迟更差。但是您通常无法权衡的一个因素是,任何并行通道或轨道必须相互同步,如果它们完全相关(它们通常是)。
假设这是一个模拟音频输入/模拟音频输出应用程序,除了其他出色的响应之外,如果输入与输出相加,您会看到梳状滤波。在所有条件相同的情况下,在如此低的延迟下似乎不切实际,延迟 20us 的信号将无法察觉。然而,输入和输出的总和,即使过程完全干燥,也会在采样率的一半处创建一个零滤波器。在 48kHz 时,这会导致音频频带出现一些高端衰减。
编辑:总延迟为 1 毫秒,我能想到的 0.02 毫秒延迟不会产生明显的影响。这只是总延迟的 2%。它足够大,您可以使用示波器对其进行测量,但不足以对任何在线音频处理(如滤波或 DRC)产生可感知的影响。