郭明松,张丽晖,周劲蕾,蔺吉虹,陈 芬
(宁波大学 信息科学与工程学院,浙江 宁波 315211)
随着信息技术的发展,21世纪被形象地称为信息时代、数字时代、多媒体时代。多媒体信息主要包括文字、声音、图像、图形和视频等内容,其中,视频又是多媒体信息中最重要的组成部分。无论是存储还是传输,数字视频都必须经过极大的压缩才具有实际意义,这就使得视频压缩技术成为多媒体技术的关键所在。目前最优秀的视频编码标准是H.264,但是它的优异性能是以巨大的运算量为代价的,这其中运动估计就占了70%,因此,对运动估计算法的研究具有很大的实用价值。
运动估计是视频编码中的一项核心技术,能有效去除序列图像的帧间冗余从而实现高效编码。它利用在同一场景中相邻两幅图像具有的时域相关性,在参考帧中搜索当前块的最佳匹配块并计算两块的相对位移量,即运动矢量。当前有很多经典的运动估计算法,如全搜索算法、三步搜索算法 3SS(Three Step Search)、菱形搜索算法 DS(Diamond Search)和六边形搜索算法 HEXBS(Hexa-gon Based Search)等。本文主要研究三步搜索算法在DSP平台上的移植,并加入人机接口,设计一个基于运动估计算法的DSP应用系统。
基于DSP实现该算法有以下优势:(1)用户开发自由度更大,支持多种个性化开发,可以满足市场不断提出的新的要求,在第一时间提升产品性能,增强产品的竞争能力;(2)DSP处理能力强,可以在一个DSP上同时实现多路音视频信号的压缩处理,还可提供很多视频专用功能,如视频滤波、高分辨显示输出和 OSD等;(3)外围接口丰富,开发周期短,可实现快速技术更新和产品换代;(4)芯片功耗低,为提高产品的稳定性提供可靠保障。
本文用SEED-DEC6437开发板、摄像头和液晶显示器等搭建了硬件平台,在其上实现对采集的实时视频的相邻两帧进行运动估计,在参考帧中找到最佳匹配块并计算出相应的运动矢量,同时加入人机接口,通过用户按键,灵活地切换到不同的工作模式。系统流程图如图1所示。
图1 基于运动估计算法的DSP应用系统整体流程图
整个系统的数据流程为:首先从CCD摄像头采集PAL制式模拟视频信号,通过视频解码芯片TVP5150将模拟信号解码成YCbCr422格式的数字图像信号[1],并通过数据总线将数据存储至DDR2,TMS320DM6437通过访问DDR2进行视频数据的相应处理。在本系统中,数据处理过程主要在于实现运动估计算法,通过CCS3.3软件中的Watch Window查看计算出的运动矢量。
在进行运动估计之前,首先要在SEED-DEC6437开发板上搭建视频回路,该回路包括视频输入模块、算法处理模块和视频输出模块3部分。SEED-DEC6437开发板上的TMS320DM6437处理器中集成的视频处理子系统(VPSS)包含视频处理前端(VPFE)[2]和视频处理后端(VPBE)[3]。VPFE用于视频输入,可以连接 PAL标准模拟视频输入信号,也可以连接数字视频输入信号。
系统视频输入是利用解码芯片TVP5150将模拟信号解码成YCbCr422格式的数字图像信号,再送入TMS320DM6437进行相应的图像处理。TVP5150是一款高性能的视频解码芯片,可以将PAL制式的视频信号或NTSC制式的视频信号转换成YCbCr422格式的数字信号。TMS320DM6437与TVP5150的连接框图如图2所示,在SEED-DEC6437开发板上接一路复合视频输入。
图2 TVP5150与TMS320DM6437链接示意图
TVP5150实时输出的视频图像数据为符合ITU-R BT.656标准的 YCbCr 4:2:2数字视频图像数据,其特点是,每个像素点具有自己单独的亮度信息Y,但是每两个相邻的像素共用同一组色度数据Cb和Cr。
TMS320DM6437视频输出是利用内置的VPSS的视频输出编码模块(VENC)中 4路 10 bit的 DAC输出,实现CVBS与VGA的输出。其中,CVBS输出接口使用了其中1路DAC,VGA输出接口使用了共3路的DAC。本系统在设计过程中主要采用以composite复合信号的形式来进行最终实时图像的输出显示。其视频输出连接示意图如图3所示。
图3 视频输出示意图
图4为H.264编码器的主体结构。其中,Fn为当前欲编码的帧,它是以宏块为单位进行编码处理的,每个宏块是以帧内或帧间模式进行编码。Fn-1是指前面已解码的多个参考帧,在帧间模式下,宏块根据参考帧Fn-1进行运动估计ME (Motion Estimation)和运动补偿(Motion Compensation)得到预测值P,预测值与当前帧Fn得到残差值,再对该残差值进行变换编码T与量化Q,得到变换量化系数;最后经墒编码输出到网络提取层 NAL(Network Abstraction Layer)。 Fn′为经过滤波得到的重构图像,它将被放入参考帧存储器作为下一帧或几帧编码的参考帧之一。其中,运动估计是基础,也是运算量最大的部分。
图4 H.264编码器流程
运动估计的基本思想是将图像序列的每一帧分成许多互不重叠的宏块,并认为宏块内所有像素的位移量都相同,然后对于当前帧中的每一块的前一帧或后一帧在某一给定搜索范围内,根据一定的匹配准则找出与当前块最相似的块,即匹配块由匹配块与当前块的相对位置计算出运动位移,所得的运动位移即为当前块的运动矢量。
基于块匹配的运动估计可以从块的模式选择、块匹配准则和搜索策略3个方面进行研究。
(1)在 H.264 编码标准中,有7个块的模式可供选择, 分别为 16×16、16×8、8×16、8×8、8×4、4×8、4×4,本文采用 8×8模式。
(2)运动估计算法中常用的匹配准则有最小绝对差(MAD)、最小均方误差 (MSE)和归一化互相关函数(NCCF)3种。在运动估计中,匹配准则对匹配的精度影响不大,由于求和绝对误差SAD (Sum ofAbsolute Difference)准则不需作乘法运算,实现简单、方便,因此使用最多,通常使用SAD代替MAD。SAD定义为:
其中,fk(m,n)是当前帧的亮度值,fk-1(m+i,n+j)为参考帧中相应块的亮度值。
(3)搜索策略是否恰当对运动估计的准确性、运动估计的速度都有很大影响。有关搜索策略的研究主要是解决运动估计中存在的运算复杂度和搜索精度这一矛盾。目前运动估计的搜索方法很多,有全搜索法(FS)、二维对数法(TDL)、三步法(TSS)、交叉法(CS)、新三步法(NTSS)、四步法(FSS)、菱形法(DS)和运动场自适应搜索算法(MVFAST)等。本文对三步搜索算法在DSP上的移植进行研究。
三步搜索算法描述如下:
(1)三步搜索算法以略大于最大搜索范围的一半开始进行搜索,计算搜索中心点四周的正方形区域,计算正方形8个点的SAD值,算出其中最小的一个也是最匹配的一个;
(2)搜索范围减半,在以匹配点为搜索中心的小正方形范围内继续搜索,计算小正方形的SAD值,再判断其中最小的一个;
(3)以匹配点为中心进行更小的正方形搜索,最终SAD值最小的宏块即为最匹配的宏块。
对采集到的相邻两帧图像用三步搜索算法进行处理,如图5所示。
经过三步搜索算法搜索到最佳匹配块后,将当前帧的当前块的坐标与最佳匹配块坐标相减,得到运动矢量。本文对8×8的块进行搜索,第1步中步长取4,第2步中步长取2,第3步中步长取1,搜索结果如图6所示。其中,temp为一个含9个元素的一维数组,存放9个点的SAD值;mvx和mvy为SAD值最小点的坐标,通过该坐标可以计算出相应的运动矢量。
人机接口如图7所示。通过键盘控制算法选择,同时在液晶上显示相应的算法名称。按键和液晶都是通过TMS320C5402 DSP控制,TMS320C5402DSP通过多通道缓冲串口McBSP与TMS320DM6437通信,从而实现上述功能。
图7 人机接口框图
为了增强系统的实时性和灵活性,本文使用了DSP/BIOS来调度任务。本文设置了一个硬件中断,两个任务,分别为McBSP硬件中断、视频回路任务和算法选择任务。设置两个任务的优先级相同,通过TSK_yield()函数来切换任务。DSP/BIOS的任务时序图如图8所示。
本文以SEED-DEC6437开发板为核心硬件,成功搭建了视频回路,并在CCS3.3环境下编写算法代码,实现了基于DSP的运动估计算法,取到了运动矢量。为了增强系统的灵活可控性和实时性,又成功加入了人机接口,成功实现了DSP/BIOS任务调度。
[1]Wu Xiaomin, Xu Weizhang, Zhu Nanhao, et al.A fast motion estimation algorithm forH.264 [C].International Conference on Signal Acquisition and Processing, IC5AP′10, 2010: 112-116.
[2]Jing Xuan,CHAU L P.An efficient three-step search algorithm for block motion estimation[J].IEEE Transactions on Multimedia, 2004, 6(3): 435-438.
[3]Texas Instruments Incorporated.TMS320DM6437 evaluation module(EVM)quick start installation guide[Z].2006.
[4]Texas Instruments Incorporated.TMS320DM643x DMP video processing front end(VPFE) user′s guide[Z].2008.
[5]王亮,徐佩霞.基于 DSP实时实现的H.264运动估计快速算法[J].小型微型计算机系统,2005,26(11):2025-2028.
[6]雷琳,张俊峰,刘京,等.一种基于 H.264的改进的运动估计三步搜索算法 [J].计算机技术与发展,2010,20(12):1-7.
[7]王恒,朱金秀.H.264快速运动估计算法研究[J].海大学常州分校学报,2007,21(4):24-27.
[8]蔡自兴,蒋冬冬,谭平,等.H.264中快速运动估计算法的一种改进方案 [J].计算机应用研究,2010,27(4):1524-1529.
[9]彭启琮.达芬奇技术——数字图像/视频信号处理新平台[M].北京:电子工业出版社,2008.