partie 2 :DeCompression :

 

DCT inverse

function IDCT = dct2diminv(DCT)

% Application de la DCT deux dimensions inverse      

%Construction d'une matrice de valeurs du cosinus

for i=0:7

    for x=0:7

    valcos(i+1,x+1)=double(cos(((2*x +1)*i*pi)/16));  

    end % end for

end % end for 

%Construction d'une matrice de valeurs de 1/4*c(i)*c(j)

 c=1/sqrt(2);   

for i=0:7

    for j=0:7

    if i==0 || j==0

         cicj(i+1,j+1)=double((1/4)*c); % 0.1768

    end % end if

      

    if i~=0 && j~=0

         cicj(i+1,j+1)=double(1/4); %0.2500

    end % end if  

    if i==0 && j==0

         cicj(i+1,j+1)=double((1/4)*c*c);  %0.1250

    end % end if

    end % end for

end % end for

%Traitement

IDCT = double(zeros(8,8));

for x = 1 : 8

    for y = 1 : 8

        sigma = double(0);

        for i = 1 : 8

            for j = 1 : 8

                sigma = sigma + (cicj(i,j) * double(DCT(i,j)) * valcos(i,x) * valcos(j,y));

            end % end for

        end % end for

        IDCT(x,y) = sigma;

    end % end for

end % end for

IDCT=round(IDCT); %arrondir