partie 1 : Compression :

 

Traitement Huffman1 pour un bloc de pixels en grayscale

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

% Cette fonction fait la compression HUFFMAN1 d'un bloc de pixels 8x8

%Appliquer la DCT

G=double(G)-128;

Gdct=dct2dim (G);

%Quantification

Gquantifie=quantification (Gdct,qualite,0);

%Zigzag

Gzig=zigzag (Gquantifie);

%Encodage rle

Grle=encodage_rle (Gzig); 

%Transformer en cell array

for i=1:length(Grle)

    coderle{i}= Grle(i);

end % end for

[code_huff,dico]=traitement_huffman (coderle);

code_huff=[code_huff 'e']; % 'e' pour marquer la fin du code du bloc

dico{1,end+1}='#'; % '#' fin du dico du bloc

dico{2,end}='#';