DE69916662T2 - Verfahren und vorrichtung zur bewegungskompensation in einem texturabbildungssystem - Google Patents

Verfahren und vorrichtung zur bewegungskompensation in einem texturabbildungssystem Download PDF

Info

Publication number
DE69916662T2
DE69916662T2 DE69916662T DE69916662T DE69916662T2 DE 69916662 T2 DE69916662 T2 DE 69916662T2 DE 69916662 T DE69916662 T DE 69916662T DE 69916662 T DE69916662 T DE 69916662T DE 69916662 T2 DE69916662 T2 DE 69916662T2
Authority
DE
Germany
Prior art keywords
data
memory
macroblock
pixels
order
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
DE69916662T
Other languages
English (en)
Other versions
DE69916662D1 (de
Inventor
A. Thomas PIAZZA
G. Val COOK
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.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE69916662D1 publication Critical patent/DE69916662D1/de
Application granted granted Critical
Publication of DE69916662T2 publication Critical patent/DE69916662T2/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft das Anzeigen von Grafiken durch elektronische Vorrichtungen bzw. Geräte. Im Besonderen betrifft die vorliegende Erfindung die Bewegtbildkompensation von Grafiken, die durch elektronische Vorrichtungen angezeigt werden.
  • STAND DER TECHNIK
  • Gegenwärtig gibt es verschiedene Standards für die Übermittlung digitaler Audio- und/oder Videodaten. Zum Beispiel entwickelte die Motion Picture Experts Group (MPEG) verschiedene Standards zur Verwendung in Verbindung mit Audio-Videodaten (z. B. MPEG-1, MPEG-2, MPEG-4). Zur Verbesserung der Datenübertragung weisen Audio-Videostandards häufig Komprimierungsschemata auf. Im Besonderen sieht MPEG-2 die Verwendung eines Bewegungsvektors als Teil eines digitalen Videokomprimierungsschemas vor.
  • Im Allgemeinen werden Bewegungsvektoren zur Reduzierung der Menge der erforderlichen Daten für die Übermittlung von Bewegtbildvideo unter Verwendung der Redundanz zwischen Video-Frames verwendet. Der Unterschied zwischen Frames kann übermittelt werden an Stelle konsekutiver vollständiger Frames mit redudanten Daten. Für gewöhnlich werden Bewegungsvektoren für Pixelgruppen von 16 × 16 Datenpixeln bestimmt, die als ein "Makroblock" bezeichnet werden.
  • Bei der digitalen Codierung unter Verwendung der Bewegtbildkompensation kommt ein Suchfenster zum Einsatz oder eine andere Bezugseinrichtung, die größer ist als ein Makroblock, so dass ein Bewegungsvektor erzeugt wird, der auf einen Makroblock zeigt, der am besten mit dem aktuellen Makroblock übereinstimmt. Das Suchfenster ist für gewöhnlich größer als der aktuelle Makroblock. Der resultierende Bewegungsvektor ist mit Daten codiert, die den Makroblock beschreiben.
  • Das Decodieren von Videodaten wird für gewöhnlich unter Verwendung einer Kombination aus Hardware und Software erreicht. Die Bewegtbildkompensation wird für gewöhnlich mit einer dedizierten Bewegtbildkompensations-Schaltkreisanordnung decodiert, welche einen Puffer mit Videodaten bearbeitet, die einen Makroblock darstellen. Dieses Schema führt jedoch zu einem Ruhezustand der Bewegtbildkompensations-Schaltkreisanordnung, wenn ein Videobild bzw. ein Video-Frame durch eine Textur-Mapping-Engine verarbeitet wird, und wobei sich die Texture-Mapping-Engine im Ruhezustand befindet, wenn der Video-Frame durch die Bewegtbildkompensations-Schaltkreisanordnung verarbeitet wird. Diese sequentielle Decodierung von Videodaten führt zu einer ineffizienten Nutzung von Decodierungsressourcen. Die japanischen Patenzusammenfassungen, Band 97, Nummer 08 vom 29. August 1997 (1997-08-29) und JP 09 102047 A, vom 15. April 1997 (1997-04-15) offenbaren eine Bilderzeugungsvorrichtung, die zur Verarbeitung der Bewegtbildkompensation verwendet wird, wobei Referenzbilddaten und differentielle Bilddaten berechnet werden, wobei das Ergebnis in das erzeugte Bild geschrieben wird. Benötigt wird eine verbesserte Methode bzw. ein verbessertes Schema zur Bewegtbildkompensationsdecodierung.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Vorgesehen ist gemäß einem ersten Aspekt der vorliegenden Erfindung ein Verfahren gemäß dem gegenständlichen Anspruch 1.
  • Vorgesehen ist gemäß einem zweiten Aspekt der vorliegenden Erfindung eine Schaltung gemäß dem gegenständlichen Anspruch 6.
  • Beschrieben werden ein Verfahren und eine Vorrichtung zur Bewegtbildkompensation von Grafiken unter Verwendung einer Textur-Mapping-Engine. Empfangen wird ein Befehl, der Bewegtbildkompensationsdaten aufweist, die im Verhältnis zu einem Makroblock stehen. Es werden Decodierungsoperationen für den Makroblock ausgeführt, die Berichtigungsdaten erzeugen. Die Berichtigungsdaten bzw. Korrekturdaten werden in einer Texturpalette in einer ersten Reihenfolge gespeichert, die einer Ausgabe der Decodierungsoperationen entspricht. Als Reaktion auf den Befehl werden Frame-Prädiktionsoperationen ausgeführt. Die Korrekturdaten werden in einer zweiten Reihenfolge aus der Texturpalette ausgelesen. Die Korrekturdaten werden mit den Ergebnissen der Frame-Prädiktionsoperationen kombiniert bzw. verknüpft, um einen Ausgangs-Video-Frame zu erzeugen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung wird beispielhaft und ohne einzuschränken in den Abbildungen der beigefügten Zeichnungen veranschaulicht, wobei ähnliche Elemente in den verschiedenen Abbildungen mit übereinstimmenden Bezugszeichen bezeichnet sind. Es zeigen:
  • 1 ein zur Verwendung in Verbindung mit der vorliegenden Erfindung geeignetes System;
  • 2 ein Blockdiagramm eines MPEG-2-Decodierungsverfahrens, das sich zur Verwendung in Verbindung mit der vorliegenden Erfindung eignet;
  • 3 einen kennzeichnenden Zeitverlauf für die Frame-Zustellung und das Anzeigen von MPEG-2-Frames;
  • 4 drei MPEG-2-Frames;
  • 5 eine konzeptuelle Darstellung von zur Verwendung in Verbindung mit der vorliegenden Erfindung geeigneten Pixeldaten;
  • 6 ein Blockdiagramm der Bestandteile bzw. Komponenten zur Durchführung einer Bewegtbildkompensation und des Textur-Mapping gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 7 Luminanz-Korrekturdaten für einen Makroblock aus 16 Pixeln × 16 Pixeln; und
  • 8 ein Blockdiagramm einer Hardware-Software-Schnittstelle für die Bewegtbildkompensationsdecodierung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung.
  • GENAUE BESCHREIBUNG
  • Beschrieben werden ein Verfahren und eine Vorrichtung zur Bewegtbildkompensation von Grafiken unter Verwendung einer Textur-Mapping-Engine. In der folgenden Beschreibung sind zum Zwecke der Erläuterung zahlreiche spezifische Einzelheiten ausgeführt, um ein umfassendes Verständnis der vorliegenden Erfindung zu vermitteln. Für den Fachmann auf dem Gebiet ist es jedoch ersichtlich, dass die Erfindung auch ohne die spezifischen Einzelheiten ausgeführt werden kann. In anderen Fällen sind Strukturen und Vorrichtungen in Blockdiagrammform dargestellt, um eine Verschleierung der vorliegenden Erfindung zu verhindern.
  • Wenn in der Patentschrift auf "ein Ausführungsbeispiel" verwiesen wird, so bedeutet dies, dass ein bestimmtes Merkmal, eine Struktur oder eine Eigenschaft, das bzw. die in Bezug auf das Ausführungsbeispiel beschrieben wird, in mindestens einem Ausführungsbeispiel der vorliegenden Erfindung vorgesehen ist. Die Vorkommnisse der Phrase "in einem Ausführungsbeispiel" an verschiedenen Stellen in der Patentschrift beziehen sich nicht unbedingt alle auf ein und dasselbe Ausführungsbeispiel.
  • Im Allgemeinen sieht die vorliegende Erfindung eine Bewegtbildkompensation vor, indem ein Bild dadurch rekonstruiert wird, dass die Pixelfarben aus einem oder mehreren Referenzbildern prädiziert bzw. vorhergesehen werden. Die Prädiktion kann nach vorne, nach hinten oder bidirektional gerichtet sein, Die hierin beschriebene Architektur ist für die Wiederverwendung von Textur-Mapping-Hardwarekomponenten vorgesehen, um die Bewegtbildkompensation digitaler Videodaten zu erreichen. Bounding-Boxes bzw. Begrenzungskästchen und Flanken- bzw. Kantentests werden so modifiziert, dass vollständige Makroblöcke für die Bewegtbildkompensation verarbeitet werden. Zusätzlich werden Pixeldaten in einer ersten Reihenfolge in eine Texturpalette geschrieben, und zwar auf der Basis der Ergebnisse einer Inverse Discrete Cosine Transformation (IDCT), und wobei die Daten gemäß einer zweiten Reihenfolge ausgelesen werden, die für die Position der Referenz optimiert ist. Ein Texturpaletten-Speicherverwaltungsschema ist vorgesehen, um die aktuellen Daten zu verwalten und um ein Überschreiben gültiger Daten zu verhindern, wenn die Befehle für die Bewegtbildkompensation nacheinander (Pipeline) verarbeitet werden.
  • Die Abbildung aus 1 zeigt ein Ausführungsbeispiel eines zur Verwendung in Verbindung mit der vorliegenden Erfindung geeigneten Systems. Das System 100 weist den Bus 101 oder eine andere Kommunikationsvorrichtung zur Kommunikation von Informationen auf sowie den zur Informationsverarbeitung mit dem Bus 101 gekoppelten Prozessor 102. Das System 100 umfasst ferner einen Direktzugriffsspeicher (RAM) oder eine andere dynamische Speichervorrichtung 104 (die als Hauptspeicher bezeichnet wird), die zum Speichern von Informationen und Befehlen, die durch den Prozessor 102 ausgeführt werden sollen, mit dem Bus 101 gekoppelt ist. Der Hauptspeicher 104 kann auch zum Speichern temporärer Variablen oder anderer intermediärer Informationen während der Ausführung von Befehlen durch den Prozessor 102 verwendet werden. Das System 100 weist ferner einen Nur-Lese-Speicher (ROM) und/oder eine andere statische Speichervorrichtung 106 auf, die mit dem Bus 101 gekoppelt ist, um statische Informationen und Befehle für den Prozessor 102 zu speichern. Die Datenspeichervorrichtung 107 ist zum Speichern von Informationen und Befehlen mit dem Bus 101 gekoppelt.
  • Die Datenspeichervorrichtung 107 wie etwa eine Magnetplatte oder eine optische Disk und ein entsprechendes Laufwerk können mit dem System 100 gekoppelt werden. Das System 100 kann über den Bus 101 auch mit einer Anzeigevorrichtung 121 wie etwa einer Kathodenstrahlröhrenanzeige (CRT) oder einer Flüssigkristallanzeige (LCD) gekoppelt werden, um Informationen einem Computeranwender sowie einer unterstützenden Schaltkreisanordnung anzuzeigen. Nachstehend wird die digitale Videodecodierungs- und Videoverarbeitungs-Schaltkreisanordnung in näheren Einzelheiten beschrieben. Eine alphanumerische Eingabevorrichtung 122 mit alphanumerischen und anderen Tasten ist für gewöhnlich mit dem Bus 101 gekoppelt, um Informationen und ausgewählte Befehle zu dem Prozessor 102 zu übermitteln. Eine andere Art einer Benutzereingabevorrichtung ist die Cursorsteuerung 123 wie etwa eine Maus, ein Trackball oder Cursor-Richtungstasten zur Übermittlung von Richtungsinformationen und ausgewählten Befehlen an den Prozessor 102 sowie zur Steuerung der Cursor-Bewegung auf dem Display bzw. der Anzeige 121.
  • Eine Netzwerkschnittstelle 130 sieht eine Schnittstelle zwischen dem System 100 und einem Netzwerk (in der Abbildung aus 1 nicht dargestellt) vor. Die Netzwerkschnittstelle 130 kann zum Beispiel verwendet werden, um einen Zugang zu einem lokalen Netzwerk (LAN) oder dem Internet vorzusehen. Die Netzwerkschnittstelle 130 kann für den Empfang digitaler Videodaten von einer entfernten Quelle zum Anzeigen durch die Anzeigevorrichtung 121 verwendet werden.
  • Ein Ausführungsbeispiel der vorliegenden Erfindung betrifft den Einsatz des Systems 100 zur Durchführung einer Bewegtbildkompensation in einer Textur-Mapping-Engine für Grafiken. Gemäß einem Ausführungsbeispiel wird die Bewegtbildkompensation durch das System 100 als Reaktion darauf durchgeführt, dass der Prozessor 102 in dem Hauptspeicher 104 enthaltene Befehlsfolgen ausführt.
  • Die Befehle werden dem Hauptspeicher 104 über eine Speichervorrichtung vorgesehen wie etwa eine Magnetplatte, eine integrierte Schaltung (IS) eines Nur-Lese-Speichers (ROM), eine CD-ROM, eine DVD, über eine entfernte Verbindung (z. B. über ein Netzwerk), etc. In alternativen Ausführungsbeispielen kann eine fest verdrahtete Schaltkreisanordnung an Stelle von oder in Kombination mit Softwarebefehlen zur Implementierung der vorliegenden Erfindung verwendet werden. Die vorliegende Erfindung ist somit auf keine spezielle Kombination aus Hardware-Schaltkreisanordnung und Softwarebefehlen beschränkt.
  • Die Abbildung aus 2 zeigt ein Blockdiagramm eines zur Verwendung in Verbindung mit der vorliegenden Erfindung geeigneten MPEG-2-Decodierungsprozesses. Dabei werden decodierte Videodaten gewonnen bzw. erhalten. Die decodierten Videodaten können entweder von einer lokalen (z. B. einem Speicher, einer DVD, einer CD-ROM) oder einer entfernten (z. B. einem Web-Server, einem Videokonferenzsystem) Quelle stammen.
  • In einem Ausführungsbeispiel werden die codierten Videodaten 200 unter Verwendung von Codes mit variablen Längen codiert. In einem derartigen Ausführungsbeispiel wird ein Eingangs-Bitstrom decodiert und durch variable Längendecodierung 210 in eine zweidimensionale Anordnung umgewandelt. Die variable Längendecodierung 210 identifiziert Befehle in dem Eingangsstrom mit variablen Längen, zum Beispiel aufgrund variabler Datenmengen, variabler Befehlsgrößen, etc.
  • Die Ausgabe der variablen Längendecodierung 210 sieht eine Eingabe für die inverse Quantisierung 230 vor, welche eine Reihe von Discrete Cosine Transform (DCT) Koeffizienten erzeugt. Die zweidimensionale Anordnung von DCT-Koeffizienten wird mittels inverser DCT (IDCT) 240 verarbeitet, welche eine zweidimensionale Anordnung von Korrekturdatenwerten erzeugt. Die Korrekturdatenwerte umfassen Bewegungsvektoren für Videodaten. In einem Ausführungsbeispiel umfassen die Korrekturdatenwerte Luminanz- und Chrominanz- sowie Bewegungsvektoren.
  • Die Korrekturdatenwerte der IDCT 240 werden in den Bewegtbildkompensationsblock 250 eingegeben, was zu decodierten Bildelementen bzw. Pixeln führt. Die decodierten Pixel und die Korrekturdatenwerte werden für den Zugriff auf Pixeldatenwerte verwendet, die in dem Speicher 260 gespeichert sind. Der Speicher 260 speichert prädizierte Pixel und Referenzpixel.
  • Die Abbildung aus 3 zeigt einen kennzeichnenden Zeitverlauf für die Zustellung und das Anzeigen von MPEG-2-Frames. Die Frames in einem Videostrom können in einer anderen Reihenfolge als der Reihenfolge der Anzeige decodiert werden. Zusätzlich können Frames in einer anderen Reihenfolge zugestellt werden als wie dies in der Abbildung aus 3 dargestellt ist. Die Anordnung der Frame-Zustellung kann auf der Basis verschiedener Faktoren ausgewählt werden, wie dies im Fach allgemein bekannt ist.
  • Die Video-Frames sind als Intracodiert (I), Prädiktiv-codiert (P) und Bidirektional-codiert (B) kategorisiert. Intracodierte Frames sind Frames, die nicht aus anderen Frames rekonstruiert werden. Mit anderen Worten wird der ganze Frame übermittelt, an Stelle von Unterschieden zwischen vorherigen und/oder folgenden Frames.
  • Bidirektional prädiktiv codierte Frames werden sowohl aus einem vorhergehenden Frame als auch aus einem folgenden Frame auf der Basis der Unterschiede zwischen den Frames interpoliert. B-Frames können auch aus vorderen oder hinteren Referenz-Frames prädiziert werden. Prädiktiv codierte Frames werden aus einem vorderen Referenzbild interpoliert. Die Verwendung von I-, P- und B-Frames ist im Fach bekannt und wird in der Folge nicht näher beschrieben, sofern die vorliegende Erfindung davon nicht betroffen ist. Die Indizes in der Abbildung aus 3 beziehen sich auf die ursprüngliche Reihenfolge von Frames, wie diese von einem Codierer empfangen werden. Der Einsatz von I-, P- und B-Frames in Verbindung mit der vorliegenden Erfindung wird nachstehend näher beschrieben.
  • Die Abbildung aus 4 veranschaulicht drei MPEG-2-Frames. Das rekonstruierte Bild ist ein aktuell angezeigter B- oder P-Frame. Das vordere bzw. Vorwärts-Referenzbild ist ein Frame, der zeitlich im Vergleich zu dem rekonstruierten Bild zurückgeht. Das Rückwärts-Referenzbild ist ein Frame, der zeitlich im Vergleich zu dem rekonstruierten Bild vorangeht.
  • Frames werden entweder mit einer "Frame Picture Structure" (Vollbildstruktur) oder einer "Field Picture Structure" (Teilbildstruktur) rekonstruiert. Ein Vollbild weist jede Abtastzeile des Bilds auf, während ein Teilbild nur jede zweite Abtastzeile aufweist. Das "Top Field" (obere Teilbild) weist die geraden Abtastzeilen auf und das "Bottom Field" (untere Teilbild) weist die ungeraden Abtastzeilen auf. Die Vollbildstrukturen und die Teilbildstrukturen werden nachstehend in Bezug auf die Bewegungsvektoren näher beschrieben. In einem Ausführungsbeispiel werden das obere Teilbild und das untere Teilbild verschachtelt in einem Speicher gespeichert. Alternativ können die oberen und unteren Teilbilder unabhängig voneinander gespeichert werden.
  • Allgemein umfasst die Bewegtbildkompensation die Rekonstruktion eines Bilds durch Prädiktion, entweder vorwärts, rückwärts oder bidirektional, der resultierenden Pixelfarben aus einem oder mehreren Referenzbildern. Die Abbildung aus 4 veranschaulicht zwei Referenzbilder und ein bidirektional prädiziertes rekonstruiertes Bild. In einem Ausführungsbeispiel werden die Bilder in Makroblöcke aus 16 Pixeln × 16 Pixeln unterteilt; wobei jedoch auch andere Makroblockgrößen verwendet werden können (z. B. 16 × 8, 8 × 8). Ein Makroblock ist ferner in Blöcke mit je 8 Pixeln × 8 Pixeln unterteilt.
  • In einem Ausführungsbeispiel haben die Bewegungsvektoren in der oberen linken Ecke eines aktuellen Makroblocks ihren Ursprung und zeigen auf eine versetzte Stelle, an der sich die Referenzpixel mit der größten Übereinstimmung befinden. Bewegungsvektoren können ihren Ursprung auch an anderen Stellen in einem Makroblock haben und sie können für kleinere Abschnitte eines Makroblocks verwendet werden. Die Pixel an den durch die Bewegungsvektoren angezeigten Positionen werden zur Prädiktion des rekonstruierten Bilds verwendet.
  • In einem Ausführungsbeispiel wird jedes Pixel in dem rekonstruierten Bild auf der Basis der Pixel in dem bzw. den Referenzbildern bilinear gefiltert. Die gefilterte Farbe des bzw. der Referenzbilder wird zur Bildung einer neuen Farbe interpoliert. Ein auf der IDCT-Ausgabe basierender Korrekturterm kann hinzugefügt werden, um die Prädiktion der resultierenden Pixel weiter zu verfeinern.
  • Die Abbildung aus 5 veranschaulicht eine konzeptuelle Darstellung von Pixeldaten, die sich zur Verwendung in Verbindung mit der vorliegenden Erfindung eignen. Jeder Makroblock weist 256 Bytes an Luminanzdaten (Y) für die 256 Pixel des Makroblocks auf. Die blauen Chrominanzdaten (U) und die roten Chrominanzdaten (V) für die Pixel des Makroblocks werden mit 1/4 Auflösung übermittelt oder 64 Bytes der U-Daten und 64-Bytes der V-Daten für den Makroblock, und das Filtern wird zum Mischen der Pixelfarben verwendet. Andere Pixelcodierungsschemata können ebenfalls verwendet werden.
  • Die Abbildung aus 6 zeigt ein Blockdiagramm der Bestandteile zur Durchführung der Bewegtbildkompensation und des Textur-Mapping gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Die Komponenten der Abbildung aus 6 können sowohl für die Durchführung des Textur-Mapping als auch der Bewegtbildkompensation verwendet werden. In einem Ausführungsbeispiel wird die Bewegtbildkompensationsdecodierung als Reaktion auf einen bestimmten Befehl durchgeführt, der hierin als GFXBLOCK-Befehl bezeichnet wird. Es können jedoch auch andere Befehlsnamen und Befehlsformate ebenso verwendet werden. Ein Format für den GFXBLOCK-Befehl wird nachstehend in Bezug auf die Abbildung aus 7 näher beschrieben.
  • Die Befehlsstrom-Steuereinheit 600 ist so gekoppelt, dass sie Befehle von einer externen Quelle empfängt, wie zum Beispiel von einem Prozessor oder von einem Puffer. Die Befehlsstrom-Steuereinheit 600 analysiert und decodiert die Befehle zur Ausführung entsprechend geeigneter Steuerungsfunktionen. Wenn es sich bei dem empfangenen Befehl nicht um einen GFXBLOCK-Befehl handelt, leitet die Befehlsstrom-Steuereinheit 600 Steuersignale und Daten an die Setup-Engine 605 weiter. Die Befehlsstrom-Steuereinheit 600 steuert ferner die Speicherverwaltung, die Zustandsvariablenverwaltung, zweidimensionale Operationen, etc. für andere Befehle als GFXBLOCK-Befehle.
  • Wenn die Befehlsstrom-Steuereinheit in einem Ausführungsbeispiel einen GFXBLOCK-Befehl empfängt, werden Korrekturdaten zu einer Texturpalette 650 weitergeleitet und darin gespeichert, wobei die Korrekturdaten jedoch auch in jedem anderen Speicher gespeichert werden können. Die Befehlsstrom-Steuereinheit 600 übermittelt ferner Steuerinformationen an einen Schreibadressgenerator 640. Zu den an den Schreibadressgenerator 640 übermittelten Steuerinformationen zählen unter anderem Blockmusterbits, die Prädiktionsart (z. B. I, B oder P) usw. Der Schreibadressgenerator 640 bewirkt, dass die Korrekturdaten für die Pixel eines Makroblocks in die Texturpalette in der Reihenfolge geschrieben werden, in der sie durch eine IDCT-Operation für den Makroblock ausgegeben werden. In einem Ausführungsbeispiel wird die IDCT-Operation in Software ausgeführt, wobei eine Hardware-Implementierung ebenso verwendet werden kann.
  • Die Abbildung aus 7 veranschaulicht Luminanzkorrekturdaten für einen Makroblock mit 16 Pixeln × 16 Pixeln. Allgemein weist der Makroblock 700 vier Blöcke mit 8 Pixeln mal 8 Pixeln auf, die mit 710, 720, 730 und 740 bezeichnet sind. Jeder Block weist Teilblöcke mit 4 Pixeln mal 4 Pixeln auf. Zum Beispiel umfasst der Block 710 die Teilblöcke 712, 714, 716 und 718, und der Block 720 weist die Teilblöcke 722, 724, 726 und 728 auf.
  • Der Schreibadressgenerator 640 bewirkt es, dass Korrekturdaten für die Pixel eines Makroblocks Block für Block in Zeilenhauptreihenfolge in die Texturpalette 650 geschrieben werden. Mit anderen Worten wird die erste Zeile des Blocks 710 (Pixel 0–7) in die Texturpalette 650 geschrieben, gefolgt von der zweiten Zeile des Blocks 710 (Pixel 16–23). Die verbleibenden Zeilen des Blocks 710 werden in ähnlicher Weise in die Texturpalette 650 geschrieben.
  • Nachdem die Daten aus dem Block 710 in die Texturpalette 650 geschrieben worden sind, werden die Daten aus dem Block 720 in ähnlicher Weise in die Texturpalette 650 geschrieben. Somit wird die erste Zeile des Blocks 720 (Pixel 8–15) in die Texturpalette 650 geschrieben, gefolgt von der zweiten Zeile des Blocks 720 (Pixel 24-31). Die verbleibenden Zeilen des Blocks 720 werden in ähnlicher Weise in die Texturpalette 650 geschrieben. Die Blöcke 730 und 740 werden in ähnlicher Weise in die Texturpalette 650 geschrieben.
  • In erneutem Bezug auf die Abbildung aus 6 übermittelt die Befehlsstrom-Steuereinheit 600 ferner Steuerinformationen an die Setup-Engine 605. In einem Ausführungsbeispiel versorgt die Befehlsstrom-Steuereinheit 600 die Setup-Engine 605 mit Koordinaten für den Ursprung des Makroblocks gemäß dem verarbeiteten GFXBLOCK-Befehl. Zum Beispiel werden die. Koordinaten (0,0) für den oberen linken Makroblock eines Frames vorgesehen, oder es werden die Koordinaten (0,16) für den zweiten Makroblock der oberen Zeile eines Frames vorgesehen.
  • Die Befehlsstrom-Steuereinheit 600 versorgt die Setup-Engine 605 ferner mit Höhen- und Breiteninformationen in Bezug auf den Makroblock. Aus den vorgesehenen Informationen bestimmt die Setup-Engine 605 eine Bounding-Box, die sich in einem vorbestimmten Dreieck des Makroblocks befindet. Wenn im Gegensatz dazu ein Textur-Mapping durchgeführt wird, bestimmt die Setup-Engine 605 eine Bounding-Box, die das Dreieck aufweist. Wenn somit eine Bewegtbildkompensation durchgeführt wird, wird anstatt lediglich des Dreiecks der ganze Makroblock iteriert.
  • In einem Ausführungsbeispiel ist die Bounding-Box durch die oberen linken und unteren rechten Ecken der Bounding-Box definiert. Die obere linke Ecke der Bounding-Box ist der Ursprung des Makroblocks in dem GFXBLOCK-Befehl. Die untere rechte Ecke der Bounding-Box wird durch Addition der Bereichshöhe und der Breite bzw. Tiefe zu dem Ursprung berechnet.
  • In einem Ausführungsbeispiel berechnet die Bounding-Box einen Texturadressenversatz P0, der gemäß folgenden Bedingungen bestimmt wird: P0u = Ursprungx + MVx (Gleichung 1)und P0v = Ursprungy + MVy (Gleichung 2)wobei P0u und P0v entsprechende Versätze der Koordinaten v und u darstellen. Ursprungx und Ursprungy sind die entsprechenden x und y Koordinaten des Ursprungs der Bounding-Box, und MVx und MVy sind die entsprechenden x und y Komponenten des Bewegungsvektors. Der Term P0 übersetzt die Texturadressen linear.
  • In einem Ausführungsbeispiel werden P0u und P0v vektoriell durch Addition der Bewegungsvektoren mit dem Bereichsursprung gemäß folgenden Gleichungen berechnet:
    Figure 00150001
    und
    Figure 00160001
    wobei die Variablen der Gleichungen 3 und 4 den nachstehenden Beschreibungen entsprechen. In einem Ausführungsbeispiel werden die nachstehend aufgeführten Werte für GFXBLOCK-Befehle verwendet. Für andere Befehle als GFXBLOCK-Befehle werden die Werte durch die Setup-Engine 605 berechnet. Unter Verwendung der nachstehend aufgeführten Werte können komplexe Textur-Mapping-Gleichungen zur Verwendung für Berechnungen der Bewegtbildkompensation vereinfacht werden, wodurch die Verwendung von Hardware für beide Zwecke ermöglicht wird.
  • Figure 00160002
  • Die u, v Texturadressen werden dazu verwendet, zu bestimmen, welche Pixel aus den Referenzpixeln abgerufen werden.
  • Der Mapping-Adressgenerator 615 sieht Leseadressen an eine Abrufeinheit 620 vor. Die durch den Mapping-Adressgenerator 615 erzeugte und an die Abrufeinheit 620 vorgesehene Leseadresse basieren auf der Pixelbewegung zwischen Frames, wie dies durch den Bewegungsvektor beschrieben wird. Dies ermöglicht eine Wiederverwendung der in dem Speicher gespeicherten Pixel für einen folgenden Frame durch eine neue Anordnung der Adressen der abgerufenen Pixel. In einem Ausführungsbeispiel vereinfachen sich die durch den Mapping-Adressgenerator 615 unter Verwendung der vorstehend aufgeführten Werte erzeugten Adressen zu: v(x, y) = y + P0v (Gleichung 5)und u(x, y) = x + P0u (Gleichung 6)
  • Die Setup-Engine 605 sieht die Informationen der Bounding-Box an den Windower 610 vor. Der Windower 610 iteriert die Pixel in der Bounding-Box, um die Schreibadresse für Daten zu erzeugen, die durch den GFXBLOCK-Befehl geschrieben werden. Mit anderen Worten werden die Dreieckskantengleichungen immer analysiert, wodurch es dem Windower 610 ermöglicht wird, den ganzen Makroblock zu verarbeiten, anstatt an einer Dreiecksbegrenzung anzuhalten.
  • Der Windower 610 erzeugt Pixelschreibadressen zum Schreiben von Daten in einen Cache-Speicher, der in der Abbildung aus 6 nicht abgebildet ist. Der Windower 510 versorgt den Mapping-Adressgenerator 615 ferner mit dem Ursprung des Makroblocks, und Bewegungsvektorinformationen werden an den Mapping-Adressgenerator 615 vorgesehen. In einem Ausführungsbeispiel sieht der Windower 610 einen Steuerbefehl und eine Pixelmaske an den Mapping-Adressgenerator 615 vor, der die Positionen von Referenzpixeln auf der Basis der Informationen bestimmt, die durch den Windower 610 und die Setup-Engine 605 vorgesehen werden.
  • Die Abrufeinheit 620 konvertiert die durch den Mapping-Adressgenerator 514 vorgesehenen Leseadressen in Cache-Adressen. Die durch die Abrufeinheit 620 erzeugten Cache-Adressen werden an den Cache 630 übermittelt. Die an der Cache-Adresse gespeicherten Pixeldaten werden an den bilinearen Filter 625 übermittelt. Der Mapping-Adressgenerator 615 übermittelt partielle Pixelpositionierungsdaten und Cache-Adressen für benachbarte Pixel an den bilinearen Filter 615. Wenn der Bewegungsvektor eine Bewegung definiert, die geringer ist als ein vollständiges Pixel, so filtert der bilineare Filter 625 die von dem Cache 630 zurückgeführten Pixeldaten auf der Basis der partiellen Positionsdaten und der benachbarten Pixel. Bilineare Filtertechniken sind im Fach allgemein bekannt, so dass auf deren weitere Beschreibung hierin verzichtet werden kann.
  • In einem Ausführungsbeispiel erzeugt der bilineare Filter 625 sowohl vorwärts als auch rückwärts gefilterte Pixelinformationen, die an die Mischeinheit 670 übermittelt werden. Diese Informationen können gemäß der Abbildung aus 6 unter Verwendung separater Kanäle an die Mischeinheit 670 übermittelt werden, wobei die Informationen aber auch über einen einzigen Kanal zeitmultiplexiert werden können. Der bilineare Filter 625 übermittelt die Pixelpositionsinformationen an den Leseadressgenerator 660. Die Pixelpositionsinformationen betreffen die Positionierung und Filterung gemäß der vorstehenden Beschreibung.
  • Der Leseadressgenerator 660 bewirkt das Lesen von Pixelinformationen aus der Texturpalette 650 in einer anderen Reihenfolge als wie die Informationen gemäß der Steuerung durch den Schreibadressgenerator 640 geschrieben werden. In Bezug auf die Abbildung aus 7 bewirkt der Leseadressgenerator 660 das Lesen von Pixeldaten aus der Texturpalette 650 Teilblock für Teilblock in einer Zeilenhauptreihenfolge. Diese Reihenfolge bzw. Anordnung optimiert die Leistung des Cache 630 aufgrund der Referenzlokalität der darin gespeicherten Pixel. Mit anderen Worten wird die erste Zeile des Teilblocks 712 (Pixel 0–3) gelesen, gefolgt von der zweiten Zeile des Teilblocks 712 (Pixel 16–19). Die verbleibenden Pixel des Teilblocks 712 werden in ähnlicher Weise gelesen.
  • Nachdem die Pixel des Teilblocks 712 gelesen worden sind werden die Pixel des Teilblocks 714 auf ähnliche Weise gelesen. Die erste Zeile des Teilblocks 714 (Pixel 4–7) wird gelesen, gefolgt von der zweiten Zeile des Teilblocks 714 (Pixel 20–23). Die verbleibenden Teilblöcke des Blocks 710 (716 und 718) werden auf ähnliche Weise gelesen. Die Teilblöcke des Blocks 720 werden auf ähnliche Weise gelesen, gefolgt von den Teilblöcken des Blocks 730 und schließlich den Teilblöcken des Blocks 740.
  • Die aus der Texturpalette 650 gelesenen Pixel werden in die Mischeinheit 670 eingegeben. Die Mischeinheit 670 kombiniert die Pixeldaten des bilinearen Filters 625 mit Korrekturdaten der Texturpalette, so dass ein Ausgangspixel für einen neuen Video-Frame erzeugt wird. Der Mapping-Adressgenerator 615 sieht partielle Pixelpositionierungsinformationen an den bilinearen Filter 625 vor.
  • In der Pipeline aus 6 können gleichzeitig mehrere GFXBLOCK-Befehle existieren. Als Folge dessen strömen Korrekturdaten durch die Texturpalette 650. Die Lese- und Schreibzugriffe auf die Texturpalette 650 werden so verwaltet, dass die Korrekturdatenströme keine gültigen Daten überschreiben, die in der Texturpalette 650 gespeichert sind.
  • In einem Ausführungsbeispiel ist zwischen dem Mapping-Adressgenerator 615 und dem bilinearen Filter 625 ein FIFO-Puffer (in der Abbildung aus 6 nicht abgebildet) vorgesehen. Da Speicherzugriffe langsamer sind als andere Hardware-Operationen, können Zugriffe auf Speicher, die Referenzpixel speichern, im Pipelinesystem verarbeitete Operationen anhalten. Der FIFO-Puffer ermöglicht ein Verstecken der Speicherlatenz, wodurch eine Funktionsweise der Verarbeitung im Pipelinesystem ermöglicht wird, ohne dass darauf gewartet wird, dass die Referenzpixel aus dem Speicher zurückgeführt werden, wodurch die Verarbeitungsleistung im Pipelinesystem verbessert wird.
  • Zum gleichzeitigen Verdecken der Speicherlatenz und zum Speichern der Korrekturdaten in der Texturpalette 650 für folgende GFXBLOCK-Befehle wird es verhindert, dass der Schreibadressgenerator 640 gültige Daten in der Texturpalette 650 überschreibt. In einem Ausführungsbeispiel übermittelt der Leseadressgenerator 660 Synchronisierungspunkte an den Schreibadressgenerator 640. Die Synchronisierungspunkte entsprechen den Adressen, über welche hinaus der Leseadressgenerator 660 nicht zugreift. In ähnlicher Weise übermittelt der Schreibadressgenerator 640 Synchronisierungspunkte an den Leseadressgenerator 660, um gültige Daten anzuzeigen.
  • Die Abbildung aus 8 zeigt ein Blockdiagramm einer Hardware-Software-Schnittstelle für die Decodierung der Bewegtbildkompensation gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Das Blockdiagramm der Abbildung aus 8 entspricht einer Zeit, zu der die Schaltkreisanordnung der Bewegtbildkompensation einen B-Frame rendert und ein I-Frame angezeigt wird. Bestimmte Eingabe- und/oder Ausgabe-Frames können sich während der Verarbeitung eines Videostroms unterscheiden.
  • Der komprimierte Makroblock 880 wird in dem Speicher 830 gespeichert. In einem Ausführungsbeispiel ist der Speicher 830 in einem Computersystem oder einer anderen elektronischen Vorrichtung vorgesehen. Der komprimierte Makroblock 880 kann auch von anderen Quellen erhalten werden, wie zum Beispiel einer CD-ROM, einem DVD-Player usw.
  • In einem Ausführungsbeispiel wird der komprimierte Makroblock 880 in dem Cache-Speicher 810 gespeichert. Durch das Speichern des komprimierten Makroblocks 880 in dem Cache-Speicher 810 erhält der Prozessor 800 einen schnelleren Zugriff auf die Daten in dem komprimierten Makroblock 880. In alternativen Ausführungsbeispielen wird durch den Prozessor 800 in dem Speicher 830 auf den komprimierten Makroblock 880 zugegriffen.
  • Der Prozessor 800 verarbeitet in dem Cache-Speicher 810 gespeicherte Makroblockdaten zum Analysieren und Interpretieren von Makroblockbefehlen. In einem Ausführungsbeispiel führt der Prozessor 800 auch eine Folge von Befehlen aus, um eine oder mehrere IDCT-Operationen an in dem Cache-Speicher 810 gespeicherten Makroblockdaten durchzuführen. Der Prozessor 800 speichert die Ergebnisse der IDCT-Operationen und Befehlsdaten in dem Speicherpuffer 820. Der Speicherpuffer 820 speichert in dem Speicher 830 zu speichernde Daten ein.
  • Die Daten aus dem Speicherpuffer 820 werden in dem Bewegtbildkompensations-Befehlspuffer 890 gespeichert. In einem Ausführungsbeispiel handelt es sich bei dem Bewegtbildkompensations-Befehlspuffer 890 um eine FIFO-Warteschlange, die Bewegtbildkompensationsbefehle speichert, wie etwa den GFXBLOCK-Befehl, und zwar vor einer Verarbeitung durch die Bewegtbildkompensations-Schaltkreisanordnung 840. Die Bewegtbildkompensations-Schaltkreisanordnung 840 bearbeitet Bewegtbildkompensationsbefehle gemäß der vorstehenden Beschreibung in Bezug auf die Abbildung aus 6.
  • In dem Beispiel aus der Abbildung aus 8 rekonstruiert die Bewegtbildkompensations-Schaltkreisanordnung 840 den B-Frame 858 aus dem I-Frame 852 und dem P-Frame 854. In einem Ausführungsbeispiel werden verschiedene Frames in dem Videospeicher 850 gespeichert. Alternativ können die Frames in dem Speicher 830 oder in einem anderen Speicher gespeichert werden. Wenn die Bewegtbildkompensations-Schaltkreisanordnung 840 zum Beispiel einen B-Frame rendert, würde ein einzelner Frame zum Zwecke der Rekonsturktion bzw. Wiederherstellung aus dem Videospeicher 850 ausgelesen werden. In dem Beispiel aus 8 werden vier Frames in dem Videospeicher 850 gespeichert, wobei jedoch jede beliebige Anzahl von Frames in dem Videospeicher 850 gespeichert werden kann.
  • Der angezeigte Frame (I-Frame 852) wird durch die Überlagerungsschaltkreisanordnung 860 aus dem Videospeicher 850 ausgelesen. Die Überlagerungsschaltkreisanordnung 860 konvertiert YUV-codierte Frames in Rot-Grün-Blau-codierte (RGB) Frames, so dass die Frames durch die Anzeigevorrichtung 870 angezeigt werden können. Die Überlagerungsschaltkreisanordnung 860 kann die angezeigten Frames bei Bedarf auch in andere Formate umwandeln.
  • In der vorstehenden Patentschrift wurde die vorliegende Erfindung in Bezug auf spezifische Ausführungsbeispiele der Erfindung beschrieben. Es ist jedoch offensichtlich, dass diesbezüglich verschiedene Modifikationen und Abänderungen möglich sind, ohne dabei vom Umfang der vorliegenden Erfindung abzuweichen. Die Beschreibung und die Zeichnungen dienen somit der Veranschaulichung und schränken die Erfindung nicht ein.

Claims (11)

  1. Verfahren zur Bewegtbildkompensation digitaler Videodaten, wobei das Verfahren folgendes umfasst: das Empfangen eines Bewegtbildkompensationsbefehls mit zugeordneten Korrekturdaten in Bezug auf einen Makroblock; das Durchführen von Frame-Prädiktionsoperationen als Reaktion auf den Bewegtbildkompensationsbefehl; und Verknüpfen der Korrekturdaten mit Ergebnissen der Frame-Prädiktionsoperationen zum Erzeugen eines Ausgangs-Videoframes, wobei das Verfahren gekennzeichnet ist durch: Speichern der Korrekturdaten in einem Speicher (650) in einer ersten Reihenfolge als Reaktion auf den Bewegtbildkompensationsbefehl; und Lesen (660) der Korrekturdaten aus dem Speicher (650) in einer zweiten Reihenfolge.
  2. Verfahren nach Anspruch 1, wobei die erste Reihenfolge auf der Ausgabe einer Inverse Discrete Cosine Transformation (IDCT) Operation basiert.
  3. Verfahren nach Anspruch 1, wobei das Durchführen von Frame-Prädiktionsoperationen ferner folgendes umfasst: Erzeugen einer Bounding-Box, die den Makroblock (605) aufweist; und Iterieren der Bounding-Box (610); Abrufen von Referenzpixeln (625); und Addieren von Korrekturdaten zu den Referenzpixeln (670).
  4. Verfahren nach Anspruch 1, wobei die Bewegtbildkorrekturdaten mindestens einen Bewegungsvektor aufweisen.
  5. Verfahren nach Anspruch 15, wobei das Verfahren ferner das Durchführen von Texturierungsoperationen für den Makroblock umfasst.
  6. Schaltung zum Erzeugen von Video mit kompensiertem Bewegtbild mit einer Befehlsstrom-Steuereinheit (600), die so gekoppelt ist, dass sie einen Befehl zur Manipulation der Videodaten mit Bewegtbildkompensation empfängt, mit einem Schreibadressgenerator (640), der mit der Befehlsstrom-Steuereinheit gekoppelt ist, mit einer Verarbeitungsschaltkreisanordnung, die mit dem Schreibadressgenerator (640) gekoppelt ist, um Steuerinformationen und Daten von der Befehlsstrom-Steuereinheit (600) zu empfangen, um einen rekonstruierten Videoframe zu erzeugen, wobei die Schaltung gekennzeichnet ist durch: einen Speicher (650), der mit der Befehlsstrom-Steuereinheit (600) und dem Schreibadressgenerator (640) gekoppelt ist, wobei der Speicher (650) dazu dient, Pixeldaten in einer ersten durch den Schreibadressgenerator (640) bestimmten Reihenfolge zu speichern; und einen Leseadressgenerator (660), der mit der Verarbeitungsschaltkreisanordnung und mit dem Speicher (650) gekoppelt ist, wobei der Leseadressgenerator (660) bewirkt, dass der Speicher (650) Pixeldaten in einer zweiten Reihenfolge ausgibt.
  7. Schaltung nach Anspruch 6, wobei es sich bei der ersten Reihenfolge um eine blockweise Zeilenhauptreihenfolge handelt.
  8. Schaltung nach Anspruch 6, wobei die erste Reihenfolge einer Ausgabesequenz einer Inverse Discrete Cosine Transform Operation entspricht.
  9. Schaltung nach Anspruch 6, wobei es sich bei der zweiten Reihenfolge um eine untergeordnete blockweise Zeilenhauptreihenfolge handelt.
  10. Schaltung nach Anspruch 6, wobei die Verarbeitungsschaltkreisanordnung eine Setup-Engine (605) aufweist, die eine Bounding-Box für durch den Befehl manipulierte Pixel bestimmt, wobei eine Bounding-Box alle Flanken eines Makroblocks aufweist.
  11. Schaltung nach Anspruch 6, wobei die Verarbeitungsschaltkreisanordnung einen Windower (610) aufweist, mit einem ersten Modus, in dem Pixel in einem Dreieck innerhalb der Bounding-Box verarbeitet werden, und mit einem zweiten Modus, in dem alle Pixel innerhalb der Bounding-Box verarbeitet werden.
DE69916662T 1999-01-07 1999-12-21 Verfahren und vorrichtung zur bewegungskompensation in einem texturabbildungssystem Expired - Lifetime DE69916662T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US227174 1999-01-07
US09/227,174 US20020080870A1 (en) 1999-01-07 1999-01-07 Method and apparatus for performing motion compensation in a texture mapping engine
PCT/US1999/031004 WO2000041394A1 (en) 1999-01-07 1999-12-21 Method and apparatus for performing motion compensation in a texture mapping engine

Publications (2)

Publication Number Publication Date
DE69916662D1 DE69916662D1 (de) 2004-05-27
DE69916662T2 true DE69916662T2 (de) 2005-04-07

Family

ID=22852066

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69916662T Expired - Lifetime DE69916662T2 (de) 1999-01-07 1999-12-21 Verfahren und vorrichtung zur bewegungskompensation in einem texturabbildungssystem

Country Status (10)

Country Link
US (1) US20020080870A1 (de)
EP (1) EP1147671B1 (de)
JP (1) JP2002534919A (de)
KR (1) KR100464878B1 (de)
CN (1) CN1214648C (de)
AU (1) AU2715500A (de)
DE (1) DE69916662T2 (de)
HK (1) HK1036904A1 (de)
TW (1) TW525391B (de)
WO (1) WO2000041394A1 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI109395B (fi) * 2001-03-27 2002-07-15 Hantro Products Oy Menetelmä ja järjestelmä videokuvan stabilisoimiseksi
CN1589575A (zh) * 2001-11-21 2005-03-02 皇家飞利浦电子股份有限公司 改进的位面压缩方法
WO2004073315A1 (en) * 2003-02-14 2004-08-26 Koninklijke Philips Electronics N.V. Processing signals for a color sequential display
US20050036555A1 (en) * 2003-08-13 2005-02-17 Lakshmanan Ramakrishnan Automatic direct memory access engine
US20050232355A1 (en) * 2004-04-15 2005-10-20 Srinivas Cheedela Video decoder for supporting both single and four motion vector macroblocks
JP4890464B2 (ja) * 2004-12-09 2012-03-07 トムソン ライセンシング 動き補償されたピクチャを生成する方法及び装置
JP4406623B2 (ja) * 2005-08-31 2010-02-03 パナソニック株式会社 動画受信装置
TWI423680B (zh) * 2009-11-13 2014-01-11 Nat Cheng Kong University 可重組式移動補償架構之設計空間探索方法
KR101187530B1 (ko) * 2011-03-02 2012-10-02 한국과학기술원 모노스코픽, 스테레오 스코픽 및 멀티뷰를 위한 렌더링 방법, 시스템 및 이를 위한 기록매체
CN102148990B (zh) * 2011-04-28 2012-10-10 北京大学 一种运动矢量预测装置和方法
TWI601075B (zh) * 2012-07-03 2017-10-01 晨星半導體股份有限公司 移動補償影像處理裝置與影像處理方法
US9363524B2 (en) * 2013-08-26 2016-06-07 Amlogic Co., Limited Method and apparatus for motion compensation reference data caching
WO2016004849A1 (en) * 2014-07-07 2016-01-14 Mediatek Inc. Methods of handling escape pixel as a predictor in index map coding
US10257521B2 (en) * 2014-10-01 2019-04-09 Kt Corporation Method and apparatus for processing video signal

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3022334B2 (ja) * 1995-07-28 2000-03-21 松下電器産業株式会社 画像生成装置、動画伸長マッピング装置およびマルチメディア機器
US5892518A (en) * 1995-07-28 1999-04-06 Matsushita Electric Industrial Co., Ltd. Image generating apparatus with pixel calculation circuit including texture mapping and motion compensation

Also Published As

Publication number Publication date
EP1147671B1 (de) 2004-04-21
CN1214648C (zh) 2005-08-10
DE69916662D1 (de) 2004-05-27
KR100464878B1 (ko) 2005-01-05
CN1346573A (zh) 2002-04-24
WO2000041394A1 (en) 2000-07-13
HK1036904A1 (en) 2002-01-18
US20020080870A1 (en) 2002-06-27
JP2002534919A (ja) 2002-10-15
AU2715500A (en) 2000-07-24
KR20010108066A (ko) 2001-12-07
TW525391B (en) 2003-03-21
EP1147671A1 (de) 2001-10-24

Similar Documents

Publication Publication Date Title
DE602004009591T2 (de) Differenz-codierung durch verwendung eines 3d-graphikprozessors
DE69831961T2 (de) Bildobjekterzeugungsverfahren für objektbasierte kodierungssysteme unter verwendung von masken und gerundeten mittelwerten
DE19756210C2 (de) Verfahren und Vorrichtung zum Decodieren eines codierten MPEG-Videodatenstroms
DE69839100T2 (de) Verbesserte Videokodierung unter Verwendung von adaptiven Blockparametern für kodierte/unkodierte Blöcke
DE69916662T2 (de) Verfahren und vorrichtung zur bewegungskompensation in einem texturabbildungssystem
DE102013013636B4 (de) Pixel Bufferung
DE19531004C2 (de) Verfahren und Vorrichtung zur wahrnehmungsoptimierten Übertragung von Video- und Audio-Daten
DE19825042A1 (de) Verfahren zur Bewegungsvektorcodierung bei MPEG-4
DE69627920T2 (de) Speichersteuerungsanordnung und Bilddekodierer damit
DE69937833T2 (de) Verfahren und vorrichtung zur skalierbaren formkodierung
DE69915843T2 (de) Teilbandkodierung/-dekodierung
DE102019201370A1 (de) Verarbeitung von multidirektionalen bildern in räumlich geordneten videokodieranwendungen
DE112018002110T5 (de) Systeme und verfahren für spiel-generierte bewegungsvektoren
DE4408522C2 (de) Vorrichtung zur Bilddatenverarbeitung und Verfahren zur Verarbeitung von Bilddaten
DE60107149T2 (de) Digitales Bildausgabegerät
DE60207756T2 (de) Bilddatenzugriff
EP1110407B1 (de) Verfahren und anordnung zur codierung und decodierung eines digitalisierten bildes mit anwendung eines gesamtbewegungsvektors
DE69628269T2 (de) Konversionsverfahren einer Ausgangsdatenfolge in Invers-DCT und Schaltung davon
DE19860652A1 (de) Videodecoder für hohe Bildqualität
DE3733038C2 (de) Verfahren und Schaltungsanordnung zur Bilddatenreduktion für digitale Fernsehsignale
EP0981909B1 (de) Verfahren und vorrichtung zur codierung und decodierung eines digitalisierten bildes
DE10007171A1 (de) Verfahren und Anordnung zur Codierung bzw. zur Codierung und Decodierung einer Zahlenfolge
DE4447552C2 (de) Vorrichtung zur Bilddatenverarbeitung
EP1121809B1 (de) Verfahren und anordnung zur codierung eines digitalisierten bildes, verfahren und anordnung zur decodierung eines digitalisierten bildes
WO2001049038A1 (de) Verfahren, anordnung und computerprogrammerzeugnis zur prädiktion bei der codierung eines in bildblöcke unterteilten bildes

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: HEYER, V., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 806