DE69836696T2 - Verfahren und vorrichtung zur durchführung einer hierarchischen bewegungsschätzung unter verwendung einer nicht-linearen pyramide - Google Patents

Verfahren und vorrichtung zur durchführung einer hierarchischen bewegungsschätzung unter verwendung einer nicht-linearen pyramide Download PDF

Info

Publication number
DE69836696T2
DE69836696T2 DE69836696T DE69836696T DE69836696T2 DE 69836696 T2 DE69836696 T2 DE 69836696T2 DE 69836696 T DE69836696 T DE 69836696T DE 69836696 T DE69836696 T DE 69836696T DE 69836696 T2 DE69836696 T2 DE 69836696T2
Authority
DE
Germany
Prior art keywords
image
pyramid
block
linear
pixel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69836696T
Other languages
English (en)
Other versions
DE69836696D1 (de
Inventor
Xudong Lawrenceville SONG
Ya-Qin Plainsboro ZHANG
Tihao Plainsboro CHIANG
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.)
MediaTek Inc
Original Assignee
MediaTek Inc
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 MediaTek Inc filed Critical MediaTek Inc
Publication of DE69836696D1 publication Critical patent/DE69836696D1/de
Application granted granted Critical
Publication of DE69836696T2 publication Critical patent/DE69836696T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • 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/53Multi-resolution motion estimation; Hierarchical motion estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/39Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability involving multiple description coding [MDC], i.e. with separate layers being structured as independently decodable descriptions of input picture data

Description

  • Die Erfindung betrifft im Allgemeinen eine Vorrichtung und ein begleitendes Verfahren für das Codieren von Bildsequenzen und, genauer gesagt, ein Verfahren für das Reduzieren der Rechenkomplexität bei der Bestimmung von Bewegungsvektoren für die blockbasierte Bewegungsabschätzung und für das Verbessern der Genauigkeit der Bewegungsabschätzungen.
  • Technischer Hintergrund
  • Eine Bildsequenz, wie z.B. eine Videobildsequenz, beinhaltet typischerweise eine Sequenz von Bildframes oder Bildern. Um die notwendige Übertragungsbandbreite oder Speicherkapazität zu reduzieren, wird die Einzelbildsequenz komprimiert, so daß redundante Information innerhalb der Sequenz nicht gespeichert oder übertragen wird.
  • Im Allgemeinen spielt, um eine Bildsequenz zu codieren, die Information, die die Bewegung der Objekte in einer Szene von einem Einzelbild zu dem nächsten betrifft, eine wichtige Rolle im Codierprozeß. Aufgrund der hohen Redundanz, die zwischen aufeinanderfolgenden Einzelbildern innerhalb der meistens Bildsequenzen existiert, kann eine wesentliche Datenkomprimierung erzielt werden unter Verwendung einer Technik, die bekannt ist als Bewegungsschätzung/Kompensation (ebenso bekannt als bewegungskompensierte Interframe prädiktive Videocodierung), die von verschiedenen internationalen Normen übernommen wurde, wie z.B. ITU H.263, ISO MPEG-1 und MPEG-2.
  • Ein beliebtes Bewegungskompensationsverfahren ist der Blockübereinstimmungsalgorithmus (BMA), der die Verrückungen auf einer Block-per-Block-Basis abschätzt. Für jeden dieser gegenwärtigen Blöcke wird innerhalb eines ausgewählten Suchbereichs im vorherigen Einzelbild eine Suche nach einem Pixelblock durchgeführt, der "am Besten" mit dem gegenwärtigen Block übereinstimmt. Dieser Ansatz, d. h. das Vergleichen jedes gegenwärtigen Blockes mit einem gesamten ausgewählten Suchbereich, ist als der volle Suchansatz oder der gründliche Suchansatz bekannt. Die Bestimmung von Bewegungsvektoren durch den gründlichen Suchansatz ist rechenintensiv, insbesondere wenn der Suchbereich besonders groß ist.
  • Andere Bewegungsabschätzverfahren beinhalten das Konzept der hierarchischen Bewegungsabschätzung (HME), wo ein Bild in ein Mehrfach-Auflösungs-Framework, d. h. in eine Pyramide, zerlegt wird. Eine hierarchische Bewegungsvektorsuche wird dann durchgeführt, bei der die Suche von der niedrigsten Auflösung zu der höchsten Auflösung der Pyramide fortgesetzt wird. Obgleich HME sich als schnellste und effektivste Bewegungsabschätzmethode erwiesen hat, benötigt die Erzeugung der Pyramide immer noch eine signifikante Menge von Rechenzyklen.
  • Es besteht daher der Bedarf an einer Vorrichtung und einem begleitenden Verfahren für das Reduzieren der Rechenkomplexität bei der Bestimmung von Bewegungsvektoren.
  • Die Veröffentlichung "Nonlinear Pyramids for Object Identification" von C.A. Segall et al der Oklahoma State University, präsentiert an der Asilomar Conference on Signals, Systems and Computers, Pacific Grove, Kalifornien, 3.–6. November 1996, eine Untersuchung von Bildpyramiden, die über nichtlineares Filtern und Subsampling bzw. Unterfiltern für die Objektidentifikation konstruiert sind. Zwei nichtlineare Strukturen, eine morphologische Pyramide und eine anistropische Pyramide, werden in grob-zu-fein-Erkennungsalgorithmen verwendet.
  • Die Veröffentlichung "Motion estimation and compensation for image sequence coding" von Q. Wang et al der Heriot-Watt University, veröffentlicht in Signal Processing Image Communication, 4(1992) April, No. 2, Amsterdam, beschreibt einen Überblick und Experimente über pel-rekursive und Blockanpassungsalgorithmen für die Bewegungskompensation.
  • Zusammenfassung der Erfindung
  • Eine Ausführungsform der vorliegenden Erfindung ist eine Vorrichtung und ein Verfahren für das Reduzieren der Berechnungskomplexität bei der Bestimmung von Bewegungsvektoren und für das Verbessern der Genauigkeit der Bewegungsabschätzverfahren. Genauer gesagt zerlegt die vorliegende Erfindung jedes der Einzelbilder in einer Bildsequenz in eine nichtlineare Pyramide. Eine hierarchische Bewegungsvektorsuche wird dann auf der nichtlinearen Pyramide durchgeführt.
  • Kurze Beschreibung der Figuren
  • Die Lehren der vorliegenden Erfindung können leicht nachvollzogen werden durch Betrachten der folgenden detaillierten Beschreibung in Verbindung mit den begleitenden Zeichnungen, in denen:
  • 1 ein Blockdiagramm des Codierers der vorliegenden Erfindung darstellt für das Reduzieren der Rechenkomplexität bei der Bestimmung von Bewegungsvektoren,
  • 2 stellt ein Flußdiagramm eines Verfahrens dar für das Reduzieren der Rechenkomplexität bei der Bestimmung von Bewegungsvektoren für die Blockbasierte Bewegungsabschätzung,
  • 3 stellt ein Flußdiagramm eines Verfahrens für das Konstruieren einer nichtlinearen Pyramide dar,
  • 4 stellt ein Blockdiagramm des Anwendens einer Filteroperation auf einem Bild dar unter Verwendung eines 3 × 3 Median Kerns,
  • 5 stellt ein Blockdiagramm des Dezimierungsprozesses auf einem Bild dar, um ein Bild mit niedrigerer Auflösung zu erzeugen,
  • 6 stellt ein Blockdiagramm eines Codiersystems der vorliegenden Erfindung dar, und
  • 7 stellt ein Blockdiagramm des Anwendens einer Filteroperation auf einem Bild unter Verwendung eines 5 × 5 Median Kerns dar.
  • Um das Verständnis zu erleichtern, wurden identische Bezugszahlen verwendet, wo dies möglich war, um identische Elemente, die in mehreren Figuren enthalten sind, zu bezeichnen.
  • Detaillierte Beschreibung
  • 1 stellt ein Blockdiagramm der Vorrichtung 100 der vorliegenden Erfindung dar für das Reduzieren der Berechnungskomplexität bei der Bestimmung von Bewegungsvektoren, z.B. wie sie in einer blockbasierten hierarchischen Bewegungsabschätzung verwendet werden. Die bevorzugte Ausführungsform der vorliegenden Erfindung wird unten unter Verwendung eines Codierers beschrieben, es versteht sich jedoch, daß die vorliegende Erfindung an das Bildverarbeitungssystem im Allgemeinen angepaßt werden kann. Weiterhin kann die vorliegende Erfindung bei Codierern eingesetzt werden, die in Übereinstimmung mit verschiedenen Codierstandards sind. Diese Standards bzw. Normen beinhalten, sind jedoch nicht hierauf begrenzt, die Moving Picture Experts Group Standards (z.B. MPEG-1 (11172-*) und MPEG-2 (13818-*), H.261 und H.263.
  • Die Vorrichtung 100 ist ein Codierer oder ein Abschnitt eines komplexeren blockbasierten bewegungskompensierten Codiersystems. Die Vorrichtung 100 weist ein Bewegungsschätzmodul 140, ein Bewegungskompensationsmodul 150, ein optionales Segmentierungsmodul 150, ein Vorverarbeitungsmodul 120, ein Geschwindigkeitssteuermodul 130, ein Transformationsmodul (z.B. ein DCT Modul) 160, ein Quantisierungsmodul 170, ein Codierer (z.B. ein variables Längencodiermodul) 180, einen Puffer 190, ein inverses Quantisierungsmodul 175, ein inverses Transformationsmodul (z.B. ein inverses DCT Modul) 165, einen Subtrahierer 115 und einen Summierer 155 auf. Obgleich der Codierer eine Mehrzahl von Modulen aufweist, versteht der Fachmann, daß die Funktionen, die von den verschiedenen Modulen durchgeführt werden, nicht in separaten Modulen isoliert sein müssen, wie in 1 gezeigt ist. Der Satz von Modulen, der das Bewegungskompensationsmodul 150, das inverse Quantisierungsmodul 175 und das inverse DCT Modul 165 aufweist, ist allgemein als "eingebetteter Decoder" bekannt.
  • 1 stellt ein Eingangsbild (Bildsequenz) auf dem Pfad 110 dar, das digitalisiert wird und repräsentiert wird als ein Luminanz- und Zweifarbdifferenzsignale (Y, Cr, Cb) in Übereinstimmung mit den MPEG-Normen. Diese Signale werden erweitert unterteilt in eine Mehrzahl von Schichten bzw. Layern, so daß jedes Bild (Einzelbild) durch eine Mehrzahl von Makroblöcken repräsentiert wird. Jeder Makroblock weist Vier (4) Luminanzblöcke, einen Cr Block und einen Cb Block auf, wobei ein Block als eine Acht (8) mal Acht (8) Abfrageanordnung festgelegt ist. Die Aufteilung eines Bildes in Blockeinheiten verbessert die Fähigkeit Änderungen zwischen zwei aufeinanderfolgenden Bildern zu unterscheiden und verbessert die Bildkomprimierung durch die Eliminierung von kleinen amplitudentransformierten Koeffizienten (unten erörtert). Die folgende Beschreibung verwendet die MPEG Standardterminologie, es versteht sich jedoch, daß der Begriff Makroblock oder Block dafür vorgesehen ist, ein Block aus Pixeln irgendeiner Größe oder Form zu beschreiben, der für die Basis der Codierung verwendet wird. Allgemein gesprochen könnte ein "Makroblock" so klein wie ein einzelnes Pixel sein oder so groß wie ein gesamtes Videoeinzelbild.
  • In der bevorzugten Ausführungsform unterliegt das digitalisierte Eingangsbildsignal ein oder mehreren Vorverarbeitungsschritten in dem Vorverarbeitungsmodul 120. Genauer gesagt weist das Vorverarbeitungsmodul 120 einen nichtlinearen Pyramidengenerator 122 auf. Der nichtlineare Pyramidengenerator 122 setzt ein nichtlineares Filter 123 ein, um jedes Einzelbild in eine Mehrzahl von unterschiedlichen Auflösungen zu zerlegen oder zu filtern unter Verwendung eines nichtlinearen Pyramidenkonstruktionsverfahren, um eine "nichtlineare Pyramide" zu erzeugen, wo die unterschiedlichen Auflösungen der nichtlinearen Pyramide in einer hierarchischen Art korreliert sind, wie unten beschrieben wird. In der bevorzugten Ausführungsform wird die nichtlineare Pyramide unten eingesetzt, um einen hierarchischen Bewegungsschätzprozeß zu implementieren.
  • Obgleich die vorliegende Erfindung direkt in Verbindung mit einem Bewegungsschätzprozeß implementiert ist, kann die vorliegende Erfindung angepaßt werden an andere Bildverarbeitungsverfahren. Beispielsweise kann ein optionales Blockklassifizierungsmodul 124 von der Information profitieren, die in der nichtlinearen Pyramide der Auflösungen bereitgestellt wird, um schnell Bereiche (Blöcke) als Bereiche hoher Aktivität oder niedriger Aktivität zu klassifizieren, wodurch die Merkmalserfassung innerhalb jedes Einzelbildes erlaubt wird. Die Merkmalserfassungsinformation kann wiederum verwendet werden, um einen Segmentierungsprozeß innerhalb eines optionalen Segmentierungsmoduls 151 zu unterstützen, Bereiche innerhalb jedes Einzelbildes zu segmentieren (oder einfach zu identifizieren), z.B. den Hintergrund vom Vordergrund, oder ein Objekt von einem anderen Objekt, z.B. verschiedene Merkmale eines menschlichen Gesichtes und dergleichen.
  • In 1 wird das Eingangsbild auf dem Pfad 110 ebenso im Bewegungsschätzmodul 140 empfangen für das Abschätzen von Bewegungsvektoren. Ein Bewegungsvektor ist ein zweidimensionaler Vektor, der von der Bewegungskompensation verwendet wird, um einen Offset-Wert von der Koordinatenposition eines Blockes in dem gegenwärtigen Bild zu den Koordinaten in einem Referenzein zelbild bereitzustellen. Die Verwendung von Bewegungsvektoren verbessert die Bildkomprimierung stark durch Reduzieren der Informationsmenge, die auf einem Kanal übertragen wird, da nur die Veränderungen innerhalb des gegenwärtigen Einzelbildes codiert und transmittiert werden. In der bevorzugten Ausführungsform empfängt das Bewegungsschätzmodul 140 ebenso Informationen von dem Vorverarbeitungsmodul 120, um die Leistung des Bewegungsschätzprozeß zu verbessern.
  • Die Bewegungsvektoren von dem Bewegungsschätzmodul 140 werden von dem Bewegungskompensationsmodul 150 empfangen für das Verbessern der Effizienz der Vorhersage von Abfragewerten. Die Bewegungskompensation beinhaltet eine Vorhersage, die Bewegungsvektoren verwendet, um Offset-Werte vergangene und/oder zukünftige Referenzeinzelbilder bereitzustellen, die vorher codierte Abfragewerte enthalten, und werden verwendet, um den Vorhersagefehler zu bilden. Das Bewegungskompensationsmodul verwendet nämlich das vorher codierte Einzelbild und die Bewegungsvektoren, um eine Abschätzung (bewegungskompensierte Vorhersage oder vorhergesagtes Bild) des gegenwärtigen Einzelbildes auf dem Pfad 152 zu konstruieren. Diese bewegungskompensierte Vorhersage wird über den Subtrahierer 115 von dem Eingangsbild auf dem Pfad 110 in den gegenwärtigen Makroblöcken subtrahiert, um ein Fehlersignal (e) oder einen vorhergesagten Rest auf dem Pfad 153 zu bilden.
  • Das prädiktive Restsignal wird zu einem Transformationsmodul geleitet, z.B. einem DCT-Modul 160. Das DCT-Modul legt dann einen diskreten Kosinus-Vorwärtstransformationsprozeß an jeden Block des prädiktiven Restsignals an, um einen Satz von acht (8) mal acht (8) Blöcken aus DCT-Koeffizienten zu erzeugen. Die diskrete Kosinustransformation ist eine invertierbare, diskrete Orthogonaltransformation, bei der die DCT-Koeffizienten die Amplituden eines Satzes von Kosinusbasisfunktionen darstellen.
  • Der resultierende 8 × 8 Block aus DCT-Koeffizienten wird vom Quantisierungsmodul (Q) 170 empfangen, wo die DCT-Koeffizienten quantisiert werden. Der Prozeß der Quantisierung reduziert die Genauigkeit, mit der die DCT-Koeffizienten dargestellt werden durch Teilen der DCT-Koeffizienten durch einen Satz von Quantisierungswerten oder Skalierung mit geeigneter Rundung, um ganzzahlige Werte zu bilden. Die Quantisierungswerte können einzeln für jeden DCT-Koeffizienten eingestellt werden unter Verwendung von Kriterien basierend auf der Sichtbarkeit der Basisfunktionen (bekannt als visuell gewichtete Quantisierung). Durch Quantisieren der DCT-Koeffizienten mit diesem Wert, werden viele der DCT-Koeffizienten zu Nullen konvertiert, wodurch die Bildkomprimierungseffizienz verbessert wird.
  • Der resultierende 8 × 8 Block von quantisierten DCT-Koeffizienten wird als nächstes von einem Codierer z. B. einem variablen Längen Codiermodul 180, über die Signalverbindung 171 empfangen, wo der zweidimensionale Block aus quantisierten Koeffizienten in einer "Zick Zack"-Ordnung abgetastet wird, um ihn in einen eindimensionales String aus quantisierten DCT-Koeffizienten umzuwan deln. Das variable-Längen-Codiermodul (VLC) 180 codiert dann den String aus quantisierten DCT-Koeffizienten und alle Seiteninformationen für den Makroblock, wie z.B. den Makroblocktyp und die Bewegungsvektoren. Das VLC Modul 180 führt somit den letzten Schritt des Umwandelns des Eingangsbildes in einen gültigen Datenstrom durch.
  • Der Datenstrom wird in einem Puffer empfangen, z.B. ein "First In-First Out" (FIFO) Puffer 190. Eine Konsequenz der Nutzung unterschiedlicher Bildtypen und der variablen Längencodierung ist der, daß die Gesamtbitrate variabel ist. Die Anzahl von Bits, die verwendet werden, um jedes Einzelbild zu codieren, kann nämlich unterschiedlich sein. Somit wird in Anwendungen, die einen Kanal mit fester Geschwindigkeit beinhalten, ein FIFO Puffer verwendet, um den Codiererausgang für das Glätten der Bitrate an den Kanal anzupassen. Das Ausgangssignal auf dem Pfad 195 vom FIFO Puffer 190 ist somit eine komprimierte Darstellung des Eingangsbildes 110, wobei es zu einem Speichermedium oder einem Telekommunikationskanal gesendet wird.
  • Das Geschwindigkeitssteuermodul 130 dient dazu, die Bitrate des Datenstroms, der in den FIFO Puffer 190 eintritt, zu überwachen und einzustellen, um einen Überlauf und Unterlauf auf der Decoderseite (innerhalb eines Empfängers oder einer Zielspeichereinrichtung, nicht gezeigt) nach der Übertragung des Datenstroms zu verhindern. Es wird angenommen, daß ein Kanal mit fester Rate, Bits mit einer konstanten Geschwindigkeit zu einem Eingangspuffer innerhalb des Decoders (nicht gezeigt) transportiert. Bei regelmäßigen Intervallen, die durch die Bitrate bestimmt werden, entfernt der Decoder gleichzeitig alle Bits für das nächste Bild aus seinem Eingangspuffer. Wenn es zu wenige Bits in dem Eingangspuffer gibt, d.h. es wurden noch nicht alle Bits für das nächste Bild erreicht, dann kommt es im Eingangspuffer zu einem Unterlauf, was zu einem Fehler führt. In gleicher Weise, falls es zu viele Bits im Eingangspuffer gibt, d.h. die Kapazität des Eingangspuffers wird überschritten zwischen den Bildstarts, dann kommt es zu einem Überlauf des Eingangspuffer, was zu einem Überlauffehler führt. Es ist somit die Aufgabe des Geschwindigkeitssteuermoduls 130, den Status des Puffers 190 zu überwachen, um die Anzahl von Bits, die von dem Codierer erzeugt werden, zu steuern, wodurch Überlauf- und Unterlaufzustände verhindert werden. Eine Ratensteuermethode kann die Anzahl von Codierbits steuern durch Einstellen der Quantisierungsskalen.
  • Weiterhin wird der resultierende 8 × 8 Block aus quantisierten DCT-Koeffizienten vom Quantisierungsmodul 170, von dem inversen Quantisierungsmodul 175 und dem inversen DCT-Modul 165 über die Signalverbindung 172 empfangen. Kurz gesagt regeneriert der Codierer auf dieser Stufe I-Frames bzw. I-Einzelbilder und die P-Frames bzw. P-Einzelbilder der Bildsequenz durch Decodieren der Daten, so daß sie als Referenzframes für die nachfolgende Codierung verwendet werden.
  • 2 stellt ein Flußdiagramm eines Verfahrens 200 für das Reduzieren der Rechenkomplexität bei der Bestimmung von Bewegungsvektoren für die blockbasierte Bewegungsabschätzung dar. Das Verfahren 200 verbessert nämlich ein blockbasiertes Bewegungsabschätzverfahren durch schnelles Festlegen eines ursprünglichen Suchbereichs, wo eine Übereinstimmung wahrscheinlich gegeben ist.
  • Genauer gesagt startet das Verfahren 200 in Schritt 205 und setzt mit Schritt 210 fort, wo eine nichtlineare Pyramide für jedes Einzelbild in der Bildsequenz erzeugt wird. Das Verfahren der Erzeugung der nichtlinearen Pyramide wird unten in Bezug auf die 35 und 7 beschrieben. Die nichtlineare Pyramide ist ein spezieller Typ einer hierarchischen Pyramide.
  • Sobald die nichtlineare Pyramide erzeugt ist, wird die Bewegungsabschätzung in Schritt 220 auf der nichtlinearen Pyramide durchgeführt, wo die Suche in dem niedrigsten Auslösungslevel der nichtlinearen Pyramide startet. Die Information, die von dieser Suche erhalten wird, wird dann benutzt, um die Suche in der nächst höheren Auflösung der nichtlinearen Pyramide zu verbessern usw. bis zum höchsten Auslösungsniveau. Diese Ausbreitung der Suchinformation stellt ein effizientes und schnelles Verfahren der Durchführung einer Bewegungsabschätzung bereit.
  • Genauer gesagt wird die hierarchische Bewegungsvektorabschätzung rekursiv verwirklicht von einem höheren Niveau (niedrigeres Auflösungslayer) zu einem niedrigeren Niveau (höhere Auflösungslayer) der nichtlinearen Pyramide. Die Rechenkomplexität wird somit signifikant reduziert aufgrund der reduzierten Bildgrößen auf höheren Layern. In der bevorzugten Ausführungsform ist das Übereinstimmungskriterium, das bei der hierarchischen blockbasierten Bewegungsvektorabschätzung verwendet wird:
    Figure 00070001
  • Wobei Il,k(i, j) die Intensität des Pixels am Ort (i, j) innerhalb des Blocks im k-ten Einzelbild auf dem l-ten Level ist und die Verschiebung beträgt (x, y). Somit ist I3,k(i, j) die Intensität des Pixels auf dem Vollauflösungsbild.
  • M ^ und N ^ sind die Höhe und die Breite eines Subblocks auf dem Niveau l. M und N sind die Höhe und die Breite eines Subblocks auf dem Level 3. Es sei bemerkt, daß
    Figure 00070002
    Eine Blockgröße von M ^ × N ^ (M × 2l-3 × N × 2l-3) wird in dem Unterbild beim Niveau l verwendet. Mit dieser Struktur ist die Anzahl von Bewegungsblöcken für alle Unterbilder konstant, da ein Block mit einer Auflösung der selben Position und denselben Objekten bei einer anderen Auflösung entspricht.
  • Die Größe des Blockes variiert weiterhin mit der Auflösung. Ein kleinerer Bewegungsblock korrespondiert zu einer geringeren Auflösung. Der Vorteil dieses variablen Blockgrößenverfahren ist der, daß es die Wichtigkeit von unterschiedlichen Layern geeignet wichtet und die menschliche visuelle Wahrnehmung an verschiedene Frequenzen bei unterschiedlichen Auflösungen anpaßt und Bewegungen für kleine Objekte auf einem höheren Level der Pyramide erfassen kann. Nachdem nichtlineare Pyramiden konstruiert wurden, werden die Bewegungsvektoren auf dem Level 0 als erstes abgeschätzt unter Verwendung einer vollen Suche mit Gleichung (1) und einer Blockgröße von M ^ × N ^. Der Bewegungsvektor, der den kleinsten MADl (x, y) bereitstellt, wird als der grobe Bewegungsvektor auf diesem Level ausgewählt und wird an das nächst niedrigere Level weitergeleitet, so daß es als ein ursprünglicher Vektor für die Bewegungsabschätzung auf diesem Level verwendet wird. Der erfaßte Bewegungsvektor auf dem höheren Niveau wird nämlich zu dem niedrigeren Niveau übertragen und führt den Verfeinerungsschritt auf diesem Niveau. Dieser Bewegungsabschätzprozeß wird einmal mehr bis zum Level 3 wiederholt.
  • Durch die zweimalige Verwendung des Bewegungsvektors auf dem Level l-1 für das Level l als ein Ursprungsvektor, werden die Bewegungsvektoren für das Level l verfeinert durch Verwendung der vollen Suche, jedoch mit einem relativ kleinen Suchbereich. Wenn der Bewegungsvektor auf dem Niveau l-1 durch Vl-1(x–y) dargestellt wird, kann der erfaßte Bewegungsvektor auf dem Level l beschrieben werden als: Vl(x, y) = 2Vl-1(x, y) + ΔVl(δx, δy) l = 1, 2, 3 (2)wobei ΔV(δx, δy) das aktualisierte Inkrement des Bewegungsvektors auf dem Level l ist und ausgedrückt wird durch:
    Figure 00080001
  • Um den Vorhersagefehler zwischen dem ursprünglichen Bild und dem Bewegungskompensierten Bild weiter zu reduzieren, wird die Halbpixelsuche in dem vorgeschlagenen hierarchischen Bewegungsvektorabschätzalgorithmus implementiert. Das Bild mit der Halbpixelauflösung wird erzeugt unter Verwendung der Interpolation von dem Bild mit der Vollpixelauflösung. Die Werte der räumlich interpolierten Pixel werden berechnet unter Verwendung der Interpolationsgleichung, die von MPEG TM4 empfohlen werden. Die Interpolationsgleichung lautet wie folgt: S(x + 0.5, y) = (S(x, y) + S(x + 1, y))/2 S(x, y + 0.5) = (S(x, y) + S(x, y + 1))/2 S(x + 0.5, y + 0.5) = (S(x, y) + S(x + 1, y) + S (x, y + 1) + S(x + 1, y + 1))/4 (4)wobei x, y die ganzzahligen horizontalen und vertikalen Pixelkoordinaten sind und S der Pixelwert ist. Obgleich die vorliegende Erfindung den Bewegungsabschätzprozeß einsetzt, wie in den Gleichungen (1) bis (4) ausgedrückt ist, versteht es sich, daß die vorliegende Erfindung mit anderen Bewegungsschätzverfahren implementiert werden kann. Die Verwendung der nicht linearen Pyramide kann nämlich mit anderen Bewegungsschätzverfahren verwendet werden.
  • 3 stellt ein Flußdiagramm eines Verfahrens 300 für das Konstruieren einer nicht linearen Pyramide dar. Genauer gesagt startet das Verfahren 300 in Schritt 305 und setzt mit Schritt 310 fort, wo die Initialisierung stattfindet. Das Originalbild Xn (n = Auflösungslevel des Ursprungsbildes) wird gleich einem Bild Xk (k = Auflösungslevel der nicht linearen Bildpyramide) eingestellt, welches als höchster Auflösungslevel (Level 0, d.h. k = 0) der nicht linearen Bildpyramide fungiert.
  • In Schritt 320 wendet das Verfahren 300 einen nicht linearen Filter H an das Bild Xk an, wo der Ausgang des nicht linearen Filters H dargestellt wird durch H(Xk). Der nicht lineare Filter wendet eine nicht lineare Funktion (oder Kern bzw. kernel) an, wie z.B. eine 3 × 3 Medianfunktion, eine 5 × 5 Medianfunktion, eine gewichtete Median-1-Funktion und eine gewichtete Median-2-Funktion. Diese Funktionen werden unten in Bezug auf die 4 und 7 beschrieben.
  • Genauer gesagt stellt 4 ein Blockdiagramm des Anwendens einer nicht linearen Filteroperation auf einem Bild 410 dar unter Verwendung eines 3 × 3 Mediankerns, um ein gefiltertes Bild 420 zu erzeugen. In der vorliegenden Erfindung kann der 3 × 3 Mediankern in drei (3) unterschiedlichen Ausführungsformen ausgedrückt werden:
    Figure 00090001
  • In Funktion wird jeder der Pixelwerte 411 im Bild 410 durch einen der obigen 3 × 3 Mediankerne gefiltert, um einen entsprechenden Pixelwert 422 in dem gefilterten Bild 420 zu erzeugen. Das Bild 410 kann das ursprüngliche Eingangsbild oder ein vorher gefiltertes und dezimiertes Bild der nichtlinearen Pyramide sein.
  • Zur Darstellung stellt die Gleichung (5) einen nicht gewichteten 3 × 3 Mediankern dar, d.h. jeder Wert in dem Kern ist gleichgewichtet. Um das gefilterte Pixel X(1,1) 422a (das Pixel ganz oben links) in dem gefilterten Bild 420 zu erzeugen, wird der 3 × 3 Kern (dargestellt durch den Kasten mit der Bezeichnung 412a) an das entsprechende Pixel X(1,1) in dem Bild 410 angewendet, wo der 3 × 3 Kern auf dem Pixel zentriert ist, das gefiltert wird. Mit anderen Worten wird der Wert des gefilterten Pixels X(1,1) 422a bestimmt durch Auswählen des Medianes der neun (9) Werte, die von dem 3 × 3 Mediankern abgedeckt werden. Mit dem 3 × 3 Kern zentriert auf dem Pixel X(1,1), der an der Ecke des Bildes lokalisiert ist, gibt es jedoch nicht genügend Pixelwerte, um die notwendigen neuen Werte bereitzustellen, wie von dem 3 × 3 Kern gefordert wird. Bei solchen "Rand-"pixeln wird das Bild aufgefüllt durch Duplizieren benachbarter "Kanten-"Pixelwerte, um die notwendigen Pixelwerte dem Kern zur Verfügung zu stellen. Diese Kantenauffüllung stellt den Vorteil zur Verfügung des Bewahrens der Information, die an den Kanten des Bildes lokalisiert ist, ohne daß Fehler durch den Filterprozeß eingeführt werden.
  • Beispielsweise wird innerhalb der Box 412a der Pixelwert 3 × 3 dreimal dupliziert und beide Pixelwerte X(2,1) und X(1,2) werden einmal dupliziert. Falls X(1,1) einen Wert 0 hat, X(1,2) einen Wert 100 hat, X(2,1) einen Wert 200 hat und X(2,2) einen Wert 255 hat, dann wird das gefilterte Pixel X(1,1) 422a bestimmt durch Auswählen eines Medians aus der Gruppe von Pixelwerten (0,0,0,0,100,100,200,200,255) was 100 ergibt. Das gefilterte Pixel 422b wird in ähnlicher Weise erzeugt unter Verwendung des 3 × 3 Kerns 412b und das gefilterte Pixel 422c wird erzeugt unter Verwendung des 3 × 3 Kerns 412c usw. um das gesamte gefilterte Bild 420 zu bilden.
  • Alternativ dazu kann der 3 × 3 Mediankern gewichtet sein wie in den Gleichungen (2) und (3) dargestellt. Verschiedene Pixelwerte innerhalb des Kerns werden nämlich gewichtet oder stärker gezählt als andere Pixelwerte. Beispielsweise zeigt Gleichung (6), daß der Pixelwert, der im Kern zentriert ist, dreimal so stark gewertet wird als die umgebenden Pixelwerte. Dieses Gewicht "X" kann als eine Wichtung angesehen werden, wo die entsprechenden Pixelwerte durch das Gewicht X dupliziert werden. Bei Verwendung des gleichen obigen Beispiels, falls ein gewichteter 3 × 3 Median nach Gleichung (6) eingesetzt wird, dann wird das gefilterte Pixel X(1,1) 422a bestimmt durch Auswählen eines Medians aus der Gruppe von Pixelwerten (0,0,0,0,0,0,100,100,200,200,255), was in diesem Fall 0 sein wird. Der Kern wichtet oder zählt den zentralen Pixelwert X(1,1) dreimal, wodurch zwei zusätzliche "0"-werte der Gruppe aus Pixelwerten zugefügt wird.
  • In ähnlicher Weise zeigt Gleichung (7), daß andere Pixelwerte in dem Kern ebenso gewichtet werden können. Aus dem zentralen Pixelwert, der dreimal gewichtet wird, werden nämlich die Pixelwerte, die direkt oberhalb, unterhalb, links und rechts des zentralen Pixelwertes liegen, zweimal mehr als die verbleibenden umgebenden Pixelwerte gewichtet. Erneut unter Verwendung des gleichen obigen Beispiels, falls ein gewichteter 3 × 3 Median nach Gleichung (7) eingesetzt wird, dann wird das gefilterte Pixel X(1,1) 422a bestimmt durch Auswählen eines Medians aus der Gruppe von Pixelwerten (0,0,0,0,0,0,0,0,100,100,100,200,200,200,255), was in diesem Fall ebenso 0 sein wird.
  • Es versteht sich, daß andere gewichtete 3 × 3 Mediankerne in der vorliegenden Erfindung eingesetzt werden können. Die Auswahl eines bestimmten gewichteten Mediankerns wird jedoch häufig von der Anwendung und/oder dem Inhalt in den Bildern vorgegeben.
  • Alternativ dazu zeigt 7 ein Blockdiagramm des Anwendens einer nichtlinearen Filteroperation auf ein Bild 710 unter Verwendung eines 5 × 5 Mediankerns, um ein gefiltertes Bild 720 zu erzeugen.
  • In der vorliegenden Erfindung kann der 5 × 5 Mediankern ausgedrückt werden als:
    Figure 00110001
  • Im Betrieb wird jeder der Pixelwerte 711 in dem Bild 710 von einem der obigen 5 × 5 Mediankerne gefiltert, um einen korrespondierenden Pixelwert 722 in dem gefilterten Bild 720 zu erzeugen. Das Bild 710 kann das ursprüngliche Eingangsbild oder ein vorher gefiltertes und dezimiertes Bild der nicht linearen Pyramide sein.
  • Zur Veranschaulichung stellt Gleichung (8) einen nicht gewichteten 5 × 5 Mediankern dar, d.h. jeder Wert in dem Kern wird gleichgewichtet. Um das gefilterte Pixel X(1,1) 722a ( das Pixel ganz oben links) in dem gefilterten Bild 720 zu erzeugen, wird der 5 × 5 Kern (dargestellt durch den Kasten mit der Bezeichnung 712a) an das entsprechende X(1,1) in dem Bild 710 angewendet, wobei der 5 × 5 Kern auf dem Pixel, das gefiltert wird, zentriert ist. Mit anderen Worten wird der Wert des gefilterten Pixels X(1,1) 722a bestimmt durch Auswählen des Medians der fünfundzwanzig (25) Werte, die von dem 5 × 5 Mediankern abgedeckt werden. Erneut gibt es, wenn der 5 × 5 Kern auf dem Pixel X(1,1) zentriert ist, das an der Ecke des Bildes lokalisiert ist, nicht genügend Pixelwerte, um die notwendigen fünfundzwanzig Werte bereitzustellen, wie sie von dem 5 × 5 Kern gefordert werden. Bei solchen "Rand-"pixeln, wird das Bild aufgefüllt durch Duplizieren benachbarter "Kanten-"pixelwerte, um die notwendigen Pixelwerte dem Kern bereitzustellen, wie in 7 gezeigt ist.
  • Beispielsweise wird innerhalb der Box 712a der Pixelwert X(1,1) achtmal dupliziert und die Pixelwerte X(2,1), X(3,1), X(1,2) und X(1,3) jeweils zweimal dupliziert. Falls X(1,1) einen Wert 0 hat, X(1,2) einen Wert 50 hat, X(1,3) einen Wert 100 hat, X(2,1) einen Wert 75 hat, X(3,1) einen Wert 125 hat, X(2,2) einen Wert 200 hat, X(3,1) einen Wert 255 hat, X(2,3) einen Wert 255 hat und X(3,3) einen Wert 255 hat, dann wird das gefilterte Pixel X(1,1) 722a bestimmt durch Auswählen eines Medians aus der Gruppe von Pixelwerten (0,0,0,0,0,0,0,0,0,50,50,50,75,75,75,100,100,100,125,125,125,200,255,255,255), was 75 sein wird. Das gefilterte Pixel 722b wird in ähnlicher Weise erzeugt unter Verwendung des 5 × 5 Kerns 712b und das gefilterte Pixel 722c wird erzeugt unter Verwendung des 5 × 5 Kerns 712c usw., um das gesamte gefilterte Bild 720 zu bilden.
  • In gleicher Weise wie die 3 × 3 gewichteten Mediankerne kann der 5 × 5 Kern mit Gewichten implementiert werden.
  • Zurück in 3 dezimiert in Schritt 330 das Verfahren 300 das gefilterte Bild in beiden Richtungen (horizontal und vertikal) um einen vorher festgelegten Faktor, um ein Bild X(k–1) mit niedrigerer Auflösung für die nichtlineare Pyramide zu erzeugen. 5 stellt ein Blockdiagramm dieses Dezimierungsprozesses auf einem Bild dar, um ein Bild mit niedrigerer Auflösung zu erzeugen. Ein Bild, z.B. das gefilterte Bild 510 wird nämlich reduziert in ein Bild 520 mit niedrigerer Auflösung durch selektives Entfernen von Pixeln aus dem gefilterten Bild. In der bevorzugten Ausführungsform wird der Dezimierungsfaktor auf einen Wert zwei (2) in beiden Richtungen gesetzt, wobei jedes zweite Pixel (horizontal und vertikal) verworfen wird, um das Bild X(k–1) 520 mit niedrigerer Auflösung zu bilden. Genauer gesagt werden die Pixel 512a, 512d und 512e beibehalten, um die entsprechenden Pixel 522a, 522c bzw. 522b zu bilden in dem Bild 520 mit niedrigerer Auflösung. Die Pixel 512b und 512c werden dem Dezimierungsprozeß verworfen, der fortgesetzt wird, bis das Bild 520 mit niedrigerer Auflösung vollständig gebildet ist. Obgleich die vorliegende Erfindung einen Dezimierungsfaktor von zwei einsetzt, versteht es sich, daß andere Dezimierungsfaktorwerte in der vorliegenden Erfindung eingesetzt werden können.
  • In Schritt 340 fragt das Verfahren 300 ab, ob zusätzliche Level für die nichtlineare Pyramide zu erzeugen sind. Falls die Abfrage bestätigend beantwortet wird, dann kehrt das Verfahren 300 zu Schritt 320 zurück, wo die Filter- und Dezimierungsschritte wiederholt werden, um das Bild Xk–2 mit der nächst niedrigeren Auflösung zu erzeugen usw. Falls die Abfrage negativ beantwortet wird, dann setzt das Verfahren 300 mit Schritt 350 fort und endet. In der bevorzugten Ausführungsform wird eine nichtlineare Pyramide für jedes Eingangsbild erzeugt, wobei die nichtlineare Pyramide vier Auflösungslevels (Levels 0-3) hat. Es versteht sich jedoch, daß die nichtlineare Pyramide mit irgendeiner Anzahl von Auflösungslevels und/oder unter Verwendung von anderen Dezimierungsfaktoren außer "2" erzeugt werden kann. Allgemein kann die nichtlineare Pyramide in Übereinstimmung mit der Anforderung einer bestimmten Anwendung oder der Spezifikationen des Eingangsbildes, z.B. des, z.B. der Größe des Bildes, dem Inhalt des Bildes usw. erzeugt werden. Beispielsweise kann ein größeres Eingangsbild eine größere nicht lineare Pyramide erfordern.
  • 6 stellt ein Blockdiagramm eines Codiersystems 600 der vorliegenden Erfindung dar. Das Codiersystem weist einen Allzweckcomputer 610 und verschiedene Eingabe/Ausgabegeräte 620 auf. Der Allzweckcomputer weist eine zentrale Verarbeitungseinheit (CPU) 612, einen Speicher 614 und einen Codierer 616 für das Empfangen und Codieren einer Sequenz von Bildern auf.
  • In der bevorzugten Ausführungsform ist der Codierer 616 der Codierer 100 wie oben erörtert. Der Codierer 616 kann ein physikalisches Gerät sein, das mit der CPU 612 über einen Kommunikationskanal verbunden ist. Alternativ dazu kann der Codierer 616 durch eine Softwareanwendung (oder eine Kombination aus einer Softwareanwendung und Hardware, z.B. über einen Anwendungsspezifischen Schaltkreis (ASIC)) dargestellt werden, wobei die Softwareanwendung von einer Speichervorrichtung geladen wird, z.B. einer magnetischen oder optischen Platte, und im Speicher 612 des Computers residiert. Die CPU 612 dient dazu, die Softwareanwendung, die im Speicher 614 residiert, auszuführen. Im Grunde genommen kann der Codierer 100 der vorliegenden Erfindung auf einem computerlesbaren Medium gespeichert sein.
  • Der Computer 610 kann mit einer Mehrzahl von Eingabe- und Ausgabegeräten 620, wie z.B. einer Tastatur, einer Maus, einer Kamera, einem Camcorder, einem Videomonitor, irgendeiner Anzahl von Abbildungsgeräten oder Speichergeräten einschließlich jedoch nicht begrenzt auf ein Bandlaufwerk, ein Diskettenlaufwerk, ein Festplattenlaufwerk oder ein CD-Laufwerk sein, sein. Die Eingabegeräte dienen dazu, Eingaben dem Computer zur Verfügung zu stellen für das Erzeugen der codierten Videobitströme oder um die Abfolge von Videobildern von einer Speichervorrichtung oder einer abbildenden Vorrichtung zu empfangen. Schließlich ist eine Kommunikationskanal 630 gezeigt, über den das codierte Signal von dem Codiersystem zu einem Decodiersystem (nicht gezeigt) weitergeleitet wird.
  • Obgleich verschiedene Ausführungsformen, die die Lehren der vorliegenden Erfindung beinhalten, gezeigt und im Detail hier beschrieben wurden, können Fachleute leicht viele andere variierte Ausführungsformen ableiten, die diese Lehren immer noch beinhalten.

Claims (9)

  1. Verfahren zum Durchführen einer Datenkomprimierung einer Videobildsequenz, wobei jedes Einzelbild in der Videobildsequenz in Blöcke unterteilt wird, wobei das Verfahren die Schritte aufweist: (a) Zerlegen jedes Einzelbildes innerhalb der Bildsequenz in eine nicht-lineare Pyramide und (b) Durchführen einer hierarchischen Bewegungsabschätzung auf der nicht-linearen Pyramide, um einen Bewegungsvektor für einen Block in dem gegenwärtigen Einzelbild relativ zu einer Position des Blockes in einem Referenzeinzelbild abzuschätzen.
  2. Verfahren nach Anspruch 1, bei dem der Zerlegungsschritt (a) die Schritte aufweist: (a') Anlegen eines nicht-linearen Filters an das Bild, um ein gefiltertes Bild zu erzeugen, und (a'') Dezimieren des gefilterten Bildes, um ein Bild mit niedrigerer Auflösung der nichtlinearen Pyramide zu erzeugen.
  3. Verfahren nach Anspruch 2, bei dem das Anwenden von Schritt (a'') den Schritt des Anwendens eines Medianfilters an das Bild aufweist.
  4. Verfahren nach Anspruch 3, bei dem der Medianfilter ein 3 × 3 Medianfilter ist.
  5. Verfahren nach Anspruch 3, bei dem der 3 × 3 Medianfilter ein gewichteter Filter ist.
  6. Verfahren nach Anspruch 1, bei dem Schritt (a) aufweist: (a') Einstellen des Bildes als das Bild höchster Auflösung der nicht-linearen Pyramide, (a'') Anwenden eines Medianfilters an das Bild, um ein gefiltertes Bild zu erzeugen, und (a''') Dezimieren des gefilterten Bildes, um ein Bild mit niedrigerer Auflösung der nichtlinearen Pyramide zu erzeugen.
  7. Verfahren nach Anspruch 6, bei dem der Medianfilter ein 3 × 3 Medianfilter ist.
  8. Verfahren nach Anspruch 6, bei dem Medianfilter ein 5 × 5 Medianfilter ist.
  9. Vorrichtung, die derart konfiguriert ist, daß sie die Datenkompression einer Videobildsequenz durchführt, wobei jedes Einzelbild in der Videobildsequenz in Blöcke unterteilt wird, wobei die Vorrichtung aufweist: Einrichtungen für das Zerlegen jedes Einzelbildes innerhalb der Bildsequenz in eine nichtlineare Pyramide und eine Einrichtung für das Durchführen einer hierarchischen Bewegungsabschätzung auf der nicht-linearen Pyramide, um einen Bewegungsvektor für einen Block in dem gegenwärtigen Einzelbild relativ zu einer Position des Blockes in einem Referenzeinzelbild abzuschätzen.
DE69836696T 1997-05-30 1998-05-29 Verfahren und vorrichtung zur durchführung einer hierarchischen bewegungsschätzung unter verwendung einer nicht-linearen pyramide Expired - Lifetime DE69836696T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US4818197P 1997-05-30 1997-05-30
US48181P 1997-05-30
PCT/US1998/010956 WO1998054888A2 (en) 1997-05-30 1998-05-29 Method and apparatus for performing hierarchical motion estimation using nonlinear pyramid

Publications (2)

Publication Number Publication Date
DE69836696D1 DE69836696D1 (de) 2007-02-01
DE69836696T2 true DE69836696T2 (de) 2007-10-31

Family

ID=21953149

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69836696T Expired - Lifetime DE69836696T2 (de) 1997-05-30 1998-05-29 Verfahren und vorrichtung zur durchführung einer hierarchischen bewegungsschätzung unter verwendung einer nicht-linearen pyramide

Country Status (6)

Country Link
US (1) US6148027A (de)
EP (1) EP1138152B8 (de)
JP (1) JP2002507339A (de)
KR (1) KR100563552B1 (de)
DE (1) DE69836696T2 (de)
WO (1) WO1998054888A2 (de)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6332002B1 (en) * 1997-11-01 2001-12-18 Lg Electronics Inc. Motion prediction apparatus and method
KR100273980B1 (ko) * 1998-02-20 2000-12-15 윤종용 차등 펄스 부호 변조를 위한 부조합 평균 중점 예측기
US6983018B1 (en) * 1998-11-30 2006-01-03 Microsoft Corporation Efficient motion vector coding for video compression
US8429699B2 (en) * 1999-12-14 2013-04-23 Arturo A. Rodriguez Systems and methods for resource-adaptive processing of scaled video and graphics
US6594397B1 (en) * 2000-03-03 2003-07-15 Tektronix, Inc. Adaptive multi-modal motion estimation for video compression
US6782052B2 (en) 2001-03-16 2004-08-24 Sharp Laboratories Of America, Inc. Reference frame prediction and block mode prediction for fast motion searching in advanced video coding
KR100408294B1 (ko) * 2001-09-05 2003-12-01 삼성전자주식회사 저전송율 동영상 부호화에 적합한 움직임 추정 방법
US7274857B2 (en) 2001-12-31 2007-09-25 Scientific-Atlanta, Inc. Trick modes for compressed video streams
US7248741B2 (en) * 2002-01-09 2007-07-24 Hiroshi Akimoto Video sequences correlation and static analysis and scene changing forecasting in motion estimation
US7020201B2 (en) * 2002-11-20 2006-03-28 National Chiao Tung University Method and apparatus for motion estimation with all binary representation
US7212571B2 (en) * 2003-01-31 2007-05-01 Seiko Epson Corporation Method and apparatus for DCT domain filtering for block based encoding
US7382937B2 (en) * 2003-03-07 2008-06-03 Hewlett-Packard Development Company, L.P. Method and apparatus for re-constructing high-resolution images
US20040252762A1 (en) * 2003-06-16 2004-12-16 Pai R. Lakshmikanth System, method, and apparatus for reducing memory and bandwidth requirements in decoder system
US20050013498A1 (en) 2003-07-18 2005-01-20 Microsoft Corporation Coding of motion vector information
US8064520B2 (en) 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
US7567617B2 (en) 2003-09-07 2009-07-28 Microsoft Corporation Predicting motion vectors for fields of forward-predicted interlaced video frames
US7724827B2 (en) 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7966642B2 (en) * 2003-09-15 2011-06-21 Nair Ajith N Resource-adaptive management of video storage
US7394856B2 (en) * 2003-09-19 2008-07-01 Seiko Epson Corporation Adaptive video prefilter
KR20070026451A (ko) * 2004-03-10 2007-03-08 신드하라 슈퍼미디어, 인코포레이티드 모션 예측을 사용하여 디지털 이미지 데이터를 압축하는방법 및 장치
US8600217B2 (en) * 2004-07-14 2013-12-03 Arturo A. Rodriguez System and method for improving quality of displayed picture during trick modes
KR100606140B1 (ko) * 2004-11-09 2006-08-01 (주)씨앤에스 테크놀로지 적응적 모드 결정에 의한 움직임 예측방법
JP4708819B2 (ja) * 2005-03-14 2011-06-22 キヤノン株式会社 画像処理装置、方法、コンピュータプログラム及び記憶媒体
JP4779435B2 (ja) * 2005-05-17 2011-09-28 ソニー株式会社 画像処理装置、および画像処理方法、並びにコンピュータ・プログラム
JP4991758B2 (ja) * 2006-01-09 2012-08-01 エルジー エレクトロニクス インコーポレイティド 映像信号のエンコーディング/デコーディング方法
JP4785678B2 (ja) * 2006-09-01 2011-10-05 キヤノン株式会社 画像符号化装置および画像符号化方法
US8300696B2 (en) * 2008-07-25 2012-10-30 Cisco Technology, Inc. Transcoding for systems operating under plural video coding specifications
US8542732B1 (en) * 2008-12-23 2013-09-24 Elemental Technologies, Inc. Video encoder using GPU
BRPI1008081A2 (pt) * 2009-02-06 2017-10-17 Thomson Licensing metodos e aparelho para sinalizacao intra-modal implicita e semi-implicita para codificadores e desodificadores de video
US8774267B2 (en) * 2010-07-07 2014-07-08 Spinella Ip Holdings, Inc. System and method for transmission, processing, and rendering of stereoscopic and multi-view images
WO2013059504A1 (en) * 2011-10-21 2013-04-25 Dolby Laboratories Licensing Corporation Hierarchical motion estimation for video compression and motion analysis
US9998750B2 (en) 2013-03-15 2018-06-12 Cisco Technology, Inc. Systems and methods for guided conversion of video from a first to a second compression format
KR102138368B1 (ko) 2013-07-19 2020-07-27 삼성전자주식회사 적응적 샘플링에 기초한 계층적 움직임 예측 방법 및 움직임 예측 장치
US9305362B1 (en) * 2014-02-28 2016-04-05 Xilinx, Inc. Image stabilization

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8429879D0 (en) * 1984-11-27 1985-01-03 Rca Corp Signal processing apparatus
EP0624035A1 (de) * 1987-04-28 1994-11-09 Mitsubishi Denki Kabushiki Kaisha System zur Bildcodierung und -decodierung
US5241395A (en) * 1989-08-07 1993-08-31 Bell Communications Research, Inc. Adaptive transform coding using variable block size
US5014134A (en) * 1989-09-11 1991-05-07 Aware, Inc. Image compression method and apparatus
FR2663178B1 (fr) * 1990-06-06 1995-07-21 Thomson Csf Procede d'estimation hierarchique du mouvement dans une sequence d'images.
SE469866B (sv) * 1991-04-12 1993-09-27 Dv Sweden Ab Metod för estimering av rörelseinnehåll i videosignaler
US5315670A (en) * 1991-11-12 1994-05-24 General Electric Company Digital data compression system including zerotree coefficient coding
DE69312132T2 (de) * 1992-03-17 1998-01-15 Sony Corp Bildkompressionsgerät
US5598514A (en) * 1993-08-09 1997-01-28 C-Cube Microsystems Structure and method for a multistandard video encoder/decoder
US5717789A (en) * 1993-09-08 1998-02-10 California Institute Of Technology Image enhancement by non-linear extrapolation in frequency space
AU1727495A (en) * 1994-01-14 1995-08-01 Houston Advanced Research Center Boundary-spline-wavelet compression for video images
JPH07212761A (ja) * 1994-01-17 1995-08-11 Toshiba Corp 階層符号化装置及び階層復号化装置
US5867602A (en) * 1994-09-21 1999-02-02 Ricoh Corporation Reversible wavelet transform and embedded codestream manipulation
US5796855A (en) * 1995-10-05 1998-08-18 Microsoft Corporation Polygon block matching method

Also Published As

Publication number Publication date
EP1138152B8 (de) 2007-02-14
EP1138152A2 (de) 2001-10-04
WO1998054888A3 (en) 2000-01-06
WO1998054888A2 (en) 1998-12-03
US6148027A (en) 2000-11-14
EP1138152B1 (de) 2006-12-20
EP1138152A4 (de) 2002-05-22
JP2002507339A (ja) 2002-03-05
DE69836696D1 (de) 2007-02-01
KR20010013198A (ko) 2001-02-26
KR100563552B1 (ko) 2006-03-27

Similar Documents

Publication Publication Date Title
DE69836696T2 (de) Verfahren und vorrichtung zur durchführung einer hierarchischen bewegungsschätzung unter verwendung einer nicht-linearen pyramide
DE69837003T2 (de) Vorrichtung und verfahren zur optimierung der bitratensteurung in einem kodiersystem
DE602004004379T2 (de) Verfahren und einrichtungen zur codierung und decodierung einer bildsequenz mittels bewegungs-/texturzerlegung und wavelet-codierung
DE69633129T2 (de) Waveletbaum-bildcoder mit überlappenden bildblöcken
DE69627982T2 (de) Signaladaptives Nachverarbeitungssystem um Blockierungseffekte und Ringstörungen zu verringern
DE69826155T2 (de) Verfahren und Vorrichtung zur digitalen Videosignalfilterung und -kodierung
DE69929430T2 (de) Verfahren und vorrichtung zur codierung von video-information
DE69735028T2 (de) Videokodierungs- und Videodekodierungsvorrichtung
DE69830802T2 (de) Zuweisung von rechenleistung in einem informationsstrom-dekoder
DE69628935T2 (de) Vorrichtung und verfahren zur optimierung der bitratensteuerung in einem codierungssystem
US5818964A (en) Method and apparatus for selecting an adaptive filter for image data
DE60310800T2 (de) Approximierter Kubikfilter
DE602004002455T2 (de) Bewegungsvektorschätzung durch adaptive zeitliche Vorhersage
DE4343211B4 (de) Adaptives Bildkompressionsverfahren und adaptive Bildkompressionsvorrichtung
DE69635369T2 (de) Videokodierungsvorrichtung
DE3837590A1 (de) Verfahren zum reduzieren der datenrate von digitalen bilddaten
DE60022018T2 (de) Verfahren und vorichtung zur bewegungsvektorfeldkodierung
DE112005000033T5 (de) Adaptiv gewichtetes Bewegungsabschätzungsverfahren und Bildwechselfrequenz-Wandlereinrichtung, die das Verfahren einsetzt
DE602004001993T2 (de) Transformations basiertes restbewegungsrahmen kodierungsverfahren mit übervollständiger basis und zugehörige vorrichtung zur videokompression
Deever et al. What's your sign?: Efficient sign coding for embedded wavelet image coding
EP1499114A2 (de) Rauschverminderungsvorrichtung
DE60315125T2 (de) Auf Bewegungskompensation basierendes Verfahren und Vorrichtung zur Rauschabschätzung
EP1025704B1 (de) Verfahren zur bewegungskompensierenden prädiktion von bewegtbildfolgen
DE10022520A1 (de) Verfahren zur örtlichen skalierbaren Bewegtbildcodierung
DE60210757T2 (de) Vorrichtung zur videokodierung und -aufzeichnung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition