%**********************************************************
%**            Využití DCT ke kompresi obrazu            **
%**                Diskrétní transformace                **
%**        Leos Marsalek Leos.Marsalek@tiscali.cz        **
%**       Jan Skapa Jeniczek.s@seznam.cz (c) 2003        **
%**********************************************************

% výpocet probiha na celem obrazku, to znamená ze se na obrázcích nebudou
% vyskytovat JPEGovské artefakty a spektrùm bude chybìt èásteèná lokalizace
% jako tomu je u JPEGu.

%Gen_obr; % generování obrázku www.sendme.cz/goro
pic=pic1;   % vyber obrazku se kterym se bude provadet komprese
Koef=70;    % kvantizacni koeficient cim vyssi timlepsi kvalita 0-100


[y,cb,cr]=komprese_ycbcr(pic);  % funkce provadi rgb->ycbcr a kompresi v kanalech Cb a Cr
Y=dct2(y);                      % vypocet kosinovech obrazu
CB=dct2(cb);
CR=dct2(cr);
[Y_U,Y_U_im,Y_N_im]=vyber(Y,Koef);      
% prahovaci funkce vybira co ulozit a co zahodit
[CB_U,CB_U_im,CB_N_im]=vyber(CB,Koef);
[CR_U,CR_U_im,CR_N_im]=vyber(CR,Koef);
uz_informace=[Y_U CB_U CR_U];           
% to jsou uzitecne informace ( uchovavaji se )

% rekonstrukce obrazu
pic_rek_uz=dekomprese_ycbcr(idct2(Y_U_im),idct2(CB_U_im),idct2(CR_U_im));
pic_rek_neuz=dekomprese_ycbcr(idct2(Y_N_im),idct2(CB_N_im),idct2(CR_N_im));


% zapsani obrazku do souboru
imwrite(pic_rek_uz,'pic1_komp_dct_uz.tif','tif');
imwrite(pic_rek_neuz,
'pic1_komp_dct_neuz.tif','tif');
clear Y CB CR y cb cr Y_U CB_U CR_U Y_N_im CB_N_im CR_N_im Y_U_im CB_U_im CR_U_im  ;