DE69735402T2 - System und Methode zur Bewegungskompensation mit Hilfe eines Schrägziegelspeicherformats für verbesserte Effizienz - Google Patents

System und Methode zur Bewegungskompensation mit Hilfe eines Schrägziegelspeicherformats für verbesserte Effizienz Download PDF

Info

Publication number
DE69735402T2
DE69735402T2 DE69735402T DE69735402T DE69735402T2 DE 69735402 T2 DE69735402 T2 DE 69735402T2 DE 69735402 T DE69735402 T DE 69735402T DE 69735402 T DE69735402 T DE 69735402T DE 69735402 T2 DE69735402 T2 DE 69735402T2
Authority
DE
Germany
Prior art keywords
frame
page
data
block
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69735402T
Other languages
English (en)
Other versions
DE69735402D1 (de
Inventor
Leonardo San Jose Vainsencher
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.)
LSI Corp
Original Assignee
LSI Logic 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 LSI Logic Corp filed Critical LSI Logic Corp
Application granted granted Critical
Publication of DE69735402D1 publication Critical patent/DE69735402D1/de
Publication of DE69735402T2 publication Critical patent/DE69735402T2/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/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
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich im allgemeinen auf digitale Videokompression und im besonderen auf ein MPEG-Decodiersystem zur Durchführung von Bewegungsausgleich, welches Makroblöcke in einer Anordnung versetzter Kacheln speichert, um Seitenkreuzungen während Blockzugriffen zu verringern und dadurch verbesserte Leistung zu liefern.
  • Stand der Technik
  • Digitales Bewegtvideo beansprucht viel Speicherplatz und eine hohe Datenübertragungsbandbreite. Deshalb verwenden Videosysteme verschiedene Arten von Videokompressionsalgorithmen, um den notwendigen Speicherplatz und die erforderliche Übertragungsbandbreite zu verringern. Für graphische Standbilder und Bewegtvideo gibt es üblicherweise unterschiedliche Verfahren zur Videokompression. Um Daten innerhalb eines Standbilds oder eines einzelnen Vollbilds mittels räumlicher Redundanzen innerhalb des Vollbilds zu komprimieren, werden Verfahren zur Intraframe Compression eingesetzt. Um mehrere Vollbilder, d.h. Bewegtvideo, mittels der zeitlichen Redundanz zwischen den Vollbildern zu komprimieren, werden Verfahren zur Interframe Compression verwendet. Letztere werden ausschließlich für Bewegtvideo benützt, sei es allein oder in Verbindung mit Verfahren zur Intraframe Compression.
  • Techniken zur Intraframe Compression oder Standbildkompression machen üblicherweise von Frequenzbereichsverfahren, z.B. der Diskreten Cosinustransformation (DCT), Gebrauch. Intraframe Compression verwendet typischerweise die Frequenzmerkmale eines Picture Frames, um ein Vollbild effizient zu codieren und räumliche Redundanz zu entfernen. Videodatenkompression für graphische Standbilder bieten beispielsweise die JPEG-Kompression (Joint Photographic Experts Group) und die Lauflängencodierung (Run Length Encoding/RLE). JPEG-Kompression vereinigt eine Gruppe verwandter Standards, welche die Diskrete Cosinustransformation (DCT) einsetzen, um entweder verlustfreie Kompression (ohne Beeinträchtigung der Bildqualität) oder verlustbehaftete Kompression (mit nicht wahrnehmbarer bis starker Beeinträchtigung) zu erstellen. Obwohl die JPEG-Kompression ursprünglich vielmehr für die Kompression von Standbildern als für jene von Videobildern konzipiert wurde, wird sie in einigen Bewegtvideoanwendungen eingesetzt. Das RLE-Kompressionsverfahren funktioniert, indem eine einzige Zeile der Bitmap auf duplizierte Pixel überprüft und anstelle der Daten für die Pixel selbst die Anzahl konsekutiver duplizierter Pixel gespeichert wird.
  • Im Gegensatz zu den Kompressionsalgorithmen für Standbilder sind die meisten Videokompressionsalgorithmen für die Kompression von Bewegtvideo konzipiert. Wie oben erwähnt, verwenden Videokompressionsalgorithmen für Bewegtvideo ein als Interframe Compression bezeichnetes Konzept, um zeitliche Redundanzen zwischen Vollbildern zu entfernen. Interframe Compression beinhaltet, dass nur die Unterschiede zwischen aufeinanderfolgenden Vollbildern in der Datendatei gespeichert werden. Bei der Interframe Compression wird das gesamte Bild eines Schlüsselvollbilds oder Referenzvollbilds gespeichert, und zwar gemeinhin in einem mäßig komprimierten Format. Aufeinanderfolgende Vollbilder werden mit dem Schlüsselvollbild verglichen, und nur die Unterschiede zwischen dem Schlüsselvollbild und den aufeinanderfolgenden Vollbildern werden gespeichert. In periodischen Abständen, z.B. wenn neue Szenen abgespielt werden, werden neue Schlüsselvollbilder gespeichert, und anschließende Vergleiche beginnen bei diesem neuen Referenzpunkt. Zu beachten gilt, dass sich das Interframe Compression-Verhältnis konstant halten lässt, während die Videoqualität variiert wird. Alternativ dazu können Interframe Compression-Verhältnisse vom Inhalt abhängig sein, was bedeutet, dass die Kompression weniger effizient ist, wenn der Videoclip, welcher komprimiert wird, viele abrupte Szenenübergänge von einem Bild zum nächsten enthält. Als Beispiele für Videokompressionsverfahren, welche eine Interframe-Kompressionstechnik benützen, lassen sich MPEG, DVI und Indeo, u.a. anführen
  • Hintergrund des MPEG-Standards
  • Unter einem Kompressionsstandard, welcher als MPEG (Moving Pictures Experts Group) bezeichnet wird, ist eine Gruppe von Verfahren zur Kompression und Dekompression von Bewegtvideobildern zu verstehen, welche die oben beschriebenen Techniken der Interframe und Intraframe Compression einsetzt. MPEG-Kompression gebraucht u.a. sowohl den Prozess des Bewegungsausgleichs als auch jenen der Diskreten Cosinustransformation (DCT) und ist in der Lage, Kompressionsverhältnisse von über 200:1 hervorzubringen.
  • Die beiden vorherrschenden MPEG-Standards werden MPEG-1 und MPEG-2 genannt. Der MPEG-1-Standard betrifft im allgemeinen inter-field Datenreduktion mittels blockbasierter Bewegungsausgleichsvorhersage (Motion Compensation Prediction/MCP), welche üblicherweise zeitliche differentielle Pulscodemodulation (Differential Pulse Code Modulation/DPCM) verwendet. Der MPEG-2-Standard ähnelt dem MPEG-1-Standard, enthält jedoch Erweiterungen zur Abdeckung eines größeren Anwendungsbereichs, in welchen auch digitales Zeilensprungvideo, z.B. hochauflösendes Fernsehen (High Definition Television/HDTV) fällt.
  • Verfahren zur Interframe Compression wie MPEG gründen auf der Tatsache, dass in den meisten Videosequenzen der Hintergrund verhältnismäßig stabil bleibt, während die Handlung im Vordergrund stattfindet. Der Hintergrund kann sich durchaus bewegen, dennoch sind große Abschnitte aufeinanderfolgender Vollbilder in einer Videosequenz redundant. Diese inhärente Redundanz macht sich MPEG-Kompression zunutze, um Vollbilder in der Sequenz zu codieren oder zu komprimieren.
  • Ein MPEG-Strom umfasst drei Arten von Bildern, nämlich Intra (I)-Bilder, Prädiktions (P)-Bilder und bidirektionale interpolierte (B)-Bilder. I-Bilder oder Intraframes enthalten die Videodaten für den ganzen Videoframe und sind typischerweise alle 10 bis 15 Vollbilder angeordnet. Intraframes stellen Eingangspunkte in die Datei für Random Access zur Verfügung und sind üblicherweise nur mäßig komprimiert. Prädiktionsbilder werden im Bezug auf ein vergangenes Vollbild codiert, d.h. auf ein vorangehendes Intraframe oder Prädiktionsbild. Daher enthalten P-Bilder nur Veränderungen im Bezug auf vorangehende I- oder P-Bilder. Im allgemeinen werden Prädiktionsbilder einer ziemlich starken Kompression unterzogen und als Referenzen für künftige Prädiktionsbilder benützt. Sowohl I- als auch P-Bilder werden somit als Referenzen für nachfolgende Vollbilder gebraucht. Bidirektionale Bilder werden am stärksten komprimiert und ihre Codierung erfordert nicht nur eine vergangene, sondern auch eine künftige Referenz. Als Referenzen für andere Vollbilder werden bidirektionale Bilder nie verwendet.
  • Bei dem (den) Vollbild(ern), welche(s) einem Referenzvollbild folgt(-en), d.h. bei P- und B-Bildern, welche einem Referenz-I- oder Referenz-P-Bild folgen, unterscheiden sich nur kleine Abschnitte dieser Vollbilder von den entsprechenden Abschnitten des entsprechenden Referenzvollbilds. Deshalb werden für diese Vollbilder nur die Unterschiede festgehalten, komprimiert und gespeichert. Die Unterschiede zwischen diesen Vollbildern werden typischerweise unter Verwendung von Bewegungsvektorvorhersagelogik erzeugt, wie nachstehend erläutert.
  • Empfängt ein MPEG-Codierer eine Videodatei oder einen Bitstrom, erzeugt er im allgemeinen zunächst die I-Bilder. Der MPEG-Codierer ist in der Lage, das I-Bild mittels einer verlustfreien Technik zur Intraframe Compression zu komprimieren. Nach Erzeugung der I-Bilder teilt der MPEG-Codierer die jeweiligen Vollbilder in ein Gitter aus 16 × 16 Pixelquadraten, welche Makroblöcke genannt werden. Die Einteilung der jeweiligen Vollbilder in Makroblöcke wird zwecks Durchführung von Bewegungsschätzung/Bewegungsausgleich vorgenommen. Deshalb sucht der Codierer für ein jeweiliges Zielbild oder Zielvollbild, d.h. für ein Vollbild, welches codiert wird, nach einer exakten, oder nahezu exakten, Entsprechung zwischen dem Zielbildmakroblock und einem Block in einem benachbarten Bild, welches als Suchvollbild bezeichnet wird. Für ein Ziel-P-Bild sucht der Codierer in einem vorangehenden I- oder P-Bild. Für ein Ziel-B-Bild sucht der Codierer in einem vorangehenden und/oder nachfolgenden I- oder P-Bild. Sobald eine Entsprechung gefunden ist, überträgt der Codierer einen Vektorbewegungscode oder einen Bewegungsvektor. Der Vektorbewegungscode oder Bewegungsvektor enthält nur Informationen über den Unterschied zwischen dem Suchvollbild und dem jeweiligen Zielbild. Jene Blöcke in Zielbildern, welche keine Verränderung gegenüber dem Block in dem Referenzbild oder I-Bild aufweisen, werden nicht beachtet. Auf diese Weise wird die tatsächlich für diese Vollbilder gespeicherte Datenmenge erheblich verringert.
  • Nach Erzeugung der Bewegungsvektoren codiert der Codierer die Veränderungen unter Verwendung räumlicher Redundanz. Nachdem die Veränderungen an den jeweiligen Stellen der Makroblöcke gefunden wurden, berechnet der MPEG-Algorithmus ferner den Unterschied zwischen entsprechenden Makroblöcken und codiert diesen. Das Codieren des Unterschieds erfolgt mittels eines mathematischen Vorgangs, welcher als Diskrete Cosinustransformation oder DCT bezeichnet wird. Dieser Vorgang teilt den Makroblock in Unterblöcke, wobei Veränderungen in Farbe und Helligkeit ausfindig gemacht werden. Die menschliche Wahrnehmung reagiert auf Helligkeitsveränderungen empfindlicher als auf Farbveränderungen. Aus diesem Grund verwendet der MPEG-Algorithmus mehr Leistung auf die Verringerung des Farbabstands als auf die Helligkeit.
  • Folglich basiert MPEG-Kompression auf zwei Arten von Redundanz in Videosequenzen, nämlich auf der räumlichen, bei der es sich um die Redundanz in einem individuellen Vollbild handelt, und auf der zeitlichen, bei der es sich um die Redundanz zwischen aufeinander folgenden Vollbildern handelt. Räumliche Kompression wird durch Berücksichtigen der Frequenzmerkmale eines Picture Frames erreicht. Zunächst wird jedes Vollbild in einander nicht überlappende Blöcke geteilt, dann wird jeder Block mittels der Diskreten Cosinustransformation (DCT) transformiert. Nachdem die transformierten Blöcke zum „DCT-Bereich" konvertiert wurden, wird jeder Eingang in den transformierten Block mit Bezug auf eine Gruppe von Quantisierungstabellen quantisiert. Unter Berücksichtigung der Empfindlichkeit des visuellen Wahrnehmungssystems des Menschen gegenüber der Frequenz kann der Schritt des Quantisierens für jeden Eingang variieren. Da das visuelle Wahrnehmungssystem des Menschen niedrigen Frequenzen gegenüber empfindlicher ist, werden die meisten hohen Frenquenzeingänge zu Null quantisiert. In diesem Schritt, in welchem die Eingänge quantisiert werden, gehen Informationen verloren, und Fehler werden in das rekonstruierte Bild eingeschleppt. Zur Übertragung der quantisierten Werte wird Lauflängencodierung angewandt. Um die Kompression weiter zu erhöhen, werden die Blöcke im Zickzack abgetastet, wobei das Abtasten der niedrigeren Frequenzeingänge zuerst erfolgt, und die nicht zu Null quantisierten Werte werden zusammen mit den Zero Run Lengths entropisch codiert.
  • Wie oben erläutert, nutzt zeitliche Kompression die Tatsache, dass die meisten der Objekte im Verlauf der aufeinander folgenden Picture Frames die Gleichen bleiben, und der Unterschied zwischen Objekten oder Blöcken in aufeinander folgenden Vollbildern liegt in deren Position in dem Vollbild infolge von Bewegung (entweder von Objektbewegung oder Kamerabewegung oder von beidem). Der Schlüssel zu dieser relativen Codierung heißt Bewegungsschätzung. Bewegungsschätzung ist gemeinhin bei den meisten Videokompressionsalgorithmen ein wesentliches Verarbeitungserfordernis. Wie oben beschrieben, kommt der Bewegungsschätzung die Aufgabe zu, zeitliche Redundanz zwischen Vollbildern der Videosequenz zu identifizieren.
  • Empfängt ein MPEG-Decodierer einen codierten Strom, kehrt er die obigen Abläufe um. So nimmt der MPEG-Decodierer eine Rückwärtsabtastung vor, um die Zickzackanordnung zu entfernen, eine Rückquantisierung, um die Daten zu dequantisieren, und die inverse DCT, um die Daten aus dem Frequenzbereich zurück in den Pixelbereich zu konvertieren. Außerdem führt der MPEG-Decodierer mittels der übertragenen Bewegungsvektoren einen Bewegungsausgleich durch, um die zeitlich komprimierten Vollbilder wiederherzustellen.
  • Wenn Vollbilder empfangen werden, welche als Referenzen für andere Vollbilder benützt werden, z.B. I- oder P-Bilder, werden diese Vollbilder decodiert und im Speicher abgelegt. Bei Empfang eines zeitlich komprimierten oder codierten Vollbilds, wie eines P- oder B-Bilds, wird auf dem Vollbild mittels der zuvor decodierten I- oder P-Referenzvollbilder Bewegungsausgleich durchgeführt. Das zeitlich komprimierte oder codierte Vollbild, welches als Zielvollbild bezeichnet wird, enthält Bewegungsvektoren, welche auf Referenzblöcke in zuvor decodierten I- oder P-Bildern zeigen, die in dem Speicher gespeichert sind. Der MPEG-Decodierer untersucht den Bewegungsvektor, bestimmt den jeweiligen Referenzblock in dem Referenzvollbild und greift auf jenen Referenzblock zu, auf welchen der Bewegungsvektor aus dem Speicher zeigt.
  • Ein typischer MPEG-Decodierer enthält Bewegungsausgleichslogik, welche einen örtlichen Speicher oder On-Chip-Speicher umfasst. Überdies weist der MPEG-Decodierer einen externen Speicher auf, welcher vorangehende decodierte Referenzvollbilder speichert. Bei dem externen Speicher handelt es sich bezeichnenderweise um einen Seitenspeicher, welcher Daten auf mehreren Seiten speichert. Wird auf Daten innerhalb einer Seite zugegriffen, erfolgen, wie dies wohlbekannt ist, die Speicherzugriffe rasch, d.h. ohne Wartezustände, da die Reihenadresse bekannt ist. Wenn es jedoch zu einem Page Miss oder einer Seitenkreuzung kommt, d.h. wenn Daten benötigt werden, welche sich auf einer anderen Seite befinden, als auf jener, auf die gerade zugegriffen wird, dann werden ein neues RAS und ebensolches CAS benötigt, was Wartezustände notwendig macht. Dies erhöht die Speicherzugriffslatenz und verringert damit die Systemleistung.
  • EP 0503956 beschreibt, wie ein Bewegungsvektor dafür sorgt, dass ein vorhergesagter Makroblock, der nicht an die Seitengrenzen eines externen Speichers angepasst ist, aus dem externen Speicher gelesen werden kann. Da die Pixel in Spaltenfolge geholt werden und sich in einer Pixelreihe eines Makroblocks 16 Pixel befinden, erfordert das Holen eines Makroblocks potentiell das 16-malige Kreuzen einer DRAM-Seitengrenze. Eine Lösung wird vorgeschlagen, bei welcher der Makroblock in zwei Teilen geholt wird. In der ersten Bewegungsausgleichsphase wird der Teil des Makroblocks über der horizontalen Speichergrenze in Spaltenfolge geholt. Ist die Speichergrenze in jeder Spalte erreicht, wird jedoch das erste Pixelpaar aus der nächsten Spalte geholt, anstatt die Speichergrenze zu kreuzen, um das nächste Pixelpaar der Spalte zu holen.
  • EP 0697794 beschreibt ein Verfahren und eine Vorrichtung zur effizienten DRAM-Adressierung in einem Viedeodekompressionsprozessor: Pixeldaten werden gespeichert und anschließend aus einem Random Access Memory eines Videodekompressionsprozessors in einer Weise gelesen, welche die Häufigkeit verringert, mit welcher verschiedene Reihen des RAM adressiert werden müssen, um Abschnitte der Pixeldaten daraus abzurufen. Pixeldaten aus einem Videoframe werden in dem RAM als eine Mehrzahl von Seiten gespeichert. Jede Seite füllt im wesentlichen eine andere Reihe des RAM und entspricht einem anderen Abschnitt des Videoframes. Ein Bewegungsvektor wird decodiert, um den Ort eines Vorhersagebereichs innerhalb des Videoframes zu bestimmen. Falls der Vorhersagebereich mehr als eine der Seiten des Videoframes umfasst, werden die Pixeldaten Seite für Seite abgerufen, und die Anzahl der erforderlichen Reihenwechsel bei Adressierung des RAM zwecks Abrufs der Daten wird minimiert.
  • Aufgrund obiger Erläuterungen sind ein neues System und Verfahren zur effizienten Durchführung von Bewegungsausgleich in einem MPEG-Decodierer erwünscht. Weiterhin sollen ein neues System und Verfahren die maximale Anzahl von Speicherseitenkreuzungen beim Abruf von Referenzblockdaten zur Verwendung bei Bewegungsausgleich minimieren. Darüber hinaus wird von einem neuen System und Verfahren erwartet, dass sie garantierte Leitungsmerkmale bieten.
  • Zusammenfassung der Erfindung
  • Die vorliegende Erfindung umfasst ein MPEG-Decodiersystem und -verfahren zur Decodierung von Vollbildern einer Videosequenz. Der MPEG-Decodierer enthält Bewegungsausgleichslogik, welche Bewegungsvektoren in einem codierten Vollbild des MPEG-Stroms genau untersucht und zuvor decodierte Referenzblöcke verwendet, um die von dem Bewegungsvektor codierten Daten wiederherzustellen. Der MPEG-Decodierer speichert Referenzblockdaten entsprechend einer neuartigen Anordnung versetzter Kacheln, um die maximale Anzahl von Seitenkreuzungen, welche beim Abrufen dieser Daten aus dem Speicher erforderlich ist, zu verrigern. Dies verschafft garantierte Leistung und verbesserte Effizienz gemäß der vorliegenden Erfindung.
  • Vorzugsweise umfasst die vorliegende Erfindung ein Computersystem mit einem Videodecodierer oder einem MPEG-Decodierer, welcher eine komprimierte Videodatei oder einen ebensolchen Video-Bitstrom empfängt und einen unkomprimierten oder decodierten Videostrom erzeugt. Der MPEG-Decodierer enthält einen Bewegungsausgleichsblock mit einem örtlichen Speicher. Ein externer Vollbildspeicher ist an den Bewegungsausgleichsblock gekoppelt, welcher Referenz- oder Zielvollbilddaten speichert. Der MPEG-codierte Strom umfasst zeitlich codierte Vollbilddaten, welche Bewegungsvektoren enthalten, die jeweils auf einen Referenzblock in einem Referenzvollbild der in dem Vollbildspeicher gespeicherten Videodaten zeigen. Das Bewegungsausgleichssystem hat die Funktion, einen Zielblock mittels Bewegungsvektoren zu einem zuvor decodierten Block zu decodieren, welcher als Referenz- oder Suchblock bezeichnet wird. Der Bewegungsausgleichsblock analysiert die Bewegungsvektoren und ruft die jeweiligen Referenzblöcke in Reaktion auf die Bewegungsvektoren aus dem Vollbildspeicher ab.
  • Die Referenzblöcke werden in dem externen Speicher gespeichert, und es wird von der Bewegungsausgleichslogik nach Bedarf auf sie zugegriffen. Im allgemeinen ist der Bewegungsausgleichslogik nicht im Voraus bekannt, welche Referenzblöcke aus einem Referenzvollbild für den Bewegungsausgleich benötigt werden. Bei dem Speicher handelt es sich um einen Seitenspeicher, welcher Daten auf einer oder mehr Seiten speichert. Gemäß der vorliegenden Erfindung wird jeder der Referenzblöcke in dem Referenzvollbild entsprechend einer neuartigen Anordnung versetzter Kacheln in dem Speicher gespeichert. Diese Speicheranordnung versetzter Kacheln begrenzt die maximale Anzahl von Seitenkreuzungen, zu denen es bei Abruf eines Referenzblocks aus dem externen Speicher kommt.
  • Vorzugsweise speichert der Vollbildspeicher mehrere Reihen von Makroblöcken, wobei jede Seite des Vollbildspeichers einen oder mehr Makroblöcke auf einer jeweiligen Reihe speichert. Gemäß der vorliegenden Erfindung sind jene Seiten, welche Makroblöcke auf benachbarten Reihen speichern, im Bezug aufeinander versetzt, um die maximale Anzahl von Seitenkreuzungen zu minimieren, wenn ein Referenzblock von Daten aus dem Vollbildspeicher abgerufen wird. In der bevorzugten Ausführungsform speichert jede Seite des Vollbildspeichers zwei aneinander grenzende Makroblöcke auf einer Reihe, und auf benachbarten Reihen gespeicherte Makroblöcke sind im Bezug aufeinander um eine Makroblockbreite versetzt, damit die maximale Anzahl von Seitenkreuzungen innerhalb eines vorhergesagten Halbbildmakroblocks minimiert wird.
  • Auf diese Weise führt die vorliegende Erfindung Bewegungsausgleich mit verbesserter Speicherzugriffseffizienz und/oder garantierten Leistungsmerkmalen durch.
  • Kurzbeschreibung der Zeichnungen
  • Ein besseres Verständnis der vorliegenden Erfindung lässt sich unter Berücksichtigung der nachstehenden detaillierten Beschreibung der bevorzugten Ausführungsform in Verbindung mit den folgenden Zeichnungen gewinnen, bei welchen:
  • 1 ein Computersystem veranschaulicht, welches Videodecodierung durchführt und eine Bewegungsausgleichslogik mit einem Vollbildspeicher umfasst, welcher Referenzblockdaten in einer neuartigen Anordnung versetzter Kacheln gemäß der vorliegenden Erfindung speichert;
  • 2 ein Blockdiagramm darstellt, welches das Computersystem aus 1 erläutert;
  • 3 ein Blockdiagramm ist, welches einen MPEG-Decodierer gemäß der vorliegenden Erfindung zeigt;
  • 4 die Speicherung von Referenzblöcken entsprechend einer neuartigen Anordnung versetzter Kacheln gemäß der vorliegenden Erfindung veranschaulicht;
  • 5 Bewegungsausgleich mittels vollbildbasierter Vorhersage darstellt, wobei der DCT-Block Daten in einem Vollbildmodus speichert, und zwar einschließlich Zeilen aus alternierenden Halbbildern; und
  • 6 Bewegungsausgleich mittels vollbildbasierender Vorhersage darstellt, wobei der DCT-Block Daten in einem Halbbildmodus speichert, und zwar einschließlich Zeilen von einem einzigen Halbbild.
  • Detaillierte Beschreibung
  • Videokompressionssystem
  • Unter Bezugnahme auf 1 wird nun ein System zur Durchführung von Videodecodierung oder -dekompression erläutert, welches ein Bewegungsausgleichssystem gemäß der vorliegenden Erfindung umfasst. Während einer Videodecodierung oder -dekompression führt das System der vorliegenden Erfindung einen Bewegungsausgleich zwischen zeitlich komprimierten Vollbildern einer Videosequenz durch. Anders ausgedrückt, empfängt das System der vorliegenden Erfindung Bewegungsschätzungsvektoren, welche Blöcke eines Videovollbilds repräsentieren, und stellt die komprimierten Daten im Verlauf der Videodekompression wieder her. Allerdings lässt sich das System der vorliegenden Erfindung nach Wunsch bei jeder beliebigen der vielen Anwendungsarten zwecks Durchführung von Bewegungsausgleich einsetzen.
  • Wie dargestellt, beinhaltet das Videodecodier- oder Videodekompressionssystem in einer Ausführungsform ein Mehrzweckcomputersystem 60. Das Videodecodiersystem kann jeden beliebigen der verschiedenen Systemtypen umfassen, einschließlich eines Computersystems, einer Set-Top-Box, eines Fernsehers oder irgendeines anderen Geräts.
  • Vorzugsweise ist das Computersystem 60 an eine Medienspeichereinheit 62 gekoppelt, welche digitale Videodateien speichert, die von dem Computersystem 60 dekomprimiert oder decodiert werden sollen. Die Medienspeichereinheit 62 kann außerdem die daraus hervorgehende decodierte oder dekomprimierte Videodatei speichern. Das Computersystem 60 der bevorzugten Ausführungsform empfängt eine komprimierte Videodatei oder einen komprimierten Bitstrom und erzeugt eine normale unkomprimierte digitale Videodatei. In der vorliegenden Offenbarung bezieht sich der Begriff „komprimierte Videodatei" auf eine Videodatei, die entsprechend eines beliebigen der verschiedenen Videokompressionsalgorithmen komprimiert wurde, welche Techniken zur Bewegungsausgleichsschätzung verwenden, einschließlich des MPEG-Standards, u.a., und der Begriff „unkomprimierte digitale Videodatei" bezieht sich auf einen Strom von decodiertem oder unkomprimiertem Video.
  • Wie gezeigt, umfasst das Computersystem 60 vorzugsweise einen Videodecodierer 74, welcher Vorgänge der Videodecodierung oder -dekompression ausführt. Bei dem Videodecodierer 74 handelt es sich vorrangig um einen MPEG-Decodierer. Optional kann das Computersystem 60 auch einen MPEG-Codierer 76 einschließen. Der MPEG-Decodierer 74 und der MPEG-Codierer 76 sind vorzugsweise Adapterkarten, welche an einen Bus in dem Computersystem gekoppelt, aber zur besseren Veranschaulichung außerhalb des Computersystems 60 dargestellt sind. Das Computersystem 60 beinhaltet außerdem durch Floppy Disks 72 repräsentierte Software, welche Abschnitte des Videodekompressions oder -decodiervorgangs und/oder nach Wunsch auch andere Vorgänge durchführen kann.
  • Vorzugsweise weist das Computersystem 60 verschiedene Standardkomponenten auf einschließlich eines oder mehrerer Prozessoren, eines oder mehrerer Busse, einer Festplatte und eines Speichers. 2 zeigt ein Blockdiagramm, welches die in das Computersystem aus 1 eingegliederten Komponenten darstellt. Zu beachten gilt, dass 2 lediglich der Veranschaulichung dient, und nach Wunsch auch andere Computerarchitekturen verwendbar sind. Wie dargestellt, umfasst das Computersystem mindestens einen Prozessor 80, welcher mittels Chipsatzlogik 82 an einen Systemspeicher 84 gekoppelt ist. Vorzugsweise enthält der Chipsatz 82 eine PCI-Brücke (Peripheral Component Interconnect), um mit dem PCI-Bus 86 zu interfacen, oder eine andere Art von Busbrücke, um mit einem anderen Typ eines Expansionsbuses zu interfacen. In 2 sind der MPEG-Decodierer 74 und der MPEG-Codierer 76 mit einem PCI-Bus 86 verbunden dargestellt. Verschiedene andere Komponenten können ebenfalls in das Computersystem eingebunden sein, z.B. eine Videoeinheit 88 und eine Festplatte 90.
  • Wie oben erwähnt, enthält das Computersystem 60 in der bevorzugten Ausführungsform aus 1 eine oder mehrere Digital- oder Medienspeichervorrichtungen oder ist an diese gekoppelt. Mittels eines Kabels 64 ist beispielsweise das Computersystem 60 in der Ausführungsform aus 1 an die Medienspeichereinheit 62 gekoppelt. Diese Medienspeichereinheit 62 umfasst vorzugsweise ein RAID-System (Redundant Array of Inexpensive Disks/Redundante Ansammlung preiswerter Festplatten) oder ein oder mehrere CD-ROM Laufwerke und/oder eine oder mehrere DVD-Speichereinheiten (Digital Video Disk) oder auch andere Speichermedien für Digital Video, das dekomprimiert werden soll, und/oder für die daraus resultierenden decodierten Videodaten. Das Computersystem 60 kann ferner eine oder mehrere interne RAIDs und ein oder mehrere CD-ROM-Laufwerke enthalten und/oder kann mit einer oder mehreren separaten DVD (Digital Video Disk)-Speichereinheiten verbunden sein. Überdies kann das Computersystem 60 nach Wunsch mit anderen Arten digitaler oder analoger Speichervorrichtungen oder -medien verbunden sein.
  • Als Alternative dazu kann die komprimierte digitale Videodatei aus einer externen Quelle empfangen werden, z.B. einem entfernten Speichergerät, einem entfernten Computersystem, einem Satelliten oder einem Kabelnetzwerk. In dieser Ausführungsform beinhaltet das Computersystem vorzugsweise ein Inputgerät zum Empfangen der digitalen Videodatei, z.B. eine ATM-Adapterkarte (Asynchroner Transfermodus) oder einen ISDN-Terminaladapter (Integrated Services Digital Network) oder einen anderen digitalen Datenempfänger. Die digitale Videodatei kann auch in Analogformat gespeichert/empfangen und in Digitaldaten umgewandelt werden, und zwar entweder außerhalb oder innerhalb des Computersystems 60.
  • Wie oben erwähnt, führt der MPEG-Decodierer 74 in dem Computersystem 60 Videodecodier- oder Videodekompressionsfunktionen aus. Bei Ausführung von Videodecodierung oder Videodekompression empfängt der MPEG-Decodierer 74 zeitlich komprimierte Vollbilder, welche Bewegungsvektoren enthalten, und verwendet Bewegungsausgleichstechniken, um die komprimierten Vollbilder der digitalen Videodatei zu dekomprimieren oder zu decodieren. Wie nachstehend weiter erläutert, speichert der MPEG-Decodierer 74 in dem Computersystem 60 zuvor decodierte Vollbilder in einem Speicher im Kachel-Format, um effizienten Zugriff auf gewünschte Referenzblöcke bei verringerten Seitenkreuzungen zu ermöglichen. Somit führt der MPEG-Decodierer 74 Bewegungsausgleich mit verbesserter Effizienz und garantierter Leistung gemäß der vorliegenden Erfindung durch.
  • Zu beachten gilt, dass das System zur Decodierung oder Dekompression von Videodaten nach Wunsch zwei oder mehr untereinander verbundene Computer einschließen kann. Überdies kann das System zur Decodierung oder Dekompression von Videodaten andere Hardware umfassen, z.B. eine Set-Top-Box, die entweder allein oder in Verbindung mit einem programmierbaren Mehrzweckcomputer eingesetzt wird. Anzumerken ist, dass sich je nach Wunsch jede beliebige der verschiedenen Systemarten zur Decodierung oder Dekompression von Videodaten gemäß der vorliegenden Erfindung anwenden lässt.
  • 3 – Blockdiagramm eines MPEG-Decodierers
  • Unter Bezugnahme auf 3 wird nun ein Blockdiagramm des MPEG-Decodierers 74 erläutert, welcher Bewegungsausgleich gemäß der vorliegenden Erfindung durchführt. Wie dargestellt, empfängt der Videodecodierer 74 einen codierten oder komprimierten digitalen Videostrom und gibt einen unkomprimierten digitalen Videostrom aus. Bei diesem komprimierten digitalen Videostrom handelt es sich um einen Bitstrom aus komprimierten Videodaten, welche benützt werden, um eine Videosequenz, wie einen Fernsehausschnitt oder einen Spielfilm, auf einem Bildschirm z.B. eines Fernsehers oder eines Computersystems, darzustellen. In der bevorzugten Ausführungsform wird der komprimierte digitale Videostrom mittels des MPEG-2 Kompressionsalgorithmus komprimiert, und demzufolge wird als Videodecodierer 74 vorzugsweise ein MPEG-2 Decodierer eingesetzt. Da die Funktionsweise von MPEG-Decodierern nach Stand der Technik wohlbekannt ist, werden Einzelheiten davon, welche für das Funktionieren der vorliegenden Erfindung nicht von Belang sind, der Einfachheit halber weggelassen.
  • Wie aus 3 ersichtlich, umfasst der MPEG-Decodierer 74 einen Decodierblock 102 mit veränderlicher Länge, welcher gekoppelt ist, um eine Ausgabe an einen Rückwärtsabtastungsblock 104 zu liefern, welcher gekoppelt ist, um eine Ausgabe an einen Rückquantisierungsblock 106 zu liefern, welcher gekoppelt ist, um eine Ausgabe an einen Block 108 der inversen DCT zu liefern, welcher gekoppelt ist, um eine Ausgabe an einen Bewegungsausgleichsblock 110 zu liefern. Der Bewegungsausgleichsblock 110 liefert seinerseits eine Ausgabe, welche decodierte Samples umfasst. Ein Vollbildspeicher 112 ist an den Ausgang des Bewegungsausgleichsblocks 110 gekoppelt, um decodierte Vollbilddaten zu empfangen und zu speichern. Der Bewegungsausgleichsblock 110 ist an einen Ausgang des Vollbildspeichers 112 gekoppelt, um Referenzblockdaten aus dem Vollbildspeicher 112 während des Bewegungsausgleichs zu empfangen.
  • 3 zeigt weiterhin, dass der Decodierblock 102 mit veränderlicher Länge codierte Daten empfängt und Decodierung mit veränderlicher Länge durchführt. Wie allgemein bekannt, sorgt der MPEG-Standard dafür, dass Daten zur Übertragung mittels Codes mit veränderlicher Länge komprimiert werden. Daher decodiert der Decodierblock 102 mit veränderlicher Länge diese Daten und erzeugt eine Ausgabe, welche als QFS[n] bezeichnet wird. Die Ausgabe QFS[n] des Decodierblocks 102 mit veränderlicher Länge wird dem Rückwärtsabtastungsblock 104 zur Verfügung gestellt. Der Rückwärtsabtastungsblock 104 kehrt die Zickzack-Abtast-Ordnung der empfangenen Daten (ist dies richtig) um und erzeugt eine Ausgabe, welche als QF[v][u] bezeichnet wird. Die Ausgabe QF[v][u] wird dem Rückquantisierungsblock 106 zur Verfügung gestellt. Der Rückquantisierungsblock 106 führt Rückquantisierung durch oder dequantisiert die Daten, um dequantisierte Daten zu erzeugen, welche als F[v][u] bezeichnet werden. Die Ausgabe F[v][u] des Rückquantisierungsblocks 106 wird dem Block 108 der inversen Diskreten Cosinustransformation zur Verfügung gestellt, welcher die inverse Diskrete Cosinustransformation durchführt, um die Daten aus dem Frequenzbereich zurück in den Pixelbereich zu konvertieren. Der Block 108 der inversen DCT erzeugt eine Ausgabe, welche als f[y][x] bezeichnet wird. Die Ausgabe f[y][x] des Blocks 108 der inversen DCT wird dem Bewegungsausgleichsblock 110 zur Verfügung gestellt.
  • Die Ausgabe f[y][x] aus dem Block 108 der inversen DCT umfasst zeitlich codierte Vollbilder aus Pixeldaten. Der Bewegungsausgleichsblock 110 dekomprimiert die zeitlich komprimierten Vollbilder mittels Bewegungsausgleichstechniken. Wie oben beschrieben, enthält ein MPEG-codierter Strom I-, P- und B-Bilder. P- und B-Bilder sind im Bezug auf andere Vollbilder zeitlich komprimiert. P-Bilder sind im Bezug auf vorangehende I- oder P-Bilder zeitlich komprimiert, und B-Bilder sind im Bezug auf vorangehende oder nachfolgende I- oder P-Bilder zeitlich komprimiert. Wird ein Vollbild zeitlich komprimiert, wird es in Makroblöcke aufgeteilt, welche Zielblöcke genannt werden, und dann sucht das Kompressionsverfahren in benachbarten Vollbildern nach Blöcken, welche dem Block, der codiert wird, am ähnlichsten sind. Sobald der am besten passende Block gefunden ist, wird der jeweilige Zielblock durch einen Bewegungsvektor codiert, welcher auf diesen am besten passenden Referenzblock in dem Referenzvollbild zeigt. Der Unterschied zwischen dem Block, der codiert wird, und dem am besten passenden Block wird außerdem errechnet und in den MPEG-Strom transferiert.
  • Aus dem Bewegungsausgleichsblock 110 ausgegebene Pixelwerte werden einem Vollbildspeicher 112 zur Verfügung gestellt. Folglich ist der Vollbildspeicher 112 an den Bewegungsausgleichsblock 110 gekoppelt und speichert eines oder mehr Referenzvollbilder von Videodaten. Diese Referenzvollbilder von Videodaten werden verwendet bei Durchführung von Bewegungsausgleich auf zeitlich komprimierten Vollbildern, wie P- und B-Bildern. Im allgemeinen umfasst ein MPEG-Strom kodierte Referenzvollbilddaten, welche vor zeitlich komprimierten Daten übertragen werden, welche von den zuvor übertragenen Referenzvollbilddaten abhängen. Somit enthalten eintreffende zeitlich kodierte Vollbilddaten, wie P- und B-Bilddaten, Bewegungsvektoren, welche auf Referenzblöcke in einem zuvor übertragenen Referenzvollbild von Videodaten zeigen, welches in dem Vollbildspeicher 112 gespeichert wurde. Der Bewegungsausgleichsblock 110 analysiert jeden Bewegungsvektor aus den eintreffenden zeitlich komprimierten Daten und ruft einen Referenzblock aus dem Vollbildspeicher 112 als Reaktion auf jeden Bewegungsvektor ab. Der Bewegungsausgleichsblock 110 enthält einen örtlichen Speicher oder On-Chip-Speicher 116, welcher den abgerufenen Referenzblock speichert. Der Bewegungsausgleichsblock 110 benützt dann diesen abgerufenen Referenzblock, um die zeitlich komprimierten Daten zu dekomprimieren.
  • In der bevorzugten Ausführungsform ist der Vollbildspeicher 112 ein 1M × 16 SDRAM, z.B. ein Samsung KM416S1120AT-12, mit einer Betriebsfrequenz von 67.5 MHz und einer Burst-Größe von vier Worten. Vorzugsweise handelt es sich bei dem Vollbildspeicher 112 um einen Seitenspeicher, welcher Daten auf mehreren Seiten speichert. Wie dies wohlbekannt ist, verwenden Seitenspeicher bezeichnenderweise ein RAS (Row Address Strobe/Reihenadresssignal) und ein CAS (Column Address Strobe/Spaltenadresssignal), um auf Daten innerhalb der jeweiligen Seiten zuzugreifen. Dass beim Zugriff auf Daten innerhalb einer Seite die Speicherzugriffe schnell erfolgen, weil die Reihe bekannt ist, und Wartezustände nicht erforderlich sind, ist ebenfalls Allgemeingut. Wenn es jedoch zu einem Page Miss oder zu einer Seitenkreuzung kommt, d.h. wenn Daten benötigt werden, welche sich auf einer anderen Seite befinden, als auf jener, auf die gerade zugegriffen wird, dann werden ein neues RAS und ein ebensolches CAS benötigt, was Wartezustände erfordert. Dies erhöht die Speicherzugriffslatenz und verringert demzufolge die Leistung.
  • Gemäß der vorliegenden Erfindung ist jeder der Referenzblöcke in dem Referenzvollbild entsprechend einer neuartigen Anordnung versetzter Kacheln in dem Vollbildspeicher 112 gespeichert. Diese Speicherungsanordnung versetzter Kacheln begrenzt die maximale Anzahl von Seitenkreuzungen, zu denen es bei Abruf eines Referenzblocks aus dem Vollbildspeicher 112 kommt.
  • Wie dargestellt, enthält die Bewegungsausgleichslogik 110 eine Speichersteuereinheit 120, welche auf einen Referenzblock aus dem Vollbildspeicher 112 basierend auf einem empfangenen Bewegungsvektor in einem zeitlich komprimierten Vollbild zugreift. Wie nachfolgend weiter erläutert, greift die Speichersteuereinheit 120 intelligent auf den gesamten Abschnitt eines Referenzblocks aus jeder der jeweiligen Speicherseiten zu, wo sich die Daten befinden, damit die Anzahl der erforderlichen Seitenkreuzungen minimiert wird.
  • 4 – Speicherung mit Hilfe versetzter Kacheln
  • 4 zeigt ein Diagramm, welches eine Art veranschaulicht, nach welcher Referenzmakroblöcke oder Referenzblöcke in dem Vollbildspeicher 112 in einer Anordnung versetzter Kacheln gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung gespeichert werden. Wie dargestellt, speichert der Vollbildspeicher 112 vorzugsweise mehrere Reihen von Makroblöcken, wobei jede Seite des Vollbildspeichers einen oder mehr Makroblöcke auf einer jeweiligen Reihe speichert. Gemäß der vorliegenden Erfindung sind jene Seiten, welche Makroblöcke auf benachbarten Reihen speichern, im Bezug zueinander versetzt, um bei Abruf eines Referenzblocks von Daten aus dem Vollbildspeicher 112 die maximale Anzahl von Seitenkreuzungen zu minimieren.
  • Wie aus 4 hervorgeht, kann ein Referenzvollbild als eine Mehrzahl von Reihen von Makroblöcken angesehen werden. Makroblöcke in benachbarten Reihen oder Zeilen sind, wie 4a4d veranschaulichen, versetzt, um Seitenkreuzungen oder Page Misses innerhalb eines vorhergesagten Halbbildmakroblocks zu verringern. In der bevorzugten Ausführungsform speichert jede Seite des Vollbildspeichers 112 zwei aneinander grenzende Luminanzmakroblöcke auf einer Reihe, und auf benachbarten Reihen gespeicherte Luminanzmakroblöcke sind im Bezug zueinander um eine Makroblockbreite versetzt, um die maximale Anzahl von Seitenkreuzungen innerhalb eines vorhergesagten Halbbildmakroblocks zu minimieren.
  • 4a zeigt eine Abbildung eines Referenzhalbbilds/-vollbilds von Luminanzblöcken mit einer ungeraden Anzahl von Makroblöcken in einer Zeile, und 4c stellt eine Abbildung eines Referenzhalbbilds/-vollbilds von Luminanzblöcken mit einer geraden Anzahl von Makroblöcken in einer Zeile dar. In ähnlicher Weise erläutert 4b eine Abbildung eines Referenzhalbbilds/-vollbilds von Chrominanzblöcken mit einer ungeraden Anzahl von Makroblöcken in einer Zeile, und 4d zeigt eine Abbildung eines Referenzhalbbilds/-vollbilds von Chrominanzblöcken mit einer geraden Anzahl von Makroblöcken in einer Zeile.
  • Wie dargestellt, erläutern 4a und 4c eine Art, nach welcher Luminanzblöcke in der Anordnung versetzter Kacheln der vorliegenden Erfindung gespeichert sind. Wie gezeigt, nehmen in der bevorzugten Ausführungsform Luminanzblöcke zweier aneinander grenzender Makroblöcke, vorzugsweise aus der selben Zeile oder Reihe von Makroblöcken, eine SDRAM-Seite ein, welche in der bevorzugten Ausführungsform 256 Worte enthält. Wie aus 4b und 4d ersichtlich, speichert eine einzelne Speicherseite vier aneinander grenzende Chrominanzmakroblöcke, vorzugsweise in einer Anordnung von 2 × 2. Somit speichert eine einzelne Speicherseite vier aneinander grenzende Chrominanzmakroblöcke, und zwar mit jeweils zwei Blöcken aus zwei benachbarten Reihen.
  • In 4a und 4c ist der Luminanzvorhersageblock oder -referenzblock schattiert. Wie gezeigt, erfordert der Abruf des Luminanzvorhersageblocks aus dem Vollbildspeicher 112 lediglich drei Seitenkreuzungen. Zu beachten gilt, dass ungeachtet dessen, wo sich der Luminanzvorhersageblock oder -referenzblock innerhalb des Referenzvollbildes in dem Vollbildspeicher 112 befindet, ein Maximum von drei Seitenkreuzungen benötigt wird, um den jeweiligen Luminanzreferenzblock aus dem Vollbildspeicher 112 abzurufen. In ähnlicher Weise ist in 4b und 4d ein Chrominanzvorhersageblock oder -referenzblock schattiert dargestellt. Zu beachten gilt, dass ungeachtet dessen, wo sich der Chrominanzvorhersageblock oder -referenzblock innerhalb des Referenzvollbilds in dem Vollbildspeicher 112 befindet, ein Maximum von drei Seitenkreuzungen benötigt wird, um den jeweiligen Chrominanzreferenzblock aus dem Vollbildspeicher 112 abzurufen.
  • In der bevorzugten Ausführungsform der Erfindung enthält der Bewegungsausgleichsblock 110 eine Speichersteuereinheit 120, welche die Funktion hat, Referenzblöcke oder Vorhersageblöcke aus dem Vollbildspeicher 112 zu lesen. Wenn der Abruf eines Referenzblocks aus dem Vollbildspeicher 112 eine oder mehr Seitenkreuzungen verlangt, liest die Speichersteuereinheit 120 den gesamten relevanten Abschnitt aus einer jeweiligen Seite, bevor eine Seitenkreuzung oder ein Cross Miss stattfindet, d.h. bevor die Speichersteuereinheit 120 beginnt, einen anderen Referenzblockabschnitt aus einer anderen Seite zu lesen. In den Beispielen aus 4 ist die Speichersteuereinheit 120, welche den Lesevorgang ausführt, ausreichend intelligent, um den Vorhersagemakroblock (den schattierten Bereich aus 4a4c) zu lesen oder in drei Gebiete zu unterteilen, von denen jedes einzelne auf einer anderen Seite liegt. Die Speichersteuereinheit 120 liest der Reihe nach jeden einzelnen dieser Subdivisions-Blöcke. So liest die Speichersteuereinheit 120 den gesamten schattieren Abschnitt aus dem ersten Makroblock oder der ersten Seite, dann den gesamten schattierten Abschnitt aus dem zweiten Makroblock oder der zweiten Seite und darauf den gesamten schattierten Abschnitt aus dem dritten Makroblock oder der dritten Seite.
  • In der bevorzugten Ausführungsform der Erfindung sieht die Referenzvollbildspeicherabbildung so aus, dass ein oberes Halbbild in einer ersten Bank A liegt und ein unteres Halbbild in einer zweiten Bank B. Als Alternative dazu ist das gesamte Referenzvollbild in einer angrenzenden Speicherbank gespeichert.
  • 5 und 6 – Vollbildbasierte Vorhersage
  • Unter Bezugnahme auf 5 und 6 wird nun Bewegungsausgleich, welcher innerhalb eines Vollbilds stattfindet, d.h. vollbildbasierte Vorhersage, dargestellt. 5 veranschaulicht eine Vollbild-DCT-Ausführungsform, bei welcher Zeilen in einem DCT-Block oder Zielblock, welcher decodiert wird, Zeilen aus alternierenden Halbbildern innerhalb des Referenzvollbilds entsprechen. Anders ausgedrückt, speichert der Vollbildspeicher 112, wie oben erwähnt, ein Referenzvollbild von Daten als zwei Halbbilder, welche vorzugsweise ungerade und gerade Pixelabtastlinien umfassen. In der Vollbild-DCT-Ausführungsform aus 5 enthält der Zielblock oder DCT-Block Zeilen aus beiden Halbbildern oder aus alternierenden Halbbildern, wie dargestellt. Zu beachten gilt, dass in dieser Ausführungsform Seitenumbrüche oder Seitenkreuzungen für jedes Halbbild stattfinden. Da sich die Halbbilder jedoch in verschiedenen Banken befinden und die Bewegungsvektoren für beide Halbbilder die Gleichen sind, vollziehen sich die Seitenkreuzungen für jede jeweilige Bank oder für jedes jeweilige Halbbild an der gleichen Stelle, und daher verdoppelt sich die Anzahl der Page Misses nicht.
  • Für höchste Effizienz bei einem On-Chip-Speicher oder örtlichen Speicher wird der On-Chip-Speicher 116 vorzugsweise so klein wie möglich gehalten, und nur der Vorhersageblock oder Referenzblock wird gelesen. Daher ist in einer Ausführungsform, zwecks höchster On-Chip-Speichereffizienz, der On-Chip-Speicher 116 vorzugsweise gerade groß genug, um einen einzigen 8 × 8 Unterblock zu speichern. In dieser Ausführungsform ruft der On-Chip-Speicher 116 einen Referenzmakroblock aus dem Vollbildspeicher 112 als vier 8 × 8 Unterblöcke ab, welche der Reihe nach gelesen werden. Zwar erfordert dies eine größere Anzahl an Seitenkreuzungen, dafür aber weniger On-Chip-Speicher. Ist der On-Chip-Speicher 116 gerade groß genug, um einen einzigen 8 × 8 Unterblock zu speichern, gilt zu beachten, dass für jeden Unterblock, der gelesen wird, Seitenkreuzungen notwendig sein können. Dementsprechend würde die Anzahl der Seitenkreuzungen für das Beispiel aus 5 wie folgt betragen: Y0: 3, Y1: +1, Y2: +2, Y3: 0, CR: 3, CB: +2. Dies führt zu einer Summe von 11 Seitenkreuzungen, und die Gesamtzahl gelesener Worte beläuft sich auf 6 × 9 × 5 = 270.
  • Zwecks höchster Zugangseffizienz bei einem Off-Chip-Speicher oder Vollbildspeicher ist der On-Chip-Speicher 116 vorzugsweise ausreichend groß, um einen ganzen Makroblock zu speichern. So kann der ganze Makroblock aus dem Vollbildspeicher 112 gelesen werden und dem On-Chip-Speicher 116 auf einmal zur Verfügung gestellt werden. Zwecks höchster Zugangseffizienz bei einem Off-Chip-Speicher, d.h. zwecks höchster Speicherzugangseffizienz bei dem Vollbildspeicher 112, liest die Speichersteuereinheit 120 vorzugsweise den gesamten Luminanzblock und dann den gesamten Chrominanzblock. Die Anzahl von Seitenkreuzungen für den Luminanz- und Chrominanzblock beläuft sich jeweils auf 3, woraus sich insgesamt 6 Seitenkreuzungen ergeben. Die Gesamtzahl der gelesenen Worte beläuft sich auf 17 × 9 + 9 × 9 = 234.
  • 6 veranschaulicht eine Halbbild-DCT-Ausführungsform, bei welcher alle Zeilen in den DCT Luminanzblöcken Zeilen aus einem einzigen Halbbild entsprechen. Zu beachten gilt, dass die in 6 dargestellten Seitenumbrüche für jedes Halbbild des Referenzblocks gelten. Da sich Halbbilder in verschiedenen Banken befinden und Bewegungsvektoren für beide Halbbilder die Gleichen sind, finden Seitenkreuzungen in der gleichen Position statt, und somit verdoppelt sich die Anzahl an Page Misses nicht.
  • Zwecks höchster On-Chip-Speichereffizienz liest in der Ausführungsform aus 6 die Steuereinheit 120 wiederum nur einen Vorhersageblock nach dem anderen, und der örtliche oder On-Chip-Speicher wird vorzugsweise so klein wie möglich gehalten. Wie oben erläutert, ist daher der On-Chip-Speicher 116 in dieser Ausführungsform gerade groß genug, um einen einzigen 8 × 8 Unterblock zu speichern. Sobald der gewünschte Makroblock gelesen ist, wird nacheinander jeder der jeweiligen 8 × 8 Unterblöcke gelesen und dem On-Chip-Speicher 116 zur Verfügung gestellt. Dementsprechend muss der On-Chip-Speicher 116 lediglich groß genug für die Speicherung eines einzigen 8 × 8 Unterblocks sein, aber nicht für die Speicherung eines ganzen Makroblocks auf einmal. In der Ausführungsform aus 6, bei welcher der On-Chip-Speicher nur einen 1 × 8 Block speichern muss, ist die Seitenkreuzung, welche erforderlich ist, um einen Referenzmakroblock aus dem Vollbildspeicher 112 zu lesen, Folgende: Y0: 3, Y1: +1, Y2: +2, Y3: +1, CR: 3, CB: +2. Daher beläuft sich die Gesamtzahl von Seitenkreuzungen in dieser Ausführungsform auf 12. Es besteht ein Unterschied zu 5, da auf Y3 ein extra Page Miss kommt, wie 5 und 6 zeigen, und die Gesamtanzahl an ausgelesenen Worten beträgt 6 × 17 × 5 = 510. Zu beachten gilt, dass beide Halbbilder gelesen werden müssen, um ½ Pel-Interpolation durchzuführen.
  • Zwecks höchster Zugriffseffizienz bei einem Off-Chip-Speicher kann der On-Chip-Speicher 116 vermutlich einen ganzen Makroblock speichern. In dieser Ausführungsform liest die Speichersteuereinheit 120 einfach den ganzen Luminanzmakroblock und dann den ganzen Chrominanzmakroblock. Diese Ausführungsform erfordert pro Auslesen des Luminanzmakroblocks und des Chrominanzmakroblocks jeweils drei Seitenkreuzungen, woraus sich eine Summe von sechs Seitenkreuzungen ergibt. In dieser Ausführungsform beläuft sich die Gesamtzahl gelesener Worte auf 17 × 9 + 9 × 9 = 234.,
  • Schlussfolgerung
  • Folglich umfasst die vorliegende Erfindung ein System und ein Verfahren zur Durchführung von Bewegungsausgleich auf einem komprimierten digitalen Videostrom. Die vorliegende Erfindung speichert Referenzvollbilder in einem Format versetzter Kacheln, welches die maximale Anzahl von Seitenkreuzungen oder Page Misses minimiert, wenn diese Daten abgerufen werden. Dies verschafft verbesserte und/oder garantierte Leistung für das Bewegungsausgleichssystem.
  • Obgleich das System und das Verfahren der vorliegenden Erfindung in Verbindung mit den beschriebenen Ausführungsformen erläutert wurde, ist nicht beabsichtigt, diese auf die hierin dargelegte spezifische Form zu beschränken; hingegen besteht die Intention darin, Alternativen, Modifikationen und äquivalente Ausführungen zu erfassen, welche sich in vernünftiger Weise in das Gebiet der Erfindung einbeziehen lassen, wie es durch die beigefügten Ansprüche definiert ist.

Claims (14)

  1. System zur Durchführung von Bewegungsausgleich, umfassend: einen Bewegungsausgleichsblock (110), welcher zeitlich codierte Vollbilddaten empfängt und decodierte Daten erzeugt; und einen Vollbildspeicher (112), der mit dem Bewegungsausgleichsblock zum Speichern wenigstens eines Referenzvollbildes von Videodaten verbunden ist, wobei der Vollbildspeicher ein Seitenspeicher ist, wobei das wenigstens eine Referenzvollbild von Videodaten in einem Format versetzter Kacheln im Vollbildspeicher gespeichert ist, um die maximale Anzahl von Seitenkreuzungen zu minimieren, wenn ein Referenzblock von Daten aus dem Vollbildspeicher abgerufen wird.
  2. System nach Anspruch 1, wobei die zeitlich codierten Vollbilddaten einen oder mehr Bewegungsvektoren umfassen, welche auf einen Referenzblock in dem wenigstens einen Referenzvollbild von Videodaten zeigen, das im Vollbildspeicher gespeichert ist; wobei der Bewegungsausgleichsblock den einen oder die mehreren Bewegungsvektoren analysiert und als Reaktion auf den einen oder die mehreren Bewegungsvektoren einen oder mehr Referenzblöcke aus dem Vollbildspeicher abruft; und wobei ein oder mehr Referenzblöcke mit einer garantierten maximalen Anzahl von Seitenkreuzungen aus dem Vollbildspeicher abgerufen werden.
  3. System nach Anspruch 2, wobei der Vollbildspeicher einen Referenzblock wenigstens auf einer ersten und einer zweiten Seite speichert, wobei die erste Seite einen ersten Referenzblockabschnitt speichert und die zweite Seite einen zweiten Referenzblockabschnitt speichert; wobei der Bewegungsausgleichsblock einen örtlichen Speicher (116) umfasst; wobei der Bewegungsausgleichsblock eine Speichersteuereinheit (120) umfasst, welche als Reaktion auf den einen oder die mehreren Bewegungsvektoren auf einen oder mehr Referenzblöcke vom Vollbildspeicher zugreift und den einen oder die mehreren Referenzblöcke im örtlichen Speicher speichert; und wobei die Speichersteuereinheit auf den ganzen ersten Referenzblockabschnitt des Referenzblocks von der ersten Seite zugreift, bevor sie auf den zweiten Referenzblockabschnitt des Referenzblocks von der zweiten Seite zugreift.
  4. System nach Anspruch 1, wobei der Vollbildspeicher mehrere Reihen von Makroblöcken speichert; wobei jede Seite des Vollbildspeichers einen oder mehr Makroblöcke auf einer jeweiligen Reihe speichert; und wobei Seiten, welche Makroblöcke auf benachbarten Reihen speichern, in Bezug aufeinander versetzt sind, um die maximale Anzahl von Seitenkreuzungen zu minimieren, wenn ein Referenzblock von Daten aus dem Vollbildspeicher abgerufen wird.
  5. System nach Anspruch 4, wobei jede Seite des Vollbildspeichers zwei angrenzende Makroblöcke auf einer Reihe speichert; und wobei Makroblöcke, die auf benachbarten Reihen gespeichert sind, in Bezug aufeinander um eine Makroblockbreite versetzt sind, um die maximale Anzahl von Seitenkreuzungen innerhalb eines vorhergesagten Halbbildmakroblocks zu minimieren.
  6. System nach Anspruch 4, wobei jede Seite des Vollbildspeichers zwei angrenzende Luminanzmakroblöcke auf einer Reihe speichert.
  7. System nach Anspruch 4, wobei jede Seite des Vollbildspeichers vier angrenzende Chrominanzmakroblöcke auf zwei oder mehr Reihen speichert.
  8. MPEG-Decodierer, umfassend: einen Decodierblock (102) mit veränderlicher Länge zum Empfangen codierter Daten und Erzeugen von decodierten Daten mit veränderlicher Länge; einen Rückwärtsabtastungsblock (104), welcher die decodierten Daten mit veränderlicher Länge empfängt und rückwärts abgetastete Daten erzeugt; einen Rückquantisierungsblock (106), welcher die rückwärts abgetasteten Daten empfängt und dequantisierte Daten erzeugt; einen Block der inversen DCT (108), welcher die dequantisierten Daten empfängt und zeitlich codierte Vollbilddaten erzeugt; einen Bewegungsausgleichsblock (110), welcher die zeitlich codierten Vollbilddaten empfängt und decodierte Daten erzeugt; und einen Vollbildspeicher (112), der mit dem Bewegungsausgleichsblock zum Speichern wenigstens eines Referenzvollbildes von Videodaten verbunden ist, wobei der Vollbildspeicher ein Seitenspeicher ist, wobei das wenigstens eine Referenzvollbild von Videodaten in einem Format versetzter Kacheln im Vollbildspeicher gespeichert ist, um die maximale Anzahl von Seitenkreuzungen zu minimieren, wenn ein Referenzblock von Daten aus dem Vollbildspeicher abgerufen wird.
  9. MPEG-Decodierer nach Anspruch 8, wobei die zeitlich codierten Vollbilddaten einen oder mehr Bewegungsvektoren umfassen, welche auf einen Referenzblock in dem wenigstens einen Referenzvollbild von Videodaten zeigen, das im Vollbildspeicher gespeichert ist; wobei der Bewegungsausgleichsblock den einen oder die mehreren Bewegungsvektoren analysiert und als Reaktion auf den einen oder die mehreren Bewegungsvektoren einen oder mehr Referenzblöcke aus dem Vollbildspeicher abruft; und wobei ein oder mehr Referenzblöcke mit einer garantierten maximalen Anzahl von Seitenkreuzungen aus dem Vollbildspeicher abgerufen werden.
  10. MPEG-Decodierer nach Anspruch 9, wobei der Vollbildspeicher einen Referenzblock wenigstens auf einer ersten und einer zweiten Seite speichert, wobei die erste Seite einen ersten Referenzblockabschnitt speichert und die zweite Seite einen zweiten Referenzblockabschnitt speichert; wobei der Bewegungsausgleichsblock einen örtlichen Speicher umfasst; wobei der Bewegungsausgleichsblock eine Speichersteuereinheit umfasst, welche als Reaktion auf den einen oder die mehreren Bewegungsvektoren auf einen oder mehr Referenzblöcke vom Vollbildspeicher zugreift und den einen oder die mehreren Referenzblöcke im örtlichen Speicher (116) speichert; und wobei die Speichersteuereinheit (120) auf den ganzen ersten Referenzblockabschnitt des Referenzblocks von der ersten Seite zugreift, bevor sie auf den zweiten Referenzblockabschnitt des Referenzblocks von der zweiten Seite zugreift.
  11. MPEG-Decodierer nach Anspruch 8, wobei der Vollbildspeicher mehrere Reihen von Makroblöcken speichert; wobei jede Seite des Vollbildspeichers einen oder mehr Makroblöcke auf einer jeweiligen Reihe speichert; und wobei Seiten, welche Makroblöcke auf benachbarten Reihen speichern, in Bezug aufeinander versetzt sind, um die maximale Anzahl von Seitenkreuzungen zu minimieren, wenn ein Referenzblock von Daten aus dem Vollbildspeicher abgerufen wird.
  12. MPEG-Decodierer nach Anspruch 10, wobei jede Seite des Vollbildspeichers zwei angrenzende Makroblöcke auf einer Reihe speichert; und wobei Makroblöcke, die auf benachbarten Reihen gespeichert sind, in Bezug aufeinander um eine Makroblockbreite versetzt sind, um die maximale Anzahl von Seitenkreuzungen innerhalb eines vorhergesagten Halbbildmakroblocks zu minimieren.
  13. MPEG-Decodierer nach Anspruch 10, wobei jede Seite des Vollbildspeichers zwei angrenzende Luminanzmakroblöcke auf einer Reihe speichert.
  14. MPEG-Decodierer nach Anspruch 10, wobei jede Seite des Vollbildspeichers vier angrenzende Chrominanzmakroblöcke auf zwei oder mehr Reihen speichert.
DE69735402T 1996-12-20 1997-12-16 System und Methode zur Bewegungskompensation mit Hilfe eines Schrägziegelspeicherformats für verbesserte Effizienz Expired - Lifetime DE69735402T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/772,442 US6005624A (en) 1996-12-20 1996-12-20 System and method for performing motion compensation using a skewed tile storage format for improved efficiency
US772442 1996-12-20

Publications (2)

Publication Number Publication Date
DE69735402D1 DE69735402D1 (de) 2006-05-04
DE69735402T2 true DE69735402T2 (de) 2006-10-19

Family

ID=25095079

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69735402T Expired - Lifetime DE69735402T2 (de) 1996-12-20 1997-12-16 System und Methode zur Bewegungskompensation mit Hilfe eines Schrägziegelspeicherformats für verbesserte Effizienz

Country Status (4)

Country Link
US (1) US6005624A (de)
EP (1) EP0849953B1 (de)
JP (1) JP3966524B2 (de)
DE (1) DE69735402T2 (de)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088047A (en) * 1997-12-30 2000-07-11 Sony Corporation Motion compensated digital video decoding with buffered picture storage memory map
US6215822B1 (en) 1997-12-30 2001-04-10 Sony Corporation Motion compensated digital video decoding and buffer memory addressing therefor
WO1999016252A1 (en) * 1997-09-19 1999-04-01 Sony Electronics Inc. Motion compensated digital video decoding with buffered picture storage memory map
KR19990060797A (ko) * 1997-12-31 1999-07-26 구자홍 복호화된 이미지 데이타의 메모리 할당방법과 그장치
FR2787669B1 (fr) 1998-12-22 2001-03-02 Thomson Multimedia Sa Procede d'adressage pour la memorisation de blocs d'image
WO2000059218A1 (en) * 1999-03-30 2000-10-05 Sony Electronics Inc. Digital video decoding, buffering and frame-rate converting method and apparatus
US7039241B1 (en) * 2000-08-11 2006-05-02 Ati Technologies, Inc. Method and apparatus for compression and decompression of color data
US7602847B1 (en) * 2001-03-27 2009-10-13 Vixs Systems, Inc. Device and method for compression of a video stream
US8107524B2 (en) * 2001-03-30 2012-01-31 Vixs Systems, Inc. Adaptive bandwidth footprint matching for multiple compressed video streams in a fixed bandwidth network
US20070053428A1 (en) * 2001-03-30 2007-03-08 Vixs Systems, Inc. Managed degradation of a video stream
TW515952B (en) * 2001-04-23 2003-01-01 Mediatek Inc Memory access method
US7218842B1 (en) 2001-07-25 2007-05-15 Cisco Technology, Inc. Efficient methods of performing motion compensation based decoding and recoding of compressed video bitstreams
US6959348B1 (en) * 2001-07-30 2005-10-25 Vixs Systems, Inc. Method and system for accessing data
US7675972B1 (en) 2001-07-30 2010-03-09 Vixs Systems, Inc. System and method for multiple channel video transcoding
US6996178B1 (en) * 2001-08-27 2006-02-07 Cisco Technology, Inc. Look ahead motion compensation
US7139330B1 (en) 2001-10-31 2006-11-21 Vixs Systems, Inc. System for signal mixing and method thereof
US7596127B1 (en) 2001-10-31 2009-09-29 Vixs Systems, Inc. System for allocating data in a communications system and method thereof
US7106715B1 (en) 2001-11-16 2006-09-12 Vixs Systems, Inc. System for providing data to multiple devices and method thereof
US7356079B2 (en) 2001-11-21 2008-04-08 Vixs Systems Inc. Method and system for rate control during video transcoding
US7403564B2 (en) * 2001-11-21 2008-07-22 Vixs Systems, Inc. System and method for multiple channel video transcoding
US7165180B1 (en) 2001-11-27 2007-01-16 Vixs Systems, Inc. Monolithic semiconductor device for preventing external access to an encryption key
US7310679B1 (en) 2002-04-29 2007-12-18 Vixs Systems Inc. Method and system for transmitting video content while preventing other transmissions in a contention-based network
US7120253B2 (en) * 2002-05-02 2006-10-10 Vixs Systems, Inc. Method and system for protecting video data
SG111087A1 (en) * 2002-10-03 2005-05-30 St Microelectronics Asia Cache memory system
US20040141555A1 (en) * 2003-01-16 2004-07-22 Rault Patrick M. Method of motion vector prediction and system thereof
US7408989B2 (en) * 2003-01-16 2008-08-05 Vix5 Systems Inc Method of video encoding using windows and system thereof
US7133452B1 (en) 2003-02-24 2006-11-07 Vixs Systems, Inc. Method and system for transcoding video data
US7606305B1 (en) 2003-02-24 2009-10-20 Vixs Systems, Inc. Method and system for transcoding video data
US7327784B2 (en) * 2003-02-24 2008-02-05 Vixs Systems, Inc. Method and system for transcoding video data
US7130350B1 (en) 2003-02-28 2006-10-31 Vixs Systems, Inc. Method and system for encoding and decoding data in a video stream
EP1602240A2 (de) 2003-03-03 2005-12-07 Mobilygen Corporation Speicherwort-anordnung und zusammenstellung von video prädiktionsdaten zum wirksameren speicherzugriff
US7739105B2 (en) * 2003-06-13 2010-06-15 Vixs Systems, Inc. System and method for processing audio frames
US7668396B2 (en) * 2003-09-29 2010-02-23 Vixs Systems, Inc. Method and system for noise reduction in an image
US7277101B2 (en) 2003-09-29 2007-10-02 Vixs Systems Inc Method and system for scaling images
GB0323284D0 (en) 2003-10-04 2003-11-05 Koninkl Philips Electronics Nv Method and apparatus for processing image data
US7406598B2 (en) * 2004-02-17 2008-07-29 Vixs Systems Inc. Method and system for secure content distribution
US7480335B2 (en) * 2004-05-21 2009-01-20 Broadcom Corporation Video decoder for decoding macroblock adaptive field/frame coded video data with spatial prediction
US7421048B2 (en) * 2005-01-20 2008-09-02 Vixs Systems, Inc. System and method for multimedia delivery in a wireless environment
US7609766B2 (en) * 2005-02-08 2009-10-27 Vixs Systems, Inc. System of intra-picture complexity preprocessing
US8949920B2 (en) * 2005-03-17 2015-02-03 Vixs Systems Inc. System and method for storage device emulation in a multimedia processing system
US7400869B2 (en) * 2005-03-22 2008-07-15 Vixs Systems Inc. System and method for adaptive DC offset compensation in wireless transmissions
US7660354B2 (en) * 2005-05-11 2010-02-09 Fang Shi Temporal error concealment for bi-directionally predicted frames
US7707485B2 (en) 2005-09-28 2010-04-27 Vixs Systems, Inc. System and method for dynamic transrating based on content
US20070112826A1 (en) * 2005-11-10 2007-05-17 Vixs Systems, Inc. Multimedia transcoding based on remaining storage capacity
US8131995B2 (en) * 2006-01-24 2012-03-06 Vixs Systems, Inc. Processing feature revocation and reinvocation
US20070242746A1 (en) * 2006-04-12 2007-10-18 Takehiro Kishimoto Video signal processing device
US7768520B2 (en) * 2006-05-03 2010-08-03 Ittiam Systems (P) Ltd. Hierarchical tiling of data for efficient data access in high performance video applications
US20080137745A1 (en) * 2006-12-12 2008-06-12 Yu-Jen Lai Method and device for processing video data
DE102007005866B4 (de) * 2007-02-06 2021-11-04 Intel Deutschland Gmbh Anordnung, Verfahren und Computerprogramm-Produkt zum Anzeigen einer Folge von digitalen Bildern
US8090718B2 (en) * 2008-04-17 2012-01-03 Research In Motion Limited Methods and apparatus for improving backward seek performance for multimedia files
WO2010014696A1 (en) 2008-07-29 2010-02-04 Marvell World Trade, Ltd. Processing rasterized data
US10085016B1 (en) 2013-01-18 2018-09-25 Ovics Video prediction cache indexing systems and methods
US9270999B2 (en) 2013-09-25 2016-02-23 Apple Inc. Delayed chroma processing in block processing pipelines
US9305325B2 (en) 2013-09-25 2016-04-05 Apple Inc. Neighbor context caching in block processing pipelines
US9299122B2 (en) 2013-09-25 2016-03-29 Apple Inc. Neighbor context processing in block processing pipelines
US9218639B2 (en) 2013-09-27 2015-12-22 Apple Inc. Processing order in block processing pipelines
US9215472B2 (en) 2013-09-27 2015-12-15 Apple Inc. Parallel hardware and software block processing pipelines
US9571846B2 (en) 2013-09-27 2017-02-14 Apple Inc. Data storage and access in block processing pipelines
US9807410B2 (en) 2014-07-02 2017-10-31 Apple Inc. Late-stage mode conversions in pipelined video encoders

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5136717A (en) * 1988-11-23 1992-08-04 Flavors Technology Inc. Realtime systolic, multiple-instruction, single-data parallel computer system
CA2062200A1 (en) * 1991-03-15 1992-09-16 Stephen C. Purcell Decompression processor for video applications
JPH0620050A (ja) * 1992-07-03 1994-01-28 Matsushita Electric Ind Co Ltd 動画像信号の復号化装置と推定動きベクトル算出方法
US5278647A (en) * 1992-08-05 1994-01-11 At&T Bell Laboratories Video decoder using adaptive macroblock leak signals
NL9201640A (nl) * 1992-09-22 1994-04-18 Nederland Ptt Systeem omvattende ten minste één encoder voor het coderen van een digitaal signaal en ten minste één decoder voor het decoderen van een digitaal signaal, en encoder en decoder voor toepassing in het systeem volgens de uitvinding.
KR960010487B1 (ko) * 1993-08-18 1996-08-01 엘지전자 주식회사 움직임 벡터를 이용한 순차주사식 영상포맷변환장치
US5623459A (en) * 1993-09-29 1997-04-22 Sony Corporation Method and apparatus for error correcting reproduced data
EP0690392B1 (de) * 1994-06-30 2001-09-26 Koninklijke Philips Electronics N.V. Verfahren und Einrichtung zur Codeumwandlung von codiertem Datenstrom
TW245871B (en) * 1994-08-15 1995-04-21 Gen Instrument Corp Method and apparatus for efficient addressing of dram in a video decompression processor
US5784011A (en) * 1996-06-14 1998-07-21 Lsi Logic Corporation Multiplier circuit for performing inverse quantization arithmetic
US5781239A (en) * 1996-06-20 1998-07-14 Lsi Logic Corporation System and method for performing an optimized inverse discrete cosine transform with improved efficiency
US5883679A (en) * 1997-02-20 1999-03-16 C-Cube Microsystems, Inc. Scanning scheme for images stored in dynamic random access memory

Also Published As

Publication number Publication date
EP0849953A3 (de) 2000-10-25
JPH10294947A (ja) 1998-11-04
EP0849953B1 (de) 2006-03-08
EP0849953A2 (de) 1998-06-24
JP3966524B2 (ja) 2007-08-29
US6005624A (en) 1999-12-21
DE69735402D1 (de) 2006-05-04

Similar Documents

Publication Publication Date Title
DE69735402T2 (de) System und Methode zur Bewegungskompensation mit Hilfe eines Schrägziegelspeicherformats für verbesserte Effizienz
DE19702048C2 (de) Skalierbarer Videocodierer gemäß MPEG2-Standard
DE69838729T2 (de) Verfahren und vorrichtung zur verringerung des benötigten speicherplatzes zur speicherung von referenzbildern in einem videodekoder
DE60305325T2 (de) System und verfahren zur ratenverzerrungsoptimierten datenpartitionierung zur videocodierung unter verwendung von rückwärtsadaption
DE69738262T2 (de) Videokodierungs- und Videodekodierungsvorrichtung
EP0687111B1 (de) Verfahren zur Codierung/Decodierung eines Datenstroms
DE4305578B4 (de) Fehlerverdeckung in decodierten Videosignalen
DE69839100T2 (de) Verbesserte Videokodierung unter Verwendung von adaptiven Blockparametern für kodierte/unkodierte Blöcke
DE69433272T2 (de) Vorrichtung zum Vermeiden von Rundungsfehlern bei der inversen Transformation von Transformationskoeffizienten eines Bewegtbildsignales
DE69824486T2 (de) Kodier- und Dekodierverfahren für Videosignal mit Zwischenbild mit Konvertierung periodisch ausgewählter Videohalbbilder zu Videobildern mit progressiver Abtastung
DE69634052T2 (de) Schaltung zur Bewegtbilddecodierung
DE69434668T2 (de) Adaptives Codierungs- und Decodierungsverfahren mit variabler Länge für Bilddaten
DE69830802T2 (de) Zuweisung von rechenleistung in einem informationsstrom-dekoder
DE60125301T2 (de) Videosignaltranskodierung
DE69924102T2 (de) Skalierung komprimierter bilder
DE60309375T2 (de) Parametrisierung für verlauf-kompensation
DE19709391A1 (de) MPEG-Codier- und Decodiersystem für Multimediaanwendungen
DE19825042A1 (de) Verfahren zur Bewegungsvektorcodierung bei MPEG-4
DE69915843T2 (de) Teilbandkodierung/-dekodierung
DE69736620T2 (de) Videodecoder mit einem horizontalen Polyphasen-Fir-Filter
DE69916662T2 (de) Verfahren und vorrichtung zur bewegungskompensation in einem texturabbildungssystem
DE19907132B4 (de) Videodecoder für einen Digitalfernseher
DE112015001531T5 (de) Datenkodierung und Dekodierung
EP0956703B1 (de) Verfahren und anordnung zur codierung und decodierung eines digitalisierten bildes
DE69629442T2 (de) Verfahren und Einrichtung zur Kodierung digitaler Videosignale

Legal Events

Date Code Title Description
8364 No opposition during term of opposition