partie 1 : Compression :

 

Codage RLE pour une image en RVB

function coderle=testrle_rvb(file,qualite)

%Générer le code RLE à partir d'une image en couleurs (RVB) 

%Découpage en blocs 8X8

decoupage (file);

load fichiers_mat/matrices;

%Récupérer les matrices R,V et B

x=1;

while x<=t/64

    eval(['Z(:,:,1)' '=R' num2str(x) ';']);

    eval(['Z(:,:,2)' '=V' num2str(x) ';'] );

    eval(['Z(:,:,3)' '=B' num2str(x) ';']);

    eval(['matrice',num2str(x),'=Z;']);

    x=x+1; 

end % end while

save fichiers_mat/matrices;

%Générer le code RLE pour chaque bloc

load fichiers_mat/matrices;

x=1;

while x<=t/64

     [yy,ccb,ccr]=traitement_rle (eval(['matrice',num2str(x)]),qualite);

      eval(['y' num2str(x) '=yy;']);

      eval(['b' num2str(x) '=ccb;']);

      eval(['r' num2str(x) '=ccr;']);

      x=x+1; 

end % end while

save fichiers_mat/mat_y;

%Concaténer les codes RLE de chaque bloc pour former un seul code

yyy=obt_chaine (t/64,'y',1,0);

cb=obt_chaine (t/64,'b',1,0);

cr=obt_chaine (t/64,'r',1,0);

load fichiers_mat/mat_y;

Y=eval(['[' yyy ']']);

CB=eval(['[' cb ']']);

CR=eval(['[' cr ']']);

q=num2str(qualite);

coderle=[Y 'y' CB 'c' CR 'r' q];

save fichiers_mat/coderle;