APP下载

H.264中运动估计算法优化及其在DM642上的实现

2010-08-28杜鲜艳韩晓军

天津工业大学学报 2010年1期
关键词:子块存储器编码器

杜鲜艳,韩晓军

(天津工业大学信息与通信工程学院,天津 300160)

H.264中运动估计算法优化及其在DM642上的实现

杜鲜艳,韩晓军

(天津工业大学信息与通信工程学院,天津 300160)

针对H.264标准的多模式运动估计和运动补偿算法编码模式复杂、计算量大的不足,通过对H.264参考模型JM中运动估计算法的分析,对算法进行了优化,利用DM642嵌入式系统的硬件特点,在存储器系统上实现其优化.实验结果表明:与参考模型JM的运行估计算法相比,提出的优化方法有效地降低了整个编码器的运行时间,在恢复质量(用峰值信噪比表征)平均下降0.05 dB、码速率增加不超过1.4%的前提下,编码速率提高35%~45%,表明了该算法在编码速度方面有明显的提高.

H.264;块匹配;DM642;运动估计优化

由ITU-T视频专家组(VCEG)和ISO/IEC运动图像专家组(MPEG)联合制定的H.264/AVC[1]视频编解码标准,着重于解决压缩的高效率和传输的高可靠性.它采用多参考帧、双向预测、1/4像素精度的运动补偿、多种块模式搜索和率失真优化技术,使得编码质量和压缩比与原有的视频编码标准相比都有了明显的提高.在H.264中,多参考帧、小数像素估计及多模式运动矢量的使用,使编码的图像质量大大提高,但代价是高精度、大耗时的运动估计.对H.264编码器各个算法模块进行分析可以看出,运动估计模块的计算量占整个编码器运算量80%以上.要想提高编码速度,提高运动估计部分的速度是关键.对于运动估计模块的快速算法,国内外已有许多研究成果[2-3].如Chanbari M[2]提出的小交叉模板SCSA(small cross search algorithm)、ZHU和MA[3]提出的菱形搜索法(DS,diamond search)经过多次改进,已经成为目前模板快速算法中性能较为优异的算法之一.本文提出了基于图像分析预测和阈值控制的运动估计算法,并结合硬件平台DM642的存储器优化,在不降低图像质量和增加码率的基础上,提高了搜索速度,以适应视频图像在网络传输中的应用.

1 H.264的运动估计和运动补偿技术

从图像序列中提取出有关物体运动的信息的过程称为运动估计,其表达方式是运动矢量;其中前一帧相应的运动目标物体根据运动矢量补偿的过程称为运动补偿.

图1所示为运动估计和补偿的原理图.

图1 运动估计和运动补偿原理图Fig.1 Motion estimation and motion compensation schematic

图1中的运动估计模块是根据一定的匹配原则,从一个或多个参考帧中,寻找与当前帧最大匹配的帧.运动补偿则是通过当前帧与参考帧作差而得到的残差,对残差经过编码和变换并携带一些解码器所需要的信息输出到解码器.残差经过解码,与参考帧相加后又重构原图像.重构的帧被存储下来作为后面预测所需要的参考帧.目前,几乎所有的运动补偿算法都是利用块匹配算法,使当前块与匹配块的SAD(sum of absolute difference)[4]最小.

式中:(i,j)为位移矢量;fk和fk-1分别为当前帧和参考帧的像素值;M×N为块的大小.

2 块匹配准则

在运动估计过程中,根据一定的匹配准则来得到当前编码块的最佳匹配块.常用的误差匹配准则函数有平均绝对差(MAD)、均方误差(MSE)、归一化互相关函数(NCCF)和绝对误差和函数(SAD).块匹配准则就是把图像划分为许多子块,认为子块内所有像素的位移量是相同的.对于某一时间t,图像帧k中的某一子块如果在另一时间t-t1的帧k-1中可以找到若干与其相似的子块,则称其中最为相似的子块为块匹配,并认为该块匹配是帧中相对应子块位移的结果,位移矢量中两帧中相应子块的坐标决定,其算法原理如图2所示.

为提高编码的准确度和减少计算量,H.264标准采用块匹配大小可变的运动补偿方法来达到这个目的.该方法在移动一致的区域使用大尺度的匹配块,在运动边缘区域使用小尺度的匹配块,其特有的灵活性使得编码效率明显改善.

图2 块匹配算法原理Fig.2 Block-matching algorithms

3 基于DM642的运动估计和运动补偿的优化和实现

3.1 DM642 EVM存储器系统

DM642三层次的存储器系统图如图3所示.

图3 三级存储器系统Fig.3 Tertiary storage system

DM642 EVM的存储系统[5]由片内存储和片外存储两部分组成.其中,片内内存采用2级缓存结构:第1级包括相互独立的L1P(16 kbit)和L1D(16 kbit),只能作为高速缓存使用;第2级L2(256 kbit)是一个统一的程序/数据空间,可以整体作为SRAM映射到存储空间,也可以将Cache和SRAM混合使用.第3级是片外外存,一般由SDRAM构成.L1、L2和片外SDRAM构成了整个存储系统的层次结构.DM642还提供了64个独立通道的EDMA(enhanced direct memory access)控制器负责片内L2存储器与片外外存及其他外设之间的数据传输.

3.2 编码器在DM642上的优化

3.2.1 算法级优化

根据运动估计算法,提出了基于图像分析预测和阈值控制的运动估计算法.其主要流程是通过对图像的块匹配分析,利用周边相邻块对当前块的运动矢量进行预测,并设定自适应阈值.当匹配达到或超过阈值时,停止搜索.这样会大大节约搜索时间,减少搜索计算量.与以往的搜索方法相比较,该方法在搜索窗32时,平均每块搜索点数为3~4,比全搜索算法的速度提高了1 000多倍.与新三步法和菱形搜索法等一些经典的搜索方法相比较,其优势也是很明显的.通过对3组视频序列的分析处理,新算法在保持视频质量的前提下,明显地提高了编码速度,PSNR损失小于0.05 dB,码率增大1.4%.这对于运动估计算法基本可以忽略不计.

3.2.2 存储器级优化的实现

在存储器级优化中,通过直接调用DAT相关函数DAT_open、DAT_copyd等和使用较底层的EDMA相关函数,直接对EDMA的相关模块进行配置和操作,可优化存储器,提高编码速度.对于H.264编码器,待处理数据包括当前图像和若干参考图像.把这些数据都放入片内RAM处理很难达到处理的实时性,本文算法中将这些数据都放在片外,编码时把部分数据用EDMA搬到片内,具体方法如下:

(l)在片内 RAM开设 4个缓冲区:src_bufA、src_bufB、ref_bufA、ref_bufl3,用于存放编码宏块和参考窗数据(参考帧中搜索区域内的数据).

(2)在编码第1个宏块之前把编码宏块和参考窗数据分别用QDMA从片外RAM搬到缓冲区src_bufA和ref_bufA中.

(3)编码src_bufA中的数据时,启动QDMA,把下一宏块数据和参考窗数据从片外RAM分别搬到缓冲区src_bufB和ref_bufB中.

(4)编码src_bufB中的数据时,启动QDMA,把下一宏块数据和参考窗数据从片外RAM分别搬到缓冲区src_bufA和ref_bufA中.

(5)如此循环直到一帧图像编码结束.

4 仿真结果

本文使用PC上的仿真环境CCS3.3对编码器的性能进行测试.选择C64xx tds510usb Emulator仿真器,对3个典型的标准视频序列“Foreman”(运动剧烈)、“Carphone”(中等运动)、“Claire”(运动较小)进行实验研究,每个序列为100帧、QCIF格式,Y∶U∶V比为4∶2∶0模式.对H.264参考模型JM进行修改并与JM进行比较,给出相应的实验结果,如表1、图4~图6所示.

表1 编码器优化前后结果比较Tab.1 Encoder results between before and after optimization

图4 Foreman序列Fig.4 Foreman sequence

图5 Carphone序列Fig.5 Carphone sequence

图6 Claire序列Fig.6 Claire sequence

根据实验结果可以看出,经过一系列优化以后,函数运行的时钟周期数大大减小,运动搜索时使用的SAD函数甚至仅仅为优化前的3%左右,内插函数和运动补偿函数也为优化前的20%~40%.主函数的性能明显提高,仅占优化前时钟周期数的35%.优化算法可以在PSNR降低小于0.05 dB、比特率增加不超过1.4%的前提下,整体编码速率提高35%~45%,对于运动较小的序列,该方法的效果尤其显著.

5 结束语

本文针对H.264编码中运动估计和运动补偿的复杂计算,通过对算法和存储器的优化提高了编码速率,并将该优化方法应用到视频的编码中,实验结果表明与现有的优化方法比较,本文的方法在保持图像质量的前提下,有效地降低了算法的运算复杂度,大大提高了H.264编码的速率.

[1] Joint Video Team of 1TU-Tand150/IECJTCI,Draft ITU-T Recommendation and Final Draft International Standard of Joint Video Specification[S/OL].[2004-03-20].http://www.itu. int/home/index.html.

[2] GHANBARI M.The cross-search algorithm for motion estimation[J].IEEE Trans Communication,1990,38(7):950-953.

[3] ZHU Shan,MA Kai-Kuang.A new diamond search algorithm for fast block matching motion estimation[J].IEEE Trans on Image Processing,2000,9(2):287-290.

[4]WIEGAND Thomas,SULLIVAN Gary J,JON Tegaard Gisle B.Overview of the H.264/AVC video coding standard [J].IEEE Trans on Circuits and Systems for Video Tech,2003,13(7):560-576.

[5]李方慧,王 飞.TMS320C6000系列DSPs原理与应用[M].北京:电子工业出版社,2005.

Optimization of H.264 motion estimation based on DM642

DUXian-yan,HANXiao-jun
(School of Information and Communication Engineering,Tianjin Polytechnic University,Tianjin 300160,China)

The multi-mode motion estimation algorithm and motion compensation algorithm of H.264 standard have the problems of complicated coding mode and large quantity of calulation.Combining DM642 embedded system hardware characteristics,through analyzing motion estimation algorithm from H.264′s reference model JM,the algorithm and memorg system are optimized.The experiment results show that comparing with reference model JM,the algorithm optimizes the H.264 encoder and decreases the encoding time efficiently.Moreover,on the premise that peak-value of signal to noise ratio(PSNR)just drop 0.05 dB and code speed just increase 1.4%,encoding rate increases 35%-45%.It means that this algorithm increases coding speed with little quality fall of the reconstructed image.

H.264;block-matching;DM642;motion estimation optimization

book=1,ebook=2

TP391

A

1671-024X(2010)01-0085-04

2009-08-31

杜鲜艳(1984—),女,硕士研究生.

韩晓军(1958—),女,副教授,硕士生导师.E-mail:hanxiaojun@tjpu.edu.cn

猜你喜欢

子块存储器编码器
基于八叉树的地震数据分布式存储与计算
融合CNN和Transformer编码器的变声语音鉴别与还原
静态随机存储器在轨自检算法
基于特征值算法的图像Copy-Move篡改的被动取证方案
基于两层分块GMM-PRS 的流程工业过程运行状态评价
基于波浪式矩阵置换的稀疏度均衡分块压缩感知算法
基于FPGA的同步机轴角编码器
应用旋转磁场编码器实现角度测量
任意2~k点存储器结构傅里叶处理器
基于数字信号处理的脉冲编码器