%**********************************************************
%**     komprese prevodem do YCbCr barevneho prostoru    **
%**                 Diskrétní transformace               **
%**      Leos Marsalek Leos.Marsalek@tiscali.cz          **
%**           Jan Skapa     (c) 2003                     **
%**********************************************************
Gen_obr;    % generování obrázku www.sendme.cz/goro
pic=pic5;   % vyber obrazku se kterym se bude provadet komprese
ypic=rgb2ycbcr(pic); % prepocet barevneho prostoru RGB -> YCbCr
Y=ypic(:,:,1);       % vybrani svelnosti
velikost=size(ypic)
for k=1:2:velikost(2)   % Vlastni komprese
    
for l=1:2:velikost(1)
        Cb(round(l/2),round(k/2))=ypic(l,k,2);        
        Cr(round(l/2),round(k/2))=ypic(l,k,3);
    
end
end



velikost=size(Cb)           % dekomprese
for k=1:velikost(2)*2-1
    
for l=1:velikost(1)*2-1
        Cb_r(l+1,k+1)=Cb(round(l/2),round(k/2));        
        Cr_r(l+1,k+1)=Cr(round(l/2),round(k/2));
        Cb_r(l,k)=Cb(round(l/2),round(k/2));        
        Cr_r(l,k)=Cr(round(l/2),round(k/2));
    
end
end
ypic_r(:,:,1)=Y;            
ypic_r(:,:,2)=Cb_r;
ypic_r(:,:,3)=Cr_r;
pic_r=abs(ycbcr2rgb(ypic_r));   
% prepocet zpet na RGB
for k=1:320                     % Normalizace kvuli chybam vzniklym ztratou clenu
    
for l=1:240                 % a kvuli zobrazovani matlabu 0<x<1
        
if pic_r(l,k,2)>21    
        pic_r(l,k,2)=1;        
        
end
        if 
pic_r(l,k,3)>1
        pic_r(l,k,3)=1;  
        
end
        if 
pic_r(l,k,1)>1
        pic_r(l,k,1)=1;  
        
end
    end
end
imwrite(pic_r,'pokus.bmp','bmp');