-
Die
vorliegende Erfindung betrifft einen Decoder oder Decodierer für einen
komprimierten oder verdichteten Datenstrom und insbesondere einen
Decodierer zum gleichzeitigen oder parallelen Decodieren mehrerer
komprimierter Datenströme,
die durch eine prädiktive
Rahmenredundanz- oder Interrahmencodierung, z. B. durch MPEG-(Motion
Picture Experts Group)-Standards codiert werden.
-
Zunächst wird
ein herkömmlicher
Decodierer für
einen einzelnen Datenstrom beschrieben. 1 zeigt einen herkömmlichen Decodierer. Bezugszeichen 101 bezeichnet
eine optische oder Bildplatte. Ein Bild- oder Videosignal und ein
Audiosignal werden verdichtet oder komprimiert und, gemäß MPEG-Standards
codiert, und Bitketten werden in der optischen Platte 101 aufgezeichnet.
Die optische Platte 101 ist einer Ausleseschaltung 102 zugeordnet,
und die Ausleseschaltung 102 liest die Bitketten von der
optischen Platte 101 als Einzeldatenstrom aus. Der Einzeldatenstrom
wird entschachtelt oder getrennt, und Fehlerbits werden korrigiert. Schließlich überträgt die Ausleseschaltung 102 Bitketten 121 zu
einem Speicher 103 zum Speichern der Bitketten 121.
Eine (nicht dargestellte) Ausleseschaltung führt dem Speicher 103 ein
Adresser signal zu, und die Bitketten 121 werden in einer
anderen Reihenfolge aus dem Speicher 103 ausgelesen.
-
Der
Speicher 103 ist mit einem Decodierer 108 verbunden,
und die Bitketten 121 werden dem Decodierer 108 zugeführt. Die
Bitketten 121 werden decodiert. Der Decodierer 108 gibt
ein Reproduktionssignal 181 zum Reproduzieren eines Bildes
auf einer (nicht dargestellten) Sichtanzeige aus. Der Decodierer 108 ist
mit Rahmenspeichern 192, 192, 193 verbunden,
und die Rabmenspeicher 191,192,193 speichern
Videodateninformationsteile, die Referenzbilder darstellen, d. h.
ein "I-Bild" bzw. ein "P-Bild", und andere Videodateninformationsteile,
die ein "B-Bild" darstellen.
-
Nachstehend
wird das prädiktive
Verfahren für
das MPEG-System beschrieben. 2 zeigt
eine GOP (Group of Pictures). Mehrere Rahmen 0, 1, 2, 3, 4, 5, 6,...
erscheinen aufeinanderfolgend, und jeder Rahmen enthält ein Bild
darstellende Videodateninformationsteile. Die Rahmennummer nimmt
mit der Zeit zu. Der Rahmen 6 ist nach dem Rahmen 5 angeordnet,
und die Bilder werden in der Folge der Rahmennummern nacheinander
reproduziert. Die Symbole "I", "B" und "P" werden
selektiv den Rahmen 0, 1, 2, 3, 4, 5, 6,... zugeordnet und bezeichnen
Bildtypen. Das durch "P" etikettierte Bild
wird als "P-Bild" bezeichnet, und
das durch "I" etikettierte Bild
und das durch "B" etikettierte Bild
werden als "I-Bild" bzw. "B-Bild" bezeichnet. Das
I-Bild wird unter Verwendung von Dateninformationsteilen in nur
einem Rahmen codiert. Das P-Bild oder das I-Bild wird als Kernbild
bezeichnet. Das P-Bild ist ein unidirektional prädiktiv codierter Bildtyp und
wird unter Verwendung eines drei Rahmen davor befindlichen I-Bildes
oder P-Bildes als Referenzbild codiert. Beispielsweise wird das P-Bild
im Rahmen 6 unidirektional codiert durch die prädiktive Codiertechnik unter
Verwendung des P-Bildes im Rahmen 3 als Referenzbild. Das B-Bild
ist kennzeichnend für
das MPEG-System. Das B-Bild
ist ein bidirektional prädiktiv
codierter Bildtyp und wird unter Verwendung der Bilder auf beiden
Seiten davon als Referenzbild codiert. Beispielsweise wird das B-Bild
des Rahmens 5 bidirektional codiert durch eine prädiktive
Codiertechnik unter Verwendung der P-Bilder in den Rahmen 3 und
6.
-
Wenn
die Bilder in den Rahmen 0 bis 6 codiert wereden, werden Bitketten
I0, P3, B1, B2, P6, B4 und P5 wie in 3 dargestellt
angeordnet. Bezugszeichen 10 bezeichnet die Bitkette, die
das I-Bild im Rahmen 0 darstellt, und das Bezugszeichen P3 bezeichnet
die Bitkette, die das P-Bild im Rahmen 3 darstellt. Bezugszeichen
B1 bezeichnet die Bitkette, die das B-Bild im Rahmen 1 darstellt.
Daher werden die Sitketten I0-B5 in den Rahmen 0 bis 6 unterschiedlich
ar geordnet, um die Bitketten effektiv zu decodieren.
-
Gemäß 1 reproduziert der herkömmliche
Videobilddecodierer die Bilder folgendermaßen. Die Rusleseschaltung 102 liest
Dateninformationsteile von der optischen Platte 101 aus
und führt
die Bitketten 121 dem Speicher 103 zu. Die Bitketten 121 folgen
der Folge der Rahmen 0, 1, 2, 3, 4, 5, 6,..., d. h. I0, B1, B2,
P3, B4, B5, B6,... Die Bitketten 121 werden in den Speicher 103 geschrieben
und werden in der in 3 dargestellten
Reihenfolge im Speicher 103 umgeordnet.
-
Anschließend werden
die Bitketten 121 sequentiell aus dem Speicher 103 ausgelesen.
Die Bitketten werden als Bitketten I0, P3, B1, B2, P6, B4, B5,...
angeordnet, wie in 3 dargestellt.
Die Bitketten 10, P3, B1, B2, P6, B4, B5,... werden nacheinander
dem Decodierer 108 zugeführt und als Reproduktionssignal 181 decodiert.
Während
der Decodierer 108 die Bitketten decodiert, werden die
Bitketten 10, P3, B1, B2, P6, B4, B5,... folgendermaßen verarbeitet.
Zunächst
wird die Bitkette 10 decodiert, und das decodierte Signal
DI0 wird im Rahmenspeicher 191 gespeichert. Das decodierte
Signal DI0 wird als Reproduktionssignal 181 ausgegeben.
Der Decodierer 108 nimmt Bezug auf das decodierte Signal
DI0, das das im Rahmenspeicher 191 gespeicherte I-Bild
darstellt, und die Bitkette P3 wird zu einem decodierten Signal
DP3 decodiert. Das decodierte Signal DP3 wird im Rahmenspeicher 192 gespeichert
und als Reproduktionssignal 181 ausgegeben. Anschließend nimmt
der Decodierer 108 Bezug auf die in den Rahmenspeichern 191, 192 gespeicherten
decodierten Signale DI0 und DP3, und die Bitkette B1 wird zu einem
decodierten Signal DB1 decodiert. Das decodierte Signal DB1 wird
im Rahmenspeicher 193 gespeichert und bildet einen Teil
des Reproduktionssignals 181. Der Decodierer 108 nimmt
außerdem
Bezug auf die in den Rahmenspeichern 191, 192 gespeicherten
decodierten Signale DI0 und DP3, und die Bitkette B2 wird zu einem
decodierten Signal DB2 decodiert. Das decodierte Signal DB2 wird
im Rahmenspeicher 193 gespeichert und bildet einen Teil
des Reproduktionssignals 181. Der Decodierer 108 nimmt
Bezug auf das im Rahmenspeicher 192 gespeicherte decodierte
Signal DP3, und die Bitkette P6 wird zu einem decodierten Signal
DP6 decodiert. Das decodierte Signal DP6 wird im Rahmenspeicher 191 gespeichert,
weil das decodierte Signal DP0 bereits unnötig ist.
-
Der
herkömmliche
Videodecodierer reproduziert das Reproduktionssignal 181 effektiv
aus dem von der optischen Platte 101 ausgelesenen einzelnen
Datenstrom. Die Schaltungsanordnung des herkömmlichen Videodecodierers ist
jedoch zum Reproduzieren von Bildern aus mehreren Datenströmen weniger
geeignet. 4 zeigt drei
auf einer Sichtanzeige 195 reproduzierte Bilder. Das Bild
auf der linken Seite der Sichtanzeige 195 wird von einem
komprimierten Datenstrom A reproduziert, und die Bilder auf der
rechten Seite werden von komprimierten Datenströmen B bzw. C reproduziert.
Der MPEG-Decodierer wird für
die komprimierten Datenströme
A, B und C verwendet, und die komprimierten Datenströme enthalten
B-Bilder darstellende Bitketten.
-
Die
drei Bilder werden durch den in 5 dargestellten
Decodiervorgang gleichzeitig auf der Sichtanzeige 195 repro duziert.
Die Zeit verstreicht von der linken Seite zur rechten Seite. 5 zeigt Angaben "FELD", "ZU DECODIERENDE BITKETTE", "BILD AUF SICHTANZEIGE", "SCHREIBE IN RAHMENSPEICHER" und "RAHMENSPEICHER AUSLESEN" für den komprimierten
Datenstrom A. Die Angaben "SCHREIBE
IN RAHMENSPEICHER" und "RAHMENSPEICHER AUSLESEN" beziehen sich auf
den Rahmenspeicher, in den ein decodiertes Signal geschrieben werden
soll bzw. auf den Rahmenspeicher, aus dem ein decodiertes Signal
ausgelesen werden soll. Ein in einem Rahmen gespeichertes Bild wird
durch zwei Bildzusammensetzungs- Oder Scanvorgänge auf der Sichtanzeige reproduziert.
Rahmen "1" und Rahmen "2" stellen den ersten bzw. den zweiten
Scanvorgang dar und entsprechen dem "oberen Teil" des darzustellenden Bildes bzw. dem "unteren Teil" des darzustellenden
Bildes. Obwohl die zweite Reihe "ZU
DECODIERENDE BITKETTEN" die Bitketten
des komprimierten Datenstroms A bezeichnet, werden auch die Bitketten
des komprimierten Datenstroms B und die Bitketten des komprimierten
Datenstroms C durch eine Time-Sharing-Verarbeitung in zwei Dritteln
jedes Rahmens decodiert. Ähnlicherweise
stellt die dritte Reihe "BILD
AUF SICHTANZEIGE" die
aus dem komprimierten Datenstrom A reproduzierten Bilder dar, und 5 bezieht sich nicht auf
die aus dem komprimierten Datenstrom B reproduzierten Bilder und
die aus dem komprimierten Datenstrom C reproduzierten Bilder. Die
aus dem komprimierten Datenstrom B reproduzierten Bilder und die
aus dem komprimierten Datenstrom C reproduzierten Bilder werden
jedoch gleichzeitig auf der Sichtanzeige 195 reproduziert,
wie in 4 dargestellt.
In der folgenden Beschreibung werden das zweite Feld "2" eines Rahmens und das erste Feld "1" das nächsten Rahmens einer zu decodierenden
Bitkette zugeordnet, und die Gesamtzeitdauer wird als "Decodierperiode" bezeichnet. Eine
jedem Rahmen zugeordnete Zeitdauer wird als "Rahmenperiode" bezeichnet. Ein oberer Teil eines Bildes
wird durch ein Bezugszeichen gekennzeichnet, das durch die zugeordnete
Bitkette mit dem Zusatz "top" bezeichnet ist,
und ein unterer Teil des Bildes wird durch das Bezugszeichen mit
dem Zusatz "bottom" bezeichnet.
-
Die
Bitkette 10 des Datenstroms A wird in der ersten Decodierperiode,
d. h. im Feld "2" des ersten Rahmens
und im Feld "1" des zweiten Rahmens,
decodiert, und das decodierte Signal DI0 wird im Rahmenspeicher
A0 gespeichert. Die Bitkette P3 wird in der zweiten Decodierperiode,
d. h. im Feld "2" des zweiten Rahmens
und im Feld "1" des dritten Rahmens,
decodiert, und das decodierte Signal DP3 wird in den Rahmenspeicher
A1 geschrieben. Das einen operen Teil I0top des Bildes darstellende
decodierte Signal DI0 wird aus dem Rahmenspeicher A0 ausgelesen,
und der obere Teil I0top wird auf der Sichtanzeige 195 im
Feld "1" des dritten Rahmens
oder in der letzten Hälfte
der zweiten Decodierperiode reproduziert.
-
In
der dritten Decodierperiode wird die Bitkette B1 decodiert, und
das decodierte Signal DB1 wird in den Rahmenspeicher A2 geschrieben.
Das einen unteren Teil I0bottom darstellende decodierte Signal DI0
wird aus dem Rahmenspeicher A0 ausgelesen, und der untere Teil I0bottom
wird auf der Sichtanzeige 195 reproduziert. Außerdem wird
das einen oberen Teil B1 top darstellende decodierte Signal DB1
aus dem Rahmenspeicher A2 ausgelesen, und der obere Teil B1 top
wird auf der Sichtanzeige 195 reproduziert.
-
Der
vierte Decodiervorgang ist schwierig. In der ersten Hälfte X der
vierten Decodierneriode müssen ein
Datenlese- und ein
Datenschreibvorgang gleichzeitig ausgeführt werden. D. h., die Bitkette
B2 wird decodiert, und das decodierte Signal DB2 wird in den Rahmenspeicher
A2 geschrieben. Das den unteren Teil Blbottom darstellende decodierte
Signal DB1 wird aus dem Rahmenspeicher A2 ausgelesen, und der untere
Teil B1bottom wird auf der Sichtanzeige 195 reproduziert.
Dadurch werden der Datenlese- und der Datenschreibvorgang in der
ersten Stufe der vierten Decodierperiode gleichzeitig ausgeführt. Der
Datenschreibvorgang wird jedoch früher abgeschlossen als der Datenlesevorgang.
Das Auslesen des decodierten Signals DB2 und die Reproduktion des
Bildes beginnen von der letzten Hälfte der dritten Decodierperiode
und werden für
das Bild vor dem Schreibvorgang und für das Bild nach dem Schreibvorgang
ausgeführt.
D. h., das decodierte Signal DB1 muß bis zum Zeitpunkt X- gehalten
werden. Das decodierte Signal DB1 wird jedoch zum Zeitpunkt X durch
das decodierte Signal DB2 ersetzt. Durch das Ersetzen wird das decodierte
Signal DB1 beeinträchtigt, und
das Bild auf der Sichtanzeige 195 wird gestört. Der
Grund für
die Störung
besteht darin, daß der
Bitkette des Datenstroms A nur ein Drittel der Decodierperiode zugeordnet
ist. Die Zeitdauer ist zu kurz, um den Datenlese- und den Datenschreibvorgang
auszuführen.
Wenn drei MPEG-Decodierer für
die drei. Datenströme A,
B und C vorgesehen sind, wird die vorstehend beschriebene Störung der
Bilder durch die parallele Decodierung eliminiert. Die Anzahl der
Schaltungskomponenten wird jedoch erhöht, so daß nachteilig hohe Herstellungskosten
entstehen.
-
6 zeigt ein herkömmliches
MPEG-Decodiersystem mit mehreren Decodierern. Drei Datenströme A, B
und C werden MPEG-Videodecodierern 26, 27 bzw. 28 zugeführt, und
die MPEGvideodecodierer 26, 27 und 28 sind
Rahmenspeichern A0, A1, A2, Rahmenspeichern B0, B1, B2 bzw. Rahmenspeichern
C0, C1, C2 zugeordnet. Die Rahmenspeicher A0-A2, B0-B2 und C0-C2
bilden zusamien einen Speicher 2, und der Speicher 2 ist
mit einer Sichtanzeige 3 verbunden. Ein Synchronsignalgenerator 4 führt MPEG-Videocontrollern 26a, 27a, 28a,
die Teile der MPEG-Videodecodierer 26, 27 bzw. 28 bilden,
ein Synchronsignal zu. Jeder der MPEG-Videodecodierer 26, 27, 28 weist
außerdem
einen Variable-Wortlängen-Decodierer
VLD, einen Tnvers-Quantisierer IQ, einen zweidimensionalen Inverse-Discrete-Cosinetimwandler
IDCT und einen Bewegungskompensator MC auf.
-
Der
MPEG-Videodecodierer 26 speichert die Kernbilder darstellenden
Bitketten und die B-Bilder darstellenden Bitketten im Rahmenspeicher
A0 oder A1 bzw. im Rahmenspeicher A2 für den Datenstrom A. Der MPEG-Videodecvdierer 27 speichert
die Kernbilder darstellenden Bitketten und die B-Bilder darstellenden
Bitketten im Rahmenspeicher B0 oder B1 bzw. im Rahmenspeicher B2
für den
Datenstrom B. Der MPEG-Videodecodierer 28 speichert die
Kernbilder darstellenden Bitketten und die B-Bilder darstellenden
Bitketten im Rahmenspeicher C0 oder C1 bzw. im Rahmenspeicher C2
für den
Datenstrom C. Daher verarbeiten die MPEG-Videodecodierer 26, 27 und 28 die
Datenströme
A, B und C parallel, und auf der Sichtanzeige 3 werden drei
Bilder reproduziert.
-
Daher
ist es eine Aufgabe der vorliegenden Erfindung, einen MPEG-Decodierer
bereitzustellen, der mehrere Bilder auf einer Sichtanzeige ohne
Störung
der Bilder gleichzeitig reproduziert.
-
Es
ist eine andere Aufgabe der vorliegenden Erfindung, ein Verfahren
zum gleichzeitigen Reproduzieren mehrerer stabiler Bilder bereitzustellen.
-
Es
ist eine weitere Aufgabe der vorliegenden Erfindung, ein Informationsspeichermedium
zum Speichern von das Verfahren darstellenden Programmbefehlen bereitzustellen.
-
Um
die Aufgabe zu lösen,
wird durch die vorliegende Erfindung vorgeschlagen, mehr Rahmenspeicher bereitzustellen
als zum Reproduzieren eines beliebigen Videodateninformationsteils
erforderlich sind.
-
Gemäß einem
Aspekt der vorliegenden Erfindung wird ein Decodiersystem zum Erzeugen
von Videodateninformationsteilen bereitgestellt, die mehrere Bildtypen
darstellen, die auf dem Bildschirm einer Sichtanzeige von komprimierten
Datenströmen
reproduziert werden sollen, die die mehrere Bildtypen darstellen
und durch eine prädiktive
Rahmenredundanzcodierungstechnik codiert sind, wobei das Decodiersystem
aufweist: mehrere Speicher, die jeweils den komprimierten Datenströmen zugeordnet
sind, wobei jeder der mehreren Speicher mehr Rahmenspeicher aufweist
als zum Erzeugen eines beliebigen der Videodateninformationsteile erforderlich
sind, einen Decodierabschnitt, dem die Bitketten der komprimierten
Datenströme
selektiv zugeführt
werden und der die Videodateninformationsteile darstellenden Ausgangssignale
und ein erstes Steuersignal erzeugt, das eines der mehreren Bildtypen
darstellt, der durch die gerade verarbeitete Bitkette daregestellt
wird, einen mit dem Decodierabschnitt verbundenen Informationsprozessor
zum Erzeugen der Videodateninformationsteile aus dem Ausgangssignal
oder durch eine Informationsverarbeitung zwischen den Videodateninformationsteilen,
die durch die Ausgangssignale dargestellt werden, und den Videodateninformationsteilen,
die bereits in den mehreren Speichern gespeichert sind, und zum
Speichern jedes der Videodateninformationsteile in einem der mehreren
Rahmenspeicher des einen zugeordneten der mehreren Speicher und
einen Controller, der auf das erste Steuersignal anspricht, um einen
der mehreren Rahmenspeicher eines zugeordneten der mehreren Speicher
auszuwählen
und den Informationsprozessor anzuweisen, den Videodateninformationsteil,
der von der gerade verarbeiteten Bitkette erzeugt wird, zum vorstehend
erwähnten
einen der mehreren Rahmenspeicher zu übertragen, um einen darin bereits
gespeicherten ungültigen
Videodateninformationsteil durch den Videodateninformationsteil
zu ersetzen.
-
Gemäß einem
anderen Aspekt der vorliegenden Erfindung wird ein Verfahren zum
gleichzeitigen Reproduzieren mehrerer Bilder auf dem Bildschirm
einer Sichtanzeige bereitgestellt mit den Schritten: a) selektives
Zuführen
mehrerer Bitketten, die jeweils aus mehreren komprimierten Datenströmen extrahiert
werden, durch eine Time-Sharing-Verarbeitung zu einem Decodierabschnitt
zum Erzeugen von Videodateninformationsteilen, die mehrere Bilder
darstellen, in einer ersten Rahmenperiode; b) Auswählen ungenutzter
Rahmenspeicher aus mehreren Speichern, die jeweils aus mehreren
Rahmenspeicher bestehen, deren Anzahl größer ist als die Anzahl der
zum Erzeugen eines der Videodateninformationsteile, der eines der
mehreren Bilder darstellt, erforderlichen Rahmenspeicher in der
ersten Rahmenperiode; c) Speichern der Videodateninformationsteile
in den ungenutzten Rahmenspeichern in der ersten Rahmenperiode;
und d) Übertragen
der Videodateninformationsteile von den ungenutzten Rahmenspeichern
zu einer Sichtanzeige in einer der ersten Rahmenperiode folgenden
zweiten Rahmenperiode.
-
Gemäß einem
weiteren Aspekt der vorliegenden Erfindung wird ein Informationsspeichermadium
zum Speichern eines Satzes von durch einen Datenprozessor auszuführenden
Programmbefehlen bereitgestellt, wobei durch den Programmbefehlssatz
ein Verfahren zum gleichzeitigen Reproduzieren mehrerer Bilder auf dem
Bildschirm einer Sichtanzeige realisiert wird, wobei das verfahren
die Schritte aufweist: a) selektives Zuführen mehrerer Bitketten, die
jeweils aus mehreren komprimierten Datenströmen extrahiert werden, durch eine
Time-Sharing-Verarbeitung zu einem Decodierabschnitt zum Erzeugen
von Videodateninformationsteilen, die mehrere Bilder darstellen,
in einer ersten Rahmenperiode; b) Auswählen ungenutzter Rahmenspeicher aus
mehreren Speichern, die jeweils aus mehreren Rahmenspeichern bestehen,
deren Anzahl größer ist
als die Anzahl der zum Erzeugen eines der Videodateninformationsteile,
die eines der mehreren Bilder darstellen, erforderlichen Rahmenspeicher,
in der ersten Rahmenperiode; c) Speichern der Videodateninformationsteile in
den ungenutzten Rahmenspeichern in der ersten Rahmenperiode; und
d) Übertragen
der Videodateninformationsteile von den ungenutzten Rahmenspeichern
zu einer Sichtanzeige in einer der ersten Rahmenperiode folgenden
zweiten Rahmenperiode.
-
Die
Merkmale und Vorteile des Decodierers, des Verfahrens und des Informationsspeichermediums werden
anhand der nachstehenden Beschreibung in Verbindung mit den beigefügten Zeichnungen
verdeutlicht; es zeigen:
-
1 ein
Blockdiagramm zum Darstellen der Anordnung eines herkömmlichen
Videodecodierers;
-
2 eine
Ansicht zum Darstellen einer GOP (Group of Pictures);
-
3 eine
Ansicht zum Darstellen einer die codierten Bilder in den Rahmen
darstellenden Bitkette;
-
4 eine
Ansicht zum Darstellen der auf einer Sichtanzeige gleichzeitig reproduzierten
Bilder;
-
5 ein
Zeitdiagramm zum Darstellen der gleichzeitigen Reproduktion mehrerer
Bilder auf einer Sichtanzeige;
-
6 ein
Blockdiagramm zum Darstellen der Schaltungsanordnung eines herkömmlichen
MPEG-Decodiersystems zum gleichzeitigen Reproduzieren von drei Bildern
auf einer Sichtanzeige;
-
7 ein
Blockdiagramm zum Darstellen der Schaltungskonfiguration eines erfindungsgemäßen MPEG-Decodiersystems;
-
8 ein
Blockdiagramm zum Darstellen der Schaltungskonfiguration eines im
MPEG-Decodiersystem angeordneten MPEG-Videocontrollers;
-
9 ein
Zeitdiagramm zum Darstellen eines Verfahrens zum gleichzeitigen
Reproduzieren mehrerer Bilder, die ein B-Bild enthalten, auf einer
Sichtanzeige;
-
10 ein
Ablaufdiagramm zum Darstellen eines Algorithmus zum Bestimmen eines
Rahmenspeichers, in dem ein Videodateninformatiansteil gespeichert
ist;
-
11 ein
Zeitdiagramm zum Darstellen eines Verfahrens zum gleichzeitigen
Reproduzieren mehrerer Bilder ohne B-Bild auf einer Sichtanzeige; und
-
12 ein
Blockdiagramm zum Darstellen der Schaltungskonfiguration eines im
MPEG-Videocontroller angeordneten Rahmenspeichercontrollers.
-
Gemäß 7 weist
ein MPEG-Decodiersystem im wesentlichen einen einzelnen MPEG-Videodecodierer 1,
einen Speicher 2, eine Sichtanzeige 3 und einen
Synchronsignalgenerator 4 auf. Drei komprimierte Datenströme A, B
und C werden dem MPEG-Videodecodierer 1 zugeführt, und
Bitketten der Datenströme
A, B und C werden zu decodierten Signalen decodiert. Die decodierten
Signale werden im Speicher 2 gespeichert und selektiv daraus
ausgelesen. Die decodierten Signale werden der Sichtazeige 3 zugeführt und
reproduzieren Bilder auf der Sichtanzeige 3, wie in 4 dargestellt.
Obwohl drei Datenströme
A, B und C gleichzeitig am MPEG-Videodecodierer 1 eintreffen,
decodiert nur der einzelne MPEG-Decodierer 2 die Bitketten
der Datenströme
A, B, C unter Verwendung eines Bildes als Einheit. Um eine parallele
Decodierung zu ermöglichen, sind
jedem der Datenströme
A, B, C jeweils vier Rahmenspeicher A0/ A1/ A2/A3, B0/ B1/ B2/ B3
und C0/ 01/ C2/ C3 zugeordnet. Die Rahmenspeicher A0/ A1/ A2/ A3,
B0/ B1/ B2/ B3 und C0/ C1/C2/ C3 speichern jeden der Bildtypen darstellende
decodierte Signale. D. h., zwischen den Rahmenspeichern A0/ A1/A2/
A3, B0/ B1/ B2/ B3 und C0/ C1/ C2/ C3 und dem Bildtyp, z. B. dem
Kernbild, dem B-Bild und dem I-Bild, besteht keinerlei Beziehung.
Die Belegung oder Ausnutzung des Rahmenspeichers A0/ A1/ A2/ A3,
B0/ B1/ B2/ B3 und C0/ C1/C2/ C3 wird durch Verwendung eines neuartigen
Steuerverfahrens realisiert. Der Synchronsignalgenerator 4 erzeugt
Synchronsignale 18,19 und führt die Synchronsignale 18,19 dem
MPEG-Videodecodierer 1 bzw. der Sichtanzeige 3 zu.
-
Fachleuten
ist bekannt, daß die
MPEG-Technologie eine auf einer prädiktiven Rahmenredundanzcodiertechnik
basierende hocheffiziente Datenverdichtungscodiertechnik ist. Die
prädiktiver.
Verfahren für
mehrere Rahmen sind autauschbar, wodurch ein hoher Komprimierungswirkungsgrad
und eine Reproduktion von einem Zwischenpunkt im Ablauf bzw. in
der Sequenz erhalten werden.
-
Der
MPG-videodecodierer 1 weist einen MPEG-Videocontroller 5,
eine Auswahleinrichtung 6, einen Variable-Wortlängen-Decodierer
VLD, einen Invers-Quantisierer IQ, einen zweidimensionalen Inverse-Discrete-Cosine-Umwandler
IDCT und einen Bewegungskompensator MC auf. Durch den MPEG-Videocontroller 5 wird
das neuartige Steuerverfahren realisiert, wie nachstehend ausführlich beschrieben
wird. Die Datenströme
A, B, C werden der Auswahleinrichtung 6 zugeführt, und
die Auswahleinrichtung 6 überträgt Bitketten der Datenströme A, B,
C durch ein Time-Sharing-verfahren zum Variable-Wortlängen-Decodierer
VLD. Videodateninformationsteile werden durch Videodatencodes mit
variabler Länge
dargestellt, und der Variable-Wortlängen-Decodierer VLD decodiert
die Videodatencodes mit variabler Länge in decodierte Signale.
Der Variable-Wortlängen-Decodierer
VLD bestimmt den durch den Videodatencode mit variabler Länge dargestellten Bildtyp
und erzeugt ein den Bildtyp darstellendes Steuersignal. Das Steuersignal 20 wird
dem MPEG-Videocontroller 5 zugeführt.
-
Die
decodierten Signale werden dem Invers-Quantisierer IQ zugeführt und
invers quantisiert. Die quantisierten Sifinale werden dem zweidimensionalen
Inverse-Discrete-Cosine-Umwandler IDCT zugeführt und einer zweidimensionalen
Inverse-Discrete-Cosine-Transformation oder Umwandlung unterzogen.
Die transformierten oder umgewandelten Signale werden dem Bewegungskompensator
MC zugeführt.
-
Der
Bewegungskompensator MC verhält
sich in Abhängigkeit
vom durch das umgewandelte Signal dargestellten Bildtyp unterschiedlich.
Wenn das transformierte oder umgewandelte Signal ein I-Bild darstellt, führt der
Bewegungskompensator MC das transformierte oder umgewandelte Signal
dem Speicher 2 zu. Der das I-Bild darstellende Videodateninformationsteil
wird im Speicher 2 gespeichert. Wenn das transformierte oder
umgewandelte Signal ein P-Bild darstellt, liest der Bewegungskompensator
MC den das Kernbild darstellenden Videodateninformationsteil aus
dem Speicher 2 aus und addiert den das P-Bild darstellenden
Videodateninformationsteil zum das Kernbild darstellenden Videodateninformationsteil.
Die Summe, d. h. ein neuer Videodateninformationsteil, wird in den
zweiten Speicher 2 geschrieben. Wenn das transformierte
oder umgewandelte Signal ein B-Bild darstellt, liest der Bewegungskompensator
MC die die Kernbilder darstellenden Videodateninformationsteile
aus dem Speicher 2 aus und addiert den das B-Bild darstellenden
Videodateninformationsteil zu den die Kernbilder darstellenden Videodateninformationsteilen.
Wie vorstehend beschrieben, ist das Kernbild das I-Bild oder das
P-Bild. Die Summe, d. h. ein neuer Videodateninformationsteil, wird
in den Speicher 2 geschrieben.
-
Das
Synchronsignal 18 und das Steuersignal 20 werden
dem MPEG-Videocontroller 5 zugeführt. Der MPEG-Videocontroller 5 bestimmt
eine Adresse des Speichers 2, an der der Videodateninformationsteil
geschrieben und ausgelesen wird. Ein Adressensignal 21 stellt
die Adresse dar und wird dem Speicher 2 zugeführt. Die
Videodateninformationsteile werden von den Adressen des Speichers 2 ausgelesen
und einer Sichtanzeige 3 zugeführt. Die Sichtanzeige 3 spricht
auf das Synchronsignal 19 an, um ein Ausgangsbild zu reproduzieren.
-
8 zeigt
den MPEG-Videocontroller 6 im Detail. Der MPEG-Videocontroller 5 weist
einen Taktgenerator 7, Rahmenspeichercontroller 8A, 8B, 8C und
einen Adressengenerator 9 auf. Der Taktgenerator 7 spricht
auf das Synchronsignal 18 an, um den Rahmenspeichercontrollern 8A, 8B, 8C Start-
oder Anstoßsignale 22A, 228 bzw. 22C zuzuführen. Das
Start- oder Anstoßsignal 22A, 22B, 22C zeigt
einen Start der Decodierverarbeitung an und wird in regelmäßigen Intervallen
einmal pro Rahmenperiode auf der Sichtanzeige 3 erzeugt.
-
Der
Rahmencontroller 8A des Datenstroms A verhält sich
folgendermaßen.
Das Anstoßsignal 22A und
das Steuersignal 20 werden dem Rahmencontroller 8A zugeführt. Der
Rahmencontroller 8A erzeugt drei Speichersteuersignale 23, 24, 25.
Das erste Speichersteuersignal 23 stellt einen Referenzcode
A0, A1, A2, A3 dar, der dem Rahmenspeicher zugewiesen ist, in den
ein Videodateninformationsteil geschrieben wird. Das zweite Speichersteuersignal 24 stellt
einen Referenzeode A0, A1, A2, A3 dar, der dem Rahmenspeicher zugewiesen
ist, von dem ein Videodateninformationsteil ausgelesen wird. Das
dritte Speichersteuersignal 25 stellt ebenfalls einen Referenzcode
A0, A1, A2, A3 dar, der dem Rahmenspeicher zugewiesen ist, von dem
ein anderer Videodateninformationsteil ausgelesen wird.
-
Nachstehend
wird vorausgesetzt, daß das
Steuersignal 20 anzeigt, daß der Videodateninformationsteil
ein I-Bild darstellt und der Rahmenspeichercontroller 8A nur
das erste Speichersteuersignal 23 erzeugt. Wenn das Steuersignal 20 ein
P-Bild anzeigt, erzeugt der Rahmenspeichercontroller 8A das
zweite Speichersteuersignal 24 sowie das erste Speichersteuersignal 23.
Wenn das Bild ein B-Bild ist, erzeugt der Rahmenspeichercontroller 8A alle
Speichersteuersignale 23, 24, 25. Die
anderen Rahmenspeichercontroller 8B, 8C verhalten
sich ähnlich
wie der Rahmenspeichercontroller 8A, so daß diese
nachstehend nicht näher
beschrieben werden.
-
Die
Speichersteuersignale 23, 24, 25 werden
von jedem der Rahmenspeichercontroller 8A, 8B, 8C dem
Adressengenerator 9 zugeführt. Der Adressengenerator 9 spricht
auf die Speichersteuersignale 23, 24, 25 an,
um das Adressensignal 21 zu erzeugen, das Adressensignal 21 wird
dem Speicher 2 zugeführt.
-
Das
MPEG-Videodecodiersystem verhält
sich folgendermaßen.
Es wird vorausgesetzt, daß die
Datenströme
A, B und C Videodateninformationsteile darstellen, die über drei
verschiedene Fernsehsendekanäle übertragen
werden. Die Videodateninformationsteile werden unter Bezug auf MPEG-Standards
codiert. Das MPEG-Videodecodiersystem dient zum Reproduzieren von
drei Bildern auf der Sichtanzeige 3 auf ähnliche Weise
wie in 4 dargestellt.
-
9 zeigt
ein erfindungsgemäßes Verfahren
zum Reproduzieren von Bildern. Die Zeit verstreicht von der linken
zur rechten Seite, und 9 zeigt ein Feld, eine Bitkette
des zu decodierenden Datenstroms A, ein darzustellendes Bild, einen
Rahmenspeicher A0, A1, A2, A3, in den ein Videodateninformationsteil
geschrieben werden soll und einen oder mehrere Rahmenspeicher A0,
A1, A2, A3, von dem denen ein oder mehrere Videodateninformationsteile
ausgelesen wird/werden. Der oder die Rahmenspeicher sind ohne das
Symbol "A" bezeichnet. Beim
erfindungsgemäßen Verfahren
zum Reproduzieren von Bildern sind für ein Bild in jedem Rahmen
zwei Bildzusammensetzungs- oder Scanvorgänge auf dem Bildschirm der
Sichtanzeige 3 erforderlich, und die Felder "1" und "2" entsprechen
zwei Bildzusammensetzungs- oder
Scanvorgängen.
Fin Teil des Bildes wird durch den ersten Bildzusammensetzungs-
oder Scanvorgang "1" reproduziert und
ist durch "top" etikettiert. Der
andere Teil des Bildes wird durch den zweiten Bildzusammensetzungs-
oder Scanvorgang "2" reproduziert und
ist durch "bottom" etikettiert. Obwohl 9 die
Reproduktion des Datenstroms A darstellt, werden auch die durch
die Datenströme
B und G dargestellten Bilder durch ein Time-Sharing-verfahren in
zwei Dritteln jedes Rahmens reproduziert.
-
Die
Variablen "Not Use", "Core 0", "Core 1" und "B" bezeichnen Variablen eines bei der
Erzeugung der Speichersteuersignale 23, 24, 25 verwendeteten
Algorithmus. Die Variable "Core
1" zeigt den Referenzcode an,
der einem Rahmenspeicher A0, A1, A2, A3 zugewiesen ist, in dem ein
Videodateninformationsteil gespeichert ist, vier das letzte Kernbild
darstellt, und der Videodateninformationsteil soll beim Decodieren
der ein B-Bild darstellenden Bitkette daraus ausgelesen werden.
Der Rahmenspeicher dient als zweiter Lesespeicher.
-
Die
Variable "Core 0" bezeichnet den Referenzcode,
der einem Rahmenspeicher A0, A1, A2, A3 zugewiesenen ist, in dem
ein anderer Videodateninformationsteil gespeichert ist, der ein
anderes Kernbild vor dem letzten Kernbild darstellt, und der Videodateninformationsteil
soll beim Decodieren der das B-Bild darstellenden Bitkette daraus
ausgelesen werden. Der Rahmenspeicher dient als erster Lesespeicher.
-
Die
Variable "B" bezeichnet den Referenzcode,
der einem Rahmenspeicher A0, A1, A2, A3 zugewiesen ist, in dem ein
das letzte B-Bild darstellender Videodateninformationsteil gespeichert
ist.
-
Die
Variable "Not Use" bezeichnet einen
Referenzcode, der dem vierten Rahmenspeicher zugeordnet ist, d.
h. dem den drei Rahmenspeichern des herkömmlichen Systems neu hinzugefügten Rahmenspeicher. Wenn
das zu reproduzierende Bild das Kernbild ist, zeigt die Variable "Not Use" den Referenzcode
an, der mit dem durch die Variable "Core 0" bezeichneten Referenzcode identisch
ist, weil der durch die Variable "Core 0" dargestellte Videodateninformationsteil
zum Decodieren nie verwendet wird. Wenn das zu reproduzierende Bild
ein B-Bild ist, zeigt die Variable "Not Use" den Referenzcode an, der mit dem durch
die Variable "B" dargestellten Referenzcode
identisch ist, weil der durch die Variable "B" dargestellte
Videodateninformationsteil zum Decodieren nie verwendet wird. Wenn
das nächste
zu reproduzierende Bild ebenfalls ein Kernbild oder ein B-Bild ist,
ist der Referenzcode der Variablen "Not Use" mit demjenigen der Variablen "Core 1" oder mit demjenigen
der Variablen "B" identisch. Dadurch
sind Videodateninformationsteile den Rahmenspeichern A0, A1, A2,
A3 frei zuweisbar.
-
Der
Rahmenspeichercontroller 8A bestimmt den Rahmenspeicher
A0, A1, A2, A3, um einen Videodateninformationsteil durch ein in 10 dargestelltes
Verfahren zu speichern.
-
Obwohl
die anderen Rahmenspeichercontroller 8B, 8C die
gleiche Verarbeitung parallel zum Rahmenspeichercontroller 8A ausführen, bezieht
sich die Beschreibung nur auf den Rahmenspeichercontroller 8A, und
die anderen Rahmenspeichercontroller 8B, 8C werden
nicht beschrieben.
-
Wenn
eine Bitkette von der Auswahleinrichtung 6 dem Variable-Wortlängen-Decodierer
VLD zugeführt wird,
decodiert der Variable-Wortlängen-Decodierer
VLD die Bitkette in das decodierte Signal und erzeugt das den Bildtyp
darstellende Steuersignal 20. Das decodierte Signal durchläuft nacheinander
den Invers-Quantisierer IQ und den zweidimensionalen Inverse-Discrete-Cosine-Umwandler
IDCT und erreicht den Bewegungscontroller MG.
-
Andererseits
wird das Steuersignal 20 dem MPEG-Videocontroller 5 zugeführt, und
der Rahmenspeichercontroller 8A prüft in Schritt S1 das Steuersignal 20,
um festzustellen, ob die Bitkette ein B-Bild darstellt oder nicht.
Wenn das Steuersignal 20 anzeigt, daß die Bitkette ein B-Bild darstellt,
ist die Antwort in Schritt S1 positiv, und der Rahmenspeichercontroller 8A überschreibt
in Schritt S2 die Variablen "B", "Not Use" und eine Zwischenvariable "temp". D. h., der Rahmenspeichercontroller 8A ändert die
Variable "temp" in den Referenzcode,
der mit demjenigen der Variable 8 identisch ist, die Variable
B in den Referenzcode, der mit demjenigen der Variablen "Not Use" identisch ist, und
die Variable "Not
Use" in den Referenzcode,
der mit demjenigen der Variablen "temp" identisch
ist. Anschließend
fährt der
Rahmenspeichercontroller 8A die Speichersteuersignale 23, 24, 25 dem
Adressengenerator 9 zu und veranlaßt in Schritt S3 den durch
die Variable "8" identifizierten Rahmenspeicher,
den Videodateninformationsteil zu speichern. Dadurch wird der Referenzcode
der Variablen "B" in der Variablen "temp" zwischengespeichert,
und der Referenzcode der Zwischenvariablen "temp" wird
in der Variablen "Not
Use" gespeichert.
Dadurch wird der Videodateninformationsteil dem ungenutzten Rahmenspeicher
zugewiesen und darin gespeichert.
-
Wenn
dagegen das Steuersignal S20 anzeigt, daß das zu reproduzierende Bild
ein Kernbild ist, ist die Antwort in Schritt S1 negativ, und der
Rahmenspeichercontroller 8A überschreibt die Variablen "Core 0", "temp", "Core 1" und "Not Use" in Schritt S4. D.
h., der Rahmenspeichercontroller 8A ändert die Zwischenvariable "temp" in den Referenzcode,
der mit demjenigen der Variable "Core
0" identisch ist,
dann die Variable "Core
0" in den Referenzcode,
der mit demjenigen der Variablen "Core 1" identisch ist, dann die Variable "Core 1" in den Referenzcode,
der mit demjenigen der Variablen "Not Use" identisch ist, und schließlich die
Variable "Not Use" in den Referenzcode,
der mit demjenigen der Zwischenvariablen "temp" identisch
ist. Dadurch zeigt die Variable "Core
1" den Rahmenspeicher
zum Speichern des Videodateninformationsteils an. Der Referenzcode
der Variablen "Core
1" wird in der Variablen "Core 0" gespeichert, und
der Videodateninformationsteil, der ein Kernbild vor dem letzten
Kernbild darstellt, wird im durch die Variable "Core 0" angezeigten Rahmenspeicher gespeichert.
Der vorherige Referenzcode der Variablen "Core 0" ist unnötig und wird zur Variablen "Not Use" übertragen.
-
Der
Bewegungskompensator MC überträgt den Videodateninformationsteil
zum durch die Variable "Core
1" angezeigten Rahmenspeicher,
und der Rahmerspeichercontroller 8A veranlaßt den durch
die Variable "Core
1" angezeigten Rahmenspeicher
in Schritt S5, den Videodateninforzationsteil zu speichern.
-
Wie
aus der vorstehenden Beschreibung ersichtlich ist, ändert der
Rahmenspeichercontroller 8A die Referenzcodes der vier
Variablen "Core
1", Core 0", "B" und "Not Use" und den Referenzcode der Zwischenvariablen "temp" geeignet und bewirkt
eine Rotation in den Rahmenspeichern A0, A1, A2, A3. Unter Verwendung
eines Bildes als Einheit weist das MPEG-Decodiersystem den einzelnen
MPEG-Videodecodierer 1 an, mehrere Bitketten der Datenströme A, B,
C glatt oder gleichmäßig zu decodieren
und reproduziert gleichzeitig Bilder auf dem Bildschirm der Sichtanzeige 3.
Tatsächlich
ermöglichen
die Rahmenspeichercontroller 8A, 8B, 8C dem
Bewegungskompensator MC, die Videodateninformationsteile jeweils
in einem beliebigen der zugeordneten Rar.∽; enspeicher A0/ A1/ A2/ A3,
B0/ B1/ B2/ B3, oder C0/ C1/ C2/ C3 zu speichern.
-
Gemäß 9 wurden
die Variablen "Not
Use", "Core 0", "Core 1" und "B" auf "0", "1", "2" und "3" gesetzt, d. h. auf die Referenzcodes
A0, A1, A2 bzw. A3. Die Bitketten werden dem Variable-Wortlängen-Decodierer
VLD nacheinander zugeführt,
wie in 2 dargestellt. In dar ersten Rahmenperiode wird
eine das Bild I0 darstellende Bitkette decodiert, und das Steuersignal 20 zeigt
das I-Bild an. Der Rahmenspeichercontroller 8A führt eine
Verarbeitung entlang eines Weges aus, der aus den Schritten S1,
S4, S5 besteht, und die variablen "Not use", "Core
0", "Core 1" und "B" werden auf "1 ", "2", "0" bzw. "3" geändert.
Dadurch wird der das Bild I0 darstellende Videodateninformationsteil
im Rahmenspeicher A0 gespeichert. Der Rahmenspeichercontroller 8A verbraucht
ein Drittel der Rahmenperiode zum Speichern des Videodateninformationsteils
in den Rahmenspeicher A0, und die übrige Rahmenperiode wird zwischen
dem Rahmenspeichercontroller 8B und dem Rahmenspeichercontroller 8C geteilt.
Der Rahmenspeichercontroller 8B wählt einen der Rahmenspeicher
B0, B1, B2, B3 über
den Weg S1, S4, S5 oder einen anderen Weg S1, S2, S3 aus, und ein
Videodateninformationsteil wird im ausgewählten Rahmenspeicher gespeichert.
Ahnlicherweise wählt
der Rahmenspeichercontroller 8C einen der Rahmenspeicher
C0, C1, C2, C3 über
den Weg S1, S4, S5 oder S1, S2, S3 aus, und ein Videodateninformationsteil
wird im ausgewählten
Rahmenspeicher gespeichert. Daher wird die Rahmenperiode zwischen
den Rahmenspeichercontrollern 8A, 8B, 8C geteilt,
und der das Bild I0 im Datenstrom A darstellende Videodateninformationsteil,
der das Bild im Datenstrom B darstellende Videodateninformationsteil
und der das Bild im Datenstrom C darstellende Videodateninformationsteil
werden in einem der zugeordneten Rahmenspeicher A0, A1, A2, A3,
einem einem der zugeordneten Rahmenspeicher B0 B1, B2, B3 bzw. einem
der zugeordneten Rahmenspeicher C0, C1, C2, C3 gespeichert.
-
In
der dritten Rahmenperiode wird das Bild I0, d. h. die Bildteile
I0top und I0bottom, auf dem Bildschirm der Sichtanzeige 3 reproduziert,
und eine ein Bild B1 darstellende Bitkette wird decodiert. Die Variablen "Not use", "Core 0", Core 1" und "B" stellen die Referenzcodes "3", "0", "1" bzw. "2" dar,
und der das Bild I0 darstellende Videodateninformationsteil, der
das Bild P3 darstellende Videodateninformationsteil und das Bild
B1 darstellende Videodateninformationsteil werden in den Rahmenspeichern
A0, A1 bzw. A2 gespeichert.
-
Der
MPEG-Videodecodierer 1 beginnt zum Zeitpunkt P mit dem
Decodieren einer das Bild B2 darstellenden Bitkette. Die Variablen "Not Use", "Core 0", "Core 1" und "B" weisen die Werte "2", "0", "1" bzw. "3" auf. Aus diesem Grunde wird der das
Bild B2 darstellende Videodateninformationsteil zum Zeitpunkt P
im ungenutzten Rahmenspeicher A3 gespeichert, und der Bewegungskompensator
MC verwendet den das im Rahmenspeicher A0 gespeicherte Bild I0 darstellenden
Videodateninformationsteil und den das im Rahmenspeicher A1 gespeicherte
Bild P3 darstellenden Videodateninformationsteil als Referenzbilder.
Während
die Sichtanzeige 3 das Bild B1 reproduziert, wird der Videodateninformationsteil
aus dem Rahmenspeicher A2 ausgelesen. Daher werden die die Bilder
B1 und B2 darstellenden Videodateninformationsteile in verschiedenen Rahmenspeichern
A2 und A3 gespeichert, und das Bild B1 ist auf dem Bildschirm der
Sichtanzeige 3 stabil.
-
Durch
Vergleichen der Variable "Not
Use" mit dem Schreib-Rahmenspeicher
ist ersichtlich, daß die
Variable "Not Use" den Schreib-Rahmenspeicher
anzeigt, d. h. den Rahmenspeicher, in dem der Videodateninformationsteil
im nächsten
Rahmen gespeichert wird, und der Videodateninformationsteil wird
vorn Lesespeicher, der in der vorangehenden Rahmenperiode als Schreibspeicher
dient, zum Bildschirm 3 übertragen. Wenn der im Rahmenspeicher
zu speichernde Videodateninformationsteil das B-Bild darstellt,
werden die Videodateninformationsteile von den Rahmenspeichern ausgelesen,
die durch die Variablen "Core
0" und "Core 1" angezeigt werden.
Wenn dagegen der im Rahmenspeicher zu speichernde Videodateninfozuationsteil
das P-Bild darstellt, dient der durch die variable "Core 1" angezeigte Rahmenspeicher
als Schreib-Rahmenspeicher, und das Referenzbild wird durch den
durch die Variable "Core
0" angezeigten Videodateninformationsteil dargestellt.
-
Auch
wenn der Datenstrom A keine ein B-Bild darstellende Bitkette aufweist,
reproduziert das MPEG-Decodiersystem gleichzeitig Bilder auf dem
Bildschirm der Sichtanzeige 3. Der Datenstrom A enthält I-Bilder
und P-Bilder darstellende Bitketten, und 11 zeigt
die Reproduktion der Bilder ohne B-Bild. Obwohl in 11 der
Datenstrom A verarbeitet wird, werden die anderen Datenströme B, C
auf ähnliche
Weise verarbeitet wie in 9 dargestellt.
-
In
der Rahmenperiode vor dem Zeitpunkt Q weisen die Variablen "Not Use", "Core 0", "Core 1" und "B" die Werte "0", "1", "2" bzw. "3" auf das MPEG-Videodecodiersystem speichert
die Videodateninformationsteile, die das Bild I0, das Bild P1 und
das Bild P2 darstellen, in den Rahmenspeichern A0, A1 bzw. A2. Der MPEG-Videodecodierer 1 beginnt
zum Zeitpunkt Q mit dem Decodieren einer ein Bild P3 darstellenden
Bitkette. Der Rahmenspeicher 8A führt die in 10 dargestellte
Verarbeitung aus und ändert
die Variablen "Not Use", "Core 0", "Core 1" und "B" auf "1", "2", "0" bzw. "3". Dadurch wird der das Bild P3 darstellende
Videodateninformationsteil im Rahmenspeicher A0 gespeichert. Der
im Rahmenspeicher A2 gespeicherte Videodateninformationsteil wird
als Referenzbild zum Erzeugen des das Bild P3 darstellenden Videodateninformatioristeils
verwendet. Während
der MPEGVideodecodierer 1 den das Bild P3 darstellenden
Videodateninformationsteil speichert, wird der das Bild P1 darstellende
Videodateninformationsteil aus dem Speicher A1 ausgelesen und der
Sichtanzeige 3 zugeführt.
Dadurch werden die die Bilder P3 und P1 darstellenden Videodateninformationsteile
in verschiedene Rahmenspeicher A0, A1 geschrieben bzw. daraus ausgelesen.
Dadurch wird die Stabilität
des Bildes P1 auf dem Bildschirm der Sichtanzeige 3 verbessert.
-
Wie
aus der vorangehenden Beschreibung ersichtlich ist, decodiert das
erfindungsgemäße MPEG-Videodecodiersystem
die Bitketten der Datenströme
A, B, C in jeder Rahmenperiode und bestimmt den Rahmenspeicher zum
Speichern des Videodateninformationsteils jedes Datenstroms durch
die in 10 dargestellte Verarbeitung
bei Beginn des Decodiervorgangs. Dadurch werden der im Speicher 2 zu
speichernde Videodateninformationsteil und der zur Sichtanzeige 3 zu übertragende
Videodateninformationsteil verschiedenen Rahmenspeichern zugeordnet.
Dadurch werden auf dem Bildschirm der Sichtanzeige 3 stabile
Bilder gleichzeitig reproduziert.
-
Der
in 10 dargestellte Algorithmus wird entweder durch
Software oder durch Hardware implementiert. Die Softwareimplementierung
besteht aus einem Satz von durch einen Prozessor sequentiell ausgeführten Programmbefehlen.
Der Programmbefehlssatz kann in einem Informationsspeichermedium
gespeichert sein, z. B. in einem Halbleiterspeicher, einer Magnetputte,
usw. Der Programmbefehlssatz kann durch die Rahmenspeichercontroller 8A, 8B, 8C sequentiell
abgerufen werden und bewirkt folgendes.
-
Zunächst managt
oder handhabt der Rahmenspeichercontroller 8A, 8B, 8C die
Variablen "Core
1", "Core 0", "B", "Not
Use" und "temp" durch Ausführen von
Programmbefehlen. Die Variable "Core
1" zeigt den Referenzcode
des Rahmenspeichers an, in dem der das letzte Kernbild darstellende
Videodateninformationsteil gespeichert ist. Die Variable "Core 0" zeigt den Referenzcode
des Rahmenspeichers an, in dem der das Kernbild vor dem letzten
Kernbild darstellende Videodateninformationsteil gespeichert ist.
Die Variable "B" zeigt den Referenzcode
des Rahmenspeichers an, in dem der das letzte B-Bild darstellende
Videodateninformationsteil gespeichert ist. Die Variable "Not Use" zeigt den dem ungenutzten
Rahmenspeicher zugeordneten Referenzcode an. Wenn eine ein B-Bild
darstellende Bitkette decodiert wird, überträgt der Rahmenspeichercontroller 8A, 8B, 8C die
Referenzcodes von den Variablen "B", "Not Use" und "temp" zu den Variablen "temp", "B" und "Not Use" und ändert entsprechend die Variablen "temp", "B" und "Not Used" in die Referenzcodes, die mit denjenigen
der Variablen "B", "Not Use" bzw. "temp" identisch sind.
Wenn eine Bitkette ein Kernbild darstellt, überträgt der Rahmenspeichercontroller 8A, 8B, 8C die
Referenzcodes von den variablen "Core
0", "Core 1" und "Not Use" zu den Variablen "temp", "Core 0", "Core 1" und "Not Use" und ändert entsprechend die
Variablen "temp", "Core 0", "Core 1" und "Not Use" in die Referenzcodes,
die mit denjenigen der Variablen "Core 0", "Core
1", "Not Use" und "temp" identisch sind.
Daher spezifiziert der Rahmenspeichercontroller 8A, 8B, 8C den
Rahmenspeicher zum Speichern des Videodateninformationsteils durch
Managen der Variablen in Abhängigkeit
vom Bildtyp.
-
Der
Algorithmus wird durch eine in 12 dargestellte
elektrische Schaltung implementiert. Die elektrische Schaltung dient
als jeder der Rahmenspeichercontroller 8A, 8B, 8C.
Vier 2-Bit-Flipflopschaltungen 10, 11, 12, 13,
Auswahleinrichtungen 14, 15 und ein Signalgenerator
SG bilden in Kombination die elektrische Schaltung. Der Signalgenerator
SG spricht auf das Steuersignal 20 und das Anstoßsignal 22A an,
um Freigabesignale E0, E1, E2 selektiv auf aktive Pegel "1" zu schalten, und führt das Freigabesignal E0,
das Freigabesignal E1 und das Freigabesignal E2 den Flipflopschaltungen 11, 12,
der Flipflopschaltung 13 bzw. der Flipflopschaltung 10 zu.
Wenn eine zu decodierende Bitkette das Kernbild darstellt, wählt die
Auswahleinrichtung 14 die 2-Bit-Flipflopschaltung 12 aus,
und die andere Auswahleinrichtung 15 wählt die 2-Bit-Flipflopschaltung 11 aus.
Wenn die Bitkette dagegen das B-Bild darstellt, verbindet die Auswahleinrichtung 14 die
2-Bit-Flipflopschaltung 13 mit der 2-Bit-Flipflopschaltung 10,
und die Auswahleinrichtung 15 verbindet die 2-Bit-Flipflopschaltung 13 mit
einer dem Speichersteuersignal 23 zugewiesenen Signalleitung.
Die Flipflopschaltungen 11, 12 sind mit den Speichersteuersignalen 25, 24 zugewiesenen
Signalleitungen verbunden. Die Flipflopschaltungen 10, 11, 12 bilden
einen Rotationspfad für
das Kernbild und speichern selektiv die Referenzcodes [00]-[11].
Dadurch wird der Videodateninformationsteil in ausgewählten der
Rahmenspeicher geeignet gespeichert.
-
Die
elektrische Schaltung verhält
sich folgendermaßen.
Es wird vorausgesetzt, daß das
Steuersignal 20 das Kernbild darstellt, wenn das Anstoßsignal 22A auf
den logischen Pegel "1" geschaltet wird
und ein Freigabesignal E0 auf den logischen Pegel "1" geschaltet und den Flipflopschaltungen 11, 12 zugeführt wird.
Dann werden der Logikpegel am Ausgangsknoten der Flipflopschaltung 10 und
der Logikpegel am Ausgangsknoten der Flipflopschaltung 11 in
der Flipflopschaltung 11 bzw. in der Flipflopschaltung 12 gespeichert.
Wenn das Anstoßsignal 22A auf
den Logikpegel "1" geschaltet wird,
wird ein Freigabesignal E2 auf den Logikpegel "1" geschaltet,
und die Flipflopschaltung 10 speichert den Logikpegel am
Ausgangsknoten der Auswahleinrichtung 14 in Abhängigkeit
vom Bildtyp. D. h., wenn das Steuersignal 20 das Kernbild
anzeigt, führt
die Auswahleinrichtung 14 den Logikpegel vom Ausgagsknoten
der Flipflopschaltung 12 dem Eingangsknoten der Flipflopschaltung 10 zu,
und dar Logikpegel am Ausgangsknoten der Flipflopschaltung 12 wird
in der Flipflopschaltung 10 gespeichert. Wenn dagegen das
Steuersignal 20 das B-Bild anzeigt, führt die Auswahleinrichtung
den Logikpegel vom Ausgangsknoten der Flipflopschaltung 13 dem
Eingangsknoten der Flipflopschaltung 10 zu, und der Logikpegel
am Ausgangsknoten der Flipflopschaltung 13 wird in der
Flipflopschaltung 10 gespeichert. Wenn das Anstoßsignal 22A auf
den Logikpegel "1" geschaltet wird,
spricht der Signalgenerator SG auf das das B-Bild anzeigende Steuersignal 20 an,
um das Freigabesignal E1 auf den Logikpegel "1" zu
schalten, und der Logikpegel am Ausgangsknoten der Flipflopschaltung 10 wird
in der Flipflopschaltung 13 gespeichert.
-
Wie
aus der vorstehenden Beschreibung ersichtlich ist, weist das erfindungsgemaße MPEG-Decodiersystem
den MPEG-Videocontroller 5 auf, der den vier Rahmenspeichern
selektiv verschiedene Bildtypen darstellende Videodateninformationsteile
zuweist. D. h., daß ein
beliebiger der Rahmenspeicher niemals ausschließlich einem bestimmter. Bildtyp
zugeordnet wird. Ein Videodateninformationsteil wird in einer Rahmenperiode
aus einem der Rahmenspeicher ausgelesen, und ein anderer Videodateninformationsteil
wird in der Rahmenperiode in einen anderen Rahmenspeicher geschrieben.
Dadurch werden der Datenlesevorgang und der Datenschreibvorgang
bezüglich
eines der Rahmenspeicher niemals in der gleichen Rahmenperiode ausgeführt. Dadurch
sind die Bilder auf der Sichtanzeige 3 permanent stabil.
-
In
der vorstehend beschriebenen Ausführungsform bilden der Variable-Wortlängen-Decodierer
VLD, der Invers-Quantisierer
IQ und der zweidimensionale Inverse-Discrete-Cosine-Umwandler IDCT
zusammen einen Decodierabschnitt, und der Bewegungskompensator MC
dient als Informationsprozessor.
-
Obwohl
eine bestimmte Ausführungsform
der vorliegenden Erfindung beschrieben und dargestellt wurde, ist
für Fachleute
ersichtlich, daß innerhalb
des Schutzumfangs der vorliegenden Erfindung verschiedene Änderungen
und Modifikationen vorgenommen werden können.
-
Beispielsweise
ist der Datenpfad vom Variable-Wortlängen-Decodierer VLD zum Bewegungskompensator
MC durch eine andersartige Decodierschaltung ersetzbar.
-
-