Manip5.m 1.3 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
% 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');