1、运动估计算法MATLAB课程设计课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 题目:运动估计算法初始条件:0 MA TLAB软件平台要求完成的主要任务:1.设计任务设计视频压缩系统中的运动估计算法:全搜索法(FS: Full Search)和三步法(TSS: T hree S t ep Search),比较二种方法的搜索点和每帧的峰值信噪比(PSNR: peaks i gnal t o no i s e ratio)2.设计要求编制算法代码;对视频进行运动估计;计算PSNR时间安排:答辩时间2013年1月24日。指导教师签名: 年 月系主任签名: 摘 要 错误!未定义书签。1运
2、动估计算法概念。错误!未定义书签。1.1运功估计算法基本思想 错误!未定义书签。1.2运动估计算法实验原理 错误!未定义书签。2设计原理和方法。错误!未定义书签。2.1三步法 错误!未定义书签。2.2新三步法4。2.3全搜索法。错误!未定义书签。2.4峰值信噪比。错误!未定义书签。3运动估计算法的MATLAB编程 错误!未定义书签。3.1全搜索法 错误!未定义书签。32三步法 错误!未定义书签。3.3全搜索法指标。错误!未定义书签。3.4三步法指标 错误!未定义书签。3.4仿真结果分析。错误!未定义书签。4小结与体会 错误!未定义书签。参考文献。错误!未定义书签。附录“错误!未定义书签。摘要运
3、动佔计的基本思想是尽可能准确地获得序列图像帧间的运动位移,即运动 矢量。因为运动估讣越准确,预测补偿的图像质量越高,补偿的残差就越小,补 偿编码所需位数越少,需要传输的比特率就越小。利用得到的运动矢量在帧间进 行运动补偿。补偿残差经过变换、量化、编码后与运动矢量一起经过爛编码,然 后以比特流形式发送出去。在视频编码和处理系统中,运动估计和运动补偿技术对降低视频序列时间冗 余度、提高编码效率起着非常关键的作用。运动估计的准确程度将直接决定视频 编码器的编码效率。关键词:运动佔计、运动补偿技术、位移(运动)矢量Abstr actThe b a s ic idea is that the m o t
4、ion estima t ion a s a ccura t e asp o s s i b 1 e t he ima g e s e q u e nee interfr a me mo t ion di s placement, i. e. the mot i o n vector. Motion e stimatio n more a cc u r ate p r e d i c tion c o m p e ns a tion, the h i g he r t h e i mage qualit y is comp e n s a t ed resi d u als i s snial
5、 1 er, le s s com pens a tion c oding b it s r equired, th e s ma 1 ler the transmi s sion b it r a te Per f o rming mot i o n c om p ens a t i o n u s ing t he mo tion vecto rob tained in t he i nt e rf r a me. C o mpensat i o n residu a 1 s throug h t r a n sformation, qua ntiza t ion, ent r opy-c
6、 o d ed t o g e t her with t h e mo t i on ve c t o r is enc o d e d , and then s e nt out in the form o f a bi t stre a m I n v i deo cod ing and p roce s sing s y stem, the m o t i on e stim a tion and moti o n comp ens a tion to re d uc e the t empo r a 1 re d u n dancy o f vide o se q uen c e t
7、o improve the codin g efficiency play s a c r u cia 1 role. Th e degree of ac c ur a cy o f t h e mo t io n es t ima t ion will d i r e c tly det e rmin e t he e nc o d ing e f f icie n cy o f the v i deo enc o der.Key words: Motion e stimatio n Moti o n comp e n s ati on t e chniques T h e v e ctor
8、 of di s p 1 ace ment (movem ent)多媒体信息处理1运动估计算法概念视频原始图像中存在着大量的信息冗余,如时间冗余、空间兀余、信息嫡兀余、 谱间冗余、儿何结构冗余、视觉冗余和知识冗余等等。运动估计是视频压缩编码 中的核心技术之一,采用运动估讣和运动补偿技术可以消除视频信号的时间冗余 以提高编码效率。如何提高运动估讣的效率,使运动估计算法的搜索过程更健壮、 更快速、更高效成为LI前研究的热点。运动佔计的基本思想是尽可能准确地获得序列图像帧间的运动位移,即运动 矢量。因为运动佔计越准确,预测补偿的图像质量越拓,补偿的残差就越小,补偿 编码所需位数越少,需要传输的比特率
9、就越小。利用得到的运动矢量在帧间进行 运动补偿。补偿残差经过变换、量化、编码后与运动矢量一起经过爛编码,然后 以比特流形式发送出去。运动估汁算法多种多样,大体上可以把它们分成四类:块匹配法、递归估计法、 贝叶斯估计法和光流法。其中块匹配运动佔计算法因其具有算法简单、便于v L SI实现等优点得到广泛应用。所以本文将重点介绍块匹配运动估计算法,并对各 种块匹配算法在计算速度和估计精度上进行简单比较。1.1运功估计算法基本思想运动估讣的基本思想是尽可能准确地获得序列图像帧间的运动位移,即运动 矢量。运动估计算法的曰标是效率和准确性。由于在成象的场景中一般有多个物 体作不同的运动,如果直接按照不同类
10、型的运动将图像分割成复杂的区域是比较 困难的。最直接和不受约束的方法是在每个像素都指定运动矢量,这就是所谓基 于像素表示法。这种表示法是对任何类型图像都是适用的,但是它需要佔计大量 的未知量,并且它的解时常在物理上是不正确,除非在佔计过程中施加适当的物理 约束。这在具体实现时是不可能的,通常采用基于块的物体运动表示法。因为运动估讣越准确,预测补偿的图像质量越高,补偿的残差就越小,补偿编码所需位 数越少,需要传输的比特率就越小。1.2运动估计算法实验原理在帧间预测编码中,由于活动图像邻近帧中的景物存在着一定的相关性。因 此,可将活动图像分成若干块或宏块,并设法搜索出每个块或宏块在邻近帧图像 中的
11、位置,并得出两者之间的空间位置的相对偏移量,得到的相对偏移量就是通 常所指的运动矢量,得到运动矢量的过程被称为运动估计。运动矢量和经过运动匹配后得到的预测误差共同发送到解码端,在解码端按照 运动矢量指明的位置,从已经解码的邻近参考帧图像中找到相应的块或宏块,和 预测误差相加后就得到了块或宏块在当前帧中的位置。运动估计的准确程度往往用补偿图像与原图像比较的PSNR来衡量表示。2设计原理和方法2.1三步法三步法是应用得相当广泛的一种次优的运动佔计搜索算法它的搜索区间一 般为卜7, 7即在候选区中与编码块相同坐标位置处为原点,将参考块在其上下左 右距离为7的范圉内按照一定规律移动移到一个位置就做匹配
12、讣算它总共进行 了三步搜索在下一次搜索时步长减半以前一步搜索得到的最优点为中心。下图为 三步法的搜索示意图。算法的中心思想是,采用一种由粗到细的搜索模式,从原点开始,按 用.一定步长取周围8个点构成每次搜索 /人人|的点群,然后进行匹配讣算,利用上一步搜索得到的最小块误差MBD点作相对于全搜索来比,大大减少了匹配运算的复杂度,而且数据读取比较规则。2.2新三步法TSS假定运动矢量分布特点是在搜索窗口中均匀分布,但事实证明运动矢 量是偏置中心的,Ren x iang Li等人在TSS的基础上提出了一种增强运动矢量中 心偏置搜索和减小补偿误差的新三步法。NTSS 是对TSS的一个改进,对运动量比较
13、小的视频序列如可视电话疗;列 有比较好的性能。对于绝大多数的视频序列,运动矢量的分布都是在中心位置上的概率最大,随着与中心位置的距离 的增大,概率会急剧地下降,这也就是 询面所说的运动矢量的中心偏移特 性。运动量比较小的视频序列的这一 特性会更加明显。NTSS算法在最好的悄况下只需 要做17个点的匹配,在最坏的情况 下需要做33个点的匹配,由于运动矢 量中心偏置在现实视频序列中是普 遍存在的,在通常悄况下,NTSS算法 需要做33点匹配的概率比较小,因此,在低速率视频应用中,如视频电话或视频会 议中,NTSS算法的优点可以得到较好的发挥。23全搜索法全搜索法(Fu 1 1 Se a r c h
14、 Method, FS )也称为穷尽搜索法,是对(M + 2dx ) x (N +2dy )搜索范围内所有可能的候选位置计算MAD (i,j)值, 从中找出最小MAD,其对应偏移量即为所求运动矢量。此算法虽汁算量大,但最 简单、可靠,找到的必为全局最优点。FS算法描述如下:从原点出发,按顺时针螺旋方向山近及远,在逐个像素处汁 算MAD值,直到遍历搜索范围内听有的点,然后在计算的所有点的MAD中找到最小值,该点所在位置即对应最佳运动矢量。但是正因为它是穷尽搜索因此会产生巨大的讣算量如7, 7的搜索区间每 个宏块16*16需讣算225个MAD值,这就直接制约了编码的实时实现。快速 算法本质上是一种
15、穷尽搜索法其计算量仍是相当巨大的。全搜索算法是简单也是效果最好的一种匹配算法,通过的全搜索匹配得到的 结果是全局最优的,但由于计算量很大,我们在编解码中往往不采用这种方法, 而只把他作为与其他算法的一种比较。获取图像分成N*N大小的块进行块匹配2.4峰值信噪比峰值信噪比(经常缩写为PSNR)是一个表示信号最大可能功率和影响它的表示 精度的破坏性噪声功率的比值的工程术语。山于许多信号都有非常宽的动态范围, 峰值信噪比常用对数分贝单位来表示。PSN R是“P eak S i goal to Noise Rati o”的缩写。peak的中文意思是顶点。而ratio的意思是比率或比列的。整个意 思就是
16、到达噪音比率的顶点信号,psnr是一般是用于最大值信号和背景噪音之间 的一个工程项LI。通常在经过影像圧缩之后,输岀的影像通常都会有某种程度与 原始影像不一样。为了衡量经过处理后的影像品质,我们通常会参考PSNR值 来认定某个处理程序够不够令人满意。PSNR计算公式如下:P eak就是指8 bits表示法的最大值2 55。M S E 指 Mean S qua r e Error(均方误差,各值相差的n次方和的平均值的n次平方根(这儿个字应该没 有),1 (角标n)指原始影像第n个pixel值,P (角标n)指经处理后的影像第n个p i xel值。PS NR的单位为dB。所以PSNR值越大,就代
17、表失真越少。PSNR是最普遍,最广泛使用的评鉴画质的客观量测法,不过许多实验结果 都显示,PSNR的分数无法和人眼看到的视觉品质完全一致,有可能PSNR 较高者看起来反而比PSNR较低者差。这是因为人眼的视觉对于误差的敬感度 并不是绝对的,其感知结果会受到许多因素的影响而产生变化(例如:人眼对空间 频率较低的对比差异敬感度较高,人眼对亮度对比差异的敬感度较色度高,人眼 对一个区域的感知结果会受到其周围邻近区域的影响)。(252、FSA7? = l()xloo -N1SE )ramGsize工(厂P)MSE = ;Franiesize3运动估计算法的MATLAB编程3.1全搜索法4.图 3-1-
18、4 DFD图3-1-3 帧间差值恢复后的第二帧團像图3-1-5恢复后的笫二帧图像181ss111111 !.八16tB1 k0Ii1 114 .L . sixT asp r iii12 ai1X/Bo1si i i10 1i110118ii* ;18 X X. c 1 1 L T J -r r 6* k I451i 4117S1z f . JS 1 11 J1114 图像% I I I I% I I I I% I I I I/c | |% | G | H | I I% I-I 一一 - I 一一% %11 = double (II);I2=double ( 12);row n u m c o
19、In u m = sized 1 );II=zero s (row num + 2 *dnic o lnum+ 2 *d m);II(dm+l : d m + rownum,dm+1 : din+ c o 1 n u m)=I 1;fo r i=l:dm11 ( i ?dm + 1 : dm + co 1 num) =11(d m+1 ,dm + 1 :d m+ c olnum);II(rownum+dm+i , dm+1:dm+ c ol n um)=II ( dm+rownum.dm+1 : d m+c o lnum); endfo r j = 1:dm11( 1:ro wnum+2 *
20、dm # j)=11( 1:r o wnum+2 * d m, dm+1);11(1:row n uni+ 2 *dm . c o 1 n u m+dm+j) =II(l:rownum+ 2 *dm , dm 十 colnum);end%下面进行全搜索算法b 1 ocksize=l 6 ;rowb 1 ock s = r ownum/bl o cksiz e;co 1 b lo c ks =c o 1 n um/ b locksize;A二999999999999 999 99999; %为了找到最小的均方误差A用于设定一个很大的初值Eij=o;xrecord= o n e s (16 # 1
21、6);%x r cco r d f y record用于存放匹酉快的块号,即运动矢星yreco r d = o nes( 1 6 , 16);d i f f =ze r o s ( 256 r 2 56); %这幅图的大小为2 5 6 *256ticfor x= 0:( r ow b lo c k s - 1 ) %x表示彳亍中第几个子块row = x*block s ize ;for y =0:(colb 1 ocks-1) %y表示列中第几个子块c ol=y*b 1 ocksiz e;% tempx=x * block s iz e+1 : ( x+1 ) * bio cksize;% t
22、empy=y*block s i ze+i : (y+1 ) *bloc ksize;for p=-dm:dmfo r q=-dm : dm %(p.q)表示X, y对应子块在前一帧所的搜索位置Ei j =0;Eij=sum( s u m(I2 (row+1 : ro w+b 1 ock s ize , c ol+l:col+blo cksize )-11( r o w+dm+p + 1: r ow+dm+p+blo c ks i z e ,col + dm + q+1 : col+ d m+ q +blocks ize ).A 2)/ ( b locks i zeA2);if EijAA=E
23、 i j ;xre cord( x + 1 ,y+ i ) =p;y r e c ord(x +ty+ 1 ) =q ;endendendtoeendendf igur e Jm s how(11,);title(,the first frame1);fi g urejmshow (12 # );t itle ( the s e c o nd f r a me );1111=12-11 ;fig u reJmsh o w (IIIIJ);title (帧间差值J;f i g ur e , imshow(diff,);t i t le ( DFDr);%t i zr利用全搜索算法匹配后的帧间差);for x= 0:( r owbl o cks-1 ) %ro w=x*bloc k s ize ;fo r y = 0 : (colblocks-1) %col=y*block s ize;III (row+l:row+block s izexo 1 + 1:col+b 1 ocks i ze)= I I(row+dm+x record(x 十 1 ,y + 1)+1 :row+ dm+xrecord(x+ Ly+ l)+b 1 oc k size, c o 1 +dm+ y reco r d(x+1 y+l)+ 1 :co 1 +
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1