DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 152|回复: 0
打印 上一主题 下一主题

基于音频DSP的硬件加速器应用研究

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 14:07:00 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

                      音频处理技术的进一步发展对音频DSP提出了更高的要求,集成的硬件加速器为处理器整体处理性能的提升提供了重要的推动力,且将通用的信号处理操作--FIR滤波、IIR滤波和FFT操作--从内核处理器中释放出来,使内核可以专注于其他任务,这种高性价比的方法能提高处理器两倍以上的计算吞吐量。
  处理器内部集成的硬件加速器可以实现三种广泛使用的信号处理操作:FIR(有限冲激响应)、IIR(无限冲激响应)和FFT(快速傅里叶变换)。硬件加速器减轻了核处理器的负担,能潜在的提升处理器的计算吞吐率超过两倍。本文以下一代音频系统为例,说明硬件加速器在这方面的应用。
  为什么使用硬件加速器
  FIR滤波器、IIR滤波器和FFT操作在数字信号处理器中应用十分普遍,且具有规则的结构,因此可以用硬件直接实现,特别是用硬件加速器。硬件加速器是专用的定点功能外设,用于实现重复计算复杂的单个任务。它们减轻了主处理器的负担,主处理可以主要做一些在结构上几乎没有什么规律的通用任务。
  由于系统设计者既拥有通用处理器的灵活性,又具有专用硬件的计算优势,因此,使用硬件加速器就提供了一种高性价比的方法,以增加处理器总的计算能力。
  因此,这类加速器在满足众多应用领域日益复杂的系统需求方面具有重要价值。其中一个应用是其通道数不断上升的音频系统。家庭影院系统通道数从5.1通道发展到6.1通道,现在已经到 7.1通道,而高端汽车功放一般使用12个或者更多的扬声器,使听者沉浸于美妙的音乐中。
  此外,音频源内容现在采用高清(HD)格式,其相关的解码器扩展了系统资源。HD算法还以更高的采样率处理数据。以前,数据的峰值采样率很少超过48 kHz,有了HD算法,现在采样率通常都是96kHz,有时,甚至达到了192kHz。
  为了更好的理解是如何增加计算需求的,以现代化的家庭影院接收系统为考虑,它集成了复杂的室内均衡算法,用以补偿驱动响应和扬声器摆放位置的不同所引起的偏差。算法首先利用麦克风分析室内环境,并测量实时传递函数。在多个位置进行测量再组合分析,然后为每个扬声器设计一个补偿滤波器。
  更精确的室内均衡算法则使用FIR滤波器来校正整个频率范围上的响应函数,滤波器长度与采样率直接成比例。低频控制越精确,需要滤波器长度越长。采样率为48kHz,通常滤波器长度为256点,为了达到同样的频率分辨率,在96kHz则需要滤波器长度为512点。采样率和滤波器长度都加倍则导致所需的总计算量增加了四倍。
  加速器结构
  本节将以ADI公司近期推出的SHARC ADSP-2146x处理器为例介绍加速器的结构,该处理器具有更高的时钟速率(450MHz),并扩展了片上存储器(5Mb)。
  此外,处理器还具有一系列硬件加速器,可以用以实现通用信号处理运算:FIR、IIR滤波器和FFT。而这些运算是通信系统、医疗设备、消费产品和工业测量与控制应用中的基本运算。这些加速器是SHARC ADSP-2136x系列处理器片内采样率转换器的有益补充,而采样率转换器也可以看作硬件加速器。
  SHARC ADSP-2146x处理器的三个加速器设计相同, FIR加速器能很好的说明硬件加速器的结构。
  FIR加速器有以下功能模块。
  ● 系列控制寄存器--配置加速器的操作。
  ● DMA控制器--在主存储器与加速器的本地存储器之间传输数据,也可以用于配置控制寄存器。
  ● 两个本地存储器块--保存系数和状态变量(或者延迟存储器),并降低主存储器的带宽。
  ● 计算单元--包括适合加速器的算术操作,FIR的计算单元有4个并行的MAC。
  使用链式DMA,加速器的操作可以自动完成,FIR加速器的典型操作有以下几步。
  (1)将本通道的系数数据由内部存储器载入本地加速器系数存储区。
  (2)将本通道的状态变量从内部存储器载入本地加速器系数存储区,这包括第一个输入样本。
  (3)利用四个MAC单元计算输出样本。
  (4)保存结果。
  (5)如果还有需要处理的样本,则读取下一个输入样本,并写入状态变量存储器。
  (6)重复步骤(3)~(5),直到通道中的所有输出样本计算完。
  (7)重复步骤(1)~(6),计算所有输入通道。
  加速器的实际应用
  设计的应用软件必须尽可能从硬件加速器获取最多的好处,应牢记加速器必须配置成与主CPU并行操作,如果主CPU处于空闲状态等待加速器操作完成,这不会带来任何好处。
  加速器是实时环境中运行的大信号链的典型部分,与加速器接口需要双缓存的输入和输出数据,且系统设计人员也应该牢记加速器会带来一部分延时。
  设想一个带有7.1通道的家庭影院系统,采样率96kHz,数据块大小为32个采样点,假定室内均衡应用8个FIR滤波器,每个滤波器长度为512点,如果采用核CPU执行滤波操作,则至少需要每秒96kHz %26#215;8%26#215;512=393MMAC个操作,或者占工作在450MHz的SHARC处理器运算量的44%。该FIR处理占了整个计算量的很大一部分,但在将来,这些都可以转由加速器来处理。FIR滤波器的输入和输出都采用双缓冲,这样就可以让加速器与音频信号处理链的最后环节并行处理。当然,双缓冲器会引入32个采样点的处理延迟,对于96kHz时延迟为333ms,是可以接受的。
  而利用前面的计算公式,加速器需要50 056个外设时钟周期才能完成操作,如果外设时钟是225MHz,则需要223ms,这小于333ms的可用块处理时间。
            
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-11-22 20:14 , 耗时 0.085416 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表