新闻中心

EEPW首页 > 消费电子 > 设计应用 > 基于OMAP的MPEG-4实时解码器的实现

基于OMAP的MPEG-4实时解码器的实现

作者:姜 超 刘济林 王兴国时间:2008-08-06来源:电子技术应用收藏

  2.3 程序的优化考虑

本文引用地址:http://www.amcfsurvey.com/article/86685.htm

  (1)合理分配存储位置。TMS320C55x的片内存储器容量小而存取速度快,片外存储器容量大但存取速度慢。在分配存储器的时候应考虑到这个特点合理地安排程序各部分。对于那些使用频繁的变量应考虑放在片内,如VLC表、运动矢量、反量化、反DCT的系数以及其它中间变量都应放在片内,而对于那些执行次数比较少或者比较大的变量如参考帧和当前解码出的帧则应该放在片外。此外由于编译和分配空间是以文件为单位的,所以应当把使用频繁的函数尽量放在相同的几个文件中,再将这几个文件放入片内存储器以高效地利用有限的片内资源。

  (2)数据传输的管理。对于视频解码工作来说,TMS320C55x的片内存储器资源不是很多,必须合理利用。例如一帧4:2:0的QCIF(176×144)图像,如果以紧凑的方式(2个字节存到一个16bit的字中)存放也需要18K字。因此不可能在解码时把一整帧都放在片内,而应考虑使用DMA在需要时把图像的一部分传入片内进行处理。此外,为了使CPU访问和DMA传输同时无冲突地进行,将数据访问设计成乒乓结构。在解I帧时片内准备两个大小为一宏块行的存储区用于存放YUV数据,CPU将解码的一宏块行数据放在其中一块后,DMA把这一宏块行的数据传输到片外对应的位置,同时CPU解下一宏块行的数据并将结果放在另外一块存储区,DMA再传送此块的数据,如此反复执行。选择两宏块行大小的原因是不能使用片内太多的存储器资源,同时如果每次解码传输的数据太少将过于频繁地启动DMA,导致效率下降,折衷考虑决定在片内为解码数据开辟两宏块行大小的缓存。而在解P帧的时候因为要先读入参考帧的某些数据所以更为复杂。在片内开辟两块缓存,用以存放对Inter宏块进行运动补偿所需的参考帧中对应搜索范围内的数据,同时准备两个宏块大小的片内空间用于存放当前宏块解码的结果(为描述方便称为M1和M2)。此时需要使用两个DMA通道,通道1负责将解当前宏块进行运动补偿时所需的参考帧部分数据读到片内缓存中,通道2负责将解码的数据传输到片外对应的空间。先启动通道1读所需参考帧数据到缓存1,CPU用这些数据和读入的码流对Inter宏块进行运动补偿解出当前宏块的数据放入M1,同时通道1读下一宏块所需的参考帧数据到缓存2。之后CPU、通道1、通道2并行工作,CPU利用缓存2的数据解下一宏块放入M2,通道1再读数据到缓存1中,通道2将解码的数据从M1传输到片外对应的空间,如此循环,P帧利用DMA解码如图3所示。

  (3)使用TI提供的IMGLIB库函数。IMGLIB是专门为图像处理和视频提供的库,用来提高视频处理速度。这些库函数中有的是软件库函数,是用汇编写成的高效代码例如反量化函数IMG_dequantize_8x8等;有的则是硬件库函数,它们利用1510芯片中一些专门为视频编解码的硬件加速模块来处理数据,如利用反DCT模块的IMG_idct_8x8等,这些函数处理数据的速度更快,效率更高。在使用某些库函数的时候需要按照其接口的要求调整。

  (4)使用内部固定的intrinsics指令,这些指令主要执行一些简单的算术操作,由于它们是由优化的汇编代码写成,因而使用它们可以提高代码执行的效率。

  (5)其它一些优化考虑和措施。为了使程序的效率更高,采用了一些代码优化的措施,例如将一些循环内部展开,特别是对多重循环的控制,如果外层循环较少,可将内层循环展开,把转移条件结合起来,以减少内层与外层之间的相互联系,减少判断转移并实现并行操作。又如利用DMA来代替原有的复制函数、为方便将浮点数定点化、使用移位操作代替乘除法等。此外,在应用到多媒体通信中,采用支持数据分割的方法来有效控制无线通信中可能产生的误码。

  3 测试结果

  使用QCIF(176×144)的两测试码流foreman和carphone(各编码100帧)在使用数据分割和没使用数据分割的情况下得到的解码速度(包括显示部分)如表1所示。

  从表1可以看出,本文提出的方法基本上能够满足实时解码的需求,即使对比较复杂的使用数据分割的序列,仍能达到25帧/秒(fps)以上,图像的质量也比较好,因此适合在无线终端实现多媒体的应用。

  平台因其独有的双核结构和为无线应用提供了一个强大的软硬件基础。本文结合其在解码中应用的实例,具体阐述了1510的软件优化开发方法,并基本上实现了实时解码,希望能对使用OMAP或准备使用的开发人员具有借鉴意义。

  参考文献

  1 Jamil Chaoi. Dedicated Systems Magazine. 2001 Q2.
  2 谢 凯.开放式的多媒体应用平台OMAP.电子技术应用,2001;27(11)
  3 TI公司. OMAP1510 Multimedia Processor Technical Reference Manual. Dec.2002
  4 宋 彬,常义林.视频通信抗误码方法研究的新进展.电子学报,2002;(10)
  5 ISO/IEC JTC 1/SC 29/WG 11 N 3056, Information technology-Coding of audio-viusal objects-Part2:Visual, Version 1.0, Jan ,2000


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭