您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 视频信号的运动估计和运动补偿算法
数字视频实验报告班级:电信科0801班学号:姓名:实验报告二一、实验名称:视频信号的运动估计和运动补偿算法二、实验目的在视频编码和处理系统中,运动估计和运动补偿技术对降低视频序列时间冗余度、提高编码效率起着非常关键的作用。运动估计的准确程度将直接决定视频编码器的编码效率。它极大地消除了视频序列的帧间相关性。运动估计算法的复杂性将直接决定视频压缩编码系统的复杂性,如何提高运动估计的效率,使运动估计算法的搜索过程更快速、更高效一直是人们研究的热点。掌握运动估计的块匹配算法,以及快速运动估计算法。三、实验内容:1、分析基于块匹配的全搜索运动估计算法程序,画出motionEstAnalysis.m和motionEstES.m文件流程图2、编程补充完成costFuncMAD.m文件中最小绝对误差计算函数costFuncMAD()和imgPSNR.m文件中峰值信噪比PSNR计算函数imgPSNR()的程序,最终输出运动矢量场;3、掌握运动补偿算法,编程实现motionComp.m文件中对目标帧的运动补偿重构函数motionComp();4、了解多种快速运动估计算法,例如三步法搜索法、二维对数法、菱形搜索法等。5、总结实验结果,比较各种搜索算法的性能和所需时间。四、实验原理在帧间预测编码中,由于活动图像邻近帧中的景物存在着一定的相关性。因此,可将活动图像分成若干块或宏块,并设法搜索出每个块或宏块在邻近帧图像中的位置,并得出两者之间的空间位置的相对偏移量,得到的相对偏移量就是通常所指的运动矢量,得到运动矢量的过程被称为运动估计。运动矢量和经过运动匹配后得到的预测误差共同发送到解码端,在解码端按照运动矢量指明的位置,从已经解码的邻近参考帧图像中找到相应的块或宏块,和预测误差相加后就得到了块或宏块在当前帧中的位置。运动估计的准确程度往往用补偿图像与原图像比较的PSNR来衡量表示。五、实验程序1、motionEstAnalysis.m文件流程图读取*.AVI文件并播放文件开始设定块大小和搜索步长取帧的范围1i44取第i帧,取P帧为i帧后两帧读第i、p帧的数据,分别存入imgI、imgP计算i帧的大小分别调用自定义函数计算运动矢量利用运动估计参数重构P帧图像计算峰值信噪比PSNR计算代价i30?分别显示i帧、p帧和p帧重构帧画运动矢量图结束noysenoyes2、motionEstES.m文件流程图3、计算最小绝对误差程序(补充costFuncMAD.m文件程序)sum=0;fori=1:nforj=1:nDifference=abs(currentBlk(i,j)-refBlk(i,j));sum=Difference+sum;end;end;cost=sum/(n.^2);4、计算峰值信噪比PSNR程序(补充imgPSNR.m文件程序)[rowcol]=size(imgP);sum2=0;fori3=1:rowforj3=1:colsum2=sum2+(imgComp(i3,j3)-imgP(i3,j3)).^2;%累加求和endends=sum2/(row*col);psnr=10*log10((n*n)/s);5、对目标帧的运动补偿重构程序(补充motionComp.m文件程序)开始初始化:定义块中心,矢量及代价计算运动矢量比较得到代价最小的运动矢量,作为块的运动矢量计算块中心点最后分别计算I帧各个块的块中心,运动矢量及代价结束[rowcol]=size(imgI);img=zeros(row,col);mbCount=0;fori=1:mbSize:row-mbSize+1forj=1:mbSize:col-mbSize+1mbCount=mbCount+1;k1=motionVect(1,mbCount);k2=motionVect(2,mbCount);img(i:i+mbSize-1,j:j+mbSize-1)=imgI(i+k1:i+mbSize-1+k1,j+k2:j+mbSize-1+k2);end;end;imgComp=img;六、实验结果1、运动矢量场图像2、对目标帧的运动补偿重构程序第I帧视频原始图像第P帧视频原始图像第P帧视频运动补偿重构图像3、视频重构视频峰值信噪比PSNRPsnr=29.349
本文标题:视频信号的运动估计和运动补偿算法
链接地址:https://www.777doc.com/doc-4710047 .html