基于TMS320VC5509实现MP3解码

发布者:tetsika最新更新时间:2008-11-27 来源: 电子应用技术关键字:DSP  MP3  音频解码 手机看文章 扫描二维码
随时随地手机看文章

  TMS320VC5509(以下简称C5509)是TI公司C5000 DSP 系列中的新一代产品,该芯片最低工作电压为0.9V,其核的最低功耗仅为0.05MW/MIPS,性能最高可达800 MIPS。C5509为嵌入式DSP应用及高性能仪器仪表、智能机器人、手持设备、数字音频播放器和数码相机等应用提供了有效的解决方案。MP3是指MPEG(活动图像专家组)国际标准音频第三层编/解码,MP3编码是通过将音频信号由时域信号转换为频域信号,并根据人类心理声学特征去除部分冗余信息实现的,ISO/IEC11172-3 Part 3给出了详细的编/解码标准。解码涉及霍夫曼解码、修正余弦反变换(IMDCT)、子带合成等复杂运算模块。本文利用C5509实现对MP3的解码运算。

  1 C5509 DSP 处理器的特点和工作原理

  1.1 C5509 DSP的性能概述

  C5509有32×16bit指令缓冲队列,可实现高效的块循环操作;两个17×17bit的MAC单元,可在单周期内执行两次MAC操作;1个40bit的ALU、1个40bit的桶型移位器,4个40bit的累加器可执行比C54系列DSP更高效的算术运算,在400MHz的晶振驱动下,可达到800MIPS的性能。以44.1kHz采样率的MP3数据流为例,对128kbit/s数据率的MP3数据进行解码。霍夫曼解码、IMDCT、子带合成等运算模块共需消耗1.3MIPS的CPU资源,对于平均每秒必须解码44.6帧数据来讲,总运算量为44.6×1.3=57.98MIPS,C5509完全可以满足此速度要求。

  C5509还具有128K×16bit的片上RAM,其中包括64KB的DARAM、192KB的SARAM和64KB的片上ROM。

  与众多TMS320系列DSP处理器一样,C5509采用了哈佛结构,共有12组独立总线,其中包括3组数据读总线、2组数据写总线、5组数据地址总线、1组程序读总线和1组程序地址总线,这些总线并行地为各个计算单元提供指令和操作码,从而为高速的数据运算提供了有力的保障。[page]

  1.2 C5509 DSP的外设介绍

  C5509提供了专用的外部存储器接口(EMIF),用于控制DSP与外部存储器之间所有数据的传输。可与EMIF无缝链接的存储器有:异步存储器(ROM、FLASH、 SRAM)、同步突发SRAM、同步DRAM(SDRAM),并可支持可选的32、16、8位数据访问。对EMIF编程时,必须根据实际的外部存储器考虑如何分配片内使能空间(CE)。通过EMIF接口,主处理器可将数据和程序置于片外,从而节省了片上硬件资源。

  其次,C5509有3个独立的多通道缓存串口(McBSP),使得C5509能够直接与其他C55xx系列DSP、多媒体数字信号编解码器等设备高速互连,这些McBSP可以提供全速双工通信,并支持128通道的收发,接收或者发送可以选择使用独立的时钟,字宽为8、12、16、20、24位任选。

  为保证与常见的异步通信模块进行数据通信,C5509提供了与TL16C550C等专用异步通信接口IC互连的UART,外部数据经由TL16C550C进出DSP的UART,最终交给片内CPU处理。图1为与C5509配合使用的典型专用异步通信接口IC(TL16C550C)的管脚图。

  C5509的UART每接到数据就会产生相应的中断请求,通知CPU及时采集数据,将Rx线上的串行数据放入接收寄存器中,在满足缓冲区长度后,寄存器的并行数据再交给CPU做后续处理。

基于TMS320VC5509实现MP3解码

  2 解码算法说明

  2.1 MP3文件的格式

  MP3文件以帧为基本单位,每帧的构成如表1所示。由于MP3文件数据格式采用了比特池技术,故主数据有可能在帧头之前,具体位置可由帧边信息所包含的main_data_begin变量获得。

基于TMS320VC5509实现MP3解码[page]

  解码时首先将一定长度(本系统为2kbit)的数据读入C5509的内部RAM中,然后寻找帧的同步字sync_word(FFF)。如果找到同步字,则以其为首的32bit即为帧头。由帧头中的校验位可知是否有校验数据,如无,则其后的256bit数据即为帧边信息。主数据一般包含两个粒度组(gr)的数据,每个粒度组又包含左右声道(ch)两部分的数据信息,各个声道数据可独立解码,故将每个粒度单个声道解码的程序编写为单个的*.c文件,以适应单声道或者其他MP3格式的解码。MP3编码根据人类心理声学,将每个粒度组分为三部分数据:第一部分对应低频采样的Big_values(大值区),用较大绝对值的量化值存放低频值;第二部分为Count1区,用绝对值较小的量化值存放中频值,所有量化值的可能取值为1,0,-1;第三部分为编码为零的Zero高频区,零数据无须在MP3文件中出现,只需在解码时询问每个粒度组的计数是否已经达到576。若计数为576,则说明该粒度组已解完576个频率线的量化值。

  上述帧边信息存储了供后续解码的全部重要信息。为方便引用,将其定义为结构体。部分元素的定义和注释如下:

  struct Granule {
  unsigned part2_3_length; //用以计算Count1
               //区位置;
  unsigned big_values;    //用以计算Big_values
               //区位置;
  unsigned table_select[3]; //用以确定查找哪一
                 //个霍夫曼表;
  ……
  };

  table_select[3]的值就是霍夫曼表的下标h,可在解主数据时锁定某个具体的霍夫曼表。[page]

  2.2 MP3数据的霍夫曼解码原理

  如上小节所述,每个粒度组的数据根据声学特性将0到奈奎斯特频率的频率线分为Big_values、Count1和Zero三个区。在解码时,Big_values区对应的霍夫曼码表格式如表2所示,而Count1区码表格式如表3所示。

基于TMS320VC5509实现MP3解码

基于TMS320VC5509实现MP3解码

  存放霍夫曼码表的文件huffman.h中包含32个供Big_values区查询用的码表和2个供Count1区查询用的码表。为了方便快速查得短长度的编码值,还增加了辅助表h_cue[34][16]。当开始解主数据时,将定长(例如32位)数据dataword()入栈,首先移出该缓存区的前四位数据,作为查辅助表的头数据lead,然后根据lead值和帧边信息中的霍夫曼查找表下标h,得出辅助表的具体数据h_cue[h][lead],这个数据只是指向Big_values区或者Count1区某个表的首地址h_tab,具体要用到该表的哪个数据仍需程序提供一个偏移量继续判断。此时可以先由缓存区中去掉lead四个位的数据与锁定的霍夫曼表对比,如果这后面的数据与被锁定的霍夫曼表头的码字一致,则可马上得到解码的数据;若是两个码字不一致,则还需由h_cue[h][lead]和h_cue[h][lead+1]的差值得到偏移量,从而最终得到正确的解码数据。(格式如表2和表3所示)。

  另外,由于MP3编码中对绝对值小于等于15的量化值直接编码,对绝对值大于15的量化值采用ESC(附加值)编码,所以在得到加码数据后还需判断是否要为其添加附加值和符号位。详细的解码流程如图2所示。

基于TMS320VC5509实现MP3解码

  MP3解码的主要运算量集中在霍夫曼解码、反量化、IMDCT、子带合成四个运算模块,而霍夫曼解码占整个运算量总和的1/5。利用CCS的Profile工具对44.1kHz采样率、128kbps比特率的MP3数据进行运算复杂度的估算,可得本系统的解码模块消耗的运算量为1.3MIPS。由此可知,对于每秒解50帧以上的实时解码,DSP要承担65MIPS的运算复杂度,利DSP实现的本解码模块是完全可以胜任的。

  参考文献

  1 彭启琮. TMS320VC55x系列DSP的CPU与外设. 北京:清华大学出版社,2005:275~388

  2 TMS320VC5509A Fixed-Point Digital Signal Processor Data Manual.Texas Instruments Incorporated,2005:13~50

  3 TMS320C55x DSP Programmer’s Guide. Texas Instruments Incorporated, 2001:4~84

  4 范建军. MP3文件格式剖析.咸宁师专学报,2002;22(6):77~79

  5 王潮营. 基于DSP的MP3解码器的研究与实现(硕士学位论文).哈尔滨:哈尔滨工程大学信息与通信工程学院,2004:9~25

关键字:DSP  MP3  音频解码 引用地址:基于TMS320VC5509实现MP3解码

上一篇:基于DSP的多激光威胁信号分选和码型识别
下一篇:多核DSP的BootLoader程序的实现

推荐阅读最新更新时间:2024-05-02 20:43

DSP系统在家电中的应用
概述 DSP 擅长于数学运算,嵌入式DSP电机控制芯片把DSP内核与一系列功能强大的控制外设集成到一个芯片上,这样便能以快速的DSP内核作为计算引擎,加上片内的A/D模块提高了电机控制带宽,并且允许低成本实现更加复杂垢控制和无传感器的算法,因此能控制交流感应电动机、无刷直流电动机和开关磁阻电机,需不需要速度或位置传感器,甚至特殊的电流传感方式。这些计算能力和优化的外设使它很容易的完成更多的功能,如功率因数的校正;在不增加控制器成本的情况下,满足某些特殊应用的要求,如洗衣机的平衡控制。 新经济将我们带进一个全数字的世界,更多的数字信息将要涌入家庭,如网络冰箱就是量例。嵌入式DSP使控制器甚至是电器之间建立通信成为易事。最新的
[嵌入式]
<font color='red'>DSP</font>系统在家电中的应用
基于DSP的声控电子记事本系统
本文所介绍的声控电子记事本系统将语音识别和语音编解码在同一片DSP芯片上实现,用语音方式代替其它方式进行信息输入,提高了系统的灵活性。      1 系统功能   可存200张语音名片,每张语音名片包含四条信息:姓名、电话号码、工作单位、备注;声控查找语音名片信息,用户只需口述所要查找人的姓名,即可获得电话号码、工作单位、备注等信息,同时电话号码显示在液晶显示屏上。   具有双音多频(DTMF)拨号功能,用户用声控查找到电话号码并显示在液晶屏上之后,只需轻触一个拨号键,即可通过普通电话机的话筒实现快速自动拨号。   数字录音,每段录音加语音标识;声控放音,在放音时只需口述所要语音段的语音标识即可自动找到该段
[嵌入式]
基于<font color='red'>DSP</font>的声控电子记事本系统
世强携工业控制DSP处理器、4G七模模块等工业最新元件
近日,世强元件电商携物联网、工业控制及自动化、汽车、测试测量等九大分区的最新元件产品和解决方案亮相2018慕尼黑上海电子展。其中在工业控制与自动化部分,带来了国内唯一可批量供货的工业控制DSP处理器、业内首个4G七模模块、高集成度、医疗精度红外温度传感器等全品类的工业控制及自动化产品及解决方案。 国内唯一可批量供货的32位工业控制DSP处理器 此次世强元件电商带来的进芯电子工业控制DSP处理器,是我国国内唯一可批量供货的工业控制DSP处理器。进芯电子DSP产品累计获得相关授权发明、实用新型专利及电力设计证书16项,其产品是按照军用元器件质量标准进行设计的工业级电路,拥有自主知识产权的32位工业控制DSP,哈弗总线结构,
[嵌入式]
基于触摸屏和DSP的串行通信系统设计
  在现代工业控制中,最常用的人机接口界面依然采用的是键盘和液晶相结合的方式,要让触摸屏取代以前的人机接口界面,还存在一定的问题。在实际应用中,触摸屏一般是针对可编程控制器PLC 设计的,所以DSP 与触摸屏不能直接通信,必须根据触摸屏的通信协议开发相应的通信程序。本文研究基于MODBUS 协议的触摸屏和DSP 的通信方法,其中DSP 使用TI公司的TMS320F2812,触摸屏使用维控科技的LEVI700L。   1 DSP 与触摸屏的硬件电路连接   TI 公司的TMS320F2812 芯片有两组SCI 模块,SCIA 和SCIB。根据不同的需要,可以将这两个串口分别设计转换成RS232 和RS485。本文采用RS48
[嵌入式]
基于DSP的焊接电流检测系统设计
电阻焊是一种将电网的能量经转换后直接对工件进行熔合的高自动化程度的焊接方法。它广泛地应用于汽车、航空及航天等行业。随着电阻焊应用领域的不断扩展及深入,对焊接质量也提出了越来越高的要求 。 要对焊接质量进行精确控制的关键是焊接电流及其状态电流参数的在线检测。目前国内外测量电阻焊焊接电流有效值的方法有两大类,即模拟法和数字法。其中数字法中的逐点积分法检测精度高,得到了广泛的应用 。该方法会占用大量的CPU时间 ,随着计算机技术的发展,各种高速高性能处理芯片不断出现,因此本文设计了基于DSP的电流检测系统,它可以实现电流的快速准确检测。 1 系统硬件设计 电流检测系统硬件结构如图1,本系统中采用了美国德州仪器公司(TI
[嵌入式]
基于<font color='red'>DSP</font>的焊接电流检测系统设计
森美为IIC助听器量身打造预配置DSP系统
    安森美半导体(ON Semiconductor)推出新的预配置数字信号处理(DSP)系统Rhythm R3710,专为用于耳道内不可见(IIC)助听器设备而设计。     Rhythm R3710混合系统集成先进的语音及音频信号处理算法,采用安森美半导体先进的微型封装技术,使助听器制造商能够开发置于深耳道的极分立产品。     Rhythm R3710混合系统的尺寸为4.57 mm x 3.12 mm x 1.52 mm (0.180 x 0.123 x 0.060英寸),比现有Rhythm混合系统系列小20%,是业界尺寸最小的混合系统外形因数。     Rhythm R3710主要特性:     8通道
[医疗电子]
DSP经典问答16则
一、问:如何解决Flash编程问题:可不可以先用仿真器下载到外程序存储RAM中,然后程序代码将程序代码自己从外程序存储RAM写到F240内部Flash ROM中,如何写? 答:如果你用F240,你可以用下载TI做工具。其它可以这样做。 二、问:C5510芯片如何接入E1信号?在接入时有什么需要注意地方? 答:通过McBSP同步串口接入。注意信号电平必须满足要求。 三、问:请问如何通过仿真器把.HEX程序直接烧到FLASH中去?所用DSP为5402是否需要自己另外编写一个烧写程序, 如何实现? 答:直接写.OUT。是DSP中写一段程序,把主程序写到FLASH中。 四、问:我正在使用TMS320VC5402,通过HPI下载
[嵌入式]
MP4标准年底终审明年出台 终结三年混战乱局
市场鱼龙混杂价差最高超30倍 主流厂商叫苦连天    一度沸沸扬扬却又渐无声息的MP4标准事件,终于传来确切音信。日前,中国信息产业部科技司正式宣布MP4行业标准出台全面提速,计划于2006年底完成终审。明年,MP4行业标准将全面出台。此举也预示着,国内MP4行业历时三年、混战一团的杂乱局面行将告终。    市场加速标准出台 关于MP4标准拟立的呼声由来已久,但令人遗憾的是,行业标准的建立速度远比不上行业环境的恶化速度。从2005年起,MP4市场出现爆发式增长,大量原有低端MP3厂商纷纷转型涌入。目前市场上已有数百家厂商,杂牌、次品充斥,价格相差最高甚至达30倍,消费口碑江河日下。 “销售人员经常要费很大的精力告诉消费者,M
[焦点新闻]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved