DE69723451T2 - Deformation eines digitalen bildes mit effizienter berechnung - Google Patents

Deformation eines digitalen bildes mit effizienter berechnung Download PDF

Info

Publication number
DE69723451T2
DE69723451T2 DE69723451T DE69723451T DE69723451T2 DE 69723451 T2 DE69723451 T2 DE 69723451T2 DE 69723451 T DE69723451 T DE 69723451T DE 69723451 T DE69723451 T DE 69723451T DE 69723451 T2 DE69723451 T2 DE 69723451T2
Authority
DE
Germany
Prior art keywords
image signal
sampled
distorted
queries
input
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
DE69723451T
Other languages
English (en)
Other versions
DE69723451D1 (de
Inventor
S. Mark LOHMEYER
Jeffrey Peter BURT
Siemen Gooitzen VAN DER WAL
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 DE69723451D1 publication Critical patent/DE69723451D1/de
Application granted granted Critical
Publication of DE69723451T2 publication Critical patent/DE69723451T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4084Scaling of whole images or parts thereof, e.g. expanding or contracting in the transform domain, e.g. fast Fourier transform [FFT] domain scaling

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Studio Circuits (AREA)

Description

  • Technisches Gebiet der Erfindung
  • Diese Erfindung betrifft ein Verfahren und eine Vorrichtung der digitalen Verarbeitung von Bilddaten, insbesondere ein Verfahren und eine Vorrichtung für das Durchführen der digitalen Bildverzerrung (warping) mit hoher Qualität.
  • Technischer Hintergrund der Erfindung
  • In Wolberg, George: "Digital Image Warping" 1992, IEEE Computer Society Press, Los Alamitos, California, USA ist eine digitale Bildverzerrung beschrieben. Gemäß Wolberg ist die Bildverzerrung eine geometrische Transformation. Die geometrische Transformation von digitalen Bildern ist inhärent ein Abfrageprozeß. Digitale Bilder sind, wie dies bei allen abgefragten Daten der Fall ist, anfällig gegenüber Aliasing-Artefakten. Aliasing kann reduziert werden durch die Punktabfrage mit einer höheren Auflösung. Dies erhöht das Nyquist-Limit und bedingt Signale mit höherer Bandbreite. Im allgemeinen legt aber die Anzeigeauflösung eine Grenze für die höchste Frequenz, die dargestellt werden kann, fest und begrenzt somit die Nyquist-Rate auf zwei Pixel pro einen Zyklus.
  • Der grundlegende Makel bei der Punktabfrage ist der, daß ein diskretes Pixel tatsächlich einen Bereich und nicht einen Punkt darstellt. In dieser Art und Weise sollte jedes Ausgangspixel als ein Fenster, das auf das Eingangsbild schaut, betrachtet werden. Anstelle des Abfragens eines Punktes müssen wir statt dessen einen Tiefpaßfilter (LPF) auf das projizierte Gebiet anwenden, um den Informationsinhalt, der auf das Ausgangspixel abgebildet wird, richtig wiederzugeben. Dieser Ansatz wird Bereichsabfrage genannt und der projizierte Bereich ist als das Pre-Image bzw. Vorbild bekannt. Der Tiefpaßfilter umfaßt die Vorfilterungsstufe. Er dient dazu, durch eine Bandbegrenzung des Eingangsbildes vor dem erneuten Abfragen bzw. dem Re-Sampling auf dem Ausgangsgitter das Aliasing zu vernichten.
  • Der Prozeß der Verwendung von mehr als einer regelmäßig beabstandeten Abfrage pro Pixel ist als Supersampling bekannt. Jeder Ausgangspixelwert wird bewertet durch Berechnen eines gewichteten Durchschnittes der Abfragen, die von deren entsprechenden Vorbildern entnommen wurden. Wenn beispielsweise das Supersamplinggitter dreimal dichter als das Ausgangsgitter ist (d. h. es gibt neun Gitterpunkte pro Pixelbereich), wird jedes Ausgangspixel ein Durchschnitt der neun Abfragen sein, die aus seiner Projektion in das Eingangsbild entnommen wurden.
  • Das Supersampling reduziert das Aliasing durch Bandbegrenzung des Eingangssignals. Der Zweck des Hochauflösungssupersamplinggitters ist es, die Abschätzung der Vorbilder bzw. Pre-Images, die von den Ausgangspixeln gesehen werden, zu verfeinern. Die Abfragen treten dann in die Vorfilterungsstufe ein, die aus einem Tiefpaßfilter besteht. Dies erlaubt es, daß der Eingang erneut auf dem Ausgangsgitter mit relativ niedriger Auflösung abgefragt wird, ohne störende hohe Frequenzen, die Aliasing-Artefakte einfügen. In einem Beispiel wird ein Ausgangspixel in neun Unterpixelabfragen unterteilt, wobei jedes der inversen Abbildung unterliegt, was den Eingang an neun Positionen abfragt. Diese neun Werte werden dann durch ein Tiefpaßfilter geleitet, um zu einem einzelnen Ausgangswert gemittelt zu werden.
  • Die US-A-5,355,328 beschreibt ein System für das Verändern einer Größe eines digitalen Bildes. Die Abfragen des digitalen Bildes werden einem Upsampler zur Verfügung gestellt, der die Abfragen um einen Faktor L upsampelt. Die upgesampelten Abfragen werden einem Zerlegungsfilter zur Verfügung gestellt und dann um einen Faktor M downgesampelt. Wenn die Eingangsabfragen eine Abfrageperiode P haben, dann haben die Ausgangsabfragen eine Periode (M/L)P was geringer als P ist.
  • Es gibt zwei grundlegende Komponenten einer Bildverzerrung: (1) örtliche Transformation und (2) das erneute Abfragen durch die Interpolation. Eine örtliche Transformation bestimmt eine geometrische Beziehung zwischen jedem Punkt in einem Eingangsbild und einem verzerrten Bild.
  • Die inverse Abbildung bildet einen Pixelwert in dem verzerrten Bild auf einen Pixelwert in dem Eingangsbild ab, der zwischen den Pixeln in dem Eingangsbild lokalisiert sein kann. Daher ist es wünschenswert, eine Interpolation zu verwenden, um den Pixelwert aus den nichtganzzahligen Positionen in dem Eingangsbild zu erzeugen.
  • Gegenwärtige Hardware-Ansätze für das Durchführen der Interpolation, die für das Re-Sampling bzw. das erneute Abfragen erforderlich sind, verwenden eine zwei-mal-zwei-Umgebung von Pixeln um den Adreßwert des Pixels in dem Quellbild herum, um jeden Pixelwert in dem verzerrten Bild zu berechnen. Dies wird gemeinhin als bilineare Interpolation bezeichnet. Die bilineare Interpolation verwendet eine lokale Umgebung von vier Pixeln und einen gewichteten Durchschnitt von den vier Pixeln für die Interpolation. Für eine Echtzeitimplementation wird bei jedem Taktzyklus auf vier Pixelwerte gleichzeitig zugegriffen. Die vier Pixelwerte werden dann mit den geeigneten Wichtungen multipliziert und summiert, um einen Pixelwert in dem verzerrten Bild zu erzeugen.
  • Ein solches System für das Durchführen der bilinearen Interpolation ist beschrieben in Real-time Bilinear Interpolation Using the TMC2301 von Steven Gomez, TRW LSI Products Division mit dem Datum vom 21. Januar 1989. Dieses System verwendet vier getrennte Speicher, auf die parallel zugegriffen werden kann, wenn die bilineare Interpolation durchgeführt wird. Das System beinhaltet ebenso eine Nachschlagtabelle für das Speichern der Koeffizienten, um den gewichteten Durchschnitt zu bestimmen. Die Wichtungskoeffizienten werden mit den entsprechenden Pixelwerten von dem Eingangsbild multipliziert und dann summiert, um einen Pixelwert in dem verzerrten Bild zu erzeugen.
  • Der Interpolator der nächst höheren Qualität verwendet einen drei-mal-drei-Pixelbereich in dem Eingangsbild, um jeden Pixelwert in dem verzerrten Bild zu berechnen. Die Komplexität und die Kosten dieses Typs von Verzerrern erhöht sich drastisch im Vergleich zu dem bilinearen Interpolator. Neun getrennte Speicher, neun Koeffizienten und ein neunfacher Summationsausdruck von Produkten wird erforderlich. In Anwendungen, in denen Größe, Leistung und Kosten sehr gefragt sind, ist dies keine akzeptable Lösung. Wenn eine bessere Interpolation erforderlich ist, beispielweise vier mal vier oder größer, wird dieses Problem verstärkt.
  • Um diese Nachteile zu überwinden, wird ein neues Verzerrungsverfahren und System zur Verfügung gestellt.
  • Zusammenfassung der Erfindung
  • Gemäß einem Aspekt der vorliegenden Erfindung, wie sie in den angefügten Ansprüchen definiert ist, wird ein bildverarbeitendes System zur Verfügung gestellt, das aufweist: eine Einrichtung für das Anlegen eines Eingangsbildsignals an das Bildverarbeitungssystem, eine Upsampling-Einrichtung für das Upsampling (das Abfragen mit höherer Abtastrate) des Eingangsbildsignals, um Eingangsbildsignalabfragen zu erzeugen, die gleichförmig mit einer Abfragerate gesampelt bzw. abgefragt werden, die um einen vorbestimmten Faktor von größer oder gleich zwei größer als die Nyquist-Rate ist, um ein upgesampeltes Bildsignal zu erzeugen und eine Einrichtung für das Warping bzw. Verzerren des nicht-abgefragten Bildsignals und für das Downsampling des upgesampelten verzerrten Bildsignals um den besagten Faktor, um ein verzerrtes Ausgangsbildsignal zu erzeugen.
  • Eine Ausführungsform der vorliegenden Erfindung ist auf ein digitales Bidverzerrungssystem gerichtet, das aus einem Eingangsbild ein verzerrtes Bild erzeugt. Das Verzerrungssystem erhöht die Abfragerate eines abgefragten Bildes über die Nyquist-Rate oder fragt ein analoges Bild mit einer höheren Rate als die Nyquist-Rate ab. Das upgesampelte Bild wird unter Verwendung eines Interpolators für das Re-Sampling verzerrt, um ein verzerrtes upgesampeltes Bild zu erzeugen. Der Interpolator ist beispielsweise ein Interpolator niedriger Qualität, wie z. B. ein Bilinearinterpolator. Das verzerrte Bild wird auf dieselbe Auflösung wie das Eingangsbild downgesampelt, um das verzerrte Bild zu erzeugen. Das Downsampling und das Verzerren können in einem Schritt kombiniert werden durch Modifizieren der geometrischen Transformationsfunktion, die implementiert wird, wenn das upgesampelte Bild verzerrt wird.
  • Es versteht sich, daß sowohl die vorstehende allgemeine Beschreibung und die folgende detaillierte Beschreibung für die Erfindung nur beispielhaft, jedoch nicht beschränkend sind.
  • Kurze Beschreibung der Figuren
  • Die Erfindung wird am besten verstanden anhand der folgenden detaillierten Beschreibung, wenn sie in Verbindung mit den begleitenden Zeichnungen gelesen wird, in denen:
  • 1 ein Blockdiagramm einer beispielhaften Ausführungsform der vorliegenden Erfindung ist, das auf ein digitales Bildverzerrungssystem gerichtet ist.
  • 2 ist ein Blockdiagramm eines Aufwärtssamplers 10, der in 1 entsprechend einer beispielhaften Ausführungsform der vorliegenden Erfindung gezeigt ist.
  • 3 ist ein detaillierteres Blockdiagramm des Aufwärtssamplers 10, der in 2 gezeigt ist.
  • 4 ist ein Diagramm einer Datenstruktur, das den konzeptuellen Betrieb des Aufwärtssamplers 10 zeigt, der in den 2 und 3 gezeigt ist.
  • 4a ist eine Darstellung des aufwärts gesampelten Bildsignals 207, wobei die Pixelwerte in dem aufwärts gesampelten Bildsignal 207 erneut numeriert wurden.
  • Die 5a bis 5c sind entsprechende Fourier-Transformationen, die das beispielhafte Ortsfrequenzspektrum des Eingangsbildsignals 205, des Zwischenbildsignals 206 und des aufwärts gesampelten Bildsignals 207, das in 4 gezeigt ist, darstellen.
  • 6 ist ein Blockdiagramm des Verzerrers 20, der in 1 gezeigt ist, gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung.
  • 7 ist ein Diagramm einer Datenstruktur, die das Eingangsbild, das aufwärts gesampelte Bild und das verzerrte Bild darstellt.
  • 8 ist ein Flußdiagramm, das die Funktion des Verzerrers 20, der in 1 gezeigt ist, in Übereinstimmung mit einer beispielhaften Ausführungsform der vorliegenden Erfindung darstellt.
  • 9a zeigt entsprechende Fourier-Transformationen des aufwärts gesampelten Bildsignals 207, des verzerrten Zwischenbildes und des verzerrten Bildes 700, was die Funktion des Abwärtssamplers 30 in Übereinstimmung mit einer beispielhaften Ausführungsform der vorliegenden Erfindung illustriert.
  • 9b ist eine Fourier-Transformation eines Eingangsbildsignals unter Verwendung einer bilinearen Interpolation, die nicht das Aufwärtssampeln des Eingangsbildsignals beinhaltet.
  • 9c bis 9f sind vergrößerte Ansichten des Datenstrukturdiagramms, das in 7 gezeigt ist.
  • 10 ist ein Blockdiagramm einer anderen beispielhaften Ausführungsform der vorliegenden Erfindung, die auf einen digitalen Bildverzerrer gerichtet ist, der auf einem einzelnen integrierten Schaltkreis (Chip) implementiert ist.
  • 11 ist ein Taktdiagramm, das für das Erläutern des Betriebs des Verzerrerchips von 10 nützlich ist.
  • Detaillierte Beschreibung der Erfindung
  • Überblick
  • Die beispielhafte Ausführungsform der vorliegenden Erfindung ist auf ein digitales Bildverzerrsystem gerichtet, das ein verzerrtes Bild aus einem Eingangsbild erzeugt. Das Verzerrsystem erhöht die Abfragerate eines abgefragten Bildes über die Nyquist-Rate. Typischerweise werden die zu verzerrenden digitalen Bilder mit der Nyquist-Rate abgetastet. Das Erhöhen der Abfragerate reduziert die Raumfrequenzen, die durch eine feste Anzahl von Abfragen repräsentiert werden. Die erhöhte Abfragerate wird durch Abfragen des analogen Bildes mit einer höheren Rate als die Nyquist-Rate oder durch digitale Verarbeitung eines bereits Nyquist abgefragten Bildes, um seine Abfragerate zu erhöhen (z. B. durch Verdoppeln oder Verdreifachen jeder Abfrage), erzielt. Der letztere dieser beiden Ansätze behält die Modularität des Verzerrsysterms innerhalb eines größeren bildverarbeitenden Systems bei.
  • Das aufwärts gesampelte bzw. upgesampelte Bild wird verzerrt unter Verwendung eines Interpolators für das erneute Abfragen, um ein verzerrtes, aufwärts gesampeltes Bild zu erzeugen. Der Interpolator kann ein Interpolator relativ geringer Qualität sein, wie z. B. ein Bilinearinterpolator. Das verzerrte Bild wird dann abwärts gesampelt bzw. downgesampelt auf dieselbe Auflösung wie das Eingangsbild, um das verzerrte Bild zu erzeugen. Das Abwärtssampeln und Verzerren kann in einer Komponente kombiniert werden durch Modifizieren der geometrischen Transformationsfunktion, die implementiert wird, wenn das aufwärts gesampelte Bild verzerrt wird.
  • BESCHREIBUNG VON BEISPIELHAFTEN AUSFÜHRUNGSFORMEN
  • Es wird nun auf die Figuren Bezug genommen, in denen gleiche Bezugszahlen gleiche Elemente bezeichnen. 1 stellt das digitale Bildverzerrungssystem 5 gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung dar. Ein Eingangsbildsignal 205 wird dem Aufwärtssampler 10 zur Verfügung gestellt. Das Eingangsbildsignal 205 wird mit oder oberhalb der Nyquist-Rate abgefragt und ist eine vollständige Darstellung des darunterliegenden analogen Bildes. Der Aufwärtssampler 10 interpoliert das Eingangsbildsignal 205 mit einem Faktor von beispielsweise 2N, wobei N eine positive ganze Zahl größer als Null ist, um die Anzahl von Abfragen, d. h. der Pixelwerte, in dem Eingangsbildsignal 205 zu erhöhen. Die Interpolation ist nicht auf einen Faktor von 2N beschränkt.
  • Das Aufwärts- bzw. Upsampling wird unter Verwendung desselben Abfragemultiplikationsfaktors in der vertikalen und der horizontalen Richtung des Eingangsbildsignals 205 durchgeführt. Wenn beispielsweise das Eingangsbild 205 512 Pixelwerte mal 512 Pixelwerte hat, erzeugt das Upsampling um einen Faktor von zwei ein aufwärts gesampeltes Bildsignal 207 mit 1024 Pixelwerten mal 1024 Pixelwerten. Das Upsampling um einen Faktor von vier erzeugt ein upgesampeltes Bildsignal 207 mit einer Größe von 2048 Pixelwerten mal 2048 Pixelwerten. Das Eingangsbildsignal 205 hat beispielsweise 256 Pixelwerte mal 256 Pixelwerte. Somit erzeugt das Upsampling um einen Faktor von zwei ein upgesampeltes Bildsignal 207 mit 512 Pixelwerten mal 512 Pixelwerten.
  • Alternativ kann der Aufwärtssampler 10 mit einem analogen Eingangssignal ausgestattet sein. In dieser Konfiguration fragt der Aufwärtssampler 10 das analoge Eingangssignal mit einer Rate von 2N mal der Nyquist-Rate ab, um das upgesampelte Bildsignal 207 zu erzeugen, wobei N eine positive ganze Zahl ist.
  • Der Aufwärtssampler 10, der in 2 gezeigt ist, ist ein Interpolationsfilter hoher Qualität. Der Aufwärtssampler 10 upsampelt das Eingangsbildsignal 205 mit einem Faktor von zwei in beiden Richtungen unter Verwendung eines getrennten Filters. Der Aufwärtssampler 10 stellt die Frequenzkomponenten, die von dem Verzerrer 20, der in 1 gezeigt ist, abgeschwächt werden, auf einen etwas höheren Wert ein, um die Bildqualität des verzerrten Bildes zu verbessern.
  • Das Eingangsbildsignal 205 wird dem Vertikalfilter 210 und dem Vertikalfilter 220 direkt und über Zeilenverzögerer 200 bereitgestellt, wobei jeder der Verzögerer eine gesamte Zeile des Eingangsbildes für eine Zeilenperiode verzögert. Der Vertikalfilter 210 ist ein Eins-Filter und leitet die Pixelfilter der geraden Zeilen des Eingangsbildsignals 205 weiter. Der Vertikalfilter 220 ist ein Vier-Abgriffs-Filter mit Koeffizientenwerten, die so gewählt sind, daß sie eine Summe aus Zweierpotenzen sind. Die Koeffizientenwerte sind –0,09375, 0,59375, 0,59375 und –0,09375, was entsprechend –3/32, 19/32, 19/32 und –3/32 ist. Die Multiplikationsoperationen, die verwendet werden, um den Vertikalfilter 220 zu implementieren, werden auf arithmetische Verschiebungen und Summenoperationen vereinfacht durch Verwendung dieser Koeffizientenwerte.
  • Die Pixelwerte von den Vertikalfiltern 210 und 220 werden (1) den horizontalen Filtern 230, die Ein-Filter sind und die geraden Pixelwerte passieren lassen, und (2) den Horizontalfiltern 240, die Vier-Abgriffs-Filter sind, bereitgestellt. Die Koeffizientenwerte der Horizontalfilter 240 werden als Summe aus Zweierpotenzen ausgewählt und betragen –0,09375, 0,59375, 0,59375 und –0,09375.
  • 3 ist ein detaillierteres Blockdiagramm des Aufwärtssamplers 10, der in 2 gezeigt ist. Pixelwerte von einer Zeile des Eingangsbildsignals 205 werden dem Eingangsanschluß IN zur Verfügung gestellt. Die Zeilen des Eingangsbildsignals 205 werden über die Zeilenverzögerer 200, die Addieren 300a300f und die Multiplizierer 310a310e verarbeitet, um die ungeraden Zeilen des Eingangsbildes zu interpolieren und die vertikal interpolierten Zeilen Vodd zu erzeugen, die die ungeradzahligen Zeilen des upgesampelten Bildes 207, das in 1 gezeigt ist, werden. Die Koeffizienten C0, C1 bzw. C2 betragen 1/16, 1/32 bzw. 1/2. Das Ausgangssignal Veven des Aufwärtssamplers 10 wird nicht vertikal gefiltert. Diese Zeilen werden die geradzahligen Zeilen des upgesampelten Bildes 207 und stellen die Bildabfragen des Eingangsbildes dar, wie sie empfangen wurden.
  • Die geraden Zeilen Veven werden den Pixelverzögerern 320a320d, den Addierern 300h300l und den Multiplizierern 310f310i zur Verfügung gestellt und verarbeitet, um die Pixel in den geraden Zeilen Veven zu interpolieren, um das Ausgangspixelsignal OUT2 zu erzeugen, das die ungeraden Pixeln in den geraden Zeilen des upgesampelten Bildes 207, das in 1 gezeigt ist, darstellt. Die geraden Pixel in dem Ausgangsbildsignal werden nicht horizontal interpoliert und werden als Ausgangspixelsignal OUT1 bereitgestellt. Die vertikal interpolierten Zeilen Vodd werden den Pixelverzögerern 320e320g, den Addierern 300m300r und den Multiplizierern 310j310n bereitgestellt und unter deren Verwendung verarbeitet, um horizontal interpolierte ungerade Pixel in den vertikal interpolierten Zeilen Vodd zu interpolieren, um das Ausgangspixelsignal OUT4 zu erzeugen. Die Pixel der vertikal interpolierten Zeilen Vodd werden ebenso ohne weitere Interpolation als Pixelsignal OUT3 bereitgestellt.
  • 4 stellt die konzeptionelle Funktion des Aufwärtssamplers 10, der in den 2 und 3 gezeigt ist, dar. 4 ist eine Ortsdomänendarstellung der abgefragten Bilder, die das Upsampling um einen Faktor von zwei (N = 2) darstellt. Null-Datenwerte werden in das Eingangsbildsignal 205 eingefügt, wie in 4 gezeigt ist, um ein Zwischenbildsignal 206 zu erzeugen. A, B, C und D stellen Pixelwerte in dem Eingangsbildsignal 205 dar. Das Zwischenbildsignal 206 wird tiefpaßgefiltert, um das upgesampelte Bildsignal 207 mit Pixelwerten A, B, C und D plus den Interpolationspixelwerten I zu erzeugen. Durch Implementierung dieses konzeptionellen Prozesses wird das Nyquist abgefragte Bild 205 kritisch abgefragt.
  • Das Einfügen von Nullwerten in das Eingangsbildsignal 205 komprimiert die Fourier-Transformation des Bildes um einen Faktor von zwei, wie in den 5a5c gezeigt ist. Die 5a bis 5c sind entsprechende Fourier-Transformationen des Eingangsbildsignals 205, des Zwischenbildsignals 206 und des upgesampelten Bildsignals 207. Ein Vergleich der 5a und 5c zeigt, daß der Bereich 400, der in 5a gezeigt ist, über den sich die Fourier-Transformation des Eingangsbildsignals 205 erstreckt, in der Größe auf den Bereich 401 in dem upgesampelten Bildsignals 207, das in 5c gezeigt ist, reduziert wird. Weiterhin verbleibt, wie in 5c gezeigt ist, eine einzelne Kopie der komprimierten Transformation zentriert um jede ganzzahlige Vielfache von 2π nachdem das Zwischenbild 206 tiefpaßgefiltert wird.
  • Der Upsamplingkern ist ein Tiefpaßfilter mit einer Abschneidefrequenz, die von dem Ausmaß, mit dem das Eingangsbildsignal 205 upgesampelt wird, bestimmt wird. Der Tiefpaßfilter elominiert die Frequenzen außer denjenigen komprimierten Kopien des ursprünglichen Signals, die um ganzzahlige Vielfache von 2π zentriert sind. Während die Frequenzcharakteristiken des Interpolationsverfahrens, das in den in 1 gezeigten Verzerrers 20 eingesetzt wird, bekannt sind, kann ein besserer Upsamplingkern ausgewählt werden, um ein Gesamtverzerrsystem 4 mit geringerer Bildverschlechterung zur Verfügung zu stellen.
  • Der Upsamplingkern wird ausgewählt, um die Abweichungen von einem perfekten Tiefpaßrekonstruktionsfilter, die in dem Verzerrer 20 existieren können, zu kompensieren. Wenn beispielsweise das Verzerrungsinterpolationsverfahren bilinear ist, wie oben beschrieben wurde, wird es nach dem Upsampeln eine leichte Abschwächung der hohen Ortsfrequenzen geben. Der Upsamplingkern des Aufwärtssamplers 10 wird gewählt, um diese selben Frequenzen leicht in ihren Scheitelwert zu verstärken, um den Effekt des gesamten Verzerrungssystems 5 auf die hohen Ortsfrequenzen zu minimieren. Wenn somit das Verzerrungsinterpolationsverfahren bekannt ist, kann ein Upsamplingkern von dem Aufwärtssampler 10 ausgewählt werden, um diese Abweichungen von einem perfekten Tiefpaßfilter zu kompensieren durch das Vorverstärken oder Vorabschwächen von Frequenzen in dem Eingangsbildsignal 205. Auf diese Art und Weise kann die Gesamtverschlechterung des Systems reduziert werden.
  • Verschiedene Verzerrungstransformationen schwächen verschieden hohe Ortsfrequenzen ab, wenn die bilineare Interpolation verwendet wird. Beispielsweise verursacht eine Halbpixeltranslation die größte Abschwächung der hohen Ortsfrequenzen, während ganzzahlige Translationen keine Abschwächung haben. Ein einzelner Upsamplingkern zwischen diesen beiden Extremen kann ausgewählt werden, um die Gesamtbildqualität für unterschiedliche Transformationen zu verbessern.
  • Der Aufwärtssampler erzeugt Pixelwerte in dem upgesampelten Bildsignal 207 mit vier mal der Geschwindigkeit, mit der Pixel in dem Eingangsbild zu dem Aufwärtssampler 10 bereitgestellt werden. Pixelwerte von dem Eingangsbildsignal 205 werden dem Aufwärtssampler 10, der in 1 gezeigt ist, mit einer Rate von einem Pixel pro Taktzyklus zur Verfügung gestellt und von dem Aufwärtssampler 10 mit vier Pixeln pro Taktzyklus geliefert. Die vier Pixel werden dem in 1 gezeigten Verzerrer 20 zur Verfügung gestellt und beispielsweise in getrennten Speichern 600a600d, die in 6 gezeigt sind, wie unten erläutert wird, abgelegt.
  • Der Verzerrer 20, der in 1 gezeigt ist, verzerrt das upgesampelte Bildsignal 207, das in 4 gezeigt ist. Der Verzerrer 20 wird unter Bezug auf 6 beschrieben. In 6 werden die Pixelwerte des upgesampelten Bildsignals 207 in Speichern 600a600d gespeichert, so daß jeder der Speicher ein Viertel des upgesampelten Bildes 207 speichert. Die Pixel in dem verzerrten Bild werden von den gespeicherten Pixelwerten interpoliert unter Verwendung der bilinearen Interpolation. Da der Verzerrungsspeicher 600 als vier getrennte Speicher 600a600d implementiert wird, kann für die Verwendung durch die bilineare Interpolation das upgesampelte Bildsignal 207, das in 4 gezeigt ist, in dem Verzerrungsspeicher 600 mit vier Pixeln pro Taktzyklus abgelegt werden. Auf diese Art und Weise wird keine Rückstandsverzögerung in dem Aufwärtssampler 10, der in 1 gezeigt ist, verursacht.
  • Die bilineare Interpolation verwendet eine lokale Umgebung von vier Pixeln und einen gewichteten Durchschnitt dieser vier Pixeln für die Interpolation. Die Umgebung von Pixelwerten sind die nächsten Pixelwerte zu dem Quellpixelwert. Der Quellpixelwert 720 und die vier näch sten Nachbarpixelwerte 720a720d in dem upgesampelten Bild sind in 7 gezeigt. Das Eingangsbild 205 und das upgesampelte Bild 207 haben einen Pixelwert an jedem Vertex, der von der horizontalen und der vertikalen Zeile, die in 7 gezeigt ist, gebildet wird. Der Pixelwert 700 ist ein Pixelwert im verzerrten Bild 200, der dem Quellpixel 720 entspricht. Der Pixel 700 entspricht ebenso dem Pixel 710 in dem Eingabebild.
  • In einer Echtzeitimplementierung werden vier Pixelwerte (720a, 720b, 720c und 720d) in dem Verzerrspeicher im wesentlichen zum selben Zeitpunkt jedes Taktzyklusses für die Verwendung durch den bilinearen Interpolator abgefragt. Diese Pixelwerte werden dann mit den geeigneten Gewichten multipliziert und summiert, um einen Pixelwert in dem Zwischenverzerrbild zu erzeugen. Die Pixelwerte des upgesampelten Bildsignals 207 werden in den Speichern 600a600d abgelegt, so daß auf jede Gruppierung der nächsten Pixelwerte 720a720d mit dem Quellpixelwert gleichzeitig zugegriffen werden kann.
  • Der Schreibadressengenerator 615, der in 6 gezeigt ist, erzeugt Adressen für das Speichern der Pixelwerte in dem upgesampelten Bildsignal 207 in den Speichern 600a600d. Der Aufwärtssampler 10, der in 1 gezeigt ist, erzeugt eine zwei-mal-zwei-Anordnung von Pixelwerten [(Ak,l, Ek,l, Fk,l, Gk,l,), (Bk,l, Ek,l, Fk,l, Gk,l,), (Ck,l, Ek,l, Fk,l, Gk,l,) oder (Dk,l, Ek,l, Fk,l, Gk,l,)] für jeden Pixelwert in dem Eingangsbildsignal 205, das in 7 gezeigt ist, wobei k und l ganze Zahlen sind. Die vier Pixel in der zwei-mal-zwei-Anordnung werden in getrennten Speichern 600a600d in derselben Adresse in jedem Speicher 600a600d und im wesentlichen zur selben Zeit abgelegt. In der beispielhaften Ausführungsform der Erfindung wird dies implementiert durch Ablegen jeder Ausgangsabfragen OUT1, OUT2, OUT3 und OUT4 des Aufwärtssamplers 10, der in 3 in einen entsprechenden Speicher 600a, 600b, 600c und 600d gezeigt ist.
  • Angenommen, das Eingangsbild hat beispielsweise 256 Pixelwerte mal 256 Pixelwerte und der Eingang wird mit einem Faktor von zwei upgesampelt. Dann hat das upgesampelte Bild 207, das in 7 gezeigt ist, 512 Pixelwerte mal 512 Pixelwerte, wobei jede Quadratgruppierung von Pixeln 210, wie in 4 gezeigt ist, ein Pixel hat, das in einem getrennten Speicher lokalisiert ist. Die Pixelwerte, die in 4 gezeigt sind, werden in den Speichern 600a600d abgelegt. 4a ist eine Darstellung des upgesampelten Bildsignals 207, wo die Pixelwerte in dem upgesampelten Bildsignal 207, das in 4 gezeigt ist, mit Z1 bis Z4 umnumeriert wurden für die Beschreibung wo die Pixelwerte in dem upgesampelten Bild in den Speichern 600a-600d abgelegt werden.
  • Jede Speicheradresse xp und yp ist zwölf Bit groß, wenn die maximale Größe 212 × 212 (4096 × 4096) ist. Jede Speicheradresse xp und yp beinhaltet ein am wenigsten signifikantes Adreßbit x0 und y0, das zusammen den Speicher 600a600d spezifiziert, in dem der Pixelwert abgelegt wird und beinhaltet Ortsadressenbits x12–1 und y12–1, die zusammen die Adresse spezi fizieren, an der die Pixelwerte abgelegt werden. Die Abbildung der Adressenbits x0 und y0 in die Speicher 600a600d wird in Tabelle 1 unten gezeigt.
  • Tabelle 1
    Figure 00100001
  • 4a und Tabelle 2 unten stellen die Anordnung der Pixelwerte des upgesampelten Bildes 207 in den Speichern 600a-600d-Adressen x[11–1] und y[11–1] dar.
  • Tabelle 2
    Figure 00100002
  • Beispielsweise ist die Speicheradresse ((x11–1, x0), (y11–1, y0)] = [(1, 0), (255, 0)] der Pixelwert Z11,255 der in Speicher 600a abgelegt ist.
  • Sobald das upgesampelte Bildsignal 207 in den Speichern 600a600d abgelegt wurde, kann es von dem Verzerrer 20 verzerrt werden. Die Erzeugung des Pixelwertes 700 in dem verzerrten Bild 208, das in 7 gezeigt ist, wird unten unter Bezug auf 8 beschrieben.
  • Als erstes wird in Schritt 800 der Adreßwert A[x, y] des Quellpixelwertes 720 in dem upgesampelten Bild erzeugt. x und y sind Koordinaten des Quellpixelwertes 720 in dem upgesampelten Bild und werden als eine Adresse zu den Speichern 600a600d, die oben unter Bezug auf die Tabellen 1 und 2 beschrieben wurden, verwendet. In Antwort auf die zu implementierende Transformation erzeugt der Adreßgenerator 620 einen Adreßwert A[x, y] für den Quellpixelwert 720 in dem upgesampelten Bild 207, das in 7 gezeigt ist. Beispielsweise kann das Eingangsbild 205 in den Ortsraum transformiert werden unter Verwendung einer geometrischen Transformation, die in den Gleichungen (1) und (2) unten dargestellt ist. x[u,v] = ax + bx·u + cx·v + dx·u2 + ex·v2 + fx·u·v (1) y[u,v] = ay + by·u + cy·v + dy·u2 + ey·v2 + fy·u·v (2)u und y sind Koordinaten eines Pixelwertes in dem verzerrten Zwischenbildsignal und ax, bx, cx, dx, ex, fx, ay, by, cy, dy, ey, und fy sind konstante Koeffizientenwerte. Die Transformationsgleichungen werden dem Adreßgenerator 620 über das Steuersignal CS1, das über ein Interface (nicht gezeigt) bereitgestellt wird, zur Verfügung gestellt. Alternativ können die Transformationsgleichungen in einem Speicher (nicht gezeigt) im Adreßgenerator 620 gespeichert werden.
  • Die Gleichungen (1) und (2) werden unter Verwendung des Pseudocodes in Tabelle 3 unten implementiert. Tabelle 3
    10 /*Initialisieren beim Start der Bildverzerrung:*/ x[0, 0] = ax accex[0] = 0 accfx[0] = 0 accex[1] = e + cx
    20 /*Berechne vor dem Beginn jeder Zeile in dem verzerrten Bild:*/ accex(v] = accex[v – 1] + 2ex x[0, v] = x[0, v –1 ] + accex[v] accfx[v] = accfx[v – 1] + fx
    30 /*Initialisiere vor jeder Zeile des verzerrten Bildes und nach Schritt 20:*/ accdex[0] = 0 accdx[1] = bx + dx + accfx[v]
    40 /*Berechne für jedes Pixel in dem verzerrten Bild:*/ accdx[u] = accdx[u – 1] + 2dx x[u, v] = x[u – 1, v] + accdx[u]
  • In Tabelle 3 ist x[u, v] die x-Koordinate des Adreßwertes A[x, y] in dem upgesampelten Bild 207, die zu einem Pixelwert in dem verzerrten Zwischenbildsignal korrespondiert, das in 1 gezeigt ist. Dieses Zwischensignal entspricht dem verzerrten Bild 208 vor dem Downsampeln durch den Abwärtssampler 30, der in 1 gezeigt ist. Die y-Koordinate y[u, v] wird unter Verwendung des Pseudocodes in Tabelle 3 erzeugt mit der Ausnahme, daß x[u, v] in Tabelle 3 durch y[u, v] ersetzt wird und die "x"-Indices werden durch "y"-Indices ersetzt.
  • Der Pseudocode in Tabelle 3 kann in Hardware unter Verwendung von zwei Addierern einschließlich vier Sammelregistern für jede Berechnung implementiert werden, um x[u, v]- und y[u, v]-Werte zu erzeugen. Die Genauigkeit der Adreßerzeugung ist hoch, beispielsweise 32 bis 48 Bits, abhängig von den Systemanforderungen und der Genauigkeit, die für die Erzeugung des verzerrten Bildes 208, das in 7 gezeigt ist, erforderlich ist.
  • Der Adreßwert A[x, y] hat einen ganzzahligen Teil Sx und Sy und einen Bruchteilanteil Tx und Ty, da der Adreßwert A[x, y] den Ort des Quellpixels 720 in dem upgesampelten Bild 207, das in 7 gezeigt ist, mit Sub-Pixelgenauigkeit identifiziert. Sx und Sy, sind die entsprechenden ganzzahligen Anteile der Koordinatenwerte x und y und Tx und Ty sind die entsprechenden Bruchteilanteile der Koordinatenwerte x und y. Der ganzzahlige Anteil Sx und Sy, des Adreßwertes A[x, y] wird verwendet, um die zwei-mal-zwei-Pixelumgebung des Quellpixelwertes an dem Adreßwert A[x, y] auszuwählen. Der Bruchteilanteil Tx und Ty des Adreßwertes A[x, y] wird verwendet, um die Interpolationskoeftizienten, die dem bilinearen Interpolator zur Verfügung gestellt werden, zu berechnen. Die Interpolationskoeffizientenwerte wichten die Pixelwerte in der zwei-mal-zwei-Pixelumgebung, um den Pixelwert in dem verzerrten Zwischenbild, das in 1 gezeigt ist, zu erzeugen.
  • In Schritt 810 wird, nachdem der Adreßwert A[x, y] erzeugt wurde, bestimmt, ob der Quellpixel 720 zu einem der Pixelwerte in dem upgesampelten Bildsignal 207 korrespondiert. Wenn dies der Fall ist, dann wird der Pixelwert in dem verzerrten Bild als der Pixelwert in dem verzerrten Zwischenbildsignal ausgewählt. Wenn beispielsweise der Adreßwert A[x, y] den Pixelwert 720a, der in 7 gezeigt ist, als den Quellpixel identifiziert, dann wird der Pixelwert 720a ausgewählt. Anderenfalls wird Schritt 830 durchgeführt.
  • Mit Schritt 830 wird die zwei-mal-zwei-Pixelumgebung 720a720d des Quellpixels 720 ausgewählt. Der oben erwähnte Artikel von Gomez beschreibt eine Verfahren für das Auswählen und Abrufen der zwei-mal-zwei-Pixelumgebung aus vier getrennten Speichern.
  • Wie in 7 gezeigt ist, ist der Quellpixel 720 innerhalb einer zwei-mal-zwei-Umgebung von Pixeln 720a720d lokalisiert, die verwendet werden, um den Pixelwert in dem verzerrten Zwischenbildsignal zu erzeugen. Die vier Pixel 720a720d, die die zwei-mal-zwei-Umgebung bilden, sind in getrennten Speichern 600a600d plaziert. 9 ist eine vergrößerte Ansicht eines Teiles des upgesampelten Bildes 207, das in 7 gezeigt ist. Der Adreßgenerator 620 verwendet das Pixel ganz oben links als einen nächsten Nachbar der zwei-mal-zwei-Umgebung. Der nächste Nachbar ist die Startposition, von der der Adreßwert für jeden Pixelwert 720a720d in den Speichern 600a600d bestimmt wird. Die 9c9f stellen die vier unterschiedlichen Positionen des Quellpixels 720 dar, wie es mit den Pixelwerten 720a720d in Beziehung steht, die die zwei-mal-zwei-Umgebung bilden. Ein Pixelwert des upgesampelten Bildes liegt in jedem Vertex, der von der vertikalen und der horizontalen Zeile in den 9c-9f erzeugt wird. Die 9c9f zeigen ebenso in welchem Speicher 600a600d jeder Pixelwert 720a720d der zwei-mal-zwei-Umgebung abgelegt wird.
  • Der ganzzahlige Anteil Sx und Sy des Adreßwertes A[x, y] des Quellpixelwertes 720 wird verwendet, um die Adressen der zwei-mal-zwei-Umgebung in den Speichern 600a600d zu bestimmen. Insbesondere wird das am wenigsten signifikante Bit des ganzzahligen Teiles Sx[0] und Sy[0] verwendet, um die Adressen zu bestimmen. Wenn, wie in 9 gezeigt ist, der nächste Nachbar in dem Speicher 600a abgelegt wird, wird die Adresse von jedem der Pixelwerte 720a720d in der zwei-mal-zwei-Umgebung in Übereinstimmung mit Tabelle 4 unten bestimmt.
  • Tabelle 4
    Figure 00130001
  • In Tabelle 4 sind Sx[11–1] die elf meistsignifikanten Bits des x-Komponententeils, der unter Verwendung von Gleichung (1) berechnet wurde, und Sy[11–1] sind die elf meistsignifikanten Bits des y-Komponententeils, der in Übereinstimmung mit Gleichung (2) berechnet wurde.
  • Die Adressen der Pixelwerte 720a720d in den Speichern 600a600d werden in Übereinstimmung mit Tabelle 5 bestimmt, wenn der nächste Nachbar zu dem Quellpixelwert 720 in dem Speicher 600b abgelegt wird.
  • Tabelle 5
    Figure 00140001
  • Die Adressen der Pixelwerte 720a720d in den Speichern 600a600d werden in Übereinstimmung mit Tabelle 6 bestimmt, wenn der nächste Nachbar zu dem Quellpixelwert 720 in dem Speicher 600c abgelegt wird.
  • Tabelle 6
    Figure 00140002
  • Die Adressen der Pixelwerte 720a720d in den Speichern 600a600d werden in Übereinstimmung mit Tabelle 7 bestimmt, wenn der nächste Nachbar zu dem Quellpixelwert 720 in dem Speicher 600d abgelegt wird.
  • Tabelle 7
    Figure 00140003
  • Nachdem die Adressen von jedem der Pixelwerte 720a720d, die in den Speichern 600a600d abgelegt sind, bestimmt wurden, werden die Pixelwerte 720a720d von den Speichern 720a720d abgerufen.
  • Als nächstes werden in Schritt 840 die Interpolationskoeffizientenwerte I1, I2, I3 und I4 unter Verwendung der Bruchteilanteile Tx und Tx des Adreßwertes A[x, y] erzeugt. Die Interpola tionskoeffizienten I1 und I2, I3 und I4 werden erzeugt unter Verwendung der Gleichen (3)–(6) unten. I1 = (1 –Tx)·(1 –Ty) (3) I2 = Tx·(1 – Ty) (4) I3 = (1 - Tx)·Ty (5) I4 = Tx·Ty (6)
  • Alternativ können die Interpolationskoeffizientenwerte I1–14 in einer Nachschlagtabelle in dem Koeffizientengenerator 630 gespeichert sein. Die Bruchteilanteile Tx und Ty des Adreßwertes A[x, y] werden verwendet als eine Adresse der Interpolationskoeffizientenwerte, die in der Nachschlagtabelle abgelegt sind. Die oben erwähnte Veröffentlichung von Gomez beschreibt ein Verfahren für die Verwendung der Bruchteilanteile Tx und Ty des Adreßwertes A[x, y] als eine Adresse für das Abrufen der Interpolationskoeffizientenwerte aus einer Nachschlagtabelle.
  • In 8 wird in Schritt 850 der Quellpixelwert 720 unter Verwendung der Interpolationskoefflzienten I1–I4 erzeugt und die zwei-mal-zwei-Umgebung der Pixel 720a720d, die in 7 gezeigt sind, werden von den Speichern 600a600d abgerufen. Wie in 6 gezeigt ist, werden der Pixelwert 720a von dem Speicher 600a und der Interpolationskoeffizientenwert I1 bei dem Multiplizierer 610a multipliziert. Der Pixelwert 720b von dem Speicher 600b und der Interpolationskoeftizientenwert I2 werden bei dem Multiplizierer 610b multipliziert. Der Pixelwert 720c von dem Speicher 600c und der Interpolationskoeffizientenwert I3 werden bei dem Multiplizierer 610c multipliziert. Der Pixelwert 720d von dem Speicher 600d und der Interpolationskoeffizientenwert I4 werden bei dem Multiplizierer 610d multipliziert. Die Ausgangswerte, die von den Multiplizierern 610a610d bereitgestellt werden, werden zusammen addiert von dem Summationsschaltkreis 640, um das Quellpixel 720, das in 7 gezeigt ist, zu erzeugen.
  • In Schritt 860 in 8 wird der Quellpixel 720 als ein Pixelwert in dem verzerrten Zwischenbildsignal ausgewählt. Die Schritte 800 bis 860 werden dann wiederholt, um jedes Pixel in dem verzerrten Bild 208 zu erzeugen.
  • Der Abwärts- bzw. Downsampler 30 reduziert die Anzahl von Abfragen in dem verzerrten Zwischenbildsignal um denselben Faktor wie das Eingangsbildsignal aufwärtsgesampelt bzw. upgesampelt wurde. Beispielsweise wird, wenn das Eingangsbildsignal um den Faktor zwei upgesampelt wird, dann das verzerrte Zwischenbild um den Faktor zwei downgesampelt. 9a zeigt eine entsprechende Fourier-Transformation des upgesampelten Bildsignals 207, des verzerrten Zwischenbildes und des verzerrten Bildes 700, das den Betrieb des Abwärtssamplers 30 zeigt. 9b zeigt die Fourier-Transformation eines Eingangsbildsignals unter Verwendung einer bilinearen Interpolation, die das Abwärtssampeln des Eingangsbildsignals nicht beinhaltet. Ein Vergleich der verzerrten Bildsignale, die in den 9a und 9b gezeigt sind, zeigt, daß das verzerrte Bildsignal, das unter Verwendung des Aufwärtssampeln vor der Transformation und des Abwärtssampeln nach der Transformation erzeugt wurde, ein verzerrtes Signal mit einer besseren Frequenzcharakteristik erzeugt als ein verzerrtes Signal, das nicht das Aufwärtssampeln und das Abwärtssampeln verwendet.
  • Alternativ kann der Abwärtssampler 30 und der Verzerrer 20 in einer einzelnen Komponente oder Schritt kombiniert werden. In diesem Fall wird der Adreßwert A[x, y] durch den Interpolationsfaktor 2N eingestellt, um der Interpolation des Eingangsbildsignals 205 Rechnung zu tragen. Beispielsweise spezifiziert die geometrische Standardtransformation, daß ein Pixelwert in dem verzerrten Bildsignal von einem Pixelwert in dem Eingangsbildsignal an dem Ort A[x = x1, y = y1] kommen sollte. Dieser Pixelwert ist an einem nicht-ganzzahligen Ort in dem Eingangsbild und wird somit durch Interpolation unter Verwendung der Umgebungspixel bestimmt. Auf denselben Pixelwert in dem upgesampelten Bildsignal 207 wird durch Multiplizieren der in Bezug genommenen Adresse mit 2 zugegriffen. In diesem Fall würde der Adreßwert, auf den in dem upgesampelten Quellbild Bezug genommen wird A[x = 2·x1, y = 2·y1] sein. Wenn das Bild mit einem Faktor von 4 upgesampelt wurde, dann würde die Adresse, auf die Bezug genommen wird, mit 4 multipliziert. Dann wird eine Pixelumgebung um diese Adresse verwendet, um den Ausgangswert zu bestimmen. Die Umgebung von Pixelwerten in dem upgesampelten Bild entspricht den Abfragepunkten des ursprünglichen analogen Bildes, das dem Ort des Quellpixels näher ist als eine gleichgroße Umgebung von Pixelwerten in dem Eingangsbildsignal.
  • 10 ist eine Ausführungsform eines beispielhaften integrierten Schaltkreises der vorliegenden Erfindung, der auf einen Verzerrchip 1000 gerichtet ist. Dem Verzerrchip 1000 wird das Eingangsbildsignal zur Verfügung gestellt, was ein Multibitdigitalsignal ist, das zumindest acht Datenbits und zwei Taktbits enthält. Die zwei Taktbits übertragen entsprechende Taktsignale. Ein Signal Hain ist in einem logischen high-Zustand, wenn die Daten in einer Zeile gültig sind (während des aktiven Zeilenintervalls) und in einem logischen low-Zustand anderenfalls (d. h. während des horizontalen Dunkeltastungsintervalls). Das andere Signal VAin ist in einem logischen high-Zustand, wenn die Daten in einem Feld gültig sind und in einem logischen low-Zustand anderenfalls (d. h. während des vertikalen Dunkeltastungsintervalls). 11 ist ein Taktdiagramm, das die relative Taktung des Eingangsbildsignals und des verzerrten Bildsignals und die Signale Ha und VA für diese Signale zeigt. Der Verzerrungschip verwendet die Taktsignale Ha und VA in derselben Art und Weise wie in dem US-Patent Nr. 5,359,674 mit dem Titel "PYRAMID PROCESSOR INTEGRATED CIRCUIT, ausgestellt auf van der Wal, beschrieben ist.
  • In einer Implementierung bleiben die Taktsignale HA und VA mit dem Eingangsbildsignal verknüpft, während das Eingangsbildsignal von dem Verzerrungs- bzw. Warperchip 1000 verarbeitet wird. Im Ergebnis müssen, wenn das verzerrte Bildsignal erzeugt wird, die vertikale und horizontale Dunkeltastungsperiode des verzerrten Bildsignals nicht erzeugt werden, da die rela tive Taktung des verzerrten Bildsignals durch das Verknüpfen der Taktsignale HA und VA mit dem Eingangsbildsignal beibehalten wird, während es verarbeitet wird. Es wird somit weniger Verdrahtung erforderlich. In einer anderen Implementierung kann das Aufwärtssampeln und der Speicherprozeß von dem Verzerr- und Interpolationsprozeß entkoppelt werden, wobei in diesem Fall die HA- und VA-Taktsignale für den Ausgang erneut erzeugt werden müssen. Eine weitergehende Beschreibung der Verwendung der Taktsignale wird ausgelassen.
  • Die beispielhafte Ausführungsform ist nicht auf die Verarbeitung von digitalen Multibitsignalen beschränkt, die acht Datenbits und zwei Taktbits enthalten. Die beispielhafte Ausführungsform kann derart konfiguriert sein, daß sie digitale Multibitsignale erhält, die beispielsweise zehn Datenbits und zwei Taktbits enthalten.
  • In 10 wird das Eingangsbildsignal dem Verzögerer 1010 und dem Aufwärtssampler 1015 zur Verfügung gestellt. Der Verzögerer 1010 ist derselbe wie der Verzögerer 200, der in 2 gezeigt ist und der Aufwärtssampler 1015 ist die Kombination der vertikalen Filter 210 und 220, die in 2 gezeigt sind, und der horizontalen Filter 230 und 240, die in 2 gezeigt sind. Der Verzögerer 1010 und der Aufwärtssampler 1015 arbeiten wie diese Komponenten. Die Speicher 600a600d sind die gleichen wie die Speicher 600a600d, die in 6 gezeigt sind, und sind eine einzelne oder eine Doppelbank von SRAM. Der bilineare Interpolator ist eine Kombination der Multiplizieren 610a610d und des Summationsschaltkreises 640, der in 6 gezeigt ist.
  • Der Adreß-/Koeffizientengenerator 1050 arbeitet auf die gleiche Weise wie der Adreßgenerator 620 und der Koeffizientengenerator 630, die in 6 gezeigt sind, außer daß der Adreß-/Koeffizientengenerator 1050 ebenso einen Flußfeldeingang empfangen kann. Der Flußfeldeingang stellt einen zweidimensionalen Vektor für jedes Ausgangspixel bereit. Der Flußfeldvektor wird der Verzerrungsadresse, die von dem Adreß-/Koeffizientengenerator 1050 erzeugt wird, zugefügt, um die vollständigen allgemeinen Bildtransformationen zu erlauben oder allgemeine Modifikationen an den berechneten Daten der Adressen/Koeffizienten und dem Generator zur Verfügung zu stellen. Der Adreß-/Koeffizientengenerator 1050 erhält ebenso Steuersignale CS1 von der CPU-Schnittstelle 1040. Die Verzerrungskoeffizienten, wie z. B. die konstanten Koeffizientenwerte ax, bx, cx, dx, ex, fx, ay, by, cy, dy, ey und fy werden bereitgestellt, um die Adreßwerte A[x, y] zu erzeugen. Die Adreßwerte A[x, y] werden verwendet, um die Pixelwerte von den Speichern 600a600d abzufragen, wie oben unter Bezug auf den Schreibadressengenerator 615, der in 6 gezeigt ist, beschrieben wurde. Der Schreibadreßgenerator 1020 ist ebenso mit der CPU-Schnittstelle 1040 verbunden, die Daten zur Verfügung stellt, die spezifiziert, welches Segment des Eingangsbildes zu verarbeiten ist und in den Speichern 600a600d abzulegen ist. Die Schreibsteuerlogik 1020 stellt die Schreibadresse, die in den Tabellen 1 und 2 gezeigt ist, für das Schreiben der Pixelwerte in dem aufwärtsgesampelten Bild die Speicher 600a600d zur Verfügung. Basierend auf den Taktsignalen HAin und VAin und der Programm schnittstelle, die spezifiziert, welches Segment des Eingangsbildsignals gespeichert werden sollte, erzeugt die Schreibsteuerlogik 1020 die Adressen, um die Pixelwerte in den Speichern 600a600d in derselben Art und Weise wie oben beschrieben, zu speichern.
  • In einer anderen beispielhaften Ausführungsform der vorliegenden Erfindung kann der in den 1 und 10 gezeigte Schaltkreis verwendet werden, um die multiple Bildebenenverzerrung durchzuführen. In vielen Anwendungen ist es wünschenswert, mehrere Bildebenen zu verzerren, wie z. B. die getrennten Ebenen eines Farbbildes. Dies kann erreicht werden durch Verwendung von multiplen Verzerrungschips 1000, die in 10 gezeigt sind, oder von mehreren Verzerrungssystemen 5, wie in 1 gezeigt, in paralleler Weise. Alternativ kann, wenn die Verarbeitungsrate des Verzerrungschips 1000 oder des Verzerrungssystems 5 schnell genug ist, der Verzerrungsbetrieb auf einem Teil oder allen Bildebenen verzahnt werden. Im Ergebnis kann ein einzelner Verzerrungschip 1000 oder ein Verzerrungssystem 5 verwendet werden.
  • Die Verzahnung von Bildern mit mehreren Ebenen wird unten unter Verwendung eines RGB-Eingangsbildsignals und 10 beschrieben. Das Eingangsbildsignal beinhaltet beispielsweise drei Bildebenen R, G, und B, wobei die Bildebenen R, G und B für jedes Pixel für jede Zeile des Eingangsbildsignals verzahnt sind, wie in Tabelle 8 unten gezeigt ist.
  • Tabelle 8
    Figure 00180001
  • Durch Vergrößern der Zeilenverzögerungen 1010 um einen Faktor von drei oder durch Verwendung von drei Zeilenverzögerern für jede Zeilenverzögerung 200 kann der Aufwärtssampler 1015 auf dem Eingangsbildsignal in einer verzahnten Art und Weise arbeiten. Das aufwärts gesampelte Bild wird in den Speichern 600a600d in der gleichen Art und Weise wie oben beschreiben abgelegt, außer daß die Pixelwerte in einer verzahnten Art und Weise abgelegt werden. Tabelle 9 stellt dar, wie die Pixelwerte der drei Ebenen in den Speichern 600a-600d abgelegt werden.
  • Tabelle 9
    Figure 00190001
  • In Tabelle 9 stellt "(o)" die ungeraden horizontalen und vertikalen Ausgaben des Aufwärtssamplers 1015 dar. Der ganzzahlige Anteil des Adreßwertes A[x, y], der von dem Adreß-/Koeffizientengenerator 1050 erzeugt wird, wird mit drei multipliziert, um der Veränderung der Adresse, die durch die Addition der anderen Bildebenen in den Speichern erzeugt wird, Rechnung zu tragen. Zusätzlich wiederholt der Adreß-/Koeffizientengenerator 1050 dieselbe Operation dreimal: einmal für den berechneten Adreßwert A[x, y], dann für den Adreßwert A[x, y] erhöht um 1 und dann für den Adreßwert A[x, y] erhöht um 2. Das verzerrte Bildsignal beinhaltet Farbbilddaten in einer verzahnten Art und Weise.
  • In dem obigen Beispiel arbeitet der Verzerrungschip mit der dreifachen Taktrate der ankommenden Pixelrate einer einzelnen Bildebene. Wenn die RGB-Bildebenen in dem Eingangsbildsignal nur in parallelen Datenpfaden verfügbar sind, werden die Bilddaten vor der Verarbeitung verzahnt. Nachdem das verzerrte Bildsignal erzeugt wurde, wird die Verzahnung des verzerrten Bildsignals rückgängig gemacht, um die Bildebenen in parallelen Datenpfaden wieder herzustellen.
  • Ein anderes Beispiel des verzahnten Betriebes des Verzerrungschips 1000 wird unten beschrieben, bei dem das Eingangsbildsignal ein Farbbild in DI-Format ist, wobei die drei Bilddatenebenen in einer leicht unterschiedlichen Art und Weise verzahnt sind. Das Eingangsbildsignal beinhaltet beispielsweise drei Bildebenen Y, U und V, wobei die Bildebenen Y, U und V verzahnt sind als ... U[n, m], Y[n, m], V[n, m], Y[n + 1, m], U[n + 2, m], Y[n + 2, m], V[n + 2, m], Y[n + 3, m], ... Somit hat die Helligkeitsebene Y zweimal die Auflösung der beiden Farbebenen U und V und die Farbebenen U und V sind gemeinsam an den geraden Positionen der Helligkeitsebene Y untergebracht.
  • Diese Verzahnung kann während der ganzen Verzerrungsimplementierung beibehalten werden, aber die Verzögerungen und Adreßberechnungen sind leicht unterschiedlich, wenn sie auf den drei Bildebenen arbeiten, wie oben beschrieben wurde. Die Zeilenverzögerungen 1010 vor dem Aufwärtssampler 1015 haben die doppelte Größe einer Zeile der Helligkeitsebene Y, was viermal der Größe einer Zeile der Farbebene U und V entspricht. Die Verzögerung schaltet jeden Taktzyklus zwischen einem Zweierverzögerungselement und einem Viererverzögerungselement um.
  • Der Adreß-/Koeffizientengenerator berechnet wiederum einen neuen Adreßwert A[x, y] zweimal für vier aufeinanderfolgende Ausgangswerte: als erstes für die zwei Farbebenen U und V und die gerade Position der Helligkeitsebene Y, und dann wird ein Adreßwert A[x, y] getrennt für die ungerade Position der Helligkeitsebene Y berechnet. Der Adreßwert A[x, y] wird versetzt, um geeignet auf die korrekten Datenebenen, die in den Speichern 600a600d abgelegt sind, zuzugreifen.
  • Obgleich hier bestimmte spezifische Ausführungsformen dargestellt und beschrieben wurden, ist die vorliegende Erfindung nichtsdestotrotz nicht auf die gezeigten Details beschränkt. Es können vielmehr verschiedene Modifikationen in den Details vorgenommen werden, ohne von der Erfindung abzuweichen, wie es in den angefügten Ansprüchen definiert wird.

Claims (20)

  1. Bildverarbeitungssystem, das aufweist: eine Einrichtung für das Anlegen eines Eingangsbildsignals an das Bildverarbeitungssystem, eine Upsampling- (höhere Abtastrate) Einrichtung (10) für das Upsamplen des Eingangsbildsignals, um Eingangsbildsignalabfragen zu erzeugen, die gleichförmig mit einer Samplerate gesamplet sind, die um einen vorbestimmten Faktor von größer oder gleich zwei größer als die Nyquist-Rate ist, um ein upgesampletes Bildsignal zu erzeugen, und eine Einrichtung für das Warping bzw. Verzerren (20) des upgesampleten Bildsignals und für das Downsampling (30) des upgesampleten verzerrten Bildsignals um den besagten Faktor, um ein verzerrtes Bildausgangssignal zu erzeugen.
  2. System nach Anspruch 1, wobei die Anlegeeinrichtung derart angeordnet ist, daß sie ein gesampletes Eingangsbildsignal an das System anlegt, wobei das gesamplete Eingangsbildsignal eine Eingangssamplingrate hat, und die Upsamplingeinrichtung (10) derart angeordnet ist, daß sie gleichförmig upgesamplete und interpolierte Abfragen erzeugt, wobei die Samplingrate auf eine Rate erhöht ist, die um den besagten Faktor größer als die Nyquist-Rate ist.
  3. System nach Anspruch 1 oder 2, wobei die Einrichtung für das Warping und das Downsampling aufweist: eine Einrichtung für das Warping (10) des gleichförmig gesampleten Signals, das von der Upsamplingeinrichtung erzeugt wird und eine Einrichtung für das Downsampling (30) des upgesampleten verzerrten Bildsignals um den besagten Faktor.
  4. System nach Anspruch 1 oder 2, wobei die Einrichtung für das Warping und Downsampling (10, 30), derart angeordnet ist, daß das upgesamplete Bildsignal in einem einzigen Schritt verzerrt und downgesamplet wird.
  5. System nach Anspruch 3 oder 4, wobei die Einrichtung für das Warping einen Interpolationsfilter beinhaltet, der eine Mehrzahl von benachbarten Abfragen des gleichförmig upgesampleten Bildes interpoliert, um jede Abfrage des upgesampleten verzerrten Bildes zu erzeugen.
  6. Bildverarbeitungssystem nach einem der Ansprüche 1, 2, 3, 4 oder 5, wobei die Warpingeinrichtung (10) einen Tiefpaßfilter beinhaltet und der Tiefpaßfilter einen bilinearen Interpolator (610, 640) aufweist.
  7. Bildverarbeitungssystem nach einem der Ansprüche 1, 2, 3, 4, 5 oder 6, wobei die Upsamplingeinrichtung (10) einen Filter (210240) beinhaltet, der derart angeordnet ist, daß er das upgesamplete Bildsignal vorverarbeitet, um der Verschlechterung in der örtlichen Frequenzcharakteristik des upgesampleten verzerrten Bildsignals, die durch die Warpingeinrichtung verursacht wird, entgegenzuwirken.
  8. Bildverarbeitungssystem nach einem der Ansprüche 1, 2, 3, 4, 5, 6 oder 7, wobei: die Warpingeinrichtung vier Speicher (600) beinhaltet und die Upsamplingeinrichtung (10) weiterhin vier Abfragen für jede der Abfragen des Ausgangsbildsignals erzeugt und die vier Abfragen jeweils in unterschiedlichen Speichern der vier Speicher (600) ablegt.
  9. System nach einem der Ansprüche 1 bis 8, wobei die Warpingeinnchtung (10) derart angeordnet ist, daß sie das verzerrte Bildsignal durch inverses Mapping bzw. inverse Abbildung erzeugt.
  10. Integrierter Schaltkreis, der aufweist: einen Eingangsanschluß für das Empfangen eines gesampleten Eingangsbildsignals mit einer Eingangssamplingrate, eine Upsamplingeinrichtung (1015), die mit dem Eingangsterminal verbunden ist für das Upsamplen des Eingangsbildsignals, um eine gleichförmig upgesamplete und interpolierte Eingangsbildsignalabfrage zu erzeugen, wobei die Samplingrate um einen Faktor größer oder gleich zwei größer als die Nyquist-Rate ist, um ein upgesampletes Bildsignal zu erzeugen, eine Adreßschreibeeinrichtung (1020) für das Erzeugen eines Schreibadreßsignals, das einen Ort in einem Speicher (600) spezifiziert, wo die upgesampleten Bildsignalabfragen gespeichert werden sollen, eine Leseadreßeinrichtung (1050) für das Erzeugen eines Leseadreßsignals, das spezifiziert, welche der abgelegten Abfragen von dem Speicher (600) abgefragt werden sollen, und eine Einrichtung (1030) für das Empfangen der abgerufenen Abfragen von dem Speicher und für das Erzeugen eines upgesampleten verzerrten Bildsignals und für das Downsampling des upgesampleten verzerrten Bildsignals um den besagten Faktor, um ein verzerrtes Bildausgangssignal zu erzeugen.
  11. Integrierter Schaltkreis nach Anspruch 10, wobei die Einrichtung für das Erzeugen eines upgesampleten verzerrten Bildsignals einen Interpolationsfilter beinhaltet, der eine Mehrzahl von benachbarten Abfragen des gleichförmig upgesampleten Bildes interpoliert, um jede Abfrage des upgesampleten verzerrten Bildes zu erzeugen.
  12. Integrierter Schaltkreis nach Anspruch 10 oder 11, wobei die Einrichtung für das Erzeugen eines verzerrten Bildsignals einen bilinearen Interpolator beinhaltet.
  13. Schaltkreis nach Anspruch 10, 11 oder 12, wobei die Einrichtung für das Erzeugen eines verzerrten Bildsignals und für das Downsamplen (10, 30) derart angeordnet ist, daß das upgesamplete Bildsignal in einem einzigen Schritt verzerrt und downgesampelt wird.
  14. Schaltkreis nach Anspruch 10, 11, 12 oder 13, wobei die Einrichtung (1030) für das Erzeugen eines verzerrten Bildsignals derart angeordnet ist, daß das verzerrte Bildsignal durch inverses Mapping bzw. inverses Abbilden erzeugt wird.
  15. Verfahren zum Verarbeiten eines Eingangsbildsignals, das die Schritte aufweist: Anlegen eines Eingangsbildsignals an das Bildverarbeitungssystem, Samplen des Eingangsbildsignals, um Eingangsbildsignalabfragen zu erzeugen, die gleichförmig mit einer Samplingrate gesamplet sind, die um einen vorbestimmten Faktor größer oder gleich zwei größer als die Nyquist-Rate ist, um ein upgesampletes Bildsignal zu erzeugen, Warping bzw. Verzerren (20) des upgesampleten Bildsignals und Downsamplen (30) des upgesampleten verzerrten Bildsignals um den besagten Faktor, um ein verzerrtes Bildausgangssignal zu erzeugen.
  16. Verfahren nach Anspruch 15, wobei der Schritt des Anlegens so angeordnet ist, daß ein gesampletes Eingangsbildsignal an das System angelegt wird, wobei das gesamplete Eingangsbildsignal eine Eingangssamplingrate hat, und der Upsamplingschritt (10) derart eingerichtet ist, daß er gleichförmig upgesamplete und interpolierte Abfragen erzeugt, wobei die Abfragerate bzw. Samplingrate auf eine Rate, die um den besagten Faktor größer als die Nyquist-Rate ist, angehoben ist.
  17. Verfahren nach Anspruch 16, wobei der Schritt des Verzerrens das Interpolieren einer Mehrzahl von benachbarten Abfragen des gleichförmig untergesampleten Bildes aufweist, um jede Abfrage des upgesampleten verzerrten Bildes zu erzeugen.
  18. Verfahren nach Anspruch 15, 16 oder 17, wobei der Warpingschritt das inverse Mapping bzw. das inverse Abbilden verwendet.
  19. Verfahren nach Anspruch 15, 16, 17 oder 18, wobei der Upsamplingschritt das Zurverfügungstellen von Bildsignalabfragen mit einer Rate von 2N-mal der Nyquist-Rate aufweist, wobei N eine positive ganze Zahl größer oder gleich eins ist.
  20. Verfahren nach Anspruch 15, 16, 17, 18 oder 19, wobei der Upsamplingschritt vier Pixelwerte in dem upgesampleten Bildsignal für jede der Abfragen des Ausgangssignals erzeugt und das Verfahren weiterhin den Schritt aufweist des Ablegens jedes der vier Pixelwerte in einem getrennten Speicher (600).
DE69723451T 1996-04-18 1997-04-17 Deformation eines digitalen bildes mit effizienter berechnung Expired - Fee Related DE69723451T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US1557796P 1996-04-18 1996-04-18
US15577P 1996-04-18
PCT/US1997/005427 WO1997039420A1 (en) 1996-04-18 1997-04-17 Computationally efficient digital image warping

Publications (2)

Publication Number Publication Date
DE69723451D1 DE69723451D1 (de) 2003-08-14
DE69723451T2 true DE69723451T2 (de) 2004-04-15

Family

ID=21772243

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69723451T Expired - Fee Related DE69723451T2 (de) 1996-04-18 1997-04-17 Deformation eines digitalen bildes mit effizienter berechnung

Country Status (5)

Country Link
US (1) US6061477A (de)
EP (1) EP0920671B1 (de)
JP (1) JP2000511715A (de)
DE (1) DE69723451T2 (de)
WO (1) WO1997039420A1 (de)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845015A (en) 1995-10-12 1998-12-01 Sarnoff Corporation Method and apparatus for resizing images using the discrete cosine transform
US6281931B1 (en) * 1997-11-04 2001-08-28 Tien Ren Tsao Method and apparatus for determining and correcting geometric distortions in electronic imaging systems
US6211913B1 (en) * 1998-03-23 2001-04-03 Sarnoff Corporation Apparatus and method for removing blank areas from real-time stabilized images by inserting background information
US6538691B1 (en) * 1999-01-21 2003-03-25 Intel Corporation Software correction of image distortion in digital cameras
US6178272B1 (en) * 1999-02-02 2001-01-23 Oplus Technologies Ltd. Non-linear and linear method of scale-up or scale-down image resolution conversion
JP4392082B2 (ja) * 1999-08-06 2009-12-24 ヒューレット・パッカード・カンパニー 彫版風ハーフトーン画像生成方法・装置
KR100311482B1 (ko) 1999-10-21 2001-10-18 구자홍 보간 영상의 화질 개선을 위한 필터링 제어방법
US6906732B1 (en) * 1999-12-07 2005-06-14 Nintendo Co., Ltd. Texture morphing process provided by the preferred embodiment of the present invention
GB2360919A (en) * 2000-01-20 2001-10-03 Anthropics Technology Ltd Appearance modelling
US6738498B1 (en) * 2000-08-01 2004-05-18 Ge Medical Systems Global Technology Company, Llc Method and apparatus for tissue dependent filtering for image magnification
JP2002224982A (ja) * 2000-12-01 2002-08-13 Yaskawa Electric Corp 薄型基板搬送用ロボットおよび薄型基板検出方法
EP1354292B1 (de) * 2000-12-01 2012-04-04 Imax Corporation Verfahren und Vorrichtung zum Erzeugen hochauflösender Bilder
EP1518211A2 (de) * 2000-12-22 2005-03-30 Anthropics Technology Limited Bildbearbeitungssystem
CN1537300A (zh) * 2000-12-22 2004-10-13 通信系统
US6756993B2 (en) * 2001-01-17 2004-06-29 The University Of North Carolina At Chapel Hill Methods and apparatus for rendering images using 3D warping techniques
CA2360295A1 (en) * 2001-10-26 2003-04-26 Jaldi Semiconductor Corp. System and method for image warping
DE60332328D1 (de) * 2002-03-13 2010-06-10 Imax Corp Systeme und verfahren für ein digitales remastering oder anderweitiges modifizieren von beweglichen bildern oder anderen bildsequenzdaten
JP3979894B2 (ja) * 2002-07-22 2007-09-19 本田技研工業株式会社 物体検出装置及び方法
EP1602259A2 (de) * 2003-03-04 2005-12-07 Oticon A/S Digitalfilter und zuhöreinrichtung
KR100519776B1 (ko) * 2003-11-24 2005-10-07 삼성전자주식회사 영상 신호의 해상도 변환 방법 및 장치
US7590306B2 (en) * 2003-11-26 2009-09-15 Ge Medical Systems Global Technology Company, Llc Resolution adaptive image filtering system and method
US7064770B2 (en) * 2004-09-09 2006-06-20 Silicon Optix Inc. Single-pass image resampling system and method with anisotropic filtering
US7460730B2 (en) 2005-08-04 2008-12-02 Microsoft Corporation Video registration and image sequence stitching
US7606445B2 (en) * 2005-11-30 2009-10-20 General Electric Company Methods and systems for ultrasound inspection
WO2007085950A2 (en) * 2006-01-27 2007-08-02 Imax Corporation Methods and systems for digitally re-mastering of 2d and 3d motion pictures for exhibition with enhanced visual quality
CA2653815C (en) 2006-06-23 2016-10-04 Imax Corporation Methods and systems for converting 2d motion pictures for stereoscopic 3d exhibition
US20080088527A1 (en) * 2006-10-17 2008-04-17 Keitaro Fujimori Heads Up Display System
US20080088528A1 (en) * 2006-10-17 2008-04-17 Takashi Shindo Warp Image Circuit
US8055070B2 (en) * 2007-01-05 2011-11-08 Geo Semiconductor Inc. Color and geometry distortion correction system and method
US8442316B2 (en) 2007-01-05 2013-05-14 Geo Semiconductor Inc. System and method for improving color and brightness uniformity of backlit LCD displays
US8121434B2 (en) 2008-06-13 2012-02-21 Microsoft Corporation Multi-pass image resampling
US8675994B1 (en) * 2010-06-17 2014-03-18 Ambarella, Inc. High performance warp correction in two-dimensional images
US10616578B2 (en) * 2015-01-30 2020-04-07 Texas Instruments Incorporated Semi-global matching (SGM) cost compression
CN115100017A (zh) * 2015-06-10 2022-09-23 无比视视觉技术有限公司 用于处理图像的图像处理器和方法
US11178072B2 (en) 2015-06-10 2021-11-16 Mobileye Vision Technologies Ltd. Image processor and methods for processing an image
KR102674906B1 (ko) * 2017-06-27 2024-06-12 가부시키가이샤 한도오따이 에네루기 켄큐쇼 표시 시스템 및 데이터 처리 방법
JP7114601B2 (ja) 2017-08-25 2022-08-08 株式会社半導体エネルギー研究所 表示パネル及び表示装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3700815A (en) * 1971-04-20 1972-10-24 Bell Telephone Labor Inc Automatic speaker verification by non-linear time alignment of acoustic parameters
US4816913A (en) * 1987-11-16 1989-03-28 Technology, Inc., 64 Pixel interpolation circuitry as for a video signal processor
US5008752A (en) * 1989-06-16 1991-04-16 Eastman Kodak Company Digital image interpolator with multiple interpolation algorithms
US5204944A (en) * 1989-07-28 1993-04-20 The Trustees Of Columbia University In The City Of New York Separable image warping methods and systems using spatial lookup tables
US5175808A (en) * 1989-09-12 1992-12-29 Pixar Method and apparatus for non-affine image warping
DE69029507T2 (de) * 1989-11-09 1997-05-15 Ikegami Tsushinki Kk Bildeinstellungs- und Konturkorrekturschaltung und Verfahren für Festkörperkamera
US5173948A (en) * 1991-03-29 1992-12-22 The Grass Valley Group, Inc. Video image mapping system
US5355328A (en) * 1991-09-27 1994-10-11 Northshore Laboratories, Inc. Resampling apparatus suitable for resizing a video image
US5410616A (en) * 1992-05-28 1995-04-25 Unisys Corporation Loop-up table image scaling for rational factors
US5420940A (en) * 1992-06-16 1995-05-30 Hughes Training, Inc. CGSI pipeline performance improvement
US5642167A (en) * 1992-07-23 1997-06-24 Wallace; Richard Scot TV picture compression and expansion
CA2129092C (en) * 1993-10-04 1999-10-19 Leon C. Williams Image interpolation apparatus
US5594676A (en) * 1994-12-22 1997-01-14 Genesis Microchip Inc. Digital image warping system

Also Published As

Publication number Publication date
EP0920671A4 (de) 2001-09-19
WO1997039420A1 (en) 1997-10-23
EP0920671B1 (de) 2003-07-09
EP0920671A1 (de) 1999-06-09
DE69723451D1 (de) 2003-08-14
JP2000511715A (ja) 2000-09-05
US6061477A (en) 2000-05-09

Similar Documents

Publication Publication Date Title
DE69723451T2 (de) Deformation eines digitalen bildes mit effizienter berechnung
DE69504371T2 (de) Digitales videoumwandlungsschaltsystem
DE69406306T2 (de) Verfahren zur bildskalierung und zum filtern mit diskreter cosinustransformation
DE69906031T2 (de) System und Verfahren zur massstäblichen Umformung von Bildern
DE69028075T2 (de) Digitaler bildinterpolator
DE102004007637B4 (de) Verfahren zum Erzeugen eines Bildes mit erhöhter Auflösung unter Verwendung einer Mehrzahl von Bildern mit niedriger Auflösung
DE69411470T2 (de) Methode und Vorrichtung zur Verbesserung der Schärfe einer einem kontinuierlichem Zoom unterworfenen Bildfolge
DE3882767T2 (de) Bandpass-Digitaloszilloskop.
DE69308017T2 (de) Verfahren und gerät zur adaptiven interpolation eines digitalen bildes
DE69223925T2 (de) Videobildverarbeitung
DE69128731T2 (de) Schaltungsanordnung für die Konvertierung von pyramidenförmigen Texturkoordinaten und diese enthaltendes Anzeigegerät
DE69228139T2 (de) System zur Abbildung von Videobildern
DE69509141T2 (de) Verfahren und digitale Schaltung zum Aufheben des Zeilensprungverfahrens während der Darstellung von Videobildern
DE69728247T2 (de) Pyramidenförmiger pipeline-prozessor für ein bildverarbeitungssystem
DE69422587T2 (de) Verfahren und Gerät für willkürliche binäre Auflösungsveränderung
DE102006038646B4 (de) Bildverarbeitungsvorrichtung für Farb-Bilddaten
DE2835689A1 (de) Anordnung zur veraenderung der aufloesung bei der bild-datenerfassung und -uebertragung
DE69223536T2 (de) Bildverarbeitungsgerät
DE69221840T2 (de) Abtastratenwandlungsschaltung für Bilddaten
DE69602852T2 (de) Verfahren und vorrichtung zur unterdruckung des zellensprungs von videohalbbildern nach videobildern mit progressiver abtastung
DE69229085T2 (de) System zur Bildverarbeitung
EP0625762B1 (de) Verfahren zum Entzerren von Röntgenaufnahmen und Anordnung zur Durchführung des Verfahrens
DE10156040B4 (de) Verfahren, Vorrichtung und Computerprogramm-Produkt zum Entzerren einer eingescannten Abbildung
DE69419768T2 (de) Bildreduktions-vergrösserungsvorrichtungen und verfahren zum generieren von niedrigfrequenz-gefilterten bildern
DE4215094C2 (de) Bildverarbeitungsverfahren und -vorrichtung

Legal Events

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