partie 1 :Compression :

DCT

function DCT = dct2dim(matrice)

% Application de la DCT deux dimensions sur un bloc 8x8  

%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

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

for i = 1 : 8

    for j = 1 : 8

        sigma = double(0);

        for x = 1 : 8

            for y = 1 : 8

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

            end % end for

        end % end for

        DCT(i,j) = cicj(i,j) * sigma;

    end % end for

end % end for

 DCT=round(DCT); % arrondir