partie 1 : Compression :

 

Traitement Huffman2 pour un bloc de pixels en grayscale

function [code_huff,dico]=traitement_huff2_gris(G,qualite)

%Codage HUFFMAN2 pour nuances de gris

%DCT

G=double(G)-128;

Gdct=dct2dim (G); 

%Quantification

Gquantifie=quantification (Gdct,qualite,0);

%Zigzag

Gzig=zigzag (Gquantifie);

%Encodage rle

Grle=encodage_rle (Gzig);

%Transformation en cell array

for i=1:length(Grle)

    coderle{i}= Grle(i);

end

[code_huff,dico]=huffman_2 (coderle);

code_huff=[code_huff 'e']; %Ajouter le 'e' qui marque la fin du code du bloc

dico{1,end+1}='#'; %Ajouter le '#' qui marque la fin de la première ligne du dico

dico{2,end}='#'; %Ajouter le '#' qui marque la fin de la deuxième ligne du dico