嵌入式视频图像系统压缩算法的实现和优化

2009-07-06 19:22:00来源:电子产品世界 作者:张春光热度:

引言

随着网络技术和多媒体技术的发展.视频通信的需求逐渐增加.同时最新的视频压缩标准不断推出。MPEG-4(MovingPicturesExpcrtsGroup-4)是国际运动图像像编码专家组(MPEGMovingPictureExpertsGroup)199811月制定[1]的,它不同于其他标准.是个而向多媒体应用的压缩标准.1次提出了基于对象的压缩方法.使交互功能的实现成为可能。日前基于PC平台的MPEG-4视频编码器[2]在互联网的远程教育和高清晰电影等方面己经有较多的应用.但在硬盘录像机、多媒体通信等视频业务的嵌入式系统应用更为广泛。以DSP为嵌入式图像处理核心的系统,具有开发周期短,编程灵活的特点,因此DSP图像处理系统成为了研究热点。

DSPs结构特点

TMS320C6455TI(TcxasInstrumcntsIncorporatcd)公司推出的最新高速DSP芯片[3]。具体结构见图1。最主要的特点从是结构[4]上采用了VLIW(VLIW:VeryLongInstructionWord)超长指令字内核结构.具有1200MHzCPU,每个周期可以同时执行832bit的指令。速度可达到9600MIPS(1200MHzX8条指令=4800MIPS)。片内采用2级高速缓存结构.片外存储器有很强大的外部存储器接口EMIF(ExtcrnalMcmoryIntcrfacc)。这些性能能满足视频图像处理的实时性要求.确立了它在高端多媒体应用中的地位。



1TMS320C6455DSP的内核结构

Cache的优化

最大程度地发挥Cache效率是达到期望编码器性能的一个关键因素[5]Cache高速的存储访问速度可以减少CPU延迟周期.提高处理器的效率。TMS320C64xDSP有两级存储结构应用片内数据和程序存储。对于L1Cache能够以CPU的同样速度访问。L2Cache既可以作数据空间也可以作为程序空间使用.L2是片外空间与L1的桥梁。

MPEG-4视频编码器是以宏块为单位进行编码处理,只有当前宏块处理完成所有的过程后,视频编码器才能传送一个宏块。直接出现的缺点是:一个视频编码器整个代码大于L1P。每个宏块在L1PL2之间的传送过程,导致严重的Cache缺失。而一个单独的宏块从片外存储空间到片内空间的搬移,也不能发挥EDMA(ExtendedDirectMemonyAccess)的优势。
  
为避免发生的Cache大量缺失,采取3种方法[6]

1.整个编码算法应该分成3个模块:宏块编码、运动估计、运动重建,这样使每个模块代码都适合L1P。每次循环以宏块组为单位,宏块组的大小由L1D大小决定。在宏块编码模块中,当宏块组被传送到片内,他们一起经过DCTDirectCosineTransform、量化、熵编码,直到宏块组编码模块结束为止,L1D才刷新这组宏块。同时对应的程序包括DCT、量化、熵编码也被保存到L1P

2.尽量减少数据类型的大小。可以用8位数据就不用16位数据,这样不但节省空间,而且能提高L1D的使用效率。因为L1D行的大小是固定的,在一行内如果采用8位数据比16位数据可多放一倍,从而减少程序中Cache缺失情况的发生。

3.采用乒乓缓存结构,提高Cache命中率,减少CPU等待时间。

在视频编码模块中,当前帧和参考帧数据放在片外存储器,在编码过程中需要依次对图像帧中的每个宏块进行操作。但宏块直接从片外内存读取,这就会发生CPU等待。可以设置两对片上缓存,一对存放当前帧宏块,一对存放参考帧宏块,它们以乒乓方式工作。乒乓缓冲工作模式如图1所示。编码前EDMA将片外的当前帧中编码宏块数据和在搜索范围内的参考帧宏块数据搬移到片上内存。在用EDMA搬移数据到其中一块片内缓存的同时,,处理器可以对另一块缓存中的数据进行处理。经过这样的修改,CPU一直从片上读取存储器数据大大减少了CPU阻塞情况的发生,提高了编码速度。



2乒乓缓冲存储器结构

SAD和像素插值的优化

SAD(SumofAbsoluteDifference)是运动估计模块[7]关键模块,DM642提供了一套丰富的视频和图像专用指令可以高效实现运动估计算法。

LDNDW(LoadNon2alignedDoubleWord)指令,可以一次读取64位无边界数据。这个指令可以从当前帧中和参考帧一次读取88位像素数据。因此可以提高当前帧和参考帧宏块数据的搬移速度。

SUBABS4(SubtractwithAbsolute)指令,计算在两组8位[FS:Page]数据包之间的4个绝对值之差。
  
DOPTPU4是个计算48位数据乘积求和的运算。两个DOPTPU4可在单周期内并行,所以可极大地提高SAD的计算速度。具体步骤如下:

1)两个LDNDW指令从当前帧和参考帧取8个像素;
2)两个SUBABS4计算8个像素的差值;
3)两个DOTPU4计算8个像素乘积求和。

像素插值也是个计算量大的模块。AVG4指令可执行48位数值平均值计算。AVG2可以执行216位数据的平均计算。SHRMB(ShiftRightandMergeByte)右移第2个寄存器,把第1个寄存器的低位作为高字节。AVG4计算平均值,SHRMB处理结果。

此外笔者参考TI提供的IMGLIB支持库该库中还包括了许多常用的图像和视频处理的函数,以完成DCTIDCT(InverseDirectCosineTransform)、中值滤波等功能,这些函数都是经过汇编优化。完全能够实现软件流水,执行效率很高。采用标准序列Coastguard.yuv编码5帧数据,主要函数优化前后性能比较,如表1所示。

1 各个函数优化性能比较



Tab1Performanceoffunctionsbyanalysis

利用EDMA进行数据搬移,提高存储速度

TMS320C6455DSP支持EDMA功能,是在没有CPU介入的情况下,访问存储器的一种工作方式。它可以直接通过EDMA通道,提前把外设或片外存储器中的数据直接搬移到片上内存。对CPU来说,所访问的数据总是在片内的,没有阻塞的情况发生,减少了CPU等待时间[8]

使用TICSL(ChipSupportLibrary)支持功能[910]。它有专门的DMA模块,便于对DMA的各个存储器控制。主要使用DAT函数,进行DMA存储器间数据传送。其中使用DATcopy()DATfill()
  
就象常用的内存操作memcpymemset一样,只需要在API接口指出源地址、目的地址、长度、维数属性等,而不需要再去考虑具体的寄存器。

下面的代码就是把SDRAM中的90CIF288×352格式视频序列中的一帧,利用EDMA在缓存中进行搬移。

  DAT_open(DAT_CHANNY,DAT_PRI_LOW,DAT_OPEN_2D);
  Copy2FrameBuf(Unit8*framebuf)
  {
  if((tempbuf_rawbuf)>13685852)
  if(tempbuf!=NULL)
  free(tempbuf);
  return1;
  }
  DAT.copy(tempbuf,framebuf,152064);
  Tembuf+=152064;
  return0;
  }

编码器的总体性能

2 MPEG-4编码器的性能



从表2数据可以看出,对于不同的视频序列帧率提高至少5倍以上,信噪比虽然有所降低,但是由于频帧的大幅度提高并达到实时要求而得到弥补,显示效果更好。

结语

笔者论述了TMS32OC6455DSP平台上进行视频编码算法优化的措施。主要考虑根据DSP自身特点和视频算法进行优化,通过实验可以验证达到30/秒以上的实时性要求,随着IC技术的发展和DSP价格的降低,基于DSP的视频编码器的商用价值越来越明显。

责任编辑:xiaolin

为您推荐

中国已经完成数字视频广播系统的技术构建

由信息产业部科技司主持的“基于数字音视频编解码技术标准(AVS)的数字视频广播编码播出与接收系统”12月14日在北京通过专家技术鉴定。这标志着中国已经完成数字视频广播系统的技术构建。这个项目由联合信源数字音视频技术(北京)有限公司牵头,中国科学院计算技术研究所、上海广电(集团)有限公司中央研究院、北京算通科技发展有限公司合作完成。包括5位院士在内的14位专家参加了该项目的技术鉴定。专家组认为,这个项目

视频会议自动录制、点播方案

编者按随着企业信息化建设的加速、有不少单位都建了视频会议系统,本方案将做为视频会议的有力补充,为您提供会议直播、会议自动录制、录制后会议的点播等功能。一、前言随着企业信息化建设的加速、有不少单位都建了视频会议系统,本方案将做为视频会议的有力补充,为您提供会议直播、会议自动录制、录制后会议的点播等功能。二、实现方案葵花流媒体系统是一套适合在任何网络中运行的网络视频应用平台,可以提供:VOD点播、视频直播、

视频会议系统面临的问题

视频会议系统是一种人与人之间实现异地语音、视频实时交流的工具,它的本质作用就是把用户的声音、摄下的画面以及各种数据资料实时地传送给其他用户,人们只要有沟通的需要,就有它的用武之地。但目前,视频会议系统的应

视频编码

MPEG-1/2MPEG-1标准主要针对SIF标准分辨率(NTSC制为352X240;PAL制为352X288)的图像进行压缩.压缩位率主要目标为1.5Mb/s.较MJPEG技术,MPEG1在实时压缩、每帧数据量、处理速度上有显著的提高。但MPEG1也有较多不利地方:存储容量还是过大、清晰度不够高和网络传输困难。MPEG-2在MPEG-1基础上进行了扩充和提升,和MPEG-1向下兼容,主要针对存储媒体、数字电视、高清晰等应用领域,分辨率为:低(352x288),中(720x480),次高(1440x1080),高(1920x1080)。MPEG-2视频相对MPEG-1提升了分辨率,满足了用户高