FI117956B - Piiri ja menetelmä erojen itseisarvojen summan laskemiseksi nopeasti ja tehokkaasti - Google Patents

Piiri ja menetelmä erojen itseisarvojen summan laskemiseksi nopeasti ja tehokkaasti Download PDF

Info

Publication number
FI117956B
FI117956B FI20050388A FI20050388A FI117956B FI 117956 B FI117956 B FI 117956B FI 20050388 A FI20050388 A FI 20050388A FI 20050388 A FI20050388 A FI 20050388A FI 117956 B FI117956 B FI 117956B
Authority
FI
Finland
Prior art keywords
adder
sad
values
bit
output
Prior art date
Application number
FI20050388A
Other languages
English (en)
Swedish (sv)
Other versions
FI20050388A (fi
FI20050388A0 (fi
Inventor
Timo D Haemaelaeinen
Jarno Vanne
Eero Aho
Original Assignee
Timo D Haemaelaeinen
Jarno Vanne
Eero Aho
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 Timo D Haemaelaeinen, Jarno Vanne, Eero Aho filed Critical Timo D Haemaelaeinen
Priority to FI20050388A priority Critical patent/FI117956B/fi
Publication of FI20050388A0 publication Critical patent/FI20050388A0/fi
Priority to PCT/FI2006/000117 priority patent/WO2006108912A1/en
Publication of FI20050388A publication Critical patent/FI20050388A/fi
Application granted granted Critical
Publication of FI117956B publication Critical patent/FI117956B/fi

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/544Indexing scheme relating to group G06F7/544
    • G06F2207/5442Absolute difference

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

117956
Piiri ja menetelmä erojen itseisarvojen summan laskemiseksi nopeasti ja tehokkaasti - Krets och metod för att räkna en sum av absoluta skiiinader snabbt och effektivt
5 TEKNINEN ALA
Keksintö liittyy digitaalisen videokoodauksen alaan. Erityisesti keksintö liittyy liike-vektorin määrittämiseen sen selvittämiseksi, miten paljon ja mihin suuntaan digitaalisen videokehyksen makrolohko on siirtynyt vertailukehyksen parhaiten vastaavaan makrolohkoon nähden.
10 KEKSINNÖN TAUSTAA '
Liikkeen estimointi on eräs tunnettu tapa vähentää peräkkäisten videokehysten välistä ajallista redundanssia, ja sitä hyödynnetään yleisesti digitaalisissa videokoo-dausmenetelmissä. Digitaalisen videokuvavirran kehys on jaettu ei-limittäisiin lohkoihin, joita yleisesti nimitetään makrolohkoiksi. Kunkin makrolohkon kohdalla ΜΙ 5 kitaan vertailukehystä parhaiten vastaavan aiemman makrolohkon löytämiseksi, so. vertailukehyksen sellaisen makrolohkon löytämiseksi, joka pikselisisällöltään on mahdollisimman samanlainen nykyiseen makrolohkoon verrattuna. Osana nykyisen kehyksen koodausta muodostetaan liikevektori, joka ilmaisee kuinka paljon • ♦ v.; ja mihin suuntaan nykyinen makrolohko on siirtynyt parhaiten vastaavasta aiem- v.; 20 masta makrolohkosta. Lisäksi tarvitaan erosignaali, joka ilmaisee kuinka paljon ja millä tavoin nykyinen makrolohko eroaa jopa parhaiten vastaavasta aiemmasta ;***: makrolohkosta.
··· • · ♦ · · · Makrolohkon yleinen koko on 16 kertaa 16 pikseliä. Tarkasti ottaen makrolohkon * · *···' yleinen määritelmä tarkoittaa 16x16-kokoista luminanssilohkoa sekä kahta ava- 25 ruudellisesti vastaavaa 8x8-kokoista krominanssilohkoa, mutta koska luminanssi- ja krominanssikomponentit korreloivat voimakkaasti, on tavanomaista käsitellä :***: vain luminanssidataa liikkeen estimoinnissa.
• · ·
Liikkeen estimointi on ylivoimaisesti eniten kustannuksia aiheuttava osa digitaaiis- ta videokoodausta, koska sen aiheuttama laskentatarve on suuri ja koska mainit- : .*. 30 tua laskentaa suorittavat laitteisto-osat vaativat suhteellisen suuren mikrosirutilan.
• · .·'··[ Edullinen liikkeen estimoinnin arkkitehtuuri on sellainen, joka on mahdollista to- • · teuttaa mahdollisimman vähillä laskentaoperaatioilla ja mahdollisimman vähillä loogisilla porteilla. Kompromisseja saatetaan tarvita, jolloin tietty lisäys mikrosirut!- ; i 2 117956 latarpeessa voi olla hyväksyttävä, mikäli saavutetaan merkittävä parannus laskentanopeudessa, ja päinvastoin.
Kuva 1 esittää erästä yleisesti hyväksyttyä ratkaisua, kolmesta eri asteesta koostuvaa ns. pipeline-putkea, joka on yleinen järjestely määritettäessä nykyisen mak-5 rolohkon ja ehdokasmakrolohkon ns. SAD-arvoa (erojen itseisarvojen summaa).
SAD mittaa sitä, miten tarkasti ehdokasmakrolohko vastaa nykyistä makrolohkoa, so. voisiko ehdokasmakrolohko sopia parhaiten vastaavaksi aiemmaksi makroloh-koksi. Ensimmäinen aste koostuu rivistä eroitseisarvoyksiköitä 101. Nykyisestä makrolohkosta ja ehdokasmakrolohkosta luetaan joukko pikseleitä, ja avaruudelli-10 sesti vastaavat pikseliarvot syötetään pareittain eroitseisarvoyksiköihin. Kuten nimestä voi päätellä, kukin eroitseisarvoyksikkö 101 laskee vastaanottamansa kahden pikseliarvon välisen eron itseisarvon. Näiden summaus suoritetaan toisessa asteessa, jota yleisesti nimitetään kompressointirakenteeksi 102. Se laskee kaikkien ensimmäiseltä asteelta vastaanottamiensa erojen itseisarvojen summan ja 15 lähettää tuloksen kolmannelle asteelle, joka on minimi-SAD-määrittäjä 103. Verratessaan nykyistä makrolohkoa joukkoon ehdokasmakrolohkoja minimi-SAD-määrittäjä 103 pitää lukua siitä, mikä niistä johti pienimpään SAD-arvoon, so. mikä oli eniten samanlainen nykyisen makrolohkon kanssa.
Kuvan 1 mukaiseen yleiseen ratkaisuun perustuvia liikkeen estimoijia tunnetaan 20 esimerkiksi tekniikan tason julkaisuista US 5 864 372 ja US 5 838 392. Seuraa- * · v.; vassa tarkastellaan joitakin niiden ominaisuuksia lähemmin.
• ♦ • · · • · ·
Kuva 2 esittää nk. Ohenin eroitseisarvoyksikköä, jota käytetään tässä esimerkkinä * · \.Γ tunnetusta eroitseisarvoyksiköstä 101. Se laskee yhteen operandin A (joka tässä y /"* esimerkissä on kahdeksanbittinen arvo a7,a6.....a0) ja operandin B (tässä ; * · * 25 b7,b6,...,bo) kahden komplementin. B:n kahden komplementointi toteutetaan biteit- täin invertoimalla B ja tuomalla oletusarvo '1' summaimen 201 muistinumerotu-loon. Jos operandi A on alun perin suurempi, summain muodostaa suoraan oikean ϊ.·|: positiivisen tuloksen ja ilmaisee muistinumeron siirron (c7=T), joka invertoidaan: C=0. Jos operandi B oli alun perin suurempi, summain 201 antaa kahdenkomple-30 menttinegatiivisen tuloksen, joka muutetaan positiiviseksi rivillä XOR-lähtöportteja *···[ 202, jotka tällä kertaa saavat toiseen tuloonsa c7 = C = 1. C-arvo käsittää myös korjausbitin, joka siirretään eteenpäin SAD-määrityksen seuraavaan asteeseen : otettavaksi huomioon siellä. Heittomerkki notaatiossa 'ABS muistuttaa siitä, että • · · · :***: korjausbitti C puuttuu tuloksesta.
• · · 3 117956
Kuva 3 esittää summainpuuta, joka tunnetaan tieteellisestä julkaisusta Q. Shu and H. Chen: "An efficient implementation of motion estimation algorithms", in Proc. 4th Int. Conf. Solid-State and Integrated Circuit Technology, Oct. 1995, pp. 697-699. Summainpuu oli itse asiassa vain varsinaisten kompressointirakennerat-5 kaisujen edeltäjä, mutta se tarjoaa hyvin intuitiivisen tavan ymmärtää kuvassa 1 esitetyn toisen asteen tarkoitusta. Nykyisen makrolohkon ja ehdokasmakrolohkon pikselien erojen itseisarvot syötetään pareittain ensimmäisen rivin summaimiin 301. Summaus etenee toisen rivin summainten 302 ja kolmannen rivin summain-ten 303 kautta lähtösummaimeen 304. Kukin summaimista 301, 302, 303 ja 304 10 vastaanottaa myös valitun korjausbitin ottaakseen sen huomioon. Summainpuun lähtö koostuu lopullisesta summasta 'SAD0..15 ja jäljellejääneestä korjausbitistä C15.
Kuvassa 4 on esitetty julkaisusta US 5 864 372 tunnettu kompressointirakenne, tässä yksinkertaistettuna versiona, joka vastaanottaa tuloinaan vain neljä eron it-15 seisarvoa ’ABS0 - 'ABS3 ja vastaavat korjausbitit CO - C3. Kompressointiraken-teeseen 401 kuuluu joukko kaskadoituja 4:2 -kompressointiyksikköpareja, joista yksi nähdään osittaisessa suurennoksessa 402, Mentäessä kohti eniten merkitseviä bittejä vastaan tulee raja, jonka jälkeen kompressointiyksikköparit korvataan jonkin verran yksinkertaisemmilla piireillä. Kukin mainituista kaskadoiduista 4:2 20 -kompressointiyksikköpareista ja mainituista yksinkertaisemmista piireistä muodostaa yhden bitin SAD S -vektoriin, joka on summavektori, sekä yhden bitin SAD_C -vektoriin, joka on muistinumerovektori. Summavektori SAD_S ja muisti-[;*;* numerovektori SAD_C tallennetaan tilapäisesti lähtörekistereihin 404 ja 403 ja : *.** syötetään takaisin lisätietoina kompressointirakenteelle 401.
• · · • · " : 25 Kuva 5 esittää julkaisussa US 5 838 392 ehdotettua minimi-SAD-määrittäjää. Tä- .·*·,' män ratkaisun eräänä ominaisuutena on, että se ei varsinaisesti koskaan laske to- • · dellisia SAD-arvoja, vaan pelkästään käsittelee summavektoreita (SAD_S -vekto- , reita) ja muistinumerovektoreita (SAD_C -vektoreita) erikseen. Näiden minimiarvot • · · tallennetaan summarekisteriin 501 ja vastaavasti muistinumerorekisteriin 502. 4:2 • # *·;·* 30 kompressointiyksikön 503 ja summaimen 504 yhdistelmä suorittaa kahden komp- lementti -vähennyslaskun nykyisen ja minimi-SAD:n välillä, jolloin summaimen 504 ·:··· lähtöön saatu muistinumerobitti ilmaisee vähennyslaskun tuloksen etumerkin. Oi- . \ kean vertailuhetken määrittämiseksi tarvitaan ohjaustulo. Jos muistinumerobitti • · * “j/ summaimelta 504 on'0'vertailuhetkellä, nykyinen SAD-arvo on pienempi kuin ai- ’...· 35 emmin tallennettu minimi-SAD, joten nykyinen SAD tallennetaan rekistereihin 501 ja 502. Invertteri 505 ja kaksi logiikkaporttia 506 ja 507 huolehtivat asianmukaisesti 4 117956 tallennusprosessin ohjauksesta. Lisäksi tallennetaan liikevektorin syöttödata (esitetty kuvassa 5 merkinnällä (k,I)) rekisteriin 508. Muistinumerobitin arvo '1' vertai-luhetkellä tarkoittaa, että nykyinen SAD on ylittänyt minimi-SAD:n. Tällaista tilannetta ilmaisemaan on käytettävissä ilmoitus "end_tag", ja sitä voidaan käyttää 5 esimerkiksi päättämään SAD-laskenta ennenaikaisesti.
Tunnettujen ratkaisujen haittapuolia ovat mm. liiallinen mikropiiritilan käyttö, las-kentaviiveet sekä ei-optimaalinen kokonaissuorituskyky.
Esillä olevan keksinnön tavoitteena on toteuttaa piiri ja menetelmä SAD:n laskemiseksi ja minimi-SAD:n löytämiseksi parhaalla suorituskyvyllä ja pinta-alatehokkuu-10 della.
Keksinnön tavoite saavutetaan rakenteella, jossa korjausbitit otetaan erityiskäsittelyyn melko varhain laskentaprosessissa, edullisimmin jo eroitseisarvoyksiköistä, ja vain yhdistetään erojen itseisarvojen käsittelyyn melko valikoivasti kompressointi-vaiheessa.
15 Keksinnön mukaiselle piirille on tunnusomaista se, mitä on esitetty piiriin kohdistuvan itsenäisen patenttivaatimuksen tunnusmerkkiosassa.
Keksinnön mukaiselle menetelmälle on tunnusomaista se, mitä on esitetty menetelmään kohdistuvan itsenäisen patenttivaatimuksen tunnusmerkkiosassa.
* · * · · *** * .·.·*. Lisäksi keksintö kohdistuu digitaaliseen videokooderiin, jolle on tunnusomaista se, « « « 20 mitä on esitetty digitaaliseen videokoodauslaitteeseen kohdistuvan itsenäisen pa-tenttivaatimuksen tunnusmerkkiosassa.
• · • · ···
Keksinnön ensimmäinen aspekti on edistynyt eroitseisarvoyksikkö, jossa käyte- :***; tään yhdelle operandeista yhden komplementti -esitystä, eikä kahden komple- mentti -esitystä, kuten oli tavallista aiemmissa ratkaisuissa. Eroitseisarvoyksikössä . .·. 25 muodostetaan muistinumerobitti, jota käytetään tarpeen mukaan biteittäin inver- .·**. toimaan tulos, mutta matalan suorituskyvyn "end-around" muistinumeroketjua eikä ♦ · mitään jatkuvaa T-muistinumerosyöttöä tarvita. Muistinumerobitti muodostaa myös korjausbitin. Kahdessa vierekkäisessä eroitseisarvoyksikössä muodostetut *"*: korjausbitit voidaan yhdistää puolisummaimessa tai vastaavassa piiriyksikössä jo : *·. 30 ennen niiden viemistä kolmiasteisen pipeline-prosessin toiseen asteeseen.
• ♦ · *·· · • · ·
Keksinnön toinen aspekti on toinen aste, so. kompressointirakenne, jossa korjaus-bittejä aluksi käsitellään korjaamattomien eroitseisarvojen käsittelyyn käytettävästä 5 117956 pääkompressointipuusta erillisessä korjauspuussa. Kompressointirakenteen eräs edullinen kokoonpano perustuu CSA-summainten (carry save adder) käyttöön, joita voidaan allokoida ja kytkeä eri tavoin. Eräässä edullisessa suoritusmuodossa käytetään CSA-summaimia kuudella tasolla pääkompressointipuussa ja kolmella 5 tasolla korjauspuussa, jolloin korjauspuun toiselta ja kolmannelta tasolta viedään kompressoituja korjaustietoja pääkompressointipuun kolmannen, neljännen, viidennen ja kuudennen tason CSA-summaimien asianomaisiin tuloihin. Strategia, jonka mukaan kompressoidut korjaustiedot yhdistetään pääkompressointipuuhun, muotoillaan edullisimmin siten, että lopullisissa summa- ja muistinumerovektoreis-10 sa, jotka saadaan lähtöinä kompressointirakenteesta, on mahdollisimman vähän yhteisiä bittipaikkoja.
Keksinnön kolmas aspekti on kolmas aste, so. minimi-SAD-määritysyksikkö, jossa voidaan valinnan mukaan toteuttaa erilaisia ennenaikaisen lopetuksen mekanismeja. Näitä ovat mm. nykyisen SAD:n arvon vertaaminen aiempaan minimi-SAD-15 arvoon jo laskennan aikana, kun nykyisen SAD.n laskenta on vielä kesken, jolloin aiemman minimin ylittäminen päättää laskennan ennen sen valmistumista. Lisäksi ensimmäisen, liikettä sisältämättömän SAD:n arvoon voidaan lisätä arvoa pienentävä negatiivinen bonus, jolloin on tilastollisesti todennäköisempää, että liikevekto-ria ei tarvitse lähettää lainkaan. Kolmantena minimi-SAD-määritysyksikön toimin-20 taan vaikuttavana mekanismina esitellään kynnysarvojen käsite. Voidaan asettaa . yksi tai useampia kynnysarvoja SAD-laskennalle siten, että aina kun nykyinen las- kettu SAD ylittää kynnysarvon, tehdään tietty kynnysarvoon sidottu päätös nykyi- • * « sen SAD-laskennan jatkamisesta. Toisin kuin ensin mainitussa mekanismissa, ί V kynnysarvo on parametriarvo eikä minkään aiemman SAD-laskennan tulos.
··♦ • t * * • · · : .·. 25 Tässä patenttihakemuksessa esimerkkeinä esitettyjen suoritusmuotojen ei pidä !···) tulkita asettavan rajoituksia oheisten patenttivaatimusten sovellettavuudelle. Ver- • · biä "käsittää" on käytetty tässä patenttihakemuksessa avoimena rajoitteena, joka , ei sulje pois tässä mainitsemattomia ominaisuuksia. Epäitsenäisissä patenttivaa- • · · *;j·* timuksissa mainittuja ominaisuuksia voidaan vapaasti yhdistellä, ellei nimenomaan *···*’ 30 toisin ole mainittu.
*♦· • · • · **’. Keksinnölle tunnusomaisina pidetyt uudet ominaisuudet on esitetty yksityiskohtai sesti oheisissa patenttivaatimuksissa. Keksintöä itseään, sen rakennetta ja toimin-: taperiaatetta, sekä sen lisätavoitteita ja -etuja on kuitenkin selostettu seuraavassa :***: eräiden suoritusmuotojen avulla ja viitaten oheisiin piirustuksiin.
* * * .
6 117956
Kuva 1 esittää tunnettua periaatetta SAD-laskennan kolmesta asteesta, kuva 2 esittää tunnettua Chenin eroitseisarvoyksikköä, kuva 3 esittää tavanomaista summauspuuta, kuva 4 esittää tunnettua kompressointirakenteen käsitettä, 5 kuva 5 esittää tunnettua Chenin minimi-SAD-määritysyksikköä, kuva 6 esittää keksinnön erään suoritusmuodon mukaista SAD-laskentapiiriä ja -menetelmää.
kuva 7 esittää keksinnön erään suoritusmuodon mukaista eroitseisarvoyksik-köparia, 10 kuva 8 esittää keksinnön erään suoritusmuodon mukaisen kompressointirakenteen osaa, kuva 9 esittää keksinnön erään suoritusmuodon mukaisen kompressointiraken teen toista osaa, kuvat 10a - 10d esittävät kuvien 8 ja 9 mukaisten epäsäännöllisten summainyksi-15 köiden koostumusta, kuva 11 esittää keksinnön erään yksinkertaisen suoritusmuodon mukaista mini-mi-SAD-määrittäjää, kuva 12 esittää keksinnön erään monipuolisemman suoritusmuodon mukaista minimi-SAD-määrittäjää, 20 kuva 13 esittää kuvissa 7, 8, 9 ja 12 esitettyihin suoritusmuotoihin sovitettua kuvan 6 mukaista SAD-laskentapiiriä ja -menetelmää, kuva 14 esittää eri SAD-laskentatoteutusten viive-ja pinta-alatarvevertailua ja • · kuva 15 esittää keksinnön erään suoritusmuodon mukaista videokooderia.
• · « « * • · · • · ·
Kuva 6 on kaavamainen esitys, joka esittää SAD:n toteuttavaa liikkeen estimointi-25 piiriä ja -menetelmää käytettäväksi osana digitaalista videokoodausta. Johdonmu- • · · kaisesti aiempien nimitysten kanssa oletetaan, että on olemassa nykyinen makro- lohko, jolle tulisi muodostaa liike-estimaatti, sekä joukko ehdokasmakrolohkoja, joiden joukosta tulisi tunnistaa sopivin, so. periaatteessa se, joka eroaa vähiten • .·. nykyisestä makrolohkosta. Tämän peruskriteerin puhtaasta soveltamisesta voi- • · · .·*·. 30 daan hienoisesti poiketa esimerkiksi käyttämällä "nollabonusta", joka suosii jotakin ehdokasmakrolohkoista, mutta näihin yksityiskohtiin mennään tuonnempana.
• · • ♦
• M
·:··: Ensimmäinen aste 601 koostuu eroitseisarvoyksiköistä 602, joista kukin on järjes- . *, tetty määrittämään kahden monibittisen syöttöarvon välisen eron itseisarvo. Eroit- • * · seisarvoyksiköitä 602 on yhtä monta kuin on nykyisen makrolohkon ja ehdokas-35 makrolohkojen samanaikaisesti vertailtavissa olevia pikseleitä. Kuvassa 6 on tehty yleinen oletus, että vertailtavat makrolohkot ovat kooltaan 16x16 pikseliä ja että 7 117956 yhtä pikseliriviä (tai -saraketta) kustakin makrolohkosta vertaillaan kerrallaan. Näin ollen eroitseisarvoyksiköitä 602 on kuusitoista, joista vain neljä on erikseen esitetty kuvassa. Oletetaan myös, että pikseliarvot esitetään kahdeksalla bitillä, jolloin kukin eroitseisarvoyksiköistä 602 vastaanottaa kaksi kahdeksanbittistä syöttöarvoa ja 5 muodostaa kahdeksanbittisen korjaamattoman lähtöarvon ja muistinumerobitin.
Olisi hyvin helppoa muuttaa eroitseisarvoyksiköiden määrää ja/tai bittitulojen määrää kussakin eroitseisarvoyksikössä, jos käytettäisiin joitain muita suunnittelupa-rametreja, tai valita vertailtavat pikselit jonkin muun valintastrategian mukaisesti kuin yksinkertaisesti rivi tai sarake kerrallaan.
10 Toinen aste 611 on kompressointirakenne, joka vastaanottaa korjaamattomat lähtöarvot ja korjausbitit (tai yleisemmin "korjausarvot" tai vain "korjaukset") ensimmäisen asteen 601 eroitseisarvoyksiköiltä 602. Toisin kuin tunnetussa Ohenin
II
kompressointirakenteessa, toiseen asteeseen kuuluu pääkompressointipuu 612 ja 11 erillinen korjauspuu 613. Edellinen on järjestetty vastaanottamaan korjaamattomat 15 eroitseisarvot ja toisen asteen aiemmin kompressoimat summa- ja muistinumero-vektorit takaisinkytkentänä. Korjauspuu on järjestetty vastaanottamaan korjaukset. Korjausbittien kompressoiminen korjauspuussa 613 synnyttää joukon kompressoituja korjausarvoja, jotka syötetään sopiviin kohtiin pääkompressointipuussa 612.
Tämän tuloksena toinen aste 611 muodostaa summa-ja muistinumerovektoreita, 20 jotka yhdessä ilmaisevat erojen itseisarvojen summan siinä pikselirivissä (tai -sa- ^ \v rakkeessa tai -ryhmässä) jota vertailtiin samanaikaisesti. Nämä viedään kolman- • # ·.·*.·* teen asteeseen 621, joka koostuu minimi-SAD-määrittäjästä. Se kumuloi rivikoh- :*·*; täisiä (tai sarakekohtaisia tai ryhmäkohtaisia) SAD-arvoja, vertaa kumuloitunutta ·'**; summaa minimiarvoon sopivalla hetkellä ja muodostaa lähtöarvoja, joiden joukos- ··· : .·. 25 sa on löydetty minimi-SAD. Kolmas aste 621 vastaanottaa myös eräitä ohjaustulo- .*··! ja ja muodostaa joitakin muita lähtöjä, joita voidaan käyttää esimerkiksi toteutta maan ennenaikaisen lopetuksen mekanismeja erillisen ohjauselimen (ei esitetty , kuvassa 6) ohjaamana.
• · ϊ • * ·
Kuva 7 esittää erästä edullista järjestelyä ensimmäisen asteen kahdesta vierek- .·*·. 30 käisestä eroitseisarvoyksiköstä 602, Kuvassa nähdyillä eroitseisarvoyksiköillä * · muodostetaan 0:nnen ja 1:sen pikseliparin erojen itseisarvot. Kunkin eroitseisar-voyksikön 602 perusratkaisu muistuttaa tunnettua Chenin ratkaisua (ks. kuva 2), · ·.· · mutta yksityiskohdissa on merkittäviä eroavuuksia. Kuvassa oikealla olevassa eroitseisarvoyksikössä on 8-bittinen summain 711, joka käsittelee operandia A 35 (a7...a0) ja invertoitua operandia B (b7...bo, esitetty ennen bitti-invertointia). Kah deksanbittinen summain 711 käyttää kahden komplementti -esityksen asemesta 8 117956 operandille B yhteenlaskussa yhden komplementti -esitystä, so. S = A + B . Jos operandi A oli pienempi (tai yhtä suuri) kuin operandi B, syntynyt negatiivinen tulos S (S7...S0) bitti-invertoidaan XOR-porteissa 712 oikean positiivisen arvon saamiseksi, eikä lisäkorjausbittiä tarvita (C7 = Ό'). Jos kuitenkin operandi A oli suurempi 5 kuin operandi B, 8-bittinen summain 711 muodostaa oikean positiivisen tuloksen S miinus yksi. Koska tarvittava "end-around" muistinumeron lisäys ei muuta lähtevää muistinumerotietoa (C7), välitön "end-around" muistinumeron lisäys on tarpeeton tässä tapauksessa. Näin ollen summaimen 711 muodostama muistinumerobitti (C7 = '1') siirretään eteenpäin korjausbittinä ja yksibittinen virheenkorjaus suoritetaan 10 myöhemmin.
Eroitseisarvoyksiköiden 602 toimintaa kuvaavat kaavat ovat seuraavat:
,ABs-iA + ^ = A + (28-1"B)s(A-B~1)mod(28) jaC = l ,A>B [ A + B = 28-1~(a + (28-1-B))=B-A jaC = 0 ,A<B
Näin ollen summaimen muistinumerotulo voidaan kokonaan eliminoida ilman mi-15 tään laitteistokustannuksia. Tämä on merkittävä ero Chenin menetelmään, jossa tarvittiin jatkuva '1' muistinumerosyöttö.
Toinen ero kaikkiin tunnettuihin menetelmiin verrattuna on, että eroitseisarvoyksik-kö 602 mahdollistaa välittömän korjausbittien kumuloinnin ilman mitään lisäviivet-: Y: tä. Huomattakoon että vasemmanpuoleinen eroitseisarvoyksikkö on täysin saman- 20 lainen kuin yllä kuvattu; muistinumerobittilähtö on siinä vain piirretty 8-bittisen * · summaimen 701 vastakkaiselle puolelle, jotta helpommin voidaan havainnollistaa !···. välittömän korjausbittikumuloinnin periaatetta. Vasemmanpuoleisen 8-bittisen * * summaimen 701 korjausbitti ja oikeanpuoleisen 8-bittisen summaimen 711 korja- \\\: usbitti viedään, invertoimatta, tuloina CO ja C1 puolisummaimeen 721, joka muo- *···* 25 dostaa kaksibittisen korjausbittivektorin C0..1. Kun kaikki eroitseisarvoyksiköt 16- kanavaisessa ensimmäisessä asteessa ovat vastaavasti pareina, niin ensimmäi- sen asteen lähtö koostuu kuudestatoista 8-bittisestä korjaamattomasta eroitseisar- *...· vosta'ABS0,'ABS1,...,’ABS15 sekä kahdeksasta 2-bittisestä korjausbittivektorista .···. C0..1, C2..3,...,C14..15. Puolisummaimien käyttö korjausbittivektorien muodosta- ,"]j 30 miseksi hävittää tiedon kunkin yksittäisen korjausbitin tarkasta arvosta, mutta tämä • * . ei vaikuta haitallisesti jatkoprosessointiin; päinvastoin, muodostetut 2-bittiset kor- • · : jausbittivektorit soveltuvat paremmin käytettäväksi keksinnön suoritusmuodon mu- kaisessa kompressointirakenteessa.
. 9 117956
Kuvat 8 ja 9 esittävät pääkompressointipuun ja korjauspuun edullisia suoritusmuotoja. Kuvan 8 pääkompressointipuu vastaanottaa uusia syöttötietoja ('ABSO, 'ABS1,..., 'ABS 15; C0..1) ensimmäisen asteen eroitseisarvoyksiköiltä sekä ta-kaisinkytkentätietoja (SAD_S(pre), SAD_C(pre)) omilta lähtörekistereiltään (ei esitetty 5 kuvassa). Lisäksi on INIT -tulo takaisinkytkentäarvojen nollaamiseksi uuden SAD-laskennan alussa. Takaisinkytkentäsummavektorissa SAD_S(pre) on 16 bittiä, joita alustuksen mahdollistavan porttirivin jälkeen merkitään ssis, ssi4,...,sso tai lyhyesti vain SS15..0- Syistä, joita käsitellään tarkemmin tuonnempana, takaisinkytkentä-muistinumerovektorissa SAD_C(pre) on kolme bittiä vähemmän, so. vain 13 bittiä, 10 joita vastaavasti alustusporttien jälkeen merkitään SC15, sci4,...,sc3 tai SC15..3. Huomattakoon että kaikki alaindeksinumerot, kuten esimerkiksi merkinnässä "SC15..3". viittaavat vastaaviin bittipaikkoihin. Kaikissa tapauksissa, joissa merkintä viittaa useampiin bittipaikkoihin, nämä on annettu alaindeksissä eniten merkitsevästä vähiten merkitsevään bittipaikkaan. Normaalikokoiset numerot korjausbittivektori-15 merkinnöissä, kuten CO..1 tai C12..13, viittaavat puolestaan vain niihin eroitseisar-voyksiköihin, joista korjausbitit otettiin kyseisen korjausbittivektorin muodostaneeseen puolisummaimeen.
Kuvassa 8 CSA-summaimien tulo- ja lähtöbittileveydet on merkitty periaatteella MSB...LSB (eniten merkitsevä bitti ... vähiten merkitsevä bitti). Kaikissa CSA- 20 summaimissa vasemmanpuoleinen lähtö muodostaa osittaiset muistinumerot ja . . oikeanpuoleinen lähtö muodostaa osittaisen summan. Useimmilla CSA-sum- • ♦ · ***;’ maimilla on kolme tuloa, paitsi yhdellä kaksituloisella CSA-summaimella korjaus- *·1·· puussa. CSA-summaimet 801, 802, 803 ja 804, joilla on poikkeuksellinen tulojen ·· ♦ : V leveys, on merkitty asteriskilla ja niiden rakenne on selitetty tavallisten CSA-sum- ·«· :...ϊ 25 maimien ja porttirakenteiden avulla kuvissa 10a, 10b, 10c ja 10d. Näissä merki- tyissä CSA-summaimissa tulobittiasteet, jotka vastaanottavat bittejä kaikilta kol-meitä tulolta, on toteutettu kokosummaimilla, kun taas bittiasteet, joihin liittyy vain ··· kaksi tuloa, on toteutettu puolisummaimilla. Merkitsemättömät kolmen tulon CSA- . summaimet on kokonaan toteutettu kokosummaimilla.
* · · • · · 30 Pääkompressointipuun ylimmällä tasolla on kuusi CSA-summainta, joilla on seu-raavat tulot ja lähdöt: ·♦· ••••e·: • · ♦ • · 4 « · • « · * 1 · · 1 · • · • · • · «
Taulukko 1: CSA:t numeroituna vasemmalta oikealle 10 117956 _Vasen tulo Keskitulo Oikea tulo Vasen lähtö Oikea lähtö CSA 1 ‘bitit 7..0: ‘bitit 7..3: ‘bitit 7..0: ‘bitit 8..1 ‘bitit 7..0
SS7..0 SC7..3 'ABSO
* bitti 2: vakio'0' ‘bitit 1..0: __C0..1_______ CSA 2 ‘bitit 7..0: ‘bitit 7..0: ‘bitit 7..0: ‘bitit 8..1 ‘bitit 7..0 'ABS1 'ABS2 'AB S 3___ CSA 3 ‘bitit 7..0: ‘bitit 7..0: ‘bitit 7..0: ‘bitit 8..1 ‘bitit 7..0 _'ABS4 'ABS5 'ABS6___ CSA 4 ‘bitit 7..0: ‘bitit 7..0: ‘bitit 7..0: ‘bitit 8..1 ‘bitit 7..0 _'AB S 7 'ABS8 'ABS9___ CSA 5 ‘bitit 7..0: ‘bitit 7..0: ‘bitit 7..0: ‘bitit 8..1 ‘bitit 7..0 _'ABS 10 ’ABS 11 'ABS 12___ CSA 6 ‘bitit 7..0: ‘bitit 7..0: ‘bitit 7..0: ‘bitit 8..1 ‘bitit 7..0 _['ABS13 'ABS14 |'ABS15 __ Pääkompressointipuun toiseksi ylimmällä tasolla on neljä CSA-summainta, joilla on seuraavat tulot ja lähdöt: .. 5 Taulukko 2: CSA:t numeroituna vasemmalta oikealle • » » ♦ · ♦ * · _ _____ :V: _Vasen tulo Keskitulo Oikea tulo Vasen lähtö Oikea lähtö CSA 1 ‘bitit 8..1: ‘bitit 8..1: ‘bitit 8..1: ‘bitit 9..2 ‘bitit 8..1 ylimm. tason ylimm. tason ylimm. tason **··* CSAV.nva- CSA2:nva- CSA 3:n va- * · : _sen lähtö sen lähtö sen lähtö_____ C'.: CSA 2 ‘bitit 7..0: ‘bitit 7..0: ‘bitit 7..0: ‘bitit 8..1 ‘bitit 7..0 ylimm. tason ylimm. tason ylimm. tason . CSAI.noi- CSA2:noi- CSA3:noi- ;;;* kea lähtö kea lähtö kea lähtö___ **·:·: CSA 3 ‘bitit 8..1: ‘bitit 8..1: ‘bitit 8..1: ‘bitit 9..2 ‘bitit 8..1 :**·. ylimm. tason ylimm. tason ylimm. tason CSA4:nva- CSA5:nva- CSA6:nva- _sen lähtö sen lähtö sen lähtö____ ? CSA 4 ‘bitit 7..0: ‘bitit 7..0: ‘bitit 7..0: ‘bitit 8..1 ‘bitit 7..0 .··*. ylimm. tason ylimm. tason ylimm. tason CSA4:noi- CSA 5:n oi- CSA 6:n oi- ___kea lähtö kea lähtö kea lähtö_____ 11 117956 Pääkompressointipuun kolmannella tasolla on kolme CSA-summainta, joilla on seuraavat tulot ja lähdöt:
Taulukko 3: CSA:t numeroituna vasemmalta oikealle _Vasen tulo Keskitulo Oikea tulo Vasen lähtö Oikea lähtö CSA1 *bitit 9..2: *bitit 3..2: ‘bitit 9..2: ‘bitit 10..3 ‘bitit 9..2 toisen tason lähdöt A ja B toisen tason CSA 1 :n korjauspuusta CSA 3:n _vasen lähtö__vasen lähtö___ CSA 2 ‘bitit 8..1: ‘bitit 8..1: toi- ‘bitit 8.1: ‘bitit 9..2 ‘bitit 8..1 toisen tason sen tason toisen tason CSA 1 :n oi- CSA 2:n va- CSA 3:n oi- _kea lähtö sen lähtö kea lähtö___' CSA 3 ‘bitti 8: sse ‘bitit 8..1: toi- ‘bitti 8: sc8 ‘bitit 9..1 ‘bitit 8..0 ‘bitit 7..0: sen tason ‘bitit 7..0: toisen tason CSA 4:n va- toisen tason CSA 2:n oi- sen lähtö CSA 4:n oikea lähtö ‘bitti 0: lähtö kea lähtö C korjaus- __puusta____]___ 5 Pääkompressointipuun neljännellä tasolla on kaksi CSA-summainta, joilla on seuraavat tulot ja lähdöt: * · ***** Taulukko 4: CSA:t numeroituna vasemmalta oikealle » · « * * ·4· « r ____^ ^ _Vasen tulo Keskitulo Oikea tulo Vasen lähtö Oikea lähtö ;...*' CSA 1 ‘bitit 10..3: ‘bitti 10: ‘bitti 10; ‘bitit 11..3 ‘bitit 10..2 kolmannen ssio scio : tason CSA ‘bitit 9..2: ‘bitit 9..2: »«· · .··*. 1:n vasen kolmannen kolmannen
lähtö tason CSA tason CSA
‘bitti 2: lähtö 1:n oikea 2:n vasen J#·’: D korjaus- lähtö lähtö .**·. puusta_____;__ / CSA 2 ‘bitti 9: ssg ‘bitit 9..1: ‘bitti 9: sc9 ‘bitit 10..2 ‘bitit 9..1 • **: ‘bitit 8..1: kolmannen ‘bitit 8..1: • · · kolmannen tason CSA kolmannen * ·
. tason CSA 3:n vasen tason CSA
: 2:n oikea lähtö 3:n oikean ··« · .*··. lähtö lähdön 7 ____MSB:tä __ 12 117956 Pääkompressointipuun viidennellä tasolla on yksi CSA, jolla on seuraavat tulot ja lähdöt:
Taulukko 5: _Vasen tulo Keskitulo Oikea tulo Vasen lähtö Oikea lähtö CSA ‘bitti 11: ‘bitti 11: ‘bitit 9..1: ‘bitit 12..2 ‘bitit 11..1 sen sen neljännen
‘bitit 10..2: ‘bitit 10..2: tason CSA
neljännen neljännen 2:n oikea tason CSA tason CSA lähtö 1 :n oikea 2:n vasen lähtö lähtö ‘bitti 1: lähtö ‘bitti 1: lähtö E korjaus- F korjaus- puusta_puusta_____ 5 Pääkompressointipuun kuudennella tasolla on kaksi CSA-summainta, joilla on seuraavat tulot ja lähdöt:
Taulukko 6: CSA:t numeroituna vasemmalta oikealle _Vasen tulo Keskitulo Oikea tulo Vasen lähtö Oikea lähtö CSA 1 ‘bitit 15..12: ‘bitti 12: vii- ‘bitit 15..12: ‘bitit 15..13 ‘bitit 15..12 • · ♦ • · SS15..12 dennen ta- SC15..12 : son CSA:n ··· vasemm.
I lähdön MSB___ _ CSA 2 ‘bitit 11..3: ‘bitit 11..2: ‘bitit 11..2: ‘bitit 12..3 ‘bitit 11..2 ··♦ neljännen viid. tason viid. tason . tason CSA:nva- CSA:n oike- aa*·'·· .···. CSAI.nva- semm. läh- an lähdön sen lähtö dön 10 10MSB:tä ‘bitti 2: lähtö LSB:tä G korjaus- : !·. puusta • aa - · — — - - — • a a « • a a aa a a *** Korjauspuun ylimmällä tasolla on kaksi CSA-summainta, joilla on seuraavat tulot ja 10 lähdöt:
Taulukko 7: CSA:t numeroituna vasemmalta oikealle 13 117956 _Vasen tulo Keskitulo Oikea tulo Vasen lähtö Oikea lähtö CSA 1 ‘bitit 1..0: ‘bitit 1..0: ‘bitit 1..0: ‘bitit 2..1 ‘bitit 1..0 C2..3 C4..5 C6..7___ CSA 2 ‘bitit 1..0: ‘bitit 1..0: ‘bitit 1..0: ‘bitti 2 ‘bitit 1..0 C8..9 C10..11 C12..13 ‘bitti 1: ____lähtö E__'
Korjauspuun toisella tasolla on kaksi CSA-summainta, joilla on seuraavat tulot ja lähdöt: 5 Taulukko 8: CSA:t numeroituna vasemmalta oikealle _Vasen tulo Keskitulo Oikea tulo Vasen lähtö Oikea lähtö CSA 1 ‘bitti 2: - ‘bitti 2: ‘bitti 3: ‘bitti 2:
ylimm. tason ylimm. tason lähtö A lähtö B
CSA 1:n va- CSA 2:n va- semm. läh- semm. läh- _dön MSB__ don MSB_________- CSA 2 ‘bitit 1..0: ‘bitit 1 ..0: ‘bitit 1 ..0: ‘bitti 2: ‘bitti 1 ylimm. tason ylimm. tason C14..15 lähtö D ‘bitti 0:
CSA1:noi- CSA 2:n oi- ‘bitti 1 lähtö C
• · ·*.·.__kea lähtö kea lähtö
• · · 11 > I | I I
• * • φ · • t ·
• I
.···. Korjauspuun kolmannella tasolla on yksi CSA-summain, joilla on seuraavat tulot ja !**:' j lähdöt: • · · • · · ·»» ♦ ·*.*..·’ Taulukko 9: , .·, _Vasen tulo Keskitulo Oikea tulo Vasen lähtö Oikea lähtö Ϊ·'.' CSA ‘bitti 1: ‘bitti 1: toi- ‘bitti 1: toi- ‘bitti 2: ‘bitti 1:
*:** ylimm. tason sen tason sen tason lähtö G lähtö F
CSA1:nva- CSA2:nva- CSA 2:n oi- *"*: semm. läh- semm. läh- kean lähdön
• __dön LSB dön LSB MSB
• · · ““ io • · *** Toiminnan aikana kuvan 9 mukaisen kolmiasteisen korjauspuun muodostamat summa- ja muistinumerobitit viedään yksi kerrallaan kuvan 8 mukaisen pääkom- . 14 117956 pressointipuun sopiviin muuten käyttämättömiin CSA-tuloihin. Lihavoidut kirjainparit A - G viittaavat korjauspuun lähtöjen ja pääkompressointipuun tulojen välisiin yhteyksiin. Lisäksi kuvassa 8 on lihavoituna esitetty niiden bittiasteiden numerot, jotka vastaanottavat bitit korjauspuusta. Ehdollisesti alustettujen aiempien summa-5 ja muistinumerovektorien LSB:t SS7..0 ja SC7..3 viedään pääkompressointipuun ensimmäiseen asteeseen kuvan 8 ja taulukon 1 mukaisesti. Joukko välibittejä näistä vektoreista, nimittäin ssn..8 ja SC-11..8, viedään erikseen pääkompressointipuuhun.
Kuvassa 8 nämä väliviennit on merkitty ko. bittiasteiden numeroiden ympärille piirretyillä ympyröillä (summavektoribitit) ja neliöillä (muistinumerovektoribitit). Näiden 10 vektorien MSB:t ssis,.i2 ja SC15..12 kumuloidaan pääkompressointipuun viimeisessä asteessa.
Kompressoidussa muistinumerovektorissa SAD_C(cur) on 13 bittiä, joiden 3 eniten n merkitsevää bittiä (MSB) tulevat kuudennen tason CSA 1:n vasemmasta lähdöstä.
Loput noista biteistä tulevat kuudennen tason CSA 2:n vasemmasta lähdöstä.
15 Kompressoidussa summavektorissa SAD_S(cur) on 16 bittiä, joiden 4 MSB:tä tule- vat kuudennen tason CSA 1:n oikeasta lähdöstä, 10 seuraavaa bittiä tulevat kuudennen tason CSA 2:n oikeasta lähdöstä, seuraava bitti (bittiaste 1) on viidennen tason CSA:n oikean lähdön vähiten merkitsevä bitti (LSB) ja viimeinen bitti (bittiaste 0) on kolmannen tason CSA 3:n oikean lähdön LSB.
20 Kuvien 8 ja 9 kompressointipuurakenteella on se edullinen ominaisuus, että se vä- ·*,·*.: hentää operandien määrää varhaisimmassa mahdollisessa vaiheessa. Vaikka :Y: varhaisin mahdollinen operandivähennys lisääkin jonkin verran pinta-alatarvetta :*·*,· piiritoteutuksessa, se myös vähentää kompressoituihin summavektoreihin .·*·. (SAD_S(cur)) ja muistinumerovektoreihin (SAD_C(cur)) liittyvien yhteisten bittiastei- : !·, 25 den määrää. Tässä yhteydessä yhteisellä bittiasteella tarkoitetaan bittiastetta, joka • · · ”.Y ei esiinny pelkästään toisessa mainituista vektoreista. Ilman korjausbittien tuomis- "* ta pääkompressointipuu pystyisi vähentämään yhteisten bittiasteiden määrää 16:sta 12:een. Korjausbittien kumulointiin kehitettyjen erillisten rakenteiden ansios- • · · *·|·* ta kuvien 8 ja 9 mukainen kompressointipuurakenne pystyy vähentämään yhteis- 30 ten bittiasteiden määrää 16:sta 13:een, joka on vain yhden bittiasteen vähemmän kuin teoreettinen maksimi; yhteiset bittiasteet ovat ssi5..3 ja scis,.3. Yhteisten bittias- ·*· teiden määrän vähentäminen ei välttämättä lisää lopullisen summa-ja muistinumerovektorien yhteenlaskun suoritusnopeutta, koska nopean summaimen viive ei : tyypillisesti ole summaimen bittileveyden tasaisesti kasvava funktio. Vähäisempi
«M
35 yhteisten bittiasteiden määrä kuitenkin pienentää laitteistokustannuksia sen ansi- 15 117956 osta, että summaimen toteutus on kapeampi ja liikkeen estimoijan myöhemmissä asteissa on pienempi määrä rekistereitä.
Ensimmäinen korjausbittivektori C0..1 voidaan välittömästi viedä yhteen nollannen asteen CSA-summaimista pääkompressointipuussa, koska aiemman SAD:n 5 kompressoidun muistinumerovektorin kolme vähiten merkitsevää bittiä ovat käyttämättömiä edellä kuvatun mukaisesti. Tarkasteltaessa kuvassa 4 esitetyn kaltaista tekniikan tason mukaista kompressointirakennetta, jossa kaikki 16 korjausbittiä viedään CSA-tulojen O-bittiasteeseen, voidaan huomata, että mainittu tekniikan tason mukainen ratkaisu aiheuttaa - verrattuna perinteiseen CSA-puuhun, jossa ei 10 ollut korjausbittien lisäystä - pinta-alalisäyksen, joka on lähes yhtä suuri kuin esillä olevan keksinnön ylimääräinen CSA-puu. Toisaalta mainittu tekniikan tason mukainen ratkaisu mahdollistaa vain vähempien SAD-tuloksen asteiden esittämisen pelkästään summavektorilla, so. siihen liittyy useampia yhteisiä bittiasteita summa-ja muistinumerovektoreissa kuin esillä olevassa keksinnössä.
15 Olisi mahdollista esittää puita, jotka hyödyntävät muuntyyppisiä summaimia kuin CSA-summaimia, ja niitä voitaisiin käyttää vähentämään operandien määrää varhaisessa vaiheessa ja toteuttamaan erillinen korjauspuu, josta tulokset syötetään pääkompressointipuuhun, kuten edellä kuvatussa esimerkkiratkaisussa. CSA-summainten käyttöön uskotaan kuitenkin liittyvän tiettyjä etuja, koska ne ovat ra-20 kenteeltaan suhteellisen yksinkertaisia ja koska niillä saadaan aikaan säännöllinen v.: summaimen allokointi- ja kytkentäjärjestely.
• · • ♦ · • · ♦ .1^ Olisi mahdollista toteuttaa ennenaikaisen lopetuksen mekanismi kompressointi- puussa tekniikan tason julkaisussa US 2003/0043911 A1 esitettyä menettelyä • · /"* noudattaen. Ajatuksena on keskeyttää käynnissä oleva SAD-laskenta, mikäli ku- * · ·♦· ϊ 25 muloitunut SAD-arvo ylittää jonkin ennalta määrätyn, kiinteän kynnysarvon. Jos tällä tavoin jätettäisiin pois 1-3 MSB:tä, se mahdollistaisi kuitenkin vain erittäin vähäiset säästöt pääkompressointirakenteessa, kun taas suuremman bittimäärän i.:*: pois jättäminen aiheuttaisi helposti liiallisia rajoituksia käsiteltäviin SAD-arvoihin.
,·*’*: Bittileveyden pienentäminen jättää kompressointirakenteen korkeuden ennalleen.
··· 30 Täysi 16-bittinen rakennetoteutus on erittäin käyttökelpoinen ratkaisu; mitä tahan-’··*! sa haluttua kumuloituneen muistinumerovektorin lähtöbittiä voidaan käyttää kes keytyksenä, joka Hipaisee ennenaikaisen lopetuksen.
• · ♦ • · «
Kuvassa 11 on esitetty esimerkkinä eräs kolmannen asteen, so. minimi-SAD-mää-**** rittäjän, yksinkertainen toteutus. Huomattakoon että ehdotettu toteutus ei sisällä 35 liikevektorin määrittämistä, joka jää jonkin toisen sopivan piirielimen vastuulle. Ku- 16 117956 van 11 toteutus ei myöskään sisällä mitään ennenaikaisen lopetuksen mekanismeja, joista tarkemmin tuonnempana.
Kompressoidut nykyiset summa- ja muistinumerovektorit vastaanotetaan SAD_S ja SAD_C -tulojen kautta. Vertailu aiemmin tallennettuun minimi-SAD-arvoon alkaa 5 bitti-invertoimalla mainittu aiemmin tallennettu minimi-SAD invertterissä 1101. Käyttäen 15-bittistä CSA:ta 1102 bitti-invertoitu minimi-SAD-arvo kumuloidaan SAD S ja SAD C -vektoreihin. Jatkuva yhden bitin lisäys, jota tarvitaan kahden komplementti-esityksessä, hoidetaan OR-portilla 1103, joka on kytketty vastaanottamaan bitti-invertoidun minimi-SAD:n ja nykyisen SAD_S:n vähiten merkitseviä 10 bittejä ja lähettämään tulos lisä-LSB:nä kasvattamaan CSA:n 1102 vasenta (muis-tinumero) lähtöä. CSA-kompressointi tuottaa kaksi erovektoria dif_Sis..i ja dif_ci6..i, jotka lasketaan yhteen 16-bittisessä summaimessa 1104. Summain voi olla jonkin verran pelkistetty, koska vain eniten merkitsevä summabitti (s16) tarvitaan sen lähdössä. Tämä bitti ilmaisee vähennyslaskun etumerkin.
15 Koska yhden SAD-arvon laskenta ulottuu useamman jakson ajalle, tarvitaan ohja-ustulo CMPR ilmoittamaan oikea hetki SAD-arvon vertailulle. Porttirakenteella, jossa on NAND-portti 1105 ja AND-portti 1106, otetaan huomioon sekä CMPR-signaali että ZERO_SAD -tulosignaali, joka ilmaisee, onko kyseessä ensimmäinen SAD-arvon laskenta, jolloin ei ole olemassa aiemmin tallennettua minimi-SAD-20 arvoa. Mikäli eniten merkitsevä summabitti s16 on '0' tai jos ZERO_SAD -bitti on '1' • » \v vertailun aikana, niin nykyisen SAD-arvon 13 eniten merkitsevää bittiä, jotka on rinnakkain laskettu 13-bittisessä summaimessa 1107, sekä 3 vähiten merkitsevää bittiä, jotka on suoraan otettu SAD_S:stä (koska vastaavat bittiasteet puuttuivat ·***; SAD_C:stä), tallennetaan rekisteriin 1108 valmiina uutena minimi-SAD-arvona.
M· : ,·. 25 Multiplekserillä 1109 kierrätetään vanha minimi-SAD tai tallennetaan uusi, riippuen .1·1·.’ signaalista NEW MIN. Invertteri 1110 invertoi tulevan ZERO_SAD-ohjausbitin oi- • « kean toiminnan varmistamiseksi.
Μ,ϊ Uusi minimi-SAD-arvo aktivoi molemmat kaksi lähtösignaalia SAD_RDY ja MIN_RDY, jotka tallennetaan lähtörekistereihin 1111 ja 1112. Jos uusi arvo ei ollut y..' 30 ensimmäinen, eikä pienempi kuin aiempi minimiarvo, vain SAD_RDY aktivoituu.
Bittien CMPR, ZERO_SAD, Si6, SAD_RDY ja MIN_RDY keskinäiset riippuvuudet on esitetty seuraavassa taulukossa.
« · * » · • · · M· « · · * 1 • · * · «
Taulukko 10: 17 117956
CMPR ZERO SAD s16__SAD RDY MIN RDY
0__0__0__0__0 0__0__1__0__0 o__i__o__o__o 0 __1__i__g__o 1 __o__g__i__1 1__g__i__i__o 1__i__g__i__1 Γ 1 l 1 I 1 1 1
Kuva 12 esittää minimi-SAD-määrittäjää, jossa on toteutettu useita ennenaikaisen lopetuksen mekanismeja. Minimi-SAD-määritys etenee pääpiirteissään samalla 5 tavoin kuin edellä selostettiin kuvaan 11 liittyen. Ensimmäinen ennenaikaisen lopetuksen mekanismi perustuu siihen, että jo ennen kuin nykyinen SAD-arvo on valmis (so. ennen CMPR-ohjaussignaalin aktivoitumista), mikäli eniten merkitsevä summabitti s^ tulee '1 ':ksi, sillä hetkellä kumuloituva SAD on jo ylittänyt aiemmin tallennetun minimi-SAD-arvon. Siksi eniten merkitsevä summabitti Si6 annetaan 10 ylimääräisenä lähtösignaalina SAD_EXC lähtörekisterin 1201 kautta. AND-portti 1202 suorittaa AND-operaation Sie-bitin ja invertoidun ZERO_SAD -ohjausbitin vä-lilla, jolloin SAD_EXC -lähtö pysyy tilassa '0', kun ensimmäistä SAD-arvoa laske- * * * s/.' taan. Verrattuna kuvaan 11, minimi-SAD:n ylityksen ilmaiseva mekanismi aiheut- !;V taa pinta-alatarpeessa vain yhden AND-portin ja yhden 1-bittisen rekisterin lisäyk- • * · .
15 sen, eikä mitään lisäviivettä. SAD_EXC -lähdön saadessa arvon '1' on tarkoitus, *···* että ohjausalgoritmi lopettaa nykyisen SAD.n laskennan.
φ ·
» » I
• · · M* » .·**. Nykyisen SAD-arvon vertaaminen kiinteään kynnysarvoon on järkevää oleellisesti vain laskettaessa ensimmäistä SAD-arvoa, so. kun ZERO_SAD -ohjausbitti on ak- . ,·. tiivinen. Siksi kuvan 12 toteutukseen sisältyy ZERO_SAD -ohjausbitin ohjaama • · · ‘.Il 20 multiplekseri 1203, joka valitsee joko invertoidun aiemman minimi-SAD-arvon tai • · **:·* TH-tulon ja invertterin 1204 kautta saadun invertoidun kynnysarvon vertailun poh- jaksi. AND-portti 1205 ja lähtörekisteri 1206 antavat TH EXC-indikaation samalla *:*·: tavoin kuin edellä selostettiin SAD_EXC -lähtöön liittyen, paitsi että AND-portti . 1205 vastaanottaa invertoimattoman ZERO_SAD-bitin yhteen tuloistaan, jolloin 25 TH_EXC -lähtöjen antaminen on mahdollista vain ensimmäisen SAD-arvon las- • ♦ *··** kennan aikana. Tämän mekanismin lisäpinta-alavaatimus on 16 NOT-porttia, yksi 18 117956 16-bittinen multiplekseri, yksi AND-portti ja yksi 1-bittinen rekisteri. Viivelisäys vastaa multiplekserin 1203 aiheuttamaa viivettä. .
Kynnysarvon ylitysilmaisun toteutus tukee myös vertailua useampiin kynnysarvoihin. Kun nykyinen kynnysarvo on ylitetty, seuraavaksi suurempi kynnysarvo voi-5 daan syöttää TH-tulon kautta seuraavan jakson aikana. Yhden jakson viive peräkkäisten kynnysarvovertailujen välissä estää jäljellä olevien suurempien kynnysarvojen tarkastelun, jos nykyinen kynnysarvo ylitettiin vasta viimeisen jakson aikana ennen SAD:n valmistumista. Tämä ei kuitenkaan ole vakava haitta, koska kynnysarvoja tavallisesti käytetään vain nopeuttamaan algoritmin suoritusta. Näin olio Ien vertailematta jäänyt suurempi kynnysarvo voi pahimmassa tapauksessa aiheuttaa tarpeetonta laskentaa, mutta oikea tulos saavutetaan silti.
Olisi mahdollista suorittaa kynnysarvon ylityksen ilmaisu täysin rinnakkaisesti kahdentamalla minimi-SAD-määrittäjän vertailuosat kullekin halutulle kynnystasolle. Rinnakkainen kynnysarvon ilmaisu pienentäisi viivettä tarpeettoman valintamulti-15 plekserin verran, ja poistaisi viiveen kokonaan peräkkäisten kynnysarvovertailujen väliltä. Aiheutuva piiripinta-alan lisäys olisi kuitenkin suhteellisen suuri kahdennetun vertailulogiikan takia.
Kolmas ennenaikaiseen lopetukseen liittyvä mekanismi perustuu siihen, että suositaan tarkoituksella ensimmäisen, so. liikkeettömän ehdokasmakrolohkon SAD- 20 arvoa. Tällöin vähennetään ennalta määrätty parametritulo -ZERO BONUS nolla-• · · — liikevektorin SAD-arvosta. Käytännössä -ZERO_BONUS -arvo kytketään AND-
• I I
1 porttien muodostaman sallintaelimen 1207 kautta CSA:lle 1208, joka summaa sen nykyiseen SAD-arvoon. Sallintaelimen 1207 AND-portit vastaanottavat toisen tu- /··* lonsa, aktivointitulon, ZERO SAD -ohjaustulolta, jolloin -ZEROJ30NUS -tulo ma- i.: i 25 terialisoituu nollasta poikkeavaksi tuloksi CSA.IIe 1208 vain, jos ZERO_SAD • · · !...: -ohjausbitti on aktiivinen. Tunnetuissa ratkaisuissa sopiva nollabonus on esimer kiksi sata, kun käytetään ns. diamond search -algoritmia. -ZEROJ30NUS -arvo : f: voi olla suunnitteluvaiheessa määrätty vakio, tai se voi olla ajonaikainen parametri, :*'*· jota ohjataan digitaalisen videokoodauksen ohjausalgoritmilla. Kuvan 12 mukainen * · « 30 nollabonusmekanismi merkitsee 16 AND-portin ja yhden 16-bittisen CSA:n muo- *”\ dostamaa pinta-alatarvelisäystä, eikä lainkaan viivelisäystä.
« · • X Kuvan 12 toteutuksen bittien CMPR, ZERO_SAD, s16, SAD_RDY, MIN RDY, « * · “X SAD_EXC ja TH_EXC keskinäiset riippuvuudet on esitetty seuraavassa taulukos- • · *** sa.
Taulukko 11: 19 117956
CMPR ZERO SAP s16 SAD RDY MIN RDY SAD EXC TH_EXC
0__0__0__0__0__0__0 0__0__1__0__0__1__0 0__1__0__0__0__0__0 0 __i__i__o__o__g__1 1 __g__g__i__i__g__o 1__g__i__i__g__i__o 1__i__g__i__i__g__o 1 1 1 l 1 l 1 I 1 I o I 1
Verrattaessa tunnettuun Chenin minlmi-SAD-määrittäjään (ks. US 5 838 392) kuvien 11 ja 12 järjestelyihin voidaan sanoa liittyvän se haittapuoli, että ne vaativat 5 yhden ylimääräisen 15-bittisen summaimen (tai 13-bittisen summaimen kuvan 11 tapauksessa), joka on SAD.n täydellisen arvon laskemiseen käytettävä summain 1107. Kuvien 11 ja 12 mukaisten järjestelyjen hyvänä puolena on kuitenkin se, että ne vaativat vain noin puolet minimi-SAD-arvon tallentamiseen käytettävistä rekistereistä ja valintalogiikasta ja vain noin puolet minimi-SAD-arvon invertointiin käy-10 tettävästä invertointilogiikasta. Minimi-SAD:n vertailu on myös nopeampaa, koska CSA+OR -yhdistelmä on nopeampi kuin 4:2-kompressoija. Kapeampi summain riittää erovektorien yhteenlaskuun, ja varsinainen SAD-arvo on välittömästi käytet-. v. tävissä, mikä on etu, koska sitä tarvitaan esimerkiksi valintapäätökseen INTRA ja •11' INTER-koodaustilojen välillä.
• * 15 Kuva 13 esittää kuvan 7 mukaisia eroitseisarvoyksiköitä, kuvien 8 ja 9 mukaista ij’: kompressointirakennetta, sekä kuvan 12 mukaista minimi-SAD-määrittäjää sijoitet- :***· tuna kuvassa 6 aiemmin esitettyyn kokonaisrakenteeseen. Eroitseisarvoyksiköt 602 esiintyvät pareittain, ja kunkin parin välissä on puolisummain 721 kaksibittis- , .·. ten korjausbittivektorien muodostamiseksi. Ensimmäisen asteen 601 ja toisen as- ,··*. 20 teen 611 välissä olevat rekisterit 1301 huolehtivat korjaamattomien eroitseisarvo- Ύ jen ja korjausbittivektorien siirtämisestä. Vastaavasti toisen asteen 611 ja kolman- ··« nen asteen 621 välissä on rekisterit 1302 kompressoitujen SAD_S ja SAD_C -arvojen siirtämiseksi. Lähtörekisterit esitettiin kuvissa 11 ja 12 osina minimi-SAD- • )·, määrittäjää, joten niitä ei ole erikseen esitetty kuvassa 13. Ensimmäinen vaihe 601 • · · 25 vastaanottaa 32 operandia, jotka ovat 16 pikseliarvoa kultakin nykyiseltä ja ehdo-***' kasmakrolohkolta. Toinen vaihe 611 vastaanottaa 26 operandia, jotka ovat 16 ero- itseisarvoa, 8 korjausbittivektoria ja kaksi takaisinsyöttöarvoa toisen vaiheen 611 20 117956 lähdöistä. Lisäksi toinen vaihe 611 vastaanottaa ohjaustulon INIT. Kolmas vaihe 621 vastaanottaa kompressoidut SAD_S ja SAD_C -arvot, takaisinsyöttöarvon MIN_SAD omalta lähdöltään, sekä kynnysarvon TH, nollabonusarvon -ZERO_BONUS ja ohjaussignaalit CMPR ja ZERO_SAD. Kolmannen vaiheen 621 5 lähdöt ovat MIN_SAD -arvo ja indikaatiolähdöt SAD_RDY, MIN_RDY, SAD_EXC ja TH_EXC.
Osia kuvan 13 esittämästä kokonaisrakenteesta voitaisiin korvata toisin valituilla ratkaisuilla. Jos esimerkiksi haluttaisiin jostain syystä käyttää nimenomaan Chenin eroitseisarvoyksiköitä (ks. kuva 2) esillä olevan keksinnön suoritusmuodon mukai-10 sen ensimmäisen asteen 601 asemesta, niitä olisi mahdollista käyttää edellyttäen, että Chenin korjausbitit muutettaisiin korjausbittivektoreiksi ylimääräisessä väliasteessa ennen toista astetta 611. Tai jos haluttaisiin käyttää Chenin kompressointi-rakennetta esillä olevan keksinnön suoritusmuodon mukaisen toisen asteen 611 tilalla, sekin olisi mahdollista käyttämällä taas väliastetta, jonka tällä kertaa pitäisi 15 siepata korjausbitit ensimmäiseltä asteelta ennen niiden yhdistämistä korjausbittivektoreiksi. Myös tekniikan tason mukaista minimi-SAD-määrittäjää voitaisiin käyttää esillä olevan keksinnön suoritusmuodon mukaisen kolmannen asteen 621 tilalla tekemällä pieniä muutoksia, jotka sinänsä olisivat alan ammattilaiselle helppoja tehdä. Edellä selostetun uuden ja keksinnöllisen ratkaisun osien korvaaminen joh-20 taisi kuitenkin väistämättä heikompaan suoritustehoon ja vähemmän edulliseen . . ratkaisuun.
• · · .
• * · • ·
Tunnetaan menetelmiä teoreettisten viive- ja pinta-alaestimaattien johtamiseksi ·*·'. keksitylle liikkeen estimoijalle. Pinta-alakustannus perusporteille, joilla on n tuloa, • · .···. on n kustannusyksikköä (CU), paitsi XOR ja XNOR-porteille, joille se on 2n CU.
25 Viivekustannus puolestaan kaikille käytetyille porteille on 1 τ. Laskelmissa ei taval- * · · lisesti oteta huomioon rekistereitä, kytkentöjä, eikä fan-out / fan-in -tekijöitä. Saa-***** vutetut tulokset ovat näiden oletusten takia parempia vertailutarkoituksiin kuin käy tettäväksi itsenäisinä absoluuttisina mittaustuloksina.
• · · • · «
Summaimet edustavat tyypillisesti suurta osaa viive- ja pinta-alakustannuksista.
* · * 30 Siksi voidaan ajatella kolmenlaisia summaimia, joilla on erilaisia ominaisuuksia: * * **··[ RCA- eli ripple carry -summaimia, CLA- eli carry look-ahead -summaimia ja CSA- \ * eli carry save -summaimia. Lisäksi analysoidaan erikseen CLA-summaimista n- : tuloporttiversioiden (CLA(n)) lisäksi 2-tuloporttiversioita (CLA(2)), koska käytettä- ;***. vissä olevan porttileveyden vaikutus on oleellinen CLA.IIe. CLA-versioiden erona 35 on, että CLA(n):ssä käytetyt n-tuloportit korvataan 2-tuloporttipuilla CLA(2):ssa. Huomionarvoista on, että n-tuloporttien suora korvaaminen 2-tuloporttipuilla jättää 21 117956 tilaa CLA(2):n pinta-alaoptimoinnllle. Tällaista optimointia ei kuitenkaan ole otettu huomioon näissä laskelmissa.
Analyysin pohjaksi oletetaan, että yhden puolisummaimen viive- ja pinta-alakus-tannukset ovat 1 τ ja 6 CU, kun taas vastaavat luvut kokosummaimelle ovat 3 τ 5 and 14 CU. Analyysissä on oletettu, että kaikki summaimet sisältävät vain sen logiikan, jota tarvitaan pyydetyn tuloksen muodostamiseksi. Toisin sanoen käyttämättömiin tulo- ja lähtöportteihin liittyvät logiikat on poistettu.
Kuvan 14 ylempi ja alempi kaavio esittävät teoreettisia viive- ja pinta-alaestimaat-teja eri estimointiyksiköille. Yksinkertaisella vinoviivoituksella varustettu sarake 10 edustaa RCA/CSA-toteutusta, valkoinen sarake edustaa CLA(2)/CSA-toteutusta, ristiviivoitettu sarake edustaa CLA(n)/CSA-toteutusta ja kaksinkertaisella vinoviivoituksella varustettu sarake edustaa CSA-toteutusta. Kussakin yksikössä sum-maintyypin vaihto tapahtuu vain RCA:n ja CLA.n välillä. Nämä summaimet ovat kuvan 7 eroitseisarvoyksikössä summaimet 701 ja 711 ja kuvan 11 minimi-SAD-15 määritysyksikössä summaimet 1104 ja 1107. Muut summaimet on kussakin tapauksessa toteutettu CSA-summaimilla.
Tarkastellaan ensin eroitseisarvoyksikön analysoituja toteutuksia. Kaikissa tapauksissa pinta-alakustannus on laskettu 16 yksikölle. Keksitty CLA-pohjainen yksikkö on suositeltavin ratkaisu suurta suorituskykyä vaativiin sovelluksiin, kun taas :V: 20 keksitty RCA-pohjainen yksikkö tarjoaa pinta-alatehokkaimman toteutuksen. Esi- • * ;y: tetty vain CSA-summaimia sisältävä kompressointirakenneyksikkö puolestaan on erittäin tehokas ratkaisu suoritusnopeuden ja pinta-alatehokkuuden suhteen. Lo- • · puksi, vertailu RCA- ja CLA-pohjaisten minimi-SAD-määrittäjien välillä paljastaa, .’*1 että viivelisäys RCA-pohjaisissa toteutuksissa on paljon merkittävämpi kuin pinta- y/ 25 alasäästöt. Siksi CLA-pohjainen minimi-SAD-määrittäjä on suositeltu toteutus.
• · • · ·*·
Analyysitulosten perusteella ehdotetaan kahta tehokasta pipeline-järjestelyä edul- ; lisimmille yksiköille. Ensimmäinen niistä noudattaa kuvassa 13 esitettyä järjeste- • · · .···. lyä. Kyseisessä kolmiastejärjestelyssä RCA-pohjaiset eroitseisarvoyksiköt ovat riit- !** tävän nopeita ensimmäistä astetta varten. Pipeline-asteet ovat teoriassa hyvin ta- 30 sapainossa, sillä kunkin ao. yksikön kombinointiviive on lähellä arvoa 19 τ. CLA-pohjaisille kokoonpanoille käytetään CLA(2) ja CLA(n) teoreettisten viive-estimaat-: tien keskiarvoa. Rakenteen latenssi on kolme kellojaksoa. Eräs toinen ehdotettu pipeline-järjestely sisältää vain kaksi pipeline-astetta. Tämän toisen järjestelyn • « suoritusnopeutta kasvatetaan käyttämällä CLA-pohjaisia eroitseisarvoyksiköitä. 35 Teoreettisten viivearvojen mukaan käytettävissä olevan pipeline-väliasteen opti- 22 117956 maalinen sijainti on ennen kompressointirakenteen viimeistä CSA-astetta. Näin ollen molempien pipeline-asteiden teoreettinen kombinointiviive on noin 23 τ.
Ehdotetuille 3-aste- ja 2-asterakenteille on esitetty logiikkasynteesiin perustuvat pinta-ala- ja ajoitustulokset. Synopsys Design Compiler on eräs tunnettu ASIC-5 synteesissä käytetty työkalu, ja käytettäväksi tekniikaksi voidaan olettaa 0,18 mikronin CMOS-prosessi. Ehdotettuihin arkkitehtuureihin sisältyvät summaimet on toteutettu erityisillä Synopsys DesignWare -komponenteilla. Tarkkaan ottaen RCA:t ja CLA:t on toteutettu tunnetuilla DW01 j-pl ja DW01_cla -komponenteilla. CSA:t puolestaan koostuvat 1-bittisistä DW01_rpl -summaimista. Pinta-alametriikat (so-10 lumäärä) perustuvat ekvivalentteihin 2-tulo-NAND-portteihin, kun taas viivearvot vastaavat pipeline-arkkitehtuurien kriittistä polkua. Rekisterit on myös sisällytetty viive- ja pinta-alametriikoihin.
Valittua tekniikkaa käyttäen ehdotettu 3-aste-SAD-arkkitehtuuri pystyy toimimaan 780 MHz:n taajuudella. Tämän maksimitaajuusarkkitehtuurin toteuttaminen mak-15 saa alle 5600 NAND-porttia. On selvää, että toimintataajuusvaatimuksista tinkiminen kasvattaa arkkitehtuurin pinta-alatehokkuutta. Sama arkkitehtuuri 580 MHz.n toimintataajuudella maksaa 4200 NAND-porttia. Edelleen, 380 MHz:n toimintataajuus saavutetaan arkkitehtuurilla, jolla on noin 4000 NAND-portin minimipinta-ala.
Toisaalta, ehdotettu 2-astearkkitehtuuri voidaan kellottaa 700 MHziiin 7400 NAND-20 portilla. 520 MHz:n ja 360 MHz:n toimintataajuudet puolestaan saavutetaan 4900 • · v.; ja 3900 NAND-portilla. Tutkimuksen johtopäätös on, että ehdotettu 3-astearkki- tehtuuri on suositeltava toteutus suorituskykyisille ja pinta-alatehokkaille järjestel-mille, joissa kolmen jakson latenssi on hyväksyttävissä. Ehdotettu 2-astearkki-tehtuuri puolestaan sopii paremmin pienen latenssin high-end -järjestelmille.
• * • · * :·: ; 25 Kuva 15 esittää keksinnön erään suoritusmuodon mukaista videokooderia. Tuleva • · · *··.: videosignaali 1501 viedään liikkeen estimoijalle 1502, joka suorittaa makrolohko- vertailut liikevektorien selvittämiseksi. Jälkimmäiset viedään liikkeen kompensoijal-le 1503, joka oleellisesti antaa lähtönään ao. makrolohkot aiemmasta kehyksestä, i*": johon liikevektori osoittaa. Alkuperäisen kehyksen ja liikevektorien osoittaman ke- 30 hyksen ero lasketaan summaimessa 1504, jonka lähtö siten muodostaa ennustus-**\* virheen. Ennustusvirheelle lasketaan DCT (diskreetti kosinimuunnos) -kertoimet ’ DCT-kooderilohkossa 1505, ja lasketut kertoimet kvantisoidaan kvantisoijassa j#:*: 1506. Sieltä kvantisoidut DCT-kertoimet viedään Huffman/Run-Length -kooderiin 1507, jonka lähtö muodostaa koodatun videosignaalin 1508.
* * ♦ 23 117956
Liikkeen kompensointia varten suoritetaan käänteiskvantisointi ja DCT-dekoodaus ao. lohkoissa 1509 ja 1510. Summain 1511 ja tilapäinen kehysmuisti 1512 tarvitaan syöttämään takaisinkytkentätieto asianmukaisesti liikkeen kompensoijaan 1503. Liikkeen kompensoijan 1503 lähdöstä on kytkentä summaimeen 1511. Tila-5 päisen kehysmuistin 1512 ja liikkeen estimoijan 1502 välisen kytkennän kautta jälkimmäinen saa tietoa vertailukehyksen sisällöstä.
Ohjausyksikkö 1513 ohjaa videokooderin toimintaa. Yksi ohjausyksikön 1513 päätehtävistä on tehdä päätöksiä kullekin kehykselle valittavasta koodausmuodosta: intra-koodaus (eli 'itsenäinen' tai 'itseriittoisa' koodaus) kehyksille, joita olisi vaikea 10 koodata ennustamalla muista kehyksistä, sekä inter-koodauksen eri muodot ennustettaville kehyksille. Ohjausyksikkö 1513 suorittaa myös kaikenlaisia koodaus-prosessiin vaikuttavia ohjelmisto- tai firmware-pohjaisia ohjausrutiineja. Ohjausyksikön 1513 toimintoja ei välttämättä ole toteutettu yhteen keskitettyyn piirielimeen, vaan ne voivat olla hajautetut kahteen tai useampaan hajautettuun ohjausaliyksik-15 köön.
1 '
Esillä oleva keksintö vaikuttaa pääasiassa liikkeen estimoijaan 1502, joka keksinnön suoritusmuodon mukaisessa videokooderissa käsittää edellä selostetut eroit-seisarvoyksiköt, kompressointirakenteen sekä minimi-SAD-määrittäjän. Keksinnöllä on kuitenkin vaikutusta myös ohjausyksikköön 1513, erityisesti jos käytetään 20 edellä kuviin 12 ja 13 liittyen selostettuja ennenaikaisen lopetuksen kriteerejä. Yk-v\: sinkertaiset aikapohjaiset ohjaussignaalit, kuten CMPR, INIT ja ZERO_SAD voi- :Y: vat tulla liikkeen estimoijaan 1502 sisältyvältä ajastinyksiköltä, tai ne voivat olla oh- :*·*: jausyksikön 1513 liikkeen estimoijalle 1502 osoitettuja lähtöjä. Parametriarvot, jot- • · .·**. ka voivat myös olla ohjelmoitavia, kuten TH ja -ZERO_BONUS, tulevat tyypillisesti : 25 ohjausyksiköltä 1513 tai ohjausyksikön 1513 ohjaamilta rekistereiltä. ' • · · * • ♦ · · • · ·
Lähdöt SAD_RDY, MIN_RDY, SAD_EXC, TH_EXC ja MIN_SAD ohjataan edullisimmin liikkeen estimoijalta 1502 ohjausyksikköön 1513, joka tekee ohjauspäätök-J.j.i siä mainittujen lähtöjen arvojen perusteella. Esimerkiksi aktivoitunut SAD_EXC
-lähtöbitti ilmaisee ohjausyksikölle 1513, että nykyinen laskettu SAD on jo ylittänyt 30 aiemmin lasketun minimi-SAD:n, joten ohjausyksikkö 1513 voi käskeä liikkeen es-**’. timoijan 1502 lopettamaan laskennan ennen aikojaan ja siirtymään laskemaan seuraava SAD-arvoa. Ohjausyksikkö 1513 voi olla myös ohjelmoitu tarkkailemaan ··*· liikkeen estimoijalta 1502 vastaanottamiaan MIN SAD -arvoja, jolloin esimerkiksi ! inter/intra-koodauspäätökset perustuvat sille, ovatko SAD-minimiarvot tiettyjen ra-35 jojen sisällä vai eivät. Alan ammattimies pystyy esittämään ohjausyksikön 1513 rakenteen ja toiminnan edellä esitettyjen selitysten perusteella.
24 117956
On huomattava, että edellä esitetty selitys sisältää havainnollistavia esimerkkejä, jotka eivät rajoita keksinnön sovellettavuutta. Keksintö ei esimerkiksi mitenkään rajoitu vain peräkkäisten kuvakehysten kahden makrolohkon 16 pikselin vertailuun. Samanaikaisesti vertailtavien pikselien lukumäärä voi olla jokin muu, vertailtavilla 5 kehyksillä voi olla jokin muu suhde kuin peräkkäisyys, ja "pikselit" voivat olla jotakin muuta kuin kaksiulotteisen graafisen esityksen alkio-osia. Yksinkertaisena yleistyksenä voidaan sanoa, että nimitys "makrolohko" voidaan korvata nimityksellä "säännöllinen joukko monibittiarvoja", jolloin keksintö on sovellettavissa kaikenlaisiin tapauksiin, joissa on tarkoituksena selvittää, missä määrin samanlainen jo-10 kiri sellainen säännöllinen joukko on toisen kanssa. Käsitteen "pikseli" voidaan ymmärtää kuvaavan dimensiotonta entiteettiä, kuten digitaalisen äänisignaalin näytettä, jota verrataan toiseen digitaaliseen äänisignaaliin, tai kolmi- tai useampiulotteista entiteettiä, kuten "vokselia" eli "tilavuuspikseliä", joka on kolmiulotteisten digitaalisten kuvien atominen rakenneosa. Pikseliarvot kuvakehyksissä ovat aina 15 positiivisia, mitä voidaan pitää postulaattina kuvankäsittelysovelluksessa; jos ehdotettua ratkaisua sovellettaisiin johonkin muuhun tarkoitukseen, missä vertailtavien arvojen etumerkki voisi vaihdella, tarvittaisiin jotakin esiprosessointia oikean toiminnan varmistamiseksi.
• w • · 1 • 1 · * ·
• I
• I » * · · • · • · « * · • · • · 1 • · · *·· • · • · · • » · * · 1 1 • · · • · ·««
• · I
• · · • 1 1 • · · • · • « • 1 · * · * · ··· • · · 1 · • · • · · • « I ··· ♦ · .;' • · 1

Claims (19)

117956 25
1. Piiri erojen itseisarvojen summan, jäljempänä SAD-arvon, laskemiseksi kahdelle säännölliselle monibittisten arvojen joukolle, johon piiriin kuuluu: - joukko eroitseisarvoyksiköitä (602), joista kukin on kytketty vastaanottamaan yksi 5 monibittinen arvo kustakin kahdesta säännöllisestä monibittisten arvojen joukosta ja järjestetty muodostamaan lähtönään kahden monibittisen arvon korjaamaton eroitseisarvo ja korjausbittiarvo, joka ilmoittaa korjauksen korjaamattomaan eroit-seisarvoon, - kompressointirakenne (611), joka on kytketty vastaanottamaan korjaamattomia 10 eroitseisarvoja ja indikaatioita korjausbittiarvoista eroitseisarvoyksiköiltä (602) ja järjestetty muodostamaan summavektori ja muistinumerovektori, jotka yhdessä edustavat eroitseisarvoyksiköiden lähtöjen summaa; tunnettu siitä, että kompressointirakenteeseen (611) kuuluu: - pääkompressointipuu (612), joka on kytketty vastaanottamaan korjaamattomia 15 eroitseisarvoja eroitseisarvoyksiköiltä (602), ja johon pääkompressointipuuhun (612) kuuluu joukko toisiinsa kytkettyjä summaimia ja joka on järjestetty kompressoimaan ensimmäinen määrä tuloarvoja toiseksi määräksi lähtöarvoja, ja - korjauspuu (613), joka on kytketty vastaanottamaan indikaatioita korjausbittiarvoista eroitseisarvoyksiköiltä (602), ja johon korjauspuuhun (613) kuuluu joukko 20 toisiinsa kytkettyjä summaimia ja joka on järjestetty kompressoimaan kolmas mää- . . rä tuloarvoja neljänneksi määräksi lähtöarvoja, ja joka korjauspuu (613) on kytketty • · · V;' antamaan lähtöarvonsa mainitun pääkompressointipuun (612) summaimille. • · · * λ m • *
2. Patenttivaatimuksen 1 mukainen piiri, tunnettu siitä, että mainitun pääkom- • * .·*·. pressointipuun (612) mainittujen summaimien väliset kytkennät muodostavat ta- «·* : .·. 25 soista koostuvan kokoonpanon niin, että ensimmäisen tason summaimet on kyt- ketty vastaanottamaan vähintään osa mainitun pääkompressointipuun (612) maini- • · tuista tuloarvoista, viimeisen tason summaimet on kytketty antamaan ainakin osa , mainitun pääkompressointipuun (612) mainituista lähtöarvoista, ja toisen ja sitä • · · '"·* seuraavien tasojen summaimilla on tuloja, jotka on kytketty edeltävien tasojen 30 summainten lähtöihin.
* · · * · *"\ 3. Patenttivaatimuksen 2 mukainen piiri, tunnettu siitä, että: • tl*· - mainitun pääkompressointipuun (612) mainittuun ensimmäiseen tasoon kuuluu t#:‘: kuusi summainta, mainittuun toiseen tasoon kuuluu neljä summainta, kolmanteen tasoon kuuluu kolme summainta, neljänteen tasoon kuuluu kaksi summainta, vii- • » · 35 denteen tasoon kuuluu yksi summain ja kuudenteen tasoon, joka on mainittu viimeinen taso, kuuluu kaksi summainta, 26 1 1 7 9 5 6 - kuhunkin mainituista pääkompressointipuun (612) summaimista kuuluu kolme tuloa, muistinumerolähtö ja summalähtö, *j - mainitun korjauspuun (613) mainitut summaimet muodostavat tasoista koostuvan kokoonpanon niin, että ensimmäisen tason summaimet on kytketty vastaanotta- 5 maan vähintään osa mainitun korjauspuun (612) mainituista tuloarvoista ja toisen ja sitä seuraavien tasojen summaimilla on tuloja, jotka on kytketty edeltävien tasojen summainten lähtöihin, - mainitun korjauspuun (613) mainittuun ensimmäiseen tasoon kuuluu kaksi sum-mainta, joista kummallakin on kolme tuloa, muistinumerolähtö ja summalähtö, 10. mainitun korjauspuun (613) toiseen tasoon kuuluu kaksi summainta, joista toisel la on kaksi tuloa, muistinumerolähtö ja summalähtö, ja toisella on kolme tuloa, muistinumerolähtö ja summalähtö, - mainitun korjauspuun (613) kolmanteen tasoon kuuluu yksi summain, jolla on kolme tuloa, muistinumerolähtö ja summalähtö, ja 15. mainittujen pääkompressointipuun ja korjauspuun mainitut summaimet on kytket ty toisiinsa kuvien 8 ja 9 esittämällä tavalla.
4. Patenttivaatimuksen 3 mukainen piiri, tunnettu siitä, että mainitun pääkompressointipuun ja mainitun korjauspuun mainitut summaimet ovat carry save -tyyppisiä summaimia. •'il
5. ZERO_SAD -tulo, joka on järjestetty välittämään indikaatio siitä, edustavatko summa- ja muistinumerovektorit mainituissa summa- ja muistinumerovektoritulois-sa SAD-arvoa, joka liittyy kahteen säännölliseen joukkoon monibittisiä arvoja, joihin ei liity suhteellista liikettä kehyksessä, ja - minimi-SAD-arvoon liittyvä lähtörekisteri (1201), joka on kytketty vastaanotta-10 maan ja lähettämään indikaatio, kun mainitun ensimmäisen summaimen (1104) mainittu yksibittinen lähtö ilmaisee mainittujen pääkompressointipuulta (612) saatujen ensimmäisen ja toisen lähtöarvon edustaman SAD-arvon olevan suurempi kuin mainittu aiemmin löydetty minimi-SAD-arvo hetkellä, jolloin summa- ja muistinumerovektorit mainituissa summa- ja muistinumerotuloissa eivät edusta SAD-15 arvoa, joka liittyy kahteen säännölliseen joukkoon monibittisiä arvoja, joihin ei liity suhteellista liikettä kehyksessä, joka hetki on muu kuin ilmoitettu sopiva vertailu-hetki.
5. Patenttivaatimuksen 1 mukainen piiri, tunnettu siitä, että korjausbittiarvot :.v kustakin kahden vierekkäisen eroitseisarvoyksikön (602) muodostamasta parista iV: kumuloidaan korjausbittivektoriin ennen niiden viemistä kompressointirakentee- :***: seen (611), jolloin indikaatiot korjausbittiarvoista, jotka kytketään eroitseisarvoyk- siköiltä (602) kompressointirakenteeseen (611), ovat mainittuja korjausbittivekto- ·»* : .·. 25 reita. » · i «M
· ·«« :··.** 6. Patenttivaatimuksen 5 mukainen piiri, tunnettu siitä, että siihen kuuluu puo- lisummain (721) jokaista vierekkäisten eroitseisarvoyksiköiden (602) muodosta- i.*V maa Par*a kohti, joka puolisummain (721) on kytketty vastaanottamaan mainittuja korjausbittiarvoja ja järjestetty muuttamaan mainitut korjausbittiarvot mainituksi y.30 korjausbittivektoriksi. * · ·*·
7. Patenttivaatimuksen 1 mukainen piiri, tunnettu siitä, että kuhunkin mainit-; tuun eroitseisarvoyksikköön kuuluu: ]···] - summain (701,711), jolla on suora tulo yhdelle monibittiselle operandille ja inver- • · *** toiva tulo toiselle monibittiselle operandille ja summalähtö, jolla on yhtä monta bit- 35 tiä kuin on bittejä mainituissa monibittisissä operandeissa, 27 1 1 7956 - muistinumerolähtö, joka on järjestetty muodostamaan bittiarvo "1", jos mainittuun suoraan tuloon tuotu operandi oli suurempi kuin operandi, joka tuotiin mainittuun invertoivaan tuloon, ja bittiarvo ”0" muussa tapauksessa, ja - yhtä monta XOR-porttia (702, 712) kuin on bittejä mainitussa summalähdössä, 5 joista kullakin XOR-portilla (702,712) on yksi tulo, joka on kytketty vastaanottamaan mainitun summalähdön yksi bitti, ja toinen tulo, joka on kytketty vastaanottamaan mainitun muistinumerolähdön invertoitu arvo.
8. Patenttivaatimuksen 1 mukainen piiri, tunnettu siitä, että siihen kuuluu mini- mi-SAD-määrittäjä (621), joka on kytketty vastaanottamaan mainitussa kompres-10 sointirakenteessa (611) muodostettuja SAD-arvoja ja järjestetty vertaamaan joukkoa peräkkäin laskettuja SAD-arvoja niistä pienimmän löytämiseksi.
9. Patenttivaatimuksen 8 mukainen piiri, tunnettu siitä, että mainittuun minimi-SAD-määrittäjään (621) kuuluu: - rekisteri (1108), joka on järjestetty tallentamaan aiemmin löydetty minimi-SAD-15 arvo, - summavektoritulo ja muistinumerovektoritulo, jotka on kytketty vastaanottamaan ensimmäinen lähtöarvo ja toinen lähtöarvo mainitulta pääkompressointipuulta (612), - carry save -summaln (1102), jolla on kolme tuloa, joista yksi on kytketty vastaan-20 ottamaan summavektori mainitun summavektoritulon kautta, yksi on kytketty vas- ·*,·*.: taanottamaan muistinumerovektori mainitun muistinumerovektoritulon kautta ja : Y: yksi on kytketty vastaanottamaan mainitun aiemmin löydetyn minimi-SAD.n inver- toitu arvo, ja jolla carry save -summaimella (1102) on summalähtö ja muistinume- * · .**·. rolähtö, : ,·. 25 - ensimmäinen summain (1104), joka on kytketty vastaanottamaan operandeja **·*.* mainitun carry save -summaimen (1102) mainituilta summa- ja muistinumeroläh- • * *** döiltä ja jolla on yksibittinen lähtö, joka on järjestetty ilmaisemaan mainittujen ope- . randien summaamisen avulla, oliko pääkompressointipuulta (612) saatujen mainit- • · · tujen ensimmäisen ja toisen lähtöarvon edustama SAD-arvo pienempi kuin aiem-30 min löydetty minimi-SAD-arvo, ·***: - logiikkaporttien järjestely (1105, 1106), joka on järjestetty muodostamaan indi- • · · kaatio, kun mainitun ensimmäisen summaimen (1104) mainittu yksibittinen lähtö ilmaisee mainittujen pääkompressointipuulta (612) saatujen ensimmäisen ja toisen •·ϊ · lähtöarvon edustaman SAD-arvon olevan pienempi kuin mainittu aiemmin löydetty 35 minimi-SAD-arvo ilmoitetulla sopivalla vertailuhetkellä, 28 117956 - toinen summain (1107), joka on järjestetty laskemaan SAD-arvo mainituista summa- ja muistinumerovektoreista, - multiplekseri (1109), joka on kytketty vastaanottamaan mainittu indikaatio mainitulta logiikkaporttien järjestelyltä (1105, 1106) ja reagoimaan aktiiviseen indikaati- 5 oon tallentamalla mainitun toisen summaimen (1107) laskema SAD-arvo mainittuun rekisteriin (1108) ja aktiivisen indikaation puuttumiseen tallentamalla mainittu aiemmin löydetty minimi-SAD-arvo uudestaan mainittuun rekisteriin (1108).
10. ZERO_SAD -tulo, joka on järjestetty välittämään indikaatio siitä, liittyvätkö sum ma- ja muistinumerovektorit mainituissa summa- ja muistinumerovektorituloissa SAD-arvoon, joka liittyy kahteen säännölliseen joukkoon monibittisiä arvoja, joihin ei liity suhteellista liikettä kehyksessä, ja - bonustulo ja loogisten porttien muodostama aktivointijärjestely (1207), joka rea-15 goi indikaatioon mainitussa ZERO_SAD -tulossa aktivoimalla bonusarvon sisällyttämisen mainitun bonustulon kautta SAD-arvon laskemiseen, joka SAD-arvo liittyy kahteen säännölliseen joukkoon monibittisiä arvoja, joihin ei liity suhteellista liikettä kehyksessä.
10. Patenttivaatimuksen 9 mukainen piiri, tunnettu siitä, että mainittuun minimi-SAD-määrittäjään (621) kuuluu:
11. Patenttivaatimuksen 9 mukainen piiri, tunnettu siitä, että mainittuun minimi-
20 SAD-määrittäjään (621) kuuluu: - kynnysarvotko, joka on kytketty vastaanottamaan kynnysarvo, :Y: - valintamultiplekseri (1203), joka on järjestetty ohjattavasti korvaamaan aiemmin löydetyn minimi-SAD-arvon kytkentä kynnysarvon kytkemisellä mainitun kynnysar- • · .·*·, votulon kautta mainitun carry save -summaimen (1102) tuloon, ja 25. kynnysarvoon liittyvä lähtörekisteri (1206), joka on kytketty vastaanottamaan ja » « · lähettämään indikaatio, kun mainitun ensimmäisen summaimen (1104) mainittu *’* yksibittinen lähtö ilmaisee mainittujen pääkompressointipuulta (612) saatujen en simmäisen ja toisen lähtöarvon edustaman SAD-arvon olevan suurempi kuin mai- • · · *·ί·* nittu kynnysarvo. • · • · *·*
12. Patenttivaatimuksen 11 mukainen piiri, tunnettu siitä, että: '···,' - mainittuun minimi-SAD-määrittäjään (621) kuuluu ZERO_SAD -tulo, joka on jär- *t * jestetty välittämään indikaatio siitä, edustavatko summa- ja muistinumerovektorit • mainituissa summa- ja muistinumerovektorituloissa SAD-arvoa, joka liittyy kahteen • « · « .·*·. säännölliseen joukkoon monibittisiä arvoja, joihin ei liity suhteellista liikettä kehyk- 35 sessä, ja 29 117956 - mainittu valintamultiplekseri (1203) reagoi indikaatioon mainitussa ZERO_SAD -tulossa.
13. Patenttivaatimuksen 9 mukainen piiri, tunnettu siitä, että mainittuun minimi-SAD-määrittäjään (621) kuuluu:
14. Digitaalinen videokooderi digitaalisen videosignaalin koodaamiseksi, tunnettu siitä, että siihen kuuluu patenttivaatimuksen 1 mukainen piiri.
15. Menetelmä erojen itseisarvojen summan, jäljempänä SAD-arvon, laskemi- seksi kahdelle säännölliselle monibittisten arvojen joukolle, jossa menetelmässä: • ♦ · .11' - lasketaan (602) toisiaan vastaavista kohdista mainituista kahdesta säännöllisestä joukosta pareittain otettujen monibittisten arvojen eroja, muodostaen näin korjaa- • # /··* mattomia eroitseisarvoja ja korjausbittejä, ja ‘y ·* 25 - kompressoidaan (611) lasketut korjaamattomat eroitseisarvot ja korjausbitit SAD- arvoksi; tunnettu siitä, että siinä: i'1'i - osana mainittua kompressointia (611) kompressoidaan (613) korjausbitit aluksi erillään korjaamattomien eroitseisarvojen kompressoinnista (612) ja syötetään 30 kompressoidut korjausbitit tiettyihin kohtiin eroitseisarvojen kompressoinnin (612) '*\ käsittävässä pääprosessissa.
♦ · • /. 16. Patenttivaatimuksen 15 mukainen menetelmä, tunnettu siitä, että siinä ote- ♦ * · taan korjausbitit kahden vierekkäisen eroitseisarvon laskennasta (602) ja kumuloi-“* daan (721) mainitut korjausbitit korjausbittivektoriin ennen niiden viemistä korjaus- 35 bittien kompressointiin (613). 30 117956
17. Patenttivaatimuksen 15 mukainen menetelmä, tunnettu siitä, että siinä vertaillaan joukkoa peräkkäin laskettuja SAD-arvoja niistä pienimmän löytämiseksi.
18. Patenttivaatimuksen 17 mukainen menetelmä, tunnettu siitä, että siinä suositaan SAD-arvoa, joka liittyy kahteen säännölliseen joukkoon monibittisiä arvoja, 5 joihin ei liity suhteellista liikettä kehyksessä.
19. Patenttivaatimuksen 17 mukainen menetelmä, tunnettu siitä, että siinä verrataan SAD-arvoa, joka liittyy kahteen säännölliseen joukkoon monibittisiä arvoja, joihin ei liity suhteellista liikettä kehyksessä, kynnysarvoon ja tehdään päätöksiä jatkotoiminnasta sen mukaisesti, onko mainittu SAD-arvo pienempi vai suurempi 10 kuin mainittu kynnysarvo. 15
FI20050388A 2005-04-15 2005-04-15 Piiri ja menetelmä erojen itseisarvojen summan laskemiseksi nopeasti ja tehokkaasti FI117956B (fi)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FI20050388A FI117956B (fi) 2005-04-15 2005-04-15 Piiri ja menetelmä erojen itseisarvojen summan laskemiseksi nopeasti ja tehokkaasti
PCT/FI2006/000117 WO2006108912A1 (en) 2005-04-15 2006-04-13 Circuit and method for computing a sum of absolute differences fast and effectively

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FI20050388 2005-04-15
FI20050388A FI117956B (fi) 2005-04-15 2005-04-15 Piiri ja menetelmä erojen itseisarvojen summan laskemiseksi nopeasti ja tehokkaasti

Publications (3)

Publication Number Publication Date
FI20050388A0 FI20050388A0 (fi) 2005-04-15
FI20050388A FI20050388A (fi) 2006-10-16
FI117956B true FI117956B (fi) 2007-04-30

Family

ID=34508086

Family Applications (1)

Application Number Title Priority Date Filing Date
FI20050388A FI117956B (fi) 2005-04-15 2005-04-15 Piiri ja menetelmä erojen itseisarvojen summan laskemiseksi nopeasti ja tehokkaasti

Country Status (2)

Country Link
FI (1) FI117956B (fi)
WO (1) WO2006108912A1 (fi)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9658829B2 (en) * 2009-10-19 2017-05-23 Intel Corporation Near optimal configurable adder tree for arbitrary shaped 2D block sum of absolute differences (SAD) calculation engine

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5864372A (en) * 1996-12-10 1999-01-26 United Microelectronics Corporation Apparatus for implementing a block matching algorithm for motion estimation in video image processing
US5838392A (en) * 1998-03-19 1998-11-17 United Microelectronics Corp. Adaptive block-matching motion estimator with a compression array for use in a video coding system
FI110909B (fi) * 2001-09-06 2003-04-15 Nokia Corp Menetelmä liike-estimoinnin suorittamiseksi videokoodauksessa, videokoodausjärjestelmä sekä videokoodauslaite
FI110744B (fi) * 2001-09-06 2003-03-14 Nokia Corp Menetelmä liike-estimoinnin suorittamiseksi videokoodauksessa, videokoodausjärjestelmä sekä videokoodauslaite

Also Published As

Publication number Publication date
WO2006108912A1 (en) 2006-10-19
FI20050388A (fi) 2006-10-16
FI20050388A0 (fi) 2005-04-15

Similar Documents

Publication Publication Date Title
TWI395488B (zh) 具有可程式核心之視訊處理單元
WO2007049150A2 (en) Architecture for microprocessor-based systems including simd processing unit and associated systems and methods
WO2006063260A2 (en) Digital signal processing structure for decoding multiple video standards
US6574651B1 (en) Method and apparatus for arithmetic operation on vectored data
FI110909B (fi) Menetelmä liike-estimoinnin suorittamiseksi videokoodauksessa, videokoodausjärjestelmä sekä videokoodauslaite
US7274825B1 (en) Image matching using pixel-depth reduction before image comparison
US20240037700A1 (en) Apparatus and method for efficient motion estimation
FI117956B (fi) Piiri ja menetelmä erojen itseisarvojen summan laskemiseksi nopeasti ja tehokkaasti
Kim et al. ASIP approach for implementation of H. 264/AVC
KR20010072420A (ko) 이미지 프로세싱 동안에 2차원 변환을 실행하기 위한 회로및 방법
US20040193847A1 (en) Intra-register subword-add instructions
US7869516B2 (en) Motion estimation using bit-wise block comparisons for video compresssion
US20040249474A1 (en) Compare-plus-tally instructions
KR100898401B1 (ko) 비디오 복호화기의 역양자화/역 이산 코사인 변환 장치
Golston et al. C64x VelociTI. 2 extensions support media-rich broadband infrastructure and image analysis systems
Shengfa et al. Instruction-level optimization of H. 264 encoder using SIMD instructions
Chen et al. An adaptive DSP processor for high-efficiency computing MPEG-4 video encoder
Sihvo et al. H. 264/AVC interpolation optimization
Wei et al. Realization and optimization of DSP based H. 264 encoder
Dias et al. Reconfigurable architectures and processors for real-time video motion estimation
Zandonai et al. An architecture for MPEG motion estimation
Bolton et al. A VLIW processor-based audio/video codec for consumer applications
Roma et al. A New VLSI Architecture for Full Search Block Matching
Su et al. A high-efficient software parallel CAVCL encoder based on GPU
Choi et al. Memory Access Reduced Software Implementation of H. 264/AVC Sub-pixel Motion Estimation Using Differential Data Encoding

Legal Events

Date Code Title Description
FG Patent granted

Ref document number: 117956

Country of ref document: FI

MM Patent lapsed