Vous êtes sur la page 1sur 8

TP3 Codage vido I-codage en mode INTRA : Question 1 Codage des couleurs en Y U V:

BENDRIS Amine et AMARA Ahmed

Le modle YUV dfinit un espace colorimtrique en trois composantes. La premire reprsente la luminance et les deux autres reprsentent la chrominance. YUV est utilis dans les systmes de diffusion tlvisuelle PAL et NTSC. Le systme SCAM utilise quant lui l'espace colorimtrique YDbDr, driv de YUV. Question 2 Question 4 code : >> fid = fopen(foreman.qcif,r);
>> [compY,compU,compV]=yuv_readimage(fid,qcif);

code : size(compY) On obtient compY = 144 176 compU = 88 72 compV = 88 72 on voie bien que taille de la composantes Y est plus grand que celle de U et V qui sont d'ailleur egale en alternat a chaque fois ( en une ligne c'est U qui vaut 2 en l'autre c'est V ), Question 5 &-6 : code : fopen('foreman.qcif','r'); [compY,compU,compV]=yuv_readimage(fid,'qcif'); gama = [3,2,1,0.8,0.6,0.4]; for j=1:5 fid = fopen('foreman.qcif','r'); for i=1:10 [Irec,PSNR,bpp]=encodeINTRA(compY,gama(j)); end end les images : l'image de droite est avec un gama de valeur 3 et celle de gauche est avec un gama 0,4

Question 7 : PCNR Moyen : code : fopen('foreman.qcif','r'); PSNRMoyen = zeros(1,6); debit = zeros(1,6); bppMoyen = zeros(1,6); gama = [3,2,1,0.8,0.6,0.4]; for j=1:6 fid = fopen('foreman.qcif','r'); for i=1:10 [compY,compU,compV]=yuv_readimage(fid,'qcif'); [Irec,PSNR,bpp]=encodeINTRA(compY,gama(j)); PSNRMoyen(j)=PSNRMoyen(j)+PSNR; bppMoyen(j)=bppMoyen(j)+bpp; end end for j=1:6 PSNRMoyen(j)=(PSNRMoyen(j)/10) bppMoyen(j)=(bppMoyen(j)/10) debit(j)=bppMoyen(j)*144*176*15 end figure,plot(debit,PSNRMoyen)

Question 8 : En augmentant le dbit le PSNR augmente aussi. c'est monotone et plus on a un PSNR plus grand plus la qualit de l'image ou de vido est meilleur.

II-codage en mode INTER : Question 9 :


fopen('foreman.qcif','r'); PSNRMoyen = zeros(1,6); debit = zeros(1,6); bppMoyen = zeros(1,6); gama = [3,2,1,0.8,0.6,0.4]; for j=1:6 fid = fopen('foreman.qcif','r'); [compY,compU,compV]=yuv_readimage(fid,'qcif'); [Irec,PSNR,bpp]=encodeINTRA(compY,gama(j)); PSNRMoyen(1)=PSNRMoyen(1)+PSNR; bppMoyen(1)=bppMoyen(1)+bpp; %for i=2:10 % [compY,compU,compV]=yuv_readimage(fid,'qcif'); % [Irec,PSNR,bpp]=encodeINTRA(compY,gama(j)); % PSNRMoyen(j)=PSNRMoyen(j)+PSNR; % bppMoyen(j)=bppMoyen(j)+bpp;

%end end for j=1:6 PSNRMoyen(j)=(PSNRMoyen(j)/1) bppMoyen(j)=(bppMoyen(j)/1) debit(j)=bppMoyen(j)*144*176*15 end figure,plot(debit,PSNRMoyen)

rsulta :

Question 10 : code :
fopen('foreman.qcif','r'); PSNRMoyen = zeros(1,6); debit = zeros(1,6); bppMoyen = zeros(1,6); gama = [3,2,1,0.8,0.6,0.4]; for j=1:6 fid = fopen('foreman.qcif','r'); [compY,compU,compV]=yuv_readimage(fid,'qcif'); [Irec,PSNR,bpp]=encodeINTRA(compY,gama(j)); PSNRMoyen(j)=PSNRMoyen(j)+PSNR; bppMoyen(j)=bppMoyen(j)+bpp; for i=2:10 tmp = Irec; [compY,compU,compV]=yuv_readimage(fid,'qcif'); compY = compY - tmp; [Irec,PSNR,bpp]=encodeINTRA(compY,gama(j)); PSNRMoyen(j)=PSNRMoyen(j)+PSNR; bppMoyen(j)=bppMoyen(j)+bpp; Irec = Irec + tmp; end end for j=1:6 PSNRMoyen(j)=(PSNRMoyen(j)/10) bppMoyen(j)=(bppMoyen(j)/10) debit(j)=bppMoyen(j)*144*176*15 end figure,plot(debit,PSNRMoyen)

le rsultat obtenu obtenue dans la figure qui suit montre bien que pour un rapport signal a bruit quivalent on a rduit le dbit de moiti ce qui implique que l'utilisation de cette mthode est beaucoup mieux que la premiere

Question 12 :

Question 13: Plus on a un dbit lev plus la valeur du PSNR augmente et qui dit PSNR plus grand dit image de meilleur qualit, Question 14: le rsultat obtenu obtenue dans la figure qui suit montre bien que pour un rapport signal a bruit quivalent on a rduit le dbit de moiti ce qui implique que l'utilisation de cette mthode est beaucoup mieux que la premire

III-Compensation en mouvement : question 15 :


fopen('foreman.qcif','r'); PSNRMoyen = zeros(1,6); debit = zeros(1,6); bppMoyen = zeros(1,6); gama = [3,2,1,0.8,0.6,0.4]; for j=1:6 fid = fopen('foreman.qcif','r'); [compY,compU,compV]=yuv_readimage(fid,'qcif'); [Irec,PSNR,bpp]=encodeINTRA(compY,gama(j)); PSNRMoyen(j)=PSNRMoyen(j)+PSNR; bppMoyen(j)=bppMoyen(j)+bpp; tmp = Irec; for i=2:10

[compY,compU,compV]=yuv_readimage(fid,'qcif'); %compY = compY - tmp; %[Irec,PSNR,bpp]=encodeINTRA(compY,gama(j)); [pred,MFx,MFy,bppMV] = PicturePred(compY,tmp,16,8); [Irec,PSNR,bpp]=encodeINTRA(compY-pred,gama(j)); PSNRMoyen(j)=PSNRMoyen(j)+PSNR; bppMoyen(j)=bppMoyen(j)+bpp; tmp = Irec + tmp; figure,imagesc(tmp),colormap(gray); end end for j=1:6 PSNRMoyen(j)=(PSNRMoyen(j)/10) bppMoyen(j)=(bppMoyen(j)/10) debit(j)=bppMoyen(j)*144*176*15 end figure,plot(debit,PSNRMoyen)

c'est pas correct