音频解码中的DSP应用
简介
从二十世纪90年代以来,数字信号处理技术便逐步在消费音频领域占据统治地位。起先数字信号处理器主要用于操作数字化的模拟音频信号,也就是PCM(脉冲编码调制)数据以及PCM处理。在这个时期,拥有灵活软件设计特性的DSP通常会被视为传统模拟电路的替代品,但是高昂的价格使DSP只能应用于专业和高端的产品之中。随着DSP的价格大幅降低,现在,DSP在音频系统中已经无处不在了。
一个好的DSP设计方案,即使在高端的信号链中都不会造成性能瓶颈。事实上,本文就揭示出一个24位DSP通过恰当的设计实现,性能可以和全32位DSP媲美。当信号源在压缩编码时,利用心理声学模型去除信号中的冗余数据。这是一个完全不同的概念,并且使传统检测音频回放质量的SNR方法失效。当谈到DSP的实际选择问题,需要涉及到很多因素,一些主要的包括精度(24位/32位)、主频、内存容量等等。种种因素之间相互制约同时决定了系统实现的成本。因此本文也综合讨论了这些因素以及如何达成系统设计的平衡点。
稳态性能
传统测试线性系统性能的方法是测量信噪比(SNR)。对于多比特数字设备像ADC、DAC和DSP传统的测试是使用纯正弦波信号源,并测量输出结果中该频率以外的能量。利用最大定标信号,我们可以测试最好情况的SNR,因为中间处理的有限寄存器长度对信号的影响最小。
在另一个极端,为了揭示设备的精度极限,经常用一个低幅值的正弦波(通常采用-60dBFS)采用类似的测量方法。通过信号电平调整,噪声指数会被转换为瞬时动态范围(IDR),例如增加60dB。下面将要谈到的实验数据只是简单的针对SNR本身,它们与绝对声压级和人类听阈之间的比较相关。
表1是对三种使用高精度压缩正弦波的音频解码实现方案的比较。正弦波为-60dBFS、200Hz、24位精度,作为最高精度编码。测试的主要目标是低信号电平下的性能,也就是实现的动态范围。
从表1我们会得到一些有趣的结果。在AC3测试中,C参考解码器和Fujitsu都已经达到编码精度的限度。数值略低的CS494xx可以说也没有对系统性能造成真正的影响,因为它完全超越系统性能瓶颈以及人类听觉限制。然而在DTS方面的测试中,CS494xx反而有所超越,性能高出Fujitsu DSP,实际上在AC3方面CS494xx同样有所改进。
有一点非常重要那就是上面提到的数据都是在dBFS下的数字测量,也就是满刻度下的分贝。从一个可闻度的立场观点来看,这需要与dBSPL关联,也就是声压强度的分贝。
人类的听觉是有极限的,这一点很好理解。实际上通常在声压强度的设计上会把0dB设定为最低可听范围水平。声音频谱中的大部分(300Hz以下和10KHz以上)仅仅在10dB的声压强度之上是可以听到的。可是,对纯正弦波的最高敏感度在3~4KHz,而且这样的声音在-3~-4 dBSPL就可以被听力极好的人感知。从生理学上看,要达到听觉阈值声音的能量需要大到能在内耳耳鼓产生一个驻波,从而使那儿的细小毛发产生波动。没有这种波动,连接听觉皮层的神经元就不能被触发,因而声音不能被感知。
从上面的讨论我们得到的关于设计的启发,就是当噪音的水平低于人们的听觉阈值时,就不必一味追求高精度的DSP实现。
瞬时性能
多数的音频压缩方案在处理瞬时现象时,通过转化为更小的块字节,使回音失真最小。需要重点指出的是,这个由于算法产生的现象将在任何的解码处理中出现。除了这以外,在DSP中没有什么其它的因素可能引起瞬时失真,因为采用FIR滤波,而它实际上几乎没有记忆效应。
通常实验的方法是再生一个编码脉冲并且测量噪音的能量,即测量时域信噪比指数。如果给定足够的比特率,在解码器数字输出边缘产生的前回音和响声是可以忽略的,因为带宽限制不是很重要。由此可以得出的重要结论就是DSP对瞬时性能的影响非常小,但信号链中的其它设备或者不良的系统设计都会产生严重的失真。
心理声学压缩设计的性能与表现
在上面谈到关于DSP解码与系统整体性能表现时,我们利用了传统的SNR和瞬时性能的方法。当考虑到心理声学压缩方案的时候,依然采用上面的方法,便会产生误导。当然,我们可以合成24位(甚至更高精度)正弦波并对它进行编码,用这种非常态的测试流可以获得不同精度解码理论上的区别。
心理声学压缩设计是针对给定信号的有损压缩,进而了解在什么程度下不同的频域/时域信号是可听见或听不见,以便相应的调整编码过程,使引入的损失(噪音)降到听阈值之下。基本的现象为信号中强音部分会掩蔽临近弱音部分。理想的情况下,这样的数据减少不会导致感觉到音频质量的损失,这样就引出“透明”音频编码或压缩的概念。
这与简单的SNR测量有根本的不同,同时更为复杂,因为它需要仅仅精确再现特殊信号中相关的可听部分。换句话说,虽然SNR是不错的确定编/解码质量的准则,但它却不合适用这个标准去宣称能够产生-140dBTHD+N的DSP就一定比-130dBTHD+N的好。因为心理声学压缩设计是建立在人类听觉阈值曲线的基础之上,上面的结论也就变得非常明显。在这个阈值之下,听觉信号是听不见的。
实际的编/解码输出质量的决定因素有如下几点:1.使用的算法; 2. 压缩的比特率; 3. 分析输入信号中用到的心理声学模型;4. 瞬时分析架构与转换滤波器组; 5.位分配策略。
在实现编码/解码过程中,上述的因素均独立于数学精度,实际上即使是使用无穷精度实现,上面的因素同样对音频质量起决定影响。为所有主要压缩设计的双精度C参考解码器同样受到132~135dB信噪比的限制(甚至使用24位精度正弦波测试)就可以充分证明上面的观点。
事实上,对于失真压缩来说,编码一个纯正弦波是一个非常简单的事,所有的位都会被分配到一个需要的频率上去。在这种退化的情况下,即使最简单的压缩算法同样会表现出 {MOD},并且可以证明高信噪比或THD+N在理论上存在的可能性。
基于有损压缩系统,我们可以得出结论:传统的SNR、THD+N、瞬态误差、相位误差等测量方法,在比较不同实现方案的性能时都不再是最终的度量标准。它们只能在鉴定和校验系统性能时作为指导。它们不能用来对与心理声学验证的约120dB性能的阈值有细微的差别的系统进行评级。
实际上,在影响编码/解码音频质量的各项中,算法的选择是最关键的决定因素。例如MPEG-2 AAC在1998年就被日本采用作为数字电视标准。日本是经过比较了Dolby AC3、MPEG-2 Layers 1/2/3、DTS和其它压缩设计之后才作出的决定。
值得指出的是C参考方案中,AAC用16位的封装格式来存储PCM数据,这个优化是相当合理的,因为改进的1024点滤波器组能给出更好的频率解析,但是需要较大的储存空间来存储窗函数,并提供PCM缓冲器。但这并不能被看作是AAC的缺点,特别因为它在音频压缩透明度测试中,得分最高,所以它被日本DTV选定作为标准。
上面的讨论可以证明,在心理声学压缩中,上述的SNR测量法分析相对有个关联的限制。尽管我们已经得出结论,20位是一个不错的DSP输出精度,可以保证不会造成性能瓶颈,但从AAC压缩的质量可看出,在数字领域中的现存的编码器或其他人工系统中甚至16位的精度已经足够。
DSP 增值建议
从市场的观点来讲,32位DSP的概念还是非常成功的,因为从数字直观的就能感觉到进步。然而,实际上,从整体性能和更多特性方面着眼,完全可以对这一理论提出强烈的质疑。这种误解就相当于对PC机只比较CPU的主频,而不考虑系统的整体性能一样。
32位的DSP并不能真正的帮助提高最终系统性能,它需要更大的内存(比24位多出大约33%)。同时,因为32x32MAC比24x24MAC慢,而MAC又是芯片中速度的重要途径,一个32位DSP核将始终比相应的24位核的解码器慢。从信噪比的性能观点出发,已经证明,利用精确的优化处理,24位DSP可以得到和纯32位DSP相同(甚至可以超过)的性能。
需要注意的是,上面讨论的目标仅仅是基本的解码器,32位DSP在后期处理上存在某些优势。因此,在CS494xx的设计中前端使用高度优化的24位DSP解码引擎,再配合一个32位DSP位后期处理器。这样一个SoC设计是一个优化的平衡设计,结合了两者的优势,并没有负面影响。
结语
概括的讲,影响AV接收系统里的解码器质量的因素并不全是DSP精度的问题。通过较强的DSP算法技巧和优化,能使一个24位精度的性能超越所有C参考代码所提供算法的32位实现。在信号链中的其他设备也是整个系统质量的决定因素。
在这篇文章中引入了一个新的主题,就是在现实世界中利用心理声学来压缩编码时,SNR测试方法在比较系统性能上并不是一个真正好的标准。而ITU PEAQ方法则更适合测量可感知音频的质量。
一周热门 更多>