DE69813911T2 - VERFAHREN ZUR BESTIMMUNG VON BEWEGUNGSVEKTORFELDERN MIT LOKALER BEWEGUNGSSCHäTZUNG - Google Patents

VERFAHREN ZUR BESTIMMUNG VON BEWEGUNGSVEKTORFELDERN MIT LOKALER BEWEGUNGSSCHäTZUNG Download PDF

Info

Publication number
DE69813911T2
DE69813911T2 DE69813911T DE69813911T DE69813911T2 DE 69813911 T2 DE69813911 T2 DE 69813911T2 DE 69813911 T DE69813911 T DE 69813911T DE 69813911 T DE69813911 T DE 69813911T DE 69813911 T2 DE69813911 T2 DE 69813911T2
Authority
DE
Germany
Prior art keywords
image
data
local
motion vectors
motion vector
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
DE69813911T
Other languages
English (en)
Other versions
DE69813911D1 (de
Inventor
Wai Yau HUI
Lye Hong OH
Jean-Michel Bard
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.)
STMicroelectronics Asia Pacific Pte Ltd
Original Assignee
STMicroelectronics Asia Pacific Pte Ltd
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 STMicroelectronics Asia Pacific Pte Ltd filed Critical STMicroelectronics Asia Pacific Pte Ltd
Publication of DE69813911D1 publication Critical patent/DE69813911D1/de
Application granted granted Critical
Publication of DE69813911T2 publication Critical patent/DE69813911T2/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf ein Verfahren und eine Vorrichtung zum Codieren von bewegten Bildsequenzen. Insbesondere bezieht sich die vorliegende Erfindung auf ein Verfahren und eine Vorrichtung für eine Bewegungsschätzung und eine Bewegungskompensation in einem Videosignalkompressionssystem.
  • Ausgangspunkt
  • Verfahren zum Kodieren von bewegten Bildern oder Video wie zum Beispiel die MPEG1, MPEG2, N.261 und H.263 Standards wurden für eine effiziente Übertragung und Speicherung entwickelt. Eine detaillierte Beschreibung von einem solchen Codierverfahren ist im MPEG2 Testmodell 5, ISO/IEC JTC1/SC29/WG11/N0400, April 1993 zu finden. Bei dem beschriebenen Co-dierverfahren wird eine Eingangsvideosequenz organisiert in eine Sequenzschicht, Gruppen von Bildern (GOP = Group-Of-Pictures), Bilder, Scheiben bzw. Abschnitte, Makroblöcke und schlussendlich eine Blockschicht. Jedes Bild ist gemäß seines bestimmten Bildcodiertyps codiert. Die Bildcodiertypen bzw. -arten, die verwendet werden, umfassen ein intracodiertes Bild (I-Bild (I-picture = intra-coded-picture)), vorhergesagt-codiertes Bild (P-Bild (P-picture = predictive-coded picture)), und bi-direktional vorhergesagt-codiertes Bild (B-Bild (B-picture = bi-directionally predictive-coded picture)).
  • Eine Bewegungsschätzung/Kompensation, eine Transformationscodierung und eine statistische Codierung werden verwendet, um die Eingangsvideosequenz effizient zu komprimieren. Z. B. wird bei dem MPEG2 Testmodell 5 jedes Bild von der Eingangsvideosequenz in Reihen bzw. Zeilen kleinerer und nichtüberlappender Makroblöcke der Bildelemente (Pixel) partitioniert. Makroblöcke in jeder Zeile bzw. Reihe können in eine oder mehrere Scheiben bzw. Abschnitte gruppiert werden. Die Kompression wird an jedem Makroblock auf einer Reihe-zu-Reihe Basis durchgeführt und zwar ausgehend von dem am weitesten links liegenden Makroblock zu dem am weitesten rechts liegenden Makroblock und der obersten Reihe zur untersten Reihe.
  • Bei dem Bewegungsschätz-/Kompensationsverfahren werden Bewegungsvektoren für jeden Makroblock in einem Bild detektiert. Der Codiermodus für einen Makroblock (z. B. intracodiert, vorwärts-vorhergesagt, nach hintenvorhergesagt, oder interpoliert) wird ausgesucht, basierend auf den detektierten Bewegungsvektoren und dem bestimmten Bildcodiertyp. Die verwendeten Bewegungsvektoren werden mit Codes mit variabler Länge differenziell codiert vor der Ausgabe.
  • Ein typischer Bewegungsvektor-Entscheidungsprozess weist das Bestimmen für jeden zu codierenden Makroblock eines Suchfensters auf, bestehend aus Pixeln aus einem Bezugsbild und Zusammenpassen bzw. Abgleichen von Pixelwerten des Makroblocks zu Blöcken von Pixelwerten, die sich aus dem Suchfenster ergeben. Dieser Vorgang ist als sehr rechenintensiv bekannt. Insbesondere besitzt die Größe des Suchfensters einen direkten Einfluss auf die Berechnungsbelastung.
  • Viele Verfahren zum Abgleichen der Pixelblöcke sind verfügbar, wie beispielsweise ein abschließendes Suchverfahren, welches jeden definierbaren Block innerhalb des Suchfensters vergleicht, einem logarithmischen Suchverfahren, einer hierarchischen Suche und unterschiedlichen anderen möglichen Abwandlungen. In Abhängigkeit von den Anwendungsanforderungen kann ein Suchverfahren ausgewählt werden, basierend auf dessen Leistung hinsichtlich Genauigkeit und Rechenkomplexität.
  • Um für Sequenzen vorzusorgen, welche große Objektbewegungen zwischen den Bildern besitzen, bestehen Verfahren zum Erhöhen des Suchbereichs ohne Vergrößerung des Suchfensters. Diese Verfahren sehen Bewegungsvektoren mit größerer Genauigkeit für Bildsequenzen mit großen Bewegungen ohne einen großen Anstieg der Rechenleistung vor. Ein solches Verfahren ist das Teleskop-Suchverfahren, bei dem die Bewegungsvektoren von Makro blöcken aus einem zuvor codierten oder angepassten Bild verwendet werden, um ein neues Suchfenster für jeden derzeitigen Makroblock zu erzeugen. Das Teleskop-Suchverfahren weist die Schritte des Erhaltens eines Bewegungsvektors aus einem an derselben Stelle liegenden Makroblock von einem nächstkommenden codierten Bild auf; das optionale Skalieren des erhaltenen Bewegungsvektors gemäß den Bildabständen zwischen dem Bezugsbild, dem am nächsten liegenden codierten Bild und dem derzeitigen Bild; und das Definieren des Suchfensters basierend auf der Mittelposition des derzeitigen Makroblocks plus einer Versetzung, die durch den skalierten Bewegungsvektor definiert ist, vor.
  • Alternative Verfahren zum Bestimmen des Suchfensters sind in den US-Patenten 5,473,379 und 5,657,087 offenbart. Die darin beschriebenen Verfahren weisen die Schritte des Berechnens eines globalen Bewegungsvektors basierend auf den Bewegungsvektoren eines vorhergehenden Bildes und das Versetzen der Suchfenster für alle Makroblöcke durch den berechneten globalen Bewegungsvektor vor. Der globale Bewegungsvektor kann bestimmt werden durch die Mittel- oder Medianfunktion, oder durch den gebräuchlichsten Bewegungsvektor des vorhergehenden Bildes; er kann ferner normalisiert werden gemäß den Bildabständen. Der berechnete globale Bewegungsvektor kann als eine globale Translationsbewegung von Objekten von einem Bild zu dem anderen dargestellt werden.
  • Eine Vorrichtung welche die Bewegungsschätzung implementiert, kann eine Sucheinheit bzw. Suchmaschine (search engine) umfassen zum Durchführen des Vergleichs der derzeitigen Makroblockpixel mit Kandidatpixelblöcken von dem Suchfenster. Eine beispielhafte Implementierung einer geeigneten Sucheinheit ist ein systolischer Vektorrechner bzw. -prozessor, der die Summe der absoluten Differenz des derzeitigen Makroblocks mit allen Kandidatblöcken berechnet und vergleicht. Ein Suchfenster Cache ist mit der Sucheinheit gekoppelt, um die große Eingangsdatenbandbreitenanforderung der Sucheinheit zu erhalten bzw. aufrecht zu erhalten. Der Suchfenster Cache wird über ein DMA mit dem neuen Suchfenster für jeden Makroblock auf den neuesten Stand gebracht und zwar von einem langsameren aber größeren Frame- bzw. Bildspeicher, in dem das Bezugsbild gespeichert ist. Ein programmierbarer oder eine feste Funktion aufweisender Controller mit einem notwendigen RAM oder ROM wird verwendet, um die Suchfenster zu bestimmen, den DMA Update des Cache mit dem Suchfenster zu steuern, sowie um die Sucheinheit für resultierende Bewegungsvektoren zu überwachen.
  • Um die Bandbreite zwischen dem Cache und Rahmenspeicher zu minimieren, ist der Suchfenster Cache so aufgebaut, dass der überlappende Bereich von einem Suchfenster und dem nächsten maximiert ist. Während eine Reihe von Makroblöcken von links nach rechts verarbeitet wird, wird jeweils nur der am meisten rechts liegende Teil des Suchfensters für jeden Makroblock in den Suchfenster Cache geladen.
  • In einigen Fällen kann die Größe der Bildbewegung von einem Rahmen bzw. Frame zum nächsten Frame sehr groß sein, insbesondere wenn das Referenzbild um zwei oder mehr Frames in der Sequenz von dem Ausgangsbild beabstandet ist. Jedoch würde das Erhöhen der Größe des Suchfensters für eine bessere Anpassung der großen Bewegungsgröße die Implementierungskomplexität und den Leistungsverbrauch eskalieren lassen.
  • Das zuvor genannte Teleskop-Suchverfahren expandiert den möglichen Suchbereich durch Neudefinition der Suchfensteranordnung für jeden Makroblock. Dieses Verfahren besitzt Probleme in Bildregionen mit unkorrelierter Bewegung, bei denen das Suchfenster vergrößert werden muss, um die nicht korrekt definierte Suchfensteranordnung in Betracht zu ziehen. Hinsichtlich der Implementierung erhöht der expandierte mögliche Suchbereich die Anforderung hinsichtlich der Suchfenster Cachegröße und auch die Bandbreitenanforderungen zwischen dem Suchfenster Cache und dem Frame Speicher. Dies ist der Fall, da der Suchfenster Cache Daten von allen möglichen Orten des Suchfensters für den nächsten Makroblock speichern muss.
  • Verfahren, welche den globalen Bewegungsvektor verwenden, wie in den US-Patenten 5,473,379 und 5,657,087 beschrieben sind, können verwendet werden zum Minimieren der Suchfenster Cachegröße sowie der Bandbreitenanforderungen des Frame Speichers, während der tatsächliche Suchbereich ausgedehnt wird. Diese Verfahren fixieren den Versatz des Suchfensters für alle Makroblöcke in einem Bild. Da jedoch nur ein einzelner globaler Bewegungsvektor verwendet wird, um alle Makroblocksuchfenster zu versetzen, arbeitet die Suchbereichsausdehnung nur mit Bildern gut, welche eine gleichförmige Translationsbewegung enthalten. Bilder mit Zoomen, Rotationsbewegung und Share-Effekten können z. B. nicht gut mit dieser Technik gehandhabt werden.
  • Schlussendlich werden alle detektierten und verwendeten Bewegungsvektoren differenziell codiert mit Codes mit variabler Länge (VLC = variable length codes) zum Reduzieren der Codierbitrate. Das Expandieren bzw. Ausdehnen des Suchbereichs kann größere Bewegungsvektoren erzeugen, welche größere VLC-Tabellen erfordern, welche auf dem Bildniveau ausgewählt werden zum Codieren der Bewegungsvektoren. Dies führt wiederum dazu, dass die Bitrate für die Bewegungsvektorcodierung erhöht wird.
  • JP 09 163380 beschreibt eine Bildcodiervorrichtung und ein Bewegungsvektor-Detektierverfahren.
  • Die Erfindung
  • Gemäß der vorliegenden Erfindung ist ein Verfahren zum Bestimmen von Bewegungsvektoren für das Codieren von Bilddaten in einer Sequenz von Bildern gemäß Anspruch 1 vorgesehen.
  • Die vorliegende Erfindung sieht auch einen Codierer für bewegte Bilder zum Codieren einer Sequenz von Bildern wie im Anspruch 13 beansprucht vor.
  • Ein Ausführungsbeispiel der vorliegenden Erfindung verwendet einen lokalen Bewegungsschätzer, der einen lokalen Bewegungsvektor für jede Reihe von Makroblocks in einem zu codierenden Bild bestimmt. Der lokale Bewegungsschätzer kann die lokalen Bewegungsvektoren bestimmen, basierend auf detektierten Bewegungsvektoren von den entsprechenden Makroblockreihen eines zuvor verarbeiteten oder codierten Bildes. Jeder bestimmte lokale Bewegungsvektor sieht eine Versetzung für Suchfenster aller Makroblöcke in einer vorgegebenen Reihe vor. Die lokalen Bewegungsvektoren passen sich besser an Bewegungsvariationen innerhalb eines Bildes an und ermöglichen eine Expansion des effektiven Suchbereichs des Bewegungsschätzers ohne ein Vergrößerung der Suchfenstergröße.
  • Bei dem bevorzugten Ausführungsbeispiel definiert jeder lokale Bewegungsvektor einen festgelegten Versatz für alle Suchfenster innerhalb einer Makroblockreihe, und daher bleiben die Größen des Lachens bzw. Zwischenspeicherns und das auf den neuesten Standbringen bzw. des Updatens des Lache von einem Makroblock zum nächsten innerhalb der Reihe konstant unter der Voraussetzung, dass die Suchfenstergröße auch festgelegt ist. Dies ist besonders vorteilhaft, da die Cachegröße sowie die Bandbreitenanforderungen zum auf den neuesten Standbringen des Lache an diesem Punkt am höchsten sind. Infolge der reduzierten Suchfenstergrößen für Makroblöcke in der Nähe der am meisten links und rechts liegenden Seiten der Reihe werden die Caching bzw. Zwischenspeicheranforderungen und die Bandbreitenanforderungen für das auf den neuesten Standbringen des Lache im Mittel reduziert, wenn sich der Schätzvorgang von einer Makroblockreihe zur nächsten bewegt. Daher können die Cachegröße und die Bandbreitenanforderungen zum auf den neuesten Standbringen des Lache optimiert werden, basierend nur auf der Suchfenstergröße selbst.
  • Zusätzlich kann ein maximaler Versatzvektor mit dem bestimmten Satz von lokalen Bewegungsvektoren für ein zu codierendes Bild bestimmt werden. Der maximale Versatzvektor kann das Maximum der Absolutwerte der Horizontalund Vertikalkomponenten von dem Satz von lokalen Bewegungsvektoren sein. Durch Kombinieren des maximalen Versatzvektors und der Suchfenstergröße wird die maximal mögliche Bewegungsvektorgröße bestimmt, und daher kann eine entsprechende VLC-Tabelle zum Codieren von Bewegungsvektoren für das Bild ausgewählt werden. In diesem Fall kann die Auswahl der VLC-Tabellen, welche für unterschiedliche maximale mögliche Bewegungsvektoren optimiert sind, adaptiv gemacht werden und zwar gemäß der Bewegungsgröße von Bild zu Bild.
  • Ein Bildsequenzcodierer gemäß einem Ausführungsbeispiel der vorliegenden Erfindung codiert jedes Eingangsbild durch Bestimmen seines Bildcodiertyps (I-, P-, oder B-Bild), Erhalten von Makroblöcken von dem Bild, Aussetzen der Makroblöcke eines P-Bildes oder B-Bildes einem Bewegungsvektordetektierprozess (Frame und/oder Feld vorwärts und/oder rückwärts) unter Verwendung eines lokalen Bewegungsschätzers, Durchführen der notwendigen Bewegungskompensation (vorhergesagt (predicted) oder interpoliert) unter Verwendung der detektierten Bewegungsvektoren aller Makroblöcke an einen Transformationscodierer gefolgt durch einen statistischen Codierer. Der lokale Bewegungsschätzer wird auf den neuesten Stand gebracht mit Bewegungsvektoren von den zuletzt bearbeiteten Bildern durch den Bewegungsvektordetektor. Die Bewegungsvektoren werden verwendet zum Erzeugen eines lokalen Bewegungsvektors für jede Reihe von Makroblöcken in einem neuen zu codierenden Bild. Die erzeugten lokalen Bewegungsvektoren werden verwendet zum Versetzen von Suchfenstern von allen Makroblöcken in der entsprechenden Makroblockreihe.
  • Ausführungsbeispiele der vorliegenden Erfindung sind in der Lage, ein verbessertes Bildsequenzcodierverfahren oder eine Vorrichtung vorzusehen, welche einen Bewegungsschätzer mit einem ausgedehnten Suchbereich und einem minimierten Suchfenster enthält. Ferner können Ausführungsbeispiele der Erfindung eine Vorrichtung zum Codieren einer Bildsequenz vorsehen, die einen Bewegungsschätzer umfasst mit optimierter Suchfenster Cachegröße und optimierten Framezwischenspeicher (frame buffer memory)-Bandbreitenanforderungen. Die zuvor beschriebenen Ausführungsbeispiele der Erfindung ermöglichen ein effizientes Verfahren für die Bewegungsvektorencodierung.
  • Kurze Beschreibung der Zeichnungen
  • Die Erfindung wird in größerer Einzelheit nachfolgend anhand eines Beispiels durch die folgende Beschreibung bevorzugter Ausführungsbeispiele derselben und unter Bezugnahme auf die Zeichnungen beschrieben, in den Zeichnungen zeigt:
  • 1 ein Funktionsblockdiagramm eines Videocodierers mit einem lokalen Bewegungsschätzer gemäß einem Ausführungsbeispiel der vorliegenden Erfindung:
  • 2 eine Vorwärts- und Rückwärtsbewegungsvektordetektierung für B-Bilder und P-Bilder gemäß der vorliegenden Erfindung;
  • 3 eine Illustration darüber, wie ein Suchfenster durch einen lokalen Bewegungsvektor innerhalb eines Referenzbildes definiert wird, und zwar gemäß der vorliegenden Erfindung; und
  • 4 ein Blockdiagramm einer Schaltung zum Implementieren des Bewegungsvektordetektors und des lokalen Bewegungsschätzers als Teil einer Codiersystemvorrichtung für bewegte Bilder gemäß einem Ausführungsbeispiel der vorliegenden Erfindung.
  • Detaillierte Beschreibung der bevorzugten Ausführungsbeispiele
  • Ein Blockdiagramm eines Bildsequenzcodierers gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung ist in 1 dargestellt. Eine Bewegbildsequenz, die die Form eines Videosignals besitzen kann, wird in einen Framebuffer bzw. Rahmenzwischenspeicher (A) 101 für Neuordnungsund Prozessanforderungen (z. B. Raster zu Makroblockumwandlung) eingegeben. Die Bewegbildsequenz kann vor der Eingabe vorprozessiert sein. Nützliche Vorprozessiertechniken können eine Rauschreduktion, eine Inversete lecine- bzw. Fernsehfilmbearbeitung, und eine Chroma- bzw. (Farb-) Tonunterabtastung umfassen.
  • Ein Bildcodiertyp (I-, P- oder B-Bild) wird bestimmt unter Verwendung bekannter Verfahren entsprechend den Anwendungsnotwendigkeiten für jedes Bild in der Eingangsbildsequenz. Ein I-Bild ist ein intracodiertes Bild, das hauptsächlich für einen freien Zugriff oder ein auf den neuesten Standbringen einer Szene verwendet wird, ein P-Bild verwendet eine nach vorne gerichtete Bewegungsvorhersagecodierung mit Bezugnahme auf ein zuvor codiertes I-oder P-Bild (Ankerbild), und ein B-Bild verwendet eine vorwärts gerichtete und nach hinten gerichtete Bewegungsvorhersage/Interpolationscodierung mit Bezugnahme auf zuvor codierte I- und/oder P-Bilder. Eine Eingangsbildsequenz kann entweder eine feld- oder rahmen- bzw. framestrukturierte Sequenz sein, die von einer Zwischenzeilen- bzw. einer Teilbild- oder einer fortschreitenden Quelle stammt. Makroblöcke, die Blöcke von Pixelwerten enthalten, werden von einem zu codierenden Bild abgeleitet, und zwar von Bilddaten, die in dem Framebuffer bzw. Bildspeicher (A) 101 gespeichert sind. Die Makroblöcke werden auf einer Reihen-auf Reihenbasis abgeleitet und zwar beginnend mit dem am Weitesten links liegenden Makroblock zu dem am Weitesten rechts liegenden Makroblock und von der obersten Reihe zu der untersten Reihe. Makroblöcke, die zu einem I-Bild gehören, werden direkt zu einem Transformationscodierer 105 weitergeleitet, während Makroblöcke, die zu einem P-Bild oder B-Bild gehören, zu einem Bewegungsvektordetektor 102 weitergeleitet werden. Es ist auch möglich, die Makroblöcke, die zu einem I-Bild gehören, dem Bewegungsvektordetektor 102 auszusetzen zur Erzeugung von Fehlerverdeckungsbewegungsvektoren, wie es in dem MPEG 2 Standard definiert ist.
  • Alle notwendigen Bewegungsvektoren, z. B. die Frame und/oder Feld, vorwärts und/oder rückwärts und 16 × 16/16 × 8/8 × 8 Bewegungsvektoren jedes Makroblocks werden durch den Bewegungsvektordetektor 102 detektiert durch Anpassen bzw. Angleichen des Makroblocks an Kandidatblöcke, die aus einem Suchfenster erhalten werden, das von einem Referenzbild erhalten wird, das in einem Framebuffer bzw. Bildspeicher (B) 103 gespeichert ist. Unterschiedliche Anpassungsverfahren, wie z. B. das umfassende Suchverfahren, das logarithmische Suchverfahren, das Mehrschritt- oder hierarchische Suchverfahren und unterschiedliche Suchfenstergrößen können in dem Bewegungsvektordetektor 102 verwendet werden, abhängig von der Anwendung sowie den Implementierungserfordernissen. Anpassungsverfahren können auch mit unterschiedlichen Pixelauflösungen implementiert werden, z. B. ganzzahlig, Halbpixel- oder Viertelpixelauflösung. Das Anpassungskriterium kann basieren auf dem Minimum der absoluten Fehler, dem Quadrat der Fehler, oder anderen geeigneten Verzerrungsfunktionen. Zusätzlich können Verfahren zum Überprüfen benachbarter Makroblockbewegungsvektorkorrelationen verwendet werden. Einzelheiten unterschiedlich beschriebener Anpassungsverfahren und Anpassungskriterien welche in Verbindung mit den Ausführungsbeispielen der vorliegenden Erfindung verwendet werden können, sind bekannt und werden sich dem Fachmann leicht ergeben.
  • Der Bewegungsvektordetektor 102 ist mit einem Bewegungskompensationsprozessor 104 gekoppelt. In dem Bewegungskompensationsprozess 104 wird zunächst ein Makroblockcodiermodus, der intracodiert, Frame/Feld vorwärts/rückwärts vorhergesagt, oder Frame/Feld interpoliert sein kann, ausgewählt für jeden Makroblock basierend auf den detektierten Bewegungsvektoren von dem Bewegungsvektordetektor 102. Jegliche notwendigen Schätzfehler werden dann basierend auf dem ausgewählten Makroblockcodiermodus erzeugt. Ein beispielhaftes Makroblockcodiermodus-Entscheidungsverfahren ist in den MPEG 2 Testmodell 5 Spezifikationen zu finden.
  • Die sich ergebenden Makroblöcke von dem Bewegungskompensationsprozess 104 werden einem Transformationscodierer 105 ausgesetzt, welcher eine Korrelation innerhalb jedes Makroblocks und auch seine psychovisuellen Effekte ausnutzt bzw. verwertet. Beispiele von populären Transformationscodierern sind in den MPEG 1, MPEG 2, N.261 und H.263 Standards zu finden. Ein Ausführungsbeispiel eines Transformationscodierers 105 gemäß dem MPEG2 Testmodell 5 umfasst eine diskrete Kosinustransformation (DCT), ei nen Quantisierer, einen Ratencontroller mit adaptiver Quantisierung, einen Inversquantisierer und eine Invers-DCT. Der Transformationscodierer 105 erzeugt transformierte und quantisierte Koeffizienten für jeden Makroblock welche einem statistischen Codierer 106 ausgesetzt werden. Zusätzlich werden die transformierten und quantisierten Koeffizienten invers quantifiziert und invers transformiert durch den Transformationscodierer 105, um rekonstruierte Makroblöcke zu produzieren. Vor dem Speichern der rekonstruierten Makroblöcke in den Framebuffer bzw. Bildspeicher (B) 103 für zukünftige Bezugnahme wird jegliche notwendige Invers- oder Bewegungskompensation für jeden rekonstruierten Makroblock vorgesehen durch den Bewegungskompensationsprozess 104. Bezugsbilder werden gebildet durch die rekonstruierten Makroblöcke zur Verwendung in dem Bewegungsvektordetektor 102 und dem Bewegungskompensationsprozess 104. In einigen Anwendungen oder Codierfällen können die Eingangsbilder direkt als Bezugs- oder Referenzbilder für den Bewegungsvektordetektor 102 genommen werden.
  • Der statistische Codierer 106 verwertet alle statistischen Redundanzen in den empfangenen Daten bzw. nutzt diese aus und multiplext die Ergebnisse zum Erzeugen des schlussendlichen, komprimierten Ausgangsbitstromes. Als ein Beispiel verwendet der statistische Codierer 106 in dem MPEG2 Testmodell 5 das Zick-Zack-Scannen und Lauflängencodieren der transformierten und quantifizierten Koeffizienten, das Differentialcodieren der verwendeten Bewegungsvektoren und das Multiplexen aller Ergebnisse und notwendiger Seiteninformation (z. B. Sequenz/GOP/Bild/Slice bzw. Schnitt/Makroblockschicht, Headerinformation, Bildcodiertypen, Makroblockcodiermodii, usw.). Der statistische Codierer 106 verwendet Codes mit variabler Länge (VLC = variable length codes) von VLC Tabellen 110.
  • Ein lokaler Bewegungsschätzer 107 bestimmt einen lokalen Bewegungsvektor für jeden Reihe von Makroblöcken aus einem Eingangsbild. Bei einem Ausführungsbeispiel des lokalen Bewegungsschätzers 107 werden Bewegungsvektoren von derselben Makroblockreihe eines Bildes, wie sie durch den Bewegungsvektordetektor 102 detektiert wurden, Bemittelt zum Erzeugen des lokalen Bewegungsvektors für die entsprechende Makroblockreihe eines neuen Eingangsbildes. Alternativ kann der Medianbewegungsvektor oder der am häufigsten vorkommende Vektor ausgewählt werden statt des durchschnittlichen, um als lokaler Bewegungsvektor ausgegeben zu werden. Weitere Verfahren zum Erzeugen des lokalen Bewegungsvektors jeder Makroblockreihe gemäß der vorliegenden Erfindung sind möglich mit Bewegungsvektoren von benachbarten (oberen oder unteren oder zusätzlichen Nachbarbild) Makroblockreihen oder mit unabhängigen Reihenbewegungsdetektoren; es kann aber nur einen geringen oder überhaupt keinen Implementierungsvorteil hierfür geben. Jeder erzeugte lokale Bewegungsvektor kann gemäß den involvierten Bildabständen normalisiert werden.
  • 2 illustriert ein Beispiel wie lokale Bewegungsvektoren (MV) erzeugt werden können unter Verwendung von Ergebnissen einer vorhergehenden Vorwärts- und/oder Rückwärtsbewegungsvektordetektierung gemäß der vorliegenden Erfindung. Bei diesem Beispiel befinden sich zwei B-Bilder 202 und 203 (B1 bzw. B2) zwischen zwei Anker I oder P-Bildern 201 und 204. Die Bilder sind in ihrer Anzeigereihenfolge gezeigt und repräsentieren einen kleinen Teil einer Eingangsbildsequenz. Eine Vorwärts-MV-Detektierung wird für das Bild 202 (B1), 203 (B2) und 204 (P) durchgeführt, repräsentiert durch B1-Vorwärts 206, B2-Vorwärts 207 bzw. P-Vorwärts 208. In gleicher Weise wird eine Rückwärts-MV-Detektierung durchgeführt für das Bild 202 (B1) und 203 (B2) und eine Vorwärts-MV-Detektierung für das Bild 201 (I/P) bezüglich eines vorhergehenden Referenzbildes, was dargestellt ist durch vorhergehendes I/P-Vorwärts 216. Die Makroblockreihen 211, 212, 213 und 214 repräsentieren Makroblockreihen derselben Vertikalposition oder Reihenzahl in den Bildern 201, 202, 203 bzw. 204.
  • Es ist zu bevorzugen, dass ein lokaler MV für die Verwendung für zukünftige MV-Detektierung erzeugt wird durch Bewegungsvektoren von einem sehr naheliegenden Bild. Z. B. kann ein lokaler MV zur Verwendung in B2-Vorwärts 207 der Makroblockreihe 213 erzeugt werden durch Bewegungsvektoren, die sich aus B1-Vorwärts 206 für die Reihe 212 ergeben. Unter Bezugnahme auf
  • 2 fasst die folgende Tabelle die Auswahl der Bewegungsvektoren für die lokale MV-Erzeugung als eines von vielen möglichen Ausführungsbeispielen des lokalen Bewegungsschätzers gemäß der vorliegenden Erfindung zusammen.
    Lokaler MV zur Verwendung in: mit lokalem MV erzeugt durch MVS ergeben aus:
    B1-Vorwärts 206 vorhergehend I/P-Vorwärts 216 oder vorhergehend B2-Rückwärts 215
    B2-Vorwärts 207 B1-Vorwärts 206
    P-Vorwärts 208 B2-Vorwärts 207
    B2-Rückwärts 209 B2-Vorwärts 207 oder P-Vorwärts 208
    B1-Rückwärts 210 B2-Rückwärts 209 oder B1-Vorwärts 206
  • Die sich ergebenden lokalen Bewegungsvektoren werden in einem lokalen MV-Speicher 108, der in 1 dargestellt ist, gespeichert. Wenn sie verfügbar sind, werden die lokalen Bewegungsvektoren durch den Bewegungsvektordetektor 102 herausgezogen zum Versetzen der Suchfenster der entsprechenden Makroblockreihen. Ein optionaler maximaler Suchbereichsdetektor 109 kann gemäß der vorliegenden Erfindung verwendet werden zum Bestimmen der maximalen horizontalen und vertikalen Suchbereiche aller Bewegungsvektoren eines Bildes, so dass optimale VLCs aus den VLC-Tabellen 110 verwendet werden können zum Codieren von Bewegungsvektoren in dem statistischen Codierer 106. Der maximale Suchbereich, der unabhängig für Horizontal- und Vertikalbewegung definiert wird, ist der maximale Bereich aller lokaler Bewegungsvektoren für ein Bild plus dem maximalen Bereich des Suchfensters für das Bild. Mit dem maximalen Suchbereichsdetektor 109 können kürzere VLCs oder kürzere Bitraten verwendet werden zum Codieren von Bewegungsvektoren für eine Sequenz von Szenen mit geringer Bewegung und die VLCs und VLC-Tabellen werden adaptiv ausgeweitet, wenn die Bewegung innerhalb der Sequenz oder den Szenen größer wird. Die maximale Suchbereichsinformation kann auf der Bildebene codiert oder übertragen wer den. Verfahren für die VLC-Codierung von Bewegungsvektoren sind in dem MPEG2 Standard zu finden.
  • In 3 ist der Vorgang zur Bestimmung eines Suchfensters unter Verwendung eines lokalen MV dargestellt. Ein Suchfenster für einen derzeitigen Makroblock (MB), der codiert werden soll, wird bestimmt aus einem Referenzbild 301 in dem zunächst die Position eine auf gleicher Stelle liegenden MB 302 an dem Referenzbild 301 bestimmt wird. Die Position wird dann durch den lokalen Bewegungsvektor 303, der für die Makroblockreihe erzeugt wurde, versetzt, wobei der derzeitige MV zu einer neuen Versatz-MB-Position 304 gehört, wie dargestellt ist, Schlussendlich werden die horizontalen und vertikalen Suchbereiche eingeschlossen, und zwar zentriert um die Versatz-MB-Position 304 zum Bilden des Suchfensters 305 für den derzeitigen MB. Das Suchfenster 305 wird dann verwendet für die Bewegungsvektordeteküerung für den derzeitigen MB.
  • 4 zeigt ein Blockdiagramm einer Schaltung, die verwendet werden kann zum Implementieren des Bewegungsvektordetektors und des lokalen Bewegungsschätzers als Teil einer Bewegt-Bildcodiersystemvorrichtung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Typischerweise werden das Eingangsbild und das Referenzbild in einem großen Framebuffer bzw. Bildspeicher 405 gespeichert, der implementiert werden kann unter Verwendung eines DRAM (dynamischer Zufallszugriffsspeicherldynamic random access memory). Ein Gontroller 401, der ein Mikroprozessor, ein Digitalsignalprozessor (DSP) oder ein Sequenzen bzw. eine Ablaufsteuerung mit fester Funktion sein kann, wird verwendet zum Steuern eines DMA (Direktspeicherzugriffscontrollerldirect memory access controller) 404 zum Zugreifen auf den Framebuffer bzw, Bildspeicher 405. Instruktionscodes, die für den Controller 401 erforderlich sind, können in einem Instruktions-ROM (nur Lesespeicher/read only memory) 402 gespeichert sein.
  • Ein derzeitiger zu codierender MB wird bestimmt und in eine Sucheinheit bzw. Suchmaschine 407 geladen durch den Controller 401 und DMA 404. Der Controller erhält einen zuvor bestimmten lokalen Bewegungsvektor für die entsprechende Makroblockreihe aus Daten in einem RAM 403. Unter Verwendung des bestimmten lokalen Bewegungsvektors definiert der Controller ein Suchfenster und überträgt die entsprechenden Daten von einem Referenzbild, das indem Framebuffer bzw. Bildspeicher 405 gespeichert ist an ein Suchfenster Cache 406 unter Verwendung des DMA 404. Angenommen, dass ein lokaler Bewegungsvektor für die gesamte Makroblockreihe verwendet wird und die Suchfenstergröße gemäß den Anwendungs- oder Implementierungserfordernissen festgelegt ist, muss für nachfolgende MBs nur ein Teil des definierten Suchfensters in den Suchfenster Cache 406 geladen werden. Der Rest des definierten Suchfensters überlappt mit dem Suchfenster des vorhergehenden MB und ist daher schon in dem Suchfenster Cache 406 gespeichert.
  • Mit dem derzeitigen MB führt die Sucheinheit bzw. Suchmaschine 407 eine Bewegungsvektordetektierung durch, basierend auf den Suchfensterdaten in dem Suchfenster Cache 406. Die Suchmachine 407 kann implementiert sein zur Duchführung spezieller Suchverfahren, wie z. B. das abschließende Suchverfahren oder das mehrschritt-/mehrauflösungshierarchische Suchverfahren oder spezifische Suchkriterien, wie z. B. die Verwendung der minimalen Summe von Quadratfehlern oder absoluten Fehlern. Eine systolische Vektorrechnerarchitektur kann in der Suchmaschine 407 verwendet werden, um die Rechenleistungsanforderungen zu erfüllen. Die Suchmaschine 407 sieht als Ausgabe alle detektierten Bewegungsvektoren für den Controller 401 vor. Zusätzlich werden die Ergebnisse der Suchkritieriumberechnung (minimale Quadratfehler, absolute Fehler usw.) für den Makroblockcodiermodusentscheidungsprozess vorgesehen an dem Ende einer Reihe bestimmter Controller 401 einem lokalen Bewegungsvektor unter Verwendung der Ausgangsbewegungsvektoren für jede Makroblockreihe und speichert den lokalen Bewegungsvektor in den Daten RAM 403 für zukünftige Verwendung.
  • Aus der vorhergehenden Beschreibung ergibt sich, dass Ausführungsbeispiele der vorliegenden Erfindung ein verbessertes Verfahren und eine Vorrichtung für die Bewegungsvektordetektierung vorsehen. Ein lokaler Bewegungsschätzer wird verwendet um besser die Bild-zu-Bildbewegung vorherzusagen, die nicht nur aus einer Translationsbewegung, sondern aus einer Zoom-, einer Share- bzw. Sprung- oder Splitscreen-Bewegung besteht. Die bessere Vorhersage der Bild-zu-Bildbewegung erlaubt die Verwendung kleinerer Suchfenster zum Berechnen individueller Makroblockbewegungsvektoren und ermöglicht daher eine Reduzierung der Rechenlast und der Implementierungskomplexität. Mit einem festgelegten lokalen Bewegungsvektor (fester Versatz) für jede Makroblockreihe kann die Suchfenster Cache Größe minimiert werden auf nur die Suchfenstergröße. Darüber hinaus wird das auf den neuesten Standbringen des Suchfenster Caches auch minimiert und somit ergibt sich eine Reduzierung der Speicherzugriffsbandbreite. Diese Ergebnisse sehen eine zusätzliche Reduzierung der Implementierungskomplexität vor.
  • Die vorliegende Erfindung erlaubt ferner, dass maximale Horizontal- und Vertikal-Bewegungssuchbereiche adpativ bestimmt werden unter Verwendung der lokalen Bewegungsvektoren. Dieses Verfahren sieht einen effizienten Weg zum Codieren von Bewegungsvektoren unter Verwendung von Codes mit variabler Länge vor. Sequenzen oder Szenen mit geringer Bewegung werden besser codiert mit einer Bewegungsvektorbitratenreduzierung während andererseits die Bewegungssektorbitrate erhöht wird, um größere Bewegung innerhalb einer Sequenz oder Szenen zu handhaben.
  • Die vorhergehende detaillierte Beschreibung der Ausführungsbeispiele der vorliegenden Erfindung wurde nur anhand eines Beispiels dargestellt und ist nicht dazu gedacht, die Erfindung, die durch die nachfolgenden Ansprüche definiert wird, einzuschränken.

Claims (19)

  1. Verfahren zum Bestimmen von Bewegungsvektoren (MV) für das Codieren von Bilddaten in einer Bildsequenz, wobei Daten, die ein Bild in der Sequenz repräsentieren, in einer Vielzahl von benachbarten Datenblöcken arrangiert bzw. angeordnet sind, wobei das Verfahren die folgenden Schritte aufweist: (a) Codieren eines Bildes in der Sequenz mit Bewegungsvektoren für die Datenblöcke im Bild; (b) Erzeugen (107) jeweiliger lokaler Bewegungsvektoren (LOKALER MV) für Gruppen von benachbarten Datenblöcken im Bild, wobei ein lokaler Bewegungsvektor (LOKALER MV) für jede Gruppe von Datenblöcken erzeugt wird gemäß den individuellen Bewegungsvektoren der Datenblöcke in der Gruppe; (c) Auswählen eines Datenblocks (MB) eines zu codierenden Objektbildes; (d) Bestimmen eines Fensters von Suchdaten (305) aus einem Referenzbild (301) auf der Basis einer Blockposition (302) innerhalb des Referenzbildes (301), die gleich ist zu der Position des ausgewählten Blocks (MB) innerhalb des Objektbildes, und auf der Basis eines lokalen Bewegungsvektors (303) der erzeugt ist gemäß den Bewegungsvektoren einer Gruppe von Datenblöcken aus einem zuvor codierten Bild; und (e) Vergleichen des ausgewählten Datenblocks mit den Suchdaten aus dem Referenzbild, um einen Bewegungsvektor für den ausgewählten Datenblock zu bestimmen.
  2. Verfahren nach Anspruch 1, das das Wiederholen der Schritte (c), (d) und (e) für jeden Datenblock in einer Gruppe von benachbarten Datenblöcken im Objektbild aufweist.
  3. Verfahren nach Anspruch 2, das einen Schritt (f) zum Erzeugen eines lokalen Bewegungsvektors aus den Bewegungsvektoren der Datenblöcke in der Gruppe aus Datenblöcken im Objektbild aufweist.
  4. Verfahren nach Anspruch 1, 2 oder 3, wobei jede Gruppe von benachbarten Datenblöcken eine Reihe von Makroblöcken für das jeweilige Bild aufweist.
  5. Verfahren nach Anspruch 2, wobei das Fenster von Suchdaten von fester Größe für eine Gruppe von Datenblöcken ist.
  6. Verfahren nach Anspruch 5, wobei der Schritt (e) das Speichern des Fensters von Suchdaten in einem Cache-Speicher umfasst, und wobei jede folgende Iteration des Schritts (e) nach einer Anfangsoperation ein Cachen bzw. Speichern von nur einem Teil der Größe des Suchdatenfensters erfordert.
  7. Verfahren nach Anspruch 3, das das Wiederholen der Schritte (c) bis (f) für jeden Datenblock und Gruppe von Datenblöcken im Objektbild aufweist.
  8. Verfahren nach Anspruch 7, das einen Schritt (g) zum Bestimmen eines maximalen Versatzvektors basierend auf dem Maximum von Absolutwerten von horizontalen und vertikalen Komponenten der lokalen Bewegungsvektoren für das Objektbild und das Auswählen einer Codiertabelle mit variabler Länge für das Codieren der Datenblockbewegungsvektoren für das Objektbild basierend auf dem maximalen Versatzvektor aufweist.
  9. Verfahren nach Anspruch 7, wobei die lokalen Bewegungsvektoren, die aus dem Objektbild erzeugt werden, für das Durchführen des nachfolgenden Schritts (d) verwendet werden, und zwar während des Codierens eines nachfolgenden Bildes in der Sequenz von Bildern.
  10. Verfahren nach Anspruch 1, 2, 3 oder 4, wobei der lokale Bewegungsvektor für eine Gruppe von Datenblöcken einen Durchschnitt oder Mittelwert von Bewegungsvektoren für die Datenblöcke in der Gruppe aufweist.
  11. Verfahren nach Anspruch 1, 2, 3 oder 4, wobei der lokale Bewegungsvektor für eine Gruppe von Datenblöcken einen Medianwert von Bewegungsvektoren für die Datenblöcke in der Gruppe aufweist.
  12. Verfahren nach Anspruch 1, 2, 3 oder 4, wobei der lokale Bewegungsvektor für eine Gruppe von Datenblöcken einen häufigsten Wert für die Bewegungsvektoren für die Datenblöcke in der Gruppe aufweist.
  13. Einen Encodierer für Bewegtbilder zum Codieren einer Sequenz von Bildern, der Folgendes aufweist: – einen Bewegungsvektordetektor (102) gekoppelt für das Empfangen von Bilddaten aus einer Sequenz von Bildern zum Bestimmen von jeweiligen Bewegungsvektoren für Datenblöcke in einem Bild aus der Bildsequenz; – einen Lokalbewegungsschätzer (107) gekoppelt mit dem Bewegungsvektordetektor (102) für das Erzeugen und Speichern von jeweiligen lokalen Bewegungsvektoren (LOKALER MV) für Gruppen von benachbarten Datenblöcken im Bild, wobei ein lokaler Bewegungsvektor (LOKALER MV) für jede Gruppe von Datenblöcken erzeugt wird gemäß den individuellen Bewegungsvektoren der Datenblöcke in der Gruppe; wobei der Bewegungsvektordetektor (102) die Bewegungsvektoren (MV) bestimmt durch: – Auswählen eines Datenblocks (MB) eines zu codierenden Objektbildes; – Bestimmen eines Fensters von Suchdaten (305) aus einem Referenzbild (301) auf der Basis einer Blockposition (302) innerhalb des Referenzbildes (301), die gleich ist zur Position des ausgewählten Blocks (MB) innerhalb des Objektbildes und auf der Basis eines gespeicherten lokalen Bewegungsvektors (303) erzeugt gemäß den Bewegungsvektoren einer Gruppe von Datenblöcken aus einem zuvor codierten Bild; und – Vergleichen des ausgewählten Datenblocks mit den Suchdaten aus dem Referenzbild, um einen Bewegungsvektor für den ausgewählten Datenblock zu bestimmen.
  14. Bewegtbildcodierer nach Anspruch 13, wobei das Referenzbild in einem Rahmenpufferspeicher gespeichert ist und die Suchfensterdaten in einem Suchfenster-Cache-Speicher und wobei der Bewegungsvektordetektor gekoppelt ist zum Steuern der Übertragung von Daten vom Rahmenpufferspeicher zum Suchfenster-Cache-Speicher auf der Basis von gespeicherten lokalen Bewegungsvektoren.
  15. Bewegtbildcodierer nach Anspruch 14, wobei eine Gruppe von benachbarten Datenblöcken, die vom Lokalbewegungsschätzer zum Bestimmen eines lokalen Bewegungsvektors verwendet werden, eine Reihe von Makroblöcken aus einem Bild aufweist.
  16. Bewegtbildcodierer nach Anspruch 13, der weiter einen Transformationscodierer und einen statistischen Codierer aufweist, und zwar unter Verwendung von Codiertabellen mit variabler Länge für das Codieren der Bewegungsvektoren, und einen Maximalvektoranalysator für das Bestimmen einer maximalen Vektorgröße aus den lokalen Bewegungsvektoren für ein Bild und das Bestimmen einer Codiertabelle mit variabler Länge zur Verwendung durch den statistischen Codierer auf der Basis der maximalen Vektorgröße.
  17. Bewegtbildcodierer nach Anspruch 13, wobei der Bewegungsvektordetektor ein Suchfenster-Cache aufweist für das Cachen bzw. Speichern eines ausgewählten Teils des Referenzbildes und eine Suchmaschine für das Vergleichen von Datenblöcken des Objektbildes mit dem Inhalt des Suchfenster-Cache, wobei der Inhalt des Suchfenster-Cache ausgewählt wird gemäß einem lokalen Bewegungsvektor, der aus einem Speicher-Memory für einen lokalen Bewegungsvektor aus einem zuvor codierten Bild in der Bildsequenz herausgezogen wird.
  18. Bewegtbildencodierer nach Anspruch 17, wobei der lokale Bewegungsschätzer einen lokalen Bewegungsvektor für jede Reihe von Makroblöcken in einem Bild erzeugt.
  19. Bewegtbildencodierer nach Anspruch 17 der weiter einen Transformationscodierer und einen statistischen Codierer aufweist, und zwar unter Verwendung von Codiertabellen mit variabler Länge zum Codieren der Bewegungsvektoren, und einen Maximalvektoranalysator zum Bestimmen einer maximalen Vektorgröße aus den lokalen Bewegungsvektoren für ein Bild und für das Auswählen einer Codiertabelle mit variabler Länge zur Verwendung durch den statistischen Codierer auf der Basis der maximalen Vektorgröße.
DE69813911T 1998-10-13 1998-10-13 VERFAHREN ZUR BESTIMMUNG VON BEWEGUNGSVEKTORFELDERN MIT LOKALER BEWEGUNGSSCHäTZUNG Expired - Lifetime DE69813911T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/SG1998/000085 WO2000022833A1 (en) 1998-10-13 1998-10-13 Motion vector detection with local motion estimator

Publications (2)

Publication Number Publication Date
DE69813911D1 DE69813911D1 (de) 2003-05-28
DE69813911T2 true DE69813911T2 (de) 2004-02-05

Family

ID=20429884

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69813911T Expired - Lifetime DE69813911T2 (de) 1998-10-13 1998-10-13 VERFAHREN ZUR BESTIMMUNG VON BEWEGUNGSVEKTORFELDERN MIT LOKALER BEWEGUNGSSCHäTZUNG

Country Status (4)

Country Link
US (1) US6876702B1 (de)
EP (1) EP1119975B1 (de)
DE (1) DE69813911T2 (de)
WO (1) WO2000022833A1 (de)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100905880B1 (ko) * 2001-09-12 2009-07-03 엔엑스피 비 브이 움직임 추정 방법 및 장치와, 인코딩 방법 및 인코더
KR100455119B1 (ko) * 2002-01-26 2004-11-06 엘지전자 주식회사 움직임 벡터 영역의 적응적 결정 방법
SG111093A1 (en) * 2002-11-18 2005-05-30 St Microelectronics Asia Motion vector selection based on a preferred point
US7571287B2 (en) 2003-03-13 2009-08-04 Marvell World Trade Ltd. Multiport memory architecture, devices and systems including the same, and methods of using the same
US20040223084A1 (en) * 2003-05-08 2004-11-11 Stanger Leon J. Methods and apparatus for border processing in video distribution systems
DE602004002455T2 (de) * 2004-04-30 2007-01-11 Matsushita Electric Industrial Co., Ltd., Kadoma Bewegungsvektorschätzung durch adaptive zeitliche Vorhersage
US20050259734A1 (en) * 2004-05-21 2005-11-24 Timothy Hellman Motion vector generator for macroblock adaptive field/frame coded video data
KR100605105B1 (ko) * 2004-05-28 2006-07-26 삼성전자주식회사 영상 보간 장치
US20060159170A1 (en) * 2005-01-19 2006-07-20 Ren-Wei Chiang Method and system for hierarchical search with cache
WO2006103984A1 (ja) * 2005-03-25 2006-10-05 Matsushita Electric Industrial Co., Ltd. 動き検出装置
JP2007088922A (ja) * 2005-09-22 2007-04-05 Sanyo Electric Co Ltd 符号化装置と符号化方法
KR100775104B1 (ko) * 2006-02-27 2007-11-08 삼성전자주식회사 영상 신호의 떨림 보정 장치와 그를 포함하는 영상 시스템및 그 방법
US20070242749A1 (en) * 2006-04-14 2007-10-18 Sung Chih-Ta S Image frame compression of video stream with fast random accessing and decompressing
KR100763917B1 (ko) * 2006-06-21 2007-10-05 삼성전자주식회사 고속으로 움직임을 추정하는 방법 및 장치
JP4763549B2 (ja) * 2006-08-18 2011-08-31 富士通セミコンダクター株式会社 フレーム間予測処理装置、画像符号化装置、及び画像復号化装置
US20080126278A1 (en) * 2006-11-29 2008-05-29 Alexander Bronstein Parallel processing motion estimation for H.264 video codec
WO2008139489A1 (en) * 2007-05-10 2008-11-20 Allgo Embedded Systems Private Limited Dynamic motion vector analysis method
US8127104B1 (en) 2007-08-06 2012-02-28 Marvell International Ltd. Alignment matrix memory copy
US8688947B1 (en) 2007-11-21 2014-04-01 Marvell International Ltd. Aligned data access
US20090207915A1 (en) * 2008-02-15 2009-08-20 Freescale Semiconductor, Inc. Scalable motion search ranges in multiple resolution motion estimation for video compression
US20090238268A1 (en) * 2008-03-20 2009-09-24 Mediatek Inc. Method for video coding
US8131915B1 (en) 2008-04-11 2012-03-06 Marvell Intentional Ltd. Modifying or overwriting data stored in flash memory
US8683085B1 (en) 2008-05-06 2014-03-25 Marvell International Ltd. USB interface configurable for host or device mode
US8055025B2 (en) * 2008-06-14 2011-11-08 City University Of Hong Kong Motion estimation method
US8423710B1 (en) 2009-03-23 2013-04-16 Marvell International Ltd. Sequential writes to flash memory
US8295551B2 (en) * 2009-04-08 2012-10-23 Samsung Electronics Co., Ltd. System and method of adaptive vertical search range tracking for motion estimation in digital video
US8213236B1 (en) 2009-04-21 2012-07-03 Marvell International Ltd. Flash memory
AU2014201817B2 (en) * 2009-06-18 2015-12-10 Kabushiki Kaisha Toshiba Dynamic Image Decoding Device
ES2850074T3 (es) * 2009-06-18 2021-08-25 Toshiba Kk Aparato de decodificación de vídeo y procedimiento de decodificación de vídeo
US9628794B2 (en) 2009-06-18 2017-04-18 Kabushiki Kaisha Toshiba Video encoding apparatus and a video decoding apparatus
US20110109794A1 (en) * 2009-11-06 2011-05-12 Paul Wiercienski Caching structure and apparatus for use in block based video
TW201117135A (en) * 2009-11-12 2011-05-16 Nat Univ Chung Cheng Motion prediction method for multimedia image
US8756394B1 (en) 2010-07-07 2014-06-17 Marvell International Ltd. Multi-dimension memory timing tuner
WO2012070239A1 (ja) * 2010-11-26 2012-05-31 パナソニック株式会社 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置、プログラム、及び集積回路
US9185428B2 (en) 2011-11-04 2015-11-10 Google Technology Holdings LLC Motion vector scaling for non-uniform motion vector grid
US11317101B2 (en) 2012-06-12 2022-04-26 Google Inc. Inter frame candidate selection for a video encoder
US9503746B2 (en) 2012-10-08 2016-11-22 Google Inc. Determine reference motion vectors
US9485515B2 (en) 2013-08-23 2016-11-01 Google Inc. Video coding using reference motion vectors
JP6502485B2 (ja) * 2015-05-21 2019-04-17 オリンパス株式会社 撮像装置
US11461919B2 (en) * 2016-04-21 2022-10-04 Ramot At Tel Aviv University Ltd. Cascaded neural network
US10602174B2 (en) 2016-08-04 2020-03-24 Intel Corporation Lossless pixel compression for random video memory access
US10715818B2 (en) * 2016-08-04 2020-07-14 Intel Corporation Techniques for hardware video encoding
US11025913B2 (en) 2019-03-01 2021-06-01 Intel Corporation Encoding video using palette prediction and intra-block copy
US10855983B2 (en) 2019-06-13 2020-12-01 Intel Corporation Encoding video using two-stage intra search

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2283385B (en) * 1993-10-26 1998-04-01 Sony Uk Ltd Motion compensated video signal processing
US5473379A (en) * 1993-11-04 1995-12-05 At&T Corp. Method and apparatus for improving motion compensation in digital video coding
KR0148154B1 (ko) 1994-06-15 1998-09-15 김광호 움직임크기에 따른 동영상데이타의 부호화방법 및 장치
KR0126871B1 (ko) * 1994-07-30 1997-12-29 심상철 양방향 이동벡터 추정을 위한 고속 블럭정합 방식
JP3803122B2 (ja) * 1995-05-02 2006-08-02 松下電器産業株式会社 画像メモリ装置および動きベクトル検出回路
JPH0955941A (ja) * 1995-08-16 1997-02-25 Sony Corp 画像符号化方法、画像符号化装置、及び画像符号化データの記録装置
JP3994445B2 (ja) 1995-12-05 2007-10-17 ソニー株式会社 動きベクトル検出装置及び動きベクトル検出方法
US5801778A (en) * 1996-05-23 1998-09-01 C-Cube Microsystems, Inc. Video encoding with multi-stage projection motion estimation
JP3019787B2 (ja) 1996-09-20 2000-03-13 日本電気株式会社 動きベクトル検出装置
JP3774954B2 (ja) * 1996-10-30 2006-05-17 株式会社日立製作所 動画像の符号化方法
JPH10262258A (ja) 1997-03-19 1998-09-29 Sony Corp 画像符号化装置及び方法
JP3052893B2 (ja) * 1997-05-16 2000-06-19 日本電気株式会社 動画像符号化装置
US6014181A (en) * 1997-10-13 2000-01-11 Sharp Laboratories Of America, Inc. Adaptive step-size motion estimation based on statistical sum of absolute differences
US6295377B1 (en) * 1998-07-13 2001-09-25 Compaq Computer Corporation Combined spline and block based motion estimation for coding a sequence of video images

Also Published As

Publication number Publication date
US6876702B1 (en) 2005-04-05
WO2000022833A1 (en) 2000-04-20
EP1119975B1 (de) 2003-04-23
DE69813911D1 (de) 2003-05-28
EP1119975A1 (de) 2001-08-01

Similar Documents

Publication Publication Date Title
DE69813911T2 (de) VERFAHREN ZUR BESTIMMUNG VON BEWEGUNGSVEKTORFELDERN MIT LOKALER BEWEGUNGSSCHäTZUNG
US6385248B1 (en) Methods and apparatus for processing luminance and chrominance image data
DE69839100T2 (de) Verbesserte Videokodierung unter Verwendung von adaptiven Blockparametern für kodierte/unkodierte Blöcke
DE60014444T2 (de) Verfahren und vorrichtung zur bewegungsschätzung unter verwendung von nachbarmacroblöcken
DE69738262T2 (de) Videokodierungs- und Videodekodierungsvorrichtung
DE69735402T2 (de) System und Methode zur Bewegungskompensation mit Hilfe eines Schrägziegelspeicherformats für verbesserte Effizienz
DE69629137T2 (de) Bildkodierungsgerät und Bilddekodierungsgerät
DE69635369T2 (de) Videokodierungsvorrichtung
DE69929430T2 (de) Verfahren und vorrichtung zur codierung von video-information
DE69817460T2 (de) Bildsequenzdekodierungsverfahren
DE19702048C2 (de) Skalierbarer Videocodierer gemäß MPEG2-Standard
DE60027955T2 (de) Verfahren und Vorrichtung zur kontextbasierten Inter/Intra Kodierungsmodeauswahl
DE19704439C2 (de) Verfahren und Vorrichtung zur Bewegungsschätzung in einem digitalen Videocodierer unter Verwendung von Trajektorien
US8077769B2 (en) Method of reducing computations in transform and scaling processes in a digital video encoder using a threshold-based approach
DE69816875T2 (de) Sequenzadaptive bit-zuordnung zur codierung von bildern
DE69935564T2 (de) Kodiervorrichtung und -verfahren
US6122321A (en) Methods and apparatus for reducing the complexity of inverse quantization operations
DE69732865T2 (de) Kodierer mit Mitteln zur Ergänzung eines digitalen Bildes mit Bildelementen
DE102005040026A1 (de) Vorrichtung und Verfahren zur Verarbeitung von Video-/Bilddaten
US6148032A (en) Methods and apparatus for reducing the cost of video decoders
EP0776574B1 (de) Verfahren zur decodierung komprimierter video-daten mit reduziertem speicherbedarf
JPH08102953A (ja) 動き画像符号化のための改善された低遅延符号化方法
EP1134981A1 (de) Automatische Bestimmung der optimalen Suchfenstergrösse für Bewegungsschätzung
DE10296787B4 (de) Selektive Prädikation für ein Intra-Codieren eines Videodatenblocks
DE112015001531T5 (de) Datenkodierung und Dekodierung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition