高清电视音频解码的定点DSP实现

发布者:HeavenlyWhisper最新更新时间:2007-08-03 来源: 电子设计信息网关键字:算法  通道  数据  矩阵 手机看文章 扫描二维码
随时随地手机看文章
  数字技术的高速发展使广播电视进入了由彩色电视向高清晰度电视( HDTV) 跨越的过渡时代,音/ 视频产品数字化、高清晰度化已成为未来家电视听产品的趋势. 高清电视音频解码方案有欧洲数字视频广播(DVB) 标准采用的MPEG22 ( layer I ,layer II) 和美国A TSC 标准使用的Dolby AC23 两种. 其中DVB 标准被大多数国家接受,中国正在制定的数字电视标准同样是基于DVB 标准. 目前国内外许多公司都在从事高清电视及机顶盒芯片的研究,低成本高性能的芯片具有一定的竞争优势.音频解码是解码芯片的一部分. 作者通过对MPEG-2 多通道音频解码算法介绍及其优化,C 程序定点化,高性能媒体处理器DM642 简介, DSP/BIOS 实现实时音频解码和输出流程,完成了DVB标准的音频算法优化及DSP 移植.

  1 DVB 音频算法及改进

  DVB 音频是MPEG-2 音频解码标准的子集,它采用MUSICAM 算法进行压缩,利用给定的声音单元对位于临近频率较低声级的声音(或噪声) 有着遮蔽作用,对于听不见的声音单元不进行编码,这有利于在低数据率下进行音频编码. MPEG-2 支持多通道(5. 1 声道) 和采样率分别为16 ,22. 05 ,24kHz 的低采样率的扩展. 其中低采样率扩展只需对MPEG-1 的比特流和比特分配表进行很小的变动就可实现解码. MPEG-2 多通道扩展音频解码的帧结构见图1.

图1 MPEG-2 音频帧

  MPEG-2 音频帧由MPEG21 音频数据和多通道(MC) 音频数据组成,其中MPEG-2 附加的多声道数据放在MPEG21 的辅助数据区. 由于采用了与MPEG-1 相似的帧结构, MPEG-2 音频可以后向兼容MPEG-1 音频,即MPEG-1 音频解码器可以恢复MPEG-2 音频数据的两声道信息,而用MPEG-2解码器则可以解码完整的多通道音频数据.MPEG-2 音频解码流程如图2 所示. 其解码过程可分解为:帧分解,反量化,逆矩阵解码,子带综合滤波. 当输入比特流经过帧分解后,解码器将位分配信息、量化因子选择信息和音频样点送入反量化器恢复子带样点,子带样点经子带合成滤波器重建各声道的脉冲编码调制( PCM) 样点.

图2 MPEG-2 音频解码流程

  表1 是在DSP 平台上统计解码各步所占用的时间. 可以看出,数值计算主要集中在子带合成滤波,若采用MPEG-1 建议的算法流程[2 ] ,以两声道48 kHz 采样率为例,乘法运算量为(48 000/ 32) ×(64 ×32 + 512) ×2 = 7 680 000 次/ s. 因此,程序优化主要针对此步骤,并且对多声道音频,优化算法所减少的运算量与声道数成正比,因为子带合成滤波对于每个声道的样点是分别进行的.

  2 算法及存储优化

  首先,利用合成窗系数的对称性

  Di = - D512 - i    i = 1 ,2 .255 (不包含64 ,128 ,192) (1)

  对于特殊的点:D64 = D448 ; D128 = D384 ; D192 =D320 ; D0 = 0 ; D256 = 1.144 989 014因此只需要存储257 个点,就可以表示原来的512个点,窗系数存储量减少了一半.

  进一步对标准ISO/ IEC 11172-3附录B 的位分配表观察可知,表B2. b 是对表B2. a 的扩展,表B2. d 也是对表B2. c 的扩展,因此实际只需存储表B2. b 和B2. d ,设计读表法就可以访问4 张表格的数据,位分配表存储量也降低为原来的一半. 子带合成滤波流程见标准ISO/ IEC11172-3附录图A. 2 ,标准中规定的流程复杂,中间变量多.根据文献可以对标准里的合成子带滤波器流程简化:

  其中:Di 为窗系数; Sk 为子带样点.

  经过以上变换, 省略了中间变量U 和W . 且利用余弦函数性质,由32 点的Xi 代替64 点V i . 简化了子带合成滤波的步骤, 并使存储量减少到一半以上,为代码移植到DSP 节省了存储空间. 计算式(3) 时, 利用Byeong G. L EE 快速算法的改进算法将32 点DCT 进行分解:



  重复这样的运算,可进一步分解为更少点数的DCT ,每分解一次,乘法运算和加法运算可减少一半. 以32 点DCT 为例, 乘法和加法运算分别为1 024次和992 次. 将其分解为两个16 点的DCT后,乘法和加法次数分别减少到529 和527 次. 考虑到定点DSP 的有限字长效应,实际只需分解一次,将32 点DCT 化成两个16 点的DCT. 简化子带滤波流程以及使用快速DCT 变换后,子带合成滤波部分的运算量减少了约60 %.

  用C语言进行算法验证时,考虑到不同机器的通用性,对于解码后的PCM 样点分别采用不同的格式封装: 对于Intel 系列的机器,采用小端格式(Lit tle Endian) ,故解码后样点以wave 格式封装;对于Motorola , Macintosh 等机器,采用大端格式(Big Endian) ,因而解码后样点采用aiff 格式封装.这样解码后的音频就可直接用winamp 等软件进行播放,测试效果.

  3 定点化程序及性能分析

  实现解码时描述算法采用浮点程序,以确保精度,但速度慢. 为了在定点DSP 上实现解码,程序必须进行定点化,以有限精度实现. 定点化程序时,以浮点程序为模板,逐个将模块改造成定点. 每做完一个模块,将定点程序解码结果与浮点程序的解码结果进行比较,直到差值达到要求为止. 每个模块改造前,先估计本模块内数据动态范围,再决定采用何种精度. 其中余弦函数的定点运算通过查表法实现,即先把[ 0 ,π/ 2]间划分为212 个小格子,然后把弧度值映射到小格子上,通过查表 读取结果.为了对定点化程序进行测试,由式(8) 计算定点解码结果与浮点解码结果信噪比:

  其中:PCMfix 为定点程序解码结果; PCMfloat 为浮点程序解码结果; 65 535. 0 为两个16 位PCM 样点之差的最大值.有的文献以∑PCM2float 为分子,这样算出来的结果与特定的码流有关,若码流PCM 样点值较大,计算出信噪比则较大. 而式(8) 不受具体码流的影响,客观地对不同码流作出评价对比. 定点程序分别经过男声、女声,小提琴声,海浪声和进行曲乐声等码流测试,SNR 都在74~78 dB 范围内,获得了较好的效果.

  4 定点DSP 实现音频解码算法

  TMS320DM642 是Ti 公司最新推出的一款针对多媒体处理领域的DSP ,它在C64x 的基础上,增加了许多外围设备和接口. 频率为600 MHz 的DM642 能够以30 帧的速度同时处理多达4 个分辨率为D1 (720 ×480) 的MPEG2 视频编码译码器. 此外,DM642 还能实时进行全面的Main-Profile-at-Main-Level (MP @ML) MPEG-2 视频编码,具有32MB 外部SDRAM、4 MB 闪存、组合视频输入/ 输出、S-视频输入/ 输出、V GA 输出端口以及支持媒体流的以太网端口.

  将程序移植到DSP 上分两个阶段[6 ] : 第1 阶段,不考虑DSP 有关知识,根据DVP 改进算法编写C 程序,再在CCS 环境下调试C 程序,编译产生在C6000 内运行的代码,运用CCS 下的分析工具断点和profile 等,查找程序中运算量最大的部分,改进这部分代码性能;第2 阶段,使用DSP 提供的内联函数代替复杂的C 语言程序,使用数据打包技术,对短字长的数据使用宽长度访问,并通过消除冗余循环、循环展开等方法优化循环程序. 最后,利用DSP提供的汇编优化器,选定合适的优化选项进行编译,此步可通过线性汇编,在底层更好地利用资源.目标DSP 的乘法器为16 位×16 位,而程序中用到32 位×32 位乘法,结果为32 位. 因此采用3个16 位×16 位乘法代替,输出结果仍保留32 位.其方法为

Y32 = X132 X232 = X1low16 ?X2low16 + ( X1high16 ?X2low16 + X1low16 X2high16 ) n<<16 (9)

  经过测试,该式计算对性能没有影响.

  1) 输入控制

  DSP 解码时,将待解压缩的mp3文件转化成dat 格式的文件,DSP 可直接将dat 格式的数据加载到片外存储器中. 具体方法为,先在程序中定义一个与mp3 文件相同大小的数组,然后将dat 文件放到数组首地址所指向的区域并指定数据长度. 由于mp3 文件大小为几兆,所以定义的数组长度超过bss 段最大偏移,需定义成far 型;也可以不用far 声明数组,而将编译方式改成大模式.大模式下bss 段的大小无任何限制,但编译器对变量使用寄存器间接寻址方式,这样需要3 条指令才能加载一个变量,故对变量存取速度很慢.

  2) 输出控制:采用DSP 提供的实时操作系统

  DSP/ BIOS 实现实时输出音频. 首先在DSP/ BIOS配置工具中建立TSK 对象,并与解码函数相对应,然后指定函数优先级,DSP/ BIOS 将自动进行任务调度和执行. 在配置工具中还需指定内存分配情况. DM642 中L2 cache 和片内存储器共用,可使用芯片支持库CSL 的API 函数分配cache 及片内存储器大小. 片内存储器的一部分作为子带滤波器申诸的动态空间.

  调试时可以用LOG 对象显示解码进度, 以LOG_ printf 代替C 语言调试中的printf , 因为printf 不是DSP 中的指令,将占用大量的时钟周期,在对实时性要求很高的应用中根本无法满足要求. LOG_printf 语句可以满足实时要求. 先在DSP/BIOS 配置工具里建立一个LO G 对象,在Message窗口可实时观测程序进度,几乎不影响程序性能.DSP/ BIOS 提供两种数据传输模型,管道模型(pipe) 用于PIP 和HST 模块;流模型( st ream) 用于SIO 和DEV 模块. 管道支持底层的通信,而流支持高级的与设备无关的I/ O. 音频口输出时采用流模型,流和I/ O 设备交互的数据流向如图3 所示. 流模块(SIO) 使用驱动程序(由DEV 模块管理) 与这些设备交互. 控制输出前先进行初始化,即在DSP/BIOS 配置工具里定义一个User-Defined Devices对象, 再使用音频口初始化函数_EVMDM642 _EDMA_AIC23_init 对此对象进行初始化. 上层的API 函数即可对这个设备进行操作,通过结构体SIO_At t r s 设置设备特征.

图3 流和设备间的交互

  解码输出过程为:首先使用SIO_create 产生一个指向设备的流. 流以异步方式进行I/ O 操作,定义两个指向输出流的缓冲区用以数据交换,数据输入和输出同时进行. 当应用程序正在处理当前缓冲区时,当前缓冲区被填满,前一个缓冲区的数据则输出. 在调用SIO_reclaim 时,交替使用这两个缓冲区进行数据交换, 每次返回其中一个缓冲区的地址. 将解码产生的音频数据送到此地址, 最后调用SIO_issue 将这个填满的缓冲区地址回送给流. 输出数据流向如图4 所示. 程序中流使用指针而不以数据拷贝,减小了应用程序的开销,使应用程序更容易满足实时性要求. 通过定义合适的缓冲区大小,D/ A 输出采样,音频数据即可实现实时输出.

图4 输出数据流向

  5  结 语

  DM642 作为Ti 推出的新一代媒体处理器,具有强大的信号处理能力,可以完成实时高清信源解码. 音频解码器经过算法优化和DSP 移植优化,算法的运行速度和存储量均有明显改善. 5. 1 声道音频实时解码需要50MIPS 的运算量,给高清电视信源解码中解复用和视频解码留下足够的资源. 本系统的实现对于设计高清电视信源解码芯片具有指导意义,DSP/ BIOS 的使用为进一步在DSP 上实现MPEG-4 视频和音频算法提供了有效的设计方法.该解码器也可以应用于数字音频广播(DAB) 接收机信源解码.

关键字:算法  通道  数据  矩阵 引用地址:高清电视音频解码的定点DSP实现

上一篇:以DDS为参考的PLL在现代电台设计中的应用
下一篇:基于数字信号处理的远方保护设备

推荐阅读最新更新时间:2024-05-13 18:37

开源ThingsBoard工业网关采集数据-米尔国产芯驰D9开发板
本篇测评由优秀测评者“JerryZhen”提供。 本文将介绍TB网关如何采集数据,并送往云平台。由于TB网关支持的协议众多, 本文仅仅以楼宇自动化中最常见的BACnet协议为例进行讲解,其他协议配置大同小异 。BACnet,Building Automation and Control networks的简称,即楼宇自动化与控制网络。一般楼宇自控设备从功能上讲分为两部分:一部分专门处理设备的控制功能;另一部分专门处理设备的数据通信功能。而BACnet就是要建立一种统一的数据通信标准,使得设备可以互操 作。 限于篇幅,协议细节这里不再赘述。下面讲解如何配置协议,使得我们网关能够正常通过bacnent协议采集到
[嵌入式]
开源ThingsBoard工业网关采集<font color='red'>数据</font>-米尔国产芯驰D9开发板
基于LabVIEW的风洞数据采集与控制系统
   The Challenge:   开发一个可用于飞机配置与组件的动静力测量、可用于电源设备的进气测试(即进气兼容性研究)、可用于稳定性导数评估的微震荡测试,也可用于模拟飞机失速与尾旋形成的高震荡与旋转导数的功能全面的、灵活可靠的测试系统。    The Solution:   利用NI的PXI与SCXI平台以及LabVIEW实时软件,开发一个可靠且高度精确的数据采集与控制系统。   "NI LabVIEW帮助我们实现了高达2 kHz的ESP端口切换速率,并通过缩短风洞的整个操作周期为客户节省费用。我们在压力测量中实现0.01% FS的精度。"   风洞是一种空气动力学测试设备,它用于研究物体周围的气流模式并测量作用
[测试测量]
基于LabVIEW的风洞<font color='red'>数据</font>采集与控制系统
具有杂散抑制通道的1 GSPS直接数字频率合成器,提高改进的动态范围
——新的低功耗直接数字频率合成器(DDS)内核允许多个杂散抑制通道,能够改进宽带无杂散动态范围(SFDR),输出信号高达400 MHz,功耗不超过1000 mW 关于AD9912 美国模拟器件公司(ADI公司)AD9912直接数字频率合成器(DDS)是为测量与测试设备、无线基站以及安全通信设备而设计的,它能提供前所未有的无杂散动态范围(SFDR)性能:信号输出高达400 MHz,功耗不超过1000 mW。这种新的性能的实现是因为采用美国模拟器件公司具有自主知识产权的“杂波抑制”通道,使两个最大的谐波杂散降低高达10 dB。这简化了设计更,使设计人员在频率分配方面花费更少的时间,尤其是在军用接收机等应用中,最后的每个dB对于保
[新品]
STM32串口接收数据保存到数组——遇到问题及解决方法
遇到问题: PC端发送给stm32的字符串数据,只有最后一个字节被保存在数组的首地址,其他数据都丢失,而且数组中只有首地址有数据。 比如我用PC给stm32发送abcd,返回到PC串口助手的数据只有d,查看数组发现里面数据 。 解决方案: 错误的原因是,在中断服务函数中,每次来数据时,数组地址 t++ 的变量 t 被我定义成了局部变量,导致每次来中断时,t都被赋值为0,才导致只有数组首地址有数据,且之前的数据都被覆盖。 解决办法,把数组地址 t++ 的变量 t 定义为全局变量就ok了
[单片机]
STM32串口接收<font color='red'>数据</font>保存到数组——遇到问题及解决方法
实时高速数据采集与存储系统的一种实现方法
1 、引言 随着信息科学的飞速发展,数据采集和存储技术已经是数字信号处理中非常重要的环节,将决定整个系统的性能。它广泛应用于雷达,通信,遥测遥感等领域。它己经成为人们获得外界信息的重要手段。基于总线的数据采集与存储系统,由于可靠且易于实现、经济等优点,得到了广泛的应用。但当数据传输率很高时,保持高速数据存储过程的可靠性、实时性将会成为一个比较棘手的问题。为此一些厂商提供了双总线技术、64位/66MHzPCI总线系统来解决这问题。但这些技术较为昂贵,且忽略了现有的硬件设备。经过实验与探索,我们选用ADLINK公司的PCI-7300A_RevB超高速数字I/O卡,利用现有的单(32位/33MHz)PCI总线的计算机系统构成低成本的硬
[应用]
中国首个ASASERDES芯片进入量产状态,赋能车载视频数据传输
又一国产芯片取得了重大突破。 近日,《高工智能汽车》了解到,景略半导体经过多年的技术积累和自主IP沉淀,其研发的用于车载摄像模组高速视频图像传输SERDES芯片已取得了阶段性进展,通过了多家头部客户测试验证,产品已进入量产准备。 据了解,景略半导体SERDES芯片计划于2024年面向全球市场提供基于国际汽车SERDES联盟(Automotive SERDES Alliance)制定的ASA协议的车载高速SERDES产品。值得注意的是,这是中国首家基于ASA协议的SERDES产品。 众所周知,随着ADAS技术迭代及未来高阶自动驾驶发展,汽车安装的车载传感器(摄像头,毫米波雷达和激光雷达等传感器模组)和车载显示屏数量
[汽车电子]
中国首个ASASERDES芯片进入量产状态,赋能车载视频<font color='red'>数据</font>传输
基于模糊算法的水泥烧成控制系统研究
1 水泥生产过程工艺与控制要求   水泥生产线的主要工艺流程可以分为:原料配料站、原料磨及废气处理、均化库、烧成系统、煤粉制备及熟料库,如图1所示。从原料配料站出来的原料要经过原料磨的粉碎,然后送入均化库中进行均化。经过均化的原料直接送入回转窑中进行锻烧,而水泥质量的好坏主要在于原料在窑中的锻烧情况,好的水泥要在窑中得到充分的锻烧,所以烧成系统是水泥生产的核心环节。锻烧完的水泥经冷却后送入熟料库中,等待外运。     1.1水泥烧成系统控制要求   在水泥熟料生产过程中,烧成带温度和窑尾废气温度是影响水泥熟料质量的最重要因素。这两个温度保持稳定,不仅能保持较好的烧成质量,同时对回转窑热工状况的稳定和设备主体的稳定运行都有
[嵌入式]
英特尔2020年Q4财报数据解读
英特尔发布了 2020 年第四季度以及 2020 全年的财报,当日股价收涨 6%至 62.46 美元,并创下半年来的新高。但在盘后交易中,英特尔的股价转而下跌,预示了市场开始酝酿对这份财报的不满情绪。果然在第二天股市开市之后,英特尔股价一路暴跌,最终跌幅达 9.3%。 要知道,这也是英特尔连续第三个季度,在发布财报之后股价重挫 10%左右的跌幅。在第二季度和第三季度,发布财报后的第一个交易日,英特尔股价分别暴跌 16%和 10.58%。果然,2021 年的第一场雪,比以往时候都来得早一些。 那么今天这篇文章,我们就来看一下英特尔这个季度以及整个财年,到底哪里(又双叒叕)出了问题。 关于英特尔第三季度的财报解析,可
[嵌入式]
英特尔2020年Q4财报<font color='red'>数据</font>解读
小广播
最新应用文章
换一换 更多 相关热搜器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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