Top Banner

of 22

V 0601 Jpeg Mpeg

Feb 04, 2018

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 7/21/2019 V 0601 Jpeg Mpeg

    1/22

    JPEG/MPEG Kompresija

  • 7/21/2019 V 0601 Jpeg Mpeg

    2/22

    Postupak kreiranja JPEG-a Iako JPEG fajl moe biti kreiran (kodovan na ra!li"ite na"ine#

    najkori$%eniji je t!v&'JI en)odin*'& Pro)es kodiranja se odvija kro!slede%e korake+, ransforma)ija modela boja i! .G u 01b1r, roj boja se redukuje (naj"e$%e se 234 ini)ijalno kori$%eni5 boja

    elimini$e& 6vo je mo*u%e# ali nije neop5odno# raditi i! ra!lo*a $to je okomanje osetljivo na fine nijanse ne*o na kontrast ili osvetljaj&

    , 7lika se onda podeli na blokove od po 898 piksela& : svakom bloku seprimeni ;1 (dis)rete )osine transform transforma)ija nad svakom od0# 1b i 1r komponenti&

    , a prika! implementa)ije navedeni5 koraka koristi%emo

    MPEGuilder aplika)iju koju moete preu!eti sa

    ???&)iitlab&elfak&ni&a)&@u

    http://en.wikipedia.org/wiki/Discrete_cosine_transformhttp://en.wikipedia.org/wiki/Discrete_cosine_transform
  • 7/21/2019 V 0601 Jpeg Mpeg

    3/22

    Korak A+ Konver!ija boja

    7tartujemoMPEGuilderaplika)iju

    Kliknemo na ile#6pen i u"itamoneku sliku koja bimo*le da se

    konvertuje u JPEG Bajbolje je odabratiCD-bitnu MP sliku

  • 7/21/2019 V 0601 Jpeg Mpeg

    4/22

    Kliknemo dalje ne*de na sliku da bismo i!abralideo veli"ine A9A na kome %emo demonstriratikorake JPEG al*oritma

    6dabrani se*ment se moe videti u desnomdelu pro!ora (ispod se*menta je du*me lo)k;etails

    Kliknemo na du*me Flo)k ;etails'

    Ba dobijenom dijalo*u moemo videti sve .# G i vrednosti !a svaki od 898 blokova

    rednosti su prika!ane u *ridu (*ore desno

  • 7/21/2019 V 0601 Jpeg Mpeg

    5/22

    double Y, Pr, Pb;

    double pixelR, pixelG, pixelB;

    Bitmap img = new Bitmap(pictureBox1.Image);

    or (i=!uadY; i"!uadY#$; i##)

    %

    or (&=!uad'; &"!uad'#$; #)

    %

    pixelR = img.GetPixel(&,i).R;

    pixelG = img.GetPixel(&,i).G;

    pixelB = img.GetPixel(&,i).B;

    Y = (1.*+(*.+pixelR # *.-*+pixelG # *.11+pixelB) .*) # 1/.*;

    Pr = (0.*+(*.*+pixelR *.0+pixelG *.*$+pixelB) .*) # 1$.*;

    Pb = (0.*+(*.12+pixelR *.--+pixelG # *.*+pixelB) .*) # 1$.*;

    3etY3pace(i, &, Y, Pr, Pb);

    4

    4

  • 7/21/2019 V 0601 Jpeg Mpeg

    6/22

  • 7/21/2019 V 0601 Jpeg Mpeg

    7/22

    Klikom na du*me F1onvert to 0PrPb'dobi%emo prika! novodobijeni5 vrednosti u

    novom modelu !a prika! boja

  • 7/21/2019 V 0601 Jpeg Mpeg

    8/22

    Korak C+ F;o?nsamplin*'

    6vaj korak je u na$oj demonstra)iji i!ostavljen#$to !na"i da %emo dobiti slike najbolje* kvaliteta

    Kao $to je napomenuto ranije# ljudsko oko je

    najosetljivije na ono $to se nala!i u 0komponenti transformisano* modela boja&Koriste%i ovo moemo kompresovati 1b i 1rkomponentu# tj& eliminisati pola ili vi$e vrednosti

    i! nji5ovi5 matri)a i$e o tome se moe na%i na5ttp+//???&?fu&edu/Hmatt5e?s/mis)/jp*vs*if/Jp*1ompest/Jp*15roma7ub&5tml

    http://www.wfu.edu/~matthews/misc/jpg_vs_gif/JpgCompTest/JpgChromaSub.htmlhttp://www.wfu.edu/~matthews/misc/jpg_vs_gif/JpgCompTest/JpgChromaSub.htmlhttp://www.wfu.edu/~matthews/misc/jpg_vs_gif/JpgCompTest/JpgChromaSub.htmlhttp://www.wfu.edu/~matthews/misc/jpg_vs_gif/JpgCompTest/JpgChromaSub.html
  • 7/21/2019 V 0601 Jpeg Mpeg

    9/22

  • 7/21/2019 V 0601 Jpeg Mpeg

    10/22

    Korak + ;1 nad jednim blokom898

    : slede%em dijalo*u odaberemo neku 898*rupu bajtova i kliknemo na F1al)ulate;1'

  • 7/21/2019 V 0601 Jpeg Mpeg

    11/22

    .e!ultat ;1 je prika!an u donjem*ridu (i!vor je u *ornjem

  • 7/21/2019 V 0601 Jpeg Mpeg

    12/22

    ;1 ($ta se desilo

    :la! u ;1 su blokovi 898 biloko* od kanala i! 01r1b modela

    Elementi blokova su bajtovi& >a;1 vrednost svako* elementabloka treba transformisati i! (3do C22 u (-AC8 do AC

  • 7/21/2019 V 0601 Jpeg Mpeg

    13/22

    ;1 ($ta se desilo - C

    >a svaki piskel se i!ra"una ova formula *(L#@ je vrednost piksela (po"etna vrednost u

    ra"uni)i u i v su 5ori!ontalna i vertikalna frekven)ija ()eli

    brojevi i! intervala od 3 do

  • 7/21/2019 V 0601 Jpeg Mpeg

    14/22

    evo je matri)a (deo neko* od kanala u 01r1bdomenu vrednosti u Frealnom'# a desno ufrekventnom domenu

    Polje desne matri)e !a u N 3 i v N 3(*ore levo je jednosmernakomponenta# a ostalo su

    5armoni)i

  • 7/21/2019 V 0601 Jpeg Mpeg

    15/22

    Perorm t5e 678 on t5e 9 bloc:

    public double,< calculate678 (bte,< 9)

    %

    int :1, :, i, &;

    double 7u, 7>;

    double,< B = new double$,$= 1.*;

    B:1,:< += (*.+7u+7>);

    4

    return B; Return Are!uenc 7omponent matrix

    4

  • 7/21/2019 V 0601 Jpeg Mpeg

    16/22

    for (iN3O i8O iQQ for (jN3O j8O jQQ

    )osineRj#iS N Mat5&1os(Mat5&PITjT(C&3Ti Q A/A&3O

    private double 7U.CoC N Mat5&7Vrt(C&3 / C&3O

  • 7/21/2019 V 0601 Jpeg Mpeg

    17/22

    Korak D+ Kvanti!a)ija

    Bakon ;1 transforma)ije sledi kvanti!a)ija Klik na Uuanti!e ;efault %e nam i!ra"unati kvanti!a)iju !a piksele i! *ornje*

    *rida .e!ultat kvanti!a)ije %e biti prika!an u donjem *ridu Ideja kvanti!a)ije je eliminasti visoke frekven)ije# po$to je oko osetljivije na

    niske

  • 7/21/2019 V 0601 Jpeg Mpeg

    18/22

    Wta se desilo

    F

  • 7/21/2019 V 0601 Jpeg Mpeg

    19/22

    Korak 2+ Kodovanje

    Bajpre se uradi t!v >i*!a* transforma)ija

  • 7/21/2019 V 0601 Jpeg Mpeg

    20/22

    Mesto od ko*a svi elementi po"inju dabudu nule !ameni se spe)ijalnim !nakom

    !a kraj bloka 6vo doprinosi u realnosti u$tedi od oko24

    Bije problem uvesti o!naku !a kraj blokapo$to su svi blokovi od po D bajta

  • 7/21/2019 V 0601 Jpeg Mpeg

    21/22

    publi) intRS >i*!a* (intR#S 7AX intRS indeL N ne? intRDS X3#A##8#-#-#A####8# -#-#-#-#A######8#

    -#-#-#-#-#-#A########A#-#-#-#-#-#-#8######A#-#-#-#-#8####A#-#-#8##AYO

    int iO intRS !! N ne? intRDSO int a# bO

    int 7Apointer N 3O

    for (iN3O iDO iQQ X

    7Apointer QN indeLRiSOa N 7Apointer/8O

    b N 7Apointer48O!!RiS N 7ARa#bSO

    Y

    return !!O // .eturn sorted arra@ ?it5 ;1 value at position 3Y

  • 7/21/2019 V 0601 Jpeg Mpeg

    22/22

    .e!ultat >i*!a*-a se koduje=uffmanovim kodom