0294、高清电视音频解码的定点DSP 实现
收藏
资源目录
压缩包内文档预览:
编号:6123142
类型:共享资源
大小:214.70KB
格式:ZIP
上传时间:2017-11-24
上传人:超****计
IP属地:浙江
4.8
积分
- 关 键 词:
-
高清
电视
音频
解码
定点
dsp
实现
- 资源描述:
-
0294、高清电视音频解码的定点DSP 实现,高清,电视,音频,解码,定点,dsp,实现
- 内容简介:
-
第4卷第3期2005 年 6 月江南大学学报(自然科学版)Journal of Southern Yangtze University(Natural Science Edition )Vol.4 No.3Jun . 2005文章编号:1671- 7147(2005 )03 - 0231 - 04收稿日期:2004-09-14; 修订日期:2004 - 11- 03 .基金项目:国家自然科学基金项目(90307002)资助课题 .作者简介:张 瑾(1980- ),女,江苏苏州人 , 通信与信息工程专业硕士研究生 .通讯联系人:王 匡(1968 - ), 男 ,浙江江山人,教授 ,博士生导师 .主要从事数字通信系统、 高清晰度电视、 通信专用芯片设计等方面的研究 . Email:wangk zju .edu .cn高清电视音频解码的定点 DSP 实现张瑾, 徐元欣, 张季, 王匡(浙江大学 信息科学与工程学院 ,浙江 杭州 310027)摘 要:实现基于 DVB标准的高清电视多通道音频解码 .对标准中定义的子带合成滤波流程进行优化 ,并利用窗系数的对称性和位分配表的相似性 , 使运算量和存储量减少 50 %以上 .通过使用实时操作系统 DSP/BIOS 对 DSP 进行开发 ,简化了开发流程和接口控制 ,使不同 DSP间代码移植简单 .该解码器也可应用于数字音频广播的信源解码 .关键词:高清晰度电视; MPEG 2;音频解码; 子带综合滤波器;数字信号处理器/基本输入输出系统中图分类号:TN 911 .72文献标识码:ADesign of a HDTV Audio Decoder on a Fixed Point DSP ChipZHANG Jin, XU Yuan xin, ZHANG Ji, WANG Kuang(College of Information Science and Electronic Engineering ,Zhejiang University ,Hangzhou 310027 ,China )Abstract :The paper describes a DVB based HDTV audio decoder used in multi channel extensionand presents an improved algorithm for the synthesis filter bank. It is found that when thesymmetry of coefficient and the similarity of the allocation tables , computationalamountandmemory size are reduced by more than 50% .DSP/BIOS operating system simplifies developingvarious DSP systems. This decoder can also be used in Digital Audio Broadcasting systems .Key words :HDTV;MPEG 2;audio decoding;sub band synthesis filter ;DSP/BIOS数字技术的高速发展使广播电视进入了由彩色电视向高清晰度电视( HDTV )跨越的过渡时代,音/视频产品数字化、 高清晰度化已成为未来家电视听产品的趋势 . 高清电视音频解码方案有欧洲数字视频广播( DVB)标 准采 用 的 MPEG 2(layerI ,layerII )和美国 ATSC 标准使用的 Dolby AC 3两种. 其中 DVB标准被大多数国家接受 ,中国正在制定的数字电视 标准同样是基于 DVB标准.目前国内外许多 公司都在从事高清电视及机顶盒芯片的研究 , 低成本高性能的芯片具有一定的竞争优势.音频解码是解码芯片的一部分.作者通过对MPEG2多通道音频解码算法介绍及其优化 , C 程序定点化 ,高性能媒体处理器 DM642 简介 , DSP/BIOS实现实时音频解码和输出流程 ,完成了 DVB标准的音频算法优化及 DSP 移植 .1 DVB音频算法及改进DVB音频是 MPEG2音频解码标准的子集,它采用 MUSICAM算法进行压缩 ,利用给定的声音单元对位于临近频率较低 声级的声音(或噪声)有着遮蔽作用 ,对于听不 见的声音单元不进行编码,这有利于在低数据率下进行音频编码 . MPEG2 支持多通道(5 . 1声道)和采样率分别为16,22.05,24kHz的低采样率的扩展 .其中低采样率扩展只需对MPEG1的比特流和比特分配表进行很小的变动就可实现解码 . MPEG 2多通道扩展音频解码的帧结构见图 1 .图1 MPEG 2音频帧Fig .1 MPEG 2 multi channel audio frameMPEG2音频帧由 MPEG 1音频数据和多通道( MC)音频数据组成,其中 MPEG2 附 加 的 多 声道数据放在 MPEG 1的辅助数据区1 .由于采用了与 MPEG 1 相似的帧结构, MPEG 2 音频可以后向兼容 MPEG 1音频,即 MPEG 1音频解码器可以恢复 MPEG 2音频数据的两声道信息,而用 MPEG2解码器则可以解码完整的多通道音频数据.MPEG2音频解码流程如图 2 所示 .其解码过程可分解为 :帧分解 ,反量化 ,逆矩阵解码 ,子带综合滤波.当输入比特流经过帧分解后,解码器将位分配信息、 量化因子选择信息和音频样点送入反量化器恢复子带样点 ,子带样点经子带合成滤波器重建各声道的脉冲编码调制( PCM)样 点 .图2 MPEG 2音频解码流程Fig .2 MPEG 2 audio decoding process表1是在 DSP 平台上统计解码各步所占用的时间.可以看出,数值计算主要集中在子带合成滤波, 若采用 MPEG 1建议的算法流程2 ,以 两 声 道48 kHz采样率为例 ,乘法运算量为(48 000/32 )(6432 +512)2 =7 680 000 次/ s .因此 ,程序优化主要针 对此步骤,并且对多声道音频,优化算法所减少的运算量与声道数成正比 ,因为子带合成滤波对于每个声道的样点是分别进行的 .表1 DSP平台下MPEG 2解码各代码占用时间百分比Tab .1 Profiling of MPEG2 decoder functions with DSPplatform解码步骤 运算所占时间比 /%子带合成滤波 83反量化 7帧分解 4逆矩阵及反规范化 4其他 22 算法及存储优化首先 ,利用合成窗系数的对称性Di =-D512- ii = 1,2255 (不包含 64,128,192) (1)对于特殊的点: D64 = D448 ;D128 = D384 ;D192 =D320 ;D0 =0;D256 =1144 989 014因此只需要存储 257 个点 ,就可以表示原来的 512个点 , 窗系数存储量减少了一半 .进一步对标准 ISO/IEC 11172 32附录 B 的位分配表观察可知 ,表 B2.b 是对表 B2.a 的扩展 ,表B2.d 也是对表 B2.c 的扩展,因此实际只需存储表B2.b 和 B2.d ,设计读表法就可以访问 4张表格的数据 , 位分配表存储量也降低为原来的一半 .子带合成滤波流程见标准 ISO/IEC1117232 附录图 A .2 ,标准中规定的流程复杂 ,中间变量多 .根据文献 可以对标准里的合成子带滤波器流程简化3 ,4 :PCMj =7i =0(X64 i+ j +16 D64 i+ j -X64i - j +48 D64 i+ j +32 ) 0 j 15 (2 a )PCM16 =7i =0(- X64 i+32 D64i +48 )j =16 (2b)PCMj =7i =0(- X64 i- j +48 D64 i+ j -X64i + j +16 D64 i+ j +32 ) 17 j 31 (2 c)Xi =31k =0cosi(2k +1)64 Sk0 i 31 (3)232 江南大学学报(自然科学版) 第4卷 其中 : Di 为窗系数 ; Sk 为子带样点 .经过以上变换 ,省略了中间变量 U 和 W .且利用余弦函数性质 , 由32点的 Xi 代替 64点 V i .简 化了子带合成滤波的步骤 ,并使存储量减少到一半以上, 为代码移植到 DSP 节省了存储空间 .计算式(3)时 ,利用 Byeong G .LEE 快速算法5 的改进算法将 32点 DCT进行分解 :X 2 n=15k =0S1 k cos(2 k +1) n Pi/32n =0,1,15 (4 a )X 2 n +1+X 2 n -1=15k =0S2 k cos(2 k +1) n Pi /32 n =0,1,16 (4 b)其中 , 初始条件 X- 1 = X1 (5 )S1 k = Sk + S31 - k (6)S2 k =2cos(2 k +1) Pi/64( Sk - S31 - k )(7)重复这样的运算 ,可进一步分解为更少点数的DCT ,每分解一次 ,乘法运算和加法运算可减少一半. 以32点 DCT 为例,乘法和加法运算分别为1024次和992 次.将其分解为两个 16 点的 DCT后, 乘法和加法次数分别减少到 529和527次 . 考虑到定点 DSP 的有限字长效应,实际只需分解一次,将32点 DCT 化成两个 16 点的 DCT .简化 子带滤波流程以及使用快速 DCT 变换后,子带合成滤波部分的运算量减少了约 60% .用 C 语言进行算法验证时 , 考虑到不同机器的通用性 ,对于解码后的 PCM 样点分别采用不同的格式封装 :对于 Intel 系列的机器,采用小端格式(Little Endian),故解码后样点以 wave 格式封装;对于 Motorola, Macintosh 等机器,采用大端格式(Big Endian ),因而解码后样点采用 aiff 格式封装 .这样解码后的音频就可直接用 winamp等软件进行播放 , 测试效果 .3 定点化程序及性能分析实现解码时描述算法采用浮点程序 ,以确保精度, 但速度慢 .为了在定点 DSP上实现解码 ,程序必须进行定点化 , 以有限精度实现 .定点化程序时 ,以浮点程序为模板 ,逐个将模块改造成定点 .每做完一个模块 ,将定点程序解码结果与浮点程序的解码结果进行比较,直到差值达到要求为止.每个模块改造前,先估计本模块内数据动态范围,再决定采用何种精度 . 其中余弦函数的定点运算通过查表法实现 , 即先把0,2间划 分为 212个小格子,然后把弧度值映射到小格子上 ,通过查表读取结果 .为了对定点化程序进行测试,由式(8)计算定点解码结果与浮点解码结果信噪比 :SNR =10lg(65 535 02)i(PCMfix - PCMfloat )2(8)其中 : PCMfix 为定点程序解码结果 ; PCMfloat 为浮点程序解码结果 ;65 535.0为两个16位 PCM样点之差的最大值 .有的文献以 PCM2float 为分子, 这样算出来的结果与特定的码流有关 , 若码流 PCM 样点值较大,计算出信噪比则较大 .而式(8)不受具体码流的影响 ,客观地对不同码流作出评价对比 .定点程序分别经过男声、 女声 ,小提琴声 ,海浪声和进行曲乐声等码流测试 , SNR 都在 7478 dB 范围内,获得了较好的效果 .4 定点 DSP实现音频解码算法TMS320DM642 是 Ti公司最新推出的一款针对多媒体处理领域的 DSP,它 在 C64x 的基础上 ,增加了许多外围设备和接口.频率为 600 MHz的DM642能够以 30帧的速度同时处理多达 4个分辨率为 D1(720480)的 MPEG2视频编码译码器 .此外, DM642 还能实时进行全面的 Main Profile atMain Level(MP ML)MPEG 2视频编码 ,具有 32MB外部 SDRAM、 4 MB 闪存、 组合视频输入/输出、 S 视频输入/输出、 VGA输出端口以及支持媒体流的以太网端口 .将程序移植到 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 )16 (9)经过测试 ,该式计算对性能没有影响 .332 第3期 张瑾等: 高清电视音频解码的定点 DSP 实现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配置工具里建立一个 LOG对象,在 Message窗口可实时观测程序进度 ,几乎不影响程序性能 .DSP/BIOS 提供两种数据传输模型 ,管道模型(pipe)用 于 PIP 和 HST 模块 ;流模型( stream)用 于SIO和 DEV 模块. 管道支持底层的通信 ,而流支持高级的与设备无关的 I/O .音频口输出时采用流模型, 流和 I/O 设备交互的数据流向如图 3所示.流模块( SIO)使用驱动程序(由 DEV 模块管理)与这些设备交互 . 控制输出前先进行初始化 ,即在 DSP/BIOS配置工具里定义一个 User Defined Devices对象,再使用音频口初始化函数_ EVMDM642_EDMA_AIC23_init 对此对象进行初始化.上层的API函
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。