Digitlinen videonkäsittely Hrjoitus 5, vstukset tehtäviin 5-30 Tehtävä 5. ) D DCT sdn tekemällä ensin D DCT kullekin riville, j toistmll D DCT tuloksen sdun kuvn srkkeill. -D N-pisteen DCT:, k 0 N ( k), k,,... N N N (n) k tk ( k) sncos N n0 -pisteen muunnoksess: t s s s s 0 0 0 3 t s cos s cos s s s s 4 4 0 0 0 D DCT riveille 6 5 6 5 6 5 7 7 7 8 6 D DCT srkkeille 8 6 9 5 8 6 8 6 3 7 b) kvntisointi: f f q q min Q( f ) q fmin
Tässä tpuksess trkoitt, että luvut pyöristetään lähimpään prittomn kokonislukuun. 9 5 9 3 3 7 3 c) käänteismuunnoksess: s n N (n) k ( k) tk cos N k0 -pisteen muunnoksess: s t t cos t t 4 0 0 0 3 s t t cos t t 4 0 0 rivit: 9 3 9 3 9 3 6 3 3 3 4 srkkeet: 6 6 4 5 5 4 6 4 7
Tehtävä 6. ) Muodostetn pyrmidiesitys kummlekin kuvlle. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 3 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 kuv t-, L 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 3 3 0 0 0 0 0 0 0 0 0 0 0 kuv t, L Seurv tso sdn muodostettu pienentämällä kuvn resoluutiot puolell sekä x- että y- suunnss. Arvo kullekin pikselille sdn krkesti mutt nopesti lskemll yhteen (ti keskirvo) vstv x pikselin lue edellisellä tsoll. +0++=4 0+0+0+0=0 +++=5 0 0 0 0 4 0 0 0 0 5 0 0 0 0 6 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 kuv t-, L. 0 0 0 0 0 0 0 0 0 4 0 0 0 0 4 4 0 0 0 0 4 8 4 0 0 0 0 0 0 0 0 0 0 0 0 0 kuv t, L ) Suoritetetn hku kullekin lohkolle tsoll L. Nyt olln kiinnostuneit vin merktust lohkost, joten trkstelln vin keskimmäisen x pikselin (tsoll L) liikettä, jok siis vst trksteltvn lohkon liikkettä.
Hun koko pikseliä => hkuikkun kuvn t- keskeltä (rjttu ktkoviivoill edel. kuvss): 0 0 5 0 0 6 0 0 0 3 0 0 0 4 4 4 8 hkuikkun kuvst t-, L Lohko tsoll L (kuvst t) Testtn kikki mhdolliset (3*3) vihtoehto. Mx= - 0 My= - 45 8 0 85 74 05 75 (4-)^+(5-4)^+(6-4)^+(0-8)^=8 3) Vlitn pienintä virhettä (8) vstv liikevektori (Mx=, My=-). Tämä liike nt lkurvion trksteltvlle lohkolle (+ 3:lle viereiselle x pikselin lohkolle) tsoll L. Liikevektori täytyy kerto khdell, sillä myös resoluutio on tällä tsoll kert trkempi. Hkulue lohkolle on siis pikseliä lohkon ympäristössä siirrettynä edelliseltä tsolt mittull ([Mx,My ]=[,-]) kuvn esittämällä tvll. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 3 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Mx =, My =-
4) Suoritetn hku ko. ikkunlle j trksteltvlle lohkolle 0 0 0 0 0 3 0 0 Mx= - 0 My= - 3 6 5 0 6 3 4 5 5 Liikevektoriksi sdn pienintä virhettä () vstv liikevektori (Mx=0, My=). Lopulliseksi liikevektoriksi sdn edelliseltä tsolt mitttu liike Mx,My (,-) + uusi liike (0,) Mx=, My=- b) Liikkeenkompensoinnin jälkeen lohkon [ 0; ] rvoksi sdn [ ; ]. Erotuskuv ko. lohkolle on siis [0 ; 0]. Pktess kuvst tlletetn sekä liikevektori (,-) että erotuskuv, joist lkuperäinen kuv sdn plutettu. Usein ennustusvirhe lsketn usemmlle lohkolle kerrlln j nämä muunnoskoodtn. Esim. DCT->kvntisointi->Huffmn koodus, jonk kertoimet siis lähetetään liikevektoreiden lisäksi.
Tehtävä 7. p( f ) f e Q(f) b, kun f Q( f ) 0, kun f b, kun f - b f -b MMSE-kvntisioijlle pinopistehto g EF F B b E F F [, [ f p f f [, [ df l l f p( f) p f [, [ df f f p( f ) df f e df f p( f ) df e df ' ' g h h g g h g f g ', h' e f, h e f f e f e f df e e f e e f
b) gl g l Lähimmän npurin ehto: bl 0 b b c) b b b b b
Tehtävä 8. Muodostetn kullekin ehdolliselle todennäköisyydelle (p(i j=a), p(i j=b), p(i j=c)) om Huffmn- koodi (lgoritmi esitetty prujuss s. 87) koodi: A A (p=0.5) B A (p=0.4) 0 p=.0 0 C A (p=0.) 0 p=0.5 00 koodi: A B (p=0.3) B B (p=0.3) 0 p=0.6 p=.0 0 C B (p=0.4) 0 0 koodi: A C (p=0.) B C (p=0.) 0 p=0. p=.0 0 C C (p=0.8) 0 0 sekvenssi AABCCCBCC Ensimmäiselle merkille pitää sopi jokin erityiskohtelu, esim. oletetn että edellinen merkki on ollut A, jolloin käytettään koodi A A =. Nyt edellinen merkki on ollut A, joten käytetään koodi A A =. Seurvn B A = 0. Nyt edellinen merkki on ollut B, joten pitää käyttää merkistöä j= B, C B = 0 jne. B A= 0 C B= 0 C C= 0 A A B C C C B C C = 0 0 0 0 0 0 0
=> Koodi = 0000000. Huom, että myös moni muu bittien llokointi koodisnoille olisi ollut mhdollist (esim. kikki ykköset nolliksi j päin vstoin). Myös ensimmäisen symbolin koodukseen käytetty tp pitää oll luonnollisesti yhdessä sovittu/ purkjn tiedoss. b) Pitkälle sekvenssille trvittvien bittien määrä sdn kertomll koodisnojen pituudet niiden todennäköisyyksillä. Esim A A = => pituus, ko. kombintion todennäköisyys merkistössä on p(a)*p(a A)=0.4*0.5=0.. Vstvsti B A = 0 => pituus. Todennäköisyys p(a)*p(b A) =0.4*0.4=0.096. Trvittv bittien määrä on siis R=0.4*0.5*+0.4*0.4*+0.4*0.*+0.*0.3*+...=.36 (tässä P(B A) = P(i=B j=a)) Lähteen ehdollinen entropi (sivu 8): H(I j= A )=-0.5*log(0.5)-0.4*log(0.4)-0.*log(0.)=.36 H(I j= B )=-0.3*log(0.3)-0.3*log(0.3)-0.4*log(0.4)=.57 H(I j= C )=-0.*log(0.)-0.*log(0.)-0.8*log(0.8)=0.9 H(I J) = p(j= A )* H(I j= A ) + p(j= B ) * H(I j= B ) + p(j= C ) * H(I j= C ). = 0.4* H(I j= A ) + 0. * H(I j= B ) + 0.55 * H(I j= C ). H(I J) =.6 Rjt koodukselle H(I J) < R < H(I J) +, eli svutettu bitrte (R=.36) on nnetuiss rjoiss. (sklri) entropikooduksell entropi: H=-0.4*log(0.4)- 0.*log(0.) -0.55*log(0.55)=.44, joten ilmn ehdollistmist ei edes teoriss oltisi voitu svutt yhtä hyvää koodust tälle merkistölle (Huffmn kooduksell svutettisiin.45).
Tehtävä 9. ) Ennen kutkin B-kehystä täytyy koodt seurv P- ti I.kehys, jost nämä ennustetn. Tässä on käytössä ns. voin GOP, joss kksi viimeistä B-kehystä riippuu seurvn GOP:n ensimmäisestä I- kehyksestä (I _ ). I, P 4, B, B 3, P 7, B 5, B 6, P 0, B 8, B 9, P 3, B, B, I _, B 4, B 5 b) Ennen kutkin B-kehystä täytyy dekoodt seurv P- ti I.kehys, jost nämä on ennustettu. Järjestys on sm kuin koodtesskin: I, P 4, B, B 3, P 7, B 5, B 6, P 0, B 8, B 9, P 3, B, B, I _, B 4, B 5 c) Järkevintä lienee näyttää kehykset ikjärjestyksessä;) I, B, B 3, P 4, B 5, B 6, P 7, B 8, B 9, P 0, B, B, P 3, B 4, B 5 d) hvinnollistetn kuvll: kuvn muodostus ik 3 4 5 6 3 4 5 6 7 7 kehyksen koodus kehyksen siirto I P4,B,B3 P7,B5,B6 kehyksen dekoodus I P4,B,B3 I P4,B,B3 kuvn näyttö I B B3 P4 B5 kokonisviive
Kuvst voidn päätellä, että kokonisviive on kehyksen mitt (/kehystjuus) + kehyksen muodostmiseen (=kuvukseen), koodukseen j siirtoon + kehyksen dekoodukseen kuluv ik. Tehokkllkin järjestelmällä kokonisviive on siis vähintään kehyksen mitt. Oletetn seurvss kuvn muodostmiseen, koodukseen j dekoodukseen käytettävä ik minimliseksi. Toislt oletetn, että siirtokist on täysin hyödynnetty, jolloin yksittäisen kehyksen siirtämiseen kuluv ik vst khden kuvn välistä viivettä: ik kuvus 3 4 5 6 7 koodus 4,,3 7,5,6 siirto dekoodus I P4 B B3 P7 4 3 kuvn näyttö I B B3 kokonisviive Kokonisviiveeksi sdn 4 kehystä (Esim. jos FPS=5, viive = 4/5s). Jokinen lisättävä B-kehys lisää myös viivettä yhdellä kehyksellä kummsskin tpuksess, eli viive on M ti M+ (ti jotin muut, mutt riippuu suorn M:stä).
Tehtävä 30. Kopioidn GOP edellisestä tehtävästä. I B B 3 P 4 B 5 B 6 P 7 B 8 B 9 P 0 B B P 3 B 4 B 5 3 4 5 6 7 8 9 0 3 4 5 Avoimess tpuksess kehykset 4 j 5 koodtn seurvn GOP:n ensimmäisen frmen vull. Suljetuss tpuksess GOP ei itse siss voi loppu B-kehykseen, vn on esim. P- kehys. Tällöin P 5 koodtn P 3 :n vull j B 4 kksisuuntisesti P 3 j P 5 : I B B 3 P 4 B 5 B 6 P 7 B 8 B 9 P 0 B B P 3 B 4 P 5 3 4 5 6 7 8 9 0 3 4 5 Erot näkyvät siis tässä tpuksess viimeisessä kehyksessä. Suljetun GOP:n etun on editoinnin helppous. Videost voidn poist (ti lisätä) GOP: ilmn uudelleen koodmisen trvett. Hittn on huonompi pkkustehokkuus.