partie 1 : Compression :
Traitement Huffman2 pour une image en RVB
function [code_huff_y,code_huff_cb,code_huff_cr,dico_y,dico_cb,dico_cr]=traitement_huff2_rvb(matrice3,qualite)
%Codage HUFFMAN2 pour RVB
%Récupérer les matrices rouge,vert et blue
R=matrice3(:,:,1);V=matrice3(:,:,2);B=matrice3(:,:,3);
%Transformation du RVB > YCBCR
[Y,CB,CR]=toycbcr (R,V,B);
%DCT
Y=double(Y)-128; CB=double(CB)-128; CR=double(CR)-128;
Ydct=dct2dim (Y);CBdct=dct2dim (CB);CRdct=dct2dim (CR);
%Quantification
Yquantifie=quantification (Ydct,qualite,0);
CBquantifie=quantification (CBdct,qualite,1);
CRquantifie=quantification (CRdct,qualite,1);
%Zigzag
Yzig=zigzag (Yquantifie);
CBzig=zigzag (CBquantifie);
CRzig=zigzag (CRquantifie);
%Encodage rle
yrle=encodage_rle (Yzig);
CBrle=encodage_rle (CBzig);
CRrle=encodage_rle (CRzig);
%Transformation en cell array
clear codey;clear codecb;clear codecr;clear dico_y;clear dico_cb;clear dico_cr;
for i=1:length(yrle)
codey{i}= yrle(i);
end % end for
for i=1:length(CBrle)
codecb{i}= CBrle(i);
end % end for
for i=1:length(CRrle)
codecr{i}= CRrle(i);
end % end for
[code_huff_y,dico_y]=huffman_2 (codey);
code_huff_y=[code_huff_y 'e']; %FIN code
dico_y{1,end+1}='#';dico_y{2,end}='#'; % FIN dico
[code_huff_cb,dico_cb]=huffman_2 (codecb);
code_huff_cb=[code_huff_cb 'e']; %FIN code
dico_cb{1,end+1}='#';dico_cb{2,end}='#'; %FIN dico
[code_huff_cr,dico_cr]=huffman_2 (codecr);
code_huff_cr=[code_huff_cr 'e']; %FIN code
dico_cr{1,end+1}='#';dico_cr{2,end}='#'; %FIN dico