partie : Compression :
Traitement Huffman1 pour un bloc de pixels en RVB
function [code_huff_y,code_huff_cb,code_huff_cr,dico_y,dico_cb,dico_cr]=traitement_huff_rvb(matrice3,qualite)
% Codage HUFFMAN1 pour un bloc 8x8 RVB
%Récuper rouge,vert,blue
R=matrice3(:,:,1);V=matrice3(:,:,2);B=matrice3(:,:,3);
%Transformation en YCBCR
[Y,CB,CR]=toycbcr (R,V,B);
%Application de la 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);
%Transformer le code RLE en cell aray
clear fichiers_mat/codey;clear fichiers_mat/codecb;clear fichiers_mat/codecr;
clear fichiers_mat/dico_y;clear fichiers_mat/dico_cb;clear fichiers_mat/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
%Codage HUFFMAN1 pour chaque les matrices Y,CB et CR
[code_huff_y,dico_y]=traitement_huffman (codey); %Y
code_huff_y=[code_huff_y 'e'];
dico_y{1,end+1}='#';
dico_y{2,end}='#';
[code_huff_cb,dico_cb]=traitement_huffman (codecb); %CB
code_huff_cb=[code_huff_cb 'e'];
dico_cb{1,end+1}='#';
dico_cb{2,end}='#';
[code_huff_cr,dico_cr]=traitement_huffman (codecr); %CR
code_huff_cr=[code_huff_cr 'e'];
dico_cr{1,end+1}='#';
dico_cr{2,end}='#';