DE69421139T2 - Bewegungsvektordetektion - Google Patents

Bewegungsvektordetektion

Info

Publication number
DE69421139T2
DE69421139T2 DE69421139T DE69421139T DE69421139T2 DE 69421139 T2 DE69421139 T2 DE 69421139T2 DE 69421139 T DE69421139 T DE 69421139T DE 69421139 T DE69421139 T DE 69421139T DE 69421139 T2 DE69421139 T2 DE 69421139T2
Authority
DE
Germany
Prior art keywords
small blocks
block
pixels
small
read
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.)
Expired - Fee Related
Application number
DE69421139T
Other languages
English (en)
Other versions
DE69421139D1 (de
Inventor
Eiji Ogura
Masatoshi Takashima
Keitaro Yamashita
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Application granted granted Critical
Publication of DE69421139D1 publication Critical patent/DE69421139D1/de
Publication of DE69421139T2 publication Critical patent/DE69421139T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/223Analysis of motion using block-matching
    • G06T7/231Analysis of motion using block-matching using full search
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; 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)
  • Image Analysis (AREA)

Description

  • Die vorliegende Erfindung betrifft die Erfassung eines Bewegungsvektors zwischen zwei Bildern und bezieht sich im besonderen auf eine effiziente Erfassung von Bewegungsvektoren.
  • Ein Beispiel eines Systems, in dem eine Bewegungsvektorerfassung nützlich ist, ist ein System entsprechend dem Moving Picture Coding Experts Group (MPEG) Standard, der sich mit einer Hocheffizienzkompressionskodierung eines bewegenden Bildes erfaßt. In dem MPEG-Standard wird ein Bild unter Verwendung einer diskreten Kosinustransformation (DCT) codiert und durch Bewegungskompensation vorhersagend codiert. Im Rahmen der Bewegungskompensation werden Bewegungsvektoren verwendet.
  • Fig. 1 zeigt ein Beispiel einer dem MPEG-Standard entsprechenden Vorrichtung. Bilddaten, auch als Pixeldaten bezeichnet, werden einem Eingangsanschluß 201 zugeführt, der die Bilddaten an eine Bewegungsvektor-Erfassungsschaltung 202 und eine Differenzbildungsschaltung 203 weiterleitet.
  • Die Bewegungsvektor-Erfassungsschaltung 202 erzeugt für einen gerade vorliegenden (Momentan-) Rahmen relativ zu einem Referenzrahmen Bewegungsvektoren und gibt diese Bewegungsvektoren an eine Bewegungskompensationsschaltung 204 weiter, welche die Bewegungsvektoren auf einen in einem Rahmenspeicher 205 gespeicherten Referenzrahmen anwendet, um bewegungskompensierte Bilddaten zu erzeugen. Dies heißt, daß die Schaltung 204 unter Verwendung der Bewegungsvektoren aus der Schaltung 202 eine Bewegungskompensation für den aus dem Rahmenspeicher 205 ausgelesen Referenzrahmen durchführt. Die Schaltung 204 leitet die bewegungskompensierten Bilddaten zu einer Differenzbildungsschaltung 203 und zu einer Addierschaltung 206.
  • Die Differenzbildungsschaltung 203 dient dazu, die bewegungskompensierten Bilddaten des Referenzrahmens von den Bilddaten des momentanen Rahmens, der von dem Eingangsanschluß 201 zugeführt wurde, zu subtrahieren, um Differenzdaten zu erzeugen und die Differenzdaten einer DCT-Schaltung 207 zuzuführen.
  • Die DCT-Schaltung 207 dient dazu, die Differenzdaten zu transformieren, um Koeffizientendaten zu erzeugen und die Koeffizientendaten einem Quantisierer 208 zuzuführen, der dazu dient, die Koeffizientendaten zu quantisieren und die quantisierten Daten einem Ausgangsanschluß 209 und einem inversen Quantisierer 210 zuzuführen. Der inverse Quantisierer 210 dequantisiert die ihm zugeführten quantisierten Daten, um wiederhergestellte Koeffizientendaten zu erzeugen, und übergibt die wiederhergestellten Koeffizientendaten an eine inverse DTC-Schaltung 211, welche die wiederhergestellten Koeffizientendaten retransformiert, um wiederhergestellte Differenzdaten zu erzeugen, und die wiederhergestellten Differenzdaten an eine Addierschaltung 206 weitergibt. Die Addierschaltung 206 addiert die bewegungskompensierten Bilddaten des Referenzrahmens zu den wiederhergestellten Differenzdaten, um die vorhergesagten Bilddaten des momentanen Rahmens zu erzeugen und leitet die vorhergesagten Bilddaten des momentanen Rahmens an den Rahmenspeicher 205 weiter, der die vorhergesagten Bilddaten des momentanen Rahmens als nächsten Referenzrahmen speichert.
  • Im Folgenden werden drei bekannte Verfahren zum Erzeugen von Bewegungsvektoren erläutert. Grundsätzlich wird aus dem momentanen Rahmen ein Teil oder ein Block gewählt und der am besten übereinstimmende Block des Referenzrahmens bestimmt. Ein Bewegungsvektor für den Block des momentanen Rahmens ist die Differenz zwischen den Koordinaten des Blocks des momentanen Rahmens und den Koordinaten des am besten übereinstimmenden Blocks des Referenzrahmens. Die Bewegungsvektor- Erfassungsschaltung 202 kann jede der drei bekannten Verfahren, die im Folgenden als Vollsuchverfahren, Mehrfachschrittverfahren und Interpolationsverfahren bezeichnet werden, durchführen. Das Vollsuchverfahren und das Mehrfachschrittverfahren erzeugen einen Bewegungsvektor, der die Auflösung von einem Pixel hat. Das Interpolationsverfahren erzeugt einen Bewegungsvektor, der eine Auflösung hat, die besser als die eines Pixels ist.
  • Das Vollsuchverfahren zum Erzeugen von Bewegungsvektoren wird nun beschrieben.
  • Fig. 2 zeigt einen Momentanrahmen 221 und einen Referenzrahmen 222. Der Momentanrahmen 221 wird einen Referenzblock 223 enthaltend dargestellt. Der Referenzrahmen 222 wird einen Kontrollblock 224 enthaltend dargestellt. Der Kontrollblock 224 wird in einem vorgegebenen Suchbereich bewegt, und ein Grad der Übereinstimmung zwischen dem Referenzblock 223 und dem Kontrollblock 224 wird für jede Position des Kontrollblocks 224 in dem vorgegebenen Suchbereich erfaßt. Ein übereinstimmender Block wird für diejenige Position definiert, an der der Kontrollblock den höchsten Grad an Übereinstimmung mit dem Referenzblock aufweist, und der Bewegungsvektor wird für den Referenzblock gebildet, um den übereinstimmenden Block anzuzeigen.
  • Fig. 3 zeigt ein Beispiel einer bekannten Bewegungsvektor-Erfassungsvorrichtung, welche Bewegungsvektoren unter Verwendung des Vollsuchverfahrens erhält. Bilddaten des Momentanrahmens werden einem Eingangsanschluß 233 zugeführt, der die Bilddaten des Momentanrahmens einem Momentanrahmenspeicher 231 zuführt.
  • Bilddaten des Referenzrahmens werden einem Eingangsanschluß 234 zugeführt, der die Bilddaten des Referenzrahmens an einen Referenzrahmenspeicher 232 weiterleitet. Die Steuerschaltung 235 steuert das Auslesen und Einschreiben der Momentanrahmen- und Referenzrahmenspeicher 231, 232.
  • Pixeldaten des Referenzblocks des Momentanrahmens werden aus dem Momentanrahmenspeicher 231 ausgelesen. Pixeldaten des Kontrollblocks des Referenzrahmens werden aus dem Referenzrahmenspeicher 232 ausgelesen. Eine Adressenbewegungsschaltung 236 erzeugt Adreßwerte zum Auslesen der Pixeldaten des Kontrollblocks, derart, daß sich der Kontrollblock in Schritten von je einem Pixel in dem vorgegebenen Vektorsuchbereich bewegt.
  • Fig. 4 zeigt einen Kontrollblock 241, der in dem vorgegebenen Vektorsuchbereich SV bewegt wird. Zu Beginn wird der Kontrollblock in die linke obere Ecke des Suchbereichs positioniert, und eine Summe von Differenzwerten wird wie nachfolgend beschrieben gebildet. Der Kontrollblock wird dann um ein Pixel nach rechts bewegt, und eine Summe von Differenzwerten wird gebildet. Der Kontrollblock wird dann ein weiteres Mal um ein Pixel nach rechts bewegt, und eine Summe wird gebildet, bis die rechte Grenze des Suchbereichs erreicht wurde. Der Kontrollblock wird dann in die obere linke Ecke des Suchbereichs positioniert, um ein Pixel nach unten bewegt und eine Summe wird gebildet. Der Kontrollblock wird dann um ein Pixel nach rechts bewegt und eine Summe an dieser Position wird gebildet, bis die rechte Grenze des Bereichs erreicht wurde. Wiederum wird der Kontrollblock zur linke Grenze aber von der oberen linken Ecke zwei Pixel abwärts bewegt, und eine Summe wird gebildet. Dieses Verfahren wird solange wiederholt, bis der Kontrollblock über den gesamten Suchbereich bewegt wurde.
  • Die Pixeldaten des Referenzblocks und die Pixeldaten des Kontrollblocks werden an eine Differenzbildungsschaltung 237 weitergereicht, welche diese Daten voneinander subtrahiert und den resultierenden Differenzwert einer Absolutwert- Summierungsschaltung 238 zuführt. Die Absolutwert-Summierungsschaltung 238 summiert die Differenzwerte zu einer Summe der Absolutwerte der Differenzwerte, für jede der Pixelpositionen in dem Referenzblock, und führt die Summe einer Beurteilungsschaltung 239 zu. Dies bedeutet, daß an jeder Position des Kontrollblocks in dem vorgegebenen Suchbereich SV die Summierungsschaltung 238 eine Summe von Differenzwerte bildet.
  • Die Summe der Differenzen kann durch die folgende Gleichung beschrieben werden:
  • E = (Wi · Ai -Bi )
  • (Gl. 1)
  • wobei (M · N) sowohl die Größe des Referenzblocks als auch des Kontrollblocks, Ai die Pixel des Referenzblocks, Bi die Pixel des Kontrollblocks und Wi einen Wichtungsfaktor bezeichnen.
  • Anstelle des Absolutwertes der Differenz könnte alternativ dazu in Gleichung 1 der Quadratwert der Differenz verwendet werden.
  • Die Beurteilungsschaltung 239 wählt diejenige Position des Kontrollblocks als passenden Block, die dem Minimum der Summe der Differenzwerte entspricht, berechnet den Bewegungsvektor zwischen dem Referenzblock und dem passenden Block und überträgt den Bewegungsvektor an den Ausgangsanschluß 240.
  • Da das Vollsuchverfahren durch Bewegen des Kontrollblocks in dem vorgegebenen Suchbereich in Pixel-Schritten fortschreitet, ist eine große Menge von Berechnungen notwendig, um bei Verwenden dieses Verfahrens einen Bewegungsvektor zu erhalten. Andererseits wird mit diesem Verfahren immer der am besten übereinstimmende Block in dem vorgegebenen Suchbereich gefunden.
  • Es wird nun das Mehrfachschrittverfahren zum Erzeugen eines Bewegungsvektors erläutert.
  • Der erste Schritt des Mehrfachschrittverfahrens vollzieht sich in der gleichen Weise wie bei dem Vollsuchverfahren, abgesehen davon, daß der Kontrollblock um (i) Pixel, i > 1, anstatt um ein Pixel bewegt wird. Jeder folgende Schritt des Mehrfachschrittverfahrens vollzieht sich in der gleichen Weise wie bei dem Vollsuchverfahren, wobei die Auflösung feiner wird und der Suchbereich kleiner und um den am besten übereinstimmenden Block des vorherigen Schritts zentriert wird, bis in dem letzten Schritt des Mehrfachschrittverfahrens der Kontrollblock um ein Pixel durch den abschließenden Suchbereich, der kleiner ist als der ursprüngliche Suchbereich, bewegt wird.
  • Fig. 5 zeigt ein Beispiel einer herkömmlichen Bewegungsvektor-Erfassungsvorrichtung, die unter Verwendung des Mehrfachschrittverfahrens Bewegungsvektoren erhält.
  • Bilddaten des Momentanrahmens werden einem Eingangsanschluß 253 zugeführt, der die Bilddaten des Momentanrahmens einem Momentanrahmenspeicher 251 zuführt. Bilddaten des Referenzrahmens werden einem Eingangsanschluß 254 zugeführt, der die Bilddaten des Referenzrahmens einem Referenzrahmenspeicher 252 zuführt. Eine Steuerschaltung 255 steuert das Auslesen und Einschreiben des Momentanrahmen- und des Referenzrahmenspeichers 251, 252.
  • Pixeldaten des Referenzblocks des Momentanrahmens werden aus dem Momentanrahmenspeicher 251 ausgelesen. Pixeldaten des Kontrollblocks des Referenzrahmens werden aus dem Referenzrahmenspeicher 252 ausgelesen. Eine Adressenbewegungsschaltung 256A erzeugt Adreßdaten zum Auslesen der Pixeldaten des Kontrollblocks, so daß der Kontrollblock in einem ersten Schritt bei jedem Auslesen beispielsweise um zwei Pixel in dem vorgegebenen Vektorsuchbereich bewegt wird.
  • Die Pixeldaten des Referenzblocks und die Pixeldaten des Kontrollblocks werden einer Differenzbildungsschaltung 257 zugeführt, welche diese Daten voneinander subtrahiert und den resultierenden Differenzwert einer Absolutwert-Summierungsschaltung 258 zuführt. Die Absolutwert-Summierungsschaltung 258 summiert die Differenzwerte als eine Summe der Absolutwerte der Differenzwerte für jede der Pixelpositionen in dem Referenzblock und führt diese Summe einer Beurteilungsschaltung 259 zu.
  • Die Beurteilungsschaltung 259 wählt diejenige Kontrollblockposition als passenden Block für den ersten Schritt aus, die dem Minimum der Summe der Differenzwerte entspricht, und berechnet einen groben Bewegungsvektor zwischen dem Referenzblock und dem passenden Block.
  • In einem zweiten Schritt werden dann die Pixeldaten des Kontrollblocks wiederum aus dem Referenzrahmenspeicher 254 ausgelesen, aber das Auslesen wird von der Adressenbewegungsschaltung 256B so gesteuert, daß der Kontrollblock jeweils in Pixelschritten in einem Suchbereich bewegt wird, der um den am besten übereinstimmenden Block des ersten Schrittes zentriert wurde. Die Beurteilungsschaltung 259 wählt diejenige Kontrollblockposition als den passenden Block für den zweiten Schritt, die dem Minimum der Summe der Differenzwerte entspricht, und berechnet einen feinen Bewegungsvektor zwischen dem Referenzblock und dem passenden Block und übergibt den feinen Bewegungsvektor an den Ausgangsanschluß 260.
  • Fig. 6 zeigt einen Kontrollblock 261, der in dem vorgegebenen Vektorsuchbereich SV jeweils um (i) Pixel (beispielsweise um 2 Pixel) bewegt wird. Im nächsten Schritt wird der Kontrollblock um jedes einzelne Pixel bewegt, in einem Bereich um den am besten passenden Block des ersten Schritts. Das Mehrfachschrittverfahren kann in drei oder mehreren Schritten durchgeführt werden. In einem ersten Schritt kann beispielsweise der Kontrollblock um vier Pixel, in einem zweiten Schritt um zwei Pixel und in einem dritten Schritt um ein Pixel bewegt werden.
  • Das Mehrfachschrittverfahren benötigt weniger Berechnungen als das Vollsuchverfahren, findet aber möglicherweise nicht den am besten übereinstimmenden Block in dem vorgegebenen Suchbereich. Insbesondere wenn der in dem ersten Schritt erhaltene grobe Bewegungsvektor falsch ist, kann kein korrekter Bewegungsvektor erhalten werden.
  • Es wurde vorgeschlagen, im ersten Schritt einen Block der Größe (N · M) auf eine Größe von (2 N · 2M) zu vergrößern, diesen dann zu unterteilen, um einen Block der Größe (N · M) zu erzeugen, und den Kontrollblock in dem unterteilten Suchbereich zu bewegen, um einen groben Bewegungsvektor zu erhalten. Allerdings garantiert dieses Verfahren ebenfalls nicht, den besten Bewegungsvektor in dem ursprünglich vorgegebenen Suchbereich zu finden.
  • Das Interpolationsverfahren zum Erzeugen von Bewegungsvektoren wird nun beschrieben.
  • Das Interpolationsverfahren vollzieht sich in der gleichen Weise wie das Vollsuchverfahren, abgesehen davon, daß die Pixel des Referenzrahmens interpoliert werden und der Kontrollblock mit dieser interpolierten Auflösung bewegt wird. Ein interpoliertes Pixel kann beispielsweise zwischen jedem Paar von Pixeln in dem Suchbereich des Referenzrahmens gebildet werden, und der Kontrollblock kann um die Hälfte der ursprünglichen Pixelauflösung (ein Pixel der interpolierten Auflösung) bewegt werden.
  • Fig. 7 zeigt ein Beispiel einer bekannten Bewegungsvektor-Erfassungsvorrichtung, welche Bewegungsvektoren mit einer besseren Auflösung als ein Pixel unter Verwendung des Interpolationsverfahrens erhält. Bilddaten des Momentanrahmens werden einem Eingangsanschluß 273 zugeführt, der die Bilddaten des Momentanrahmens einem Momentanrahmenspeicher 271 zuführt. Bilddaten des Referenzrahmens werden einem Eingangsanschluß 274 zugeführt, der die Bilddaten des Referenzrahmens einem Referenzrahmenspeicher 272 zuführt. Die Steuerschaltung 275 steuert das Auslesen und Einschreiben des Momentanrahmens- und des Referenzrahmenspeichers 271, 272.
  • Die Pixeldaten des Referenzblocks des Momentanrahmens werden aus dem Momentanrahmenspeicher 271 ausgelesen.
  • Daten werden aus dem Referenzrahmenspeicher 272 ausgelesen und einer Interpolationsschaltung 281 zugeführt, welche die benachbarten ausgelesenen Pixel, die auch als ursprüngliche Pixel bezeichnet werden, interpoliert, um zwischen den ursprünglichen Pixeln interpolierte Pixel zu bilden. Die ausgelesenen und die interpolierten Pixeldaten bilden die Pixeldaten des Kontrollblocks.
  • Fig. 8 zeigt die aus dem Speicher 272 ausgelesenen Pixeldaten als gefüllte Kreise( ). Interpolierte Daten, die aus zwei ursprünglichen Pixeln gebildet wurden, werden als "x" (x) dargestellt. Interpolierte Daten, die aus vier ursprünglichen Pixeln gebildet wurden, werden als leere Kreise (º) dargestellt. Interpolierte Pixeldaten H-1/2.0 werden beispielsweise folgendermaßen erhalten:
  • H-1/2.0 = (D-1,0 + D0,0) /
  • (Gl. 2)
  • Interpolierte Pixeldaten H-1/2-1/2 werden folgendermaßen erhalten:
  • H-1/2-1/2 = (D-1-1 + D0-1 + D0,0 + D-1,0)/4
  • (Gl. 3)
  • Die Pixeldaten des Referenzblocks und die Pixeldaten des Kontrollblocks werden einer Differenzbildungsschaltung 277 zugeführt, welche diese Daten voneinander subtrahiert und die resultierenden Differenzwerte einer Absolutwert-Summierungsschaltung 278 zuführt. Die Absolutwert-Summierungsschaltung 278 summiert die Differenzwerte als eine Summe der Absolutwerte der Differenzwerte, für jede der Pixelpositionen in dem Referenzblock, und führt diese Summe einer Beurteilungsschaltung 279 zu.
  • Die Beurteilungsschaltung 279 wählt denjenigen Kontrollblock als passenden Block, dessen Position dem Minimum der Summe der Differenzwerte entspricht, berechnet den Bewegungsvektor zwischen dem Referenzblock und dem passenden Block und führt den Bewegungsvektor einem Ausgangsanschluß 280 zu. Da der Kontrollblock Pixel enthielt, die zwischen den Referenzrahmenpixeln interpoliert wurden, besitzt der Bewegungsvektor eine Genauigkeit von einem halben Pixel, also von einer besseren Auflösung als einem Pixel.
  • Das Interpolationsverfahren erzeugt einen Bewegungsvektor mit einer höheren Auflösung als das Vollsuchverfahren, benötigt aber mehr Berechnungen als das Vollsuchverfahren.
  • Bei jedem der oben beschriebenen Verfahren zum Erfassen von Bewegungsvektoren wird eine große Menge von Berechnungen benötigt. Eine Vorrichtung, welche eines dieser Verfahren durchführt, benötigt daher eine große Menge von Hardware, lange Zeit zum Arbeiten, und ist teuer herzustellen.
  • Es wurde auch eine Vorrichtung vorgeschlagen, in der Projektionen in horizontaler und vertikaler Richtung der zwei Blöcke unabhängig voneinander ausgeführt wurden und Bewegungsvektoren in horizontaler und vertikaler Richtung unabhängig erfaßt wurden. Da allerdings die Projektion in horizontaler Richtung und die Projektion in vertikaler Richtung in diesem vorgeschlagenen Verfahren unabhängig voneinander benutzt werden, ist die Genauigkeit der Bewegungsvektor-Erfassung gering.
  • GLOBECOM '92, Vol. 1, LEE et al. "A Fast Feature Matching Algorithm of Multi- Resolution Motion Estimation" offenbart eine Vorrichtung zum Erfassen von Bewegungsvektoren, welche einen Bewegungseinschätzungs-Merkmalsvergleichs- Algorithmus verwendet. In dieser Vorrichtung wird ein 16 · 16 Pixel großer Makro- Block durch 4 · 4 STF-(Zeichen-Gestutztes-Merkmal) Vektoren dargestellt, die jeweils einen Unterblock von 4 · 4 Pixeln darstellen. Ein Blockvergleich zum Erzeugen eines Bewegungsvektors wird durch Vergleich der Merkmals-Vektoren durchgeführt. Dieses Dokument offenbart in den einführenden Abschnitten, daß das Kriterium zum Blockvergleich eine Minimierung des Vergleichsfehlers zwischen zwei getesteten Blöcken ist, eines Blocks des Momentanrahmens und eines anderen des Referenzrahmens. Daher lehrt dieses Dokument, daß ein Blockvergleich im wesentlichen aus einem Vergleich von Sätzen kleiner Blöcke besteht, um zu erfassen, welcher der Momentanrahmen-Kleinblöcke am besten mit dem kleinen Referenzrahmenblock übereinstimmt.
  • Entsprechend der vorliegenden Erfindung wird eine Vorrichtung zum Erfassen von Bewegungsvektoren angegeben, die Folgendes aufweist:
  • erste Speichermittel zum Speichern aktueller Bilddaten und zum Auslesen eines Referenzblocks aus den aktuellen Bilddaten, der eine erste Größe hat;
  • erste Kleinblock-Bildungsmittel zum Unterteilen des ausgelesenen Referenzblocks in jeder von zwei Richtungen, um somit für jede der beiden Richtungen einen Satz kleiner Blöcke zu bilden;
  • zweite Speichermittel zum Speichern eines Suchbereichs aus Referenz-Bilddaten, wobei der Suchbereich eine zweite Größe hat, die mindestens so groß wie die erste Größe ist, und zum Auslesen verschiedener Abschnitte aus dem gespeicherten Suchbereich entsprechend einem Steuersignal zu Kontrollblöcken, welche die erste Größe haben;
  • zweite Kleinblock-Bildungsmittel zum Unterteilen des ausgelesenen Kontrollblocks in jeder von diesen zwei Richtungen, um somit für jede der beiden Richtungen einen Satz kleiner Blöcke zu bilden;
  • Steuersignal-Erzeugungsmittel zum Erzeugen des Steuersignals, welches die verschiedenen Abschnitte des in den zweiten Speichermitteln gespeicherten Suchbereichs anzeigt; und
  • Mittel zum Vergleichen der Sätze kleiner Blöcke, die durch die ersten und zweiten Kleinblock-Bildungsmittel in jeder der beiden Richtungen gebildet wurden, um festzustellen, welcher der aus dem Suchbereich ausgelesenen Kontrollblöcke am besten mit dem Referenzblock übereinstimmt, und zum Erzeugen eines Bewegungsvektors zwischen dem Referenzblock und dem am besten übereinstimmenden Kontrollblock.
  • In einer im Folgenden beschriebenen bevorzugten Anordnung werden die kleinen Blöcke, die aus dem ausgelesenen Referenzblock in erster Richtung gebildet wurden, mit den kleinen Blöcken, die aus den ausgelesenen Kontrollblock in erster Richtung gebildet wurden, verglichen. Die kleinen Blöcke, die aus dem ausgelesenen Referenzblock in zweiter Richtung gebildet wurden, werden mit den Kleinblöcken, die aus dem ausgelesenen Kontrollblock in zweiter Richtung gebildet wurden, verglichen.
  • Zumindest ein Merkmalswert kann für jeden der kleinen Blöcke in dem ersten und dem zweiten Satz von Kleinblöcken erzeugt werden. Die Merkmalswerte für den ersten und zweiten Satz von Kleinblöcken können dann verglichen werden.
  • Wenn die ersten und zweiten Sätze von kleinen Blöcken in mindestens zwei Richtungen gebildet werden und mindestens ein Merkmalswert für jeden der kleinen Blöcke, die in jede der ersten und zweiten Richtung gebildet wurden, erzeugt wird, dann können die Kleinblöcke, die aus dem ausgelesenen Referenzblock in die erste Richtung gebildet wurden, mit den Kleinblöcken, die aus dem ausgelesenen Kontrollblock in die erste Richtung gebildet wurden, verglichen werden, und die Kleinblöcke, die aus dem ausgelesenen Referenzblock in die zweite Richtung gebildet wurden, können mit den Kleinblöcken, die aus dem ausgelesenen Kontrollblock in die zweite Richtung gebildet wurden, verglichen werden.
  • Der Aufwand an Berechnungen, der zur Erfassung eines Bewegungsvektors benötigt wird, kann daher ohne wesentliche Beeinträchtigung der Erfassungspräzision des Bewegungsvektors reduziert werden.
  • In einem Mehrfachschrittverfahren entsprechend der vorliegenden Erfindung werden Grobbereiche des Suchbereichs bezeichnet, die jeweils um mindestens zwei Pixel voneinander abweichen, und ein grober Bewegungsvektor wird entsprechend den Kontrollblöcken, die aus den groben Bereichen des Suchbereichs ausgelesen wurden, gebildet. Feinbereiche einer Untergruppe des Suchbereichs, die jeweils um ein Pixel voneinander abweichen, werden bezeichnet, und ein Fein-Bewegungsvektor wird abhängig von den Kontrollblöcken, die aus den Feinbereichen der Untergruppe des Suchbereichs ausgelesen wurden, gebildet.
  • In einem Interpolationsverfahren entsprechend der vorliegenden Erfindung werden die Pixel, die aus dem gespeicherte Suchbereich ausgelesen wurden, interpoliert, um interpolierte Pixel zu bilden, die in dem zweiten Satz von Kleinblöcken berücksichtigt werden, so daß der Bewegungsvektor eine Auflösung aufweist, die besser als ein Pixel ist.
  • Die vorliegende Erfindung befaßt sich mit den zuvor angeführten Problemen beim Stand der Technik.
  • Ein Ausführungsbeispiel der Erfindung ermöglicht eine effizientere Erfassung von Bewegungsvektoren ohne eine Beeinträchtigung der Erfassungspräzision; die Erfassung der Bewegung von Vektoren unter Verwendung eines vereinfachten Schaltungsaufbaus; und eine Reduzierung der Anzahl an Berechnungen, die zur Erfassung eines Bewegungsvektors benötigt werden.
  • Konkrete Ausführungsbeispiele der vorliegenden Erfindung werden nun mit Bezug auf die beiliegende Zeichnung anhand von Beispielen beschrieben. Es zeigen:
  • Fig. 1 ein Blockdiagramm einer bekannten vorhersagenden Kodiervorrichtung, die Bewegungskompensation verwendet;
  • Fig. 2 ein schematisches Diagramm, welches die Beziehung zwischen einem Referenzrahmen, einem Momentanrahmen, einem Kontrollblock und einem Referenzblock, welche in der Vorrichtung gemäß Fig. 1 verwendet werden, darstellt;
  • Fig. 3 ein Blockdiagramm einer Bewegungsvektor-Erfassungsvorrichtung, welche das bekannte Vollsuchverfahren verwendet;
  • Fig. 4 ein schematisches Diagramm, auf welches bei der Erläuterung der Vorrichtung in Fig. 3 Bezug genommen wird;
  • Fig. 5 ein Blockdiagramm einer Bewegungsvektor-Erfassungsvorrichtung, welche das bekannte Mehrfachschrittverfahren verwendet;
  • Fig. 6 ein schematisches Diagramm, auf welches während der Erläuterung der Vorrichtung in Fig. 5 Bezug genommen wird;
  • Fig. 7 ein Blockdiagramm einer Bewegungsvektor-Erfassungsvorrichtung, welche das bekannte Interpolationsverfahren zur Erfassung eines Bewegungsvektors mit hoher Präzision verwendet;
  • Fig. 8 ein schematisches Diagramm, welches interpolierte Pixel darstellt;
  • Fig. 9 ein Blockdiagramm einer Bewegungsvektor-Erfassungsvorrichtung entsprechend der vorliegenden Erfindung;
  • Fig. 10 ein schematisches Diagramm, welches die Beziehung zwischen einem Referenzrahmen, einem Momentanrahmen, einem Kontrollblock und einem Referenzblock, welche in der Vorrichtung in Fig. 9 verwendet werden, darstellt;
  • Fig. 11A und 11B schematische Diagramme, welche Kleinblöcke jeweils in horizontaler und vertikaler Richtung eines Referenzblocks darstellen;
  • Fig. 12A und 12B schematische Diagramme, welche Kleinblöcke jeweils in horizontaler und vertikaler Richtung eines Kontrollblocks darstellen;
  • Fig. 13A und 13B schematische Diagramme, welche einen Block und seine Unterteilung in ein Gitter von Kleinblöcken darstellen;
  • Fig. 14 ein Blockdiagramm einer weiteren Bewegungsvektor-Erfassungsvorrichtung entsprechend der vorliegenden Erfindung;
  • Fig. 15 ein schematisches Diagramm, welches die Unterteilung eines Referenzblocks in Kleinblöcke in vertikaler und horizontaler Richtung darstellt;
  • Fig. 16 ein schematisches Diagramm, welches die Unterteilung eines Kontrollblocks in Kleinblöcke in horizontaler und vertikaler Richtung darstellt;
  • Fig. 17 ein Blockdiagramm einer Merkmals-Extrahierschaltung für einen Referenzblock entsprechend der vorliegenden Erfindung;
  • Fig. 18 ein Blockdiagramm einer Merkmals-Extrahierschaltung für einen Kontrollblock entsprechend der vorliegenden Erfindung;
  • Fig. 19 ein schematisches Diagramm, welches die Bewegung eines Kontrollblocks darstellt;
  • Fig. 20 ein Blockdiagramm einer weiteren Bewegungsvektor-Erfassungsvorrichtung entsprechend der vorliegenden Erfindung;
  • Fig. 21 ein Diagramm, welches die vorgegebenen Vektorsuchbereiche für eine Serie von Referenzblöcken darstellt;
  • Fig. 22A und 22B schematische Diagramme, auf die bei der Erläuterung der Funktion der Vorrichtung in Fig. 20 Bezug genommen wird;
  • Fig. 23A und 23B Blockdiagramme, welche die Kleinunterteilung eines Blocks in Kleinblöcke in zwei schräge Richtungen darstellt;
  • Fig. 24 ein Blockdiagramm einer weiteren Bewegungsvektor-Erfassungsvorrichtung entsprechend der vorliegenden Erfindung;
  • Fig. 25A bis 25C Diagramme, welche die Unterteilung eines Blocks in Kleinblöcke in horizontaler Richtung und die Unterteilung der Kleinblöcke in kleinere Blöcke entsprechend einem Mehrfachschrittverfahren der vorliegenden Erfindung darstellt;
  • Fig. 26A bis 26C Diagramme, welche die Unterteilung eines Blocks in Kleinblöcke in vertikaler Richtung und die Unterteilung der Kleinblöcke in kleinere Blöcke entsprechend einem Mehrfachschrittverfahren gemäß der vorliegenden Erfindung darstellt;
  • Fig. 27A bis 27C den ersten Schritt eines Mehrfachschrittverfahrens zum Erhalten von Bewegungsvektoren entsprechend der vorliegenden Erfindung;
  • Fig. 28A bis 28C den zweiten Schritt eines Mehrfachschrittverfahrens zum Erhalten eines Bewegungsvektors entsprechend der vorliegenden Erfindung;
  • Fig. 29 ein Blockdiagramm einer weiteren Bewegungsvektor-Erfassungsvorrichtung entsprechend der vorliegenden Erfindung; und
  • Fig. 30 ein Blockdiagramm einer weiteren Bewegungsvektor-Erfassungsvorrichtung entsprechend der vorliegenden Erfindung.
  • Um Bewegungsvektoren effizient zu erfassen wird jeder der Blöcke eines Bildes in Kleinblöcke unterteilt, und ein Merkmalswert, der jeden Kleinblock darstellt, wird gebildet. Da die Merkmalswerte für die Kleinblöcke eines Referenzblocks mit den Merkmalswerten für die Kleinblöcke eines Kontrollblocks verglichen werden, werden im Vergleich zu den oben beschriebenen bekannten Verfahren zur Erfassung von Bewegungsvektoren, nämlich dem Vollsuchverfahren, dem Mehrfachschrittverfahren und dem Interpolationsverfahren, weniger Berechnungen benötigt. Da ein Merkmalswert alle Pixel eines Kleinblocks repräsentiert, werden beim Vergleich der Merkmalswerte für die Kleinblöcke des Referenz- und Kontrollblocks weniger Berechnungen benötigt, als bei einem Vergleich jedes Pixels des Referenz- und Kontrollblocks.
  • Für einen Merkmalswert, der einen Kleinblock repräsentiert, ist es beispielsweise möglich, den Wert, der durch Addition oder Mittelung aller Pixel in dem Kleinblock erhalten wurde, den Minimal- und Maximalwert der Pixel in dem Kleinblock, einen oder mehrere der Koeffizienten, die bei einer Hadamard-Konvertierung, einer DCT- Transformation oder einer Wavelet-Konvertierung der Pixel in dem Kleinblock erhalten werden, Maximal- und Minimalwerte der Koeffizienten, welche durch eine Hadamard- Konvertierung, eine DCT-Transformation oder eine Wavelet-Konvertierung der Pixel in dem Kleinblock erhalten wurden, oder einen oder mehrere andere repräsentative Werte zu verwenden.
  • In der Zeichnung und insbesondere in Fig. 9 ist eine Bewegungsvektor- Erfassungsvorrichtung entsprechend der vorliegenden Erfindung dargestellt. Die in Fig. 9 dargestellte Vorrichtung ist dazu ausgebildet, einen Momentanrahmen und einen Referenzrahmen zu speichern, einen Referenzblock aus dem Momentanrahmen und einen Kontrollblock aus dem Referenzrahmen zu bilden und die Position des Kontrollblocks innerhalb des vorgegebenen Suchbereichs in dem Referenzrahmen zu variieren. Die Vorrichtung in Fig. 9 ist ebenfalls dazu ausgebildet, Kleinblöcke aus dem Referenz- und dem Kontrollblock zu bilden, Merkmalswerte für jeden der Kleinblöcke zu bilden und die Merkmalswerte der Kleinblöcke aus dem Referenz- und dem Kontrollblock zu vergleichen. Diejenige Kontrollblock-Position, der die beste Übereinstimmung zwischen den Merkmalswerten der Kleinblöcke des Kontrollblocks und der Merkmalswerte der Kleinblöcke des Referenzblocks entspricht, wird als die Position eines passenden Blocks gewählt, und ein Bewegungsvektor zwischen dem Referenzblock und dem passenden Block wird gebildet.
  • Die in Fig. 9 dargestellte Vorrichtung weist Eingangsanschlüsse 2, 4, einen Momentanrahmenspeicher 1, einen Referenzrahmenspeicher 3, eine Steuerschaltung 5, Kleinblock-Bildungsschaltungen 6, 7, Merkmals-Extrahierschaltungen 8A, 8B, 9A, 9B, Vergleichs- und Absolutwert-Summierungs-Schaltungen 10A, 10B, eine Wichtungsadditionsschaltung 11, eine Beurteilungsschaltung 12 und eine Adressenbewegungsschaltung 14 auf.
  • Die Vorrichtung in Fig. 9 verwendet ein Vollsuchverfahren zum Erhalten von Bewegungsvektoren, das entsprechend der vorliegenden Erfindung modifiziert wurde.
  • Bilddaten eines Momentanrahmens werden einem Eingangsanschluß 2 und von dem Anschluß 2 zu einem Momentanrahmenspeicher 1 weitergeleitet, der dazu dient, den Momentanrahmen zu speichern. Bilddaten eines Referenzrahmens werden einem Eingangsanschluß 4 und von dem Anschluß 4 zu einem Referenzrahmenspeicher 3 weitergeleitet, der dazu dient, den Referenzrahmen zu speichern. Die Steuerschaltung 5 steuert das Auslesen und Einschreiben der Momentan- und Referenzrahmenspeicher 1, 3.
  • Der Momentanrahmenspeicher 1 dient auch dazu, Bilddaten des Momentanrahmens als Referenzblock von (N · M) Pixeln, beispielsweise (16 · 16) Pixeln auszugeben und den Referenzblock einer Kleinblock-Bildungsschaltung 6 zuzuführen.
  • Der Referenzrahmenspeicher 3 dient auch dazu, Bilddaten des Referenzrahmens als Kontrollblock von (N · M) Pixeln auszugeben und den Kontrollblock einer Kleinblock- Bildungsschaltung 7 zuzuführen. Eine Adressenbewegungsschaltung 14 ist dazu ausgebildet, die Ausleseadresse, die dem Referenzrahmenspeicher 3 zugeführt wird, so zu variieren, daß die Position des Kontrollblocks in einem vorgegebenen Suchbereich um jedes Pixel bewegt wird.
  • Die Kleinblock-Bildungsschaltung 6 ist dazu ausgebildet, den Referenzblock in mehrere kleine Blöcke zu unterteilen. Beispielsweise kann die Schaltung 6 den Referenzblock in M Blöcke in horizontaler Richtung unterteilen und kann ebenso ein Duplikat des Referenzblocks in N Blöcke in vertikaler Richtung unterteilen. Die Schaltung 6 ist ferner ausgebildet, den in M Kleinblöcke in horizontaler Richtung unterteilten Referenzblock einer Merkmals-Extrahierschaltung 8A und den in N Kleinblöcke in vertikaler Richtung unterteilten Referenzblock einer Merkmals-Extrahierschaltung 8B zuzuführen.
  • In gleicher Weise ist die Kleinblock-Bildungsschaltung 7 dazu ausgebildet, den Kontrollblock in mehrere Kleinblöcke zu unterteilen und den in M Kleinblöcke in horizontaler Richtung unterteilten Kontrollblock einer Merkmals-Extrahierschaltung 9A und den in N Kleinblöcke in vertikaler Richtung unterteilten Kontrollblock einer Merkmals-Extrahierschaltung 9B zuzuführen.
  • Jede der Merkmalswert-Extrahierschaltungen 8A, 8B ist dazu ausgebildet, einen oder mehrere Merkmalswerte für jeden der Kleinblöcke, die ihr zugeführt wurden, zu bilden und die Merkmalswerte der Vergleichs- und Absolutwert-Summierungsschaltung 10A zuzuführen. Ebenso sind die Merkmals-Extrahierschaltungen 8B, 9B dazu ausgebildet, Merkmalswerte zu bilden und die Merkmalswerte der Vergleichs- und Absolutwert- Summierungsschaltung 10B zuzuführen.
  • Für einen Merkmalswert, der einen Kleinblock repräsentiert, ist es beispielsweise möglich, den Wert, der durch Addition oder Mittelung aller Pixel des Kleinblocks erhalten wird, Minimal- und Maximalwerte der Pixel in dem Kleinblock, einen oder mehrere der Koeffizienten, die bei einer Hadamard-Konvertierung, eine DCT- Transformation oder eine Wavelet-Konvertierung der Pixel in dem Kleinblock erhalten werden, Maximal- und Minimalwerte der Koeffizienten, die bei einer Hadamard- Konvertierung, einer DCT-Transformation oder einer Wavelet-Konvertierung der Pixel in dem Kleinblock erhalten werden, oder einen oder mehrere andere repräsentative Werte zu verwenden.
  • Die Merkmalswert-Extrahierschaltungen 8A, 8B, 9A, 9B können Tiefpaß-Filter enthalten.
  • Die Vergleichs- und Summierungsschaltung 10A dient dazu, die Summe der Absolutwerte der Differenzen zwischen den Merkmalswerten der Kleinblöcke, die durch Unterteilung des Referenzblocks in horizontaler Richtung erhalten wurden, und der Merkmalswerte der Kleinblöcke, die durch Unterteilung des Kontrollblocks in horizontaler Richtung erhalten wurden, zu bilden und diese Horizontalsumme der Wichtungs-Addierschaltung 11 zuzuführen.
  • Die Vergleichs- und Absolutwert-Summierungsschaltung 10B dient dazu, die Summe der Absolutwerte der Differenzen zwischen den Merkmalswerten der Kleinblöcke, die durch Unterteilung des Referenzblocks in vertikaler Richtung gebildet wurden, und der Merkmalswerte der Kleinblöcke, die durch Unterteilung des Kontrollblocks in vertikaler Richtung gebildet wurden, zu bilden und diese Vertikalsumme der Wichtungs- Addierschaltung 11 zuzuführen.
  • Anstelle der Bildung der Absolutwert-Summe der Differenzen kann durch beide Schaltungen 10A, 10B auch die Quadratsumme der Differenzen erhalten werden.
  • Die Wichtungs-Addierschaltung 11 ist dazu ausgebildet, die Horizontal-Summe und die Vertikal-Summe zu addieren und die kombinierte Horizontal- und Vertikal-Summe zu Wichten, um einen Entwicklungswert zu bilden, und den Entwicklungswert einer Beurteilungsschaltung 12 zuzuführen. Beispielsweise kann die Summe der Horizontaldifferenzen mit einem Faktor Wh und die Summe der Vertikaldifferenzen mit einem Faktor Wv, Wh + Wv = 1, gewichtet werden. Für ein Stehbild ist es vorteilhaft Wh = Wv = 0,5 zu wählen. Für ein Bewegungsbild mit Bewegung hauptsächlich in horizontaler Richtung sollte die Beziehung Wh > Wv, beispielsweise Wh = 0,7 und Wv = 0,3 gelten. Die Wichtungswerte Wh, Wv können beispielsweise durch eine (nicht dargestellte) Wichtungswert-Erfassungsschaltung für jeden Bildrahmen aktiv gewählt werden.
  • Der Kontrollblock wird in dem vorgegebenen Vektorsuchbereich Pixel um Pixel bewegt, wie zuvor bei dem bekannten Vollsuchverfahren erläutert wurde. Bei jeder Neupositionierung des Kontrollblocks dient die Beurteilungsschaltung 12 dazu, die Entwicklungswerte für die Positionen des Kontrollblocks innerhalb des vorgegebenen Suchbereichs miteinander zu vergleichen. Die Beurteilungsschaltung 12 erfaßt diejenige Position des Kontrollblocks, die dem Minimum der Entwicklungswerte entspricht, erzeugt einen Bewegungsvektor zwischen dem Referenzblock und der Position des Kontrollblocks, die dem Minimum der Entwicklungswerte entspricht, und führt den Bewegungsvektor einem Ausgangsanschluß 13 zu.
  • Fig. 10 zeigt einen Momentanrahmen 17, der einen Referenzblock 15 enthält, und einen Referenzrahmen 18, der einen Kontrollblock 16 enthält. Der Ablauf der Erfassung eines Grads in der Übereinstimmung zwischen dem Referenzblock 15 und dem Kontrollblock 16 wird nun erläutert.
  • Fig. 11A zeigt den in horizontaler Richtung unterteilten Referenzblock 15, wodurch Kleinblöcke HA1, HA2, HA3, ... gebildet werden. Merkmalswerte ha1, ha2, ha3, ... für die Kleinblöcke HA1, HA2, HA3, ... werden erhalten. Fig. 11B zeigt den in vertikaler Richtung unterteilten Referenzblock 15, wodurch Kleinblöcke VA1, VA2, VA3, ... gebildet werden. Merkmalswerte va1, va2, va3, ... für die Kleinblöcke VA1, VA2, VA3, ... des Referenzblocks 15 werden erhalten. Die in den Fig. 11A und 11B gezeigten Unterteilungen werden als Zweirichtungs-Anordnung bezeichnet, wobei die Richtungen horizontal und vertikal sind.
  • In gleicher Weise zeigen die Fig. 12A und 12B den in horizontaler Richtung unterteilten Kontrollblock 16, wodurch Kleinblöcke HB1, HB2, HB3, ... gebildet werden, für die jeweils Merkmalswerte hb1, hb2, hb3, ... erhalten werden, und den in vertikaler Richtung unterteilten Kontrollblock 16, wodurch Kleinblöcke VB1, VB2, VB3, ... erhalten wurden, für die jeweils Merkmalswerte vb1, vb2, vb3,.., erhalten werden.
  • Die Vergleichsschaltung 10a in Fig. 9 vergleicht die Merkmalswerte ha1, ha2, ha3, ... für den Referenzblock 15 mit den Merkmalswerten hb1, hb2, hb3, ... für den Kontrollblock 16, um den Grad der Übereinstimmung zwischen dem Referenzblock 15 und dem Kontrollblock 16 zu bestimmen. Die Vergleichsschaltung 10b in Fig. 9 vergleicht die Merkmalswerte va1, va2, va3, ... für den Referenzblock 15 mit den Merkmalswerten vb1, vb2, vb3, ... für den Kontrollblock 16, um den Grad der Übereinstimmung zwischen dem Referenzblock 15 und dem Kontrollblock 16 zu bestimmen.
  • Die Menge an Berechnungen, die entsprechend der vorliegenden Erfindung benötigt wird, um die Merkmalswerte, welche den Referenz- und den Kontrollblock repräsentieren, zu vergleichen, ist geringer als die Menge an Berechnungen, die entsprechend dem bekannten Vollsuchverfahren benötigt wird, um die Pixel des Referenz- und Kontrollblocks zu vergleichen. Daher reduziert die vorliegende Erfindung die benötigten Berechnungen zur Erfassung des Bewegungsvektors.
  • Wenn wie oben beschrieben Kleinblöcke aus dem Referenz- und dem Kontrollblock gebildet werden, ist die Erfassungsgenauigkeit für Bewegungsvektoren im Wesentlichen die gleiche wie die Erfassungsgenauigkeit für Bewegungsvektoren in dem bekannten Vollsuchverfahren.
  • Es wird nun der Fall erläutert, in dem zur Merkmals-Extrahierung eine eindimensionale Hadamard-Konvertierung verwendet wird.
  • Die Pixel eines Kleinblocks können hadamard-konvertiert werden, um eine Serie von Hadamard-Koeffizienten zu erhalten. Es sei angenommen, daß die Elemente jeder der eindimensionalen Serien, die durch Unterteilung in (n) Serien erhalten wurden, auf 2m (m = 1, 2, 3, ...) gesetzt wurden:
  • Ai(2m) = (Ai1, Ai2, ..., Ai2m)
  • In diesem Fall ist die Hadamard-Serie von 2m · 2m wie folgt.
  • Wenn Ai unter Verwendung der obigen Gleichung hadamard-konvertiert wird, werden die folgenden Gleichungen erhalten:
  • ai(2m) = H(2m, 2m) · Ai(2m)
  • (Gl. 5A)
  • ai(2m) = (ai1, ai2, ..., ai2m)
  • (Gl. 5B)
  • Durch Extrahieren eines oder mehrerer Elemente der ai1 bis ai2m wird die Merkmals- Extrahierung ausgeführt.
  • Wenn die Elemente von Ai nicht gleich 2m sind, kann die Merkmals-Extrahierung auf die gleiche Weise wie folgt durchgeführt werden. Wenn nun vorausgesetzt wird, daß die Anzahl an Elementen gleich (m') ist, wird eine Konvertierunsserie H (m', n) von (n x m'), in der alle Elemente gleich 1 oder -1 sind gebildet. Ai werden durch Verwendung der folgenden Serien konvertiert:
  • ai(m') = H(m', n) · Ai(m')
  • (Gl. 6A)
  • ai(m') = (ai1, ai2, ..., aim')
  • (Gl. 6B)
  • In diesem Fall wird die Merkmals-Extrahierung ausgeführt durch Extrahieren eines oder mehrerer Elemente der ai1 bis aim'.
  • In dem oben beschriebenen Ausführungsbeispiel der vorliegenden Erfindung werden Kleinblöcke in zwei Richtungen für den Referenz- und den Kontrollblock geformt, nämlich in horizontaler Richtung und in vertikaler Richtung. Alternativ dazu ist es möglich, den Referenz- und den Kontrollblock in ein Gitter (d. h. in ein Schachbrettmuster oder Netz) von Kleinblöcken zu unterteilen. Fig. 13A zeigt einen nicht-unterteilten Block, d. h. einen Referenzblock oder einen Kontrollblock. Fig. 13B zeigt den Block in Fig. 13A unterteilt in ein Gitter von Kleinblöcken. Für den Referenz- und den Kontrollblock wird für jeden der Kleinblöcke in dem Gitter ein Merkmalswert erhalten. Die Merkmalswerte von korrespondierenden Kleinblöcken des Referenz- und des Kontrollblocks werden miteinander verglichen. Die Menge an Berechnungen, die für die Anordnung des Gitters von Kleinblöcken benötigt werden, ist geringer als die Anzahl an Berechnungen, die für das bekannte Vollsuchverfahren, das einen Pixel-zu-Pixel-Vergleich durchführt, benötigt werden. Allerdings ist die Anzahl an Berechnungen, die für die Gitteranordnung von Kleinblöcken benötigt wird, größer als die Anzahl an Berechnungen, die benötigt wird, wenn die Kleinblöcke in zwei Richtungen gebildet werden, wie dies in den Fig. 11A, 11B und 12A, 12B gezeigt ist.
  • Wenn beispielsweise ein Bewegungsvektor durch Unterteilung eines Blocks, der in horizontaler Richtung (A) Pixel und in vertikaler Richtung (B) Pixel aufweist - wie in Fig. 13A gezeigt - in ein Gitter von Kleinblöcken, die in jeder Dimension jeweils (i) Pixel aufweisen, erfolgt, ist die Gesamtanzahl von Kleinblöcken gleich
  • (A/i) · (B/i)
  • Wenn der in Fig. 13A gezeigte Block statt dessen wie in den Fig. 11A, 11B oder 12A, 12B gezeigt in Kleinblöcke in zwei Richtungen unterteilt wird, ist die Anzahl von Kleinblöcken gleich
  • (A/i) + (B/ i)
  • Da in den Fig. 11A, 11B oder 12A, 12B gezeigten Zweirichtungs-Anordnung weniger Kleinblöcke gebildet werden als in der in Fig. 13B gezeigten Gitteranordnung, benötigt die Zweirichtungs-Anordnung weniger Berechnungen als die Gitteranordnung, wobei sie einen Bewegungsvektor erzeugt, der im Wesentlichen die gleiche Genauigkeit aufweist.
  • Fig. 14 zeigt ein weiteres Ausführungsbeispiel einer Bewegungsvektor- Erfassungsvorrichtung entsprechend der vorliegenden Erfindung, in der Merkmalswerte für die Kleinblöcke eines Kontrollblocks durch Aufsummierung von Pixeln erhalten werden.
  • Bilddaten eines Momentanrahmens werden einem Eingangsanschluß 23 zugeführt, der die Bilddaten einem Momentanrahmenspeicher 21 zuführt, der dazu dient, den Momentanrahmen zu speichern. Bilddaten eines Referenzrahmens werden einem Eingangsanschluß 24 zugeführt, der die Bilddaten einem Referenzrahmenspeicher 22 zuführt, der dazu dient, den Referenzrahmen zu speichern. Die Steuerschaltung 26 steuert das Auslesen und Einschreiben des Momentan- und des Referenzrahmenspeichers 21, 22.
  • Der Momentanrahmenspeicher 21 dient auch dazu, Bilddaten des Momentanrahmens als Referenzblock mit (N · M) Pixeln auszugeben, beispielsweise mit (16 · 16) Pixeln, und den Referenzblock einem Demultiplexer 27 (MUX) zuzuführen.
  • Der Referenzrahmenspeicher 22 dient auch dazu, die Bilddaten des Referenzrahmens als Kontrollblock mit (N · M) Pixeln auszugeben und den Kontrollblock einem Demultiplexer 29 (MUX) zuzuführen. Eine Adressenbewegungsschaltung 25 ist ausgebildet, die dem Referenzrahmenspeicher 22 zugeführte Ausleseadresse so zu variieren, daß die Position des Kontrollblocks in einem vorgegebenen Vektorsuchbereich um jeweils ein Pixel verschoben wird.
  • Die beiden Demultiplexer 27, 29 sind dazu ausgebildet, die ihnen jeweils zugeführten Referenz- und Kontrollblöcke in mehrere Kleinblöcke in zwei Dimensionen zu unterteilen. Die in horizontaler Richtung geteilten Kleinblöcke werden den Merkmals- Extrahierschaltungen 28A, 30A zugeführt. Die in vertikaler Richtung geteilten Kleinblöcke werden den Merkmals-Extrahierschaltungen 28B, 308 zugeführt.
  • Jede der Merkmals-Extrahierschaltungen 28A, 30A ist ausgebildet, einen oder mehrere Merkmalswerte für jeden der ihr zugeführten Kleinblöcke zu bilden und die Merkmalswerte an eine Subtrahierschaltung 31A weiterzuleiten. In gleicher Weise sind die Merkmals-Extrahierschaltungen 288, 30B ausgebildet, Merkmalswerte zu erhalten und die Merkmalswerte an die Subtrahierschaltung 318 weiterzuleiten.
  • Konkret erhalten die Merkmalsschaltungen 28A, 28B und 30A, 30B jeweils die Merkmalswerte han, van, hbn und vbn, n = 1 bis 16, von den Pixeln der aus den Blöcken A (n, n), B (n, n), n = 1 bis 16, wie in den Fig. 15 und 16 gezeigt, gebildeten Kleinblöcke entsprechend den folgenden Gleichungen:
  • Fig. 17 zeigt einen Schaltungsaufbau, der für die Merkmals-Extrahierschaltungen 28A, 28B geeignet ist. Pixel von Kleinblöcken des Referenzblocks werden einem Eingangsanschluß 28 zugeführt, der die Pixel dem Eingang eines Addierers 37 zuführt. Ein Ausgangssignal des Addierers 37 wird an einen weiteren Eingangsanschluß des Addierers weitergeleitet. Der Addierer 37 dient dazu, die Pixel der Kleinblöcke in einer Richtung aufzuaddieren, um einen Merkmalswert für den Kleinblock zu erhalten, und den Merkmalswert dem Ausgangsanschluß 39 zuzuführen.
  • Fig. 18 zeigt einen Schaltungsaufbau, der für die Merkmals-Extrahierschaltungen 30A, 30B geeignet ist, welche die Menge an Berechnungen reduziert, wenn der Kontrollblock in dem vorgegebenen Vektorsuchbereich bewegt wird, und welche eine Addierschaltung 41, eine Latchschaltung 42, eine Subtrahierschaltung 43 und einen Selektor 44 aufweist.
  • Fig. 19 zeigt die Momentanposition eines Kleinblocks als durchgezogene Linie. Der Merkmalswert hb&sub1;Momentanposition dieses Kleinblockes ist:
  • hb&sub1;Momentanposition = B(1,1) + B(1,2) + B (1,3) + ... + B(1,16)
  • (Gl. 8A)
  • Die nächst Position dieses Kleinblocks, d. h. eine Bewegung um ein Pixel nach rechts, ist in Strichlinie dargestellt. Der Merkmalswert hb&sub1;nächste Position dieses Kleinblockes ist:
  • hb&sub1;nächste Position = B(1,2) + B(1,3) + B(1,4) + ... + B(1,17)
  • (Gl. 8B)
  • Einem Vergleich der Gleichungen 8A und 8B kann entnommen werden, daß diese wie folgt zusammenhängen:
  • hb&sub1;nächste Position = hb&sub1;Momentanposition - B(1,1) + B(1,17)
  • (Gl. 8C)
  • Die Berechnung von hb&sub1;nächste Position entsprechend der Gleichung 8B erfordert mehr Berechnungen als eine Berechnung von hb&sub1;nachste Position entsprechend der Gleichung 8C. Daher wird die Anzahl an Berechnungen bei einer Bewegung des Kontrollblocks in dem vorgegebenen Vektorsuchbereich durch die Konstruktion von Merkmalsschaltungen 30A, 30B entsprechend der Gleichung 8C reduziert.
  • Pixel der Kleinblöcke des Kontrollblocks werden einem Eingangsanschluß 45 in Fig. 18 zugeführt, der die Pixel dem Eingang eines Addierers 41 und der Latchschaltung 42 zuführt. Ein Ausgangssignal des Selektors 44 wird einem weiteren Eingangsanschluß des Addierers 41 zugeführt. Der Addierer 41 dient dazu, die neu hinzugefügten Pixel dem Ausgangssignal des Selektors 44 hinzuzufügen und das Ergebnis dem Subtrahierer 43 und dem Selektor 44 zuzuführen. Die Latchschaltung 42 dient dazu, eine Vielzahl von Pixel zu speichern und einen der gespeicherten Pixel als Ausgangssignal dem Subtrahierer 43 zuzuführen. Der Subtrahierer 43 dient dazu, den von der Latchschaltung 42 empfangenen Pixel von dem vom Addierer 41 empfangenen Resultat zu subtrahieren und den auf diese Weise erhaltenen Wert dem Ausgangsanschluß 46 und dem Selektor 44 zuzuführen.
  • Zu Beginn dient der Selektor 44 für die erste Position des Kontrollblocks dazu, den Ausgangswert des Addierers 41 zu selektieren und den Ausgangswert des Addierers 41 als seinen eigenen Ausgangswert weiterzuleiten. Die Latchschaltung 42 speichert Pixel in seinen Speicherplätzen und erzeugt einen Ausgangswert mit dem Wert 0 an der ersten Position des Kontrollblocks. Daher summiert der Addierer 41 Pixel des Kleinblocks in horizontaler oder vertikaler Richtung der Position des Kontrollblocks. Bei der nächsten Position des Kontrollblocks, wenn das Pixel B(1, 17) vom Eingangsanschluß 45 empfangen wird, erzeugt der Addierer 41 das Ergebnis hb&sub1;Momentanposition +B(1, 17). Die Latchschaltung 42 gibt ihren ältesten Wert, beispielsweise B(1, 1) an den Subtrahierer 43, der diesen eingeklinkten Wert verwendet, um den Ausgangswert hb&sub1;Momentanposition + B(1, 17) - B(1, 1) zu erzeugen. Der Selektor 44 dient nun dazu, den Ausgangswert des Subtrahierers 43 zu selektieren, so daß die Merkmalswerte für den verschobenen Kontrollblock mit weniger Berechnungen erhalten werden können.
  • Die Subtrahierschaltung 31A in Fig. 14 dient dazu, die Merkmalswerte der Kleinblöcke in horizontaler Richtung des Kontrollblocks von den Merkmalswerten der Kleinblöcke in horizontaler Richtung des Referenzblocks zu subtrahieren, han - hbn, n = 1 bis 16, und das Resultat der Absolutwertschaltung 32A zuzuführen. In gleicher Weise dient die Subtrahierschaltung 31B dazu, die Merkmalswerte der Kleinblöcke in vertikaler Richtung des Kontrollblocks von den Merkmalswerten der Kleinblöcke in vertikaler Richtung des Referenzblocks zu subtrahieren, van - vbn, n = 1 bis 16, und das Resultat der Absolutwertschaltung 32B zuzuführen.
  • Die Absolutwertschaltungen 32A, 32B dienen dazu, die Absolutwerte der ihnen zugeführten Differenzresultate zu bilden, han - hbn , van - vbn , n = 1 bis 16, und die Absolutwerte den Summierungsschaltungen 33A, 33B jeweils zuzuführen. Die Summierungsschaltungen (ADD) 33A, 33B sind dazu ausgebildet, die Absolutwerte der ihnen zugeführten Differenzen zu summieren, Σ han - hbn , Σ van - vbn , n = 1 bis 16, und die Summe der Horizontal- und Vertikaldifferenzen der Wichtungs- Addierschaltung 34 zuzuführen.
  • Die Wichtungs-Addierschaltung 34 dient dazu, die Differenz-Summen zu gewichten, und diese miteinander zu addieren, um ein Ergebnis
  • (Wh · Σ han - hbn ) + (Wv · Σ van - vbn )
  • zu erzeugen und dieses der Vergleichs- und Beurteilungsschaltung 35 zuzuführen.
  • Die Vergleichs- und Beurteilungsschaltung 35 dient dazu, denjenigen Kontrollblock als passenden Block zu selektieren, der eine Position in dem vorgegebenen Vektorsuchbereich hat, bei dem das von der Wichtungs-Addierschaltung 34 erhaltene Resultat minimiert wird, ein Bewegungsvektor zwischen dem Referenzblock und dem passenden Block zu erstellen und den Bewegungsvektor dem Ausgangsanschluß 36 zuzuführen.
  • Fig. 20 zeigt ein weiteres Ausführungsbeispiel einer Bewegungsvektor- Erfassungsvorrichtung entsprechend der vorliegenden Erfindung, in der Merkmalswerte, die während der Erfassung eines vorherigen Bewegungsvektors erhalten wurden, zur Erfassung eines momentanen Bewegungsvektors wiederverwendet werden. Die Vorrichtung in Fig. 20 zeigt eine vereinfachte Anordnung der Bauteile.
  • Die Motivation für das in Fig. 20 gezeigte Ausführungsbeispiel wird nun mit Bezug auf Fig. 21 erläutert, die Vektorsuchbereiche A1, B1, A2, B2, A3, B3 und Referenzblöcke C1, D1, C2, D2, C3, D3 zeigt.
  • Für den in Fig. 21 gezeigten Referenzblock C1 weist der vorgegebene Vektorsuchbereich die zwei Bereiche A1, B1 auf. Wenn ein Bewegungsvektor für den Referenzblock C1 erfaßt wird, werden Merkmalswerte für die Kleinblöcke in dem Referenzblock C1 benötigt sowie Merkmalswerte für die Kleinblöcke in den Vektorsuchbereichen A1 und B1.
  • Für den nächsten in Fig. 21 gezeigten Referenzblock D1 weist der vorgegebene Vektorsuchbereich die Bereiche B1, A2 auf. Wenn ein Bewegungsvektor für den Referenzblock D1 erfaßt wird, werden Merkmalswerte für die Kleinblöcke in dem Referenzblock D1 sowie Merkmalswerte für die Kleinblöcke in den Vektorsuchbereichen B1 und A2 benötigt. Da die Merkmalswerte der Kleinblöcke in dem Vektorsuchbereich B1 bereits zuvor während der Erfassung des Bewegungsvektors für den Referenzblock C1 erhalten wurden, ist es effizient, diese Merkmalswerte wiederzuverwenden, wenn der Bewegungsvektor für den Referenzblock D1 erfaßt wird.
  • In gleicher Weise ist es für die Erfassung des Bewegungsvektors für den Referenzblock C2 effizient, die Merkmalswerte für den Vektorsuchbereich A2 wiederzuverwenden, die zuvor während der Erfassung des Bewegungsvektors für den Referenzblock D1 erhalten wurden.
  • Ganz allgemein kann die Hälfte der Merkmalswerte für den vorherigen Vektorsuchbereich für den momentanen Vektorsuchbereich wiederverwendet werden.
  • Das Ausführungsbeispiel in Fig. 20 wird lediglich bezüglich der horizontalen Richtung erläutert. Dem Fachmann wird die Vorgehensweise in vertikaler Richtung sofort offensichtlich.
  • Bilddaten (Pixel) eines Referenzrahmens werden einem Eingangsanschluß 53 zugeführt, der die Referenzrahmen-Pixel den Suchbereichspeichern 51, 52 zuführt, die jeweils ausgebildet sind, die Hälfte des vorgegebenen Vektorsuchbereichs zu speichern und jeweils die in ihnen gespeicherten Daten als Kleinblöcke in horizontaler Richtung einem Selektor 54 zuzuführen. Der Selektor 54 ist ausgebildet, die Kleinblöcke eines der ihm zugeführten Vektorsuchbereiche auszuwählen und die gewählten Kleinblöcke einer Addierschaltung 55 und einer Latchschaltung 56 zuzuführen.
  • Der Addierer 55, die Latchschaltung 56, der Subtrahierer 57 und der Selektors 58, die in Fig. 20 dargestellt sind, funktionieren grundsätzlich in der gleichen Weise wie die entsprechenden Elemente in Fig. 18, um Merkmalswerte für die Kleinblöcke in horizontaler Richtung einer Hälfte des vorgegebenen Vektorsuchbereichs zu erhalten.
  • Der Selektor 59 ist ausgebildet, den von dem Subtrahierer 57 erhaltenen Merkmalswert an die Merkmalswertspeicher 60, 61 weiterzuleiten, die jeweils ausgebildet sind, die Merkmalswerte für die Hälfte des vorgegebenen Vektorsuchbereichs zu speichern und die darin gespeicherten Werte an den Selektor 62 weiterzuleiten. Der Selektor 62 dient dazu, die zu ihm weitergeleiteten Merkmalswerte den Subtrahierschaltungen 63, 64 zuzuführen.
  • Bilddaten (Pixel) des Momentanrahmens werden einem Eingangsanschluß 73 zugeführt, der Referenzblock-Daten aus dem Momentanrahmen an die Referenzblockspeichern 71, 72 weiterleitet, die jeweils ausgebildet sind, den Referenzblock zu speichern und den gespeicherten Referenzblock jeweils den Addierschaltungen 74, 75 zuzuführen.
  • Der Addierer 74 empfängt auch seinen eigenen Ausgangswert und dient dazu, die Pixel der Kleinblöcke in horizontaler Richtung des Referenzblocks zu akkumulieren, wodurch Merkmalswerte für die Kleinblöcke in horizontaler Richtung des Referenzblocks erhalten werden, die in dem Referenzblockspeicher 71 gespeichert werden. Der Addierer 74 führt die Merkmalswerte dem Subtrahierer 63 zu.
  • Der Subtrahierer 63 dient dazu, die Merkmalswerte der Kleinblöcke des Kontrollblocks von den Merkmalswerten der Kleinblöcke des Referenzblocks zu subtrahieren und die resultierende Differenz der Absolutwertschaltung 76 zuzuführen, die ausgebildet ist, den Absolutwert der Differenz zwischen den Merkmalswerten zu bilden und den Absolutwert der Differenz dem Addierer 77 zuzuführen.
  • Der Addierer 77 empfängt ebenso seinen eigenen Ausgangswert und dient dazu, die Absolutwerte der Differenzen zwischen den Merkmalswerten der Kleinblöcke in horizontaler Richtung des Referenz- und des Kontrollblocks aufzusummieren und die Summe an den Ausgangsanschluß 78 weiterzuleiten.
  • Der Addierer 75, der Subtrahierer 64, die Absolutwertschaltung 79 und der Addierer 80 funktionieren in der gleichen Weise wie der Addierer 75, der Subtrahierer 63, die Absolutwertschaltung 76 bzw. der Addierer 77. Der Addierer 77 leitet seine Summe an den Ausgangsanschluß 81 weiter.
  • Wie der obigen Erläuterung entnommen werden kann, vergleichen der Subtrahierer 63, die Absolutwertschaltung 76 und der Addierer 77 die Merkmalswerte eines ersten Referenzblocks mit den Merkmalswerten in einem bestimmten Suchbereich, während der Subtrahierer 64, die Absolutwertschaltung 79 und der Addierer 80 die Merkmalswerte eines zweiten Referenzblocks mit den Merkmalswerten in dem gleichen bestimmten Suchbereich vergleichen. Daher werden die Merkmalswerte für einen bestimmten Suchbereich lediglich einmal berechnet und während der Erfassung des Bewegungsvektors für zwei getrennte Referenzblöcke verwendet.
  • Die Funktion des Ausführungsbeispiels in Fig. 20 wird nun mit Bezug auf die Fig. 22A und 22B erläutert. Die Fig. 22A zeigt die Belegung der Speicher 51, 52, 71, 72 und Fig. 22B zeigt die Blöcke, für die Merkmalswerte verglichen werden.
  • Wie in Fig. 22A gezeigt ist, werden während des Zeitraums T1 Daten des Suchbereichs A1 in den Suchbereichspeichern 51 und Daten des Referenzblocks C1 in den Referenzblockspeicher 71 eingelesen, und der Addierer 55 erhält die Merkmalswerte für den Vektorsuchbereich A1, die in dem Merkmalswertspeicher 60 gespeichert werden. Der Addierer 74 erhält die Merkmalswerte aus den Daten des in dem Referenzblock-Speicher 71 gespeicherten Referenzblocks C1.
  • Wie in Fig. 22B gezeigt ist, vergleichen während des Zeitraums T2 der Subtrahierer 63, die Absolutwertschaltung 76 und der Addierer 77 die Merkmalswerte des Referenzblocks C1 mit den Merkmalswerten in dem Suchbereich A1. Wie in Fig. 22A gezeigt ist, werden ebenfalls während des Zeitraums T2 Daten des Vektorsuchbereichs B1 in den Suchbereichspeicher 52 und Daten des nächsten Referenzblocks D1 in den Referenzblockspeicher 72 eingelesen, und der Addierer 55 erhält die Merkmalswerte in dem Vektorsuchbereich B1, die in dem Merkmalswertspeicher 61 gespeichert werden. Der Addierer 75 erhält die Merkmalswerte aus den Daten des in dem Referenzblockspeicher 73 gespeicherten Referenzblocks D1.
  • Wie in Fig. 22B gezeigt ist, vergleichen während des Zeitraums T3 der Subtrahierer 63, die Absolutwertschaltung 76 und der Addierer 77 die Merkmalswerte des Referenzblocks C1 mit den Merkmalswerten in dem Suchbereich B1. Der Referenzblock C1 wird daher mit dem Suchbereich, der die Bereiche A1 und B1 enthält, verglichen - wie dies ebenfalls in Fig. 21 gezeigt ist - und Bewegungsvektoren in den Suchbereichen A1 und B1 für den Referenzblock C1 werden erhalten. Zum Ende des Zeitraums C1 wird der Bewegungsvektor für den Referenzblock C1 ausgegeben.
  • Wie in Fig. 22B gezeigt ist, vergleichen ebenfalls während des Zeitraums T3 der Subtrahierer 64, die Absolutwertschaltung 79 und der Addierer 80 die Merkmalswerte des Referenzblocks D1 mit den Merkmalswerten in dem Suchbereich B1. Ebenfalls während des Zeitraums T3 - wie in Fig. 22A gezeigt ist - werden Daten des Vektorsuchbereichs A2 in den Suchbereichspeicher 51 und Daten des nächsten Referenzblocks C2 in den Referenzblock-Speicher 71 eingelesen, und der Addierer 55 und der Subtrahierer 57 erhalten die Merkmalswerte aus dem Vektorsuchbereich A2, die in dem Merkmalswertspeicher 60 gespeichert werden. Der Addierer 74 erhält die Merkmalswerte von den Daten des Referenzblocks C2, der in dem Referenzblockspeicher 71 gespeichert ist.
  • In gleicher Weise wie oben werden die Bewegungsvektoren für die Referenzblöcke D1, C2, D2, C3, D3... erhalten.
  • Die zwei Richtungen zum Bilden der Kleinblöcke können die horizontale und die vertikale Richtung sein, wie oben beschrieben wurde. Alternativ dazu können die zwei Richtungen zum Bilden der Kleinblöcke zwei andere Richtungen sein, die im Wesentlichen senkrecht zueinander sind, wie zum Beispiel die von unten nach oben verlaufende schräge Richtung, die in Fig. 23A gezeigt ist, und die entgegengesetzt schräge Richtung, die in Fig. 23B gezeigt ist. Die schrägen Richtungen der Fig. 23A und 23B verlaufen bezüglich der Horizontalachse in Winkeln von 45º bzw. 135º.
  • Wenn die zwei Richtungen zum Teilen eines Blocks die Horizontal- und Vertikalrichtung sind, können Horizontal- und Vertikallinien in dem Bild sofort durch die Merkmalswerte für die Kleinblöcke unterschieden werden, aber es ist manchmal unmöglich, Diagonallinien, die senkrecht zueinander sind, durch die Merkmalswerte zu unterscheiden. In gleicher Weise können, wenn die zwei Richtungen zum Unterteilen eines Blocks die beiden in den Fig. 23A und 23B geneigten Richtungen sind, Diagonallinien sofort durch die Merkmalswerte für die Kleinblöcke unterschieden werden, aber es ist manchmal schwierig, Horizontal- und Vertikallinien durch die Merkmalswerte zu unterscheiden. Es ist dementsprechend offensichtlich, daß die Genauigkeit der Bewegungserfassung ansteigt, wenn die Unterteilung eines Blocks in mehr als zwei Richtungen erfolgt, wie z. B. in horizontaler Richtung, vertikaler Richtung, von unten nach oben verlaufender schräger Richtung und entgegengesetzt schräger Richtung.
  • Eine Anwendung der vorliegenden Erfindung auf ein Mehrfachschrittverfahren zum Erzeugen von Bewegungsvektoren wird nun erläutert. Für das Mehrfachschrittverfahren werden Merkmalswerte so erzeugt, daß die Genauigkeit erreicht werden kann, die für jeden Schritt in einem Suchintervall benötigt wird.
  • Fig. 24 zeigt ein weiteres Ausführungsbeispiel einer Bewegungsvektor- Erfassungsvorrichtung entsprechend der vorliegenden Erfindung, die ein Mehrfachschrittverfahren zum Erhalten von Bewegungsvektoren verwendet, das entsprechend der vorliegenden Erfindung modifiziert wurde.
  • Das Mehrfachschrittverfahren zum Erhalten von Bewegungsvektoren entsprechend der vorliegenden Erfindung wird nun mit Bezug auf die Fig. 25 bis 28 beschrieben.
  • Die Fig. 25A und 26A zeigen einen Block, bei dem es sich um einen Referenzblock oder um einen Kontrollblock handeln kann, der (A · B) Pixel aufweist.
  • Der erste Schritt des Mehrfachschrittverfahrens entsprechend der vorliegenden Erfindung beinhaltet die Unterteilung des Blocks in Kleinblöcke in horizontaler und vertikaler Richtung, auch als horizontale und vertikale Dimension bezeichnet. Fig. 25B zeigt den in horizontaler Richtung in (A/(ix)) Kleinblöcke, jeweils mit der Dimension von (ix) · (B) Pixeln, unterteilten Block aus Fig. 25A. Fig. 26B zeigt den in vertikaler Richtung in (B/(iy)) Kleinblöcke, jeweils mit der Dimension von (A) · (iy) Pixeln, unterteilten Block in Fig. 26A. Die (A/ix + B/iy) passenden Elemente werden durch einen Raumfilter aus den Kleinblöcken, die durch die Unterteilung erhalten wurden, in Übereinstimmung mit dem Suchintervall ix extrahiert. Somit kann die Genauigkeit in dem Suchintervall erhalten werden, welche für diesen Schritt benötigt wird.
  • Der nächste Schritt des Mehrfachschrittverfahrens entsprechend der vorliegenden Erfindung enthält eine weitere Unterteilung der Kleinblöcke, die in dem vorherigen Schritt gebildet wurden, in kleinere Blöcke. Fig. 25C zeigt jeden der Kleinblöcke in Fig. 25B in horizontaler Richtung in (b) kleinere Blöcke unterteilt, 1 &le; b < B/iy, wodurch insgesamt (A/(ix)) · (b) kleinere Blöcke erzeugt werden, wobei jeder kleinere Block eine Dimension von (A/(ix)) x (B/b) Pixel aufweist. Fig. 26C zeigt jeden der Kleinblöcke in Fig. 26B in vertikaler Richtung in (a) kleinere Blöcke unterteilt, 1 &le; a < A/ix, wodurch insgesamt (B/(iy)) · (a) kleinere Blöcke erzeugt werden, wobei jeder kleinere Block eine Dimension von (B/(iy)) · (A/a) Pixel aufweist. In diesem nächsten Schritt werden Merkmalswerte für jeden der in den Fig. 25C und 26C gezeigten kleineren Blöcke erhalten, wodurch die Erfassungsgenauigkeit für den Bewegungsvektor erhöht wird.
  • Wenn die Anzahl an Unterteilungen in einer Dimension gleich (K) gewählt wird und (K) ein Wert in einem Bereich ist, der die folgende Gleichung befriedigt, kann die Größenordnung der Hardware einer Vorrichtung entsprechend der vorliegenden Erfindung relativ zu der Größenordnung der Hardware für das bekannte Mehrfachschrittverfahren zum Erfassen von Bewegungsvektoren reduziert werden.
  • K = (((A/ix) · b) + ((B/ix) · a)) < A · B/ix · iy
  • (Gl. 9)
  • Die Fig. 27 und 28 zeigen ein Beispiel der Funktion des Mehrfachschrittverfahrens zum Erfassen von Bewegungsvektoren entsprechend der vorliegenden Erfindung.
  • Wie in den Fig. 27A und 28A gezeigt ist, werden die Größen des Referenzblocks und des Kontrollblocks auf (16 · 16) Pixel gesetzt, und ein Vektorsuchbereich wird auf ((+ 15) Pixel · (-16) Pixel) gesetzt.
  • Im ersten Schritt wird das Suchintervall ix auf 2 Pixel gesetzt. Wie in den Fig. 27B und 27C gezeigt ist, wird der (16 · 16) Block in vertikaler Richtung und ebenso in horizontaler Richtung alle zwei Pixel in Kleinblöcke unterteilt. Der Block wird daher in 16/2 Kleinblöcke in horizontaler Richtung und ebenso in 16/2 Kleinblöcke in vertikaler Richtung unterteilt. Um die Erfassungsgenauigkeit zu erhöhen, wird jeder der 8 Kleinblöcke in horizontaler und vertikaler Richtung in zwei kleinere Blöcke unterteilt. Es werden daher insgesamt 16/2 · 2 kleinere Blöcke in jeder Richtung gebildet, das heißt insgesamt werden 2 · (16/2 · 2) = 32 kleinere Blöcke gebildet. Für jeden kleineren Block wird ein Merkmalswert erhalten. Bei Verwendung der 32 auf diese Weise erhaltenen Merkmalswerte, wird ein Bewegungsvektor mit einer Genauigkeit von 2 Pixeln erzeugt.
  • Im zweiten Schritt wird das Suchintervall ix auf ein Pixel gesetzt. Wie in den Fig. 28B und 28C gezeigt ist, wird der (16 · 16) Block für jedes Pixel in Kleinblöcke in vertikaler Richtung unterteilt und ebenso für jedes Pixel in Kleinblöcke in horizontaler Richtung. Der Block wird somit in 16/l Kleinblöcke in horizontaler Richtung und ebenso in 1611 Kleinblöcke in vertikaler Richtung unterteilt. Um die Erfassungsgenauigkeit zu erhöhen, wird jeder der 16 Kleinblöcke in horizontaler und vertikaler Richtung in 4 kleinere Blöcke unterteilt. Somit werden insgesamt 16/1 · 4 kleinere Blöcke in jeder Richtung gebildet, das heißt insgesamt werden 2 · (16/1 · 4) = 128 kleinere Blöcke gebildet. Für jeden kleineren Block wird ein Merkmalswert erhalten. Bei Verwendung der auf diese Weise erhaltenen 128 Merkmalswerte wird ein Bewegungsvektor mit einer Genauigkeit von einem Pixel erzeugt.
  • Wenn der Referenzblock und der Kontrollblock in ein Gitter von Kleinblöcken unterteilt werden und ein Merkmalswert für jeden der auf diese Weise gebildeten Kleinblöcke, wie in Fig. 13B gezeigt, erhalten wird, sowie ein Mehrfachschrittverfahren durchgeführt wird, wird ein Verfahren zum Extrahieren eines Merkmalswerts so eingesetzt, daß diejenige Genauigkeit erreicht wird, die in dem Suchintervall notwendig ist, das in dem Schritt in Übereinstimmung mit dem Suchintervall gefordert ist. Mit diesem Verfahren wird die notwendigen Genauigkeit gesichert und der Berechnungsaufwand nicht erhöht.
  • Gemäß Fig. 24 werden Bilddaten (Pixel) des Momentanrahmens dem Eingangsanschluß 92 zugeführt, der die Pixel dem Momentanrahmenspeicher 91 zuführt, der ausgebildet ist, die Bilddaten des Momentanrahmens zu speichern. Pixel des Referenzrahmens werden dem Eingangsanschluß 94 zugeführt, der die Pixel einem Referenzrahmenspeicher 93 zuführt, der ausgebildet ist, die Bilddaten des Referenzrahmens zu speichern. Die Steuerschaltung 95 steuert das Auslesen und Einschreiben des Momentan- und des Referenzrahmenspeichers 91, 93.
  • Der Momentanrahmenspeicher 91 dient auch dazu, die Bilddaten des Momentanrahmens als Referenzblock von (N · M) Pixeln auszugeben und den Referenzblock an eine Kleinblock-Bildungsschaltung 96 weiterzuleiten.
  • Der Referenzrahmenspeicher 93 dient auch dazu, die Bilddaten des Referenzrahmens als Kontrollblock von (N · M) Pixeln auszugeben und den Kontrollblock einer Kleinblock- Bildungsschaltung 97 zuzuführen. Eine Adressenbewegungsschaltung 105 dient dazu, die dem Referenzrahmenspeicher 93 zugeführte Ausleseadresse so zu variieren, daß die Position des Kontrollblocks in einem vorgegebenen Vektorsuchbereich jeweils um (i) Pixel verändert wird, das heißt mit einer Präzision von (i) Pixeln. Eine Adressenbewegungsschaltung 106 dient dazu, die dem Referenzrahmenspeicher 93 zugeführte Ausleseadresse so zu variieren, daß die Position des Kontrollblocks in einem vorgegebenen Vektorsuchbereich um je ein Pixel verändert wird, das heißt mit einer Genauigkeit von einem Pixel.
  • Kleinblock-Bildungsschaltungen 96, 97, Merkmals-Extrahierschaltungen 98A, 98B, 99A, 998, Vergleichs- und Absolutwert-Summierungsschaltungen 100A, 1008, und die Wichtungs-Addierschaltung 101, die in Fig. 24 gezeigt sind, funktionieren grundsätzlich in der gleichen Weise wie die entsprechenden Elemente in Fig. 9. Die Wichtungs-Addierschaltung 101 in Fig. 24 gibt ihren Ausgangswert an die Beurteilungsschaltung 102.
  • Während des ersten Schritts des Mehrfachschrittverfahrens entsprechend der vorliegenden Erfindung wird der Kontrollblock in dem vorgegebenen Vektorsuchbereich durch die Adressenbewegungsschaltung 105 jeweils um (i) Pixel verschoben. Bei jeder Neupositionierung des Kontrollblocks dient die Beurteilungsschaltung 102 dazu, die Entwicklungswerte für die Positionen des Kontrollblocks innerhalb des vorgegebenen Suchbereichs zu vergleichen. Die Beurteilungsschaltung 102 bestimmt diejenige Position des Kontrollblocks, die dem Minimum der Entwicklungswerte entspricht, erzeugt einen groben Bewegungsvektor zwischen dem Referenzblock und der Position des Kontrollblocks, die dem Minimum in den Entwicklungswerten entspricht, und leitet den groben Bewegungsvektor an die Steuerschaltung 95.
  • Während des nächsten Schritts des Mehrfachschrittverfahrens entsprechend der vorliegenden Erfindung wird der Kontrollblock in der Nähe des Bereichs, der um das Gebiet zentriert ist, das durch den groben Bewegungsvektor angegeben wird, in Pixel- Einzelschritten durch die Adressenbewegungsschaltung 106 bewegt. Bei jeder Neupositionierung des Kontrollblocks dient die Bewertungschaltung 102 dazu, die Entwicklungswerte für die Positionen des Kontrollblocks innerhalb des vorgegebenen Suchbereichs zu vergleichen. Die Beurteilungsschaltung 102 bestimmt diejenige Position des Kontrollblocks, die dem Minimum in den Entwicklungswerten entspricht, erzeugt einen feinen Bewegungsvektor zwischen dem Referenzblock und derjenigen Position des Kontrollblocks, die dem Minimum in den Entwicklungswerten entspricht, und gibt den feinen Bewegungsvektor, der eine Genauigkeit von einem Pixel hat, an den Ausgangsanschluß 103 weiter.
  • Fig. 24 zeigt eine Vorrichtung, die eine Zweischritt-Suche durchführt. Für den Fachmann ist es offensichtlich, wie eine Vorrichtung gebildet werden kann, die eine Dreischritt-Suche oder eine Vierschritt-Suche durchführt.
  • In dem ersten Schritt wird die Größe eines (N · M) Blocks zweifach vergrößert, wodurch ein (2N · 2M) Block gebildet wird. Durch Unterabtastung eines solchen Blocks wird ein (N · M) Block erhalten. Ein Blockvergleich wird durch Bewegen des unterabgetasteten Blocks um zwei Pixel durchgeführt, wodurch ein grober Bewegungsvektor erhalten wird. Im nächsten Schritt ist es ebenfalls möglich, den Blockvergleich durch Bewegen des Bewegungsvektors von (N · M) um jeweils ein Pixel durchzuführen und somit abschließend den Bewegungsvektor mit hoher Präzision zu erfassen.
  • Eine Variation entsprechend der vorliegenden Erfindung zum Erfassen eines Bewegungsvektors unter Verwendung eines Mehrfachschrittverfahrens besteht darin, unter Verwendung von Merkmalswerten von Kleinblöcken zunächst einen groben Bewegungsvektor zu erfassen und dann einen Bewegungsvektor mit hoher Präzision zu erfassen, wobei ein pixelweiser Vergleich des Referenz- und des Kontrollblocks durchgeführt wird. Diese Variation erfordert weniger Berechnung als das bekannte Mehrfachschrittverfahren und erzeugt einen Bewegungsvektor mit einer hohen Präzision.
  • Die Anwendung der vorliegenden Erfindung auf ein Interpolationsverfahren zum Erzeugen eines Hochpräzisions-Bewegungsvektors wird nun erläutert.
  • Fig. 29 zeigt ein weiteres Ausführungsbeispiel einer Bewegungsvektor- Erfassungsvorrichtung entsprechend der vorliegenden Erfindung, die ein Interpolationsverfahren zum Erhalten eines Bewegungsvektors mit einer Auflösung von einem halben Pixel verwendet. Die Vorrichtung in Fig. 29 interpoliert die Pixel des Referenzrahmens und bewegt den Kontrollblock in Pixel-Schritten innerhalb des vorgegebenen Suchbereichs des interpolierten Referenzrahmens, um somit einen Bewegungsvektor mit einer Genauigkeit von einem Pixel bei der interpolierten Referenzrahmen-Auflösung zu erhalten, was einer Genauigkeit von einem halben Pixel der ursprünglichen Referenzrahmen-Auflösung entspricht.
  • Die Eingangsanschlüsse 112, 114, der Momentanrahmenspeicher 111, die Steuerschaltung 115, die Kleinblock-Bildungsschaltungen 116, 117, die Merkmals- Extrahierschaltungen 118A, 118B, 119A, 119B, die Vergleichs- und Absolutwert- Summierungsschaltungen 120A, 120B, die Wichtungs-Addierschaltung 121 und die Beurteilungsschaltung 122 in Fig. 29 funktionieren grundsätzlich in der gleichen Weise wie die entsprechenden Elemente in Fig. 9.
  • Der Referenzrahmen-Speicher 113 dient dazu, die Pixel des Referenzrahmens, der von dem Eingangsanschluß 114 erhalten wurde, zu speichern, und die darin gespeicherten Daten in Abhängigkeit von Adressdaten, die von der Adressenbewegungsschaltung 124 erhalten wurden, an eine Umschalteinrichtung 126 weiterzuleiten.
  • Der Schalter 126 ist ausgebildet, die Referenzrahmendaten an eine Interpolationsschaltung 125 oder an ein Schaltnetz 127 weiterzuleiten, in Abhängigkeit von einem (nicht dargestellten) Steuersignal.
  • Der Interpolierer 125 dient dazu, die Referenzblockdaten zu interpolieren, um interpolierte Daten zu bilden und die interpolierten Daten dem Schalter 127 zuzuführen. Wie oben mit Bezug auf Fig. 8 erläutert wurde, wird ein interpolierter Wert aus zwei ursprünglichen Pixeln gebildet, wenn seine Position direkt zwischen diesen liegt, und wird aus vier ursprünglichen Pixeln gebildet, wenn er sich im Zentrum eines Quincunx- Musters befindet, das er mit den vier ursprünglichen Pixeln bildet.
  • Der Schalter 127 dient dazu, entweder die interpolierten Daten oder die ursprünglichen Pixeldaten, die diesem zugeführt wurden, als Kontrollblockdaten zu wählen. Die Adressenbewegungsschaltung 124, der Speicher 113, der Interpolierer 125 und die Schalter 126, 127 dienen dazu, die Position des Kontrollblocks um jeweils ein Pixel in einem vorgegebenen Vektorsuchbereich bei interpolierter Pixelauflösung zu bewegen.
  • Genauer gesagt werden jedesmal, wenn der Kontrollblock um ein Pixel bewegt wird, die Anschlüsse 126A, 127A der Schaltnetze 126, 127 gewählt, und der Interpolierer 125 bildet interpolierte Daten zwischen den ursprünglichen Referenzblock-Pixeln, was gleichbedeutend ist mit einer Bewegung des Kontrollblocks um ein halbes Pixel. Jedesmal, wenn der Kontrollblock um die Distanz, die einem halben Pixel entspricht, bewegt wird, vergleicht die Beurteilungsschaltung 122 den Entwicklungswert aus der Wichtungs-Addierschaltung 121 und bestimmt die Position desjenigen Kontrollblocks, die dem Minimum der Entwicklungswerte entspricht, erzeugt einen Bewegungsvektor zwischen dem Referenzblock und derjenigen Position des Kontrollblocks, die dem Minimum der Entwicklungswerte entspricht, und leitet den Bewegungsvektor, der eine Genauigkeit von einem halben Pixel aufweist an den Ausgangsanschluß 123 weiter.
  • Fig. 30 zeigt ein weiteres Ausführungsbeispiel einer Bewegungsvektor- Erfassungsvorrichtung entsprechend der vorliegenden Erfindung, die ein Interpolationsverfahren zum Erhalten eines Bewegungsvektors mit einer Genauigkeit von einem halben Pixel verwendet. Die Vorrichtung in Fig. 30 interpoliert die Merkmalswerte der Kleinblöcke des Kontrollblock, um einen Bewegungsvektor mit einer Genauigkeit von einem halben Pixel zu erhalten.
  • Die Eingangsanschlüsse 132, 134, der Momentanrahmenspeicher 131, der Referenzrahmenspeicher 133, die Steuerschaltung 135, die Kleinblock- Bildungsschaltungen 136, 137, die Merkmals-Extrahierschaltungen 138A, 138B, 139A, 1398, die Vergleichs- und Absolutwert-Summierungsschaltung 140A, 140B, die Wichtungs-Addierschaltung 141 und die Beurteilungsschaltung 142 in Fig. 30 funktionieren grundsätzlich in der gleichen Weise wie die entsprechenden Elemente in Fig. 9. Die Adressenbewegungsschaltung 140 dient dazu, Adressen an den Referenzrahmen-Speicher 133 so weiterzuleiten, daß die Position des Kontrollblocks in einem vorgegebenen Vektorsuchbereich in Schritten von jeweils einem Pixel bewegt wird.
  • In dem in Fig. 30 dargestellten Ausführungsbeispiel leiten die Merkmalswert- Extrahierschaltungen 139A, 139B die Merkmalswerte der Kleinblöcke in horizontaler und vertikaler Richtung des Kontrollblocks jeweils den Interpolier-Schaltungen 146A, 1468, und den Selektoren 147A, 147B zu.
  • Die Interpolierer 146A, 146B, sind jeweils ausgebildet, die ihnen zugeführten Merkmalswerte zu interpolieren, um somit interpolierte Merkmalswerte zu erzeugen, und die interpolierten Merkmalswerte jeweils den Selektoren 147A, 147B zuzuführen.
  • Die Selektoren 147A, 147B dienen dazu, die ursprünglichen und interpolierten Merkmalswerte für die Kleinblöcke des Kontrollblocks den Vergleichs- und Absolutwert-Summierungsschaltungen 140A, 140B zuzuführen. Die Kombination der ursprünglichen und der interpolierten Merkmalswerte erzeugt Merkmalswerte mit einer Auflösung von einem halben Pixel, was mit einer Bewegung des Kontrollblocks um einen halben Pixel gleichbedeutend ist.
  • Die Beurteilungsschaltung 142 vergleicht die Entwicklungswerte, die jeder Neupositionierung des Kontrollblocks entsprechen, erzeugt einen Bewegungsvektor mit einer Auflösung von einem halben Pixel und leitet den Bewegungsvektor an den Ausgangsanschluß 143 weiter.
  • Eine Variation zum Erfassen eines Bewegungsvektors mit einer Genauigkeit von einem halben Pixel besteht darin, zunächst die Position des am besten übereinstimmenden Kontrollblocks in dem vorgegebenen Suchbereich mit einer Genauigkeit von einem Pixel zu bestimmen und dann in der Nähe der Position des am besten übereinstimmenden Blocks zu interpolieren und abschließend in dem interpolierten Bereich nach einem neuen am besten übereinstimmenden Block zu suchen.
  • Eine weitere Variation zum Erfassen eines Bewegungsvektors mit einer Genauigkeit von einem halben Pixel besteht darin, zuerst einen Bewegungsvektor mit einer Genauigkeit von (i) Pixeln zu erfassen und dann die Mehrfachschritt-Suche und die Erfassung eines Bewegungsvektors mit einer Genauigkeit von einem halben Pixel zu kombinieren.
  • Die vorliegende Erfindung schließt ebenfalls eine weitere Unterteilung der Kleinblöcke, die in zwei Dimensionen, wie z. B. in vertikaler und horizontaler gebildet wurden, das Erhalten von Merkmalswerten für jeden der weiter unterteilten Kleinblöcke und das Verwenden der auf diese Weise erhaltenen Merkmalswerte zum Erfassen eines Bewegungsvektors ein.

Claims (20)

1. Vorrichtung zum Erfassen von Bewegungsvektoren, mit:
ersten Speichermitteln (1) zum Speichern aktueller Bilddaten und zum Auslesen eines Referenzblocks (15) aus den aktuellen Bilddaten, der eine erste Größe hat;
ersten Kleinblock-Bildungsmitteln (6) zum Unterteilen des ausgelesenen Referenzblocks in jeder von zwei Richtungen, um somit für jede der beiden Richtungen einen Satz kleiner Blöcke (HA1 usw., VA1 usw.) zu bilden;
zweiten Speichermitteln (3) zum Speichern eines Suchbereichs (SV) aus Referenz-Bilddaten, wobei der Suchbereich (SV) eine zweite Größe hat, die mindestens so groß wie die erste Größe ist, und zum Auslesen verschiedener Abschnitte aus dem gespeicherten Suchbereich entsprechend einem Steuersignal zu Kontrollblöcken (16), welche die erste Größe haben;
zweiten Kleinblock-Bildungsmitteln (7) zum Unterteilen des ausgelesenen Kontrollblocks in jeder von diesen zwei Richtungen, um somit für jede der beiden Richtungen einen Satz kleiner Blöcke (HB1 usw., VB1 usw.) zu bilden;
Steuersignal-Erzeugungsmittel (14) zum Erzeugen des Steuersignals, welches die verschiedenen Abschnitte des in den zweiten Speichermitteln gespeicherten Suchbereichs anzeigt; und
Mitteln (10, 11, 12) zum Vergleichen der Sätze kleiner Blöcke, die durch die ersten und zweiten Kleinblock-Bildungsmittel (6, 7) in jeder der beiden Richtungen gebildet wurden, um festzustellen, welcher der aus dem Suchbereich ausgelesenen Kontrollblöcke am besten mit dem Referenzblock übereinstimmt, und zum Erzeugen eines Bewegungsvektors zwischen dem Referenzblock und dem am besten übereinstimmendem Kontrollblock.
2. Vorrichtung nach Anspruch 1, wobei die beiden Richtungen eine vertikale und eine horizontale Richtung enthalten.
3. Vorrichtung nach Anspruch 1, wobei die beiden Richtungen eine erste schräge Richtung enthalten, die im wesentlichen senkrecht zu einer zweiten schrägen Richtung ist.
4. Vorrichtung nach Anspruch 1, wobei die ersten und zweiten Kleinblock-Bildungsmittel jeweils ausgebildet sind, jeden der kleinen Blöcke, der in einer der beiden Richtung gebildet wurde, in der anderen der beiden Richtungen zu unterteilen.
5. Vorrichtung nach Anspruch 1 oder 2,
wobei die Mittel zum Vergleichen ausgebildet sind, die aus dem ausgelesenen Referenzblock in einer ersten der beiden Richtungen gebildeten kleinen Blöcke mit den aus dem ausgelesenen Kontrollblock in der ersten Richtung gebildeten kleinen Blöcken zu vergleichen,
und wobei sie ebenfalls ausgebildet sind, die aus dem ausgelesenen Referenzblock in der zweiten der beiden Richtungen gebildeten kleinen Blöcke mit den aus dem ausgelesenen Kontrollblock in der zweiten Richtung gebildeten kleinen Blöcken zu vergleichen.
6. Vorrichtung nach Anspruch 5, wobei die Mittel zum Vergleichen ausgebildet sind, den Vergleich der kleinen Blöcke in der ersten Richtung relativ zum Vergleich der kleinen Blöcke in der zweiten Richtung zu gewichten.
7. Vorrichtung nach einem der vorherigen Ansprüche,
wobei die Mittel zum Vergleichen enthalten:
Differenzbildungsmittel (10A, 10B), um Differenzen zwischen den kleinen Blöcken aus jeweils dem ersten und dem zweiten Satz kleiner Blöcke, die aus den ausgelesenen Referenzblöcken und Kontrollblöcken gebildet wurden, zu erhalten,
Absolutwertmittel (10A, 10B), um jeweils Absolutwerte der Differenzen zu erhalten,
und Mittel (10A, 10B) zum Summieren der Absolutwerte der Differenzen zwischen den kleinen Blöcken aus den ausgelesenen Referenzblöcken und Kontrollblöcken.
8. Vorrichtung nach einem der vorherigen Ansprüche, die
erste Merkmalsmittel (8A, 8B), um mindestens einen ersten Merkmalswert für jeden der durch die ersten Block-Bildungsmittel (6) gebildeten kleinen Blöcke zu bilden,
sowie zweite Merkmalsmittel (9A, 9B) enthält, um mindestens einen zweiten Merkmalswert für jeden der durch die zweiten Block-Bildungsmittel (6) gebildeten kleinen Blöcke zu bilden,
und wobei die Mittel zum Vergleichen ausgebildet sind, die ersten und zweiten Merkmalswerte zu vergleichen.
9. Vorrichtung nach Anspruch 8,
wobei jeder der kleinen Blöcke, die aus dem ausgelesenen Referenzblock und dem ausgelesenen Kontrollblock gebildet wurden, Pixel enthält;
und wobei jeder der mindestens einen ersten und zweiten Merkmalswerte eines aufweist von einer Summe der Pixel in jedem der kleinen Blöcke, einem Mittelwert der Pixel in jedem der kleinen Blöcke, Minimal- und Maximalwerten der Pixel in jedem der kleinen Blöcke, zumindest einem Hadamard-Konversionskoeffizienten für die Pixel in jedem der kleinen Blöcke, zumindest einem DCT-Koeffizienten für die Pixel in jedem der kleinen Blöcke, zumindest einem Wavelet-Konversionskoeffizienten für die Pixel in jedem der kleinen Blöcke, Maximal- und Minimalwerten von zumindest einem Hadamard-Konversionskoeffizienten für die Pixel in jedem der kleinen Blöcke, Maximal- und Minimalwerten von zumindest einem DCT-Koeffizienten für die Pixel in jedem der kleinen Blöcke und Maximal- und Minimalwerten von zumindest einem Wavelet-Konversionskoeffizienten für die Pixel in jedem der kleinen Blöcke.
10. Vorrichtung nach Anspruch 8 oder 9, wobei jede der ersten und zweiten Merkmalsmittel Tiefpassfiltermittel zum Tiefpassfiltern jedes der jeweils von den ersten und zweiten Blockbildungsmittel (6, 7) gebildeten kleinen Blöcke aufweist.
11. Vorrichtung nach einem der Ansprüche 8 bis 10, wobei die zweiten Merkmalsmittel ausgebildet sind, den Merkmalswert für einen laufenden der aus dem, ausgelesenen Kontrollblock gebildeten kleinen Blöcke zu modifizieren, um den Merkmalswert für einen nächsten der aus dem ausgelesenen Kontrollblock gebildeten kleinen Blöcke zu bilden.
12. Vorrichtung nach Anspruch 11,
wobei jeder der aus dem ausgelesenen Kontrollbock gebildeten kleinen Blöcke Pixel enthält;
und wobei die zweiten Merkmalsmittel
Mittel (41) zum Hinzufügen eines Pixels aus dem nächsten der kleinen Blöcke zu dem Merkmalswert für einen laufenden der kleinen Blöcke aufweisen, um ein Zwischenergebnis bilden,
sowie Mittel (43) zum Subtrahieren eines Pixels aus dem laufenden der kleinen Blöcke von dem Zwischenergebnis, um den Merkmalswert für den nächsten der kleinen Blöcke zu bilden.
13. Vorrichtung nach einem der Ansprüche 8 bis 12,
wobei die ersten und zweiten Kleinblock-Bildungsmittel jeweils ausgebildet sind, erste und zweite Sätze von kleinen Blöcken in beiden Richtungen zu bilden;
wobei die ersten und zweiten Merkmalsmittel jeweils erste Mittel zum Bilden mindestens eines Merkmalswerts für jeden der in einer ersten von beiden Richtungen gebildeten kleinen Blöcke und zweite Mittel zum Bilden mindestens eines Merkmalswerts für jeden der in der zweiten von beiden Richtungen gebildeten kleinen Blöcke aufweisen;
und wobei die Mittel zum Vergleichen ausgebildet sind, die aus dem ausgelesenen Referenzblock in der ersten Richtung gebildeten kleine Blöcke mit den aus dem ausgelesenen Kontrollblock in der ersten Richtung gebildeten kleinen Blöcken sowie die aus dem ausgelesenen Referenzblock in der zweiten Richtung gebildeten kleine Blöcke mit den aus dem ausgelesenen Kontrollblock in der zweiten Richtung gebildeten kleinen Blöcken zu vergleichen.
14. Vorrichtung nach Anspruch 13, wobei die Mittel zum Vergleichen ausgebildet sind, den Vergleich der kleinen Blöcke in der ersten Richtung relativ zu dem Vergleich der kleinen Blöcke in der zweiten Richtung zu gewichten.
15. Vorrichtung nach einem der Ansprüche 8 bis 14,
die Mittel (125) zum Interpolieren der Merkmalswerte für die kleinen Blöcke aus dem zweiten Satz der Blöcke aufweist, um interpolierte Merkmalswerte zu bilden,
und wobei die Mittel zum Vergleichen ausgebildet sind, die Merkmalswerte für den ersten Satz von kleinen Blöcken mit den interpolierten Merkmalswerten für den zweiten Satz von kleinen Blöcken zu vergleichen, so daß der Bewegungsvektor eine höhere Auflösung als ein Pixel hat.
16. Vorrichtung nach einem der vorherigen Ansprüche,
wobei der Suchbereich Pixel enthält;
wobei die Mittel zum Anzeigen der verschiedenen Abschnitte des Suchbereichs ausgebildet sind, Grobabschnitte des Suchbereichs anzuzeigen, die jeweils um mindestens zwei Pixel voneinander abweichen, und zweite Lesesteuermittel ausgebildet sind, Feinabschnitte einer Teilmenge aus dem Suchbereich anzuzeigen, die jeweils um ein Pixel voneinander abweichen;
und wobei die Mittel zum Erzeugen eines Bewegungsvektors ausgebildet sind, einen Grob-Bewegungsvektor entsprechend den aus den Grobabschnitten des Suchbereichs ausgelesenen Kontrollblöcken sowie einen Fein-Bewegungsvektor entsprechend den aus den Feinabschnitten der Teilmenge des Suchbereichs ausgelesenen Kontrollblöcken zu erzeugen.
17. Vorrichtung nach Anspruch 16, wobei die Mittel zum Anzeigen erste Lesesteuermittel (105) zum Anzeigen der Grobabschnitte des Suchbereichs und zweite Lesesteuermittel (106) zum Anzeigen der Feinabschnitte der Teilmenge des Suchbereichs aufweisen.
18. Vorrichtung nach Anspruch 16,
die Interpolationsmittel zum Interpolieren des aus der Teilmenge des Suchbereichs ausgelesenen Abschnitts aufweist;
und wobei die ersten Kleinblock-Bildungsmittel ausgebildet sind, ebenfalls die interpolierten Daten zu dem zweiten Satz kleiner Blöcke zu bilden, so daß der Fein- Bewegungsvektor eine höhere Auflösung als ein Pixel hat.
19. Vorrichtung nach Anspruch 1,
wobei der Suchbereich Pixel enthält;
wobei die Vorrichtung Interpolationsmittel (125) zum Interpolieren der aus dem gespeicherten Suchbereich ausgelesenen Pixel aufweist, um interpolierte Pixel zu bilden;
und wobei die zweiten Kleinblock-Bildungsmittel ausgebildet sind, ebenfalls interpolierte Pixel zu dem zweiten Satz kleiner Blöcke zu bilden, so daß der Bewegungsvektor eine höhere Auflösung als ein Pixel hat.
20. Vorrichtung nach Anspruch 19, wobei die Interpolationsmittel ausgebildet sind, zwei aus dem Suchbereich ausgelesene Pixel zu interpolieren, um eines der interpolierten Pixel zu bilden.
DE69421139T 1993-08-03 1994-07-21 Bewegungsvektordetektion Expired - Fee Related DE69421139T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP21099693 1993-08-03
JP6043131A JPH0799658A (ja) 1993-08-03 1994-02-17 動きベクトル検出装置

Publications (2)

Publication Number Publication Date
DE69421139D1 DE69421139D1 (de) 1999-11-18
DE69421139T2 true DE69421139T2 (de) 2000-05-25

Family

ID=26382881

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69421139T Expired - Fee Related DE69421139T2 (de) 1993-08-03 1994-07-21 Bewegungsvektordetektion

Country Status (6)

Country Link
US (1) US6590937B1 (de)
EP (1) EP0639925B1 (de)
JP (1) JPH0799658A (de)
KR (1) KR100303106B1 (de)
CN (1) CN1070670C (de)
DE (1) DE69421139T2 (de)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MY121607A (en) * 1995-07-10 2006-02-28 Hyundai Curitel Inc Grid moving method of object image and apparatus using the same and compaction/motion estimation method using the same and apparatus thereof
EP0833516B1 (de) * 1996-09-25 2002-10-30 Hyundai Curitel, Inc. Verfahren und Vorrichtung zur Videokodierung mit einem beweglichen Raster von Bildelementen
EP2369847B1 (de) * 1997-02-13 2016-04-20 Mitsubishi Denki Kabushiki Kaisha Verfahren zum Dekodieren von Bewegtbildern
JP3667105B2 (ja) * 1997-10-01 2005-07-06 松下電器産業株式会社 動きベクトル検出方法及びその方法を実施する装置
US6625216B1 (en) * 1999-01-27 2003-09-23 Matsushita Electic Industrial Co., Ltd. Motion estimation using orthogonal transform-domain block matching
JP4223169B2 (ja) * 1999-03-17 2009-02-12 パナソニック株式会社 動きベクトル検出方法,動きベクトル検出装置,及びデータ記録媒体
US6738424B1 (en) 1999-12-27 2004-05-18 Objectvideo, Inc. Scene model generation from video for use in video processing
CN1333327C (zh) * 2004-05-26 2007-08-22 凌阳科技股份有限公司 用以判断轨迹行为的最佳相关匹配方法及系统
US7620249B2 (en) * 2004-09-17 2009-11-17 British Telecommunications Public Limited Company Analysis of patterns
EP1833259A4 (de) * 2004-12-28 2011-01-19 Nec Corp Bildkodierungsvorrichtung, bildkodierungsverfahren und programm dafür
KR100639995B1 (ko) * 2005-06-14 2006-10-31 한국전자통신연구원 블록 정합 기반의 고속 움직임 예측 장치 및 그 방법
WO2007012798A1 (en) * 2005-07-28 2007-02-01 British Telecommunications Public Limited Company Image analysis
EP1798961A1 (de) * 2005-12-19 2007-06-20 BRITISH TELECOMMUNICATIONS public limited company Fokussierungsverfahren
JP4869045B2 (ja) * 2006-11-30 2012-02-01 株式会社東芝 補間フレーム作成方法および補間フレーム作成装置
JP4869049B2 (ja) * 2006-12-08 2012-02-01 株式会社東芝 補間フレーム画像作成方法および補間フレーム画像作成装置
US7924316B2 (en) * 2007-03-14 2011-04-12 Aptina Imaging Corporation Image feature identification and motion compensation apparatus, systems, and methods
US7920746B2 (en) * 2007-04-23 2011-04-05 Aptina Imaging Corporation Compressed domain image summation apparatus, systems, and methods
US9819358B2 (en) 2010-02-19 2017-11-14 Skype Entropy encoding based on observed frequency
US9609342B2 (en) * 2010-02-19 2017-03-28 Skype Compression for frames of a video signal using selected candidate blocks
US20110206132A1 (en) * 2010-02-19 2011-08-25 Lazar Bivolarsky Data Compression for Video
US9313526B2 (en) 2010-02-19 2016-04-12 Skype Data compression for video
US20110206118A1 (en) 2010-02-19 2011-08-25 Lazar Bivolarsky Data Compression for Video
US9596467B2 (en) * 2010-12-21 2017-03-14 Nec Corporation Motion estimation device for predicting a vector by referring to motion vectors of adjacent blocks, motion estimation method and storage medium of motion estimation program

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2633468B1 (fr) * 1988-06-24 1990-11-09 France Etat Procede de codage de donnees d'assistance a la reconstruction d'images electroniques animees sous-echantillonnees
JPH0262108A (ja) * 1988-08-29 1990-03-02 Matsushita Electric Ind Co Ltd 電気部品
FR2651399B1 (fr) * 1989-08-29 1996-05-15 Thomson Consumer Electronics Procede et dispositif d'estimation et de codage hierarchise du mouvement de sequences d'images.
FR2663178B1 (fr) * 1990-06-06 1995-07-21 Thomson Csf Procede d'estimation hierarchique du mouvement dans une sequence d'images.
JPH0453389A (ja) * 1990-06-21 1992-02-20 Graphics Commun Technol:Kk 動ベクトル検出装置
DE69116036T2 (de) * 1990-08-28 1996-08-01 Philips Electronics Nv Verfahren und Anordung zum Verringern der Bewegungsabschätzapparatur und der Anforderungen an die Datenübertragungskapazität in Video-Systemen
JP3103894B2 (ja) * 1991-02-06 2000-10-30 ソニー株式会社 ビデオデータの手振れ補正装置およびその方法
US5347309A (en) * 1991-04-25 1994-09-13 Matsushita Electric Industrial Co., Ltd. Image coding method and apparatus
US5200820A (en) * 1991-04-26 1993-04-06 Bell Communications Research, Inc. Block-matching motion estimator for video coder
US5278663A (en) * 1991-06-28 1994-01-11 Samsung Electronics Co. Ltd. Method for compensating the vibration of an image and device therefor in a video camera
JP3123130B2 (ja) * 1991-06-28 2001-01-09 ソニー株式会社 動きベクトル検出装置
EP0595895B1 (de) * 1991-07-23 1997-12-29 BRITISH TELECOMMUNICATIONS public limited company Verfahren und vorrichtung zur bildinterpolation von bewegtbildern
US5235419A (en) * 1991-10-24 1993-08-10 General Instrument Corporation Adaptive motion compensation using a plurality of motion compensators
US5398078A (en) * 1991-10-31 1995-03-14 Kabushiki Kaisha Toshiba Method of detecting a motion vector in an image coding apparatus
US5430886A (en) * 1992-06-15 1995-07-04 Furtek; Frederick C. Method and apparatus for motion estimation
US5398079A (en) * 1993-01-27 1995-03-14 General Instrument Corporation Half-pixel interpolation for a motion compensated digital video system
US5485214A (en) * 1993-02-25 1996-01-16 Industrial Technology Research Institute Dual bus dual bank architecture for motion compensation
KR960015395B1 (ko) * 1993-04-09 1996-11-11 대우전자 주식회사 움직임벡터 검출장치
KR950014343B1 (ko) * 1993-05-20 1995-11-24 한국방송공사 고화질 티브(hdtv)의 화상데이타 움직임 추정방법 및 그 장치

Also Published As

Publication number Publication date
US6590937B1 (en) 2003-07-08
CN1070670C (zh) 2001-09-05
KR950007537A (ko) 1995-03-21
EP0639925B1 (de) 1999-10-13
EP0639925A2 (de) 1995-02-22
KR100303106B1 (ko) 2001-11-22
CN1109245A (zh) 1995-09-27
JPH0799658A (ja) 1995-04-11
DE69421139D1 (de) 1999-11-18
EP0639925A3 (de) 1995-08-16

Similar Documents

Publication Publication Date Title
DE69421139T2 (de) Bewegungsvektordetektion
DE69812882T2 (de) Verfahren zur bewegungskompensierten Mehrhalbbildverbesserung von Videostandbildern
DE69524235T2 (de) Verfahren und vorrichtung zur global-zu-lokal-block-bewegungsschätzung
DE69233167T2 (de) Prädiktives Videokodierungssystem
DE69324486T2 (de) Bildsignalumsetzer
DE69031055T2 (de) Bewegungsabhängige Videosignalverarbeitung
DE69027809T2 (de) Bewegungsabhängige Videosignalverarbeitung
DE69032437T2 (de) Bewegungseinschätzer
DE69126585T2 (de) Verfahren und Gerät zur Kodierung von bewegten Bildsignalen
DE69026557T2 (de) Bewegungsschätzung
DE69022461T2 (de) Bildbewegungsvektordetektor.
DE69131938T2 (de) Bewegungsvektorerfassungsgerät
DE69332348T2 (de) Architektur zur Ausführung der hierarchischen Bewegungsanalyse von Bildern in Echtzeit
DE3853555T2 (de) Verarbeitung des Bewegungsvektors in digitalen Fernsehbildern.
DE69132475T2 (de) Bewegungsabhängige Videosignalverarbeitung
DE69822060T2 (de) Aufwärtsabtasterfilter und halbbildelementgenerator für abwärtsumsetzungssystem für hochauflösungsfernsehen
DE69114791T2 (de) Verfahren und Anordnung zum Verarbeiten eines Bildsignals.
DE69021431T2 (de) Bewegungsabhängige Videosignalverarbeitung.
DE3512278C2 (de)
EP1770635B1 (de) Iteratives Verfahren zur Interpolation von Bildinformationswerten
DE69801209T2 (de) Hierarchischer rekursiver Bewegungsschätzer für Bewegtbildkodierer
DE69028651T2 (de) Bewegungsabhängige Videosignalverarbeitung
DE3629472A1 (de) Verfahren zur bewegungskompensierten bild-zu-bild-praediktionscodierung
DE69015419T2 (de) Umwandlung eines Videosignals auf einen photographischen Film.
DE3851655T2 (de) Verarbeitung des Bewegungsvektors in Fernsehbildern.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee