partie 2 :DeCompression :

 

Décodage Huffman2 pour une image en RVB

function [r,v,b]=traitement_huff2_rvb_inverse(code_huff_y,code_huff_cb,code_huff_cr,dico_y,dico_cb,dico_cr,qualite)

%Décodage HUFFMAN2 pour RVB

%Enlever le 'e'

code_huff_y=code_huff_y(1:end-1);

code_huff_cb=code_huff_cb(1:end-1);

code_huff_cr=code_huff_cr(1:end-1);

%Décodage HUFFMAN2 pour Y, CB et CR

codey=huffman_2_inverse(code_huff_y,dico_y);

codecb=huffman_2_inverse(code_huff_cb,dico_cb);

codecr=huffman_2_inverse(code_huff_cr,dico_cr);

%String>Int

codey=denormaliser_type (codey);

codecb=denormaliser_type (codecb);

codecr=denormaliser_type (codecr);

 

%Transformation en cell array

codey=cell2mat(codey);

codecb=cell2mat(codecb);

codecr=cell2mat(codecr);

%Décodage rle

y=decodage_rle (codey);

cb=decodage_rle (codecb);

cr=decodage_rle (codecr); 

%Zigzag

yquan=zigzaginv (y);

cbquan=zigzaginv (cb);

crquan=zigzaginv (cr); 

%Quantification inverse

ydct=quantificationinverse (yquan,qualite,0);

cbdct=quantificationinverse (cbquan,qualite,1);

crdct=quantificationinverse (crquan,qualite,1);

%DCT inverse

y=dct2diminv (ydct);

cb=dct2diminv (cbdct);

cr=dct2diminv (crdct);

y=y+128;cb=cb+128;cr=cr+128;

%Transformation de couleurs inverse

[r,v,b]=torvb (y,cb,cr);