📄 matlab帧内预测编码源程序.txt
字号:
%读入一帧QCIF的文件的灰度图%
FM=fopen('D:\foreman.qcif','rb');
Y0=fread(FM,176*144,'uchar');
for i=1:176
for j=1:144
A(i,j)=Y0((j-1)*176+i);
end
end
A=A';
%将这帧灰度图像分成8*8的块%
for m=1:18
for n=1:22
for i=1:8
for j=1:8
T(i,j)=A((m-1)*8+i,(n-1)*8+j);
end
end
B(:,:,m,n)=T;
end
end
% for m=1:18
% for n=1:22
% subplot(18,22,22*(m-1)+n);
% imshow(B(:,:,m,n),[0 255]);
% end
% end
%对一帧图像进行垂直预测%
%创建一个四维的全零数组D0%
D0=zeros(8,8,18,22);
%垂直帧内预测%
for m=18:-1:2
for n=1:22
for j=1:8
D0(:,j,m,n)=B(8,j,m-1,n);
end
end
end
for n=1:22
for j=1:8
D0(:,j,1,n)=B(1,j,1,n);
end
end
%将垂直预测好的块拼成一幅图像%
for m=1:18
for n=1:22
E0=D0(:,:,m,n);
for i=1:8
for j=1:8
N0((m-1)*8+i,(n-1)*8+j)=E0(i,j);
end
end
end
end
%求预测参差%
H0=A-N0;
subplot(3,1,1);
imshow(A,[0 255]);
subplot(3,1,2);
imshow(N0,[0 255]);
subplot(3,1,3);
imshow(H0,[0 255]);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -