FI113603B - Fraktaalikuvien kompressiomenetelmä - Google Patents

Fraktaalikuvien kompressiomenetelmä Download PDF

Info

Publication number
FI113603B
FI113603B FI20021216A FI20021216A FI113603B FI 113603 B FI113603 B FI 113603B FI 20021216 A FI20021216 A FI 20021216A FI 20021216 A FI20021216 A FI 20021216A FI 113603 B FI113603 B FI 113603B
Authority
FI
Finland
Prior art keywords
image
cascade
data
domain blocks
blocks
Prior art date
Application number
FI20021216A
Other languages
English (en)
Swedish (sv)
Other versions
FI20021216A0 (fi
FI20021216A (fi
Inventor
Karen Egiazarian
Jaakko Astola
Nikolay Ponomarenko
Vladimir Lukin
Alexander Zelensky
Original Assignee
Tampereen Teknillinen Yliopist
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 Tampereen Teknillinen Yliopist filed Critical Tampereen Teknillinen Yliopist
Priority to FI20021216A priority Critical patent/FI113603B/fi
Publication of FI20021216A0 publication Critical patent/FI20021216A0/fi
Publication of FI20021216A publication Critical patent/FI20021216A/fi
Application granted granted Critical
Publication of FI113603B publication Critical patent/FI113603B/fi

Links

Landscapes

  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

11360? ♦
Fraktaalikuvien kompressiomenetelmä
Keksinnön ala
Keksintö liittyy fraktaalikuvien kompressioon ja dekompressioon. Keksinnön tausta 5 Fraktaalikuvakompression idea poikkeaa huomattavasti useimmista muista kuvakompressiomenetelmistä. Useimmissa muissa kuvakompressio-menetelmissä kompressio perustuu tyypillisesti kuvainformaation digitaaliseen muotoon muokattuun dataan, jota digitaalista dataa muokataan edelleen data-sisällön minimoimiseksi. Kuvainformaatiota käsitellään bittivirtana, johon sovel-10 letaan tunnettuja kompressiomenetelmiä datasisällön muokkaamiseksi pienempään muotoon.
Kaikki fraktaalikuvakompressiomenetelmät perustuvat sitä vastoin kuvan itsensä tarkasteluun ja siihen, että yritetään määrittää kuvasta joitakin alueita, jotka ovat olennaisesti samanlaisia kuvan joidenkin muiden alueiden 15 kanssa. Näitä samankaltaisuuksia hyödynnetään sitten kompressiossa muokkaamalla ensimmäisen alueen dataa enemmän tai vähemmän jonkin toisen alueen datan muodostamiseksi. Tunnetuissa fraktaalikuvien kompressio/de-kompressiomenetelmissä kompressoitava kuva jaetaan aluelohkoihin, jotka voivat olla keskenään saman tai eri muotoisia ja kokoisia. Nämä aluelohkot . 20 kattavat koko kuvan sisällön. Kuvien jakamiseksi kooltaan ja muodoltaan eri- laisiksi aluelohkoiksi voidaan käyttää osituskaaviota, mikä yleisesti ottaen • « . . parantaa kuvakompression laatua. Lisäksi muodostetaan domain-lohkoja si- * ; ten, että yleensä domain-lohkojen lukumäärä on suurempi kuin aluelohkojen • •»tl ‘ ’ lukumäärä. Tunnetuissa fraktaalikuvakompressiomenetelmissä domain-lohkot ‘: 25 voivat olla keskenään päällekkäisiä.
Jokaista aluelohkoa varten etsitään domain-lohko, joka ennalta määritetyttyjen kriteerien, kuten esimerkiksi jonkin muunnoksen (affinoimalla, :· skaalaamalla, jne.) minimivirheen perusteella, kuvaa parhaiten kyseistä alue- :'1lohkoa. Yleensä ne domain-lohkot, joiden joukosta etsiminen suoritetaan, vali- ' . 30 taan pienemmäksi skaalatusta kuvasta; näin ollen domain-lohkoa vastaavan ’ kuvafragmentin koko tulee suuremmaksi kuin kyseessä oleva aluelohko. Et sinnän tuloksena aluelohkot osoitteistetaan domain-lohkoihin, jolloin osoitta-: misparametrit koodataan yhdessä muun datan, kuten käytettävän osituskaa- : : viodatan, lohkojen keskiarvojen, jne, kanssa. Edellä kuvatun kaltainen kuva- 113607 2 kompressiomenetelmä tunnetaan esimerkiksi kirjasta: Fisher Y., Ed., “Fractal Image Encoding and Analysis”, Berlin, Germany, Springer-Verlag, 1995.
Eräs fraktaalikuvakompressiomenetelmien suurimmista haittapuolista on fraktaalikuvien dekompressioon tarvittava varsin suuri määrä laskutoi-5 mituksia, mikä johtuu dekoodauksessa tarvittavasta suhteellisen suuresta ite-raatioiden määrästä. Tämän haittapuolen aiheuttaa osoittamisessa käytettävät silmukat. Termillä ’’silmukka” viitataan tässä yhteydessä siihen, että alueloh-kojen dekoodauksessa on tarpeen löytää aluelohkoille arvoja, joita voidaan käyttää vastaavien domain-lohkojen kattamien alueiden paikalla. Vastaavasti 10 laskettaessa domain-lohkojen arvoja on tarpeen laskea arvoja aluelohkoille, jotka sijaitsevat vastaavien domain-lohkojen kattamilla alueilla. Tämän seurauksena laskettaessa kunkin aluelohkon arvoja tässä ketjussa, voidaan tarvita niitä aluelohkon niitä jo laskettuja arvoja, jotka aloittivat kyseisen ketjun.
Tätä voidaan havainnollistaa viittaamalla kuviossa 1 esitettyyn yk-15 sinkertaistettuun esimerkkiin. Kuvio 1 esittää esimerkin silmukasta, jossa alue-lohkot R1, R2 ja R3 osoitteistetaan vastaavasti domain-lohkoihin D1, D2 ja D3. Tällöin R1:n muodostamiseksi tarvitaan R2:n arvot, R2:n muodostamiseksi tarvitaan R3:n arvot ja R3:n muodostamiseksi tulee tietää R1:n arvot. Todellisissa kuvakompressiotilanteissa osoittamisen silmukat ovat tyypillisesti paljon moni-20 mutkaisempia kuin tässä yksinkertaistetussa esimerkissä. Yleensä yhden aluelohkon arvojen laskemiseen tulee käyttää silmukoiden kuvan monien tai \ jopa kaikkien aluelohkojen käsittävää pikseliketjua, käsittäen myös itsensä ky- ·:*: seessä olevan aluelohkon. Tämän vuoksi kuvan dekompressiossa tarvitaan : * ·, · useita iteraatioita riittävän tarkkuuden saavuttamiseksi.
25 Aluelohkojen epätarkka osoittaminen domain-lohkoihin aiheuttaa . . : virheitä kuvadatassa. Koodauksen suorittamisen aikana, edellä mainituista sil- ,···,’ mukoista johtuen, nämä virheet etenevät kuvadatassa suoritettaessa kooda- usosoittamista, ja on mahdotonta tietää tarkasti, kuinka nämä virheet vaikuttavat kuvan dekoodauksen koostevirheeseen. Koostevirheen tarkka arvo voi-; 30 daan määrittää vasta kuvan dekoodauksen jälkeen.
• : Edellä mainitut haittapuolet rajoittavat fraktaalikuvien kompres- sio/dekompressiomenetelmien ja vastaavien järjestelyjen käyttöä monissa ·. käytännön sovelluksissa, erityisesti sellaisissa sovelluksissa, joissa koostevir heen ennustaminen on suotavaa ja tarvitaan nopeaa kuvan dekoodausta. Tä- * · '; - * 35 mä jälkimmäinen vaatimus on erityisen tärkeä videosekvenssien dekoodauk- :...: sen kaltaisissa sovelluksissa.
11360? 3
Keksinnön lyhyt selostus
Keksinnön tavoitteena on näin ollen aikaansaada menetelmä ja menetelmän toteuttava laitteisto edellä mainittujen ongelmien pienentämiseksi. Keksinnön tavoitteet saavutetaan menetelmällä, kuvakooderilla, kuvadekoode-5 riita, tietokoneohjelmalla ja signaalilla, joille on tunnusomaista se, mitä sanotaan itsenäisissä patenttivaatimuksissa.
Keksintö perustuu ajatukselle, jonka mukaan kuvadatasta määritetään kaskadeja. Kaskadi viittaa aluelohkojen joukkoon, joka käsittää ainakin yhden aluelohkon, ja jota kaskadia käytetään aluelohkojen ja domain-lohkojen 10 välisessä osoittamisessa. Kaskadin kompressio/dekompressiossa osoittamis-kaavio organisoidaan siten, että aluelohkojen osoittamisessa domain-lohkoihin ei synny silmukoita.
Tarkemmin sanottuna tämä saavutetaan järjestelyllä, jossa ainakin yksi aluelohkoihin ja domain-lohkoihin jaettavissa olevan kuva fraktaalikuva-15 koodataan menetelmällä, jossa määritetään ensimmäinen kaskadi, joka käsittää ainakin yhden aluelohkon mainitusta ainakin yhdestä kuvasta käytettäväksi edelleen domain-lohkojen aloitusjoukkona. Tämän jälkeen määritetään osoi-tuskaavio, jonka mukaisesti ainakin seuraava kaskadi lisätään olemassa olevaan määritettyjen domain-lohkojen joukkoon. Seuraavan kaskadin kuvadata 20 koodataan käyttämällä ainoastaan mainitun olemassa olevan määritettyjen domain-lohkojen joukon pikseliarvoja, jolloin estetään toistojaksojen syntymi-:·nen. Kaskadin koodattu data lisätään olemassa olevaan määritettyjen domain- *:lohkojen joukkoon ja tätä koodaamista ja lisäämistä toistetaan seuraavien kas-• · ·.’·· kadien osalta, kunnes kuvan kuvadata on koodattu.
·:**:’ 25 Keksinnön erään edullisen suoritusmuodon mukaisesti koodausvai- : ‘ ·, · heessa aluelohkojen koko ja aluelohkoista osoitettavien domain-lohkojen koko • · ;··. on yhtä suuri.
• * »
Keksinnön erään edullisen suoritusmuodon mukaisesti määritetään osituskaavio mainitun ainakin yhden kuvan jakamiseksi kaskadeihin, joka osi- ' :; 30 tuskaavio minimoi kaskadien lukumäärän annetulla kuvan laadulla.
• * ; · ’ Keksinnön mukaisen menetelmän etuna on, että yhden pikseliarvon i palauttamisessa tapahtuva virhe ei vaikuta muiden pikseleiden palautus- virheisiin. Tämä mahdollistaa sen, että jokaisen pikseliarvon palautusvirheestä saadaan tarkka tieto jo osituskaavion optimointivaiheessa. Lisäksi menetel-35 män etuna on, että on mahdollista päästä eroon liukuvan pilkun arvonlas- • · '*··' kennasta, mistä puolestaan seuraa huomattava dekoodausprosessin nopeu- 113607 4 tuminen. Edelleen etuna on, että ei tarvita erikokoisia alue- ja domain-lohkoja, jolloin ei myöskään tarvita pienentävää skaalausta, mikä myös nopeuttaa dekoodausprosessia. Lisäksi koska käytetään samankokoisia alue- ja domain-lohkoja, on mahdollista laskea pikseliarvot ilman kertolaskuja käyttämällä ha-5 kutaulukoita, mikä edelleen nopeuttaa dekoodausprosessia. Lisäksi etuna on, että yhteen iteraatioon perustuva kompressoidun kuvan dekoodausalgoritmi mahdollistaa dekoodausprosessin nopeuttamisen 10-20 -kertaiseksi verrattuna perinteisiin fraktaalikoodausmenetelmiin.
Kuvioiden lyhyt selostus 10 Keksintöä selostetaan nyt lähemmin edullisten suoritusmuotojen yh teydessä, viitaten oheisiin piirroksiin, joista:
Kuvio 1 esittää esimerkin tunnetun tekniikan mukaisesta fraktaali-kuvakoodauksesta, joka käsittää silmukoita;
Kuvio 2 esittää vuokaaviona keksinnön erään edullisen suoritus-15 muodon aluelohkojen osoittamis- ja osituskaavion toteutuksesta;
Kuviot 3a ja 3b esittävät erään edullisen suoritusmuodon mukaisen kompressiokaavion, jossa käytetään domain-lohkojen pienentävää skaalausta;
Kuviot 4a ja 4b esittävät erään edullisen suoritusmuodon mukaisen kompressiokaavion ilman domain-lohkojen pienentävää skaalausta; 20 Kuvio 5 esittää erään 512x512 pikselin harmaasävytestikuvan; : Kuvio 6a esittää kuvakooderin erään edullisen toteutuksen lohko- «· · ·:··· kaavion; : Kuvio 6b esittää kuvakooderin erään toisen edullisen toteutuksen • * · yksinkertaistetun lohkokaavion; ja • · . 25 Kuvio 7 esittää kuvadekooderin erään edullisen toteutuksen lohko- kaavion.
* · * · * * >
Keksinnön yksityiskohtainen selostus ;:· Keksintöä voidaan soveltaa missä tahansa stillkuvien tai videosek- : venssien koodauksessa/dekoodauksessa, jossa käytetään fraktaalikuvia. Kek- ' . 30 sintö on erityisen hyvin sovellettavissa sovelluksissa, joissa tarvitaan nopeaa ,.: kuvan dekoodausta, esimerkiksi videosekvenssien dekoodaksessa.
• *' Keksinnön mukaista menetelmää voidaan kutsua kuvien kaskadikomp- :‘i ressiomenetelmäksi erotuksena perinteisistä fraktaalikuvakompressiomenetel- : mistä. Tässä yhteydessä kaskadi viittaa aluelohkojen joukkoon, joka käsittää 35 ainakin yhden aluelohkon, ja jota kaskadia käytetään aluelohkojen ja domain- 11360? 5 lohkojen välisessä osoittamisessa. Kaskadin kompressio/dekompressiossa osoittamiskaavio organisoidaan siten, että aluelohkojen osoittamisessa do-main-lohkoihin ei synny silmukoita. Tämä rajoitus poistaa kaiken samaan pisteeseen palautumisen pikseliarvojen määrityksessä, välttäen näin kaikki ite-5 raatiot, koska kuvan palautus suoritetaan yhdessä vaiheessa. Keksinnön mukaisessa kaskadialgoritmissa ei ole välttämätöntä käyttää domain-lohkoja, jotka ovat kooltaan suurempia kuin aluelohkot, päinvastoin kuin perinteisissä fraktaalikuvakompressiomenetelmissä, joissa tämä on ennakkoehto. Lisäksi niiden muunnosten, joiden avulla aluelohkot osoitteistetaan domain-lohkoiksi, 10 ei tarvitse välttämättä olla affinoituja. Näiden perinteisiin fraktaalimenetelmiin nähden pienten erojen vuoksi keksinnön mukaista menetelmää voidaan kutsua ’’fraktaalinkaltaiseksi” menetelmäksi.
Näin ollen voidaankin määritellä, että kaskadikompressio on frak-taalinkaltainen kompressio, jossa minkä tahansa pikseliarvon laskemiseen, βει 5 kä kompressio- että dekompressiovaiheessa, voidaan käyttää vain niiden pik-selien arvo(j)a, jotka on jo laskettu siihen mennessä. Tässä tapauksessa ei ole välttämätöntä, että domain-lohkojen koko on suurempi kuin aluelohkojen koko.
Keksintöä havainnollistetaan nyt tarkemmin viitaten kuvion 2 mukaiseen vuokaavioon, joka esittää menetelmän erään edullisen suoritusmuodon, 20 jossa esitetään eräs mahdollinen toteutus aluelohkojen osoitteistamis- ja osi-tuskaavioksi. Menetelmä alkaa datan alustamisella (202), missä vaiheessa ei ole määritettyjä arvoja yhdellekään kuvapikselille ja näin ollen kaskadien ·: ·: lukumäärä on nolla. Seuraavaksi luodaan kaskadi (204). Ensimmäisen kas- kadin tapauksessa, jolloin ei ole määritettyjä arvoja yhdellekään kuvapikselille, ·...: 25 kaskadin kooksi valitaan minimiarvo. Minkä tahansa seuraavan kaskadin ta- : pauksessa kaskadin koko määritetään edullisesti niin suureksi kuin aiemmat
• I I
kuvapikselien määritetyn arvot sallivat. Uuden kaskadin sijainti ja koko määritetään (206). Uusi kaskadi tulee muodostua ainoastaan pikseleistä, joiden arvoa ei ole vielä määritetty. Sen jälkeen kaskadin osituskaavio optimoidaan ; 30 (208), jolloin aluelohkojen osoitteet etsitään niiden pikselien joukosta, joilla on .; jo määritetyt arvot.
j Seuraavaksi valitaan (210) osituskaavion mukaisesti yksi kaskadi- . . aluelohkon osa. Tämä osa koostuu aluelohkoista, joiden lukumäärä voi vaih della yhdestä tähän asti määritettyjen aluelohkojen kokonaislukumäärään. ' * 35 Aluelohkojen kompressiodata tallennetaan ulostulevaan datataulukkoon ja aluelohkojen pikseliarvot määritetään, jotta niitä voidaan myöhemmin käyttää 113607 6 sellaisten pikselien kompressointiin, joita ei ole vielä määritetty. Sen jälkeen kuvadatasta tarkistetaan, onko jonkin pikselin arvo vielä määrittämättä (212). Jos löytyy pikseleitä, joiden arvoa ei ole vielä määritetty, määritetään vaiheessa 204 uusi kaskadi ja sen koko. Jos taas kaikkien pikseleiden arvot on mää-5 ritetty, on koko kuvadatalle silloin saatu muodostettua osoitteistus aluelohko-jen ja domain-lohkojen välille. Tämä osoitteistus ei edullisesti käsitä lainkaan silmukoita, jolloin iteraatiotakaan ei tarvita.
Kuvien kaskadikompressio/dekompressioalgoritmilla on useita etuja verrattuna perinteisiin fraktaalikuvien kompressio/dekompressioalgoritmeihin. 10 Ensiksikin, yhden pikseliarvon palauttamisessa tapahtuva virhe ei vaikuta muiden pikseleiden palautusvirheisiin. Tämä mahdollistaa sen, että jokaisen pikseliarvon palautusvirheestä saadaan tarkka tieto jo osituskaavion optimoin-tivaiheessa. Tämä mahdollistaa optimoinnin kehittämisen ja palautetun kuvan laadun parantamisen. Lisäksi on mahdollista päästä eroon liukuvan pilkun ar-15 vonlaskennasta, mistä puolestaan seuraa huomattava dekoodausprosessin nopeutuminen.
Eräänä etuna on, että ei tarvita erikokoisia alue- ja domain-lohkoja. Kun käytetään samankokoisia alue- ja domain-lohkoja, ei enää tarvita datan skaalausta, mikä myös nopeuttaa dekoodausprosessia. Lisäksi koska käyte-20 tään samankokoisia alue- ja domain-lohkoja, on mahdollista laskea pikseli-arvot ilman kertolaskuja käyttämällä hakutaulukoita, mikä edelleen nopeuttaa :. I.: dekoodausprosessia.
·: : Lisäksi etuna on, että verrattuna fraktaalikoodausmenetelmiin, jois- sa tarvitaan 10-20 iteraatiokierrosta hyvälaatuisen palautetun kuvan aikaan- • · 25 saamiseksi, yhteen iteraatioon perustuva kuvan kaskadidekoodaus mahdollis- : taa dekoodausprosessin nopeuttamisen vastaavasti monikertaisesti (10-20 ,···] kertaisesti).
• %
Kaiken kaikkiaan, kun kaikki edellä mainitut edut huomioidaan yhdessä, mahdollistaa kasdadikompressioalgoritmi sen, että dekoodausaikaa 30 voidaan vähentää fraktaalidekompressioon verrattuna monikymmenkertaisesti, • : edullisesti jopa enemmän kuin satakertaisesti. Sen lisäksi, että kaska- :' · dialgoritmi on huomattavasti nopeampi kuvan dekompressiossa kuin muut > · kompressiomenetelmät, sillä päästää myös samalle tasolle kompression suorituskyvyssä, t.s. samalla kompressiosuhteella palautetun kuvan laatu on yhtä » I t *; J; * 35 hyvä kuin esimerkiksi aaltomuunnokseen tai DCT-muunnokseen (Discrete :...: Cosine Transform) perustuvissa kompressioalgoritmeissa.
113607 7
Lisäksi osituskaavion, jota kaskadialgoritmi käyttää kompression suorittamiseen, tarkempi optimointi mahdollistaa useimmissa tapauksissa paremman laadun palautetuille kuville kuin fraktaalikompressiomentelmien tapauksessa. Tietyn tyyppisille kuville, erityisesti keinotekoisille kuville, kuten piir-5 roselokuvien kuville, jotka käsittävät paljon teräviä kulmia, palautettujen kuvien laatu kaskadialgoritmia käyttäen voi olla huomattavasti parempi kuin aalto- tai DCT-muunnokseen perustuvien kompressio/dekompressioalgoritmien pohjalta saaduissa kuvissa, joihin muodostuu helposti huomattavia vääristymiä. Näin ollen tämän suoritusmuodon mukainen algoritmi on hyvin käyttökelpoinen se-10 kä tietyn tyyppisten still-kuvien kompressoinnissa että minkä tahansa video-sekvenssin kompressiossa, koska jälkimmäisessä tapauksessa algoritmin avulla saadaan hyvin nopea dekoodaus riittävällä laadulla.
Kuten edellä on mainittu, kaskadifraktaalikompression idea perustuu sille, että aluelohkojen/domain-iohkojen osoitteistaminen organisoidaan 15 siten, että osoitteistamisessa ei synny silmukoita eikä ketjuja kaskadialueiden sisällä. Tällöin voidaan jo osituskaavion optimointivaiheessa tietää tarkasti kunkin aluelohkon aikaansaama virhe dekoodauksen koostevirheessä. Lisäksi kompressoitu kuva voidaan dekoodata yhdellä iteraatiolla ilman, että dekoodauksen tarkkuus heikkenee. Fraktaalin kaltaisen kaskadikuvakompression 20 mukaista aluelohkojen/domain-iohkojen osoitteistamista havainnollistetaan seuraavaksi kahden esimerkin avulla.
Kuvioissa 3a ja 3b esitetyn erään edullisen suoritusmuodon mu- kaan silmukoiden välttämiseksi aluelohkojen osoitteistamisessa domain-loh- :*·,· koiksi kuva jaetaan erillisiin eriin (alueisiin), jotka yhdessä muistuttavat ”vesi- 25 putouskaskadia”. Jokaisen kaskadialueen koodaamisessa käytetään domain- . ·, : lohkoina vain niitä kaskadialueita, jotka on jo koodattu annettuna hetkenä.
• »·
Aloitettaessa koodausta ensimmäinen kaskadi voi periaatteessa sijaita missä tahansa kuvan kohdassa. Erityisesti kuvan johonkin neljään kulmaan sijoitettu 4x4 pikselin fragmentti voidaan valita ensimmäiseksi kas-: 30 kadiksi. Kuviossa 3a ja 3b esitetään esimerkki, jossa koodaus aloitetaan ku- van vasemmasta yläkulmasta, johon aloitusfragmentti 300 sijoitetaan. Tätä \j fragmenttia 300 käytetään domain-lohkona koodattaessa alueet 302 ja 304,
> I
joiden koko on 2x2 pikseliä ja jotka liitetään aloitusfragmenttiin 300 sen ; ‘ oikeaan reunaan. Kun alueet 302 ja 304 on koodattu, voidaan kaikkia kolmea ** 35 aluetta (300 - 304) käyttää domain-lohkona, jonka koko on 6x4 pikseliä.
> » » Tämän osituskaavion mukaisesti seuraavat alueet liitetään aina suorakulmion 11360,7 8 muotoisen domain-lohkokentän pidemmälle sivulle. Näin ollen seuraavien koodattavien alueiden 306 ja 308 koko on 3x2 pikseliä. Sen jälkeen voidaan taas näiden viiden alueen (300 - 308) muodostamaa 6x6 neliötä käyttää domain-lohkojoukkona, jolloin uudet, kooltaan 3x3 pikseliä olevat alueet liitetään ky-5 seisen domain-lohkojoukon oikealle sivulle. Tätä prosessia jatketaan, kunnes koko kuva on jaettu alueisiin. Kaskadialueiden kattama ala kasvaa hyvin nopeasti. Kuvio 3b esittää kompressiojärjestyksen ja alueen kasvunopeuden kuvalle, jonka koko on 512x512 pikseliä. Lohkojen sisäpuoliset numerot osoittavat niiden koodausjärjestyksen.
10 Tätä alueosituskaaviota käytetään jokaisen kaskadialueen komp ression optimointiin. Eräs tätä kautta saavutettava tärkeä hyöty on erittäin suuri dekoodausnopeus kuvalle. Näin ollen vaikuttaa järkevältä käyttää vain sellaisia osituskaaviota, joissa käytetään suorakulmaisia lohkoja - neliöpuuraken-netta, horisontaali-vertikaalimuunnosta tai vastaavia. Tällainen lohkomuotoon 15 perustuva asetus mahdollistaa sen, että jokaisen aluelohkon sisällä suoritettaviin pikseliarvojen laskemiseen tarvitaan melko vähäinen määrä laskutoimituksia.
Kaskadialueiden osituskaaviot optimoidaan jaksoittaisesti kaskadin aluenumerojärjestyksessä. Muistiresurssien jakamisessa kaskadialueiden kes-20 ken voidaan käyttää erilaisia vaihtoehtoja. Erään edullisen suoritusmuodon mukaisesti toteutuksen yksinkertaistamiseksi voidaan käyttää epäsuoraa ja-:.j,: koa, joka ottaa huomioon kuvakompression häviöiden rajoitukset. Tässä suori- *:··: tusmuodossa kaikille kaskadialueille asetetaan yhteinen häviöiden hyväksyttä- vyysraja (kynnysarvo). Sen jälkeen osituskaaviota jaetaan yksityiskohtaisem- • · 25 maksi niin kauan, että tietyn alueen häviöt muodostuvat hyväksyttäviksi ositus- : kaavion optimoinnissa käytettävän kriteerin suhteen (esimerkiksi pienemmiksi • * * ,···’ kuin annettu kynnysarvo). Näin ollen monimutkaisemman alueen osituskaa- • t vion tulee käsittää enemmän lohkoja kuin yksinkertaisemman alueen ositus- , kaavion.
» »♦ : 30 Kuvan dekoodausvaiheessa kaskadialueet dekoodataan samassa järjestyksessä, mikä suoritettiin koodausvaiheessa. Sen vuoksi, kun tietyn alu-: I een dekoodaus alkaa, tiedetään domain-lohkoina käytettävien alueiden arvot , ·. jo siinä vaiheessa.
Eräs kaskadikuvakoodauksen eduista on, että vältetään silmukoi-‘ ·* 35 den käyttäminen, kun osoitteistetaan domain-lohkoja aluelohkoihin. Tämän ..·* seurauksena perinteisten menetelmien edellyttämä domain-lohkojen skaalaus, 113607 9 johon liittyy kuvien iteratiivisen dekoodauksen muodostama läheneminen, tulee tarpeettomaksi. Näin ollen toisen edullisen suoritusmuodon mukaisesti voidaan käyttää samankokoisia alue- ja domain-lohkoja. Kaskadikompression tapauksessa saavutetaan näin se etu, että kaskadialueiden lukumäärä on pie-5 nempi, minkä seurauksena jokaisen kuva-alueen, kuten samalla koko kuvan, koodauksen laatua voidaan parantaa. Lisäksi samankokoiset aluelohkot ja do-main-lohkot nopeuttavat dekoodausta ja vähentävät kuvan dekoodauksen las-kenta-aikaa johtuen domain-lohkojen skaalausoperaation puuttumisesta.
Tätä suoritusmuotoa voidaan havainnollistaa kuvioiden 4a ja 4b 10 mukaisilla esimerkeillä. Koodaus aloitetaan alkufragmentista (400), jonka koko on 2x2 pikseliä, ja joka sijaitsee esimerkiksi kuvan vasemmassa yläkulmassa. Tätä fragmenttia käytetään domain-lohkona koodattaessa seuraavaa samankokoista aluetta, joka alkufragmenttiin 400 esimerkiksi oikealle puolelle. Kun alueet 400 ja 402 on koodattu, on mahdollista käyttää molempia alueita yh-15 dessä seuraavana domain-lohkojoukkona, jonka koko on 4x2 pikseliä. Osituskaavion mukaisesti seuraavat alueet liitetään jälleen aina suorakaiteen muotoisen domain-lohkokentän pidemmälle sivulle. Näin ollen seuraava alue tulee koodata yhtä suureksi, 4x2 pikseliä, ja liittää se aiemmin koodatun alueen alle. Sen jälkeen voidaan taas käyttää kolmesta alueesta (400 - 404) 20 muodostunutta 4x4 pikselin neliötä domain-lohkojoukkona, johon seuraava 4x4 pikselin alue liitetään esimerkiksi mainitun domain-lohkojoukon oikealle puolelle. Sen jälkeen seuraava alue 408, jonka koko on 8x4 pikseliä, liitetään ··' ·: aiemmin koodatun alueen alle. Tätä prosessia jatketaan kunnes koko kuva on :' ·, jaettu alueisiin. Kaskadialueet kasvavat vielä nopeammin kuin edellisessä esi- * · , 25 merkissä. Kuvio 4b esittää kompressiojärjestyksen ja alueen kasvunopeuden .·, : kuvalle, jonka koko on 512x512 pikseliä. Lohkojen sisäpuoliset numerot osoit- » < * ,·* tavat niiden koodausjärjestyksen. Voidaan nähdä, että esimerkinomainen 512x512 pikselin kuva tarvitsee vain 16 kaskadia, kun taas edellisen esimerkin , skaalautuvat lohkot edellyttivät 52 kaskadia.
;;; 30 Kaskadikuvakompressiomenetelmien yhteydessä tehty tutkimus on ' · ·: paljastanut, että sillä kuvan kulmalla, johon ensimmäinen kaskadifragmentti si- :*· · joitetaan ja josta kaskadin muodostus täten aloitetaan, on erityistä merkitystä .··. kompressiosuhteen osalta. Tutkimusten mukaan, joissa tutkittiin kaikki kah- ’ , deksan mahdollista variaatiota (neljä kulmaa ja niiden peilimuunnokset), ha- 35 valttiin 10 % ero kompressiosuhteessa parhaimman ja huonoimman kompres-siosuhteen välillä. Näin ollen mikäli halutaan saavuttaa paras mahdollinen 10 11360? kompressiosuhde, voidaan koodausvaiheessa suorittaa kompressio kaikille kahdeksalle vaihtoehdolle ja valita sen jälkeen paras. Tämä kasvattaa kooda-usajan kahdeksan kertaiseksi, mutta sillä ei ole vaikutusta dekoodaukseen. Erään edullisen suoritusmuodon mukaisesti koodattuun kuvatiedostoon lisä-5 tään kolme ylimääräistä bittiä osoittamaan kaskadin aloituspiste ja helpottamaan dekoodausta.
Fraktaalitutkimuksessa käytetään yleisesti testikuvaa “Lena”, erästä 512x512 pikselin harmaasävykuvaa näyttelijätär Lena Olinista, joka esitetään kuviossa 5. Testikuvalle "Lena" suoritettiin eräs laskennallinen simulaatio. Mai-10 nitun kuvan koodauksessa tietyillä bittinopeuksilla muodostuneita PSNR-ar-voja (Peak Signal-to-Noise Ratio) käytetään yleisesti vertaamaan eri koodauskaavioita kompression laadun suhteen. Kiinteiksi PSNR-arvoiksi valittiin 21 dB, 36 dB ja 40 dB. Osituskaaviona käytettiin yksinkertaistettua muunnosta horisontaali-vertikaali-osituskaaviosta. Tämän kaavion mukaisesti 15 jokainen aluelohko voidaan osittaa kahteen yhtäsuureen lohkoon joko ho-risontaalisti tai vertikaalisti. Jokaiselle alueiohkolle tallennetaan seuraava informaatio: domain-lohkon koordinaatit (koodikirjan koosta riippuen maksimissaan 15 bittiä), intensiteetti (8 bittiä), kontrastikerroin (5 bittiä). Lisäksi koko kuvalle tallennetaan kaskadin muodostuksen muunnosnumero (3 bittiä). Taulukko 1 20 esittää kuvan koodauksen tulokset PSNR-arvoina (dB) tietylle bittinopeudelle fraktaalikuvakompressiolle (FIC, fractal image compression), optimoidun osi-tuskaavion ennusteelle (FIC forecasted, FICF), kaskadiin perustuvalle fraktaa-: i likuvakompressiolle (CFIC, cascade fractal image compression), jossa do- ’ main-lohkot skaalataan pienemmäksi ja sen variaatiolle (modified CFIC, ..,: 25 MCFIC), jossa domain-lohkot ei skaalata pienemmäksi.
Bittinopeus
Menetelmä____ __0.02 0.1 0.5_ ;;j1 FICF__23.80 29.37 36.28 ! _FIC__23.28 28.60 35.45 CFIC__22.35 28.19 35.61 MCFIC 22.94 28.64 35.80
Taulukko 1.
I t I
« t 113607 11
Taulukossa 1 esitetty data vahvistaa sen, että kaskadikompressiolla (CFIC/MCFIC) saadaan aikaan yhtä korkealaatuinen tulos kuin perinteisillä fraktaalikompressiomenetelmillä (FICF/FIC). Kuvan laatua voidaan kuitenkin parantaa monilla tavoin sekä koodaus- että dekoodausvaiheessa. Näihin kuu-5 luu ainakin seuraavat: monimutkaisempien osituskaavioden soveltaminen ja niiden optimisoinnin täydellisemmät algoritmit, edistyneempien algoritmien käyttäminen muistiresurssien jakamiseen kaskadialueiden kesken (koodaus-vaiheessa), aluelohkojen reunoilla olevien virheellisyyksien tasoittaminen (dekoodausvaiheessa).
10 Myös kuvadekoodauksen laskenta-aika arvioitiin kuvalle “Lena”. Ar- vionnit tehtiin tietokoneella, joka käsitti prosessorin Celeron™ 450 MHz. De-koodausohjelma suunniteltiin käyttäen Delphiä™ yhdessä Assembler-fragmenttien kanssa, mitään MMX- tai muita erityisiä komentoja kuvadekoodauksen nopeuttamiseksi ei käytetty. Dekoodausaika vaihtelee hiukan riippuen osi-15 tuskaaviossa olevien aluelohkojen lukumäärästä. CFIC:lle saavutettu dekoodausaika oli noin 80 dekoodattua kehystä sekunnissa, ja MCFIC:lle vastaavasti 95 dekoodattua kehystä sekunnissa. Saavutetut arvot olivat noin 30 - 60 kertaa suurempia kuin perinteisillä fraktaalikuvien dekompressiomenetelmillä.
Näin ollen voidaan vetää johtopäätös, että keksinnön mukaisella 20 kaskadimenetelmällä saadaan aikaan hyvin suuri dekoodausnopeus ja samanaikaisesti riittävän korkeatasoinen kuvakompression laatu. Näin ollen kas-kadikuvakompressio- ja dekompressiomenetelmää voidaan edullisesti sovel-·: : taa esimerkiksi videokompressioon, missä dekoodauksen suuri nopeus on :*·,· erittäin tärkeää.
25 Keksinnön erään edullisen suoritusmuodon mukaisen koodauslait- : teen rakennetta selostetaan seuraavassa tarkemmin viitaten kuvioon 6a. Ra- * * i , ’. / kennetta selostetaan koodauslaitteen toiminnallisten lohkojen avulla. Alan am mattimiehelle on ilmeistä, että useita toiminnallisuuksia voidaan suorittaa samassa fyysisessä laitteessa, esimerkiksi erilaisen datan tallentaminen voidaan - t » > 30 haluttaessa suorittaa yhdessä muistiyksikössä. Samoin esimerkiksi kaikki las- .: kutoimitukset voidaan suorittaa yhdessä prosessorissa.
• Kompressoitava kuva tallennetaan puskurimuistiin 600, mistä ku- \ vadata välitetään kaskadinmuodostusyksikölle 602. Kaskadinmuodostusyk- sikkö 602 määrittää kaskadinmuodostusjärjestyksen mainitulle kuvalle. Täten ’ · ' 35 kaskadinmuodostusyksikkö 602 jakaa kuvan fragmentteihin, jotka välitetään jaksottaisesti muistiyksikölle 604 kaskadidatan jatkokompressointia varten.
11360? 12
Kaskadinmuodostusjärjestykseen liittyvää informaatiota voidaan joko tallentaa kompressoidun kuvan yhteyteen (tällöin tallennettu informaatio välitetään kas-kadinmuodostusyksiköltä 602 muistiin 604), tai olla tallentamatta, mikä riippuu seuraavista ehdoista: 5 Kaskadinmuodostusinformaatio tulee tallentaa kompressoidulle ku vadatalle, jos: - eri kaskadeja voidaan käyttää still-kuvan kompressioon ja tietylle kuvalle sopiva kaskadi valitaan jotenkin (esimerkiksi käyttäjän päätöksellä); tai - eri kaskadeja käytetään kuvasekvenssin eri kehyksiin.
10 Dekooderi huomioi tallennetun kaskadinmuodostusinformaation ku van tai kuvasekvenssin dekompressiovaiheessa.
Kaskadinmuodostusinformaatiota ei tallenneta kompressoidulle kuvadatalle, jos joitakin kiinteitä kaskadijaksoja käytetään kuvan tai kuvasekvenssin kompressiossa. Tällöin kaskadijakso tulee valita etukäteen ja sen tu-15 lee olla sama sekä kooderille että dekooderille. Joitakin esimerkkejä tällaisista kaskadimuodostuksen kiinteistä järjestyksistä (proseduureista) esitettiin kuvioissa 3a, 3b, 4a ja 4b.
Muistiyksikkö 604 on tarkoitettu kompressoitavana olevan senhetkisen kaskadin datan tallentamiseen. Ositusyksikkö 606 käyttää sitten tätä da-20 taa (kaikille muille kaskadeille paitsi ensimmäiselle) kaskadien osituskaavion muodostamiseen. Domain-lohkomuistissa 632 ei ole vielä domain-lohkoja en-simmäistä kaskadia varten, joten on mahdotonta määrittää osoitusta kaskadin *:·: domain-lohkojen ja aluelohkojen välillä. Tämän vuoksi ensimmäiselle kas- kadille ei muodosteta osituskaaviota ja tämä kaskadi huomioidaan vaihtoeh-..,.: 25 toisen menetelmän avulla, mitä varten vastaava data siirretään muistiyksiköstä : 604 kompressorille 634.
• I * l./ Ositusyksikkö 606 ja sitä seuraava lohkojen 608 - 614 silmukka on ''* järjestely, joka muodostaa (tai optimoi) tietyn kaskadin osituskaavion. Ositus- kaavion optimointiprosessin aikana muodostuneet väliarvomuuttujat tallenne-30 taan väliarvomuistiin 608 ja välitetään aluelohkojen muodostusyksikölle 610 *...·* aluelohkojoukon muodostamiseksi kaskadille osituskaavion tietyn variantin ; : mukaisesti. Kaskadia koskeva data siirretään muistista 604. Muodostetun . aluelohkojoukon data välitetään aluelohkojen muodostusyksiköltä 610 muistiin 612, jota käytetään osituskaavion tietyn variantin mukaisesti muodostetun * · * 35 kaskadin aluelohkojen datan tallentamiseen. Tämä data välitetään sen jälkeen osoitteistamisyksikölle 614, jossa suoritetaan parhaan osoitteistamisen etsintä 11360? 13 aluelohkojen ja domain-lohkojen välillä annettujen kriteerien mukaisesti. Do-main-lohkoja koskeva data saadaan domain-lohkomuistista 632. Päinvastoin kuin perinteisissä kuvien fraktaalikompressiomenetelmissä, osoitteistamisvai-heessa aluelohkoista domain-lohkoihin muunnoksia ei rajoiteta pelkästään affi-5 noituihin muunnoksiin, vaan myös muita muunnoksia, kuten samamuotoisia muunnoksia, voidaan käyttää. Kun paras osoitteistaminen on löydetty, välitetään kaskadin kaikkien aluelohkojen koostevirhe ositusyksikölle 606.
Lohkojen 608 - 614 muodostamassa silmukassa lasketaan kaska-dipikselien tietylle väliarvomuunnokselle palautusvirheet. Näille virheille 10 lasketaan ehdottoman tarkat arvot, mikä on eräs merkittävä ero kuvakompres-siossa kaskadimenetelmän ja perinteisten fraktaalimenetelmien välillä. Nämä ehdottoman tarkat virhearvot välitetään osoitteistamisyksiköltä 614 ositusyksikölle 606, jossa palautusvirheiden laskettuja arvoja käytetään päätöksentekoon liittyen osituskaavion optimoinnin jatkamiseen lohkojen 608 - 614 muo-15 dostamassa silmukassa. Jos optimointia käytetään, on mahdollista saada aikaan potentiaalisesti parempi osituksen laatu, kaskadipikselien palautusvirhe voidaan laskea tarkasti jokaisessa optimointivaiheessa. Perinteisissä frak-taalikompressiomenetelmissä palautusvirhe voidaan arvioida vain summittaisesti. Loppuunsaatetun optimoinnin tuloksena saatava viimeinen osituskaavio 20 väliarvomuunnos välitetään muistiyksikölle 616 tallennettavaksi, jonka jälkeen sitä käytetään senhetkisen kaskadin aluelohkojen muodostamiseen ja niiden kompressointiin etsimällä aluelohkojen ja domain-lohkojen väliset osoitteistuk- :··: set.
;·· : On kuitenkin huomattava, että osituskaavion optimointiprosessi ....: 25 (lohkojen 608 - 614 silmukka) ei ole menetelmän toteutuksessa pakollinen. Si- : tä tulisi käyttää, jos osituskaavio on laskettu kuvakompression aikana. Kuten I 1 · !..* aiemmin kuitenkin mainittiin, on myös mahdollista käyttää ennalta määritettyä tai ennalta valittua osituskaaviota (aluelohkoilla voi olla esimerkiksi sama koko ja muoto, kuten kuviossa 3a, 3b, 4a ja 4b). Tällöin osituskaavion optimointia ei 30 tarvitse suorittaa, jolloin lohkojen 608 - 614 mukainen osa järjestelyä tulee tarpeettomaksi. Tällaisessa tapauksessa kuvion 6a lohkokaavio voidaan esit-tää yksinkertaisempana rakenteena, joka on esitetty kuviossa 6b.
Kaskadin lopullinen osituskaavion väliarvomuunnos tallennetaan muistiyksikköön 616, josta data välitetään aluelohkojen muodostusyksikölle .· 35 618. Muistiyksikössä 616 oleva data voidaan myös välittää muistiin 640 komp- ressoidun kuvadatan tallentamiseksi. Tämä operaatio suoritetaan edullisesti » 1 11360! 14 silloin, kun dekooderi ei pysty muodostamaan tiettyä osituskaaviota ilman tällaista dataa. Aluelohkojen muodostusyksikkö 618 vastaanottaa muistista 604 tiettyä (senhetkistä) kaskadia koskevaa dataa sekä muistiyksiköstä 616 lopullisen osituskaavion. Muodostettua aluelohkojoukkoa koskeva data tallenne-5 taan edelleen muistiyksikköön 620. Tämä data siirretään edelleen osoitteista-misyksikölle 622 parhaan osoitteistuksen löytämiseksi (määritettyjen kriteerien perusteella) aluelohkojen ja domain-lohkojen välille. Näin muodostettu data välitetään edelleen muistiyksikölle 624 kompressoidun datan tallentamiseksi senhetkiselle kaskadille. Päinvastoin kuin perinteisissä fraktaalikuvakompres-10 siomenetelmissä, kaskadimenetelmässä voidaan aluelohkojen ja domain-lohkojen välisessä osoitteistuksessa käyttää muitakin kuin pelkästään affinoituja muunnoksia.
Data välitetään muistiyksiköstä 624 muistiin 640 koko kuvaa esittävän kompressoidun datan tallentamiseksi. Lisäksi muistiyksikön 624 käsit-15 tämä data välitetään dekooderille 626 kaskadidatan dekoodausta (dekompres-siota) ja domain-lohkojen muodostuksessa käyttämistä varten. Dekooderin 626 ulostulodata tallennetaan muistiyksiköön 628, joka tallentaa kuvan kaikkien niiden kaskadien dekoodatun datan, jotka on siihen mennessä koodattu. Muistiyksiköstä 628 data välitetään domain-lohkojen muodostusyksikölle 630, 20 joka muodostaa domain-lohkot käyttäen niitä kaskadeja, jotka on siihen mennessä koodattu.
Kun domain-lohkoja muodostetaan, ne voidaan valita dekoodatuista *: i kaskadikuvaosista, jotka skaalataan puolet pienemmiksi, mikä vastaa :*·,· fraktaalikuvakoodauksen perinteistä menettelyä. Ne voidaan myös muodostaa • · 25 käyttäen mitä tahansa muuta menetelmää, jossa käytetään siihen mennessä : koodattuja ja dekoodattuja kaskadeja. Domain-lohkot voidaan esimerkiksi • »· !./ valita dekoodatuista kaskadikuvaosista ilman skaalausta pienemmäksi, jolloin kuvan dekoodausta voidaan nopeuttaa. Sellainen domain-lohkojen muodos- tusmenetelmä, jossa edellytetään vain koodattujen kaskadien datan käyttä- 30 mistä, t.s. vain niiden kuvan osien käyttämistä, joiden pikseleiden dekoodatut arvot tiedetään tarkasti tiettynä hetkenä, varmistaa sen, että aluelohkojen ja ; : domain-lohkojen välisessä osoitteistuksessa ei muodostu silmukoita. Tätä . . kautta muodostuu myös yhteen iteraatioon perustuva kuvan dekoodaus, joka * · on täysin päinvastainen perinteisiin fraktaalikuvakompressiomenetelmiin näh-35 den, joissa tarvitaan dekoodausvaiheessa melko suuri määrä iteraatioita. Muodostetut domain-lohkot välitetään muistiyksikölle 632 käytettäväksi edel- 15 1 1360! leen niiden kuvakaskadien koodausvaiheessa, joita ei ole siihen mennessä koodattu. Samaa dataa käytetään myös kaskadien pikseliarvojen dekoodaa-miseen dekooderissa 626.
Ensimmäisen kaskadin data siirretään muistista 604 kompressorille 5 634, jossa ensimmäisen kaskadin data kompressoidaan jollakin vaihtoeh- toisellla koodausmenetelmällä. Tämä voi olla häviötön tai häviöllinen kompressio, mutta on myös mahdollista, että dataa ei kompressoida lainkaan. Ensimmäisen kaskadin kompressoitu data tallennetaan muistiyksikköön 636 ja siirretään edelleen muistiin 640 tallennetaksi osaksi koko kuvan kompres-10 soitua dataa. Ensimmäisen kaskadin kompressoitu data välitetään myös muis-tiyksiköstä 636 dekooderille 638 tarvittaessa dekoodattavaksi ja siitä edelleen muistiyksikölle 628, johon kaikkien dekoodattujen kaskadien data kerätään do-main-lohkojen muodostusta varten.
Muistia 640 käytetään kompressoidun kuvan kaiken information ke-15 räämiseen ja tallentamiseen. Muisti 640 pysäyttää toiminnan, kun viimeisen kaskadin koodattu data on välitetty sille.
Kuten tyypillisesti kaikissa fraktaalikompressiomenetelmissä, myös kaskadikompressiomenetelmässä osituskaavion optimointi vaatii huomattavia laskentaresursseja ja varsin aikaavievää. Laskennan peruskuorma muodostuu 20 aluelohkojen ja domain-lohkojen välisen osoitteistamisen etsintäprosessista. Tämä haittaa voidaan kuitenkin välttää käyttämällä kooderin laitteistolohkoissa : : : rinnakkaisia rakenteita. Huolellisesti suunnitellulla laitetoteutuksella voidaan • * # •: · : kompression kestoa edullisesti lyhentää moninkertaisesti verrattuna kompres- ;'.,: sion puhtaasti ohjelmistopohjaiseen toteutukseen.
.,,,; 25 Kaikki domain-lohkojen kentän (virtuaaliset koodikirjat) voidaan ja- ; kaa useisiin yhtäsuuriin alueisiin (osiin) ja parhaan osoitteistamisen etsiminen aluelohkojen ja domain-lohkojen välillä voidaan tehdä erikseen useilla tähän tarkoitukseen sovitetuilla prosessoreilla. Aluelohkon koordinaatit ja sen koko, kuten myös virtuaalisen koodikirjan sen osan koordinaatit ja koko, jossa haku 30 tulee suorittaa, syötetään tällaiseen erityistarkoitukseen sovitettuun prosesso-riin. Prosessorin ulostulodata käsittää ainakin sen domain-lohkon koordinaatit, : johon aluelohko tulee osoitteistaa ja osoitteistusparametrit. Yleisesti ottaen ·’ kuvan koodaukseen käytettävä aika on suunnilleen kääntäen verrannollinen rinnakkain toimivien erityistarkoitukseen sovitettujen prosessorien lukumää-’ 35 rään, t.s. esimerkiksi neljä tällaista erityistarkoitukseen sovitettua prosessoria ,,,: mahdollistaa koodausajan lyhentämisen neljäsosaan.
11360? 16
Keksinnön erään edullisen suoritusmuodon mukaisen dekoodaus-laitteen rakennetta selostetaan seuraavassa viitaten kuvioon 7. Rakennetta selostetaan dekoodausjärjestelyn toiminnallisten lohkojen avulla. Kuten voidaan nähdä, kuvan dekoodausjärjestelyn lohkorakenne on huomattavasti yk-5 sinkertaisempi kuin kuvan koodausjärjestelyn lohkorakenne.
Dekoodauslaite käsittää muistin 700 vastaanotetun kompressoidun kuvan kaiken datan tallentamiseksi. Kaskadinmuodostusyksikkö 702 määrittää kaskadinmuodostusjakson, mikäli kaskadinmuodostusalgoritmi (jakso) on asetettu vakioksi ja on sama sekä kooderissa että dekooderissa. Muussa talo pauksessa kaskadinmuodostusyksikkö 702 johtaa kaskadinmuodostusjakson muistin 700 käsittämästä datasta. Muistiyksikköön 704 tallennetaan dataa, joka määrittää senhetkisen kaskadin spatiaalisen konfiguraation. Erotin 706 huomioi muistiyksikön 704 välittämän spatiaalisen konfiguraation ja erottaa muistista 700 datan, jota tarvitaan senhetkisen kaskadin dekoodaamiseen, ja 15 tallentaa datan edelleen muistiyksikköön 708.
Kaskadia varten koodattu data välitetään muistiyksiköstä 708 de-kooderille 710 senhetkisen kaskadin dekoodaamiseksi (dekompressoimisek-si). Dekooderi 710 suorittaa senhetkiselle kaskadille kaskadin pikseliarvojen dekoodauksen käyttäen domain-lohkomuistista 716 dekooderille 710 välitettyä 20 domain-lohkodataa. Mikäli ensimmäinen kaskadi kompressoitiin kuvankoo-dausvaiheessa, se dekoodataan käyttäen erityistä algoritmia, joka vastaa da-tankoodausalgoritmia, jota käytettiin kuvankompressiovaiheen ensimmäiselle ·:· : kaskadille (lohko 634). Dekoodatun kaskadin data tallennetaan muistiin 718, joka on muisti, johon kerätään kaikki kuvaan kuuluva dekoodattu (palautettu) • · 25 data. Lisäksi dekoodatun kaskadin data tallennetaan muistiyksikköön 712, : johon kaikkien tähän asti dekoodattujen kaskadien data tallennetaan.
• t ·
Domain-lohkojen muodostusyksikköä 714 käytetään domain-loh- • · kojen muodostamiseen käyttäen niiden kaskadien dataa, jotka on jo dekoodattu ja vastaanotettu muistiyksiköstä 712. Domain-lohkojen muodostus » * t ;; 30 tehdään saman algoritmin mukaisesti, jota käytettiin kuvan koodauksessa
Domain-lohkojen muodostusyksikössä 630 (kuvio 6a). Muodostetut domain- : ,· lohkot tallennetaan sen jälkeen domain-lohkomuistiin 716. Tätä dataa käyte- V » . ··. tään edelleen niiden kuvakaskadien dekoodaamiseen, joita ei ole vielä de- koodattu dekooderissa 710. Koko dekoodattu kuva muodostetaan muistiin • * 35 kerätystä kuvadatasta.
> * » · f 113607 17
Dekoodausjärjestelyn tärkein etu on siinä, että se dekoodaa koko kuvan yhden iteraation aikana. Näin ollen dekoodausjärjestelyn yksinkertaisuus ja kuvien pienentävän skaalauksen muodostuminen tarpeettomaksi do-main-lohkojen muodostuksen yhteydessä varmistavat dekoodauksen suuren 5 laskennallisen tehokkuuden. Tämä tekee esitetyn menetelmän soveltamisen esimerkiksi videosekvenssien dekoodaukseen hyvin suotavaksi. Lisäksi koska dekooderin toteutus on huomattavasti yksinkertaisempi kuin kooderin toteutus, voidaan dekooderin toiminnallisuudet edullisesti toteuttaa tietokoneohjelmana.
On huomattava, että edellä esitettyjen kuvakooderin ja kuvadekoo-10 derin keksinnön mukaiset toiminnalliset elementit voidaan toteuttaa edullisesti ohjelmistona, kovo-ratkaisuna tai näiden kahden yhdistelmänä. Keksinnön mukainen koodaus- ja erityisesti dekoodausmenetelmä soveltuu erityisen hyvin toteutettavaksi tietokoneohjelmistona, joka käsittää tietokoneen luettavassa muodossa olevat käskyt keksinnön toiminnallisten askelien suorittami-15 seksi. Kooderi ja dekooderi voidaan edullisesti toteuttaa tallennusvälineelle tallennettuna ohjelmistokoodina, joka voidaan suorittaa tietokoneen kaltaisella laitteella, kuten esimerkiksi henkilökohtaisella tietokoneella (PC) tai matkaviestimellä, koodaus/dekoodaus-toiminnallisuuksien aikaansaamiseksi kyseisellä laitteella.
20 Keksintö voidaan toteuttaa myös muistivälineellä olevana signaa lina, joka käsittää ainakin yhden fraktaalikoodatun kuvan kuvadataa; dataa ·'.·,·* ensimmäisen kaskadin määrittävän datan, joka käsittää ainakin yhden alue- ·:· · lohkon, erottamiseksi mainitun ainakin yhden kuvan kuvadatasta; dataa en- :*·.· simmäisen kaskadin kuvadatan dekoodaamiseksi, jota kuvadataa käytetään • · 25 edelleen domain-lohkojen aloitusjoukkona; dataa osoituskaavion määrittävän : datan erottamiseksi mainitun ainakin yhden kuvan kuvadatasta, jonka osoitus- * ♦ * L/ kaavion mukaisesti ainakin seuraava kaskadi lisätään olemassa olevaan mää ritettyjen domain-lohkojen joukkoon; dataa ainakin mainitun seuraavan kaskadin kuvadatan dekoodaamiseksi käyttämällä ainoastaan mainitun olemassa - 30 olevan määritettyjen domain-lohkojen joukon pikseliarvoja; dataa ainakin mai- .* nitun kaskadin dekoodatun datan lisäämiseksi mainittuun olemassa olevaan määritettyjen domain-lohkojen joukkoon; ja dataa mainittujen dekoodaamisen ja lisäämisen toistamiseksi seuraavien kaskadien osalta, kunnes ainakin yh- > · ' den kuvan kuvadata on dekoodattu. Signaali voi olla reaaliaikaisesti lähetetty ‘ ·: 35 signaali tai se voi olla tallennettu tietokoneen luettavassa muodossa olevalle :· muistivälineelle, kuten massamuistiin tai toistettavalle videolevylle.
113607 18
Alan ammattilaiselle on ilmeistä, että tekniikan kehittyessä keksinnön perusajatus voidaan toteuttaa monin eri tavoin. Keksintö ja sen suoritusmuodot eivät siten rajoitu yllä kuvattuihin esimerkkeihin vaan ne voivat vaihdella patenttivaatimusten puitteissa.
* »

Claims (17)

11360'
1. Menetelmä ainakin yhden aluelohkoihin ja domain-lohkoihin jaettavissa olevan kuvan fraktaalikuvakoodaamiseksi, tunnettu siitä, että määritetään ensimmäinen kaskadi, joka käsittää ainakin yhden 5 aluelohkon mainitusta ainakin yhdestä kuvasta käytettäväksi edelleen domain-lohkojen aloitusjoukkona; määritetään osoituskaavio, jonka mukaisesti ainakin seuraava kaskadi lisätään olemassa olevaan määritettyjen domain-lohkojen joukkoon; koodataan ainakin mainitun seuraavan kaskadin kuvadata käyttä-10 mällä ainoastaan mainitun olemassa olevan määritettyjen domain-lohkojen joukon pikseliarvoja; lisätään ainakin mainitun kaskadin koodattu data mainittuun olemassa olevaan määritettyjen domain-lohkojen joukkoon; ja toistetaan mainittua koodaamista ja lisäämistä seuraavien kaskadi-15 en osalta, kunnes ainakin yhden kuvan kuvadata on koodattu.
2. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että määritetään ensimmäisen kaskadin koko minimiarvon mukaiseksi.
3. Patenttivaatimuksen 2 mukainen menetelmä, tunnettu siitä, 20 että määritetään seuraavien kaskadien koko maksimiarvon mukaiseksi.
: 4. Jonkin edellisen patenttivaatimuksen mukainen menetelmä, tunnettu siitä, että •V·; koodausvaiheessa aluelohkojen koko ja aluelohkoista osoitettavien ·:*** 25 domain-lohkojen koko on yhtä suuri.
5. Jonkin edellisen patenttivaatimuksen mukainen menetelmä, t u n n ett u siitä, että määritetään osituskaavio mainitun ainakin yhden kuvan jakamiseksi kaskadeihin, joka osituskaavio minimoi kaskadien lukumäärän annetulla kuvan ' 30 laadulla.
* · ;*‘ 6. Patenttivaatimuksen 5 mukainen menetelmä, tunnettu siitä, :\i että :" ‘: määritetään jokaisen kaskadin aluelohkot suorakaiteen muotoisiksi.
7. Jonkin edellisen patenttivaatimuksen mukainen menetelmä, » 1 t 35 tunnettu siitä, että » · • · * « I 11360? määritetään aluelohkojen osoitus domain-lohkoiksi käyttämällä muita kuin affinoituja muunnoksia.
8. Jonkin edellisen patenttivaatimuksen mukainen menetelmä, tunnettu siitä, että 5 lisätään koodausvaiheessa ylimääräisiä bittejä, edullisesti kolme bit tiä, koodattuun kuvadataan osoittamaan kaskadikoodauksen aloituspiste.
9. Fraktaalikuvakooderi ainakin yhden aluelohkoihin ja domain-loh-koihin jaettavissa olevan kuvan fraktaalikuvakoodaamiseksi, tunnettu siitä, että kooderi käsittää 10 välineet ensimmäisen kaskadin määrittämiseksi, joka ensimmäinen kaskadi käsittää ainakin yhden aluelohkon mainitusta ainakin yhdestä kuvasta käytettäväksi edelleen domain-lohkojen aloitusjoukkona; välineet osoituskaavion määrittämiseksi, jonka osoituskaavion mukaisesti ainakin seuraava kaskadi lisätään olemassa olevaan määritettyjen 15 domain-lohkojen joukkoon; välineet ainakin mainitun seuraavan kaskadin kuvadatan koodaamiseksi käyttämällä ainoastaan mainitun olemassa olevan määritettyjen domain-lohkojen joukon pikseliarvoja; välineet ainakin mainitun kaskadin koodatun datan lisäämiseksi 20 mainittuun olemassa olevaan määritettyjen domain-lohkojen joukkoon; ja välineet mainitun koodaamisen ja lisäämisen toistamiseksi seuraa-: vien kaskadien osalta, kunnes ainakin yhden kuvan kuvadata on koodattu.
·:··: 10. Tietokoneohjelmatuote fraktaalikuvan koodaamiseksi, joka on tallennettu tietokoneen luettavissa olevalle muistivälineelle, tunnettu siitä, ....: 25 että tietokoneohjelmatuote käsittää ; tietokoneohjelmakoodin ensimmäisen kaskadin määrittämiseksi, jo- • t 1 ka ensimmäinen kaskadi käsittää ainakin yhden aluelohkon mainitusta ainakin *" * ’ yhdestä kuvasta käytettäväksi edelleen domain-lohkojen aloitusjoukkona; tietokoneohjelmakoodin osoituskaavion määrittämiseksi, jonka osoi-30 tuskaavion mukaisesti ainakin seuraava kaskadi lisätään olemassa olevaan määritettyjen domain-lohkojen joukkoon; : tietokoneohjelmakoodin ainakin mainitun seuraavan kaskadin ku- ! vadatan koodaamiseksi käyttämällä ainoastaan mainitun olemassa olevan » ‘ määritettyjen domain-lohkojen joukon pikseliarvoja; * · 11360/ tietokoneohjelmakoodin ainakin mainitun kaskadin koodatun datan lisäämiseksi mainittuun olemassa olevaan määritettyjen domain-lohkojen joukkoon; ja tietokoneohjelmakoodin mainitun koodaamisen ja lisäämisen tois-5 tamiseksi seuraavien kaskadien osalta, kunnes ainakin yhden kuvan kuvadata on koodattu.
11. Menetelmä ainakin yhden fraktaalikoodatun kuvan dekoodaa-miseksi, tunnettu siitä, että erotetaan ensimmäisen kaskadin määrittävä data, joka käsittää ai-10 nakin yhden aluelohkon, mainitun ainakin yhden kuvan kuvadatasta; dekoodataan ensimmäisen kaskadin kuvadata, jota käytetään edelleen domain-lohkojen aloitusjoukkona; erotetaan osoituskaavion määrittävä data mainitun ainakin yhden kuvan kuvadatasta, jonka osoituskaavion mukaisesti ainakin seuraava kaskadi 15 lisätään olemassa olevaan määritettyjen domain-lohkojen joukkoon; dekoodataan ainakin mainitun seuraavan kaskadin kuvadata käyttämällä ainoastaan mainitun olemassa olevan määritettyjen domain-lohkojen joukon pikseliarvoja; lisätään ainakin mainitun kaskadin dekoodattu data mainittuun ole-20 massa olevaan määritettyjen domain-lohkojen joukkoon; ja toistetaan mainittua dekoodaamista ja lisäämistä seuraavien kas-kadien osalta, kunnes ainakin yhden kuvan kuvadata on dekoodattu.
12. Patenttivaatimuksen 11 mukainen menetelmä, tunnettu sii- tä, että 25 erotetaan ensimmäisen kaskadin koon ja sijainnin määrittävä data .·, ; mainitun ainakin yhden kuvan kuvadatasta. • i > !..
* 13. Patenttivaatimuksen 11 tai 12 mukainen menetelmä, tunnet- t I tu siitä, että aluelohkojen koko ja aluelohkoista osoitettavien domain-lohkojen • · : 30 koko on yhtä suuri.
.: 14. Patenttivaatimuksen 13 mukainen menetelmä, tunnettu sii- ; ' . : tä, että ,··, lasketaan aluelohkoista domain-lohkoihin tapahtuvan osoituksen » · pikseliarvot käyttämällä muistitaulukoita.
15. Fraktaalikuvadekooderi ainakin yhden fraktaalikuvakoodatun :: kuvan dekoodaamiseksi, tunnettu siitä, että dekooderi käsittää 113607 välineet ensimmäisen kaskadin määrittävän datan, joka käsittää ainakin yhden aluelohkon, erottamiseksi mainitun ainakin yhden kuvan kuvadatasta; välineet ensimmäisen kaskadin kuvadatan dekoodaamiseksi, jota 5 kuvadataa käytetään edelleen domain-lohkojen aloitusjoukkona; välineet osoituskaavion määrittävän datan erottamiseksi mainitun ainakin yhden kuvan kuvadatasta, jonka osoituskaavion mukaisesti ainakin seuraava kaskadi lisätään olemassa olevaan määritettyjen domain-lohkojen joukkoon; 10 välineet ainakin mainitun seuraavan kaskadin kuvadatan dekoodaa miseksi käyttämällä ainoastaan mainitun olemassa olevan määritettyjen domain-lohkojen joukon pikseliarvoja; välineet ainakin mainitun kaskadin dekoodatun datan lisäämiseksi mainittuun olemassa olevaan määritettyjen domain-lohkojen joukkoon; ja 15 välineet mainittujen dekoodaamisen ja lisäämisen toistamiseksi seuraavien kaskadien osalta, kunnes ainakin yhden kuvan kuvadata on dekoodattu.
16. Tietokoneohjelmatuote fraktaalikuvan dekoodaamiseksi, joka on tallennettu tietokoneen luettavissa olevalle muistivälineelle, tunnettu siitä, 20 että tietokoneohjelmatuote käsittää tietokoneohjelmakoodin ensimmäisen kaskadin määrittävän datan, joka käsittää ainakin yhden aluelohkon, erottamiseksi mainitun ainakin yhden •: ·: kuvan kuvadatasta; ;\j tietokoneohjelmakoodin ensimmäisen kaskadin kuvadatan dekoo- 25 daamiseksi, jota kuvadataa käytetään edelleen domain-lohkojen aloitusjouk- : kona; • < · !..* tietokoneohjelmakoodin osoituskaavion määrittävän datan erottami- seksi mainitun ainakin yhden kuvan kuvadatasta, jonka osoituskaavion mukaisesti ainakin seuraava kaskadi lisätään olemassa olevaan määritettyjen do-30 main-lohkojen joukkoon; tietokoneohjelmakoodin ainakin mainitun seuraavan kaskadin ku-; vadatan dekoodaamiseksi käyttämällä ainoastaan mainitun olemassa olevan , . määritettyjen domain-lohkojen joukon pikseliarvoja; » * tietokoneohjelmakoodin ainakin mainitun kaskadin dekoodatun da-• 35 tan lisäämiseksi mainittuun olemassa olevaan määritettyjen domain-lohkojen •,,.: joukkoon; ja 113ό0"' tietokoneohjelmakoodin mainittujen dekoodaamisen ja lisäämisen toistamiseksi seuraavien kaskadien osalta, kunnes ainakin yhden kuvan kuva-data on dekoodattu.
17. Muistivälineellä oleva signaali, joka käsittää ainakin yhden frak-5 taalikoodatun kuvan kuvadataa, tunnettu siitä, että signaali käsittää dataa ensimmäisen kaskadin määrittävän datan, joka käsittää ainakin yhden aluelohkon, erottamiseksi mainitun ainakin yhden kuvan kuvadatasta; dataa ensimmäisen kaskadin kuvadatan dekoodaamiseksi, jota ku-10 vadataa käytetään edelleen domain-lohkojen aloitusjoukkona; dataa osoituskaavion määrittävän datan erottamiseksi mainitun ainakin yhden kuvan kuvadatasta, jonka osoituskaavion mukaisesti ainakin seu-raava kaskadi lisätään olemassa olevaan määritettyjen domain-lohkojen joukkoon; 15 dataa ainakin mainitun seuraavan kaskadin kuvadatan dekoodaa miseksi käyttämällä ainoastaan mainitun olemassa olevan määritettyjen domain-lohkojen joukon pikseliarvoja; dataa ainakin mainitun kaskadin dekoodatun datan lisäämiseksi mainittuun olemassa olevaan määritettyjen domain-lohkojen joukkoon; ja 20 dataa mainittujen dekoodaamisen ja lisäämisen toistamiseksi seu raavien kaskadien osalta, kunnes ainakin yhden kuvan kuvadata on dekoodat- ··.·:!: tu. f I * · • Il • » tilit * I t » t » I 3 » 113607
FI20021216A 2002-06-20 2002-06-20 Fraktaalikuvien kompressiomenetelmä FI113603B (fi)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FI20021216A FI113603B (fi) 2002-06-20 2002-06-20 Fraktaalikuvien kompressiomenetelmä

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FI20021216A FI113603B (fi) 2002-06-20 2002-06-20 Fraktaalikuvien kompressiomenetelmä
FI20021216 2002-06-20

Publications (3)

Publication Number Publication Date
FI20021216A0 FI20021216A0 (fi) 2002-06-20
FI20021216A FI20021216A (fi) 2003-12-21
FI113603B true FI113603B (fi) 2004-05-14

Family

ID=8564207

Family Applications (1)

Application Number Title Priority Date Filing Date
FI20021216A FI113603B (fi) 2002-06-20 2002-06-20 Fraktaalikuvien kompressiomenetelmä

Country Status (1)

Country Link
FI (1) FI113603B (fi)

Also Published As

Publication number Publication date
FI20021216A0 (fi) 2002-06-20
FI20021216A (fi) 2003-12-21

Similar Documents

Publication Publication Date Title
US5341442A (en) Method and apparatus for compression data by generating base image data from luminance and chrominance components and detail image data from luminance component
US6031940A (en) System and method for efficiently encoding video frame sequences
JP3195966B2 (ja) ベクトル量子化とランレングスコード化の両方を使用し、さらに適応ランレングスコード化を使用したデータのコード化方法及びその装置
JP4966669B2 (ja) マッチング追跡を用いたデータ圧縮
US7400764B2 (en) Compression and decompression of media data
JP2002541738A (ja) 画像圧縮
JP3502392B2 (ja) デジタル画像画素補填方法、及びそれを用いたデジタル画像符号化装置、画像復号化装置
EP2723071A1 (en) Encoder, decoder and method
US9245353B2 (en) Encoder, decoder and method
WO2002093934A1 (en) Image compression and transmission
Siddeq et al. A novel 2D image compression algorithm based on two levels DWT and DCT transforms with enhanced minimize-matrix-size algorithm for high resolution structured light 3D surface reconstruction
GB2616566A (en) Method and device for compressing data representative of a volumetric three-dimensional scene with a view to real-time decompression for online viewing
US5881183A (en) Method and device for encoding object contour by using centroid
Vines et al. Adaptive IFS image coding with proximity maps
JPH11251919A (ja) メモリ必要量削減方法
FI113603B (fi) Fraktaalikuvien kompressiomenetelmä
US7177479B2 (en) Loss-less compression of still images at enhanced speed
KR0169662B1 (ko) 다수의 부호책을 갖는 피티에스 벡터양자화 부호기
JPH02153477A (ja) 画像処理方法及びその装置
JPH08130652A (ja) 2次元画像データの圧縮方式および伸長方式
JPH0621828A (ja) ベクトル量子化復号化器
Rejeb et al. Real-time implementation of fractal image encoder
Masselos et al. Image coding using a fractal/vector quantization model
JP2629035B2 (ja) 画像の符号化処理装置
JP2000004166A (ja) ディジタル信号処理