DE69731342T2 - Bildverarbeitungsvorrichtung - Google Patents

Bildverarbeitungsvorrichtung Download PDF

Info

Publication number
DE69731342T2
DE69731342T2 DE69731342T DE69731342T DE69731342T2 DE 69731342 T2 DE69731342 T2 DE 69731342T2 DE 69731342 T DE69731342 T DE 69731342T DE 69731342 T DE69731342 T DE 69731342T DE 69731342 T2 DE69731342 T2 DE 69731342T2
Authority
DE
Germany
Prior art keywords
slot
memory
field
data
image
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
DE69731342T
Other languages
English (en)
Other versions
DE69731342D1 (de
Inventor
Akihiro Uda-gun Watabe
Eiji Osaka-shi Miyagoshi
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.)
Panasonic Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of DE69731342D1 publication Critical patent/DE69731342D1/de
Application granted granted Critical
Publication of DE69731342T2 publication Critical patent/DE69731342T2/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/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
    • H04N19/426Methods 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 using memory downsizing methods
    • H04N19/427Display on the fly, e.g. simultaneous writing to and reading from decoding memory
    • 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/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

  • Diese Erfindung betrifft einen Bildprozessor, der geeignet ist, zur Decodierung von Bildinformation verwendet zu werden.
  • Die Kompression und Dekompression von Bewegtbilddaten ist international durch MPEG (Moving Picture Image Coding Experts Group), benannt nach der Arbeitsgruppe der ISO/IEC, standardisiert. Ein Hauptelement eines zum Wiedergeben von Bewegtbilddaten benutzten MPEG-Decoders ist eine Datenverarbeitungseinheit, die aus einen Decoder variabler Länge (VLD), einem inversen Quantisierer (IQ), einem inversen, diskreten Kosinustransformator (IDCT) und einem Bewegungskompensator (MC) gebildet ist. Ein solcher MPEG-Decoder benötigt ferner einen Speicher für eine Vielzahl von Bildern zur Bewegungskompensation und Verschachtelungsumwandlung.
  • Eines der herausragenden Merkmale von MPEG ist, dass zwei Bilder (d. h. ein zeitlich früheres und ein zeitlich späteres Bild) für die Bewegungskompensationsreferenz benutzt werden. Die Anwendung von Bewegungskompensation auf jedes Bild erzeugt jedoch eine Ausbreitung von Fehlern sowie Probleme bei spezieller Wiedergabe. Um diesen Mängeln zu begegnen, sind ein intracodiertes Bild ("I-Bild"), ein prädiktiv codiertes Bild ("P-Bild") und ein bidirektional, prädiktiv codiertes Bild ("B-Bild") eingeführt worden. Ein I-Bild, d. h. ein Bild des Codierungstyps I, hat keinerlei Bezug zu irgendwelchen anderen Bildern. Ein P-Bild, d. h. ein Bild des Codierungstyps P, unterliegt der Bewegungskompensation durch ein früheres Bild. Ein B-Bild, d. h. ein Bild des Codierungstyps B, unterliegt der bidirektionalen Bewegungskompensation durch ein früheres Bild und ein späteres Bild. B-Bilder werden nicht als eine Referenz benutzt, wenn andere Bilder decodiert werden.
  • Eine Codierungstyp-Prädiktion wird nun beschrieben. Ein Bitstrom von Eingangsbildern wird in einen MPEG-Decoder in der Reihenfolge I0, P3, B1, B2 zur Decodierung eingegeben. Das Bild P3 wird von dem Bild I0 bewegungskompensiert. Das Bild B1 wird von den Bildern I0 und P3 bewegungskompensiert. Das Bild B2 wird von den Bildern I0 und P3 bewegungskompensiert. Die Anzeige der Bilder erfolgt in der Reihenfolge I0, B1, B2, P3. Die Reihenfolge der Decodierung und die Reihenfolge der Anzeige stimmen nicht überein, und es ist erforderlich, eine Änderung in der Reihenfolge vorzunehmen. Außerdem benötigt die Decodierung der Bilder B1 und B2 Daten für zwei Bildraster der Bilder I0 und P3, wodurch ein Bildspeicher für zwei Bildraster als eine Referenz zur Bewegungskompensation benötigt wird. Aus diesem Grund benötigt der MPEG-Decoder zwei Bilder als eine Referenz zur Be wegungskompensation.
  • Die Reihenfolge der Decodierung durch die Pixel und die Reihenfolge der Ausgabe durch die Pixel von MPEG werden beschrieben. Bei dem Fernsehsystem werden alle gradzahligen Zeilen vor den ungradzahligen Zeilen bereitgestellt. Mit anderen Worten, Pixel werden jede zweite Zeile ausgegeben, beginnend oben links und endend unten rechts. Ein Bereich, der aus gradzahligen Zeilen besteht, wird das obere Halbbild genannt, während andererseits ein Bereich, der aus ungradzahligen Zeilen besteht, das untere Halbbild genannt wird. Bei der verschachtelten Ausgabe wird zuerst ein oberes Halbbild von oben links nach unten rechts bereitgestellt, und dann wird ein unteres Halbbild von oben links nach unten rechts bereitgestellt.
  • Bilddaten sind 2-D-Daten, und von räumlich aneinandergrenzenden Daten wird angenommen, dass es eine starke Korrelation zwischen ihnen gibt. Für den Fall der verschachtelten Ausgabe, betrachtet man eine Zeile eine bestimmten oberen Halbbildes, ist ihre darüberliegende Zeile, d. h. eine Zeile über der fraglichen Zeile des oberen Halbbildes, jedoch eine Zeile des unteren Halbbildes. Obwohl Pixel einer Zeile eine sehr starke räumliche Korrelation mit Pixeln ihrer angrenzenden Zeile aufweisen, sind sie zeitlich getrennt. Wenn die Bewegung sehr aktiv ist, kann folglich die Möglichkeit bestehen, dass eine Zeile eine stärkere Korrelation nicht mit einer Zeile darüber, sondern mit zwei Zeilen darüber hat, denn sie liegen zeitlich angrenzend aneinander. Angenommen, dass eine solche Möglichkeit bestehen kann, wird die Reihenfolge der Decodierung durch die Pixel von MPEG grob in zwei Arten geteilt, nämlich die eine für die Vollbildstruktur und die andere für die Halbbildstruktur.
  • Unter dem MPEG-Standard wird die Decodierung unter Verwendung von 16 mal 16 Pixeln als eine Grundeinheit (genannt Makroblock) durchgeführt. Der Makroblock wird von links nach rechts decodiert. Das ganz rechte Pixel der obersten Zeile eines Bildes ist hier in dem ganz rechten Makroblock des Bildes enthalten. Wenn die Decodierung des ganz rechten Makroblocks vollendet ist, bedeutet dies, dass Daten für 16 Zeilen decodiert sind. Die Decodierung aller Daten für 16 Zeilen wird daher fast gleichzeitig vollendet.
  • Für den Fall der Vollbildstruktur bilden Daten für ein Bildraster einen aus 16 mal 16 Pixeln bestehenden Makroblock, und die Decodierung wird pro Makroblock durchgeführt. Als Folge werden das obere und untere Halbbild fast gleichzeitig decodiert. Dies erzeugt eine völlige Nichtübereinstimmung zwischen der Reihenfolge der Decodierung, und der Reihenfolge der Bildausgabe. Eine Änderung in der Reihenfolge muss vorgenommen werden.
  • Für den Fall der Halbbildstruktur wird ein Bildraster in zwei Abschnitte geteilt, eine oberes Halbbild und ein unteres Halbbild. Jedes Halbbild umfasst Makroblöcke, wobei jeder Makroblock aus 16 × 16 Pixeln gebildet wird, und die Decodierung wird pro Makroblock durchgeführt. Ein einzelner Makroblock erstreckt sich nicht über sowohl das obere als auch das untere Halbbild. Nachdem alle Daten für das obere Halbbild decodiert sind, werden die Daten für das untere Halbblid der Decodierung unterzogen. In diesem Fall werden die Bilder fast in der gleichen Reihenfolge bereitgestellt wie sie decodiert wurden. Die Reihenfolge der Decodierung und die Reihenfolge der Bildausgabe stimmen jedoch wegen der Decodierung nach Makroblöcken nicht ganz genau überein.
  • Die Bildausgabe wird so durchgeführt, dass zuerst das obere Halbbild eines Bildes bereitgestellt wird und dann das untere Halbbild bereitgestellt wird. Beachtet man den Zeitpunkt, zu dem die Ausgabe der letzten acht Zeilen eines oberen Halbbildes beginnt, muss die Decodierung eines Makroblocks für die letzten 16 Zeilen des Bildrasters vor dem Startpunkt vollendet sein. Der Grund ist, dass die Decodierung des letzten Makroblocks eines Bildes erst beginnt, wenn die Werte der ganz rechten 16 Pixel der letzten acht Zeilen bestimmt sind. Daher müssen die Decodierung sowohl des oberen Halbbildes als auch des unteren Halbbildes an dem vorangehenden Punkt vollendet sein. Von dem Punkt an müssen die acht Zeilen des oberen Halbbildes und alle Zeilen des unteren Halbbildes sequenziell bereitgestellt werden; jedoch sind die Daten für sie bereits decodiert worden. Daher werden, wenn die Daten nicht in einem Bildspeicher gespeichert werden, die Daten verloren gehen, bevor sie ausgegeben werden, was die Ausgabe keiner Bilder zur Folge hat. Dies gibt Anlass zu einer Notwendigkeit für die Bereitstellung eines Bildspeichers mit einer Speicherkapazität von einem halben Vollbild, um alle Daten für das untere Halbbild und die acht Zeilen des oberen Halbbildes zu speichern.
  • Zusammengefasst, ein 2-Bild-Speicher wird zur Bewegungskompensation benötigt, und ein etwa Halb-Vollbild-Speicher wird für die B-Bild-Verschachtelungsumwandlung benötigt. Mit anderen Worten, wenigstens ein Speicher für 2.5 Bilder ist erforderlich.
  • Ishiwata et al. berichten in einem Papier betitelt "Development of an MPEG2 Decoder LSI-Efficient Memory Allocation", Proceedings of the 1994 IEICE Spring Conference, C-659, März '94, einen MPEG-Decoder, der einen Speicher für 1.5 Bilder zur B-Bild-Verschachtelungsumwandlung einsetzt. Takabatake et al. berichten in einem Papier betitelt "DRAM Interface for MPEG2 Video Decoder LSI", Proceedings of the 1995 IEICE General Conference, C-586, März '95, einen MPEG-Decoder, der einen Ein-Bild-Speicher zur B-Bild-Verschachtelungsumwandlung einsetzt.
  • Beide oben beschriebene MPEG-Decoder sind jedoch teuer, weil sie einen Speicher mit einer Speicherkapazität, die von einem Bild bis zu 1.5 Bildern reicht, zur B-Bild-Verschachtelungsumwandlung benötigen. Im Prinzip benötigt die B-Bild-Verschachtelungsumwandlung nur einen Halb-Vollbild-Speicher, und daher besteht noch Raum für eine Verringerung der benötigten Speicherkapazität zur B-Bild-Verschachtelungsumwandlung.
  • EP-A-0 618 722 offenbart ein Verfahren zur Decodierung von Rastern von Bilddaten und Ausgeben der decodierten Bilddaten als Halbbilder. Die Bilddaten werden in Einheiten von Makroblöcken geteilt, die nacheinander decodiert werden. Der Decodierungsprozess benutzt einen Bildspeicher mit einer Kapazität von fünf Halbbildern plus weiteren zwei Zeilen von Makroblöcken. Der Speicher umfasst vier Abschnitte mit je einer Kapazität von einem Halbbild zur Speicherung von I- oder P-Bildern als eine Referenz zur Bewegungskompensation und einen restlichen Speicherabschnitt zum Ausgeben von decodierten B-Bildern als Halbbilder. Jeder Speicherabschnitt ist in eine Vielzahl einzeln zugänglicher Unterabschnitte ("Zonen") geteilt, wobei jeder Unterabschnitt eine Kapazität von einer Horizontalzeile von Makroblöcken hat. Jeder dieser Speicher-Unterabschnitte kann überschrieben werden, sobald die Bilddaten dieses Speicherabschnitts angezeigt wurden und nicht zur Bewegungskompensation benötigt werden.
  • EP-A-0 738 084 beschreibt eine Decodiervorrichtug, die Halbbilder von Bilddaten vertikal in eine Vielzahl von Bildabschnitten teilt. Die Vorrichtung umfasst zwei Bildspeicher zum Speichern von Bewegungskompensations-Referenzbildern. Außerdem enthält die Vorrichtung eine Vielzahl von Speicherzonen zur B-Bild-Verschachtelungsumwandlung.
  • Es ist eine Aufgabe der vorliegenden Erfindung, die Effizienz der Bildspeichernutzung in einem Decoder zu verbessern.
  • Diese Aufgabe wird durch die Merkmale von Anspruch 1 für einen Bildprozessor und die Merkmale von Anspruch 11 für ein Decodierverfahren erfüllt.
  • Wertere Ausführungen sind Gegenstand von abhängigen Ansprüchen.
  • Eine solche Anordnung macht es möglich, mit einem etwa 2.5-Bild-Speicher nicht nur die B-Bild-Verschachtelungsumwandlungs, sondern auch die Bewegungskompensation bezüglich aller Arten von Bildern zustande zu bringen. Außerdem wird für den Fall von drei oder mehr aufeinanderfolgenden I- und/oder P-Bildern der Datenspeicher nicht für B-Bilder benutzt, was den Vorteil bringt, das ein Block, der einen Abschnitt des Datenspeichers bildet, zur Speiche rung von I- und/oder P-Bildern benutzt werden kann.
  • Des Werteren ist es möglich, die B-Bild-Verschachtelungsumwandlung mit einem etwa Halb-Bild-Speicher durch die Anordnung zustande zu bringen, dass der Vorgang des Schreibens in einen Schlitz des Datenspeichers unmittelbar nach dem Vorgang des Lesens aus dem Schlitz durchgeführt wird.
  • 1 ist ein Blockschaltbild, das ein Beispiel des erfindungsgemäßen MPEG-Decoders zeigt.
  • 2 ist ein begriffliches Diagramm, das die innere Struktur eines in 1 gezeigten Bildspeichers zeigt.
  • 3 ist ein begriffliches Diagramm, das die innere Struktur eines in 2 gezeigten Speicherblocks zeigt.
  • 4 ist ein begriffliches Diagramm, das die innere Struktur eines in 2 gezeigten zusätzlichen Speicherblocks zeigt.
  • 5 ist ein Blockschaltbild, das die innere Struktur einer in 1 gezeigten BSAU (Bitstrom-Analyseeinheit) zeigt.
  • 6 ist ein Blockschaltbild, das die innere Struktur einer in 1 gezeigten Bildausgabeeinheit zeigt.
  • 7 ist ein Diagramm, das die Arbeitsweise der Bildausgabeeinheit von 1 im Umriss zeigt.
  • 8 ist ein Blockschaltbild, das die innere Struktur einer in 1 gezeigten Steuereinheit zeigt.
  • 9 ist ein Diagramm, das im Umriss ein Beispiel der Arbeitsweise des MPEG-Decoders von 1 zeigt.
  • 10 ist ein Diagramm, das im Detail ein Beispiel der Arbeitsweise des MPEG-Decoders von 1 zeigt.
  • 11 ist eine Fortsetzung von 10.
  • 12 ist eine Fortsetzung von 11.
  • 13 ist eine Fortsetzung von 12
  • 14 ist eine Fortsetzung von 13.
  • 15 ist eine Fortsetzung von 14.
  • 16 ist ein Diagramm, das ein Beispiel des Prozesses des Aktualisierens eines in 8 gezeigten SCM (Schlitzsteuerspeicher) zeigt.
  • 17 ist eine Fortsetzung von 16.
  • 18 ist ein äquivalentes Diagramm zu 16, wenn der zusätzliche Block von 2 aus zwei zusätzlichen Schlitzen gebildet wird.
  • 19 ist ein äquivalentes Diagramm zu 16, wenn der zusätzliche Block von 2 aus einem einzigen zusätzlichen Schlitz gebildet wird.
  • Ein MPEG-Decoder der vorliegenden Erfindung zum Wiedergeben von Bewegtbilddaten in Echtzeit wird nun mit Verweis auf die begleitenden Zeichnungen beschrieben.
  • Zuerst auf 1 verweisend wird ein Beispiel der Struktur des MPEG-Decoders veranschaulicht. Der MPEG-Decoder 10 besitzt einen Bildspeicher 11 zum Speichern von etwa 2.5-Bild-Videodaten, eine Bitstrom-Analyseeinheit (nachstehend "BSAU" genannt) 12 zum Analysieren eines Eingangsbitstromes IN, eine Bildausgabeeinheit 13 zum Bereitstellen eines Bildausgangssignals OUT und eines Unterbrechungssignals INTR und eine Steuereinheit 14 zum Bereitstellen, als Reaktion auf das Unterbrechnungssignal INTR, eines Einleitungssignals INIT an die BSAU 12. 15 ist ein Datenbus. 16 ist ein Adressbus. 17 ist ein Registerbus. Zusätzlich zum Analysieren eines Vorspannabschnitts des Eingangsbitstromes IN hat die BSAU die Funktion des Durchführens der Decodierung eines Makroblocks und Schreibens eines Ergebnisses des Decodiervorgangs in den Bildspeicher 11. Diese zwei Funktionen der BSAU 12 werden durch das von der Steuereinheit 14 empfangene Einleitungssignal INIT eingeleitet. Der Bildspeicher 11 ist zur Speicherung von Bewegungskompensations-Referenzbildern und zur Verschachtelungsumwandlung. Die Bildausgabeeinheit 13 liest rekonstruierte Videodaten aus dem Bildspeicher 11 und stellt das Bildausgangssignal OUT in der Reihenfolge der Verschachtelung bereit. Eine Verbindung des Bildausgangssignals OUT mit einer Anzeigeeinheit macht es möglich, ein decodiertes Bewegtbild auf einem Bildschirm anzuzeigen. Außerdem sendet die Bildausgabeeinheit 13 das Unterbrechungssignal INTR an die Steuereinheit 14, um die Ausgabe zu timen. Die Steuereinheit 14 kann interne Register des BSAU 12 und der Bildausgabeeinheit 13 über den Registerbus 17 lesen und für jedes der internen Register einen Wert festlegen.
  • 2 umreißt den Bildspeicher 11. 3 und 4 zeigen den Bildspeicher 11 im Detail. Wie in 2 gezeigt, besteht der Bildspeicher 11 aus fünf Blöcken 2024 und einem zusätzlichen Block 25. Diesen fünf Blöcken 2024 sind jeweilige Halbbildnummern zugeteilt, nämlich von Halbbild #0 bis Halbbild #4. Wie in 3 gezeigt, ist ein Block, z. B. der Block 20, aus N Schlitzen gebildet, denen jeweilige Schlitznummern von Schlitz #0 bis Schlitz #N – 1 zugeteilt sind. Man beachte hier, dass N ein Betrag ist, der von der Größe des durch den MPEG-Decoder zu decodierenden Bildes abhängt. Zum Beispiel ist N = 30 für den Fall des NTSC-(National Television System Committee) Bildes. Jeder der N Schltze ist in der Lage, acht Zeilen des Bildes zu speichern. Das heißt, der Block 20 hat das Vermögen, Daten für 240 Zeilen des Bildes zu speichern. Mit anderen Worten, der Block 20 ist imstande, ein Halbbild (ein halbes Bild) eines NTSC-Bildes zu speichern. Jeder der restlichen Blöcke 21, 22, 23 und 24 ist ebenfalls aus N Schlitzen gebildet. Wie in 4 gezeigt, besteht der zusätzliche Block 25 aus drei zusätzlichen Schlitzen, denen jeweilige Schlitznummern zugeteilt sind, d. h. Schlitz #N, Schlitz #N + 1 und Schlitz #N + 2.
  • Der Bildspeicher 11 wird durch den Schlitz gesteuert. Ein Schlitz (acht Zeilen), eine Steuereinheit, ist die Hälfte der Vertikalgröße des Makroblocks (16 Zeilen) und ist die am besten geeignete Einheit, um sowohl mit Bild- als auch Halbbild-Strukturen umzugehen. Das heißt, Schlitze werden durch Halbbildnummern und Schlitznummern bezeichnet. Zum Beispiel wird der erste Schlitz im Block 20 durch Halbbild #0 und Schlitz #0 bezeichnet. Der erste Schlitz in dem zusätzlichen Block 25 wird durch Halbbild #0 und Schlitz #N bezeichnet und kann durch Halbbild #1 und Schlitz #N bezeichnet werden.
  • Von den fünf Blöcken 2024 werden vier Blöcke für die Speicherung von Bewegungskompensations-Referenzbildern benutzt, und der restliche eine Block und der zusätzliche Block 25 werden für die B-Bild-Verschachtelungsumwandlung benutzt. Die Zahl der für ein B-Bild, z. B. N + 3, benutzten Blöcke wird in der folgenden Beschreibung als Sn dargestellt. Zum Beispiel werden das obere und untere Halbbild eines I-Bildes in Schlitz #0 bis Schlitz #N – 1 von Halbbild #0 und in Schlitz #1 bis Schlitz #N – 1 von Halbbild #1 gespeichert, und das obere und untere Halbbild eines P-Bildes werden in Schlitz #0 bis Schlitz #N – 1 von Halbbild #2 und in Schlitz #1 bis Schlitz #N – 1 von Halbbild #3 gespeichert. In einem Halbbild, in dem ein oberes Halbbild gespeichert wird, werden die ersten acht Zeilen des oberen Halbbildes im Schlitz #0 gespeichert, die nächsten acht Zeilen werden im Schlitz #1 gespeichert usw. Ein B-Bild wird z. B. in Schlitz #0 bis Schlitz #Sn – 1 von Halbbild #4 gespeirchert. Zu dieser Zeit werden drei zusätzliche Schlitze, d. h. Schlitze #N bis #N + 2, benutzt. Man beachte, dass, welche Schlitze das obere Halbbild eines Bildes speichern, abhängig von der Bildstruktur (Vollbildstruktur und Halbbildstruktur) variiert. Vorgabebilddaten, als eine Anfangseinstellung, sind bereits in die Halbblider des Bildspeichers 11 geschrieben. Zum Beispiel werden Daten, die der Farbe Schwarz entsprechen, in den Bildspeicher 11 geschrieben, und die Ausgabe des Vorgabebildes wird fortgesetzt, bis ein Bild als ein Decodierergebnis ausgegeben wird.
  • 5 veranschaulicht eine innere Struktur der in 1 gezeigten BSAU 12. Die BSAU 12 umfasst eine Vorspannanalyseeinheit 31, einen Decoder variabler Länge (VLD) 32, einen inversen Quantisierer (IQ) 33, einen inversen, diskreten Kosinustransformator (IDCT) 34, einen Bewegungskompensator (MC) 35 und ein internes Register 36. Das interne Register 36 besitzt zehn Register, nämlich ein Codierungstypregister (CTYR), ein Strukturregister (STRR), ein Vorwärtsreferenz-Halbbildregister für oben (T_FRFR), ein Rückwärtsreferenz-Halbbildregister für oben (T_BRFR), ein Rückwärtsreferenz-Halbbildregister für unten (B_BRFR), ein Schreibhalbbildregister für oben (T_WFDR), ein Schreibhalbbildregister für unten (B_WFDR), ein erstes Schreibschlitzregister (WSR1) und ein zweites Schreibschlitzregister (WSR2). Das Register CTYR dient zum Speichern des Codierungstyps für Eingabebilder. Das Register STRR gibt an, ob ein Eingabebild die Vollbildstruktur oder die Halbbildstruktur aufweist. Die vier Register T_FRFR, B_FRFR, T_BRFR und B_BRFR dienen jeweils zum Bezeichnen einer Halbbildnummer, die die Speicherstelle eines Bewegungskompensations-Referenzbildes in dem Bildspeicher 11 angibt. Die zwei Register T_WFDR und B_WFDR dienen jeweils zum Bezeichnen einer Schreibhalbbildnummer des Bildspeichers 11. Die zwei Register WSR1 und WSR2 dienen jeweils zum Bezeichnen einer Schreibschlitznummer des Bildspeichers 11.
  • Als Reaktion auf das von der Steuereinheit 14 empfangene Einleitungssignal INIT wird die Vorspannanalyseeinheit 31 oder der VLD 32 aktiviert. Wenn die Vorspannanalyseeinheit 31 aktiviert wird, beginnt die Vorspannanalyseeinheit 31, in dem Eingangsbitstrom IN enthaltene Bildvorspanninformation zu decodieren, um Information über den Bildcodierungstyp und Information über die Bildstruktur in das Register CTYR bzw. das Register STRR einzugeben. Andererseits werden, wenn der VLD 32 aktiviert wird, der IQ 33, der IDCT 34 und der MC 35 nacheinander aktiviert, wodurch 16-Zeilen Videodaten über den Datenbus 15 in den Bildspeicher 11 geschrieben werden. Diese Menge, d. h. 16 Zeilen, entspricht 45 Makroblöcken, wenn die Zahl von Querpixeln 720 ist. Der MC35 führt Bewegungskompensation durch, erzeugt endgültige Videodaten und schreibt die rekonstruierten Videodaten in den Bildspeicher 11. Der VLD 32 liefert den Bewegungsvektor MV an den MC 35 zur Bewegungskompensation. Die Schlitze des Bildspeichers 11 werden durch Adressen auf dem Adressbus 16 spezi fiziert.
  • In der BSAU 12 betrifft nur der MC 35 die Speichersteuerung. Der MC 35 muss die Stelle eines Bildes zur Prädiktion in dem Bildspeicher 11 zum Zweck der Bewegungskompensation kennen. Um eine solche Stelle zu spezifizieren, benutzt der MC 35 die Register T_FRFR, B_FRFR, T_BRFR und B_BRFR. Ein oberer Halbbildabschnitt der Vorwärtsreferenzdaten wird in Schlitz #0 bis Schlitz #N – 1 eines Halbbildes gespeichert, das durch das Register T_FRFR bezeichnet wird.
  • Die Register T_WFDR, B_WFDR, WSR1, WSR2 und STRR werden benutzt, um Schlitze zu bestimmen, in die die rekonstruierten Videodaten geschrieben werden. Die Schreibstellen werden wie folgt bestimmt. Für den Fall der Vollbildstruktur werden die oberen acht Zeilen in einen Schlitz geschrieben, der durch eine durch das Register T_WFDR bestimmte Halbbildnummer und eine durch das Register WSR1 bestimmte Schlitznummer spezifiziert wird, und die unteren acht Zeilen werden in einen Schlitz geschrieben, der durch eine durch das Register B_WFDR bestimmte Halbbildnummer und eine durch das Register WSR2 bestimmte Schlitznummer spezifiziert wird. Andererseits werden für den Fall der Halbbildstruktur bezüglich des oberen Halbbildes (der erste halbe Abschnitt eines Vollbildes) die oberen acht Zeilen in einen Schlitz geschrieben, der durch eine durch das Register T_WFDR bestimmte Halbbildnummer und eine durch das Register WSR1 bestimmte Schlitznummer spezifiziert wird, und die unteren acht Zeilen werden in einen Schlitz geschrieben, der durch eine durch das Register T_WFDR bestimmte Halbbildnummer und eine durch das Register WSR2 bestimmte Schlitznummer spezifiziert wird. Bezüglich des unteren Halbbildes (der zweite Abschnitt) werden die oberen acht Zeilen in einen Schlitz geschrieben, der durch eine durch das Register B_WFDR bestimmte Halbbildnummer und eine durch das Register WSR1 bestimmte Schlitznummer spezifiziert wird, und die unteren acht Zeilen werden in einen Schlitz geschrieben, der durch eine durch das Register B_WFDR bestimmte Halbbildnummer und eine durch das Register WSR2-bestimmte-Schlitznummer spezifiziert wird. Wie oben beschrieben, ist es so eingerichtet, dass in einem Schlitz eine Mischung von oberen und unteren Halbbildern nicht vorhanden ist. Außerdem wird das Festlegen von Registern der Register in dem internen Register 36 bezüglich der Speichersteuerung durch die Steuereinheit 14 über den Registerbus 17 durchgeführt.
  • 6 zeigt eine innere Struktur der in 1 gezeigten Blldausgabeeinheit 13. Die Bildausgabeeinheit 13 umfasst eine Timing-Erzeugungseinheit 41, eine Leseeinheit 42 und ein internes Register 43. Das interne Register 43 besteht aus vier Registern, nämlich ein Lesehalbbildregiser (RFDR), ein Leseschlitzregister (RSLR), ein Ausgabereihenregister (ORWR) und ein Ausgabepantätsregister (OPYR). Das Register RFDR dient zum Bezeichnen einer Lesehalbbildnummer des Bildspeichers 11. Das Register RSLR dient zum Bezeichnen einer Leseschlitznummer in dem Bildspeicher 11. Das Register ORWR dient zum Bereitstellen einer Angabe darüber, wo eine Zeile, die momentan ausgegeben wird, in einem Halbbild gelegen ist. Das Register OPYR dient zum Bereitstellen einer Angabe darüber, ob das obere oder das untere Halbbild momentan ausgegeben wird.
  • 7 zeigt im Umriss die Arbeitsweise der Bildausgabeeinheit 13. Ein Zyklus der Ausgabe wird aus einer Vertikalaustastperiode (VB), einer oberen Halbbildausgabeperiode, einer weiteren VB und einer unteren Halbbildausgabeperiode gebildet. Im Fall von NTSC werden z. B. 30 Zyklen pro Sekunde ausgegeben. Der Timing-Erzeugungsabschnitt 41 erzeugt ein Timingsignal TMNG, damit der Bildausgabeabschnitt 13 bei einem konstanten Zyklus arbeiten kann. Ferner sendet der Timing-Erzeugungsabschnitt 41 das Unterbrechungssignal INTR für jede Ausgabe von acht Zeilen auf dem Schirm an die Steuereinheit 14. Das Unterbrechungssignal INTR wird bei dem Startpunkt des Bereitstellens des oberen und unteren Halbbildes erzeugt, wie in 7(a) gezeigt. Danach wird das Unterbrechungssignal INTR für jede Ausgabe von acht Zeilen erzeugt. Synchronisiert mit dem durch die Timing-Erzeugungseinheit 41 erzeugten Timingsignal TMNG liest die Leseeinheit 42 die bezeichneten Schlitze in der Abtastreihenfolge, um das Bildausgabesignal OUT bereitzustellen. Ein Leseschlitz wird durch ein Registerpaar, die Register RFDR und RSLR, bezeichnet. Diese Register RFDR und RSLR zur Leseschlitzfestlegung werden durch die Steuereinheit 14 über den Registerbus 17 beim Auftreten einer Unterbrechung gesetzt. Ferner werden die Register ORWR und OPYR durch die Timing-Erzeugungseinheit 41 geändert. Der Wert des Registers OPYR wird "0" unmittelbar vor der Startunterbrechung der Ausgabe jedes Halbbildes, wenn der momentane Zustand ist, dass die nächste Ausgabe ein oberes Halbbild ist, wie in 7(b) gezeigt. Andererseits wird der Wert des Registers OPYR "1", wenn der momentane Zustand ist, dass die nächste Ausgabe ein unteres Halbbild ist. Der Wert des Registers ORWR wird "0" unmittelbar vor der Startunterbrechung des Ausgabe jedes Halbbildes und wird danach vor jeder 8-Zeilen-Schlussunterbrechung um eins erhöht, wie in 7(c) gezeigt.
  • 8 zeigt in Blockform eine innere Struktur der Steuereinheit 14 von 1. Die Steuereinheit 14 besitzt eine Steuerung 51, einen Arbeitsspeicher 52 und einen Programmspeicher 53. Der Arbeitsspeicher 52 besitzt einen Schlitzsteuerspeicher (SCM) und zwölf Arbeiten. Diese zwölf Arbeiten sind eine Vorwärtsreferenz-Halbbildarbeit für oben (T_FRFW), eine Vorwärtsreferenz-Halbbildarbeit für unten (B_FRFW), eine Rückwärtsreferenz-Halbbildarbeit für oben (T_BRFW), eine Rückwärtsreferenz-Halbbildarbeit für unten (B_BRFW), eine Decodierreihennummerarbeit (DRNW), eine Decodiertyparbeit (DTYW), eine Ausgabetyparbeit (OTYW), eine Decodierstrukturarbeit (DSTW), eine Ausgabehalbbildarbeit für oben (T_OFDW), eine Ausgabehalbbildarbeit für unten (B_OFDW), einen Zeiger für Schreibschlitz (WSLP) und einen Zeiger für Leseschlitz (RSLP). Die vier Arbeiten T_FRFW, B_FRFW, T_BRFW und B_BRFW, die den vier Registern T_FRFR, B_FRFR, T_BRFR und B_BRFR der BSAU 12 entsprechen, bezeichnen je eine Halbbildnummer, die die Speicherstelle eines Bewegungskompensations-Referenzbildes in dem Bildspeicher 11 angibt. Die Arbeit DRNW dient zum Speichern einer Reihennummer, die angibt, wie weit die Decodierung eines Vollbildes voranschreitet. Die Reihennummer nimmt zu. Zum Beispiel ist die Reihennummer 0 während der Decodierung der ersten 16 Zeilen, und die Reihennummer ist 1 während der Decodierung der nächsten 16 Zeilen usw. Die Arbeit DTYW dient zum Angeben des Codierungstyps eines Bildes, das momentan decodiert wird. Die Arbeit OTYW dient zum Angeben, ob der Codierungstyp eines Bildes, das momentan ausgegeben wird, der Codierungstyp B ist oder nicht. Die Arbeit OTWY wird benutzt, um eine Entscheidung zwischen dem Speichersteuerverfahren für den Codierungstyp B und dem Speichersteuerverfahren für einen anderen Codierungstyp zu treffen. Doe Arbeit DSTW dient zum Angeben, ob ein Bild, das momentan decodiert wird, die Halbbildstruktur oder die Vollbildstruktur hat, und beeinflusst die Festlegung von Schreibschlitzen und den Zugriff auf den SCM. Die zwei Arbeiten T_OFDW und B_OFDW dienen jeweils zum Angeben einer Halbbildnummer für ein Ausgabebild. Die Zeiger WSLP und RSLP werden zur Speichersteuerung im Fall des Codierungstyps B benutzt, was später beschrieben wird. Jeder der Zeiger WSLP und RSLP hält ständig eine Adresse, die ein Wort in dem SCM angibt.
  • Gespeichert in Adresse #0 bis Adresse #Sn – 1 des SCM in dem Arbeitsspeicher 52 sind Anfangswerte, die um eins von 0 bis Sn – 1 reichen. Diese Anfangswerte resultieren aus der Zuweisung von Nummern zu Schreibschlitzen, die beim Decodieren eines Bildes des Codierungstyps B, der zuerst eintrifft, benutzt werden. Die zehn Arbeiten des Arbeitsspeichers 52 werden wie unten gezeigt initialisiert.
    T_FRFW = 0
    B_FRFW = 1
    T_BRFW = 2
    B_BRFW = 3
    DTYW = I
    OTYW = IP
    T_PFDW = 0
    B_OFDW = 1
    WSLP = 0
    RSLP = Sn
  • Die Steuerung 51 führt nacheinander in den Programmspeicher 53 geschriebene Anweisungen INST aus. Zuerst führt die Steuerung 51 eine normale Routine zum Einstellen der internen Register 36 der BSAU 12 aus. Als Reaktion auf das Unterbrechungssignal INTR von der Bildausgabeeinheit 13 wechselt die Steuerung 51 zu einer Unterbrechungsverarbeitungsroutine zum Einstellen der internen Register 43 der Bildausgabeeinheit 13.
  • Die Steuereinheit 14 führt eine normale Routine aus, um die BSAU 12 zu steuern. Das heißt, die folgenen Prozeduren 1.1 bis 1.14 werden ausgeführt.
    • Prozedur 1.1: Die Vorspannanalyseeinheit 31 wird aktiviert. Die Vorspannanalyseeinheit 31 setzt dann jeweilige Werte in die Register CTYR und STRR der internen Register 36.
    • Prozedur 1.2: Der Wert des Registers CTYR wird in die Arbeit DTYW geschrieben.
    • Prozedur 1.3: Der Wert des Registers STRR wird in die Arbeit DSTW geschrieben.
    • Prozedur 1.4: Wenn die Arbeit DTYW entweder "I" oder "P" angibt, und wenn die Arbeit OTYW "I" ist, werden eine erste und zweite Halbbildnummer, die zum Bezeichnen von Schreibhalbbildnummern benötigt werden, wie folgt bestimmt. Eine Halbbildnummer, die nicht in einer der vier Arbeiten T_FRFW, B_FRFW, T_BRFW und B_BRFW enthaften ist, wird gewählt. Wenn z. B. diese vier Arbeiten Halbbild #0, Halbbild #1, Halbbild #2 bzw. Halbbild #3 bezeichnen, wird Halbbild #4 als Halbbildnummer ausgewählt. Wenn die Halbbilder #2, #3, #4 und #0 durch die vier Arbeiten angegeben werden, wird Halbbild #1 als Halbbildnummer ausgewählt. Die gewählte Halbbildnummer dient als die erste Halbbildnummer. Der Wert der Arbeit T_FRFW dient als die zweite Halbbildnummer.
    • Prozedur 1.5: Wenn die Arbeit DTYW entweder "I" oder "P" ist, und wenn die Arbeit OTYW "B" ist, ist der Wert der Arbeit T_FRFW die erste Halbbildnummer, und der Wert der Arbeit B_FRFW ist die zweite Halbbildnummer.
    • Prozedur 1.6: Wenn die Arbeit DTYW entweder "I" oder "P" ist, werden die vier Arbeiten T_FRFW, B_FRFW, T_BRFW und T_BRFW aktualisiert. Das heißt, der Wert der Arbeit T BRFW wird in die Arbeit T_BRFW geschriebn, der Wert der Arbeit B_BRFW wird in die Arbeit B_FRFW geschrieben, und die in Prozedur 1.5 bestimmte erste und zweite Halbbildnummer werden in die Arbeit T_BRFW bzw. die Arbeit B_BRFW geschrieben.
    • Prozedur 1.7: Das Setzen von Bewegungskompensations-Referenzhalbbildern in die internen Register 36 der BSAU 12 wird durchgeführt. Das heißt, der Wert der Arbeit T_FRFW wird in das Register T_FRFR geschrieben, der Wert der Arbeit B_FRFW wird in das Regis ter B_FRFR geschrieben, der Wert der Arbeit T_BRFW wird in das REgister T_BRFR geschrieben, und der Wert der Arbeit B_BRFW wird in das Register B_BRFR geschrieben.
    • Prozedur 1.8: Schreibhalbbilder werden in die internen Register 36 der BSAU 12 gesetzt. Das heißt, wenn die Arbeit DTYW entweder "I" oder "P" ist, wird der Wert des Registers T_BRFR in das Register T_WFDR geschrieben, und der Wert des Registers B_BRFR wird in das Register B_WFDR geschrieben. Andererseits wird, wenn die Arbeit DTYW "B" ist, eine Halbbildnummer gewählt, die nicht in einem der vier Register T_FRFR, B_FRFR, T_BRFR und B_BRFR enthalten ist. Die gewählte Halbbildnummer wird in das Register T_WFDR sowie in das Register B_WFDR geschrieben.
    • Prozedur 1.9: Eine "0" wird in die Arbeit DRNW geschrieben.
    • Prozedur 1.10: Das Festlegen von Schreibschlitzen wird durchgeführt. Diese Prozedur wird später im Detail erörtert.
    • Prozedur 1.11: Die BSAU 12 decodiert einen Makroblock für 16 Zeilen.
    • Prozedur 1.12: Nach Vollendung der Decodierung eines Vollbildes erfolgt eine Rückkehr zu Prozedur 1.1.
    • Prozedur 1.13: Die Arbeit DRNW wird um eins erhöht.
    • Prozedur 1.14: Es erfolgt eine Rückkehr zu Prozedur 1.10, um einen Makroblock für die nächsten 16 Zeilen zu decodieren.
  • Die Steuereinheit 14 steuert durch Ausführen der Unterbrechungs-Prozessroutine die Bildausgabeeinheit 13. Das heißt, die Steuereinheit 14 führt Operationen durch, um zu bestimmen, ob das Ausgabebild ein B-Bild ist oder nicht, eine Lesehalbbildnummer zu bestimmen und eine Schlitznummer zu bestimmen. Wenn entweder ein I-Bild oder ein P-Bild decodiert wird, muss nur ein vorhergehend decodiertes Bild bereitgestellt werden, d. h. ein Vorwärtsreferenzbild. Ein B-Bild wird ausgegeben, nachdem eine Halb-Vollbildverzögerung von der Zeit des Decodierens des B-Bildes beginnt. Wenn ein B-Bild zu der Zeit des Bereitstellens des nächsten Vollbildes decodiert wird, muss daher nur das B-Bild bereitgestellt werden. Das heißt, jedes Mal, wenn eine Unterbrechung auftritt, werden die folgenden Prozeduren 2.1 bis 2.6 ausgeführt.
    • Prozedur 2.1: Wenn das Register ORWR "0" ist, und wenn das Register OPYR "0" ist (Beginn der Ausgabe des oberen Halbbildes), wird der Wert der Arbeit DTYW in die Arbeit OTYW geschrieben. Die Arbeit OTWY gibt an, ob ein Bild, das als Nächstes bereitgestellt wird, den Codierungstyp "B" hat oder nicht. Das heißt, wenn die Arbeit DTYW entweder "I", oder "P" ist, wird "IP" in die Arbeit OTYW geschrieben. Andererseits wird, wenn die Arbeit DTYW "B" ist, "B" in die Arbeit OTYW geschrieben.
    • Prozedur 2.2: Wenn das Register ORWR "0" ist, wenn das Register OPYR "0" ist (Beginn der Ausgabe des oberen Halbbildes), und wenn die Arbeit OTYW "IP" ist, wird der Wert der Arbeit T_FRFW in die Arbeit T_OFDW geschrieben, und der Wert der Arbeit B_FRFW wird in die Arbeit B_OFDW geschrieben. Unterdessen ist das Vorwärtsreferenzbild ein vorhergehend dedodiertes I-Bild oder ein vorhergehend decodiertes P-Bild. Folglich wird während des Decodierens des I- oder P-Bildes ein vorhergehend decodiertes Bild ausgegeben.
    • Prozedur 2.3: Wenn das Register ORWR "0" ist, wenn das Register OPYR "0" ist (Beginn der Ausgabe des oberen Halbbildes), und wenn die Arbeit OTYW "B" ist, wird eine Halbbildnummer, die nicht in einem der vier Register T_FRFW, B_FRFW, T_BRFW und B_BRFW enthalten ist, gewählt, und die gewählte Halbbildnummer wird in die Arbeit T_OFDW und in die Arbeit B_OFDW geschrieben. Ein Halbbild des Bildspeichers 11, in das ein Bild des Codierungstyps B geschrieben wird, sollte weder ein Vorwärtsreferenzhalbbild noch ein Rückwärtsreferenzhalbbild sein.
    • Prozedur 2.4: Die bereits bestimmten Werte der Arbeiten T_OFDW und B_OFDW werden in die Bildausgabeeinheit 13 gestellt. Das heißt, wenn das Register OPYR "0" ist (wenn die nächste Ausgabe ein oberes Halbbild ist), wird die Halbbildnummer der Arbeit T_OFDW in das Register RFDR der Bildausgabeeinheit 13 gestellt. Andererseits wird, wenn das Register OPYR "1" ist (wenn die nächste Ausgabe ein unteres Halbbild ist), die Halbbildnummer der Arbeit B_OFDW in das Register RFDR der Bildausgabeeinheit 13 gestellt.
    • Prozedur 2.5: Das Einstellen von Leseschlitzen wird durchgeführt. Die Prozedur 2.5 wird später im Detail erörtert
    • Prozedur 2.6: Der Unterbrechungsprozess wird beendet.
  • 9 zeigt im Umriss die Arbeitsweise des MPEG-Decoders 10 von 1. Mit anderen Worten, 9 zeigt ein Beispiel des Umgehens mit Schreib- und Lesehalbbildern. Der Bitstrom IN wird gemäß 9 an die BSAU 12 in der Reihenfolge I0, P1, P4, B2, B3, P5 angelegt. Der Buchstabe (z. B. I des Bildes I0) gibt den Codierungstyp an, und die Ziffer gibt die Reihenfolge der Anzeige (Ausgabe) an.
  • Am Anfangspunkt der Decodierungsperiode des Bildes I0 (d. h. Periode 1) ist der Wert der Arbeit OTYW "IP". In Periode 1 werden daher entsprechend den Prozeduren 1.4 und 1.6 und basierend auf den Anfangswerten von Periode 0 die Werte der vier Arbeiten T_FRFW, B_FRFW, T_BRFW und B_BRFW auf 2, 3, 4 bzw. 0 aktualisiert. Der Wert der Arbeit T_BRFW, d. h. 4, wird als eine obere Schreibhalbbildnummer benutzt, und der Wert der Arbeit B_BRFW, d. h. 0, wird als eine untere Schreibhalbbildnummer benutzt. Das Bild I0 wird in das Halbbild #4 und das Halbbild #0 des Bildspeichers 11 geschrieben.
  • In der Decodierungsperiode des Bildes P1, d. h. Periode 2, werden entsprechend den Prozeduren 1.4 und 1.6 die Werte der vier Arbeiten T_FRFW, B_FRFW, T_BRFW und B_BRFW auf 4, 0, 1 bzw. 2 aktualisiert. Der Wert der Arbeit T_BRFW, d. h. 1, wird als obere Schreibhalbbildnummer benutzt, und der Wert der Arbeit B_BRFW, d. h. 2, wird als untere Schreibhalbbildnummer benutzt. Folglich wird das Bild P1, das durch Vorwärtsreferenz zu dem in das Halbbild #4 und das Halbbild #0 geschriebene Bild I0 bewegungskompensiert wird, in das Halbbild #1 und das Halbbild #2 des Bildspeichers 11 geschrieben.
  • In der Decodierungsperiode des Bildes P4, d. h. Periode 3, werden entsprechend den Prozeduren 1.4 und 1.6 die Werte der vier Arbeiten T_FRFW, B_FRFW, T_BRFW und B_BRFW auf 1, 2, 3 bzw. 4 aktualisiert. Der Wert der Arbeit T_BRFW, d. h. 3, wird als obere Schreibhalbbildnummer benutzt, und der Wert der Arbeit B_BRFW, d. h. 4, wird als untere Schreibhalbbildnummer benutzt. Folglich wird das Bild P4, das durch Vorwärtsreferenz zu dem in das Halbbild #1 und das Halbbild #2 geschriebene Bild P1 bewegungskompensiert wird, in das Halbbild #3 und das Halbbild #4 des Bildspeichers 11 geschrieben.
  • In der Decodierungsperiode des Bildes B2, d. h. Periode 4, werden die vier Arbeiten T_ FRFW, B_FRFW, T_BRFW und B_BRFW nicht aktualisiert. Die Halbbildnummer, die nicht in einer dieser vier Arbeiten enthaften ist, d. h. 0, wird als obere Schreibhalbbildnummer und als untere Schreibhalbbildnummer benutzt. Das bewegungskompensierte Bild B2 wird in das Halbbild #0 und die drei zusätzlichen Schlitze des Bildspeichers 11 geschrieben. Unterdessen wird auf das Bild P1 in Halbbild #1 und Halbbild #2 vorwärts Bezug genommen, und auf das Bild P4 in Halbbild #3 und Halbbild #4 wird rückwärts Bezug genommen.
  • Auch in der Decodierungsperiode des Bildes B3, d. h. Periode 5, werden die vier Arbeiten T_ FRFW, B_FRFW, T_BRFW und B_BRFW nicht aktualisiert. Die Halbbildnummer, die nicht in einer dieser vier Arbeiten enthalten ist, d. h. 0, wird als obere Schreibhalbbildnummer und als untere Schreibhalbbildnummer benutzt. Das bewegungskompensierte Bild B3 wird folglich in das Halbbild #0 und die drei zusätzlichen Schlitze des Bildspeichers 11 geschrieben.
  • Unterdessen wird auf das Bild P1 in Halbbild #1 und Halbbild #2 vorwärts Bezug genommen, und auf das Bild P4 in Halbbild #3 und Halbbild #4 wird rückwärts Bezug genommen.
  • Am Anfangspunkt der Decodierungsperiode des Bildes P5, d. h. Periode 6, ist der Wert der Arbeit OTWY "B". In Periode 6 werden daher entsprechend den Prozeduren 1.5 und 1.6 die Werte der vier Arbeiten FRFW, B_FRFW, T_BRFW und B_BRFW auf 3, 4, 1 bzw. 2 aktualisiert. Der Wert der Arbeit T_BRFW, d. h. 1, dient als obere Schreibhalbbildnummer, und der Wert der Arbeit B-BRFW, d. h. 2, dient als untere Schreibhalbbildnummer. Folglich wird das bewegungskompensierte Bild P5 in das Halbbild #1 und das Halbbild #2 geschrieben. Zu dieser Zeit wird auf das Bild P4 in Halbbild #3 und Halbbild #4 vorwärts Bezug genommen.
  • Wie oben mit Verweis auf 7(b) beschrieben, wird der Weit des Registers OPYR "0" unmittelbar vor der Startunterbrechung der Ausgabe jedes Halbbildes, wenn der momentane Zustand ist, dass die nächste Ausgabe ein oberes Halbbild ist, und der Wert des Registers OPYR wird "1", wenn der momentane Zustand ist, dass die nächste Ausgabe ein unteres Halbbild ist. Das heißt, am Startpunkt der Ausgabe des oberen Halbbildes wechselt der Wert des Registers OPYR von "1" auf "0". 9 zeigt, dass in Synchronisation mit einem solchen Wechsel im Wert des Registers OPYR von "1" auf "0" die Arbeiten T_OFDW und B_OFDW aktualisiert werden.
  • Am Startpunkt des zweiten halben Abschnitts von Periode 2 werden entsprechend der Prozedur 2.2 die Werte der zwei Arbeiten T_OFDW und B_OFDW auf 4 bzw. 0 unter Verwendung der Werte der zwei Arbeiten T_FRFW und B_FRFW akualisiert. Folglich wird das im Halbbild #4 des Bildspeichers 11 gespeicherte obere Halbbild des Bildes I0 in dem zweiten halben Abschnitt von Periode 2 ausgegeben, und das im Halbbild #0 des Bildspeichers 11 gespeicherte untere Halbbild des Bildes I0 wird in dem ersten halben Abschnitt von Periode 3 ausgegeben.
  • Am Startpunkt des zweiten halben Abschnitts von Periode 3 werden entsprechend der Prozedur 2.2 die Werte der zwei Arbeiten T_OFDW und B_OFDW auf 1 bzw. 2 akualisiert. Folglich wird das im Halbbild #1 gespeicherte obere Halbbild des Bildes P1 in dem zweiten halben Abschnitt von Periode 3 ausgegeben, und das im Halbbild #2 gespeicherte untere Halbbild des Bildes P1 wird in dem ersten halben Abschnitt von Periode 4 ausgegeben.
  • Am Startpunkt des zweiten halben Abschnitts von Periode 4 wird entsprechend der Prozedur 2.3 eine Halbbildnummer, die nicht in einer der vier Arbeiten T_FRFW, B_FRFW, T_BRFW und B_BRFW enthalten ist, d. h. 0, in die zwei Arbeiten T_OFDW und B_OFDW geschrieben. Folglich beginnt die Ausgabe des Bildes B2 nach einer Halb-Vollbildverzögerung von dem Startpunkt der Decodierung des Bildes B2, und das obere Halbbild des Bildes B2 wird in dem zweiten halben Abschnitt von Periode 4 ausgegeben, und das untere Halbbild des Bildes B2 wird in dem ersten halben Abschnitt der Periode 5 ausgegeben.
  • Auch am Startpunkt des zweiten halben Abschnitts von Periode 5 wird entsprechend der Prozedur 2.3 eine Halbbildnummer, die nicht in einer der vier Arbeiten T_FRFW, B_FRFW, T_BRFW und B_BRFW enthalten ist, d. h. 0, in die zwei Arbeiten T_OFDW und B_OFDW geschrieben. Folglich beginnt die Ausgabe des Bildes B3 nach einer Halb-Vollbildverzögerung von dem Startpunkt der Decodierung des Bildes B3, und das obere Halbbild des Bildes B3 wird in dem zweiten halben Abschnitt von Periode 5 ausgegeben, und das untere Halbbild des Bildes B3 wird in dem ersten halben Abschnitt der Periode 6 ausgegeben.
  • Am Startpunkt des zweiten halben Abschnitts von Periode 6 werden unter Verwendung der Werte der zwei Arbeiten T_FRFW und B_FRFW entsprechend der Prozedur 2.2 die Werte der zwei Arbeiten T_OFDW und B_OFDW auf 3 bzw. 4 aktualisiert. Folglich wird das im Halbbild #3 gespeicherte obere Halbbild des Bildes P4 in dem zweiten halben Abschnitt von Periode 6 ausgegeben, und das im Halbbild #4 gespeichert untere Halbbild des Bildes P4 wird in dem ersten halben Abschnitt der nächsten Periode ausgegeben.
  • Gemäß 9 wird das Ausgabebild in der Reihenfolge I0, P1, B2, B3 und P4 erhalten. 9 zeigt, dass unmittelbar nachdem das obere Halbbild des Bildes I0 aus dem Halbbild #4 in dem zweiten Abschnitt von Periode 2 gelesen ist, das untere Halbbild des Bildes P4 in das Halbbild #4 in dem ersten halben Abschnitt von Periode 3 geschrieben wird. Dadurch wird eine effektive Nutzung der Halbbilder in dem Bildspeicher 11 erreicht. Obwohl von dem Startpunkt des zweiten halben Abschnitts von Periode 4 bis zu dem Endpunkt des zweiten halben Abschnitts von Periode 5 Operationen des Schreibens und Lesens von Halbbild #0 und den drei zusätzlichen Schlitzen zur gleichen Zeit durchgeführt werden, kann das Auftreten von Problemen durch die Schlitzsteuerung, die unten beschrieben wird, vermieden werden.
  • Die Schreibschlitz-Einstellprozedur bezüglich Prozedur 1.10 wird in Einzelnen erörtert. Grob gesprochen führt die Steuereinheit 14 das Einstellen der Register WSR1 und WSR2 der BSAU 12 durch und wartet danach auf bestimmte zu erfüllende Bedingungen.
  • Das Einstellen der Register WSR1 und WSR2 wird zuerst erklärt. Wenn die Arbeit DTYW entweder "I" oder "P" ist, und wenn die Arbeit DSTW die Vollbildstruktur angibt, wird der Wert der Arbeit DRNM in die Register WSR1 und WSR2 geschrieben. Wenn die Arbeit DTYW entweder "I" oder "P" ist, und wenn die Arbeit DSTW die Halbbildstruktur angibt, wird ein Ergebnis (der Wert der Arbeit DRNW) X2 in das Register WSR1 geschrieben, und ein Ergebnis (der Wert des Arbeit DRNW) X2 +1 wird in das Register WSR2 geschrieben. Wenn jedoch DRNW X2 >= N, wird DRNW X2 in DRNW X2 – N geändert, und DRNW X2 + 1 wird in DRNW X2 + 1 – N geändert. Durch die oben beschriebene Einstellung wird, ungeachtet der Bildstruktur, wenn die Arbeit DTYW entweder "I" oder "P" ist, das obere Halbbild in ein durch das Register T_WFDR bezeichnetes Halbbild geschrieben, und das untere Halbbild wird in ein durch das Register B_WFDR bezeichnetes Halbbild geschrieben. In jedem Halbbild werden die ersten acht Zeilen in den Schlitz #0 geschrieben, die nächsten acht Zeilen werden in den Schlitz #1 geschrieben usw.
  • Wenn die Arbeit DTYW "B" ist, führt die Steuereinheit 14 die folgenden Prozeduren 3.1 bis 3.7 durch, um die Register WSR1 und WSR2 einzustellen.
    • Prozedur 3.1: Eine erste Schlitznummer X wird aus einem Wort gelesen, das in einer durch den Zeiger WSLP bezeichneten Adresse des SCM gespeichert ist.
    • Prozedur 3.2: Eine zweite Schlitznummer Y wird aus einem in der nächsten Adresse gespeicherten Wort gelesen.
    • Prozedur 3.3: Die erste Schlitznummer X wird in das Register WSR1 geschrieben.
    • Prozedur 3.4: Die zweite Schlitznummer Y wird in das Register WSR2 geschrieben.
    • Prozedur 3.5: Die erste Schlitznummer X wird in den SCM geschrieben, um das Einstellen des Registers RSLR vorzubereiten. Das heißt, wenn die Arbeit DSTW die Vollbildstruktur angibt, wird die erste Schlitznummer X in ein Wort in einer durch (Wert des Zeigers WSLP) + Sn – (Wert der Arbeit DRNW) bezeichneten Adresse des SCM gespeichert. Andererseits wird, wenn die Arbeit DSTW die Halbbildstruktur angibt, die erste Schlitznummer X in ein Wort in einer durch (Wert des Zeigers WSLP) + Sn bezeichneten Adresse des SCM gespeichert.
    • Prozedur 3.6: Um das Einstellen des Registers RSLR vorzubereiten, wird die zweite Schlitznummer Y in den SCM geschrieben. Das heißt, wenn die Arbeit DSTW die Vollbildstruktur angibt, wird die zweite Schlitznummer Y in ein Wort in einer durch (Wert des Zeigers WSLP) + Sn – (Wert der Arbeit DRNW) + N bezeichneten Adresse des SCM gespeichert. Andererseits wird, wenn die Arbeit DSTW die Halbbildstruktur angibt, die zweite Schlitznummer Y in ein Wort in einer durch (Wert des Zeigers WSLP) + Sn + 1 bezeichneten Adresse des SCM gespeichert.
    • Prozedur 3.7: Der Zeiger WSLP wird um zwei erhöht.
  • Die Steuereinheit 14 führt das Einstellen der Register WSR1 und WSR2 der BSAU 12 durch und wartet dann auf die Erfüllung irgendeiner der folgenden Bedingungen. Dies ist notwendig, um zu verhindern, dass Daten in einen Schlitz geschrieben werden, bevor der Schlitz gelesen ist.
    • Bedingung 1: In Bedingung 1 sollten die folgenden Unterbedingungen erfüllt sein, nämlich (i) die Arbeit DTYW ist entweder "I" oder "P", (ii) die Werte der Arbeiten T_OFDW und T_BRFW stimmen nicht miteinander überein, und (iii) die Werte der Arbeiten B_OFDW und B_BRFW stimmen nicht miteinander überein. Wenn Bedingung 1 erfüllt ist, bedeutet dies, dass ein Halbbild, das momentan ein Schreibziel ist, bereit ist, mit Daten beschrieben zu werden, weil das fragliche Halbbild bereits gelesen wurde.
    • Bedingung 2: In Bedingung 2 sollten die folgenden Unterbedingungen erfüllt sein, nämlich (i) die Arbeit DTYW ist entweder "I" oder "P", (ii) die Arbeit DSTW gibt die Vollbildstruktur an, und (iii) der Wert des Registers ORWR ist größer als der Wert der Arbeit DRNW. Wenn Bedingung 2 erfüllt ist, bedeutet dies, dass ein Schlitz mit einer Schlitznummer kleiner als der Wert des Registers ORWR bereit ist, mit Daten beschrieben zu werden, weil der fragliche Schlitz bereits gelesen wurde.
    • Bedingung 3: In Bedingung 3 sollten die folgenden Unterbedingungen erfüllt sein, nämlich (i) die Arbeit DTYW ist entweder "I" oder "P", (ii) die Arbeit DSTW gibt die Halbbildstruktur an, und (iii) es ist in der Periode des Decodierens des oberen Halbbildes. Zur Zeit des Durchführens entweder einer Decodierung des Codierungstyps I oder einer Decodierung der Codierungstyps P steht wenigstens ein Halbbild zur Verfügung. Ein oberes Halbbild wird in das verfügbare Halbbild geschrieben, und es ist möglich, Schreibvoränge durchzuführen.
    • Bedingung 4: In-Bedingung 4 sollten die folgenden Unterbedingungen erfüllt sein, nämlich (i) die Arbeit DTYW ist "B", und (ii) der Wert des Zeigers RSLP ist größer als der Wert des Zeigers WSLP. Die Schlitznummer, die in einer durch den Zeiger RSLP bezeichneten Adresse des SCM gespeichert ist, ist eine für einen Schlitz, der momentan ausgegeben wird, wie später beschrieben. Folglich muss ein Schlitz mit einer Nummer kleiner als die vorangehende Nummer bereits gelesen worden sein, und es ist daher möglich, Schreibvorgänge durchzuführen.
  • Die Leseschlitz-Einstellprozedur bezüglich Prozedur 2.5 wird im Detail beschrieben. Wenn die Arbeit OTYW "IP" ist, muss die Steuereinheit 14 den Wert des Registers ORWR in das Register RSLR stellen. Zur Zeit des Bereitstellens von Bildern des Codierungstyps I oder P kann die Leseschlitznummer des Lesehalbbildes von null um eins erhöht werden. Außerdem wird die Ausgabereihennummer des Registers ORWR von null um eins ehöht. Der Wert des Registers ORWR wird in das Register RSLR gestellt.
  • Wenn die Arbeit OTYW "B" ist, führt die Steuereinheit 14 einfache Verarbeitungen, d. h. Prozeduren 4.1 bis 4.3, zum Einstellen des Registers RSLR durch. Dies ist ein Ergebnis des in Prozeduren 3.5 und 3.6 gezeigten Vorbereitungsprozesses. Der Zeiger RSLP wird für jede Ausgabe von acht Zeilen um eins ehöht.
    • Prozedur 4.1: Eine Schlitznummer Z wird aus einem Wort in einer durch den Zeiger RSLP spezifizierten Adresse des SCM extrahiert.
    • Prozedur 4.2: Die Schlitznummer Z wird in das Register RSLP geschrieben.
    • Prozedur 4.3: Der Zeiger RSLP wird um eins erhöht.
  • Nun auf 1017 verweisend wird die Arbeitsweise des MPEG-Decoders 10 von 1 im Einzelnen beschrieben. 1015 zeigen den Prozess des Aktualisierens jedes der Register, und 16 und 17 zeigen den Prozess des Aktualisierens des SCM. Wein 9 wird der Bitstrom IN in der Reihenfolge I0, P1, P4, B2, B3, P5 (s. 1017) in die BSAU 12 geleitet. Die Bilder P1, P4, B2 und P5 haben eine Vollbildstruktur, während die Bilder I0 und B3 eine Halbbildstruktur aufweisen. Um die Beschreibung zu vereinfachen, sind N = 6 und Sn = 9. Die Decodierung von 16 Zeilen braucht hier Zeit, die zum Ausgeben von 16 Zeilen benötigt wird, und in VB (Vertikalaustastperiode) werden keine Decodieroperationen durchgeführt.
  • Auf 1015 verweisend entsprechen von 0 bis 71 nummerierte Perioden 8-Zeilen-Ausgabeperioden. Die Bilder I0, P1, B2, B3 und P4 werden in dieser Reihenfolge ausgegeben oder angezeigt. Der Decodierstartpunkt jedes Vollbildes ist der Ausgabestartpunkt der letzten acht Zeilen des oberen Halbbildes (OPYR = 0). In den Figuren steht "FR" für die Vollbildstruktur, und "FD" steht für die Halbbildstruktur. Hier haben, betrachtet man die Periode 24 von 12, das Register B_WFDR und das Register RFDR den gleichen Wert, d. h. 4. Dies bedeutet, dass Halbbild #4 gleichzeitig Lese- und Schreiboperationen unterliegt. In Periode 24 hat jedoch der Wert des Registers RSLR bereits fünf erreicht, und der Wert des Registers WSR1 und der Wert des Registers WSR2 sind null, und daher werden überhaupt keine Probleme erzeugt. Von Periode 43 bis zu Periode 59 haben die Register T_WFDR, B_WFDR und RFDR jeweils einen Wert von null. Das heißt, bezüglich der Bilder des Codierungstyps B, werden das Halbbild #3 und die drei zusätzlichen Schlitze zur gleichen Zeit gelesen und geschrieben. In jeder der Perioden 43 bis 59 haben jedoch die Register WSR1, WSR2 und RSLR verschiedene Werte, und daher werden überhaupt keine Probleme erzeugt.
  • 16 und 17 zeigen einen Prozess des Aktualisierens des SCM in Bezug auf die Schreibschlitz-Einstellprozedur (Prozeduren 3.1 bis 3.7), wenn die Arbeit DTYW "B" ist, und die Leseschlitz-Einstellprozedur (Prozeduren 4.1 bis 4.3), wenn die Arbeit OTYW "B" ist. In 16 und 17 stellt jede Reihe ein Wort des SCM dar, und jede Spalte entspricht einer 8-Zeilen-Ausgabeperiode. Wie in der ganz linken Spalte von 16 gezeigt, sind Anfangswerte von null bis acht in Wörtern bei Adresse #0 bis Adresse #8 des SCM gespeichert. Der Anfangswert des Zeigers WSLP ist null, und der Anfangswert des Zeigers RSLP ist neun. Die Speicherkapazität des SCM beträgt 20 Wörter.
  • Die an zweiter und dritter Stelle von links in 16 gelegenen Spalten entsprechen der Decodierperiode der ersten 16 Zeilen des Bildes B2 mit der Vollbildstruktur, d. h. Perioden 36 und 37 von 13. In diesen Perioden wird die Schlitznummer 0 aus einem Wort an der durch den Zeiger WSLP spezifizierten Adresse #0 extrahiert, und die Schlitznummer 1 wird aus einem Wort an der nächsten Adresse, d. h. Adresse #1, extrahiert, Die Schlitznummer 0 wird in das Register WSR1 geschrieben, und die Schlitznummer 1 wird in das Register WSR2 geschrieben. Unterdessen werden entsprechend den Prozeduren 3.5 und 3.6, um das Einstellen des Registers RSLR vorzubereiten, die Schlitznummern 0 und 1 in ein Wort an Adresse #9 bzw. ein Wort an Adresse #15 geschrieben. Der Zeiger WSLP wird um zwei erhöht.
  • Die an neunter Stelle von links in 16 gelegene Spalte entspricht einer Periode des Bereitstellens der ersten acht Zeilen des oberen Halbbildes des Bildes B2, d. h. Periode 43 von 13. In dieser Periode wird die Schlitznummer 0 aus einem Wort an einer durch den Zeiger RSLP spezifizierten Adresse des SCM (Adresse #9) extrahiert und dann in das Register RSLR geschrieben. Diese Schlitznummer 0 ist die Nummer, die eine Halb-Vollbildperiode früher in den SCM geschrieben wurde. Der Zeiger RSLP wird um eins erhöht.
  • Die an vierzehnter und fünfzehnter Stelle von links in 16 gelegenen Spalten entsprechen der Decodierperiode der ersten 16 Zeilen des Bildes B3 mit der Halbbildstruktur, d. h. Perioden 48 und 49 von 14. In diesen Perioden wird die Schlitznummer 6 aus einem Wort an einer durch den Zeiger WSLP spezifizierten Adresse des SCM (Adresse #12) extrahiert, und die Schlitznummer 8 wird aus einem Wort an der nächsten Adresse (Adresse #13) extrahiert.
  • Die Schlitznummer 6 wird in das Register WSR1 geschrieben, und die Schlitznummer 8 wird in das Register WSR2 geschrieben. Unterdessen werden entsprechend den Prozeduren 3.5 und 3.6, um das Einstellen des Registers RSLR vorzubereiten, die Schlitznummern 6 und 8 in Wörter an Adresse #1 bzw. Adresse #1 des SCM geschrieben. Der Zeiger WSLP wird um zwei erhöht.
  • Die fünfte Spalte von links in 17 entspricht einer Periode des Bereitstellens der ersten acht Zeilen des oberen Halbbildes des Bildes B3, d. h. Periode 55 von 14. In dieser Periode wird die Schlitznummer aus einem Wort an einer durch den Zeiger RSLP spezifizierten Adresse des SCM (Adresse #1) extrahiert. Die Schlitznummer 6 wird dann in das Register RSLR geschrieben. Diese Schlitznummer 6 ist diejenige, die eine Halb-Halbbildperiode früher in den SCM geschrieben wurde. Der Zeiger RSLP wird um eins erhöht.
  • 16 und 17 zeigen, dass in jeder der Perioden die Adresse der "R"-Wörter (ein "R"-Wort wird zur Schreibschlitz-Einstellung benutzt) größer ist als die der "W"-Wörter (ein Paar von "W"-Wörtern wird zur Leseschlitz-Einstellung benutzt). Dies stellt sicher, dass ein Schreibzielschlitz ein bereits gelesener Schlitz ist. Selbst wenn die Periode des Decodierens von 16 Zeilen kürzer wird als die Periode des Ausgebens von 16 Zeilen, weil das Decodieren der 16 Zeilen mit hoher Geschwindigkeit durchgeführt wird, werden keine Probleme erzeugt, da es so eingerichtet ist, dass die Steuereinheit 14 auf die zu erfüllende Bedingung 4 wartet.
  • Wie oben beschrieben macht es der MPEG-Decoder 10 von 1 möglich, die Verschachtelungsumwandlung von B-Bildern mit einem der Ein-Halbbildblöcke 2024 und den drei zusätzlichen Schlitzen unter der Bedingung zustande zu bringen, dass die Decodierung des Eingangsbitstromes IN nicht in der VB durchgeführt wird, wodurch die Speicherkapazität des Bildspeichers 11 auf bis zu etwa 2.5 Vollbilder reduziert werden kann.
  • Die Zahl von zusätzlichen Schlitzen kann verringert werden. 18 zeigt ein Beispiel der Implementierung der B-Bild-Verschachtelungsumwandlung unter Verwendung von N + 2 Schlitzen (N = 6). Eine an der fünften Stelle von rechts in 18 gelegene Spalte benötigt jedoch eine Decodierrate, die das Zweifache der anderen Spalten beträgt. 19 zeigt ein Beispiel der Implementierung der B-Bild-Verschachtelungsumwandlung unter Verwendung von N + 1 Schlitzen (N = 6). Von einer an der fünften Stelle von rechts gelegenen Spalte wird jedoch verlangt, dass die Decodierung für 16 Zeilen in einer Horizontalaustastperiode vollendet wird. Eine B-Bild-Verschachtelungsumwandlung kann folglich mit N + 3 Schlitzen implementiert werden. Selbst in einem solchen Fall ist es möglich, alle für MPEG2 nötigen Speicherfunktionen mit einem einzigen 16 MBit Speicherchip bereitzustellen.

Claims (11)

  1. Bildprozessor zum Dekodieren von kodierten Bildern eines I-, P- oder B-Bildtyps, wobei der Bildprozessor einen Bildspeicher (11) zum Speichern von dekodierten Bilddaten und eine Steuereinheit (14) zum Steuern von Lese- und Schreibvorgängen der dekodierten Bilder umfasst, wobei der Bildspeicher (11) umfasst: fünf Blöcke (2024), wobei jeder der fünf Blöcke (2024) eine Speicherkapazität eines halben Vollbilds aufweist, wobei vier der fünf Blöcke (2024) zum zeitweise Speichern von dekodierten I- und/oder P-Bildern verwendet werden und ein zusätzlicher Block (25) mit einer kleineren Speicherkapazität als jeder der fünf Blöcke (2024), wobei der verbleibende Block der fünf Blöcke (2024) und der zusätzliche Block (25) zusammen einen Datenspeicher für die B-Bild Halbbildumwandlung bilden, gekennzeichnet dadurch, dass die Steuereinheit (14) dazu ausgebildet ist, zwei Blöcke aus den fünf Blöcken (2024) des Bildspeichers (11) für jedes dekodierte I- oder P-Bild einzeln auszuwählen.
  2. Bildprozessor nach Anspruch 1, bei dem die fünf Blöcke (20, 24) und der zusätzliche Block (25) in entsprechende Vielzahlen von Slots unterteilt sind, wobei jeder der Slots eine vorgegebene Speicherkapazität aufweist, wobei der Bildprozessor des Weiteren umfasst: einen Slotsteuerungsspeicher (51) zum Speichern von Slotnummern und eine Steuerung (51) zum Steuern von Lese- sowie Schreibvorgängen des Datenspeichers unter Verwendung der in dem Slotsteuerungsspeicher (51) gespeicherten Slotnummern und die Steuerung (52) eine Slotnummer, die in einem Schreibvorgang zum Eingeben von Information in den Datenspeicher verwendet wurde, in den Slotsteuerungsspeicher (51) schreibt, um einen Lesevorgangs zum Erlangen von Information aus dem Datenspeicher auszuführen.
  3. Bildprozessor nach Anspruch 2, des Weiteren umfassend: einen Schreibe-Slot-Zeiger zum Angeben eines Speicherortes des Slotsteuerungsspeichers (51) für eine Slotnummer, die in einem Schreibvorgang des Datenspeichers verwendet wird und einen Lese-Slot-Zeiger zum Angeben eines Speicherorts des Slotsteuerungsspeichers (51) für eine Slotnummer, die in einem Lesevorgang des Datenspeichers verwendet wird, wobei beide Slot-Zeiger so aktualisiert werden, dass ein bestimmter Slot des Datenspeichers, unmittelbar nachdem dieser Slot gelesen wurde, beschrieben wird.
  4. Bildprozessor nach Anspruch 2 oder 3, wobei jeder Slot des Datenspeichers eine Speicherkapazität zum Speichern einer Dateneinheit aufweist, die der halben Anzahl der Linien einer Dekodierverarbeitungseinheit entspricht.
  5. Bildprozessor nach einem der Ansprüche 2 bis 4, in der die Steuerung (52) zwei Slotnummern zur Steuerung des Schreibvorgangs des Datenspeichers verwendet.
  6. Bildprozessor nach einem der Ansprüche 2 bis 5, wobei, falls das B-Bild eine Vollbildstruktur aufweist, die Steuerung (52) zwei Slotnummern zum Steuern des Schreibvorgangs des Datenspeichers verwendet, so dass die Dateneinheiten eines oberen und unteren Halbbildes, die zusammen das B-Bild bilden, in den Datenspeicher geschrieben werden können.
  7. Bildprozessor nach Anspruch 6, bei dem die Steuerung (52) die zwei Slotnummern an Speicherorte des Slotsteuerungsspeichers (51) schreibt, die voneinander um einen Betrag einer Änderung eines Wertes des Lese-Slot-Zeigers, die während einer Zeitdauer von der Zeit, zu der die Daten des oberen Halbbildes gelesen werden, bis zu der Zeit, zu der die Daten des unteren Halbbildes gelesen werden, durchführt wird, voneinander getrennt sind.
  8. Bildprozessor nach einem der Ansprüche 2 bis 5, wobei, falls das B-Bild eine Halbbildstruktur aufweist, die Steuerung (52) zwei Slotnummern zur Steuerung des Schreibvorgangs des Datenspeichers verwendet, so dass eine Dateneinheit für die obere Hälfte und eine Dateneinheit für die untere Hälfte, die zusammen das B-Bild bilden, in den Datenspeicher geschrieben werden können.
  9. Bildprozessor nach Anspruch 8, wobei die Steuerung (52) zwei Slotnummern in den Slotsteuerungsspeicher (51) schreibt, so dass ein Lese-Slot-Zeiger in Folge Daten der oberen Halbbildhälfte und Daten der unteren Halbbildhälfte erfassen kann.
  10. Bildprozessor nach Anspruch 2, des Weiteren umfassend: einen Schreibe-Slot-Zeiger zum Angeben eines Speicherorts des Slotsteuerungsspeichers (51) für eine Slotnummer, die in einem Schreibvorgang des Datenspeichers verwendet wird und einen Lese-Slot-Zeiger zum Angeben eines Speicherortes des Slotsteuerungsspeichers (51) für eine Slotnummer, die in einem Lesevorgang des Datenspeichers verwendet wird, wobei die Steuerung (52) den Wert des Schreibe-Slot-Zeigers so steuert, um unter den Wert des Lese-Slot-Zeigers zu fallen.
  11. Verfahren zum Dekodieren von Bilddaten eines I-, P- und/oder B-Bildtyps unter Verwendung eines Bildspeichers (11), wobei der Bildspeicher (11) fünf Blöcke (2024) von denen jeder eine Speicherkapazität eines halben Vollbildes aufweist, umfasst und einem zusätzlichen Block (25) mit einer kleineren Speicherkapazität als jeder der fünf Blöcke (2024), wobei das Verfahren die Schritte umfasst: Speichern dekodierter I- und/oder P-Bilder in vier der fünf Blöcke (2024) und Speichern dekodierter B-Bild Daten in einem der fünf Blöcke (2024) und in dem zusätzlichen Block (25) zur Halbbildumwandlung, gekennzeichnet dadurch, dass der Schritt zum Speichern der dekodierten I- und/oder P-Bilder unter den fünf Blöcken (2024) für jedes dekodierte I- oder P-Bild zwei auswählt.
DE69731342T 1996-08-22 1997-08-13 Bildverarbeitungsvorrichtung Expired - Lifetime DE69731342T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP22088896 1996-08-22
JP22088896 1996-08-22

Publications (2)

Publication Number Publication Date
DE69731342D1 DE69731342D1 (de) 2004-12-02
DE69731342T2 true DE69731342T2 (de) 2005-03-17

Family

ID=16758114

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69731342T Expired - Lifetime DE69731342T2 (de) 1996-08-22 1997-08-13 Bildverarbeitungsvorrichtung

Country Status (6)

Country Link
US (1) US6356317B1 (de)
EP (1) EP0825781B1 (de)
KR (1) KR100472564B1 (de)
CN (2) CN1165836C (de)
DE (1) DE69731342T2 (de)
SG (1) SG99841A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6198773B1 (en) 1997-12-18 2001-03-06 Zoran Corporation Video memory management for MPEG video decode and display system
US6765625B1 (en) * 1998-03-09 2004-07-20 Divio, Inc. Method and apparatus for bit-shuffling video data
WO2000002130A2 (en) * 1998-07-06 2000-01-13 Koninklijke Philips Electronics N.V. Plural image display reading image data from a memory
EP1758403A3 (de) * 1998-12-23 2007-09-26 Zoran Corporation Videospeicherverwaltung für MPEG-Videodekodierungs- und Anzeige-system
EP1142345A1 (de) * 1998-12-23 2001-10-10 Zoran Corporation Videospeicherverwaltung für mpeg-videodekodierungs- und -anzeigesystem
US6614437B1 (en) 1999-01-25 2003-09-02 Sony Corporation Apparatus and method for efficient memory utilization in an electronic system
JP2000358193A (ja) * 1999-06-15 2000-12-26 Matsushita Electric Ind Co Ltd 画像メモリ機能付き映像装置
JP3406255B2 (ja) * 1999-09-29 2003-05-12 松下電器産業株式会社 画像復号装置および方法
EP1383339A1 (de) 2002-07-15 2004-01-21 Matsushita Electric Industrial Co., Ltd. Speicherverwaltungsverfahren für Videosequenzbewegungsschätzung und -kompensation
JP4315731B2 (ja) * 2003-05-16 2009-08-19 株式会社ルネサステクノロジ 画像復号表示装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6143885A (ja) 1984-08-08 1986-03-03 Sanyo Electric Co Ltd 走査変換装置
JPH03241963A (ja) 1990-02-20 1991-10-29 Canon Inc メモリ制御装置
EP0778703A3 (de) * 1992-03-24 1999-03-31 Kabushiki Kaisha Toshiba Vorrichtung zum Aufzeichnen/Wiedergeben von Kodes mit variablen Längen
FR2703535A1 (fr) * 1993-03-31 1994-10-07 Philips Electronique Lab Procédé et dispositif pour décoder des images comprimées.
FR2707118B1 (fr) * 1993-06-30 1995-10-06 Sgs Thomson Microelectronics Système à processeur, notamment de traitement d'image, comprenant un bus mémoire de taille variable.
JP3256627B2 (ja) 1993-11-11 2002-02-12 株式会社東芝 動画復号化方法及びその装置
JPH0818953A (ja) 1994-07-01 1996-01-19 Hitachi Ltd 動画像復号表示装置
JPH08107482A (ja) 1994-10-07 1996-04-23 Graphics Commun Lab:Kk 画像復号装置
EP0710028A3 (de) * 1994-10-28 2000-01-19 Kabushiki Kaisha Toshiba Vorrichtung zur Bilddekodierung
JP2823809B2 (ja) 1995-01-26 1998-11-11 株式会社グラフィックス・コミュニケーション・ラボラトリーズ 画像復号化方法及び画像復号化装置
US6064803A (en) * 1995-03-01 2000-05-16 Matsushita Electric Industrial Co., Ltd. Image information decoder with a reduced capacity frame memory
FR2731864B1 (fr) 1995-03-14 1997-06-06 Sgs Thomson Microelectronics Decodeur mpeg a capacite memoire reduite
JP2935340B2 (ja) 1995-03-17 1999-08-16 日本電気株式会社 ビデオデコード装置
JPH08289302A (ja) * 1995-04-14 1996-11-01 Toshiba Corp 画像復号化装置
EP0793389B1 (de) * 1996-02-27 2001-08-16 STMicroelectronics S.r.l. Speicherverminderung für das Grundprofil und die Hauptebene eines MPEG-2-Dekoders
JPH09247614A (ja) * 1996-03-14 1997-09-19 Matsushita Electric Ind Co Ltd 画像信号処理装置
US5907372A (en) * 1996-06-28 1999-05-25 Hitachi, Ltd. Decoding/displaying device for decoding/displaying coded picture data generated by high efficiency coding for interlace scanning picture format
US5847771A (en) * 1996-08-14 1998-12-08 Bell Atlantic Network Services, Inc. Digital entertainment terminal providing multiple digital pictures
US5926227A (en) * 1997-07-28 1999-07-20 Lsi Logic Corporation Video decoder dynamic memory allocation system and method with error recovery
US6072548A (en) * 1997-07-28 2000-06-06 Lsi Logic Corporation Video decoder dynamic memory allocation system and method allowing variable decoded image size
US6088047A (en) * 1997-12-30 2000-07-11 Sony Corporation Motion compensated digital video decoding with buffered picture storage memory map
US6118488A (en) * 1998-08-31 2000-09-12 Silicon Integrated Systems Corporation Method and apparatus for adaptive edge-based scan line interpolation using 1-D pixel array motion detection

Also Published As

Publication number Publication date
DE69731342D1 (de) 2004-12-02
EP0825781A3 (de) 2001-11-07
CN1175029A (zh) 1998-03-04
KR100472564B1 (ko) 2005-05-16
US6356317B1 (en) 2002-03-12
CN1495599A (zh) 2004-05-12
KR19980018884A (ko) 1998-06-05
SG99841A1 (en) 2003-11-27
EP0825781A2 (de) 1998-02-25
EP0825781B1 (de) 2004-10-27
CN1165836C (zh) 2004-09-08

Similar Documents

Publication Publication Date Title
DE69737852T2 (de) Durch verbessertes speicher- und auslesesystem verschiedene arten von durch bildspeicherspezifischen hardwarespezifikationen verursachte verzögerungsfaktoren überwindender bilddekoder und bildspeicher
DE69627920T2 (de) Speichersteuerungsanordnung und Bilddekodierer damit
DE19521973C2 (de) Bilddecodiervorrichtung
DE69830802T2 (de) Zuweisung von rechenleistung in einem informationsstrom-dekoder
DE19535100A1 (de) Bildverarbeitungseinrichtung, die Pixeldaten mit einer hohen Datenübertragungsrate übertragen kann
DE4231158C5 (de) Verfahren und Einrichtung für die Zusammensetzung und Anzeige von Bildern
DE69432385T2 (de) Bilderzeugung
DE19531004C2 (de) Verfahren und Vorrichtung zur wahrnehmungsoptimierten Übertragung von Video- und Audio-Daten
DE60015213T2 (de) Paralelle Wiedergabevorrichtung
DE60123168T2 (de) MPEG-Dekoder
DE69731342T2 (de) Bildverarbeitungsvorrichtung
DE60029828T2 (de) Verfahren und vorrichtung zur dekodierung von videosignalen mittels eines multiprozessorsystems
DE4408522C2 (de) Vorrichtung zur Bilddatenverarbeitung und Verfahren zur Verarbeitung von Bilddaten
DE69533911T2 (de) Verfahren und Gerät zum Erzeugen von Bildern
DE69636529T2 (de) Verfahren zum Kodieren und Dekodieren von Bewegtbildsignalen
DE69633716T2 (de) Hochgeschwindigkeitssystem zur Skalierung von Bildern
DE69916662T2 (de) Verfahren und vorrichtung zur bewegungskompensation in einem texturabbildungssystem
DE69433537T2 (de) Vorrichtung zur Dekodierung von Bewegtbilddaten
DE19737814B4 (de) Bilddatenspeicherungsverfahren und Verarbeitungsapparat dafür
DE19935604B4 (de) Vorrichtung zum Decodieren eines Bewegungsbildes
DE19946683A1 (de) Decodiersystem für komprimierte Datenströme zum gleichzeitigen Reproduzieren stabiler Bilder, Verfahren zum Decodieren komprimierter Datenströme und Informationsspeichermedium zum Speichern von das Verfahren darstellenden Programmbefehlen
DE19643376A1 (de) Verfahren zum Speichern von Videorahmendaten in einem Speicher
DE69636275T2 (de) Vorrichtung zur Dekodierung von digitalen Bildern
DE69838892T2 (de) Bildspeichereinrichtungen und Bildzugriffsverfahren
DE69628269T2 (de) Konversionsverfahren einer Ausgangsdatenfolge in Invers-DCT und Schaltung davon

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: PANASONIC CORP., KADOMA, OSAKA, JP