DE69327040T2 - Blockübereinstimmungsarchitektur mit mehreren Modulen - Google Patents

Blockübereinstimmungsarchitektur mit mehreren Modulen

Info

Publication number
DE69327040T2
DE69327040T2 DE69327040T DE69327040T DE69327040T2 DE 69327040 T2 DE69327040 T2 DE 69327040T2 DE 69327040 T DE69327040 T DE 69327040T DE 69327040 T DE69327040 T DE 69327040T DE 69327040 T2 DE69327040 T2 DE 69327040T2
Authority
DE
Germany
Prior art keywords
modules
pixels
search window
module
current block
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 - Lifetime
Application number
DE69327040T
Other languages
English (en)
Other versions
DE69327040D1 (de
Inventor
Foo-Ming Lee
Vincent M.S. Lin
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.)
Industrial Technology Research Institute ITRI
Original Assignee
Industrial Technology Research Institute ITRI
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 Industrial Technology Research Institute ITRI filed Critical Industrial Technology Research Institute ITRI
Publication of DE69327040D1 publication Critical patent/DE69327040D1/de
Application granted granted Critical
Publication of DE69327040T2 publication Critical patent/DE69327040T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection
    • H04N5/145Movement estimation
    • 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
    • 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
    • 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

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)
  • Image Analysis (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)

Description

    Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft die Kompression von Videosignalen. Insbesondere betrifft die vorliegende Erfindung eine Mehrfachmodularchitektur zur Ausführung eines Vollsuchblockanpassungsalgorithmus. Jedes Modul umfaßt eine eindimensionale, systolische Anordnung von Verarbeitungselementen. Der Blockanpassungsalgorithmus ermöglicht die Entfernung einer temporalen Redundanz von einem Videosignal in Echtzeit und auf hocheffiziente Weise.
  • Hintergrund der Erfindung
  • Eine Bewegtbildsequenz enthält für gewöhnlich eine signifikante Menge an Bild-zu-Bild-Redundanz. Bei Videophon- oder Telekonferenzanwendungen ist die Bewegung in der gesamten Szene für gewöhnlich gering und aufeinanderfolgende Vollbilder sind stark korreliert. In einem derartige Fall können Bild-zu-Bild- Kodierungstechniken die Informationsredundanz in Videosequenzen verringern und eine hohe Datenkompression erreichen.
  • Der Blockanpassungs-Bewegungskompensationsalgorithmus wird allgemein in vielen Videokodierern zur Entfernung einer Bild-zu-Bild-Redundanz verwendet. Die grundlegende Idee beim Blockanpassungsalgorithmus ist die Teilung des aktuellen Vollbildes in der Videosequenz in Blöcke und die Suche bei jedem Block nach einer besten Anpassungsposition in einem Suchfenster des vorangehenden Videobildes.
  • Die beste Anpassung des aktuellen Blocks in dem Suchfenster wird durch Ermittlung des Minimalwertes einer Fehlerfunktion
  • E = a(i,j)-b(i+mi,j+mj)q
  • bestimmt, wobei a(i,j) Pixelwerte des aktuellen Blocks des aktuellen Vollbildes sind, b(i,j) die Pixelwerte des Suchfensters des vorangehenden Bildes sind, i ein vertikaler Koordinatenindex ist, j ein horizontaler Koordinatenindex ist, und mi, mj einen Kandidatenverschiebungsvektor darstellt. Der Potenzfaktor q ist für gewöhnlich gleich 1 oder 2.
  • Der Verschiebungsvektor (d. h. der Wert von mi, mj), der die Fehlerfunktion E minimiert, wird Bewegungsvektor genannt.
  • Der aktuelle Block des aktuellen Videobildes kann wie folgt kodiert werden. Die Differenz zwischen dem aktuellen Block und dem besten Anpassungsblock in dem Suchfenster des vorangehenden Bildes wird erhalten. Diese Differenz wird dann unter Verwendung der diskreten Kosinustransformation, der Quantisierung von Transformationskoeffizienten und variabler Längenkodierung komprimiert. Mit der Bewegungsvektorinformation kann der Empfänger dann den aktuellen Block unter Verwendung des verfügbaren, vorangehenden Bildes und der komprimierten Blockdifferenz rekonstruieren. Je besser die bewegungskompensierte Vorhersage, desto höher ist die Effizienz beim Komprimieren der Blockdifferenz. Somit führt die Verwendung der Bewegungskompensation zu einer außerordentlichen Verringerung der Bitmenge, die zum Kodieren eines Vollbildes verwendet wird.
  • Es gibt mehrere Möglichkeiten zur Ermittlung der besten Anpassungsposition eines aktuellen Blockes eines aktuellen Videobildes in einem Suchfenster eines vorangehenden Videobildes. Eine Methode ist die Vollsuchmethode, wobei die Fehlerfunktion für jede mögliche Verschiebung des aktuellen Blocks in dem Suchfenster bewertet wird.
  • Gegenwärtig gibt es zwei Arten von Architektur, die zur Realisierung eines Vollsuchblockanpassungsalgorithmus verwendet werden können. Eine Architektur ist eine zweidimensionale, systolische Anordnung (siehe z. B. IEEE ICASSP, S. 1687-1690, 1989; IEEE Trans. on CAS, Band 36, Nr. 10, Oktober 1989, S. 1309-1316; und IEEE Trans on CAS, Band 36, Nr. 10, Oktober 1989, S. 1301-1308). Die zweidimensionale, systolische Anordnungsarchitektur hat eine sehr hohe Rechenleistung und kann bei Videosignalen hoher Auflösung oder mit hoher Abtastrate verwendet werden. Der Nachteil dieser Architektur besteht darin, daß bei der Realisierung in einem Chip die Abmessung des Chips groß ist und angesichts des gegenwärtigen Standes der Technik in der Halbleiterverarbeitungstechnologie die Herstellung solcher Chips mit vernünftigen Ausbeuten schwierig ist.
  • Die andere Art von Architektur ist die eindimensionale, systolische Anordnung. (Siehe z. B. IEEE Trans. on CAS, Band 36, Nr. 10, S. 1317-1325, Oktober 1989, und U. S. Patent 4.897.720). Diese Architektur hat den Vorteil einer angemessenen Chipgröße.
  • Die Funktionsweise der eindimensionalen, systolischen Anordnung nach dem Stand der Technik wird in der Folge ausführlicher erklärt.
  • Fig. 1 zeigt ein aktuelles Videobild i und ein unmittelbar vorangehendes Videobild i-1. Zur Veranschaulichung ist das aktuelle Videobild durch Teilen des aktuellen Bildes i in N·N Blöcke kodiert. Ein solcher N·N Block (d. h. der aktuelle Block) von Bild i ist in Fig. 1 dargestellt. Ebenso ist ein Suchfenster für das vorangehende Videobild i-1 in Fig. 1 dargestellt. Das Suchfenster umfaßt die Pixel des vorangehenden Bildes, die dem aktuellen Block entsprechen (in Fig. 1 schattiert dargestellt) und zusätzlich Pixel in jede Richtung. Somit hat das Suchfenster die Dimensionen (p+p+1+N)². Zur Veranschaulichung ist N = 2p+2. Für gewöhnlich ist N = 16 und p = 7.
  • Gemäß der Vollsuchtechnik wird das Suchfenster des vorangehenden Bildes durchsucht, indem der aktuelle Block in der oberen linken Ecke des Suchfensters angeordnet wird und die Fehlerfunktion in bezug auf die überlappten Pixel des Suchfensters berechnet wird. Dann wird der aktuelle Block Pixel um Pixel zu der rechten Grenze des Suchfensters bewegt. In jedem Schritt wird die Fehlerfunktion in bezug auf die überlappten Pixel des Suchfensters berechnet. Dann wird der aktuelle Block in dem Suchfenster eine Reihe von Pixeln nach unten bewegt, und der aktuelle Block wird dann Pixel um Pixel von der linken Grenze des Suchfensters zu der rechten Grenze bewegt. In jedem Schritt wird die Fehlerfunktion zwischen dem aktuellen Block und den überlappten Pixeln des Suchfensters berechnet. Der aktuelle Block wird dann in dem Suchfenster eine weitere Reihe nach unten bewegt und dann Pixel um Pixel von rechts nach links bewegt. Dieser Prozeß wird fortgesetzt, bis eine Fehlerfunktion für alle möglichen Position des aktuellen Blocks in dem Suchfenster berechnet ist. (Daher der Name "Vollsuchblockanpassungsalgorithmus"). Die Fehlerfunktionen für alle Positionen (d. h. alle möglichen Werte von mi, mj) werden verglichen, um den besten Anpassungsblock in dem Suchfenster zu finden, d. h. die Position des aktuellen Blocks in dem Suchfenster mit dem kleinsten Fehler.
  • Ein Schaltungsmodul nach dem Stand der Technik in Form einer eindimensionalen, systolischen Anordnung zur Ausführung des Vollsuchblockanpassungsalgorithmus ist in Fig. 2 dargestellt. Das Modul 10 von Fig. 2 ist eine Variation der in U. S. Patent 4,897.720 offenbarten Schaltung. Das Modul 10 von Fig. 2 ist effizient, da es Fehlerfunktionen für eine Reihe von Positionen des aktuellen Blocks in dem Suchfenster parallel berechnen kann.
  • Das Modul 10 von Fig. 2 umfaßt drei Pixeleingänge. Ein Eingang C empfängt die Pixel des aktuellen Blocks. Ein Eingang P empfängt die Pixel von der linken Seite des Suchfensters (siehe Fig. 1), und ein Eingang P' empfängt die Pixel von der rechten Seite des Suchfensters. Die Reihenfolge, in der die Pixel an den Eingängen eintreffen, wird in der Folge beschrieben.
  • Das Modul 10 umfaßt eine Mehrzahl von Verarbeitungselementen, die mit PE-0, PE-1, ..., PE-15 bezeichnet sind. Die Anzahl von Verarbeitungselementen ist gleich 2p+2. Jedes Verarbeitungselement berechnet die Fehlerfunktion einer Position des aktuellen Blocks in dem Suchfenster. Die Verarbeitungselemente nutzen die Tatsache, daß die Fehlerfunktionsberechnungen benachbarter Position des aktuellen Blicks in dem Suchfenster eine signifikante Anzahl von Pixelwerten gemeinsam verwenden. Somit können die Verarbeitungselemente die Fehlerfunktionen für eine Reihe von Positionen des aktuellen Blocks in dem Suchfenster parallel berechnen.
  • Das Modul 10 von Fig. 2 arbeitet zyklisch. Fig. 3 ist eine Tabelle, welche die Pixeleingaben anzeigt, die jeden Zyklus an den C, P und P' Eingängen vorhanden sind, um die Fehlerfunktionen für eine Reihe von Positionen des aktuellen Blocks in dem Suchfenster parallel zu berechnen.
  • Die Pixel a(i,j) von dem aktuellen Block und b(i,j) von dem Suchfenster treffen an den Eingängen C, P und P' in der in Fig. 3 dargestellten Reihenfolge ein.
  • In Fig. 3 ist das obere, linke Pixel des aktuellen Blocks mit a(0,0) bezeichnet. Das Pixel b(0,0) bezeichnet das obere, linke Pixel des Suchfensters. In Fig. 3 sind die dargestellten Pixel jene Pixel, die zur Berechnung der Fehlerfunktionen für die oberste Reihe von Positionen des aktuellen Blocks in dem Suchfenster notwendig sind.
  • Fig. 3 zeigt, daß die Pixelwerte a(i,j) bei dem Eingang C in jedem Zyklus 0, 1, 2 in einer Rasterabtastungsreihenfolge eintreffen. Die Pixel durchlaufen der Reihe nach die Kette von Flipflops 12.
  • Das Modul 10 umfaßt einen Satz von Multiplexern 14. Ein Ausgang jedes Multiplexers 14 ist an eines der Verarbeitungselemente PE-0, PE-1, ..., PE-15 angeschlossen. Jeder Multiplexer hat zwei Eingänge, welche die Eingänge P und P' sind. In jedem Zyklus wird einer der beiden Multiplexereingänge mit dem zugehörigen Verarbeitungselement verbunden. Das Modul 10 enthält auch eine Kette von Flipflops 16. Jedem Multiplexer 14 ist ein Flipflop 16 zugeordnet. Der Zustand des zugehörigen Flipflops 16 während eines Zyklus bestimmt, ob der entsprechende Multiplexereingang P oder P' mit dem zugehörigen Verarbeitungselement verbunden wird. Wie in Fig. 3 dargestellt ist, befindet sich in jeder Gruppe von sechzehn Zyklen eine Linie 100. Zu Beginn jeder Gruppe von sechzehn Zyklen werden die Zustände der Flipflops 16 durch die Leitung 17 zurückgestellt. Dann pflanzt sich ein Signal entlang der Kette von Flipflops 16 nach unten fort, so daß der Zustand eines zusätzlichen Flipflops in jedem folgenden Zyklus der Gruppe von sechzehn Zyklen eingestellt wird. Wenn die Zustände der Flipflops 16 auf diese Weise geschaffen werden, wird das Pixel b(i,j), das am Eingang P vorhanden ist, zu allen Verarbeitungselementen links von der Linie 100 gesendet, und das Pixel b(i,j), das am Eingang P' vorhanden ist, wird zu allen Verarbeitungselementen rechts von der Linie 100 gesendet.
  • Fig. 3 zeigt auch die Berechnung, die von jedem Verarbeitungselement in jedem Zyklus durchgeführt wird. In jedem Zyklus wird die Differenz zwischen einem bestimmten Pixelwert a(i,j) und einem bestimmten Pixelwert b(i,j) erhalten, die, abhängig von dem Zustand des zugehörigen Multiplexers, von dem P oder P' Eingang empfangen werden. Der Absolutwert oder das Quadrat der Differenz wird erhalten (abhängig davon, ob die Potenz q = 1 oder q = 2 in der Fehlerfunktionsformel verwendet wird), und das Ergebnis wird mit Ergebnissen akkumuliert, die in den vorangehenden Zyklen ermittelt wurden, bis eine vollständige Fehlerfunktion erhalten ist. Wie zuvor angeführt, berechnet jedes Verarbeitungselement die Fehlerfunktion für eine Position des aktuellen Blocks in dem Suchfenster, und die Fehlerfunktionen für eine ganze Reihe von Positionen werden parallel berechnet.
  • In Zyklus 255 beendet das Verarbeitungselement PE-0 die Berechnung seiner Fehlerfunktion. Die oberste der Tristate-Vorrichtungen 19 wird durch ein Freigabesignal freigegeben, so daß die Fehlerfunktion zu einem Komparator 30 übertragen werden kann. Die übrigen Verarbeitungselemente PE-1, PE-2, ..., PE-15 beenden die Berechnung ihrer Fehlerfunktionen in den folgenden fünfzehn Zyklen. Das Freigabesignal durchläuft die Kette von Flipflops 20, so daß in jedem der folgenden Zyklen ein Tristate-Puffer 19 freigegeben wird und die entsprechende Fehlerfunktion zu dem Komparator 30 übertragen wird. Nachdem alle Fehlerfunktionen für alle Positionen des aktuellen Blocks in dem Suchfenster bestimmt wurden, gibt der Komparator 30 eine Anzeige der Position aus, welche die beste Anpassung ist, d. h. der Position mit der kleinsten Fehlerfunktion.
  • In bezug auf den Datenfluß von Fig. 3 sollte beachtet werden, daß die Eingabe der Pixel a(i,j), die zur Berechnung der Fehlerfunktion der obersten Reihe von Positionen des Suchfensters notwendig sind, in Zyklus 255 beendet ist. Somit wiederholt sich die Reihenfolge der Pixel a(i,j) beginnend mit Zyklus 256, da diese Pixel erneut in der Berechnung der zweiten Reihe von Positionen des aktuellen Blocks in dem Suchfenster benötigt werden. Ebenso werden die Pixel b(i,j), die zur Berechnung der zweiten Reihe erforderlich sind, bei dem Eingang P beginnend mit dem Zyklus 256 eingegeben. Von den Pixeln b(i,j), die, zur Berechnung der Fehlerfunktion der zweiten Reihe notwendig sind, wird der vertikale Koordinatenindex im Vergleich zu den Pixeln, die in der Berechnung der Fehlerfunktion der ersten Reihe von Positionen verwendet wurden, um Eins erhöht. Die Pixel b(i,j), die beim Eingang P' zur Berechnung der Fehlerfunktion für die zweite Reihe von Positionen eingegeben werden, beginnen mit Zyklus 272 (in Fig. 3 nicht dargestellt). Es sollte beachtet werden, daß die Berechnungen nach links von der untersten Linie 100 von Fig. 3 zu der Berechnung der Fehlerfunktionen für die zweite Reihe von Positionen gehören.
  • Die zuvor beschriebene funktionsweise des Moduls 10 von Fig. 2 wird für jede Reihe von Positionen des aktuellen Blocks in dem Suchfenster wiederholt. Auf diese Weise führt die eindimensionale, systolische Anordnung, die das Modul 10 von Fig. 2 bildet, einen Vollsuchblockanpassungsalgorithmus aus.
  • Wie zuvor angegeben, werden in dem Modul 10 von Fig. 2 Pixelwerte des aktuellen Blocks in der eindimensionalen, systolischen Anordnung der Reihe nach von einem Verarbeitungselement zu dem nächsten übertragen, während in jedem Zyklus Suchfensterpixel von den P und P' Eingängen zu einer bestimmten Anzahl von Verarbeitungselementen gesendet werden, abhängig von dem Zustand der Flipflops 16. In einer alternativen, eindimensionalen, systolischen Anordnung können Pixelwerte von dem aktuellen Block zu den Verarbeitungselementen gesendet werden, während Suchfensterpixel der Reihe nach von einem Verarbeitungselement zu dem nächsten übertragen werden.
  • Das obengenannten Dokument (IEEE Trans. on CAS, Band 36, Nr. 10, S. 1317-1325, Oktober 1989) schlägt auch vor, daß vier Chips verwendet werden, von welchen jeder ein Viertel des Suchfensters zum gleichen Zeitpunkt berechnet. Die Berechnung erfolgt in jedem der vier Chips unabhängig von den anderen drei Chips, aber es kann für eine gemeinsame Nutzung der Daten von überlappenden Bereichen gesorgt sein, um Speicherplatz zu sparen. Anschließend müssen die vier erhaltenen Werte der kleinsten Fehlerfunktion jedes Chips verglichen werden, um den absoluten Minimalwert zu bestimmen.
  • Es ist eine Aufgabe der vorliegenden Erfindung, eine Mehrzahl von eindimensionalen, systolischen Anordnungsmodulen zu kombinieren, um die Rechenleistung zu erhöhen. (Für diese Verbindungen werden die Flipflops 120 und 200 am Ende der Ketten 12 und 20 hinzugefügt. Diese zusätzlichen Flipflops sind in den herkömmlichen, eindimensionalen, systolischen Anordnungsmodulen nicht erforderlich, sondern ermöglichen vielmehr eine Reihenschaltung solcher Module).
  • Insbesondere ist es eine Aufgabe der vorliegenden Erfindung, eine Mehrzahl von eindimensionalen, systolischen Anordnungsmodulen zu kombinieren, so daß die Fehlerfunktionen einer Mehrzahl von Reihen von Positionen des aktuellen Blocks in dem Suchfenster parallel berechnet werden können. Es ist auch eine Aufgabe der vorliegenden Erfindung, eine Mehrzahl von eindimensionalen, systolischen Anordnungsmodulen zu kombinieren, so daß die Abmessung der Suchfläche vergrößert wird.
  • Zusammenfassung der Erfindung
  • Gemäß der vorliegenden Erfindung umfaßt eine Schaltungsausführung eines Vollsuchblockanpassungsalgorithmus eine Mehrzahl von Modulen. Jedes Modul ist eine eindimensionale, systolische Anordnung. Die Module können in Reihe geschaltet sein, um die Rechenleistung zu erhöhen, so daß die beste Anpassung eines aktuellen Blocks in einem Suchfenster rascher erhalten werden kann, ohne die Anzahl von Eingabekanälen zu erhöhen. Insbesondere können die Fehlerfunktionen einer Mehrzahl von Reihen von Positionen eines aktuellen Blocks in einem Suchfenster parallel berechnet werden. In einem alternativen Ausführungsbeispiel können die Module in Reihe geschaltet sein, um ein größeres Suchfenster mit einem Minimum an zusätzlicher Komplexität und einem Minimum an zusätzlichen Eingabekanälen zu behandeln.
  • Kurze Beschreibung der Zeichnung
  • Fig. 1 zeigt einen aktuellen Block eines aktuellen Videobildes und ein Suchfenster eines vorangehenden Videobildes.
  • Fig. 2 zeigt ein eindimensionales, systolisches Anordnungsmodul zur Ausführung eines Vollsuchblockanpassungsalgorithmus.
  • Fig. 3A und B sind Tabellen, die den Datenfluß in dem eindimensionalen, systolischen Anordnungsmodul von Fig. 2 zeigen.
  • Fig. 4 zeigt eine Schaltung gemäß der vorliegenden Erfindung, die eine Mehrzahl von eindimensionalen, systolischen Anordnungsmodulen zur Ausführung eines Vollsuchblockanpassungsalgorithmus umfaßt, wobei die Fehlerfunktionen für eine Mehrzahl von Reihen von Positionen eines aktuellen Blocks in einem Suchfenster parallel berechnet werden.
  • Fig. 5A und B zeigen den Datenfluß für die Schaltung von Fig. 4.
  • Fig. 6 ist ein Zeitdiagramm für eine Mehrzahl von Maskensignalen, die von der Schaltung von Fig. 4 verwendet werden.
  • Fig. 7 zeigt eine Schaltung gemäß der Erfindung, die eine Mehrzahl von eindimensionalen, systolischen Anordnungsmodulen zur Ausführung eines Vollsuchblockanpassungsalgorithmus umfaßt, wobei ein vergrößertes Suchfenster verwendet wird.
  • Fig. 8 zeigt ein vergrößertes Suchfenster.
  • Fig. 9 ist eine Tabelle, die den Datenfluß in der Schaltung von Fig. 7 zeigt.
  • Fig. 10 zeigt eine zeigt eine Schaltung gemäß der Erfindung, die eine Mehrzahl von eindimensionalen, systolischen Anordnungsmodulen zur Ausführung eines Vollsuchblockanpassungsalgorithmus umfaßt, mit erhöhter Rechenleistung und vergrößertem Suchfenster.
  • Fig. 11, 12A und B und 13A und B sind Tabellen, die den Datenfluß in der Schaltung von Fig. 10 zeigen.
  • Ausführliche Beschreibung der Erfindung
  • Fig. 4 zeigt eine Schaltung 50 zur Ausführung eines Vollsuchblockanpassungsalgorithmus gemäß der vorliegenden Erfindung. Die Schaltung 50 von Fig. 4 berechnet die Fehlerfunktionen für eine Mehrzahl von Reihen von Positionen eines aktuellen Blocks eines aktuellen Videobildes in einem Suchfenster eines vorangehenden Videobildes parallel.
  • Insbesondere umfaßt die Schaltung 50 m Verarbeitungselementmodule 10. Jedes der Module 10 ist eine eindimensionale, systolische Anordnung der in Fig. 2 dargestellten Art. Da m Module vorhanden sind, berechnet die Schaltung 50 von Fig. 4 die Fehlerfunktionen für m Reihen von Positionen des aktuellen Blocks in dem Suchfenster parallel. Wie zuvor angeführt, umfaßt jedes Modul 2p+2 Verarbeitungselemente.
  • Die Schaltung 50 von Fig. 4 umfaßt drei Eingänge C, P, P'. Somit ist die Anzahl von Eingängen der Schaltung 50 von Fig. 4 nicht größer als die Anzahl von Eingängen eines einzelnen Moduls 10 von Fig. 2. Dies bedeutet, daß bei Ausführung der Schaltung 50 in Form eines einzigen Chips eine Erhöhung der Verarbeitungsleistung im Vergleich zu jener eines einzigen Moduls erreicht wird, aber die Anzahl von Eingabekanälen nicht erhöht wird.
  • Die Pixel a(i,j) des aktuellen Blocks (siehe Fig. 1) werden über den Eingang C in die Schaltung 50 eingegeben. Die Pixel von dem Suchfenster werden über die Eingänge P und P1' in die Schaltung 50 eingegeben. Die Pixel von der linken Seite des Suchfensters (siehe Fig. 1) werden über den Eingang P in die Schaltung 50 eingegeben, und die Pixel von der rechten Seite des Suchfensters werden über den Eingang P' in die Schaltung 50 eingegeben. Die Schaltung 50 enthält eine Adressengenerator- und Steuereinheit 52. Die Adressengenerator- und Steuereinheit 52 erzeugt Adressen für die Pixel des aktuellen und vorangehenden Bildes. Die Adressen werden zu Bildspeichern übertragen, welche das aktuelle und vorangehende Bild speichern. Als Reaktion übertragen die Bildspeicher die Pixel des aktuellen Blocks und Suchfensters zu den Eingängen C, P', P.
  • Fig. 5 zeigt die Reihenfolge, in welcher die Pixel über die Eingänge C, P, P' zur parallelen Berechnung der Fehlerfunktionen für m Reihen von aktuellen Blockpositionen in dem Suchfenster eingegeben werden.
  • Die Adressengenerator- und Steuereinheit 52 erzeugt auch einen Satz von Maskensignalen Maske-1, Maske-2, Maske-3, ..., Maske-m, Maske-m+1. Jedes der Maskensignale ist in Fig. 6 gemeinsam mit einem Rückstellungssignal dargestellt. Das Rückstellungssignal hat alle 16 Zyklen einen Impuls. Jedes Maskensignal hat einen logisch-"1"- Impuls über eine Periode von 256 Zyklen, auf die eine logische "0" über 16(m-1) Zyklen folgt. Die Eingänge C, P, P' sind über die Gatter G&sub1;, G&sub2;, G&sub3;, ...., Gm, Gm+1 an die Module 10 angeschlossen. Die Gatter G&sub1;, G&sub2;, G&sub3;, ...., Gm, Gm+1 empfangen die Maskensignale und steuern somit die Übertragung bestimmter Pixel zu den Modulen.
  • Fig. 5 zeigt auch in jedem Zyklus, welche Pixel zu den C, P und P' Eingängen der einzelnen Module 1, 2, ..., m übertragen werden. (In den schraffierten Flächen von Fig. 5 werden die C, P, P' Eingänge der angezeigten Module bei Null gehalten). Mit anderen Worten, die Maskensignale und Gatter werden zum Filtern der Pixel verwendet, die an den Eingängen der Schaltung 50 eintreffen, so daß jedes einzelne Modul an seinen Eingängen nur die in Fig. 5 dargestellten Pixel empfängt. (Es sollte beachtet werden, daß in Fig. 5 das obere, linke Pixel des aktuellen Blocks die Adresse a(1,1) hat und das obere linke Pixel des Suchfensters die Adresse b(1,1) hat. Im Gegensatz dazu hat in Fig. 3 das obere, linke Pixel des aktuellen Blocks die Adresse a(0,0) und das obere linke Pixel des Suchfensters die Adresse b(0,0)).
  • Es sollte beachtet werden, daß die Module 1, 2, ...., m in Reihe geschaltet sind. Dies bedeutet, daß der letzte Flipflop in der Kette 12 von Flipflops (siehe Fig. 2) jedes Moduls über ein Interface-Flipflop 120 (siehe Fig. 2) mit dem ersten Flipflop des nächsten Moduls verbunden ist. Ebenso ist der letzte Flipflop in der Kette von Flipflops 20 über ein Interface-Flipflop 200 mit dem ersten Flipflop des nächsten Moduls verbunden.
  • Die Pixel a(i,j) des aktuellen Blocks gelangen in den C Eingang des Moduls 1, beginnend mit dem Zyklus 0, und durchlaufen die Kette 12 von Flipflops in jedem der Module. Somit trifft das erste Pixel des aktuellen Blocks bei Modul 2 im Zyklus Nx1+1 ein und trifft bei Modul M im Zyklus N·(m-1)+1 ein.
  • Im Zyklus N*(N-1)+N(= 256 für N = 16) beendet das erste Verarbeitungselement des ersten Moduls die Berechnung seiner Fehlerfunktion. Im nächsten Zyklus gibt das Freigabesignal den Tristate-Puffer 19 (siehe. Fig. 1) frei, der dem ersten Verarbeitungsmodul zugeordnet ist, um die erste Fehlerfunktion zu dem Komparator 30 zu senden. In den folgenden m(2p+2)-1 Zyklen beendet jedes der folgenden Verarbeitungselemente in den Modulen 1, 2, ..., m die Berechnung seiner Fehlerfunktion. Das Freigabesignal durchläuft die Kette von Flipflops 20 in jedem Modul, um die entsprechende Tristate-Vorrichtung 19 freizugeben, so daß die entsprechende Fehlerfunktion zu dem Komparator 30 übertragen werden kann. Pixelwerte am Eingang C vom Zyklus N*N+1 bis N*(N+m-2)+N können beliebig sein.
  • Das Verfahren wird für jede Gruppe von N+m-1 Reihen in dem Suchfenster wiederholt. Es sollte beachtet werden, daß in Fig. 5, beginnend in Zyklus N*(N+m-1)+1 Pixelwerte an dem Eingang P, P', C der Schaltung zur Berechnung der Fehlerfunktionen für den nächsten Satz von N+m-1 Reihen empfangen werden. Somit wiederholt sich das Datenmuster von Fig. 5 alle N+m-1 Reihen des Suchfensters, wobei die vertikale Koordinate für aufeinanderfolgende Gruppen von N+m-1 Reihen des Suchfensters um N+m-1 erhöht wird.
  • Fig. 7 ist eine alternative Schaltung zur Ausführung eines Vollsuchblockanpassungsalgorithmus gemäß der Erfindung. Die Schaltung 60 von Fig. 7 umfaßt auch zwei Module 10, die in Reihe geschaltet sind. (Es ist zu beachten, daß in Fig. 7 das Verarbeitungselement PE-1 des Moduls 1 an das Verarbeitungselement PE-16 angeschlossen dargestellt ist, welches das erste Verarbeitungselement des zweiten Moduls ist. In Wirklichkeit jedoch sind es die zugehörigen Flipflops in der Kette 12, die angeschlossen sind).
  • Der Zweck der Schaltung 60 von Fig. 7 ist die Vergrößerung des Suchfensters. Die Schaltung 50 von Fig. 4 wird in einem Suchfenster der Größe (2p+1+N)² verwendet, wobei die Anzahl von Verarbeitungselementen in jedem Modul 2p+2 ist. Die Schaltung 60 von Fig. 7 ist zur Bearbeitung eines Suchfensters konstruiert, das um 2(p+1) Pixel in jeder Dimension im Vergleich zu dem Suchfenster von Fig. 1 vergrößert ist.
  • Das vergrößerte Suchfenster ist in Fig. 8 dargestellt. Insbesondere zeigt Fig. 8 einen N·N aktuellen Block (z. B. N = 16) in einem aktuellen Videobild i und ein Suchfenster in einem vorangehenden Bild. Die Dimensionen des Suchfensters von Fig. 8 sind vergrößert, wie zuvor angeführt wurde.
  • Die Schaltung 60 von Fig. 7 hat vier Eingänge C, P, P', P" anstelle der drei Eingänge in der Schaltung 50. Der zusätzlich Eingang P" wird zur Verbesserung der Datenverarbeitungseffizienz der Schaltung 60 eingeführt. Der Eingang C empfängt die Pixel des aktuellen Blocks. Die Eingänge P, P' und P" empfangen Pixel von dem Suchfenster. Wie in Fig. 8 dargestellt, ist das vergrößerte Suchfenster in drei Teile unterteilt. Jeder der Eingänge P, P', P" von Fig. 7 empfängt Pixel von dem entsprechenden Suchfensterteil, wie in Fig. 8 dargestellt.
  • Die beiden Module 10, welche die Schaltung 60 bilden, arbeiten zur parallelen Berechnung der Fehlerfunktionen für eine Reihe von Position des aktuellen Blocks in dem vergrößerten Suchfenster des vorangehenden Bildes zusammen. Jedes der Verarbeitungselemente in den beiden, in Reihe verbundenen Modulen berechnet die Fehlerfunktion für eine Position in einer Reihe von Positionen des aktuellen Blocks in dem Suchfenster.
  • Fig. 9 zeigt die besonderen Pixel, die an den Eingängen C, P, P' und P" bei jedem Zyklus während der Berechnung der Fehlerfunktionen für die oberste Reihe von Positionen des aktuellen Blocks in dem Suchfenster vorhanden sind. Auch hier werden die Pixel des aktuellen Bildes seriell bei dem Eingang C empfangen und durchlaufen die Kette von einem Verarbeitungselement zu dem nächsten in den in Reihe verbundenen Modulen. Die Pixel, die an den Eingängen P und P' empfangen werden, werden zu ausgewählten Verarbeitungselementen in beiden Modulen 10 gesendet, abhängig von dem Zustand der Multiplexer 14 (siehe Fig. 2). Ebenso werden Pixel, die an dem Eingang P" empfangen werden, zu ausgewählten Verarbeitungselementen in dem zweiten Modul gesendet, abhängig von dem Zustand der Multiplexer 14 in dem zweiten Modul.
  • Für jede folgende Reihe von Positionen des aktuellen Blocks in dem Suchfenster wiederholt sich das Muster von Fig. 9.
  • In der Schaltung von Fig. 7 können zusätzliche Module in Reihe geschaltet sein. Jedes derartige zusätzliche Modul ermöglicht, das die Suchfensterdimensionen um 2(p+1) in jede Richtung vergrößert werden. Wenn die Schaltung n+1 in Reihe verbundene Module umfaßt, kann das Suchfenster im allgemeinen Dimensionen von {N+(2n+2)p+2n+1} Pixel pro Reihe aufweisen. Die Anzahl von Eingängen für die Suchfensterpixel ist n+2. Für jedes hinzugefügte Extramodul muß der Schaltung nur ein Extraeingang hinzugefügt, werden. Dies ist ein großer Vorteil, wenn die Schaltung auf einem Chip ausgeführt wird. Kurz zusammengefaßt zeigt Fig. 4 eine Schaltung 50 zur Ausführung eines Blockanpassungsalgorithmus, in dem eine Mehrzahl von Modulen nach dem Stand der Technik zur Erhöhung der Rechenleistung verbunden sind. Insbesondere berechnet die Schaltung 50 von Fig. 4 parallel Fehlerfunktionen für m Reihen von Positionen des aktuellen Blocks in einem Suchfenster. Fig. 7 zeigt andererseits eine Schaltung 60 zur Ausführung eines Blockanpassungsalgorithmus, in dem eine Mehrzahl von Modulen verbunden sind, so daß eine Vergrößerung des Suchfensters möglich ist.
  • Fig. 10 zeigt eine Schaltung zur Ausführung eines Vollsuchblockanpassungsalgorithmus, wobei die Fehlerfunktionen für eine Mehrzahl von Reihen von Positionen des aktuellen Blocks in dem Suchfenster parallel berechnet werden und wobei das Suchfenster vergrößert ist.
  • Die Schaltung 70 von Fig. 10 umfaßt zwei Sätze von Modulen A und B. Jeder Satz A,B enthält vier Module. Die Module von Satz A sind mit 1A, 2A, 3A, 4A bezeichnet. Die Module von Satz B sind mit 1B, 2B, 3B, 4B bezeichnet. Jedes Modul umfaßt eindimensionale, systolische Anordnungen von Verarbeitungselementen der zuvor in Verbindung mit Fig. 2 beschriebenen Art.
  • Die Module von Satz A sind in Reihe geschaltet - d. h., das letzte Verarbeitungselement jedes Moduls ist mit dem ersten Verarbeitungselement des nächsten Moduls verbunden. Die Module von Satz B sind auch in Reihe geschaltet. Zusätzlich ist das letzte Verarbeitungselement PE-15 von Modul 1A mit dem ersten Verarbeitungselement PE-0 von Modul 1B verbunden. Zur Veranschaulichung umfaßt jedes Modul 16 Verarbeitungselemente. Somit gibt es insgesamt 64 Verarbeitungselemente PE-0, ..., PE-63 in jedem Satz. Die Schaltung 70 hat einen Eingang C für den Empfang von Pixeln des aktuellen Blocks und drei Eingänge P, P' und P" für den Empfang von Pixeln von dem Suchfenster (siehe Fig. 7). Fig. 11 zeigt, welche Pixel bei den Eingängen während jedes Zyklus für die Berechnung der ersten m = 4 Reihen von Fehlerfunktionen für einen N·N (N = 16) aktuellen Block und ein Suchfenster der Größe {(2p+1+2(p+1)+N}, wobei N = 2p+2, eintreffen.
  • Die Pixel des aktuellen Blocks treffen seriell in dem Verarbeitungselement PE-0 des Moduls 1A in einer Rasterabtastreihenfolge, beginnend mit Zyklus 0, ein. Die Pixel des aktuellen Blocks durchlaufen PE-0 bis PE-63 in den Modulen von Satz A seriell, wobei sich jedes Pixel ein Verarbeitungselement in jedem Zyklus weiterbewegt. Die Pixel des aktuellen Blocks treffen seriell in dem Verarbeitungselement PE-0 des Moduls 1B ein, nachdem sie das Verarbeitungsmodul PE-15 des Moduls 1A verlassen haben. Dann laufen die Pixel seriell von dem Verarbeitungselement PE-0 bis zu dem Verarbeitungselement PE-63 des Satzes B.
  • Die Pixel von dem Suchfenster werden durch die Maskensignale Maske-0, .. Maske-5 (siehe Fig. 5) gefiltert, bevor sie in die Module 1A, 2A, 3A, 4A, 18, 2ß, 3B, 4B gelangen. In jedem Modul bestimmt der Zustand eines Multiplexers 14, welches Pixel (P oder P' in dem A- Modul, P' oder P" in dem B-Modul) zu dem Verarbeitungselement gesendet wird.
  • Fig. 12 zeigt, welche Pixel bei jedem Modul in Satz A in jedem Zyklus eintreffen und Fig. 13 zeigt, welche Pixel bei jedem Modul in Satz B in jedem Zyklus für die Berechnung der ersten vier Reihen von Fehlerfunktionen eintreffen.
  • Schließlich sollen die zuvor beschriebenen Ausführungsbeispiele der Erfindung nur der Veranschaulichung dienen. Vom Fachmann können zahlreiche, alternative Ausführungsbeispiele entwickelt werden, ohne vom Umfang der folgenden Ansprüche Abstand zu nehmen.

Claims (24)

1. Vollsuchblockanpassungsschaltung, umfassend:
eine Mehrzahl von m Modulen (10), wobei m > 1, die in Reihe geschaltet sind, wobei jedes der Module eine eindimensionale Anordnung von Verarbeitungselementen (PE) umfaßt, wobei jedes Modul Pixeldaten empfängt, die verschiedene Datenreihen der Videoabtastung betreffen,
einen ersten Eingang zur Eingabe von Pixelwerten C von einem Pixelblock in einem aktuellen Videobild in einer vorbestimmten Reihenfolge in die Module (10), beginnend mit dem ersten der m Module,
einen zweiten Eingang zur Eingabe von Pixelwerten von einem Suchfenster eines früheren Videobildes in einer vorbestimmten Reihenfolge in jedes der Module (10),
eine Steuerschaltung (52) zum Erzeugen eines Flusses von Maskensignalen (MASK_1-MASK_m) für jedes der m Module (10), und
mindestens m+1 Gatterschaltungen (G1-Gm1) zum Empfangen der Pixeln von dem ersten und zweiten Eingang und der Maskensignale (MASK_1-MASK_m), und zum selektiven Übertragen bestimmter Pixel, die an den Eingängen eingegeben wurden, zu bestimmten der Module (10), so daß jedes der Module (10) für gleiche, versetzte Zeitperioden eingeschaltet wird.
2. Schaltung nach Anspruch 1, wobei jedes der Module (10) Fehlerfunktionen für eine Reihe von Positionen des aktuellen Blocks in dem Suchfenster bestimmt und die Schaltung parallel die Fehlerfunktionen für m Reihen von Positionen des aktuellen Blocks in dem Suchfenster bestimmt.
3. Schaltung nach Anspruch 1, wobei der
aktuelle Block N·N Pixel umfaßt,
das Suchfenster (2p+1+N)² Pixel umfaßt, wobei N = 2p+2, und
jedes der Module 2p+2 Verarbeitungselemente umfaßt.
4. Schaltung nach Anspruch 1, wobei das zweite Eingabemittel einen Eingang zum Empfangen von Pixeln P von einem ersten Teil des Suchfensters und einen zweiten Eingang zum Empfangen von Pixeln P' von einem zweiten Teil des Suchfensters umfaßt.
5. Schaltung nach Anspruch 4, wobei das Gattermittel (G1-Gm1) zwei Gatter umfaßt, die jedem Modul (10) zugeordnet sind, zur selektiven Freigabe von Pixeln von dem ersten und zweiten Suchfensterteil, die zu dem zugeordneten Modul (10) unter der Steuerung der Maskensignale (MASK) zu übertragen sind.
6. Schaltung nach Anspruch 5, wobei die Pixel des aktuellen Blocks seriell von einem Verarbeitungselement (PE) zu dem nächsten in der Reihenfolge der Verarbeitungselemente (PE), die von den in Reihe geschalteten Modulen (10) gebildet werden, übertragen werden und wobei die Pixel des Suchfensters selektiv zu bestimmten Verarbeitungselementen (PE) der Module (10) gesendet werden.
7. Vollsuchblockanpassungsschaltung, umfassend:
eine Mehrzahl von m Modulen (10), die in Reihe geschaltet sind, wobei jedes der Module (10) eine eindimensionale, systolische Anordnung umfaßt und jedes Modul Pixeldaten empfängt, die verschiedene Datenreihen der Videoabtastung betreffen,
einen ersten Pixeleingang zur Übertragung von Pixeln C von einem aktuellen Block eines aktuellen Videobildes an die m Module (10), beginnend mit dem ersten der m Module,
einen zweiten Pixeleingang zur Übertragung von Pixeln P von einem linken Bereich eines Suchfensters eines früheren Bildes, welches den linken Bereich und einen rechten Bereich aufweist, an jedes der m Module,
einen dritten Pixeleingang zur Übertragung von Pixeln P' von dem rechten Bereich des Suchfensters eines früheren Bildes an jedes der m Module, wobei die Pixel C, P und P' in einer vorbestimmten Reihenfolge gesendet werden, um die Mehrzahl von m Modulen (10) zur parallelen Bestimmung der Fehler für m Reihen von Positionen des aktuellen Blocks in dem Suchfenster einzuschalten.
8. Vollsuchblockanpassungsschaltung für einen aktuellen Block von Pixeln mit N Pixeln in jeder Reihe eines aktuellen Videobildes in einem Suchfenster eines früheren Videobildes mit {N+(2n+2)p+2n+1} Pixeln pro Reihe, wobei n ≥ 1 und p ≥ 1, umfassend:
eine Mehrzahl von n+1 Modulen (10), die in Reihe geschaltet sind, wobei jedes der n+1 Module (10) eine eindimensionale, systolische Anordnung von 2p+2 Verarbeitungselementen (PE) zur Berechnung einer Fehlerfunktion umfaßt, wobei jedes Modul Pixeldaten empfängt, welche verschiedene Datenreihen der Videoabtastung betreffen,
einen ersten Eingang zur Eingabe der Pixeln C des aktuellen Blocks an die Module (10) beginnend mit dem ersten der m Module,
einen zweiten Eingang, umfassend n+2 Suchfenstereingänge zum Eingeben der Suchfensterpixel an die Module (10), wobei jeder der Suchfenstereingänge Pixel von einem separaten Teil des Suchfensters eingibt.
9. Schaltung nach Anspruch 8, wobei n = 1, die Anzahl von in Reihe geschalteten Modulen (10) zwei ist und wobei das zweite Eingabemittel drei verschiedene Eingänge umfaßt.
10. Schaltung nach Anspruch 8, wobei die n+1 Module (10) parallel Fehlerfunktionen für eine vollständige Reihe von Positionen des aktuellen Blocks in dem Suchfenster berechnen.
11. Vollsuchblockanpassungsschaltung, umfassend:
ein erstes Modul (MODUL 1), umfassend eine eindimensionale, systolische Anordnung von Verarbeitungselementen (PE_0-PE_15), die selbst imstande ist, parallel die Fehlerfunktionen für eine Reihe von Positionen eines aktuellen Blocks von Pixeln eines aktuellen Videobildes in einem Suchfenster einer ersten vorbestimmten Größe eines früheren Videobildes zu berechnen,
ein zweites Modul (MODUL 2), umfassend eine eindimensionale, systolische Anordnung von Verarbeitungselementen (PE_16-PE_31), das in Reihe an das erste Modul (MODUL 1) geschaltet ist, wobei das erste und zweite Modul (MODUL 1/2) zur parallelen Berechnung der Fehlerfunktionen einer Reihe von Positionen des aktuellen Blocks in einem Suchfenster einer zweiten vorbestimmten Größe, die größer als die erste vorbestimmte Größe ist, mit einem linken Bereich, einem mittleren Bereich und einem rechten Bereich, zusammenarbeiten, wobei jedes Modul Pixeldaten empfängt, welche verschiedene Datenreihen der Videoabtastung betreffen, und
wobei die Schaltung einen ersten Eingang zur Eingabe von Pixeln C des aktuellen Blocks in die Module (10), beginnend mit dem ersten der m Module enthält, sowie zweite, dritte und vierte Eingänge zur Eingabe von Pixeln (P, P', P") von dem linken Bereich, dem mittleren Bereich bzw. dem rechten Bereich des Suchfensters der zweiten Größe in die Module.
12. Schaltung nach Ansprüch 11, wobei Pixeldaten C von dem aktuellen Block sequentiell von einem Verarbeitungselement zu dem nächsten (PE_0-PE_31) in dem ersten und zweiten der in Reihe geschalteten Module (10) geleitet werden, und wobei Pixeldaten (P, P', P") von dem Suchfenster und der zweiten Größe selektiv zu den Verarbeitungselementen (PE_0- PE_31) des ersten und zweiten Moduls (10) gesendet werden.
13. Schaltung nach Anspruch 11, des weiteren umfassend eines oder mehrere zusätzliche Module, umfassend eine eindimensionale, systolische Anordnung, die in Reihe an das erste und zweite Module geschaltet sind, wobei die zusätzlichen Module mit dem ersten und zweiten Modul zur parallelen Berechnung einer Reihe von Positionen des aktuellen Blocks in einem Suchfenster einer größeren Größe als der zweiten Größe zusammenarbeiten.
14. Schaltung nach Anspruch 11, wobei
jede systolische Anordnung 2p+2 Verarbeitungselemente (PE) umfaßt, wobei p ≥ 1,
der aktuelle Block N Pixel in jeder Reihe hat, wobei N = 2p+2,
das Suchfenster einer ersten vorbestimmten Größe in jeder Reihe 2p+1+N Pixel hat, und
das Suchfenster einer zweiten Größe in jeder Reihe 2p+1+N+2(p+1) Pixel hat.
15. Schaltung nach Anspruch 13, wobei jedes Modul (10) 2p+2 Verarbeitungselemente (PE) umfaßt, wobei p ≥ 1, und jedes zusätzliche Modul eine Erhöhung der Anzahl von Pixeln in einer Reihe des Suchfensters um 2(p+1) ermöglicht.
16. Vollsuchblockanpassungsschaltung (70), umfassend:
eine erste Mehrzahl (A) von Modulen (1A-4A), die in Reihe geschaltet sind, wobei jedes Modul Pixeldaten empfängt, die verschiedene Datenreihen der Videoabtastung betreffen,
eine zweite Mehrzahl (B) von Modulen (1B-4B), die in Reihe geschaltet sind,
wobei jedes der Module in der ersten und zweiten Mehrzahl (A, B) eine eindimensionale, systolische Anordnung von Verarbeitungselementen (PE) umfaßt,
wobei jedes der Module Mittel zum Empfangen von Pixeln eines aktuellen Blocks eines aktuellen Videobildes enthält, wobei die Pixel C des aktuellen Blocks seriell von einem Verarbeitungselement (PE) zu dem nächsten in der ersten Mehrzahl (A) von in Reihe geschalteten Modulen (1A-4A) übertragen werden, und seriell von einem Verarbeitungselement zu dem nächsten in der zweiten Mehrzahl (B) von in Reihe geschalteten Modulen (1B-4B) übertragen werden, wobei das erste Verarbeitungselement (PE_0) des ersten Moduls (1B) in der zweiten Mehrzahl (B) die aktuellen Bildpixel seriell nach dem letzten Verarbeitungselement (PE_15) des ersten Moduls (1A) in der ersten Mehrzahl (A) empfängt, und
jedes der Module Mittel zum Empfangen ausgewählter Pixel eines Suchfensters eines früheren Videobildes zu gewählten Zeitpunkten unter der Steuerung von Maskensignalen (MASK) enthält.
17. Schaltung nach Anspruch 16, wobei die Module parallel die Fehlerfunktionen einer Mehrzahl von Reihen von Positionen des aktuellen Blocks in dem Suchfenster bestimmen.
18. Schaltung nach Anspruch 17, wobei
die Schaltung erste, zweite und dritte Eingänge zum Empfangen von Pixeln von den ersten, zweiten und dritten verschiedenen Teilen des Suchfensters enthält, wobei Suchfensterpixel von dem ersten und zweiten Eingang selektiv zu den Modulen (1A-4A) in der ersten Mehrzahl (A) unter der Steuerung der Maskensignale (MASK) übertragen werden, und Suchfensterpixel von dem zweiten und dritten Eingang selektiv zu den Modulen (1B-4B) in der zweiten Mehrzahl (B) unter der Steuerung der Maskensignale (MASK) übertragen werden.
19. Schaltung nach Anspruch 18, wobei der aktuelle Block N Pixel in jeder Reihe umfaßt, wobei jedes der Module 2p+2 Verarbeitungselemente umfaßt, wobei p ≥ 1, und die zweite Mehrzahl (B) von Modulen (1B- 4B) eine Erhöhung der Anzahl von Pixeln in einer Reihe des Suchfensters um 2(p+1) ermöglicht.
20. Schaltung nach Ansprüch 1, umfassend zweite, dritte und vierte Eingänge zum Eingeben von Pixelwerten von einem linken Bereich, mittleren Bereich bzw. rechten Bereich eines Suchfensters eines früheren Videobildes in einer vorbestimmten Reihenfolge in die Module (10).
21. Schaltung nach Anspruch 20, umfassend
eine zweite Mehrzahl von m Modulen (10), die in Reihe geschaltet sind,
Eingabemittel zur Übertragung von Pixeln C von einem aktuellen Block eines aktuellen Videobildes und Pixel (P, P', P") von einem Suchfenster eines früheren Videobildes an die Module (10) in der ersten und zweiten Mehrzahl,
wobei die Module der ersten und zweiten Mehrzahl von Modulen (10) parallel Fehlerfunktionen für m Reihen von Positionen des aktuellen Blocks in dem Suchfenster bestimmen,
wobei die zweite Mehrzahl von Modulen eine Erhöhung der Anzahl von Pixeln in jeder Reihe des Suchfensters über die Anzahl von Pixeln in jeder Reihe des Suchfensters ermöglicht, die ohne die zweite Mehrzahl verarbeitet werden könnte, indem eine zusätzliche Anzahl von Verarbeitungselementen bereitgestellt wird, wobei jedes parallel die Fehlerfunktion einer weiteren Position in dem Suchfenster berechnet,
wobei jedes Modul (10) 2p+2 Verarbeitungselemente (PE) umfaßt, wobei p ≥ 1, und die zweite Mehrzahl von Modulen eine Erhöhung der Anzahl von Pixeln in einer Reihe des Suchfensters um 2(p+1) ermöglicht.
22. Schaltung nach Anspruch 21, wobei das Eingabemittel erste, zweite und dritte Eingänge zum selektiven Senden von Pixeln (P, P', P") von dem ersten, zweiten und dritten Teil des Suchfensters zu den Verarbeitungselementen (PE) der Module (10) unter der Steuerung von Maskensignalen umfaßt.
23. Schaltung nach Anspruch 22, wobei die Pixel C von dem aktuellen Block seriell von einem Verarbeitungselement (PE) zu dem nächsten in den systolischen Anordnungen der ersten Mehrzahl übertragen werden, und seriell von einem Verarbeitungselement zu dem nächsten in den systolischen Anordnungen der zweiten Mehrzahl übertragen werden, wobei das erste Verarbeitungselement der ersten systolischen Anordnung der zweiten Mehrzahl jedes der aktuellen Blockpixel C nach einem letzten Verarbeitungselement einer ersten systolischen Anordnung der ersten Mehrzahl empfängt.
24. Schaltung nach Anspruch 11, wobei der zweite Eingang Pixel P in das erste Modul (MODUL 1) eingibt, der dritte Eingang Pixel P' in das erste und zweite Modul (MODUL 1/2) eingibt, und der vierte Eingang Pixel P" in das zweite Modul (MODUL 2) eingibt.
DE69327040T 1993-02-22 1993-09-17 Blockübereinstimmungsarchitektur mit mehreren Modulen Expired - Lifetime DE69327040T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US2390793A 1993-02-22 1993-02-22

Publications (2)

Publication Number Publication Date
DE69327040D1 DE69327040D1 (de) 1999-12-23
DE69327040T2 true DE69327040T2 (de) 2000-04-13

Family

ID=21817858

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69327040T Expired - Lifetime DE69327040T2 (de) 1993-02-22 1993-09-17 Blockübereinstimmungsarchitektur mit mehreren Modulen

Country Status (3)

Country Link
US (1) US5636293A (de)
EP (1) EP0613293B1 (de)
DE (1) DE69327040T2 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2723796B1 (fr) * 1994-08-19 1996-11-29 Thomson Consumer Electronics Dispositif d'estimation de mouvement
FR2742248B1 (fr) * 1995-12-06 1998-01-23 Thomson Multimedia Sa Procede de traitement de donnees dans des reseaux matriciels dans un systeme d'estimation de mouvement
US5953458A (en) * 1995-12-06 1999-09-14 Thomson Multimedia S.A. Method and device for motion estimation
US5719642A (en) * 1996-05-07 1998-02-17 National Science Council Of R.O.C. Full-search block matching motion estimation processor
US5917964A (en) * 1996-12-23 1999-06-29 Lg Electronics, Inc. Method and apparatus for pre-processing image data of encoders
JPH11112991A (ja) 1997-10-08 1999-04-23 Sharp Corp 動きベクトル検出装置
US6118901A (en) * 1997-10-31 2000-09-12 National Science Council Array architecture with data-rings for 3-step hierarchical search block matching algorithm
US5838392A (en) * 1998-03-19 1998-11-17 United Microelectronics Corp. Adaptive block-matching motion estimator with a compression array for use in a video coding system
US6097851A (en) * 1998-03-31 2000-08-01 Agilent Technologies Low latency correlation
US20070150697A1 (en) * 2005-05-10 2007-06-28 Telairity Semiconductor, Inc. Vector processor with multi-pipe vector block matching
US20060259737A1 (en) * 2005-05-10 2006-11-16 Telairity Semiconductor, Inc. Vector processor with special purpose registers and high speed memory access
CN101276248B (zh) * 2007-03-27 2010-08-04 义隆电子股份有限公司 多样板一维区块匹配方法及其装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2625638B1 (fr) * 1987-12-30 1994-06-17 Thomson Grand Public Procede de synchronisation pour la transmission, sur un canal asynchrone, d'une suite d'images codees au moyen d'un code a longueur variable, et dispositif pour la mise en oeuvre de ce procede
US4897720A (en) * 1988-03-14 1990-01-30 Bell Communications Research, Inc. Circuit implementation of block matching algorithm
US4937666A (en) * 1989-12-04 1990-06-26 Bell Communications Research, Inc. Circuit implementation of block matching algorithm with fractional precision
US5030953A (en) * 1990-07-11 1991-07-09 Massachusetts Institute Of Technology Charge domain block matching processor
US5134480A (en) * 1990-08-31 1992-07-28 The Trustees Of Columbia University In The City Of New York Time-recursive deinterlace processing for television-type signals

Also Published As

Publication number Publication date
US5636293A (en) 1997-06-03
EP0613293B1 (de) 1999-11-17
DE69327040D1 (de) 1999-12-23
EP0613293A3 (de) 1995-01-18
EP0613293A2 (de) 1994-08-31

Similar Documents

Publication Publication Date Title
DE4322343C2 (de) Mittel zum Erfassen eines Bewegungsvektors und Verfahren zum Bestimmen eines Bewegungsvektors
DE3885695T2 (de) Bewegungsabschätzung.
DE69422266T2 (de) Verfahren, Vorrichtung und Schaltung zur Verbesserung von Bewegungskompensation bei digitaler Bildkodierung
DE69524235T2 (de) Verfahren und vorrichtung zur global-zu-lokal-block-bewegungsschätzung
DE69032437T2 (de) Bewegungseinschätzer
DE3750791T2 (de) Sehr schnelle Transformationsvorrichtung.
DE69130602T2 (de) Korrelationsvorrichtung
DE68929100T2 (de) Digitalsignalverarbeitungsverfahren
DE69131938T2 (de) Bewegungsvektorerfassungsgerät
DE4206280C2 (de) Verfahren zum Aufzeigen eines Bewegungsvektors
DE3789116T2 (de) Prozessor zur zweidimensionalen diskreten cosinustransformation.
DE69525127T2 (de) Gerät und Verfahren zur Kodierung und Dekodierung von Bildern unter Verwendung einer Kantensynthese und einer Wavelet-Rücktransformation
EP0309669B1 (de) Verfahren zur szenenmodellgestützten Bilddatenreduktion für digitale Fernsehsignale
DE69425847T2 (de) Rechner für die inverse diskrete Cosinus-Transformation
DE69421158T2 (de) Bewegungsprädiktionsprozessor und -vorrichtung
DE69131808T2 (de) Verfahren und Gerät zur Bilddatenverarbeitung
DE2845533C2 (de)
DE68924043T2 (de) Verfahren und Schaltung zur Blockverarbeitung von zweidimensionalen Signalen in beweglichen Bildern.
DE69327040T2 (de) Blockübereinstimmungsarchitektur mit mehreren Modulen
EP2109993B1 (de) Vorrichtung und verfahren zum kodieren eines transformationskoeffizientenblockes
DE69329332T2 (de) Fernsehbilderdekodierarchitektur zur Ausführung eines 40 ms-Prozessalgorithmus in HDTV
DE69024002T2 (de) Vorrichtung zum Codieren von zweidimensionalen Informationen und entsprechende Decodiervorrichtung.
DE3632639A1 (de) Einrichtung zum verarbeiten von bilddaten durch faltung
DE69521873T2 (de) Verfahren zum Auswählen von Bewegungsvektoren und Bildverarbeitungsvorrichtung zur Durchführung des Verfahrens
DE69331174T2 (de) Bildverarbeitungsvorrichtung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition