52 lines
No EOL
1.3 KiB
Matlab
52 lines
No EOL
1.3 KiB
Matlab
% Aymeric Arnould, Tom Colinot
|
|
% TP3
|
|
% Codage INTER (2/3)
|
|
% Questions 12
|
|
|
|
%clear all;
|
|
|
|
n=5; %Nombre d'images à coder
|
|
gamma=1:10; %Pas
|
|
|
|
PSNRmoy=[];
|
|
bpsmoy=[];
|
|
|
|
|
|
|
|
for i=1:length(gamma)
|
|
g = gamma(i);
|
|
|
|
file = fopen('Foreman.qcif','r');
|
|
[compY,~,~]=yuv_readimage(file,'qcif');
|
|
PSNR_seq=[];
|
|
bpp_seq=[];
|
|
|
|
%Codage de la première image
|
|
[I_rec,PSNR,bpp] = encodeINTRA(compY,g);
|
|
Y(:,:,1) = compY;
|
|
Yc(:,:,1) = I_rec;
|
|
PSNR_seq(1) = PSNR;
|
|
bpp_seq(1) = bpp;
|
|
|
|
%Pour les images suivantes, soustraction de l'image n-1 à l'image n avant
|
|
%codage
|
|
for k=2:n
|
|
[compY,~,~]=yuv_readimage(file,'qcif');
|
|
Yk = compY - Yc(:,:,k-1); % différences par rapport à l'image décodée précédente
|
|
[I_rec,PSNR,bpp] = encodeINTRA(Yk,g);
|
|
|
|
Y(:,:,k) = Yk;
|
|
Yc(:,:,k) = I_rec + Yc(:,:,k-1); % reconstruction à l'aide de l'image décodée précédente
|
|
PSNR_seq(k) = PSNR;
|
|
bpp_seq(k) = bpp;
|
|
end
|
|
|
|
PSNRmoy(i) = mean(PSNR_seq);
|
|
bpsmoy(i) = mean(bpp_seq)*size(compY,1)*size(compY,2)*15;
|
|
|
|
end
|
|
|
|
figure(1);
|
|
subplot(131); plot(gamma,PSNRmoy); xlabel('gamma'); ylabel('PSNR moyen');
|
|
subplot(132); plot(gamma,bpsmoy); xlabel('gamma'); ylabel('Debit moyen (bps)');
|
|
subplot(133); plot(bpsmoy,PSNRmoy); xlabel('Debit moyen (bps)'); ylabel('PSNR moyen'); |