DE4322343A1 - Bewegungsvektor-Erfassungsmittel zum Kompensieren von Bewegungen in einem bewegten Bild - Google Patents
Bewegungsvektor-Erfassungsmittel zum Kompensieren von Bewegungen in einem bewegten BildInfo
- Publication number
- DE4322343A1 DE4322343A1 DE4322343A DE4322343A DE4322343A1 DE 4322343 A1 DE4322343 A1 DE 4322343A1 DE 4322343 A DE4322343 A DE 4322343A DE 4322343 A DE4322343 A DE 4322343A DE 4322343 A1 DE4322343 A1 DE 4322343A1
- Authority
- DE
- Germany
- Prior art keywords
- data
- block
- motion vector
- value
- pixel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/14—Picture signal circuitry for video frequency region
- H04N5/144—Movement detection
- H04N5/145—Movement estimation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/223—Analysis of motion using block-matching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/523—Motion estimation or motion compensation with sub-pixel accuracy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
Die Erfindung betrifft eine Vorrichtung nach dem Oberbegriff des
Anspruches 1, 33, 35, 37, 38, 39, 41 oder 44. Die Erfindung betrifft
ein Mittel zum Erfassen des Bewegungsvektors, der zur Kompensation
der Bewegungen in einem bewegten Bild benutzt wird.
Zur Übertragung und Speicherung von Bildsignalen mit einer großen
Menge an Daten ist ein Datenkompressionsverfahren zur Verminderung
der Datenmenge unabdingbar. Die Bilddaten weisen aufgrund der
Korrelation benachbarter Bildpunkte (Pixel) und der
Erkennungseigenschaften des Menschen einen hohen Redundanzgrad auf.
Dieses Datenkompressionsverfahren zur Unterdrückung der Redundanz
von Daten, um die Menge der Übertragungsdaten zu vermindern, wird
als hocheffiziente Codierung bezeichnet. Interbild-Vorhersage-
Codierung (Interframe-Predictive-Codierung) ist als ein
hocheffizientes Codierungssystem bekannt. Die Interframe-Predictive-
Codierung wird im folgenden beschrieben.
Es wird der Vorhersagefehler (Prediction-Fehler) berechnet, der die
Differenz zwischen dem jeweiligen Pixelwert im gegenwärtigen Bild
(Frame), das zu codieren ist, und dem jeweiligen Pixelwert der
entsprechenden Stelle im vorherigen Bild, auf das bezogen wird,
darstellt. Dieser berechnete Vorhersagefehler wird im folgenden
Codierungsvorgang benutzt. Dieses System ist vorteilhaft zur
hocheffizienten Codierung von Bildern, die eine geringe Bewegung
aufweisen, da hier eine hohe Korrelation zwischen den Bildern
besteht. Daher tritt das Problem auf, daß der Fehler für Bilder groß
wird, die eine erhebliche Bewegung aufweisen, da ihre Korrelation
niedrig ist. Das erhöht die zu übertragende Datenmenge.
Ein Interbild-Vorhersage-Codierungssystem mit Bewegungskompensation
ist bekannt, um das oben beschriebene Problem zu lösen. Entsprechend
diesem System wird unter Verwendung von Pixeldaten des gegenwärtigen
und des vorherigen Bildes ein Bewegungsvektor berechnet, bevor der
Vorhersagefehler berechnet wird. Das Vorhersagebild des vorherigen
Bildes wird entsprechend dem berechneten Bewegungsvektor verschoben.
Genauer gesagt wird ein Referenzpixel, das den Pixelwert an einer
Stelle darstellt, die um den Bewegungsvektor im vorherigen Bild
verschoben ist, als Erwartungswert verwendet. Dann wird der
Vorhersagefehler des jeweiligen Pixels zwischen dem bewegten
vorherigen Bild und dem gegenwärtigen Bild berechnet, und der
Vorhersagefehler und der Bewegungsvektor werden übertragen.
Fig. 92 zeigt ein Blockdiagramm der Struktur eines Codierers zum
Codieren von Bilddaten entsprechend dem Vorhersagecodierungssystem
mit Bewegungskompensation. Wie in Fig. 92 gezeigt ist, weist der
Codierer eine Vorverarbeitungsschaltung 910 zum Ausführen einer
vorbestimmten Vorverarbeitung mit einem Eingabebildsignal, eine
Quellencodierungsschaltung 912 zum Entfernen von Redundanzen und
Ausführen einer Quantisierung bezüglich einem vorverarbeiteten
Signal von der Vorverarbeitungsschaltung 910, eine Videomultiplex-
Codierungsschaltung 914 zum Codieren entsprechend einem
vorbestimmten Format und zum Multiplexen einen Signals von der
Quellencodierungsschaltung 912 in einen Codezug mit einer
vorbestimmten Datenstruktur auf.
Die Vorverarbeitungsschaltung 910 verwendet Zeit- und Raumfilter, um
ein Eingabebildsignal in ein allgemeines Zwischenformat (CIF)
umzuwandeln, und führt einen Filterungsprozeß aus, um Störungen zu
entfernen.
Die Quellencodierungsschaltung 912 führt einen orthogonalen
Transformationsprozeß wie z. B. einen diskrete Cosinustransformation
(DCT) mit einem zugeführten Signal aus, kompensiert hinsichtlich
einer Bewegung des Eingabesignals und quantisiert den orthogonal
transformierten Bildwert.
Die Videomultiplex-Codierungsschaltung 914 führt eine
zweidimensionale Codierung variabler Länge bezüglich einem
zugeführten Bildsignal aus, und führt ferner eine Codierung
variabler Länge für die verschiedenen Attribute (z. B. den
Bewegungsvektor) eines Blocks, der eine Datenverarbeitungseinheit
darstellt, gefolgt vom Multiplexen desselben in einen Codezug mit
einer vorbestimmten Datenstruktur aus.
Der Codierer weist ferner einen Übertragungspuffer 916 zum Puffern
von Bilddaten von der Videomultiplex-Codierungsschaltung 914 und
eine Übertragungscodierungsschaltung 918 zum Anpassen von Bilddaten
vom Übertragungspuffer 916 an den Übertragungskanal auf.
Der Übertragungspuffer 916 glättet die
Informationserzeugungsgeschwindigkeit auf eine konstante Rate. Die
Übertragungscodierungsschaltung 918 führt eine Addition eines
Fehlerkorrekturbits und eines Audiosignalwerts aus.
Fig. 93 zeigt die genaue Struktur der Quellencodierungsschaltung von
Fig. 92. Wie in Fig. 92 gezeigt ist, weist die
Quellencodierungsschaltung ein Bewegungskompensations-
Vorhersagemittel 920 zum Erfassen des Bewegungsvektors für ein
Eingabebildsignal, um ein Bewegungs-kompensiertes Referenzpixel
entsprechend dem erfaßten Bewegungsvektor zu erzeugen, ein
Schleifenfilter 922 zum Ausführen eines Filterungsprozesses mit dem
Referenzpixelwert vom Bewegungskompensations-Vorhersagemittel 920,
einen Subtrahierer 924 zu Ermitteln der Differenz zwischen dem
Ausgangssignal des Schleifenfilters 922 und dem Eingabebildsignal,
einen Orthogonaltransformierer 926 zum Ausführen einer orthogonalen
Transformation mit dem Ausgangssignal des Subtrahierers 924 und
einen Quantisierer 928 zum Ausführen einer Quantisierung mit dem
orthogonal transformierten Wert vom Orthogonaltransformierer 926
auf.
Das Bewegungskompensations-Vorhersagemittel 920, dessen Aufbau
später beschrieben im Detail wird, weist einen Bildspeicher zum
Speichern der Pixeldaten des vorherigen Bildes auf, wobei der
Bewegungsvektor entsprechend einem Eingabebildsignal und dem
Pixelwert im Bildspeicher erfaßt wird, um einen Referenzpixelwert zu
erzeugen, für den die Bewegung kompensiert ist. Das Schleifenfilter
922 ist zur Verbesserung der Bildqualität geschaffen.
Der Orthogonaltransformierer 926 führt eine orthogonale
Transformation wie z. B. eine DCT-Transformation mit den Daten vom
Subtrahierer 924 in Einheiten eines Blocks vorbestimmter Größe (im
allgemeinen 8·8 Pixel) aus. Der Quantisierer 928 führt eine
Quantisierung der orthogonal transformierten Pixelwerte aus.
Durch das Bewegungskompensations-Vorhersagemittel 920 und den
Subtrahierer 924 wird eine Interframe-Predictive-Codierung mit
Bewegungskompensation ausgeführt, um die Zeitredundanz aus einem
bewegten Bildsignal zu entfernen. Darüber hinaus wird durch die
orthogonale Transformation des Orthogonaltransformierers 926 die
räumliche Redundanz in einem bewegten Bildsignal entfernt.
Die Quellencodierungsschaltung weist ferner einen inversen
Quantisierer 930 zum Umwandeln des Signalzustands der vom
Quantisierer 928 quantisierten Daten in den Zustand vor der
Quantisierung, einen inversen Orthogonaltransformierer 932 zum
Ausführen einer inversen orthogonalen Transformation mit dem
Ausgangssignal des inversen Quantisierer 930 und einen Addierer 934
zum Addieren der Ausgangssignale des Schleifenfilters 922 und des
inversen Orthogonaltransformierers 932 auf. Ein Bild, das zur
Zwischenbildvorhersage für das nächste Bild benutzt wird, wird vom
inversen Quantisierer 930 und dem inversen Orthogonaltransformierer
932 erzeugt. Die erzeugten Bilddaten werden in den Bildspeicher im
Bewegungskompensations-Vorhersagemittel 920 geschrieben. Weil ein
Eingabebildsignal (Zwischenbild-Differenzwert) addiert wird, werden
die Daten des gegenwärtigen Bildes reproduziert. Dieser inverse
Quantisierungs-, inverse Orthogonaltransformations- und
Additionsprozeß wird zusammen allgemein als lokale
Decodierungsprozedur bezeichnet.
Die Berechnung eines Bewegungsvektors wird im folgenden im Detail
beschrieben. Im allgemeinen wird ein Block-Matching-Verfahren zur
Berechnung des Bewegungsvektors benutzt.
Wie in Fig. 94A gezeigt ist, wird ein Fall betrachtet, bei dem ein
Bild A im (m-1)-ten Bild wie das Bild A′ im m-ten Bild verschoben
wird. Beim Block-Matching-Verfahren wird ein Bild in Blöcke aus P·Q
Pixeln (im allgemeinen gilt P=Q) unterteilt. Im vorherigen Bild wird
ein Block gesucht, der dem betrachteten Block im gegenwärtigen Block
am nächsten liegt. Diese Verschiebung des betrachteten Blocks
gegenüber dem am nächsten liegenden Block im vorherigen Bild wird
als Bewegungsvektor bezeichnet.
Wie in Fig. 94B gezeigt ist, wird angenommen, daß das m-te Bild das
zu codierende Bild ist. Das Bild ist in Blöcke aus N·N Pixeln
unterteilt. Es wird angenommen, daß der Wert der Pixeldaten an der
Stelle links oben (Nk, Nl) im Block der N·N Pixel im m-ten Bild
gleich Xm(Nk, Nl) ist. Es wird die Summe der absoluten Differenzen
des vorherigen Bildes mit der Pixelposition, die um die Position (i,
j) verschoben ist, und dem Block des gegenwärtigen Bildes ermittelt.
Durch Verändern des Verschiebungswerts (i, j) werden jeweilige
Summen der Absolutdifferenzen erhalten. Diejenige Position (i, j),
die zum kleinsten Wert der Absolutdifferenz führt, wird als
Bewegungsvektor bezeichnet.
Es ist notwendig, pro Pixelblock einen Bewegungsvektor zu
übertragen. Wenn die Blockgröße vermindert wird, erhöht sich die
Übertragungsinformation und verhindert eine effektive
Datenkompression. Wenn die Blockgröße erhöht wird, wird die
effektive Erfassung des Bewegungsvektors schwierig. Hier wird die
Blockgröße auf 16·16 Pixel eingestellt, und der Suchbereich für den
Bewegungsvektor (maximal variierter Bereich für i, j ) wird auf den
Bereich -15 bis +15 Pixel eingestellt. Im folgenden wird detailliert
die Berechnung des Bewegungsvektors nach dem Block-Matching-
Verfahren beschrieben.
Fig. 95 zeigt ein Diagramm zur Beschreibung des Bewegungsvektor-
Berechnungsverfahrens nach dem Block-Matching-Verfahren. Ein Bild
950 aus 352 Punkten mal 288 Zeilen wird als Beispiel herangezogen.
Bild 950 wird in Blöcke unterteilt, wobei ein Block eine 16·16
Pixelgruppe umfaßt. Die Erfassung des Bewegungsvektors wird mittels
dieser Blockeinheit ausgeführt. Es wird angenommen, daß ein
Suchblock 956 (im weiteren als "Suchbereich" bezeichnet) einen
Blockbereich darstellt, der ±16 Pixel in horizontaler und vertikaler
Richtung ausgehend vom Block 954 umfaßt, der einen Block im
vorherigen Bild an einer Stelle entsprechend dem Block 952
darstellt, der erfaßt werden soll (im weiteren als "Musterblock"
bezeichnet). Mit anderen Worten wird ein Suchblock 956 aus 48·48
Pixeln, der um den Block 954 zentriert ist, als Suchbereich
gebildet. Die Suche des Bewegungsvektors bezüglich dem Musterblock
952 wird innerhalb dieses Suchbereichs ausgeführt. Die Erfassung des
Bewegungsvektors entsprechend dem Block-Matching-Verfahren weist die
folgenden Schritte auf.
Es wird ein Vorhersagebildblock (in Fig. 95 durch (i, j) angegeben)
mit einer Verschiebung entsprechend einem Kandidaten für den
Bewegungsvektor ermittelt. Dann wird ein Kennungsfunktionswert, wie
z. B. die Summe der Absolutdifferenzen (oder Summe der quadrierten
Differenzen) zwischen den Pixeln des ermittelten Blocks und denen an
einer entsprechenden Stelle des Musterblocks bestimmt.
Der oben beschriebene Vorgang wird für alle Verschiebungen (i, j) im
Bereich (-16, -16) bis (+16, +16) ausgeführt. Wenn die
Kennungsfunktionen (Kennungswerte) für alle Vorhersagebildblöcke
bestimmt worden sind, wird der Vorhersagebildblock mit der minimalen
Kennungsfunktion ermittelt. Der Vektor vom Block (der in Fig. 95
durch (0, 0) angegebene Block 954) an einer Stelle, die im
Musterblock (im weiteren als True-Backside bezeichnet) identisch
ist, in Richtung dem Vorhersagebildblock mit dem kleinsten
Kennungsfunktionswert wird als Bewegungsvektor für den Musterblock
bestimmt.
Es sind verschiedene Strukturen zum Ermitteln dieses bewegten Bildes
durch Hardware vorgeschlagen worden.
Fig. 96 zeigt eine Struktur eines Bewegungsvektor-Erfassungsmittels,
das in den Proceedings of ICASSP ′89, IEEE 1989, S. 2453-2456 von A.
Artier et al beschrieben ist. Wie in Fig. 96 gezeigt ist, weist ein
Bewegungsvektor-Erfassungsmittel ein Suchbereich-Eingaberegister 962
zum Eingeben von Pixeldaten des Suchbereichs einer Spalte, ein
Prozessorfeld 966 mit einer Mehrzahl von Prozessoren, die in einer
Matrix aus Zeilen und Spalten, die der Anzahl nach gleich den
Punkten des Musterblocks sind, Suchbereich-Seitenregister 964a und
964b zum Speichern einer Spalte von Daten im Suchbereich für das
Prozessorfeld, und eine Bewegungsvektor-Erfassungseinheit 968 zum
Erfassen eines Bewegungsvektors entsprechend dem
Berechnungsergebnisses des Prozessorfeldes 966 auf.
Im Prozessorfeld 966 sind die Prozessoren jeweils entsprechend einem
Verschiebungsvektor (i, j) angeordnet. Genauer gesagt berechnet der
Prozessor Pÿ in der i-ten Zeile und j-ten Spalte den
Verschiebungsvektor D(i, j).
Fig. 97 zeigt die Struktur eines Prozessors, der im Prozessorfeld
von Fig. 96 enthalten ist. Wie in Fig. 97 gezeigt ist, weist der
Prozessor 970 in 3-Eingangs-Register 972 zum Empfangen von
Suchfelddaten, die von Prozessoren in drei Richtungen in
horizontaler und vertikaler Richtung des Feldes übertragen werden,
und das von einem Auswahlsignal SEL abhängig ist, um eines der drei
Eingangssignale durchzulassen, eine Abweichungsberechnungseinheit
974 zum Berechnen der Abweichung (Summe der Absolutdifferenzen)
entsprechend dem Suchbereichwert Y vom 3-Eingangs-Register 972 und
dem extern angelegten Musterblockwert X voneinander, und ein
2-Eingangs-Register 976 zum Empfangen des Abweichungswerts D von der
Abweichungsberechnungseinheit 974 und eines Abweichungswerts von
einem horizontal benachbarten Prozessor, um einen der
Abweichungswerte in Abhängigkeit vom Auswahlsignal To durchzulassen,
auf.
Beim in Fig. 96 dargestellten Prozessorfeld ist dieser Prozessor in
zweidimensionaler Weise entsprechend allen Verschiebungsvektoren
angeordnet, die Kandidaten für den Bewegungsvektor im Suchbereich
darstellen. Jedem Prozessor 970 des Prozessorfeldes 966 (siehe Fig.
96) werden dieselben Musterblockdaten X zugeführt. Hier werden die
entsprechenden Daten des Suchbereichblocks dem Prozessor 970
zugeführt. Genauer gesagt wird dem Prozessor Pÿ der Suchbereich-
Blockwert Y(i+m, j+n) zugeführt, wenn der Musterblockwert X z. B.
gleich X(m, n) ist. Der Suchfensterwert wird über die Suchbereich-
Seitenregister 964a und 964b sowie den jeweiligen Prozessor 970 im
Prozessorfeld 966 übertragen. Um einen genauen Suchbereich-Blockwert
Y(m+i, n+j) bezüglich einem extern angelegten Musterblockwert X(m,
n) zu liefern, müssen die Musterblockdaten und die Suchbereich-
Blockdaten entsprechend einer vorbestimmten Regel abgesucht werden.
Fig. 98 zeigt ein Verfahren zum Absuchen von Werten des
Musterblocks. Wie in Fig. 98 dargestellt ist, werden die
Musterblockdaten nach unten entlang einer Spalte und dann in der
benachbarten Spalte nach oben abgesucht, wie durch den Pfeil im
Musterblock 999 dargestellt ist. Dieses Abtastverfahren wird als
"Snake-Abtastung" (schlangenförmige Abtastung) bezeichnet. Die dem
Prozessorfeld zugeführten Suchbereich-Blockdaten werden ähnlich
dieser "Snake-Abtastung" der Musterblockdaten abgesucht. Jeder
Prozessor muß die Suchbereichdaten in der vertikalen Richtung der
Fig. 91 oder in der horizontalen Richtung der Fig. 97 entsprechend
seiner Stelle in der Anordnung übertragen. Zu diesem Zweck ist das
3-Eingangs-Register 972 gebildet.
Das 2-Eingangs-Register 976 ist gebildet, um die vom Prozessor
berechnete Abweichung zur Bewegungsvektor-Erfassungseinheit 968 zu
übertragen und einen Verschiebungsvektor zur ermitteln, der die
minimale Abweichung liefert. Die Bewegungsvektor-Erfassungseinheit
968 erfaßt das Minimum der Abweichung von jedem Prozessor, um die
Prozessorposition zu bestimmen, die die Minimalabweichung, d. h. den
Bewegungsvektor, liefert. Im folgenden wird kurz der Betrieb der
Bewegungsvektor-Erfassungseinheit von Fig. 96 beschrieben.
Im Prozessorfeld 966 berechnet der Prozessor Pÿ in der i-ten Zeile
und der j-ten Spalte die Abweichung D(i, j), die folgendermaßen
ausgedrückt ist:
D(i, j) = Σ |X(m,n) - Y(m+1,n+j|.
Hier wird die Gesamtsumme Σ für m und n ausgeführt. Der
Variationsbereich für m und n wird durch die Größe des Suchbereichs
bestimmt.
Es wird ein Fall betrachtet, bei dem Pixel in M Zeilen und N Spalten
als Musterblock 980 angeordnet sind, wie in Fig. 99 dargestellt ist.
Im ersten Zyklus werden die Suchbereich-Blockdaten, die durch das
Bezugszeichen 982 angegeben werden, im jeweiligen Prozessor im
Prozessorfeld gespeichert. Das Pixel X(1,1) der ersten Zeile und
ersten Spalte im Musterblock 980 wird allen Prozessoren im
Prozessorfeld als externer Wert zugeführt. Jeder Prozessor 970
ermittelt die Absolutdifferenz zwischen dem gespeicherten
Suchfensterwert Y und dem extern angelegten Musterblockwert X und
akkumuliert die Werte.
Im nächsten Zyklus wird der Suchfeldwert im Prozessorfeld um eine
Zeile nach unten verschoben, wie in Fig. 99 gezeigt ist. Unter
diesen Umständen wird der nächste Pixelwert X(2,1) vom Musterblock
980 geliefert. Der gespeicherte Suchfeldwert im jeweiligen Prozessor
970 ist gleich Y(m+i+1, n+j). Die Absolutdifferenz der Werte X und Y
wird berechnet und dann akkumuliert. Dieser Vorgang wird M-mal
wiederholt.
Durch M-maliges Wiederholen des oben beschriebenen Vorgangs wird
eine Spalte von Suchfeldpixeln über das in Fig. 96 gezeigte
Suchfeldeingaberegister 962 geschrieben. Die Pixeldaten einer Spalte
im Suchfeld, die nicht länger notwendig sind, werden gelöscht. Dann
werden neue Suchfelddaten in den Suchbereich-Seitenregistern 964a
und 964b sowie im Prozessorfeld 966 gespeichert. Dieser Vorgang wird
wiederholt ausgeführt.
Wie in Fig. 100 dargestellt ist, wird mit anderen Worten eine Summe
der Absolutdifferenzen unter Verwendung des Suchfensters 990
berechnet, auf das M solche Zyklen folgen. Dann wird eine ähnliche
Berechnung unter Verwendung der Daten des Suchfensters 992, des
Suchfensters 994, . . . ausgeführt. Wenn die Berechnung der Pixeldaten
für den Suchbereich 996 ausgeführt wird, wird die Abweichung D(i, j)
bestimmt und im Prozessor Pÿ gespeichert.
Die im jeweiligen Prozessor Pÿ ermittelte Abweichung D(i, j) wird
zur Bewegungsvektor-Erfassungseinheit 968 (siehe Fig. 96)
übertragen, wobei die minimale Abweichung als Bewegungsvektor
bestimmt wird.
Die oben beschriebene Bewegungsvektor-Erfassungseinheit erfaßt den
Bewegungsvektor unter Verwendung von Pixeldaten eines Suchbereichs
und der Pixeldaten eines Musterblocks. Der ermittelte
Bewegungsvektor wird als Bewegungsvektor mit ganzzahliger
Genauigkeit bezeichnet. Der Grund dafür ist, daß die minimale
Einheit der horizontalen und vertikalen Komponenten des
Bewegungsvektors gleich einem Pixel ist. Diese Bewegungsvektor mit
ganzzahliger Genauigkeit ist in Codierungssystemen bewegter Bilder
für Bildtelephone und TV-Konferenzen definiert (CCITT-Empfehlung
H.261).
In einem Codierungssystemen bewegter Bilder vom Speichertyp, das
digitale Speichermedien benutzt, ist eine Erfassungsgenauigkeit in
Einheiten zu 1/2 Pixeln notwendig (im weiteren als 1/2-Pixel-
Genauigkeit bezeichnet). Die Erfassung mit einer größeren
Genauigkeit als ganzzahliger Genauigkeit wird als "gebrochene
Genauigkeit" ("Fractional Precision") bezeichnet. Bei der
Bewegungskompensation mit 1/2-Pixel-Genauigkeit wird eine um ein
Pixel verschobene Stelle auf einem Referenzbild zur Vorhersage
gesucht. Ferner wird durch Interpolation ein Wert zwischen Pixeln
erzeugt, wodurch ein Matching für den interpolierten Wert ausgeführt
wird. Bewegungskompensation unter Verwendung eine Bewegungsvektors
mit 1/2-Pixel-Genauigkeit wird als "Halbpixel-Bewegungskompensation"
(Half-Pel-Bewegungskompensation) bezeichnet.
Fig. 101 zeigt schematisch die Struktur einer Bewegungsvektor-
Erfassungseinheit mit gebrochener Genauigkeit. Die Struktur der in
Fig. 101 gezeigten Einheit ist z. B. in den Proceedings of ICASSP
′89, IEEE, 1989, S. 2437-2440 beschrieben.
Wie in Fig. 101 gezeigt ist, weist eine Bewegungsvektor-
Erfassungseinheit mit gebrochener Genauigkeit einen
Referenzbildspeicher 101 zum Speichern von Pixeldaten eines ganzen
Referenzbildes für ein vorheriges Bild, einen Speicher für das
gegenwärtige Bild 102 zum Speichern der Bilddaten des gesamten
gegenwärtigen Bildes, und eine erste Betriebseinheit 805 zum
Auslesen der Suchfenster-Blockdaten und der Musterblockdaten aus den
Speichern 801 und 802 über Datenleitungen 807 und 809 auf, um einen
Bewegungsvektor mit ganzzahliger Genauigkeit zu ermitteln. Der von
der ersten Betriebseinheit ausgeführte Prozeß ist ähnlich dem
bereits beschriebenen Prozeß.
Die Bewegungsvektor-Erfassungseinheit mit gebrochener Genauigkeit
weist ferner einen Suchfensterspeicher für gebrochene Genauigkeit
804 zum Empfangen von Suchfenster-Blockdaten vom
Referenzbildspeicher 801 über eine Datenleitung 808 und zum
Speichern von diesen, einen Musterspeicher für gebrochene
Genauigkeit 803 zum Empfangen der gegenwärtig benutzten
Musterblockdaten vom Speicher für das gegenwärtige Bild 802 über
eine Datenleitung 810 und zum Speichern von diesen, und eine zweite
Betriebseinheit 806 zum Empfangen der Pixeldaten vom Musterspeicher
für gebrochene Genauigkeit 803 und dem Suchfensterspeicher für
gebrochene Genauigkeit 804 über Datenleitungen 811 bzw. 812 auf, um
einen Bewegungsvektor mit gebrochener Genauigkeit zu ermitteln. Der
von der ersten Betriebseinheit 805 erfaßte Bewegungsvektor wird über
eine Signalleitung 813 der zweiten Betriebseinheit 806 zugeführt.
Die zweite Betriebseinheit 806 überträgt auf einer Signalleitung 814
einen Satz bestehend aus dem Bewegungsvektor dieser ganzzahligen
Genauigkeit und ein neu ermitteltes bewegtes Bild mit gebrochener
Genauigkeit. Im folgenden wird der Betrieb beschrieben.
Zunächst liest die erste Betriebseinheit 805 Suchfenster-Blockdaten
und Musterblockdaten aus dem Referenzbildspeicher 801 bzw. dem
Speicher für das gegenwärtige Bild 802 aus, um eine Kennungsfunktion
(einen Kennungswert) für den jeweiligen Verschiebungsvektor zu
bestimmen. Wenn alle Suchfenster-Blockdaten im Suchbereich aus dem
Referenzbildspeicher 801 ausgelesen worden sind, um Kennungswerte zu
bestimmen, erfaßt die erste Betriebseinheit 805 den minimalen der
ermittelten Kennungswerte, um den Verschiebungsvektor entsprechend
dem minimalen Kennungswert als Bewegungsvektor zu bestimmen.
Wenn ein Bewegungsvektor bestimmt worden ist, überträgt der Speicher
für das gegenwärtige Bild 802 die benutzten Musterblockdaten über
die Datenleitung 810 zum Musterspeicher für gebrochene Genauigkeit
803. Die Suchfenster-Blockdaten entsprechend dem
Verschiebungsvektor, die den Bewegungsvektor liefern, und seine
Randdaten im Referenzbildspeicher 801 werden über die Datenleitung
808 zum Suchfensterspeicher für gebrochene Genauigkeit 804
übertragen. Wenn der Suchfensterblock z. B. aus 16·16 Pixeln besteht,
werden 18·18-Pixel-Daten einschließlich den Randpixeldaten vom
Referenzbildspeicher 801 zum Suchfensterspeicher für gebrochene
Genauigkeit 804 übertragen.
Damit werden Pixeldaten des Musterblocks des Bereichs 820 (durch
leere Kreise angegeben) im Musterspeicher 803 abgelegt, wie in Fig. 102
gezeigt ist. Im Suchfensterspeicher 804 werden die durch den
Bereich 822 angegebenen Suchfenster-Blockdaten gespeichert. Im
folgenden wird der Betrieb der zweiten Betriebseinheit 806
ausgeführt.
Es wird ein Interpolationsprozeß für die jeweiligen Pixeldaten (die
durch leere Kreise angegeben sind) des Suchfensterblocks 822
ausgeführt, um Interpolationsdaten zwischen den Pixeln zu erzeugen.
Fig. 102 zeigt den Fall der Erfassung eines bewegten Bildes mit
1/2-Pixel-Genauigkeit. Die Kandidaten für den Bewegungsvektor sind 16
Verschiebungsvektoren einschließlich den gebrochenen Komponenten
zwischen (-1/2, -1/2) bis (1/2, 1/2). Mit anderen Worten werden im
Fall von 1/2-Pixel-Genauigkeit 16 Suchfensterblöcke gebildet, wobei
die Berechnung der Kennungswerte für jeden Block ausgeführt wird.
Beim Erfassen des Bewegungsvektors mit 1/2-Pixel-Genauigkeit werden
der Interpolationswert zwischen zwei Pixeln P(A) und P(B) durch
(P(A) + P(B))/2 und der Interpolationswert zwischen vier Pixeln
P(A), P(B), P(C) und P(D) durch (P(A) + P(B) + P(C) + P(D))/4
berechnet, wie durch die x-Marken in Fig. 102 dargestellt ist. Für
den Interpolationswert wird eine Rundung ausgeführt. Für den
erzeugten Interpolationswert wird ein Vorgang ähnlich dem für die
Erfassung des Bewegungsvektors mit ganzzahliger Genauigkeit
ausgeführt.
Fig. 103 zeigt die Beziehung zwischen einem Bewegungsvektor mit
ganzzahliger Genauigkeit und Bewegungsvektor mit gebrochener
Genauigkeit. Wie in Fig. 103 dargestellt ist, ist ein
Verschiebungsvektor in Einheiten zu einem Pixel in vertikaler und
horizontaler Richtung angeordnet (angedeutet durch einen leeren
Kreis in der Zeichnung). Ein Verschiebungsvektor mit gebrochener
Genauigkeit wird durch die zweite Betriebseinheit für den Rand eines
Bewegungsvektors MI erhalten (angedeutet durch die unterbrochene
Linie für einen leeren Kreis). Dann wird ein Verschiebungsvektor,
der den minimalen Wert liefert, aus den Verschiebungsvektoren und
den Komponenten mit gebrochener Genauigkeit erhalten und mit dem
Bewegungsvektor MI mit ganzzahliger Genauigkeit kombiniert, wodurch
ein Bewegungsvektor MF mit gebrochener Genauigkeit ermittelt wird.
Das oben beschriebene Bewegungsvektor-Erfassungsmittel weist die
folgenden zu lösenden Probleme auf.
Beim in Fig. 96 gezeigten Bewegungsvektor-Erfassungsmittel werden
dieselben Musterblockdaten an alle Prozessoren im Prozessorfeld
angelegt. Das bedeutet, daß eine starke Treiberfähigkeit in der
Schaltung zum Schreiben der Pixeldaten des Musterblocks notwendig
ist. Das führt zu einer Erhöhung der Stromaufnahme in der Schaltung
zum Schreiben der Musterblock-Pixeldaten. Damit wird die
Leistungsaufnahme der gesamten Vorrichtung erhöht.
Bei dem in Fig. 96 gezeigten Bewegungsvektor-Erfassungsmittel
entspricht jeder Prozessor im Prozessorfeld einem
Verschiebungsvektor, der ein Kandidat für einen Bewegungsvektor
darstellt. Wenn der Suchbereich +16 bis -16 in vertikaler Richtung
und -16 bis +16 in horizontaler Richtung beträgt, erreicht die
Anzahl der Verschiebungsvektoren, die Kandidaten für den
Bewegungsvektor sind, die Zahl 33·33=1089. Das erhöht die Anzahl der
Prozessoren entsprechend. Dies führt zu dem Problem, daß die belegte
Fläche der Vorrichtung groß ist.
In jedem Betriebszyklus werden Daten über einen Prozessor
übertragen. Ein 3-Eingangs-Register wird benutzt, um die
Datenübertragungsrichtung festzulegen. Das führt zu dem Problem
einer erhöhten Leistungsaufnahme zum Zeitpunkt der Datenübertragung.
Ferner berechnet jeder Prozessor im Bewegungsvektor-Erfassungsmittel
der Fig. 96 einen Kennungswert (eine Abweichung). Genauer gesagt
wird eine Berechnung der absoluten Differenz (oder quadrierten
Differenz) ausgeführt, auf die eine Akkumulierung des berechneten
Ergebnisses folgt. Somit wird die von den Prozessoren belegte Fläche
erhöht. Das führt zu einer Erhöhung des verbrauchten Stroms.
Das in Fig. 101 gezeigte Bewegungsvektor-Erfassungsmittel mit
gebrochener Genauigkeit weist einen Bildspeicher mit ganzzahliger
Genauigkeit und einen Bildspeicher mit gebrochener Genauigkeit auf.
Beim Bewegungsvektor-Erfassungsvorgang mit gebrochener Genauigkeit
müssen die erforderlichen Suchfenster-Blockdaten vom
Referenzbildspeicher mit ganzzahliger Genauigkeit zum
Suchfensterspeicher mit gebrochener Genauigkeit übertragen werden.
Nach der Übertragung der Daten an den Suchfensterspeicher müssen die
Suchfenster-Blockdaten erneut aus dem Suchfensterspeicher ausgelesen
werden, um eine Erfassung des Bewegungsvektors mit gebrochener
Genauigkeit auszuführen. Es erfolgt ein häufiger Zugriff auf den
Speicher, wodurch der Durchsatz des gesamten Bewegungsvektor-
Erfassungsmittels durch die Zugriffszeit des Speichers bestimmt
wird. Das führt zu dem Problem, daß ein Bewegungsvektor nicht mit
hoher Geschwindigkeit erfaßt werden kann.
Nachdem Daten vom Speicher für das gegenwärtige Bild zum
Musterspeicher für gebrochene Genauigkeit übertragen worden sind,
müssen die Musterblockdaten aus dem Musterspeicher ausgelesen
werden, wodurch die Zugriffszeit auf den Bildspeicher, der die
gegenwärtigen Bilddaten speichert, erhöht wird. Der Durchsatz des
Bewegungsvektor-Erfassungsmittels wird von der Zugriffszeit auf den
Speicher für das gegenwärtige Bild bestimmt. Daher kann der
Bewegungsvektor nicht mit hoher Geschwindigkeit erfaßt werden.
Aufgabe der Erfindung ist es, ein Bewegungsvektor-Erfassungsmittel
zu schaffen, das einen Bewegungsvektor mit hoher Geschwindigkeit
erfassen kann. Außerdem soll ein Bewegungsvektor-Erfassungsmittel
gebildet werden, das mit niedriger Leistungsaufnahme arbeitet.
Ferner soll ein Bewegungsvektor-Erfassungsmittel geschaffen werden,
dessen Belegungsfläche vermindert ist. Weiterhin soll ein
Bewegungsvektor-Erfassungsmittel gebildet werden, das einen
Bewegungsvektor genau bestimmen kann.
Die Aufgabe wird gelöst durch die in Anspruch 1, 33, 35, 37, 38, 39,
41 oder 44 gekennzeichnete Vorrichtung. Ein erfindungsgemäßes
Bewegungsvektor-Erfassungsmittel weist Elementprozessoren auf, die
in einem Feld angeordnet sind und jeweils Musterblockdaten und
Suchfenster-Blockdaten speichern, die von anderen verschieden sind,
wodurch ein Kennungswert für einen Verschiebungsvektor durch
gleichzeitiges Treiben der im Feld angeordneten Prozessoren
berechnet wird. Die Suchfenster-Blockdaten werden in nur einer
Richtung im Prozessorfeld übertragen, und die nicht mehr benötigten
Suchfenster-Blockdaten werden sequentiell ausgeschoben.
Bei der Erfassung des Bewegungsvektors mit gebrochener Genauigkeit
und des Bewegungsvektors mit Interpolationsvorhersage werden die vom
Prozessorfeld ausgeschobenen Daten benutzt.
Beim erfindungsgemäßen Bewegungsvektor-Erfassungsmittel entspricht
die maximale Anzahl von Elementprozessoren der Anzahl von Pixeln im
Musterblock. Daher kann die Anzahl der Elementprozessoren vermindert
werden.
Die Musterblockdaten bleiben im Prozessor bis der zugehörige
Bewegungsvektor ermittelt worden ist. Weil nur die Suchfensterdaten
übertragen werden, kann die Strom-/Leistungsaufnahme zum Zeitpunkt
der Datenübertragung vermindert werden.
Weil nur einen vorbestimmte Berechnung im Elementprozessor
ausgeführt wird, und der endgültige Kennungswert, der die Beziehung
zwischen den Blöcken angibt, durch ein extern zum Feld gebildetes
Kennungswert-Erzeugungsmittel ermittelt wird, kann die
Belegungsfläche des Prozessorfeldes vermindert werden. Das führt zu
einer Verminderung der Belegungsfläche der Vorrichtung.
Weitere Merkmale und Zweckmäßigkeiten der Erfindung ergeben sich aus
der Beschreibung von Ausführungsbeispielen anhand der Figuren. Von
den Figuren zeigen:
Fig. 1 einen Überblick der Struktur eines Bewegungsvektor-
Erfassungsmittels nach einer ersten Ausführungsform der
vorliegenden Erfindung;
Fig. 2 das Suchfeld und den Suchbereich für einen Musterblock,
der vom Bewegungsvektor-Erfassungsmittel der Fig. 1
verwendet wird;
Fig. 3 die Struktur eines Elementprozessors im Prozessorfeld der
Fig. 1;
Fig. 4 die Struktur des gesamten Prozessorfeldes von Fig. 1;
Fig. 5 eine Modifikation des Prozessorfeldes von Fig. 1;
Fig. 6A und 6B die Positionsbeziehung der gespeicherten Daten im
Prozessorfeld von Fig. 1;
Fig. 7 die Verteilung der gespeicherten Daten im Prozessorfeld
von Fig. 1;
Fig. 8 die Verteilung der gespeicherten Daten im linearen
Prozessorfeld einer Spalte im Prozessorfeld von Fig. 1;
Fig. 9 ein Diagramm zum Beschreiben des Betriebs des
Bewegungsvektor-Erfassungsmittels von Fig. 1;
Fig. 10A und 10B die Änderung und Verteilung der Daten im
Prozessorfeld, nachdem die Erzeugung eines Kennungswertes
abgeschlossen ist;
Fig. 11A und 11B die Beziehung zwischen den gespeicherten Daten und
einem Verschiebungsvektor im Prozessorfeld von Fig. 4
sowie die Verteilung der gespeicherten Daten;
Fig. 12A und 12B die Positionsbeziehung zwischen dem Musterblock
und dem Suchfensterblock, wenn die Erzeugung eines
Kennungswertes für ein Suchfenster abgeschlossen ist, und
die Verteilung der gespeicherten Daten im Prozessorfeld;
Fig. 13 die Positionsbeziehung zwischen dem Musterblock und dem
Suchfenster beim Laden des nächsten Suchfensters nach
einer Ausführungsform der vorliegenden Erfindung;
Fig. 14 die Positionsbeziehung zwischen dem Suchfensterblock und
dem Musterblock, wenn unter Verwendung des in Fig. 13
dargestellten Suchfensters ein Kennungswert erzeugt wird;
Fig. 15 die Positionsbeziehung zwischen dem Suchfensterblock und
dem Musterblock, wenn ein Bewegungsvektor-
Ermittlungsvorgang abgeschlossen ist;
Fig. 16 die Verteilung der gespeicherten Daten im Prozessorfeld
bezüglich dem Suchfensterblock und der
Musterblockpositionsbeziehung von Fig. 15;
Fig. 17 die Elementprozessoranordnung im Prozessorfeld;
Fig. 18 die Anordnung der Musterdaten, die im Elementprozessor von
Fig. 17 gespeichert sind;
Fig. 19 die Anordnung der Pixeldaten im Suchfeld für den
Musterblock von Fig. 18;
Fig. 20 den Variationsbereich des Verschiebungsvektor im Suchfeld
der Fig. 19;
Fig. 21 die Verteilung der Suchfensterdaten im Prozessorfeld im
Startzustand;
Fig. 22 und 23 die Änderung der Verteilung der Suchfensterdaten im
Prozessorfeld;
Fig. 24 die Abtastrichtung der Suchfensterdaten im Suchbereich;
Fig. 25 spezifisch die Struktur eines Elementprozessors von
Fig. 3;
Fig. 26 spezifisch die Struktur einer Absolutdifferenzschaltung
von Fig. 25;
Fig. 27 ein Signaldiagramm für den Betrieb eines verallgemeinerten
Elementprozessors von Fig. 25;
Fig. 28 ein Diagramm zur Beschreibung des Betriebs des
Elementprozessors von Fig. 25;
Fig. 29 ein Signaldiagramm eines anderen Betriebszustands für den
Elementprozessor von Fig. 25;
Fig. 30 die Verteilung der Pixeldaten, die das effektive
Rechenergebnis zum Betriebszeitpunkt im
Betriebssignaldiagramm der Fig. 29 liefern;
Fig. 31 spezifisch die Struktur eines Elementprozessors zur
Realisierung des Betriebs von Fig. 30;
Fig. 32 ein Beispiel der Struktur eines Datenregisters, das im
Elementprozessor benutzt wird;
Fig. 33 eine andere Struktur für einen Elementprozessor;
Fig. 34 eine andere Struktur für einen Elementprozessor;
Fig. 35 eine andere Struktur für ein Datenregister;
Fig. 36 eine Struktur für ein Datenregister, das die
Einheitsstruktur von Fig. 35 enthält;
Fig. 37 eine Struktur des Datenpuffers von Fig. 4;
Fig. 38 eine Struktur einer anderen Absolutdifferenzschaltung, die
im Elementprozessor nach der vorliegenden Erfindung
benutzt wird;
Fig. 39 die Struktur einer Summierungseinheit, wenn die
Absolutdifferenzschaltung von Fig. 38 benutzt wird;
Fig. 40 eine spezifische Struktur für die Summierungseinheit von
Fig. 39;
Fig. 41 die Struktur des 4-zu-2-Komprimierers der Fig. 39;
Fig. 42 eine spezifische Struktur für die Summierungseinheit von
Fig. 39;
Fig. 43 eine spezifische Struktur für den Komparator von Fig. 1;
Fig. 44 eine spezifische Struktur für den Komparator von Fig. 1;
Fig. 45 die Struktur des Komparators von Fig. 44;
Fig. 46 die Struktur der Aktualisierungssteuereinheit von Fig. 44;
Fig. 47 eine Tabelle für Prioritätsspezifizierungswerte für jeden
Verschiebungsvektor, die vom Prioritätskomparator der
Fig. 44 gespeichert wird;
Fig. 48 die Struktur des Prioritätskomparators von Fig. 44;
Fig. 49 ein Beispiel für die Folge der Inkrementierung/
Dekrementierung der Addierer-/Subtrahiererschaltung der
Fig. 48;
Fig. 50 eine spezifische Struktur der Addierer/
Subtrahiererschaltung der Fig. 48;
Fig. 51 spezifisch die Struktur eines Bewegungsvektor-
Erfassungsmittels nach einer zweiten Ausführungsform der
vorliegenden Erfindung;
Fig. 52 eine spezifische Struktur des Bewegungsvektor-
Erfassungsmittels von Fig. 51;
Fig. 53 eine spezifische Struktur der Pufferspeicherschaltung von
Fig. 52;
Fig. 54 die Verteilung der gespeicherten Daten im Pufferspeicher
von Fig. 53;
Fig. 55 die Struktur des Betriebs der Pufferspeicherschaltung von
Fig. 53;
Fig. 56 spezifisch die Struktur der zweiten Betriebsvorrichtung
von Fig. 51;
Fig. 57 die spezifische Struktur der Vorhersagebild-
Erzeugungsschaltung mit gebrochener Genauigkeit von
Fig. 56;
Fig. 58 die Struktur der Absolutdifferenz-Summierungsschaltung von
Fig. 56;
Fig. 59 ein Diagramm zur Erläuterung des Betriebs der zweiten
Betriebsvorrichtung;
Fig. 60 spezifisch einer Struktur der zweiten Betriebsvorrichtung
von Fig. 52;
Fig. 61 eine Modifikation des Bewegungsvektor-Erfassungsmittels
von Fig. 52;
Fig. 62 eine Struktur des Betriebs des Bewegungsvektor-
Erfassungsmittels von Fig. 61;
Fig. 63 eine andere Struktur des Bewegungsvektor-Erfassungsmittels
von Fig. 52;
Fig. 64 eine Modifikation des Bewegungsvektor-Erfassungsmittels
von Fig. 63;
Fig. 65 das Suchfeld und den Musterblock, die bei der dritten
Ausführungsform benutzt werden, sowie den Suchbereich;
Fig. 66 die Anordnung des Musterblocks, der bei der dritten
Ausführungsform benutzt wird;
Fig. 67 ein Diagramm zur Erläuterung des Betriebs nach der dritten
Ausführungsform der vorliegenden Erfindung;
Fig. 68 ein Diagramm zur Erläuterung des Betriebs eines
Bewegungsvektor-Erfassungsmittels nach der dritten
Ausführungsform der vorliegenden Erfindung;
Fig. 69-71 Diagramme zur Erläuterung des Betriebs des
Bewegungsvektor-Erfassungsmittels nach der dritten
Ausführungsform der vorliegenden Erfindung;
Fig. 72 ein Signaldiagramm der Bewegungsvektorerzeugung im
Bewegungsvektor-Erfassungsmittel nach der dritten
Ausführungsform der vorliegenden Erfindung;
Fig. 73 die Struktur des Elementprozessors, der bei der dritten
Ausführungsform der vorliegenden Erfindung;
Fig. 74 und 75 die Struktur zur Erzeugung von Daten zweier
Musterblöcke für den Elementprozessor von Fig. 73;
Fig. 76 eine weitere Struktur des Elementprozessors von Fig. 73;
Fig. 77A und 77B spezifisch die Struktur der Komparatoreinheit des
Bewegungsvektor-Erfassungsmittels nach der dritten
Ausführungsform der vorliegenden Erfindung;
Fig. 78 die Struktur einer Vorrichtung bei der Kombination der
dritten Ausführungsform der vorliegenden Erfindung mit dem
Bewegungsvektor-Erfassungsmittel mit gebrochener
Genauigkeit;
Fig. 79 und 80 eine andere Struktur und deren Betrieb, wenn das
Bewegungsvektor-Erfassungsmittel nach der dritten
Ausführungsform mit dem Bewegungsvektor-Erfassungsmittel
mit gebrochener Genauigkeit kombiniert wird;
Fig. 81 die Struktur eines Bewegungsvektor-Erfassungsmittels nach
einer vierten Ausführungsform der vorliegenden Erfindung;
Fig. 82 die Struktur der Bewegungsvektor-Erfassungseinheit mit
Interpolationsvorhersage nach Fig. 81;
Fig. 83 die Strukturen der Referenzbild-Erzeugungsschaltung mit
Interpolationsvorhersage und der Bewegungsvektor-
Erfassungseinheit mit Interpolationsvorhersage von
Fig. 82;
Fig. 84 spezifisch die Struktur der Bewegungsvektor-
Erfassungsschaltung von Fig. 82;
Fig. 85 die detaillierte Struktur der Schaltung von Fig. 84;
Fig. 86 eine Modifizierung der Referenzbild-Erzeugungsschaltung
mit Interpolationsvorhersage von Fig. 82;
Fig. 87 eine weitere Struktur der Bewegungsvektor-
Erfassungseinheit mit Interpolationsvorhersage;
Fig. 88 eine Modifikation des Bewegungsvektor-Erfassungsmittels
nach der vierten Ausführungsform;
Fig. 89 die Datenverarbeitungsweise im Bewegungsvektor-
Erfassungsmittel nach der vierten Ausführungsform;
Fig. 90 ein Beispiel für die Anwendung des Bewegungsvektor-
Erfassungsmittels nach der vierten Ausführungsform;
Fig. 91 eine weitere Struktur des Bewegungsvektor-
Erfassungsmittels nach der vierten Ausführungsform;
Fig. 92 eine Struktur einer Bildsignal-Codierungsschaltung;
Fig. 93 eine Struktur der Quellencodierungsschaltung von Fig. 92;
Fig. 94A und 94B Diagramme zur Erläuterung des
Bewegungskompensationsvorgangs eines Bildes;
Fig. 95 den Suchbereich und die Musterblockanordnung bei der
Bewegungskompensation nach dem Block-Matching-Verfahren
und die Beziehung eines Bewegungsvektors;
Fig. 96 die Struktur eines Bewegungsvektor-Erfassungsmittels;
Fig. 97 die Struktur eines Elementprozessors, der im Prozessorfeld
der Fig. 96 enthalten ist;
Fig. 98 die Abtastung des Musterblocks im Bewegungsvektor-
Erfassungsmittel von Fig. 96 sowie das Abtastverfahren des
Suchfensters;
Fig. 99 den Betrieb des Bewegungsvektor-Erfassungsmittels von
Fig. 96;
Fig. 100 ein Diagramm zur Beschreibung des Betriebs eines
Bewegungsvektor-Erfassungsmittels;
Fig. 101 eine weitere Struktur eines Bewegungsvektor-
Erfassungsmittels;
Fig. 102 ein Diagramm zur Erläuterung des Verfahrens zur Erzeugung
eines Bewegungsvektors mit gebrochener Genauigkeit; und
Fig. 103 ein Diagramm zur Erläuterung des Bewegungsvektors mit
gebrochener Genauigkeit.
Fig. 1 zeigt ein Blockschaltbild der Struktur eines Bewegungsvektor-
Erfassungsmittels nach einer ersten Ausführungsform der vorliegenden
Erfindung. Das Bewegungsvektor-Erfassungsmittel von Fig. 1 erfaßt
einen Bewegungsvektor mit ganzzahliger Genauigkeit.
Wie in Fig. 1 gezeigt ist, weist das Bewegungsvektor-
Erfassungsmittel eine Eingabeeinheit 2 zum Empfangen von
Suchfensterdaten Y und Musterdaten X, um die zugeführten Daten zu
einem vorbestimmten Zeitpunkt bereitzustellen, eine Betriebseinheit
1 zum Berechnen eines Kennungswertes (einer Kennungsfunktion), der
sich auf einen Verschiebungsvektor für einen Musterblock
entsprechend den von der Eingabeeinheit 2 ausgegebenen Daten
bezieht, und eine Komparatoreinheit 3 zum Empfangen eines
Kennungswertes (Σ|a-b|), der durch die Betriebseinheit 1 ermittelt
wird, und zum Ermitteln des minimalen Kennungswertes für einen
Musterblock, auf, um einen Verschiebungsvektor entsprechend diesem
minimalen Kennungswert als Bewegungsvektor zu bestimmen. Der
Bewegungsvektor wird von der Komparatoreinheit 3 abgegeben.
Die Betriebseinheit 1 weist ein Prozessorfeld 10 mit einer Mehrzahl
von Elementprozessoren, die in einem Feld angeordnet sind, und eine
Summierungseinheit 12 zum Ermitteln der Gesamtsumme der
Berechnungsergebniswerte (Absolutdifferenzen bei der vorliegenden
Ausführungsform), die vom jeweiligen Prozessor im Prozessorfeld 10
geliefert werden, auf. Jeder Elementprozessor im Prozessorfeld 10
speichert verschiedene Musterblockdaten und berechnet die Komponente
eines Kennungswertes, der die Korrelation zwischen einem Musterblock
und einem Suchfensterblock angibt. Im Prozessorfeld 10 werden die
Musterblockdaten während des Betriebszyklus zum Ermitteln eines
Bewegungsvektors für diesen Musterblock konstant gespeichert. Die
Suchfenster-Blockdaten werden im Prozessorfeld für jeweils einen
Berechnungszyklus um einen Pixelwert verschoben. Damit kann für
jeden Verschiebungsvektor ein Kennungswert mit einem minimalen
Suchfenster-Datentransfer berechnet werden, um die Strom-
/Leistungsaufnahme zu vermindern. Im folgenden wird die Struktur der
in Fig. 1 gezeigten Betriebseinheit 1 genau beschrieben.
Fig. 2 zeigt ein Diagramm, das die Größe eines Musterblocks und
eines Suchbereichs angibt, die bei der vorliegenden Erfindung
benutzt werden. Der Musterblock 20 weist Pixel auf, die in Q Zeilen
und P Spalten angeordnet sind. Der Suchbereich 22 weist einen
Suchbereich zwischen +t1 und -t2 in horizontaler Richtung und einen
Suchbereich zwischen +r1 und -r2 in vertikaler Richtung auf. Genauer
gesagt weist der Suchbereich 22 (t2+P+t1)·(r2+Q+r1) Pixel auf.
Fig. 3 zeigt schematisch die Struktur eines Elementprozessors, der
im Prozessorfeld von Fig. 1 enthalten ist. Wie in Fig. 3 dargestellt
ist, weist ein Elementprozessor PE M Datenregister 25-1 bis 25-M
auf, die zum Speichern von Musterblockdaten kaskadenförmig
miteinander verbunden sind. Die Datenregister 25-1 bis 25-M
speichern verschiedene Musterblockdaten. Die Datenregister 25-1 bis
25-M entsprechend den Speichervorrichtungen im ersten
Speichermittel.
Der Elementprozessor PE weist ferner N Stufen von kaskadenförmig
verbundenen Datenregistern 26-1 bis 26-N zum Speichern von
Suchfensterdaten auf. Die Datenregister 26-1 bis 26-N entsprechen
den jeweiligen Speichervorrichtungen im zweiten Speichermittel. N
ist eine ganzzahliges Vielfaches von M (n-mal). Die Anzahl der
Zeilen Q im Musterblock ist ein ganzzahliges Vielfaches der Anzahl M
der Stufen von Datenregistern 25-1 bis 25-M. Bei diesem
Elementprozessor PE wird die Berechnung unter Verwendung der in den
M Datenregistern 25-1 bis 25-M gespeicherten Musterblockdaten
ausgeführt. Hier können die Datenregister 26-1 bis 26-N zum
Speichern der Suchfensterdaten in einer 1-zu-1-Entsprechung zu den
Datenregistern 25-1 bis 25-M zur Speicherung der Musterblockdaten
(N=M) gebildet sein, um die Berechnung unter Verwendung der im
jeweiligen Register gespeicherten Daten auszuführen.
Der Elementprozessor PE führt die Berechnung für die M
Musterblockwerte aus. Das Rechenmittel im Elementprozessor PE wird
in gemultiplexter Weise für die M Datenregister 25-1 bis 25-M
verwendet. Genauer gesagt ist bei der vorliegenden Ausführungsform
nur ein Rechenmittel im Elementprozessor PE gebildet.
Die Suchfensterdaten und die Musterblockdaten werden nur zwischen
benachbarten Elementprozessoren in nur einer Richtung übertragen.
Fig. 4 zeigt eine Struktur für das Prozessorfeld von Fig. 1. Wie in
Fig. 4 dargestellt ist, weist ein Prozessorfeld 10 lineare
Prozessorfelder LA1 bis LAP auf, die in P Spalten angeordnet sind.
Die linearen Prozessorfelder LA1 bis LAP besitzen dieselbe Struktur,
wobei jedes Prozessorfeld m Elementprozessoren PE1-PEm, die in
kaskadierender Weise miteinander verbunden sind, und einen
Datenpuffer DL zum Speichern von R (=r1+r2) Suchfensterwerten, die
als Verzögerungsmittel dienen, aufweist.
Die Elementprozessoren PE1-PEm übertragen die Suchfensterdaten und
die Musterblockdaten in einer einzigen Richtung (in Fig. 4 vertikal
nach oben) im selben linearen Prozessorfeld LA1. Beim Übertragen von
Daten in ein benachbartes lineares Prozessorfeld wird der
Suchfensterwert vom am weitesten in Übertragungsrichtung
befindlichen Elementprozessor PE1 an den Datenpuffer DL des
benachbarten linearen Prozessorfeldes (in Fig. 4 nach links)
angelegt. Der Musterblockwert vom am weitesten in
Übertragungsrichtung befindlichen Elementprozessor PE1 wird an den
am weitesten entgegen der Übertragungsrichtung befindlichen
Elementprozessor PEm des benachbarten linearen Prozessorfeldes
angelegt. Genauer gesagt werden der Suchfensterwert über den
Elementprozessor PE und den Datenpuffer DL und der Musterblockwert
nur über den Elementprozessor PE übertragen.
Zusätzlich zur oben erwähnten Verzögerungsfunktion weist der
Datenpuffer DL eine Funktion zum Ausgeben des zugeführten Wertes in
FIFO-Weise (First-In-First-Out) auf. Daher können R Daten-Latches
mit Schiebefunktion oder R Register-Files (Registersätze), die Daten
speichern, als Datenpuffer DL benutzt werden.
Beim oben beschriebenen Prozessorfeld 10 kann eine ausreichende
Verdrahtungsfläche für die Signalleitungen sichergestellt werden,
und die belegte Verdrahtungsfläche kann durch paralleles Anordnen
der Signalleitungen, die die Suchfensterdaten übertragen, und der
Signalleitungen, die die Musterdaten übertragen, minimiert werden.
Der Grund dafür ist, daß der Bereich, der der Breite des
Elementprozessors PE entspricht, als Verdrahtungsbereich verwendet
werden kann.
Fig. 5 zeigt eine weitere Möglichkeit für den Datenübertragungspfad.
Der Datenübertragungspfad kann so gebildet sein, daß die
Musterdaten-Übertragungsrichtung 32 und die Suchfensterdaten-
Übertragungsrichtung 30 orthogonal sind, wie in Fig. 5 dargestellt
ist. Weil die Bildsignale in einem allgemeinen Bildspeicher
rasterförmig abgetastet werden, werden aufeinanderfolgende Bilddaten
sequentiell in Zeilenrichtung (in horizontaler Richtung in der
Figur) gespeichert. Wenn ein Wert in der horizontalen Richtung von
Fig. 5 übertragen werden soll, können die Daten derselben Zeile
angesprochen und sequentiell aus dem Bildspeicher ausgelesen werden.
Das ist für das Datenlesen und die Datenübertragung sehr angenehm.
Die Suchfensterdaten und die Musterdaten werden in jedem
Elementprozessor in nur einer Richtung übertragen. Im folgenden wird
der Betrieb beschrieben.
Es wird ein Fall betrachtet, bei dem ein Bild in 8·8 Makroblöcke
unterteilt ist, wie in Fig. 6 dargestellt ist. Wie in Fig. 6 gezeigt
ist, wird der schraffierte Bereich eines Makroblocks im
gegenwärtigen Bild 36 als Musterblock TB1 angenommen. Für den
Musterblock TB1 soll ein Bewegungsvektor bestimmt werden.
Hier sind die schraffierten Makroblöcke MB1, MB2 und MB3 im
vorangehenden Bild 35, das in Fig. 6B dargestellt ist, im
Prozessorfeld 10 gespeichert. Die Pixeldaten des Musterblocks TB1,
der in Fig. 6A gezeigt ist, sind im jeweiligen Datenregister im
Elementprozessor PE gespeichert. Q/m Musterblockwerte, die in der
Figur in vertikaler Richtung angeordnet sind, sind in einem
Elementprozessor PE gespeichert. Hinsichtlich der Suchfensterdaten
sind Q·n/m in vertikaler Richtung benachbarte Pixelwerte in einem
Elementprozessor gespeichert. In einem Elementprozessorfeld 10 sind
Q Suchfenster-Pixelwerte in vertikaler Richtung und P Suchfenster-
Pixelwerte in horizontaler Richtung gespeichert, d. h. insgesamt P·Q
Suchfenster-Pixelwerte. Jeder der P·Q Pixelwerte wird in der
folgenden Beschreibung als "Suchfensterblock-Pixelwert" bezeichnet.
Die restlichen R Suchfenster-Pixelwerte sind im Datenpuffer DL
gespeichert. Dieser Zustand ist in Fig. 7 dargestellt.
Genauer gesagt implementieren die Suchfensterdaten aus P·Q
Pixelwerten einen Suchfensterblock 42 und werden im jeweiligen
Elementprozessor PE im Prozessorfeld gespeichert. Die
restlichen (r1+r2)·P Pixelwerte werden im Datenpuffer DL gespeichert.
Der im Datenpuffer DL gespeicherte Pixeldatenbereich 44 wird im
folgenden als "Seitenfensterblock" bezeichnet. In der folgenden
Beschreibung wird der Suchfensterblock 42 kombiniert mit dem
Seitenfensterblock als Suchfenster 40 bezeichnet.
Wie in Fig. 8 gezeigt ist, werden M Musterblockdaten und N
Suchfensterdaten in einem Elementprozessor PE gespeichert. Weil m
Elementprozessoren PE kaskadenförmig verbunden sind, werden die
Musterpixeldaten, die durch die jeweilige von Q Spalten angeordnet
werden, im Elementprozessor PE in einem linearen Prozessorfeld
gespeichert. Im folgenden wird deren spezifischer Betrieb
beschrieben.
Um die folgende Beschreibung zu vereinfachen, werden folgende
Bedingungen angenommen.
Musterblockgröße P=Q=16
Suchbereich für den Bewegungsvektor r1=r2=15, T2=2, T1=15, m=8 M=N=2.
Suchbereich für den Bewegungsvektor r1=r2=15, T2=2, T1=15, m=8 M=N=2.
Fig. 9 zeigt den Datenspeicherungszustand im ersten Betriebszyklus
des Bewegungsvektor-Ermittlungsvorgangs. Wie in Fig. 9 gezeigt ist,
sind die Daten des Musterblocks 43, die aus den Pixeldaten von 16
Zeilen und 16 Spalten gebildet werden, im jeweiligen Prozessor PE
des Prozessorfeldes 10 gespeichert. Entsprechend werden die
Pixeldaten des Suchfensterblocks 42 aus 16 Zeilen mal 16 Spalten im
jeweiligen Prozessor PE im Prozessorfeld gespeichert. Dieser Zustand
entspricht dem Verschiebungsvektor (0, -15). In diesem Zustand
ermittelt jeder Elementprozessor die absolute Differenz des
Musterblockwertes und eines entsprechenden Suchfensterwertes. Die
vom jeweiligen Elementprozessor PE ermittelte absolute Differenz
wird zur Summierungseinheit 12 übertragen, um dort akkumuliert zu
werden. Die Gesamtsumme wird dazu benutzt, einen Kennungswert (eine
Kennungsfunktion) entsprechend diesem Verschiebungsvektor (0, -15)
zu bestimmen.
Die Musterblockdaten werden im jeweiligen Elementprozessor gehalten,
und nur die Suchfensterblockdaten werden um ein Pixel verschoben.
In diesem Zustand wird der Wert in der obersten Zeile im
Suchfensterblock 42 zum Datenpuffer DL der benachbarten Spalte
übertragen, wie das in Fig. 10A dargestellt ist. Als Reaktion darauf
wird der erste Pixelwert des Suchfensterblocks ausgeschoben.
Parallel zur diesem Ausschiebevorgang wird ein neuer
Suchfensterblockwert eingegeben. Der ausgeschobene
Suchfensterblockwert und der neu eingeschobene Suchfensterblockwert
sind in den schraffierten Bereichen der Fig. 10A dargestellt.
Damit wird im Elementprozessor PE im Prozessorfeld der im
Suchfenster 40 um eine Zeile nach unten verschobene Suchfensterblock
42a gespeichert. Hier ist die Versetzung zwischen dem Musterblock 43
und dem Suchfensterblock 42a gleich dem Vektor (0, -14).
Unter dieser Bedingung wird die Berechnung der absoluten Differenz
und die Akkumulierung ähnlich wie beim oben beschriebenen Vorgang
ausgeführt, um einen Kennungswert für den Verschiebungsvektor (0, -14)
zu erhalten.
Wenn dieser Vorgang wiederholt wird, bis der Verschiebungsvektor (0,
0) erreicht ist, entspricht der Suchfensterblock 42b im Suchfenster
40 der True-Backside des Musterblocks 43, wie in Fig. 11A
dargestellt ist. Unter Beachtung der Daten im Suchfenster 40, die im
Prozessorfeld gespeichert sind, werden die Suchfensterdaten von
15·16 Pixeln einer Position, die im oberen Bereich um eine Spalte
nach rechts verschoben ist, gespeichert. Durch Ausschieben von einem
Bit an Suchfensterdaten, das für die Berechnung des Kennungswertes
nicht länger notwendig ist, werden parallel zur
Kennungswertberechnung die Suchfensterdaten der nächsten Spalte neu
gespeichert.
Wenn der Verschiebungsvektor dann gleich (0, +15) wird, befindet
sich der Suchfensterblock 42c im unteren Bereich des Suchfensters
40, wie in Fig. 12A dargestellt ist. Nachdem in diesem Zustand der
Kennungswert für diesen Verschiebungsvektor (0, +15) berechnet
worden ist, wird der nicht länger benötigte Suchfensterwert PY1 aus
dem Prozessorfeld ausgeschoben und ein neuer Suchfensterwert PY2
wird eingeschoben. Dieser Schiebevorgang wird 16mal wiederholt.
Durch die Schiebevorgänge werden alle Daten für den
Berechnungsvorgang im nächsten Schritt ermittelt.
Im nächsten Schritt wird die Berechnung eines Kennungswertes für das
im Suchbereich um eine Spalte nach rechts verschobene Suchfenster
ausgeführt. Genauer gesagt wird das nächste Suchfenster 40a im
Suchbereich 45 aus Pixeldaten an einer Position gebildet, die
gegenüber dem ursprünglichen Suchfenster 40 um eine Spalte nach
rechts verschoben ist, wie in Fig. 13 dargestellt ist. Beim in Fig.
12B gezeigten Zustand werden die Pixeldaten eines Bereichs 50, der
durch Schraffurlinien angegeben wird, im Prozessorfeld gespeichert.
Um im jeweiligen Elementprozessor im Prozessorfeld die Suchfenster-
Blockdaten an der oberen Position des Suchfensters 40a, das in Fig.
13 gezeigt ist, zu speichern, werden die restlichen 15 Pixelwerte
eingeschoben, wie oben für die Fig. 12B beschrieben worden ist.
Damit wird der am weitesten oben befindliche Suchfensterblock 42d im
Suchfenster 40a neu im jeweiligen Elementprozessor PE im
Prozessorfeld gespeichert. Das entspricht dem Zustand, bei dem der
Suchfensterblock 42d und der Musterblock 43 entsprechend einem
Verschiebungsvektor (1, -15) im Elementprozessor gespeichert sind.
Die Berechnung der absoluten Differenz und der Gesamtsumme, d. h. die
Berechnung des Kennungswertes, wird in diesem Zustand ausgeführt. In
Fig. 14 zeigt der Bereich einer Spalte, der durch eine gestrichelte
Linie angegeben wird, die ausgeschobenen Suchfensterdaten und die
eingeschobenen Suchfensterdaten.
Durch (15+15+1+16)·15+(15+15+1)=736maliges Ausführen der oben
beschriebenen Schiebeoperation wird die Berechnung eines
Kennungswertes für einen Verschiebungsvektor (15, 15) ausgeführt,
wie in Fig. 15 dargestellt ist. Genauer gesagt wird die Berechnung
eines Kennungswertes für den Musterblock 43 für den rechts unten
befindlichen Suchfensterblock 42e im Suchbereich 45 ausgeführt.
In diesem Zustand wird der Wert eines Bereichs 50a, der durch die
Schraffurlinien in Fig. 16 angegeben ist, im Elementprozessor im
Prozessorfeld gespeichert. Die Wert im restlichen Bereich
(Seitenfensterbereich) 52 aus 16·30 Pixeln werden im Datenpuffer
gespeichert. Durch Ausführen der oben angeführten Operation können
alle für den Musterblock 43 erforderlichen Kennungsfunktionen
(Kennungswerte) berechnet werden. Der minimale Kennungswert
(Kennungsfunktion) aller berechneten Kennungsfunktionen
(Kennungswerte) wird in der Komparatoreinheit ermittelt, wodurch der
entsprechende Verschiebungsvektor als Bewegungsvektor für den
Musterblock 43 bestimmt wird.
Im folgenden wird die Bewegung der oben beschriebenen Pixeldaten auf
der Basis der Suchfenster-Pixeldaten beschrieben. Wie in Fig. 17
gezeigt ist, wird angenommen, daß das Prozessorfeld 10 64
Elementprozessoren PE0-PE63 aufweist, die in 8 Zeilen und 8 Spalten
angeordnet sind. In Fig. 17 ist der Puffer DL nicht dargestellt. Die
Elementprozessoren PE0-PE63 speichern jeweils Pixelwerte des
Musterblocks. Dieser Musterblock weist Pixelwerte a0, 0 bis a7, 7 auf,
die in 8 Zeilen und 8 Spalten angeordnet sind, wie Fig. 18 zeigt.
Der Pixelwert ai, j gibt den Pixelwert in der i-ten Zeile und j-ten
Spalte im Musterblock aus 8 Zeilen und 8 Spalten an. Die
Musterpixeldaten a0, 0-a7, 7 befinden sich während der
Bewegungsvektor-Berechnungsphase in einem entsprechenden
Elementprozessor.
Es wird angenommen, daß der Suchbereich -8 bis +8 in horizontaler
Richtung und -8 bis +8 in vertikaler Richtung beträgt. Fig. 19 zeigt
eine Anordnung der Pixeldaten im halben Suchbereich, d. h. im
Abschnitt 0 bis +8 des Suchbereichs in horizontaler Richtung.
Genauer gesagt weist der Suchbereich Pixelwerte b0, 0 bis b23, 15
auf, die in 24 Zeilen und 16 Spalten angeordnet sind, wie in Fig. 19
dargestellt ist. bi, j gibt ein Referenzpixel an, das im Suchbereich
in der i-ten Zeile und j-ten Spalte angeordnet ist.
Mit der in den Fig. 17, 18 und 19 gezeigten Anordnung wird ein
Kennungswert für jeden der Verschiebungsvektoren (0, 8) bis (8, 8)
berechnet. Obwohl die Elementprozessoren PE0-PE63 in einer Matrix
angeordnet sind, ist die Übertragungsrichtung der Daten nur
unidirektional. Wie in Fig. 21 gezeigt ist, sind die
Elementprozessoren PE0-PE63 des Prozessorfeldes 10 und die Puffer DL
für die Suchfenster-Pixeldaten in einer Spalte angeordnet.
Wie in Fig. 21 gezeigt ist, weist die Prozessorspalte PL1
Elementprozessoren PE0-PE7 und die Prozessorspalte PL2
Elementprozessoren PE8-PE15 auf. Eine Prozessorspalte PLk weist
Elementprozessoren PE(8k) bis PE(8k+7) auf, wobei gilt k=0 bis 7.
Zwischen den Prozessorspalten PLk und PL(k+1) ist ein Puffer DL(k+1)
gebildet. Darüber hinaus ist ein Puffer DL8 am Eingangsabschnitt der
am weitesten entgegen der Übertragungsrichtung befindlichen
Prozessorspalte PL7 (dem Pixeldaten-Eingabeabschnitt am nächsten)
gebildet. Jeder der Puffer DL1-DL8 speichert Pixeldaten und
überträgt den Wert in nur einer Richtung.
Als Anfangszustand wird der Zustand betrachtet, in dem die
Suchfensterdaten b0, 0-b7, 0 in der Prozessorspalte PL0 und die
Pixeldaten b8, 0-b23, 0 im Puffer DL1 gespeichert sind, wie in Fig. 21
dargestellt ist. Mit anderen Worten wird der Zustand betrachtet, bei
dem die 0-te bis 23-te Zeile und 0-te bis 7-te Spalte im Suchbereich
der Fig. 19 gespeichert sind. Pixeldaten der 0-ten bis 7-ten Zeile
und der 0-ten bis 7-ten Spalte im Suchbereich von Fig. 19 sind in
den Prozessorspalten PL0-PL7 gespeichert. Hier sind Pixelwerte der
Musterpixeldaten a0, 0-a7, 7 in entsprechenden Elementprozessoren PE0-PE63
gespeichert, so daß eine Spalte von Musterpixeldaten a0, k bis
a7, k in einer Prozessorspalte PLk gespeichert sind. Dieser Zustand
entspricht einem Verschiebungsvektor (0, -8), und ein Kennungswert
für diesen Verschiebungsvektor wird berechnet.
Im nächsten Zyklus wird der Suchfenster-Pixelwert ausgeschoben. Wie
in Fig. 22(a) dargestellt ist, wird genauer gesagt der Pixelwert
b0, 0 ausgeschoben und der Pixelwert b0, 8 wird eingeschoben. Dieser
Schiebevorgang wird über einen Puffer ausgeführt (angegeben durch
die Schraffur in Fig. 22). Die Pixeldaten eines Suchfensterblocks,
der im Suchbereich der Fig. 19 um eine Zeile nach unten verschoben
ist, werden in den Prozessorspalten PL0-PL7 gespeichert. Dieser neue
Suchfensterblock entspricht einem Verschiebungsvektor (0, -7). (Die
Musterblockdaten werden nicht verschoben). Durch Ausführen der
Berechnung in diesem Zustand wird ein Kennungswert für den
Verschiebungsvektor (0, -7) berechnet.
Wie in Fig. 22(b) dargestellt ist, wird dann der Pixelwert b1, 8 der
1-ten Zeile und 8-ten Spalte eingeschoben, und der Pixelwert b1, 0
wird ausgeschoben. Der Speicherpixelwert in den Prozessorspalten
PL0-PL7 wird um eine Zeile (in Fig. 19) nach unten verschoben. Das
bedeutet, daß eine Prozessorspalte PLk die Suchfenster-Blockdaten
b2, k bis b9, k speichert. Dieser Suchfensterblock entspricht einem
Verschiebungsvektor (0, -6), und ein Kennungswert für diesen
Verschiebungsvektor wird berechnet.
Durch Ausführen des oben beschriebenen Schiebe- und
Berechnungsvorgangs werden der Pixelwert b7, 8 eingeschoben und der
Pixelwert b7, 0 ausgeschoben, wie in Fig. 22(c) dargestellt ist. Die
Pixeldaten b8, k bis b15, k werden in der Prozessorspalte PLk
gespeichert. Der in den Prozessorspalten PL0-PL7 gespeicherte
Suchfensterblock entspricht einem Verschiebungsvektor (0, 0).
Wenn der Schiebe-/Berechnungsvorgang achtmal ausgeführt wird,
nachdem ein Kennungswert für den Verschiebungsvektor (0, 0)
berechnet worden ist, wird der Pixelwert b15, 8 eingeschoben und der
Pixelwert b15, 0 ausgeschoben, wie in Fig. 22(d) dargestellt ist.
Die Pixeldaten eines Suchfensterblocks entsprechend dem
Verschiebungsvektor (0, 8) werden in der Prozessorspalte
gespeichert. Dieser Suchfensterblocks entspricht einem
Verschiebungsvektor (0, 8).
Auf die Berechnung des Kennungswertes für den Verschiebungsvektor
(0, 8) folgt die Berechnung des Kennungswertes für den
Verschiebungsvektor (1, -8). Hier sind jedoch die Pixeldaten der 8-
ten Spalte im Suchbereich noch nicht eingeschoben worden. Daher
werden die restlichen Suchfenster-Pixeldaten b16, 8 bis b23, 8 in der
8-ten Spalte eingeschoben. Als Reaktion darauf werden die nicht mehr
benötigten Pixeldaten b16, 0 bis b23, 0 ausgeschoben. Das ist in Fig.
23(a) dargestellt. Beim in Fig. 23(a) gezeigten Zustand werden die
Pixeldaten b0, k+1 bis b7, k+1 in der Prozessorspalte PLk gespeichert.
Genauer gesagt werden die Suchfenster-Pixeldaten für den
Verschiebungsvektor (1, -8) in den Elementprozessoren PE0-PE63
gespeichert, und der Kennungswert für den Verschiebungsvektor (1, -
8) wird berechnet.
Erneut wird der Schiebe-/Berechnungsvorgang für einen Pixelwert
ausgeführt. Genauer gesagt wird der Pixelwert b0, 9 eingeschobene und
der Pixelwert b0, 1 wird ausgeschoben, wie in Fig. 23(b) dargestellt
ist, wodurch die Berechnung eines Kennungswertes für den
Verschiebungsvektor (1, -7) ausgeführt wird.
Der oben beschriebene Vorgang wird wiederholt, bis der Pixelwert
b15, 16 und der Pixelwert b15, 8 eingeschoben bzw. ausgeschoben worden
sind, wie in Fig. 23(c) dargestellt ist, um die Berechnung eines
Kennungswertes für den letzten Verschiebungsvektor (8, 8)
auszuführen.
Der oben beschriebene Schiebevorgang für einen Suchfeld-Pixelwert
ist äquivalent der Bildung einer 1-Pixel-Datenspalte durch
Aneinanderhängen jeder Spalte in der Matrix des Suchbereichs der
Fig. 19 und Verschieben der 1-Pixel-Werte jeweils um eins. Der
Puffer wird eingesetzt, so daß der erforderliche Pixelwert
(Suchfenster-Blockwert) im Elementprozessor gespeichert wird.
Bei der oben beschriebenen Struktur befindet sich der
Musterblockwert im jeweiligen Elementprozessor im Proz 99999 00070 552 001000280000000200012000285919988800040 0002004322343 00004 99880essorfeld. Nur
der Wert im Suchfeld wird für jeden Betriebszyklus verschoben. Die
Abtastrichtung der Daten im Suchbereich ist unidirektional (in der
Figur nach unten) im Suchbereich 45, wie in Fig. 24 dargestellt ist.
Weil die Datenübertragung des Suchfeldes nur in einer Richtung
ausgeführt wird, ist keine Schaltung notwendig, die die
Datenübertragungsrichtung auswählt, so daß die für den Datentransfer
erforderliche Komplexität vermindert wird. Ferner kann durch die
Verringerung der Schaltungskomplexität die Leistungsaufnahme
vermindert werden.
Fig. 25 zeigt die Struktur eines Elementprozessors PE genauer. Bei
der vorherigen Struktur sind nur das Suchfensterdaten-Speichermittel
und das Musterblockdaten-Speichermittel beschrieben worden. Im
folgenden wird unter Bezugnahme auf die Fig. 25 eine genaue Struktur
des Elementprozessors PE beschrieben.
Wie in Fig. 25 dargestellt ist, weist ein Elementprozessor PE zwei
Stufen kaskadenförmig verbundener Register 26-1 und 26-2 zum
Speichern von Suchfensterdaten, einen Selektor 60 zum Auswählen der
in einem der Register 26-1 und 26-2 gespeicherten Daten entsprechend
einem Auswahlsignal SEL, zwei Stufen kaskadenförmig verbundener
Register 25-1 und 25-2 zum Speichern von Musterdaten, einen Selektor
62 zum Auswählen der in einem der Register 25-1 und 25-2
gespeicherten Daten entsprechend einem Auswahlsignal SEL1, und eine
Absolutdifferenzschaltung 64 zur Ermittlung der absoluten Differenz
der von den Selektoren 60 und 62 ausgewählten Daten auf. Diese
Struktur entspricht M=N=2 in Fig. 3.
Die Register 26-1 und 26-2 bilden eine Schieberegisterstufe, um
entsprechend einem nicht dargestellten Taktsignal zugeführte Daten
zu übertragen und zu verriegeln. In ähnlicher Weise bilden die
Register 25-1 und 25-2 ein Schieberegister, um entsprechend einem
nicht dargestellten Transfertaktsignal zugeführte Musterblockdaten
zu übertragen und zu verriegeln.
Der Selektor 60 arbeitet synchron zum Selektor 62 und wählt einen
Satz von Registerpaaren 26-1 und 25-1 oder 26-2 und 25-2 aus.
Bei der in Fig. 25 dargestellten Struktur führt ein Elementprozessor
PE die Berechnung für zwei Pixel von Musterblockdaten aus.
Die Musterblockdaten befinden sich in den Registern 25-1 und 25-2
bis ein entsprechender Bewegungsvektor ermittelt worden ist. Die
Suchfensterdaten speichernden Register 26-1 und 26-2 werden pro
Zyklus um ein Pixel verschoben. Die Selektoren 60 und 62 wählen
während eines Übertragungszyklus eines Suchfensters für einen
Pixelwert abwechselnd zwei Register aus. Mit anderen Worten führt
die Absolutdifferenzschaltung 64 die Berechnung eines absoluten
Differenz in einem Halbzyklus des Suchfensterdaten-
Übertragungszyklus aus.
Fig. 26 zeigt eine genaue Struktur der Absolutdifferenzschaltung von
Fig. 25. Wie in Fig. 26 dargestellt ist, weist die
Absolutdifferenzschaltung 64 einen Subtrahierer 70 mit einem
negativen Eingang (A) zum Empfangen des Suchfensterwertes vom
Selektor 60 der Fig. 25 und einen positiven Eingang (B) zum
Empfangen des Musterblockwertes vom Selektor 62 der Fig. 25 auf. Der
Subtrahierer 70 stellt das Subtraktionsergebnis in einer
Mehrfachbitnotation mit Vorzeichen dar. Das Vorzeichenbit S(A<B)
wird gleich "1", wenn der Suchfensterwert größer als der
Musterblockwert ist, sonst ist es gleich "0". Es wird angenommen,
daß der Ausgang des Subtrahierers 70 den Wert in
Zweierkomplementdarstellung angibt. Die Absolutdifferenzschaltung 64
weist ferner eine XODER-Schaltung 72 zum Empfangen des
Vorzeichenbits S(A<B) und der restlichen Bits vom Subtrahierer 70
(im weiteren als "Magnitudenbits" bezeichnet) und einen
Inkrementierer 74 zum Addieren von eins zum Ausgangsergebnis der
XODER-Schaltung 72 entsprechend dem Vorzeichenbit S(A<B) auf. Der
Inkrementierer 74 addiert eins zum Ausgangsergebnis der XODER-
Schaltung 72, wenn das Vorzeichenbit S(A<B) gleich "1" ist. Wenn das
Vorzeichenbit S(A<B) gleich "0" ist, addiert der Inkrementierer 74
addiert nicht den Wert eins zum Ausgangsergebnis der XODER-Schaltung
72, sondern läßt den Wert unverändert durch. Die XODER-Schaltung 72
führt die Berechnung für einen Pixelwert (Mehrfachbitwert) aus.
Jedes Bit des Pixelwertes wird in Abhängigkeit vom Wert des
Magnitudenbits invertiert oder nicht invertiert.
Wenn das Vorzeichenbit S(A<B) gleich "0" ist, läßt die XODER-
Schaltung 72 die Magnitudenbits (die restlichen Bits ohne das
Vorzeichenbit vom Ausgang des Subtrahierers 70) vom Subtrahierer 70
durch. Wenn das Vorzeichenbit S(A<B) gleich "1" ist, invertiert die
XODER-Schaltung 72 jedes der Magnitudenbits vom Subtrahierer 70.
Genauer gesagt wird in der XODER-Schaltung 72 eine Modulo-2-Addition
eines jeden Magnitudenbits vom Subtrahierer 70 und des
Vorzeichenbits S(A<B) ausgeführt.
Der Subtrahierer 70 führt die Berechnung von (B-A) aus. Wenn das
Subtraktionsergebnis positiv ist, ist das Vorzeichenbit S(A<B)
gleich "0", wenn es negativ ist, gleich "1". Das Ausgangsergebnis
des Subtrahierers 70 wird in Zweierkomplementdarstellung angegeben.
Daher wird durch selektives Ausführen einer Bitinversion oder einer
1-Inkrementierung des Ausgangsergebnisses des Subtrahierer
entsprechend dem Vorzeichenbit S(A<B) mit der XODER-Schaltung 72 und
dem Inkrementierer 74 die absolute Differenz von |B-A| ausgegeben.
Bei der in Fig. 25 dargestellten Struktur weist ein Elementprozessor
PE zwei Speicherregister für Suchfenster-Blockdaten und zwei
Speicherregister für Musterblockdaten auf. Dieser Zustand entspricht
M=N=2. In diesem Zustand führen die Selektoren 60 und 62 einen
Auswahlvorgang mit der zweifachen Bittransferrate für die
Suchfensterdaten aus. Entsprechend führt die
Absolutdifferenzschaltung 64 die Berechnung mit der doppelten
Geschwindigkeit der Suchfensterdatenbit-Transferrate aus. Wenn N
Register gebildet sind, wählen die Selektoren 60 und 62 sequentiell
N Register entsprechend den Auswahlsignalen SEL0 und SEL1 innerhalb
eines Zyklus des Suchfenster-Datentransfers aus, wie in Fig. 27
gezeigt ist. In diesem Fall führt die Absolutdifferenzschaltung die
Berechnung mit der N-fachen Geschwindigkeit der Bittransferrate der
Suchfensterdaten aus (hier gilt N=M).
Durch Verwenden der zwei Speicherregister für die Suchfenster-
Blockdaten und der zwei Speicherregister für die Musterblockdaten,
die in Fig. 25 dargestellt sind, um die Absolutdifferenzberechnung
auszuführen, indem die zwei Sätze von Registern abwechselnd
getrieben werden, wird die Absolutdifferenzberechnung hinsichtlich
zweier Pixelwerten in einem Elementprozessor innerhalb eines
Transferzyklus ausgeführt, wie in Fig. 28 dargestellt ist. Eine
solche Struktur ermöglicht die Absolutdifferenzberechnung mit einer
auf die Hälfte verminderten Anzahl von Elementprozessoren und
besitzt den Vorteil, daß die Größe des Prozessorfeldes vermindert
wird. In diesem Fall kann ein weiterer Vorteil durch Bilden einer
Mehrzahl von Datenspeicherregistern erzielt werden.
Wie in Fig. 29 dargestellt ist, werden die Auswahlsignale SEL0 und
SEL1 mit dem zweifachen der Transferrate der Suchfensterdaten
umgeschaltet. In diesem Fall wird eine Auswahl ähnlich der zum
Zeitpunkt der Berechnung für die zwei Pixelwertsätze ausgeführt. Ein
Betriebseinheit-Aktivierungssteuersignal ΦS wird mit derselben Rate
wie die Übertragungsrate der Suchfensterdaten erzeugt (siehe Fig.
29). Hier wird nur das Rechenergebnis (Absolutdifferenz) für den
Satz von Pixeldaten erzeugt, der zuerst durch die Auswahlsignale
SEL0 und SEL1 ausgewählt worden ist. Das Rechenergebnis für den
zweiten Satz von Pixelwerten, die durch die zweiten Auswahlsignale
SEL0 und SEL1 angegeben werden, wird nicht ausgegeben. Die
Suchfenster-Blockdaten werden in jedem Zyklus um ein Pixel
verschoben. Die Musterblockdaten befinden sich im Prozessorfeld bis
ein Bewegungsvektor bestimmt worden ist. Daher ist das äquivalent
zum Ausführen eines Subsampling (einer Subabtastung) für ein
Rechenergebnis bei einer Bewegungsvektorberechnung, wie in Fig. 30
dargestellt ist. Die Bestimmungspunkte für die
Absolutdifferenzberechnung können ausgewählt und eine
Kennungsfunktion (ein Kennungswert) kann unter Verwendung einer
Rechenschaltung niedriger Geschwindigkeit erzeugt werden. Damit kann
die Leistungsaufnahme vermindert und die Schaltungskomplexität der
Kennungswert-Erzeugungsschaltung reduziert werden.
Im Elementprozessor wird die Absolutdifferenzberechnung ausgeführt
unter Verwendung von nur einem der Musterblockwerte, wie in Fig. 30
dargestellt ist. (In Fig. 30 wird nur der Pixelwert im Musterblock
43 benutzt, der schraffiert ist.) In diesem Fall ist es nicht
notwendig, alle Pixeldaten des Musterblocks 43 im Elementprozessor
des Prozessorfeldes zu speichern, um das Subsampling auszuführen.
Denselben Effekt kann man erzielen durch Speichern von nur den
erforderlichen gültigen Daten im Elementprozessor.
Fig. 31 zeigt eine weitere Struktur für den Elementprozessor. Wie in
Fig. 31 dargestellt ist, weist ein Elementprozessor PE zwei Stufen
kaskadenförmig verbundener Speicherregister 26-1 und 26-2 für
Suchfensterdaten, einen Selektor 60 zum sequentiellen Auswählen der
in den Registern 26-1 und 26-2 gespeicherten Daten entsprechend
einem Auswahlsignal SEL, ein Einstufenregister 25 zum Speichern von
Musterblockdaten, und eine Absolutdifferenzschaltung 64 zur
Ermittlung der absoluten Differenz des vom Selektor ausgewählten
Wertes und des im Register 25 gespeicherten Wertes auf.
Im Register 25, das die Musterblockdaten speichert, wird nur der
gültige Wert (Wert des schraffierten Bereichs) im Musterblock 43 der
Fig. 30 gespeichert. Der Selektor 60 wählt die in den Registern 26-1
und 26-2 gespeicherten Daten entsprechend einem Auswahlsignal SEL
mit der zweifachen Rate der Transferrate der Suchfensterdaten Y aus.
Die Absolutdifferenzschaltung 64 führt die Berechnung mit einer Rate
aus, die gleich der Transferrate der Suchfensterdaten Y ist.
Folglich wird die Absolutdifferenz der in einem der Register 26-1
und 26-2 gespeicherten Daten und dem im Register 25 gespeicherten
Wert konstant gebildet. Die Absolutdifferenzschaltung 64 führt die
Berechnung entsprechend den angelegten Daten aus, und ein Daten-
Latch für das Subsampling kann an der Ausgangsstufe der
Absolutdifferenzschaltung 64 gebildet sein.
Entsprechend der oben beschriebenen Struktur kann die Berechnung des
Bewegungsvektors für einen Musterblock mit hoher Geschwindigkeit
ausgeführt werden. Ferner kann die Schaltungskomplexität eines
Elementprozessors vermindert werden.
Statt den Selektor 60 zu verwenden, kann durch Verdrahtung eine
Struktur implementiert werden, um Daten entweder vom Register 26-1
oder vom Register 26-2 zur Absolutdifferenzschaltung 64 zu
übertragen, so daß die Kennungswertberechnung für die in Fig. 30
gezeigten gültigen Daten des Musterblocks 43 ausgeführt wird.
Fig. 32 zeigt ein Beispiel für die Struktur eines Datenregisters.
Wie in Fig. 32 dargestellt ist, weist ein Datenregister die Struktur
eines Schieberegisters auf. Das Schieberegister SR weist einen n-
Kanal MOS-Transistor (Feldeffekttransistor mit isoliertem Gate) NT1
zum Empfangen eines Transfertaktsignals Φ an seinem Gate und einen
p-Kanal MOS-Transistor PT1 zum Empfangen eines komplementären
Transfertaktsignals /Φ an seinem Gate auf. Die Transistoren NT1 und
PT1 implementieren ein CMOS-Übertragungsgatter zum Übertragen eines
angelegten Wertes in Abhängigkeit von einem Taktsignal Φ.
Das Schieberegister SR weist ferner eine Inverterschaltung IV1 zum
Invertieren von Daten, die von den Transistoren NT1 und PT1
übertragen werden, eine Inverterschaltung IV2 zum Invertieren und
Übertragen der Ausgangsdaten der Inverterschaltung IV1 an den
Eingang der Inverterschaltung IV1, einen n-Kanal MOS-Transistor NT2
zum Empfangen eines Transfertaktsignals /Φ an seinem Gate, einen p-
Kanal MOS-Transistor PT2 zum Empfangen eines Transfertaktsignals Φ
an seinem Gate, eine Inverterschaltung IV3 zum Invertieren der von
den Transistoren NT2 und PT2 übertragenen Daten, und eine
Inverterschaltung IV4 zum Invertieren und Ausgeben der Ausgangswerte
der Inverterschaltung IV3, um sie dem Eingang der Inverterschaltung
IV3 zuzuführen, auf.
Die Inverterschaltungen IV1 und IV2 bilden eine erste Inverter-
Latch-Schaltung, und die Inverterschaltungen IV3 und IV4 bilden eine
zweite Inverter-Latch-Schaltung. Die Transistoren NT2 und PT2
implementieren ein CMOS-Übertragungsgatter zum Übertragen angelegter
Daten in Abhängigkeit von einem komplementären Transfertaktsignal
|Φ.
Eine Mehrzahl von Schieberegistern, die in Fig. Fig. 32 dargestellt
sind, sind entsprechend der Bitanzahl der Pixelwerte parallel
gebildet.
Durch Verwenden des Schieberegisters SR der Fig. 32 als
Suchfensterdaten-Speicherregister und Musterblockdaten-
Speicherregister, wird auf einfache Weise eine unidirektionale
Übertragung der Pixeldaten und eine Datenauswahl realisiert. Wenn
ein Wert an eine Absolutdifferenzschaltung angelegt werden soll,
wird der Wert vom Eingangsbereich der Inverterschaltung IV3
abgenommen.
Fig. 33 zeigt eine weitere Struktur für einen Elementprozessor. Wie
in Fig. 33 dargestellt ist, weist ein Elementprozessor PE einen N-
Wort-Registersatz (N-Wort-Register-File) 73 zum Speichern von
Suchfensterdaten aus N Worten, einen M-Wort-Registersatz 75 zum
Speichern von Musterblockdaten aus M Worten, und eine
Absolutdifferenzschaltung 64 zur Bildung einer absoluten Differenz
der vom N-Wort-Registersatz 73 und dem M-Wort-Registersatz 75
ausgelesenen Daten auf. Ein Wort entspricht einem Pixelwert. Aus dem
N-Wort-Registersatz 73 und dem M-Wort-Registersatz 75 werden jeweils
Daten von einem Wort ausgelesen und der Absolutdifferenzschaltung 64
zugeführt. Die Registersätze 73 und 75 weisen eine Mehrzahl von
Registern mit FIFO-Struktur auf.
Bei der oben beschriebenen Struktur ist es nicht notwendig, eine
Auswahlschaltung zu bilden. Ein Satz entsprechender Pixelwerte kann
durch Ausführen eines synchronen Datenauslesens in den
Registersätzen 73 und 75 an die Absolutdifferenzschaltung 64
angelegt werden. Die Struktur eines Registersatzes wird später
detailliert beschrieben. Die Berechnungsrate oder Datenausgaberate
der Absolutdifferenzschaltung 64 wird vom Verarbeitungsverfahren
(Subsampling oder Abtastung aller Pixelwerte) bestimmt.
Fig. 34 zeigt eine weitere Struktur für einen Elementprozessor. Wie
in Fig. 34 dargestellt ist, weist ein Elementprozessor PE eine
Absolutdifferenz -Summierungs-Schaltung 65 anstelle der
Absolutdifferenzschaltung 64 auf. Genauer gesagt führt der in Fig.
34 dargestellte Elementprozessor PE die Berechnung einer absoluten
Differenz des Musterblockwertes aus M Worten, die im M-Wort-
Registersatz 75 gespeichert sind, und eine Akkumulierung der
absoluten Differenzen aus. Weil die partielle Summe der M
Musterblock-Pixelwerte zur Summierungseinheit übertragen wird, kann
die Berechnung der Gesamtsumme beschleunigt werden.
Fig. 35 zeigt die Struktur eines Bits im Registersatz der Fig. 33
und 34. Wie in Fig. 35 dargestellt ist, weist die Basiseinheit eines
Registersatzes eine Speicherzelle MC auf, die entsprechend der
Kreuzung einer Wortleitung WL mit einem Bitleitungspaar BL und /BL
angeordnet ist. Die Speicherzelle MC mit SRAM-Speicherzellenstruktur
weist n-Kanal MOS-Transistoren NT10 und NT12, deren Source und Drain
kreuzgekoppelt sind, einen als Widerstand geschalteten n-Kanal MOS-
Transistor NT14, der als Lastelement zum Hochziehen des
Speicherknotens SN1 auf einen H-Pegel (logisch hoch) wirkt, einen
als Widerstand geschalteten n-Kanal MOS-Transistor NT16 zum
Hochziehen des Speicherknotens SN2, und n-Kanal MOS-Transistoren
NT18 und NT20 zum Verbinden der Speicherknoten SN1 und SN2 mit den
Bitleitungen BL bzw. /BL in Abhängigkeit vom Signalpotential auf der
Wortleitung WL auf. Diese Speicherzelle MC verwendet eine
kreuzgekoppelte Inverterschaltung als Speicherelement. Weil ihre
Strukturkomponenten sechs Transistoren umfassen, kann die
Belegungsfläche je Bit gegenüber dem in Fig. 32 dargestellten
Schieberegister vermindert werden.
Fig. 36 zeigt die Struktur eines Registersatzes. Wie in Fig. 36
dargestellt ist, weist ein Registersatz ein Speicherzellenfeld 80
mit Speicherzellen nach Fig. 35, die in einer Matrix angeordnet
sind, einen Schreibadreßzeiger 82 zum Erzeugen einer Schreibadresse,
eine Schreibsteuerschaltung 84 zum Auswählen eines Wortes im
Speicherzellenfeld 80 entsprechend einer Adresse vom Adreßzeiger 82
zum Schreiben von Daten in das ausgewählte Wort, einen Lesezeiger 88
zum Erzeugen einer Auslese-Wortadresse, und eine
Auslesesteuerschaltung 86 zum Auswählen eines entsprechenden Wortes
im Speicherzellenfeld 80 entsprechend der Adresse vom Adreßzeiger 88
zum Auslesen von Daten aus dem ausgewählten Wort auf. Das
Speicherzellenfeld 80 speichert einen Pixelwert in einem
Wortbereich. Ein Wort kann einer Wortleitung entsprechen.
Beim Datenschreiben erzeugt der Adreßzeiger 82 eine Schreibadresse.
Die Schreibsteuerschaltung 84 wählt eine entsprechende Wortleitung
WL und ein Bitleitungspaar (wenn eine Mehrzahl von Worten in einer
Bitleitung gespeichert ist) entsprechend der erzeugten
Schreibadresse aus. Unter der Steuerung der Schreibsteuerschaltung
werden Schreibdaten in das ausgewählte Wort geschrieben. Beim
Datenlesen wird in ähnlicher Weise ein Wort durch den Adreßzeiger 88
und die Auslese-Steuerschaltung 86 ausgewählt, wodurch die Daten des
ausgewählten Wortes ausgelesen werden.
Beim Pixeldaten-Schiebevorgang wird vom Adreßzeiger 88 die Adresse
erzeugt, bei der der älteste Wert gespeichert ist. Die
Lesesteuerschaltung 86 wählt dieses älteste Datenwort aus und liest
den Wert des entsprechenden Wortes vom Speicherzellenfeld 80. Der
Adreßzeiger 82 gibt eine Adresse an, die auf die zuletzt
geschriebene Adresse folgt. Die Schreibsteuerschaltung 84 wählt die
Adreßposition aus, die auf das zuletzt geschriebene Wort folgt, um
Daten in diese Adreßstelle zu schreiben. Damit wird eine Übertragung
der Suchfensterdaten eines Pixels oder die Übertragung der
Musterblockdaten realisiert. Weil der Schreibpfad und der Lesepfad
verschieden sind, kollidieren die Auslesedaten und die Schreibdaten
nicht. Diese Struktur kann auf einfache Weise durch einen Ringzähler
mit einem maximalen Zählwert M als Adreßzeiger 82 und 88 realisiert
werden.
Beim Rechenvorgang zur Bestimmung der absoluten Differenz erzeugt
der Leseadreßzeiger 88 eine Adresse so, daß die in einer
vorbestimmten Reihenfolge gespeicherten M Worte sequentiell
ausgewählt werden. In diesem Fall wird das Auslesen eines
Datenwortes beginnend mit dem zuletzt geschriebenen Wert sequentiell
ausgeführt, wenn die Struktur gleich N<M ist, wobei ein Subsampling
ausgeführt wird. Wenn N=M ist und kein Subsampling ausgeführt wird,
erzeugt der Adreßzeiger 88 eine Adresse, um alle in vorbestimmter
Reihenfolge gespeicherten Wortdaten sequentiell auszulesen.
Wenn das Subsampling ausgeführt wird, kann nur der geforderte Wert
mit einer vorbestimmten Subsampling-Rate ausgelesen werden.
Wenn bei der Initialisierung Werte aus N Worten oder M Worten in den
jeweiligen Registersatz geschrieben werden sollen, wird die
Datenübertragung über den Registersatz ausgeführt. In diesem Fall
ist eine Struktur erlaubt, bei der Daten sequentiell wortweise
ausgelesen und geschrieben werden, wenn Daten aus N oder M Worten im
am weitesten in Transferrichtung befindlichen Registersatz
gespeichert sind. Das wird durch eine Struktur realisiert, bei der
die Auslese-Steuerschaltung 86 aktiviert wird, wenn die Adresse des
Adreßzeigers 82 einen vorbestimmten Wert erreicht. Ferner kann ein
Pfad gebildet sein, der die Schreibdaten nur bei der Initialisierung
direkt zu einem Auslesedatenpfad weiterleitet (Bypass-Pfad). Im Fall
einer solchen Struktur wird der Bypass-Pfad blockiert, wenn die
Anzahl der Transfertaktsignale im jeweiligen Registersatz einen
vorbestimmten Wert erreicht. Nachdem das Datenschreiben ausgeführt
und das Schreiben abgeschlossen ist, wird das Datenschreiben
gesperrt.
Der in Fig. 36 dargestellte Registersatz kann als Seitenfenster-
Datenspeicherpuffer in Fig. 4 benutzt werden.
Fig. 37 zeigt ein Beispiel für eine Struktur des Datenpuffers von
Fig. 4. Wie in Fig. 37 dargestellt ist, weist der Datenpuffer DL R-
Wort-Register 90 zum Speichern der Daten von R Worten auf. Das R-
Wort-Register 90 kann die Struktur des in Fig. 36 gezeigten Dual-
Port-Speichers aufweisen. Es kann aus einem Schieberegister
bestehen, das die Daten von R Worten speichert. Darüber hinaus kann
eine Struktur mit Verzögerungselementen wie z. B. kaskenförmig
verbundenen D-Latches benutzt werden.
Unter Verwendung eines Registersatzes als Verzögerungsmittel
anstelle von Schieberegistern können die Schaltungskomplexität und
die Leistungsaufnahme vermindert werden (aufgrund der verminderten
Anzahl von Transistoren).
Fig. 38 zeigt eine weitere Struktur für eine
Absolutdifferenzschaltung. Die in Fig. 38 dargestellte
Absolutdifferenzschaltung weist einen Subtrahierer 70 zum Ausführen
einer Subtraktion der Suchfensterdaten und Musterblockdaten und eine
XODER-Schaltung 72 zum Empfangen eines Magnitudenbits und eines
Vorzeichenbits S(A<B), die vom Subtrahierer 70 ausgegeben werden,
auf. Die in Fig. 38 gezeigte Absolutdifferenzschaltung unterscheidet
sich von der in Fig. 26 dargestellten Absolutdifferenzschaltung
dahingehend, daß kein Inkrementierer vorhanden ist. Der
Inkrementierer dient zur Addition von eins zum Ausgabeergebnis der
XODER-Schaltung 72, wenn das Vorzeichenbit S(A<B) gleich "1" ist.
Die Addition dieser eins wird in der Absolutdifferenzschaltung 64
von Fig. 38 nicht ausgeführt. Sie wird in der Summierungseinheit der
nächsten Stufe ausgeführt. Genauer gesagt liefert die
Absolutdifferenzschaltung 64 von Fig. 38 eine absolute Differenz PE#
und ein Vorzeichenbit S#, um sie an die Summierungseinheit der
nächsten Stufe anzulegen.
Fig. 39 zeigt ein Blockschaltbild einer Struktur der
Summierungseinheit, wenn die Absolutdifferenzschaltung 64 von Fig.
38 benutzt wird. Wie in Fig. 39 dargestellt ist, addiert die
Summierungseinheit 12 die Werte PE#1-PE#n entsprechend den
Absolutdifferenzen von den n Elementprozessoren und die
Vorzeichenbits S#1-S#n. PE#1-PE#n entsprechend den
Absolutdifferenzen sind Multibitwerte und die Vorzeichenbits S#1-S#n
sind 1-Bit-Werte. Die Summierungseinheit 12 besteht aus einem
Komprimierer, der Volladdierer aufweist, die die Werte PE#1-PE#n
entsprechend den Absolutdifferenzen empfangen. Die Struktur der
Summierungseinheit 12 wird später beschrieben. Die Vorzeichenbits
S#1-S#n werden dem Übertrageingang des niederwertigsten Bits dieses
Komprimierers zugeführt. Damit wird die Geschwindigkeit des
Summierungsvorgangs erhöht und die Vorrichtungskomplexität
vermindert.
Fig. 40 zeigt ein Beispiel für die Struktur der Summierungseinheit
von Fig. 39. Fig. 40 zeigt eine Struktur, bei der die
Ausgangsergebnisse der n Elementprozessoren addiert werden. Die
Struktur der Fig. 40 wird entsprechend der Anzahl von
Elementprozessoren erweitert.
Wie in Fig. 40 dargestellt ist, weist die Summierungseinheit 12
einen 4-zu-2-Komprimierer 102a zum Empfangen der Werte P#1-P#4
entsprechend den absoluten Differenzen von den vier
Elementprozessoren an den Eingängen A, B, C bzw. D und eines
Vorzeichenbits 5#1 an seinem Übertrageingang zur Addition, um das
Additionsergebnis an den zwei Ausgängen E und F abzugeben, einen 4-
zu-2-Komprimierer 102b zum Empfangen der Werte P#5-P#8 entsprechend
den absoluten Differenzen an den Eingängen A-D und eines
Vorzeichenbits 5#2 am Übertrageingang des niederwertigsten Bits, um
diese zu addieren und das Additionsergebnis an den zwei Ausgängen E
und F abzugeben, und einen 4-zu-2-Komprimierer 102c zum Empfangen
der Ausgangswerte der 4-zu-2-Komprimierer 102a und 102b an den vier
Eingängen A, B, C bzw. D und der Vorzeichenbits 5#3, S#4 und 5#5 an
seinen niederwertigsten Bitpositionen auf. Der 4-zu-2-Komprimierer
102c kann die drei Vorzeichenbits 5#3, S#4 und 5#5 empfangen, weil
er zwei Stufen von Volladdiererschaltungen aufweist. Deren Struktur
wird später genau beschrieben.
Die Summierungseinheit 12 weist ferner einen Addierer 104 zum
Empfangen der Ausgangswerte des 4-zu-2-Komprimierers 102c (E und F)
an seinen Eingängen A und B und der Vorzeichenbits 5#6, 5#7 und S#8
an den Übertrageingängen der niederwertigsten Bits auf. Vom Addierer
104 wird ein Summierungsergebnis geliefert.
Die Summierungseinheit 12 weist eine sogenannte Wallace-Baum-
Struktur auf, um die Summierung mit hoher Geschwindigkeit mit
minimierter Verzögerung der Übertragausbreitung zu ermöglichen. Die
Summierungseinheit 12 der Fig. 40 weist keinen Akkumulator auf. Wenn
die Rechenrate höher als die Suchfensterdaten-Übertragungsrate ist,
ist es notwendig, die Addition mehrfach auszuführen. Zu diesem Zweck
ist ein Akkumulator am Ausgangsabschnitt der Addiererschaltung 104
gebildet (wenn der Elementprozessor eine Mehrzahl von
Speichermitteln für Musterblockdaten aufweist). Das
Additionsergebnis (die Summe der absoluten Differenzen) kann für
jeden Rechenzyklus vom Elementprozessor zur Summierungseinheit
übertragen werden.
Weil bei der oben beschriebenen Struktur das Vorzeichenbit an den
Übertrageingang des niederwertigsten Bits angelegt wird, kann die
Addition mit hoher Geschwindigkeit bei geringer
Schaltungskomplexität ausgeführt werden. Im folgenden werden die
Struktur des 4-zu-2-Komprimierers (4-Eingangs-2-Ausgangs-Addierers)
und die genaue Struktur der Summierungseinheit beschrieben.
Fig. 41 zeigt eine genaue Struktur des 4-zu-2-Komprimierers von Fig.
40. Der in Fig. 41 dargestellte 4-zu-2-Komprimierer weist eine
Struktur entsprechend einer Datenbreite von vier Bit auf. Die
Struktur von Fig. 41 wird entsprechend dem Anstieg der Bitbreite der
Eingabedaten erweitert.
Wie in Fig. 41 dargestellt ist, weist ein 4-zu-2-Komprimierer 102
Volladdiererschaltungen 110a, 110b, 110c und 110d auf, die parallel
angeordnet sind und jeweils Eingänge A und B, einen Übertrageingang
Cin, einen Übertragausgang Co und einen Summenausgang S aufweisen.
Jede der Volladdiererschaltungen 110a-110d weist Eingänge A und B,
die 4-Bit-Eingangsdaten A<3; 0< und B<3; 0< empfangen, und der
Übertrageingang Cin empfängt Eingabedaten C<3; 0<. Die Daten A<3; 0<
geben an, daß der Wert A aus den vier Bit A3-A0 mit dem
höchstwertigen Bit A3 und dem niederwertigsten Bit A0 besteht.
Der 4-zu-2-Komprimierer 102 weist ferner Volladdiererschaltungen
110e, 110f, 110g und 110h auf zum Addieren der Summenausgaben S und
der Übertragausgaben Co der Volladdiererschaltungen 110a-110d der
ersten Stufe und der Eingangsdaten D<3; 0<. Die
Volladdiererschaltungen 110a-110d und 110e-110h sind entsprechend
den Stellen ausgerichtet. Die Summenausgaben S der
Volladdiererschaltungen 110a-110d der ersten Stufe werden den
Eingängen (A oder B) der entsprechenden Volladdiererschaltung der
nachfolgenden Stufe zugeführt. Die Übertragausgaben Co der
Volladdiererschaltungen 110a-110d der ersten Stufe werden den
Übertrageingängen der Volladdiererschaltungen mit einer um ein Bit
höheren Wertigkeit in der folgenden Stufe zugeführt. In der
Volladdiererschaltung (FA) wird 0 dem Übertrageingang 104 der
Volladdiererschaltung 110h des niederwertigsten Bit zugeführt. Das
bedeutet, daß der Übertrageingang der Volladdiererschaltung 110h ein
leerer Übertrag ist. Bei der vorliegenden Ausführungsform wird ein
Vorzeichenbit S# an diesen leeren Übertrag 104 angelegt. 5-Bit-Daten
E<4; 0< und F<4; 0< werden vom 4-zu-2-Komprimierer 102 abgegeben. Der
Summenausgang S der Volladdiererschaltungen (FA) 110a-110h liefert
die Datenbits F<3; 0<, und der Übertragausgang der
Volladdiererschaltungen (FA) 110a-110h liefert die Datenbits E<4; 0<.
Der Übertragausgang der Volladdiererschaltung 110a der ersten Stufe
liefert das Datenbit F<4<.
Bei der in Fig. 41 dargestellten Struktur des 4-zu-2-Komprimierers
102 tritt keine Übertragausbreitung auf. Die zur Berechnung
erforderliche Verzögerungszeit wird durch die zwei Stufen von
Volladdiererschaltungen verursacht. Damit kann die Addition mit
hoher Geschwindigkeit ausgeführt werden. Ferner kann die Addition
der Absolutdifferenzen ausgeführt werden, ohne die
Schaltungskomplexität aufgrund eines Vorzeichenbits S#, das an einen
leeren Übertrageingang 104 angelegt wird, zu erhöhen.
Fig. 42 zeigt die Verbindung der Schaltungsstruktur von Fig. 40. Die
in Fig. 42 dargestellte Summierungseinheit verwendet den 4-zu-2-
Komprimierer von Fig. 41. Hier wird die absolute Differenz P#i als
(Pi3, Pi2, Pi1, Pi0) ausgedrückt.
Der 4-zu-2-Komprimierer 102a weist Volladdiererschaltungen FA1-FA4
zum Addieren der Absolutdifferenzen P#1-P#3 und
Volladdiererschaltungen FA5, FA6, FA7 und FA8 zum Addieren der
Ausgaben der Volladdiererschaltungen FA1-FA4 und einer absoluten
Differenz P#4 auf. Ein Vorzeichenbit S#1 wird an den Übertrageingang
der Volladdiererschaltung FA8 angelegt.
Der 4-zu-2-Komprimierer 102b weist Volladdiererschaltungen FA9,
FA10, FA11 und FA12 zum Addieren der absoluten Differenzen P#5-P#7
und Volladdiererschaltungen FA13, FA14, FA15 und FA16 zum Addieren
der Ausgaben der Volladdiererschaltungen FA9-FA12 und einer
absoluten Differenz P#8 auf. Ein Vorzeichenbit 5#2 wird an den
Übertrageingang der Volladdiererschaltung FA16 angelegt.
Der 4-zu-2-Komprimierer 102c weist Volladdiererschaltungen FA17-FA21
zum Addieren der Ausgabe des 4-zu-2-Komprimierers 102a mit einer
ersten Ausgabe des 4-zu-2-Komprimierers 102b (der Summenausgabe der
Volladdiererschaltungen FA13-FA16 und der Übertragausgabe der
Volladdiererschaltung FA9) und Volladdiererschaltungen FA22-FA26 zum
Addieren der Ausgaben der Volladdiererschaltungen FA17-FA21 mit dem
des 4-zu-2-Komprimierers 102a mit der zweiten Aüsgabe des 4-zu-2-
Komprimierers 102b (der der Übertragausgabe Volladdiererschaltungen
FA13-FA16) auf. Vorzeichenbits 5#4 und 5#5 werden an den
Übertrageingang bzw. den ersten Eingang der Volladdiererschaltung
FA26 angelegt.
Der Addierer 104 weist eine Volladdiererschaltung FA27 zum Addieren
der Vorzeichenbits S#6-S#8, Volladdiererschaltungen FA28-FA33 zum
Addieren der Ausgabe der Volladdiererschaltung FA27 und der Ausgabe
des 4-zu-2-Komprimierers 102c und Volladdiererschaltungen FA34-FA39
zum Empfangen der Ausgaben der Volladdiererschaltungen FA28-FA33 und
zum Ausgeben des endgültigen Additionsergebnisses auf. Die
Volladdiererschaltungen FA28-FA33 bilden einen 3-zu-2-Komprimierer.
Die Volladdiererschaltungen FA34-FA39 bilden einen Addierer mit
Ripple-Übertrag. Es können auch andere Addiererstrukturen benutzt
werden (z. B. Übertrag-Look-Ahead-Addierer).
Durch Ausführen der Addition unter Verwendung des in Fig. 42
gezeigten Komprimierers kann die Verzögerung, die die
Übertragausbreitung begleitet, auf ein Minimum gedrückt werden, um
die Addition mit hoher Geschwindigkeit auszuführen.
Fig. 43 zeigt eine weitere Struktur für die in Fig. 1 dargestellte
Komparatoreinheit. (Die Prioritätsidentifizierungsfunktion ist nicht
angegeben.) Wie in Fig. 43 dargestellt ist, weist die
Komparatoreinheit 3 ein Register-Latch 130 zum Speichern eines
Kennungswertes (Kennungsfunktion) von der Summierungseinheit, einen
Komparator 132 zum Vergleichen der Größe des Kennungswertes, der im
Register-Latch 130 gespeichert ist, mit dem Kennungswert
(Kennungsfunktion), der neu von der Summierungseinheit geliefert
wird, einen Zähler 134 zum Zählen der Zyklusnummer der
Kennungswertberechnung, und ein Register-Latch 136, das von der
Ausgabe des Komparators 132 abhängig ist, um den Zählwert des
Zählers 134 zu speichern, auf. Ein Bewegungsvektor kann direkt vom
Register-Latch 136 ausgegeben werden, oder es kann ein Dekoder
gebildet sein, um die Ausgabe des Register-Latches 136 in ein
vorbestimmtes Format zu codieren, wie in der Zeichnung durch den
Block 137 mit gestrichelten Linien dargestellt ist. Im folgenden
wird nun der Betrieb beschrieben.
Am Anfang der Bewegungsvektorberechnung für einen Musterblock werden
der Zähler 134, das Register-Latch 130 und das Register-Latch 136
zurückgesetzt. Der Initialisierungswert des Register-Latch 130 wird
auf einen Wert eingestellt, der größer als der maximale Kennungswert
ist (z. B. alle Bit gleich "1"). Wenn ein Kennungswert für einen
Verschiebungsvektor geliefert wird, vergleicht der Komparator 132
den im Register-Latch 130 gespeicherten Wert mit dem Kennungswert,
der von der Summierungseinheit geliefert wird. Wenn der neu
zugeführte Kennungswert (Kennungsfunktion) von der
Summierungseinheit kleiner als der im Register-Latch 130
gespeicherte Wert ist, erzeugt der Komparator 132 ein
Verriegelungsanweisungssignal. Als Reaktion darauf speichert das
Register-Latch 130 den Kennungswert (Kennungsfunktion) von der
Summierungseinheit. In gleicher Weise verriegelt das Register-Latch
136 den Zählwert des Zählers 134 als Kandidaten für einen
Bewegungsvektor.
Für den nächsten Verschiebungsvektor reagiert der Zähler 134 auf ein
Steuersignal ΦC, um den Zählwert um 1 zu erhöhen. Wenn eine
Kennungswertberechnung abgeschlossen ist, vergleicht der Komparator
132 die Größe des neu von der Summierungseinheit zugeführten
Kennungswertes (Kennungsfunktion) mit dem im Register-Latch 130
gespeicherten Wert. Wenn der neu angelegte Kennungswert größer als
der im Register-Latch 130 gespeicherte Wert ist, erzeugt der
Komparator 132 kein Verriegelungsanweisungssignal. Wenn der neu
angelegte Kennungswert (Kennungsfunktion) dagegen kleiner als der im
Register-Latch 130 gespeicherte Wert ist, wird das
Verriegelungsanweisungssignal erzeugt. Dieser Vorgang wird für alle
Kennungswerte aller Verschiebungsvektoren ausgeführt. Damit wird der
minimale aller Kennungswerte im Register-Latch 130 gespeichert. Im
Register-Latch 136 ist der Zählwert des Zählers 134 verriegelt, der
den Zyklus angibt, der den minimalen Kennungswert liefert. Der
Zählwert des Zählers 134 wird als Bewegungsvektor benutzt.
Wenn dieser Bewegungsvektor ermittelt worden ist, werden der Zähler
134 und die Register-Latches 130 und 136 erneut initialisiert,
wodurch die Berechnung für einen Bewegungsvektor des nächsten
Musterblocks ausgeführt wird.
Fig. 44 zeigt eine weitere Struktur für eine Komparatoreinheit.
Wie in Fig. 44 dargestellt ist, weist die Komparatoreinheit 3 ein
erstes Register 621 zum Speichern des minimalen Kennungswertes Evm
und einen Komparator 613 zum Vergleichen des Kennungswertes Ev
(=Σ|a-b|) von einer Betriebseinheit 1 und des minimalen
Kennungswertes Evm, der im ersten Register 621 gespeichert ist, auf.
Der Komparator 613 aktiviert das Signal Ev-EQ auf der Signalleitung
617, wenn der Kennungswert Ev gleich dem minimalen Kennungswert Evm
ist.
Wenn ein Kennungswert Ev kleiner als der minimale Kennungswert Evm
ist, wird der neu von der Betriebseinheit 1 gelieferte Kennungswert
Ev als minimaler Kennungswert übernommen, und das Signal Ev-LT auf
der Signalleitung 618 wird aktiviert.
Die Komparatoreinheit 3 weist ferner einen Prioritätskomparator 615,
der von einem Signal Ev-EQ vom Komparator 613 abhängig ist, zum
Vergleichen der Priorität, die dem Verschiebungsvektor entsprechend
dem Kennungswert Ev zugeordnet ist, und der Priorität, die dem
Verschiebungsvektor entsprechend dem minimalen, im ersten Register
614 gespeicherten Kennungswert Evm zugeordnet ist, auf. Der
Komparator 615 aktiviert das Signal Pr-LT auf der Signalleitung 619,
wenn die Priorität des Verschiebungsvektors, der dem gegenwärtig
angelegten Kennungswert Ev entspricht, höher als die Priorität des
Verschiebungsvektors ist, der dem minimalen Kennungswert Evm
entspricht.
Die Komparatoreinheit 3 weist ferner eine
Aktualisierungssteuereinheit 616 auf zum Ausführen einer
Aktualisierung/Beibehaltung des Kennungswerts, der im ersten
Register 614 gehalten ist, entsprechend den Signalen Ev-EQ und Ev-LT
vom Komparator 613 und einem Signal Pr-LT vom Prioritätskomparator
615. Die Aktualisierungssteuereinheit 619 aktiviert ein Signal Ev-UP
auf der Signalleitung 620, wenn die Signale Pr-LT und Ev-EQ beide
aktiviert sind, oder wenn das Signal Ev-LT aktiviert ist. Das erste
Register 614 reagiert auf das aktivierte Signal Ev-UP, um den
gespeicherten Wert durch den gegenwärtig angelegten Kennungswert Ev
zu ersetzen.
Der im ersten Register 614 gespeicherte Kennungswert Evm wird
aktualisiert, wenn: (i) der gegenwärtig angelegte Kennungswert Ev
kleiner als der Kennungswert Evm ist, der im ersten Register 614
gespeichert ist; und (ii) der Kennungswert Ev gleich Evm ist und die
Priorität des Verschiebungsvektors, der zum neuen Kennungswert Ev
gehört, höher als die Priorität des Verschiebungsvektors ist, der
zum Kennungswert Evm gehört, der im ersten Register 614 gespeichert
ist.
Wie in Fig. 45 dargestellt ist, weist der Komparator 613 eine
Übereinstimmungserfassungsschaltung 701 zum Erfassen der
Übereinstimmung des neuen Kennungswertes Ev und des Kennungswertes
Evm, der im ersten Register 614 gespeichert ist, und eine
Komparatorschaltung 702 zum Vergleichen der Größe der Kennungswerte
Ev und Evm auf. Ein Signal Ev-EQ wird von der
Übereinstimmungserfassungsschaltung 701 und ein Signal Ev-LT von der
Komparatorschaltung 702 abgegeben. Der Komparator 702 aktiviert ein
Signal Ev-LT, wenn die Kennungswerte Ev und Evm miteinander
übereinstimmen.
Wie in Fig. 46 gezeigt ist, weist die Aktualisierungssteuereinheit
616 ein UND-Gatter 622 und ein ODER-Gatter 623 auf. Dem ersten
Eingangsanschluß des UND-Gatters 622 wird über die Signalleitung 617
das Signal Ev-EQ, das unter Bezugnahme auf Fig. 45 beschrieben
worden ist, und dem zweiten Eingangsanschluß wird über die
Signalleitung 619 das Signal Pr-LT zugeführt. Dem ersten
Eingangsanschluß des ODER-Gatters 623 wird das Ausgangssignal des
UND-Gatters 622 und dem zweiten Eingangsanschluß wird über die
Signalleitung 618 das Signal Ev-LT zugeführt. Der Ausgang des ODER-
Gatters 623 gibt über die Signalleitung 620 das Signal Ev-UP ab.
Daher wird der Ausgabewert Ev-UP durch folgende Logikgleichung
ausgedrückt:
Ev-UP= (Ev-EQ·Pr-LT) + (Ev-LT).
Das Signal Ev-UP wird dem Prioritätskomparator 615 als Signal Pr-UP
zur Prioritätsspezifikation und Aktualisierungsanweisung zugeführt.
Die Aktualisierungssteuereinheit 616 weist ferner ein Vektorregister
710 auf, das vom Signal Ev-UP (Pr-UP) abhängig ist, zum Verriegeln
und Halten des Verschiebungsvektors entsprechend dem gegenwärtigen
Kennungswert, der vom Zähler 711 geliefert wird. Der Zähler 711
inkrementiert den Zählwert jedesmal dann, wenn ein Kennungswert Ev
geliefert wird, um Daten auszugeben, die einen entsprechenden
Verschiebungsvektor angeben. Der Zähler 711 kann getrennt für die
horizontale und die vertikale Komponente des Bewegungsvektors
gebildet sein. Der Zählwert des Zählers 711 kann direkt als Wert des
Bewegungsvektors benutzt werden. Es ist nur eine Codierung
erforderlich, damit er zum Zeitpunkt der Codierung einem
Bewegungsvektor entspricht.
Fig. 47 zeigt eine Prioritätsspezifizierungswert für jeden
Verschiebungsvektor, der durch den Prioritätskomparator 615 bei der
Bestimmung der Priorität benutzt wird. In Fig. 47 sind die
Prioritätsspezifizierungswerte für die jeweiligen
Verschiebungsvektoren angegeben, wenn es 15·15=225
Verschiebungsvektoren (-7, -7) bis (7, 7) gibt.
In Fig. 47 geben die Zahlen in der obersten Zeile und der am
weitesten links befindlichen Spalte die horizontale bzw. vertikale
Komponente eines Bewegungsvektors (Verschiebungsvektors) an. Die
Zahlen in Fig. 47 stellen die Priorität für einen Bewegungsvektor
mit horizontalen/vertikalen Komponenten dar, die im oberen und
linken Bereich angegeben sind. Es wird angenommen, daß eine größere
Zahl eine höhere Priorität darstellt.
Beispielsweise ist die Priorität für den Bewegungsvektor
(horizontale Komponente, vertikale Komponente)=(0, 0), d. h. die
True-Backside am höchsten, nämlich gleich 15, und die Priorität für
die Bewegungsvektoren (-7, -5) und (-7, -7) sind gleich 3 bzw. 1.
Wenn die Werte der zwei Kennungsfunktionen für die Bewegungsvektoren
(-7, -5) und (-7, -7) identisch und minimal sind, wird daher der
Bewegungsvektor (-7, -5) mit höherer Priorität benutzt.
Aus Fig. 47 ist ersichtlich, daß manche Bewegungsvektoren dieselbe
Priorität aufweisen. Für den Fall gleicher Priorität wird der linken
Seite, d. h. der horizontalen Komponente des Bewegungsvektors, der
dem negativen Maximalwert näher liegt, Priorität eingeräumt. Ist die
Priorität immer noch nicht bestimmt, ist also mit anderen Worten der
Wert identisch und ist die horizontale Komponente der
Bewegungsvektoren in Fig. 47 gleich, so wird der oberen Seite, d. h.
der vertikalen Komponente des Bewegungsvektors, der dem negativen
Maximalwert näher liegt, Priorität eingeräumt.
Die in Fig. 47 dargestellten Prioritäten basieren auf der 4-Wege
Distanz von der True-Backside. Genauer gesagt, wird denjenigen eine
höhere Priorität zugeordnet, die eine kleinere Summe der
Absolutwerte der horizontalen Komponenten und der Absolutwerte der
vertikalen Komponenten eines Bewegungsvektors aufweisen.
Im allgemeinen wird ein Bewegungsvektor unter Verwendung eines Codes
variabler Länge von der Codiererseite zur Decoderseite übertragen.
Wenn der Absolutwert der jeweiligen Komponenten eines
Bewegungsvektors größer ist, wird häufig auch der entsprechende Code
variabler Länge umfangreicher. Beispielsweise ist in einem
Codierungssystem für bewegte Bilder (CCITT H.261) für Bildtelefone
und Videokonferenzen der Code variabler Länge für die horizontalen
und vertikalen Komponenten eines Bewegungsvektors mit dem Wert 3
gleich "00010". Wenn der Wert des Bewegungsvektors gleich 4 ist,
dann lautet der Code variabler Länge "0000110". Durch Erhöhen der
Priorität eines Bewegungsvektors (Verschiebungsvektors) proportional
zu einer kleineren Summe der Absolutwerte der horizontalen
Komponente und der vertikalen Komponente des Bewegungsvektors wird
ein Bewegungsvektor mit geringer Codelänge ausgewählt, und die
Übertragungsdaten können effektiv komprimiert werden. Das wird im
folgenden im Detail beschrieben.
Es wird ein Fall betrachtet, in dem die Werte der Kennungsfunktionen
für zwei vorhergesagte Bildblöcke für einen Bewegungsvektor (3, 3)
und einen Bewegungsvektor (3, 4) eine identische Zahl und den
minimalen Wert annehmen. Weil die Priorität der beiden angeführten
Bewegungsvektoren entsprechend Fig. 47 gleich 9 und 8 sind, wird
ersterem Priorität eingeräumt. Das führt zu einem Bewegungsvektor
(3, 3). Wenn die Priorität entsprechend dem Verfahren nach Fig. 47
zugeordnet wird, wird ein Bewegungsvektor mit geringerer Codelänge
ausgewählt.
Weil bei der vorliegenden Ausführungsform dem einen Bewegungsvektor
mit geringerer Summe der Absolutwerte der horizontalen und
vertikalen Komponente eine höhere Priorität an zwei Punkten der Fig.
47 eingeräumt wird, wird nicht derjenige mit der größeren Codelänge
ausgewählt.
Wenn die Priorität nach Fig. 47 gleich ist, wird der horizontalen
Komponente des Bewegungsvektors, die dem negativen Maximalwert näher
liegt, Priorität eingeräumt. Kann die Priorität immer noch nicht
bestimmt werden, wird der vertikalen Komponente des
Bewegungsvektors, die dem negativen Maximalwert näher liegt,
Priorität eingeräumt. Das ist jedoch nur ein Beispiel, und
Bewegungsvektoren derselben Priorität können einer anderen
Prioritätszuordnung unterworfen werden. Wenn die Prioritäten nach
Fig. 47 identisch sind, kann der vertikalen Komponente eines
Bewegungsvektors, die dem negativen Maximalwert näher liegt,
Priorität eingeräumt werden, und falls die Priorität immer noch
nicht bestimmt ist, kann der horizontalen Komponente eines
Bewegungsvektors, die dem negativen Maximalwert näher liegt,
Priorität eingeräumt werden. Wenn die Priorität nach Fig. 47 gleich
ist, kann alternativ der horizontalen Komponente des
Bewegungsvektors, die dem positiven Maximalwert näher liegt,
Priorität eingeräumt werden, und falls die Priorität immer noch
nicht bestimmt ist, kann der vertikalen Komponente des
Bewegungsvektors, die dem positiven Maximalwert näher liegt,
Priorität eingeräumt werden.
Darüber hinaus kann die Richtung, die Priorität gibt, für jede
vertikale oder horizontale Linie geändert werden. Wenn z. B. die
Priorität nach Fig. 47 identisch ist, kann der horizontalen
Komponente des Bewegungsvektors, die dem negativen Maximalwert näher
liegt, Priorität eingeräumt werden. Wenn die horizontalen
Komponenten der Bewegungsvektoren gleich sind, kann der vertikalen
Komponente des Bewegungsvektors, die dem negativen Maximalwert näher
liegt, in der ersten Spalte Priorität eingeräumt werden, und der
vertikalen Komponente des Bewegungsvektors, die dem positiven
Maximalwert näher liegt, kann in der zweiten Spalte Priorität
eingeräumt werden. Auf das folgt eine Prioritätsangabe entsprechend
einer Wiederholung des angegebenen Verfahrens.
Es ist ferner möglich, Priorität in aufsteigender oder absteigender
Reihenfolge zu geben, die entsprechend der Kennungswert-
Berechnungsreihenfolge des Bewegungsvektors auftritt, ohne die Größe
der Werte der horizontalen, vertikalen oder beiden Komponenten zu
berücksichtigen.
Wenn die Priorität gleich ist, sind die Summen der Absolutwerte der
horizontalen Komponenten und der Absolutwerte der vertikalen
Komponenten der Verschiebungsvektoren identisch. Im allgemeinen ist
die Codelänge bei der Codierung zur Übertragung identisch, so daß
ein ähnlicher Effekt erzielt werden kann.
Fig. 48 zeigt eine Struktur für den in Fig. 44 dargestellten
Prioritätskomparator. Wie in Fig. 48 gezeigt ist, weist der
Prioritätskomparator 615 eine Prioritätserzeugungsschaltung 632 zum
Erzeugen von Prioritätsdaten für einen Bewegungsvektor
(Verschiebungsvektor), der zum gegenwärtigen Kennungswert Ev gehört,
ein drittes Register 627 zum Halten der Prioritätsdaten, die zum
Kennungswert gehören (bezüglich einem Verschiebungsvektor), der im
ersten Register 614 (siehe Fig. 44) gespeichert ist, und einen
Komparator 626 zum Vergleichen der Prioritätsdaten Pr von der
Erzeugungsschaltung 632 auf, wobei Prioritätsdaten Prm im dritten
Register 627 gespeichert sind. Das dritte Register 627 aktualisiert
seinen Inhalt entsprechend der Aktivierung des Signals Pr-UP.
Der Komparator 626 nimmt einen aktiven Zustand an, wenn das Signal
Ev-EQ aktiviert wird, um einen Vergleich der Prioritätsdaten Pr und
Pm auszuführen. Der Komparator 626 kann so geschaffen sein, daß er
ständig einen Vergleich ausführt. Wenn der Prioritätswert Pr kleiner
als Prm ist, aktiviert der Komparator 626 das Signal Pr-LT auf der
Signalleitung 619. Die Struktur für den Betrieb, wenn die Werte Pr
und Prm gleich sind, ist hier nicht dargestellt. Wie in Fig. 46
gezeigt ist, führt die angegebene Struktur zu einem deaktivierten
Zustand des Signals Pr-LT, wenn Pr=Prm gilt, und das Vektorregister
710 wird nicht aktualisiert, weil das Vektorregister 710
entsprechend der Aktivierung des Signals Pr-UP aktualisiert wird.
Der zuvor erzeugte Bewegungsvektor (Verschiebungsvektor) wird
gehalten (falls Pr=Prm).
Wenn der Wert Pr gleich Prm ist, wird vom Komparator 626 ein Signal
Pr-EQ erzeugt. Es kann eine Struktur implementiert werden, bei der
eine Auswahl entsprechend einer vorbestimmten Regel (eines der oben
beschriebenen Prioritätsentscheidungsverfahren) für den
Verschiebungsvektor im Vektorregister 710 und den gegenwärtigen
Verschiebungsvektor (Ausgabe des Zählers 711 in Fig. 46)
entsprechend der Aktivierung des Signals Pr-EQ ausgeführt wird.
Die Prioritätserzeugungsschaltung 632 weist ein zweites Register 624
zum Halten des Prioritätswertes Pr für den gegenwärtigen
Verschiebungsvektor und eine Addierer/Subtrahiererschaltung 625c zum
Inkrementieren oder Dekrementieren des vom zweiten Register 624
erzeugten Prioritätswerts Pr um eins. Die Ausgabe Pr′ der
Addierer/Subtrahiererschaltung 625 wird dem zweiten Register 624
zugeführt.
Nun wird der Betrieb der in Fig. 48 gezeigten
Prioritätskomparatoreinheit beschrieben. Der Prioritätswert Pr wird
über die Signalleitung 628 einem ersten Eingang des Komparators 626
zugeführt. An den zweiten Eingang des Komparators 626 wird über die
Signalleitung 630 das Ausgangssignal Prm des dritten Registers 627
angelegt. Der Komparator 626 führt einen Vergleich der Größen der
beiden Prioritäten Pr und Prm aus, die an die beiden Eingänge
angelegt werden. Wenn Pr<Prm gilt, wird daher ein Signal Pr-LT als
Priorität aktiviert, weil der verglichene Kennungswert Ev höher als
die Priorität entsprechend dem Kennungswert Evm ist.
Als Reaktion auf die Aktivierung des Signals Pr-LT wird der Inhalt
des Vektorregisters 710 aktualisiert, und der Inhalt des dritten
Registers 627 wird durch den Prioritätswert Prm aktualisiert.
In der Prioritätserzeugungsschaltung 632 wird die Aktualisierung des
Prioritätswertes Pr automatisch ausgeführt. Der Prioritätswert Pr
wird im zweiten Register gehalten. In Abhängigkeit von einem
Steuersignal, wie z. B. einem extern angelegten Taktsignal, wird der
Addierer/Subtrahierer 625 mit der Eingabe des Wertes Pr
inkrementiert oder dekrementiert, wodurch das Ergebnis zum zweiten
Register 624 zurückgegeben wird, um eine gewünschten Prioritätswert
zu erhalten.
Es wird ein Fall betrachtet, bei dem die Priorität beginnend mit der
linken oberen Zeile eingestellt wird, wie in Fig. 47 dargestellt
ist. In diesem Fall wird eine 1 im zweiten Register 624 gespeichert,
und es wird entsprechend der in Fig. 49 angegebenen Regel eine
sequentielle Inkrementierung oder Dekrementierung ausgeführt. In
Fig. 49 gibt das Pluszeichen "+" an, daß eine Inkrementierung
notwendig ist, um einen Prioritätswert für den nächsten
Bewegungsvektor zu erzeugen, und das Minuszeichen "-" gibt an, daß
eine Dekrementierung notwendig ist, um einen Prioritätswert für den
nächsten Bewegungsvektor zu erzeugen. Hier ist der nachfolgende
Vektor der Bewegungsvektor einer benachbarten, niedrigeren Zeile
(die vertikale Komponente des Bewegungsvektors wird um +1 erhöht),
wenn sie nicht die letzte Zeile ist. Für den Fall der letzten Zeile
ist der nachfolgende Vektor der Bewegungsvektor entsprechend der
obersten Zeile der rechten Spalte. Durch diese
Inkrementierung/Dekrementierung werden die gewünschten
Prioritätsdaten erzeugt.
Wie in Fig. 50 dargestellt ist, weist die
Prioritätserzeugungsschaltung 625 einen Selektor 720 zum Durchlassen
der Werte "1" und "-1" unter der Kontroller der Steuerung 730, und
einen Addierer 722 zum Addieren der Ausgabe des Selektors 720 und
des Wertes Pr. Der Wert Pr′ wird vom Addierer 722 geliefert. Die
Steuerung 730 erzeugt ein Steuersignal in der Reihenfolge, die in
Fig. 49 angegeben ist ("+" entspricht einer "1"-Auswahl und "-"
einer "-1"-Auswahl), mit einem (nicht gezeigten) Taktsignal, das die
Ausgabetaktung des Kennungswertes definiert. Die Steuerung 730 wird
z. B. durch eine vorprogrammierte Sequenzsteuerung realisiert.
Obwohl oben eine Beschreibung erfolgt ist, bei der der
Prioritätswert nur natürliche Werte annimmt, ist der Wert nicht
notwendigerweise auf eine natürliche Zahl beschränkt, weil nur der
Absolutwert von Bedeutung ist. Daher ist der Prozeß der
Prioritätserzeugungsschaltung 632 nicht auf das
Inkrementieren/Dekrementieren beschränkt, und es kann ein beliebiger
Wert für das Inkrementieren und Dekrementieren genommen werden,
solange der Absolutwert des Inkrementierens/Dekrementierens gleich
ist.
Wenn man die Schaltungskomplexität für die Realisierung der
Prioritätserzeugungsschaltung 632 betrachtet, so müssen ein 4-Bit-
Register und eine Schaltung mit einer 4-Bit-Inkrementierungs-
/Dekrementierungsfunktion, wie z. B. ein 4-Bit-Addierer, für die
Prioritätsspezifizierung nach der Fig. 47 gebildet werden, weil die
obere Grenze für die Priorität gleich 15 ist. Für den Fall einer
Implementierung mit einer gewöhnlichen integrierten CMOS-Schaltung
kann sie durch ungefähr 200 Transistoren realisiert werden. Das
führt zu einer Schaltungskomplexität, die ausreichend niedriger als
im Fall der Implementierung mit ROMs ist. Für den Fall der
Implementierung mit ROMs sind vier Bit in horizontaler und
vertikaler Richtung erforderlich (eine Gesamtbreite von 15 zwischen -7
und +7). Das führt zu 28 Worten für einen Bewegungsvektor. Weil
der Wert (Priorität) einen Maximalwert von 15 aufweist, sind vier
Bits notwendig. Das führt zu einer Kapazität von 4·28=1024 Bits.
Fig. 51 zeigt schematisch einen Überblick über die Struktur eines
Bewegungsvektor-Erfassungsmittels nach einer zweiten Ausführungsform
der vorliegenden Erfindung. Wie in Fig. 51 dargestellt ist, weist
das Bewegungsvektor-Erfassungsmittel ein erstes Berechnungsmittel
210 zum Empfangen von Suchfensterdaten Y und Musterblockdaten X zum
Bestimmen eines Bewegungsvektors mit ganzzahliger Genauigkeit, und
ein zweites Berechnungsmittel 250 zum direkten Empfangen von
Suchfensterdaten SY und Musterblockdaten TX vom ersten
Berechnungsmittel 210 zum Bestimmen eines Bewegungsvektors mit
gebrochener Genauigkeit auf. Wie bei der ersten Ausführungsform
dargestellt ist, weist das erste Berechnungsmittel 210 ein
Prozessorfeld 10 mit Elementprozessoren, die in einem
zweidimensionalen Feld angeordnet sind, eine Summierungseinheit 12
zum Summieren der absoluten Differenzen vom jeweiligen
Elementprozessor im Prozessorfeld 10, und eine Komparatoreinheit 3
zum Bestimmen eines Bewegungsvektors entsprechend der Summe (dem
Kennungswert) von der Summierungseinheit 12 auf. Die
Musterblockdaten TX und Suchfensterdaten SY, die im Prozessorfeld 10
gespeichert sind und entsprechend dessen Betrieb ausgeschoben
werden, werden direkt an das zweite Berechnungsmittel 250 angelegt.
Der Betrieb des zweiten Berechnungsmittels 250 wird durch eine
Vergleichsergebnisindikator (Verriegelungsanweisungssignal) von der
Komparatoreinheit 3 gesteuert.
Entsprechend der in Fig. 51 dargestellten Struktur des
Bewegungsvektor-Erfassungsmittels werden die Suchfensterdaten und
die Musterblockdaten zur Erfassung eines Bewegungsvektors mit
ganzzahliger Genauigkeit im ersten Berechnungsmittel 210 verwendet,
nachdem sie aus dem Bildspeicher gelesen worden sind, worauf die
benutzten Suchfensterdaten und Musterblockdaten vom ersten
Berechnungsmittel zum zweiten Berechnungsmittel übertragen werden.
Damit ist bei der Bestimmung eines Bewegungsvektors mit gebrochener
Genauigkeit kein Zugriff auf den Bildspeicher erforderlich, so daß
der Bewegungsvektor mit gebrochener Genauigkeit mit hoher
Geschwindigkeit bestimmt werden kann.
Fig. 52 zeigt ein Beispiel für die Struktur des
Datenübertragungssystems zwischen dem Prozessorfeld 10 im ersten
Berechnungsmittel 210 und dem zweitem Berechnungsmittel 250 bei der
zweiten Ausführungsform. Wie in Fig. 52 dargestellt ist, werden die
Musterblockdaten TX vom Prozessorfeld 10 direkt an das zweite
Berechnungsmittel 250 angelegt, und die Suchfensterdaten SY vom
Prozessorfeld 10 werden durch eine Verzögerungsschaltung 260 um eine
vorbestimmte Zeitspanne verzögert, um dann in einer
Pufferspeicherschaltung 270 gespeichert zu werden. Die
Pufferspeicherschaltung 270 speichert die Suchfensterdaten, die zur
Erfassung des Bewegungsvektors mit gebrochener Genauigkeit notwendig
sind. Wenn z. B. die Größe eines Makroblockes (Musterblock und
Suchfensterblock) 16·16 Pixel beträgt, wird für gebrochene
Genauigkeit in der Pufferspeicherschaltung 270 ein Suchfensterblock
einschließlich dem Rand gespeichert, d.h. 18·18 Pixel.
Ein Bewegungsvektor mit gebrochener Genauigkeit wird unter
Verwendung der Suchfensterdaten, die in der Pufferspeicherschaltung
270 gespeichert sind, und der Musterblockdaten TX vom Prozessorfeld
10 bestimmt. Die von der Verzögerungsschaltung 260 gelieferte
Verzögerung wird von der Speicherkapazität der
Pufferspeicherschaltung 270 bestimmt. Wenn die
Pufferspeicherschaltung 270 eine Kapazität zur Speicherung aller
Pixel im Suchbereich aufweist, ist keine Verzögerungsschaltung 260
notwendig. Es wird ein Fall betrachtet, bei dem die
Speicherkapazität der Pufferspeicherschaltung 270 eine minimale
Kapazität von 18·18 Pixeln beträgt. Die Verzögerungsschaltung 260
liefert z. B. eine Verzögerungszeit in Höhe der Zeitspanne, die zum
Übertragen von einer Pixelspalte im Suchbereich erforderlich ist.
Fig. 53 zeigt ein Beispiel der Struktur der Pufferspeicherschaltung
von Fig. 52. Wie in Fig. 53 dargestellt ist, weist die
Pufferspeicherschaltung 270 einen Speicher 272 zum Speichern der
Suchfensterdaten SY vom Prozessorfeld 10 und eine Schreib-
/Lesesteuerschaltung 274 zur Steuerung des Datenschreibens und
Datenlesens in den bzw. aus dem Speicher 272 auf. Der Ausgangsknoten
Do des Speichers 272 ist mit dem zweiten Berechnungsmittel 250
verbunden.
Die Schreib-/Lesesteuerschaltung 274 weist eine Schreibadresse-
Erzeugungsschaltung 281 zum Erzeugen einer Schreibadresse für den
Speicher 272, eine Ausleseadresse-Erzeugungsschaltung 283 zum
Erzeugen einer Ausleseadresse für den Speicher 272, eine
Steuerschaltung 286 zum Erzeugen eines Signals zum Steuern des
Auslesemodus und des Schreibmodus des Speichers 272, und einen
Selektor 284 zum Auswählen von entweder einer Schreibadresse oder
einer Ausleseadresse unter der Steuerung der Steuerschaltung 286, um
sie dem Adreßeingabeknoten A des Speichers 272 zuzuführen, auf.
Die Schreibadresse-Erzeugungsschaltung 281 reagiert auf ein
Verriegelungsanweisungssignal RΦ von der Komparatoreinheit 3 der
Fig. 51, um eine Schreibadresse zu erzeugen. Wenn dieses
Verriegelungsanweisungssignal RΦ erzeugt wird, wird die
Schreibadresse auf den Anfangswert zurückgesetzt. Die
Schreibadresse-Erzeugungsschaltung 281 erzeugt eine Schreibadresse
z. B. beginnend bei der Adresse 0 in Abhängigkeit von einem
Taktsignal Φ. In ähnlicher Weise erzeugt die Ausleseadresse-
Erzeugungsschaltung 283 eine Ausleseadresse beginnend bei der
Adresse 0 in Abhängigkeit von der Steuerschaltung 286. Der Selektor
281 wählt eine Schreibadresse von der Schreibadresse-
Erzeugungsschaltung 281 aus, wenn die Steuerschaltung 286 das
Datenschreiben anweist. Wenn die Steuerschaltung 286 einen
Auslesemodus anweist, so wählt der Selektor 284 eine Ausleseadresse
von der Ausleseadresse-Erzeugungsschaltung 283 aus.
Die Steuerschaltung 286 reagiert auf ein Suchfensterdaten-
Übertragungstaktsignal Φ, um ein Signal zu erzeugen, das die
Datenschreib- und Datenlesetaktung für den Speicher 272 bestimmt.
Die Steuerschaltung 286 reagiert auf ein Betriebsmodus-
Anweisungssignal ΦRW, um eine Signal zu erzeugen, das den Schreib-
und Lesebetrieb des Speichers 272 steuert. Wenn der Speicher 272 aus
einem dynamischen Direktzugriffsspeicher gebildet ist, so erzeugt
die Steuerschaltung 286 ein Zeilenadreß-Abtastsignal /RAS, ein
Spaltenadreß-Abtastsignal /CAS, ein Schreibaktivierungssignal /WE
und eine Ausgabeaktivierungssignal /OE (wenn der Ausgang drei
Zustände annehmen kann).
Das an die Steuerschaltung 286 angelegte Steuersignal NRW kann von
einer externen Steuerung geliefert werden. Wenn der Zählwert des
Zählers 134 der in Fig. 43 dargestellten Komparatoreinheit 3 einen
vorbestimmten Zählwert erreicht, wird ein Hochzählsignal erzeugt.
Dieses Hochzählsignal kann als Steuersignal ΦRW benutzt werden. Der
Grund dafür ist, daß die Bildung eines Kennungswertes für einen
Musterblock kontinuierlich ausgeführt wird, bis der Zählwert des
Zählers (siehe Fig. 43) einen vorbestimmten Wert erreicht. Im
folgenden wird der Betrieb beschrieben.
Es wird ein Fall betrachtet, bei dem das Suchfenster der Fig. 54
eine Größe von 48·16 Pixeln und ein Makroblock (Musterblock und
Suchfensterblock) eine Größe von 16·16 Pixeln aufweist. Es wird
angenommen, daß die Kennungswertberechnung für den Suchfensterblock
42 ausgeführt wird. Der zur Bestimmung des Bewegungsvektors mit
gebrochener Genauigkeit für den Suchfensterblock 42 erforderliche
Bereich ist ein Bereich 48 mit 18·18 Pixeln einschließlich dem
Bereich 42. Der Bereich 48 weist Pixeldaten P0-P325 auf, wie in Fig.
54 dargestellt ist.
Wie in Fig. 55 gezeigt ist, wird das Taktsignal Φ mit jedem Transfer
der Suchfenster-Pixeldaten erzeugt. Wenn ein Taktsignal Φ erzeugt
wird, werden die Suchfensterdaten um ein Pixel ausgeschoben. Bei der
Berechnung eines Kennungswertes für den Suchfensterblock 42 weist
die Ausgabe der in Fig. 52 gezeigten Verzögerungsschaltung 260 einen
Wert entsprechend dem Pixel P0 auf. Wenn der Kennungswert des
Suchfensterblocks 42 der minimale Wert der erhaltenen Kennungswerte
ist, wird vom Komparator, der in Fig. 43 dargestellt ist, ein
Verriegelungsanweisungssignal RΦ erzeugt. In Abhängigkeit davon wird
die Schreibadresse der Schreibadresse-Erzeugungsschaltung 281 auf
den Anfangswert 0 zurückgesetzt. Dann wird der Pixelwert P0 an die
Stelle der Adresse 0 im Speicher 272 geschrieben. Anschließend
werden 18 Pixelwerte, d. h. P1 . . . P17 an die Stellen der Adressen 1-17
geschrieben (wenn das Signal RΦ nicht erzeugt wird).
Um das Schreiben unnötiger Daten zu verhindern, nimmt die
Schreibadresse-Erzeugungsschaltung 281 für 30 Taktsignalperioden,
d. h. 30 Φ-Perioden, einen Pausezustand ein. Dadurch wird das
Schreiben von Daten in den Speicher 272 gesperrt. Die Bestimmung
eines Pausezustands zum Sperren des Datenschreibens wird durch eine
Struktur implementiert, bei der der Speicher 272 für 30 Φ-Perioden
in einen Pausezustand versetzt wird, wenn das Zählsignal Φ 18mal
gezählt worden ist, weil das Verriegelungsanweisungssignal RΦ an die
Steuerschaltung 286 angelegt wird.
Wenn 30 Taktsignalperioden (30 Φ-Zyklen) vorbei sind, so erzeugt die
Schreibadresse-Erzeugungsschaltung 281 erneut eine Schreibadresse.
Hier ist die Adresse gleich 18, so daß der Pixelwert P18 an der
Stelle der Adresse 18 gespeichert wird. Anschließend wird der oben
beschriebene Betrieb wiederholt ausgeführt. Bei der Änderung des
Musterblocks wird der Suchbereich in horizontaler Richtung um einen
Makroblock verschoben. Daher können alle Daten, die zur Erfassung
eines Bewegungsvektors mit gebrochener Genauigkeit notwendig sind,
selbst dann ermittelt werden, wenn sich der Makroblock, der einen
Bewegungsvektor liefert, an der Grenze des Suchbereichs befindet. In
diesem Fall können Daten, die außerhalb des Suchbereichs liegen,
vernachlässigt werden. Es können benachbarte Daten innerhalb des
Bereichs verwendet werden.
Entsprechend dem oben beschriebenen Betrieb weist der Speicher 272
nur die Daten eines Suchfensterblocks auf, die entsprechend einem
Verschiebungsvektor gespeichert sind, der einen Kandidaten für den
Bewegungsvektor darstellt. Die Speicherkapazität des Speichers 272
kann gleich der minimalen Speicherkapazität von 18·18 Worten sein,
um die Vorrichtungsgröße zu vermindern.
Für den Fall einer Struktur, bei der die Pufferspeicherschaltung 270
alle Pixeldaten des gesamten Suchbereiches für einen Musterblock
speichert, ist keine Verzögerungsschaltung 260 erforderlich. In
diesem Fall wird eine Ausleseadresse entsprechend dem Wert eines
Bewegungsvektors von der Komparatoreinheit 3 erzeugt.
Fig. 56 zeigt eine Struktur für das zweite Berechnungsmittel, das in
den Fig. 51 und 562 dargestellt ist. Wie in Fig. 56 gezeigt ist,
weist das zweite Berechnungsmittel 250 eine Erzeugungsschaltung 302
für ein Vorhersagebild mit gebrochener Genauigkeit zum Empfangen von
Suchfensterdaten (genauer gesagt: der Ausgabe des Pufferspeichers)
vom ersten Berechnungsmittel (Prozessorfeld), um ein Vorhersagebild
zu erzeugen, das für gebrochene Genauigkeit notwendig ist, eine
Absolutdifferenz-Summierungsschaltung 304 zum Ermitteln der Summe
der Absolutdifferenzen der Pixeldaten des Vorhersagebildes, das von
der Erzeugungsschaltung 302 erzeugt worden ist, und der
Musterblockdaten X, und eine Komparatoreinheit 306 zum Erfassen des
Verschiebungsvektors, der die minimale Summe der Absolutdifferenzen
der Ausgaben der Absolutdifferenz-Summierungsschaltung 304 liefert,
auf. Die Erzeugungsschaltung 302 für ein Vorhersagebild mit
gebrochener Genauigkeit erzeugt parallel eine Mehrzahl von
Pixeldaten für das Vorhersagebild. Die Absolutdifferenz-
Summierungsschaltung 304 erzeugt außerdem parallel den Kennungswert
für einen Verschiebungsvektor, der einen Kandidaten für den
Bewegungsvektors darstellt. Die Komparatoreinheit 306 erfaßt die
minimale aller Summen von Absolutdifferenzen, die von der
Absolutdifferenz-Summierungsschaltung 304 geliefert werden, wodurch
der Verschiebungsvektor entsprechend dieser minimalen
Absolutdifferenzensumme als Bewegungsvektor bestimmt wird. Im
folgenden wird die genaue Struktur einer jeden Schaltungskomponente
beschrieben.
Fig. 57 zeigt eine genaue Struktur der Erzeugungsschaltung für ein
Vorhersagebild mit gebrochener Genauigkeit, die in Fig. 56
dargestellt ist. Wie in Fig. 57 gezeigt ist, weist die
Erzeugungsschaltung 302 für ein Vorhersagebild mit gebrochener
Genauigkeit eine Verzögerungsschaltung 310 zum Verzögern zugeführter
Suchfensterdaten um eine vorbestimmte Zeitspanne, einen Addierer 312
zum Addieren der Ausgaben der Verzögerungsschaltung 310 und der
Suchfensterdaten Y, und einen Multiplizierer 314 zum Multiplizieren
eines Koeffizienten (1/2) mit der Ausgabe des Addierers 312. Der
Multiplizierer 314 kann durch ein Schiebemittel implementiert
werden, das angelegte Werte in Richtung der nächst niedrigeren
Bitstelle verschiebt. Die von der Verzögerungsschaltung 310
gelieferte Verzögerungszeit wird in Abhängigkeit davon bestimmt,
welchem Verschiebungsvektor die Erzeugungsschaltung 302 für ein
Vorhersagebild mit gebrochener Genauigkeit entspricht. Die
Verzögerungszeit der Verzögerungsschaltung 310 wird später
beschrieben. Die in Fig. 57 dargestellte Erzeugungsschaltung 302 für
ein Vorhersagebild mit gebrochener Genauigkeit wird dazu benutzt,
einen Bewegungsvektor mit 1/2-Pixel-Genauigkeit zu bestimmen.
Fig. 58 zeigt eine genaue Struktur der Absolutdifferenzen-
Summierungsschaltung von Fig. 56. Wie in Fig. 58 dargestellt ist,
weist die Absolutdifferenzen-Summierungsschaltung 304 einen
Subtrahierer 320 zum Ausführen eines Subtraktion eines
Interpolationswertes YF, der von der Erzeugungsschaltung 302 für ein
Vorhersagebild mit gebrochener Genauigkeit geliefert wird, und eines
Musterblockwertes X, eine Absolutwertschaltung 322 zum Bestimmen des
Absolutwertes der Ausgabe des Subtrahierers 320, und eine
Akkumulierungsschaltung 324 zum Akkumulieren der Ausgaben der
Absolutwertschaltung 322 auf. Ein Beispiel für eine Struktur des
zweiten Berechnungsmittels zur Bestimmung des Bewegungsvektors mit
gebrochener Genauigkeit wird im folgenden beschrieben.
Fig. 59 zeigt ein Diagramm zur Erläuterung des Betriebs zur
Bestimmung eines Bewegungsvektors mit gebrochener Genauigkeit durch
das zweite Berechnungsmittel. Das zweite Berechnungsmittel 250
erfaßt einen Bewegungsvektor mit einer Genauigkeit von 1/2 Pixel. Es
wird ein Fall betrachtet, bei dem acht Punkte als Kandidaten für
einen Bewegungsvektor vorhanden sind. Mit anderen Worten erhält man
Pixeldaten für acht Nachbarn Q1-Q4 und Q6-Q9 für ein Zielpixel durch
Interpolation. Ein Kennungswert, der einen Kandidaten für den
Bewegungsvektor angibt, wird durch Ermitteln der Absolutdifferenzen
der Pixelwerte Q1-Q4 und Q6-Q9, die durch Interpolation erhalten
wurden, und der Musterblockdaten X sowie deren Akkumulierung
berechnet.
Hier wird angenommen, daß die Suchfensterdaten gleich P1-P9 sind,
der Abstand zwischen den Pixeln benachbarter Spalten gleich T und
die Verzögerungszeit zwischen benachbarten Zeilen gleich H (18T: bei
einer Größe des Suchfensterblocks mit gebrochener Genauigkeit von
18·18 Pixeln) ist. In Fig. 59 ist die Anordnung der Zeilen und
Spalten entgegengesetzt der, die für die obige Ausführungsform
gezeigt ist. Der Suchfensterblockwert vom Prozessorfeld wird entlang
der Spaltenrichtung des Suchfensters sequentiell ausgeschoben. In
gleicher Weise werden die Musterblockdaten entlang der
Spaltenrichtung ausgeschoben (wenn die Musterblockdaten- und die
Suchfensterdaten-Übertragungsleitung parallel angeordnet sind). In
Fig. 59 braucht nur das Bezugszeichen, das dem jeweiligen Pixel
zugeordnet ist, geändert zu werden (Zeilen und Spalten ersetzen),
und es tritt kein besonderes Problem auf. Die Struktur zur Erfassung
des Bewegungsvektors mit gebrochener Genauigkeit unter Verwendung
der interpolierten Suchfensterdaten Q1-Q4 und Q6-Q9, die in Fig. 59
dargestellt sind, wird im folgenden beschrieben.
Fig. 60 zeigt genau eine Struktur für das zweite Berechnungsmittel.
Wie in Fig. 60 dargestellt ist, weist das zweite Berechnungsmittel
250 eine Verzögerungsschaltung 335a zum Verzögern eines zugeführten
Suchfensterwerts um 1H und eine Verzögerungsschaltung 335b zum
weiteren Verzögern der Ausgabe der Verzögerungsschaltung 335a um 1H
auf. Ein Pfad, der Daten entsprechend jeder Zeile von Fig. 59
erzeugt, wird durch kaskadenförmiges Verbinden zweier Stufen von
Verzögerungsschaltungen 335a und 335b gebildet.
Das in Fig. 60 dargestellte zweite Berechnungsmittel weist ferner
eine Verzögerungsschaltung 336a zum Verzögern eines eingegebenen
Suchfensterwertes P um 1T, eine Verzögerungsschaltung 336d zum
Verzögern der Ausgabe der Verzögerungsschaltung 336a um 1T, eine
Verzögerungsschaltung 336b zum Verzögern der Ausgabe der 1H-
Verzögerungsschaltung 335a um 1T, eine Verzögerungsschaltung 336e
zum Verzögern der Ausgabe der Verzögerungsschaltung 335b um 1T, eine
Verzögerungsschaltung 336c zum Verzögern der Ausgabe der 1H-
Verzögerungsschaltung 335b um 1T, und eine Verzögerungsschaltung
336f zum Verzögern der Ausgabe der Verzögerungsschaltung 336c um 1T
auf. Durch die 1T-Verzögerungsschaltungen 336a-336f werden die
Suchfensterdaten erzeugt, die für die Interpolation notwendig sind.
Das zweite Berechnungsmittel 250 weist ferner eine Additions-
Schiebe-Schaltung 330a zum Addieren eines eingegebenen
Suchfensterwertes P und der Ausgabe der 1T-Verzögerungsschaltung
336a und zum Multiplizieren desselben mit einem Koeffizienten (1/2)
auf. Die Additions-Schiebe-Schaltung 330a realisiert die
Multiplikation des Koeffizienten (1/2) durch einen Schiebevorgang.
Das zweite Berechnungsmittel 250 weist ferner eine Additions-
Schiebe-Schaltung 330b zum Ausführen eines Additions-Schiebe-
Vorgangs mit der Ausgabe der 1T-Verzögerungsschaltung 336a und der
Ausgabe der 1T-Verzögerungsschaltung 336e, eine Additions-Schiebe-
Schaltung 330c zum Ausführen eines Additions-Schiebe-Vorgangs mit
den Ausgaben der 1T-Verzögerungsschaltungen 336b und 336e, eine
Additions-Schiebe-Schaltung 330d zum Ausführen eines Additions-
Schiebe-Vorgangs mit den Ausgaben der 1H-Verzögerungsschaltung 335a
und der 1T-Verzögerungsschaltung 336b, eine Additions-Schiebe-
Schaltung 330e zum Ausführen eines Additions-Schiebe-Vorgangs mit
den Ausgaben der 1H-Verzögerungsschaltung 335b und der 1T-
Verzögerungsschaltung 336c, und eine Additions-Schiebe-Schaltung
330f zum Ausführen eines Additions-Schiebe-Vorgangs mit den Ausgaben
der 1T-Verzögerungsschaltung 336c und der 1T-Verzögerungsschaltung
336f auf. Durch die Additions-Schiebe-Schaltungen 330a-330f werden
Daten zur Erzeugung von Interpolationsdaten zwischen vier Pixeln
erzeugt.
Das zweite Berechnungsmittel 250 weist ferner eine Additions-
Schiebe-Schaltung 330g zum Ausführen eines Additions-Schiebe-
Vorgangs mit den Ausgaben der Additions-Schiebe-Schaltung 330a und
der Additions-Schiebe-Schaltung 330d, eine Additions-Schiebe-
Schaltung 330h zum Ausführen eines Additions-Schiebe-Vorgangs mit
den Ausgaben der 1T-Verzögerungsschaltungen 336a und 336b, eine
Additions-Schiebe-Schaltung 330i zum Ausführen eines Additions-
Schiebe-Vorgangs mit den Ausgaben der Additions-Schiebe-Schaltungen
330b und 330c, eine Additions-Schiebe-Schaltung 330j zum Ausführen
eines Additions-Schiebe-Vorgangs mit den Ausgaben der 1T-
Verzögerungsschaltung 336b und der IH-Verzögerungsschaltung 335a,
eine Additions-Schiebe-Schaltung 330k zum Ausführen eines Additions-
Schiebe-Vorgangs mit den Ausgaben der 1T-Verzögerungsschaltungen
336e und 336b, eine Additions-Schiebe-Schaltung 330l zum Ausführen
eines Additions-Schiebe-Vorgangs mit den Ausgaben der Additions-
Schiebe-Schaltungen 330d und 330e, eine Additions-Schiebe-Schaltung
330m zum Ausführen eines Additions-Schiebe-Vorgangs mit den Ausgaben
der 1T-Verzögerungsschaltungen 336b und 336c, und eine Additions-
Schiebe-Schaltung 330n zum Ausführen eines Additions-Schiebe-
Vorgangs mit den Ausgaben der Additions-Schiebe-Schaltungen 330c und
330f auf. Von den Additions-Schiebe-Schaltungen 330g-330n werden
Pixeldaten erzeugt, die sich an den Positionen der
Interpolationspixeldaten Q9-Q6 und Q4-Q1 befinden.
Die Absolutdifferenz-Summierungsschaltung 304 enthalten Absolutwert-
Summierungsschaltungen 304a-304h, um die Ausgaben Q9-Q6 und Q4-Q0
der Additions-Schiebe-Schaltungen 330g-330n und die Musterblockdaten
A zur Bestimmung der Summe der Absolutdifferenzen der angelegten
Signale zu ermitteln. Die Suchfenster-Blockdaten und die
Musterblockdaten A weisen eine Beziehung nach Art der True-Backside
auf (innerhalb des Blockes).
Die Ausgaben der Absolutdifferenz-Summierungsschaltungen 304a-304h
werden parallel an die Komparatoreinheit 306 angelegt, wobei ein
Verschiebungsvektor, der die minimale Summe der Absolutdifferenzen
liefert, als Bewegungsvektor bestimmt wird. Die Komparatoreinheit
306 vergleicht die Ausgaben der Absolutdifferenz-
Summierungsschaltungen 304a-304h, um den Code als Bewegungsvektor
auszugeben, der an die Absolutdifferenz-Summierungsschaltung
angelegt wird, die den minimalen Wert liefert. Die Absolutdifferenz-
Summierungsschaltungen 304a-304h entsprechen jeweils einem
Verschiebungsvektor, die acht Kennungswerte liefern. Daher kann ein
Bewegungsvektor mit gebrochener Genauigkeit bestimmt werden.
Bei der in Fig. 60 dargestellten Struktur können nur ein oder vier
Absolutdifferenz-Summierungsschaltungen gebildet sein, wodurch die
Ausgaben der in zeitlich-gemultiplexter Weise aktivierten Additions-
Schiebe-Schaltungen 330g-330n sequentiell addiert und akkumuliert
werden. Für den Fall einer gemeinsam benutzten Struktur wird das
Akkumulationsergebnis in der Absolutdifferenz-Summierungsschaltung
im Registersatz gespeichert, wodurch die Akkumulierung unter
Verwendung der Werte im Registersatz ausgeführt wird. In diesem Fall
kann die Komparatoreinheit 306 eine Struktur benutzen, die ähnlich
der Struktur der in Fig. 43 dargestellten Komparatoreinheit ist. Der
Grund dafür ist, daß der Vergleichsvorgang sequentiell ausgeführt
wird.
Bei der oben beschriebenen Struktur wird ein Bewegungsvektor mit
einer Genauigkeit von 1/2 Pixel erfaßt. Es kann eine Struktur zur
Bestimmung eines Bewegungsvektors mit noch höherer Genauigkeit
(stärker gebrochenen Genauigkeit), wie z. B. einer Genauigkeit von
1/4 Pixel, benutzt werden. Obwohl es acht Kennungspunkte gibt, kann
eine Struktur benutzt werden, die mehr Kennungspunkte verwendet.
Fig. 61 zeigt eine Modifikation der zweiten Ausführungsform der
vorliegenden Erfindung. Das in Fig. 61 dargestellte Bewegungsvektor-
Erfassungsmittel weist zwischen dem ersten Berechnungsmittel 210 zur
Bestimmung eines Bewegungsvektors mit ganzzahliger Genauigkeit und
eines zweiten Berechnungsmittels 250 zur Bestimmung eines
Bewegungsvektors mit gebrochener Genauigkeit Pufferspeicher 280 und
282 auf. Die Pufferspeicher 280 und 282 speichern Musterblockdaten
TX und Suchfensterdaten SY, die vom ersten Berechnungsmittel 210
geliefert werden. Die Strukturen der Pufferspeicher 280 und 282 sind
ähnlich der in Fig. 53 dargestellten Struktur. Der Pufferspeicher
280 kann eine Kapazität zum Speichern aller Pixeldaten im
Musterblock und der Pufferspeicher 282 eine Kapazität zum Speichern
aller Pixeldaten im Suchbereich für diesen Musterblock aufweisen.
Der Pufferspeicher 282 kann wie bei der vorherigen Ausführungsform
auch eine Kapazität nur zum Speichern der Pixeldaten eines Bereichs
aufweisen, der zur Bestimmung des Bewegungsvektors mit gebrochener
Genauigkeit erforderlich ist.
Bei der in Fig. 52 dargestellten Struktur werden die
Musterblockdaten TX vom ersten Berechnungsmittel 210 direkt an das
zweite Berechnungsmittel 250 angelegt. Für den Fall einer solchen
Struktur ist die Erfassungsvorgangszeitspanne für den
Bewegungsvektor mit gebrochener Genauigkeit gleich der Ladezeit der
Musterblockdaten in das Prozessorfeld im ersten Berechnungsmittel
210. Der Grund dafür ist, daß die Musterblockdaten während dieser
Zeit sequentiell aus dem Prozessorfeld ausgeschoben werden. In
diesem Fall muß das zweite Berechnungsmittel 250 die Berechnung mit
einer Rate ausführen, die im wesentlichen gleich der Transferrate
der Musterblockdaten ist.
Das zweite Berechnungsmittel 250 kann jedoch eine Berechnung mit
einem ausreichenden Betriebsrahmen ausführen, wenn die
Pufferspeicher 280 und 282 für die Musterblockdaten TX und die
Suchfensterdaten SY gebildet werden, wie in Fig. 61 dargestellt ist.
Das vereinfacht die rechtzeitige Bereitstellung der Musterblockdaten
TX und der Suchfensterdaten SY.
Für den Fall der in Fig. 61 dargestellten Struktur kann der
Rechenvorgang der ersten und zweiten Berechnungsmittel 210 und 250
nach Art einer Pipeline ausgeführt werden, wie in Fig. 62 gezeigt
ist. Fig. 62 ist ein Diagramm zur Erläuterung der Betriebsweise des
Bewegungsvektor-Erfassungsmittels nach Fig. 61. In Fig. 61 ist die
Zeit auf der Abszisse aufgetragen. Im ersten Berechnungsmittel 210
wird der Prozeß für den N-ten Makroblock (Musterblock) ausgeführt,
wodurch die Bestimmung eines Bewegungsvektors für den N-ten
Makroblock (Musterblock) abgeschlossen wird. Unter Verwendung der
Suchfensterdaten und der Musterblockdaten, die im Prozeß für den N-
ten Makroblock benutzt worden sind, wird im zweiten
Berechnungsmittel 250 die Erfassung eines Bewegungsvektors mit
gebrochener Genauigkeit für den N-ten Makroblock ausgeführt.
Parallel zum Bestimmungsvorgang des Bewegungsvektors mit gebrochener
Genauigkeit für den N-ten Makroblock wird im ersten
Berechnungsmittel eine Erfassung des Bewegungsvektors mit
ganzzahliger Genauigkeit für den (N+1)-ten Makroblock (Musterblock)
ausgeführt. Durch Schaffen einer Pipeline für den Betrieb des ersten
und des zweiten Berechnungsmittels 210 und 250, wie das oben
beschrieben ist, kann der Betrieb des ersten Berechnungsmittels 210
und der Betrieb des zweiten Berechnungsmittels 250 in zeitlichem
Sinne unabhängig voneinander ausgeführt werden, so daß die Erfassung
eines Bewegungsvektors mit gebrochener Genauigkeit in einem
ausreichenden Betriebsrahmen hinsichtlich der Zeitanforderungen an
die Berechnung ausgeführt werden kann. Das erste und zweite
Berechnungsmittel 210 und 250 werden in diesem Fall also parallel
zueinander betrieben, so daß die Erfassung eines Bewegungsvektors
mit gebrochener Genauigkeit mit hoher Geschwindigkeit ausgeführt
werden kann.
Obwohl bei der in Fig. 61 gezeigten Struktur der Pufferspeicher 280
zur Speicherung der Musterblockdaten TX benutzt worden ist, kann das
eine Element mit einer Verzögerungsfunktion sein (eine
Verzögerungsleitung oder ein Zeilenspeicher).
Fig. 63 zeigt eine weitere Modifikation der zweiten Ausführungsform
der vorliegenden Erfindung. Fig. 63 stellt den Abschnitt eines
ersten Berechnungsmittels zur Erfassung eines Bewegungsvektors mit
ganzzahliger Genauigkeit dar. Wie in Fig. 63 gezeigt ist, weist das
erste Berechnungsmittel 400 Elementbetriebseinheiten 411a-411w auf,
die kaskadenförmig miteinander verbunden sind. Jede der
Elementbetriebseinheiten 411a-411w mit jeweils derselben Struktur
weist Register 413a-413w zum Verriegeln der Suchfensterdaten,
Register 414a-414w zum Verriegeln der Musterblockdaten und
Absolutdifferenzschaltungen 412a-412w zum Bestimmen der
Absolutdifferenz von Daten, die in einem entsprechenden der
Suchfensterregister 413a-413w und einem entsprechenden der
Musterblockdaten-Speicherregister 414a-414w gespeichert sind, auf.
Die Register 413a-413w können Daten in nur einer Richtung
übertragen. Die Register 414a-414w können Speicherdaten auch zu
einer benachbarten Elementbetriebseinheit in nur einer Richtung
übertragen. Zum Suchfensterregister 413a in der ersten Stufe der
Elementbetriebseinheit 411a werden die Suchfensterdaten vom
Bildspeicher 401 über die Signalleitung 415 übertragen. Zum
Musterblock-Datenregister 414a der Elementbetriebseinheit 411a
werden die Musterblockdaten vom Bildspeicher 402 über die
Signalleitung 416 übertragen. Der Bildspeicher 401 speichert alle
Pixeldaten im Referenzbild (vorherigen Bild). Der Bildspeicher 402
speichert alle Pixeldaten des gegenwärtigen Bildes. Die
Elementbetriebseinheiten 411a-411w sind zahlenmäßig entsprechend der
Größe eines Makroblockes gebildet. Genauer gesagt sind insgesamt 256
Elementbetriebseinheiten 411a-411w gebildet, wenn die Größe eines
Musterblocks 16 Zeilen mal 16 Spalten beträgt. Das erste
Berechnungsmittel 410 weist ferner eine Summierungseinheit 417 zum
Addieren der Ausgaben der Absolutdifferenzschaltungen 412a-412w der
Elementbetriebseinheiten 411a-411w und eine Komparatoreinheit 418
zum Erfassen des minimalen Kennungswertes in Abhängigkeit von der
Ausgabe der Summierungseinheit 417 zum Bestimmen des
Verschiebungsvektors eines entsprechenden Suchfensterblocks als
Bewegungsvektor auf.
Bei der in Fig. 63 dargestellten Struktur speichert das erste
Berechnungsmittel 400 die Musterblockdaten in den Registern 414a-414w,
und die Daten eines Suchfensterblocks sind in den Registern
413a-413w gespeichert. Wenn ein Berechnungszyklus (Kennungswert-
Bestimmungszyklus) abgeschlossen ist, wird eine Zeile oder eine
Spalte von Daten des Suchfensterblocks ausgeschoben. Die
ausgeschobenen Suchfensterdaten SY werden dem zweiten
Berechnungsmittel zugeführt. In ähnlicher Weise werden die
Musterblockdaten TX im nachfolgenden Erfassungszyklus für einen
Bewegungsvektor ausgeschoben und an das zweite Berechnungsmittel
angelegt. Die zur Erfassung eines Bewegungsvektors mit gebrochener
Genauigkeit erforderlichen Suchfensterdaten unter den ausgeschobenen
Suchfensterdaten SY werden unter Verwendung der in Fig. 53
dargestellten Struktur abgeleitet.
Bei der in Fig. 63 dargestellten Struktur kann ein ähnlicher Effekt
durch Versetzen aller Register 414a-414w in einen Durchlaßzustand,
um dieselben Musterblockdaten den Elementbetriebseinheiten 411a-411w
zuzuführen, wodurch die Suchfensterdaten um ein Pixel in Richtung
der Register 413a-413w ein- oder ausgeschoben werden. In diesem Fall
werden Suchfensterdaten so angelegt, daß die angelegten
Musterblockdaten TX und die angelegten Suchfensterdaten denselben
Verschiebungsvektor aufweisen. In diesem Fall wird anstelle einer
Absolutdifferenzschaltung eine Absolutdifferenz-Summierungsschaltung
verwendet. Es können auch andere Strukturen benutzt werden, und jede
Schaltungsstruktur ist erlaubt, solange eine Funktion zur Erfassung
eines Bewegungsvektors mit ganzzahliger Genauigkeit enthalten ist.
Für den Fall der Struktur, bei der Elementbetriebseinheiten
kaskadenförmig miteinander verbunden sind, wie in Fig. 63
dargestellt ist, können Suchfensterdaten, die zur Berechnung mit
gebrochener Genauigkeit erforderlich sind, auf einfache Weise
ermittelt werden. Genauer gesagt ist ein Schieberegister an der
Ausgangsstufe der Suchfensterdaten gebildet, und es ist eine Latch-
Schaltung zum Verriegeln der Suchfensterdaten in einem geeigneten
Abstand in der Elementbetriebseinheit gebildet. Die Stelle, an der
die Latch-Schaltung gebildet ist, entspricht der Stelle, die um ein
Pixel eines Suchfensterblocks entfernt ist. Genauer gesagt werden im
ersten Berechnungsmittel 400 alle Suchfensterdaten verriegelt, die
für eine gebrochene Genauigkeit erforderlich sind, und eine
Elementbetriebseinheit ist nur für den Pixelwert gebildet, der zur
Erfassung des Bewegungsvektors mit ganzzahliger Genauigkeit
notwendig ist, um diese Erfassung des Bewegungsvektors mit
ganzzahliger Genauigkeit auszuführen. Weil in diesem Fall die für
eine gebrochene Genauigkeit erforderlichen Suchfensterdaten parallel
zur Bildung der Musterblockdaten TX sequentiell ausgeschoben werden,
können Fensterdaten, die für ein Referenzbild notwendig sind, bei
der Erfassung des Bewegungsvektors mit gebrochener Genauigkeit
einfach erhalten werden. Damit wird die Struktur der Vorrichtung
vereinfacht.
Wenn die Größe des Musterblocks und des Suchfensterblocks z. B.
jeweils 16·16 Pixel beträgt, beträgt die Blockgröße des
Suchfensters, das zur Erfassung des Bewegungsvektors mit gebrochener
Genauigkeit erforderlich ist, 18·18 Pixel. Hier ist ein
Schieberegister, das die ersten 18 Pixel verriegelt, an der
Ausgangsstufe gebildet, und eine Latch-Schaltung zum Verriegeln der
Daten vom jeweiligen oberen und unteren einen Bit außerhalb der
jeweiligen Spalte des Suchfensterblocks (16·16 Pixel) ist an einer
vorbestimmten Stelle zwischen den Elementbetriebseinheiten gebildet.
In diesem Fall werden die für eine gebrochene Genauigkeit
erforderlichen Suchfensterdaten aus dem Bildspeicher zum ersten
Berechnungsmittel ausgelesen. Dieser Zustand ist in Fig. 64
dargestellt.
Wie in Fig. 64 dargestellt ist, werden die Daten des
Suchfensterblocks 434 in den Elementbetriebseinheiten 441a-441f
gespeichert. Fig. 64 zeigt den Zustand, in dem der Suchfenster-
Blockwert YB in der Elementbetriebseinheit 411d gespeichert ist.
Beim Erfassen des Bewegungsvektors mit gebrochener Genauigkeit
werden die Pixeldaten des Bereichs 438 einschließlich dem Randpixel
436 des Suchfensterblocks 434 verwendet. Die Daten des
Randpixelbereichs 436 werden im jeweiligen Latch- und
Schieberegister gespeichert.
In Fig. 64 ist der Zustand der Daten für das Randpixel YA, das in
der Latch-Schaltung 430a verriegelt sind, dargestellt. Die
Randpixelspalte (dargestellt als Pixel YC) ist in der Ausgangsstufe
des Schieberegisters 432a und die andere Pixelspalte (dargestellt
als Pixel YD) ist im Eingangsbereich des Schieberegisters 432b
gespeichert. Alle Daten des Bereichs 438 werden aus dem Bildspeicher
401 ausgelesen. Es sei bemerkt, daß für jeden Kennungswert-
Erzeugungszyklus eine Spalte oder eine Zeile von Suchfensterdaten
des Bereichs 438 eingeschoben oder ausgeschoben wird. Entsprechend
dieser Struktur können Pixeldaten, die zur Erfassung des
Bewegungsvektors mit gebrochener Genauigkeit erforderlich sind, auf
einfache Weise erzeugt werden, um sie einem zweiten
Berechnungsmittel zuzuführen und eine Erfassung des Bewegungsvektors
mit gebrochener Genauigkeit auszuführen. Die
Elementbetriebseinheiten 411a-411f können in einer Matrix angeordnet
sein (die Datenübertragungsrichtung kann unidirektional sein).
Ausführungsform 1 und Ausführungsform 2 sind beschrieben worden,
wobei der Bewegungsvektor für einen Musterblock ermittelt worden
ist. Die Erfassung der Bewegungsvektoren von zwei Musterblöcken kann
auch parallel ausgeführt werden. Im folgenden wird eine Struktur
dazu beschrieben.
Fig. 65 zeigt die Größen des Suchbereichs und des Musterblocks. Wie
in Fig. 65 dargestellt ist, weist der Suchbereich 45 eine Größe von
48·48 Pixeln und der Musterblock 43 eine Größe von 16·16 Pixeln auf.
Der Suchbereich beträgt +16 bis -16 in horizontaler und +16 bis -16
in vertikaler Richtung.
Wie in Fig. 66 dargestellt ist, wird der Fall betrachtet, daß der
jeweilige Bewegungsvektor mit zwei benachbarten Makroblöcken TB1 und
TB2 als Musterblock im gegenwärtigen Bild 49 ermittelt wird. Bei der
vorliegenden Ausführungsform wird das Prozessorfeld mit der in den
Fig. 1 und 4 gezeigten Struktur benutzt. Im Prozessorfeld sind die
Pixeldaten des in Fig. 67 dargestellten Suchfensters 40 gespeichert.
Es wird ein Fall betrachtet, bei dem der Suchfensterblock 42 im
jeweiligen Elementprozessor im Prozessorfeld gespeichert ist, wie
Fig. 67 zeigt. Hier lautet der Verschiebungsvektor für den
Musterblock TB1 (0, -16) und der Verschiebungsvektor für den
Musterblock TB2 (-16, -16). Für den Suchfensterblock 42a lautet der
Verschiebungsvektor des Musterblocks TB1 (+16, -16) und der
Verschiebungsvektor des Musterblocks TB2 (0, -16). Die Berechnungen
der Kennungswerte für die zwei Musterblöcke TB1 und TB2 werden
parallel ausgeführt.
Der Elementprozessor PE im Prozessorfeld speichert den in Fig. 67
dargestellte Suchfensterblock 42. In ähnlicher Weise werden die
Pixeldaten der Musterblöcke TB1 und TB2 gespeichert, wobei die
Anordnungsreihenfolge auf dem Bild im jeweiligen Elementprozessor
des Prozessorfeldes beibehalten wird. 70903 00070 552 001000280000000200012000285917079200040 0002004322343 00004 70784Die Struktur dieses
Elementprozessors wird später beschrieben.
Der Betrieb des Elementprozessors ist im wesentlichen gleich dem
Betrieb, der unter Bezugnahme auf die Ausführungsformen 1 und 2
beschrieben worden ist.
Wie in Fig. 68 gezeigt ist, werden die Kennungswerte für die
Verschiebungsvektoren (0, -16) und (-16, -16) für die Musterblöcke
TB1 und TB2 unter Verwendung des Suchfensterblocks 42 berechnet.
Wenn die Berechnung der Kennungswerte für die Verschiebungsvektoren
(0, -16) und (-16, -16) abgeschlossen ist, wird im Prozessorfeld der
Schiebebetrieb um ein Pixel ausgeführt.
In diesem Zustand wird der Suchfensterblock 42 im Suchfenster 40 um
eine Zeile nach unten verschoben, wie in Fig. 65 dargestellt ist
(angegeben durch Block 42a). Der Verschiebungsvektor für den
Suchfensterblock 42a des Musterblocks TB1 ist gleich (0, -15) und
der Verschiebungsvektor des Musterblocks TB2 ist gleich (-16, -15).
Der oben beschriebene Vorgang wird wiederholt. Wenn 33 Zyklen
abgeschlossen sind, wird der Suchfensterblock 42b in den
Elementprozessoren im Prozessorfeld gespeichert. In diesem Zustand
lautet der Verschiebungsvektor des Musterblocks TB1 (0, 16) und der
Verschiebungsvektor des Musterblocks TB2 (-16, 16). Durch weiteres
Ausführen des Verschiebevorganges der Suchfensterdaten wird das
Suchfenster 40 um eine Spalte nach rechts verschoben, und die
Ermittlung des Bewegungsvektors wird unter Verwendung des neuen
Suchfensters 40a ausgeführt.
Genauer gesagt wird die Ermittlung des Bewegungsvektors wird unter
Verwendung des am weitesten oben befindlichen Suchfensterblocks 42c
im neuen Suchfenster 40a ausgeführt, wie in Fig. 71 dargestellt ist.
Für den Suchfensterblock 42c lautet der Verschiebungsvektor des
Musterblocks TB1 (1, -15) und der Verschiebungsvektor des
Musterblocks TB2 (-15, -16).
Durch Wiederholen dieses Vorgangs, um die Bestimmung des
Bewegungsvektors für den unteren Suchfensterblock 42d im Suchfenster
40b abzuschließen, wird der Zyklus zur Bestimmung des
Bewegungsvektors für den Musterblock TB1 abgeschlossen. Es wird
angenommen, daß der Prozeß für die 16 Spalten von -16 bis -1 der
horizontalen Komponente bereits abgeschlossen ist, bevor das
Suchfenster 40 angewandt wird. In diesem Zustand kann ein
Kennungswert für die 1089 (=33·33) Punkte der Ermittlung, die die
Kandidaten für den Bewegungsvektor des Musterblocks TB1 angeben,
berechnet werden, um den Bewegungsvektor zu bestimmen. Der
Bewegungsvektor für den Musterblock TB2 kann durch Ausführen dieses
Vorgangs für den Musterblock TB2 erfaßt werden.
Genauer gesagt kann der Bestimmungsvorgang des Bewegungsvektor für
die Musterblöcke TB1 und TB2 in paralleler Weise ausgeführt werden,
wie in Fig. 72 gezeigt ist, wobei die
Bewegungsvektor-Bestimmungszyklen um einen halben Zyklus überlappen.
Das erlaubt die Ausführung der Bewegungskompensierung für ein Bild
mit hoher Geschwindigkeit. Die Struktur zum Ausführen einer solchen
Bestimmung der Bewegungsvektoren für die beiden Musterblöcke wird im
folgenden beschrieben.
Fig. 73 zeigt die Struktur eines Elementprozessors, der bei der
dritten Ausführungsform der vorliegenden Erfindung benutzt wird. Wie
in Fig. 73 dargestellt ist, weist ein Elementprozessor PE ein
Suchfenster-Datenregister 505c zum Speichern der Suchfensterdaten
von einem benachbarten Elementprozessor, ein rechtes
Musterdatenregister 505a zum Speichern der Pixeldaten des
Musterblocks der rechten Seite, die von einem benachbarten
Elementprozessor geliefert werden, ein linkes Musterdatenregister
505b zum Speichern der Pixeldaten des Musterblocks der linken Seite,
die von einem benachbarten Elementprozessor geliefert werden, einen
Selektor 506 zum Auswählen der Ausgabe von entweder dem
Musterdatenregister 505a oder 505b und eine
Absolutdifferenzschaltung 507 zum Empfangen der Ausgaben des
Registers 505c und des Selektors 506 über die Signalleitungen 510
bzw. 509, um die Berechnung einer absoluten Differenz auszuführen,
auf.
Die Ausgabe der Absolutdifferenzschaltung 507 wird der
Summierungseinheit über die Signalleitung 511 zugeführt. Der in Fig.
73 dargestellte Elementprozessor PE ist in einem zweidimensionalen
Feld angeordnet, wie in Fig. 4 gezeigt ist. Die Musterblockdaten
werden aktualisiert, nachdem die Bestimmung des Bewegungsvektors für
16 Spalten (die 16 Spalten des Suchbereichs) der horizontalen
Komponenten ausgeführt worden ist. Hier können der Musterblock der
rechten Seite und der Musterblock der linken Seite nicht
gleichzeitig aktualisiert werden, und nur die in einem Musterblock-
Datenregister gespeicherten Daten können aktualisiert werden. Als
Reaktion darauf wird die Auswahl des Selektors umgeschaltet. Im
jeweiligen Betriebszyklen muß lediglich die Auswahlfolge für einen
Block identisch sein.
Die Strukturen der Absolutdifferenzschaltung 507 und der
Summierungseinheit sind ähnlich den unter Strukturen, die für die
erste und zweite Ausführungsform beschrieben worden sind. Weil der
Betrieb des Elementprozessors PE ähnlich ist, werden die Details
nicht wiederholt. Die Musterdatenregister 505a und 505b werden vom
Selektor 506 sequentiell ausgewählt, und die Absolutdifferenz der
Suchfenster-Blockdaten, die im Suchfenster-Datenregister 505c
gespeichert sind, wird bestimmt. Daher werden die Absolutdifferenz
des Musterblocks der rechten Seite und die Absolutdifferenz des
Musterblocks der linken Seite von der Absolutdifferenzschaltung 507
in zeitlich-gemultiplexter Weise geliefert und der
Summierungseinheit zugeführt.
Die Fig. 74 und 75 zeigen Strukturen zur Erzeugung der
Musterblockdaten der rechten Seite und der Musterblockdaten der
linken Seite. Wie in Fig. 74 gezeigt ist, werden die
Musterblockdaten der rechten Seite direkt aus dem Bildspeicher 550
des gegenwärtigen Bildes ausgelesen, und die Musterblockdaten der
linken Seite werden aus dem Pufferspeicher 552 ausgelesen. Der
Pufferspeicher 552 speichert sequentiell die Musterblockdaten der
rechten Seite, die aus dem Bildspeicher 550 für das gegenwärtige
Bild ausgelesen worden sind. Für den Pufferspeicher 552 kann ein
Multiportspeicher benutzt werden, der getrennte Schreib- und
Lesepfade aufweist, wie unter Bezugnahme auf Fig. 54 beschrieben
worden ist. Alternativ kann ein FIFO-Speicher verwendet werden. Der
Pufferspeicher 552 muß eine Speicherkapazität aufweisen, die
ausreicht, alle Pixeldaten des Musterblockes zu speichern. Der
Bildspeicher 550 für das gegenwärtige Bild speichert alle Pixeldaten
des gegenwärtigen Bildes. Bei der in Fig. 74 gezeigten Struktur
werden der Musterblock der rechten Seite und der Musterblock der
linken Seite zusammen aktualisiert, wenn der Bestimmungsvorgang für
den Bewegungsvektor für die 16 Spalten in horizontaler Richtung des
Prozessorfeldes abgeschlossen ist.
Fig. 75 zeigt eine Struktur zur Aktualisierung von nur einem
Musterblockwert im Prozessorfeld. Wie in Fig. 75 dargestellt ist,
werden die aus dem Bildspeicher 550 ausgelesenen Musterblockdaten
des gegenwärtigen Bildes vom Selektor 554 als Musterblockdaten der
rechten Seite oder als Musterblockdaten der linken Seite ausgegeben.
Der Selektor 554 überträgt die aus dem Bildspeicher 550 ausgelesenen
Musterblockdaten des gegenwärtigen Bildes zum Musterblock-Datenpfad
der rechten Seite oder dem Musterblock-Datenpfad der linken Seite.
Im Elementprozessor PE, der in Fig. 73 dargestellt ist, werden nur
die Daten aktualisiert, die entweder im Musterdatenregister 505a der
rechten Seite oder im Musterdatenregister 505b der linken Seite
gespeichert sind. Als Reaktion auf das Umschalten der Auswahlart des
Selektors 554 wird die Auswahlfolge des in Fig. 73 gezeigten
Selektors 506 umgeschaltet.
Fig. 76 zeigt eine weitere Struktur für einen Elementprozessor. Wie
in Fig. 76 dargestellt ist, weist der Elementprozessor PE zwei
Absolutdifferenzschaltungen 507a und 507b auf. Die
Absolutdifferenzschaltung 507a ermittelt die Absolutdifferenz der
Daten, die im Suchfenster-Datenregister 505c gespeichert sind, und
der Daten, die im Musterdatenregister 505a der rechten Seite
gespeichert sind. Die Absolutdifferenzschaltung 507b ermittelt die
Absolutdifferenz der Daten, die im Suchfenster-Datenregister 505c
gespeichert sind, und der Daten, die im Musterdatenregister 505b der
linken Seite gespeichert sind. Die Ausgaben der
Absolutdifferenzschaltungen 507a und 507b werden über die
Signalleitungen 511a bzw. 511b zur Summierungseinheit übertragen.
Zwei den Absolutdifferenzschaltungen 507a und 507b entsprechende
Summierungsschaltungen können in der Summierungseinheit gebildet
sein. Es kann eine Struktur benutzt werden, bei der eine
Summierungsschaltung über einen Selektor in zeitlich-gemultiplexter
Weise getrieben wird.
Bei der oben beschriebenen Elementprozessorstruktur ist beschrieben
worden, daß die Musterdaten zwischen benachbarten Elementprozessoren
übertragen werden. Wenn diese Musterblockdaten nicht direkt zur
Bewegungsvektor-Bestimmungseinheit mit gebrochener Genauigkeit
übertragen werden, kann eine Struktur benutzt werden, bei der die
Musterdaten direkt an den jeweiligen Elementprozessor angelegt
werden, ohne die Musterblockdaten zwischen benachbarten
Elementprozessoren zu verschieben. Der Grund dafür ist, daß sich die
Musterblockdaten während des Bewegungsvektor-Bestimmungsvorgang im
Prozessorfeld befinden (es ist keine Verschiebung notwendig).
Fig. 77 zeigt die Strukturen der Summierungseinheit und der
Vergleichseinheit. Wie in Fig. 77A dargestellt ist, empfängt die
Summierungseinheit 560 parallel die Absolutdifferenz von der
Absolutdifferenzschaltung, die im Elementprozessor PE enthalten ist,
um die Berechnung einer Gesamtsumme auszuführen. Die Ausgabe der
Summierungseinheit 560 wird an eine rechte Komparatoreinheit 562 und
eine linke Komparatoreinheit 564 angelegt. Die rechte und die linke
Komparatoreinheit 562 und 564 werden in Abhängigkeit von
Aktivierungssignalen Φ1 bzw. Φ2 aktiviert. Die rechte
Komparatoreinheit 562 bestimmt einen Bewegungsvektor für den
Musterblock der rechten Seite und die linke Komparatoreinheit 564
einen Bewegungsvektor für den Musterblock der linken Seite. Die
Struktur der Summierungseinheit 560 und der Komparatoreinheiten 562
und 564 können die Strukturen der vorherigen Ausführungsformen
benutzen. Genauer gesagt können die in den Fig. 40 bis 42
dargestellten Strukturen für die Summierungseinheit 560 und die in
Fig. 43 dargestellte Struktur für die Komparatoreinheiten 562 und
564 verwendet werden. Die Aktivierungssteuersignale Φ1 und Φ2 werden
zur Aktivierung der Komparatoren benutzt, die in der
Komparatoreinheit enthalten sind, und zur Steuerung des
Verriegelungsvorgangs eines Register-Latch benutzt.
Bei der in Fig. 77A dargestellten Struktur werden von der
Summierungseinheit 560 ein Kennungswert für die Musterblöcke der
rechten und der linken Seite in zeitlich-gemultiplexter Weise
ausgegeben. In diesem Fall kann ein Selektor 566 zwischen der
Summierungseinheit 560 und den Komparatoreinheiten 562 und 564
gebildet sein, der von einem Steuersignal ΦC abhängig ist, um den
Signalübertragungspfad umzuschalten, wie in Fig. 77B dargestellt
ist, so daß der Vergleichsbetrieb sichergestellt ist. Der Selektor
566 schaltet den Signalübertragungspfad unter der Steuerung des
Steuersignals ΦC entsprechend dem Kennungswert der Musterblöcke der
rechten und linken Seite, um den Kennungswert von der
Summierungseinheit 560 den entsprechenden Komparatoreinheiten der
rechten oder linken Seite 562 und 564 zuzuführen.
Wenn der Elementprozessor zwei Absolutdifferenzschaltungen aufweist,
wie in Fig. 76 dargestellt ist, so kann die Summierungseinheit 560
zwei Summierungsschaltungen enthalten. In diesem Fall werden von der
Summierungseinheit 560 Kennungswerte für die Musterblöcke der
rechten Seite und der linken Seite parallel ausgegeben. Ein
Multiplexer zum Auswählen eines Absolutdifferenzschaltungsgruppe
(links/rechts) kann im Eingangsabschnitt der Summierungseinheit 560
gebildet sein.
Fig. 78 zeigt die Struktur zum parallelen Ausführen der Erfassung
eines Bewegungsvektors mit gebrochener Genauigkeit für zwei
Musterblöcke.
Wie in Fig. 78 dargestellt ist, weist die Vorrichtung zum Erfassen
eines Bewegungsvektors mit gebrochener Genauigkeit Pufferspeicher
580 und 582 zum Speichern der Suchfensterdaten, die zur Erfassung
eines Bewegungsvektors mit gebrochener Genauigkeit erforderlich
sind, unter den Suchfensterdaten, die vom Prozessorfeld zur
Erfassung eines Bewegungsvektors mit ganzzahliger Genauigkeit
geliefert werden, ein Berechnungsmittel 584 für einen
Bewegungsvektor mit gebrochener Genauigkeit zum Empfangen der
Suchfensterdaten vom Pufferspeicher 580 und der Musterblockdaten der
linken Seite zum Bestimmen eines Bewegungsvektors mit gebrochener
Genauigkeit, und ein Berechnungsmittel 586 zum Empfangen der
Suchfensterdaten vom Pufferspeicher 582 und der Musterblockdaten der
rechten Seite zum Bestimmen eines Bewegungsvektors mit gebrochener
Genauigkeit auf.
Die Pufferspeicher 580 und 582 führenden Schreibbetrieb von
Suchfensterdaten in Abhängigkeit von Schreibsteuersignalen ΦA und ΦB
aus. Die Steuersignale ΦA und ΦB werden von den Komparatoreinheiten
564 bzw. 562 erzeugt. Eine Struktur ähnlich der für die zweite
Ausführungsform beschriebenen Struktur wird für die Pufferspeicher
580 und 582 verwendet. Die im Pufferspeicher 580 gespeicherten Daten
werden für die Bestimmung eines Bewegungsvektors mit ganzzahliger
Genauigkeit für den Musterblock der linken Seite sequentiell
ausgelesen, und die im Pufferspeicher 582 gespeicherten Daten werden
für die Bestimmung eines Bewegungsvektors für den Musterblock der
rechten Seite ausgelesen. Die Struktur ähnlich der für die zweite
Ausführungsform beschriebenen Struktur wird für die
Berechnungsmittel 584 und 586 für einen Bewegungsvektor mit
gebrochener Genauigkeit verwendet. Der Betrieb der Berechnungsmittel
584 und 586 für einen Bewegungsvektor mit gebrochener Genauigkeit
ist ähnlich dem Betrieb, der für die zweite Ausführungsform
beschrieben worden ist. Details werden nicht wiederholt.
Die Musterblockdaten der rechten Seite und die Musterblockdaten der
linken Seite weisen für die Ausgabezeit eine Abweichung von einem
Zyklus entsprechend 16 horizontalen Komponenten auf. Für den Fall,
daß sowohl die Musterblockdaten der rechten Seite als auch der
linken Seite jeweils nach 16 Zyklen horizontaler Komponenten
aktualisiert werden, werden Puffermittel für die Musterblockdaten
der rechten Seite und der linken Seite gebildet, um deren
Ausgabezeiten abzustimmen. In diesem Fall tritt eine Zeitabweichung
während der Bewegungsvektor-Bestimmungsperiode für die Musterblöcke
der rechten und linken Seite auf. In ähnlicher Weise tritt eine
Zeitabweichung für die Berechnung des Bewegungsvektors mit
gebrochener Genauigkeit auf. In diesem Fall kann das
Berechnungsmittel für den Bewegungsvektor mit gebrochener
Genauigkeit gemeinsam für die Musterblöcke der rechten und der
linken Seite benutzt werden.
Fig. 79 zeigt eine Modifikation der Struktur des Bewegungsvektor-
Erfassungsmittels mit gebrochener Genauigkeit von Fig. 78. Wie in
Fig. 79 dargestellt ist, weist die Struktur zur Erfassung eines
Bewegungsvektors mit gebrochener Genauigkeit einen Pufferspeicher
590 zum Speichern von Musterblockdaten der linken Seite,
Pufferspeicher 592 und 594 zum Speichern von Suchfensterdaten in
Abhängigkeit von den Steuersignalen ΦA bzw. ΦB, einen Pufferspeicher
596 zum Speichern von Musterblockdaten der rechten Seite, einen
Selektor 598 zum Auswählen eines Satzes von Musterdaten und
Suchfensterdaten aus den Daten, die von den Pufferspeichern 590,
592, 594 und 596 ausgelesen werden, und ein zweites
Berechnungsmittel 599 zum Erfassen eines Bewegungsvektors mit
gebrochener Genauigkeit entsprechend den Musterdaten und
Suchfensterdaten, die vom Selektor 598 geliefert werden, auf.
Der Selektor 598 wählt bei der Bestimmung eines Bewegungsvektors mit
gebrochener Genauigkeit für den Musterblock der linken Seite die in
den Pufferspeichern 590 und 592 gespeicherten Daten aus. Bei der
Bestimmung eines Bewegungsvektors mit gebrochener Genauigkeit für
den Musterblock der rechten Seite wählt der Selektor 598 die aus den
Pufferspeichern 594 und 596 gelesenen Daten aus. Das zweite
Berechnungsmittel 599 bestimmt einen Bewegungsvektor mit gebrochener
Genauigkeit entsprechend den zugeführten Musterdaten und den
Suchfensterdaten.
Die Verwendung der Pufferspeicher 590, 592, 594 und 596 stellt die
Erfassung eines Bewegungsvektor mit gebrochener Genauigkeit für die
Musterblöcke der linken und rechten Seite sicher. Wie in Fig. 80
dargestellt ist, kann die Erfassung eines Bewegungsvektor mit
gebrochener Genauigkeit für die Musterblöcke der linken und rechten
Seite nach Art einer Pipeline parallel zur Bestimmung eines
Bewegungsvektor mit ganzzahliger Genauigkeit für die Musterblöcke
der linken und rechten Seite ausgeführt werden. Entsprechend dieser
Struktur kann man ein effizienteres Bewegungsvektor-
Bestimmungsmittel mit geringerer Schaltungskomplexität erzielen.
Bei der in Fig. 79 gezeigten Struktur ist die Auslesetaktung der
Daten aus dem Pufferspeicher nicht im genauesten Maße beschrieben
worden. Ähnlich wie bei der Beschreibung der zweiten Ausführungsform
zum Ausführen der Bestimmung eines Bewegungsvektors mit gebrochener
Genauigkeit muß jedoch für die Musterblockdaten eine Struktur
verwendet werden, bei der das Schreiben von Musterblockdaten
entsprechend einem Bewegungsvektor-Bestimmungssignal von der
Komparatoreinheit des Berechnungsmittels mit ganzzahliger
Genauigkeit ausgeführt wird, und wobei Daten nach Abschluß des
Schreibens aller Daten gelesen werden.
Durch Anwenden eines Pufferungsprozesses auch auf die
Musterblockdaten mittels eines Pufferspeichers kann der
Erfassungsvorgang eines Bewegungsvektors mit gebrochener Genauigkeit
und der Erfassungsvorgang eines Bewegungsvektors mit ganzzahliger
Genauigkeit nach Art einer Pipeline ausgeführt werden, um einen
Bewegungsvektor mit hoher Geschwindigkeit zu erfassen, wie in Fig.
80 dargestellt ist. Fig. 80 zeigt ein Beispiel für eine Folge zur
Erfassung eines Bewegungsvektors mit ganzzahliger Genauigkeit und
eines Bewegungsvektors mit gebrochener Genauigkeit für die
Makroblöcke #1 bis #6.
In der Speichermedium-Codierungstechnik wird ein Bildsignal bei der
Bildverarbeitung keiner Beschränkung hinsichtlich der Zeitachse
unterworfen. Der Grund dafür ist, daß das Bildsignal in einem
Speichermedium wie z. B. CD-ROM gespeichert wird. Für den Fall der
Bewegungskompensation bei Bildern für Speichermedien sind drei
Bewegungskompensationsarten möglich: (i)
Vorwärtsbewegungskompensation der Vorhersage der Gegenwart aus der
Vergangenheit, (ii) Rückwärtsbewegungskompensation der Vorhersage
der Zukunft aus der Gegenwart und (iii)
Interpolationsbewegungskompensation der Vorhersage der Gegenwart aus
der Vergangenheit und Zukunft. Die Vorwärts- und
Rückwärtsbewegungskompensation können die Strukturen der
Ausführungsformen 1 bis 3 verwenden, weil ein Referenzbild und das
gegenwärtige Bild in der unidirektionalen Vorhersage verwendet
werden (im folgenden als "unidirektionale Vorhersage" bezeichnet).
Die Interpolationsbewegungskompensation erfordert Referenzbilder der
Vergangenheit und der Zukunft sowie das gegenwärtige Bild. Bei der
Interpolationsbewegungskompensation werden die zwei Referenzbilder
(Referenzbild der Vergangenheit und Referenzbild der Zukunft)
zusammengeführt, wobei der zeitliche Abstand zwischen den zwei
Referenzbildern und dem gegenwärtigen Referenzbild in Betracht
gezogen wird. Unter Verwendung des zusammengeführten Referenzbildes
(Block) wird der Erwartungswert für die Bewegungskompensation des
gegenwärtigen Bildes ermittelt. Um einen Bewegungsvektor für das
zusammengeführte Referenzbild (Block) zu ermitteln, muß aus dem
Bewegungsvektor, der aus dem Makroblock des Referenzbildes der
Vergangenheit erhalten wird, und dem Bewegungsvektor, der aus dem
Makroblock des Referenzbildes der Zukunft erhalten wird, ein
optimaler Bewegungsvektor bestimmt werden. Ein derartiger Prozeß
wird z. B. für ein B-Bild im Motion Picture Image Coding Standard for
Storage Media of MPEG (Motion Picture Image Coding Experts Group)
ausgeführt (Standard für Speichermedien für die Codierung bewegter
Bilder der MPEG).
Obwohl die Anwendung nicht auf ein B-Bild beschränkt ist wird im
folgenden als vierte Ausführungsform eine Struktur zur Erfassung
eines Bewegungsvektors durch Interpolationsvorhersage beschrieben.
Wie in Fig. 81 dargestellt ist, weist ein Bewegungsvektor-
Bestimmungsmittel für Interpolationsvorhersage eine erste
Suchbereichdaten-Speichereinheit 1001 zum Speichern der Pixeldaten
eines ersten Speicherbereichs, eine Musterdaten-Speichereinheit 1000
zum Speichern von Pixeldaten des Musters des gegenwärtigen Bildes,
und eine zweite Suchbereichdaten-Speichereinheit 1002 zum Speichern
der Pixeldaten eines zweiten Speicherbereichs auf. Die erste und die
zweite Suchbereichdaten-Speichereinheit 1001 und 1002 können
Bildspeicher zum Speichern der Pixeldaten des ersten und zweiten
Referenzbildes sein. Die Musterdaten-Speichereinheit 1000 kann ein
Bildspeicher zum Speichern der Pixeldaten des gegenwärtigen Bildes
sein. Das erste oder das zweite Referenzbild ist das Bild der
Vergangenheit und das andere ist das Bild der Zukunft. Für den Fall
einer Struktur, die durch Zusammenführen einer Mehrzahl von Bildern
in unidirektionaler Weise eine Bewegungskompensation ausführt,
können das erste und zweite Referenzbild auf der Zeitachse in
derselben Richtung bezüglich des gegenwärtigen Bildes angeordnet
sein.
Das Bewegungsvektor-Bestimmungsmittel für Interpolationsvorhersage
weist ferner eine erste Bewegungserfassungseinheit 1003 für
unidirektionale Vorhersage zum Empfangen der Musterblock-Pixeldaten
von der Datenspeichereinheit 1000 und der Suchbereichdaten
(Suchfensterdaten) von der ersten Suchbereichdaten-Speichereinheit
1001 zum Bestimmen eines ersten Bewegungsvektors mva und eine zweite
Bewegungserfassungseinheit 1004 für unidirektionale Vorhersage zum
Bestimmen eines zweiten Bewegungsvektors aus den Musterblock-
Pixeldaten von der Datenspeichereinheit 1000 und den
Suchbereichdaten, die von der zweiten Suchbereichdaten-
Speichereinheit 1002 ausgelesen werden, auf.
Die erste Bewegungserfassungseinheit 1003 für unidirektionale
Vorhersage weist einen Elementprozessor auf, der in der ersten bis
dritten Ausführungsform verwendet wird. Die erste
Bewegungserfassungseinheit 1003 für unidirektionale Vorhersage weist
eine erste Rechenschaltung 1011 zum Ausführen eines Block-Matching-
Prozesses für die angelegten Suchbereichdaten und Musterblockdaten,
um einen Bewegungsvektor mva und einen Kennungswert eva zu
bestimmen, und einen ersten Pufferspeicher 1013 zum Speichern von
Suchfenster-Blockdaten entsprechend einem Bewegungsvektor, der von
der ersten Rechenschaltung 1011 bestimmt wird, auf.
Der Pufferspeicher 1013 weist eine Struktur ähnlich derjenigen auf,
die bei der zweiten Ausführungsform zur Erfassung eines
Bewegungsvektors mit gebrochener Genauigkeit benutzt wird. Genauer
gesagt speichert der erste Pufferspeicher 1013 Suchfenster-
Pixeldaten, die sequentiell aus der ersten Rechenschaltung 1011
ausgeschoben werden. Der erste Pufferspeicher 1013 kann eine
Speicherkapazität aufweisen, die ausreicht, alle Pixeldaten der
Suchbereiches zu speichern, und er kann eine Speicherkapazität
aufweisen, die ausreicht, die Pixeldaten eines Suchfensterblocks zu
speichern. Das Lesen und Schreiben von Pixeldaten in den
Pufferspeicher 1013 wird z. B. unter Verwendung des in Fig. 53
gezeigten Steuersystems ausgeführt. Es sei bemerkt, daß die
Randpixel des Suchfensterblocks zur Erfassung eines Bewegungsvektors
mit ganzzahliger Genauigkeit nicht erforderlich sind.
Die zweite Bewegungserfassungseinheit 1004 für unidirektionale
Vorhersage weist eine ähnliche Struktur wie die erste
Bewegungserfassungseinheit 1003 für unidirektionale Vorhersage auf
und umfaßt eine zweite Rechenschaltung 1012 und einen zweiten
Pufferspeicher 1014. Die zweite Bewegungserfassungseinheit 1004 für
unidirektionale Vorhersage ermittelt einen Bewegungsvektor mvb und
einen Kennungswert evb durch Anwenden eines Block-Matching-Prozesses
auf die zugeführten Suchbereich-Pixeldaten und die Musterblockdaten.
Der zweite Pufferspeicher 1014 empfängt Suchfensterdaten von der
zweiten Rechenschaltung 1012, um die Suchfensterblock-Pixeldaten
entsprechend dem Bewegungsvektor mvb zu speichern. Der zweite Puffer
kann so implementiert sein, daß er alle Pixeldaten im Suchbereich
speichert und nur die Suchfenster-Blockdaten entsprechend dem
Bewegungsvektor mvb ausgibt.
Suchfenster-Blockdaten entsprechend den Bewegungsvektoren mva und
mvb vom ersten und zweiten Pufferspeicher 1013 und 1014 als
Teilreferenz-Bilddaten RPa und RPb werden ausgelesen und zusammen
mit den Bewegungsvektoren mva und mvb sowie den Kennungswerten eva
und evb an das Bewegungsbestimmungsmittel 1005 für
Interpolationsvorhersage angelegt.
Die erste und zweite Rechenschaltung 1011 und 1012 weisen ein
Prozessorfeld, eine Summierungseinheit und eine Komparatoreinheit
ähnlich der bei der ersten bis dritten Ausführungsform dargestellten
Struktur auf und führen eine Berechnung eines Kennungswertes und die
Erfassung eines Bewegungsvektors in paralleler Weise entsprechend
einem ähnlichen Verfahren aus. Der erste und zweite Pufferspeicher
1013 und 1014 speichert Suchfenster-Pixeldaten, die aus der ersten
und zweiten Rechenschaltung 1011 bzw. 1012 ausgeschoben werden.
Der erste und zweite Pufferspeicher 1013 und 1014 reagiert auf ein
Steuersignal von der Komparatoreinheit, die in der ersten und
zweiten Rechenschaltung 1011 und 1012 vorhanden ist, um
Suchfensterblock-Pixeldaten für einen Verschiebungsvektor zu
speichern, der einen Kandidaten für einen Bewegungsvektor darstellt
(wenn die Speicherkapazität dem Suchfensterblock entspricht). In der
Komparatoreinheit wird das zum Signal, das zum Zeitpunkt der
Aktualisierungsfestlegung eines Verschiebungsvektors erzeugt wird,
als Datenschreib-Steuersignal verwendet. Weil der Wert, der das
erste Pixel des Suchfensterblocks darstellt, aus der Rechenschaltung
ausgeschoben wird, kann der Pixelwert eines Suchfensterblocks
entsprechend einem Verschiebungsvektor, der einen
Bewegungsvektorkandidaten darstellt, stets durch Rückstellen eines
Adreßsignals in Abhängigkeit von einem Steuersignal von der
Komparatoreinheit gespeichert werden. Beim Auslesen von Daten werden
Daten aus der Startadresse (Rückstelladresse) gelesen, nachdem ein
Bewegungsvektor-Bestimmungszyklus abgeschlossen ist. Dieses
Steuerverfahren ist dem Verfahren ähnlich, das unter Bezugnahme auf
Fig. 55 beschrieben worden ist. (Block 48 in Fig. 54 kann als
Suchfensterblock angenommen werden. Ein Verzögerungsmittel für das
Randpixel ist nicht notwendig.)
Wenn der erste und zweite Pufferspeicher 1013 und 1014 alle
Pixeldaten des Suchbereichs speichert, kann der Wert eines
Bewegungsvektors als Startadresse beim Auslesen der Daten benutzt
werden (wenn der Bewegungsvektor als Zählwert des Zählers
ausgedrückt wird; siehe Fig. 43). Durch Ausführen eines
Adreßüberspringvorgangs kann das Auslesen unnötiger Suchfenster-
Pixeldaten verhindert werden. Der Betrieb der ersten und zweiten
unidirektionalen Bewegungserfassungseinheiten 1003 und 1004 ist
ähnlich dem Betrieb der ersten bis dritten Ausführungsformen, und
Details des Betriebs werden nicht wiederholt.
Im folgenden werden Struktur und Betrieb eines
Bewegungsbestimmungsmittels 1005 zur Interpolationsvorhersage
beschrieben. Bei der Bestimmung eines Interpolationsbewegungsvektors
werden auch die Teilreferenzbilddaten im Pufferspeicher ausgegeben.
Diese ausgegebenen Teilreferenzbilddaten werden zur
Vorhersagewerterzeugung verwendet.
Wie in Fig. 82 dargestellt ist, weist ein Bewegungsbestimmungsmittel
1005 zur Interpolationsvorhersage eine Referenzbild-
Erzeugungsschaltung 1020 für die Interpolationsvorhersage, die
Teilreferenzbilddaten (die Suchfenster-Blockdaten des ersten und
zweiten Suchbereichs entsprechend den Bewegungsvektoren mva und mvb)
vom ersten und zweiten Pufferspeicher zum Erzeugen eines
Referenzbildes (im weiteren als zusammengeführter Suchfensterblock
bezeichnet), das für die Interpolationsvorhersage erforderlich ist,
einen Pufferspeicher 1021 zum Speichern der Musterblockdaten TP,
eine Bewegungsvektor-Bestimmungsbetriebseinheit 1022 für die
Interpolationsvorhersage zum Ausführen eines Block-Matchings
zwischen den zusammengeführten Suchfensterblock-Pixeldaten von der
Referenzbild-Erzeugungsschaltung 1020 für die
Interpolationsvorhersage und den Musterblock-Pixeldaten, die aus dem
Pufferspeicher 1021 ausgelesen werden (in diesem Fall die Berechnung
eines Kennungswertes, der die Korrelation zwischen dem
zusammengeführten Suchfensterblock und dem Musterblock angibt), zum
Erzeugen eines Interpolationsvorhersage-Kennungswertes evc, und eine
Bewegungsvektor-Bestimmungsschaltung 1024 zum Erfassen eines
optimalen Bewegungsvektors aus dem Interpolationsvorhersage
Kennungswert evc von der Bewegungsvektor-Bestimmungsbetriebseinheit
1022 für die Interpolationsvorhersage und dem ersten und zweiten
Kennungswert eva und evb von den ersten und zweiten
Rechenschaltungen auf.
Der Pufferspeicher 1021 speichert die Musterdaten von der
Musterdaten-Speichereinheit 1000, die in Fig. 81 gezeigt ist,
parallel zum Laden der ersten und zweiten Rechenschaltungen 1011 und
1012. Das Auslesen der Daten aus dem Pufferspeicher 1021 wird
synchron zum Datenlesen aus dem ersten und zweiten Pufferspeicher
1013 und 1014 ausgeführt.
Die Referenzbild-Erzeugungsschaltung 1020 für die
Interpolationsvorhersage führt eine vorbestimmte Operation
hinsichtlich der zugeführten Pixeldaten RPa und RPb aus. Diese
Operation kann das arithmetische Mittel (RPa+RPb)/2 sein. Alternativ
kann eine gewichtete Mittelung wie z. B. (m·RPa+n·RPb)/(m+n)
ausgeführt werden. Die Gewichte m und n werden durch den zeitlichen
Abstand zwischen dem gegenwärtigen Bild und den jeweiligen ersten
und zweiten Referenzbildern (die den ersten und zweiten Suchbereich
enthalten) bestimmt. Das Gewicht steigt für ein Referenzbild mit
geringem zeitlichem Abstand an. Der Grund dafür ist, daß die
Änderung gegenüber dem gegenwärtigen Bild mit einem verminderten
Zeitabstand sinkt.
Die Bewegungsvektor-Bestimmungsbetriebseinheit 1022 für
Interpolationsvorhersage ermittelt z. B. eine Summe der
Absolutdifferenzen der zusammengeführten Suchfenster-Pixeldaten RPc
von der Schaltung 1020 und der Musterblock-Pixeldaten TP, um einen
Kennungswert evc zu erzeugen. Als Alternative zur Berechnung der
Summe der Absolutdifferenzen kann eine Berechnung wie z. B. die Summe
der quadrierten Differenzen ausgeführt werden. Jede Berechnung, die
zu einem Kennungswert führt, der die Korrelation der Blöcke angibt,
ist annehmbar. Die zusammengeführten Pixeldaten RPc von der
Schaltung 1020 und die Musterblockdaten vom Pufferspeicher 1021
werden der Betriebseinheit 1022 pixelweise zugeführt, wodurch die
vorbestimmte Berechnung sequentiell ausgeführt wird. Wenn diese
Berechnung abgeschlossen ist, wird ein Kennungswert evc erzeugt.
Die Bewegungsvektor-Bestimmungsschaltung 1024 vergleicht die Größen
der Kennungswerte evc von der Betriebseinheit 1022 und die
Kennungswerte eva und evb von der ersten und zweiten
Rechenschaltung, um einen Bewegungsvektor entsprechend dem minimalen
Kennungswert als optimalen Bewegungsvektor MV für die
Interpolationsvorhersage zu liefern.
Die Bestimmungsschaltung 1024 liefert sequentiell Bewegungsvektoren
mva und mvb in einer vorbestimmten Reihenfolge (oder parallel), wenn
der Kennungswert evc von der Betriebseinheit 1022 minimal ist. Die
Bestimmungsschaltung 1024 kann so implementiert werden, daß sie
einen Kennungswert EV entsprechend dem optimalen Bewegungsvektor MV
liefert.
Weil das Auslesen eines Referenzbildes und die Berechnung eines
Bewegungsvektors mit Interpolationsvorhersage durch die oben
beschriebene Struktur möglich ist, wird der Zugriff auf den
Bildspeicher, der das Referenzbild speichert, eliminiert. Daher kann
die Berechnung eines Bewegungsvektors mit Interpolationsvorhersage
mit hoher Geschwindigkeit ausgeführt werden. Teilreferenzbilder der
Pufferspeicher 1013 und 1014 werden zusammen mit der Bestimmung des
Bewegungsvektors MV geliefert.
Wenn nur die Erfassung eines Bewegungsvektors mit
Interpolationsvorhersage erforderlich ist, kann eine Struktur
benutzt werden, bei der Pixeldaten durch die Referenzbild-
Erzeugungsschaltung 1020 für die Interpolationsvorhersage
zusammengeführt (interpoliert) werden, die aus dem ersten und
zweiten Suchbereich ausgelesen werden, um die zusammengeführten
Pixeldaten und die Musterblock-Pixeldaten dem Prozessorfeld (mit
einer Struktur ähnlich der Struktur der ersten und zweiten
Rechenschaltung) zuzuführen und einen Bewegungsvektor zu bestimmen.
Durch Verwenden der ersten unidirektionalen
Bewegungserfassungseinheit 1003 zum Erfassen eines Bewegungsvektors
mit Vorwärtsvorhersage und der zweiten unidirektionalen
Bewegungserfassungseinheit 1004 zum Erfassen eines Bewegungsvektors
mit Rückwärtsvorhersage kann die Bestimmung eines Bewegungsvektors
für die Interpolationsvorhersage (bidirektionale Vorhersage)
realisiert werden, ohne die Vorrichtungskomplexität zu erhöhen. Im
folgenden wird die Struktur einer jeden Komponente beschrieben.
Fig. 83 zeigt die Struktur einer Referenzbild-Erzeugungsschaltung
für Interpolationsvorhersage und eine Bewegungsvektor-
Bestimmungsbetriebseinheit für Interpolationsvorhersage nach Fig.
82. Die Referenzbild-Erzeugungsschaltung 1020 für
Interpolationsvorhersage weist eine Mittelungsschaltung 1030 zum
Bestimmen des Mittels der Pixeldaten PXa und PXb der
Teilreferenzbilder RPa und RPb auf. Die Mittelungsschaltung 1030
führt die Berechnung von (v·PXa+wPXb)/(v+w) aus, wobei v=w erlaubt
ist, und v und w können entsprechend dem zeitlichen Abstand
hinsichtlich des gegenwärtigen Bildes (Musterblock) bestimmt sein.
Die Mittelungsschaltung 1030 kann aus einer Multiplikationsschaltung
(Multiplikation der Koeffizienten v und w), einer Addiererschaltung
und einer Dividiererschaltung gebildet sein. Alternativ kann sie
unter Verwendung eines ROM (mit den Werte PXa und PXb als Adresse)
gebildet werden.
Die Betriebseinheit 1022 weist eine Absolutdifferenzschaltung 1031
zum Bestimmen der absoluten Differenz |TPa-PXc| zwischen den
zusammengeführten Pixeldaten PXc von der Mittelungsschaltung 1030
und den Musterblock-Pixeldaten TPa sowie einen Akkumulator 1032 zum
Akkumulieren der Ausgaben der Absolutdifferenzschaltung 1031, um
einen Kennungswert evc zu erzeugen, auf. Für die Komponente 1031,
die in der Betriebseinheit 1022 benutzt wird, kann eine Struktur
ähnlich der für Ausführungsform 1 beschriebenen (siehe Fig. 26)
verwendet werden. Eine Struktur mit einem allgemeinen Register und
ein Addierer können für den Akkumulator 1032 verwendet werden.
Die Betriebseinheit 1022 kann aus einer Summierungsschaltung für
quadrierte Differenzen gebildet werden.
Fig. 84 zeigt die Struktur der Bewegungsvektor-Bestimmungseinheit
1024 von Fig. 82. Wie in Fig. 84 dargestellt ist, weist die
Bewegungsvektor-Bestimmungseinheit 1024 eine Minimalwertschaltung
1035 zum Bestimmen des Minimalwertes MIN{eva, evb, evc} aller
Kennungswerte eva, evb und evc und eine Auswahlschaltung 1036, die
von der Minimalwertinformation von der Minimalwertschaltung 1035
abhängig ist, zum Auswählen von einem oder beiden Bewegungsvektoren
mva und mvb auf. Die Auswahlschaltung 1036 wählt den Bewegungsvektor
mva oder mvb aus, wenn die Minimalwertschaltung 1035 den
Kennungswert eva oder evb auswählt, und die Auswahlschaltung 1036
wählt beide Bewegungsvektoren mva und mvb aus, wenn die
Minimalwertschaltung 1035 den Kennungswert evc auswählt.
Fig. 85 zeigt die Strukturen der Minimalwertschaltung und der
Auswahlschaltung von Fig. 84 im Detail. Wie in Fig. 85 dargestellt
ist, weist die Minimalwertschaltung 1035 Register 1041 und 1042 zum
Speichern der Kennungswerte eva bzw. evb, einen Komparator 1043 zum
Vergleichen der Größe der Kennungswerte eva und evb, die in den
jeweiligen Registern 1041 und 1042 gespeichert sind, und eine
Auswahlschaltung 1044, die von der Ausgabe des Komparators 1043
abhängig ist, zum Durchlassen von einem der Kennungswerte eva und
evb, die in den Registern 1041 und 1042 gespeichert sind, auf.
Der Komparator 1043 liefert eine Signal eines ersten Logikpegels
(z. B. "H"), wenn der Kennungswert eva größer ist, ansonsten ein
Signal mit einem zweiten Logikpegel (z. B. "L"). Die Auswahlschaltung
1044 wählt beim Empfang des Signals des ersten Logikpegels den
Kennungswert evb vom Register 1042 und beim Empfang des Signals des
zweiten Logikpegels den Kennungswert eva vom Register 1041 aus.
Daher wird von der Auswahlschaltung 1044 der kleinere Kennungswert
MIN{eva, evb} der Kennungswerte eva und evb geliefert.
Die Minimalwertschaltung 1035 weist ferner ein Register 1045 zum
zeitweisen Speichern eines Kennungswertes evc (eine Kennungswertes
für die Interpolationsvorhersage), einen Komparator 1046 zum
Vergleichen der Ausgabe der Auswahlschaltung 1044 mit dem
Kennungswert evc vom Register 1045, und eine Auswahlschaltung 1047,
die von der Ausgabe des Komparators 1046 abhängig ist, zum
Durchlassen von entweder der Ausgabe der Auswahlschaltung 1044 oder
dem Kennungswert evc vom Register 1045 auf.
Die Komparatorschaltung 1046 liefert ein Signal des ersten
Logikpegels, wenn die Ausgabe der Auswahlschaltung 1044 größer als
der Kennungswert evc ist, ansonsten ein Signal des zweiten
Logikpegels. Die Auswahlschaltung 1047 wählt den Kennungswert evc
vom Register 1045, wenn ein Signal des ersten Logikpegels vom
Komparator 1046 geliefert wird, und die Ausgabe der Auswahlschaltung
1044, wenn ein Signal des zweiten Logikpegels geliefert wird, aus.
Genauer gesagt wird ein Minimalwert MIN{evc, MIN(eva, evb)}=MIN(eva,
evb, evc) von der Auswahlschaltung 1047 als Kennungswert EV
ausgegeben.
Wenn die Werte der beiden Eingaben im jeweiligen der Komparatoren
1043 und 1046 gleich sind, so kann eine der beiden entsprechend
einer vorbestimmten Priorität ausgewählt werden.
Die Auswahlschaltung 1036 weist Register 1050 und 1051 zum
zeitweisen Speichern der Bewegungsvektoren mva und mvb, eine
Auswahlschaltung 1052, die von der Ausgabe des Komparators 1043 in
der Minimalwertschaltung 1035 abhängig ist, zum Durchlassen von
einer der Ausgaben der Register 1050 und 1051, eine Gatterschaltung
1053, die von der Ausgabe des Komparators 1046 abhängig ist, zum
selektiven Durchlassen der Ausgabe der Auswahlschaltung 1052, und
ein Register 1054, das von der Ausgabe des Komparators 1046 abhängig
ist, zum sequentiellen oder parallelen Bereitstellen der
Bewegungsvektoren mva und mvb aus den Registern 1050 und 1051 auf.
Die Auswahlschaltung 1052 führt einen Betrieb ähnlich dem der
Auswahlschaltung 1044 aus, um einen Bewegungsvektor entsprechend dem
ausgewählten (kleineren) Kennungswert auszugeben. Die
Gatterschaltung 1053 erreicht einen Ausgangszustand hoher Impedanz,
wenn der Komparator 1046 ein Signal des ersten Logikpegels liefert,
das den Kennungswert eva auswählt, und die Ausgabe der
Auswahlschaltung 1052 liefert, wenn ein Signal mit dem zweiten
Logikpegel vom Komparator 1046 abgegeben wird.
Das Register 1054 arbeitet komplementär zur Gatterschaltung 1053.
Das Register 1054 liefert die Bewegungsvektoren mva und mvb von den
Registern 1050 und 1051, wenn ein Signal des ersten Logikpegels
angelegt wird, und erreicht einen Ausgangszustand hoher Impedanz,
wenn ein Signal des zweiten Logikpegels zugeführt wird.
Fig. 86 zeigt eine Modifikation der Referenzbild-Erzeugungsschaltung
für Interpolationsvorhersage. Zusätzlich zu der in Fig. 83
dargestellten Struktur weist diese Bilderzeugungsschaltung 1022 eine
Mittelungsschaltung 1060 zum Bestimmen der Mittelwerte der
Bewegungsvektoren mva und mvb von der ersten und zweiten
Berechnungsschaltung auf. Die Mittelungsschaltung 1060 weist eine
Struktur ähnlich der Struktur der Mittelungsschaltung von Fig. 83
auf und bestimmt den Mittelwert der Pixeldaten. In Abhängigkeit vom
Interpolationsvorhersage-Referenzbild wird auch der Bewegungsvektor
interpoliert.
Die Auswahlschaltung 1036 wählt unter den Bewegungsvektoren mva, mvb
und mvc einen Bewegungsvektor entsprechend dem minimalen
Kennungswert aus, der durch die Minimalwertschaltung bestimmt wird.
Die Struktur der in Fig. 86 dargestellten Auswahlschaltung wird
durch eine Gatterschaltung implementiert, die selektiv den Inhalt
des Registers 1054 von Fig. 85 entsprechend der Ausgabe des
Komparators 1046 durchläßt.
Fig. 87 zeigt schematisch eine Modifikation der vierten
Ausführungsform. Wie in Fig. 87 dargestellt ist, werden
Teilreferenzbilddaten mit einem ersten und einem zweiten
Suchfensterblock 1102 und 1104 entsprechend den Bewegungsvektoren
mva und mvb im ersten und zweiten Pufferspeicher 1013 und 1014
gespeichert, die in Fig. 81 gezeigt sind. Die Teilreferenzbildblöcke
1101 und 1103 weisen erste und zweite Suchfensterblöcke 1102 und
1104 und jeweils deren Randpixel auf. Die Struktur zum Speichern
solcher Teilreferenzbildblöcke 1102 und 1104 im ersten und zweiten
Pufferspeicher 1013 und 1014 kann unter Verwendung der Struktur zur
Berechnung eines Bewegungsvektors mit ganzzahliger Genauigkeit
entsprechend der dritten Ausführungsform implementiert werden.
In der Referenzbild-Erzeugungsschaltung für Interpolationsvorhersage
wird ein Mittelungsprozeß der Teilreferenzbilder 1103 und 1101
ausgeführt, um ein Interpolationsvorhersage-Referenzbild 1105 zu
erzeugen, wodurch ein Bewegungsvektor des Musterblocks 1107 mit
diesem Referenzbild 1105 als Suchbereich bestimmt wird. Mit anderen
Worten wird die Berechnung eines Kennungswertes für jeden
zusammengeführten Suchfensterblock 1106 im zusammengeführten
Referenzbild 1105 ausgeführt, um einen Bewegungsvektor auf der
Basis der berechneten Kennungswerte zu bestimmen.
Das Verfahren kann so ausgeführt werden, daß Daten pixelweise aus
jedem der Pufferspeicher 1013, 1014 und 1021 ausgelesen und
zusammengeführt werden, um ein zusammengeführtes Suchfenster zu
erzeugen und die Berechnung eines Kennungswertes auszuführen. Weil
der Zugriff auf einen Bildspeicher für die Interpolationsvorhersage
nicht erforderlich ist, kann die Berechnung eines Bewegungsvektors
parallel zur Berechnung eines Vorhersagesignals durch die
Interpolationsvorhersage ausgeführt werden. Daher kann die
Interpolationsbewegungskompensation mit hoher Geschwindigkeit
ausgeführt werden. Alternativ kann die Berechnung eines
Kennungswertes durch eine Verarbeitungseinheit mit dem
Prozessorfeld, das für die Ausführungsformen 1 bis 3 gezeigt ist,
ausgeführt werden. Musterblock-Pixeldaten werden in einem
Prozessorfeld gespeichert und die zusammengeführten (interpolierten)
Pixeldaten, die durch Mittelung der Pixeldaten vom ersten und
zweiten Pufferspeicher 1013 und 1014 erhalten werden, werden zum
Prozessorfeld übertragen. Ein Bewegungsvektor und ein Kennungswert
werden erhalten, wodurch ein Kennungswert evc mit den Kennungswerten
eva und evb von der ersten und zweiten Verarbeitungseinheit 1003 und
1004 in der Bestimmungseinheit verglichen werden. In Abhängigkeit
vom Berechnungsergebnis wird die Auswahl eines Bewegungsvektors
ausgeführt.
Darüber hinaus können die in Fig. 88 gezeigten Musterblockdaten, die
aus der Rechenschaltung 1011 oder 1012 (Rechenschaltung 1011 in Fig.
88) der unidirektionalen Vorhersagebewegungserfassungseinheit 1003
oder 1004 ausgeschoben werden, an das Bewegungsbestimmungsmittel
1005 mit Interpolationsvorhersage angelegt werden. In diesem Fall
kann eine unidirektionale Vorhersagebewegungserfassung und eine
Interpolationsvorhersagebewegungserfassung nach Art einer Pipeline
ausgeführt werden, wie in Fig. 89 dargestellt ist.
Wie Fig. 89 zeigt, wird die Interpolationsvorhersage
Bewegungserfassung (i) parallel zum Ausschieben des Musterblocks TP
(TP1, TP2) ausgeführt, der zur unidirektionalen
Vorhersagebewegungserfassung benutzt wird. Der erste und zweite
Pufferspeicher 1013 und 1014 speichern die erforderlichen
Suchfenster-Blockdaten. Durch Auslesen von Daten synchron zum
Ausschieben der Musterblock-Pixeldaten aus den Pufferspeichern 1013
und 1014 kann dieser Pipeline-Vorgang realisiert werden. Bei diesem
Vorgang speichern die Pufferspeicher 1013 und 1014 Suchfenster-
Blockdaten und entsprechen einem Zustand, in dem die Randpixeldaten
nicht gespeichert sind. Bei dieser Struktur ist der Pufferspeicher,
der im Bewegungsbestimmungsmittel 1005 mit Interpolationsvorhersage
gebildet ist, durch einen Puffer zum Einstellen der Zeitabstimmung
ersetzt worden.
Bei der Interpolationsvorhersage-Bewegungserfassung (ii) nach Fig.
89 wird die Interpolationsvorhersage-Bewegungserfassung parallel zur
Verarbeitung des Musterblocks in unidirektionaler
Vorhersagebewegungserfassung ausgeführt. Die Musterblockdaten werden
im Pufferspeicher gespeichert, um einer Verarbeitung unterworfen zu
werden. Beim Ausschieben des Musterblocks TP werden die von der
unidirektionalen Bewegungserfassungseinheit 1003 ausgeschobenen
Musterblock-Pixeldaten in den Pufferspeicher der
Bewegungserfassungseinheit für Interpolationsvorhersage geladen. Der
Prozeß kann selbst dann mit hoher Geschwindigkeit ausgeführt werden,
wenn das Teilreferenzbild für die Interpolationsvorhersage die
Randpixel des Suchfensterblocks enthält.
Fig. 90 zeigt die Struktur einer Vorrichtung, die den
Bewegungsvektor verwendet, der in der vierten Ausführungsform
bestimmt wird. Genauer gesagt zeigt Fig. 90 die Struktur einer
Quellencodierungsschaltung, die bei der Codierung eines bewegten
Bildes benutzt wird. Wie in Fig. 90 dargestellt ist, weist eine
Quellencodierungsschaltung eine Struktur auf, die ähnlich der in
Fig. 93 gezeigten ist, und umfaßt einen Subtrahierer 1110, einen
Orthogonaltransformierer (DCT) 1111, ein Quantisierungsmittel 1112,
ein Invers-Quantisierungsmittel 1113, einen Invers-
Orthogonaltransformierer (DCT) 1114 und einen Addierer 1115. Die
Funktionen dieser Komponenten sind ähnlich denen der Fig. 93.
Die Quellencodierungsschaltung weist ferner einen Bildspeicher 1116
zum Empfangen und Speichern der Ausgabe des Addierers 1115 über
einen Schalter SW3, einen Bildspeicher 1117 zum Empfangen und
Speichern der gespeicherten Daten des Bildspeichers 1116, eine
Rückwärtsbewegungs-Kompensierungsschaltung 1118 zum Ausführen einer
Rückwärtsbewegungskompensation unter Verwendung der Daten, die im
Bildspeicher 1116 gespeichert sind, eine Vorwärtsbewegungs-
Kompensierungsschaltung 1120 zum Ausführen einer
Vorwärtsbewegungskompensation unter Verwendung der Daten, die im
Bildspeicher 1117 gespeichert sind, und eine
Interpolationsbewegungs-Kompensierungsschaltung 1119 zum Ausführen
einer Interpolationsbewegungskompensation unter Verwendung der
Daten, die in den Bildspeichern 1116 und 1117 gespeichert sind, auf.
Die Rückwärtsbewegungs-Kompensierungsschaltung 1118 verwendet das
Zukunftsbild, das im Bildspeicher 1116 gespeichert ist, als
Referenzbild, um ein Kennungssignal entsprechend z. B. einem
Bewegungsvektor mva zu erzeugen.
Die Vorwärtsbewegungs-Kompensierungsschaltung 1120 verwendet das
Vergangenheitsbild, das im Bildspeicher 1117 gespeichert ist, als
Referenzbild, um ein Kennungssignal entsprechend z. B. einem
Bewegungsvektor mvb zu erzeugen.
Die Interpolationsbewegungs-Kompensierungsschaltung 1119 führt die
Bilddaten zusammen, die aus dem Bildspeichern 1116 und 1117 gelesen
oder von den Kompensierungsschaltungen 1118 und 1120 geliefert
werden, um ein Referenzbild für die Erzeugung eines Kennungssignals
entsprechend einem Bewegungsvektor MV zu bilden.
Die Ausgaben der Bewegungskompensierungsschaltungen 1118-1120 werden
über einen Schalter SW4 dem Subtrahierer 1110 zugeführt. Der
Subtrahierer 1110 empfängt ferner die Ausgabe der Pixel-
Neuzuordnungsschaltung 1124. Entweder die Ausgabe des Subtrahierers
1110 oder der Neuzuordnungsschaltung 1124 wird vom Schalter SW1
ausgewählt und dem Orthogonaltransformierer 1111 zugeführt. Die
Ausgabe des Schalters SW4 wird dem Addierer 1115 über einen Schalter
SW2 zugeführt. Die Auswahl der Anschlüsse der Schalter SW1-SW4 wird
durch eine Steuerschaltung 1122 ausgeführt.
Die Pixel-Neuzuordnungsschaltung 1124 ist gebildet, weil es
notwendig ist, die Reihenfolge der verarbeiteten Bilder für
bidirektionale Vorhersage zu unterscheiden, d. h. die
Interpolationsvorhersage von der Bildreihenfolge der Originalbilder.
Bei der in der Zeichnung dargestellten Vorrichtung weist ein Bild im
allgemeinen ein I-Bild, durch das nur eine Zwischenbildcodierung
ausgeführt wird, ein P-Bild, durch das eine unidirektionale
Vorhersage-(Zwischenbildvorhersage-)Codierung ausgeführt wird, und
eine B-Bild, durch das eine Interpolationsvorhersage ausgeführt
wird, auf. Bei der Codierung werden das I-Bild und dann das P-Bild
vor dem B-Bild in der Bildfolge verarbeitet. Darauf folgt die
Verarbeitung des B-Bilds unter Verwendung der Vergangenheits- und
Zukunftsbilder I und P. Diese aufeinanderfolgende Verarbeitung wird
durch die Pixel-Neuzuordnungsschaltung 1124 realisiert, und die
Schalter SW1-SW4 wählen den Signalpfad entsprechend dem zu
verarbeitenden Bild aus. Der Schalter SW1 wählt die Ausgabe der
Pixel-Neuzuordnungsschaltung 1124 zum Zeitpunkt der Verarbeitung des
I-Bildes aus. Hier sind die Schalter SW2 und SW3 offen. Die
Kompensierungsschaltungen 1118 und 1120 können von der
Interpolationskompensierungsschaltung 1119 gemeinsam benutzt werden,
wie durch die gestrichelte Linie dargestellt ist, wobei die
Schaltung 1119 den Detektor 1105 und Puffer 1013 und 1014 aufweist.
Diese Anordnung vermindert die Vorrichtungsgröße aufgrund der
gemeinsamen Benutzung des Prozessorfeldes.
Im Vergleich zur Quellencodierungsschaltung der Fig. 90, erlaubt die
Struktur nach der vierten Ausführungsform die Erzeugung der
Bewegungsvektoren mva, mvb und MV mit einem gemeinsamen
Prozessorfeld. Dadurch ist eine schnelle Bildverarbeitung möglich,
weil die Anzahl der Zugriffe auf die Bildspeicher 1116 und 1117 für
die Bewegungsvektorerfassung vermindert wird. Der Grund dafür ist,
daß der Suchfensterblock (Teilreferenzbild) zusammen mit dem
erfaßten Bewegungsvektor erzeugt wird. Die Pixeldaten dieses
Teilreferenzbildes können als Kennungssignal verwendet werden.
Fig. 91 zeigt eine weitere Struktur nach der vierten
Ausführungsform. Wie in Fig. 91 dargestellt ist, weist das
Bewegungsvektor-Bestimmungsmittel eine erste
Bewegungserfassungseinheit 1150 für unidirektionale Vorhersage, eine
zweite Bewegungserfassungseinheit 1160 für unidirektionale
Vorhersage und eine Bewegungserfassungseinheit 1170 für
Interpolationsvorhersage auf.
Die erste Bewegungserfassungseinheit 1150 für unidirektionale
Vorhersage weist eine erste Bewegungserfassungseinheit 1151 mit
ganzzahliger Genauigkeit, die erste Suchfensterdaten und Musterdaten
zum Bestimmen eines Bewegungsvektors mit ganzzahliger Genauigkeit
durch einen Block-Matching-Prozeß und eines entsprechenden
Kennungswertes empfängt, einen ersten Pufferspeicher 1152 zum
Speichern von Suchfensterdaten Sa von der ersten
Bewegungserfassungseinheit 1151 mit ganzzahliger Genauigkeit, und
eine erste Bewegungserfassungseinheit 1153 mit höherer Genauigkeit,
die einen Bewegungsvektor mvai, einen Kennungswert evai und
Musterblockdaten TPa von der Bewegungserfassungseinheit 1151
empfängt, um einen Bewegungsvektor mva mit gebrochener Genauigkeit
(höherer Genauigkeit) und einen Kennungswert zu bestimmen, auf.
Der erste Pufferspeicher 1152 speichert einen Suchfensterblock
entsprechend einem Bewegungsvektor mvai mit ganzzahliger Genauigkeit
und Pixeldaten eines Bereichs mit den Randpixeln. Die erste
Bewegungserfassungseinheit 1153 mit höherer Genauigkeit erzeugt
einen Bewegungsvektor mva mit höherer Genauigkeit und einen
entsprechenden Kennungswert eva unter Verwendung der
Musterblockdaten TPa und der Pixeldaten des ersten Pufferspeichers
1152. Struktur und Betrieb der ersten Bewegungserfassungseinheit
1150 für unidirektionale Vorhersage sind ähnlich denen der
Ausführungsform 2, die in den Fig. 51-64 gezeigt ist.
Die zweite Bewegungserfassungseinheit 1160 für unidirektionale
Vorhersage weist eine ähnliche Struktur wie die erste
Bewegungserfassungseinheit 1150 für unidirektionale Vorhersage auf
und umfaßt eine zweite Bewegungserfassungseinheit 1161 mit
ganzzahliger Genauigkeit, die zweite Suchfensterdaten und
Musterdaten empfängt, einen zweiten Pufferspeicher 1162 zum
Speichern von Suchfensterdaten Sb von der Erfassungseinheit 1161 und
eine zweite Bewegungserfassungseinheit 1163 mit höherer Genauigkeit
zum Empfangen von Musterblockdaten TPb von der
Bewegungserfassungseinheit 1161 und Suchfensterdaten vom zweiten
Pufferspeicher 1162, um einen Bewegungsvektor mvb mit höherer
Genauigkeit und einen entsprechenden Kennungswert evb zu bestimmen.
Der Betrieb der zweiten Bewegungserfassungseinheit 1160 für
unidirektionale Vorhersage ist ähnlich dem der zweiten
Ausführungsform.
Die Bewegungserfassungseinheit 1170 für Interpolationsvorhersage
empfängt Bewegungsvektoren mva und mvb höherer Genauigkeit,
Kennungswerte eva und evb und Teilreferenzbilder RPa und RPb von der
ersten und zweiten Bewegungserfassungseinheit 1150 bzw. 1160 für
unidirektionale Vorhersage, um einen optimalen Bewegungsvektor MV
für den Musterblock zu bestimmen. Ein entsprechender Kennungswert EV
kann dem Bewegungsvektor MV zugeordnet sein. Die Struktur der
Bewegungserfassungseinheit 1170 für Interpolationsvorhersage ist
ähnlich der in Fig. 82 dargestellten. Der Betrieb zur Erfassung
eines Bewegungsvektors mit höherer Genauigkeit unterscheidet sich
aber. Unter Bezugnahme auf Fig. 82 wird im folgenden der Betrieb
kurz beschrieben.
In der Referenzbild-Erzeugungsschaltung 1020 mit
Interpolationsvorhersage wird ein Interpolationsreferenzbild RPc aus
den Teilreferenz-Bilddaten RPa und RPb erzeugt. Dieser Vorgang ist
gleich wie für die ganzzahlige Genauigkeit. Die Bewegungsvektor-
Bestimmungsbetriebseinheit 1022 für Interpolationsvorhersage
ermittelt einen Bewegungsvektor mvc mit höherer Genauigkeit und
einen entsprechenden Kennungswert evc aus den Musterblock-Pixeldaten
vom Pufferspeicher 1021 und dem Interpolationsreferenzbild von der
Schaltung 1020. Um die Erfassung mit höherer Genauigkeit
auszuführen, weist die Bestimmungsbetriebseinheit 1022 z. B. die in
Fig. 60 dargestellte Struktur auf.
Die Bewegungsvektor-Bestimmungsschaltung 1024 bestimmt den minimalen
der Kennungswerte eva, evb und evc, um einen Bewegungsvektor
entsprechend dem minimalen Kennungswert auszuwählen und auszugeben.
Der minimale Kennungswert EV kann zusammen damit ausgegeben werden
Gleichzeitig mit der Erfassung des Bewegungsvektors werden die in
den Pufferspeichern 1152 und 1162 gespeicherten Teilreferenzbilder
ausgelesen, um ein Referenzbild eines Bereichs entsprechend dem
Bewegungsvektor MV und einen Kennungswert zu erzeugen.
Die zur Erfassung eines Bewegungsvektors für unidirektionale
Vorhersage mit höherer Genauigkeit benutzten Pufferspeicher 1152 und
1162 können zur Bestimmung eines Bewegungsvektors für
Interpolationsvorhersage verwendet werden. Daher kann die Erfassung
eines Bewegungsvektors für Interpolationsvorhersage mit höherer
Genauigkeit mit hoher Geschwindigkeit ausgeführt werden, ohne die
Anzahl der Zugriffe auf den Bildspeicher und die
Vorrichtungskomplexität zu erhöhen.
Ähnlich der Interpolationsbewegungserfassung mit ganzzahliger
Genauigkeit können die Musterblockdaten von der
Bewegungserfassungseinheit für unidirektionale Vorhersage 1150 oder
1160 zur Erfassungseinheit 1170 übertragen werden. In diesem Fall
können die Erfassung eines Bewegungsvektors mit ganzzahliger
Genauigkeit, eines Bewegungsvektors mit höherer Genauigkeit und
eines Bewegungsvektors mit Interpolationsvorhersage nach Art einer
Pipeline ausgeführt werden.
Für die Struktur der Interpolationsvorhersage-Bewegungserfassung mit
höherer Genauigkeit ist die Modifikation anwendbar, die für die
Bewegungsvektorerfassung mit Interpolationsvorhersage mit
ganzzahliger Genauigkeit beschrieben worden ist.
Entsprechend der vorliegenden Erfindung können die
Elementprozessoren in einem zweidimensionalen Feld angeordnet sein,
und die Musterblockdaten sind im Prozessorfeld gespeichert, um einen
Kennungswert zu berechnen, der zur Bestimmung eines Bewegungsvektors
erforderlich ist. Es ist daher möglich, einen Bewegungsvektor mit
niedriger Schaltungskomplexität und geringer Leistungsaufnahme zu
bestimmen.
Weil die Elementprozessoren in einem Feld angeordnet sind und die
Suchfensterdaten und Musterblockdaten in diesem Feld in
unidirektionaler Weise verschoben werden, können Daten, die zur
Erfassung eines Bewegungsvektors mit gebrochener Genauigkeit
erforderlich sind, unter Verwendung der Daten verarbeitet werden,
die zur Erfassung eines Bewegungsvektors mit ganzzahliger
Genauigkeit benutzt werden. Das ermöglicht die Bestimmung eines
Bewegungsvektors mit gebrochener Genauigkeit mit hoher
Geschwindigkeit.
Andere charakteristische Effekte der vorliegenden Erfindung werden
im folgenden zusammengefaßt.
- 1) Elementprozessoren, die Suchfensterdaten und Musterdaten speichern können, sind in einem zweidimensionalen Feld angeordnet, wobei Daten in nur einer Richtung im zweidimensionalen Feld übertragen werden. Daher wird die Schaltungskomplexität vermindert, die für die Datenübertragung notwendig ist, und man kann ein Bewegungsvektor-Erfassungsmittel mit geringer Belegungsfläche, das mit niedriger Leistungsaufnahme arbeitet, erhalten.
- 2) Die Suchfensterdaten und Musterdaten, die zur Erfassung eines Bewegungsvektors mit ganzzahliger Genauigkeit benutzt werden, werden ohne Bildspeicher direkt zur Erfassung eines Bewegungsvektors mit gebrochener Genauigkeit verwendet. Daher wird die Anzahl der Zugriffe auf einen Bildspeicher reduziert, und ein Bewegungsvektor mit gebrochener Genauigkeit kann mit hoher Geschwindigkeit erfaßt werden.
- 3) Die Elementprozessoren können eine Mehrzahl von Suchfensterdaten und/oder eine Mehrzahl von Musterblockdaten speichern, um die Belegungsfläche des Prozessorfeldes zu vermindern. Daher erhält man ein Bewegungsvektor-Erfassungsmittel mit geringer Belegungsfläche. Weil die Anzahl der Elementprozessoren vermindert wird, können die Komponenten des Rechenschaltungssystems zur Berechnung eines Kennungswertes wie z. B. der Absolutdifferenz entsprechend reduziert werden, um ein Bewegungsvektor-Erfassungsmittel mit geringer Leistungsaufnahme zu erhalten.
- 4) Weil das Rechenmittel zur Berechnung eines Kennungswertes für einen Bewegungsvektor in Kombination mit einem Vorzeichenbit und Magnitudenbits gebildet ist, ist kein Inkrementierer zur Darstellung eines negativen Zahl in Zweierkomplementdarstellung erforderlich. Daher kann man einen Elementprozessor mit geringer Belegungsfläche erzielen. Entsprechend kann die Leistungsaufnahme eingespart werden, die für den Inkrementierer notwendig war.
- 5) Die Summierungsschaltung zur Erzeugung eines Kennungswertes kann durch Volladdiererschaltungen gebildet werden, die in Form eines Baums angeordnet sind. Weil ein Vorzeichenbit auf das niederwertigste Bit in der Volladdierer-Schaltungsstufe angewandt wird, kann man eine Summierungsschaltung erhalten, die mit hoher Geschwindigkeit arbeitet und eine geringe Belegungsfläche aufweist. Daher kann ein Bewegungsvektor mit hoher Geschwindigkeit erfaßt werden.
- 6) Die Pixeldaten des Suchfensters sind im Prozessorfeld gespeichert, und die Musterblockdaten befinden sich im Prozessorfeld. Daher kann man ein Bewegungsvektor-Bestimmungsmittel erzielen, das mit geringer Leistungsaufnahme arbeitet und eine geringe Belegungsfläche aufweist.
- 7) Weil die Suchfensterdaten im Prozessorfeld in nur einer Richtung übertragen werden, werden diejenigen Daten aus dem Prozessorfeld ausgeschoben, die zur Erzeugung eines Kennungswertes nicht erforderlich sind, und die als nächstes notwendigen Suchfensterdaten werden in das Prozessorfeld eingeschoben. Daher können die Suchfensterdaten im Prozessorfeld effektiv gespeichert werden, und man kann ein Bewegungsvektor-Bestimmungsmittel mit geringer Belegungsfläche erzielen, das mit hoher Geschwindigkeit und geringer Leistungsaufnahme arbeitet.
- 8) Die Transferrichtung der Musterblockdaten im Prozessorfeld ist orthogonal zur Transferrichtung der Suchfensterdaten. Weil die Musterblockdaten im Bildspeicher entsprechend der Rasterabtastung angeordnet sind, können Daten im Prozessorfeld entsprechend der Speicherweise der Musterblockdaten gespeichert sein. Daher können Musterdaten schnell in das Prozessorfeld geladen werden.
- 9) Die Transferrichtung der Suchfensterdaten im Prozessorfeld ist parallel zur Transferrichtung der Musterblockdaten. Damit kann die Verdrahtungsbelegungsfläche, die zur Übertragung beider Daten erforderlich ist, reduziert werden, um ein Prozessorfeld mit geringer Belegungsfläche zu realisieren.
- 10) Weil die Berechnung N-mal schneller als die Übertragung der Suchfensterdaten ausgeführt wird, kann ein Bewegungsvektor- Kennungswert effizient erzeugt werden.
- 11) Die zur Erzeugung eines Kennungswertes notwendigen Musterblockdaten können entsprechend einem Subsampling abgetastet werden, um die präzise Erfassung eines Bewegungsvektors für Bilddaten mit einer hohen Bildrate zu ermöglichen.
- 12) Daten der zwei Musterblöcke werden im jeweiligen Elementprozessor gespeichert, wobei die Erzeugung eines Kennungswertes für die zwei Musterblöcke unter Verwendung derselben Suchfenster-Blockdaten ausgeführt werden kann. Daher kann der Zugriff auf einen Bildspeicher effizient ausgeführt werden, um Suchfensterdaten auszulesen. Das ermöglicht die Erfassung eines Bewegungsvektors mit hoher Geschwindigkeit.
- 13) Die Bestimmung eines Bewegungsvektors wird für zwei Musterblöcke gleichzeitig ausgeführt, und die Anzahl der Zugriffe auf den Bildspeicher zum Auslesen von Suchfensterdaten kann signifikant vermindert werden. Daher kann ein Bewegungsvektor effizient und mit hoher Geschwindigkeit erfaßt werden.
- 14) Wenn eine Mehrzahl von Bewegungsvektoren existiert, die alle den minimalen Wert einer Kennungsfunktion liefern, wird dem Bewegungsvektor Priorität eingeräumt, der die kleinere Summe der Absolutwerte der Bewegungsvektorkomponenten aufweist. Daher kann ein Bewegungsvektor-Bestimmungsmittel gebildet werden, das einen Bildkomprimierungsprozeß effizient realisiert. Darüber hinaus kann ein Bewegungsvektor-Bestimmungsmittel mit geringerer Schaltungskomplexität realisiert werden, das für eine integrierte Schaltung geeignet ist, weil die Erzeugung der Prioritätsreihenfolge einfach aus der Inkrementierung oder Dekrementierung um einen Einheitswert realisiert werden kann.
- 15) Die Anzahl der Zugriffe auf den Bildspeicher zur Erfassung eines Bewegungsvektors mit Interpolationsvorhersage wird vermindert, und die Erfassung eines Bewegungsvektors mit Interpolationsvorhersage kann mit hoher Geschwindigkeit ausgeführt werden.
- 16) Weil der Pufferspeicher zur Erfassung eines Bewegungsvektors mit höherer Genauigkeit für unidirektionale Vorhersage zur Erfassung eines Bewegungsvektors mit höherer Genauigkeit für Interpolationsvorhersage verwendet wird, wird die Komplexität der Vorrichtung kaum vergrößert.
- 17) Weil alle erforderlichen Daten von der Bewegungsvektor- Erfassungseinheit für unidirektionale Vorhersage zur Bewegungsvektor-Erfassungseinheit für Interpolationsvorhersage übertragen werden, kann der Prozeß nach Art einer Pipeline ausgeführt werden, um ein schnelle Verarbeitung zu ermöglichen.
Claims (44)
1. Mittel zum Erfassen eines Bewegungsvektors nach einem Block-
Matching-Prozeß für ein gegenwärtiges und eine Referenzbild,
gekennzeichnet, durch
eine Mehrzahl von Verarbeitungselementen (PE; 411a-411w), die jeweils ein erstes Speichermittel (25; 75; 505a, 505b; 414a-414w) zum Speichern der Pixeldaten eines Blockes des gegenwärtigen Bildes, ein zweites Speichermittel (26; 73; 505c; 413a-413w) zum Speichern der Pixeldaten eines Blockes in einem Suchbereich, der zum Block im Referenzbild gehört, und ein Rechenmittel (64; 511; 412a-412w) zum Ausführen einer vorbestimmten Berechnung mit den Daten, die im ersten und im zweiten Speichermittel gespeichert sind, aufweisen, wobei die zweiten Speichermittel in Reihe geschaltet sind, um Daten in nur einer Richtung zu übertragen;
ein Kennungswert-Erzeugungsmittel (12; 417; 560), das von den Ausgaben des Rechenmittels in den Verarbeitungselementen abhängig ist, zum Erzeugen eines Kennungswertes, der die Korrelation zwischen dem gegenwärtigen Bildblock und dem Referenzbildblock angibt, und ein Bestimmungsmittel (3; 132; 562, 564), das vom Kennungswert vom Kennungswert-Erzeugungsmittel abhängig ist, zum Bestimmen eines Bewegungsvektors für den gegenwärtigen Bildblock.
eine Mehrzahl von Verarbeitungselementen (PE; 411a-411w), die jeweils ein erstes Speichermittel (25; 75; 505a, 505b; 414a-414w) zum Speichern der Pixeldaten eines Blockes des gegenwärtigen Bildes, ein zweites Speichermittel (26; 73; 505c; 413a-413w) zum Speichern der Pixeldaten eines Blockes in einem Suchbereich, der zum Block im Referenzbild gehört, und ein Rechenmittel (64; 511; 412a-412w) zum Ausführen einer vorbestimmten Berechnung mit den Daten, die im ersten und im zweiten Speichermittel gespeichert sind, aufweisen, wobei die zweiten Speichermittel in Reihe geschaltet sind, um Daten in nur einer Richtung zu übertragen;
ein Kennungswert-Erzeugungsmittel (12; 417; 560), das von den Ausgaben des Rechenmittels in den Verarbeitungselementen abhängig ist, zum Erzeugen eines Kennungswertes, der die Korrelation zwischen dem gegenwärtigen Bildblock und dem Referenzbildblock angibt, und ein Bestimmungsmittel (3; 132; 562, 564), das vom Kennungswert vom Kennungswert-Erzeugungsmittel abhängig ist, zum Bestimmen eines Bewegungsvektors für den gegenwärtigen Bildblock.
2. Mittel nach Anspruch 1,
gekennzeichnet durch
ein zusätzliches Verarbeitungsmittel (599; 584, 586; 250; 1005), das zum Empfangen von mindestens den Referenzbilddaten oder den gegenwärtigen Bilddaten von den Verarbeitungselementen geschaltet ist, um einen anderen Bewegungsvektors für den Block des gegenwärtigen Bildes zu berechnen,
wobei das Bestimmungsmittel einen Bewegungsvektor mit ganzzahliger Genauigkeit und der andere Bewegungsvektor einen Bewegungsvektor mit gebrochener Genauigkeit liefert.
gekennzeichnet durch
ein zusätzliches Verarbeitungsmittel (599; 584, 586; 250; 1005), das zum Empfangen von mindestens den Referenzbilddaten oder den gegenwärtigen Bilddaten von den Verarbeitungselementen geschaltet ist, um einen anderen Bewegungsvektors für den Block des gegenwärtigen Bildes zu berechnen,
wobei das Bestimmungsmittel einen Bewegungsvektor mit ganzzahliger Genauigkeit und der andere Bewegungsvektor einen Bewegungsvektor mit gebrochener Genauigkeit liefert.
3. Mittel nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß
das erste Speichermittel ein Mittel (25-1 bis 25-M; 75) zum
Speichern von M-Pixel-Daten entsprechend M verschiedenen Pixeln im
Block des gegenwärtigen Bildes aufweist, und das zweite
Speichermittel ein Mittel (26-1 bis 26-N; 73) zum Speichern von N-
Pixel-Daten entsprechend N verschiedenen Pixeln im Block des
Referenzbildes aufweist, wobei M und N jeweils ganze Zahlen sind und
N größer oder gleich M ist.
4. Mittel nach Anspruch 3, dadurch gekennzeichnet, daß
jedes Verarbeitungselement ferner ein Auswahlmittel (60, 62) zum
Auswählen eines Pixelwertes aus dem ersten Speichermittel und eines
entsprechenden Pixelwertes aus dem zweiten Speichermittel aufweist,
um den ausgewählten Pixelwert dem Berechnungsmittel zuzuführen.
5. Mittel nach Anspruch 4, dadurch gekennzeichnet, daß
M gleich N ist, und das Auswahlmittel (60, 62) alle Pixelwerte im
ersten Speichermittel (25-1, 25-2) mit einer ersten Rate auswählt,
die M-mal schneller als die Rate ist, mit der ein Pixelwert des
Referenzbildes durch die Verarbeitungselemente übertragen wird.
6. Mittel nach Anspruch 5, dadurch gekennzeichnet, daß
das Rechenmittel (64) mit der ersten Rate arbeitet.
7. Mittel nach Anspruch 5, dadurch gekennzeichnet, daß
das Rechenmittel (64) mit einer zweiten Rate arbeitet, die geringer
als die erste Rate ist, wobei die erste Rate ein ganzzahliges
Vielfaches der zweiten Rate ist.
8. Mittel nach Anspruch 4, dadurch gekennzeichnet, daß
N größer als M ist, und das Auswahlmittel (60, 62) alle Pixelwerte
im ersten Speichermittel (25-1, 25-2) auswählt, und das Rechenmittel
die vorbestimmte Berechnung synchron zum Auswahlmittel ausführt.
9. Mittel nach Anspruch 3, dadurch gekennzeichnet, daß
das Verarbeitungsmittel (PE) ferner ein Mittel (60, 62; 60) zum
Ausführen eines Subsampling mit den Ausgaben des Berechnungsmittels
aufweist.
10. Mittel nach Anspruch 3, dadurch gekennzeichnet, daß
M gleich 1 und N gleich 2 ist, und das Rechenmittel (64) mit
derselben Rate rechnet wie die Rate, mit der ein Pixelwert des
Referenzbildes durch die Verarbeitungselemente übertragen wird.
11. Mittel nach einem der Ansprüche 1 bis 10, dadurch
gekennzeichnet, daß das Rechenmittel (64)
ein Subtraktionsmittel (70) zum Ausführen einer Subtraktion eines
gespeicherten Pixelwertes des Blocks des gegenwärtigen Bildes und
eines gespeicherten Pixelwertes des Suchbereichblocks, um ein
Vorzeichenbit, das das Vorzeichen des Subtraktionsergebnisses
anzeigt, und Magnitudenbits, die die Größe des
Subtraktionsergebnisses anzeigen, zu erzeugen, und
ein Gattermittel (72) zum Ausführen einer Modulo-2-Addition des
Vorzeichenbits und des jeweiligen Magnitudenbits, um eine absolute
Differenz der Subtraktion zu erzeugen, aufweist.
12. Mittel nach Anspruch 11, dadurch gekennzeichnet, daß
das Kennungswert-Erzeugungsmittel (12) ein Summierungsmittel (12)
zum Ermitteln einer Summe der Ausgaben der Rechenmittel (64)
aufweist, und das Summierungsmittel eine Mehrzahl von Stufen von
Volladdierern (104) aufweist, die in Form eines Baumes geschaltet
sind, so daß die Ausgabe eines Volladdieres in einer Stufe dem
Eingang eines Volladdierers in einer nachfolgenden Stufe zugeführt
wird, und das Vorzeichenbit vom Subtraktionsmittel dem
Übertrageingang des Volladdierers des niederwertigsten Bits in der
jeweiligen Stufe zugeführt wird.
13. Mittel nach Anspruch 3, dadurch gekennzeichnet, daß
der Block des gegenwärtigen Bildes Pixel aufweist, die in Q Zeilen
und P Spalten angeordnet sind, wobei P und Q jeweils ganze Zahlen
sind, und die Verarbeitungselemente in P linearen Feldern (LA)
entsprechend den P Spalten angeordnet sind, wobei jedes lineare Feld
Q/M kaskadierte Verarbeitungselemente und ein drittes Speichermittel
(DL) zum Speichern von R verschiedenen Werten im Suchbereich, der
den Block des Referenzbildes enthält, aufweist, und die Summe von R
und Q gleich der Anzahl der Pixel ist, die in einer Spalte des
Suchbereichs angeordnet sind.
14. Mittel nach Anspruch 13, dadurch gekennzeichnet, daß
jedes dritte Speichermittel (DL) ein Mittel zum Empfangen eines
Suchbereichwertes über ein Verarbeitungselement in einer vorherigen
Spalte und zum Übertragen eines Wertes des Suchbereichs an ein
Verarbeitungselement in einer entsprechenden Spalte aufweist.
15. Mittel nach Anspruch 13 oder 14, dadurch gekennzeichnet, daß
das Verarbeitungselement (PE) zum Übertragen von Daten des Blocks
des gegenwärtigen Bildes und von Daten des Blocks des Referenzbildes
in orthogonalen Richtungen betreibbar ist.
16. Mittel nach Anspruch 13 oder 14, dadurch gekennzeichnet, daß
das Verarbeitungselement (PE) zum Übertragen von Daten des Blocks
des gegenwärtigen Bildes und von Daten des Blocks des Referenzbildes
in derselben Richtung und zum Übertragen der Daten des Blocks des
gegenwärtigen Bildes an ein Verarbeitungselement in einer
benachbarten Spalte durch keines der dritten Speichermittel
betreibbar ist.
17. Mittel nach Anspruch 3, dadurch gekennzeichnet, daß
das Rechenmittel (64) so betreibbar ist, daß es die Berechnung mit
einer ersten Rate ausführen kann, die N-mal höher als die Rate ist,
mit der die Referenzbild-Blockdaten übertragen werden.
18. Mittel nach Anspruch 3, dadurch gekennzeichnet, daß
das Rechenmittel (64) so betreibbar ist, daß es die Berechnung mit
einer ersten Rate ausführen kann, die M-mal höher als die Rate ist,
mit der die Referenzbild-Blockdaten übertragen werden.
19. Mittel nach Anspruch 17 oder 18, dadurch gekennzeichnet, daß
das Verarbeitungselement (PE) ein Auswahlmittel (60, 62) zum
sequentiellen Auswählen eines Datensatzes im ersten Speichermittel
und eines Wertes im zweiten Speichermittel mit einer ersten Rate
aufweist.
20. Mittel nach Anspruch 1, dadurch gekennzeichnet, daß
das erste Speichermittel verschiedene Pixeldaten des gegenwärtigen
Bildblockes speichert und jedes der zweiten Speichermittel
verschiedene Pixeldaten des Referenzbildblockes speichert, und wobei
jedes Verarbeitungselement (PE) ferner ein Schiebemittel (SR)
aufweist zum Übertragen eines Pixelwertes vom zweiten
Speichermittel, während der Pixelwert im ersten Speichermittel
beibehalten wird, um jeweils den Kennungswert zu erzeugen.
21. Mittel nach Anspruch 1, dadurch gekennzeichnet, daß
das erste Speichermittel ein erstes Speicherelement (505a) zum
Speichern eines ersten Musterblockwertes im gegenwärtigen Bildblock
und ein zweites Speicherelement (505b) zum Speichern eines zweiten
Musterblockwertes im gegenwärtigen Bildblock aufweist, und
jedes Verarbeitungselement (PE) ferner ein Auswahlmittel (506)
aufweist zum alternativen Auswählen des ersten Musterblockwertes und
des zweiten Musterblockwertes zur Übertragung zum Rechenmittel, so
daß das Rechenmittel die vorbestimmte Berechnung sowohl mit dem Wert
des ersten Musterblocks und dem Referenzbild-Blockwert als auch dem
Wert des zweiten Musterblocks und dem Referenzbild-Blockwert
ausführt.
22. Mittel nach Anspruch 1, dadurch gekennzeichnet, daß
das Bestimmungsmittel (3)
ein erstes Registermittel (614) zum Speichern eines minimalen Kennungswertes,
ein Vergleichsmittel (613) zum Vergleichen eines gegenwärtigen Kennungswertes vom Kennungswert-Erzeugungsmittel (12) mit dem minimalen Kennungswert,
ein Erzeugungsmittel (711) zum Erzeugen eines Verschiebungsvektors, der die Verschiebung zwischen dem ersten Block und dem zweiten Block in Vektornotation mit einer horizontalen und einer vertikalen Komponente angibt,
ein zweites Registermittel (710) zum Speichern eines Verschiebungsvektors als Kandidaten für den Bewegungsvektor,
ein vom Vergleichsmittel, das erfaßt hat, daß ein gegenwärtiger Kennungswert gleich dem minimalen Kennungswert ist, abhängiges Prioritätsmittel (615) zum Bestimmen, welcher der beiden Kennungswerte die höhere Priorität besitzt, wobei das Prioritätsmittel ein Mittel (626, 627, 632) umfaßt zum Bestimmen, daß ein Kennungswert mit einem zugehörigen Verschiebungsvektor ein höhere Priorität besitzt, falls die Summe der Absolutwerte der horizontalen und vertikalen Komponenten kleiner ist, und
ein Aktualisierungsmittel (616), das vom Vergleichsmittel abhängig ist, zum Ersetzen des minimalen Kennungswertes durch den gegenwärtigen Kennungswert und zum Ersetzen des Inhaltes des zweiten Registermittels durch die Ausgabe des Erzeugungsmittels aufweist.
ein erstes Registermittel (614) zum Speichern eines minimalen Kennungswertes,
ein Vergleichsmittel (613) zum Vergleichen eines gegenwärtigen Kennungswertes vom Kennungswert-Erzeugungsmittel (12) mit dem minimalen Kennungswert,
ein Erzeugungsmittel (711) zum Erzeugen eines Verschiebungsvektors, der die Verschiebung zwischen dem ersten Block und dem zweiten Block in Vektornotation mit einer horizontalen und einer vertikalen Komponente angibt,
ein zweites Registermittel (710) zum Speichern eines Verschiebungsvektors als Kandidaten für den Bewegungsvektor,
ein vom Vergleichsmittel, das erfaßt hat, daß ein gegenwärtiger Kennungswert gleich dem minimalen Kennungswert ist, abhängiges Prioritätsmittel (615) zum Bestimmen, welcher der beiden Kennungswerte die höhere Priorität besitzt, wobei das Prioritätsmittel ein Mittel (626, 627, 632) umfaßt zum Bestimmen, daß ein Kennungswert mit einem zugehörigen Verschiebungsvektor ein höhere Priorität besitzt, falls die Summe der Absolutwerte der horizontalen und vertikalen Komponenten kleiner ist, und
ein Aktualisierungsmittel (616), das vom Vergleichsmittel abhängig ist, zum Ersetzen des minimalen Kennungswertes durch den gegenwärtigen Kennungswert und zum Ersetzen des Inhaltes des zweiten Registermittels durch die Ausgabe des Erzeugungsmittels aufweist.
23. Mittel nach Anspruch 22, dadurch gekennzeichnet, daß
das Prioritätsmittel (615)
ein drittes Registermittel (624) zum Speichern eines Prioritätswertes für den gegenwärtigen Kennungswert,
ein Prioritätsaktualisierungsmittel (625) zum Ersetzen des Prioritätswertes im dritten Registermittel durch einen vorbestimmten Wert für jede Erzeugung eines Verschiebungsvektors,
ein viertes Registermittel (627) zum Speichern eines Prioritätswertes, der zum minimalen Kennungswert im ersten Registermittel gehört, und
ein Vergleichsmittel (626) zum Vergleichen des Prioritätswertes im dritten Registermittel und des Prioritätswertes im vierten Registermittel, aufweist,
wobei das Aktualisierungsmittel (616) den Wert im vierten Registermittel in Abhängigkeit vom Vergleichsmittel durch den Wert im dritten Registermittel ersetzt.
ein drittes Registermittel (624) zum Speichern eines Prioritätswertes für den gegenwärtigen Kennungswert,
ein Prioritätsaktualisierungsmittel (625) zum Ersetzen des Prioritätswertes im dritten Registermittel durch einen vorbestimmten Wert für jede Erzeugung eines Verschiebungsvektors,
ein viertes Registermittel (627) zum Speichern eines Prioritätswertes, der zum minimalen Kennungswert im ersten Registermittel gehört, und
ein Vergleichsmittel (626) zum Vergleichen des Prioritätswertes im dritten Registermittel und des Prioritätswertes im vierten Registermittel, aufweist,
wobei das Aktualisierungsmittel (616) den Wert im vierten Registermittel in Abhängigkeit vom Vergleichsmittel durch den Wert im dritten Registermittel ersetzt.
24. Mittel nach Anspruch 1, dadurch gekennzeichnet, daß
die Verarbeitungselemente in einem Feld (10) angeordnet sind, und
das Feld mit jeder Erzeugung eines Kennungswertes einen
Referenzbild-Blockwert und auch den Blockwert des gegenwärtigen
Bildes ausschiebt, und wobei das Mittel ferner
ein Pufferspeichermittel (260, 270; 282), das vom Bestimmungsmittel
abhängig ist, zum Speichern der Daten eines Blockes des
Referenzbildes, die zum bestimmten Bewegungsvektor gehören, und
ein zusätzliches Verarbeitungsmittel (250), das die Bildblockdaten
des gegenwärtigen Bildes vom Feld und die Daten vom
Pufferspeichermittel empfängt, um einen Block-Matching-Prozeß
auszuführen und einen anderen Bewegungsvektor mit einer anderen
Genauigkeit zu bestimmen, aufweist.
25. Mittel nach Anspruch 24, gekennzeichnet durch
einen weiteren Pufferspeicher (28), der zwischen dem Feld und dem
zusätzlichen Verarbeitungsmittel zum Speichern der Daten des
gegenwärtigen Bildblockes gebildet ist.
26. Mittel nach Anspruch 24, dadurch gekennzeichnet, daß
der Pufferspeicher (260, 270; 282) einen Suchblock, der einen
Referenzbildblock enthält, der zum Bewegungsvektor gehört, und seine
Randpixeldaten speichert, und wobei das zusätzliche
Verarbeitungsmittel (250) einen Bewegungsvektor mit gebrochener
Genauigkeit und das Bestimmungsmittel (3) einen Bewegungsvektor mit
ganzzahliger Genauigkeit ermittelt.
27. Mittel nach Anspruch 1, dadurch gekennzeichnet, daß
die Mehrzahl von Verarbeitungselementen (PE), das Kennungswert- Erzeugungsmittel und das Bestimmungsmittel eine erste Verarbeitungsstruktur zum Empfangen von Daten eines ersten Referenzbildes bilden, und wobei das Mittel ferner eine zweite Verarbeitungsstruktur (1003, 1004; 1150, 1160) mit derselben Struktur wie die erste Verarbeitungsstruktur zum Empfangen von Daten eines zweiten Referenzbildes, wobei die erste und die zweite Verarbeitungsstruktur dieselben Blockdaten des gegenwärtigen Bildes empfangen,
ein erstes Speichermittel (1013; 1152), das Daten eines Blockes des ersten Referenzbildes, das zum ersten Bewegungsvektor gehört, der von der ersten Verarbeitungsstruktur bestimmt wird, empfängt und speichert,
ein zweites Speichermittel (1014; 1162), das Daten eines Blockes des zweiten Referenzbildes von der zweiten Verarbeitungsstruktur empfängt und speichert,
ein Interpolationsmittel (1005; 1170) zum Empfangen von Daten vom ersten und zweiten Speichermittel zum Erzeugen von Daten eines dritten Referenzbildblockes durch Interpolation der empfangenen Daten,
ein Bewegungsvektor-Bestimmungsmittel (1022), das von den Blockdaten des gegenwärtigen Bildes und den dritten Referenzbild-Blockdaten abhängig ist, zum Erzeugen eines zweiten Kennungswertes, das die Korrelation zwischen dem Block des gegenwärtigen Bildes und dem Block des dritten Referenzbildes angibt, und
ein Entscheidungsmittel (1024), das von den Kennungswerte, die zu den Bewegungsvektoren gehören und von der ersten und zweiten Struktur empfangen werden, und dem zweiten Kennungswert vom Bewegungsvektor-Bestimmungsmittel abhängig ist, zum Erzeugen eines endgültigen Bewegungsvektors aufweist.
die Mehrzahl von Verarbeitungselementen (PE), das Kennungswert- Erzeugungsmittel und das Bestimmungsmittel eine erste Verarbeitungsstruktur zum Empfangen von Daten eines ersten Referenzbildes bilden, und wobei das Mittel ferner eine zweite Verarbeitungsstruktur (1003, 1004; 1150, 1160) mit derselben Struktur wie die erste Verarbeitungsstruktur zum Empfangen von Daten eines zweiten Referenzbildes, wobei die erste und die zweite Verarbeitungsstruktur dieselben Blockdaten des gegenwärtigen Bildes empfangen,
ein erstes Speichermittel (1013; 1152), das Daten eines Blockes des ersten Referenzbildes, das zum ersten Bewegungsvektor gehört, der von der ersten Verarbeitungsstruktur bestimmt wird, empfängt und speichert,
ein zweites Speichermittel (1014; 1162), das Daten eines Blockes des zweiten Referenzbildes von der zweiten Verarbeitungsstruktur empfängt und speichert,
ein Interpolationsmittel (1005; 1170) zum Empfangen von Daten vom ersten und zweiten Speichermittel zum Erzeugen von Daten eines dritten Referenzbildblockes durch Interpolation der empfangenen Daten,
ein Bewegungsvektor-Bestimmungsmittel (1022), das von den Blockdaten des gegenwärtigen Bildes und den dritten Referenzbild-Blockdaten abhängig ist, zum Erzeugen eines zweiten Kennungswertes, das die Korrelation zwischen dem Block des gegenwärtigen Bildes und dem Block des dritten Referenzbildes angibt, und
ein Entscheidungsmittel (1024), das von den Kennungswerte, die zu den Bewegungsvektoren gehören und von der ersten und zweiten Struktur empfangen werden, und dem zweiten Kennungswert vom Bewegungsvektor-Bestimmungsmittel abhängig ist, zum Erzeugen eines endgültigen Bewegungsvektors aufweist.
28. Mittel nach Anspruch 27, dadurch gekennzeichnet, daß
das Entscheidungsmittel (1024) ein Mittel (1035, 1036) zum Ermitteln
des minimalen Wertes unter den Kennungswerten und dem zweiten
Kennungswert und zum Auswählen eines Bewegungsvektors entsprechend
dem minimalen Wert als endgültigem Bewegungsvektor.
29. Mittel nach Anspruch 27, dadurch gekennzeichnet, daß
das Bewegungsvektor-Bestimmungsmittel (1024) ein Mittel zum
Bestimmen des Bewegungsvektors des gegenwärtigen Bildblockes für den
dritten Referenzbildblock über einen Block-Matching-Prozeß aufweist.
30. Mittel nach Anspruch 27, dadurch gekennzeichnet, daß
das Bewegungsvektor-Bestimmungsmittel (1024) die Blockdaten des
gegenwärtigen Bildes über eine der ersten und zweiten
Verarbeitungsstrukturen empfängt.
31. Mittel nach Anspruch 27, gekennzeichnet durch
ein drittes Verarbeitungsmittel (1153), das die Blockdaten des
gegenwärtigen Bildes von der ersten Verarbeitungsstruktur (1151) und
Daten eines ersten Referenzbildes vom ersten Speichermittel (1152)
empfängt, zum Bestimmen eines Bewegungsvektors und eines
Kennungswertes des gegenwärtigen Bildblockes für das erste
Referenzbild, um die erhaltenen Bewegungsvektordaten und den
Kennungswert dem Entscheidungsmittel (1170; 1024) zuzuführen, und
ein viertes Verarbeitungsmittel (1123), das die gegenwärtigen
Bilddaten von der zweiten Verarbeitungsstruktur (1161) und die
zweiten Referenzbilddaten vom zweiten Speichermittel (1163)
empfängt, zum Bestimmen eines Bewegungsvektors und eines
Kennungswertes des gegenwärtigen Bildblockes für das zweite
Referenzbild, um die erhaltenen Bewegungsvektordaten und den
Kennungswert dem Entscheidungsmittel zuzuführen.
32. Mittel zum Bestimmen eines Bewegungsvektors für einen
Musterblock mit Pixeln aus Q Zeilen und P Spalten in einem
gegenwärtigen Bild über einen Block-Matching-Prozeß in einem
Suchbereich mit vorbestimmter Größe eines Referenzbildes, wobei der
Suchbereich ein Suchfenster aufweist, das dieselbe Breite wie der
Musterblock besitzt, und P und Q ganze Zahlen sind,
gekennzeichnet durch
lineare Felder (LA), die in P Spalten angeordnet sind, wobei jedes lineare Feld
Q/M kaskadierte Verarbeitungselemente (PE), die jeweils einen ersten Datenspeicher (25; 75) zum Speichern von M verschiedenen Pixelwerten des Musterblocks, einen zweiten Datenspeicher (26; 73) zum Speichern von N verschiedenen Pixelwerten des Suchfensters und ein
Rechenmittel (64) zum Ausführen einer vorbestimmten Berechnung mit den Daten, die im ersten und zweiten Speicher gespeichert sind, wobei N und M ganze Zahlen sind und N ein ganzzahliges Vielfaches von M ist, und
ein drittes Speichermittel (DL) zum Speichern von R verschiedenen Werten des Suchbereichs, wobei die Summe von R und Q gleich der Anzahl der Pixel ist, die in einer Spalte des Suchbereichs angeordnet sind, aufweist.
lineare Felder (LA), die in P Spalten angeordnet sind, wobei jedes lineare Feld
Q/M kaskadierte Verarbeitungselemente (PE), die jeweils einen ersten Datenspeicher (25; 75) zum Speichern von M verschiedenen Pixelwerten des Musterblocks, einen zweiten Datenspeicher (26; 73) zum Speichern von N verschiedenen Pixelwerten des Suchfensters und ein
Rechenmittel (64) zum Ausführen einer vorbestimmten Berechnung mit den Daten, die im ersten und zweiten Speicher gespeichert sind, wobei N und M ganze Zahlen sind und N ein ganzzahliges Vielfaches von M ist, und
ein drittes Speichermittel (DL) zum Speichern von R verschiedenen Werten des Suchbereichs, wobei die Summe von R und Q gleich der Anzahl der Pixel ist, die in einer Spalte des Suchbereichs angeordnet sind, aufweist.
33. Mittel nach Anspruch 32, dadurch gekennzeichnet, daß
die linearen Felder (LA) in Reihe geschaltet sind, um Daten des
Musterblockes über den ersten Speicher (25; 75) zu übertragen und
Daten des Suchbereiches über den zweiten Speicher (26; 73) und den
dritten Speicher (DL) zu übertragen.
34. Mittel zum Bestimmen eines Bewegungsvektors, der in einer
Vorhersagecodierung mit Bewegungskompensation verwendet wird, über
einen Block-Matching-Prozeß des gegenwärtigen Bildes mit einem
Referenzbild, gekennzeichnet durch
einen ersten Speicher (505a) zum Speichern von Pixeldaten eines ersten Musterblocks im gegenwärtigen Bild,
einen zweiten Speicher (505b) zum Speichern von Pixeldaten eines zweiten Musterblocks im gegenwärtigen Bild,
einen dritten Speicher (505c) zum Speichern von Pixeldaten eines Suchfensterblocks im Referenzbild, das zum ersten und zweiten Musterblock gehört,
ein Kennungswert-Erzeugungsmittel (507, 12) zum Ausführen einer vorbestimmten Berechnung mit sowohl den Pixeldaten des ersten Speichers und den Pixeldaten des dritten Speichers als auch den Pixeldaten des zweiten Speichers und den Pixeldaten des dritten Speichers, um Kennungswerte zu erzeugen, die die Korrelationsbeziehungen zwischen dem ersten Musterblock und dem Suchfensterblock sowie zwischen dem zweiten Musterblock und dem Suchfensterblock angeben, und
ein Mittel (3), das vom Kennungswert-Erzeugungsmittel abhängig ist, zum Ausführen eines Erfassungsvorganges zum parallelen Bestimmen von Bewegungsvektoren für den ersten und zweiten Musterblock.
einen ersten Speicher (505a) zum Speichern von Pixeldaten eines ersten Musterblocks im gegenwärtigen Bild,
einen zweiten Speicher (505b) zum Speichern von Pixeldaten eines zweiten Musterblocks im gegenwärtigen Bild,
einen dritten Speicher (505c) zum Speichern von Pixeldaten eines Suchfensterblocks im Referenzbild, das zum ersten und zweiten Musterblock gehört,
ein Kennungswert-Erzeugungsmittel (507, 12) zum Ausführen einer vorbestimmten Berechnung mit sowohl den Pixeldaten des ersten Speichers und den Pixeldaten des dritten Speichers als auch den Pixeldaten des zweiten Speichers und den Pixeldaten des dritten Speichers, um Kennungswerte zu erzeugen, die die Korrelationsbeziehungen zwischen dem ersten Musterblock und dem Suchfensterblock sowie zwischen dem zweiten Musterblock und dem Suchfensterblock angeben, und
ein Mittel (3), das vom Kennungswert-Erzeugungsmittel abhängig ist, zum Ausführen eines Erfassungsvorganges zum parallelen Bestimmen von Bewegungsvektoren für den ersten und zweiten Musterblock.
35. Mittel nach Anspruch 34, dadurch gekennzeichnet, daß der erste
und zweite Musterblock im gegenwärtigen Bild benachbart zueinander
sind.
36. Mittel zum Bestimmen eines Bewegungsvektors, der in einer
Vorhersagecodierung mit Bewegungskompensation verwendet wird, über
einen Block-Matching-Prozeß der Daten eine Musterblocks in einem
gegenwärtigen Bild und dem Suchbereich in einem Referenzbild, wobei
der Suchbereich ein Suchfenster aufweist, gekennzeichnet durch
ein Prozessorfeld (10) mit einer Mehrzahl von Verarbeitungselementen (PE), die jeweils Pixeldaten des Musterblocks und Pixeldaten des Suchfensters speichern und eine vorbestimmte Berechnung mit den Musterblock-Pixeldaten und den Suchfenster-Pixeldaten ausführen, wobei jedes Verarbeitungselement so betreibbar ist, daß es Daten in unidirektionaler Weise verschiebt,
ein erstes Mittel (3), das von den Ausgaben der Verarbeitungselemente abhängig ist, zum Erfassen eines Bewegungsvektors mit ganzzahliger Genauigkeit für einen Musterblock, und
eine Verarbeitungseinheit (25), die mindestens den Musterblockwert oder das Suchfenster vom Prozessorfeld empfängt, um für den Musterblock einen Bewegungsvektor mit gebrochener Genauigkeit zu bestimmen.
ein Prozessorfeld (10) mit einer Mehrzahl von Verarbeitungselementen (PE), die jeweils Pixeldaten des Musterblocks und Pixeldaten des Suchfensters speichern und eine vorbestimmte Berechnung mit den Musterblock-Pixeldaten und den Suchfenster-Pixeldaten ausführen, wobei jedes Verarbeitungselement so betreibbar ist, daß es Daten in unidirektionaler Weise verschiebt,
ein erstes Mittel (3), das von den Ausgaben der Verarbeitungselemente abhängig ist, zum Erfassen eines Bewegungsvektors mit ganzzahliger Genauigkeit für einen Musterblock, und
eine Verarbeitungseinheit (25), die mindestens den Musterblockwert oder das Suchfenster vom Prozessorfeld empfängt, um für den Musterblock einen Bewegungsvektor mit gebrochener Genauigkeit zu bestimmen.
37. Mittel zum Bestimmen eines Bewegungsvektors, der in einer
Vorhersagecodierung mit Bewegungskompensation verwendet wird, über
einen Block-Matching-Prozeß des gegenwärtigen Bildes und eines
Referenzbildes, gekennzeichnet durch
ein Suchmittel (1, 613, 614) zum Suchen des minimalen Wertes einer Kennungsfunktion für einen Verschiebungsvektor, die als Indikator zum Suchen des Bewegungsvektors im Block-Matching-Prozeß verwendet wird,
ein Erfassungsmittel (615), das vom Suchmittel abhängig ist und erfaßt, daß mehrere Kennungsfunktionen denselben minimalen Wert liefern, um einer Kennungsfunktion höchste Priorität zu geben, die zu einem Verschiebungsvektor gehört, für den die Summe der Absolutwerte der horizontalen und vertikalen Komponenten am kleinsten ist, und
ein Mittel (616, 710), das vom Suchmittel und dem Erfassungsmittel abhängig ist, zum Erfassen des Bewegungsvektors unter den Verschiebungsvektoren, wobei der Bewegungsvektor zu der Kennungsfunktion gehört, die den minimalen Wert liefert oder die den minimalen Wert und die höchste Priorität liefert.
ein Suchmittel (1, 613, 614) zum Suchen des minimalen Wertes einer Kennungsfunktion für einen Verschiebungsvektor, die als Indikator zum Suchen des Bewegungsvektors im Block-Matching-Prozeß verwendet wird,
ein Erfassungsmittel (615), das vom Suchmittel abhängig ist und erfaßt, daß mehrere Kennungsfunktionen denselben minimalen Wert liefern, um einer Kennungsfunktion höchste Priorität zu geben, die zu einem Verschiebungsvektor gehört, für den die Summe der Absolutwerte der horizontalen und vertikalen Komponenten am kleinsten ist, und
ein Mittel (616, 710), das vom Suchmittel und dem Erfassungsmittel abhängig ist, zum Erfassen des Bewegungsvektors unter den Verschiebungsvektoren, wobei der Bewegungsvektor zu der Kennungsfunktion gehört, die den minimalen Wert liefert oder die den minimalen Wert und die höchste Priorität liefert.
38. Mittel zum Bestimmen eines Bewegungsvektors über einen Block-
Matching-Prozeß des gegenwärtigen Bildes und eines Referenzbildes,
gekennzeichnet durch
einen ersten Speicher (25; 75), der für jedes Pixel eines Musterblockes des gegenwärtigen Bildes gebildet ist, zum Speichern entsprechender Pixeldaten,
einen zweiten Speicher (26; 73), der für jedes Pixel eines Suchfensterblockes eines Suchbereichs des Referenzbildes gebildet ist, zum Speichern entsprechender Pixeldaten,
ein Kennungsmittel (64, 12) zum Ausführen einer vorbestimmten Berechnung mit Daten des ersten Speichers und Daten des zweiten Speichers, um einen Kennungswert zu erzeugen, der die Korrelationsbeziehung zwischen dem Musterblock und dem Suchfensterblock angibt, und
ein Erfassungsmittel (3), das vom Rechenmittel abhängig ist, zum Erfassen eines Bewegungsvektors für den Musterblock,
wobei das Kennungsmittel so betreibbar ist, daß es die Berechnung für jede Verschiebung der Daten um ein Pixel über den zweiten Speicher ausführen kann, während der Wert im ersten Speicher beibehalten wird.
einen ersten Speicher (25; 75), der für jedes Pixel eines Musterblockes des gegenwärtigen Bildes gebildet ist, zum Speichern entsprechender Pixeldaten,
einen zweiten Speicher (26; 73), der für jedes Pixel eines Suchfensterblockes eines Suchbereichs des Referenzbildes gebildet ist, zum Speichern entsprechender Pixeldaten,
ein Kennungsmittel (64, 12) zum Ausführen einer vorbestimmten Berechnung mit Daten des ersten Speichers und Daten des zweiten Speichers, um einen Kennungswert zu erzeugen, der die Korrelationsbeziehung zwischen dem Musterblock und dem Suchfensterblock angibt, und
ein Erfassungsmittel (3), das vom Rechenmittel abhängig ist, zum Erfassen eines Bewegungsvektors für den Musterblock,
wobei das Kennungsmittel so betreibbar ist, daß es die Berechnung für jede Verschiebung der Daten um ein Pixel über den zweiten Speicher ausführen kann, während der Wert im ersten Speicher beibehalten wird.
39. Mittel nach Anspruch 38, dadurch gekennzeichnet, daß
das Kennungsmittel (64, 12) ein Rechenmittel (64), das für eine
erste Mehrzahl von Pixeln des Musterblocks und für eine zweite
Mehrzahl von Pixeln des Suchfensterblocks gebildet ist, zum
Ausführen der vorbestimmten Berechnung, und ein Auswahlmittel (60,
62), das entsprechend dem Rechenmittel gebildet ist, zum Auswählen
von Daten des ersten und zweiten Speichers, um sie dem
entsprechenden Rechenmittel zuzuführen, aufweist.
40. Mittel zum Bestimmen eines Bewegungsvektors über einen Block-
Matching-Prozeß des gegenwärtigen Bildes und eines Referenzbildes,
gekennzeichnet durch
eine Mehrzahl von Bewegungserfassungsmitteln mit unidirektionaler Vorhersage (1011, 1012; 1151, 1161), jeweils zum Erfassen eines Bewegungsvektors eines Musterblocks im gegenwärtigen Bild entsprechend einem Kennungswert, der über den Block-Matching-Prozeß des Musterblocks und eines Suchbereichs im Referenzbild erhalten wird, wobei jedes der Bewegungserfassungsmittel mit unidirektionaler Vorhersage Daten von verschiedenen Referenzbildern von anderen Mitteln empfängt,
eine Mehrzahl von Pufferspeichern (1013, 1014; 1152, 1162), die entsprechend jedem der Bewegungserfassungsmitteln mit unidirektionaler Vorhersage gebildet sind, jeweils zum Speichern von Daten eines Teilreferenzbildes, das zum Bewegungsvektor gehört, der vom entsprechenden Bewegungserfassungsmittel mit unidirektionaler Vorhersage im Referenzbild erfaßt wird,
ein Interpolationsmittel (1020) zum Empfangen und Kombinieren der Teilreferenzbilddaten von der Mehrzahl von Pufferspeichern, um Daten des interpolierten Referenzbildes zu erzeugen,
ein Erfassungsmittel für den interpolierten Bewegungsvektor (1022) zum Ausführen eines Block-Matching-Prozesses mit den Daten des Musterblocks und dem interpolierten Referenzbild, um einen Kennungswert zu erzeugen, der das Ergebnis des Block-Matching- Prozesses angibt, und
ein Bestimmungsmittel (1024), das vom Kennungswert des Erfassungsmittels für den interpolierten Bewegungsvektor und den Kennungswerten, die zu den Bewegungsvektoren vpn der Mehrzahl von Bewegungserfassungsmitteln mit unidirektionaler Vorhersage gehören, abhängig ist, zum Erzeugen eines endgültigen Bewegungsvektors aus den Bewegungsvektoren.
eine Mehrzahl von Bewegungserfassungsmitteln mit unidirektionaler Vorhersage (1011, 1012; 1151, 1161), jeweils zum Erfassen eines Bewegungsvektors eines Musterblocks im gegenwärtigen Bild entsprechend einem Kennungswert, der über den Block-Matching-Prozeß des Musterblocks und eines Suchbereichs im Referenzbild erhalten wird, wobei jedes der Bewegungserfassungsmittel mit unidirektionaler Vorhersage Daten von verschiedenen Referenzbildern von anderen Mitteln empfängt,
eine Mehrzahl von Pufferspeichern (1013, 1014; 1152, 1162), die entsprechend jedem der Bewegungserfassungsmitteln mit unidirektionaler Vorhersage gebildet sind, jeweils zum Speichern von Daten eines Teilreferenzbildes, das zum Bewegungsvektor gehört, der vom entsprechenden Bewegungserfassungsmittel mit unidirektionaler Vorhersage im Referenzbild erfaßt wird,
ein Interpolationsmittel (1020) zum Empfangen und Kombinieren der Teilreferenzbilddaten von der Mehrzahl von Pufferspeichern, um Daten des interpolierten Referenzbildes zu erzeugen,
ein Erfassungsmittel für den interpolierten Bewegungsvektor (1022) zum Ausführen eines Block-Matching-Prozesses mit den Daten des Musterblocks und dem interpolierten Referenzbild, um einen Kennungswert zu erzeugen, der das Ergebnis des Block-Matching- Prozesses angibt, und
ein Bestimmungsmittel (1024), das vom Kennungswert des Erfassungsmittels für den interpolierten Bewegungsvektor und den Kennungswerten, die zu den Bewegungsvektoren vpn der Mehrzahl von Bewegungserfassungsmitteln mit unidirektionaler Vorhersage gehören, abhängig ist, zum Erzeugen eines endgültigen Bewegungsvektors aus den Bewegungsvektoren.
41. Mittel nach Anspruch 40, gekennzeichnet durch
eine Mehrzahl von Verarbeitungsmitteln (1153, 1163), die
entsprechend der Mehrzahl von Bewegungserfassungsmitteln (1151,
1161) mit unidirektionaler Vorhersage gebildet sind, zum Ausführen
des Block-Matching-Prozesses mit Daten des Musterblocks und dem
Teilreferenzbild, das in einem entsprechenden Puffer gespeichert
ist, zum Erzeugen eines Bewegungsvektors und eines Kennungswertes,
um sie dem Bestimmungsmittel (1024) zuzuführen.
42. Mittel nach Anspruch 40, dadurch gekennzeichnet, daß
die Musterblockdaten dem Erfassungsmittel für den interpolierten
Bewegungsvektor über eines der Mehrzahl von
Bewegungserfassungsmitteln (1011, 1012) mit unidirektionaler
Vorhersage zugeführt werden.
43. Verfahren zum Bestimmen eines Bewegungsvektors über einen Block-
Matching-Prozeß mit dem gegenwärtigen Bild und einem Referenzbild,
gekennzeichnet durch die Schritte:
Speichern der Daten eines Musterblocks des gegenwärtigem Bildes in ersten Speicherelementen,
Speichern der Daten eines Suchfensterblocks des Referenzbildes in zweiten Speicherelementen,
Ausführen einer vorbestimmten Berechnung mit Daten, die in den ersten und zweiten Speicherelementen gespeichert sind, um einen Kennungswert zu erzeugen, der die Korrelationsbeziehung zwischen dem Musterblock und dem Suchfensterblock angibt,
Schieben der Daten über die zweiten Speicherelemente in unidirektionaler Weise, um Daten eines anderen Suchfensterblocks in die zweiten Speicherelemente zu laden,
Wiederholen der Schritte zum Ausführen der vorbestimmten Berechnung und Schieben der Daten, bis alle Suchfensterblöcke im Suchbereich, der zum Musterblock gehört, der Kennungswertberechnung unterworfen worden sind, und
Bestimmen eines Bewegungsvektors entsprechend den Kennungswerten.
Speichern der Daten eines Musterblocks des gegenwärtigem Bildes in ersten Speicherelementen,
Speichern der Daten eines Suchfensterblocks des Referenzbildes in zweiten Speicherelementen,
Ausführen einer vorbestimmten Berechnung mit Daten, die in den ersten und zweiten Speicherelementen gespeichert sind, um einen Kennungswert zu erzeugen, der die Korrelationsbeziehung zwischen dem Musterblock und dem Suchfensterblock angibt,
Schieben der Daten über die zweiten Speicherelemente in unidirektionaler Weise, um Daten eines anderen Suchfensterblocks in die zweiten Speicherelemente zu laden,
Wiederholen der Schritte zum Ausführen der vorbestimmten Berechnung und Schieben der Daten, bis alle Suchfensterblöcke im Suchbereich, der zum Musterblock gehört, der Kennungswertberechnung unterworfen worden sind, und
Bestimmen eines Bewegungsvektors entsprechend den Kennungswerten.
44. Verfahren nach Anspruch 43, dadurch gekennzeichnet, daß der
Schritt des Ausführens der vorbestimmten Berechnung die Schritte
sequentielles Auswählen einer Mehrzahl von Datensätzen von den
ersten und zweiten Speicherelementen, und
Ausführen der Berechnung durch Rechenmittel, die jeweils einzeln für die Mehrzahl von Datensätzen gebildet sind, wobei jedes Rechenmittel die Berechnung mit den Datensätze sequentiell ausführt, aufweist.
Ausführen der Berechnung durch Rechenmittel, die jeweils einzeln für die Mehrzahl von Datensätzen gebildet sind, wobei jedes Rechenmittel die Berechnung mit den Datensätze sequentiell ausführt, aufweist.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4178399A JPH0630399A (ja) | 1992-07-06 | 1992-07-06 | 動きベクトル検出方法および検出装置 |
JP21596692 | 1992-08-13 | ||
JP10543293A JP3084170B2 (ja) | 1992-08-13 | 1993-05-06 | 動きベクトル検出装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE4322343A1 true DE4322343A1 (de) | 1994-01-13 |
DE4322343C2 DE4322343C2 (de) | 1996-10-02 |
Family
ID=27310482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4322343A Expired - Fee Related DE4322343C2 (de) | 1992-07-06 | 1993-07-05 | Mittel zum Erfassen eines Bewegungsvektors und Verfahren zum Bestimmen eines Bewegungsvektors |
Country Status (3)
Country | Link |
---|---|
US (1) | US5400087A (de) |
DE (1) | DE4322343C2 (de) |
FR (1) | FR2693290B1 (de) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19501551A1 (de) * | 1994-01-21 | 1995-08-03 | Mitsubishi Electric Corp | Bewegungsvektor-Ermittlungseinrichtung, welche dazu in der Lage ist, sich einer Mehrzahl von Voraussagearten anzupassen |
DE19549369C2 (de) * | 1994-01-21 | 1997-11-27 | Mitsubishi Electric Corp | Bewegungsvektor-Ermittlungseinrichtung |
DE19549500C2 (de) * | 1994-01-21 | 2000-05-25 | Mitsubishi Electric Corp | Bewegungsvektor-Ermittlungseinrichtung |
Families Citing this family (80)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07115646A (ja) * | 1993-10-20 | 1995-05-02 | Sony Corp | 画像処理装置 |
US5659364A (en) * | 1993-12-24 | 1997-08-19 | Matsushita Electric Industrial Co., Ltd. | Motion vector detection circuit |
JPH0865685A (ja) * | 1994-08-23 | 1996-03-08 | Nec Corp | 動きベクトル検出回路 |
US5619268A (en) * | 1995-01-17 | 1997-04-08 | Graphics Communication Laboratories | Motion estimation method and apparatus for calculating a motion vector |
US5712799A (en) * | 1995-04-04 | 1998-01-27 | Chromatic Research, Inc. | Method and structure for performing motion estimation using reduced precision pixel intensity values |
GB2301971B (en) * | 1995-06-06 | 1999-10-06 | Sony Uk Ltd | Video compression |
JP2798120B2 (ja) * | 1995-08-04 | 1998-09-17 | 日本電気株式会社 | 動き補償フレーム間予測方法及び動き補償フレーム間予測装置 |
JPH0965339A (ja) * | 1995-08-18 | 1997-03-07 | Mitsubishi Electric Corp | 画像ブロック動き検出装置 |
WO1997016926A1 (en) * | 1995-10-31 | 1997-05-09 | Sarnoff Corporation | Method and apparatus for determining ambient conditions from an image sequence |
WO1997016921A1 (en) * | 1995-10-31 | 1997-05-09 | Sarnoff Corporation | Method and apparatus for generating a reference image from an image sequence |
KR0177985B1 (ko) * | 1995-11-17 | 1999-05-15 | 김광호 | 프로세서의 벡터 데이터 조정 장치 |
US5889891A (en) * | 1995-11-21 | 1999-03-30 | Regents Of The University Of California | Universal codebook vector quantization with constrained storage |
KR0151922B1 (ko) * | 1995-12-12 | 1998-10-15 | 양승택 | 필드 및 프레임 움직임 추정 장치 |
US5682204A (en) * | 1995-12-26 | 1997-10-28 | C Cube Microsystems, Inc. | Video encoder which uses intra-coding when an activity level of a current macro-block is smaller than a threshold level |
US6049362A (en) * | 1996-02-14 | 2000-04-11 | International Business Machines Corporation | Dual prime motion estimation system and method |
US5768537A (en) * | 1996-02-22 | 1998-06-16 | International Business Machines Corporation | Scalable MPEG2 compliant video encoder |
JPH1079947A (ja) * | 1996-09-03 | 1998-03-24 | Mitsubishi Electric Corp | 動きベクトル検出装置 |
JP3019787B2 (ja) | 1996-09-20 | 2000-03-13 | 日本電気株式会社 | 動きベクトル検出装置 |
US6611559B1 (en) * | 1996-09-24 | 2003-08-26 | Matsushita Electric Industrial Co., Ltd. | Apparatus and method of detecting motion vectors by calculating a correlation degree between each candidate block |
US6058142A (en) * | 1996-11-29 | 2000-05-02 | Sony Corporation | Image processing apparatus |
GB2327827B (en) * | 1996-11-29 | 1999-06-30 | Sony Corp | Image processing apparatus |
US6151632A (en) * | 1997-03-14 | 2000-11-21 | Microsoft Corporation | Method and apparatus for distributed transmission of real-time multimedia information |
US6584226B1 (en) * | 1997-03-14 | 2003-06-24 | Microsoft Corporation | Method and apparatus for implementing motion estimation in video compression |
AU1941797A (en) * | 1997-03-17 | 1998-10-12 | Mitsubishi Denki Kabushiki Kaisha | Image encoder, image decoder, image encoding method, image decoding method and image encoding/decoding system |
JPH10327415A (ja) * | 1997-05-22 | 1998-12-08 | Mitsubishi Electric Corp | 動きベクトル検出装置 |
JP2976932B2 (ja) * | 1997-06-09 | 1999-11-10 | 日本電気株式会社 | 画像照合回路および画像照合集積回路 |
JPH118856A (ja) * | 1997-06-17 | 1999-01-12 | Mitsubishi Electric Corp | 画像符号化方法及びその装置 |
US6212237B1 (en) * | 1997-06-17 | 2001-04-03 | Nippon Telegraph And Telephone Corporation | Motion vector search methods, motion vector search apparatus, and storage media storing a motion vector search program |
EP0896300B1 (de) * | 1997-08-07 | 2002-01-30 | Matsushita Electric Industrial Co., Ltd. | Vorrichtung und Verfahren zur Detektion eines Bewegungsvektors |
JPH11112991A (ja) * | 1997-10-08 | 1999-04-23 | Sharp Corp | 動きベクトル検出装置 |
JPH11168727A (ja) | 1997-12-02 | 1999-06-22 | Mitsubishi Electric Corp | 動きベクトル検出装置 |
JPH11259662A (ja) * | 1998-01-09 | 1999-09-24 | Hewlett Packard Co <Hp> | 画像フレ―ムの移動検出方法および装置 |
JPH11346369A (ja) * | 1998-06-01 | 1999-12-14 | Nec Corp | 動ベクトル検出回路 |
JP4026238B2 (ja) * | 1998-07-23 | 2007-12-26 | ソニー株式会社 | 画像復号装置及び画像復号方法 |
US6233236B1 (en) * | 1999-01-12 | 2001-05-15 | Mcdata Corporation | Method and apparatus for measuring traffic within a switch |
US7382736B2 (en) * | 1999-01-12 | 2008-06-03 | Mcdata Corporation | Method for scoring queued frames for selective transmission through a switch |
JP2000270328A (ja) * | 1999-03-17 | 2000-09-29 | Mitsubishi Electric Corp | 動きベクトル検出装置 |
JP2000308064A (ja) * | 1999-04-22 | 2000-11-02 | Mitsubishi Electric Corp | 動きベクトル検出装置 |
KR100549919B1 (ko) * | 2000-12-15 | 2006-02-06 | 주식회사 케이티 | 소요클럭사이클수 감축을 위한 초대규모 집적회로 장치 |
JP2002232911A (ja) * | 2001-02-01 | 2002-08-16 | Mitsubishi Electric Corp | 動きベクトル検出装置及び動きベクトル検出方法 |
CN1301491C (zh) * | 2001-03-13 | 2007-02-21 | 伊强德斯股份有限公司 | 视觉装置、联动式计数器及图象检测器 |
KR100413770B1 (ko) * | 2001-09-19 | 2004-01-03 | 삼성전자주식회사 | 완전 탐색블록 정합회로 및 완전 탐색블록 정합방법 |
KR100412501B1 (ko) * | 2001-11-30 | 2003-12-31 | 삼성전자주식회사 | 움직임 보상을 위한 화소값 선택 장치 및 방법 |
DE10302003B4 (de) * | 2002-02-26 | 2011-06-16 | Thomson Licensing S.A. | Verfahren und Schaltung zur Bestimmung des Rauschanteils in einem Videosignal |
WO2004012459A1 (ja) * | 2002-07-26 | 2004-02-05 | Matsushita Electric Industrial Co., Ltd. | 動画像符号化方法、動画像復号化方法および記録媒体 |
JP4462823B2 (ja) * | 2002-11-20 | 2010-05-12 | ソニー株式会社 | 画像信号の処理装置および処理方法、それに使用される係数データの生成装置および生成方法、並びに各方法を実行するためのプログラム |
JP2004179687A (ja) * | 2002-11-22 | 2004-06-24 | Toshiba Corp | 動画像符号化/復号化方法及び装置 |
JP4003128B2 (ja) * | 2002-12-24 | 2007-11-07 | ソニー株式会社 | 画像データ処理装置および方法、記録媒体、並びにプログラム |
GB2397957A (en) * | 2003-01-30 | 2004-08-04 | Qinetiq Ltd | Target detection |
JP4671696B2 (ja) * | 2004-01-14 | 2011-04-20 | パナソニック株式会社 | 動きベクトル検出装置 |
US20050163221A1 (en) * | 2004-01-14 | 2005-07-28 | Matsushita Electric Industrial Co., Ltd. | Motion vector detecting device |
US20050238102A1 (en) * | 2004-04-23 | 2005-10-27 | Samsung Electronics Co., Ltd. | Hierarchical motion estimation apparatus and method |
TWI253024B (en) * | 2004-07-20 | 2006-04-11 | Realtek Semiconductor Corp | Method and apparatus for block matching |
JP3880985B2 (ja) * | 2004-08-05 | 2007-02-14 | 松下電器産業株式会社 | 動きベクトル検出装置および動きベクトル検出方法 |
TWI243600B (en) * | 2004-09-17 | 2005-11-11 | Primax Electronics Ltd | Selected area comparison method with high-operational efficient |
US20060259737A1 (en) * | 2005-05-10 | 2006-11-16 | Telairity Semiconductor, Inc. | Vector processor with special purpose registers and high speed memory access |
US20070150697A1 (en) * | 2005-05-10 | 2007-06-28 | Telairity Semiconductor, Inc. | Vector processor with multi-pipe vector block matching |
CN101300849B (zh) * | 2005-11-01 | 2011-07-06 | 三叉微系统(远东)有限公司 | 数据处理系统 |
JP4793070B2 (ja) * | 2006-04-12 | 2011-10-12 | ソニー株式会社 | 動きベクトル探索方法及び装置 |
US20080031333A1 (en) * | 2006-08-02 | 2008-02-07 | Xinghai Billy Li | Motion compensation module and methods for use therewith |
KR100874949B1 (ko) | 2006-11-15 | 2008-12-19 | 삼성전자주식회사 | 단일 명령 다중 자료 프로세서 및 그것을 위한 메모리어레이 구조 |
EP1927949A1 (de) * | 2006-12-01 | 2008-06-04 | Thomson Licensing | Verarbeitungselement-Array mit lokalen Registern |
EP1927950A1 (de) * | 2006-12-01 | 2008-06-04 | Thomson Licensing | Verarbeitungselement-Array mit lokalen Registern |
TWI469642B (zh) * | 2006-12-04 | 2015-01-11 | Nat Inst Chung Shan Science & Technology | Compression of image data |
US20090074310A1 (en) * | 2007-09-19 | 2009-03-19 | Chung Shan Institute Of Science And Technology, Armaments Bureau, M.N.D. | Image data compression method |
US20110173596A1 (en) * | 2007-11-28 | 2011-07-14 | Martin Vorbach | Method for facilitating compilation of high-level code for varying architectures |
JP5171539B2 (ja) * | 2007-11-29 | 2013-03-27 | キヤノン株式会社 | 共鳴トンネル構造体 |
US8477847B2 (en) * | 2007-12-17 | 2013-07-02 | Vixs Systems, Inc. | Motion compensation module with fast intra pulse code modulation mode decisions and methods for use therewith |
US8189668B2 (en) * | 2007-12-18 | 2012-05-29 | Vixs Systems, Inc. | Video codec with shared intra-prediction module and method for use therewith |
US8213512B2 (en) * | 2008-05-28 | 2012-07-03 | Cyberlink Corp. | Determining an intermediate image |
CN101477412B (zh) * | 2008-06-27 | 2011-12-14 | 北京希格玛和芯微电子技术有限公司 | 子像素级精度的运动感知方法 |
FR2939207A1 (fr) * | 2008-12-02 | 2010-06-04 | Thales Sa | Procede de filtrage cinematique temporel multidimensionnel de plots radar, de tour d'antenne a tour d'antenne |
TWI399094B (zh) * | 2009-06-30 | 2013-06-11 | Silicon Integrated Sys Corp | 自適應移動補償內插法與其裝置 |
US8654852B2 (en) * | 2010-06-07 | 2014-02-18 | Himax Technologies Ltd. | Circuit for performing motion estimation and motion compensation |
TWI571828B (zh) * | 2013-01-02 | 2017-02-21 | 奇高電子股份有限公司 | 光學導航方法以及相關裝置 |
US20150146784A1 (en) * | 2013-11-26 | 2015-05-28 | Vixs Systems Inc. | Motion compensation with moving window |
WO2019072368A1 (en) | 2017-10-09 | 2019-04-18 | Huawei Technologies Co., Ltd. | LIMITED MEMORY ACCESS WINDOW FOR MOTION VECTOR REFINEMENT |
US11199561B2 (en) * | 2018-12-31 | 2021-12-14 | Robert Bosch Gmbh | System and method for standardized evaluation of activity sequences |
US11012708B1 (en) * | 2019-12-04 | 2021-05-18 | Amazon Technologies, Inc. | Low-latency motion search for video encoder |
US11601656B2 (en) * | 2021-06-16 | 2023-03-07 | Western Digital Technologies, Inc. | Video processing in a data storage device |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0309251A1 (de) * | 1987-09-25 | 1989-03-29 | BRITISH TELECOMMUNICATIONS public limited company | Bewegungsabschätzung |
EP0395293A1 (de) * | 1989-04-26 | 1990-10-31 | BRITISH TELECOMMUNICATIONS public limited company | Bewegungseinschätzer |
US5072293A (en) * | 1989-08-29 | 1991-12-10 | U.S. Philips Corporation | Method of estimating motion in a picture signal |
DE4023449C1 (de) * | 1990-07-24 | 1992-01-23 | Ant Nachrichtentechnik Gmbh, 7150 Backnang, De | |
US5173771A (en) * | 1989-08-29 | 1992-12-22 | Sony Corporation | Motion detecting circuit for video image |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61113377A (ja) * | 1984-11-07 | 1986-05-31 | Sony Corp | テレビジヨン信号の動き検出装置 |
GB2214751B (en) * | 1988-02-01 | 1992-06-17 | Plessey Co Plc | Video signal coding |
US4897720A (en) * | 1988-03-14 | 1990-01-30 | Bell Communications Research, Inc. | Circuit implementation of block matching algorithm |
JP2652195B2 (ja) * | 1988-05-23 | 1997-09-10 | 富士通株式会社 | ブロツクマツチング型動き検出回路 |
US4937666A (en) * | 1989-12-04 | 1990-06-26 | Bell Communications Research, Inc. | Circuit implementation of block matching algorithm with fractional precision |
JPH0453389A (ja) * | 1990-06-21 | 1992-02-20 | Graphics Commun Technol:Kk | 動ベクトル検出装置 |
JPH04139986A (ja) * | 1990-09-29 | 1992-05-13 | Victor Co Of Japan Ltd | 画像信号の動き補償予測符号化/復号化装置 |
GB2252468B (en) * | 1991-02-04 | 1994-10-19 | Sony Broadcast & Communication | Television standards converters |
US5276513A (en) * | 1992-06-10 | 1994-01-04 | Rca Thomson Licensing Corporation | Implementation architecture for performing hierarchical motion analysis of video images in real time |
-
1993
- 1993-07-05 DE DE4322343A patent/DE4322343C2/de not_active Expired - Fee Related
- 1993-07-06 US US08/085,952 patent/US5400087A/en not_active Expired - Lifetime
- 1993-07-06 FR FR9308277A patent/FR2693290B1/fr not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0309251A1 (de) * | 1987-09-25 | 1989-03-29 | BRITISH TELECOMMUNICATIONS public limited company | Bewegungsabschätzung |
EP0395293A1 (de) * | 1989-04-26 | 1990-10-31 | BRITISH TELECOMMUNICATIONS public limited company | Bewegungseinschätzer |
US5072293A (en) * | 1989-08-29 | 1991-12-10 | U.S. Philips Corporation | Method of estimating motion in a picture signal |
US5173771A (en) * | 1989-08-29 | 1992-12-22 | Sony Corporation | Motion detecting circuit for video image |
DE4023449C1 (de) * | 1990-07-24 | 1992-01-23 | Ant Nachrichtentechnik Gmbh, 7150 Backnang, De |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19501551A1 (de) * | 1994-01-21 | 1995-08-03 | Mitsubishi Electric Corp | Bewegungsvektor-Ermittlungseinrichtung, welche dazu in der Lage ist, sich einer Mehrzahl von Voraussagearten anzupassen |
DE19549369C2 (de) * | 1994-01-21 | 1997-11-27 | Mitsubishi Electric Corp | Bewegungsvektor-Ermittlungseinrichtung |
DE19549371C2 (de) * | 1994-01-21 | 1997-11-27 | Mitsubishi Electric Corp | Bewegungsvektor-Ermittlungseinrichtung |
DE19501551C2 (de) * | 1994-01-21 | 1999-06-17 | Mitsubishi Electric Corp | Bewegungsvektor-Ermittlungseinrichtung zum Erzeugen einer Mehrzahl von Bewegungsvektoren |
DE19549500C2 (de) * | 1994-01-21 | 2000-05-25 | Mitsubishi Electric Corp | Bewegungsvektor-Ermittlungseinrichtung |
US6674798B2 (en) | 1994-01-21 | 2004-01-06 | Renesas Technology Corp. | Motion vector detecting device capable of accommodating a plurality of predictive modes |
DE19549370B4 (de) * | 1994-01-21 | 2004-03-18 | Mitsubishi Denki K.K. | Bewegungsvektor-Ermittlungseinrichtung |
Also Published As
Publication number | Publication date |
---|---|
FR2693290A1 (fr) | 1994-01-07 |
FR2693290B1 (fr) | 1995-07-28 |
DE4322343C2 (de) | 1996-10-02 |
US5400087A (en) | 1995-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE4322343C2 (de) | Mittel zum Erfassen eines Bewegungsvektors und Verfahren zum Bestimmen eines Bewegungsvektors | |
DE19501551C2 (de) | Bewegungsvektor-Ermittlungseinrichtung zum Erzeugen einer Mehrzahl von Bewegungsvektoren | |
EP0259562B1 (de) | Verfahren zur bewegungskompensierten Bild-zu-Bild-Prädiktionscodierung | |
DE69836473T2 (de) | Bewegungsschätzung und bewegungskompensierte interpolation | |
DD293933A5 (de) | Bewegungsabschaetzeinrichtung | |
DE60014444T2 (de) | Verfahren und vorrichtung zur bewegungsschätzung unter verwendung von nachbarmacroblöcken | |
DE69908562T2 (de) | Bewegungsvektorenextrapolation zur transkodierung von videosequenzen | |
DE19506372B4 (de) | Bi-Direktionales Bewegungsschätzverfahren und ein dafür vorgesehenes Gerät | |
DE4206280C2 (de) | Verfahren zum Aufzeigen eines Bewegungsvektors | |
DE3704777C1 (de) | Verfahren zum UEbertragen und zum Wiedergeben von Fernsehbildsequenzen | |
DE69628467T2 (de) | Videokodierung- und dekodierungsvorrichtung | |
DE60307354T2 (de) | Chrominanz-Bewegungsvektorrundung | |
DE69632232T2 (de) | Verfahren und Vorrichtung zur Komprimierung von Videoinformationen mit bewegungsabhängiger Prädiktion | |
US5949486A (en) | Unit for detecting motion vector for motion compensation | |
DE19521973A1 (de) | Bilddecodiervorrichtung | |
DE19704439A1 (de) | Verfahren und Vorrichtung zur Bewegungsschätzung in einem digitalen Videocodierer unter Verwendung von Trajektorien | |
DE69433537T2 (de) | Vorrichtung zur Dekodierung von Bewegtbilddaten | |
DE60207756T2 (de) | Bilddatenzugriff | |
DE3338855A1 (de) | Videosignalverarbeitungsvorrichtung | |
DE69912208T2 (de) | Verfahren und Vorrichtung zur Videocodierung mit hoher Effizienz | |
DE69628269T2 (de) | Konversionsverfahren einer Ausgangsdatenfolge in Invers-DCT und Schaltung davon | |
DE19524688C1 (de) | Verfahren zur Dekodierung und Kodierung eines komprimierten Videodatenstroms mit reduziertem Speicherbedarf | |
DE69636352T2 (de) | Hierarchische Kodierungs-Vorrichtung und -Verfahren mit Speicher für ein digitales Bildsignal | |
DE19951341B4 (de) | Verfahren zur bewegungskompensierenden Prädiktion von Bewegtbildern sowie Einrichtung hierzu | |
EP1110407B1 (de) | Verfahren und anordnung zur codierung und decodierung eines digitalisierten bildes mit anwendung eines gesamtbewegungsvektors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |