DE69327040T2 - Blockübereinstimmungsarchitektur mit mehreren Modulen - Google Patents
Blockübereinstimmungsarchitektur mit mehreren ModulenInfo
- 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
Links
- 230000006870 function Effects 0.000 claims description 57
- 238000004364 calculation method Methods 0.000 claims description 11
- 230000006978 adaptation Effects 0.000 claims description 3
- 238000003491 array Methods 0.000 claims 2
- 238000000034 method Methods 0.000 description 7
- 230000000875 corresponding effect Effects 0.000 description 5
- 238000006073 displacement reaction Methods 0.000 description 3
- 230000015654 memory Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 101100269850 Caenorhabditis elegans mask-1 gene Proteins 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/14—Picture signal circuitry for video frequency region
- H04N5/144—Movement detection
- H04N5/145—Movement estimation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/223—Analysis of motion using block-matching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/223—Analysis of motion using block-matching
- G06T7/231—Analysis of motion using block-matching using full search
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
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
- 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.
- 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.
- 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.
- 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.
- 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.
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)
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)
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 |
-
1993
- 1993-09-17 DE DE69327040T patent/DE69327040T2/de not_active Expired - Lifetime
- 1993-09-17 EP EP93115028A patent/EP0613293B1/de not_active Expired - Lifetime
-
1994
- 1994-12-22 US US08/362,748 patent/US5636293A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0613293B1 (de) | 1999-11-17 |
EP0613293A3 (de) | 1995-01-18 |
DE69327040D1 (de) | 1999-12-23 |
US5636293A (en) | 1997-06-03 |
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. | |
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 | |
EP2131596B1 (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 | |
DE69735968T2 (de) | Vorrichtung und Verfahren zur Bildinformationsumwandlung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |