logo资料库

dsp通用音频算法研究.pdf

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
http://www.paper.edu.cn DSP 通用音频算法研究 张冬卯,王海婴 北京邮电大学信通学院,北京 (100876) E-mail: deanraccoon@126.com 摘 要: DSP,也称数字信号处理器,是一种具有特殊结构的微处理器。随着目前 DSP 的应 用越来越广泛,应用也越来越复杂。一些 DSP 开发商就给出了一些通用的算例.帮助开发者降 低入门难度,加快开发速度. 本文的主要内容是分析德州仪器公司(Ti)的通用音频算例,德州 仪器公司是 DSP 行业的领导者,分析德州仪器公司的程序有一定的通用性,本文分析通用音 频算法程序结构,分析 DSP/BIOS 原理,如何使用驱动等等,给出通用音频算法一般使用方 法.在掌握了这些知识之后,就可以很容易的把自己的音频算法用在 DSP 上,并且有助于学习 其他通用算法。 关键词: DSP;音频算法;DSP/BIOS 1. 引言 DSP 芯片,也称数字信号处理器,是一种具有特殊结构的微处理器。DSP 芯片的内部采用 程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的 DSP 指令,可以用来快速地实现各种数字信号处理算法。根据数字信号处理的要求,DSP 芯片一般具有如下的一些主要特点: (1) 在一个指令周期内可完成一次乘法和一次加法。 (2) 程序和数据空间分开,可以同时访问指令和数据。 (3) 片内具有快速 RAM,通常可通过独立的数据总线在两块中同时访问。 (4) 具有低开销或无开销循环及跳转的硬件支持。 (5) 快速的中断处理和硬件 I/O 支持。 (6) 具有在单周期内操作的多个硬件地址产生器。 (7) 可以并行执行多个操作。 目前主流的 DSP 芯片如 TMS320C6000 系列[1],它是美国 Ti 公司推出的 DSP 芯片。这种芯 片是定点和浮点兼容的 DSP 系列,其中定点系列是 TMS320C6200 和 TMS320C64xx,浮点系列是 TMS320C67xx 系列 TMS320C6000 片内有 8 个并行的处理单元,分别为相同的两组。DSP 的体系结构采用甚 长指令字(VLIW)结构,单指令字长为 32bit,8 个指令组成一个指令包,总字长为 8×32=256bit。 芯片内部设置了专门的指令分配模块,可以将每个256bit 的指令包同时分配到8 个处理单元, 并由 8 个单元同时运行。芯片的最高时钟频率可以达到 300MHz,这是通过片内的锁相环路 (PLL)将输入时钟倍频获得的。当芯片内部 8 个处理单元同时运行时,其最大处理能力可 以达到 400MIPS。 2000 年 3 月,TI 发布了新的 TMS320C64xx 内核,其主频为 1.1GHz,处理速度达到了 9000MIPS, 在 TMS320C62xx 的基础上将性能提高了 10 倍。 Ti 公司除了提供芯片,还提供了集成开发环境 CCS IDE,芯片的硬件开发包,视音频使用例 程,本文主要分析 Ti 公司的 tsk_echo 音频例程,介绍如何使用这个例程,如何加入自己的算法。 - 1 -
http://www.paper.edu.cn 2. 程序结构分析 2.1 驱动原理 原始的 DSP 处理往往是单任务的过程,但随着 DSP 的应用变得越来越复杂,用有效的,可维 护的方式来构建 DSP 系统就变得越来越重要。Ti 公司提供了一个高效的可扩展实时内核 DSP/BIOS,可以用来支持需要实时任务调度和同步的应用程序,支持开发板和主机端通信等高 级功能。除此以外, DSP/BIOS[4]还支持可抢占的多进程,硬件抽象,和可视化配置工具。 由于 DSP 实时系统变得原来越复杂,DSP 芯片的外设越来越多。为了提高系统的可移植 性。Ti 公司可以把对应与 DSP/BIOS 的设备驱动分为两层来实现,一层是与系统硬件相关的设 备驱动部分,另一层是只与操作系统,即 DSP/BIOS 相关的部分,这种解耦合的方式大大提高了 代码的利用率和维护代价。使得已经写好的应用程序可以比较容易的移植到不同的开发板, 甚至是不同的 DSP 芯片上面。这个称为二层驱动模型[2],分别为类驱动和 mini 驱动,见下图说 明 图 1 DSP/BIOS 驱动模型 如图所示, 类驱动提供线程安全的 IO 请求,与 Mini 驱动通信,实现从外设读取数据,而 Mini 驱动控制底层硬件,按照驱动程序员定义好的接口传递数据。Ti 的通用音频算法在 Application 一层,很容易移植,这个 echo 程序只使用了 SIO API,与硬件层完全独立。只要一块开 发板有写好的 IOM 驱动,这个通用的 echo 程序可以轻易的移植并且使用。 2.2 驱动配置 2.2.1 配置 mini 驱动 图 2 配置设备驱动 - 2 -
如果有了写好的 DSP/BIOS 音频驱动,在 User-Defined Devices 中新建一个设备,然后给这个设 备重命名,比如取名成 codec,那么在应用程序中引用这个设备的时候,就叫做/codec 右键点击选择设置 codec 的属性,如下图所示 http://www.paper.edu.cn 图 3 设置音频驱动 在这里填入 init function 和 function table ptr 设置 function table type 为 IOM_Fxns。 init function 和 function table ptr 根据给出 mini 驱动设置填写。 2.2.2 配置 SIO 驱动 如果应用程序使用了 SIO 模块[4],用作 IO,就必须使用 DIO 适配器去和第一步配置好的 mini 驱动通信。如果没有配置好的 mini 驱动,自然也不能使用 SIO 模块 新建 DIO 驱动,在它的配置选项里的驱动名称(device name)中填写 codec。这样就可以在 SIO 模块中使用 mini 驱动了。如下图所示: 图 4 选择音频设备驱动函数 2.3 tsk_echo 应用程序分析 在应用程序中,DSP/BIOS[3]有两种加入新进程的方式,一种是动态加入新的进程,使用 DSP/BIOS 的 API TaskCreate 函数就可以动态加入新的进程。另一种是在 DSP/BIOS 的图形化配 置中静态加入新的进程。Ti 的音频算法采用了静态加入 tskAudio 这个新进程的方法,当系统启 动,板级初始化化完成,系统开始调度任务的时候,tskAudio 任务根据自己设定的优先级就可以 参加调度。完成相应的功能。 - 3 -
http://www.paper.edu.cn 图 5 在 DSP/BIOS 新增任务 在配置好 SIO 驱动以后,在 Task Manager 中加入一个新的任务,取名为 tskAudio,在 tskAduio 的属性中配置函数名为_tskAudioDemo,这个名字对应了程序中的 tskAudioDemo,多了一个下划 线。通过这种方式,就可以静态的加入一个新的进程。它的执行函数就是在它的属性页配置 的函数名。 Tsk_echo 程序使用 DSP/BIOS 上的 API 调用上一步建立好的 SIO 驱动,在函数 createStreams 中 使用 SIO_create("/dio_codec", SIO_INPUT, BUFSIZE, &attrs);建立输入流,用 SIO_create("/dio_codec", SIO_OUTPUT, BUFSIZE, &attrs);建立输出流。 最后,在函数 tskAudioDemo 中,使用 void copyWithEcho(short *inBuf, short *outBuf, int timeDelay, int a)这个函数加入自己的音频算法,Ti 的通用音频算法是一个简单的数据拷贝。就是把输入数据 拷贝到输出流当中。通用音频算法可以修改成任何你自己需要的算法。 如果你需要加入自己写的音频算法,只要加入算法对应的头文件,和相应的库文件,修改 copyWithEcho 这 个 函 数 , 其 中 inBuf 是 输 入 流 ,outBuf 是 输 出 流 , 它 由 NUM_CODEC_CHANNELS*SAMPLEING_RATE*FRAME_SIZE 决定。就是每次缓冲数据的大小。 通过修改nmadus的值,可以使得这个通用程序适合任何音频算法,通常很多音频算法的输入值 都是单声道,而用SIO驱动得到的是双声道立体声的信号,所以一般需要用户自己写一个简单 函数分离出左右声道。 3. 结论 本文介绍了 DSP /BIOS 操作系统和 DSP 通用音频算法算例, 在了解了这些知识以后,我 们就可以很容易的修改,移植和使用 Ti DSP 的音频算法,提高了开发效率并且对于理解其他通 用算法算例也有很大帮助。具有很强的工程价值。 参考文献 [1] Texas Instruments Incorporated. TMS320DM642 Video Imaging Fixed-Point Digital Signal Processor Data Manual. Texas: Texas Instruments Inc., 2004:45-67 [2] Texas Instruments Incorporated. DSP/BIOS Driver Developer’s Guide .Texas Instruments Inc., 2004:323-324 [3] Texas Instruments Incorporated. TMS320C6000 Programmer’s Guide. Texas Instruments Inc., 2002:200-203 [4] Texas Instruments Incorporated. TMS320 DSP/BIOS User’s Guide. Texas Instruments Inc., 2004:150-156 - 4 -
Analysis of DSP General Audio Compression Algorithm http://www.paper.edu.cn Department of Information and Telecommunication Engineering and Beijing University of Posts and Telecommunications, Beijing (100876) Zhang Dongmao, Wang Haiying Abstract DSP, is represented by Digital signal processor which is a special micro-processor. Because the DSP application is becoming more and more complex, some DSP manufacturer offer several general algorithm to help developers to speed up. The main purpose of this paper is to analysis the general audio algorithm, give an introduction to DSP/BIOS and how to use DSP/BIOS drivers. After mastering those knowledge above, DSP developers can easily port other audio algorithm to DSP. Keywords: DSP; Audio compression algorithm; DSP/BIOS - 5 -
分享到:
收藏