DE69728247T2 - Pyramidenförmiger pipeline-prozessor für ein bildverarbeitungssystem - Google Patents

Pyramidenförmiger pipeline-prozessor für ein bildverarbeitungssystem Download PDF

Info

Publication number
DE69728247T2
DE69728247T2 DE69728247T DE69728247T DE69728247T2 DE 69728247 T2 DE69728247 T2 DE 69728247T2 DE 69728247 T DE69728247 T DE 69728247T DE 69728247 T DE69728247 T DE 69728247T DE 69728247 T2 DE69728247 T2 DE 69728247T2
Authority
DE
Germany
Prior art keywords
image
signal
data
frame
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69728247T
Other languages
English (en)
Other versions
DE69728247D1 (de
Inventor
Sieman Gooitzen VAN DER WAL
Wade Michael HANSEN
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.)
Sarnoff Corp
Original Assignee
Sarnoff Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sarnoff Corp filed Critical Sarnoff Corp
Publication of DE69728247D1 publication Critical patent/DE69728247D1/de
Application granted granted Critical
Publication of DE69728247T2 publication Critical patent/DE69728247T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • 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/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Image Processing (AREA)

Description

  • Technisches Gebiet der Erfindung
  • Diese Erfindung betrifft ein Verfahren und eine Vorrichtung für die digitale Verarbeitung von Bilddaten und betrifft insbesondere ein Verfahren und eine Vorrichtung für das Durchführen der Bildverarbeitung unter Verwendung von Pipeline-Bildverarbeitungsoperationen, die zusammen auf einem einzelnen integrierten Schaltkreis kombiniert sind.
  • Technischer Hintergrund der Erfindung
  • Pipeline-Bildverarbeitungsoperationen schließen die Verbindung von diskretem Speicher und diskreter Pipeline-Bildverarbeitungskomponenten, die die Bildoperationen durchführen, ein. Diese Bildverarbeitungsoperationen beinhalten beispielsweise die Bildfaltung, die Bildverzerrung bzw. das Bild-Warping, die nicht-linearen Bildverarbeitungsoperationen und andere spezialisierte Prozesse, wie z. B. die verbundene Komponentenanalyse von Binärbildern. Diese Systeme integrieren nicht den Verarbeitungs- und den Speicherschaltkreis in einzelne Einrichtungen. Typischerweise werden diese Komponenten mit externen Knotenpunktschaltern oder einer dedizierten Datenflußleitung zusammen verschaltet. Die Verwendung von diskretem Bildspeicher und Verarbeitungskomponente führt zu großen Schaltkreisen, die schwierig auf kleinen gedruckten Schaltkreisplatten anzupassen sind. Zusätzlich reduziert die Verwendung von diskreten Komponenten und längeren Schaltkreispfaden die Ausführungsgeschwindigkeiten der Prozesse.
  • Dedizierte Pipeline-Bildverarbeitungskomponenten können eine sehr hohe Leistung für Bildverarbeitungsoperationen bei reduzierten Kosten und einem Leistungsverhältnis über Allzweckprozessoren bereitstellen, wie z. B. von-Neumann- und Harvard-Architekturen. Allzweckprozessoren können typischerweise grundlegende Bildoperationen nicht mit der selben Leistung bereitstellen wie Pipeline-Architekturen, da Allzweckprozessoren auf eine Lese-Verarbeite-Speichere-Datenoperation für jede Pixeloperation begrenzt sind.
  • Aus der US-A-5,359,674 ist ein integrierter Pyramidenprozessorschaltkreis für das Ausführen der Multiauflösungs-(Pyramiden)Filterung bekannt. Ein IC für die Implementierung einer Vielzahl von Multiauflösungsfiltern beinhaltet ein programmierbares, symmetrisches und trennbares zweidimensionales (horizontales und vertikales) Filter. Das Eingangssignal zu dem Filter kann ein Eingangssignal sein, das an den IC angelegt wird oder eine Kombination von zwei solcher Signale. Die Schaltkreise in dem IC können programmiert sein, um Pixelwerte in der Nähe der Kanten der zweidimensionalen Bildsignale, die von dem Filter bearbeitet werden, einzuschließen. Der Filter stellt ein Ausgangssignal so wie auch jedes der ungefilterten Signale von einer mit Abgriff versehenen Verzögerungsleitung eines Filters zur Verfügung, die aufeinanderfolgende Zeilen des Bildes kombiniert. Der Prozessor weist einen Speicher für das Bereitstellen einer Vier- oder Achtzeilenverzögerung für den vertikalen Teil des zweidimensionalen Filters auf. Der Prozessor weist weiterhin einen Clipprozessor bzw. Abschneideprozessor und eine arithmetische logische Einheit für den Betrieb auf dem Ausgang des Filters auf.
  • Ein programmierbarer digitaler bildverarbeitender Allzweckschaltkreis, der aus der EP-A-0 626 661 bekannt ist, schließt eine Pipeline-Bildverarbeitungsarchitektur einschließlich einer oder mehrerer Pipeline-Verarbeitungsketten für das Durchführen von Bildverarbeitungsberechnungen ein, wobei jede Kette eine serielle Verbindung einer Faltungseinheit, einer logischen Einheit, einer morphologischen Einheit und einer Nachschlagtabelle aufweist, die es erlaubt, daß die größte Anzahl von Verarbeitungsoperationen innerhalb der kürzestmöglichen Overheadzeit durchzuführen ist.
  • Massive Parallelprozessoren und Computer sind typischerweise sehr komplex bei der Programmierung und sind teuer zu implementieren. Zusätzlich ist der Prozeß des Bereitstellens von Bilddaten zu jedem der Prozessoren in einer zeitgerechten Art und Weise, bevor die parallele Ausführung beginnt, im allgemeinen langsam.
  • Weiterhin sind bestimmte Bildverarbeitungsoperationen schwierig mit Parallelarchitekturen zu implementieren. Während die Bildfaltung und andere Filterungsoperationen, die relativ kleine Pixelumgebunden verwenden, effizient in Parallelsystemen implementiert werden können, sind Operationen, wie z. B. das Bild-Warpen, immer noch eher ineffizient.
  • Zusammenfassung der Erfindung
  • Die vorliegende Erfindung wird in den Ansprüchen festgelegt, auf die die Aufmerksamkeit gerichtet wird. Eine Ausführungsform der vorliegenden Erfindung betrifft Parallelprozessoren mit Pipeline-Verfahren (PPP), die auf einem einzelnen integrierten Schaltkreis integriert sind, und wobei der PPP eine Filtereinheit, einen internen Weiterleitungsschaltkreis, wie z. B. einen Kreuzungspunktschalter, einen inneren Einzelbildspeichercontroller und ein oder mehrere Funktionsschaltkreise beinhaltet. Die Funktionsschaltkreise können beispielsweise arithmetische Einheiten, Nachschlagtabellen, Zeitkompensatoren, Addierer/Subtrahierer, statistische Module, Bildverschiebungsschaltkreise und andere nützliche Verarbeitungseinrichtungen sein. Die Komponenten des PPP sind mit dem Kreuzungspunktschalter verbunden, der Daten zwischen dem Einzelbildspeichercontroller, der Filtereinheit, den Funktionsschaltkreisen, den externen Eingangskanälen und den externen Ausgangskanälen weiterleitet.
  • Kurze Beschreibung der Figuren
  • Die Erfindung wird am besten anhand der folgenden detaillierten Beschreibung verstanden, wenn sie in Verbindung mit den begleitenden Zeichnungen gelesen wird, in denen:
  • 1 ein Blockdiagramm einer beispielhaften Ausführungsform der vorliegenden Erfindung ist, die auf einen Pipeline-Parallelprozessor gerichtet ist, der auf einem einzelnen integrierten Schaltkreis integriert ist.
  • 2a2d sind Datenstrukturdiagramme von Einzelbildern eines Bildsignals, die den konzeptuellen Ablauf eines Bildstabilisierungsprozesses darstellen.
  • 3 ist ein Flußdiagramm, das den Bildstabilisierungsprozeß der Einzelbilder, die in den 2a2d gezeigt sind, in Übereinstimmung mit einer beispielhaften Ausführungsform der vorliegenden Erfindung darstellt.
  • 4 ist ein Datenstrukturdiagramm, das die konzeptuelle Funktion des Bildstabilisierungsprozesses, der in 3 gezeigt ist, darstellt.
  • 5 ist ein Blockdiagramm einer beispielhaften Ausführungsform der vorliegenden Erfindung, die auf einen Pipeline-Parallelprozessor gerichtet ist, der innerhalb eines Bildstabilisierungssystems auf einem einzelnen integrierten Schaltkreis integriert ist.
  • 6 ist ein Blockdiagramm des PPP 560 und des Speichers 550, die in 5 gezeigt sind, in Übereinstimmung mit einer beispielhaften Ausführungsform der vorliegenden Erfindung.
  • 7 ist ein Taktdiagramm, das für die Erläuterung des Betriebs des PPP von 6 nützlich ist.
  • 8 ist ein Datenflußdiagramm, das den Betrieb des Bildstabilisierungssystems, das in 6 gezeigt ist, in Übereinstimmung mit einer beispielhaften Ausführungsform der vorliegenden Erfindung darstellt.
  • 9 ist ein Blockdiagramm der Einzelbildspeichercontroller 605 und 610, die in 6 gezeigt sind, in Übereinstimmung mit einer beispielhaften Ausführungsform der vorliegenden Erfindung.
  • 1012 sind Datenstrukturdiagramme, die den Lesebereich von Interesse RD_ROI in den Speichern 550a und 500b, die in 6 gezeigt sind, darstellt.
  • 1319 sind Taktdiagramme, die für das Erläutern der Lesefunktion der Einzelbildspeichercontroller 605 und 610, die in 6 gezeigt sind, nützlich sind.
  • 20 und 21 sind Datenstrukturdiagramme, die den interessierenden Bereich WR_ROI in den Speichern 550a und 550b zeigen, die in 6 gezeigt sind.
  • 22 ist ein Taktdiagramm, das für das Erläutern des Schreibbetriebs der Einzelbildspeichercontroller 605 und 610, die in 6 gezeigt sind, nützlich sind.
  • 23 ist ein Blockdiagramm des Schnittstellenschaltkreises 900 der Einzelbildspeichercontroller 605 und 610, die in 9 gezeigt sind, in Übereinstimmung mit einer beispielhaften Ausführungsform der vorliegenden Erfindung.
  • 24 ist ein Taktdiagramm, das für die Erläuterung der Funktion des in 23 gezeigten Schnittstellenschaltkreises nützlich ist.
  • Detaillierte Beschreibung der Erfindung
  • Überblick
  • Die beispielhafte Ausführungsform der Erfindung ist auf einen Pyramidenpipeline-Prozessor (PPP) gerichtet, der die grundlegenden Speicher- und Verarbeitungsaspekte der Frontend-Bildverarbeitungsoperationen in eine einzelne ASIC-Einrichtung integriert. Die grundlegenden Speicher- und Verarbeitungsaspekte werden durch einen PPP implementiert mit einer Filtereinheit, einem internen Weiterleitungsschaltkreis, einem internen Einzelbildspeichercontroller und einem oder mehreren Funktionsschaltkreisen. Ein zusätzlicher Schaltkreis kann zu dem PPP hinzugefügt werden, um besondere Verarbeitungsprozessoren einschließlich einer arithmetisch logischen Einheit und digitale Signalverarbeitungskernoperationen zu implementieren. Zusätzlich können die Komponenten des PPP programmiert sein, um eine Vielzahl von Verarbeitungsoperationen durchzuführen. In jedem Fall stellt der PPP eine flexible Architektur zur Verfügung, die hinzugefügt werden kann und/oder programmiert werden kann, um eine Vielzahl von Bildverarbeitungsoperationen durchzuführen. Der PPP stellt ebenso eine Architektur bereit, auf der ASICs entwickelt und erzeugt werden können. Die Filtereinheit, der interne Weiterleitungsschaltkreis und der interne Einzelbildspeichercontroller stellt eine standardisierte Architektur und eine Schnittstelle für das Hinzufügen und Integrieren von anderen Komponenten zur Verfügung.
  • Im Ergebnis wird die Menge des erforderlichen Plattenraums, um Frontend-Bildverarbeitungssysteme zu implementieren, stark reduziert durch die Integration vieler Komponenten in eine einzelne Einrichtung. Zusätzlich wird die effektive Ausführungszeit der Bildverarbeitungsoperationen verringert, da die On-Chip-Verarbeitung typischerweise mit höheren Geschwindigkeiten durchgeführt werden kann als die Verarbeitung, die die Kommunikation zwischen mehreren diskreten Verarbeitungseinrichtungen erfordert; zusätzlich können sich diese Pipeline-Operationen überlappen. Schließlich können die Verarbeitungssysteme schnell und mit minimaler Integration aufgrund der standardisierten Architektur und der Schnittstellen implementiert sein.
  • Überblick über eine erste beispielhafte Implementierung des PPP
  • Eine erste beispielhafte Implementierung des PPP wird unten unter bezug auf 1 erläutert. Der PPP beinhaltet einen Verarbeitungsschaltkreis, der auf einem einzelnen integrierten Schaltkreis (IC) 5 implementiert wird. Der Schaltkreis beinhaltet eine Filtereinheit 10, einen internen Weiterleitungsschaltkreis, wie z. B. einen Kreuzpunktschalter 40, einen internen Einzelbildspeichercontroller 20 und ein oder mehrere Funktionsschaltkreise 30. Die Funktionsschaltkreise 30 können arithmetische Einheiten, Nachschlagtabellen, Taktkompensatoren, Addierer/Subtrahierer, statistische Module, ein Bildverschiebungsschaltkreis und andere nützliche Verarbeitungseinrichtungen sein. Die Einrichtungen sind mit dem Kreuzpunktschalter 40 miteinander verbunden, der die Bildinformation zwischen dem Einzelbildspeichercontroller 20, der Filtereinheit 10, den Funktionsschaltkreisen 30, den externen Eingangsanschlüssen 60 und 65 und den externen Ausgangsanschlüssen 70 und 75 weiterleitet. Der Schalkreis ist konfiguriert, so daß er Eingangssignale mit eingebetteten Taktsignalen akzeptiert. Diese Taktsignale werden durch den Schaltkreis mit kompensierenden Verzögerungen ausgebreitet, um sie an die Verzögerungen der Datensignale anzupassen. Diese ausgebreiteten Taktsignale werden in die Ausgangssignale eingebettet.
  • Der Kreuzpunktschalter 40 ist ein zentralisierter nichtblockierender Kreuzpunktschalter. Der Kreuzpunktschalter 40 codiert die Kanäle der Bilddaten zusammen mit der Taktinformation, um die Verarbeitung von mehreren Kanälen von Bildinformation ohne Interferenz zu ermöglichen. Der Kreuzpunktschalter 40 wird verwendet, um Bilddaten zwischen dem Einzelbildspeichercontroller 20, der Filtereinheit 10, den Funktionsschaltkreisen 30, den Eingangskanälen 60 und 65 und den Ausgangskanälen 70 und 75 weiterzuleiten.
  • Die Eingabedatensignale und die Ausgabedatensignale des Einzelbildspeichercontrollers 20 sind direkt mit dem Kreuzpunktschalter 40 verknüpft, der die Bilddaten zwischen dem Einzelbildspeichercontroller 20 und dem anderen Schaltkreis, der mit dem Kreuzpunktschalter 40 verbunden ist, weiterleitet. Der Einzelbildspeichercontroller fragt die Bilddatensignale während den Bildlese- und Speicheroperationen erneut ab und führt die Lese- und Speicheroperationen gleichzeitig durch. Der Einzelbildspeichercontroller 20 kann ebenfalls einen Zugriffsanschluß (nicht gezeigt) beinhalten, um zu erlauben, daß über einen globalen Datenbus 90 für Prozessorlese- und -speicheroperationen auf den Einzelbildspeichercontroller 20 zugegriffen wird, ohne eine Weiterleitung durch den Kreuzpunktschalter 40.
  • Die Filtereinheit 10 kann ein zweidimensionales Filter mit einem trennbaren Kernel bzw. Kern sein, der als eine Kombination von getrennten horizontalen und vertikalen Filtern behandelt werden kann. Die fünf vertikalen und fünf horizontalen Filterkoeffizienten der beispielhaften Filtereinheit 10 sind innerhalb eines begrenzten Satzes von Werten programmierbar und können entweder symmetrisch oder antisymmetrisch sein. Zusätzlich kann die Filtereinheit 10 derart konfiguriert sein, daß sie entweder eine gerade oder ungerade Anzahl von Abgriffen hat. Die Filtereinheit 10 kombiniert mit dem Einzelbildspeichercontroller 20 kann für viele Typen von Bildfilterapplikationen verwendet werden. Diese beinhalten die effiziente Erzeugung von Multiauflösungsdarstellungen von Bildern (d.h. Bildpyramiden), wie in dem US-Patent Nr. 5,359,674 beschrieben. Mehrfachauflösungs-(Pyramiden)Darstellungen in der Bildverarbeitung werden verwendet für effiziente Bildverarbeitungsoperationen einschließlich beispielsweise der Bildmerkmalsanalyse, der Bildkomprimierung, der Bildregistrierung (Ausrichtung) und der Bewegungsabschätzung. Diese Applikationen verwenden Resampling- bzw. erneute Abtastungsoperationen des Einzelbildspeichercontrollers 20, der unten beschrieben wird, für die Bilddezimierungs- und -expandierungsoperationen, die ein Teil der Pyramidenerzeugung und Rekonstruktion sind.
  • Funktionsschaltkreise 30 können eine Vielzahl von unterschiedlichen Bildverarbeitungsfunktionen implementieren. Diese Funktionen beinhalten (1) fundamental arithmetische Operationen mit unterschiedlichen Präzisionsgraden, (2) willkürliche punktweise Einzelbildoperationen, (3) willkürliche punktweise Dualbildoperationen, (4) Bildstatistikanalyse und (5) nichtlineare Bildfilterung. Diese Funktionen werden unten beschrieben.
  • Fundamentale arithmetische Operationen werden in vielen Bildoperationen verwendet. Diese beinhalten die Erfassung von Bildintensitätsveränderungen und die Bildbewegungsabschätzung, die die Bildaddition, -subtraktion, -multiplikation und -division verwenden.
  • Willkürliche punktweise Einzelbildoperationen werden verwendet, um Bilddaten zu verarbeiten. Sowohl lineare als auch nichtlineare Funktionen von Pixelwerten können während der Bildverarbeitung verwendet werden, um nützliche Verarbeitungsergebnisse zu liefern. Diese Operationen beinhalten das Hinzufügen von Verstärkung zu Bildern, das Implementieren von Bildschwellwertoperationen und das Invertieren von Bildern. Eine programmierbare Nachschlagtabelle wird typischerweise verwendet, um diese Operationen in einer flexiblen Art und Weise zu implementieren.
  • Viele Operationen bei der Frontend-Verarbeitung bzw. Eingangsbearbeitung verwenden willkürliche punktweise Operationen auf zwei Bildern. Diese willkürlichen punktweisen Operationen beinhalten die Bildmaskierung, die Bildmoduloarithmetik, d. h. ein Bild/Modulo mit einem anderen Bild, und andere Bildoperationen, wo das resultierende Bild dieselbe Genauigkeit wie eines der Eingangsbilder hat. Operationen, wie z. B. die Bildmultiplikation, die Summenquadrierung, die absolute Summendifferenz, können ebenso implementiert werden unter Verwendung von willkürlichen punktweisen Operationen, wenn der Ausgang skaliert wird, um dieselbe Genauigkeit wie die Eingaben zu haben. Üblicherweise wird eine programmierbare Nachschlagtabelle verwendet, um diese Operationen zu implementieren, wenn eine große Speichermenge intern oder außerhalb des Chips verfügbar ist (z. B. 64k × 8). Alternativ können viele dieser Funktionen direkt in dem PPP implementiert werden.
  • Bildstatistikanalyse, wie z. B. die Erzeugung von Bildhistogrammen und Akkumulationen über das gesamte Bild oder eine Unterregion des Bildes, werden verwendet, um geeignete Schwellwerte genau zu bestimmen, die Menge der Bildenergie in einer gegebenen Szene zu bestimmen, und um Kreuzkorrelationsflächen und andere objektive Funktionen für die Bewegungsabschätzung und die Bildausrichtung zu interpretieren.
  • Die nichtlineare Bildfilterung wird verwendet, um räumliche Operationen durchzuführen, wie z. B. die Minimum-, Maximum- und Medianfilterung, die sehr wichtig für das Säubern und Konditionieren von verarbeiteten Bilddaten für die weitere Verarbeitung sind. Diese Operationen sind typischerweise unter Verwendung von Allzweckprozessoren sehr aufwendig zu implementieren, sind jedoch leicht verfügbar unter Verwendung des PPP. Eine solche Einrichtung, deren funktionale Schaltkreise in dem PPP aufgenommen werden können, ist der Median/Max/Min-Filter Teil Nr. IP90c20, hergestellt von Sumitomo Metals.
  • Der PPP schließt eine Untergruppe dieser Operationen in einen einzeln integrierten Schaltkreis mit einem internen Kreuzpunktschalter 40 ein für das flexible Weiterleiten der Videoinformation durch die verschiedenen Verarbeitungseinrichtungen auf dem Chip. Dies stellt sehr effiziente Implementierungen von vielen Frontend-Prozessen zur Verfügung, während die Komponenten integriert werden, so daß sie effizient in die endgültigen Verarbeitungsarchitekturen und Einrichtungen mit einem minimalen Platzbedarf auf der Leiterplatte und mit minimalen Kosten eingeschlossen werden können. Die Leistung des PPP bei der Implementierung von irgendeiner dieser Funktionen wird typischerweise eine Größenordnung oder mehr besser als dieselbe Verarbeitung sein, die mit Allzweckprozessoren durchgeführt wird, und wird typischerweise ein Bruchteil der Kosten von massiven parallelverarbeitenden Systemen verursachen.
  • Der Funktionsschaltkreis 30 kann beispielsweise eine Nachschlagtabelle (LUT) mit einem programmierbaren registrierten Speicher sein, der in der Lage ist, willkürliche punktweise Operationen auf einem einzelnen Bild durchzuführen. Die LUT kann verwendet werden für die Verstärkung der Bilddaten, für das Anlegen von Nichtlinearitäten an die Bilddaten, für das Invertieren der Bilddaten und für andere Einzelbildoperationen. Diese Funktionen der LUT werden über den globalen Bus 90 programmiert. Unterschiedliche Funktionen der LUT können in dem PPP gespeichert werden, um die Einstellzeit zu reduzieren, wenn die LUT programmiert wird.
  • Unter Verwendung von 05 μ- oder den gegenwärtigen 0,35 μ-CMOS Designs kann die minimale Implementierungs-PPP in einen einzelnen ASIC eingeschlossen werden. Solch ein ASIC wäre in der Lage, mit einer inneren Geschwindigkeit von 60 MHz oder mehr zu laufen. Die Verwendung des 0,3 μ-CMOS Designs wird nicht nur die Plättchengröße des PPP reduzieren, sondern die Verarbeitungsgeschwindigkeiten erhöhen und den Energieverlust des PPP reduzieren.
  • Die Funktion der unterschiedlichen Komponenten, die in 1 gezeigt sind, wird detaillierter beschrieben unter Verwendung einer beispielhaften Applikation des PPP, um die Bildstabilisierung durchzuführen. Obgleich die beispielhafte Ausführungsform der vorliegenden Erfindung unten unter bezug auf eine spezifische Bildverarbeitungsapplikation beschrieben wird, ist der PPP bei vielen unterschiedlichen Bildverarbeitungsapplikationen anwendbar.
  • Detaillierte Beschreibung der beispielhaften Anwendung
  • Überblick über die Bildstabilisierung
  • Video, das von einer Handkamera oder von einer auf einem Stativ montierten Kamera mit einer großen Teleobjektivlinse aufgenommen wurde, zeigt häufig eine zufällige Bildbewegung. Das Reduzieren der Bildbewegung ist für das Ansehen solcher Videos äußerst erwünscht. Die Bildstabilisierung ist ein Prozeß, der eine Komponente der Bildbewegung in einer Videosequenz eliminiert oder reduziert. Die genaue Bildstabilisierung kann die Fähigkeit, Video mittels eines Digitalprozessors zu analysieren oder weiter zu verarbeiten, stark verbessern, und wird daher als sehr wichtiger „vision-front-end"-Bildprozeß angesehen. Die Bildstabilisierung kann in verschiedenen Modi angewendet werden. Ein Modus entfernt alle Bildbewegung, was dazu führt, daß es erscheint, als ob die Videokamera komplett stationär wäre. Eine andere Form der Stabilisierung glättet die Bildbewegung durch Eliminieren von nur schneller Bildbewegung, die jedoch das Auftreten von langsamer Bildbewegung, wie z. B. einen Bildschwenk, erlaubt.
  • Die Bildstabilisierung kann erreicht werden durch Bestimmen der Bildbewegung zwischen aufeinanderfolgenden Einzelbildern und dann durch Kompensieren dieser Bildbewegung durch Warping, d. h. Ausrichten des gegenwärtigen Einzelbildes gegenüber einem vorherigen Einzelbild, so daß die Bilder mit dem Bild des vorherigen Einzelbildes ausgerichtet sind. Ein Beispiel von auf einanderfolgenden Einzelbildern eines Videobildsignals ist in der 2a gezeigt, wobei t einen Zeitpunkt anzeigt. Das Videobildsignal beinhaltet eine Abfolge von vier Videoeinzelbildern F(t), F(t+1), F(t+2) und F(t+3), wo es eine offensichtliche Zufallsbewegung des Bildes 200 in den vier Einzelbildern gibt.
  • 2b zeigt die vier Einzelbilder F(t), F(t+1), F(t+2) und F(t+3), die überlagert sind, um die Größe der Bildbewegung zwischen den vier Einzelbildern darzustellen. 2c stellt die vier Einzelbilder F(t), F(t+1), F(t+2) und F(t+3) nach der Bildstabilisierung gemäß dem ersten Verfahren dar. Die nachfolgenden Einzelbilder F(t+1), F(t+2) und F(t+3) sind mit dem Einzelbild F(t) ausgerichtet. 2d stellt die vier Einzelbilder F(t), F(t+1), F(t+2) und F(t+3) nach der Bildstabilisierung gemäß eines zweiten Verfahrens dar, wo die Bildstabilisierung implementiert wird durch „Glätten" der Bildbewegung. Es gibt eine allgemeine Bewegung des Bildes nach rechts in 2d.
  • 3 ist ein Flußdiagramm, das das Stabilisierungsverfahren für das Stabilisieren eines Videobildsignals darstellt. In Schritt 300 bestimmt das Verfahren die Bildbewegung zwischen dem gegenwärtigen Einzelbild F(t) und einem vorherigen Einzelbild F(t–1). Dann werden in Schritt 310 die Ausrichtungsparameter Cz erzeugt, um das gegenwärtige Einzelbild F(t) mit dem Referenzeinzelbild oder einer Bildposition auszurichten, bei der die nicht gewünschte Bildbewegung entfernt wird. In Schritt 320 wird das gegenwärtige Bild erneut ausgerichtet, d. h. verzerrt bzw. warped, gemäß den Ausrichtungsparametern Cz. Das Stabilisierungsverfahren von 3 ist in 4 dargestellt.
  • Wie in 4 gezeigt ist, werden eine Gruppe von Bildkorrelationen in einer hierarchischen Art und Weise durchgeführt, um die Größe der Bildbewegung zu bestimmen, die zwischen dem gegenwärtigen Einzelbild F(t) und dem vorherigen Einzelbild F(t–1) aufgetreten ist. Um die Größe der Bildbewegung zu bestimmen, wird eine Bildpyramide aus dem gegenwärtigen Einzelbild F(t) erzeugt. Beispielsweise wird die Laplace-Pyramide Lz(t–1) bis Lz(t–1), beispielsweise L0(t–1) bis L4(t–1) für das vorherige Einzelbild F(t–1) erzeugt und die Laplace-Pyramide Lz(t) bis Lz(t), beispielsweise L0(t) bis L4(x) wird für das gegenwärtige Einzelbild F(t) erstellt. Die Korrelation zwischen dem gegenwärtigen Einzelbild F(t) und dem vorherigen Einzelbild F(t–1) wird unter Verwendung eines vierundsechzig Pixelwert mal vierundsechzig Pixelwertbereichs der Einzelbilder durchgeführt.
  • Für jede Ebene werden die Korrelationswerte Cz(i,j) in Übereinstimmung mit Gleichung 1 erzeugt.
  • Figure 00080001
  • Wobei x und y Koordinaten der Pixelwerte der n-ten Ebene der Laplaceschen Bildpyramide sind und i und j ganze Zahlen sind und –2 ≤ i S 2 und –2 ≤ j ≤ 2. Beispielsweise ist, wenn es vier Ebenen der Laplace-Pyramide gibt, z = 1, 2, 3 oder 4. Fünfundzwanzig Korrelationswerte Cz(i,j) können bei der Pyramidenebene z = 4 erzeugt werden, da die Pyramidenebene vier Werte mit sechzehn Pixel entsprechend den Pixeln der Einzelbilder beinhaltet. Mit anderen Worten stellt eine auf Ebene vier Bereichskorrelation von fünf Pixelwerten mal fünf Pixelwerten einen Gesamtkorrelati onssuchraum von 64 mal 64 Pixelwerten in dem gegenwärtigen Einzelbild F(t) und dem vorherigen Einzelbild F(–1) dar.
  • Eine einfache Maximumsuche wird auf den fünfundzwanzig Korrelationswerten Cz(i,j) durchgeführt, um den Ort des maximalen Korrelationswertes Cz(i,j)max zu bestimmen. Sobald der maximale Korrelationswert bestimmt wurde, werden die Korrelationswerte Cz(i,j) neben und einschließlich des maximalen Korrelationswertes Cz(i,j)max interpoliert, um den maximalen Scheitelwertkorrelationswert Cz(i,j)peak der Korrelationswerte Cz(i,j) mit Subpixelgenauigkeit abzuschätzen. Der Scheitelwerts- bzw. Peakkorrelationswert Cz(i,j)peak stellt eine Abschätzung der Bildbewegung relativ zu der Bildauflösung der Pyramidenebene, auf der die Korrelationswerte Cz(i,j) erzeugt werden, bereit. Auf der Ebene z = 4 ist die Abschätzung grob, Bewegungen werden aber über einen großen Bereich stimuliert.
  • Als nächstes wird der Peakkorrelationswert Cz(i,j)Peak für das nächsthöhere Auflösungsniveau z = 3 erzeugt. Vor der Erzeugung der Korrelationswerte zwischen dem vorherigen Laplace-Bild Lz(T–1) und dem gegenwärtigen Laplace-Bild Lz(t) wird als erstes das vorherige Laplace-Bild Lz(t–1) mit der groben Bewegungsschätzung mal dem Peakkorrelationswert C4(i,j)Peak, der von der Korrelation auf Ebene 4, z = 4 erhalten wurde, verzerrt. Somit ist die Korrelationsberechnung auf Ebene 3, z = 3, eine Verfeinerung der vorherigen Bewegungsabschätzung. Auf Ebene 3 beträgt die erwartete Restbewegung weniger als ± 1 Pixelwert pro Zeile. Ein drei mal drei-Wertbereich in dem Laplace-Bild auf Ebene 3, z = 3, wird verwendet, um die Korrelationswerte C3(i,j) zu erzeugen.
  • Die Bildbewegungsabschätzung wird erneut verfeinert durch Wiederholen dieses Prozesses auf Ebene 2. Typischerweise ist die Bewegungsabschätzung, die bei dieser Auflösung erhalten wird, besser als ein Zehntel der Pixelauflösung von Ebene 0, z = 0, wenn die Bildbewegung eine reine Translation war. Die Peakkorrelationswerte Cz(i,j)Peak werden addiert und verwendet, um das gegenwärtige Einzelbild F(t) zu verzerren und das Bild zu stabilisieren.
  • Detaillierte Beschreibung des Bildstabilisierungssystems
  • Das Bildstabilisierungssystem wird im folgenden unter bezug auf die 57 beschrieben. 5 ist ein Blockdiagramm des Bildstabilisierungssystems gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung. Ein Farbvideosignal wird an dem Eingangsanschluß IN des Videostabilisierungssystems 500 bereitgestellt. Das Farbvideosignal ist ein NTSV-Videosignal, das auf ein digitales Komponentenbildformat 4:2:2 digitalisiert ist. Alternativ dazu kann das Farbvideosignal ein digitales Standardkomponentenformat sein, wie z. B. das CCIR601, D1-Format. Das D1-Format hat 1440 Pixel pro Zeile, wobei das Helligkeitskomponentensignal Y 720 Pixelwerte hat und das Farbkomponentensignal zwei Farbkomponentensignale hat, die jeweils 320 Pixel haben, die in einem einzelnen Datenstrom miteinander verzahnt sind (interleaved). Ein anderer möglicher Eingang kann ein MPEG-codiertes Signal sein, das in ein lineares Abtastbildformat decodiert wird.
  • Das Farbvideosignal wird dem Eingangsvideodecoder 510 bereitgestellt, der beispielsweise ein Philips Teil Nr. SAA7110 ist. Der Eingangsvideodecoder 510 digitalisiert das Farbvideosignal und erzeugt zwei digitale Videoausgangssignalströme: das Helligkeitskomponentensignal Y, die Farbkomponentensignale Cu und Cv im 4:2:2-Format. Das Helligkeitskomponentensignal Y wird mit der vollen digitalisierten Auflösung, d. h. mit 640 aktiven Pixelwerten pro Zeile, dargestellt, und die Farbkomponentensignale Cv und Cu werden mit einem Faktor 2 in der horizontalen Richtung subgesampelt, d.h. mit 320 aktiven Pixelwerten pro Zeile. Die Farbkomponentensignale Cv und Cu sind miteinander verzahnt, um 640 Pixelwerte pro Zeile zu bilden. Alternativ dazu könnte der Videodecoder in dem PPP 560 integriert sein.
  • Tabelle 1 unten stellt die beiden Datenströme dar, wobei Cu und Cv die beiden Farbkomponenten sind, Y die Helligkeitskomponente ist und der Index die Pixelwerte auf der Bildzeile ist.
  • TABELLE 1
    Figure 00100001
  • Das Farbkomponentensignal Y wird dem Einzelbildpuffer 530 bereitgestellt und das Farbkomponentensignal wird dem Einzelbildpuffer 520 bereitgestellt. Die Helligkeits- und Farbkomponentensignale werden den entsprechenden Einzelbildpufferspeichern mit einer Taktrate von 12,5 MHz bis 13,5 MHz bereitgestellt. Jeder Einzelbildpuffer 520 und 530 ist doppelt puffergespeichert, so daß das Helligkeitskomponentensignal Y und die verzahnten Farbkomponentensignale Cu und Cv in einem Puffer mit einer Taktrate von 13,5 MHz gespeichert werden können und von dem anderen Puffer mit einer Taktrate von 60 MHz ausgelesen werden können. Ein Beispiel für die Einzelbildpufferspeicher 520 und 530 ist das Hitachi Teil Nr. HM530281, das 332k Pixelwerte von Daten speichern kann.
  • Das Helligkeitskomponentensignal Y und die Farbkomponentensignale Cu und Cv werden dem parallelen Pipeline-Prozessor (PPP) 560 bereitgestellt, der ein einzelner integrierter Schaltkreis ist. Der PPP 560 implementiert den oben beschriebenen Stabilisierungsprozess. Der PPP 560 wird unten unter bezug auf 6 beschrieben. Der PPP 560 beinhaltet einen Kreuzungspunktschalter 640, Filtereinheiten 615 und 620, zwei Verzögerer 625a und 625b, die mit entsprechenden Multiplizierern 630a und 630b verbunden sind, die wiederum mit Akkumulatoren 635a und 635b verbunden sind, zwei Einzelbildspeichercontroller 605 und 610, die jeweils mit Speichern 550a und 550b verbunden sind, die einen Speicher 550 bilden, wie in 5 gezeigt ist, und eine Nachschlagtabelle (LUT) 645.
  • Der Kreuzungspunktschalter 640 kann derselbe wie der in 1 gezeigte Kreuzungspunktschalter 40 sein. Dem Kreuzungspunktschalter 640 wird das Helligkeitskomponentensignal Y über den Anschluß IN1 und die Farbkomponentensignale über den Anschluß IN2 bereitgestellt. Die Helligkeits- und Farbkomponentensignale sind digitale Multibitsignale, die zumindest acht Datenbits und zwei Taktbits enthalten. Die zwei Taktbits befördern entsprechende Taktsignale. Ein Signal, HA, ist in dem logisch hohen Zustand, wenn die Daten in einer Zeile gültig sind (d. h. während des aktiven Bildintervalls), und in einem logisch tiefen Zustand anderenfalls (d. h. während dem horizontalen Abschaltintervall). Das andere Signal, VA, ist in einem logisch hohen Zustand, wenn die Daten in einem Einzelbild gültig sind, und anderenfalls in einem logisch tiefen Zustand (d. h. während des vertikalen Abschaltintervalls). 7 ist ein Taktdiagramm, das die relative Taktung des Signals, das dem Anschluß IN1 bereitgestellt wird, und des Signals, das von dem Ausgangsanschluß OUT1 bereitgestellt wird, und die Signale HA und VA für diese Signale darstellt. Der beispielhafte Betrieb, der in diesem Taktdiagramm gezeigt ist, verzögert das Ausgangssignal um näherungsweise zwei Zeilenintervalle in bezug auf das Eingangssignal.
  • Der PPP 560 verwendet die Taktsignal HA und VA in derselben Art und Weise, wie in dem oben zitierten US-Patent Nr. 5,359,674 beschrieben ist. Die Taktsignale HA und VA bleiben mit dem Eingangsbildsignal verknüpft, wenn das Eingangsbildsignal von dem Stabilisierungssystem 500 verarbeitet wird. Im Ergebnis müssen, wenn das stabilisierte Bildsignal erzeugt wird, die vertikalen und horizontalen Abschaltperioden des stabilisierten Bildsignals nicht erzeugt werden. Die relative Taktung des stabilisierten Bildsignals wird beibehalten durch Verknüpfen der Taktsignale HA und VA mit dem Farbvideosignal, wenn es verarbeitet wird. Somit wird weniger Verzahnung erforderlich.
  • Die beiden Verzögerer 625a und 625b können verschiedene Funktionen bereitstellen. Die Verzögerer 625a und 625b stellen eine programmierte Verzögerungsoperation bereit, um einen digitalen Bilddatenstrom relativ zu einem anderen digitalen Bilddatenstrom zu verzögern, um eine Kreuzkorrelation oder andere Zwei-Operanden-Funktionen zu berechnen, die einen verschobenen Ort in der horizontalen oder vertikalen Richtung zwischen zwei Bildern erfordern. Die Verzögerer 615a und 615b stellen ebenso eine automatische Ausrichtung in der Zeit von zwei Bilddatenströmen bereit. Beispielweise errichten die Verzögerer 615a und 615b zwei Bilddatenströme in der Zeit miteinander aus, wenn die zwei Bilddatenströme in einer Zwei-Operanden-Funktion unter Verwendung beispielsweise des Multiplikators 630 kombiniert werden. Die zwei Bilddatenströme können nicht in der Zeit miteinander ausgerichtet werden, da sie auf unterschiedliche Verzögerer innerhalb der Einrichtung getroffen sind. Beispielsweise können die Bilddatenströme nicht ausgerichtet werden, wenn ein Datenstrom durch die LUT 645 geleitet wird und der andere Bilddatenstrom nicht. Die Bilddatentaktsignale HA und VA, die mit jedem Bilddatenstrom verknüpft sind, erlauben es den Verzögerern 615a und 615b, automatisch die Zeitdifferenz zwischen den beiden Bilddatenströmen zu erfassen und einen Bilddatenstrom zu verzögern, so daß die beiden Bilddatenströme in der Zeit ausgerichtet werden, wenn sie einer Zwei-Operandenfunktion präsentiert werden. Die programmierte Verzögerungsoperation kann mit der automatischen Ausrichtungsoperation kombiniert werden.
  • Die beispielhafte Ausführungsform ist nicht auf die Verarbeitung von digitalen Multibitsignalen, die acht Datenbits und zwei Taktbits enthalten, beschränkt. Die beispielhafte Ausführungsform kann konfiguriert sein, daß sie digitale Multibitsignale empfängt, die beispielsweise zehn Datenbits und zwei Taktbits enthalten.
  • Nach 6 ermöglicht der Kreuzungspunktschalter 640, daß Signale, die über die Einganganschlüsse IN1 und IN2 bereitgestellt werden, mit irgendeinem der Ausgangsanschlüsse OUT1 und OUT2 verbunden werden, ohne einen der anderen Kanäle innerhalb des Kreuzungspunktschalters 640 zu beeinträchtigen oder zu blockieren für die maximale Parallelität und Zwischenkonnektivität. Das Routing bzw. das Weiterleiten, das von dem Kreuzungspunktschalter 640 durchgeführt wird, ist von einem externen Controller 595, gezeigt in 5, über einen globalen Datenbus 645 programmierbar. Ein beispielhafter Schaltkreis, der verwendet werden kann für den Kreuzungspunktschalter 640 und den externen Controller 595 ist der logische LSI-Kreuzungspunktschalter Teil Nr. L64270 QC–40.
  • 8 ist ein Flußdiagramm, das geeignet ist für das Darstellen des Betriebs des Videostabilisierungssystems 500 und insbesondere des PPP 560, der in 5 gezeigt ist. Im allgemeinen werden, wie in 8 gezeigt ist, eine Anzahl von unterschiedlichen Prozessen von dem PPP 560 während eines Zyklus implementiert, um das Bild zu stabilisieren.
  • In dem Prozeßblock 810 wird ein Gauss-Bild G1(t)Y aus einem Helligkeitskomponentensignal Y, das zu dem PPP 560 von dem Einzelbildpuffer 530, der in 5 gezeigt ist, bereitgestellt wird, erzeugt. In dem Prozeßblock 815 wird das Gauss-Bild G1(t)Y verwendet, um Gauss-Bilder Gn+1(t) niedriger Ebene und die Laplace-Bildpyramide, die in 4 gezeigt ist, zu erzeugen. Jeder Zeitprozeßblock 815 wird wiederholt, eines der Laplace-Bilder L0(t) bis L4(t), gezeigt in 4, wird erzeugt. Obgleich der Prozeßblock 815 wiederholt wird, ist die erforderliche Zeit, um die Laplace-Bildpyramide und das Gauss-Bild niedrigeren Niveaus zu erzeugen, geringer als die erforderliche Zeitmenge, um das Gauss-Bild G1(t)Y im Prozeßblock 810 zu erzeugen. Dies ist so, da die Anzahl von Pixelwerten in den Laplace- und Gauss-Bildern um beispielsweise ein Viertel für jede Ebene der Gauss- und Laplace-Bilder reduziert wird. Somit gibt es weniger Pixelwerte, die von dem Prozeßblock 815 zu verarbeiten sind.
  • In dem Prozeßblock 820 werden, nachdem die Laplace-Pyramide erzeugt wurde, die Laplace-Bilder L0(t) – L4(t) und die Laplace-Bilder L0(t–1) – L4(t–1), die während eines vorherigen Zyklus erzeugt wurden, verwendet, um die Ausrichtungsparameter C(x,y), wie oben unter bezug auf 4 beschrieben wurde, zu erzeugen. Im Prozeßblock 825 werden während des nächsten Zyklus die Ausrichtungsparameter C(x,y) verwendet, um das Helligkeitskomponentensignal Y des Eingangseinzelbildes (IIF) von dem vorherigen Zyklus zu verzerren. In dem Prozeßblock 830 werden die Ausrichtungsparameter C(x,y) verwendet, um die Farbkomponentensignale Cu und Cv des IIF von dem vorherigen Zyklus zu verzerren. In dem Prozeßblock 835 wird das Farbkomponentensignal des nächsten Einzelbildes dem PPP 560, der in 5 gezeigt ist, und dem Framepuffer 520 zur Verfügung gestellt. Die Prozeßblöcke 810 bis 835 richten die Einzelbilder eines Eingangsbildsignals aus. Der Stabilisierungsprozeß wird unten detaillierter beschrieben.
  • Der Stabilisierungsprozeß, der von dem PPP durchgeführt wird, wird in drei Schritte unterteilt, wobei jeder Schritt aus zwei oder mehreren parallelen Prozessen besteht. Die Schritte sind: (1) erzeuge erste Gauss-Ebene, Sektion 800a, (2) erzeuge Laplace-Pyramide, Sektion 800b und (3) führe hierarchische Bildkorrelationen durch, Sektion 800c. Die Gesamtzeit, die der PPP 560 benötigt, um alle drei Schritte durchzuführen, beträgt etwa 14 msec unter der Annahme eines 50 MHz-Taktes. Der Stabilisierungsprozeß wird von dem PPP 560 durchgeführt und besteht aus einem Satz von Operationen, die parallel und in Reihe allesamt innerhalb einer Feldzeit durchgeführt werden. Wenn das Videoformat ein 30 Hz-Videoformat ist (z. B. NTSC), beträgt die Feldzeit etwa 16,7 msec.
  • Wie in den 6 und 8 gezeigt ist, wird das Helligkeitskomponentensignal Y von dem Pufferspeicher 530, der in 5 gezeigt ist, zu dem Kreuzungspunktschalter 640, der in 6 gezeigt ist, zur Verfügung gestellt, der das Helligkeitskomponentensignal Y zu dem Einzelbildspeichercontroller 610 und der Filtereinheit 615 leitet. Die Filtereinheit 615 ist eine Pyramidenfiltereinheit und ist dieselbe wie die in 1 gezeigte Filtereinheit 10. Wie in 1 gezeigt ist, stellt ein Zeilenverzögerungs- und Grenzsteuerschaltkreis 111 (im folgenden Verzögerungs/Grenzsteuerung genannt) eine vier- oder achtzeilige Verzögerung für den vertikalen Teil des zweidimensionalen Filters zur Verfügung. Die verzögerten Zeilen werden sowohl vertikal als auch horizontal in dem Verzögerungs/Grenzsteuerschaltkreis 111 verarbeitet. Der Filterschaltkreis 110 und der Zeilenverzögerungs- und Grenzsteuerschaltkreis 111 sind beispielsweise der Filter 110, der Speicher 114, der Adreßzähler 116 und der Taktkreis 128, die in dem oben zitierten Patent beschrieben wurden, das auf van der Wal ausgestellt ist.
  • Der Verzögerungs/Grenzsteuerschaltkreis 111 stellt sicher, daß Grenzeffekte in der Filtereinheit 615 durch Kantenerweiterung, Spiegeln oder Ausblenden der Pixelwerte außerhalb der Bildregion vor dem Filtern minimiert werden. Der Verzögerungs/Grenzsteuerschaltkreis 111 kann ebenso verwendet werden, um ein Filtern mit gespreizten Abgriffen (Resampling) zur Verfügung zu stellen und kann verwendet werden, um Zwischenpixel in dem Bild für genaue Bildinterpolationsoperationen auszunullen.
  • Das Ausgangssignal, das von dem Filterschaltkreis 110 bereitgestellt wird, wird durch den Abschneideverarbeitungsschaltkreis bzw. Clipverarbeitungsschaltkreis 112 verarbeitet, das das Runden und Skalieren für Signale mit einfacher Genauigkeit durchführt und die gefilterten Daten als die signifikanteren Bitpositionen (MSB) mit gefilterten Daten, die die weniger signifikanten Bitpositionen (LSB) darstellen, kombiniert, um Ausgangssignale mit doppelter Genauigkeit zu erzeugen. Der Clipverarbeitungsschaltkreis 112 entspricht beispielsweise dem Clipverarbeitungsschaltkreis 124, der in dem oben zitierten US-Patent Nr. 5,359,674 beschrieben wird.
  • Das Signal, das von dem Multiplexerschaltkreis 115 bereitgestellt wird, kann entweder das Eingangssignal INF2 oder eines der verzögerten horizontalen Zeilensignale sein, die von der Verzögerungs/Grenzsteuerung 111 bereitgestellt werden. Der Multiplexerschaltkreis 115 ist mit internen Kompensationsverzögerern (nicht gezeigt) in der Verzögerungs/Grenzsteuerung 111 verbunden. Die internen Kompensationsverzögerer werden verwendet, um das Eingangssignal INF1 von einem der acht Zeilenintervalle zu verzögern. Der Multiplexschaltkreis 112 wählt unter dem Eingangssignal INF1, das um eins bis acht Zeilenintervalle verzögert ist, und dem Eingangssignal INF2 aus.
  • Das Ausgangssignal des Multiplexers 115 und des verarbeitenden Abschneideschaltkreises 112 kann durch die ALU 114 verarbeitet werden, um das Ausgangssignal OUTF1 zu erzeugen. Die ALU 114 arbeitet genauso wie die ALU 113 des oben zitierten Patentes, das an van der Wal ausgegeben wurde. Die ALU 114 wird verwendet, um Operationen zwischen dem gefilterten Bild und dem nicht gefilterten Bild durchzuführen, oder sie kann eines der Bilder ohne Modifikationen weiterleiten. Die Filtereinheit 615 hat zwei Parallelpfade, die verwendet werden können, um gleichzeitig ein tiefpaßgefiltertes Gauß-Bild und eine Laplace-Funktion (die Differenz des Eingangsbildes und des Gauß-Bildes) des Eingangsbildes zu berechnen. Wie in 1 gezeigt ist, kann das Laplace-Bild durch die ALU 114 erzeugt werden, die das Gauß-Bild von dem Abschneideschaltkreis 115 und ein verzögertes Eingangsbild von der Verzögerungs/Grenzsteuerung 111 und dem Multiplexer 115 empfängt. Die Gauß- und Laplace-Bilder werden während der Bildstabilisierung verwendet, wie unten beschrieben wird. Die Erzeugung der Gauß- und Laplace-Bilder unter Verwendung der Filtereinheit 615 wird in dem oben beschriebenen Patent, das auf der van der Wal ausgegeben ist, beschrieben.
  • In der 8, Sektion 800a, wird das Helligkeitskomponentensignal der Filtereinheit 615 bereitgestellt, die ein Gaußsches Bildsignal G1(t)Y des Helligkeitskomponentensignals erzeugt, was über einen Kreuzungspunktschaltkreis 640 dem Einzelbildspeichercontroller 605 bereitgestellt wird. Der Einzelbildspeichercontroller 605 führt ein Subsampling des Gaußschen Bildsignals G1(t)Y durch und speichert es im Speicher 550a. Die Subsampling- und Speicheroperationen des Einzelbildspeichercontrollers 605 werden unten beschrieben. Das Eingangshelligkeitskomponentensignal Y (im folgenden Gaußsches Bildsignal G0(t)Y genannt) wird dem Einzelbildspeichercontroller 610 bereitgestellt, der das Gaußsche Bildsignal G0(t)Y speichert. Die Einzelbildspeichercontroller 605 und 610 arbeiten in der gleichen Art und Weise und werden unten nach der Beschreibung der Funktion des Stabilisierungssystems 500 beschrieben. Parallel dazu wird die Helligkeitskomponente des vorherigen Bildes G0(t–1)Y, das in dem Speicher 550b abgelegt ist, wieder abgerufen unter Verwendung des Einzelbildspeichercontrollers 610, der ein verzerrtes Zwischenbild erzeugt. Das verzerrte Zwischenbild wird weiterhin verzerrt unter Verwendung der Filtereinheit 620. Die Filtereinheit 620 kann ein separierbares fünf mal fünf-Filter sein, das 10 Multiplizierer beinhaltet.
  • Das vorherige Bild G0(t–1)Y wird unter Verwendung von Ausrichtungsparametern C(i,j) verzerrt, die in dem vorherigen Einzelbildintervall durch die Sektion 800c, gezeigt in 8, erzeugt werden. Die Peakausrichtungsparameter C(i,j)peak von dem vorherigen Einzelbildintervall werden dem Mikroprozessor 540 bereitgestellt. Wie unten beschrieben wird, wird der Prozeßblock 820 wiederholt, um die Peakausrichtungsparameter C(i,j)peak zwischen den Laplace-Bildern Ln(t–1) und Ln(t) zu erzeugen. Die Peakausrichtungsparameter C(i,j)peak für jede Ebene verfeinern weiter den Verzerrprozeß, um das Bild zu stabilisieren. Der Mikroprozessor 540 summiert die Peakausrichtungsparameter C(i,j)peak, die für jede Ebene der Laplace-Pyramide erzeugt wurden, von der meistsignifikanten Bitposition zu der am wenigsten signifikanten Bitposition. Mit anderen Worten erzeugt der Mikroprozessor 540 einen summierten Peakausrichtungsparameter C(i,j)peak aus den Ausrichtungsparametern, die auf jeder Ebene der Laplace-Pyramide erzeugt werden. Der Mikroprozessor 540 verwendet den summierten Ausrichtungsparameter, um die Filtereinheit 620 und den Einzelbildspeichercontroller 610 zu programmieren, um das Helligkeitskomponentensignal des Eingangsbildes G0(t–1)Y wie unten beschrieben zu verzerren.
  • Die Erzeugung der Ausrichtungsparameter wird unten beschrieben. Die Ausrichtungsparameter beinhalten einen ganzzahligen Wert und einen Bruchteilswert. Ein verzerrtes Zwischenbild kann erzeugt werden unter Verwendung des ganzzahligen Teils C(xi,yi) der Ausrichtungsparameter C(x,y). Der ganzzahlige Teil C(xi,yi) der Ausrichtungsparameter C(i,j) beinhaltet eine horizontale Komponente xi und eine vertikale Komponente yi, die eine Translation des vorherigen Bildes G0(t- 1)Y in der horizontalen bzw. vertikalen Richtung spezifizieren. Der Einzelbildspeichercontroller 610 fragt die Pixelwerte aus dem Speicher 550b ab, die in einem Bereich des Interesses RD_ROI enthalten sind, der in den 1011 gezeigt ist und unten beschrieben ist. Die interessierende Region RD_ROI ist eine rechteckige Region im Speicher 550b, gezeigt in 6. Wenn die Pixelwerte unter Verwendung des in 6 gezeigten Einzelbildspeichercontrollers 610 aus dem Speicher 550b abgefragt werden, werden die Größe und die Startkoordinaten des gelesenen Bereichs von Interesse RD_ROI im Speicher 55b spezifiziert.
  • Der Einzelbildspeichercontroller 605 verzerrt das vorherige Bild G0(t–1)Y durch Verschieben des Lesebereichs von Interesse RD_ROI, gezeigt in 10, in Antwort auf die horizontale Komponente xi und die vertikale Komponente yi des ganzzahligen Teils der Ausrichtungsparameter C(i,j). Nimmt man beispielsweise an, daß der Bereich des Interesses RD_ROI, der aus dem Speicher 550b abgerufen wird, Startkoordinatenwerte (RD_HZERO=2, RD_VZERO=8) hat, wobei der Datenwert RD_HZERO, gezeigt in 10, die horizontale Startkoordinaten des Lesebereichs von Interesse RD_ROI ist und der Wert RD_VZERO, gezeigt in 10, die vertikale Startkoordinate des Lesebereichs von Interesse RD_ROI ist. Wenn die horizontale Komponente xi = 4 ist und die vertikale Komponente yi = 5 ist, werden die Startkoordinaten eingestellt auf (RD_HZERO=6, RD_VZERO=13). Im Ergebnis werden die Bilddaten, die von dem Speicher 550b durch den Einzelbildspeichercontroller 610 abgefragt werden, durch den ganzzahligen Teil der Ausrichtungswerte C(i,j) verzerrt.
  • Als nächstes interpoliert die Filtereinheit 620 das verzerrte Zwischenbild unter Verwendung des Bruchteilanteils des Peakausrichtungsparameters C(i,j)peak, um das Verzerren des Bildes zu vervollständigen. Der Mikroprozessor 540, der in 5 gezeigt ist, verwendet den Peakausrichtungsparameter C(i,j)peak, um die Filtereinheit 620, die in 6 gezeigt ist, zu programmieren, um die Helligkeitskomponente des Bildes zu verzerren. Der Peakausrichtungsparameter C(i,j)peak spezifiziert den Grad, mit dem das Bild verzerrt wird.
  • Jeder der Pixelwerte in dem Bild wird durch den Peakausrichtungsparameter C(i,j)peak verzerrt, um die Bilder in den Einzelbildern auszurichten, wie in den 2a2d gezeigt ist. Es ist somit wünschenswert, jeden Pixelwert in dem Einzelbild unter Verwendung derselben Bruchteilstranslation zu verzerren. Die Filtereinheit 620 kann daher programmiert sein, um eine zwei mal zwei bilineare Interpolationsoperation zu implementieren. Alternativ dazu kann die Filtereinheit 620 ein trennbares zwei mal zwei Filter sein. Ein solches bilineares Interpolationsfilter ist TRW Teil Nr. TMC2301, das beschrieben ist in der Echtzeit-Bilinearinterpolation unter Verwendung des TMC2241 von Steve Gomez, TRW LSI Products Division, mit dem Datum 21. Januar 1989, das hier durch Bezugnahme aufgenommen wird für seine Lehren über bilineare Interpolation.
  • Wenn der Bruchteilsanteil C(xf,yf) der Ausrichtungswerte beispielsweise 0,3 Pixelwerte in der horizontalen Richtung und 0,4 Pixelwerte in der Vertikalrichtung ist, dann werden ein horizontales Filter mit zwei Abgriffen mit Koeffizientenwerten 0,7 und 0,3 und ein vertikales Filter mit zwei Abgriffen mit Koeffizienten 0,6 und 0,4 verwendet, um die bilineare Interpolation zu implementieren.
  • Die Filtereinheit 620 kann ebenso Interpolationsoperationen höherer Ordnung implementieren, um die Qualität der Bildinterpolation zu erhöhen.
  • Sobald die Sektion 800a komplettiert ist, werden in 8 die Schritte, die in Sektion 800b gezeigt sind, durchgeführt. Das Gauß-Bild Gn(t)Y wird aus dem Speicher 550a abgerufen unter Verwendung des Einzelbildspeichercontrollers 605. Das Gauß-Bild Gn(t)Y wird gefiltert unter Verwendung der Filtereinheit 615, um das Gauß-Bild Gn+1(t)Y der nächsten Ebene zu erzeugen. Wenn beispielsweise das Gauß-Bild G1(t)Y von dem Einzelbildspeichercontroller 605 abgerufen wird, erzeugt die Filtereinheit 615 ein Gauß-Bild G2(t)Y. Die Filtereinheit 615 führt dieselben Operationen durch wie oben unter bezug auf Sektion 800a und das Gauß-Bild G1(t)Y beschrieben wurden. Das Gauß-Bild Gn+1(t)Y wird dann im Speicher 550a unter Verwendung des Einzelbildspeichercontrollers 605 gespeichert. Der Einzelbildspeichercontroller 605 subsampelt das Gauß-Bild Gn+1(t)Y vor dem Speichern des Gauß-Bildes im Speicher 55a.
  • Die Filtereinheit 615 subtrahiert ebenso das Gauß-Bild Gn+1(t)Y von dem Gauß-Bild Gn(t)Y, um das Laplace-Bild Ln(t) zu erzeugen. Das Laplace-Bild Ln(t) wird dann verarbeitet unter Verwendung der LUT 645, die verwendet wird, um das Laplace-Bild Ln(t) zu verstärken, um das Bild Ln(t)' zu erzeugen. Die LUT 645 ist eine acht Bit LUT. Das verbesserte bzw. verstärkte Laplace-Bild Ln(t)' wird dann im Speicher 550b unter Verwendung des Einzelbildspeichercontrollers 610 gespeichert.
  • Die obigen Schritte der Sektion 800b werden wiederholt für n gleich 2, 3 und 4, um Laplace-Bilder L1(t) bis L4(t) und Gauß-Bilder G2(t) bis G4(t) zu erzeugen. Da jedes nachfolgende Bild ein Viertel der Anzahl von Pixeln des vorherigen Bildes enthält, wird die Verarbeitungszeit, um die Schritte von Sektion 800b zu wiederholen, näherungsweise die gleiche sein wie die Verarbeitungszeit für das Erzeugen des Gauß-Bildes G0(t) in Sektion 800a. Die Laplace-Bilder L1(t) bis L4(t) werden jeweils im Speicher 550b unter Verwendung des Einzelbildspeichercontrollers 610 gespeichert. Die obigen Schritte für das Erzeugen des Gauß-Bildes Gn+1(t) und der Laplace-Bilder L1(t) bis L4(t) werden in etwa 3,2 msec komplettiert.
  • Parallel zu den oben in Sektion 800b beschriebenen Schritten wird die Farbkomponente des vorherigen Gauß-Bildes G0(t–1)C aus dem Speicher 550b abgerufen und unter Verwendung des Einzelbildspeichercontrollers 610 und der Filtereinheit 620 verzerrt. Der Einzelbildspeichercontroller 605 und 610 arbeitet in der selben Art und Weise, um die Farbkomponenten zu verzerren, wie oben beschrieben, um die Helligkeitskomponente zu verzerren. Das Verzerren von einem Bild oder die Hälfte eines Einzelbildes der vorherigen Farbbilddaten wird in etwa 3,7 msec durchgeführt. Sobald die Farbkomponente des vorherigen Gauß-Bildes von G0(t–1)C verzerrt wird, wird es im Framepuffer 570 abgelegt. Die verzerrte Farbkomponente wird dem Framepuffer 570 über den Kreuzpunktschalter 640, der in 6 gezeigt ist, über das Ausgangsterminal OUT1 bereitgestellt.
  • Wie oben beschrieben wurde, führt der Stabilisierungsprozeß als erstes Bildkorrelationen über einem fünf mal fünf-Bereich eines Laplace-Bildes L4 durch, um Ausrichtungsparameter C4(i,j) zu erzeugen. Der maximale Ausrichtungsparameter C4(i,j)max wird dann aus den Ausrichtungsparametern C4(i,j) ausgewählt. Schließlich wird der Ausrichtungsparameter C4(i,j)peak erzeugt. Der Peakausrichtungsparameter C4(i,j)peak wird dann verwendet, um das Laplace-Bild L3 zu verzerren.
  • In der gleichen Art und Weise wie für Ebene vier wird der Peakausrichtungsparameter C3(i,j)peak für die Ebene drei erzeugt. Der Peakausrichtungsparameter C3(i,j)peak wird verwendet, um das Laplace-Bild L2 zu verzerren. In der gleichen Art und Weise wie für Ebene drei wird der Peakausrichtungsparameter C2(i,j)peak erzeugt für die Ebene zwei. Sektion 800c, gezeigt in 8, stellt dar, wie diese Operationen in dem PPP 560 implementiert werden.
  • Das Laplace-Bild L4(t–1) wird aus dem Framespeichercontroller 610 abgerufen und der Filtereinheit 620 zur Verfügung gestellt. Das Laplace-Bild L4(t–1) wird durch die Filtereinheit 620 geleitet und Verzögerern 625a und 625b bereitgestellt. Mit anderen Worten wird das Laplace-Bild L4(t–1) nicht verzerrt. Das Laplace-Bild L4(t) wird aus dem Speicher 550b unter Verwendung des Einzelbildspeichercontrollers 610 abgerufen und den Verzögerern 625a und 625b bereitgestellt. Das Abfragen des Laplace-Bildes L4(t) wird verzögert, um die Zeitverzögerung, die aufgetreten ist, wenn das Laplace-Bild L4(t–1) durch die Filtereinheit 620 geleitet wird, zu kompensieren.
  • Wie oben beschrieben wurde, ist das erste zu verzerrende Bild ein der Laplace-Pyramide das Laplace-Bild L3(t–1) unter Verwendung der Ausrichtungsparameter C4(i,j). Wenn das Laplace-Bild L4(t–1) der Filtereinheit 620 bereitgestellt wird, leitet die Filtereinheit 620 das Laplace-Bild L4(t-1) ohne Verzerrung zu den Verzögerern 625a und 625b weiter.
  • Die Verzögerer 625a und 625b, die Multiplizierer 630a und 630b, die Aufaddieren 635a und 635b werden verwendet, um Gleichung 1 oben zu implementieren, wobei n gleich 4 (n = 4) ist. Die Verzögerer 625a und 625b sind zumindest vier Pixelwertverzögerungen lang, so daß die geeigneten Pixelwerte in den Laplace-Bildern L4(t–1) und L4(t) unter Verwendung der Multiplizierer 630a und 630b multipliziert werden können und nachfolgend unter Verwendung der Aufaddierer 635a und 635b aufaddiert werden können, um die Ausrichtungsparameter C4(i,j) zu erzeugen. Die Ausrichtungsparameter C4(i,j) werden der Statistikeinheit 647, die in 6 gezeigt ist, bereitgestellt, die den maximalen Ausrichtungsparameter C4(i,j)max bestimmt. Dann werden die Ausrichtungsparameter C4(i,j) neben dem maximalen Ausrichtungsparameter C4(i,j)max der Filtereinheit 620 bereitgestellt. Die Filtereinheit 620 verwendet eine zwei mal zwei-Umgebung von Ausrichtungsparametern C4(i,j) einschließlich des maximalen Ausrichtungsparameters C4(i,j)max, um den Peakausrichtungsparameter zu erzeugen. Die Filtereinheit 620 implementiert eine bilineare Interpolation, um den Peakausrichtungsparameter C4(i,j)peak aus der zwei mal zwei-Pixelumgebung zu erzeugen.
  • Der Peakausrichtungsparameter C4(i,j) wird dem Prozessor 540 bereitgestellt. Die Erzeugung des Peakausrichtungsparameters Cn(i,j) beinhaltet drei Iterationen der oben in Sektion 800c beschriebenen Schritte. Die Zeit, um diese Schritte durchzuführen, beträgt etwa 6,6 msec. Nach jeder Iteration summiert der Mikroprozessor 540 die Peakausrichtungsparameter C4(i,j)peak, C3(i,j)peak und C2(i,j) für jede Ebene der Laplace-Pyramide von der meistsignifikantesten Bitposition bis zu der am wenigsten signifikanten Bitposition auf. Der Mikroprozessor 540 verwendet den aufsummierten Ausrichtungsparameter, um die Filtereinheit 620 und die Einzelbildspeichercontroller 605 und 610 zu programmieren, um die Bilder zu verzerren.
  • Die selben Schritte, wie oben beschrieben, werden verwendet, um die Ausrichtungsparameter Cn(i,j) für Ebene drei (n = 3) und zwei (n = 2) zu erzeugen, außer daß das vorherige Bild verzerrt wird unter Verwendung des aufsummierten Peakausrichtungsparameters. Beispielsweise wird das Laplace-Bild L3(t–1) durch den Filter 620 in Antwort auf den aufsummierten Peakausrichtungsparameter, was der Peakausrichtungsparameter C4(i,j) für Ebene 4 ist, verzerrt. Das Laplace-Bild L2(t–1) wird durch den Filter 620 verzerrt in Antwort auf den aufsummierten Peakausrichtungsparameter, der eine Aufsummierung der Peakausrichtungsparameter C4(i,j) für Ebene 4 und des Peakausrichtungsparameters C3(i,j) für Ebene 3 ist.
  • Parallel zu den oben in Sektion 800c beschriebenen Schritten wird die gegenwärtige Farbkomponente des gegenwärtigen Bildes G0(t) dem Einzelbildspeichercontroller 605 bereitgestellt und im Speicher 55a über den in 6 gezeigten Kreuzungspunktschalter 620 gespeichert. Die Übertragung und Speicherung der Farbkomponente erfolgt in etwa 3,7 msec. Pixelwerte werden in Einzelbildpuffern 570 und 580 mit einer Taktrate von 50 MHz gespeichert, während Daten aus den Framepufferspeichern 570 und 580 durch den Videoausgangscodierer 590 im wesentlichen zur gleichen Zeit mit einer Taktrate von 12,5 bis 13,5 MHz abgerufen werden, was etwa 16 msec erfordert, um die Daten, die in den Pufferspeichern abgelegt sind, zu lesen. Die Einzelbildpufferspeicher 570 und 580 sind doppelt puffergespeichert.
  • Es wird nun zu 5 zurückgekehrt, dort werden das stabilisierte Helligkeitskomponentensignal Y und die stabilisierten Farbkomponentensignale Cv und Cu jeweils von den Einzelbildpufferspeichern 570 und 580 zu dem Codierer 590 geliefert. Der Codierer 590 kombinierte die Komponenten, um an dem Ausgangsanschluß OUT ein Farbvideosignal zu erzeugen. Der Codierer 590 ist beispielsweise eine Philips-Einrichtung mit der Teil-Nr. SAA7187.
  • In 5 wird der Mikroprozessor 540 verwendet, um den Codierer 590 und den Decodierer 510 zu programmieren, und um die Bildverarbeitungsfunktionen des PPP 560 über das Prozessorsignal PS zu steuern. Der Mikroprozessor 540 wird ebenso verwendet, um die Register in den Einzelbildspeichercontrollern 605 und 610 für jeden der Schritte des oben beschriebenen Stabilitätsprozesses zu programmieren. Der Mikroprozessor 540 sollte mit einer Geschwindigkeit von beispielsweise 20 MHz arbeiten, so daß die Reprogrammierungszeit zwischen jedem Verarbeitungsschritt des Stabilisierungsprozesses minimiert wird. Der Mikroprozessor 540 hat einen Programmspeicher für das Speichern von Codes, um das Stabilisierungssystem 500 zu betreiben. Der Mikroprozessor 540 kann ebenso Verbindungen zu einem externen EPROM, z. B. einem FLASH EPROM (nicht gezeigt) für die Bootprozeduren für das Stabilisierungssystem beinhalten. In einer alternativen Ausführungsform kann der Mikroprozessor 540 in dem PPP 560 eingeschlossen sein. Dies kann die Herstellungskosten solch eines Systems reduzieren.
  • Der Steuerschaltkreis 595 steuert die Schnittstelle zwischen den Eingangs- und Ausgangsbussen des Decoders 510 und Codierers 590 und steuert das Interface und die Zähler (nicht gezeigt), um die Einzelbildpufferspeicher 520, 530, 570 und 580 zu steuern. Der Steuerschaltkreis 595 extrahiert ebenso das Taktsignal HA und das Signal VA, die verwendet werden, um den Betrieb zwischen Pufferspeichern 520 und 530 und dem PPP 560 und zwischen den Pufferspeichern 570 und 580 und dem Codierer 590 zu steuern. Der Steuerschaltkreis 595 steuert ebenso die Schnittstelle zwischen dem Mikroprozessor 540 und dem PPP 560. Der Steuerschaltkreis 595 stelle zwischen dem Mikroprozessor 540 und dem PPP 560. Der Steuerschaltkreis 595 steuert diese Operationen über die Steuersignale CS.
  • Beschreibung des Einzelbildspeichercontrollers
  • Die Einzelbildspeichercontroller 605 und 610 und die Speicher 550a und 550b, die in 6 gezeigt sind, sind im folgenden beschrieben. Die Einzelbildspeichercontroller 605 und 610 stellen einen Dreifachanschlußzugriff zu den Speichern 550a und 550b für die Videoverarbeitung zur Verfügung. Der Dreifachanschlußzugriff beinhaltet das im wesentlichen gleichzeitige Schreiben eines kontinuierlichen Videodatenstroms in die Speicher 550a und 550b, die in 6 gezeigt sind, das Lesen eines kontinuierlichen Videodatenstroms von den Speichern 550a und 550b, und das Bereitstellen eines wahlfreien Zugriffs auf Daten in den Speichern 550a und 550b.
  • Das Gauß-Bildsignal Gn(t) und das Laplace-Bildsignal Ln(t) werden abgerufen und in den Speichern 550a und 550b während des Stabilisierungsprozesses gespeichert. Die Abfrage und die Speicherung von Bilddaten in den Speichern 550a und 550b wird unten beschrieben. Die Schlüsselsignale, die zu und von dem Einzelbildspeichercontroller 605 bereitgestellt werden, sind in 9 gezeigt.
  • Die Einzelbildspeichercontroller 605 und 610, die in 6 gezeigt sind, sind verantwortlich für die Implementierung der Lese- und Speicheroperationen mit Pipelineverfahren innerhalb der Speicher 550a und 550b in einer Art und Weise mit zwei Anschlüssen. Der Einzelbildspeichercontroller 605 und 610 führt rechteckige Interessenbereichsoperationen (ROI) für Datenabruf- oder – speicheroperationen aus, da die Bilder in einer zweidimensionalen Art und Weise gespeichert sind und von den Speichern 550a und 550b abgerufen werden. Die Einzelbildspeichercontroller 605 und 610 können ebenso die Bilder auf Lese- und Speicheroperationen resamplen mit einer nächsten Nachbarpixelinterpolation bei Leseerweiterungsoperationen und mit einer Dezimierung bei Speicheroperationen.
  • Die Einzelbildspeichercontroller 605 und 610 führen ebenso Einzelpixelabfrage- und – speicheroperationen in einer wahlfreien Zugriffs-Art und Weise von dem globalen Bus 670 durch, der in 6 gezeigt ist. Dies erlaubt es dem Prozessor 540 und dem Steuerschaltkreis 595, auf die Speicher 550a und 550b unabhängig von den Pipelineabruf- und -speicheroperationen zuzugreifen, die innerhalb der Einzelbildspeichercontroller 605 und 610 ausgeführt werden können. Der Zugriffsanschluß 2340 für den globalen Bus ist in 23 gezeigt. Der Zugriffsanschluß 2340 des Einzelbildspeichercontrollers wird erweitert unter Verwendung der Cachespeicherung, um die schnelleren Zugriffsmodi der Einzelbildspeicher 550a und 550b, die in 6 gezeigt sind, auszunutzen, wenn Pixelzugriffe über den globalen Bus erfolgen.
  • 23 ist ein Blockdiagramm des Schnittstellenschaltkreises der Einzelbildspeichercontroller 605 und 610, die den Dreifachanschlußzugriff implementieren. Der Schnittstellenschaltkreis beinhaltet FIFOs, Datencachespeicher und eine Steuerlogik für die Abruf- und -speicheroperationen des Controllers. Wie in 24 gezeigt ist, wird der Zugriff auf die Speicher 550a und 550b, die in 6 gezeigt sind, eingeplant, so daß eine optimale Verwendung der Datenbündelfähigkeit bzw. Datenburstfähigkeit der Speicher 550a und 550b durchgeführt werden kann.
  • Bilddaten werden durch den Einzelbildspeichercontroller 605 in einem kontinuierlichem Rasterscan von einem Bereich von Interesse RD_ROI, der in den 1012 gezeigt ist, synchron mit dem Lesetaktsignal RD_CLK, das in den 1315 gezeigt ist, abgerufen. Wenn Daten von dem Speicher 550a, gezeigt in 6, abgerufen werden, werden zwei Taktsignale RD_HA und RDVA erzeugt, die anzeigen, wenn das abgerufene Datensignal RD_OUT, gezeigt in den 1319, gültig ist. Die 1319 und 22 sind Taktdiagramme, die die Funktion des Einzelbildspeichercontrollers darstellen, der in 9 gezeigt ist. Das Taktsignal RD_HA ist in einem logisch hohen Zustand, wenn die Daten in einer Zeile gültig sind (d. h. während des aktiven Bildintervalls) und anderenfalls in einem logisch niedrigen Zustand (d. h. während des horizontalen Abschaltintervalls). Das Taktsignal RD_VA ist in einem logisch hohen Zustand, wenn die Daten in einer Zeile gültig sind (d. h. während des aktiven Bildintervalls) und anderenfalls in einem logisch niedrigen Zustand (d. h. während des vertikalen Abschaltintervalls). Alternativ dazu kann ein Feldsignal (unten beschrieben) verwendet werden, um die Daten unter Verwendung von Interlace Leseoperationen auszulesen.
  • Zusätzlich kann jede horizontal aktive Periode in Antwort auf ein Signal RD_HOLD, gezeigt in 9, das den Einzelbildspeichercontrollern 605 und 610, gezeigt in 6, bereitgestellt wird, verzögert sein. 16 stellt den Betrieb bzw. die Funktion des Einzelbildspeichercontrollers 605 dar, wenn das Signal RD_HOLD verwendet wird. Wenn das Signal RD_HOLD low ist und das Register RD_HOLD_ENA eingestellt wird, wird die Leseoperation gehalten während der durch den Datenwert RD_HBLANK spezifizierten Zeit, gezeigt in den 14 und 16, bis das Signal RD_HOLD „high" ist. Alternativ dazu kann die Leseoperationstaktung auf das horizontale Antriebssignal EXT_HDn und das vertikale Antriebssignal EXT_VDn, die jeweils in den 1719 gezeigt sind, geslaved sein, wenn der Bitwert RD_EXT_ENA eingestellt wird. Die 1719 stellen die Funktionen des Einzelbildspeichercontroller 605 dar, wenn die Leseoperationstaktung an externe Treibersignale geslaved bzw. gekoppelt ist. Das Abrufen von Daten wird in Antwort auf das RD_SNCn-Signal, das in den 14 und 16 gezeigt ist, nachdem das Register RD_ENA eingestellt wurde, initiiert.
  • Wie in den 13 und 14 gezeigt ist, zeigt, wenn das Lesebereitschaftssignal RD_RDY logisch Eins ist, dies an, daß die Datenabrufsoperation bereit ist. Das Lesebereitschaftssignal RD_RDY wird in eine logische Null verändert, nachdem auf das Register RD_ENA zugegriffen wurde. Das Lesebereitschaftssignal RD_RDY verändert sich in eine logische Eins, wenn der Datenabrufbetrieb aktiviert wird und verändert sich in eine logische Null nach dem Signal RD_SYNCn-Puls und bis die Datenabrufsoperation vervollständigt ist. Im kontinuierlichen Modusbetrieb bleibt das Lesebereitschaftssignal RD_RDY eine logische Null.
  • Die abzurufenden Bilddaten werden im Speicher 550a gehalten, der in 6 gezeigt ist. Der Speicher 550a ist als eine zweidimensionale Anordnung organisiert. Die logische Datenbitgröße, d. h. die Tiefe des Speichers 550, ist 8 Bits oder ein Byte. Daten werden physikalisch gespeichert, jedoch als 16 Bit-Daten, mit geraden Pixelwerten X0, X2, X4, X6, gespeichert in dem oberen Byte und den ungeraden Pixelwerten X1, X3, X5, X7 ... gespeichert in dem unteren Byte.
  • Die Breite, d. h. die horizontale Größe, und die Höhe, d. h. die vertikale Größe, des Speichers 550a beträgt ein Mbyte und ist als eine ein Kbyte mal ein Kbyte Anordnung angeordnet. Der Speicher 550a ist nicht auf ein Mbyte beschränkt und kann variieren abhängig von der bestimmten Applikation und des verwendeten Speichers. Der Speicher 550a besteht beispielsweise aus zwei 256 k mal 16 Bits Video RAM (VRAM)-Chips, wobei die kombinierten VRAM-Chips 1024 k 8-Bit Pixelwerte halten. Der Speicher 550a hat daher eine logische Adreßstruktur, die 1024 Pixelwerte mal 1024 Pixelwerte speichert.
  • Daten, die im Speicher 550a abgelegt sind, werden unter Verwendung einer kontinuierlichen Rasterscantyplesung aus dem interessierenden Bereich RD_ROI, gezeigt in den 1012, synchron mit dem Signal RD_CLK, gezeigt in 15, abgefragt. Nachdem alle Leseparameter programmiert wurden, wie unten beschrieben, wird das Abrufen der Daten von dem Speicher 550a in Antwort auf das Signal RD_ENA, gezeigt in den 1314, initiiert. Wie in den 1315 gezeigt ist, werden das Datensignal RD_OUT und die Taktsignale RD_VA und RD_HA in Antwort auf den Signalpuls RD_SYNCn erzeugt. Die Datenabfrageoperationen der Einzelbildspeichercontroller 605 und 610 werden synchronisiert durch Programmieren der Register (unten beschrieben) von jedem Einzelbildspeichercontroller 605 und 610, durch Erstellen des Registers RD_ENA und durch zur Verfügung stellen dann des RD_SYNCn-Pulses zu beiden Einzelbildspeichercontrollern 605 und 610. Wie in 8 gezeigt ist, werden beispielsweise die Gauß-Bildsignale G0(t–1) bzw. Gn(t) von den Einzelbildspeichercontrollern 610 und 605 zur gleichen Zeit abgefragt.
  • Das erste Pixel, d. h. die ersten gültigen Daten, der Datenabrufsoperation wird durch die Datenwerte festgelegt, die in den Registern RD_HZERO und RD_VZERO gespeichert sind. Das erste Pixel erscheint als eine vorbestimmte Anzahl von Taktzyklen des Lesetaktsignals RD_CLK, gezeigt in 15, nach einem Puls in dem Signal RD_SYNCn. Das Erscheinen des ersten Pixelwertes in den Taktzyklen wird durch die Kombination der Datenwerte, die in den Registern RD_HSTART und RD_VSTART und einer inhärenten Verzögerungszeit RD_HDELAY festgelegt. RD_HDELAY ist die inhärente feste horizontale Zeitverzögerung der Leseoperation relativ zu dem Puls des Signals RD_SYNCn. Datenwerte in den Registern RD_HSTART und RD_VSTART sind programmierbar, so daß Leseoperationen von zwei Quellen in der Zeit ausgerichtet werden können. Diese Register werden programmiert unter Verwendung des Mikroprozessors 540 über das Signal PS.
  • Der Bereich des Interesses RD_ROI ist in 1012 gezeigt. Der Bereich des Interesses wird durch die Datenwerte RD_HZERO, RD_VZERO, RD_HSIZE und RD_VSIZE festgelegt. Der Datenwert RD_HZERO ist der horizontale Koordinatenwert, d. h. die Spalte des Bereichs von Interesse RD_ROI. Der Datenwert RD_VZERO ist der vertikale, d. h. der Reihen-, Koordinatenwert des Pixelwertes ganz links oben des Bereichs von Interesse RD_ROI. Der Datenwert RD_HSIZE ist die horizontale Größe, d. h. die Breite, des Bereichs von Interesse RD_ROI, der abzufragen ist, und spezifiziert die Anzahl von Taktzyklen (Pixelwerte), die eine horizontale Zeile der Region von Interesse auszulesen ist. Der Datenwert RD_VSIZE ist die vertikale Größe, d. h. die Höhe, des Bereichs von Interesse RD_ROI, der abgefragt wird. Wie in 12 gezeigt ist, bricht, wenn der Bereich von Interesse die Speichergrenze überschreitet, die Abfrage von Daten entlang der Grenze der Bilddaten, die im Speicher 550a abgelegt sind, um.
  • Wie oben beschrieben wurde, erzeugen die Einzelbildspeichercontroller 605 und 610 während des Stabilisierungsprozesses, der in 8 gezeigt ist, ein verzerrtes Zwischenbild, das durch den ganzzahligen Abschnitt der Ausrichtungsparameter Cn(i,j) verzerrt wird. Das verzerrte Zwischenbild wird erzeugt durch Einstellen der Datenwerte in den Registern RD_HZERO und RD_VZERO. Die horizontale Komponente X wird zu dem Datenwert RD_HZERO addiert, und die vertikale Komponente Y wird zu dem Datenwert in dem Register RD_VZERO addiert, um die Startposition des Bereichs von Interesse RD_ROI, der in den 1012 gezeigt ist, einzustellen. Durch Einstellen der Startposition des Bereichs von Interesse RD_ROI werden die Bilddaten verzerrt, um das verzerrte Zwischenbild zu erzeugen, wenn die Bilddaten von den Speichern 550a und 550b abgerufen werden.
  • Nachdem die Datenabfrage initiiert wurde, wird jeder Pixelwert in der horizontalen Zeile mit der Größe RD_HSIZE in aufeinanderfolgender Ordnung mit einer Rate, die in Antwort auf das Lesetaktsignal RD_CLK, gezeigt in 15, bestimmt wird, abgerufen. Es gibt eine minimale programmierbare Zeit zwischen jeder horizontalen Zeilenabtastung, die durch den Datenwert festgelegt wird, der in dem Register RD_HBLANK gespeichert ist. Dieser Wert spezifiziert eine Anzahl von Lesezyklen entsprechend einem horizontalen Abschaltintervall bzw. Dunkeltastintervall. Die Datenwerte, die in dem Register RD_VSIZE abgelegt sind, spezifizieren die Anzahl von Zeilen, die auszulesen sind. Nachdem die Anzahl von Zeilen, die durch das Register RD_VSIZE festgelegt sind, abgerufen wurden, ist die Datenabrufsoperation komplett.
  • Alternativ kann die Datenabrufsoperation des Einzelbildspeichercontrollers 605 auf den kontinuierlichen Betrieb eingestellt werden, wo die Leseoperation sich wiederholen wird nach einer programmierbaren Anzahl von Zeilen, die durch den Datenwert RD_VBLANK festgelegt wird. Der kontinuierliche Betrieb kann durch erneutes Einstellen des Steuerbits beendet werden, der den kontinuierlichen Betrieb ermöglicht.
  • Alle Leseoperationen können beendet werden und in einen untätigen Zustand gebracht werden durch Einstellen des Datenwertes in dem Register RD_RST. Das Signal RD_HA, gezeigt in den 1319, wird in eine logische Null verändert, wenn die Datenabfrage beendet ist. Anderenfalls wird das Signal RD_HA kontinuierlich erzeugt, bis das Register RD_ENA eingestellt wird. Das Abfragen von Bilddaten wird beendet durch Einstellen des Registers RD ENA. In diesem Fall wird die nächste Bilddatenabrufsoperation durch den Einzelbildspeichercontroller 605 initiiert.
  • Ein Zoom- bzw. Vergrößerungsfaktor kann ebenso während der Abfrageoperation an die Bilddaten angelegt werden. Der Bereich von Interesse RD_ROI kann unabhängig in der horizontalen und der vertikalen Richtung des Bildes eingestellt werden. Die Anzahl von Pixelwerten in einer Zeile und die Anzahl von Zeilen wird erhöht durch Wiederholen der Pixelwerte/Zeilen, die von den entsprechenden Datenwerten in den Registern RD_HZOOM und RD_VZOOM (nicht gezeigt) abgerufen werden. Die Register RD_HZOOM und RD_VZOOM sind in den Einzelbildspeichercontrollern 605 und 610. Das Bild kann durch einen Faktor von beispielsweise eins, zwei bis sechzehn eingestellt werden. Die Datenwerte in den Registern RD_HSIZE und RD_VSIZE stellen die Größe des Bildes dar, nachdem die Zoomfaktoren angewendet wurden.
  • Ein Beispiel einer Datenabfrage, die eine Zoomoperation durchführt, wird unten beschrieben. Der Lesebereich von Interesse RD_ROI und die Zoomdatenwerte sind: RD_HZERO = 10; RD_VZERO = 8; RD_HSIZE = 64; RD_VSIZE = 60; RD_HZOOM = 2; RD_VZOOM = 2; RD_HSTART = 20; RD_VSTART = 2; RD_HBLANK = 32; RD_VBLANK = 5 und RD_HDELAY = 6.
  • In Antwort auf diese Datenwerte wird ein Bildsegment mit 32 Pixelwerten mal 30 Pixelwerte beginnend an den Koordinatenwerten [10, 8] im Speicher 550a abgerufen. Der Einzelbildspeichercontroller 605 erhöht die Anzahl von Pixelwerten um einen Faktor zwei durch Wiederholen jedes Pixelwertes in der horizontalen und vertikalen Richtung. Wenn beispielsweise die Pixelwerte X11, X12, X13 ... von Zeile eins abgerufen werden und die Pixelwerte X21, X22, X23 ... von Zeile zwei abgerufen werden in dem Bereich von Interesse RD_ROI, der im Speicher 550a, gezeigt in 6, abgelegt ist, erzeugt der Einzelbildspeichercontroller 605, gezeigt in 6, vier entsprechende Zeilen in dem Signal RD_OUT, wie in Tabelle 2 unten gezeigt ist.
  • TABELLE 2
    Figure 00230001
  • Der erste Pixelwert wird von dem Einzelbildspeichercontroller 605 zweihundertachtzehn Lesetaktzyklen des Lesetaktsignals RD_CLK, gezeigt in 15, nach der negativen Flanke des RD_SYNCn-Signalpulses, gezeigt in den 13 und 14, wie in Übereinstimmung mit den Gleichungen (2) und (3) unten bestimmt, bereitgestellt. RD_HDELAY + RD_HSTART + VSTART*line time 6 + 20 + (2*96) = 218 (2) line_time = RD_HSIZE + RD_HBLANK = 96 (3)
  • Die Gesamtzeit, um alle Pixelwerte von dem Einzelbildspeichercontroller bereitzustellen, beträgt 5228 Taktzyklen des Lesetaktsignals RD_CLK und wird in Übereinstimmung mit Gleichung (4) unten bestimmt. RD_VSIZE* line time – RD_HBLANK = 60*96 – 32 = 5728 (4)
  • Wenn der Einzelbildspeichercontroller 605 in einem kontinuierlichen Datenabrufmodus betrieben wird, beträgt die Zeit zwischen dem letzten Pixel des vorherigen Bildes und dem ersten Pixel des nächsten Bildes 512 Taktzyklen des Lesetaktsignals RD_CLK und wird in Übereinstimmung mit Gleichung (5) unten bestimmt. RD_VBLANK * line time + RD_HBLANK = 5* 96 + 32 = 512 (5)
  • Die Gesamtzeit, um ein gesamtes Einzelbild, das im Speicher 550a abgelegt ist, im kontinuierlichen Betrieb abzurufen, beträgt 6240 Taktzyklen des Lesetaktsignals RD_CLK und wird in Übereinstimmung mit Gleichung (6) unten bestimmt. (RD_VSIZE + RD_VBLANK) * line time = 6240 (6)
  • Der Einzelbildspeichercontroller 605 führt die Datenabfrage im progressiven (non-interlace) Modus durch. Wenn der Bitwert RD_INTERLACE des Registers RD_CTRL in eine logische 1 verändert wird, wird die Datenabfrage im Interlace-Modus durchgeführt. Der Lesebereich von Interesse RD_ROI ist ein Einzelbild einschließlich zweier Felder. Ein Feld ist die Hälfte des Einzelbildes bestehend aus alternierenden Zeilen des Einzelbildes. Feld 1 ist das Feld, das mit der ersten Zeile des Einzelbildes beginnt und Feld 2 ist das Feld, das mit der zweiten Zeile des Einzelbildes beginnt.
  • Die Bitwerte RD_FIELD1_ENA und RD_FIELD2_ENA des Registers RD_CTRL identifizieren, welche Felder abgerufen werden. Beispielsweise, wenn beide Bitwerte RD_FIELD1_ENA und RD_FIELD2_ENA eine logische Eins sind, dann beinhaltet der einzelne Datenabrufbetrieb das Abrufen von zwei aufeinanderfolgenden Feldbildern, Feld eins gefolgt von Feld zwei. Die Zeitdauer zwischen dem Abruf der beiden Felder wird festgelegt durch den Datenwert RD_VBLANK. Wenn nur einer der Bitwerte RD_FIELD1_ENA und RD_FIELD2_ENA eine logische Eins ist, dann beinhaltet der einzelne Datenabrufbetrieb das Abrufen von nur einem Feld. Wenn beispielsweise der Bitwert RD_FIELD1_ENA eine logische Eins ist und der Bitwert RD_FIELD2_ENA eine logische Null ist, wird Feld 1 abgerufen. Wenn die Bitwerte RD_FIELD1_ENA und RD_FIELD2_ENA beide logisch Null sind, dann tritt keine Leseoperation auf. Das Signal RD_FLD1 zeigt an, welches Feld ausgelesen wird. Wenn das Signal RD_FLD1 eine logische Eins ist, dann wird Feld 1 abgerufen und wenn Signal RD_FLD1 eine logische Null ist, dann wird Feld 2 abgerufen.
  • Alle Datenabrufe können kontinuierlich oder nicht kontinuierlich sein. Wenn der Datenabruf kontinuierlich ist, wird er in der gleichen Art und Weise wie der nicht kontinuierliche Datenabruf initiiert. Datenwerte, die in den Registern RD_HSTART und RD_VSTART abgelegt sind, werden verwendet, um das erste Einzelbild abzurufen und werden im folgenden nicht verwendet, um den Start des Abfragens der nachfolgenden Einzelbilder oder Felder zu bestimmen. Nachdem das erste Einzelbild oder Feld abgerufen wurde, wird die Datenabrufsoperation wiederholt. Es gibt ein Dunkelab tastintervall zwischen den wiederholten Datenabrufsoperationen, die durch den Datenwert RD_VBLANK eingestellt sind.
  • Wenn die Daten kontinuierlich abgerufen werden, ist das Signal RD_RDY logisch low. Der kontinuierliche Modus kann gestoppt werden durch Verändern des Bitwertes RD_CONTINUOUS von Register RD_CTRL auf eine logische Null. Der gegenwärtige Datenabrufsbetrieb wird dann vervollständigt und das Lesebereitschaftssignal RD_RDY wird in eine logische Eins verändert. Eine Interrupt-Anfrageausgabe kann erzeugt werden nach der Vervollständigung einer Datenabrufsoperation unter Verwendung des Registers RD_IRQ_ENA. Dieser Datenbitwert wird ebenso in das FS_STATUS Register geschrieben. Die voreingestellte Einstellung ist Null, was deaktiviert anzeigt.
  • Die Lesehalteoperation wird im folgenden unter bezug auf 16 beschrieben. Während der Lesehalteoperation wird die aktive Zeilenzeit des Signals RD_HA in Antwort auf das Signal RD_HOLD, gezeigt in 16, verzögert. Wenn das Signal RD_HOLDn eine logische Null ist, wird die aktive Zeilenzeit verzögert. Wenn das Signal RD_HOLDn in eine logische Eins verändert wird, werden die Zeilendaten aktiv nach einer Anzahl von Lesezyklen, die durch den Datenwert RD_HOLD_DELAY festgelegt sind, der die Verzögerung als eine Anzahl von Taktzyklen spezifiziert. Das Signal RD_HOLDn wird in ein logisch low verändert, wenn der Bitwert RD_HOLD_ENA des Registers RD_CTRL auf eine logische Eins eingestellt wird.
  • Die aktive Zeilenzeit wird verzögert, wenn das Ausgangsdatensignal RD_OUT einem begrenzten oder asynchronen Datensatz bereitgestellt wird, wie z. B. einem FIFO. Es ist wünschenswert, daß der Komponentenschaltkreis, zu dem das Datensignal RD_OUT geliefert wird, eine gesamte Zeile des Einzelbildes hält. Das Signal RD_HOLD ist ein asynchrones Signal und sollte intern mit dem Signal RD_CLK synchronisiert sein.
  • Die 1719 sind Taktdiagramme, die den Betrieb des Einzelbildspeichercontrollers 605 darstellen, wenn die Datenabrufsoperation an die Signale EXT_HDn und EXT_VDn angehängt bzw. geslaved werden. 17 stellt den Betrieb des Einzelbildspeichercontrollers 605 dar, wenn (1) das erste Feld in dem Interlace-Modus abgerufen wird oder (2) wenn ein Einzelbild im nicht-Interlace-Modus abgerufen wird. 18 stellt den Betrieb des Einzelbildspeichercontrollers 605 dar, wenn das zweite Feld im Interlace-Modus abgerufen wird. 19 stellt den Betrieb des Einzelbildspeichercontrollers 605 dar, wenn die Datenabrufsoperation in den Signalen EXT_HDn und EXT_VDn abhängt bzw. geslaved ist und für unterschiedliche horizontale Größen des Bereichs von Interesse, gezeigt in den 1012, durch den Datenwert in dem Register RD_HSIZE spezifiziert werden.
  • Wenn der Bitwert RD_EXT_ENA des Registers RD_CTRL Eins ist, wird die Datenabrufsoperation an die Signale EXT_HDn und EXT_VDn geslaved und der Einzelbildspeichercontroller 605 ignoriert die RD_SYNCn Signalpulse. Nachdem das Register RD_EXT_ENA eingestellt ist, wird die Datenabrufsoperation initiiert, wenn die Signale EXT_HDn und EXT_VDn zur gleichen Zeit eine logische Null sind. Im non-Interlace-Modus wird der Datenabruf eines Einzelbildes initiiert und im Interlace-Modus wird der Datenabruf des Feldes initiiert.
  • Die erste aktive Zeile kann um eine Anzahl von Zeilen verzögert sein, die durch den Datenwert RD_VSTART bestimmt werden, in Antwort auf die Anzahl von abfallenden Flanken des Signals EXT_VDn. Die Anzahl von Zeilen wird in Antwort auf die abfallende Flanke des Signals EXT_VDn erzeugt, wobei jede abfallende Flanke als eine Zeile gezählt wird. Die aktiven Pixelwerte in einer Zeile können durch eine Anzahl von Pixelwerten verzögert sein, die durch den Datenwert RD_HSTART in Antwort auf die Anzahl von abfallenden Flanken des Signals EXT_HDn bestimmt werden. Die Anzahl von Pixelwerten wird in Antwort auf die abfallende Flanke des Signals EXT_HDn erzeugt, wobei jede abfallende Flanke als ein Pixelwert gezählt wird.
  • Wie in 18 gezeigt ist, wird im Interlace-Modus das zweite Feld durch die abfallende Flanke des Signals EXT_VDn bestimmt, die nicht notwendigerweise mit der abfallenden Flanke des Signals EXT_HDn zusammenfällt. Die nächste abfallende Flanke des Signals EXT_HDn ist dann der Beginn der Datenabrufsoperation des zweiten Feldes. Wenn einer der Bitwerte RD_HELD1_ENA und RD_HELD2_ENA des Registers RD_CTRL nicht eingestellt ist, dann fragt die Datenabrufsoperation nicht die Daten während dieses Feldes ab. Das Signal RD_FLD1 zeigt die Schaltzeit zwischen Feld eins und Feld zwei an.
  • Die Summe des Datenwertes RD_HSTART und des Datenwertes RD_HSIZE sollte kleiner als die Gesamtzeit des Signals EXT_HDn sein. Die Summe de Datenwertes RD_VSTART und des Datenwertes RD_VSIZE sollte kleiner als die Einzelbild- oder Feldzeit des Signals EXT_VDn sein.
  • Im kontinuierlichen Modus und im externen Taktmodus ist das Signal RD_RDY logisch Null. Im nichtkontinuierlichen Modus wird das Signal RD_RDY eine logische Eins am Ende des Datenabrufs des Einzelbilds im non-Interlace-Modus oder am Ende des zweiten Feldes im Interlace-Modus. In dem externen Taktmodus sind die Signale RD_HA, RD_VA und RD_FLD1 die selben, wenn die interne Taktung verwendet wird.
  • Die Schreiboperation des Einzelbildspeichercontrollers 605 wird unten unter Bezug auf 22 untersucht. Die Bilddaten werden im Speicher 550a unter Verwendung des Einzelbildspeichercontrollers 605 während des Schreibbetriebs gespeichert. Der Schreibbetrieb wird als ein kontinuierlicher Rasterscanschreibvorgang in einen Schreibbereich von Interesse WR_ROI, gezeigt in den 20 und 21, des Speichers 550a synchron mit dem Schreibtaktsignal WR_CLK festgelegt. Das Register WR_ENA wird eingestellt, nachdem alle anderen Schreibparameter programmiert sind. Das Einstellen des Registers WR_ENA aktiviert den Schreibbetrieb, der dann auf den Beginn des Eingangsbilddatensignals WR_IN wartet, wie es durch die Signale WR_HA und WR_VA festgelegt wird. Das Signal WR_HA ist in einem logischen high Zustand, wenn die Daten in einer Zeile gültig sind (d. h. während des aktiven Bildintervalls), und in einem logischen low Zustand anderenfalls (d. h. während des horizontalen Dunkelabtastinvertalls). Das Taktsignal WR_VA ist in einem logischen high Zustand, wenn die Daten in einer Zeile gültig sind (d. h. während des aktiven Bildintervalls), und in einem logischen low Zustand anderenfalls (d. h. während des vertikalen Dunkelabtastintervalls). Die ansteigende Flanke von beiden Signalen WR_HA und WR_VA zeigt den Beginn von gültigen Daten an.
  • Das Bilddatensignal WR_IN wird, beginnend an einem Speicherplatz, der durch die Datenwerte festgelegt wird, die in den Registern WR_HZERO und WR_VZERO gespeichert sind, gezeigt in den 20 und 21, gespeichert. Die Datenwerte in den Registern WR_HZERO und WR_VZERO sind Koordinaten, an denen die Bilddaten im Speicher 550a zu speichern sind. Alle gültigen Pixeldaten, die durch die Signale WR_HA und WR_VA, gezeigt in 22, identifiziert werden, werden im Speicher 550a, gezeigt in 6, abgespeichert oder in Antwort auf Datenwerte subgesamplet, die in den Registern WR_HSAMPLE und WR_VSAMPLE (wie in 21 gezeigt) gespeichert und dann im Speicher 550a, gezeigt in 6, abgelegt.
  • Alternativ dazu kann der erste gespeicherte Pixelwert durch die Datenwerte festgelegt werden, die in den Registern WR_HSTART und WR_VSTART relativ zu den ersten gültigen Daten, die durch die Signale WR_HA und WR_VA identifiziert werden, festgelegt sein. In diesem Fall hat jede horizontale Zeile eine Anzahl von Pixelwerten, die durch den Datenwert in dem Register WR_HSIZE oder die verbleibenden gültigen Daten in jeder horizontalen Zeile, wie durch das Signal WR_HA festgelegt wird, spezifiziert, was immer kleiner ist, wird darauffolgend mit der Geschwindigkeit, die durch die Zyklen des Schreibtaktsignals WR_CLK, wie in 9 gezeigt, bestimmt wird, im Speicher 550a gespeichert. Dieser Prozeß wird wiederholt, wenn gültige Daten von der nächsten Zeile empfangen werden. Eine Gesamtzahl von Zeilen, die durch den Datenwert in Register WR_VSIZE bestimmt wird, oder so viele aktive Zeilen, als gültige Daten übrig bleiben, werden, je nachdem, was kleiner ist, während dieser Operation im Speicher 550a abgelegt.
  • Pixelwerte können im Speicher 550a in einem Interlace-Modus abgelegt werden, der ein oder beide Felder eines Einzelbildes speichert. Im Interlace-Modus werden Pixelwerte im Speicher abgelegt in Antwort auf das Signal WR_FLD1, gezeigt in 9. Das Signal WR_FLD1 bestimmt, wo ein Feld in dem Eingangsbildsignal WR_IN, gezeigt in 9, im Speicher 550a abgelegt wird. Wenn das Signal WR_FLD1 eine logische Eins ist, wird das Eingangsfeld im Eingangssignal WR_IN an den Koordinaten im Speicher 550a, die durch die Datenwerte in den Registern WR_HZERO und WR_VZERO festgelegt werden, gespeichert. Ein Zeilenzähler (nicht gezeigt) wird um zwei erhöht für jede nachfolgende Zeile und jede nachfolgende Zeile des Feldes wird in dem Speicher 550a an einer Zeilenposition, die durch den Zeilenzähler bestimmt wird, gespeichert. Wenn das Signal WR_FLD1 eine logische Null ist, dann wird das Eingangsfeld im Eingangssignal WR_IN an den Koordinaten im Speicher 550a beginnend gespeichert, die durch die Datenwerte in den Registern WR_HZERO und WR_VZERO+1 festgelegt werden. Ein Zeilenzähler (nicht in den Figuren gezeigt) wird um zwei erhöht für jede nachfolgende Zeile und jede nachfolgende Zeile des Feldes wird im Speicher 550a bei einer Zeilenposition gespeichert, die durch den Zeilenzähler bestimmt wird. Das Speichern von Daten kann ebenso auf einen kontinuierlichen Betriebsmodus eingestellt werden, indem die Daten im Speicher 550a gespeichert werden. Die Schreibregion von Interesse WR_ROI, die in den 20 und 21 gezeigt ist, ist ein rechteckiger Bereich von Interesse im Speicher 550a für den Schreibbetrieb.
  • Vor dem Start der Datenspeicherung im Speicher 550a werden die Schreibregister, die unten beschrieben sind, unter Verwendung des Mikroprozessors 540, gezeigt in 5, programmiert. Dann wird das Register WR_ENA, gezeigt in 22, eingestellt, um den Datenspeicherbetrieb zu aktivieren. In Antwort darauf wird das Signal WR_RDY in eine logische Null verändert, bis die Speicheroperation vollständig ist und das Signal WR_RDY in eine logische Null wechselt. Der Wert des Signals WR_RDY kann von dem Register FS_STATUS abgefragt werden. Im kontinuierlichen Modus bleibt das Signal WR_RDY eine logische Null.
  • Die aktiven Pixelwerte, die durch die Signale WR_HA und WR_VA, gezeigt in 22, identifiziert werden, werden in dem Schreibbereich von Interesse, gezeigt in den 20 und 21, im Speicher 550a, gezeigt in 6, synchron mit dem Schreibtakt WR_CLK gespeichert. Die aktiven Pixelwerte können, bevor sie im Speicher 550a abgelegt werden, in Antwort auf die Datenwerte in den Registern WR_HSAMPLE und WR_VSAMPLE synchron mit dem Schreibtakt WR_CLK subgesamplet werden.
  • Der Einzelbildspeichercontroller 605 beinhaltet Schreibregister (in den Figuren nicht gezeigt). Jedes der Schreibregister in dem Einzelbildspeichercontroller 605 ist unter Verwendung eines Mikroprozessors 540, der das Programmierungssignal PS verwendet, programmierbar. Diese Register beinhalten WR_CTRL, die die unten beschriebenen WRITE Steuerparameter spezifizieren. Diese Parameter beinhalten den WR_INTERLACE Parameter, der anzeigt, wenn er auf eine logische Eins gesetzt ist, daß die Schreiboperation im Interlace-Modus ein oder zwei Felder speichert. Die voreingestellte Einstellung beträgt Null, was den non-Interlace-Modus anzeigt. Der WR_FIELD1_ENA Parameter erlaubt die Speicherung des ersten Feldes im Interlace-Modus. Die voreingestellte Einstellung ist Eins, was anzeigt, daß die Speicherung des Feldes aktiviert ist. Der WR_FIELD2_ENA Parameter erlaubt das Schreiben des zweiten Feldes im Interlace-Modus. Die voreingestellte Einstellung ist Eins, was anzeigt, daß die Speicherung des Feldes aktiviert ist. Der WR_CONTINUOUS Parameter ermöglicht es, daß Bilddaten kontinuierlich im Speicher 550a gespeichert werden können. Die voreingestellte Einstellung ist Null, was anzeigt, daß die Speicherung der Bilddaten nicht kontinuierlich ist. Wenn eingestellt, stellt der WR_IRQ_ENA Parameter das Signal FS_IRQ und ein Bit im Register FS_STATUS mit Vollendung der Speicheroperation ein. Die voreingestellte Einstellung ist Null, was anzeigt, daß das Signal FS_IRQ und der Bitwert des Registers FS_STATUS nicht gesetzt sind. Der WR_DATA_ZERO Parameter, wenn er Eins ist, die Pixelwerte in dem Schreibbereich des Interesses WR_ROI sind auf Null eingestellt, unabhängig von dem Eingangsbilddatensignal WR_IN. Die Voreinstellung ist Null.
  • Das Eingangsbild kann subgesamplet sein, wenn die Daten in den Speicher 550a geschrieben werden. Das Subsampling kann unabhängig in der horizontalen und der vertikalen Richtung des Schreibbereichs von Interesse WR_ROI durchgeführt werden. Die Subsamplingperiode kann ein Faktor von beispielsweise eins, zwei oder sechzehn sein. Die Phase der Subsamplingoperation wird durch die Datenwerte in den Registern WR_HSTART und WR_VSTART bestimmt. Wenn die Abfrageperiode beispielsweise ein Faktor von zwei ist und der Datenwert WR_HSTART Null ist, dann werden die Pixelwerte XO X2, X4 ... gespeichert. Wenn der Datenwert in dem Register WR_HSTART Eins ist, dann werden die Pixelwerte X1, X3, X5 ... gespeichert. Wenn die Abfrageperiode ein Faktor sechs ist und der Datenwert in dem Register WR_HSTART Vier ist, dann werden die Werte X4, X10, X16 ... gespeichert.
  • Der Einzelbildspeichercontroller 605 beinhaltet ebenso ein Schreibmaskenregister WR_MASK (nicht in den Figuren gezeigt). Das Register WR_MASK ist ein 16 Bit-Register. Die obe ren 8 Bits definieren die Maske für die geraden Pixel in dem Einzelbildspeichercontroller 605, und die unteren 8 Bits bestimmen die Maske für die ungeraden Pixel in dem Einzelbildspeichercontroller 605. Wenn aktiviert, werden die zu speichernden Pixelwerte in dem Eingangsbilddatensignal WR_IN maskiert. Eine Bitebene wird während des Videoschreibbetriebs maskiert, wenn das assoziierte Bit auf low in dem Register WR_MASK eingestellt ist. In dem voreingestellten Modus ist das Register WR_MASK vollständig auf Eins gesetzt.
  • Das Register WR_MASK wird eingestellt vor dem ersten Videoschreibbetrieb nach dem Einschalten. Danach kann das Register WR_MASK verändert werden, wenn die Maske verändert werden muß. Das Register WR_MASK ist nicht doppelt puffergespeichert und sollte daher nicht verändert werden, wenn die Videoschreiboperation nicht aktiv ist und vor der Einstellung des Registers WR_ENA.
  • Das oben beschriebene beispielhafte Adressierungsschema erfordert einen relativ großen Adreßbus. In diesem Fall sind es 19 Bits. Als eine Option könnte ein Seitenregister festgelegt werden, um die Adreßbusgröße zu reduzieren. Eine Einzelbildspeicheroperation wird implementiert durch Durchführen von Lese- und Schreiboperationen mit zwei Bytes zur gleichen Zeit.
  • Die Register des Einzelbildspeichercontrollers 605 sind doppelt puffergespeichert, so daß diese Register programmiert werden können, während der Einzelbildspeichercontroller im Betrieb ist. Wenn auf das RD_ENA-Register zugegriffen wird, werden die Leseregister, die verändert wurden, zu den aktiven Registern übertragen. Wenn auf das WR_ENA-Register zugegriffen wird, dann werden die Schreibregister, die verändert wurden, zu den aktiven Registern übertragen. Die Register RD_RST, RD_ENA, RD_CTRL, W&RST, WR_ENA, WR_CTRL und WR_MASK sollten nicht doppelt puffergespeichert werden.
  • Um einen Einzelbildspeicher (FS) mit drei Anschlüssen mit solch einer großen Bandbreite mit günstigen Speichereinrichtungen zu implementieren, werden FIFOs und/oder Datencachespeicher in den FS-Controller implementiert, wie in 23 gezeigt ist, die den Schnittstellenschaltkreis der Einzelbildspeichercontroller 605 und 610, gezeigt in 6, mit den Speichern 550a und 500b veranschaulicht. Der Zugriff auf die Speicher 550a und 55b wird geplant, so daß sie mit der Datenburst- bzw. Datenhäufungsfähigkeit der Speichereinrichtungen konsistent sind.
  • Wie in 23 gezeigt ist, gibt es einen Datenpfad 2310 zu der externen Speichereinrichtung. Der Datenpfad 2310 beträgt M Bits, wobei M typischerweise 8, 16, 32 oder 64 Bits ist. Die Videozugriffsanschlüsse sind V-Bits, wobei V typischerweise 8 Bits beträgt. Der CPU-Zugriffsanschluß 2340 beträgt D Bits, wobei D eine ganze Zahl zwischen 8 und 64 ist. Die Bilddaten werden von dem Speicher 550a abgefragt und in diesem gespeichert, wenn die Datenbursts von B Speicherworten eine Breite von M Bits haben. Jeder Zugriffsanschluß 2310, 2320 und 2340 kann im wesentlichen zur gleichen Zeit aktiv sein. Wie oben beschrieben, sind die Bilddaten RD_OUT, gezeigt in 9, die von dem Einzelbildspeichercontroller 605 bereitgestellt werden, und die Bilddaten WR_IN, die in 9 gezeigt sind, die dem Einzelbildspeichercontroller 605 bereitgestellt werden, reguläre Signale mit festen Dunkeltastungszeiten, wie sie durch die Signale RD_HA, RD_VA, WR_HA und WR_VA, die in den 15 und 22 gezeigt sind, bestimmt werden.
  • Die Daten, die den FIFOs 2345 und 2350 von dem Speicher 550a bereitgestellt werden, werden in Bursts bzw. Bündeln von Daten bereitgestellt. Der Datenaustausch zwischen den FIFOs 2345, 2350 und den entsprechenden Zugriffsanschlüssen 2320 und 2330 wird als serielle 8-Bitworte bereitgestellt.
  • Die Daten, die zu und von dem CPU-Zugriffsanschluß 2340 bereitgestellt werden, haben eine niedrigere Priorität und Tasks bzw. Aufgaben, die nicht durchgeführt werden müssen, um den Speicher 550a zu steuern, wie z. B. die Speicherauffrischung, nutzen den CPU-Zugriffsanschluß 2340 gemeinsam.
  • Wie in 24 gezeigt ist, führt der Einzelbildspeichercontroller 605 verschiedene Operationen während eines Einzelbildspeicherzyklus durch. In dem Einzelbildspeicherzugriffszyklus gibt es drei Speicherzugriffszyklen: Videoschreibzyklus (VWC) von B Worten, Videolesezyklus (VRC) von B Worten und einen CPU-Zugriffszyklus (CAC). Die Bandbreite der Bildeingangs- und Bildausgangsanschlüsse wird in Übereinstimmung mit Gleichung (7) unten bestimmt. Der Datenwert VB ist die Bandbreite der Anschlüsse 2320 und 2330.
  • Figure 00300001
  • Der Schreib-FIFO 2345 und der Lese-FIFO 2350 passen die Daten, die zu und von den Speichern 550a und 550 bereitgestellt werden, an. Folglich sind die Anschlüsse 2320 und 2330 regulär und nicht unterbrochen. Das Abrufen und das Speichern der Bilddaten wird gesteuert unter Verwendung der Videolesesteuerung 2380 bzw. der Videoschreibsteuerung 2375. Die Videolesesteuerung 2380 und die Videoschreibsteuerung 2375 steuern die Bilddatenabruf- und – speicheroperationen, wie oben unter bezug auf die 1022 beschrieben wurde.
  • Ein Zugriff auf den CPU-Zugriffsanschluß tritt auf, wenn es eine Anforderung von dem Prozessor 540 gibt, gezeigt in 5. Der Zugriff auf den CPU-Zugriffsanschluß wird nicht initiiert, wenn der CPU-Zugriffszyklus CAC durch eine andere Funktion verwendet wird, z. B. durch einen DRAM-Auffrischungszyklus. Wenn die Breite D des CPU-Datenbusses 2355 gleich oder geringer als die Breite M des Speicherdatenbusses ist, dann wird die CPU-Zugriffslatenz größer als CAC sein, geringer als (2* FSC + CAC) wenn ein Auffrischungszyklus bereitgestellt werden muß, und ist typischerweise etwas länger als FSC/2 + CAC, vorausgesetzt, daß Auffrischungszyklen selten sind. Wenn die Breite D größer als die Breite M ist, wird die CPU-Zugriffslatenz durch einen Wert von IL erhöht, der in Übereinstimmung mit Gleichung (9) unten bestimmt wird.
  • Figure 00300002
  • Da die typische CPU-Zugriffslatenz eine lange Zeitperiode sein kann, wird der CPU-Cachespeicher einschließlich des Schreibcachespeichers 2360 und des Lesecachespeichers 2365 in den Schaltkreis des Einzelbildspeichercontrollers 605 aufgenommen. Der Schreibcachespeicher 2360 und der Lesecachespeicher 2365 kann als ein einzelner Speicher kombiniert werden.
  • Der Schreibcachespeicher 2360 speichert Bilddaten von dem Prozessor 540, gezeigt in 5. Während des CPU-Zugriffszyklus CAC speichert der Einzelbildspeichercontroller 605 Bilddaten in dem Schreibcachespeicher 2360. Die gesamten Inhalte des Schreibcachespeichers 2360 können nicht während des CPU-Zugriffszyklus CAC gespeichert werden, wenn der Schreibcachespeicher 2360 mehr als M Bits beinhaltet. Während des CPU-Zugriffszyklus CAC kann ein Bündel von Bilddaten von dem Speicher 550a abgerufen werden oder in diesem gespeichert werden.
  • Wenn der Prozessor 540, der in 5 gezeigt ist, eine Bilddatenabrufsoperation initiiert, werden die abzurufenden Bilddaten in dem Lesecachespeicher 2365 gespeichert, die Bilddaten, die im Lesecachespeicher 2365 gespeichert sind, werden direkt dem Prozessor 540 über den CPU-Zugriffsanschluß 2340 bereitgestellt. Anderenfalls werden die geeigneten Bilddaten von dem Speicher 550a während des nächsten CPU-Zugriffszyklus abgefragt. Dann werden die abgefragten Daten von dem Lesecachespeicher 2365 dem Prozessor 540 bereitgestellt. Die Bilddaten können von dem Speicher 550a abgerufen werden und im Lesecachespeicher 2365 gespeichert werden im Vorgriff auf Bilddatenanforderungen von dem Prozessor 540. Wenn beispielsweise der Prozessor während eines vorherigen CPU-Zugriffszyklus CAC Bilddaten von dem Speicher 550a abgerufen hat, können die nächsten sequentiellen Bilddaten im Speicher 550a abgerufen werden und im Lesecachespeicher 2365 gespeichert werden während des nächsten oder eines nachfolgenden CPU-Zugriffszyklus CAC. Auf diese Weise werden, falls der Prozessor 540 die Bilddaten sequentiell abruft, die nächsten sequentiellen Bilddaten, die von dem Prozessor 540 abgerufen werden, bereits in dem Lesecachespeicher 2365 gespeichert sein. Somit wird die CPU-Zugriffslatenz minimiert.
  • Wenn die Bilddaten in dem Schreibcachespeicher 2360 Bilddaten beinhalten, die Bilddaten aktualisieren, die von dem Lesecachespeicher 2365 abgerufen werden oder die bereits in diesem gespeichert sind, steuert die Cachesteuerung 2370 die Aktualisierung der Bilddaten, die in dem Lesecachespeicher 2365 abgelegt sind. Wenn beispielsweise der Lesecachespeicher 2365 Bilddaten enthält, die während eines Schreibzyklus von dem Prozessor 540 oder durch Bilddaten, die in dem Eingangsbildsignal WR_IN dem Anschluß 2320 bereitgestellt werden, dann könnten die Bilddaten im Lesecachespeicher 2365 als „alt" durch die Cachespeichersteuerung 2370 markiert werden. Die Cachespeichersteuerung 2370 ruft aktualisierte Bilddaten ab, die von dem Speicher 550a abgerufen werden, und speichert sie im Lesecachespeicher 2365 während des nächsten CPU-Zugriffszyklus CAC.
  • Die Speicher 550a und 550b können beispielsweise synchrone DRAM (SDRAM) sein. In einem SDRAM-Speicher wird der Speicher in zwei Speicherbänke unterteilt. Ein Zugriff auf eine der Bänke erfolgt typischerweise in Form eines Datenbündels von beispielsweise bis zu acht Dateneinträgen. Während auf eine Datenbank zugegriffen wird, kann der Zugriff auf die anderen Bänke initiiert werden. Somit wird ein langer Bündelzugriff auf den Speicher bereitgestellt. Die Daten, die in dem SDRAM gespeichert sind, werden in acht Datenblöcke in einer verzahnten (interleaved) Art und Weise zwischen den beiden Speicherbänken gespeichert. Die Datenzugriffe sind synchron getaktet und stellen einen hohen Datenbündelzugriff von 100 MHz (10 ns Zugriffszyklus) zur Verfügung.
  • Jedes Bündel von Bilddaten erfordert eine Einstellzeit. Der Overhead für einen Bündellesezyklus beträgt etwa acht Taktzyklen von 10 ns. Der Schreiboverhead beträgt etwa fünf Taktzyklen von 10 ns. Durch Vergrößern der Burstgröße bzw. Bündelgröße (BS) wird der Overhead relativ unbedeutend. In diesem Fall wird die Größe des Schreib-FIFO 2345 und des Lese-FIFO 2330 erhöht, um während eines Bursts die erhöhte Bilddatenmenge aufzunehmen, die von dem Speicher 550a bereitgestellt wird.
  • Wenn die Bündellänge groß ist, wird ebenso ein Bild kleiner Größe einen signifikanten Overhead haben. Wenn beispielsweise die Burstlänge 128 Pixelwerte ist, jedoch die Bilddatengröße, die abgerufen oder gespeichert wird, 16 Pixelwerte hat, beträgt die effektive Zugriffsrate näherungsweise 16/128 derjenigen einer Standardvideorate. Somit wird die Burstlänge abhängig von der bestimmten Anwendung ausgewählt.
  • Wenn die Breite des Speichers 550a M Bits ist und M ein Vielfaches der Breite V der Zugriffsanschlüsse 2320 und 2330 ist, kann die effektive Video-I/O-Rate des Einzelbildspeichercontrollers 605 erhöht werden. Wenn die Breite des Speichers 550a M ist und ein Vielfaches der Breite V der Zugriffsanschlüsse 2320 und 2330 ist, sind der Schreib-FIFO 2345 und der Lese-FIFO so breit wie der Speicherbus 2310, und ein Busbreitenkonvertierer muß am Eingang des Schreib-FIFOs und am Ausgang des Lese-FIFOs hinzugefügt werden.
  • Die Tabellen 3–5 stellen die Bildabruf- und -speichergeschwindigkeiten als eine Funktion der Breite M des Speichers 550a und der Breite V der Zugriffsanschlüsse 2320 und 2330 zur Verfügung. Tabelle 3 stellt die Gesamtzahl von 10 ns Taktzyklen dar, die für jeden Videoschreibzyklus VWC von B Worten, jeden Videolesezyklus VRC von B Worten und einen CPU-Zugriffszyklus CAC erfordert wird.
  • Tabelle 3
    Figure 00320001
  • Tabelle 4 stellt die geschätzte Video-I/O-Rate als eine Funktion der Burstgröße und der Breite des Speichers bereit. Tabelle 4 nimmt an, daß jeder der Zugriffe: der Videoschreibzyklus VWC, der Videolesezyklus VRC und der CPU-Zugriffszyklus CAC Datenbursts mit gleicher Größe sind. Die Anzahl von Zyklen in Tabelle 4 sind als eine Funktion der Breite M des Datenbusses 2310, gezeigt in 23, zwischen dem Speicher 550a und dem Schnittstellenschaltkreis gezeigt.
  • Tabelle 4
    Figure 00330001
  • Tabelle 5 ist die geschätzte Video-/I/O-Rate als eine Funktion der Burstgröße und der Speicherdatenbreite. In Tabelle 5 wird angenommen, daß der Videoschreibzyklus VWC und der Videolesezyklus VRC Datenbursts mit gleicher Größe verwenden, der CPU-Zugriffszyklus CAC jedoch Bursts mit acht Pixelwerten verwendet. Die Anzahl von Zyklen in Tabelle 5 sind als eine Funktion der Breite M des Datenbusses 2310, der in 23 gezeigt ist, zwischen dem Speicher 55a und dem Schnittstellenschaltkreis gezeigt.
  • Tabelle 5
    Figure 00330002
  • Die Tabellen 4 und 5 demonstrieren, daß, wenn eine 50 MHz Taktrate von dem PPP 560, der in 6 gezeigt ist, verwendet wird, M 16 sein sollte und B 16 oder 32 sein sollte abhängig von der Zugriffsgeschwindigkeit und den Latenzanforderungen des CPU-Zugriffszyklus CAC. Die Tabellen 4 und 5 zeigen ebenso, daß, wenn eine 100 MHz Taktrate gewünscht wird, M 32 sein sollte.
  • Alternativ dazu kann der Speicher 550a ein RambusTM DRAM (RDRAM) sein, was ein DRAM-Speicher mit einer speziellen Speicherschnittstelle ist, die die Übertragung von Datenbursts mit bis zu 500 MHz erlaubt. Die Speichereinrichtungen basierend auf RambusTM haben einen acht Bit Datenübertragungsbus und verwenden denselben Bus für die Adressierung. Intern zu der Speichereinrichtung gibt es zwei Speicherbänke, jeweils mit einem Cachespeicher, um eine schnelle Zugriffsantwort auf Anfragen für die Datenübertragung bereitzustellen. Wenn die Daten, die von der Speichereinrichtung angefordert werden, im Cachespeicher der Speichereinrichtung sind, beträgt der Overhead, um einen Bursttransfer zu starten, 40 ns. Wenn die Daten nicht im Cachespeicher sind, dann liegt der Overhead im Bereich von 84 bis 156 ns. Tabelle 6 faßt den Effekt des Overheads als eine Funktion der Burstdatenlänge für einen einzelnen Portzugriffzyklus zusammen. Rambus unterstützt Datenbursts von 8 bis 256 Datenpixelwerten.
  • Tabelle 6
    Figure 00340001
  • Tabelle 7 unten demonstriert die effektive Datenübertragungsrate, die für einen Einzelportzugriff als eine Funktion der Burstlänge möglich ist. In Tabelle 7 beispielsweise, wenn die abzurufenden Daten im Cachespeicher sind und die Burstlänge 16 ist, beträgt die Übertragungsrate der Daten von dem Speicher 550a zu dem Einzelbildspeichercontroller 222 MHz.
  • Tabelle 7
    Figure 00340002
  • Tabelle 8 unten demonstriert die effektive mögliche Übertragungsrate für einen Dualportzugriff: ein Schreibzyklus VWC und ein Videolesezyklus VRC, für Tripleportzugriffe: ein Schreibzyklus VWC, ein Lesezyklus VRC und ein CPU-Zugriffszyklus CAC, und einen Fünfportzugriff: zwei Schreibzyklen VWC, zwei Lesezyklen VRC und einen CPU-Zugriffszyklus CAC. Die geschätzten Übertragungsraten setzen voraus, daß die Schreibzyklen VWC kein Speichergrößenproblem haben und die Lesezyklen VRC und der CPU-Zugriffszyklus CAC entweder einen minimalen oder einen maximalen Cachespeicherzugriffsoverhead haben.
  • Tabelle 8
    Figure 00340003
  • Tabelle 8 demonstriert, daß mit einem Tripleportzugriff und einer 50 MHz Zugriffsrate die Burstlänge 32 Pixelwerte sein sollte. Für eine 100 MHz Zugriffsrate sollte die Burstlänge 128 Pixelwerte sein. Wenn dem CPU-Zugriff eine niedrigere Priorität gegeben wird, ist es möglich, die Burstlängen zu reduzieren. Die Burstlängen sind über den Prozessor 540, der in 5 gezeigt ist, vollständig programmierbar.
  • Wenn eine große Speicherbandbreite gewünscht wird, kann ein anderer Schreibzugriffsanschluß 2320, der in 23 gezeigt ist, und ein anderer Lesezugriffsanschluß 2330, der in 23 gezeigt ist, zu dem Einzelbildspeichercontroller hinzugefügt werden. Dies würde einen Fünfzugriffsanschlußeinzelbildspeicher erzeugen, der funktional äquivalent mit zwei getrennten Einzelbildspeichercontrollern wäre. Beispielsweise kann ein System mit 50 MHz Videotaktraten unter Verwendung von Burstlängen von 64 Pixeln oder 32 Pixeln, wenn einem CPU-Zugriff eine niedrigere Priorität eingeräumt wird, implementiert sein unter Verwendung eines Einzelbildspeichercontrollers 605 mit Anschlußzugriff implementiert werden.
  • Die vorliegende Erfindung ist, obgleich sie hier unter bezug auf bestimmte spezifische Ausführungsformen illustriert und beschrieben wurde, nichtsdestotrotz nicht dafür vorgesehen, auf die gezeigten Details beschränkt zu werden. Statt dessen können verschiedene Modifikationen in den Details innerhalb des Schutzbereichs der Ansprüche durchgeführt werden.

Claims (12)

  1. Bildverarbeitungsvorrichtung, die aufweist einen integrierten Schaltkreis (5), einschließlich: einer Einrichtung (60, 65) für das Empfangen eines Bildsignals, einer Einrichtung (40) für das Filtern des Bildsignals, um ein gefiltertes Bildsignal zu erzeugen, einer Steuereinrichtung (20) für das Steuern des Speicherns von zumindest einem Einzelbild des Bildsignals in einem Speicher (50) und einer Einrichtung (30) für das Verarbeiten des Bildsignals gemäß einer vorbestimmten Funktion, um ein verarbeitetes Bildsignal zu erzeugen und einer Einrichtung (40) für das Leiten des Bildsignals zwischen der Empfangseinrichtung (60, 65), der Filtereinrichtung (10), der Steuereinrichtung (20) und der Verarbeitungseinrichtung (30).
  2. Vorrichtung nach Anspruch 1, wobei die Leiteinrichtung ein Knotenpunktschalter (40) ist.
  3. Vorrichtung nach Anspruch 1 oder 2, bei der die Filtereinrichtung (10) ein zweidimensionaler Filter ist.
  4. Vorrichtung nach Anspruch 1 oder 2, wobei die Filtereinrichtung (10) ein trennbarer Filter ist.
  5. Vorrichtung nach Anspruch 1, 2, 3 oder 4, wobei der integrierte Schaltkreis weiterhin aufweist eine Einrichtung (PS) für das Empfangen eines Programmsignals, um die Filtereinrichtung (10), die Speichereinrichtung (20) und die Verarbeitungseinrichtung (30) zu konfigurieren, um eine Reihe von vorbestimmten Operationen durchzuführen, um ein Ausgangssignal zu erzeugen.
  6. Vorrichtung nach Anspruch 5, die weiterhin eine Einrichtung (540) aufweist für das Erzeugen des Programmsignals.
  7. Vorrichtung nach Anspruch 1, 2, 3, 4, 5 oder 6, wobei die Verarbeitungseinrichtung eine Nachschlagtabelle (645) ist.
  8. Vorrichtung nach einem der vorherigen Ansprüche, die weiterhin einen Speicher (550a, 550b) aufweist, der von der Steuereinrichtung (20) gesteuert wird.
  9. Bildstabilisierungsvorrichtung, die eine Bildverarbeitungsvorrichtung aufweist nach Anspruch 1, 2, 3, 4, 5, 6, 7 oder 8, wobei: die Einrichtung (60, 65) für das Empfangen eines Bildsignals eine Einrichtung (IN1, IN2) für das Empfangen eines ersten Einzelbildes und eines zweiten Einzelbildes beinhaltet, die Einrichtung (10) für das Filtern eine Einrichtung beinhaltet für das Erzeugen eines ersten Laplaceschen Pyramidensignals aus dem ersten Einzelbild und eines zweiten Laplaceschen Pyramidensignals (615) aus dem zweiten Einzelbild, und die Einrichtung für das Verarbeiten des Bildsignals eine Einrichtung (625A, 625B, 630A, 630B, 635A, 635B, 647) beinhaltet für das Erzeugen von Ausrichtungswerten zwischen dem ersten Laplaceschen Pyramidensignal und dem zweiten Laplaceschen Pyramidensignal und Einrichtungen (540, 620, 604, 610) aufweist für das Verzerren des Bildsignals unter Verwendung der Ausrichtungswerte.
  10. Verfahren für die Bildverarbeitung, das das Durchführen der folgenden Schritte in einem integrierten Schaltkreis (5) aufweist: (a) Empfangen eines Bildsignals, (b) Filtern des Bildsignals, um ein gefiltertes Bildsignal zu erzeugen, (c) Steuern des Speicherns von zumindest einem Einzelbild des Bildsignals in einem Speicher, (d) Verarbeiten der Bilddaten gemäß einer vorbestimmten Funktion, um ein verarbeitetes Bildsignal zu erzeugen, und (e) Weiterleiten des Bildsignals innerhalb des integrerten Schaltkreises (5) zwischen den Schritten des Empfangens, des Filterns, des Steuerns, des Speicherns und des Verarbeitens.
  11. Verfahren nach Anspruch 10, das weiterhin den Schritt aufweist: (f) Empfangen eines Programmsignals, um die Schritte (b), (c) und (d) zu steuern, um eine Reihe von vorbestimmten Operationen durchzuführen, um ein Ausgangssignal zu erzeugen.
  12. Bildstabilisierungsverfahren nach Anspruch 10 oder 11, wobei: (a) der Schritt des Empfangens des Bildsignals das Empfangen eines ersten Einzelbildes und eines zweiten Einzelbildes beinhaltet, (b) der Schritt des Filterns des Bildsignals das Erzeugen eines ersten Laplaceschen Pyramidensignals aus dem ersten Einzelbild und eines zweiten Laplaceschen Pyramidensignals aus dem zweiten Einzelbild beinhaltet und (c) der Schritt der Verarbeitung der Bilddaten die Schritte des Erzeugens von Ausrichtungswerten zwischen dem ersten Laplaceschen Pyramidensignal und dem zweiten Laplaceschen Pyramidensignal und das Verzerren des Bildsignals unter Verwendung der Ausrichtungswerte beinhaltet.
DE69728247T 1996-04-17 1997-04-17 Pyramidenförmiger pipeline-prozessor für ein bildverarbeitungssystem Expired - Fee Related DE69728247T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US1527696P 1996-04-17 1996-04-17
US15276P 1996-04-17
PCT/US1997/005426 WO1997039422A1 (en) 1996-04-17 1997-04-17 Pipelined pyramid processor for image processing systems

Publications (2)

Publication Number Publication Date
DE69728247D1 DE69728247D1 (de) 2004-04-29
DE69728247T2 true DE69728247T2 (de) 2005-01-27

Family

ID=21770505

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69728247T Expired - Fee Related DE69728247T2 (de) 1996-04-17 1997-04-17 Pyramidenförmiger pipeline-prozessor für ein bildverarbeitungssystem

Country Status (5)

Country Link
US (1) US5963675A (de)
EP (1) EP0852773B1 (de)
CA (1) CA2234770A1 (de)
DE (1) DE69728247T2 (de)
WO (1) WO1997039422A1 (de)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6567564B1 (en) * 1996-04-17 2003-05-20 Sarnoff Corporation Pipelined pyramid processor for image processing systems
US6188381B1 (en) * 1997-09-08 2001-02-13 Sarnoff Corporation Modular parallel-pipelined vision system for real-time video processing
US6459822B1 (en) 1998-08-26 2002-10-01 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Video image stabilization and registration
JP2000209512A (ja) * 1999-01-20 2000-07-28 Victor Co Of Japan Ltd 電子ズ―ム回路
US6496277B1 (en) 1999-07-23 2002-12-17 Xerox Corporation Data flow control and storage facility for an image reproduction system
US6901173B2 (en) * 2001-04-25 2005-05-31 Lockheed Martin Corporation Scene-based non-uniformity correction for detector arrays
US7103235B2 (en) * 2001-04-25 2006-09-05 Lockheed Martin Corporation Extended range image processing for electro-optical systems
US6973218B2 (en) * 2001-04-25 2005-12-06 Lockheed Martin Corporation Dynamic range compression
US6725247B2 (en) * 2001-04-30 2004-04-20 Intel Corporation Two-dimensional pyramid filter architecture
US7136515B2 (en) 2001-09-13 2006-11-14 Intel Corporation Method and apparatus for providing a binary fingerprint image
US20030063782A1 (en) * 2001-09-13 2003-04-03 Tinku Acharya Method and apparatus to reduce false minutiae in a binary fingerprint image
US6795592B2 (en) * 2001-09-13 2004-09-21 Intel Corporation Architecture for processing fingerprint images
US7221776B2 (en) * 2001-10-31 2007-05-22 Arcsoft, Inc. Video stabilizer
US7246102B2 (en) * 2001-12-21 2007-07-17 Agere Systems Inc. Method of improving the lookup performance of three-type knowledge base searches
WO2005093654A2 (en) 2004-03-25 2005-10-06 Fatih Ozluturk Method and apparatus to correct digital image blur due to motion of subject or imaging device
US10721405B2 (en) 2004-03-25 2020-07-21 Clear Imaging Research, Llc Method and apparatus for implementing a digital graduated filter for an imaging apparatus
US9826159B2 (en) 2004-03-25 2017-11-21 Clear Imaging Research, Llc Method and apparatus for implementing a digital graduated filter for an imaging apparatus
WO2005104564A1 (ja) * 2004-04-21 2005-11-03 Matsushita Electric Industrial Co., Ltd. 動き補償装置
US20050265633A1 (en) * 2004-05-25 2005-12-01 Sarnoff Corporation Low latency pyramid processor for image processing systems
US8275216B2 (en) * 2004-06-28 2012-09-25 Inphase Technologies, Inc. Method and system for equalizing holographic data pages
US7848595B2 (en) * 2004-06-28 2010-12-07 Inphase Technologies, Inc. Processing data pixels in a holographic data storage system
WO2006036398A2 (en) * 2004-08-23 2006-04-06 Sarnoff Corporation Method and apparatus for producing a fused image
US7881546B2 (en) * 2004-09-08 2011-02-01 Inlet Technologies, Inc. Slab-based processing engine for motion video
US20060120615A1 (en) * 2004-12-06 2006-06-08 Huiqiong Wang Frame compensation for moving imaging devices
DE102004061507B4 (de) * 2004-12-21 2007-04-12 Siemens Ag Verfahren zur Korrektur von Inhomogenitäten in einem Bild sowie bildgebende Vorrichtung dazu
US7924922B2 (en) * 2005-03-07 2011-04-12 Hewlett-Packard Development Company, L.P. Color registration in a digital video
US7548659B2 (en) * 2005-05-13 2009-06-16 Microsoft Corporation Video enhancement
US8179296B2 (en) * 2005-09-30 2012-05-15 The Massachusetts Institute Of Technology Digital readout method and apparatus
US7392032B2 (en) * 2005-12-30 2008-06-24 L3 Communications Corporation Modular ASIC with crosspoint switch
WO2008032392A1 (en) * 2006-09-14 2008-03-20 Fujitsu Limited Image processing method and device, and its program
US20100226495A1 (en) 2007-10-29 2010-09-09 Michael Kelly Digital readout method and apparatus
US20080212895A1 (en) * 2007-01-09 2008-09-04 Lockheed Martin Corporation Image data processing techniques for highly undersampled images
US7995800B2 (en) * 2007-02-28 2011-08-09 Imec System and method for motion detection and the use thereof in video coding
US8270752B2 (en) * 2009-03-17 2012-09-18 Mitsubishi Electric Research Laboratories, Inc. Depth reconstruction filter for depth coding videos
DK177161B1 (en) 2010-12-17 2012-03-12 Concurrent Vision Aps Method and device for finding nearest neighbor
DK177154B1 (da) * 2010-12-17 2012-03-05 Concurrent Vision Aps Method and device for parallel processing of images
WO2013006188A1 (en) 2011-07-01 2013-01-10 Schultz Kenneth I Methods and apparatus for in-pixel filtering in focal plane arrays
KR101652658B1 (ko) * 2014-02-07 2016-08-30 가부시키가이샤 모르포 화상 처리 장치, 화상 처리 방법, 화상 처리 프로그램 및 기록 매체
US9767358B2 (en) * 2014-10-22 2017-09-19 Veridium Ip Limited Systems and methods for performing iris identification and verification using mobile devices
DE102024202436A1 (de) * 2024-03-15 2025-09-18 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung zum Verarbeiten von mit einem Bildsensor assoziierten Signalen

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4601055A (en) * 1984-04-10 1986-07-15 The United States Of America As Represented By The Secretary Of Commerce Image processor
GB8518803D0 (en) * 1985-07-25 1985-08-29 Rca Corp Locating target patterns within images
US5103306A (en) * 1990-03-28 1992-04-07 Transitions Research Corporation Digital image compression employing a resolution gradient
US5208872A (en) * 1990-03-30 1993-05-04 The United States Of America As Represented By The United States National Aeronautics And Space Administration Programmable remapper with single flow architecture
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
US5657402A (en) * 1991-11-01 1997-08-12 Massachusetts Institute Of Technology Method of creating a high resolution still image using a plurality of images and apparatus for practice of the method
US5359674A (en) * 1991-12-11 1994-10-25 David Sarnoff Research Center, Inc. Pyramid processor integrated circuit
US5325449A (en) * 1992-05-15 1994-06-28 David Sarnoff Research Center, Inc. Method for fusing images and apparatus therefor
US5550937A (en) * 1992-11-23 1996-08-27 Harris Corporation Mechanism for registering digital images obtained from multiple sensors having diverse image collection geometries
EP0626661A1 (de) * 1993-05-24 1994-11-30 Societe D'applications Generales D'electricite Et De Mecanique Sagem Schaltung zur Verarbeitung digitaler Bilder

Also Published As

Publication number Publication date
EP0852773A4 (de) 2000-10-11
EP0852773B1 (de) 2004-03-24
US5963675A (en) 1999-10-05
WO1997039422A1 (en) 1997-10-23
EP0852773A1 (de) 1998-07-15
DE69728247D1 (de) 2004-04-29
CA2234770A1 (en) 1997-10-23

Similar Documents

Publication Publication Date Title
DE69728247T2 (de) Pyramidenförmiger pipeline-prozessor für ein bildverarbeitungssystem
DE60109858T2 (de) System zur Ungleichheitsmessung von stereoskopischen Bildern
DE69431953T2 (de) Koprozessor zur bewegungsabschätzung
DE3689926T2 (de) Einrichtung zur sequenziellen Bildtransformation.
DE69020724T2 (de) Schneller interpolationsfilter für fernsehnormenumsetzung.
DE69332348T2 (de) Architektur zur Ausführung der hierarchischen Bewegungsanalyse von Bildern in Echtzeit
DE69434657T2 (de) System und Verfahren zur elektronischen Bildstabilisierung
US6567564B1 (en) Pipelined pyramid processor for image processing systems
DE69427801T2 (de) Verfahren und Gerät zur Bestimmung von Bewegungsvektorfelden durch die Unterdrückung lokaler Abweichungen
DE69131938T2 (de) Bewegungsvektorerfassungsgerät
WO2008019867A2 (de) Bildverarbeitungsvorrichtung für farb-bilddaten und verfahren zur bildverarbeitung von farb-bilddaten
DE69802269T2 (de) Vorrichtung und verfahren zum vergleichen von pixelblöcken
DE69216312T2 (de) Bildsignalverarbeitungsgerät
DE3851264T2 (de) Bildverarbeitungsverfahren.
DE4408522C2 (de) Vorrichtung zur Bilddatenverarbeitung und Verfahren zur Verarbeitung von Bilddaten
DE19518891C2 (de) Verfahren und Vorrichtung zur Durchführung einer programmierbaren Videotransformation
DE9219006U1 (de) Digitale Zoomvorrichtung mit Bildpufferspeichern
DE69027241T2 (de) Gerät zur Bewegungsabschätzung von Fernsehbildern
DE69629265T2 (de) Bildskalierungsverfahren und -gerät
DE69225684T2 (de) Verfahren und Gerät zur Durchführung einer zweidimensionalen Digitalfilterung
DE69418711T2 (de) Verarbeitung von videosignalen
WO2019057473A1 (de) Verfahren und vorrichtung zum bewerten von bildern, betriebsassistenzverfahren und betriebsvorrichtung
DE3834477A1 (de) Schaltungsanordnung zur schaetzung von bewegung in einem aufgenommenen bild
DE112024000343T5 (de) Bildsensorsystem, elektronisches gerät und betriebsverfahren
EP0966727B1 (de) Kompaktes sensorsystem zur optischen bewegungserkennung in echtzeit

Legal Events

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