图像的帧内预测编码

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图像的帧内预测编码

设计内容:对一幅彩色或者灰度图像二维帧内预测编码,采用4阶线性预测器,根据最小均方误差原则(MMSE)设计预测器系数,并对预测误差进行量化处理,根据量化后的误差得到解码图像。

设计目的:掌握图像的预测编解码的原理。

课题要求:对任意大小的输入图像进行二维帧内预测编码,设计最佳预测器系数,比较不同图像预测器系数的共同点和不同点。对预测误差进行量化处理后,根据误差图像接到解码图像,对比图像质量,计算信噪比。以下是从网上找的

clc;

clear all;

close all;

I2=imread('D:\MATLAB7\tuxiang\messi.bmp');%读入图片

I=double(I2);%设定I是double类型

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);%把I(1,1)赋值给J(1,1)

J(m,1:n)=I(m,1:n);

for k=2:m-1

for l=2:n-1

J(k,l)=I(k,l)-(I(k,l-1)/2+I(k-1,l)/4+I(k-1,l-1)/8+I(k-1,l+1)/8);%前值预测,J为要拿来编码传输的误差

end

end

J=round(J)

cont=fwrite(fid,J,'int8'); %解码

cc=fclose(fid);

fid=fopen('mydata.dat','r');

I1=fread(fid,cont,'int8');

tt=1;

B=ones(m,n)

for l=1:n

for k=1:m

B(k,l)=I1(tt);

tt=tt+1;

end

end

B=double(B);

A=ones(m,n);

A(1:m,1)=B(1:m,1);

A(1,1:n)=B(1,1:n);

A(1:m,n)=B(1:m,n);

A(m,1:n)=B(m,1:n);

for k=2:m-1

for l=2:n-1

A(k,l)=B(k,l)+(I(k,l-1)/2+I(k-1,1)/4+I(k-1,l-1)/8+I(k-1,l+1)/8);% end

end

cc=fclose(fid);

A=uint8(A);

subplot(2,2,1),imshow(I2);

subplot(2,2,2),imshow(A);

subplot(2,2,3),imshow(mat2gray(A)

量化

[m,n]=size(J);

a=max(max(J)); %求出这个矩阵的最大数字

b=min(min(J)); %求出矩阵最小数字

c=20; %量化层数

t=round((a-b)/c); %量化间隔

for z=b:t:a

for p=1:m

for q=1:n

if((J(p,q)>z) & (J(p,q)<=(z+t)))

J(p,q)=(2*z+t)/2;

end

end

end

end

信噪比

%Matlab计算信噪比,程序如下

function snr=SNR(I,In)

% 计算信号噪声比函数

% by Qulei

% I :original signal

% In:noisy signal(ie. original signal + noise signal)

% snr=10*log10(sigma2(I2)/sigma2(I2-I1))

[row,col,nchannel]=size(I);

snr=0;

if nchannel==1%gray image

Ps=sum(sum((I-mean(mean(I))).^2));%signal power

Pn=sum(sum((I-In).^2));%noise power

snr=10*log10(Ps/Pn);

elseif nchannel==3%color image

for i=1:3

Ps=sum(sum((I(:,:,i)-mean(mean(I(:,:,i)))).^2));%signal power

Pn=sum(sum((I(:,:,i)-In(:,:,i)).^2));%noise power

snr=snr+10*log10(Ps/Pn);

end

snr=snr/3;

end

,

相关文档
最新文档