FI115945B - Peräkkäisten kuvien koodaaminen - Google Patents

Peräkkäisten kuvien koodaaminen Download PDF

Info

Publication number
FI115945B
FI115945B FI20030714A FI20030714A FI115945B FI 115945 B FI115945 B FI 115945B FI 20030714 A FI20030714 A FI 20030714A FI 20030714 A FI20030714 A FI 20030714A FI 115945 B FI115945 B FI 115945B
Authority
FI
Finland
Prior art keywords
block
candidate
value
pixels
cost function
Prior art date
Application number
FI20030714A
Other languages
English (en)
Swedish (sv)
Other versions
FI20030714A0 (fi
FI20030714A (fi
Inventor
Jarno Tulkki
Original Assignee
Hantro Products Oy
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hantro Products Oy filed Critical Hantro Products Oy
Priority to FI20030714A priority Critical patent/FI115945B/fi
Publication of FI20030714A0 publication Critical patent/FI20030714A0/fi
Publication of FI20030714A publication Critical patent/FI20030714A/fi
Application granted granted Critical
Publication of FI115945B publication Critical patent/FI115945B/fi

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

115945
Peräkkäisten kuvien koodaaminen
Ala
Keksinnön kohteina ovat menetelmä, tietokoneohjelma, ohjelmiston jakeluväline, tietokonemuisti, tietoliikennesignaali ja järjestely peräkkäisten ku-5 vien koodaamiseksi.
Tausta
Peräkkäisten kuvien, esimerkiksi videokuvan, koodausta käytetään datamäärän vähentämiseksi, jotta se voidaan tehokkaammin tallentaa jollekin muistivälineelle tai siirtää tietoliikenneyhteyttä käyttäen. Esimerkki videokoo-10 dausstandardista on MPEG-4 (Moving Pictures Expert Group). Käytettyjä kuvakokoja on erilaisia, esimerkiksi cif-koko on 352 x 288 pikseliä ja qcif-koko on 176 x 144 pikseliä.
Tyypillisesti yksittäinen kuva jaetaan lohkoiksi, jotka sisältävät tietoa valoisuudesta, väristä ja sijainnista. Lohkojen data kompressoidaan lohkoittain 15 halutulla koodausmenetelmällä. Kompressointi perustuu vähemmän merkityksellisen datan poistamiseen. Kompressointimenetelmät jaetaan pääasiallisesti kolmeen eri luokkaan: spektrisen redundanssin vähentäminen (Spectral Redundancy Reduction), tilaredundanssin vähentäminen (Spatial Redundancy Reduction) ja ajallisen redundanssin vähentäminen (Temporal Redundancy ·:· 20 Reduction). Tyypillisesti kompressointiin käytetään näiden menetelmien erilai- siä yhdistelmiä.
Spektrisen redundanssin vähentämiseksi sovelletaan esimerkiksi '···. YUV-värimallia. YUV-mallissa käytetään hyödyksi sitä, että ihmisen silmä on • · herkempi luminanssin eli valoisuuden vaihteluille kuin krominanssin eli värin 25 muutoksille. YUV-mallissa on yksi luminanssikomponentti (Y) ja kaksi kromi-’···’ nanssikomponenttia (U ja V, tai Cb ja Cr). Esimerkiksi H.263 videokoodaus standardin mukainen luminanssilohko on 16 x 16 pikseliä ja kumpikin kromi- i.: : nanssilohko, jotka kattavat saman alueen kuin luminanssilohko, 8x8 pikseliä.
Yhden luminanssilohkon ja kahden krominanssilohkon yhdistelmää kutsutaan !:. 30 makrolohkoksi. Jokainen pikseli sekä luminanssi- että krominanssilohkossa voi saada arvon väliltä 0-255 eli yhden pikselin esittämiseen tarvitaan kahdeksan bittiä. Esimerkiksi luminanssipikselin arvo 0 tarkoittaa mustaa ja arvo 255 vai- « « koista.
·:·: Tilaredundanssin vähentämiseksi käytetään esimerkiksi diskreetti- 35 kosinimuunnosta (Discrete Cosine Transform, DCT). Diskreettikosinimuunnok- 2 115945 sessa muunnetaan lohkon pikseliesitys tilataajuusesitykseksi. Lisäksi kuva-lohkossa vain niillä signaalitaajuuksilla, joita siinä esiintyy, on suuriamplitudiset kertoimet ja niillä signaaleilla, joita lohkossa ei esiinny, kertoimet ovat lähellä nollaa. Diskreettikosinimuunnos on periaatteessa häviötön muunnos ja sig-5 naaliin aiheutuu häiriötä vain kvantisoinnissa.
Ajallista redundanssia pyritään vähentämään hyödyntäen sitä tosiasiaa, että peräkkäiset kuvat yleensä muistuttavat toisiaan, joten sen sijaan, että kompressoitaisiin jokainen yksittäinen kuva, generoidaan lohkojen liike-dataa. Tätä nimitetään liikkeen kompensoinniksi. Koodattavalle lohkolle etsi-10 tään mahdollisimman hyvä aiemmin koodattu referenssilohko aiemmasta muistiin tallennetusta referenssikuvasta, referenssilohkon ja koodattavan lohkon välinen liike mallinnetaan ja lasketut liikevektorit (motion vector) lähetetään vastaanottimelle. Koodattavan lohkon ja referenssilohkon erilaisuus ilmaistaan erodatana. Tällaista koodausta kutsutaan interkoodaukseksi, joka 15 tarkoittaa saman kuvajonon kuvien välisten samankaltaisuuksien hyödyntämistä.
Tyypillisesti referenssikuvaan määritellään hakualue, josta haetaan koodattavassa kuvassa olevan kaltaista lohkoa. Paras lohkovastaavuus löydetään laskemalla hakualueella olevan kandidaattilohkon ja koodattavan lohkon 20 välisten pikseleiden välinen kustannusfunktion arvo jollakin lohkovertailuun sopivalla kriteerillä.
Esimerkiksi liikkeen estimointi hakualueella ±16 pikseliä, käyttäen SAD-kriteeriä (Sum of Absolute Differences), voidaan esittää kaavalla:
Li' MV(x,y) = ^mn/ΣΣΚ^ “ W,|) (1) ♦ * " i=0 j=0 25 missä MV on lopullisen liikevektorin (x,y) kustannusfunktio, fxy on !·*·. koodattavan kuvan pikseli ja r^ on referenssikuvan pikseli. Referenssilohkoksi • · valitaan siis se liikevektorin (x,y) määräämä referenssikuvan lohko, jolle kus- , , tannusfunktion MV{x,y) arvo on pienin. Referenssilohkon valintaan tai kustan- • · » nusfunktioon voi vaikuttaa myös muita tekijöitä, joista yhtenä mainittakoon lii-
• I
' · · · ‘ 30 kevektorin pituus eli kustannusfunktiolle annetaan ’’rangaistus” sen vektorin pi- ·:· tuuden mukaan. Tämä siksi, että kahdesta saman kustannusfunktion arvon ; · * ’. antavasta kandidaattilohkosta tulisi valituksi se, jonka vektori on lyhyempi.
.· . Lohkojen vertailuun on käytettävissä useita erilaisia kriteerejä, joista ’· ; käytetyin lienee edellä mainittu absoluuttierojen summa. Toinen yleisesti käy- : * : 35 tetty kriteeri on neliöllisten erojen summa (Sum of Squared Differences, SSD), 3 115945 joka takaa SAD-kriteeriä paremman kuvanlaadun, mutta on raskaampi laskea. Myös edellisten kriteereiden keskiarvon tuottavia kriteereitä on käytössä.
Yhtä kaikki, tunnetut kriteerit mittaavat jollain tapaa koodattavan lohkon ja kandidaattilohkon pintojen välistä tilavuutta, oli se sitten neliöllistä tai 5 ei. Tällaiset kriteerit toimivat hyvin niin kauan kuin koodattavalle lohkolle on löydettävissä hakualueelta samaa valoisuutta oleva vastine. Ongelmia on luvassa heti kun koodattavan kuvan valoisuus poikkeaa referenssikuvasta tai kuvien välillä esiintyvä liike on suurempaa kuin määritelty hakualue. Esimerkiksi valoisuuden muuttuessa (kuvattavan ihmisen ylle lankeaa varjo) tällaiset 10 kriteerit etsivät sellaisen referenssilohkon, jonka valoisuus on mahdollisimman lähellä koodattavaa lohkoa ja jättävät lohkojen pinnanmuodostuksen väliset erot kokonaan vaille huomiota. Tuloksena on täysin vääriä liikevektoreita, jotka huonontavat kuvan laatua radikaalisti. Lisäksi joudutaan käyttämään enemmän intra-lohkoja (koodauksessa ei hyödynnetä referenssilohkoa), jotka pak-15 kaantuvat huonommin. Näin joudutaan myös nostamaan koodauksessa käytettävää kvantisointia, joka edelleen huonontaa kuvan laatua. Siten seuraavan videokuvan koodauksessa käytössä olevasta referenssikuvasta tulee huonolaatuinen eli lähetettävän erodatan määrä kasvaa ja noidankehä on valmis.
Videonkoodauksen ammattilaisten keskuudessa pidetään yleisesti 20 hyväksyttävänä tosiasiana sitä, että neliöllisten erojen summa on paras mahdollinen lohkovertailukriteeri, kun taas absoluuttierojen summa on riittävän hy-vä ja mikä parasta: nopea. Tulevaisuus videonkoodauksessa näyttää kuitenkin siltä, että laatu tulee yhä tärkeämmäksi nopeusvaatimusten väistyessä teknii-kan kehittymisen myötä. Esimerkiksi erilaisiin päätelaitteisiin tullaan koodaa-25 maan mm. elokuvia ja mainoksia, joissa käytetään paljon tehokeinoja, esim.
t« · häivytystekniikkaa ja nopeita kohtauksia. Näin luodaan tarve parempaa kuva- • · . ·". laatua tuottavalle liikkeenestimoinnille.
Lyhyt selostus I · ·': : Keksinnön tavoitteena on tarjota parannettu menetelmä, tietoko- • I * 30 neohjelma, ohjelmiston jakeluväline, tietokonemuisti, tietoliikennesignaali ja • j järjestely peräkkäisten kuvien koodaamiseksi. Keksinnön eräänä puolena esi- .*··. tetään patenttivaatimuksen 1 mukainen menetelmä. Keksinnön eräänä puole- na esitetään patenttivaatimuksen 10 mukainen tietokoneohjelma. Keksinnön *! eräänä puolena esitetään patenttivaatimuksen 11 mukainen ohjelmiston jake- 35 luväline. Keksinnön eräänä puolena esitetään patenttivaatimuksen 12 mukainen tietokonemuisti. Keksinnön eräänä puolena esitetään patenttivaatimuksen 4 115945 13 mukainen tietoliikennesignaali. Keksinnön eräänä puolena esitetään patenttivaatimuksen 14 mukainen järjestely. Keksinnön edulliset suoritusmuodot ovat epäitsenäisten patenttivaatimusten kohteena.
Keksintö perustuu parannettuun liikkeenestimoinnissa käytettävään 5 kriteeriin, joka ottaa huomioon tärkeimmät liikkeenestimoinnin kuvanlaadulliset seikat.
Keksinnön mukainen ratkaisu tarjoaa huomattavasti paremman kuvanlaadun kuin klassiset liikkeenestimoinnit.
Kuvioluettelo 10 Keksinnön edulliset suoritusmuodot selostetaan esimerkinomaisesti alla viitaten oheisiin piirroksiin, joista: kuvio 1 esittää laitetta peräkkäisten kuvien koodaamiseksi; kuvio 2 havainnollistaa liikkeenestimointia; kuvio 3 havainnollistaa parannettua liikkeenestimointia; ja 15 kuvio 4 on vuokaavio havainnollistaen menetelmää makrolohkon koodaamiseksi käyttäen menetelmää peräkkäisten kuvien koodaamiseksi.
Suoritusmuotojen kuvaus
Alan ammattilaiselle videokoodaus on hyvin tunnettua standardien ja oppikirjojen perusteella. Koodattavat peräkkäiset kuvat ovat tyypillisesti liik-·!* 20 kuvaa kuvaa, esimerkiksi videokuvaa. Videokuva muodostuu kamerassa yksit- täisistä peräkkäisistä kuvista. Kameralla muodostetaan kuvaa pikseleinä esit-:·. tävä matriisi, esimerkiksi alussa kuvatulla tavalla, jossa luminanssille ja kromi- ] nanssille ovat omat matriisinsa. Kuvaa pikseleinä esittävä datavuo viedään kooderiin. Tietenkin on mahdollista rakentaa myös sellainen laite, jossa data-25 vuo saadaan kooderiin esimerkiksi tiedonsiirtoyhteyttä pitkin tai vaikkapa tieto-*···’ koneen muistivälineeltä. Tällöin tarkoituksena on se, että kompressoimaton vi deokuva kompressoidaan kooderilla esimerkiksi edelleenlähetystä tai tai- • 1 : lennusta varten. Kooderilla muodostettu kompressoitu videokuva siirretään kanavaa käyttäen dekooderille. Dekooderi tekee periaatteessa saman kuin 30 kooderi teki kuvaa muodostettaessa, mutta käänteisesti. Kanava voi olla esi-[!!!_ merkiksi kiinteä tai langaton tiedonsiirtoyhteys. Kanava voidaan myös tulkita I » siirtotieksi, jota käyttäen videokuva tallennetaan jollekin muistivälineelle, esi-merkiksi laserlevylle ja jota käyttäen videokuva sitten luetaan muistivälineeltä ·:·*: ja käsitellään dekooderilla. Kanavassa siirrettävälle kompressoidulle videoku- 35 valle voidaan suorittaa myös muuta koodausta, esimerkiksi kanavakoodausta 5 115945 kanavakooderilla. Kanavakoodaus puretaan kanavadekooderilla. Kooderi ja dekooderi voidaan sijoittaa erilaisiin laitteisiin, esimerkiksi tietokoneisiin, erilaisten radiojärjestelmien tilaajapäätelaitteisiin kuten matkaviestimiin tai muihin laitteisiin, joissa halutaan käsitellä videokuvaa. Kooderi ja dekooderi voidaan 5 myös yhdistää samaan laitteeseen, jota voidaan tällöin nimittää videokoode-kiksi.
Viitaten kuvioon 1 selostetaan peräkkäisten kuvien koodaamislait-teen eli kooderin rakenne. Kuviossa 1 kuvataan kooderin toimintaa teoreettisella tasolla. Käytännössä kooderin rakenne on paljon monimutkaisempi kun 10 alan ammattilainen lisää siihen tunnetun tekniikan mukaiset tarvittavat asiat, esimerkiksi tarvittavan ajastuksen ja kuvan käsittelyn lohkoittain. Peräkkäisiä kuvia 130 tuodaan väliaikaisesti tallennettavaksi kehyspuskuriin 102. Kehys-puskurista 102 viedään yksittäinen kuva 132 lohkoon 104, jossa valitaan haluttu koodausmuoto. Laitteen toimintaa ohjaa ohjausosa 100, joka mm. valitsee 15 halutun koodausmuodon ja ilmoittaa valitun koodausmuodon 156, 158 lohkolle 104 ja lohkolle 120. Koodausmuoto voi olla intrakoodaus tai interkoodaus. In-trakoodatun kuvan lohkoille ei tehdä liikkeenkompensointia, kun taas interkoo-datun kuvan lohkoille se yleensä tehdään. Yleensä ensimmäinen kuva on in-trakoodattu ja sitä seuraavat kuvat ovat interkoodattuja. Ensimmäisen kuvan 20 jälkeenkin voidaan lähettää intrakuvia esimerkiksi jos koodattavalle kuvalle ei löydetä tarpeeksi hyviä liikevektoreita.
Seuraavaksi kuvataan laitteen toimintaa, kun lohkossa 104 on valit-·: · tu intrakoodaus. Intrakuvalle lohko 104 saa syötteeksi vain kehyspuskurista 102 tulevan kuvan 132. Kehyspuskurista 102 saatu kuva 132 viedään sellai-25 senaan kuvana 134 sitten diskreettikosinimuunnoslohkoon 106, jossa suorite-taan diskreettikosinimuunnos, joka esitellään tarkemmin myöhemmässä vai- • » heessa.
• · • · ”* Diskreettikosinimuunnettu kuva 136 viedään kvantisointilohkoon 108, jossa suoritetaan kvantisointi eli periaatteessa diskreettikosinimuunnetun : 30 kuvan jokainen alkio jaetaan jollain vakiolla. Tämä vakio saattaa vaihdella eri makrolohkojen välillä ja jopa alkioidenkin välillä. Kvantisointiparametri, josta .:· kyseiset kvantisointijakajat lasketaan, on MPEG-4 standardin mukaan välillä 1- 31. Mitä enemmän nollia saadaan lohkoon sitä paremmin lohko pakkaantuu, sillä nollia ei periaatteessa kanavaan lähetetä. Samalla kuva myös valitetta-35 vasti huononee, eli mitä suurempaa kvantisointiparametria käytetään, sitä ‘: ’': huonompi kuvan laatu on.
6 115945
Sitten kvantisoitu ja diskreettikosinimuunnettu kuva 138 viedään VLC-kooderiin 110 (Variable Length Coding), jonka ulostulosta tulee laitteella tuotettu koodattu kuva 140.
Kvantisointilohkosta 108 viedään kvantisoitu ja diskreettikosini-5 muunnettu kuva 138 VLC-kooderin 110 lisäksi myös käänteiskvantisointiloh-koon 112, joka suorittaa sisääntuodulle kvantisoidulle ja diskreettikosinimuun-netulle kuvalle 138 käänteiskvantisoinnin, eli palauttaa sen mahdollisimman lähelle kuvaa 136. Sitten käänteiskvantisoitu kuva 142 viedään käänteisdis-kreettikosinimuunnoslohkoon 114, jossa suoritetaan käänteisdiskreettikosini-10 muunnos. Koska diskreettikosinimuunnos on häviötön muunnos, mutta kvanti-sointi ei, niin kuva 144 ei täysin vastaa kuvaa 134. Käänteiskvantisoinnin ja käänteisdiskreettikosinimuunnoksen tarkoituksena on tuottaa kooderissa samanlainen kuva kuin minkä koodauslaitetta vastaava dekooderi tuottaa. ”De-koodattu” kuva 144 viedään sitten lohkoon 124, jossa kuvaan lisättäisiin siitä 15 poistettu osuus, erodata, jos kuva olisi interkoodattu. Koska kysymyksessä on intrakoodattu kuva, ei siihen lisätä mitään. Tämän ohjauksen tekee lohko 120, jossa on valittuna intrakoodaus, jolloin lohkon 120 sisääntulossa ei ole mitään ja myöskään sen lohkoon 124 kytketty ulostulo 154 ei sisällä mitään. Intrakuva 146 tallennetaan sitten kehyspuskuriin 116. Näin kehyspuskuriin 116 tallenne-20 taan rekonstruoitu kuva eli koodattu kuva siinä muodossa, jossa se on dekoo-derissa suoritettavan dekoodauksen jälkeen. Kehyspuskureita on siis kaksi, ensimmäiseen 102 tallennetaan laitteeseen tuleva kuva ja toiseen 116 re-·:·*: konstruoitu ’’edellinen” kuva. Näin käsiteltiin siis kuvaa, jolle lohkoissa 104 ja j ‘ . 120 oli valittu intrakoodaus.
25 Seuraavaa kuvaa käsiteltäessä voidaan alkaa käyttämään liikkeen kompensointia. Tällöin lohkoissa 104 ja 120 on valittu interkoodaus. Kehys-[·>·, puskuriin 116 tallennettu kuva on nyt siis referenssikuva ja koodattava kuva on kehyspuskurista 102 saatava seuraava kuva 132. Kuten kuviosta 1 havaitaan, seuraava kuva viedään lohkon 104 lisäksi myös liikkeenestimointilohkoon 118. ;·· : 30 Liikkeenestimointilohkoon 118 saadaan myös kehyspuskurista 116 referenssi- kuva 150. Liikkeenestimointilohkon 118 toimintaa kuvataan myöhemmin tar-··> kemmin, mutta tässä vaiheessa siitä voidaan todeta, että siinä suoritetaan ha- .· *. ku, jossa pyritään löytämään referenssikuvasta lohkoja, jotka vastaavat koo dattavassa kuvassa olevia lohkoja. Lohkojen väliset siirtymät ilmaistaan liike-*· 35 vektoreina 152, 166, jotka viedään sekä VLC-kooderiin 110 että kehyspusku- riin 116.
7 115945
Lohkolle 122 viedään referenssikuva 148 kehyspuskurista 116. Lohko 122 vähentää koodattavasta kuvasta 132 referenssikuvan 148, jolloin saadaan erodata 164, joka viedään lohkosta 104 diskreettikosinimuunnosloh-kon 106 ja kvantisointilohkon 108 kautta VLC-kooderiin 110.
5 VLC-kooderi 110 koodaa siis erodatan 138 ja liikevektorit 166, jol loin VLC-kooderin 110 ulostulosta 140 saadaan interkoodattu kuva. VLC-kooderi 110 saa siis syötteiksi diskreettikosinimuunnetun ja kvantisoidun erodatan 138 sekä liikevektorit 166. Kooderin ulostulosta 140 siis saadaan interkooda-tulle kuvalle koodattua kuvaa esittävää kompressoitua dataa, joka kuvaa koo-10 datun kuvan suhteessa referenssikuvaan käyttäen esitykseen liikevektoreita ja erodataa. Liikkeenestimointi tehdään luminanssilohkoja käyttäen, mutta koodattava erodata lasketaan sekä luminanssi- että krominanssilohkoille.
Kyseisen interkoodatun kuvan erodatalle 138 suoritetaan myös käänteiskvantisointi käänteiskvantisointilohkossa 112 ja käänteisdiskreetti-15 kosinimuunnos käänteisdiskreettikosinimuunnoslohkossa 114. Näin käsitelty erodata 144 viedään lohkoon 124, jossa siihen lisätään kyseistä interkuvaa koodattaessa vähennetty edellinen kuva 154. Sitten lohkosta 124 viedään erodatan ja edellisen kuvan summa 146 kehyspuskuriin 116, jossa siihen vielä lisätään liikevektorien 152 vaikutus, jolloin saadaan rekonstruoitu kuva. Re-20 konstruoitu kuva vastaa sitä kuvaa, joka saadaan dekooderissa kun interkoodatun kuvan 140 koodaus puretaan. Näin kehyspuskurissa 116 on jälleen val-miina referenssikuva seuraavan kehyspuskurista 102 saatavan kuvan 132 •: · ·: koodausta varten.
··,. Ohjauslohko 100 ohjaa kooderin toimintaa. Koodausmuodon valin- 25 nan lisäksi se ohjaa mm. oikean kvantisointisuhteen valintaa 160 ja VLC-koo-dauksen suorittamista 162. Samoin ohjauslohko 100 voi ohjata myös muita L-, kooderin lohkoja, vaikka sitä ei ole kuviossa 1 kuvattu. Esimerkiksi liikkeenes- timointilohkon 118 toimintaa ohjaa ohjauslohko 100.
Seuraavaksi selostetaan liikkeenestimointikriteereiden ongelmaa » I » ·· · 30 viitaten kuvioon 2. Havainnollisuussyistä kuviosta 2 on jätetty yksi dimensio huomiotta. Kuviossa x-akseli 200 kuvaa hakualuetta, jolla koodattavaa lumi-nanssilohkoa liikutetaan esimerkiksi kaavassa 1 esitetyllä tavalla. Kuvion y-ak-. · ·, seli 202 kuvaa valoisuuden intensiteettiä, joka YUV-väriavaruudessa sijaitsee ‘ _ yleensä välillä [0, 255]. Referenssikuvan pinta hakualueella on kuvattu käyrällä : 35 204. Käyrät 206 ja 208 kuvaavat koodattavan lohkon pintaa eri hakuvaiheissa tai eri liikevektoreilla. Hakualueella liikkuvan koodattavan lohkon kandidaatti- 8 115945 lohko saadaan projisoitaessa koodattava lohko kohtisuoraan referenssikuvan 204 pinnalle ja näiden väliin jäävä pinta-ala 210, 212 kuvaa kiinnostuksen kohteena olevaa lohkojen välistä tilavuutta. Kuten aiemmin jo selostettiin, tunnetut liikkeenestimointikriteerit mittaavat jollain tapaa tätä koodattavan lohkon ja 5 kandidaattilohkon välistä tilavuutta, jonka minimin perusteella referenssilohko valitaan. Nyt kuvion 2 pinnoista 204, 206 ja 208 on nähtävissä, että referenssi-kuvan ja koodattavan kuvan valoisuudessa on tapahtunut selvää muutosta koodattavana olevalla alueella. Perinteinen tilavuutta mittaava liikkeenesti-mointikriteeri valitsisi minimitilavuuden 210 perusteella referenssilohkon lohkon 10 206 osoittamasta paikasta, kun taas maalaisjärki opastaisi valitsemaan refe renssilohkon lohkon 208 osoittamasta paikasta. Vaikka tilavuus 212 on huomattavasti tilavuutta 210 suurempi, vastaavat lohkojen pinnat lohkon 208 osoittamassa paikassa hyvin toisiaan. Tälläkin kertaa maalaisjärki on oikeassa, sillä sekä laadun että pakkaussuhteen kannalta on järkevämpää minimoida 15 koodattavan lohkon pinnanmuodostusten väliset erot kuin pintojen välinen tilavuus.
Esimerkiksi MPEG-4 koodauksessa käytetään lohkojen väliselle erodatalle diskreettikosinimuunnosta 8x8 (NxN) -kokoiselle lohkolle 20 ^v)=|a»)qv)^/(x.y)co»^^^cos(2j'2-?l,<t’. (2) missä C(u)C(v) = 'Λ, josw = v = 0, C(u)C(v)= 1, jos u, v φ 0, F(u,v) on muunne-·: : tun lohkon alkio paikassa (u,v), ]afix,y) on muunnettavan lohkon alkio paikassa (*θ0· .···. Näin dc-kerroin, eli muunnetun lohkon alkio (0,0) lasketaan kaavalla l'·’: 25 F(0,0) = i££/(x,.y). (3)
* O
Muunnetun lohkon dc-kertoimeen vaikuttaa siis vain koodattavan ja referenssi-lohkon välinen kokonaistilavuus. Lohkojen väliset pinnanmuodostuserot esite-; · tään muilla eli ns. ac-komponenteilla. Lohkojen välinen erodata muuntuu siis ; ’": matriisiksi 30 • · : dc ac0, ac02 ...
acl0 acu acl2 ...
; ·,; GC2 q öft-2,1 ^2,2 9 115945
Nyt kuvion 2 mukainen erodata 210 aiheuttaisi muunnettuun lohkoon F keskisuuren dc-kertoimen ja suuria ac-kertoimia, kun taas erodata 212 aiheuttaisi muunnettuun lohkoon F suuren dc-kertoimen ja pieniä ac-kertoimia. Kvantisoi-taessa näihin lohkoihin jää kaikki kvantisointijakajaa suuremmat kertoimet, kun 5 sitä pienemmät nollaantuvat. Eli kuvan 2 mukaisessa tapauksessa erodatan 212 kaltaisella valinnalla kanavaan lähetetään yleensä vain kvantisoitu dc-kerroin, kun taas erodatan 210 kaltaisella valinnalla kanavaan joudutaan lähettämään dc-kerroin ja useita ac-kertoimia. Nyt on siis selvää, kumman kaltainen erodata on edullisempaa lähettää. Kun otetaan vielä kvantisoinnin aiheuttamat 10 virheet huomioon, on myös selvää kumpi erodatoista tuottaisi parempilaatuista kuvaa.
Kuviossa 3 esitellään parannettua liikkeenestimointia. Kuviossa on edelleen jätetty havainnollisuuden vuoksi kolmas dimensio huomiotta. Kuten kuviossa 2, akselit x 300 ja y 302 kuvaavat edelleen hakualuetta ja valoisuutta, 15 ja käyrä 304 kuvaa referenssikuvan pintaa hakualueella 300. Käyrä 306 kuvaa koodattavan lohkon pintaa erään liikevektorin osoittamassa kohdassa, jolloin vastaava kandidaattilohko saadaan koodattavan lohkon 306 projektiona refe-renssipinnalle 304. Kuviossa 2 esitellyn esimerkin mukaan oli edullisempaa valita sellainen referenssilohko, jonka pinnanmuodostus on mahdollisimman 20 lähellä koodattavan lohkon pinnanmuodostusta. Hakijan suorittamien kokeiden mukaan pätevä tapa vertailla lohkojen pinnanmuodostusta on "yhdistää" ne hyväksikäyttäen lohkojen keskiarvoja. Kuviossa 3 koodattavaa lohkoa 306 on :·*: siirretty referenssipinnan suuntaan koodattavan lohkon ja kandidaattilohkon ·*·.. keskiarvojen erotuksen 310 verran. Jos esimerkiksi Kl kuvaa koodattavan loh- .···. 25 kon 306 luminanssipikseleiden keskiarvoa ja Kr vastaavan kandidaattilohkon luminanssipikseleiden keskiarvoa, liikutetaan koodattavaa lohkoa |Kl - A>|:n
• I
’···. osoittaman arvon 310 verran referenssikuvan pintaa 304 kohden. Käyrä 308 kuvaa tätä siirrännäislohkoa. Näin voidaan laskea lohkojen pintojen muotoero-ja, joka tapahtuu käytännössä esimerkiksi soveltamalla kaavaa 1 siirrännäis- • : 30 lohkon 308 ja kandidaattilohkon tilavuuseron 312 mittaamiseksi. N x N kokois- ..: ten lohkojen tilavuuserolle A muodostuu täten kaava I * * * O ^ = (4) . 1=0 j=0
» I
:: missä xij on koodattavan ja yu kandidaattilohkon pikselin (i,j) arvo.
10 115945
Eräässä suoritusmuodossa huomioidaan myös kvantisoinnista aiheutuva lohkottumisilmiö. Jos esimerkiksi diskreettikosinimuunnetaan lohko, jonka keskiarvo on 4,875, tulee muunnetun lohkon dc-kertoimeksi kaavan 3 mukaan 39. Jos käytetään kvantisointijakajaa, joka on suurempi kuin 39, ky-5 seinen dc-kerroin nollaantuu. Tällöin kvantisoinnin aiheuttama lohkottumisilmiö on kyseisellä lohkolla juuri tuon keskiarvon 4,875 suuruinen. Tämä lohkottumisilmiö on jaksollinen kvantisointijakajan moduulin suhteen eli kvantisoitaes-sa dc-kerrointa D kvantisointijakajalla Q, voidaan lohkottumista L kuvata yhtälöllä 10 L =Dmod{Q). (5)
Kun tiedetään, että dc-kerroin saadaan kaavasta 3, voidaan yhtälö 5 esittää muodossa 15 L=Smod(Q*8\ (6) jossa S kuvaa lohkon kokonaistilavuutta. Tämä lohkottumista kuvaava tekijä L voidaan lisätä moduulirangaistuksena siirrännäislohkon 308 ja referenssiloh-20 kon tilavuuseroon 312. Alan ammattilaiselle on toki selvää, että yhtälö 6 ei ole ainoa mahdollinen yhtälö, joka kuvaa moduulirangaistusta, vaan useita vas-, t; j * taavia, samaa ideaa hyödyntäviä yhtälöitä voidaan muodostaa.
·:· ! Eräässä suoritusmuodossa huomioidaan, ei laadun, vaan pakkaus- ·*·., tehokkuuden kannalta, että myös dc-kertoimen koodaaminen vaatii kaistaa.
.*··. 25 Käytettäessä hyvin suuria kvantisointijakajia, eli pyrittäessä maksimaaliseen : v, pakkaustehokkuuteen, on suotavaa minimoida myös lohkon kokonaistilavuus.
« I
Optimaalinen vaikutus saadaan, kun lasketaan lohkolle tilavuusrangaistus T '··’ sen kokonaistilavuuden ja käänteisen kvantisointijakajan välisellä funktiolla.
Yksinkertainen lineaarinen esitys tälle funktiolle olisi esimerkiksi '·*· i 30 r = S/(fiu-6+l)f (7) / · ’·. jossa Qmax kuvaa suurinta mahdollista kvantisointijakajaa. Epälineaarisilla funk- ’·* tioilla voidaan tuottaa parempilaatuista kuvaa, mutta liikkeenestimoinnin im- :: 35 plementaatiosta ja käyttötarkoituksesta riippuen kannattaa harkita niiden käy- “·” tön järkevyyttä.
11 115945
On edelleen selvää, että edellä lueteltuja rangaistuksia ja siirrän-näislohkon ja referenssilohkon tilavuuseroa voidaan painottaa halutulla tavalla. Eräässä suoritusmuodossa on edullista painottaa siirrännäislohkon ja referenssilohkon tilavuuseroa, sillä se on selvästi tärkein edellä mainituista kuvan-5 laatuun vaikuttavista tekijöistä.
Kuvatussa suoritusmuodossa lohkon tilavuuksia kuvaavat arvot muodostetaan lohkon pikseleiden summana, mutta ne voidaan muodostaa myös lohkon pikseleiden neliöllisenä summana tai jotakin muuta tarkoitukseen matemaattisesti sopivaa tapaa käyttäen.
10 Seuraavaksi kuvion 4 vuokaavioon viitaten selostetaan menetelmää peräkkäisten kuvien koodaamiseksi. Esimerkissä kuvataan suoritusmuoto, jossa kuvan koodaaminen suoritetaan makrolohkoittain. Koodaus esitetään ainoastaan ajallisen redundanssin vähentämisen kannalta yhdelle koodattavalle kuvan makrolohkolle, eikä muita redundanssin vähentämismenetelmiä kuvata 15 tässä yhteydessä.
Menetelmän suorittaminen aloitetaan lohkossa 400, jossa kooderi käynnistetään. Lohkossa 402 haetaan koodattavan kuvan makrolohkon lumi-nanssidata kehysmuistista sekä haetaan intra- ja interlohkojen kvantisoinnissa käytettävät dc-kertoimien kvantisointijakajat. Makrolohko on esim. MPEG-4 20 standardin mukainen 16x16 pikselin kokoinen kuva-alue, joka on jaettu neljään luminanssilohkooon ja kahteen krominanssilohkoon, jotka ovat kaikki 8 x * i · 8 pikselin kokoisia. Liikkeenestimointi suoritetaan yleensä vain luminanssiloh- ·:· · koille ja krominanssilohkot koodataan saadun liikevektorin perusteella.
Lohkossa 404 lasketaan kunkin koodattavan lohkon sisältämien • * · /·, 25 pikseleiden summat sekä keskiarvot, joiden avulla makrolohkolle lasketaan • » kustannusfunktion arvo lohkossa 406. Intramakrolohkon kustannusfunktioon • · · voidaan käyttää tunnetun tekniikan mukaista kustannusfunktiolaskentaa, jossa
• I
’*·*' lasketaan lohkon pikseleiden sekä lohkon keskiarvon välinen tilavuus, lisättynä aiemmin esitellyllä moduulirangaistuksella. Makrolohkon kustannusfunktio !.: i 30 muodostetaan esimerkiksi sen osien eli lohkojen kustannusfunktioiden sum- ♦ * » mana.
!:. Lohkossa 410 haetaan koodattavalle makrolohkolle kandidaattiliike- ]·'·, vektorin määräämä kandidaattimakrolohko referenssikuvan hakualueelta, jon- I » ka kullekin 8 x 8-lohkolle lasketaan summat ja keskiarvot lohkossa 412. Seu-
* I
·: 35 raavaksi lohkossa 414 lasketaan jokaiselle lohkolle kustannusfunktion arvo ”’· kaavan 4 ja mahdollisesti kaavojen 6 ja 7 avulla. Myös muut kustannusfunkti- 12 115945 on tekijät lisätään tässä vaiheessa. Näitä voivat olla mm. pitkän liikevektorin aiheuttama rangaistus tai nollaliikevektorin suosiminen.
Makrolohko voidaan MPEG-4 standardin mukaan koodata joko yhtä tai neljää liikevektoria käyttäen ja näin lohkossa 416 tallennetaan jokaisen loh-5 kon kustannusfunktion arvon minimi ja liikevektori, jolla se saavutettiin. Jos jonkun lohkon minimi alitetaan myöhemmin jollain toisella liikevektorilla, korvataan vanha kustannusfunktion arvo ja liikevektori uusilla. Lohkossa 420 lasketaan kustannusfunktion arvo kokonaiselle makrolohkolle eli tapaus, jossa käytetään vain yhtä liikevektoria. Tämä on helpointa laskea yksinkertaisesti sum-10 maamalla jokaisen lohkon kustannusfunktion arvot yhteen. Jälleen tallennetaan kustannusfunktion minimiarvo ja liikevektori muistiin lohkossa 422.
Seuraavaksi tarkistetaan onko kaikki liikevektorikandidaatit jo tutkittu 426. Jos niitä on vielä jäljellä, siirrytään nuolen 428 mukaisesti takaisin lohkoon 410, jossa haetaan seuraavan liikevektorikandidaatin määräämä refe-15 renssimakrolohko. Siinä tapauksessa, että kaikki liikevektorit on jo käyty läpi, siirrytään nuolen 430 mukaisesti valitsemaan joko yhden (inter) tai neljän (in-ter4v) liikevektorin koodausta lohkoon 432. On huomioitava, että makrolohkon koodaaminen neljällä liikevektorilla vie enemmän kaistaa vektoreiden lukumäärän vuoksi, joten valittaessa tämä vaihtoehto täytyy sen kustannusfunktion 20 arvo olla pienempi kuin yhden liikevektorin vaihtoehdossa. Nuolet 418 ja 424 esittävät kustannusfunktioiden arvojen lukemista. Koodausmuodon valinnassa * i· 432 siis suositaan inter-koodausta.
: * * · ·:· · Lohko 434 esittää toista koodausmuodon valintaa, jossa päätetään käytetäänkö lohkossa 432 valittua koodausmuotoa vai intra-koodausta. Nuoli .··. 25 408 esittää intra-lohkolle laskettua kustannusfunktion arvon lukua, jota verra- * * ;·’·, taan lohkossa 432 valituksi tulleen koodausmuodon kustannusfunktion arvoon.
« «
Pienimmän arvon saavuttanut koodausmuoto valitaan ja siirrytään lohkoon • # ***‘ 436, jossa koodataan kuvan koodattava lohko pienimmän kustannusfunktion arvon antavaa liikevektorikandidaattia käyttäen, joka liikevektorikandidaatti : 30 määrittää liikkeen kuvan koodattavan lohkon ja referenssikuvan hakualueella * * » olevan kandidaattilohkon välillä. Tämän jälkeen lohkosta 436 siirrytään 402:een, jossa jatketaan koodausta. Kuviossa 4 ei ole kuvattu menetelmän lo-,···, pettämistä, sillä sehän voidaan lopettaa periaatteessa millä hetkellä hyvänsä sammuttamalla kooderi, tosin koodaus voi tällöin jäädä kesken. Menetelmän 35 suorittaminen loppuu kuitenkin sitten, kun kaikki halutut peräkkäiset kuvat on : ' prosessoitu kuvatulla tavalla. On huomattava, että vaikka kuviossa 4 toiminta 13 115945 kuvataan pääasiassa peräkkäisenä, voidaan sitä suorittaa myös ainakin osittain rinnakkaisesti, esimerkiksi lohko 436 voidaan suorittaa yhdelle makroloh-kolle ja samanaikaisesti voidaan jo aloittaa seuraavan makrolohkon käsittely lohkossa 402. Samoin esimerkiksi lohkoja 406 ja 410, 420 ja 414, sekä 426 ja 5 424 voidaan suorittaa rinnakkain.
Kuvattu menetelmä voidaan toteuttaa esimerkiksi kuviossa 1 kuvattua laitetta käyttämällä, mutta muunkinlaiset laitteet voivat soveltua menetelmän toteuttamiseen. Kuviossa 1 kuvataan järjestely peräkkäisten kuvien koodaamiseksi. Järjestely käsittää kooderin 110, joka on konfiguroitu koodaa-10 maan kuvan koodattava lohko pienimmän kustannusfunktion arvon antavaa liikevektorikandidaattia käyttäen, joka liikevektorikandidaatti määrittää liikkeen kuvan koodattavan lohkon ja referenssikuvan hakualueella olevan kandidaatti-lohkon välillä. Lisäksi kooderiin 110 on kytketty liikkeenestimoija 118, joka on konfiguroitu laskemaan sekä koodattavan lohkon että kandidaattilohkon ver-15 tailtavien pikseleiden tilavuuksia kuvaavat arvot ja muodostamaan liikevektori-kandidaatin kustannusfunktion arvo hyväksikäyttäen koodattavan lohkon ja kandidaattilohkon vertailtavien pikseleiden välisiä erotuksia sekä niistä vähennettyä koodattavan lohkon ja kandidaattilohkon vertailtaville pikseleille laskettujen tilavuuksia kuvaavien arvojen pikselikohtaista erotusta.
20 Kuviossa 1 esitetyt lohkot voidaan toteuttaa yhtenä tai useampana asiakaskohtaisena integroituna piirinä (Application-Specific Integrated Circuit, ASIC). Myös muunlaiset toteutukset ovat mahdollisia, esimerkiksi erillisistä lo- ':" ·* giikkakomponenteista rakennettu piiri, prosessori ohjelmistoineen tai pelkkä tie- • · • tokoneohjelma. Myös näiden eri toteutustapojen sekamuoto on mahdollinen. 25 Alan ammattilainen huomioi toteutustavan valinnassa esimerkiksi laitteen kool- • · · :*·*: le ja virrankulutukselle asetetut vaatimukset, tarvittavan prosessointitehon, vai- • · . · · *. mistuskustannukset sekä tuotantomäärät. Mainitut välineet voidaan sijoittaa lait teen kuvattuihin lohkoihin tai sitten ne voidaan toteuttaa kuvattuihin lohkoihin liit-. . tyvinä uusina lohkoina. Kuvattu menetelmä ja järjestely peräkkäisten kuvien 30 koodaamiseksi voidaan siis toteuttaa myös tietokoneohjelmana. Tietokoneoh-jelma voidaan tallentaa sopivalle ohjelmiston jakeluvälineelle, esimerkiksi CD-ROM.ille tai tietokonemuistille. Tietokoneohjelma voidaan siirtää myös tietolii-kennesignaalina valmistajalta asiakkaalle, esimerkiksi Internetin ja/tai puhelin-.' . verkon ja/tai matkapuhelinverkon kautta ja/tai jotakin muuta paketti- tai piirikyt- **’; 35 kentäistä siirtotapaa käyttäen.
115945 14
Vaikka keksintöä on edellä selostettu viitaten oheisten piirustusten mukaiseen esimerkkiin, on selvää, ettei keksintö ole rajoittunut siihen, vaan sitä voidaan muunnella monin tavoin oheisten patenttivaatimusten esittämän keksinnöllisen ajatuksen puitteissa. Esimerkiksi, vaikka edellä on kuvattu kek-5 sinnön hyödyntämistä vain MPEG-4 tai H.263 standardien mukaisessa vide-onkoodauksessa, on selvää, että keksintöä voidaan soveltaa myös muihin lohkopohjaiseen liikkeenestimointiin perustuviin videonkoodausmenetelmiin. Edelleen on selvää, että keksinnön mukainen liikkeenestimointi ei ole sidoksissa edellä mainittuun täyshakuun, vaan se on käytettävissä myös erilaisten 10 hakualgoritmien yhteydessä. Keksinnön mukainen menetelmä ei myöskään ole sidottu liikkeenestimoinnissa käytettyyn resoluutioon, lohkokokoon tai loh-komuotoon. Alan ammattilainen voi modifioida esitettyjä kaavoja mm. siten, että matemaattisesti ekvivalentit tulokset saavutetaan mutta laskentatehok-kaammin.
M I M
· * * • * · # • · • · * I | | • · * · · • » • · * · · I · I « · I I I · I » > * « % %

Claims (22)

115945
1. Menetelmä peräkkäisten kuvien koodaamiseksi, käsittäen: koodataan (436) kuvan koodattava lohko pienimmän kustannus-funktion arvon antavaa liikevektorikandidaattia käyttäen, joka liikevektorikandi-5 daatti määrittää liikkeen kuvan koodattavan lohkon ja referenssikuvan hakualueella olevan kandidaattilohkon välillä; tunnettu siitä, että ennen koodaamista: lasketaan (404, 412) sekä koodattavan lohkon että kandidaattilohkon vertailtavien pikseleiden tilavuuksia kuvaavat arvot; ja 10 muodostetaan (414; 420) liikevektorikandidaatin kustannusfunktion arvo hyväksikäyttäen koodattavan lohkon ja kandidaattilohkon vertailtavien pikseleiden välisiä erotuksia sekä niistä vähennettyjä koodattavan lohkon ja kandidaattilohkon vertailtaville pikseleille laskettujen tilavuuksia kuvaavien arvojen pikselikohtaisia erotuksia.
2. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että liikevektorikandidaatin kustannusfunktion arvon muodostaminen käsittää lisäksi: vaikutetaan kustannusfunktion arvoon lohkottumista kuvaavalla moduulirangaistuksella
3. Patenttivaatimuksen 2 mukainen menetelmä, tunnettu siitä, että moduulirangaistus muodostetaan käyttäen koodauksen kvantisoinnissa ·:··: käytettävää kvantisointijakajaa sekä koodattavan lohkon ja kandidaattilohkon :'. välistä tilavuuseroa kuvaavaa arvoa.
• »# .*··. 4. Jonkin edellisen patenttivaatimuksen mukainen menetelmä, :v, 25 tunnettu siitä, että liikevektorikandidaatin kustannusfunktion arvon muo- \! dostaminen käsittää lisäksi: vaikutetaan kustannusfunktion arvoon koodattavan lohkon ja kandidaattilohkon välistä tilavuuseroa kuvaavan arvon ja koodauksen kvantisoinnis-i·: : sa käytettävän kvantisointijakajan välisellä funktiolla.
5. Jonkin edellisen patenttivaatimuksen mukainen menetelmä, tunnettu siitä, että liikevektorikandidaatin kustannusfunktion arvon muo-. ’ · *, dostaminen käsittää lisäksi: [·” vaikutetaan kustannusfunktion arvoon liikevektorikandidaatin pituu- della. 115945
6. Jonkin edellisen patenttivaatimuksen mukainen menetelmä, tunnettu siitä, että lohkon tilavuuksia kuvaavat arvot muodostetaan lohkon pikseleiden summana tai lohkon pikseleiden neliöllisenä summana.
7. Jonkin edellisen patenttivaatimuksen mukainen menetelmä, 5 tunnettu siitä, että koodattavan lohkon ja kandidaattilohkon pikseleille muodostetaan pikselikohtaiset tilavuuksia kuvaavat arvot jakamalla lohkon tilavuuksia kuvaava arvo yhdelle pikselille.
8. Patenttivaatimuksen 7 mukainen menetelmä, tunnettu siitä, että lohkon pikselikohtainen tilavuutta kuvaava arvo saadaan lohkon pikselei- 10 den keskiarvosta.
9. Jonkin edellisen patenttivaatimuksen mukainen menetelmä, tunnettu siitä, että koodattavan lohkon ja kandidaattilohkon pikseleille muodostetaan pikselikohtaiset tilavuuksia kuvaavat arvot laskettaessa sekä koodattavan lohkon että kandidaattilohkon vertailtavien pikseleiden tilavuuksia 15 kuvaavat arvot.
10. Tietokoneohjelma peräkkäisten kuvien koodaamiseksi, tunnettu siitä, että tietokoneohjelma sisältää ohjelmakäskyt, jotka aiheuttavat tietokoneen suorittamaan jonkin edellisen patenttivaatimuksen 1-9 mukaisen menetelmän peräkkäisten kuvien koodaamiseksi.
11. Ohjelmiston jakeluväline, tunnettu siitä, että se sisältää pa tenttivaatimuksen 10 mukaisen tietokoneohjelman.
.. ·‘ 12. Tietokonemuisti, tunnettu siitä, että se sisältää patenttivaa- •: · : timuksen 10 mukaisen tietokoneohjelman.
: ‘ . 13. Tietoliikennesignaali, tunnettu siitä, että se sisältää patentti- 25 vaatimuksen 10 mukaisen tietokoneohjelman.
: ·. ·. 14. Järjestely peräkkäisten kuvien koodaamiseksi, käsittäen: *·.·. kooderin (110), joka on konfiguroitu koodaamaan kuvan koodattava lohko pienimmän kustannusfunktion arvon antavaa liikevektorikandidaattia , , käyttäen, joka liikevektorikandidaatti määrittää liikkeen kuvan koodattavan loh- :;; : 30 kon ja referenssikuvan hakualueella olevan kandidaattilohkon välillä; : tunnettu siitä, että kooderiin (110) on kytketty liikkeenestimoija • I· (118), joka on konfiguroitu laskemaan sekä koodattavan lohkon että kandi- . · · ·. daattilohkon vertailtavien pikseleiden tilavuuksia kuvaavat arvot, ja muodosta maan liikevektorikandidaatin kustannusfunktion arvo hyväksikäyttäen koodat-*· * 35 tavan lohkon ja kandidaattilohkon vertailtavien pikseleiden välisiä erotuksia ”· sekä niistä vähennettyjä koodattavan lohkon ja kandidaattilohkon vertailtaville pikseleille laskettujen tilavuuksia kuvaavien arvojen pikselikohtaisia erotuksia. 115945
15. Patenttivaatimuksen 14 mukainen järjestely, tunnettu siitä, että liikevektorikandidaatin kustannusfunktion arvon muodostamiseksi liikkeen-estimoija (118) on lisäksi konfiguroitu muuttamaan kustannusfunktion arvoa lohkottumista kuvaavalla moduulirangaistuksella 5
16. Patenttivaatimuksen 15 mukainen järjestely, tunnettu siitä, että liikkeenestimoija (118) on konfiguroitu muodostamaan moduulirangaistus käyttäen koodauksen kvantisoinnissa käytettävää kvantisointijakajaa sekä koodattavan lohkon ja kandidaattilohkon välistä tilavuuseroa kuvaavaa arvoa.
17. Jonkin edellisen patenttivaatimuksen 14-16 mukainen järjeste-10 ly, tunnettu siitä, että liikevektorikandidaatin kustannusfunktion arvon muodostamiseksi liikkeenestimoija (118) on lisäksi konfiguroitu vaikuttamaan kustannusfunktion arvoon koodattavan lohkon ja kandidaattilohkon välistä tilavuuseroa kuvaavan arvon ja koodauksen kvantisoinnissa käytettävän kvanti-sointijakajan välisellä funktiolla.
18. Jonkin edellisen patenttivaatimuksen 14 -17 mukainen järjeste ly, tunnettu siitä, että liikevektorikandidaatin kustannusfunktion arvon muodostamiseksi liikkeenestimoija (118) on lisäksi konfiguroitu vaikuttamaan kustannusfunktion arvoon liikevektorikandidaatin pituudella.
19. Jonkin edellisen patenttivaatimuksen 14 -18 mukainen järjeste-20 ly, tunnettu siitä, että liikkeenestimoija (118) on konfiguroitu muodostamaan lohkon tilavuuksia kuvaavat arvot lohkon pikseleiden summana tai loh- ..!i ’ kon pikseleiden neliöllisenä summana.
20. Jonkin edellisen patenttivaatimuksen 14 -19 mukainen järjeste-ly, tunnettu siitä, että liikkeenestimoija (118) on konfiguroitu muodosta- 25 maan koodattavan lohkon ja kandidaattilohkon pikseleille pikselikohtaiset tila- ·*··; vuuksia kuvaavat arvot jakamalla lohkon tilavuuksia kuvaava arvo yhdelle pik- • * .*·*. selille. # »
21. Patenttivaatimuksen 20 mukainen järjestely, tunnettu siitä, . . että liikkeenestimoija (118) on konfiguroitu saamaan lohkon pikselikohtainen 1: i.; 30 tilavuutta kuvaava arvo lohkon pikseleiden keskiarvosta.
22. Jonkin edellisen patenttivaatimuksen 14 - 21 mukainen järjeste- ;:· ly, tunnettu siitä, että liikkeenestimoija (118) on konfiguroitu muodosta- : ' maan koodattavan lohkon ja kandidaattilohkon pikseleille pikselikohtaiset tila- . vuuksia kuvaavat arvot laskettaessa sekä koodattavan lohkon että kandidaatti- ’’ 35 lohkon vertailtavien pikseleiden tilavuuksia kuvaavat arvot. 115945
FI20030714A 2003-05-13 2003-05-13 Peräkkäisten kuvien koodaaminen FI115945B (fi)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FI20030714A FI115945B (fi) 2003-05-13 2003-05-13 Peräkkäisten kuvien koodaaminen

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FI20030714A FI115945B (fi) 2003-05-13 2003-05-13 Peräkkäisten kuvien koodaaminen
FI20030714 2003-05-13

Publications (3)

Publication Number Publication Date
FI20030714A0 FI20030714A0 (fi) 2003-05-13
FI20030714A FI20030714A (fi) 2004-11-14
FI115945B true FI115945B (fi) 2005-08-15

Family

ID=8566102

Family Applications (1)

Application Number Title Priority Date Filing Date
FI20030714A FI115945B (fi) 2003-05-13 2003-05-13 Peräkkäisten kuvien koodaaminen

Country Status (1)

Country Link
FI (1) FI115945B (fi)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8665318B2 (en) 2009-03-17 2014-03-04 Google Inc. Digital video coding
US9313493B1 (en) 2013-06-27 2016-04-12 Google Inc. Advanced motion estimation
US9807416B2 (en) 2015-09-21 2017-10-31 Google Inc. Low-latency two-pass video coding

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8665318B2 (en) 2009-03-17 2014-03-04 Google Inc. Digital video coding
US9313493B1 (en) 2013-06-27 2016-04-12 Google Inc. Advanced motion estimation
US9807416B2 (en) 2015-09-21 2017-10-31 Google Inc. Low-latency two-pass video coding

Also Published As

Publication number Publication date
FI20030714A0 (fi) 2003-05-13
FI20030714A (fi) 2004-11-14

Similar Documents

Publication Publication Date Title
US9729881B2 (en) Video encoding/decoding apparatus and method
KR100866293B1 (ko) 예측 프레임에서의 가중 예측을 위한 방법 및 장치
US7792193B2 (en) Image encoding/decoding method and apparatus therefor
EP1950971B1 (en) Moving image encoding device, moving image decoding device, moving image encoding method, and moving image decoding method
US20050114093A1 (en) Method and apparatus for motion estimation using variable block size of hierarchy structure
US8811487B2 (en) Method and apparatus for inter prediction decoding with selective use of inverse quantization and inverse transform
US20110176614A1 (en) Image processing device and method, and program
Liu et al. Bit-depth scalable coding for high dynamic range video
US20070025441A1 (en) Method, module, device and system for rate control provision for video encoders capable of variable bit rate encoding
US20080002770A1 (en) Methods, apparatus, and a computer program product for providing a fast inter mode decision for video encoding in resource constrained devices
US9066097B2 (en) Method to optimize the transforms and/or predictions in a video codec
MXPA02010964A (es) Metodo para codificar y decodificar informacion de video, codificador de video compensado por movimiento y decodificador correspondiente.
EP2684356A1 (en) MOTION VECTOR PREDICTORS (MVPs) FOR BI-PREDICTIVE INTER MODE IN VIDEO CODING
CN105379284A (zh) 动态图像编码装置及其动作方法
KR100961760B1 (ko) 이산코사인변환 계수를 참조하는 움직임 추정 방법 및 장치
FI110745B (fi) Menetelmä ja laite peräkkäisten kuvien koodaamiseksi
US20120121019A1 (en) Image processing device and method
FI115945B (fi) Peräkkäisten kuvien koodaaminen
US8326060B2 (en) Video decoding method and video decoder based on motion-vector data and transform coefficients data
Vanam et al. Distortion-complexity optimization of the H. 264/MPEG-4 AVC encoder using the GBFOS algorithm
CA2895855C (en) Video encoding and decoding apparatus and method using quantization in sub-blocks
Zhang et al. H. 264/AVC and transcoding for multimedia adaptation
KR100351568B1 (ko) 움직임 보상 예측 블록의 경계 방향성을 고려한 고압축장치 및 그 방법
Flierl et al. Generalized B Pictures and the Draft H. 26L Video Compression Standard
KR100335606B1 (ko) 반복적움직임예측/보상을이용한영상부호화기및/또는복호화기

Legal Events

Date Code Title Description
FG Patent granted

Ref document number: 115945

Country of ref document: FI

PC Transfer of assignment of patent

Owner name: GOOGLE INC.

Free format text: GOOGLE INC.

TC Name/ company changed in patent

Owner name: HANTRO PRODUCTS OY

Free format text: HANTRO PRODUCTS OY

Owner name: ON2 TECHNOLOGIES FINLAND OY

Free format text: ON2 TECHNOLOGIES FINLAND OY

MM Patent lapsed