Timo Kinnunen
Särkiniementie 16 A 41
70700 Kuopio
Finland

Klikkaa tästä siirtyäksesi Timon Serverimaailma kotisivun etusivulle - Click this link to jump to the main page of Timos' Serverimaailma homepage

Klikkaa tästä siirtyäksesi Timon kirjoittamat suomen- ja englanninkieliset filosofiset tarinat ja tutkielmat -sivulle - Click this link to jump to the page of Timo's Finnish, and English philosophical researches and stories

Klikkaa tästä siirtyäksesi tutkielmani Ihminen ja tietokone - Man and computer pääsivulle - Click this link to jump to the main page of my study Ihminen ja tietokone - Man and computer

Media Laboratory Research Report:
Image Compression using Vector Quantitization

Uri Feldman,
December 16, 1985

suom. Timo Kinnunen 27.2.1989

Abstract

Kuvankompressoinnin yleinen ongelma on esittää tarkasti sarja kuvia käyttäen pienintä mahdollista informaation määrää. Vektorikvantisoinnin (VQ) pääpiirteenä on, että informaatioblokit koodataan ryhmiksi; siten kvantisointivirhe koodauksen seurauksena on mahdollisimman pieni. Niinpä ideana on valita sellainen datablokkien (vektorien) joukko, joka jollakin tavoin edustaa tyypillisesti kompressoitavaa informaatiota. Kompressoitavaksi aiotut blokit vastakkainasetetaan sitten koodivektoreihin, jotta löydettäisiin läheisimmin vastakkainasettuva blokki koodivektoreiden joukossa. Prosessissa tärkeänä vaiheena on siten luoda hyvä valikoima edustavia koodeja. Tässä koodivektorien valintaprosessissa on käytetty kahta erilaista tekniikkaa; populariteettialgoritmia ja liukuvasti kaventuvaa (tapered) kvantisoinnin algoritmia. Näistä jälkimmäinen, joka on adaptiivinen, kuvaruutuja toisiinsa suhteuttava tekniikka, tuottaa parhaiten kvantisoidun kuvan. Kokeessa koodauksen tuloksena kolme peräkkäistä videokuvaa kompressoitiin, ja saavutettiin 3:1 kompressiosuhde.

1. Introduction

Kuvankoodaus on prosessi, jossa pyritään vähentämään varastoitavan informaation määrää, ja tuottamaan siitä uudelleen kuva hyväksyttävän tasoisen laatuisena. Tavanomaisesti yritykset vähentää redundanssia kuvassa ovat keskittyneet pixelienvälisen toiston eliminointiin liikkumattomassa kuvassa. Meidän projektimme motivoitui löytämään uusia ja tärkeitä lajeja liikkuvan kuvan kompressoinnin tekniikoissa, jotka rakentuivat vektorikvantisoijille. Ne mallit, joita tässä raportissa kuvataan antavat perustan rakennettaessa kuvakoodereita, joista voi olla hyötyä niissä käytännön sovelluksissa, joissa vaaditaan korkean tason kompressiosuhdetta, ja jotka koodataan reaaliaikaisiksi. In tärkeää korostaa, että tässä projektissa tehty työ on jollakin tavoin omaperäinen siinä, että kompressio on suoritettu temporaalisesti, eikä spatiaalisesti; spatiaalisesta kompressiosta on kyse suurimmassa osissa töistä, joita on suoritettu tällä alueella. Vektorikvantisoinnin kiintoisuus on siinä, että koodausprosessi on suhteellisen mutkikas ja tietojenkäsittelyllisesti intensiivinen, kun taas dekoodaus on yksinkertaisesti pelkästään muodostetun taulun lukemista. Dekooderin otaksutaan olevan yksinkertainen koodikirjan kopio, jota on käytetty enkoodattaessa dataa, ja siten dekoodauksessa koodikirjassa oleva koodivektorin representaatio korvataan sitä vastaavalla vektorilla. Koska data alunperin on tallennettu ennustettavaan ja sekventiaaliseen muotoon, on rekonstruktio alkuperäisestä kuvasta triviaalia. Gray [1] on ehkä kirjoittanut kaikkein yleisimmän esityksen liittyen vektorikvantisointiin. Hän ei ainoastaan luonnehdi vektorikvantisoinnin (VQ) perusteita, vaan kuvaa myös sen sovelluksia ja yksityiskohtia huomioiden kehittyneempiä vektorikvantisoinnin (VQ) systeemejä. Toinen tärkeä vektorikvantisoinnin (VQ) alueella tehty työ on Gershon [2] raportti; siinä hän esittää lukuisia vektorikvantisoinnin matemaattisia ominaisuuksia. Tästä syystä meidän tutkimuksessamme ei esitetä täydellistä vektorikvantisoinnin (VQ) selitystä, vaan pyritään keskustelemaan sen käytännön merkittävyydestä yksityiskohdittain.

1.1. Preliminary Considerations

Tutkimuksessamme käytimme kolmidimensionaalista vektorikoodausskeemaa. Tutkimme ainoastaan kuvaruutuja toisiinsa suhteuttavaa monikuvallista koodausta. Otaksutaan, että jokainen "alkuperäinen" kuvaruutu koostetaan adekvaatisti tilaksi ja luminanssiksi. Niinpä parasta, mitä voidaan tehdä on rekonstruoida täsmällisesti jo approksimoitu (kvantisoitu) kuva, jollainen on tuotettu vektorienkooderilla. Tyypillinen muoto, jolla kuva on tallennettu on neliömäiselle alueelle asettuvien pixelien joukko, jossa jokaisella niistä on kahdeksan bittiä. Kolmen kuvan luminanssiarvot muodostavat perustan vektoreille kvantisointitilassa. Korreloimalla korrespondoivat pixelit jokaisessa kuvassa luodaan vektorit populoimalla kolmiulotteinen avaruus. Koska useimmissa kuvissa vallitsee korkea paikallinen korreloituvuus sijaitsevat gereroivat vektorit avaruuden lävistävällä päädiagonaalilla [3]. Ne vektoreista, jotka sijaitsevat siitä kauempana ovat harvempia esiintymistiheydeltään, ja edustavat sellaisia pixeleitä, joiden luminanssi-intensiteetti on päädiagonaalin vektoreihin verrattuna suhteellisesti erilainen. Kaukaisempien vektoreiden voi ajatella edustavan kuvan nurkkia, tekstuureja, tai liikettä kuvassa, ja siten olevan subjektiivisesti tärkeitä hahmotettaessa kuvassa sen tekstuureja ja struktuureja. Esimerkkikuva (2) on tyypillinen esimerkki pixelien avaruudellisesta jakaumasta vektoriavaruudessa kokeessamme käytetystä kuvasta. Pixelien ryhmittyminen on ilmeistä [4].

1.2. Fidelity Measures

Tyypillisesti kuvakvantisoijat optimoidaan etsimällä niistä erityinen versio, jollainen vähentää joitakin kuvankohinan kvantitatiivisia mitta-arvoja. Täydellinen alkuperäisen kuvan, ja siitä tuotetun kuvan yhdenmukaistuvuuden evaluaatio voisi sisältää sellaisia komplekseja piirteitä, kuten tekstuurin, jatkuvuuden, kontrastin, spatiaalisen frekvenssin, ja aktiviteetin. Mittaustapaa, jollainen korreloisi hyvin inhimillisen perseption kanssa ei ole vielä kyetty määrittelemään; se on kuitenkin ollut teemana lukuisissa raporteissa kuluneella vuosikymmenellä [5]. Useitakin piirteitä on identifioitu inhimillisessä visuaalisessa systeemissä (HVS), jotka ovat tärkeitä kuvankoodauksen kannalta [6]. Esimerkiksi tiedetään, että silmänpohjan valoa aistivat solut ovat hyvin epälineaarisia, ja että on lukuisia signaalisidonnaisia prosesseja, joita esiintyy hermoradoilla, joista ne ohjautuvat aivojen kognitiivisille alueille. Kollektiivisesti ne vaikuttavat kykyyn perseptoida objekteja. Tiedetään myös, että kyky perseptoida virheitä riippuu sellaisista tekijöistä, kuten kuvan spatiaalisesta frekvenssisisällöstä, kulmien orientaatiosta ja kuvan suhteellisesta kirkkaudesta. Tiedetään myös, että HVS on herkempi havaitsemaan virheitä harmaasävyissä kuin valkoisessa (Weber-effect), ja on herkempi häiriöiden havaitsemiselle kuvan tasaisesti levittyneillä väripinnoilla kuin lähellä kulmia olevilla alueilla (edge masking). Tuntemalla nämä biologiset havainnon rajoitukset voidaan saavuttaa hyviä tuloksia vertailemalla toisiinsa ainoastaan alkuperäisten ja kvantisoitujen kuvien toisiinsa korrespondoivia pixeleitä. Jotta olisi kyetty mittaamaan alkuperäisten ja kvantisoitujen kuvien välistä eroa, lasketiin vektoreille kolmessa dimensiossa euklidisen välimatkan neliö. Vektoriavaruudessa tätä voidaan havainnollistaa koodivektoreiden ja generoivien vektoreiden välimatkalla. Tällainen virhefunktio valittiin sen laskennallisen nopeuden ja yksinkertaisuuden vuoksi; se on myös tavallisimmin käytetty kuvankoodauksessa yleensäkin. Projektissamme käytetyt algoritmit oli suunniteltu niin, että välimatka muodostui mahdollisimman pieneksi.

1.3. Theoretical Overview

Perustana olleen vektorikvantisoinnin tekniikan teoreetiset derivaatiot ovat vasta äskettäin määritelty [7]. Yksinkertaisesti ilmaistuna vektorikvantisointi voidaan kuvata seuraavalla tavalla. Kvantisointitasot, joiden kautta voidaan säilyttää kuvien taso korkeana määritellään ensin, ja tässä tapauksessa valittiin 256 tasoa. Tämä on ekvivalenttia haettaessa koodikirjaa, johon kaikki koodatut datablokit suhteutetaan. Seuraavaksi kuvat hajoitetaan sekventiaalisesti koodaten ne blokeiksi, tai "data-vektoreiksi". Blokit muodostuvat korrespondoivista pixeleistä kuvien sekvenssissä; niissä on 768x484 blokkia, joissa kussakin on kolme dimensiota niin, että kunkin dimension voi katsoa viittaavan omaan kuvaansa käytetyssä kolmen kuvan sarjassa. Kussakin blokissa data edustaa luonnollista yksikköä, jossa on tietty määrä koherenssia. Paras esitystaso saavutetaan silloin, kun kaikki elementit kaikissa blokeissa ovat jollakin tavoin korreloituvina. Jokainen datablokki on koodattu niin, että ne vastaavat koodikirjan tiettyyn väylään (entry) sillä tavalla, että koodikirjan väylä approksimoi mahdollisimman tarkoin alkuperäistä datablokkia. Kuva (3) kuvaa vektorikvantisoinnin kooderi/dekooderi systeemin erästä sen tyypillistä blokkidiagrammia.

Meidän projektissamme käytetty vektorikvantisointi noudattaa seuraavaa kulkukaavaa:

1) Syötetyt kuvat (input images) ryhmitellään, jotta saataisiin esiin niiden luminanssijakauma. Luminanssijakaumaa kuvaava histogrammi saavutetaan selaamalla kertaalleen syötetyt kuvat läpi.
2) Luminanssijakaumaan perustaen populoidaan kolmidimensionaalinen avaruus generoivine vektoreineen. Tämä edustaa valintaprosessia, joka on seurausta koodikirjan konstruoimisesta.
3) Syötetyt kuvat kvantisoidaan vertailemalla gereroivia vektoreita representatiivisiin koodikirjan vekroreihin. Tässä kohden tuotetaan mahdolliset kvantisointivirheet, ja siksi on tärkeää valita adekvaatti virhefunktio. Ehkä realistisin virhemittaus voisi perustua inhimillisen visuaalisen systeemin ominaisuuksien huomioimiseen.

2.1. Constructing the code-book

Kvantisointiprosessin vaikein vaihe on koodikirjan konstruointi. Käytimme tässä kahta algoritmia; populariteettialgoritmia aineiston karkeakuvaukseen (bruteimage), ja median-cut -algoritmia sen hienokuvaukseen (ciq).

a) The popularity algorithm
Populariteettialgoritmi työskentelee valikoimalla 256 runsaimmin esiintyvää luminanssiarvoa alkuperäisessä kuvassa, jotka edustavat intesiteettitasoilla esiintyviä runsauksia. Tällä algoritmilla tuotetut kuvat eivät ole hyviä niitä kuvia varten, joissa esiintyy laajalevikkeisiä luminanssitasoja, koska metodi jättää huomiotta harvemminesiintyvät ja vähiä esiintymisiä sisältävät alueet kuutionmuotoisessa kartoitustilassa.

b) The median-cut algorithm
Median-cut -algiritmilla (mediaanileikkausalgoritmi) pyritään syntesoimaan sellainen koodikirja, jonka elementtivektorit edustavat tasajakaumaisesti alkuperäisten, syötettyjen kuvien sisältämiä pixeleitä. Tämä algoritmi työskentelee jakaen kartoitustilaa yhä pienempiin kuutiomaisiin tiloihin; se aloittaa yhdestä suuresta kuutiomaisesta tilasta, jossa esiintyvät kaikki syötetyn kuvan pixelit. Seuraavaksi se jakaa tämän tilan kahtia ja kutistuu sovittautuakseen avaruudellisesti tiiviisti uusien tilapisteiden sisäpuolelle; adaptiivista osittamiskriteeriä (partitioning criterion) käytetään kuvaamaan sitä, millä tavoin tila jaetaan. Yhä pieneneväin tilojen sulkeistamispisteet jäsentyvät tiloissa esiintyväin suurimpien dimensioiden mukaisesti, jotka jaetaan kahtia mediaanipisteensä kohdalta (median point). Tällä tavoin jakotason kummallekin puolelle tulee aina samanlainen määrä pisteitä. Jakoprosessia jatketaan kunnes on luotu 256 tilaa (boxes). Jokaisen luodun tilan representatiivinen arvo lasketaan arvioimalla niissä kussakin esiintyvä intensiteettitaso. Luotu lista näistä 256 representatiivisesta esityksestä muodostavat koodikirjan. Median-cut -algoritmi tuottaa paremmin kvantisoituja kuvia kuin populariteettialgoritmi. Pääsyy sen käyttöön on se, että se huomioi kaikki aluperäisessä kuvassa esiintyvät intensiteettitasot, tai ainakin niiden keskimääräiset tasot. Jotkut tämän algoritmin modifikaatiot voisivat sisältää myös valikoiman erilaisia alaleikkotasojen valintakriteereitä; sen sijaan, että valitaan runsaimmin esiintyvä koordinaatti kustakin tila-leikkaustasosta voitaisiin käyttää suurimman varianssin mukaista valikointiperustaa.

2.2. Image Reconstruction

Kvantisointi portaistuu määrittäen laadun ja sävyn jakaumaa tulostetussa kuvassa. Koodikirjassa annetusta valikosta representatiivisia koodivektoreita koodataan vektorit, joita esiintyi alkuperäisessä kuvassa. Operaatiota, jota tässä hyödynnetään, nimitetään joskus "likeisimmän muistuttavuuden listaksi" (nearest neighbor query) [3]. Kuten aiemmin kuvattu, on kokeessamme hyödynnetyllä häiriönmittaussovelteella toimintapa, jossa käytetään gereroivien vektoreiden ja referenssivektoreiden välisen geometrisen etäisyyden neliötä. Formulaationa neliöimisfunktio ei ole ideaalinen, koska se ei vastaa inhimillisen visuaalisen systeemin herkkyyttä. Jälleen sanottakoon, että realistisin häiriönmittaus voisi perustua inhimillisen katselijan perseptoinnin ominaisuuksiin. Lisätutkimusta tällä alueella tarvitaan. Luodaksemme kompressoidun tulosteen kuvasta alkuperäisessä kuvassa esiintyneet pixelit käydään läpi edellisessä vaiheessa luodun kvantisointikartan avulla. Jokaisessa pixelissä kompressoidussa kuvassa on kahdenlaista informaatiota; pixelin absoluuttisesta sijainnista kuvassa, ja sitä kuvaavan representatiivisen vektorin sijainnista, mikä on esitetty osoittajana (array pointer). Suorittamalla tämän jälkeen toinen hakupyyhkäisy kompressoituun kuvaan ja hakuoperaatio koodikirjan mukaisesti saadaan tulokseksi rekonstruktio lopullisesti dekoodatusta kuvasta. Tämä kuva voidaan tulostaa kuvaruutu-pufferiin, joka kykenee esittämään valitut 256 intensiteettiarvoa. Riippuen kuvan lajista voi kvantisointivirhe olla silminnähtävä, tai täysin huomaamaton. Kuvat, joissa on voimakkaita spatiaalisia frekvenssejä tuottavat huomattavasti vähemmän havaittavissa olevia virheitä kuin laajoja varjostettuja alueita sisältävät kuvat. Tämä johtuu siitä, että kvantisoinnin tuottamat korkeafrekvenssiset kulmakohdat ovat peittyneet korkeilla frekvensseillä myös alkuperäisessä kuvassa.

3. Analysis

Projektissamme analysoimme kahta erilaista tapausta saavuttaen molemmissa 3:1 kompressiosuhteen. Raportissamme esitetyt kokeet suoritettiin SUN -tietokonejärjestelmällä ja Datacube-kuvaruutujen esittämispufferilla. Kuvamuistien resoluutio on 768/ 484:lla kuvaelementillä. Koodikirja 8/ 24 -bitin taulu, josta 8 bittiä sisäänotossa ja 24 bittiä tulostuksessa. Kokeissa noudatettiin yleisenä mallina seuraavaa: prosessoitiin kolmea kuvaa, joista kompressoitiin yksi kuva; koodikirja koskee tätä yhtä kompressiokuvaa. Alkuperäiset kolme kuvaa voidaan rekonstruoida tästä yksittäisestä kuvasta siihen assosioituvan koodikirjan avulla.

Case A: Temporal Compression

Kuvalevyltä digitoitiin kolme peräkkäistä kuvaruutua, joissa objektien liike oli pientä. Nämä kolme digitoitua kuvaruutua kompressoitiin yksittäiseksi kuvaksi käyttämällä sekä karkeakuvausta (bruteimage) että hienokuvausta (ciq). Resultanttikuva dekompressoitiin käyttämällä värikopiota (colorcopy) generoimalla kolme peräkkäistä rekonstruktoitua kuvaa. Värikopio työskentelee suhteuttamalla jokaisen luoduista arvoista sitä edustavaan koodikirjaan luotuun vektoriarvoon. Hienokuvauskompressio (ciq) tuotti laajemman spatiaalisen resoluution ja sävyvalikoiman kuvia kuin mitä saatiin karkeakuvauksella (bruteimage). Kompressioprosesia voidaan parhaiten havainnollistaa kuvan (4) avulla.

Case B: Spatial Compression

Kokeidemme laajennuksena suoritettiin myös alaleikkauksellinen spatiaalinen kompressio. Yksittäinen luotu kuva jaoitettiin kolmeksi kuvaksi käyttämällä "blokkeihinjaoitus-ohjelmaa, joka suorittaa spatiaalisen desimaation, tai alaleikkauksia faktorilla 3. Sitten kolme kuvaa kompressoitiin yhdeksi kuvaksi käyttämällä karkeakuvausta (bruteimage) tai hienokuvausta (ciq). Kompressoitu kuva dekoodattiin käyttämällä blokkienpurkamis-menetelmää (unblock) tuotettaessa lopullista kuvaa. Blokkienpurkaminen on takaperoinen prosessi enkoodaukselle, jossa lopullinen kuva tuotetaan desimoimalla se kolmesta peräkkäisestä kuvasta. Cut-algoritmi tuotti parempia kuvia. Ehkä tärkein idea, joka kokeistamme voidaan oppia on koostavan struktuurin muoto rekonstruoiduissa kuvissa. Näissä kuvissa 3 pixelin blokkikvantisointistruktuurin esiintyminen oli evidenttiä Tekniikan variaatio voisi sisältää vertikaalisten, ja jopa diagonaalisten blokkien konstruoinnin. Graafisesti tämä koe on kuvattu kuvassa (5).

3.1. Error Images

Verrataksemme dekoodattuja kuvia alkuperäisiin luotiin virhekuvia (error images)) käyttämällä erillistä ohjelmaa, jolla mitattiin eroa (picdiff). Ohjelma työskentelee subtraktoimalla pixeli pixeliltä alkuperäistä kuvaa rekonstruoidusta kuvasta; operaation tulos kerrotaan sitten neljällä (arvioperusteisella magnifikaatiofaktorilla), ja lisättiin sitten 127:ään magnifioitaessa ja uudelleenpoikkeutettaessa (re-biasing) virhettä suhteuttaen sitä neutraaliin harmaaseen. Tällä tavalla tummat pixelit virhekuvassa indikoivat indikoivat niille kuvan alueille, joilla koodattu kuva on hivenen liian tumma, ja vaaleat pixelit indikoivat puolestaan niihin kuvan alueisiin, joilla koodattu kuva on liian vaalea. Niinpä virhekuvat tajoavat luotettavampaa ja arvokkaampaa tietoa kuin yksinkertaiset (numeeriset) skaalarikuvat, kuten SNR [8]. Esimerkiksi generoiduit virhekuvat hienokuvauksista (ciq) olivat huomattavasti neutraalimpia kuin ne, joita generoitiin karkeista kuvauksista (bruteimage). Tämä osoittaa, että hienokuvausprosessi (ciq) tuottaa niitä täsmällisemmin kvantisoituja kuvia, kuten jo mainitsimme alaluvussa 2.1. On instruktiivista pysähtyä ajattelemaan hetkeksi sitä valtavaa yksinkertaistuvuutta, joka on tulosta kvantisointiprosessista. Vain 256 elementtiä, jotka juonnetaan valtavasta valikoimasta generoivia vektoreita (2 potenssiin 24) käytettiin generoidessa rekonstruktoituja kuvia. Se on aivan yhtä merkittävää kuin se, että rekonstruoiduissa kuvissa on hyvin suuri osa alkuperäisten kuvien luminanssista ja sen alkuperäisten elementtien olemuksesta. Ilmeisesti vektoreita koodaavien algoritmien suorituskyky on sidoksissa niihin erityisiin koodivektoreihin, joita on valittu.

4. Conclusions

Olemme tutkineet työssämme lukuisten uusien tekniikkojen suunnittelua, hyödynnettävyyttä ja tehneet niistä arvioita, ja käyttäneet vektorikvantisoijia liikkuvan kuvan koodaukseen. Tärkeä kokeistamme johdettavissa olevat tulokset osoittavat, että kuvia voidaan kompressoida tehokkaasti käyttämällä näitä uusia tekniikkoja. Työmme edustaa vain suhteellisen kapeaa aluetta ajateltaessa kaikkia mahdollisia kuvankoodauksen struktuureja. Siten jäljelle jää moniakin mielenkiintoisia tutkimuskohteita. Suorituskykyä arvioitiin virhekuvien perusteella, sekä myös rekonstruoitujen kuvien informaalisia piirteitä arvioimalla. Todettiin, että valitut algoritmit toimivat hyvin silloin, kun käytettyjen koodivektoreiden lukumäärä oli dimensioiden lukumäärää suurempi. Tällä tavoin saatettiin varmistua siitä, että vektoriavaruus oli kvantisoitu oikein. Yksinkertainen algoritmin modifikaatio voisi olla "likeisimmän muistuttavuuden lista" (nearest neighbor query) neliöidystä virhefunktiosta johonkin toiseen funktioon. Myös cut-algoritmin kahtialeikkauksen kriteeriä voitaisiin modifioida. Ehkäpä monidimensionaalisen avaruuden akseleita voitaisiin rotatoida. Tällainen idea oli seurausta hyödyntämällä psykofysiologisia visioinnin aspekteja kuvankoodauksessa [9]; HVS:n spatiaalinen resoluutio on herkkäviritteisin kuvassa esiintyvien diagonaalisten kulmien kohdalla. Kvantisointikohinaa tulisi vähentää pienillä ja detaljoiduilla alueilla; tämä kohina ilmentyy kvantisointistruktuurina (blokkeina). Korkeasti detaljoituvilla alueilla kohina peittyy itse esiintyvällä detaljilla. Ne kuvat, joissa esiintyy vakavaa kvantisointikohinaa voidaan muokata paremmaksi alueellisella tiivistystekniikalla (dither) [10]. Vaihtoehtoinen tapa voisi olla kuvien suodattaminen pieniksi alhaisen frekvenssitason piendetaljeiksi, ja korkean frekvenssitason piendetaljeiksi. Koodaus voitaisiin suorittaa erillisinä individuaalisina komponentteina, joissa jokaisessa olisi adekvaatti lukumäärä koodivektoreita. Seuraava looginen askel olisi lisätä dimensioiden lukumäärää kolmesta yhdeksään, tai yleisesti ilmaistuna N:ään. Tällainen vaatisi laajaa kvantisointiohjelmien muokkausta, tai kenties uuden ohjelman kirjoittamista. Edelleen koodikirjan kokoa voitaisiin lisätä 256:sta 1024:ään, ja suuremmaksikin esitettäessä N -ulotteista avaruutta oikealla tavalla; valitsemamme lukumäärä oli valittu konservatiivisesti ajatellen saatavissa olevaa muistitilaa. Käytännön termein ilmaistuna muutos vaatii hyvin suurikokoista koodikirjaa. Toinen mahdollinen koeasetelmista voisi liittyä koodikirjojen eliniän pidentämiseen niin, että ne voisivat edustaa useampaa kuin yhtä yksittäistä N kuvien kokoelmaa. On nimitäin otaksuttavaa, etteivät kuvat tapahtumakokonaisuudessa (scene) muutu paljoa. Tätä ideaa voitaisiin laajentaa yrittämällä luoda universaali koodikirja tapahtumakokonaisuuksien joukolle (entire scenes). Tuloksia, joilla olisi hyödynnettävyyttä näissä kehitelmissä, on jo kokeiltu muunkaltaisten lähdeaineistojen kohdalla. Joitakin näistä ohjelmista voisi sovelluttaa, kuten Equitzin ohjelmaa [7], joita Stanfordissa sijaitseva Gray's Information Systems Laboratory on tuottanut. Keskeinen teema, jota voitaisiin kehittää liittyy algoritmien suorittaman tietojenkäsittelyn vaatimaan muistin- ja ajankäyttöön. Projektimme pitkän tähtäimen päämääränä on koodata pitkiä sekvenssejä, jotka sisältävät useammanlajisia kuvaruutujen jonoja. Laajentamalla tuloksia, joita jo olemme saavuttaneet tehdyissä kokeissa voidaan nähdä, että meidän adaptiivinen, kuvaruutujenvälinen, ja kaventuvaan kvantisointiin (tapered) perustuva tekniikkamme voisi myös tässä mainitussa tapauksessa toimia hyvin. Projektimme jatkokehittelyssä pyrimme parantelemaan metodia niin, että myös pitkiä liikkuvien kuvien sekvenssejä voidaan varastoida, ja rekonstruoida säilyttämällä kuvien alkuperäinen korkea taso.

5. References

[1] "Vector Quantitization", R.M. Gray, IEEE ASSP Magazine, April, 1984.

[2] "On the structure of Vector Quantizers", A. Gersho, IEEE Transaction of Information Theory, Vol. IT-28, No. 2, pp. 157-166, March 1982.

[3] "Color Image Quantitization for frame buffer display", Paul Heckbert, Computer Graphics, July 1982.

[4] "Manipulation and Presentation of Multidimensional Image Data Using the Peano Scan", R.J. Stevens, et al, IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. PAMI-5, No. 5, September 1983.

[5] T.M. Cornsweet, Visual Perception, Academic Press, New York, N.Y., 1970.

[6] D.J. Sarkinson, "Image Coding Applications of Vision Models", Image Transmission Techiques, W.K. Pratt, ed. new York, Academic Press, pp. 21-71, 1979.

[7] "Fast Algorithms for vector Quantitization picture coding", William Equitz, MS Thesis, MIT August 1984.

[8] "Vector Quantitization of Digital Images", Rickhard Louis Baker, ph. D. Dissertation, Stanford, June 1984.

[9] "Psychophysics and the Improvement of TV Image Quality", W.F. Schreiber, SMPTE Journal, August 1984.

[10] "Picture Coding usin Pseudo-Random noise", L.G. Roberts, IRE Transaction on Information Theory IT-8, p. 145, February 1962.