B I o ckma tchin g
Transcription
B I o ckma tchin g
- 5tJ- 6 Array-Architekturen für den BI ockmatching-Al gori thmus Der dem Blockmatchingmit der vollständigenSucheinhärenteParallelismus zwischenden bildpunkfttrientiertenOperationenerlaubt eine Verteilungder Operationenauf regulärvernetzte Processing-Elemente (PEs).ArchitekturendieserArt werdenilt der Literaturalszneidimensionales Prttzessorf'eld oder Array bzw. im eindimensionalenFäll auch als Prozessor-Reihe bezeichnet[4-51[63]. Die Operationsausführung erfolgt in einer Kombinationaus Pipeliningund Parallelverarbeitung. In systolischen Arrayswerdenmit jedem SystemtaktDaten in die Register zwischenden PEs geschrieben, von wo sie über die lokalen Kommunikationsverbindungen den benachbartenPEs zur Verfügung stehen.Damit auch PEs am Rand des Arrays mit jedem Systemtaktneue Daten erhalten kiinnen. sind wie in Bild 20 dargestelltspeziellan clasArray angepaßtelokale Speichervorzusehen. l o ka l e r Speicher krkaler Speicher Bild 20: tslockschaltbild einerArrav-Architekturnrit lokalenSpeichern Für die Realisierungeiner Array-Architektur auf einem Chip mit einer geringenAnzahl von Kontakten (Pins)ist es zweckmäßig,die lokalen Speicherund das Array gemeinsamauf clem Chip anzuttrdnen.Daher ist im Rahmeneinessogenannten Space-'fime-Mapping-Vertahrens bei der Abbildung einesAlgorithmusauf eine Architektr.rrdafür zu sorgen.daß die PE-Anzahl des Arrays nicht zu groß ist und die Leistungstähigkeit dennochausreicht.Die Dimensionder Arrays und die Anzahl der PEs richten sich entsprechenddem in Kapitel 4.4 beschriebenen Vorgehennach der Zeiteinteilungs- und Projektionsprozedur.Dementsprechendunterschiedlich fällt die Komplexität der Arrays aus,die sich durch dasFläche-Zeit-Prctdukt charakterisieren läßt (4.9).Im nächstenKapitelwerdendahercharakteristische Typender Alrays diskutierr. die sich durch eine mehrfach durchgeführtelineare T.eiteinteilungs-und Projektionsprozedur e r g e b e nu n d a l s G r u n d l a g ef ü r t s e i s p i e l veo n e i n - u n d z w e i d i m e n s i o n a l eAn l r a y s d i e n e n .D i e - 59- B e i s p i e l ew e r d e n d u r c h i h r e P E - A n z a h l . d i e A n z a h l d e r S y s t e m t a k t ep r o B i l d p u n k t u n d d i e EEttizienz verglichen.Anschließendwerden Maßnahmen zur Steigerungder Effizienz,Miigl i c h k e i t e n d e r S t e u e r u n gd e r A r r a y s u n d d i e A r t d e r l o k a l e n S p e i c h e rd i s k u t i e r t . 6.I Basistypenvon ein- und zweidimensionalenArrays für das Blockmatching Es kann wie bei den Multiprozessorarchitekturen in Kapitel -5.Iauch davon ausgegangen werden. daß das Blockmatchingtür eine Folge von Bildsegmentenin Zellen ausgeführtwird. Dementsprechend ist auchhier von einerZuorclnungder Arrayszu einerFolgevon Bildsegmenten auszugehen.Die Eigenschaftenhinsichtlich Kommunikation, Speicherkapazitäten und arithmetischemTbil auf der Ebene von Bildsegmentengleichenauch bei Array-Architekturen denender Multiprozessorarchitektur ausKapitel 5. Im Gegensatzdazuist aber mit unterschiecilichen Architektur-Konzeptenauf der Ebene einesSuchbereiches zu rechnen.Das systematischeVttrgehenbei der Abbildungvom Blockmatchingauf die Array-Architekturenbeginnthier deshalbmit einer Partitionierungder Aufgabenstellung in die Tbile,die sich mit jedem Suchber e i c h w i e d e r h o l e n I. n d e n G l e i c h u n g e n ( 2 . 1 1u) n d ( 2 . 1 3 )s i n d d j e O p e r a t i o n e nd e s B l o c k m a t chingsfür einenSuchbereichspezitiziert.Da in diesenGleichungendie vier Indizes i, k. m und ri vorkommen, ist der entsprechendeAbhängigkeitsgraph(DG) des Blockmatchingsin einern vi erdi mensionalen (4-D) i,k,m.n-lndexraum aufgespannt. Die mehrfäch durchgeführtelineare Zeitetnteilungs-und Projektionsprozedurentlang den i-. k-, n- oder m-Achsen führt zu 2-D und 1-D Arrays. deren PE-Anzahl sich nach cler BfockgrößeN und der AnzahI Q der Kandidatenbliickein einer Zeile bzw. SpaltedesSuchbereiches.Pro Suchbereichsind bei der vollständigenSucheQ2 OperationenM und S auszuführen (Tabelle13). Mit jeweilsN2 OperationenD. B und A pro Kandiclatenblock ergebensich clann pro SuchbereichinsgesamtQ2'Nz Operationen D, I] unclA (3.17).Wegen der unveränderlichenOperationentblgenM-SundD-B-AführtdieAbbildungimmeraufgleichartigsrrukrurierte PEs für diese Folgen.Diese PEs werden hier als PEs vonr Typ AD und MS bezeichnet ( B i r d2 1 ) . D ( i- l . k . m . n ) PE,AD P E ,M S dl'(m,n) sp(i,k) s5 (i+ m ,k' t n) mdl.(m,n) vQn,n) D(i,k,m,n)+ sQi m,k + n)) .f(sa(i,k)-s Bild2l: Prrrcessing-Elernente AD undMS 1'ürdieOperationen aus Täbelle r3 mcff'(m-l,n) v(m-1,n) - {d)- Durch die Zeiteinteilungs- und Projektionsprozedurentstehen aus dem 4-D DG mehrere 3-D SFGs jm i,k,m-, i,k,n-. i,nt,n- ctderk,m,n-Indexraum.Die 3-D SFGs bestehenaus Q ' N2 Knoten AD oder Q2'X Knoten AD (Tabelle1t3).Aus den 3-D SFGs wiederum ergebensich 'lyp Arrays mit Kombinationen ausQ2,B oder einem PE vom MS bzw. ,V2.N oclereinem PH vom T;p AD. Die systematische Abbildung des Blockmatchings auf Array-Architekturenist in Anhang F mathematischfundiert dargestellt. Die [-eistungsfähigkeit einesArrays verhält sich umgekehrtproportionalzu der Ausführungszeit pro Bildpunkt tpp(P)(4.7X5.5)bzw. entsprechend (4.2)proportionalzu der Anzahl der Systemtaktepro Bildpunkt cpp(P)und der Dauer 7'des Systemtaktes. Unter Annahme einer gleichen Systemtaktperiode für alle Arrays reicht es, die l-eistungsfähigkeit der Arrays durch die Anzahl der Sysfemtakteprc Bildpunkt zu bewerten.Mit (5.5),(5.6) und (5.7) gilt dann t'pIt (pa r r pM.s) : maxlcpp(pt t t). t 1tp (p1a.y1l mlt : cPP@a,i) ## und , : t'pp\pus) : (*) t,,,=,, Q2::;,: (_C_) ;;:!F: \;;;.fr/ (6.1 ) lr,,=n Für die meistenBlockmatching-Algorithmengilt der Fall SP2: Ä/2(AnhangA).Nach (5.tt)werd e n e r s t b e i n a p : N 2 ' n y 5 a l l e P E s k o n t i n u i e r l i c hg e n u t z t .M i t d i e s e rB e c l i n g u n g e r g i b ts i c h dann c'ppQtan,pus):cpp(pao): cpp(p1ts)in Thbelle 18. neo Q2'Nz NMS Dimension cPP(Pan,Pus) 4 I lN2 Q2 -) lo'tx1 ',,:',:t:,:.'#l;:;:',:', Ee'l#1",,', Q 2 't v Q. N2 a O a -) Basistyp IIN Q INZ :|f,Offi\',',: e,,:,:1.,:N .aN.......,., :,;.:',fr ',:,,,,,,,:::,:;:,, F:nwl t,:,;,:,:,,,Q,.,,,.,:,:,: ,',',':";fit'*:';,:':,;,.:,;.,t,,,1;L;,1,1,,,,,',.,';,': 92ffi:.:,::' NN,,.....,.. fl,/m :.:.:.:.ru:...;'. I It tn'1 Qty'.l*{:1,:',,':: ii,;.N;:i.':,.l1,... Q2 Tabelle l8: Mögliche Kombinationen der Anzahlen nMS und n4p der I'Es AD und MS nach (5.8), Dimensirut d.es SFG, Anzahl der Systemtaktc pro Bildpunkt c:ppQt4p,1t14.5) tür SPt:Nr und Bezeichnunsendei Basistyperfvon ein- unci zweidimensionalen Arravs Da für einen Entwurf ausschließlich ein- und zweidimensionale Arrays interessieren, werclen nur die fünf in Täbelle 1B gesonderthervorgehobenenI3asistypen in clerweiteren Diskussion - bt- berücksichtigt. Zur Bewertung der Komplexität ist in Bild 22 die Anzahl der Systemtakte cPP(Pen,pu.5) der ein- und zweidimensionalenflasistypenüber cler PE-Anzahl nall für N: 16 und drei unterschiedlichgroßen maximalen Displacementsp dargestellt(p: N12:O:t3. p : N: Q: 76, p : 2' N: Q:32). Hiermit ergeben sich tiir jeden Arraytypen drei charakteristische Punkte.Diese durch gleichartiggestricheltel,inien verbundenencharakteristischenPunkte gehüren gemeinsamzu einem der llasistypenN, Q. NN. QN oder QQ. In Analogie zu dem Fläche-Zeit-Produkt von (4.9) haben Arrays mit dem gleichen Produkt von PE-Anzahl und Ausführungszeitdie gleicheKomplexität.I-iniengleicherKomplexitätsind in Btld 22 strichpunktiertdargestellt. c'PP(PAD,PMS) 64 \\ (]IF o=32 CCIR_I'V NN o:l\ Q: B HDTV a\ 16 32 64 128 256 512 1024 t'r,.1D Bild 22: Anzahld_erSystemtattepro Displacemenwektor über der PE-Anzahl lpp|)Ar),pM5.) n4p derPnrcessing-Elemente AD nach(6.1)(SP2: M; ttir N: lf'. dreiunterschiedlicheAnzahlenvon Kandidatenblocken in einerBlockzeile Q sowiedie oberenGrenzendermaximalzulässiqen Anzahlder Systenrtakte pro Bildpunktfür ein Bildtelefirn_ signal(CIF).ein Fernschsignal (CCIR-TV)und ein HDTV-Signalbei 7':20 ns Die durch schratTierteIlalken gekennzeichnetenGrenzen in Bild 22kennzeichnencliemaximal zufässigeAnzahl von Systemtakten pro Bildpunktcpp(P)< Tt,lT nach(4.2)für ein Bilcltelefon-. ein Fernseh-und ein HDTV-signal bei f :20 ns.Demnachreichendie einciimensionalen Basistypenfür Rildtelefon- und Fernsehsignale aus.Für HD'l'V-signale sinclnur cliezweiclimensisnalen Arrays geeignet. Die charakteristischen Punkte in Bild 22 stellenallerdingsnur clieic]ealenFällec1ar.bei clenen die Array-Architekturen mit einer EffizienzvonE : l00o/r,genutztwerden. Diesesist allerclings - 6?.- nicht mtiglich.soferndas Array eine Lade- und lrntladezeiterfordert,in der nicht auswertbare C)perandenkombinationen in den PEs au{'einandertrefl'en. Die Lade- und Entladezeiteneiner Array-Architektur mit taktsynchronem Datentransf'errichten sich nach der Länge der Pipefines.Bei E < 100%,(4.8) steigtdie Ausführungszeit pro Bildpunkttpp(P):cpp(P). T nach(4.2) um l lll bzw. in Bild 22 verschiebensich die Punkte um llE nach oben. Nach (4.3). (4.ft) und (6.1) ergibt sich die Effizienzaus dem Verhältnisder theoretischerreichbarenAnzahl von Systemtaktenzu der tatsächlichbeniitigtenAnzahl von Systemtaktenpnr Bildpunkt: E : S : P tPP@,qn,pms)_ cpp(pAD. pMS) rpp(P) cpp(P) (6.1) Die Auswirkungder mehrfächdurchgeführtenlinearenZeiteinteilungs-und Projektionsprozedur im Zuge der systematischenAbbildung auf die Eflizienz, die Anzahl der Systemtaktcpro Bildpunkt und die PE-Anzahl läßt sichbesondersanschaulich für die ArraysQQ. an tseispielen QN. Q, NN und N aus Thbelle 18 diskutieren. In den nun tolgenden Kapiteln werden verschiedeneAlternativenvon SFGs ein- und zweidimensionaler Arrays gezeigt. 6.2 Beispielevon Arrays für das Blockmatching Um die verschiedenenArray-Typenzu unterscheiden, richtetsichihre Bezeichnungnebender in'llabelle 1tt gewählten Form auch nach der Projektionsrichtung.Als Grundlage für die Beispielewird hier von 3-D SFGs im i,k,m- und im i,m,n-lnrJexraumausgcgangen. die dur.ch eine Projektionentlangder n- bzw. der k-Achse entstehen(sieheauch AnhangF). t)ieseSI--Gs "n" "k". erhalten die Bezeichnung bzw. Durch Anhängender weiterenProjektionsrichtungen ergebensich die übrigen Namen der ein- und zweidimensionalen Arrays. 6.2.1 Array QN Die 2-D SFGs der Arrays QN entstehendurch Projektionen von zwei 3-D SFGs vom 'Iyp n I und n2 im i,k,m-lndexraum entlang der i-Achse und der k-Achse. Es wird gezeigt.daß SFCis mit gleicherKnotenanzahlaber unterschiecJlichen Kantenrichtungenzu verschieclenen l.iisungen führen. D e r 2 - D S F G v o m e r s t e n " t y pn 1 k i n B i l d 2 3 i s t d a s R e s u l t a te i n e r P r o j e k t i o ne n t l a n gd e r k-Achse. Das entsprechende Array QN bestehtausQ' N PEsvom Typ AD und B Akkumulatoren vom Dp A. E,sbestehtausQ parallelenPipelinesmit einer [-ängevon je N PEs AD. In diesen parallelenPipelineswird dasVergleichskriterium dJ'(m,n)(2. I 1)für eine Zerle (oder Spalte)von Kandidatenblijckenim Suchbereichparallel akkumuliert. Die dem SFG in Bild 23 zugeordnetenZahlenkennzeichnendie Indizesi*m und k+n,Jer Suchbereichsdaten in der Fblge von zwei Kandidatenblockzeilenund die Indizes i und k der Ref'erenzblockdaten, wie sie in der Folge der Systemtaktedem Array aus einem lokalen Speicher zugeführtwerden müssen.Die Punkte auf den Kanten beschreibendie Anzahl der Verziigerungen zwischenden PEs. Um negativeZahlen in der Darstellungder SFGszu vermeiden,werden im Gegensatzzu den bisherigenAnnahmenin (2.11)und (2.13)nur positiveIndizesin den folsendenGrenzen verwendet: 1<i.ft<l/ 0<m.n<Z'tt (6.3) - 63- Der Off.setzwischenden einzelnenZeilen und Spaltender Indizeserklärt sichdurch die Verziigerung über die Registerin den parallelenPipelines.Der Datentransfervon außcn über den Rand des Arrays muß ebensotaktsynchronwie über die lokalen Verbindungenzwischenden PEs ablauten.Hierdurch bestehtein f'esterZusammenhangzwischender Anzahl der in llild 23 ablesbarenIndizesund der Anzahl der Systemtakte. Für jede Kandidatenbkrckzeile einesSuchbereicheswerden demnachN Systemtaktebeniitigt.Analog zum Eintrag in 'Iabelle l8 beträgr bei Q Kandidatenblockzeilendie Anzahl der Systemtaktepro Bildpunkt: -sp-- c'PP(P)ex,,*: Q . N _ I (6.4) l.SP':N' (*) u\ ' tr+ ' s5(i*m,k*n) m "i65 ,,,":,:,: :,,,: :,,,:,:,,,,: $f ,,1;1,1,',',',',""""' 64 l 3'5 i4 2 . Kandidaten- l:,5,:' blockzeile t+ 1 ) 1 . Kandidatenblockzeile )A :13+ 1-) 12 il ^')--) )) .':':':':':^':^: :::41 :::::.:.:..:|:LJ ')') 4l5r,,.,,,,1,,:, 54 63 tl 44 53 62 43 52,,,,,,,,,,,,,',,,,,,',tti* l3 :' "42......... ,5,4" ;';,t""""t""" 7) ftt+..: . 53 62 7l 43 52 61 42 -sl 41 ':a A:::: : L-) J4 J-l JL L5 14 13 :, ' : ll5,,,,: tt4 rt3 xj [1[, .'.,,,.. It3 til 8l ' 94 93 92 94 c)j ()2 9l -ll L I 0 24 23 22 21 J+ -1J -11 -1 t 44 43 42 4l sp(i,k) ______\ dl.(m,n) MUIX MS Bild 23: SFG desArraysQN vornTyp nrk dargestellt für ly':4 und q:6, Das Array QN vom Typ n1k nach dem SFG in Ilild 23 hat diagonalverlauf'ende Kommunikatitlnsverbindungen. Bei Anforderungen.die ausschließlich orthogonalzueinanclerausgerichtete - 64- Leitungenzulassen,ist der SFG in Bild 23 ungeeignet.Der SFG in I]|1d24 dagegenstellt eine Alternative mit ausschließlichorthogonalen Kommunikationsverbindungen dar. Er entsteht durch Projektion aus dem 3-D SFG vom'lyp n2 im i,k.m*lndexraumentlangder i-Achse. r> KY m s . 5 (*i n t . k - l n ) 0 2l 3l 4r .. ql 4r 3l 2l l1 t2 22 3t .. 8t 92 42 32 22 12 13 23 .. 73 83 93 43 33 23 t3 14 .. b4 14 84 94 44 34 24 t4 ,rp(i,k) df(nt,n) MS MS MS MS MS MS Bild 24: SFGdesArraysaX (fyp n2i)mit orthogonaler Leitungsführung dargestelltl'ür,N= 4 u n dQ : 6 Die in Btld24 dargestelltenZahlenftrlgen beschreibendie Indizesder Suchbereichs-und Relerenzblockdatenfür eine Kandidatenblockzeile. Aus der Numerierungder Indizesläßt sich erkennen.daß das Array für eine Kandidatenblockzeile jeweilsQ+N-l Systenrtakteund damit für einen Suchbereichaus O Kandidatenbkrckzeilen cPP\P)eu,,.i: o.Q+N-1) SP :(#.#) lsP2:N2 (6.s) Systemtakte erfordert.[m Vergleich zumEintragin TäbelleLBvermindert sichmit (6.5)die Etfizienz(6.2)hier auf EgNnj : Q.N (Q+N-1).Q : I \o N \, * " r't"t (6 6) )tr" Die Effizienznimmtmit der AnzahlQ derKandidatenblöcke wegender zunehmenden t.änge der Pipelinefür die Ret'erenzblockund Suchbereichsdaten ab. Die SFGsin tsild23 und 24 beschreiben die Architekturen der endgültigen ArraysQN nur unvollkttmmen. In derobersten ReihederPEsAD isteigentlich keinAddiererfür dieDifTerenzbeträgewie in denübrigenPEsAD notwendig, da die hiererrechnefen Difl'erenzbeträge zu einer 0 addiertwerden.AußerdemgenügennachdenrE,intrag in TäbellelU bzw.nach(5.tt)weniger - 65- PEs MS als Knoten MS in Bild 23 dargestelltsind.Diesesläßt sichauch anschaulichdurch die Akkumulation der Difl'erenzbeträge erklären.ln den AkkumulatorenA werdenjeweilsN DitTerenzbeträgeakkumuliert.Daher ist nur alle N Systemtakteeine Summefür die Minimumsuche im PE MS verfügbarund es lassensich bis zu lQlNl Akkumulationsregister in den PEs A mit einemThi-State-Ausgang über eine Bnradcast-l.inemit dem Eingangeinesgemeinsamgcnutzten PE,sMS verbinden. 6.2.2 Array NN Die SFGs der Arrays NN entstehen durch Projektionen der vom Array QN bekannten 3-D SFGs vom Typ n1 und n2 im i,k,m-Inclexraumentlangden ln-Achsen.Auch hier ergeben sichzwei unterschiedliche Lüsungen,die in Bild 25 und 26 dargestelltsind.tleide Arrays bestehen je ausN2 PEs AD, N PE,sA uncieinem PE,MS. Hier werclenalle Operationenparallelausgeführt, die sich einem Kandidatenblockzuordnenlassen. L)4 s5 (i+ m,k+ n ) 91 8l 11 6t 51 4I 3r 11 9Z 82 72 62 52 A1 32 22 t2 93 n3 u4 /) 64 OJ 53 +J 33 L-) 1A { 4 44 34 ', /l t 1 l3 l1 sp(i,k) df(nt,n) Bild 25: SFG des Arrays NN vom 'Iyp n lm dargestelltfür ly':4 und O:6 - 6(r- , r 5 (+i m , k +n ) L 12 t 3 l 4 l 5 l 6 r 7 1 l J l 9 r sp(i,k) 12 22 32 42 52 62 12 82 92 t3 23 33 43 53 63 73 83 q3 l4 24 34 44 54 64 t4 84 91 Bild 26: SFG desArraysNN vom Typ n2mdargestellt 1'ürN:4 und 9:6-, In den beidenSFGsvon Bild 2-5und 26 sinddie Kantenfür die Ref'erenzblockdaten zu Schleifen abgebildet.Die resultierendePositionder Ref'erenzblockdaten wird durch die Indizesi und k an den Knoten AD bezeichnet.Diese Schleit'enhaben aufgrund des Abbilclungsverfahrens keine Verbindung zu PEs am Rand desArrays. Die Daten befindensichin Registern,clievor Beginn der Operationsausführunggeschriebenwerden müssen.Diese Registerertordern eine Steuerung von außendurchein load-Signal[17].Da die Anzahl der Referenzblockdaten im Vergleich zu der Anzahl der Suchbereichsdaten klein ist, kijnnen die Verbindungenfür die Suchbereichsdaten zum Laden dieser Register ebenfallsverwendetwerden (Bild 27). D ( i- 1 . k . m . n ) load , s 5 (*i m , k * n ) oder.ip(i,k) D(i,k,m,n)-r sQ-r m,k+ n)) /(s7(i,k)-s Bitd 27: Bltxkschaltbild einesPEsAD fiir dasArravNN in Bild 26 -61 Bei dieser gemeinsamenNutzung der Verbindungenfür die Suchbereishsdaten sind N Täkte zum Laden der N2 Registertür die Ref'erenzbkrckdaten erfirrclerlich.Ansonstenergebensich hier wie beim Array QN vom Typ n2i in Btld 24 auchjeweilsQ + N- I läkte für eine Zeile von Kandidatenbliicken.Analog zu (6.5) sind dann insgesamt ?PP(P)N r1,,,,, : o . Q + t \ / -l ) t:pp(P)NN,,,,,, SP' . # : ( # - # ) l s p , = r u( 6.7) , Systemtaktepro Bildpunkt erforderlich. Im Vereleichzum Eintras in Täbelle 1fivermindertsich die Effizienz dann hier auf ENNr,,u : E N N , r . , r t: -- \( O + o , ,<, *a , u N ) t \^,' n /Q QZ N + ( O+ N - t t . Q ( 6.tt) Die Eftizienz nimmt mit steigenderAnzahl von Kandidatenbliickenzu. da sich in diesemFall eine längere Folge von im Array NN kontinuierlichverwertbarenDaten ergibt. An dem Beispielder Ref'erenzblockdaten der ArraysNN zeigtsich,daßeinesystematisch durchgeführtenZeiteinteilungs-und Projektionsprozedurauch zu nichtrealisierbaren Schaltungen führt. sof'ernnicht nachträslichder SFG verändertwird. 6.2.3 Array QQ Für eine Abbildung auf den 2-D SFG einesArraysQQ eignensichdie beidenbisherbetrachteten 3-D SFGs vom Typ n1 und n2 im i,k,m-lndexraum nicht mehr. Als Grundlage für ein Array QQ ist hier der dritte 3-D SFG vom Typ kimi,m,n-lndexraum zu verwenden.Durch eine Projektion in Richtung der i-Achse entstehtder 2-D SFG des Arrays QQ in BilcJ2t3. In jedem der Q2 PEs AD werden clieSummenclerDifTerenzbeträge akkumuliert unclin außerhalb desArrays aus PEs AD angeordnetenQ2tNzPEs MS miteinanderverglichen.Da cliegleichenRef'erenzblockdatenrR(i.k) in allenKnoten desArraysbeniitigtwerden,ist esbeispielsweise möglich, sie vom Eingang in der oberstenReihe der Knoten AD in hrtrizontalerRichtung und von jedem dieserKnoten ausin vertikalerRichtungweiterzuverteilen. Die Suchbereichsdaten werden in dem Beispielhier parallel über Q Broadcast-Linesin dasArray transf'eriert. Die Verbindungenfür den Tiansf'erder Werte desVergleichskriteriumsdf(m,n) zu clenPtssMS und die Knoten der PEs MS sind in Bild 28 wegender besserenÜbersichtnicht eingezeichnet. Die PEs AD und MS gleichenden Anordnungenin Rild 16 und 17 von Kapitel 5.2.1.2. Wie aus den Folgen der lndizesin Bild 28 abzulesenist, beniitigtdas Arlay nrehrSystemtakte pro Bildpunkt als die in Täbelle 1tl eingetrageneAnzahl: : N.(Q+N-1) c'pp(P)eer, SP2 ( s -, ,' \ , I11z \ / ll\Pr=N' (6.e) Die EffizienzdiesesArrays verhält sichim Vergleichzum Eintr agin Täbellel8 wie ( 6. 6) : tc _ - ( (o+N-l).N N \ \O+N/r(itv>t (6.10) - 6u- Die Etfizienz nimmtauch hier mit der Anzahl Q der Kandidatenbkickeab. m \i sp(i,k) l+ nY sn(z,k)-) :t ^,-z >^z t- I U - >^- L U U - '-]f, >^- - - l l 2 13 1 4 l 5 l 6 l 7 t t i l 9 l t2 22 32 42 52 62 12 82 92 L U U t- U LJ U L- U U U 14 24 34 44 51 64 14 84 .. L U U U t5 2-535 4-5.i-565 75 .. U 13 23 33 43 s3 63 73 83 93 16 26 -1646 56 fii .. * m.k+ tt) .r,1(i t : 4 2 3 2 2 2 1 2 t ;o c c o 41312lll + s.R(i,k) Bild 28: SFG einesArraysQQ vom Typ ki dargestellt für N= 4 und Q:6 ZweidimensionaleArrays erfbrdern aufgrund des parallelenDatenzugrifl'esspeziellangepaßte lokale Speicher und damit insgesamteinen größeren Schaltungsaufwand. Eindimensionale Arrays dagegenktinnensogarso ausgelegtwerden.daß sie mit ausschlietllich secluentiellen Datenfolgenauskommen.Diese Arrays sind deshalbbesondersleicht mit den übrigenlbilen des signalverarbeitenden Systemszu verbinden. Die SFGs der eindimensionalenArrays ergeben sich durch eine Zeiteinteilungs- und Projektionsprozeduraus einem 2-D SFG. Hier wird alsBeispielvon einem2-D SI-G vom !p n 1k2 aus B' N Knoten AD im i,in-Raum ausgegangen, der die gleicheStruktur wie der 2-D SFG vom Typ n1k in Bild 23 aber fäst keine Verzögerungenan den Kanten hat (siehe auch Anhang F). Dieser 2-D SFG eignet sich für eine Projektionentlangder Koordinatenachsen i und rn auf zwei 1-D SFGs aus Q bzw. N Knoten AD (Array N und Q). 6.2.4 Array N Der 1-D SFGvom Typn1k2nr desArraysN in Bild 29 entstehtdurchdie Projektionentlangder m-Achseim 2-D SFGvomTypn1k2.Hier werdenalleOperationen parallelausgeführt, die einer SpalteeinesKandidatenblockes zuzuordnen sind. - 69- a) 14 r.: ) t s 5 (+i m , k + n ) t b) ,lp(i,k) s.s(i* nt,k * rt) 1 2. ) i ) ) ) , , {r o 2 1 o L-) q2 )L 22 t 1 I L ,,,9r 34 x.t ,::,,,, OI ".:51 44 ,.': .. 42 :: .) () A T ::tt :::: 'J:t . :::::: ...1 I 0+N-l I Y Bild 29: a) SFG deseindimensittnalen ArraysN vonr'$p n1k2mdargestelltfür N:4 uncl s5Q+m,k+n) (ein tskrckaus Q:6, b) lndizesi+rn und k+ n derSuchbereichidaten Q+ N-1 Datenist grau unterlegt) Anhand der Folgen der Indizesder Suchbereichsdaten in Bild 29 läßt sich erkennen,daß das Array N vom Typ n1k2mfür eine Kandidafenblockzeile N.(O+N-1) Sysremtaktebeniitigt. Demnach sind prut Bildpunkt : Q.,\.(Q+N-l) c'PP(P),v,,,p.,,, SP2 (#.') I ISP':.Vr ( 6 . r1) Systemtakte pro Bildpunktertbrderlich. I m Vergleichz u d e m E , i n t r a gi n ' I ä b e l l e l t l b e t r ä g td i e Eftizienz ENnft.nr e2'r,t Q'N (0* w-,, _ - ( o \, rv \O. )to+N>l (6.12) Die systematische Abbildung auf den l-D SFG vom Typ n1k2m1 ciesArrays N in Rilcl29 ergibt bei jedem PE,AD jeweils ein Schieberegister ausQ+N-1 Zellen für die Referenzblockclaten, wobeijede der Q+ N-l Zellen das gleicheDatum enthält.Um <JenSchaltungsaufwancl zu vermindern, ist es sinnvoll.auch hier nr.rrein einzelnesRegisterim PE,AD zu verwenclen. claseinmal geladenwird und in dem dasDatum für Q+ N-1 Systemtakre zur Vertügungsrehr(llilrl 27). Für dasRegisterim Akkumulator ergibtdasAbbildungsverfähren ebenfallsQ + N- t Zellen, clie allerdingsTeilsummendesVergleichskriteriums f'ürQ unterschieclliche Kandiclatenbliicke enthalten. In diesemSchieberegister aus Q+N-I Zellen befindensich B verwertbareDaren. Es ist mäglich, ebenfälls Q Zellen zu verwenden. die dann allerclings angesteuert wercJen - 10- müssen[17]. DiesesBeispiel hier zeigt, daß eine systematische Abbildung auch zu Registern führt. die mehrfachdie gleichenDaten enthalten.HinsichtlicheinesgeringenSchaltungsaufwandeslassensich diese Registernachträglichzusammenfassen. Eine einfächer strukturierte Alternative zu dem Array N in tlild 29 ergibt sich aus der Anschauung.ohne daß ein systematisches Abbildungsverfähren verwendetwird. Hier werdenSpalten oder Zellen eines Kandidatenbkrckesvollständigmit denen des Referenzblockes verglichen, bevor mit dem jeweils nächstenbegonnenwird. Im Array nach dem 1-D SFG in Bild 30 werden für jeden Kandidatenblockdie Summenfür das Vergleichskriterium vollständigakkumuliert, stl daß der Akkumulatrlr einfacherals beim Array N vom Typ n1k2mausfällt[41]. s . 5 (*i m , k * n ) sp(i,k) .;5Q-t nt,k't n) 1 4 1 31 2 l 1 24 23 22 2l 34 33 32 3l :: 44 43 42 41 | ^ 1 A a I + L + J spaltenweiser Datenaustausch -=- zeilenweiser Datenaustausch dl'Qn,n) Bild 30: SFG einesArraysausN PEsvom Typ AD mit den Indizesder Suchbereichsund Ret'erenzblockdaten für N : 4 Die Zahlenwerteder Indizesin Bild 30 zeigenzwei die Alternativeneinesspaltenweisenund eines zeilenweisenAustauschesder Daten in der Folge der Kandidatenbliicke.Dementsprechend unterschiedlichsind die lokalen Speicherzu strukturieren. 6.2.5 Array Q Der 1-D SFG vom Typ nyk2ides Arrays Q in Bild 31 entstehtdurch die Projektionentlangder i-Achse im 2-D SFG vom Typn1k2.Hier werdenalle Operationenparallelausgefiihrt.die einer Spalte ctderZetle von Kandidatenblijckenzuzuordnensind. In jedem der Q PEs AD werden N2 DifTerenzbeträge akkumuliert,so claßalle N2 Systemtakteeine Summefür die Minimumsuche (Operation M im PE MS) verfügbar ist. Die Anzahl der PEs MS verhält sich entsprechend (5.1t)proportional zu der Anzahl der PEs AD. Die Ausgängeder Akkumulatorregister der PEs AD können dann wie beim Array QN auch im 1l'i-State-Modusparallel geschaltet werden. 1t_ *,,:tr:I:,:;2I,,:;Z};:,,,:4.1;:,191,,,':,61 ?i,,s1.91ll 2l .. 9l 13 .. sp(i,k) ,r.5(r*m,k*n\ 22 12 t> o .) ,t ,1,:,,:,'fj;::t,t;jt,;,;,11,1 :l:.Ii:i-|' AD AT) AD AD AD AD sp(i,k) + i < ;- s,s(+nt,k*n) *--t MS ---> MS MS MS MS tl.f(,m,n) MS m B i l d 3 l : S F G d e s e i n d i m e n s i t ' r n a l e n A r r a y s Q v o m Tdyapr ng 1e ks 2t ei l l t f ü r l V : 4 u n d Q : 6 mit denlndizesi+munt]k+n derSuchbereichsdatens,s(i +m,k+n) undmit denIndizesi undk der Rel-erenzblrrckdaten.rp(i,k) (BlfukeausQ+N-1 Datensindsrauunterlegt) Im Array Q nach dem 1-D SFG von Bild 31 ergebensichähnlichwie beim Array N zwei Datenstrtime tür Suchbereichs-und Referenzblockdaten.Das Array Q benötigt genzruso viele Systemtaktepro Bildpunkt wie das Array N in Bild 29: (Q+N- l) cPP(P)e,r,r.i Q . N . JF : \ "l r f * n )\l s P ' - r v ( 6 .r 3 ) Im Vergleichzum Eintragin Täbelleltt ergibtsichdanneine EfTizienzvon Eptrftzi : Q. N2 ^ / \ , -- \( a + N )t()'N>l Q.N.(Q+N-1) (6.14) Im Gegensatzzuden ArraysN in Uild 29 und 30 nimmt die Eflizienzhier mit zunehmender AnzahlQvon Kandidatenbkjcken in einerZelle ab.Die Pipelinewirc1mit Q liingerundessind mehr Leerlauftakte erforderlich. Durch die systematische Abbildung ergeben sich für das Array Q (und Array QQ in Kapitel6.2.3)keinePEsA, da die Akkumulationder Summed.f(m,n) clesVergleichskriteriums in den PEsAD vollständig vorgen()mmen wird. 6.3 Vergleichund Bewertungder Array-Architekturen QN, QQ, NN, N und Q Anhand der Beispieleder Array-Architekturen in cJenvorangegangenenKapiteln zeigtesich, daß eine systematische Abbildung mit einer linearenZeiteinteilungs-un<JProjekfionsprozedur zu ineffizienten Anordnungen führt. Es sinclzusätzliche[,eerlauftaktzyklenzum Datentransfer erfbrderlich, wodurch die benötigte Anzahl der Systemtaktepro Bilclpunktcpp(P) cliefür vollständigeAusnutzungder PEs abgeschätzteAnzahl c:pp(pan,pu,e) nach(6.1) übersteigt.Zum Vergleichder BeispieleenthältTäbelle 19 eine Zusammenstellung tler PE-Anzahlen,clerAnzahlen der Systemtaktepro Bildpunkt. der Effizienzenund der Tiansistoranzahlen clerArray-Architekt u r e n f ü r d i e A l g o r i t h m u s p a r a m e tQ e r: N 1 2 , Q : N u n c jQ : 2 . N . -t', Array-Typ NAD NMS cpp(P) E f.i]8,,( t) 7',':L|!16tfi$a 'l',"; ' ': : ,,,,, ,:',,,, ,711111"' Qru..., '"" .ffi,,nit),,1',, , ,'Q:.--iN,, +:ii;lßüA ,.;.i.;:","r-91u*; :,'ii:,i.....,' ,,.:i.r,,,,.,,''lii6,.ilvtt.'''..ii ",',' ,,,,,, ,,,,, ,,, ':::ONr,,:'.,. ,{,t}8,i?ü0 l,'1,fii159fi 432:fl:ütl ,,:,,,,;;:: ,,ö*,,iuir,j .,..,.,,f,='fl,,..,..,,.. ,, ',, li p'=.2 N'' ' , .: ,':,.,.,., O O OQ (Typ N /') 60.600 240.300 96i.100 1V o 2N 7E :,Q': Jg1A "ffi':',,,,:"""""1"t:.t,:,,""" ?,,,6:frfl{l 2i,6ti{.fffi i{ffiii..11:ir.n. ,lQ" N. iüfid:,,lltffi) ,,Q,12,,, 2,1',6lfr{t.lf) Q: N 1 2 14.20(l 14.200 14.200 (Typnrkzm) Q : N Q:2 N ^::.....:: :.::...':::::::::::: '314,,,N ,.,,:,,.,,:.,L, ijNE ,:,a,:,:,1 a,a,,,,,,...,,:,.,, ,::l,:,:a :v::.:::::: tifiltntl: :\:aiIl..::: *ikäil) iö{ ::::::.: If ::::::::::::.: :::::: afn t,t'TtN ;;;,t,,,.,,,;.I,:! : :::::|:.: :,:,,',f,i'i:;N 1 / \ ::: , .;8',.1.t')f), 1:!;*fio 3'I.:3.0ü Thbelle19: Anzahlender PEs AD, A und MS, Anzahlender Systemtakte pro Bildpunkt cpp(P),EflizienzE und Tiansistoranzahl nt der Arrays QN, QQ, NN, N und Q fürN:16 Bei der in Tabelle19gewählten Darstellung der EinträgealsFunktionder lllockgriißeN zeigt sich,daß die 1-D Arraysaus 1/l/-mal so vielenPEswie die 2-D Arraysbestehen.Allerclings ist die Anzahlder Systemtakte dannauchN-mal so groß.Die'Iiansistoranzahl wurcJe entsprechend(C.4)in AnhangC ermittelt,Die Zahlenwerte in Thbellel9 sindwegendervorzugsweisen Verwendung von 16x16-Bliicken beidenin Kapitel3 aufgelührten Standardisierungen unclVerfahrentür l/: l6 ermitteltworden.AlsWortbreitepro Abtastwert wurdevonfi bit ausgegangen. Die EffizienzderArraysverhältsichhier bisauf denFall desArraysQN vom'typ n1kabhängig vom VerhältnisO/N zwischen1/3 und 213.Am Beispiel<lerbeidenArraysQN zeigtsrch.claß zweiAnordnungen mit gleichenPE-Anzahlenabhängigvon der Verbindung clerPEsunclcJer Art der lokalenSpeicherdurchausunterschiedliche Eflizienzenhabenkönnen.Bei den Arrays NN und N nimmtdie EffizienzmitdemVerhältnisQ/N zu. dahierübereinenlängerenZeitraum auswertbare Operandenkombinationen in denPipelines der Arrayszustande kommen.Bei clen übrigenArraysdagegennimmtsiemit demVerhältnisO/N ab. Die geringeb,ffizienzderArrays läßt sichdadurcherklären.daßder kontinuierlicheDatenstromirn Array beclingtclurchclieEigenschaften desBlockmatchings wiederholtunterbrochen werdenmuß.Dashier betrachtete - I't- systematische Abbildungsverfahrenergibt L,iisungenfür die Arrays mit einem OperandenzugritT,wie er sich bei einem schrittweisenDisplacementvon Kandidatenbliickenentlangeincr Kandidatenblockzeileeinstellt,der sich mit der fblgendenKandidatenblockzeilemit einem gleichartiggerichtetenVorwärtslaufwiederholt (t.ine-Scan,Anhang D). Die F.ffizienzeinesArrayssteigtmit der Anzahl der ohne Unterbrechungauswertbaren Operandenrelativzu der Tiefe der Pipeline. Um mit den ineffizientenArrays dennochdie theoretischin Kapitel 6.1 angenommenel-eistungsfähigkeitzu erreichen.sind mindestens lTpar 2 f;l ( 6 .t - s ; Arraysparallelzu betreiben.DieseLiisungbecleutet aberaucheineVervielfächung desSchaltungsaufwandes. In der LiteratursindbereitsRealisierungen worden.cliedennoch beschrieben mit hoherFffizienzgenutztwerdenki)nnen,ohnedaßmehrereArraysparallelbetriebenwerden müssen. 6.4 Effizienzsteigerungdurch Meander-Scanund Pipeline- Interleaving Durch einen gesteuertenDatentransferim Array ist es mäglich. daf'ürzu sorgen.daß die Ph,s i m m e r v e r w e r t b a r eO p e r a n d e ne r h a l t e n .H i e r f ü r s i n d z w e i V t r g e h e n s w e i s e nb e k a n n t . R e i d e r e r s t e nw i r d a n s t e l l ed e s D a t e n z u g r i f f e sm i t e i n e m L . i n e - S c a ne i n e A l t e r n a t i v cv o r i r u s g c setzt,der einem Meander-Scan(oder Snake-Scan)gleicht(AnhangD). Beim Meander-Scan wechselnein Vorwärtslauf und ein Rückwärtslaufin aufeinanderfolgendenKandidatenblockzeilen ab. Am Ende jeder Kandidatenblockzeileverschiebtsich das Datenfcnsterdes neuen Kandidatenblockesorthogonalzu der bisherin der Kandidatenblockzeile eingehalfenenRichtung. Hierdurch entfällen die Leerlaufsystemtaktebeim Wechselzwischenden KandidatenblockzeilenD . i e s e r M e a n d e r - S c a nw i r d b e i m A r r a y v o n S i e m e n s[ 8 a l [ 8 5 ] u n d a u c h b e i d e r Architektur von SGS-Thomson [7] vertblgt. Die hiermit verbundenenwechselndenDatentransf'errichtungen und die orthogonalenVerschiebungen der Daten im lokalen Speicherund im Array werden über zusätzlicheMultiplexer und Leitungen realisiert.Ein Algorithmus mit Meander-Scanläßt sichnicht mehr mit dem eintächenin AnhangF geschilderten Vrrgehen der systematischen Abbildung auf eine Array-Architektur übertragen. Die zweiteVrrgehensweiseist ausder Literaturals "Pipeline-lnterleaving"bekannt[48]. HierbeiwerdenvoneinanderunabhängigeDatensätzein einerPipelinegemeinsambearbeitet,ohne daß es zu Kommunikationskonf'likten kommt. E,inPipeline-lnterleavingwurde bei dem Array von Bellcore angewendet[78][87]. Es hat eine cJemArray Q aus Kapitel 6.2.5vergleichbare Struktur.Hierbei wird der Datenstromin dasArray derartparallelisert,daß immer auswertbare Kombinationenvon Operandenin den PEsverfügbarsind.In den PEswercJen über lokalc Multiplexerimmer verwertbareOperandenausgewählt.Die lokalen Multiplexerwerden über parallel zu den Daten transferierteSteuersignale geschaltet.Wegen der immer gleichartigenBeu'egungsrichtungder Daten im Array ist dieses Vorgehen auch rnit dem systematischen Space-Time-Mappi n g-Verfahren ableitbar (Anhang F,6). - 14- Beim Pipeline-lnterleavingergibt sich die Fragestellung, wie groß die Parallelitätder Datenstri)mesein muß, um eine vollständigeAuslastungaller PEszu erhalten.Diesesläßt sichan den Datenfolgenin das Array Q leicht erklären. Die Folge von Suchbereichsdaten gliedert sich in Blcickeaus Q + N-1 Abtastwerten und die der Ref'erenzblockdaten in Blücke aus N Abtastwerten (Bild 31). Diese Folgen wiederholensich pro SuchbereichQ N-mal. so da[Jsich hier pro S u c h b e r e i c h Q ' N ( Q + N - t ) S y s t e m t a k t e r g e b e n( 6 . 1 3 ) .E i n A r r a y a u sB P E sA D s o l l t ee n t sprechend(6.1) aber nur Q 'N'N Systemtaktebenötigen,so daß sich beim Array Q in Bild 31 sind in Bild 31 Q' N (Q-t) Leerlauftaktepro Suchbereichergeben.DieseLeerlaufsystemtakte auch als Folge von weiß gefüllten Punkten in der Folge der Ref'erenzblockdaten sa(r,k)erkennbar. Um die Lücke dieserLeerlauftaktezu schließen,ist es naheliegend,die Bl(ickeder Folgen ausQ + N*1 Suchbereichsdaten parallelmit einemOffsetvon,V Täktenzueinanderin dasArray zu transferieren.Bild 32 zeigt ein I3eispielfür die Folgen der lndizesder parallelin dasArray Q transferiertenSuchbereichs-und Ret'erenzblockdaten. Die parallelenDatenstrcimestehenzueinander im Ofl.set,so daß immer auswertbareOperandenin den PEs verfüsbarsind. s 5 ( i+ m , k + n ) ll 21 31 41 51 61 tt 81 9t _ *_ 1 4 2 4 3 4 4 4 - 5 46 4 7 4 8 4 2 2 2 1 4 2 5 2 .6 2 7 2 8 2 9 2 _ 1 5 t12 25 35 4s 13 23 33 43 53 63 73 83 93 .. .sp(i.k) 15 44 34 24 t4 43 33 23 13 42 32 22 12 4t 3l 2ltt * Bild 32: lndizesder parallelin dasArray Q gefiihrtenSuchbereichsund Rel'erenzbkrckdaten (ns= l9/al :J) Die erfbrderlicheAnzahl der parallelenDatenstriimerichtetsichhier nachcJerAnzahl O + N- I der Daten in einem Block und nach der erreichbarenAnzahl der Systemtakte(6.1).Dabei entspricht die Anzahl der parallelenDatenströmedem Kehrwert der Etfizienz.nach (6.14): tlQtt,k,i 2 : f"#-'l frhl Für das Array N ist die Parallelisierung ebenfallsuntersuchtworden [17]. Entsprechend(6.12) u n d ( 6 . 1 5 )s i n d h i e r hNnkltt 2 : f*#-'l f#l parallele7'weigefür die Suchbereichsdaten erfbrderlich.Bild 33 z,eigtdas Beispielder Folge von Suchbereichsdaten s5(i*m,k+ m) in 2 parallelenZweigen für das Array N von Bild 29. . r ^5*(im,k+n \ {- t1 21 31 41 5l (rt it lit ql - 13 23 33 43 53 b3 i3.. t2 22 Zt 42 52 62 72 82 92 Bild33: Indizesder parallelin dasArrayN getührten ftir ns: 19/t-tl:2. Suchbereichsdaten N:4, Q=6 (gegenüber der Darstellung in Bild29 urn 90' gedreht) - -t5- Eine Parallelisierungder Datenstrijmeist natürlich auch bei den zweidimensionalen Arrays miiglich.Allerdingssteigthierbei auchder paralleleZugriff autdie Inhaltein lokalenSpeichern. so daß dann hiermit auch die Antirrderungenan die lokalen Speichersteigen. 6.5 Lokale Speicherfür Array-Architekturen Die lokalen Speicherwerden taktsynchronmit einer der PE-Anzahl am Rand des Arrays entsprechendenWclrtbreitegelesenund angepalltan die übrigen Teile des signalverarbeitenden Systemsgeschrieben.Hierbei sollte das Schreibeneineslokalen Speichersdie Operationsausführungim Array nicht behindern[41]. Nachden Abschätzungen in AnhangD nimmt die mittlere Anzahl der Täkte zum Schrelbenc:ppey des Speichersmit der Kapazitätdes Speichersab. cppw richtet sich nach der Anzahl der pro Bildpunkt B2|SPZgeschriebenenDaten und ihrer W o r t b r e i t eb p c l s o t i e d e r A n z a h l b p c d e r m i t j e d e m T ä k t p a r a l l e l i n d e n S p e i c h e r g e s c h r i e b e n e n bits.DemnachbestehtfolgendeBedingungzwischender Zeitzum Schreibenpro Bildpunktund der Ausführungszeitpro Bildpunkt: : rty rrv'cpp,v W # = r'c:pp(p) (6.16) Anhand einesModells wird in Anhang D die Abhängigkeitzwischender Speicherkapazität und der Anzahl der Systemtaktezum Schreibendes lokalen Speichersdargestellt. Der QuotientTyylbpcin (6.16) entsprichtdem in einer Schaltungzu realisierendenTäkt zum SchreibendesSpeichers.DieserTäkt richtetsichauchnachden Schaltungsteilen für die übrigen Autgabenstellungen der Signalverarbeitung. Busverbindungen erfordernwegen der griißeren unlzuladendenI-astkapazitäten längereTäkte als kurze lokale Verbindungenin einem Array. Die Gleichung(6.16)beschreibteinen grundlegendenZusammenhangzwischenclenAnzahlen und der Dauer der Täktepro Bildpunkt zum Schreibender Speicherund für die Operationsausführung im Array. Das Schreibeneineslokalen Speicherssollteauchasynchronzum Systemtaktim Array erfolgen können. damit die zeitlichenAbläuf'ein clenübrigen Teilentjes signalverarbeirenden Systerns nicht von denen im Array bestimmtwerden.Der lokale Speicherbestehtdaher aus einem mit dem Array synchrongetakteten'leilund einemweiterenasynchronzum Array betriebenenTeil. Der asynchrongetakteteSpeicherist als FIFO oder wahltrei adressierbarer Dual-Port-Speicher auszuführen[69]. Als synchrongetakteter'lbildes Speicherseignensich wegenclerf'esten DatenfolgenSchieberegister oder auch Speicherarrays mit einer Zeigeradressierung t31]t651. Die Schieberegister ergebensich direkt aus dem systematischen Abbildungsverfähren. Genau genommensind alle als Punkte an den Kanten der SFGs aus Kapite\ 6.2 dargestelltenPipelining-Registerder Arraysauchein BestandteildeslokalenSpeichers. Durch eine entsprechencle Auswahlder Zeiteinteilungs-und Projektionsprozedur lassensich sogarArrays gewinnen,clie keine weiterenbesondersspezialisierten lokalen Speicherbenritigen.Beispielehierfür sinclclas Ar:rayN in Bild 29 und das Array Q in Bild 31. Sie habennur einen Eingangfür eine Folgevon Suchbereichs-und Ref'erenzblockclaten. Die zweidimensionalen Arrays QN, NN und QQ clagegen ertirrclerngrundsätzlichlokale Speicher. Als lokale Speichereignen sich die in Anhang D zusammengestellten Typen.Aufgruncl desparallelenZugriff'esdurch die zweidimensionalen Arrayskommen für die SuchbereichscJa- - /()- ten Blockzeilenspeicher geoder Suchbereichsspcicher in Frage.Für die Ret'erenzblockdaten nügtein Blockspeicher. Der Schaltungsaufuancl für die lokalenSpeicherrichtetsichin erster Linienachder Speicherkapazitäl Die'fransistoranzahlen derSpeicher sinclin'Iabelle20 einge-kansisturanzahlen tragen.Bei einemVergleichdieser mit denenin Iäbelle 19 zeigtsich.daß bei den eindimensionalen Arraysder Schaltungsaufwand für die Speicher sichin der gleichen Griißenordnuns wie die desAufwandes für die PEsverhält. t'M lbitl Tiansistoranzahl iöhei 1U.600 Blockzeilenspeicher Q : 8 24.000 36.000 Q:16 Q:32 ,,',';r25|äüfr ,t|4i,:ä:$9 i'it6;äaii Suchbereichszeilen- Q : 8 speicher Q:76 Q:32 184p1 248 pi 376 p1 1.200pi p; 1.-500 2.300pi (M und'liansistoranzahl Thbelle20: Speicherkapazitüt für N:16 bei Speichcrzellen mil 6 Tiansistoron pro bit (p; - Zeilenlänge einesBildes) 6.6 Steuerung Systolischebzw. semisystolische Arrays beni)tigenkeine aufwendigeSteuerungder Operationen und des Datentransfers.da die PEs nicht programmierbarsind und die Kommunikation über Registerin unveränderlichenlokalen Verbindungenabläuft.An den Beispielenin Kapitel 6.2 zeigtesich aber, daß einzelneRegisterin den Arrayszu bestimmtenZeitpunktenauf einen definiertenWert gesetztwerdenmüssen,urn f'ehlerhafte Resultatezuvermeiden. Außerdem sind bei der bereitserwähntenParallelisierung desDatentranst'ers für dasPipeline-lnterleaving in den PEs die Multiplexer zu schalten.Die Ansteuerungder Multiplexerwie auchdie clerRegistermuß synchronzum SystemtaktdesArrayserfolgen.Da die Positionder Daten im Array über die Stellungder Multiplexer und den Zeitpunkt desSetzenseinesRegistersentscheidet, erfblgt Transt'er der der Steuersignale zweckmäßigerweise parallel zu den Daten ebentällsüber Registerzwischenden PEs.Hierdurchsind ausschlielSlich Steuersignale für PEsam Rand desArravs zu generieren. Die SteuerungeinesArray ist wie die einesprogrammierbarenProzessors als Zustandsautomat (engl.:Finite-State-Machine)realisierbar.SeineStrukturläßt sichebenfallsausdem Space-f ime-Mapping-Verfahrenableiten,da diesesdie Zeitpunktefür jede Operationin den PEsspezifiziert.Für eine Steuerungbesondersanschaulichist dasModell von kaskadiertenmod(z\-Zäh- - ]'t- lern, deren Zustände logisch miteinanderverknüpft werden [17]. Bei der hier im Zuge des Space-Time-Mapping-Verfährens verfolgten linearen Zeiteinteilung und Prt-rjektionentlang den Koordinatenachsendes Indexraumesrichtet sich die Anzahl der Zähler nach der Anzahl der Projektionen.Die Zählbereicherichten sich sichjeweilsnach der Anzahlx der ineinander projizierten Knoten. Dementsprechendbeschreibendie Typenbezeichnungen der Arrays QN, NN, N und indirekt Architektur die QQ, der Steuerung(Täbelle27),Die Zähler kiinnen zur Q Adressierungbzw Ansteuerungder lokalen Speichersowiezur Generierungder Kornponenten der Displacementvektorenverwendetwerden. Unter der Annahme, daß rJie7.ählerständesynchrclnmit den Datenfolgenan den Eingängender Arraysübereinstimmen. sind die Steuersignale für die PE,sA und MS über Registerkettenzu verzögern. Array-'Iyp aa (rypki) Zähler-Typ mod(N)-Zähler mod(N +Q-l)-Zähler N (TVpn1k2m) morJ(Q)-7.ähler mod(l/ + Q-l)-Zähler mod(N* Q-l)-Zähler möd(O)+Zählöii,,.i.,i.,.,,',, +,,9:1,)-zähl nrocllr, cr fia6(N+::8t'1|\i:rylilr:i Thbelle2l: Zil'ilerfypenin der lokalenSteuerung für die hier diskutiertenArravs Die Tiansistttranzahlfür die Zähler der Steuerung ist mit der Zusammensefzungnach Täbelle 27 im Vergleich zu der Transistoranzahlder Arrays sehr gering. Für beispielsweise N:16mitQ:N12,Q:N u n d Q : 2 ' N b e s t e hkt e i n e rd e rZ ä h l e ra u sm e h ra l s2 0 0 T r a n s i s t o r e n (Anhang C). Mit zwei bis dreiZählern sowiezusätzlicherLogik 'zumYerz,i\sern einzelnerSignale ergibt sich für eine lokale Steuerungauf der Grundlagevon Zählern insgesanrtein Schal'Iransistoren. tungsaufwandvom 1.000bis 2.000 - 7fi 6.7 Partitionierungder Arrays Die in Täbelle 1ti zusammengestellten tünf ein- und zweiclimensionalen Basistypenergeben sich durch eine konsequenteDurchführungder linearenZeiteinteilungs-und Projektionspnrzedur im Zuge des Space-Time-Mapping-Abbildungsverfahrens. Die Anzahlen der PEs AD und MS richten sich nach der Block- und Suchbereichsgräße. Die Anzahl der Systemtaktepro Bildpunkt (6.1) dagegenverhält sich umgekehrtproportionalzu der PE-Anzahl. Sof'ernaber die mit einem Array erreichteAusführungszeit wesentlichkürzeralsdie vom VideosignalvorgegebeneObergrenzeist,wird dasArray nicht kontinuierlichund damit ineffizientgenutzt.In diesem Fall ist es möglich, den Schaltungsaufwand einesArrays durch Partitionierungdes SFGs zu vermindern.Die im SFG verschiedenen Knoten zugeordnetenOperationenwerden dann in der Schaltungin einem PE sequentiellausgeführt.Die Partitionierungder Arraysin q Teilevermindert die PE-Anzahl auf n(q)an : It1 n(q)u,s: Irl ( 6 .l 7 ) u n d e r h ö h t d i e Anzahlder Systemtakte pro Bildpunktauf cPP(ct, pu i P,cD. > q' cpp(pan,p y,s) ( 6 .l t 3 ) Es gibt für die Partitionierungzwei grundsätzlicheAnsätze [57][64]. Beim ersten bleibt die Struktur der Kommunikationsverbindungen innerhalbder TeiledesSFG erhalten(lokal-parallel-global-seriell. LPGS). Realisiertwird ein Array nach einem der durch die Partitionierung entstehenden lbile desSFG. Beim zweitenAnsatzwerdenalle KnoteninnerhalbeinesTeilsmiteinanderzu einem Knoten "verschmolzen"(lokal-seriell-global-parallel.LSGP). Bilcl34 zeigt eine schematischeDarstellungdieserbeiden Ansätze.In beiden trällensind zusätzlichelokale Registerund eine Steuerungdes Datentransferserfbrderlich.Die Anzahl der lokalen Register richtet sich nach der Anzahl der Knoten des ursprünglichenSFGs und nach der Anzahl der durch die Partition entstehendenTeile des SFG. Das LPGS-Verfähren ergibt ein kleineres Array, dessenStruktur dem Teil des ursprünglichen SFG entspricht.Beim tSGP-Verfahren dagegensindjedem PE neueRegisterspeicher zuzuordnen, deren Inhalte über externzu steuerndeMultiplexerdem PE zugeführtwerden.Wegender Einfachheit beim Entwurf ist das LPGS-Vertähren bei Arrays für das lllockmatching vorzuziehen. Die fünf Arrays QN, QQ, NN, N und Q eignen sich besondersfür eine Partitionierungnach 'fyp dem I-PGS-Verfähren[57][6a]. Bild 35 zeigt ein Beispielfür das Array QN vom n1k aus Bild 23. Entsprechend(6. l7) und (6.1tt)vermindertsichdie PE-Anzahl und essteigtdie Anzahl der Systemtakte. Alternativzur Partitionierunggrof3erArraysist es möglich,mit der linearenZeiteinteilungsund Projektionsprozedur kleineArrayszu generieren und dieseentsprechend den E,chtzeitanforderungen parallelzu einzusetzen. - 19, SFG t-PGS r------l r-------'l I L I t-SGP L t- .i LIL-'-. Bild 34: Schematische f)arstellung LPGS- (lokal-parallel-global-seriell) und I.SGPPartitionierung(lokal-seriö_l_l-global-parallel)'eines SFö nach [57][64],die Punktean den Kanten kennzeichnenRegisterspöicher 6.8 Blockmatching-Algorithmen in Array-Architekturen Die Array-Architekturensind für das Blockmatchingmit der vollstäncJigen Sucheoclerein Blockmatching mit unterabgetasteten Bkickengeeignet, beidemclieKandiclatenbliicke aufden Schnittpunkten einesregulären Gittersangeordnet sindunddieSchritnveite zwischen denKandidatenblticken mit der Unterabtastung der Blöckeiclentisch ist.Dieseswirclbeispielswcise in pEs derArchitekturvonSiemens genutzt[ti4][f]5].Eindimensionale Arrays,in denenalle cJirekt mit lokalenSpeichern verbunden werden,eignensichsogarfür einBkrckmatching mit Suchstrategien[8a].da hier die Pipelinekurz ist.Denkbarsinclhier Suchstrategien mit einerregulären Folgevon Kandidatenblöcken wie das"Axis Search"[52]t84](Kapitel3.1). Der EntwurfvttnArray-Architekturenwird durchein systematisches Vorgehenerleichtert.Eine hierbei durchgeführtelineare Zeiteinteilungs-und Prc'rjektionsprozedur im Rahmeneines Space-Time-Mapping-Abbildungsverfährens ergibt regulärstrukturierteArrays rnit einfach vtrnlokalenSpeichernunterstützbarenDatenzugriff'en. Die AnzahlclerPEsrichtetsichhierbei nashder Blclckgrt)ße und der Anzahlder Kandidatenblöcke in einemSuchbereich. Als Grundlagefür die Diskussion ergabensichdie Strukturen vondreizweiclimensionalen (2-D) unclzwei eindimensionalen (1-D) Anordnungen. Durcheineentsprechende Auswahlder Zeiteinteilung führt die Abbildungzu systolischen Arraysoder auchsemisystolische Anordnungenmit sogenanntenBroadcast-Lines. Semisystolische ArrayserfordernetwaswenigerSchaltungsaufwand für Resister. - 8(), 94 s 5 (+i m , k + n ) ,;;::,'-;W n;l ,,,,,,,',:ßi 92 ",',;,1:,'1,,.1",.1.1'.11':,"1"';7:4,,,; ..rvrznt: :::: ::: ::::rhä. : [{+:.:::::..:..:: :::lü ': : : :.4: i.:.1t.:.:.:.4:.4t. a a.:: :.: : a | :,.: :,:,:,:,,,,*-2 9.i .::-:'xI ',,,,,,,,,1,,,,:,54, ,,,,,,6i3i.;,,,,,.,,.,:,,,,,,;;,',:,,,,,,,:,,,12 6,4 ' tl+ 44 $ 4l m ',,"67,,',,;,,';,';,,;1;,,,,:,,;;;:1,1:1:;7,1 ,,::::,:;'t4 bJ ::::::::::::::::.:.:.::: :::::'''' <1: '," ,5'l 4,t t4 l3 t2 ,1,1,6:t',')"'::':')""',..,..r,.,,,,,;;1,1,,:44 :,1,:t;,1,,53, :,:,ttt:,:,t41 34 1,1 11 JJ LJ 32 )) -1 I : a.::: ii ,,:::,:1L t:.a:.t':':52 :jjj: ,62 ,8,1, 5'l :.1.'t',','11,'4:I' l l t l 0 tl +, t f 2 r 1 l-r I/ t t tl lr + A lr 2J l ) tz . ' ll 24 23 22 2124 23 22 2l 1 / t t J+ J-r a a JJ a i 1 / -1 I .)+ 1 a t l JJ -1l 1 l -1 | 44 43 42 4t 44 43 42 4l sp(i,k) MS Bild 35: SFG des in ZJvel TeilepartitioniertenArrays QN vom Typ nrk ausBild 23 Für ein Blockmatching mit der vollständigen Suchereichendie l-D Arraysbei Bilcltelefonsignaleaus,wohingegen für ein Fernsehsignal die 2-D Arrayserforderlich sind.Bei HDTV-Signalensindmehrereder Arraysparallelzu betreiben. DurchPartitionierung großerArrayssind kleinereaber wenigerleistungstähige Arraysrealisierbar, sof'erndie verfügbareAustührungszeit langgenugist. Array-Architekturen eignensichfür einehochintegrierte Realisierung auf einem(ihip.SieIassensichals eigenständige Module mit den übrigenTeileneinessignalverarbeitenclen Systems kombinieren. - lli- 7 Ergebnisse 7 .l Analyseder Displacementschätzverfahren Für die Quellencodierungvon Videosignalendensind Displacementschätzverfähren auf der Grundlage einer Gradientenmethode (difl'erentielle Verfähren), einer Fouriermethode (Phasenkorrelation) und einer Suchmethode(Blockmatching)in Diskussion[9][72l[77][tl3].trs zeigtesich hier, daß dasBlockmatchingim Vergleichzu den beidenanderenVerfahreneine geringe Anzahl von Operationenpro Bildpunkt ertordert und sogarohne in einer Schaltungauf'wendig realisierbareMultiplikationen oder Divisionenauskommt.Deshalbist damrt zu rechnen. daß auch in zukünftigzu konzipierendenArchitekturenDisplacementschätzverfähren auf der Grundlagevon Blockmatching-Algorithmenrealisiertwerden. Beim Blockmatchingwird ein Ret'erenzblock ausdem aktuellenBild mit mehrerenKandidatenblöckenin einem Suchbereichauseinem Suchbildverglichen.Das Blockmatchingmit der vollständigenSuchealler mriglichenKandidatenbläckein einem Suchbereichist clasgrtrndlegende Suchschema. E,szeigtesich,daß hierbei das Blockmatchingan Operationenpro Bildpunkt das Dreifächeder Kandidatenblockanzahl einesSuchbereiches ertbrdert.Daher wurden in cierl-iteraturSuchstrategien vorgeschlagen, bei denendie Wahlder Kandidatenbliickevon Z.wischenergebnissenabhängt[35][771.Hier vermindertsichdie Anzahl der Operationenpro Bildpunkt auf 10 bis 15% der des Blockmatchingsmit der vollständigenSuche. HierarchischeDisplacementschätzverfähren ergebenbessereSchätzungen.indenr mit jeder Hierarchiestuf'e die Block- und Suchbereichsgrciße vermindertund damit eine bessereApprorimation an die verschobenenObjekte erreichru'ird [9][23]tU4ll85].Die Schätzungrvirdjeweils mit dem Ofl'setdesvorangegangen geschätzten Displacements fbrtgesetzt.Eine Mittelwerttiefpaßfilterungder Mdeosignalein Kombination mit einerUnterabtastungclerBliicke (Dezimationstilter)ergibt bessereSchätzungenbei stark texturiertenBildern. Die mit einem Displacementvektor darstellbareAuflijsungbeträgteinentsildpunkt,da die Kandidatenblcicke zueinanderum mindestenseinenPunkt im Abtastrasterverschobenwerdenkc)nnen. Das Abtastrasterdes Bildesund damit die darstellbareAufliisungkann durch eine bilineare Interpolationder Abtastwerteverf'einertwerden.Die Anzahl der Operationenpro Bildpunkt für die Vrrfilterung ist im Vergleichzu der des Blockmatchingsvernachlässigbar klein. 7.2 Echtzeitverarbeitung von Di splacementschätzverfah ren Displacementschätzvertähren lassensichin Echtzeitnur durch Parallelverarbeitung und Pipelining ausf'ühren.Die erfbrderliche Parallelität richtet sich nach der Signaltaktperiocie.der Systemtaktperiode und der Anzahl der pro Bildpunkt durchzuführenden Operationen.Bei einem 20 ns-Systemtaktund einer ausführbarenOperationpro Systemtaktstehenfür ein llildtelefonsignal20. für ein Fernsehbildsignal 5 Systerntakte und für ein HD'IV-Signal nicht einmal mehr ein ganzer Systemtakt pro Bildpunkt zur Verfügung. Demnach elfordert ein - 82- Blockmatchingmit der vollständigenSuchevon225 KancJidatenbft)cken pro Suchbereichbei einem Bildtelefonsignal35,bei einem Fernsehbildsignal 140und bei einem HDTV-Signal 760 parallel ausgeführteOperationen. E,swurden bereits Architekturen für ein Blockmatchingmit Suchstrategienin für Fältungsoperationen programmierbarenSchaltungenund nichtprogrammierbarenArray-Architekturen für ein Blockmatchingmit der vollständigenSuche realisiert.Die für Faltungsoperationen programmierbarenSchaltungensind mit den Processing-Elementen (PEs)von Multiprozessorarchitekturenkombiniert [37][51][55].Die Array-Architekturenbestehenausregulärvernetzten PEs [50][76][7U][f]41. SystolischeArrays haben ausschließlich lokale Verbinclungen über Register zwischenden PEs [20][a5]. Die Leistungsfähigkeiteiner Architektur läßt sich durch die Fliiche(liansistoranzahl)uncldie Ausführungszeit(Anzahl der Systemtakte)pro Bildpunkt bewerten.E,inweiteres Bewerrungskriterium ist die Eftizienzlzll3l l. Sie stellt dasVerhältniszwischender Ausführungszeitbei kontinuierlicherNutzung aller parallelenEinheiten der Architektur zu der tatsächlicherreichten Ausführungszeit dar. Mit dem ausder LiteraturbekanntenFläche-Zeit-Produkt als Komplexitätsmaß[63] zeigte sich, daß sich die Komplexität einer Architektur umgekehrtproportional zu der Effizienz und zu der Parallelitätpro Flächeverhält. Effizient genutzteund hochintegrierte Schaltungen(V[SI) haben demnacheine geringeKomplexität. ProgrammierbareArchitekturensind bei Veränderungenvon Algorithmen flexibel anpaßbar, wohingegenspezialisierte ArchitektureneinenneuenEntwurf erftrrdern.Rei spezialisierten Architekturenist wegendes geringerenSteuerungsaufwandes mit einer hohen Leistungsfähigkeit auf kleiner Flächezu rechnen.Ein systematisches Vorgehenbeim EntwurfdieserArchitekturen ist unbedingterforderlich. 7.3 Systematischer Architekturentwurf Ein systematischer Entwurfder Architekturerleichtertdie Übertragung der Operationen und Datenabhängigkeiten einesAlgorithmusauf die PEs,die Steuerung, die lokalenSpeicheruncJ die Kommunikationsverbindungen. Das Ziel desEntwurfsist einestrukturelleBeschreibung der Architektur.Dahereignetsichhier ein Vertährenauf'derGruncllage graphischen eir-rer Algtlrithmusbeschreibung, welchesausder Literaturfür den E,ntwurfvon systolischen Arraysbekannt ist 145l[47)[58][7U.Zu Beginn wird der Algorithmus als Abhängigkeitsgraph (engl.:dependence graph,DG) formuliert.Urn einerealisierbare Architekturzu erhalten, wird der DG durch eineZeiteinteilungs-und Projektionsprozedur auf einenein- oder zweiclimensionalenSignalflußgraphen (engl.:signalflow graph,SFG)transformierr. Die KnotendesDG beschreiben die Basisoperationen desAlgorithmus. Die KantendesDG sinddurchVektorendargestellt. diedenTiansf'er sogenannter lokalerVariablenrepräsentieren. Die Anordnungder KnotendesDG richtetsichnachder Variablenindizierung und die Dimen()perationender siondesDG nachder Anzahlder [ndizes.Wegender bildpunktorientierten Displacementschätzvertähren ist eszweckmäßig, einenDG mit einerSerien-Parallel-Struktur zu verwenden. bei demdie KanteneineGitterstruktur zwischen denKnotenbilden.Kommutativeundassoziative Operationen erlaubenteilweise gerichtete beliebig Kantenvektoren. An einem Beispielwurde hier gezeigt,daßdasAbbildungsverfahren im Gegensatz zum ursprünglichenVerfährendurcheinenallgemeinfbrmulierten DG mit variierbaren Kantenvektoren auch zu einergräßerenAnzahlunterschiedlicher Liisungenführenkann. - 83- Die Zeiteinteilungs- und Projektionsprozedurist der für die PF.-Anzahl und die Ausführungszeit entscheidendeSchritt des Abbildungsverfährens.Durch die Zeiteinteilung erhalten die Knofen f'esteZeitpunkte für die Operationsausführung. Den Kantenwerdenentsprechend den ZeitdifTerenzenYerziigerungenzugewiesen.Aufgrund der Kausalitätsbedingungbei nichtvertauschbarenOperationen werden mit diesem Schritt die Komponentender Kantenvektrtren f'estgelegt.[m Rahmen der Diskussionwurde von einer linearen Zeiteinteilung und Projektion ausgegangen, da diesebesonderssystematisch auf eint'achstrukturierteArchitekturenführt. Durch die Projektion unterschiedlicher Knoten des DG auf einen einzelnenKnoten des SFG entstehtein programmierbaresPE, dessenInstruktionsfolgesich nach der Folge der Operationszeitpunkterichtet. Hiermit ist das Abbildungsverfähren auch für programmierbareArchitekturen geeignet. Der Blockmatching-Algorithmuszeigt eine hierarchischeStruktur in seinenOperationenfolgen. Daher läßt sichdie Abbildung ebenfallshierarchischstrukturierrdurchführen.indem meh"gebünrere Knoten des DG zu einem Knoten zusammengefurßt [81] und die Kanten des DG delt" werden.Nach erfolgterAbbildung diesesDG kann dasVertährenfür die in den einzelnen Knoten spezitiziertenTeile desAlgorithmusnoch einmal durchgeführtwerden.Alternativ dazu ist es auch möglich. den Algorithmus in gleichartigeTeilezu partitionieren.um das Verfähren zu vereintächen.Diesesist immer dannvorzuziehen.wenn die grobe StrukturdesGraphenbereits bekannt ist und Schlußfolgerungenüber die Architektur zuläßt. Die Zeiteinteilungs- und Projektionsprozedurmuß ggf. mehrfäch durchgefiihrt werden. Die den Kanten zugewiesenenVerztigerungenwerden in einer Schaltungals Registerkette(oder Speicher)realisiert.Da die Verzögerungenden Schaltungsaufwand einer Architektur erheblich bestimmen, ist es zweckmäßig.die T.eiteintellungso zu wählen. daß ausschlietllichKanten zwischen nichtvertauschbarenOperationen Verzögerungenerhalten. Weiterhin ist darauf zu achten, daß die Zeiteinteilungzu möglichstwenig Verzrigerungen an den Kantenvektorenführt, denn mit jedem weiteren Schritt geht die Anzahlder Verzi)gerungenals Faktor in die Gesamranzahl cierVerzägerungenein. Nur im letzten Schritt der Zeiteinteilungs- und Projekrionsprczedur ist dann jeder Kante mindestenseine Verzögerungzuzuweisen. Hierclurchergebensich besondersleicht realisierbareDatenfolgen. Das aus der Literatur bekannte Abbildungsverfahren beschreibtwegender graphischenDarstellungder Algorithmen nicht den Datentransf'erüber die Ränder des Graphen hinaus.Dadurch ergebensich im SFG auch Kantenoder sogarSchleifenfür nichtrealisierbare lokale Verbindungen, die keine Kommunikation über den Rand der ein- oder zweidimensionalen Architektur erlauben.Um dennochrealisierbareSchaltungen zu erhalten.muLJder Tiansf'ervon Daten über zusätzlicheRegisterknotenvon ['Es am Rand cJes SFG nachträglichin clasVerfähren eingeführtwerden.Diesesogenannte"Homogenisierung"[2U]führt zu l-eerlauftakten,bei denen nichtauswerfbareOperandenkombinationen auf'einandertretl'en. Bei clenhier als Beispiel gezeigtenArray-Architekturen ergibt sich eine F. ffizienzzwischen33V, und 66%. Die lineare Zeiteinteilungund Projektion ergibt einen DatenzugrifT. der sich mit jeder Zeile von Bildpunkten.Kandidatenbläckenoder Suchbereichen ("|-ine-Scan"). wiederholt In der I-iteratur wurde gezeigt,daß eine Steigerungder Effizienzdurch ein sogenantesPipeline-lnterleaving(Parallelisierung des Datentransf'ers) in der Architektur möglichist. so daß lokal in den PEs immer auswertbareOperanden aus parallelen Datenstrutmenselekticrt werden ki)nnen [17][48][78]t87] Hier wurde gezeigt,daß die AnzahlderparallelenDatenstrt'ime sichmin- - 84- destensproportionalzum Kehrwert der EffizienzderdurcheinelineareZeiteinteilungund Projektion abgebildetenArchitektur verhaltenmuß. um die Effiz,ienzauf 100% zu steigern.Als "Line-Scan" "MeanderAlternativezumparallelenDatentransf'er beim ist esauchmöglich.ein Scan" mit einem entsprechendenWechselder Bewegungsrichtung der Daten durchzuführen [7][84][85].Dieser Wechselist allerdingsdurch eine lineareZeiteinteilungund Projektionaus einem Algorithmus nicht abzubilden und daher für ein systematisches Vrrgehen hier ungeeignet. Ein systematisches Vorgehen beim Architekturentwurf tür Displacementschätzverfahren fühl't auf Anordnungen von PEs deren Parallelitätauf der hierarchischenStruktur des Blockmatchingsberuht.Für Operationenmit einerParallelitätzwischenden einzelnenBildpunktenzuzuordnenden Operationen (Rildpunktebene)oder für Operationen mit einer Parallelitiitauf Kandidatenblockebene wurden hier Array-Architekturendiskutiert.Für die Operationenmit einer Parallelitätauf Suchbereichsebene wurdenspezialisierte PE,suntersucht,die sichden programmierbarenPEs von Multiprozessorarchitekturen zuordnenlassen. 7.4 Displacementschätzverfahren in Mu ltiproze ssorarchitekturen Aufgrund der bisherbekanntenRealisierungen und Konzeptewurde bei der Diskussionvon einer Multiprozessorarchitektur ausgleichartigenPEsausgegangen. die über einenRusmiteinander verbundensind.Die PEs enthaltennebeneiner arithmetischen EinheitlokaleSpeicher.eine Speicheradressierung und eine Steuerung.E,szeigtesich,daß die Diplacementschritzung hier unbedingtin spezialisierten Einheitenausgeführtwerdenmuß, die entwederfür Faltungsoperatitlnenprogrammierbaroder für Displacementschätzverfahren spezialisiert ausgelegtsind.E,ine nichtprogrammierbarePipelinefür eine FcllgeausSubtraktion.Betragsbildung und Akkumulation der Differenzbeträgedes Blockmatchingsbestehtnur aus etwasmehr als L000 Ti'ansisroren. Um die Leistungsfähigkeit zu steigern,können mehreredieserPipelinesparallelisiertwer'den. Es wurde gezeigt. daß für unterschiedlicheOperationen spezialisiertePE,s nur dann kontinuierlich ausgelastetsind, wenn sich ihre Anzahlenproportional zu der Anzahl der pxr Bildpunkt auszutührendenOperationenverhalten. Ein Pipeliningbei der Instruktionsdecodierung. Speicheradressierung, dem Datenzugriflauf die Speicherund der Operationsausführung erlaubtkurze Systemtaktperioden und damit einen hohen Datendurchsatz. Mit der Tiefe einer Pipelinenimmt allerdingsdie Anzahl cJerLeerlauftakte zu. Bei einem Blockmatchingmit Suchstrategien tretendieseZeiten besondershäufigauf. da wiederholtResultateam Ende der Pipelineüber Instruktionenam Anfang entscheiden. Hierdurch vermindert sich die Eflizienz einer Architektur. Eine hohe EfTizienzist daher nur mit mi)glichstkurzen Pipelinesmüglich. Mit der Parallelitätin den PEs der Multiprozessorarchitektur steigenauch die Anforderungen an die lokalen Speicher.Wahlfrei adressierbareSpeicher(RAM) eignen sich für ein Blockmatchingmit Suchstrategien, wohingegenbeit'estenZugritl'sfblgen auchSpeichermit einerZeigeradressierungoder sclgarRegister denkbar sind. Es ist zweckmäßig,eine hierarchische Anordnung von kleinen Speichernmit einer kurzen Ztgriftszeit in der unterstenHierarchiestufe und großenggf-.von mehrerenPEs gemeinsamgenutztenSpeichernin den oberen Stufenzu verwenden[25][3] l. Bei einer gemeinsamenNutzungder lokalen Speicherin den PF,sfür Dis- - lJ5, placementschätzverfähren und die übrigen Aufgabenstellungen der Quellencodierung bestimmt der Zugritf auf die Abtastwertefür das Blockmatchingdie Speicherkapazität.Die lokalen Speicherin den PEs enthalten die Abtastwertefür einen oder mehrere Iilöcke. eine Blockzeile oder einen ganzenSuchbereich.Die SpeicherkapazitäteinesSuchbereichsspeichers richtet sichnach der Blockgriißeund dem maximalenDisplacementin einem Suchbereich.Für beispielsweise16x16-Blöckeund225 Kandidatenblöckemuß cler Suchbereichsspeicher eine Kapazität von mindestens[Jkbit haben. Bei hierarchischenVerfährensind die Kapazitätengriißer. Eine häufig vorgeschlageneUnterabtastungder Blijcke zur Verminderungdes Rechenaufwandesvermindert nicht die Speicherkapazität.sofern die Daten im Speicherauch für die der UnterabtastungvorausgehendenTiefpaßfilterungverwendet werden. 7.5 Array-Architekturen Anhand des oben genannten systematischenAbbildungsverfahrensentstehen hier drei Beispielezweidimensionalerund zwei BeispieleeindimensionalerArrays, deren PE-Anzahl sich nach der Anzahl der Abtastwertein einem Block und der der Kandidatenbläckein einem Suchbereichrichtet. Die eindimensionalenArraysreichenfür Bildtelefonsignale mit niedrigen Quellenraten,wohingegenfür Fernseh- und HDTV-Signale zweidimensionale Arrays erfbrderlich sind. Die zweidimensionalenArrays bestehenfür 16x16-Blöckeund 16x16Kandidatenblöckenpro Suchbereichaus256 PEs und die eindimensionalen Arrays aus 16 PEs. Ein zweidimensionales Array aus 256 PEs besteht aus über 220.000 Tiansistorenund bei 32ß2 Kandidatenblöcken je nach Typ auf 500.000bis 1.000.000.Array-Architekturen sind bei steigt die Thansistoranzahl dem augenblicklichenStandder Technologieauf einemChip realisierbar.Durch Partitionieren der großen Arrays lassen sich kleinere aber auch weniger leistungsfähigeArchitekturen gewinnen. Array-Architekturen lassensich nur dann effizient nutzen,wenn wiederholt zumindest in den Datentransf'ervon einer separatenSteuerungeingegriffen wird. Die Steuerungkann als synchron mit dem Array getakteteFinite-State-Machineoder als Kaskaclcvon Zählern realisiert werden[17]. Sie bestehtausnicht mehr als 2.000Tiansistorenund ist daherhinsichtlichdes Realisierungsaufwandesvernachlässigbarklein. E)ne Zählerkaskadezur Steuerung eignet sich auch für die Adressierungder lokalen Speicherund der Generierungder Displacementvektorkomponenten.Die lokalen Speicherwerdensynchronmit dem Systemtaktdes Arrays gelesen. Die Wortbreite richtet sich nach der Anzahl der PEs am Rand des Arrays.Auch hier kommen wie bei der Multiprozessorarchitektur Speicherfür mehrereBli)cke.eine Blockzeileoder einen ganzenSuchbereichin Frage. Eine ParallelisierungdesDatentransf'ers zur Effizienzsteigerunglohnt sichbei den eindimensiclnalen Arrays eher als bei den zweidimensionalen Arrays,da bei diesender Schaltungsaufuand für die Multiplexer und lokalen Speichererheblichgrrißerist.Bei einemEntwurf ist letztendlich zwischeneiner kleinen aber ineffizientenLösung oder einer hocheffizientenaber schaltungstechnischaufwendigen Li)sung zu wählen. - u(r* 8 Zusammenfassungund Ausblick In der vorliegendenArbeit wurden die Aspekte von Vl-SI-Architekturen für Displacementschätzverfahren auf der GrundlagedesBlockmatching-Algorithmus diskutiert.Zu Beginnwurden die bekannten Displacementschätzverfahren und bereits bekannte Architekturkonzepte analysiert.Ein besondererSchwerpunktder Diskussionlag auf der systematischen Abbildung vtrn den Algorithmen auf die Architekturen.DasZiel der Abbildung ist eine Ileschreibungder verschiedenenStrukturen von Pnrcessing-E,lementen (PEs), Kommunikationsverbincjungen u n d l o k a l e nS p e i c h e r n . Das hier durchgeführteAbbildungsverfahren beruht auf einerausder Literatur bekanntenVorgehensweisefür die Abbildung auf systolischeArrays. lm Rahmen der Diskussionhier wurde das Verfahrenverallgemeinert.Es zeigtesich,daß neue Schrittehinzugefügtwerden mußten. die zu efTizienterenund dennoch einfach strukturierten Liisungen führen. Für ein Blockmatchingmit der vollständigenSucheeignensichwegendesregulärenund langfristig vorhersagbarenDatenzugrifl.sbesondersArray-Architekturen aus regulär vernetztenPEs. Für Displacementschätzverfahren mit ergebnisabhängigem OperanclenzugrifT dagegen,wie er sich bei einem Blockmatchingmit Suchstrategien oder auch bei den hierarchischen Vert'ahren ergibt, eignen sich spezialisierteoder programmierbareSchaltungen,die beispielsweisenrit Prtlzessoren und wahlfrei adressierbaren Speichernin Multiprozessorarchitekturen kombiniert werden. Zukünttig ist damit zu rechnen.daß Displacementschätzverfahren über dasBlockmatchinghinausgehendin Kombination mit Filteroperationenauchrekursivoder hierarchischmit variierenden Block- und Suchbereichsgrtißen tür Fernsehbild-und HD'IV-Signale eingeserzrwerclen. Die hier aufgezeigtenErgebnissesollen den Entwurf neuer Architekturenfür Displacementschätzverfahren erleichtern.Außerdemeignensichdie diskutiertenErgebnisseauchfür andere dem BlockmatchingvergleichbarstrukturierteAlgorithmen der Videosignalverarbeitung. fl7 Literatur "RecentAdvances in DSPSystems". IEEE Communications t1] H. M. Ahmed,R. B. Kline, M a g a z in e ,Y o l .2 9 N.o . 5 , p p .3 2 - 44,May 1991. T'heBenjamin/Cummings Publishing I2l G. S.Almasi,A. Gottlieb.HighlyParallelComputing. C)ompany, [nc..RedwoodCity.CA, 1989. "Standard-Signalprozessoren: Architekturmerkmale und Perspektiven". l3] P. Anders. Mikroelektronik. Band3. Heft 1, S. 16-21.Jan./F'eb. 1989. "A t4l K. Aono, M. liryukara.T, Araki. A. Ohtani,H. Kodama.K. C)kamoto, Video Digital Signal Processorwith a Pipeline Architecture".IIIEE Journulo.f Solid-Stata-Circuits. Yol. 27, pp. 1886-1894,Dec. 1992. A. Chimenti,R. Pioco,"Evolutionand Tiendsof HDI"V". Proc'.Atly,unc'ctl 15] F. tlellif-emine, ComputerTbc'hnologt, ReliableSystems andApplication,s.5th AnnualEuropeanComputer Conf'erence. ClompEuro 91, Bologna,May l99lr "RIS(I ArchitectureTiends". Proc.Atlvunced(ompLtterTec'hnolog,,, t6l D. Bhandarkar, Reliable Systems andApplications,5th AnnualEuropean(lomputerConferernce, Bologna, p p . 3 4 5 - 3 5 2 Ma . y 1991. "VLSI fbr Image processing". SPIE hl. 1246ParallelArc'hitecture.s I7l N. Birch, Jor Image Proc'essing, pp. 25-33, March 1990. "A Difl'erentialDisplacementEstimationAlgorithm With Improvecl t8l M. Bierling, Stability". Proc'.of SecondInternationalkchnical Symposiumon Opticul und Ele<'troOpticalApplierl Scienc'e andEngineering, SPIEConf.8594 lmageCoding,Cannes,F-rance. Dezembe1 r 9U5. Displacement,schätzung zur Bewegungskonryensation in digitulcn t9l M. Bierling. Hierarchisc'he Fernsehbildsequenzen Dissertation,Universität Hannover, Fortschrittsberichte VDl, Reihe10:lntirrmatik/Kommunikationstechnik. Nr. 179.1991. "Efficient BlockMotion EstimationUsingIntegralProjection s". tEEE [10] S. Cain,K. Sauer, lVtrkshopon WsualSignalProcessing and Communications(VSP(). Conf'erenceRecord, pp. 258-263,Sept.7992. "The global approachto HD'IV standardization". [11] F-.Cappuchini,M. Klivocheev, rivistatelettrareview c'ontributions to telecommunic:ations tleveloDtnent 4-5.No. l. S l7-34. 19 9 0 . of'digitultelevision lor studios.CICIR [12] CICIRRecommendation601.Encodingpurameters Recommendation and Reports,ITU. vol. Xt, Geneva,1982. [13] CCITT Study Group. Working Party XVl4. DescriprionoJ Ref. Model 8 (RMS). CCIT'I Doc. 525, 19U9. "Draft Revision Recommendation of H.261: [14] CCITT StudyGroup.WorkingPartyXV/1. Video Codec For Audiovisual Servicesat px64 kbit/s". Signal Prctt'essing: Inuge (' omuni cati on, Elsevier, Yol.2:221-239. i 990. "Systolic Models And SystolicGeometry".ISCAS ('onferenc'e Rec'orrJ. [15] J.-M. Delosme, s . 2 5 0 9 - 2 5 1 21. g ft8 . _ titi_ " ' R. Baker,J. L. Salinas."A Vt.Sl Architecture For TemplateMatchingand [16] R. Dianysian. Motion E,stimation".SPIE hl. 1001 Visuul Communicutions an Intagc Procassirtl. p p . 9 0 0 - 9 0 71, 9 U U . SteuerungvonArray-Architekturerz. Institut Studienarbeit. [17] S. Dreckschmidt.Thktsync'hrone für TheoretischeNachrichtentechnik und Intbrmationsverarbeituns. Studienarbeit. UniversitätHannover.Okt. 1992. (ES2).ES2LiCPDI0LibraryDatubook.PartNo.014-0202, Ift] EuropeanSiliconStructures V e r s .N o . E 0 1 A 0 5 ,E S 2 ,Z o n e Industr ielle. 13106Rousset. Fr ance. Dec.1991. "Video SubbandVQ Codingat64kbit/susingshorr-kernel [19] M. H. A. Fadzil,T, J. Dennis. Filter Bankswith an improvedMotion EstimationTechnique".SignalProt'esing: Image ( ' o m m un i ca ti o e nd . i te db y B .Gi rod, D. Pear son, H. Yasuda, ElsevierVr . l.3. No. l . pp 3-21. February199I. [ 2 0 ] . f . A . B . F o rte s," S ysto l i cA rra y s- Fr omConcepttolm plementation".Com putc r .pp.12- 1 .fuly l9tt7. "Parallel E,.F.Deprettere, Architecture firr a Pel-Recursive l21l F..D. Frimout,J. N. Driessen, Motittn Estimation Algorithm". lEEE Transactions on ('ircuitsand Syste m,sI'or Vidco kchnologt,Vol. 2, No. 2,pp 159-16ft. June 1992. K. Shomura.K. Ohyama. [22] H. Fujiwara,M. L. Liou,M.-T,Sun,K.-M. Yang,M. Maruyama. "An AII-ASIC Implementationof a Low llit-Rate Video Clodec".IEEE Tron,sac'tions on ('ircuit,sand Systems for WdeoTechnolog,Vrl. 2, No. 2, pp 123-134..lune 1992. "Hierarchical Displacement EstimationWith t,ow Computational [23] P.Gerken,H. Amor, Effort For ApplicationsIn 64 kbit/sMovingVideoCoding".SecondInternutionulWtrkshop on 64 kbitls CodingoJ'MovingVideo,Hannover,F. R. G., Sept.l98c). "HDTV Standards".IIIEE Communications Maguzine,Vrl. 29. Nr. tl. [24] W. Habermann, S . 1 0 - 1 2A . u g u s t1 9 9 1 . ComputerArchitecture : A Quantitiv,e Approu<'lz. Morgan [25] J. H. Hennessy,D. A. Pattersctn. KaufmanPublishers Inc.,SanMateo.1990. "Ein Bewegungsschätzer mit kleiner Chip-Fläche für eincrr [26] K. Hienerwadel. hochintegrierten Video-Codecmit p.64 kbit/s".ITG-lthrkshopArchitekturund VL,SIwn Bilclcodiereryz. S. 11 - 12.Berlin. Juli 1990 "VLSI Architecturefor Block-MatchingMotion Estimatiorr l27l C..-H. Hsieh,T-P. Lin, Algorithm". IEEE Transaction,s on Circuilsand Systems Video kchnologt Vrl. 2, No. 2. for p p 1 6 9 - 1 7 5Ju , n e1 9 9 2 . "Design Of ConfigurableProcessorArrays".ISCAS [2U]M. Huber. J, Teich.L. Thiele, Conferance Recorcl, Vol. 1. pp. 970-973,New Orleans(f-A), 1990 Arc'hitec'ture. and Design.JohnWiley & Sons. [29] K. Hwang.ComputerArithmetic'-Print'iples New York 1979. "Advanced ParallelProcessing with Supercomputer Architectures". Pnrc:. o.f'the [30] K. Hwang, I E E E . V rl . 7 5 , N o . 1 0 .p p .1 3 4 8- 1379, Ocr . 1987. and ParallelProc'e,r,sing. 2. Auflage, [31] K. Hwang, F. A. Briggs. C'omputerArc'hitec'ture McGraw-Hill Book Company.New \brk, 1986 [32] SimulationModel EditorialGroup tSO/tEClJTCl/SC2/WG1l. MPEG WdeoSimulution Model Three(SM3) ISO/IEC J'fCl1/SC2/WG 11 Codineof MovinsPicturesan Asociafed Audio,July 1990. x() " Autliofor tligital 11.Codingo.fMovingPicturas andAs,sot'ialed [33] ISOiIECIJTCl SC29SC2/WG Storage Mediaat up toAbout 1.5Mbitls.Part2 Video,CD I1171-2.1991. SpringerVerlagBerlin HeidelbergNew Yrrk. 1991. l34l ts.Jähne.DigitallmageProc'essing. "Displacement Measurement andlts Applicationin InterframeImage [35] J. J. Jain,A. K. Jain, Coding".IEEE Trans.on Comm.,Vrl. COM-29, pp. 1799-180t1. July 1981. "A SystemFor Real-'[-imelmage [36] H. Jeschke,H. Vrlkers,T, Wehberg. Multiprocessor ProcessingBasedon An MIMD Architecture".Ktnferenzband From Pi.relsTtt l:cuturcs. No. 2, ESPRITBRA Workshop.pp.315-32U,Clastera-Verduzan. France,1990. " K. Gaedke,P.Pirsch, Multiprocessor performance for Real-'fimeProcessing [37] H. Jeschke, of Video Coding Applications", IEEE Transar:tions Fitr Vidco on (lircuits und Systents kchnolog, Vol. 2(2):227-230..f une 1992. "Motion Clompensated PredictiveCloding".Pror'.Int. kch. [3U] S. Kappagantula,K. R. Rao, Symposium, SPIE,SanDiego.ClA,Aug. 1983. "Motion-Compensated InterframeCodingfor [39] T, Koga,K. Iinuma,A. Hirano,Y. Iijima, Video Cionf'erencing". NTC8/, Proc.pp. G-5.3.1-G5.3.5, New Orleans.LA. Dec. 1981. "V[SI Architectures For BlockMatchingAlgorithms". DigitulSignul [40] T, Komarek,P.Pirsch, ProcessingApplied to SpaceCommunicutiort,s, ESA/E,STEC,pp. 211-217.Noordwijk,The N e t h e r l a n d s, N o v. 1 9 8 8 . "Array Architectures For Block MatchingAlgorithms".IEEL) [41] l. Komarek.P. Pirsch. Transac'tions on Circuitsand Systems. Vrl. 36, Nr. 10,pp. 1301-130tt.Oct. 19tt9. "VtSI '89 Architectures ForBkrckMatchingAlgorithms"./(7SSP [42] T. Komarek,P.Pirsch, Cont'.erenc'e Recorcl.pp.2457-2460., Glasgow,Sshottland.May 1989. '1. Komarek, P. Pirsch, "Vl-Sl-Architectures For Hierarchical Block Matching [43] Algorithms".IFIP-Workshop, Grenoble,France,pp. 16tt-1ti1Dec. l9ll9. "VLSI-Architectures l--or Hierarchical lllock Matching l44l T. Komarek, P. Pirsch, Algorithms".1S(7S Conference Record,pp. 45-48. New Orleans1..A., May 1990. PrenticeHall, EnglewoodCliff.s,l9tlU. [45] S. Y. Kung. VI-SIArray Proc'essors. VP-(3008Vitleo[inc:orler. ProductNote,AT&'t Microelectron[46] AT&T Microelectronics.,4 ics,Dept. 52AL330240, 555 Union Boulevard, Allentown,PA 1u103.April 1992. "Mapping NestedLoc'rpAlgorithmsinfo Multidimensional l47l P.-2. Lee, Z. M. Kedem, SystolicArrays".IEEE Trans.on ParullelDistributed System,;, Vol. 1(1):64-76..1an. 1990. "Pipeline InterleavedProgramrnable DSP's".IEEE [48] E. A. Lee, D. G. Messerschmidt, Transac'tionson Acoustic's, Speech, und Signal Proc:c,s.sing, Vtl. ASSP-3-5.No. 9, p p . 1 3 2 0 -1 3 3 3S, e p t.1 9 8 7 . "Silicon SolutionMergesVideo.Stills,andVoice".Elec'tronic' I)esign,Penton [49] M. Leonard, Publication,April 1992. ('CITT (MCP)VideoMotionCompensation Processt)r". [50] t-SILogicCorporation."L64720 WtJeoCompre,ssion Databook.Order No. | 14000.1551McCarthyBlvd..Milpitas,CIA 9 5 0 3 5S, e p t e m b e1r9 9 1 . "An ImageSignalMultiprocessor on a SingleOhip".IEEE [51] M. Maruyama,H. Nakahira, Journalrlf SolidStateCircuirs,Vol. 25.pp. 1476-1483, Dec. i990. "Parallel Array Architecturesfbr motion Estimation".Proc.o.f'the [52]T. H.-Y. Meng, InternationalConl'erence on ApplicationSpec'i.fic Array Proce.ssors, Barcelona,Spain.1991 - 90"Application SpecificDSP at SGS'fhomson".\SCAS ConferenceRet'ortl, [53] J. Michalina. p p . 6 2 7 - 6 3 0 ,1 9 8 9 . "ISDN-Bildtelefon-Codec auf der GrundlageeinesArray[54] 1l Micke, D. Müller, R. Heiß, Prozessor-lC".Mikro Elektronik. Nr. 3. S 116-l 19.Nlai/Juni 1991. "A 300 MOPS [ 5 5 ] T , M i n a m i . R K a s a i ,H . Y a m a u c h i ,Y . T a s h i r o . 1 . - 1l.ä k a h a s h i ,S . D a t e . Mdetr Signal Processorwith a ParallelArchitecttve" . I EEE Journulof Solid StuteCirt'uit.:. Y o l . 2 6 . p p . 1 8 6 1 t - 1 8 7 5D,e c . 1 9 9 1 . "Ein adaptivesVerfahren zur Rewegungsvektor-Schätzung". ktlloquiunt Digitula [56] P Mohr, Vicleo,systeme, Telenorma GmbH, Frankfurt, November t9[J9. "Partitioning an Mapping Algorithms int() Fixed Size [57] D. I. Moldovan, J. A. B. Fortes, SystolicArrays". IEEETransac'tions on Computer.Yol.Cl-3-5,No. l. pp. l-12. Jan. 1986. . EE [ 5 f f ] D . l . M o l d o v a n . " A D V I S : A S o f t w a r e P a c k a g e f o r t h e D e s i g n oSf y s t o l i c A r r a y s I"E Transac'tions on Computer-AidetlDesign,Vol. CIAD-6. No. 1, S.33-40. Januar l9ti7. "Advances in PictureCloclins".Pror'.of'thaILEL,. [59]] H. G. Musmann.P.Pirsch,H. J. Grallert, V r l . 7 3 , N o . 4 , p p . 5 2 3 - 5 4 f t .A p r i l 1 9 U 5 . "lnttra/lnter Mode [ 6 0 ] E . N a k a s u ,Y . S h i s h i k u i ,H . l m a i z u m i .H . N a k a n i s h i .Y . O h t s u k a , Adaptive DCT Coding System of HDTV Signals". Proc. o.f Forth Intarnutional lWtrk,shop on HDTVand beyond.Torino. Italy, September1991. "A Real Time. Software ProgrammableHDTV Signal Processor".C&C [61]|T Nishitani. SystemsResearchLaboratories.NEC Kawasaki,Japan, LSPRIT lütrkshop, Parullelsimin Image Proc'essing, pp. 7-5-8tt.Bonas,France, 1990 "An HDTV ProgrammableCodec".C&C SystemsResearch [62] S. Nogaki, M. Ohta. M. Yano. f-aboratttries, NEC Corporation, Kawasaki, Kanagawa. Japan. Forth Internationul lktrkshop on HDTV and beyontl,E,URASIP.Proceedings.Turin, ltaly. Sept. lt)91 und Rec'hnerstrukturen. Olclenbourg Verlag, [63] W. Oberschelp, G. Vrssen. Rechnerau.fbuu M ü n c h e nW i e n , 1 9 9 0 . Institut [64] R.-D. Person.Optimierungdesllntwu$s unwendungsspezifi,sc'herArray-Proze,ssoraru. für Theoretische Nachrichtentechnik und Informationsverarbeitung,Diplomarbeit. Universitäf Hannover. 1990. "WSI Design of DPCM Codecs for Video Signals". Visuul Comntunit'ution [65] P Pirsch, Sy,stems. edited by A. N. Nerravali,B. Prasada,pp.2lb-227, Nov. 1987. "A [66] P. Pirsch,H. Jeschke. MIMD multiprocessorsystemfor real-time image processing". Prot:.sl'$plEllS&T Syntposiunton Electronic'Imaging Scianceand kc'hnology, (]onf. 14-52 Image ProcessingAlgorithms and Techniquesll, San Jos6.Cal, 19()1. "Vt,Sl Architectures For Block Matching Algorithms". SPIIi Wtl. [67] P. Pirsch. T, Komarek, I00l Wsual Communic'utions And Image Processing'88,Cambridge. Mass.,pp. tttt2-ltc)1. Nov. 1988. "VI-SI Architectures tor Mdeo Signal Processing".Computer Syste ms and [6U] P. Pirsch, Software EngineeringState-of'-the4rt, eclited by P. Dewilde and J. Vanderwalle. Kluwer Academic Publishers.Dordrecht, 1992. [69]] D. A. Pucknell, K. Eshraghian. Basic' VLSFDesigrz. Prentice-Hall of Australia. Sidney,198U. _ 9L_ "DigitalHDTV C o d i n gw i t h M o t i o r rC o m p e n s a t e Idn t e r p o l a t i o n " . [ 7 0 ] A . P u r i ,B . G . H a s k e l l . Forth International Workshopon HDTV and Beyonrl,'[orino. Italy, Sept. 1991. "Regular lterative Algorithms and their Implemenfation on [71] S. K. Rao. T, Kailath, ProcessorArrays". Proceedings of the IEEE, Vol.76, No.3. pp.259-269. March 1gtttt. "Standards ConversionUsing Motion Estimaticln".SignalProt'es.sing. Vrl. 16. l72lT Reuter. S 73-79. ElsevierSciencePublishersB. V (North Holland). 1989. "Chip Setfor Motion [73] Cf. v. Rewentlow,M. Tälmi,M. frrnst,M. Grasse,S. Wolf, L. Stenger, Estimation based on Phasecorrelationand Blockmatching". Proc. of Forth International ll4trkshopon HDTV antl beyoncl,hrino, Italy, September 1991. "A VLSI for Motion Compensation".Picture (oding [74) G. Roth, P. Tholin. B. Wir6n, Symposium,Stockholm, Sweden, 19ti7. "HDTV SubbandCodingwith AdaptiveBlock Quantization".Proc.. [75] B. Schmale.U. Pestel. 'Rrrino. of Fitrth International Work,shop on HDTVund beyond, Italy. September 1991. [76] SGs-Thtlmson Microelectnrnics: STI3220 Motion Estimation Processor.Data Sheet. .fuly 1990. "Predictive CodingBasedon EfficientMotion Bstimation".Links [77] R. Srinivasan,K. R. Rao. the Future, Scienc'e Systems & Services for for Communic'utions,P. Dewilde, C. A. May, S. -521-526,IEEE/Elsevier SciencePublishersB. V. (North Hollancl).19tt4. "A FlexibleVl-Sl ArchitectureFor Full-SearchBlock-Matching[78] M.-T, Sun, K.-M. Yang. Algorithm Motion Vectur Estimation".Proc.of ISCAS 1989.S. 179-182,19U9. "A , I IiEI.: 1991 [79] S. Surtadja,B. Martin, H. Rainnie,C.-S. Wang, -50MHz Vision Processor" Custom IntegratedCircuits ConJ'erence. pp. 12.3.1-12.3.3.1991. -tamitani, M. Ohta, Y. Ooi, A. Yoshida.M. Nomura, H. KOyama. T Nishirani."An [80] I. Encoder/Decoder Chip Set fbr the M PEG Video Standard". IEEE ICASSP-92.(lS-Press. Los Alamitos. Calif.. 1992. "On The Design Ot PiecewiseRegular ProcessorArrays". Cont''erence Rec'ord [81] L. l'hiele. ISCAS 1989.Portland,Oregon. 1989. "Motion CompensatingInterpolationConsicleringCovereclancJ [82] R. Thoma, M. Bierling. Uncovered Background". SignalProc'essing. Image ('omunication,Y<tl.1, No. 2. E,lsevier. Amsterdam,pp. 191-212, Oct. 19f19. [83] G. A. Thomas, B. A. Hons. klevision Motion Measurementfor DATV' unrJ other Applic:atiorzs. BBC ResearchDepartment Report BBC RD 1987111EngeneeringDivision, The British BroadcastingCorporation,Septemberl9ll7. "Parameterizable V|Sl-Architecture tirr the Full-SearchBlock[84] L. de Vrs, M. Stegherr. Matching Algorithm". IEEE Transuction,s on Circuit,sund Systems.Vol. 36. Nr. 10. S . 1 3 0 9 - 1 3 1 6O , kt. 19U9. "VtSl-Architectures fbr the Hierarchical Block-Matching Algorithm for [85] L. de Vos, HDTV applications". SPIE Vol. 1360 Wsual (lommunications and Image Proca,s,sirtg, S. 39U-409.Lausanne.Switzerland.Okt. 1990. - 92"Architecture for a programmablereal tirne processorfol digital [tt6] T Wehberg,H. Volkers, video signals adapted to motion estimation algorithms", SPIE Wtl. I00l Visuul ('ommunir:ationsund Image Proc'essing'88.Cambridge. Mass.,pp. 90tt-916. Nov. l9ti8 "A Rrmily VLSI Designsfor the Motion (iompensation [87] K.-M. Yang, M.-T Sun, L. Wu, Block-Matching Algorithm". IEEE Transuctions on Circuitsantl S'y,rtern.r. Vrl. 36, No. 10, p p . 1 3 1 7 - 1 3 2 5O , ct. 1989. "Architecture and lmplementationof a [8t]] H. Yamauchi,Y. Täshiro.T, Minami. Y. Suzuki, Highly Parallel Single-Chip Mdeo DSP". IEEE Tran,tctction,s l:br on Circ'uitsantl Sy,stents Wdeo kc'hnologt, Vol. 2(2):207-220, June 1992. _ 93_ Anhänge A Parameterausgewählter Displacementschätzverfahren Hierarchiestufe maximalesDisplacement +tJ Schrittweite 4 Bkrckgröße M i ttelwerttiefpaßfenster Unterabtastung I6 x 1 6 4x4 + 4 + 2 2 I 1 6 xl 6 16x16 2f,. 1t2 1t4 Tabelle22: Hierarchisches f)isplacementschlitzverfähren mit drei Stul'en(Ivp t)nach de Vts und Stegherr[85],in jeder Stuf-e vollständige Suche H ierarchiestuf'e maximalesDisplacement Blockgrüße Stützpunktabstand M i ttelwerttiefpaßfenster Unterabtastung L 7 r 3 64x64 ti 28Y28 4 5x5 lt4 -5x-5 1t4 r l 12x12 2 3x3 1t2 Thbelle 23: Hierarchisches Displacementschätzverfahrenmit drei Stufen (Typ 2a) nach Bierling [9], in jeder StufeBMA auf der Basisdes krg(Dfstep search Hierarchiestufe maximalesDisplacement Blockgri)ße Stützpunktabstand Mi tteIwerttietpaßt'enste r Unterabtastuns + 1 64x64 )z 5x5 l/8 r 3 16x16 16 .lx3 U2 Tabelle 24: Hierarch_$9h.es. Displacementschät:nrerfahren mit ;z.weiStulen (1,vp 2b) nach Bierling [9], in jeder Stut'eBMA auf der Basis des l.g(Dlstep seär'ch - 94- Suchschritt +10 + 5 2 16x16 k. A. lt2 1 l6xl6 k.A maximalesDisplacement Schrittweite Blockgrüße Mitte lwerttiefpaßfenster Unterabtastung Thbelle252 Zweistufiges ixis-sezrrch auf der BasisdesBMA rnit vollständiger Suche('fyp 3) nach Hienerwadelt2(ll(k.A. : keineAngaben) Suchschritt maximalesDisplacement + 4 Schrittweite * Blockgröße 16x16 5x5 M i tte Iwertti efpaßf'en ster Unterabtastung 1t4 + 2 2 16x16 r 1 1 16x16 3)L3 U2 Thbelle26: Hierarchische Dreischrittsuche auf der Basisdeslog(Dfstep search(.Iyp4) nach Gerkenund Amor [23] Suchschritt maximalesDisplacement Blockgröße Stützpunktabstand +.4 + 2 * 1 32ß2 16 16x16 16 16x16 l6 Thbelle27: IntegralProjectionMatchingOvp 5) nachcain und sauerIl0l - 9:t, B Parameter der wichtigsten Videosignalformate Die Parallelität von Architekturen für Displacementschätzvertähren richtet sich sowohl nach der Anzahl der durchzuführendenOperationenpro Bildpunkt als auch nach der Signaltaktperiode Tp (4.1). In diesemAnhang sind die Signaltaktperioden der wichtigstenVideosignalformate zusammengestellt. Das grundlegendeFormat für Arbeiten mit digitalisiertenVideosignalenist von der (ICIR Study Group XI als CCIR Recommendation601 herausgegeben worden [12]. Hierauf beruhendie Fttrmate.bei denen von den Standardisierungen der Decoder von Bildübertragungssystemen ausgegangen wurde (Täbelle2tt).Die CCI'l-'fStudyGroup XV gingbei ihrer Ernpf'ehlun gH.26l vom Common SourceInput Format (CSIF) [12] und die MPEG beiihrem Standardvom Source Input Format (SlF) aus [33]. Die Formate von HDTV-Signalen sind wegen der nicht abgeschkrssenen Standardisierungen noch nicht f'estgelegt[2a]. Bei den CISIFund SIF-Formaten werden Bilder mit einem Hohen-zu-Seiten-Verhältnisvon 3:4 dargestellt.wohingegenbei HDTv-Signalen ein Höhen*zu-Seiten*Verhältnisvon 9:16 vorgesehenist. Durch Verdopplung der Anzahl der AbtastwertedesCICIIR-TV-signalsund der Multiplikation der Zeilenzahl mit3l4' 1619:413 ergibt sichdasFormat desHDTV-signals in Täbelle2fl.welchesmit der BezeichnungEureka 256 tür eine digitalc Übcrtragungin cler Diskussionist [-51. Typ CSIF fi,lHzl 30 Pt. x PP 4,[nsl 32U.8 8w;685 #Sil:e SIF_525 385.f1 ,,,F, 3{i HDTV 96,*5 z5 Thbelle28: Bildlogefrequenzf',Abtastrasterfür das Luminanzsignal (1.:)uncldas (lhrominanzsignal Punkte in Signaltalitperiode 7n nach(4.1)für (9,).(lrr 1t1.Zell.en).und eineAuswahlder wichtigstenM cleos ignalformale Die Einträge in Tabelle2tl beziehensich auf das Abtastrasterdes sichtbaren'lbils der flilcjer. Der Vtrllständigkeithalber sindhier auchdie ParameterdesAbtastrasters für die Komponenten des Chrominanzsignalsaufgeführt.Für eine Bewertungdes Implementierungsaufwancles genügt es hier. zwischen drei Klassen von Mdeosignalformatenzu unterscheiden.Entsprechend (4.1) sind für ClF-Bildteletonsignale (CSIF, SIF) ungetähr 71,:390 ns. für F e r n s e h s i g n a l(eC C I R - T V ) T p : 9 7 n s u n c lt ü r ' H D T V * S i g n a l e n u r T r : 1 $ n s p r 6 R i l d p u n k t erforderlich. - 9(t- C Schaltungsaufwand Eine Aufuandsabschätzungfürdie Architekturen erfblgt zweckmäßigerweise anhandvon BeispielenbereitsbekannterSchaltungen.Hierbei wird davonausgegangen, dal] eine Architektur für die Diplacementschätzung auseinzelnenModulen besteht,die über Leitungenmiteinander verbundensind. Diese Module sind in erster Linie die Processing-Blemente. lokale Speicher sowiedie Speicheradressierung und die Steuerung.Der Schaltungsaufwand der Module richtet sich nach der Transistoranzahlder losischen Gatter sowie der Verclrahtunszwischenden Gattern. Die Tiansistoranzahltür die einzelnen Gatter kann Standardzellbibliothekenwie der ECPDl0-Bibliothek [18] von EuropeanSilicon Structures(ES2) (l pm-Prozeß)entnommen werden.Abschätzungenergaben.daß mit dem Prozeßparameter 2}"alskleinsteStrukturabmessungbei der ECPD l0-Bibliothek von ES2eineTiansistorfunktion zwischen400\2< t'.7< -500\2 Flächeerfordert.Mit der Annahme.daß eine Strukturverkleinerung in der Folgeder technologischenWeiterentwicklungdiese Zahlen nur unwesentlichbeeinflußt.ergibt sich die Schaltungsflächein mm2,wenn die kleinsteStrukturabmessung LM in pm unclclieSchaltungsfläche in \2 oder clieTiansistoranzahlnt bekannt ist: : AI 2] t'U!I?' ' 10-6 : nt-Frl21 Almm2l ry. 10-6 (c'l) Unter der Annahme,daß die Signalverarbeitung wird. richtetsichclie bit-parallelausgeführt Gatteranzahlin denModulennachcJen Wortbreiten derDaten.BeieinemDisplacementschätzverfahrenauf der Grundlagedes Blockmatchings entscheidet neben der Wortbreitepro Abtastwertäin bit unteranderemauchdie AnzahlSUM der Summanden bei der Additionder DifTerenzbeträge zu der Distortion-Function(2.1I ) und die Anzahl(2' p + I )2der Kandidatenbliickein einemSuchbereich überdieWortbreiten. Die Summen der Difl'erenzbeträse undauch dasResultatder Distortion-Function werdenmit bpd(SUM.b): ,')f Ir,,gr(suM : b + ll<tg2SUMl (c.l) bit und die Displacementvektorkomponenten mit b p r l ( 1 Q+' p D \ : + \ 2 1 : 2 ' f t t - t s z Q ' p+ 1 \ 1 [log2(2'p (c.3) bit dargestellt. Als Grundlageder Diskussionüber algorithmusspezif,sche Architekturenclienendie Blocks c h a l t b i l d e r d e r P E s A D i n Bl 6 i lu d n d M S i n B i l dl T . A b w e i c h e n d v o n d e r E C P D l O - B i b l i o t h e k wurdenin Täbelle29 und30 für die Register pro Bit angenommen, 8 Transistclren da dieseZahl eherzu den für einemFull-Custom-Entwurf vergleichbaren Flächenabschätzungen führt. Bei der Verwendung ist der BeitragdesEXOR-Gattersin'l?rdesMAE-Vergleichskriteriums belle29 durch den eines Multipliziererszu ersetzen.Nach der ECPD1O-Bibliothek von gmr. Mit ES2 [1t3]erfordertbeispielsweise ein 8x8bit-Multiplizierer eineFlächevon ,s59.300 400\2 Fläche pro Tiansistorfbnktionträgt entsprechend(C.1) dieser Multiplizierer 5.600Thansistoren zu der Bilanzin Täbelle29 bei. Für die PEs AD, A und MS der Array-Architekturen ergeben sich mit den Einträgen von Tabelle29 und 30 die Tiansistoranzahlen entsprechendden folgendendrei Glcichungen: tltAD : tt + 84 'b + 32 'log2 SUM.aP (c.4) rltA:32'lb + log2SUMa) n t M S: 3 6' (, * l o g 2 S U Mu sj+ 2 4' log2Q Für den Vergleich und die Bewertung der Basistypender Arrays QN. QQ, NN. N in Kapitel 6.3 wird hier SLlMaD:N2 verwendet,wenn die Arrays keine PEs A enthaltcn.In allen übrigen Fällen ist SIJMal.r:N und SLIMA:N2. Gattertypen 'fransistoranzah pro Gatter Subtraktion Inverter * Addierer * Register 2 22 u b +| E,XOR * Register 12 t) fi b Addierer * 2 setzb.Register 22 10 Komplementierung Akkumulation bit pro Datunr t) b t b *l<tg2 SU M.qp b * l<tg2SU Map Thbelle29: Tiansistoranzahlen für die Gatter des Moduls AD (Bild 16) Gatterrypen Tiansistoranzahl Gatter Vergleich Inverter * Addierer * Register f 2 :1 -Multiplexer 2 22 8 A T Selektionder Register Vektorkomponenten * 2 :1 -Multiplexer bit pr o Datum b -rlog2 SUM*r.s b *log2 SUM145 b -llog2 SUMy5 b *1og2 SUMus Z log2 Q 2 log2 Q Thbelle30: Tiansistoranzahlen für dic Gatter desModulsMS (flild 17) Setz- und rücksetzbare Zähler lassen sich zur Adressierungvon Speicher-Arrays und zur Steuerung von Array-Architekturen verwenden. Ein Zl\hler auf der Basis von kaskadicrten 'f-Flip-Flops und einem parallelen Carry besteht in CMos-Technologie pro bit aus 26'fransistorenund einem NAND-Gatter. dessenEingangsanzahl sich nach der Wertigkeit i der jeweiligenStellerichtet.Ein setzbarermod(z)-Zählerals einfachsteZählerstrukturbesteht aus t7t7: 26' llog2zl + fkrg2zl ; - (('.-s ) I Tiansistoren[ 17].Die Tiansistoranzahlen in Täbelle31 zeigen,daßdie Transistoranzahl bei gnrßen Zählbereichengegenüberder einzelnerPEs nach (C.4) nicht mehr vernachlässigbar ist. - gfi- 16 trti 54 3L 64 ,,,,,,::;,,,;,;,;,1,.L(j li:s0 rrt6 128 256 512 1024 2048 4{)96 ' ,3ü6 35ü ' 3q6 22,4,,,' ,,,264 4:44 Tabelle 3l: Anzahl nt7 der Tiansistorenvon sertzbaren mod(z)-Zählern nach ((1.5) Der Schaltungsaufuand der Speicherrichtetsichnachder Speicherkapazität. Ein quasistatischesRegisterin CMOS-Technologie bestehtausmindestens pro bit; in NMOS[J'fransistoren Technologie sindes6 Tiansistoren pro bit [69].Speicher-Arrays dagegen bieteneinekompaktere Realisierung bei großenKapazitäten. Hier werdeneinzelneZellen über ein Systemvon orthogonalgeführtenl-eitungen(7.etlen,Spalten)direkt adressiert. Es gibt Zellry.pen mit aus sechs,drei oder einemTiansistor. WährendeineSechstransistorzelle eineFlächevon 1750\2 pro bit benötigt,sindes bei einerDreitransistorzelle bzw.bei einerEintransistrtrzelle 500 \2 und200\2 pro bit [69].Für die Aufwanclsabschätzungen hierwirclbei einemSingle-Port-SperchervonsechsundbeieinemDual-Port-speicher pro Zelleausgegangen. vonachtThansistoren - 9() D Anzahl von Svstemtaktenzum Schreibenund Speicherkapazität von lokalen Speichern Die Anzahl der Systemtaktezum Schreiben eines lokalen Speichersder Architektur für Displacementschätzvertähren bestimmt die Zugriff-sratezum Lesen weiterer Speicher,die auch für das übrige signalverarbeitende Systemzugreifbarsein müssen.In so einer hierarchischen Speicheranordnungrichtet sich die Anzahl der Systemtaktezum Lesen nach den Anfclrderung e n d e r j e w e i l su n t e r g e o r d n e t e S n p e i c h e ro d e r n a c h d e m s i g n a l v e r a r b e i t e n d e n ' l bli-l .o k a l e Speichermüssenweniger oft geschriebenwerden,sofernder lnhalt über eine lange Folgevon LesezugrifTen verwertbarist. Bei zu kleinen lokalen Speichernbestehtdann allerdingsdie Gef'ahr,daß sie wiederholt mit neuen Daten geschriebenwerden rnüssen.Damit einher geht eine hohe Datenzugriffsratezum Lesender übergeordnetenSpeicher.Griißere lokale Speicherdagegenerfordern einen höherenSchaltungsaufwand als kleinere.I-etztendlichist beim E,ntwurf von Architekturen für Displacementschätzvertahren ein zufriedenstellender Kompromiß zwischenausreichenderSpeicherkapazitätund zulässigerDatenzugrifl.srate zu finden. E,inZusammenhang zwischender Speicherkapazitätund der Anzahl der Systemtaktezum Schreibensoll hier an einem Modell hergeleitetwerden. Bei Displacementschätzverfähren auf der GrundlagedesBlockmatchings ergibtsichein Zugritt auf eine systematische Folge von einanderüberlappendenDatenf'enstern. Als Beispieleseien die Folgevon Kandidatenbliickenin einer Kandidatenblockzeile oder die Folgevon Suchbereichen in einer Blockzeile genannt.Bei Filteroperationenerfolgt der Zugritf auf die Daten eines Filterf'ensters und für das nächsteResultatauf ein gegenüberdem erstenFilterfensterverschobenemFenster.In diesenFällenbestehteinegleichmäßige vorhersagbare schrittweise Verschiebung zwischenden Datenfenstern.Diesesist die Grundlagefür die nun folgendeÜberlegung. Es wird angenommen, daßsichdie Datenim Speicherdem Bildpunktraster zuordnenl as s en. Der Speicherenthältein rechteckiges Datent'enster für B, By Bildpunkte.Mit bpd b i t p r o Datumhat der Speicherdie Kapazität CM : bpd' 8.,' B, (D.l) Bevorder Speichergelesenwerdenkann,ist eserforderlich, ihn mit den Datenzu schreiben. Die Anzahl der Systemtakte zum Schreibendes Speichers verhältsichproportionalzu cler Speicherkapazität. Mit bpc bit pro Täkt wercjenzum Schreiben c', = (rM Dp(: (D.l) Systemtakte benötigt.DasUngleichheitszeichen in (D.2)drücktaus,daf.lnur im ungünstigsten Fallder gesamteSpeicherneuzu schreiben ist.Solltensichaberim Speichelschonvor Beginn desSchreibens verwertbare Datenbefinden, ist esmäglich,dieAnzahlderTäktezumschreiben zu vermindern.So ein Fall tritt beispielsweise auf,wennverschiedene Datenfenster in t3ezug auf dasBildpunktraster einanderüberlappen. Zur Bewertung desSchreibzugriff'es sollauchhierwiebeimsignalverarbeitenden TeilderMultiprozessor-und Array-Architekturendie Anzahlder Systemtakte pro Bildpunktverwendetwerden.Als Bezugeignetsichhier die GrößeeinesBildsegmentes ausSP" SPl,Punkten.Bei der -100- von Mdeosignalen auf der (irundlageeiner Kombinationvon prädiktiver Quellencodierung Cttderierung mit Transformationscodierung und auchbei anderenweiterenblockorientierten Algorithmender Mdeosignalverarbeitung gleichmätlig ist ein tlild im allgemeinen segmentiert. Für jedesdieserSegmente wiederholen sichdanndie gleichenOperationen Mit (D.2)be[34]. trägt die Anzahlder Systemtakte pro Bilclpunkt: cPPtv .- Br' B), bptl bpc sP_,.s'Py (D.3) Das hier betrachteteModell beruht auf der Annahme.daß für eine bestimmteOperationenfolge immer auf ein Fenstervon B.' By Daten im lokalen Speicherzugegriffenwerden muß. Beim ersten Durchgangsind alle Dafen für ein Fenstel'äusB,xB' Daten neu in den Speicherzu schreiben. Jedes weitere Datenf'ensterist gegenüberdem vorangegangenen um rJieselbe Anzahl von S'r Bildpunktenverschoben.Wenn beispielsweise zueinanderjeweils um Q, Datenf'enster 5I, Rasterpunktein x-Richtung verschclbensind, ergeben sich tür das erste Datenfenster nach (D.2) bpdlbpc Br By und für jedesweiterebpdlbpc Sl'"'8, Schreibtakte.Die resultierende Anzahl der Systemtaktepro Zeile beträgtdann nach (D.3) ('PPLWinee,: bpcl. q,'@, + sr,.lQ,- l)) bp. sP.,.sPr ( D .4) Beim Blockmatchingmit der vollständigenSucheentsprichtdieseVerschiebungdem Disptacement in einer Folge von Kandidatenbliickenentlangeiner Kandidatenblockzeile. Dieseswiederholt sich mit der fblgenden Kandidatenblockzeilemit einem gleichartigenVrrwärtslauf (l-ine-Scan).Der Schreibzugrifferfblgt dann pro Suchbereichmit Q Durchläufen : Q),'('PPwtinee, : cPPwine #' Q r ,B' r . ( & + S L . ( O , - 1 ) ) s&.sPy (D.s) Bei einem sogenanntenMeander-ScandagegenwechselnVrrwärtslaufunclRückwärtslaufeinander ab (Bild 36). Mit Q, Kandidatenblockzeilen und Q. Blöcken pro Kandidatenblockzeile beni)tigtim Gegensatz, zu (D.5) das Meander-Scannur cPPlY,nea: cPPwince, t bpd . (Ol- 1)' srr,' (8, + s7"' (O.- 1)) bpc: s'P"r.s'P, - ).)( & + s L . ( a bpct.(8, + S7r, ( 0 , , 1 bw 1)) (D.6) sP_r..sP, . cppwtirr. Systemtakte. FüralleSt < B, giltCpptynrca DasMeander-Scan istdannim Sinlteines möglichstgeringenSchreibzugritl.s attraktiverals dasLine-Scan. DasSchemadesLine- oder Meander-Scans kannsichbeimBlockmatching in einerFolgevon : jedes Kandidatenblöcken für Bildsegment ausSP..,S'Py N2Bildpunkten wiecjerholen. Ein dem Line-Scanvergleichbares istauchbeimBlockmatching Schema in der Folgev<lnSuchbereichen oder bei der Tiefpaßfilterung in der Folgevon Filtert'enstern irn Bild denkbar(Kapitel3.3.1). Flierentsprichtdie Segmentgrtiße der Anzahlder Abtastwerte einesBildes:SPl.'SPl,:[)t,'pp. l { ) l- b) sq Bild 36: Line_-Scan (a) und Meander-Scan (b) in einerFolgevtxrBkrckzeilen, die grauunterlegten Bereichesind bei einerVerschiebung gegenüber dem Vorgängerblrrck neu in deJr Speicherzu schreiben Alternativzu den Speichern für einzelneDatenf'enster sindnatürlichauchSpeicherfür Zerlen vonDatent'enstern denkbar.Demnachkommenfür dasBlclckmatching nebenBlock-unclSuchbereichspeicher auchBlockzeilenspeicher undSuchbereichszeilenspeicher in Frage.f)iesevier trällewerdennun genauerdiskutiert. Ein Blockspeicher enthältdieDatenvonM Bildpunkten uncJ hatnach(D.1)eineKapazität von CM:N2 bpd. Mit clerAnnahme,claßzueinanderbenachbarte Kandiclatenbliicke um einen B i l d p u n kzt u e i n a n d eve r rsch o b esin n d.istin ( D.5)und( D.6)S4,:,SI*: I einzusetzen E s. gi bt Ka n d i d a te n b l ö cke pr :Q i n e i n e r S uchber eichszeile und Kandidatenblockz eiilm en Qr:Q Suchbereich. Die Anzahl der Systemtakte pro Bildpunktergebensich nach (D.5) für ein Line-Scan: :,rr,ri,," : cppwin,(Nr) # =Nr (n . #)rsp..!.p, (D.7) und nach (D.6) für ein Meander-Scan: : cppw,,,,,,(Nt) r ., * . #) # ( lsP*'sP"=1,7: (D.ri) E i n B l t r c k z e i l e n s p e i c h eh ra t n a c h ( D . 1 ) d i e K a p a z i t ä t C M : N . ( N + Q - D . b p d . Eine dem Meander-Scanähnlichehin- und rücklaut'ende Verschiebungeiner Blockzeileim Suchbereich ist natürlich nicht möglich (Bild 37). Mit S7": 1 ergibt sich nach (D.5) für die Anzahlder Systemtaktepro Bildpunkt: li + c P P r v t i , , ('((N Q-1)): # ( 1+ z* . # ) l.r'r',..sP,:Nt (D.e) -t)z- Bild 37: Zuordnung von inveiauf'einanderfirlgenden Blcrckzeilen, der dunkelgrauunterlegteBereich ist bci einer Vcrschiebunggcglnüberder Vrrgängerbkrkzcil-e ncu irr derl Spcicher zu schreiben Die Gleichungen(D.8) und (D.9) haben identischeErgebnisse.Das SchreibeneinesBlockzeilenspeicherserfordert ungefähr demnachgleich viel Systemtaktepro Bildpunkt wie das Schreiben eines Blockspeichersmit Meander-Scan. Ein Suchbereichsspeicher hat eine Kapazitätvon CM : (N+ O- t)2. bpd.Mit der Annahme.ciaß das Blockmatching tür.\irN-Blöcke durchgeführtwird, beträgt beim Suchbereichsspeicher clie Schrittweitefür die Verschiebungder Suchbereicheim Bild N Punkte.In (D.5) und (D.6) sincJ entsprechenddieserVerschiebung5 Z, : ST),:N einzusetzen.Die Anzahlender Suchbereiche pplN' undp1"lNr,die in (D.5) und (D.6) an der Stellefür Q, und Q, einzusetzensind.verhalren sich allerdingswegen des rechteckigenAbtastrastersder Bilder unterschiecJlich zueinancler (Täbelfe 28 in Anhang B). MitpllN Suchbereichen in einerZeile undpilN ZetlenvonSuchbereichen ergibt sich bei einer Normierung auf pp'pr,:pi'pi bei einer Verschiebung cler Suchbereicheentlang einer Folge von Suchbereichszeilen nach (D.5) für ein Line-Scan cpptvtirrc((N + e-\t) : y ! . = ,' pri ,' p . i . ( r / + e_1). + Q- 1 + rV =bpd.N+Q-1 bpc N H( ' * # (' hpc N lp;p,>(N+Q-Dt: und für Meander-Scan nach(D.6): ( ' p p wt ,. ^u c+aN\ -( e-t )at\ ) bptl I ( D .r 0 ) fi;ll t,^'t +p) (O_t+pi):ffi lq,*,,, ,-_ t,,t,.re_t (D.lt) Aus Gründender Vereintächung wird hier nichtberücksichtigt, dat}am BildrandkeineDaren für denüberdenBildrandhinausragenden TbilciesSuchbereiches verfügbarsind,da dieserAnteil im Verhältniszu der Anzahlder Abtastwerte einesBildesvergleichsweise klein ist. Ein Suchbereichszeilenspeicher hat die KapazitatCM : (N + O- l). pi . bpd.ReieinemSpeicher für alle Suchbereiche entlangden Bildzeilenentsprichtist1lj:ppl bei einemSpeicher für eine -r03, Spaltealler Suchbereicheuntereinanderistpi :p1,.Fine dem Meander-Scanähnlichehin- und rücklauf'endeVerschiebungeinesSuchbereichszeilensegmentes im Bild ist wie beim Blockzeilenspeicherauch hier nicht möglich. Die Anzahl der Systerntaktepro Bildpunkt beträgr nach (D.-5): c p p w i n , l+ ( Qt \ / - t ) ' p i ): y . o ' ' bp, (Q-1 + p) : !!'l l,tor,, pi' pi bpc (D.12) Beim Suchbereichszeilenspeicher gibt es für c'ppyy1i,,. keinen nennenswertenUnterschiedin den beiden Fällen,wenn der Speicherfür eine Zeile cldereine Spaltevon Suchbereichen ausgelegt wird. In Täbelle 32 sind die auf die Anzahl der bit pro Datum bptl bezogenenenSpeicherkapazitäten CMlbpd und die Anzahl der Schreibtaktepro Bildpunkt cppw'bpclbpdnach (D.7) bis (D.12) für die vier hier diskutiertenSpeicher[penals Funktionder Blockgri)ßeN tür Q:2. N, Q : N, unci in einer Blockzeilezusammengestellt. Hierbei ergibtsichQ ausdem Q: N12Kandidatenblcicke m a x i m a l e nD i s p l a c e m e npt e n t s p r e c h e n Q d : 2 . p + 7 : 2 . p . H i e r a u f b e r u h td i e D a r s t e l l u n g der Anzahlen von Schreibtaktenpro Bildpunkt über den Speicherkapazitäten in Bilcl 3tt für 16x16-Blöcke. Q : 2' N :::':'::: : ' Rfockspbiche,f ,,,' t'M lbpd cppwti,te' bpclbpd : '::j'::': ::': j':::::] Q : N Q: NlZ '':: CppW,nca'bpc'/bpd ß1,ü13kiii't'in#i'äk4t"''' cMI bpd cppwitrc' bpclbpd Suchbere,ichsspeithe,r {'Mlbpd cpptvtitte' bpclbpt cppwm,'' bpclbpd 'su*ffi.,u*'iürtsü11b"..,.' {'M /bpd speicher ,,,,,'' :' cpptni,ta'bpc/bpd 7,,12 6'N 9 v,12 2'N :.1v2-,lr 9 z.N2-N : 9 ' N z- 6 . N :4'N2-4'N a -) A a 4 2 I : 3'N'pj 1 =2.N.pj 1 1u'2 s l 4 'N 13l4 3 1 2 'N 2- N 1 ?l 4 : 9 1 4' N 2- 3 ' 1 v l I a a / 1 :312'N'pi 1 Täbelle32: Auf die Anzahl der bit pro Datum bpdbezogenene Speicherkapazitiiten C'Mlbptt und Anzahlder Schreibtakte pro Bildpunktipptv' ltli'lbpd für eineAuswahlvon vier Speichg.rffpen Bilclpunkt1qt 0=2'N.Q=N und Q:N12 (1 wahlweise odcr Bildzeilenanzahl) Suchbereichsspeicher kommen im Vergleichzu Bkrckspeichern mit wesentlichwenigerSchreibtakten pro Bildpunkt aus: sie sind aber auch größer.Deshalb sind Suchbereichs-ocler auch Suchbereichszeilenspeicher als Hauptspeicherfür die gemeinsameNutzung durch parallele signalverarbeitende Einheiten interessant.Die KapazitätdieserSpeicherbeträgt in dem Beispielvon Bild 38 das 32-fäche der einesBlockspeichers. Hiermit ergibt sichaber auch ein enrsprechendhoher Schaltungsaufwand. Blockzeilen-oder Suchbereichsspeicher stelleneinengu- * 1 0 4- ten Kompromiß zwischen Schaltungsaufwandund Schreibzugriffdar. Blockspeichereigenen sich wegen ihrer vergleichsweisen kleinen Kapazitätals lokale Speicherbei den parallelensignalverarbeitenden Einheiten.Die lokalen Blockspeicherkijnnen dann beispielsrveise mit den Inhalten aus übergeordnetenSuchbereichsspeichern oder Suchbereichszeilenspeichern geschriebenwerden. bpc' t'PPr,v' iDpa Q:32 Ot I Q: : I1 6 A B l o c k rs o e i c h e r g:8 "'\ .':i:\ i ,,\ o l- ine- ssan ä ö:. , ' \ \ o Meander-Scan j \ T'\ \ \.ut.,.uzeirenspeicher I''\ ?+-"-*,,,,,,, .i..,...,,\ \ ;::::: : \\ \ .'.\ .i.r......: \\ , ,',., ,i, ,.. ,., :il :i:, :,', i: :. ; ' :\\ ' ," ,'\ , ," " " ' r-i{ , \ \. Suchber eichsspeicher - : : : .... :,,i:,,i1',',,.,,..ffi.........,..... \^,,,,=,,,,,,,,,,, . . . . . . . r t r : .i.:: * . : \ ,,,,,.,..'::l:,,,,,' .'i.'jlli,lji...ll.l..\ \.".,,.'.,,.,.,.,. ::::l, ,'-\ .'ffilir ,:::,,, 'b'.,i.''.:l.:.:.:.. ',; -\ ,i,;.;,.::',.'..'}*.*,...ü.,',,',,,...,,..,:.' ,,',' .. ,i,} T*{i1,,,t.,,,,,. ,,,,,:: t"i3l.tJ:i.-.-fft' rLrril \- ('M . Dpd Bifd 38: Auf die bit pro Datum bpd normierteAnzahlvon Schrcibtakten q)pw pro tsilclpunkt überder auf die bit bpd pro Datum normierteSpeicherkap azitätCM für die ALr.swahl von Speichern ausTäbelle32 für N:16, pi:352 und drei unterschieclliche Anzahlen von Kandidatenblöcken in einerBlockzeileQ (bpc- Anzahlder in clieSpeichergeschriebencn bit pro Systemtakt) , t { ) 5- E Kapazität der Speicherin einer Multiprozessorarchitektur In diesemAnhangsolldie Kapazitätderhierarchischen Speicheranordnung in der Multiprozesstrrarchitektur abgeschätzt werden.FürdenProgrammablauf undDatentransfer sindzweiAlternativenbesonders geeignet,die in Kapitel5.3 beschrieben sind. In einer Architekturmit kleinenlokalenSpeichern in den P[:swerdendie Datennachdenr Overlap-Save-Schema in Bild 19überdenBustransferiert. Die kleinenlokalenSpeicher in den PEsgewähren einenZugrift aufdie DatenBS2einesSuchbereiches unddieBR2einesRef'erenzblockes.In jedemPE befindetsichbeibpdbit pro Datumein lokalerSingle-Port-Speicher mit der Kapazität (.M n' : bpcl' (BS" + BRz) (E.1) Bei einerDual-Prtrt-Struktur sindje ein gleichgroßerSchreib- und Lesebereicherforderlich. Hierdurchverdoppeltsichdie Kapazitätv o n ( E . 1 ) . Ein Dual-Port-Segmentzeilenspeicherdagegen enthält die Daten ganzet tlildzeilen aus pp Punkten. In einer Folge von Segmentzeilenverschiebtsich das Displacementschätzverfahren bezüglichdes Bildpunktrastersum N ZeiIen, so daß jeweilspp. N Daten aus dem Such- uncl Ref'erenzbild zu schreibensind.Der Lesebereichbestehtfür die Suchbereichsdaten ausBJ uncl für die Ref'erenzblockdatenaus BR Zellen. Der Dual-Port-Segmentzeilenspeicherhat clamit eine Kapazitätvon ('M,srr;: bpct'pp'(BS + BR + 2'N) (E.2) Im Segmentzeilenspeicher sind die Daten so wie die der Suchbereiche und Ref'erenzbliicke im Abtastrasterdes Bildes angeordnet.Somit sind in den lokalen Single-Port-speichernuncJim Segmentzeilenspeicher einzelneDaten teilweisemehrfachgespeichert. Um den Schaltungsaut'wand für die Speicherzu verminclern,ist es möglich,den Segmentzeilenspeicher in np1,gleich große lokale Speicherauf2uspaltenund die Teileals grrißerelokale Speicherin c1enPEs clirekt einzusetzen. Jederdiesergroßenlokalen Speicherenthältdie Daten von BS2+ N . 85' . (nv- I ) Suchbilclciaren und BR2+N'BÄ'(nv-l) Referenzblockclaten. nv entsprichtder Anzahl der Segmenteausje Sf2 nildpunkten, für welchein einem Processing-Element clieOperationenausgeführtwerclen (vgl. Bild 14).WegendesVorschubsum N Bildpunktein der trolgevon Blockzeilenkommt noch einmal ein Schreibbereichfür N' BS + N2' (ny-7) und N . BR + N2' (nv-I) Punkte hinzu. Hiermit beträgt die Kapazitäteinesgroßenlokalen Speichers cM pEr,,: bpcl'(BS2+ BRz + N'(Bs + BR)) + b p d . ( N . ( B s+ B R ) + 2 . N 1 . @ v - r ) (E.3) : bpd' (gsz+ BR2-2' tvz* nv. (N.(Bs + BR) + 2' N\) lm Vergleichzu (E.1) fällt hier die Kapazitätder kleinenlokalenSingle-Port-Speicher geringer als die einesgroßen lokalen Dual-Port-Speichersnach (E.3) aus CMp1.. 1('Mpt;ur. Mit n7,7, PF.s ergibtsichdie gesamteSpeicherkapazitätausder Summeder Kapazitätender lokalenSpeicher _ t06_ nach (E.1) oder (E.3) und der KapazitätdesSegmentzeilenspeichers nach(E.2). In einer Multiprozessorarchitekturdusnp6 PEs mit kleinen krkalen Speichernhaben die Speichereine Gesamtkapazitätvon CMt: CM526 * npn'CMp1, ^^S 1 2 : b p d 'l| p o ' (, ^B, , S+ B R + 2 ' N ) * n p t ':(. B + B R 1/ ) \ und in der Multiprozessorarchitektur ausPEsmit großenlokalenSpeichern cM2 : npp;'cM py,,, : b p d ' ( p p '( B s + B R + 2 ' l \ \ * n p r , ' ( g s z+ B R 2 - 2 ' l l ) ) In beiden Gleichungenergibt sich der von der PE-Anzahlunabhängige konstanteAnteil pp' (BS+ BR + 2'N), welcherderKapazitäteinesSegmentzeilenspeichers (E.2).Mit entspricht ' großenlokalenSpeichern in denPEsistdieSpeicherkapazitätumbpc{' ftpr:.'2N kleineralsmit kleinenlokalenSpeichern und einemSegmentzeilenspeicher. - t07, F SystematischeAbbildung des Blockmatching-Algorithmus auf Array - Architekturen Mit dem Space-Time-Mapping-Abbildungsverfahren ist es miiglich.die in einem Algorithmus spezifiziertenFunktionenauf die Struktureiner Architekturauslokal verbundenenProcessingElementen zu übertragen[a5][58][71].Das systematische Vrrgehen erleichtertden Entwurf neuer Arrays und erlaubt eine Dokumentationdes zeitlichenAblaut'esder Operationsausführung und des Datentransfers. In diesemAnhangwird zunächstein möglichstallgemeingültiger Dependence-Graph(DG) des Bltrckmatchingsbeschrieben.Durch eine T.eiteinteilungs-und Projektionsprozedurergeben sich aus dem DG mehrereAlternativenvon Signalflußgraphen (SFG),welchedie Struktur von Array-Architekturen beschreiben.Da rJieT.eiteinteilungs-und Projektionsprozedurmehrere Lirsungenergibt, setzt sich die Beschreibungdes Abbildungsverfahrens an einigenspeziellen Beispielentort, die auch zu den Arrays in Kapitel 6.2 fiihren. F.l Dependence-Graphfür den Blockmatching-Algorithmus Die BeschreibungeinesSystemsdurch einen DG bedingt die Auf,spaltung des Algorithmusin Basisoperationenkombiniert mit einer Lokalisierungder Variablen.Die Basisoperationen für das Blockmatchingsind bereitsin Täbelle 13 (Kapitel 4.4)eingerragen. Wegender unveränclerlichenOperationsfitlgenD-B-AsowieM-Sisteszweckmäßig.dieseFolgenjeweilsgemein'lyp sam in einem Knoten darzustellen,die auf Processing-Elemente (Ptrs)vom AD und vom Typ MS abgebildetwerden (llild 16 und t7 in Kapitel 5.2.1.2). Durch die Lokalisierungder Variablenwerden clieErgebnisseder Basisoperationen den lokalen Variablennur einmal zugewiesen, um Kommunikationskonfliktein clerArchitektur zu vermeiden ("single assignment",[45]). Daher enthält der DG keine Kanren, die als Schleif'eauf den Knoten weisen,in dem die Variable geschriebenwird. Die lokalen Variablensinclim einfachstenFall vttllständigdurch alle in den VariablendesAlgorithmusverwendetenIncJizes incliziert. Für dasBlockmatchingenthaltendie Variablender Gleichungen (2.11) uncl(2.13)clievier lndizesi, k, m und n. Um darüberhinausgehend das gesamteBlockmatchinginnerhalb eines Bif desvollständig im DG zu spezifizieren.sind noch wie in Bild I dargestelltciiezwei Ortskoordinatenx: (x,y)zu verwenden.die die Positionder Stützpunkteim Bild beschreiben.Ref'erenzblock- und Suchbereichsdaten unterscheidensichdadurch.daß sie zwei verschieclenen Bildern auseiner Folge entnommenwerden.Hiermit kommt ein siebter(Zeit-) Inclexhinzu.so rlaßder vollständigeDG für dasRlockmatchingin einemsiebendimensionaler (7-Dz) Inciexraumautgespannt ist. Eine direkte Überführung cles7-D-DG in ein Array ergibt eine unwirtschatilicheLcisung.Im 7-D DG des Blockmatchingsentsprichtdie Anzahl der Knoten der der clurchzuführenden Operationenpro Bild. Bei einemVergleichdieserAnzahlenin Täbelle5 mit dem für eine Echtzeitfähigkeit tatsächlicherforderlichenSpeedupin'tbbelle 9 zeigtsich.cJaßso eine Architektur absolut überdimensioniert ist. Außerdem läßt die Silizium-Technologie nur clie Schaltungsanordnung in einer Ebene auf dem Wafer zu, so daf.lein Array mit der Struktur cles 7-D DG langeKommunikationsverbindungen zwischennicht direkt auf dem Waferangeordneten PEs ertordert. Es ist daher erforderlich,das Problemder Proiektionund damit den DG zu - l0tt- partitionieren,um kleinere aber noch ausreichendschnelleArchitekturenzu erhalten.Ansätze für die Partitionierungfinden sichim Parallelismus desAlgorithmus.Dieserergibt sichzwischen OperationenbenachbarterSuchbereiche. denen zwischenKandidatenbli)cken und denen zwischeneinzelnenBildpunkten.[n dieserReihenfblgeergibt sich beim Blockmatchingauch eine Hierarchie der Operationen,die sich in der Struktur des DGs darstellt. Für das Blockmatchingist essinnvoll,nur den DG zu betrachten,der die Operationenund Datenabhängigkeitenfür einen Suchbereichbeschreibt.Entsprechencl den Gleichungen(2.1l) und (2. l3) ist dieserDG in einem 4-D tndexraumaufgespannt, dessenKoordinatenachsen sichaus den vier Indizesi, k, m und rz ergeben.Die lokalen Variablendes Blockmatchingssind durch alle vier in diesenGleichungenvorkommendenIndizesvollständigindiziert.So wird in lokalis i e r t e r F o r m v o n ( 2 . l . 1 ) . 1 ( s p ( i , k ) - s s ( i * m , k + n ) )m i t a n d e r e n R e s u l t a t e nz u d e r S u m m e D(i,k,m,n) addiert. Nach N2-1 Additionen entsprichtcJerWert von D(i,k,rn.n)dem Resultat df(m,n).Diese Summewird mit der bisherinnerhalbeinesSuchbereiches gefundenenkleinsten Summemctf(m,n)verglichen(2.13).Mit der Bezeichnungu(nt,n)für die kleinere Summe gibt esin lcrkalisierter Form bis zu Q2Yariablen[](i.k,m,n).Das Single-Assignment-Prinzip läßt sich auchauf die globalenSuchbereichs-und Referenzblockdaten anwenden.die für mehrereOperationen gebraucht werden. I-etztendlichergeben sich für das Bkrckmatchingnach (2.11) u n d ( 2 . 1 3 )d i e v i e r l o k a l e nV a r i a b l e nS s ( i , k , m , n )S, p ( i , k , m , n D ) , ( i , k , m , n )u n d U ( i , h m , n ) . nl.I Kantenvektoren des Dependence-Graphen Die lokalisierten Variablenwerdenim DG zwischen denKnotenentlangvon Kantenvektoren e transferiert. Der DG für dasBlockmatching wirddurchdieKantenvektoren uncJ die Knutenmit dem Ortsvektorc dargestellt. Für dasBlockmatching befindensichdie Knotenim lndexraum in den vom Algorithmusvorgegebenen Indexgrenzen: c : ( i . k , m . n ) :1 < i , k < N , 0 < m , n . ? ' p ( F . 1) Sei c1 der Ortsvektor des Knotens mit der zuerstund c2 der des Knotensmit der anschließend ausgeführtenOperation. gilt für die Operationszeitpunkte: r(c1)<t(c). Der Kantenvektorentsprichtdann: € : c2-cy. l(c;) < l(c2) ( F .2) Bei assoziativenOperationenist auch die F'estlegung t(c1)> t(c) möglich. Sie lassenentsprechend (F.2) im DG zwei zueinanderentgegengesetzte Kantenvektorrichtungen zu. Die Richtung der Kantenvektorenläßt sich an dem Beispielder lokalen Summenvariablen D(i,k,m,n) erklären. Da für jeden durch m und n spezifiziertenKandidatenblockdie Addition mit den OperationenAD bzw. A neu begonnenund bis zur Summedf(m,n)abgeschlossen wird. unterscheidensich die transf'erierten lokalen VariablenD(i,k,m,n)für jeden Kandidatenblock nur durch die lndizesi und k und nicht durch die lndizesm und n. Die VariablenD(i,k,m,n\werden deshalb nur zwischen den Knoten AD im DG transferiert. deren Ortsvektoren cAD: (i.k,m,n)gleicheKompclnentenm und n haben.Nach (F.2)ist dann ep : (epi,e11p,0,0). Der Vektor ep beschreibtden Transf'er D(i,k,m,n)orthogonalzu einer Fläche der Summenvariablen im lndexraum.welche durch die Koordinatenachsenru und rz aufgespanntwird. Die beiden Komponenten cplund ep6 richten sich nach der Operationsfolge.Sie werden crst im wcitcrcn Verl auf des Ab bi Id ungsverfahrens f'estge Iegt. _ I0!)_ Es ist wünschenswert, auch für alle übrigen Variablensp(i,k),,s5(i*m,k*n) und mdJ'@t,n)clie Kantenvektorenes,eRund ey systematisch aus der lndizierungabzuleiten.Hierfür eignetsich ein ausder l,iteratur bekannterAnsatz[15][fJ1l.Die gesuchtenKantenvektorene stehenorthogonal zu den Zeilenvektorenvon sogenanntenT-spaltigen Index-Mapping-MatrizenQ. f entsprichtder Anzahl der im AlgorithmusvorkommendenIndizes.Dre l-ösungdesfolgendenGleichungssystems ergibt die gesuchtenKomponentender Kantenvektorene: Q ' e*e,j : 0 ( t-.3) Der gesuchteVektor e für die lokalisierteVariableweist orthogonalzu einer Flächeim Indexraum, welche durch die Zeilenvektorender Index-Mapping-Matrixaufgespanntwird. Bei der SummenvariablenD(i,k,m.n'\weisendieseZeilenvektorenin Richtunsder Koordinatenachsen m und n: Ql :[slrä?] Allgemeinläßtsichdie lndex-Mapping-Matrix ausder Indizierung x der nichtkrkalisierren Variablenbzw.demProduktder tndex-Mapping-Matrix i undeinernOtTQ mit demIndexvektor s e t v e k t oi sr h e r l e i t e [n1 5 ] [ U 1 ] : 1 : Q ' i 7 -+ i!, ( F .4) Der ofTsetvektor is beschreibt konstante Anteilein der tndizierung. Er istbeimBlockmatc hi ng für alle Variablen0. und kann daherhier vernachlässist werden. M i t d e m I n d e x v e k t o i, : ( i , k . m , n ) e r g e b e ns i c hb e i d e r M u l t i p l i k a t i o nv o n Q p m i t i d i e I n d i z e s der Summenvariable n dJ''(m, n): ('r): :[rlrÄ?] Qrl t Auf die gleicheWeiseergibtsichfür die übrigenVariablen + m,k+n) uncJ s7i(i,k). ,s5(i mctf'(m,n) (F-.4) mit unc, er,: es: eu: [alu] [,ull] [;n[]] Das Gleichungssystem (F.3)ist für die Index-Mapping-Matrizennicht vollständigl0sbar.Deshalb verbleibenhier mit e: (ei,ep,e,,,,,€,,) als LösungenallgemeinverwendbareIleziehungenzwischenden Vektorkomponentenvon €s,€R, elrund e17. In einerkompaktenDarstellungsinddiese Vektoren als Spaltenin fblgenderVektormatrixzusammengetäßt: n : [.ot er'l' eD't'"r'r): H*t,,I,1 (F.s) - I l()- F.1.2 Struktur des Dependence-Graphen Die Struktur des 4-D DG für das Blockmatchingist in der zweidimensionalen Ebeneeincr Abbildung nicht ohne weiteresdarstellbar.Ein 4-D DG entziehtsich dem menschlichenVrrstellungsvermtigen. Die beiden Beispielein diesemKapitel hier sin<jin Hinsicht auf clieweireren Schrittedes Abbildungsverfahrens gewählt. Um ein Array aus regulär miteinanderverbundenenPEs zu erhalten,ist es erforderlich,clie Knoten mit dem Ortsvektorc auf den PunkteneinesregulärenGittersim Indcxraumzu positionieren.DiesesGitter ergibt sich beispielsweise in der Anordnungvon Bild 39. DiesesBilcJzeigt die Positionen,in denen sich die Knoten des DG befinden,welchedie bilclpunktorientierren Operationenin den PEs AD beschreiben.Die Knoten für die PEs AD sind in Ebenen parallel zur ik-Ebene angeordnet.Q dieserEbenenbeschreibendie Operationenfür eine KancliclatenbfockzeileundQ dieserZellen entlangdem Indexn angeordnetdie Operationenfür einen ganzenSuchbereich. Kandidatenblock Kandidatenblockzeile Bild 39: Positionen der Knotendes Dependence-Graphen im vierdimensiunalen Inclexraunr für Q:6 Kandidatenbliicke (N:4) in'einertskrckzeiie und 4x4-Blöcke Alternativ zu der Darstellungin Bild 39 ist die vollständiganclereKnotenanordnungin tsilcJ40 müglich, die den gleichenAlgorithmus beschreibt.Hier sind clieKnoren des DG, welche clie bildpunktorientiertenOperationen in den PEs AD beschreiben,in Ebenen parallel zu cler mn-Ebene angeordnet.Die Knotenanordnunginnerhalbeiner Ebenerichtet sich nachclerl.age der Suchpunkteim Bild. In jeder Ebeneparallelzu dermn-E.benewerclenalle Operationen mit den gleichenRef'erenzbkrckdaten durchgeführt.Der vollstäntJige DG bestehtausN2 clieser Ebenen.lnnerhalb jeder Ebene befinden sichQ2 Knoten vom Typ AD. Genau genommen ergibt eine Projektion der Knoten des 4-D DG für das tslockmatchingin einen ikm-Raum die gleicheAnordnungwie in Bild 39 und eine Projektionin cJenimn-Raum die gleicheAnordnungwie in Bild 40. In beidenRillen sindkeine Knoten ineinanclerprojiziert. - t t t t I I - Positionder Kandidatenblircke ; .'..iiii.iiii.l f-i,......: i.!..',.!.9 Bild 40: Lqge {er Knoten des Dependence-Graphen im vierdirnensionalen Inclcxraunr1'ür (l/: 4) in einerBlockzeileaus4x4-Blt)cken Q' :6' Kandidatenblticke Auf eine Darstellungder Kantenvektorenwurde in den Bildern39 uncl40 wegender besseren Übersichtnoch verzichtet.Außerdemist clieRichtungclerKantenvektorene in (F.-5)noch nicht endgültig festgelegt.Es kann aber davon ausgegangen werden, claßzueinanclerorthogonale Vektoren sich auf einen ebenfällsorthogonalenDatentransf'er in der Architektur abbikJenlass e n( S e r i e n - P a r a l l e l s t r u k tiunr B i l d 1 8 i n K a p i t e l 5 . 2 . 2 ) . l nd e m g e w ä h l t e nB e i s p i e d l er SerienParallelstrukturvon Bild 4l wird die Addition in den Knoten AD vollstäncligelsr über cJen Index k und anschließendüber den lndex i in Knoten vom Typ A clurchgeführt. Zwischenclen Knoten werden über die zueinander orfhogonalen Vektoren elii: (ep,,0.0.0) und eDk: (O.epa,0,0) die lokalisiertenVariablenD;(i,k,m.n)undDp(i,k,m,n)transferiert.BeideVektoren ergebenin (F.5) die Summe €D: e14p*epi. Wie bei den OperationenAD und A wird für die Operation MS ebenfällseine Serien-parallelStruktur im DG angenommen. Dieses entspricht einer Suche nach cJerkleinsten Summe mdf(m,n)zunächstinnerhalbeinzelnerund danachin cJerFolge ganzerKandiclatenblockzeilen. Auch hier werden die lokalisiertenVariablen LJ,,,(i,k,m,n) uncJU,,(i,k,m,n)über die Vektoren Eunt: (0,0,e1t,,,,0) und Eun:(0.0.0,ey,,) im DG transferiert. Nach dem Vorbild der Vektorene2 und eu werdenauchdie übrigenin (F.5)spezifizierrenKantenvektorenin jeweils zwei zueinanderorthogonaleVektoren zerlegt: E _ ltu"'t.ep,,7' e5;r 0 0 0 ["; €Rn e567 epit' eplr't' es,rr'I e^si 0 eDi 0 e.sÄ 0 -e .si 0 0 0 -cSt 0 0 eDk 0 0 "r,,rtf (r.6) 0 0 € r,tnt 0 ,[] Die beidenHilt'skonstruktionen in Bild 39 und 40 sinddie Grundlagetür die irnweiterenVerlauf durchgeführte Zeiteinteilungsund Projektionsprozedur. - LtL- i <-l o Yk AD Bild 4l: TciledesDependence-Graphen in Serien-Parallel-Struktur mit den Kantenvektrlrerr e 7 r 4u l l d e f l ; F.2 Zeiteinteilungs- und Projektionsprozedur Durch die Zeiteinteilungs- und Projektionsprozedurwird der 4-D DG des Bkrckmatchings schrittweiseauf einenein- oder zweidimensionalen Signaltlußgraphen (SFG) abgebildet.Wenn verschiedeneKn<ttendesDG auf einen einzigenim SFG projiziertwerden.ist clursheine Zeiteinteilungder Operationendafür zu sorgen,daß dieseverschiedenen Operationenauch nacheinanderdurchgefi"ihrt werden. Bei der Diskussion hier wird ausschließlichvon einer linearen Zeiteintetlungsuncl Projektionsprozedur ausgegangen.E,inelineare Zeiteinterlungergibt leicht realisierbareAbläuf'eder Operationen im Array. Diese läßt sich durch einen Zeiteinteilungsvektol's ("time-schedulevector", [a5]) im Indexraumspezifizieren.Mit diesemVektor wird den einzelnenKnoten mit den Ortsvektorenc ein Operationszeitpunkt zugewiesen[45][-5tt][71]. Für-dasBeispielaus(F.2) mit den zwei Knoten c1 und c2 gilt dann: / ( c 1 ): s "l < l(c2): s '"1 Die Differenzder Operationszeitpunkte entspricht der Verzögerung, die dem Kantenvektor e nach(F.2)zwischenden Knoten c1und c2ztrzuordnen ist: A r ( e ) :t ( 9 ) - l ( c r ) : s ' ( c z - . , ) ' ' r : s ' e t' r > 0 (F.7) r ist eineZeiteinheit.die bei einermehrfachen Durchführung derZeiteinteilungsund Projektionsprozedur vonBedeutung wird.Anhandvon(F.7)sindbeigegebenem Zeiteinteilungsvektor die bis zu diesemSchrittdesAbbildungsverfährens nochnichtfestgelegten Komponenten der Vektorene in (F.6)so festzulegen, daßdie Kausalität mit A/(e)> 0 immerseder Operationen w a h r tb l e i b t. - ll-1- Die Anzahl der einem KantenvektorzugeordnetenZeiteinheifenentsprichtin einem Array der Registeranzahlzwischenzwei PE,s.Beim Pipeliningist es erfbrderlich.den Vektoren e mindt-'stenseine Zeiteinheit A/(e) > 0 zuzuordnen.Für global ben(itigteVariablen sind in Array-Architekturen Kommunikationsverbindungen ohne Registerdenkbar (broadcast-lines).Diese sind tür einen geringerenSchaltungsaufwandes von Vorteil.wenn die gleicheVariablefür mehrere Operationen verwendetwird. In diesemFall ist Ar(e):0. Durch eine geeigneteAuswahl desZeiteinteilungsvektors s und der Komponentender Vektorene läßt sichdie Anzahl der Registerund damit auch der Schaltungsaufwand einesArrays beeinflussen und sogarminimieren. Durch die Projektionvon Knoten und Vektorendes DG auf die einesSFG dürfen keine 7.uweisungengleichzeitigaktiver Knoten auf den gleichenKnoten erfblgen.Es muß die durc:hden Zeiteinteilungsvektors spezifizierteOperationenfirlgeauch in der Folge ineinanderprojizierter K n o t e n e r h a l t e nb l e i b e n[ a - 5 ] [ 5 8 ] [ 7] :1 s'd7 > o (F-.ti) Bei der ProjektionverschiedenerKnotenartenineinanderentstehenneueKnotenartenim SFCi. welcheeine Folge verschiedenerOperationenbeschreiben.Diesesführt zu Architekturenaus PEs,die eingeschränktprogrammierbarePnrzessoren enthalten.Bei der Projektionausschließlich gleichartigerKnotenartendes DG aufeinanderentstehennichtprogrammierbare PEs.wie sie in systolischenArrays vttrkommen. Der Projektionsvektor steht senkrecht zu den Zeilenvektoren einer n. (n-l)-ProzessorbasisP,,r,-1.deren n-l Zeilenvektorenden n-1-dimensionalen(n-1-D) Indexraumnach cler Pnrjektion auf.spannen [45]: ' d , 1 :' 0 P n . n *r (F.e) Die Prozessorbasis und der Zeiteinteilungsvektor beschreiben vollstänclig cJieAbbilclung eines n-D DG auf einenn-1-D SFG [45].Das ErgebnisdieserProjektionsinddie Operationszeirpunkte/(9,-r)und die Ortsvektoren für die Knotenin Matrixschreibweisel4Tl: c,1-1 : .,. ['!:',,,''] ['r;l:;'] ['tt] (F.r0) Analogdazuergibtsichmit (F.2)und(F.7)dieVerzrigerungen At(Eo,r) derVekrorenin clerVekt o r m a t r i xE , - 1 : : E.* [^'$::,'']['u;;:;'] [^F''] ( F . l1 ) Die Projektionkann mehrfächdurchgeführt werden,um SFGsund damitletztendlich Arrays mit kleinerDimensionzu erhalten.Vor der erstenProjektionsindin (F,10)uncl(F.I I ) l(c,,): 1; u n d At ( E , ): 0 e i n zu se tze n . Vor jedemweiterenDurchgangeinerZeiteinteilung und einerProjektionwird der SFGalsein Instance-Graph (lG) betrachtetIa5].Im Instance-Graph lauf'enalle Operationen gleichzeitig wie beim DG innerhalbder Zeitmit der Dauerr, ab. Durchdie weitereZeiteinteilung wird - n4- 1, in kürzere Einheitenr,r (r/r-l unterteilt.Diese Unterteilungrichtetsich nach der AnzahlM,, der ineinander projizierten Knoten, rJem Zeiteinteilungsvektors,, und dem Projektionsvektor d,, [45]: | + ( , 1 4 , lt )- ' s , , ' d , = l ft *= ( F .l 2 ) Durch eine Zeiteinteilungs- und Pmjektionsprozedurergeben sich aus den beiden 4-D DGs in Bild 39 und 40 mehrere 3-D SFGs, die als Grundlagetür die Beschreibungder Arrays in Kapitel 6.2 verwendetwerden.Projektionsrichtungen entlangden Koordinatenachsen. clieden Indexraum auf,spannen, tühren mit den Vektoren in (F.6)zu regulär vernetztenrechteckigen Arrays mit überwiegendorthogonalenDatenverbindungen. n3 DreidimensionaleSignalflußgraphen Durch eine Projektiondes4-D SFGsnachBild 39 entlangder n-Achse(Projekrionsvekror da: (0,0,0,1 )) entstehtein 3-D SFG im ikm-Raum.Der Zeiteinteilungsvekror sa: (0.0,0.l) ergibt die unkomplizierteste Zeiteinteilung, erfülltdie Bedingung von (F7) und führt zu einem regulären DatenzugrifTüber die Randknoten desSFG.Mit jederneuenZeiteinheitwercJer-r über die entlangda ineinanderprojiziertenRandknotenneueDatenin clasArray transferiert. Die Prozessorbasis Pr. :[i:lii] erfülltmit d+Gleichung(F-.9). Damitnach(F.7)cJieAnzahlclerVerzögerungseinheiten so klein wie miiglichundpositiv(Kausalität) bleibt,werdenbeider Projektion clieKompr)nenren von E4 . rn c l i n ( F . 6 z) u c s k : - 1 . c R r : 1 u n de u n : 1 g e s e t zNt .a c hG l e i c h u n g ( F . 1u0n)c(l F . 1 1 ) i smt i rp + . u da dann : ['tt']l,,i-;,,] [o,ru.rl E3 |.'l ij L rl o. rr o. o. 0, e^si 0 0 -1 -esr 0 eL)i 0 0 0 en* 0 0 0 es,,, l- 1,,,:,,, ll Um die Beschreibungzusfraften,wird hier von folgenderKantenvektormatrixausgegangcn: B , : 1n,rit. :I 0 0 | enut' e.si7' e.sft7-ertit' ent'r eltn;t erJtt,'] 0 0 0 1 0 0 -1 - r 0 0 0 1 0 1 0 0 0 1 0 0 t ) DieseMatrix läßtwie in Bild 42 (W n1)und llild 43 (Typnz)dargestellt mehreregraphische Darstellungen zu. Für die lokalenVariablenSp(i,k,m,n) ergebensichin beiden3--DSFGsciie : (0.0,0)undep,,, : (0,0,1).Grundsätzlich beidenVektoren€R,r istesmijglich.cliesebeicJen Vek- _ I 15_ tortypenallen Knoten AD zuzuordnen.Allerdingsläßt sichder Schaltungsaufwand vermindern. : (0,0,0)als rückgeführteSchleifenim 3-D SFG nur den Knoten AD wenn die Vektorer €p,1 mit dem Ortsvektor c,qo:(i,k,0) zugeordnetwerden. Hierdurch vermindert sich ihre Anzahl von O' N2 auf l/2. sR(i,k) r,5(i+nt.k+n) AD e^st AD dJ'@t,n) mdf(m,n) Bild 42: 3-D SFG (l,vp nr) tür eineKandidatenblrckzeile dargesrellt 1'ürN:4 und Q:61 In den durch die schwarzausgefülltenKnoten dargestelltenRegisterbleibendie lokalen Variablen Sa(i,k,m,n)für die Dauer der Displacementschätzungeines Suchbereiches f'estgespeichert. Von hier werden cJieVariablen über die Verbindungen transfbriert, die clurch cJieVektoren €R,r: (0,0.1)beschriebensind.Das gleicheProblemwie bei 511(i,k,m,n) gibt esmit clerVariablen SsQ,k,m,n). Die lokalenVariablen,S5(i,k,m,n) werdenerstüber die Vektorenes1: (0.-1.0)transferiert, die nur den KnotencAD:(i,O,m) zugeordnetsind. Erst danachgelangensie über ciie Vektoren e.si: (1,0.-1) zu den übrigen Knoten AD. - l16- sn(i.ft) AD est AT) AD AI) AD AT) AD , r r (*i m , k + n \ Y MS nzdl'@,n) Bild43: 3-D SFG(Typnz)für eineKandidatenbkrckzeile dargestellt für N:4 undp:11 Der dritte3-D SFG vom Typk in Bild 44 dagegen entstehtdurchdie Pnrjektioncles4-D DG a u sBi l d 4 0 e n tl a n gd e rk-A ch se(d a :( 0,1.0,{ ) und ) ) einerZeiteinteilung m it denrZeit ei ntei lu n g s v e k t r5) r4 :(0 .1 ,0 .0 ). N a chGl e i c hung ( F.10)und ( F11)ist mit Pa..3 unclda: : [".:r'] [,,0.2,f o' r-o[:,, r ft,,. o. esi IL I l:|.:,,3 IO rr 0 -esi 0 c R ,0 - 1 o, Tt. eDi 0 0 0 0 0 0, 0 ( (lnt 0 3l -m- ,sa(i.k) tt^-r'------- ss(i+ m , k +n ) clf(m,n) Bild 44: 3-D SFG (TVpk) dargestelltfür N: 4 und e:6 Die Suchbereichsdaten werden ähnlichwie in den bishercliskutiertenDGs enrlangvon Kanten in Ebenen parallel zur im-Ebene transt'eriert.AIle einen Kandiddatenbkrckbetretl'enclen Operationen werden in Knoten mit gleichenlndizesm unr|n durchgetührt.Die SummenD(i,k,nt.n) werden über Kanten parallel zur deri-Achse transf'eriert.Da die gleichenReferenzblgckclaten in der gesamtenEbene mit dem gleichenIndexi verfügbarseinmüssen.wird hier einezweistufi- - Ilu- : (0,1.0)und e,Rrt:(0.0,I ) ge Verteilung über orthogonal zueinanderangerlrdneteKanter]€R,rr gewählt. Um die Beschreibungauch hier etwaszu strafl'en,sind die Kantenvektorenfür den 3-D SFG vom Typ k in Bild 44 in der fblgendenMatrix eingetragen: Er: 'l l*^"' I' en,jt esiT' estl' errit' eott' eu,,,t. eu, t: 0 0 1 1 -1 0 0 0 -1 1 0 0 0 0 0 0 I 0 l 0 0 1 n4 ZweidimensionalerSignalflußgraph Füreinesystematische Realisierung von Array-Architekturen in einerzweidimensionalen Ebene ist eserfclrderlich. durchweitereProjektionsschritte einenSl-'Gmit einerzwei*odereindimensionale Strukturzu erhalten.Als Beispielsoll zunächst ein 2-D SFG gezeigtwerden,cler sich für weitere Projektionsschritte eignet.Durch Projektionentlangder k-Achse. d. h. d 3 : ( 0 , 1 , 0 )i m 3 -D S F G vo n B i l d 4 2 entstehtder 2- D SFG vom lyp n1k2in Rilcl4 5 m i t durchs3: (0.1,0)eignetsichclerSFG Q' N KnotenAD. Mit der hier gewähltenZeiteinteilung vom Typn1k2in Bild 4-5als Grundlagefür die Abbildungauf 1-D Arraysmit leichtrealisierbarenDatenzugriffen und einerkleinenRegisteranzahl. In Täbelle33 sind alleZeiteinteilungsvektoren s.3und Projektionsvekturen d: für den2-D SFG aus Bild 45 und auchalle weiteren2-D SFGsausKapitel6.2 eingetragen. Da im Gegensatz zu derLösungvon Bild 45 die SFGsin Kapitel6.2denAbschlußder Zeiteinteilungsund Projektionsprozedurdarstellen,wurde dort die Zeiteinteilungso gewählt.daß alle Kanten für lokaleZwischenergebnisse mindestens eineVerziigerungsei nheiterhalten. 3_D SFG --'l 2-D SFG Schedule- ProjektionsVektor sj vektor dr (1.;S.S) 3_DSFG(rvpk) --+ ( B i t d44) 3*D.'.S { QQ (]YP ki) (Bitd 28) (1 . 0 , 0 ) NN (TYPn2m) (Bild 26) ( 0 . 0 .)1 (ffi''.u.i) 'ar::::::. 3-D SFG (Typnz) (Bild 43I Thbelle332 Zeiteinteilungsvektorens3 und Projektionsvektorend: für dierirn Rahmen der Diskussionbetrachteten2-D SFGs - il9* 1 5 (+i m , k + n ) 24 23 22 2l I 34 33 32 31 44 43 42 4l <A 53 52 5L 14 l3 64 63 62 6l 1 i ti4 13 l2 1l E3 E2 '----*,1--r/ ,/ ^D/" ' L+ til q4 q3 .,. 9l ../ Z-1 ..,/ f ^Df ,/ €sr ,/ 34 33 32 3l ^D/ 44 43 42 4l AD .r7i(i,k) e1)i A EL/N MS Bild 45: 2-D SFG (Typn1k2)dargestellt für N=4 und 0=6 F ü r d e n S F G v o m T y p n 1 k 2i n R i l d 4 5 e r g e b e ns i c hm i t d e m Z e i t e i n t e i l u n g s v e k r so -r 1 : ( 0 . 1 . 0 ) und der Prozessorbasis r t p . .. \^. :2 | 1 0 0 | lL 0 0 t I I nach(F.10)die Operationszeitpunkte unddie Knoten [ l l t ( . rl ): l n t - .+ t 't.1 o ,rl L . , J L u . mI) s o w i en a c h ( F . 1 1 )d i e V e r z ä g e r u n g s e i n h e i t m e ni t r 3 : r . 2 . N u n d d i e K a n t e n v e k t o r e n d e sS F G in Bild 45: 'l (o' 'l 'd ',;',' o ',i 'd, :l i| fouu',1 L E l2 - L r o - ro o o r o J Der SFGvom Typn 1k2ist in Bild 45 ohnedie Kantenep,,: (0,0.0), esr: (0,0.0)undey,,: (0.0.0) dargestellt, um aucheineanschauliche Beobachtung derzeitlichen Abläuf'eim SFGanhandcler -lm,k*n) Indizierungen der Operandens.5(i undsp(i,ft)für eineKancJidatenblockzeile zu ermirglichen. Diesedrei Kantenbeschreiben lokaleRegisterspeicher. - t:10- n5 Eindimensionaler Signalflullgraph Der 2-D SFG vom Typ n1k2in Bild 4-5ist die Cirundlagefür die l-D SFGs aus Kapitet 6.2.4 und 6.2.5und dasBeispielin Bild 46. Für eine Projektionentlangden Koordinatenachsen komm e n h i e r d i e P r o j e k t i o n s v e k t o r edn2 : ( 0 . 1 ) u n c l d 2 : ( 1 . 0 ) i n F r a g e( T a b e l l e3 4 ) . D u r c h u n t e r schiedlicheZeiteinteilungenbei der Projektion entlang dem Vektot dz:(O,1) entstehenrJas semisystolische Array N in Bild 29 r.rnddas systolische Array N in Bild 46, Schedule- ProjektionsVektor s2 vektrlrd2 .;.;'i'.N,l.ffi ';j;fi'iißim}, ': (B,iltl.,,.29) ',..' ....:... ('.1,,;,X;j =-T.-,-i-.--i r#u:I:il ::l:N:tt:(ffi :::inik;*11.', ',1,;,;;:1,,:::,' :,,' ;';,(f ü1 :,'',',;,:. f,,,;*6j,",,,, ;;:i:.=;rai;:r:r:t.1!: t:,i a (ryp nlk2i) ( B i t d3 l ) (1.1) Thbefle 34: Zeiteinteilungsvektoren s2und Pnrjektionsvektoren d2für clicim Rahnren der Diskussion betrachtcten 1-D SFCia Beim 1-D SFG vom Typn1k2m2 in Bild 46 erhältjederVektormindestens eineVerzi)gerung. M i t d e r Pr u r zcsso rb a si s P z :, [r 1 0 ] ergebensichnach(F.10)die operationszeitpunkte und die Knoten r s * k t z + , ( 2i + d r , f : ['*',] [' sowienach(F.1I ) die Verzügerungseinheiten mit rz:r | (:e+ A.*l) und clieVektorenclesSFG in Bi l d 4 6 : (rr.rr.T 1 , T 1 - T 2 , fo,rurll-l E2 -L o 0 i 0 L -J 2'13 12. T1, 1 0 0 ii'.J - t.zrss(i* m , k * n ) a) L 4 ) ll t rR(/,K) ( .r , (.) b) r ^ 5 (* i r n . k * n ) () () 1l L-) t1 €Rrr €S; AD () 3l AD AD AA TA 92 -)L )2 t2 ql Iil l1 6l 5l 4l 3r A MS T1 t l 1l I Y Eltn ELInt Bild 46: a) SFGdeseindimensionalcn syslolischen ArraysN OVpn 1k2m2) undb) Indizcsr + rr undk+n der Suchbereichsdaten.r,(l+ m,k+n) dargdstellt für N:4 und e:6 F.6 HomogenisierterDatentransferund Parallelisierungder f)atenströme DasSpace-Time-Mapping-Verfähren führtnichtunbecJingt immerzu realisierbaren Architekturen.Aufgrundder Zeiteinteilungs-und Projektionsprozedur kannein SFGentstehen, in dem sichvor BeginndeserstenSystemtaktes lokaleVariablenan Knotenbefindenmüssen, wo sie in einerrealisierbaren Architekturnochnichtseinkönnen.So gelangenbei e. d'l' t 0 Knoten desDG mit Verbindungen zu lokalenSpeichern durchdie Projektionen an Stelleninnerhalb desSFG,ohnedaßeinelokaleVerbindung zum RanddesSFGsverbleibt.In einemArraysind dieselokalenVerbindungen nicht realisierbar. Bei e lld entstehen durchdie Projektionsogar Schleit'en ohneVerbindungnachaußen. Um Arraysmit ausschließlich lokalenVerbinclun genzu erhalten.muß der 'Tiansfervon Daten überdie Randknoten nachträglich in dasVerfahren eingeführt werden.Im DG entspricht dieses einerErweiterung um zusätzliche Registerknoten. überwelchedieOperanden transf'eriert werden("Homogenisierung", bedeutet dannaucheineVergrrißerung derAn[28]).DieserTiansf'er zahlM,, der ineinanderprojiziertenKnoten(F,.12) und entscheidet damitüberdie Anzahlder pro Bildpunkt.Die Homogenisierung Systemtakte ist ggf.in jedemProjektionsschritt durchzutührenund der Grund,warumdie meistenin Kapitel6.2 diskutierten Arrayst-eerlauf.systemtaktemit nichtauswertbaren Operandenkombinationen erfordern.DasVrrgehentreider Ho- mogenisierungläßt sich anhandder Projektiondes2-D SFG aus Bild 4-5auf clie1-D SFGsfür die Arrays N in Bild 46 demonstrieren.Es wird weiterhingezeigt,wie durcheine Paralleliserung desDatentransf'ers Leerlauf.systemtakte vermiedenwerdenkönnen(PipelineInterleaving[4Ul). Die Richtungder Kanten e5;für die Suchbereichsdaten s,s(i* m,k + n) im 2-D SFG von Bild 45 (Typnrkz) weist darauf hin. daß nach einer Projektion entlang der m-Achse (d2:(0,1) in -labelle 34) alle Daten über das oberste PE,mit dem Ortsvektor cr:(l) im 1-D Array von Bild 46 (Typn1k2m2)gelangenmüssen.Im 2-D SFG in Bild 45 sind hierfür die Kanten für die Suchbereichsdaten bis zu der gestricheltenl-inie über Registerknoten verlängert,die durch alle Knoten AD mit dem Ortsvektor cz: (7,n) verläuft.Mit denT,eiteinteilungsvekturen ausTabelle 34 kommen durch den Tianst'erüber die RegisterknotenN'-1 Leerlauf.systemtakte hinzu. Wie nun diese l-eerlaufsystemtakte für die Operationsausführung durch Parallelisierung auch genutztwerden können, läßt sich erklären, indem noch einmal vom 3-D SFG vom Typ n1 in BiId 42 ausgegangenwird. Dieser 3-D SFG bestehtausN in Richtungder k-Achse auf'einander"Scheiben". gestapelten deren Struktur dem 2-D SFG vom Typ n 1k2aus Bild 45 gleicht.Diese N Teil-SFGs werden nun so prtrjiziert. daß sie entlang der m-Achse im im-Indexraum aufgereiht sind. Dieser neu strukturierteSFG bestehtausN.Q' l/ Knoten. Bild 47 zeigtden Übergangsbereich zwischenzweidieserTeil-SFGsausje Q N Knoten.Bei einerweiterenProjektion dieses2-D SFG enflang der m-Achse entstehtwiecJerder bekannte 1-D SFG vom lyp n rkzmz wie in Bild 46. Bild 47: Ubergangsbereichzwischenzwei lbil-l)Gs aus Q' N Knoten (Ä/= 4) rnit den Registerkn<ltenS Bei einer Uberlagerungder'leil-SFGs aus Rild 47 entfälltwie in Bild 48 dargestelltder Übcrgangsbereichmit den Registerknoten.Die gestricheltenVektoren entsprechenden Vektoren deslinken Teil-DGs. Die paralleleDarstellungder gestricheltenund der cJurchgezogenen Vektoren beschreibendie parallel zu realisierendenVerbindungenim Array N. - tza- 11 tZ 81 22 91 32 \l \l \l Bild 48: Ubergang zwischenzwei einander überlagerteninveidimensionalen SFGs aus Uild 47 mit parallelisiertemDatentransf'er