快捷搜索:

使用VisualAudio实时架构开发音频系统

VisualAudio设计和开发环境是用于设计和开发音频系统的新软件工具。其实时架构特别适合音频产品开发的挑战。本文简要介绍VisualAudio,然后介绍其框架,音频模块和音频产品开发应用。

音频产品开发挑战

今天,音频系统开发人员面临着越来越需要设计复杂的音频系统 - 特别是家庭音频/视频接收器(AVR)和汽车信息娱乐系统 - 既快速又经济。为什么?

正常使用的离散音频通道数量从2增加到4到5.1,最近到 7.1 。

不同的,有时甚至是竞争的多声道音频格式的数量一直在迅速增加 - 包括杜比® Pro Logic ®,杜比数字,DTS ® 5.1,Dolby Digital Surround EX™和DTS-ES ®。

产品必须与数字网络连接,例如 Media

消费者拥有定向系统传输(MOST ®)总线,需要网络堆栈,内容加密和解密以及采样率转换。在顶级和主流产品中,我们期待复杂的后期处理功能,例如空间化,自动均衡和低音管理。

为了应对这些因素,开发人员正在转向数字信号处理器(DSP),因为他们的可编程性允许系统针对特定市场领域和应用进行定制。 ADI公司的SHARC ®处理器系列特别适合这项任务,因为它提供了大内部存储器,浮点精度和高性能计算单元等功能。最近发布的第三代 SHARC处理器通过集成专门为促进音频产品设计而引入的其他功能,更进了一步。这些功能包括硬件采样率转换器,加密和解密,复杂的数字音频接口以及包含多个音频解码器的片上ROM。

DSP用户面临的历史挑战是开发能够最佳利用处理器时钟周期和有效利用内存的软件。在汇编语言中手动编码音频信号处理算法的长期使用和费力的方法变得越来越不可行。当大部分所需工作用于创建标准“清单”和“我也是”功能而不是专注于区分具有增值功能的产品时,尤其如此。需要一种更好的方法来开发音频产品软件。

为了满足这一需求,ADI开发了一个图形环境-VisualAudio,以帮助设计和开发使用SHARC处理器系列的音频系统。 VisualAudio为音频系统开发人员提供了大部分软件构建模块,以及图1所示的直观图形界面,用于设计,开发,调整和测试音频系统。

使用VisualAudio实时架构开发音频系统

VisualAudio包括基于PC的图形用户界面(GUI,图形工具),DSP 内核(框架),以及可扩展的音频算法库(音频模块)。结合ADI的VisualDSP ++ ™ 集成开发和调试环境(IDDE),VisualAudio生成产品就绪代码,该代码针对速度,每秒数百万条指令(MIPS)和内存使用情况。通过简化开发复杂数字信号处理软件的过程,VisualAudio降低了开发成本,风险和时间。因此,音频系统开发人员能够通过将其音频产品与竞争对手区分开来,专注于增加价值。

VisualAudio的核心是一个处理音频I / O和后处理的实时软件架构。为了可行,生成的DSP代码必须在MIPS和内存方面高效,并且足够灵活以处理各种音频产品类别。 VisualAudio实时架构如下所述,首先是框架,然后是音频处理模块。

框架

框架是部分处理系统初始化,音频I / O,比特流检测 1 ,实例化和调用音频解码器以及与主机通信的DSP代码。 VisualAudio为其用户提供了AVR和汽车音响系统框架的示例。通过编写特定于平台的驱动程序,VisualAudio用户可以自定义框架的许多方面,以满足特定的产品需求。在某些情况下,如果需要进行内部更改以获得最佳性能,ADI还将为VisualAudio用户提供框架源代码。

音频产品具有管理框架设计的特定要求。每个音频产品有两个主要功能:(1)实时音频处理,以及(2)控制此处理。这两个功能的时间尺度差别很大。实时处理(所有内部操作都已完成)必须以采样率进行,否则输出音频中会出现不可接受的弹出和咔嗒声。控制功能可以以更慢的速率(10 Hz至100 Hz)发生,并且仍然可以接受。因此,大部分 MIPS使用在实时处理中发生,而软件复杂性的大部分在控制功能内。为了简化产品设计和开发,VisualAudio将实时和控制功能分离为单独的线程。通过手动优化的实时音频处理模块实现效率,同时通过允许开发人员在C中编写并在单独的线程中运行来管理控制代码的复杂性。

传统上,采用了两种不同的音频处理方法。在流处理中,音频样本在到达时一次处理一个,而在块处理中,缓冲几个音频样本,然后作为一组进行处理。每种方法都有明显的优点和缺点。流处理在数据存储器方面是有效的,因为不需要缓冲音频数据。流处理的主要限制是不能容忍多个函数调用的开销。这迫使音频处理代码通常以汇编语言在线写入。这样的代码很难模块化和维护。

您可能还会对下面的文章感兴趣: