AES音频数据流之间的异步采样率转换
扫描二维码
随时随地手机看文章
Xilinx FPGA 通过不断地将集成度低、复杂且昂贵的ASSP芯片功能组合在一起,来满足客户对于集成度的需求。利用像 DSP48E 和 block RAM这样用来 实现复杂的滤波功能的芯片特性。ASRC作为一种ASSP芯片实现的功能,可以被集成到 Xilinx FPGA 中。
同样,免费提供的Xilinx 应用指南和参考设计,同样可以满足客户对集成复杂算法的需求。ASRC 参考设计正确地处理了同步采样率转换和大多数音/视频产品所需要的更复杂的ASRC。
许多ASSP芯片和FPGA IP供应商提供较简单的“仅使用同步的”方法,每条音频通道的资源利用率较小;但是,当应用于异步应用时,这些方法会产生下面这些问题:
延迟的积累导致输入到输出延迟的变化
音频中会产生噪声,例如漏采样或重复采样两种情况都表现出不希望出现的失真。
理解采样率转换
在深入了解数字采样率转换理论之前,先来看一看音/视频工程师正在试图解决的基本问题。在少量的应用中,可以使用速率固定的同步转换,例如使用同样的时钟源,或由输入时钟产生的输出时钟来将 48kHz 的输入转换为 44.1kHz的输出。但是,更可能出现的情况是异步转换,输入和输出时钟是完全独立的,例如在两块电路板之间的音频通信。不同的时钟振荡器可以有相同的标称频率,但存在着百万分之几的差别。 Xilinx ASRC 参考设计对于具有独立输入和输出时钟的异步应用,提供了两项重要的而且困难的设计功能:
自动准确地监视输入到输出的采样率之比和采样率的变化
在线动态调节滤波器函数(滤波器系数),从而实现性能最大化
使用FPGA来支持数字音频ASRC,意味着能够极大地降低系统中每个SDI 接口的成本,并且,在很多系统中,存在许多通道。
Xilinx ASRC IP具有很高的性能,其最差情况下的输入到输出信噪比为?125dB。它还能支持多个音频输入频率到多个音频输出频率的转换。采样率转换算法能够在线动态进行调节,以保持最高性能,这样,设计人员就无需特别关注输入和输出时钟。可以使用运行在如图1所示的 Xilinx ML571 串行数字视频演示板上的 IP 来验证所有这些功能。而且,这些广泛的功能和高性能的 ASRC IP 都是免费的。
图1 ML571板和帧同步演示板使用ASRC来匹配输出数字音频采样率和输出数字视频采样率[!--empirenews.page--]
采样率转换理论
图2显示了通常情况下上变频或下变频的概念。变频比可以在带有小数的有理数范围内连续变化。
图2 用于进行采样率转换的经典数据概念
从框图可以看出,先进行上变频(产生更多的样本和时间位置以供选择),再进行下变频(选择输出数据流中与所希望的样本位置最符合的样本)。数据路径中的抗干扰/抗锯齿滤波器确保频谱范围低于输入和输出采样频率的奈奎斯特速率的一半。 图3和图4显示,对于每个输出采样位置或输出相位,都需要一组不同的 子滤波系数,因为相对于输出相位而言,输入处于不同位置上。具有一组系数与输入采样位置对应的子滤波器,由内插的原型滤波器系数实现。当子滤波器与相应的输入样本进行卷积后,将产生所需的输出样本。这一过程会不断重复,为每个输出样本插入新的子滤波器系数。
图3 与原始样本位置相关的样本位置显示了所使用的内插样本
图4 位于输出样本位置中心的原型滤波器[!--empirenews.page--]
在ML571上实现ASRC的实例
被称为视频帧同步的简单功能,很 好地展示了 ASRC的主要用途。视频信号能以某一速率被存储到帧缓存器中,并以另一个稍微不同的速率被取出。如果视频设备的两个部分之间没有被“同步锁相”,并且工作在不同的像素率下,这一过程将十分有用。
结果是偶尔需要添加或丢弃一帧视频数据。人眼可能不会注意到在电视屏幕上添加或丢弃的视频帧,但人耳却能很好地发现在音频上类似的差异。解决方案是在开始的视频数据流中先去除音频数据,随后再将其插入到具有微小数据率变化的数据流中,并使输出 音频的采样率与新的输出视频的采样率相匹配。Xilinx ASRC 参考设计十分适合完成这样的任务。
例如,让我们将两块由不同的时钟振荡器导致的SDI视频采样率有微小差别的板卡连接在一起。接收板将嵌入的AES数字音频信号从视频流中分离出来,并将其送至 ASRC。需要使用帧缓存同步逻辑,通过添加或丢弃视频帧,来处理两块板卡间时钟频率的差异。ASRC 调节解嵌的音频,来与输出视频流的时钟速率匹配,使其能被重新嵌入到输出 SDI 视频流中。(需要使用帧缓存同步逻辑,通过添加或丢弃视频帧,来处理两块板卡间时钟频率的差异。ASRC 调节去嵌入音频,来与输出视频流的时钟速率匹配,使其能被重新嵌入到输出SDI 视频流中。)
框图和性能优势
图5中的简单框图显示了 ASRC 中所必须的两个关键设计部分。第一个部分用来确定输入采样率和输出采样率之间的变化,用“比例控制”标出。第二个部分“二次采样器”是一组原型滤波器,按照比例控制所提供的统计数据进行变化。
图5 XilinxASRC参考设计的顶层框图
ASRC 参考设计将立体声音频从一个采样频率转换到另一个采样频率。输入和输出频率可以互为任意的比例,或为基于不同时钟的同一个频率。输出是输入的带宽限制版本,输入被重新采样,来与输出采样时序匹配。参考设计有如下这些特点:
全异步工作
可扩展至多条通道
最差情况下 -125dB 的THD+N,典型情况下 -130dB的 THD+N
24位音频字宽度的输入和输出,31位的内部数学精度和远离0的进位
自动监视输入到输出的采样率之比,不断对滤波器进行调整
连续的有理数/小数比例,上变频为8:1
连续的有理数/小数比例,下变频为1:7.5
具有自适应滤波功能的连续输入到输出采样率监视
输 入/输出采样率在8kHx-192kHz连续范围内
更低的确定性延迟
参考设计有一个内插系数的FIR滤波器,它由 Virtex TM -5 中作为主数学单元的DSP48E和用作输入采样缓存和原型存储的block RAM来实现。
结论
为不同数量数字音频通道维持不同的输入到输出音频采样率,并支持新的 AVB功能的需求是一个巨大的挑战。从变化的协议、存储器管理、不同的负载和不同的系统接口等方面,很容易看到这些设计需要 ASSP 和 ASIC 所无法提供的高性能和低成本的灵活性。这些挑战为 Virtex-5 器件创造了机会,因为这些器件能够让设备厂商针对不断发展的AVB设备市场创建相应的解决方案。