微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 消费类电子 > 如何在SoC设计中加入低开销、低功耗的音频处理功能

如何在SoC设计中加入低开销、低功耗的音频处理功能

时间:03-11 来源:21ic 点击:

图1:在使用专用编解码硬件的方案中,每种编解码格式都需增加硬件模块来支持。

方案3,在通用DSP处理器上通过软件来实现音频编解码,系统中同时包括一颗用来作控制的主处理器(这里的通用DSP处理器是指没有专门针对音频处理做过优化的DSP处理器)。采用DSP处理器的方案有很多优点。首先,DSP处理器中都有硬件乘法器,可以极大提高音频编解码程序的执行效率。其次,因为采用软件方式实现,只增加少量的存储器开销就可以支持多格式音频编解码。实现新的编解码算法也仅仅需要编写新的软件,不必重新流片,从而延长产品的生命周期。

采用DSP的方案也有缺点。大多数DSP的C编译器效率都比较低,所以一般不用DSP来做控制。系统的控制需要通用处理器来完成。而且,16或32位的DSP处理器对音频处理来说并不是最理想的。虽然当前大多数编解码算法采用16位采样,但在运算的中间过程中为了避免舍入错误,需要留有一定余量。所以16位DSP处理器在实现复杂音频算法时会带来问题。使用双精度整数计算可以避免问题,但效率又不够高导致需要更高的处理器主频。反过来,32位DSP处理器又不能被充分利用。实际上,对于音频算法而言,24位DSP处理器是最适合的。

音频专用RISC处理器

基于上述考虑,我们提出了第4种方案,即采用音频专用处理器。基于通用处理器进行音频处理的扩展,使处理器在高效执行音频编解码程序的同时,保持C编译器的效率。图2所示就是一个采用音频专用处理器进行编解码的系统。

图2:采用音频专用处理器进行编解码的系统。

这种设计方案有很多优点。首先,音频专用扩展使处理器更加高效的执行音频算法,在较低的主频下提供算法所需的性能,从而显著降低系统功耗。与基于DSP的方案一样,此方案便于实现多格式的音频编解码,也可以通过升级软件来支持新的编解码算法。它的不足之处在于大家对于音频专用处理器的概念还很陌生,下面我们就来介绍一下音频专用处理器。

Tensilica Hi-Fi2音频处理引擎是基于32位Tensilica Xtensa RISC处理器经过配置和扩展得到的,它可以非常高效的完成音频处理任务。顾名思义,Hi-Fi2音频处理引擎是Tensilica第二代音频处理器。Hi-Fi2音频处理引擎中最关键的扩展就是增加了两个24位的硬件乘法器,它们可以大大提高音频计算的速度。

然而,乘法器本身并不会减少执行音频算法需要的周期数,周期数减少是因为Hi-Fi2音频处理引擎每个周期可以执行1到2条指令。48位或56位宽的寄存器可以存放2个24位的采样值。利用这些寄存器文件可以高效的处理立体声音频数据。Tensilica总共在Xtensa RISC处理器上添加了300条音频专用指令,创建了一个灵活高效的音频算法处理引擎。

一套优秀的音频SOC解决方案不仅限于高性能的硬件,还需要有编解码软件,而由于时间的原因,你可能并不打算自己编写程序。虽然从互联网上可以找到一些音频处理程序,但是这些程序并没有经过优化,执行起来效率不高。其次,像Dolby音频编解码这样需要授权的程序是很难在互联网上找到的。目前流行的音频编解码算法都已经移植到了Tensilica的Hi-Fi2音频处理引擎上,而且支持的格式还在不断增加,如图3所示,所有这些编解码程序都是用C语言编写的。处理器的RISC基本指令和音频扩展指令都允许程序员继续用C语言来编程,在保证性能的前提下,提高了软件的可维护性。

图3:目前流行的音频编解码算法都已经移植到了Tensilica的Hi-Fi2音频处理引擎上。

Hi-Fi2音频处理引擎是采用Tensilica可配置技术,针对Xtensa LX2处理器的一套扩展指令。Tensilica利用这些扩展指令,配置出了Diamond 330Hi-Fi音频处理器,因此在330Hi-Fi处理器上可以运行所有基于Hi-Fi2音频处理引擎的编解码程序。Tensilica的Hi-Fi音频处理引擎应用于多项产品,在不同的工艺下得到了验证,出货量已经达到千万。当前的最主要的应用还在移动电话领域,今后产品的应用将会扩展到视频产品,消费类广播,超便携PC等领域。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top