《運(yùn)動(dòng)估計(jì)作業(yè) MATLAB仿真》由會(huì)員分享,可在線閱讀,更多相關(guān)《運(yùn)動(dòng)估計(jì)作業(yè) MATLAB仿真(6頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、 運(yùn)動(dòng)是視頻序列的一個(gè)主要特點(diǎn)之一運(yùn)動(dòng)估計(jì)技術(shù)是視頻壓縮領(lǐng)域中最重要、發(fā)展最快的技術(shù)之一,它是提高編碼效率的主要途徑。研究快速有效的運(yùn)動(dòng)估計(jì)算法一直是視頻編碼領(lǐng)域的熱點(diǎn)問題
運(yùn)動(dòng)估計(jì)主程序
clear all
mbSize=16;
p=7;
filename='hao.yuv';
fp=fopen(filename,'r');
width=176;
height=144;
i=17;
fseek(fp,i* 1.5 *width*height,'bof');
bufI=fread(fp,width*height,'uchar');
imgI=double((reshap
2、e(bufI,width,height))');
imgI0=uint8((reshape(bufI,width,height))');
Figure1,imshow(imgI0);
title('第10幀');
imgI=double(imgI0);
fseek(fp,0.5*width*height,'cof');
bufP=fread(fp,width*height,'uchar');
imgP0=uint8((reshape(bufP,width,height))');
figure,imshow(imgP0);
title('第35幀');
imgP=do
3、uble(imgP0);
將搜索中心定在搜索框的最左上角點(diǎn)。
搜索中心從左至右,從上至下移位,并計(jì)算每一個(gè)點(diǎn),直到計(jì)算完搜索框內(nèi)所有點(diǎn)。
比較所有計(jì)算的點(diǎn),最小值點(diǎn)即為最佳匹配點(diǎn)。
全搜索法
[motionVect, computations] = motionEstES(b,a,blocksize,p);
imgComp = motionComp(a, motionVect, blocksize);
c=b-imgComp;
figure(2);
subplot(121);
imshow(uint8(imgComp));
4、
title('全搜索法運(yùn)動(dòng)估計(jì)得到的第35幀');
subplot(122);
imshow(uint8(c));
title('與第35幀的誤差');
ESpsnr = imgPSNR(b, imgComp, 255);
、
先以中心點(diǎn)為搜索中心,進(jìn)行四周±4點(diǎn)距離搜索,計(jì)算9個(gè)點(diǎn),得到最小值點(diǎn)。
將搜索中心移至最小值點(diǎn),進(jìn)行四周±2點(diǎn)距離搜索,計(jì)算9個(gè)點(diǎn),得到最小值點(diǎn)。
將搜索中心移至最小值點(diǎn),進(jìn)行四周±1
5、點(diǎn)距離搜索,計(jì)算9個(gè)點(diǎn),得到最小值點(diǎn),此最小值點(diǎn)即為最終的搜索結(jié)果作為運(yùn)動(dòng)估計(jì)的最優(yōu)匹配點(diǎn)。
三步法
[motionVect,computations ] = motionEstTSS(b, a, blocksize, p)
imgComp = motionComp(a, motionVect, blocksize);
c=b-imgComp;
figure(3);
subplot(121);
imshow(uint8(imgComp));
title('三步法運(yùn)動(dòng)估計(jì)得到的第35幀');
6、 subplot(122);
imshow(uint8(c));
title('與第35幀的誤差');
TSSpsnr = imgPSNR(b, imgComp, 255);
先以中心點(diǎn)為搜索中心,進(jìn)行大鉆石搜索,計(jì)算9個(gè)點(diǎn)。
如果9個(gè)點(diǎn)的最小值點(diǎn)不在大鉆石的中心,則將大鉆石的中心移至該點(diǎn),重復(fù)大鉆石搜索,直到最小值點(diǎn)處于大鉆石中心為止。
在大鉆石的中心點(diǎn)切換到小鉆石搜索模式,共搜索5個(gè)點(diǎn),其中值最小的點(diǎn)即為最終的搜索結(jié)果作為運(yùn)動(dòng)估計(jì)的最優(yōu)匹配點(diǎn)。
四步法
[motionVect,computations ] = moti
7、onEst4SS(b, a, blocksize, p)
toc
imgComp = motionComp(a, motionVect, blocksize);
c=b-imgComp;
figure(4);
subplot(121);
imshow(uint8(imgComp));
title('四步法運(yùn)動(dòng)估計(jì)得到的第35幀');
subplot(122);
imshow(uint8(c));
title('與第35幀的誤差');
SS4psnr = imgPSNR(
8、b, imgComp, 255);
鉆石法
[motionVect,computations ] = motionEstDS(b, a, blocksize, p)
toc
imgComp = motionComp(a, motionVect, blocksize);
c=b-imgComp;
figure(5);
subplot(121);
imshow(uint8(imgComp));
title('鉆石法運(yùn)動(dòng)估計(jì)得到的第35幀');
subplot(122);
imshow(uint8(c));
title('與第35幀的誤差');
DSpsnr = imgPSNR(b, imgComp, 255);