資源描述:
《預(yù)測(cè)圖像編碼和解碼.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、題目:7,對(duì)圖象p04-01實(shí)施預(yù)測(cè)編碼和解碼,并將原圖象與解碼圖象進(jìn)行方差計(jì)算,考察解碼后圖象的視覺(jué)效果。預(yù)測(cè)模型為:原理:預(yù)測(cè)就是根據(jù)過(guò)去時(shí)刻的樣本序列,運(yùn)用一種模型,預(yù)測(cè)當(dāng)前的樣本值。預(yù)測(cè)編碼是易于實(shí)現(xiàn)的,如差分脈沖編碼調(diào)制(DPCM)方法。這種方法中,對(duì)每一個(gè)像素灰度值,都用先前掃描過(guò)的像素灰度值去減,求出它們的差值,此差值稱為預(yù)測(cè)誤差,預(yù)測(cè)誤差被量化和編碼與傳送。接收端再將此差值與預(yù)測(cè)值相加,重建原始圖像像素信號(hào)。由于量化和傳送的僅是誤差信號(hào),根據(jù)一般掃描圖像信號(hào)在空間及時(shí)間鄰域內(nèi)各像素的相關(guān)性,預(yù)測(cè)誤差分布更加集中,即熵值比原來(lái)圖像小,可用較少的單位像素比特率
2、進(jìn)行編碼,使得圖像數(shù)據(jù)得以壓縮。DPCM系統(tǒng)的基本系統(tǒng)框圖如下圖所示。在該系統(tǒng)中,為時(shí)刻的亮度取樣值。預(yù)測(cè)器根據(jù)時(shí)刻之前的樣本,,……,對(duì)作預(yù)測(cè),得到預(yù)測(cè)值。與之間的誤差為:量化器對(duì)進(jìn)行量化得到。編碼器對(duì)進(jìn)行編碼發(fā)送。接收端解碼時(shí)的預(yù)測(cè)過(guò)程與發(fā)送端相同,所用預(yù)測(cè)器亦相同。接收端恢復(fù)的輸出信號(hào)是的近似值,兩者的誤差是當(dāng)輸入圖像信號(hào)是模擬信號(hào)時(shí),“量化”過(guò)程中的信息損失是不可避免的。當(dāng)足夠小時(shí),輸入信號(hào)和DPCM系統(tǒng)的輸出信號(hào)幾乎一致。其它預(yù)測(cè)方法還有以下幾種:(1)前值預(yù)測(cè):用同一行中臨近的前一像素預(yù)測(cè),即(2)一維預(yù)測(cè):用同一行中前面若干像素預(yù)測(cè)。(3)二維預(yù)測(cè):
3、用幾行內(nèi)像素預(yù)測(cè)。(4)三維預(yù)測(cè):利用相鄰兩幀圖像信號(hào)的相關(guān)性預(yù)測(cè)。程序?yàn)椋ㄒ唬篶lc;I=imread('lena512.bmp');I2=I;I=double(I);fid=fopen('mydata.dat','w');[m,n]=size(I);J=ones(m,n);J(1:m,1)=I(1:m,1);J(1,1:n)=I(1,1:n);J(1:m,n)=I(1:m,n);J(m,1:n)=I(m,1:n);fork=2:m-1forL=2:n-1J(k,L)=I(k,L)-(I(k,L-1)/2+I(k-1,L)/2);endendJ=round(J);co
4、nt=fwrite(fid,J,'int8');cc=fclose(fid);fid=fopen('mydata.dat','r');I1=fread(fid,cont,'int8');tt=1;forL=1:nfork=1:mI(k,L)=I1(tt);tt=tt+1;endendI=double(I);J=ones(m,n);J(1:m,1)=I(1:m,1);J(1,1:n)=I(1,1:n);J(1:m,n)=I(1:m,n);J(m,1:n)=I(m,1:n);fork=2:m-1forL=2:n-1J(k,L)=I(k,L)+((J(k,L-1))/2+(J(
5、k-1,L))/2);endendcc=fclose(fid);J=uint8(J);subplot(1,2,1),imshow(I2);title('原圖');subplot(1,2,2),imshow(J);title('解碼圖像');fork=1:mforl=1:nA(k,l)=J(k,l)-I2(k,l);endendfork=1:mforl=1:nA(k,l)=A(k,l)*A(k,l);endendb=sum(A(:));s=b/(m*n)%兩幅圖的方差運(yùn)行結(jié)果為:程序?yàn)椋ǘ篶lc;i1=imread('lena512.bmp');i=double(i1)
6、;[m,n]=size(i);p=zeros(m,n);y=zeros(m,n);y(1:m,1)=i(1:m,1);p(1:m,1)=i(1:m,1);y(1,1:n)=i(1,1:n);p(1,1:n)=i(1,1:n);y(1:m,n)=i(1:m,n);p(1:m,n)=i(1:m,n);p(m,1:n)=i(m,1:n);y(m,1:n)=i(m,1:n);fork=2:m-1;forl=2:n-1;y(k,l)=(i(k,l-1)/2+i(k-1,l)/2);p(k,l)=round(i(k,l)-y(k,l));endendp=round(p);subplo
7、t(3,2,1),imshow(i1);title('原灰度圖像');subplot(3,2,2),imshow(uint8(y),[0256]);title('利用模型預(yù)測(cè)后的圖像');subplot(3,2,3),imshow(abs(p),[01]);title('編碼的絕對(duì)殘差圖像');j=zeros(m,n);j(1:m,1)=y(1:m,1);j(1,1:n)=y(1,1:n);j(1:m,n)=y(1:m,n);j(m,1:n)=y(m,1:n);fork=2:m-1;forl=2:n-1;j(k,l)=p(k,