-
Die vorliegende Erfindung betrifft eine Decodiervorrichtung für einen Datenfluß,
der Trickbilder, die nach der Norm MPEG codiert sind, darstellt.
-
Die MPEG-Normen betreffen die Codierung und Decodierung von Trickbildern.
-
Die Techniken zur Übertragung und Speicherung von digital dargestellten Bildern
ermöglichen es, die Qualität der endgültig erhaltenen Bilder im Vergleich zu der
Analogübertragung deutlich zu verbessern. Es ist somit möglich, auch die
Anwendungen dieser Techniken zu vervielfachen.
-
Allerdings die Direktübertragung und die Speicherung von digital dargestellten
Trickbildern erfordert einen äußerst hohen Informationsfluß, was in der Praxis die
Komprimierung und Codierung dieser Bilder erforderlich macht.
-
So werden die digital dargestellten Bilder vor der Übertragung codiert, um die
Informationsmenge, die sie darstellt, zu verringern, sodann nach der Übertragung
decodiert.
-
Die Techniken zur Codierung und Decodierung sind natürlich für die Qualität der
endgültig erhaltenen Bilder wesentlich, und es stellte sich als notwendig heraus,
um die Kompatibilität der verschiedenen Ausrüstungen, die diese Techniken
einsetzen, zu gewährleisten, eine Standardisierung derselben vorzunehmen.
-
So entwickelte eine Expertengruppe (Moving Picture Expert Group - MPEG) die
Normen ISO 11172 und ISO IEC 13818.
-
Diese oft mit den Abkürzungen MPEG1 und MPEG2 bezeichneten Normen
definieren die Bedingungen für die Codierung und Decodierung von Trickbildern,
die eventuell mit einem Lautsignal verbunden sind, welche sowohl für die
Speicherung und die Wiederherstellung von Bildern als auch für deren Übertragung
verwendet werden können.
-
Diese Norm MPEG kann somit für die Speicherung von Bildern auf Compact
Discs, interaktiven Compact Discs, auf Magnetbändern, für die Übertragung von
Bildern über lokale Netze, Telefonleitungen, wie für die Übertragung von
Fernsehbildern über Funk verwendet werden.
-
Die Norm, die komplett und detailliert die Gesamtheit dieser Technik definiert, ist
bei den Normungsorganisationen erhältlich, und es empfiehlt sich, sich an diese
zu wenden, um in deren detaillierte Beschreibung Einsicht zu nehmen.
-
Die Komprimierung von Daten, die nach der Norm MPEG eingesetzt wird, kann
mehrere Bearbeitungsmethoden umfassen.
-
Die aufeinanderfolgenden Bilder werden zuerst gesammelt, um eine Gruppe von
Bildern zu bilden, die eine Sequenz darstellen. Eine Sequenz ist somit in
Bildergruppen unterteilt.
-
Jedes Bild wird in Abschnitte unterteilt, wobei sich jeder Abschnitt selbst aus
Makro-Blöcken zusammensetzt, die das Basiselement bilden, das für die
Anwendung einer Bewegungskompensation und die mögliche Änderung des
Quantifizierungsmaßstabes verwendet wird.
-
Die Makro-Blöcke werden von einer Matrix 16 · 16 von Bildelementen (Pixels)
gebildet.
-
Jeder Makro-Block ist in sechs Blöcke unterteilt, wobei die vier ersten eine
Leuchtdichte-Information und die beiden anderen jeweils eine
Farbton-Information tragen.
-
Jeder dieser sechs Blöcke ist definiert als eine Matrix von 8 · 8 Bildelementen
(Pixels).
-
Im Inneren jeder Sequenz sind verschiedene Bildtypen definiert, so daß die zu
speichernde oder zu übertragende Informationsmenge aufgrund der bestehenden
Analogien zwischen den in den verschiedenen Bildern einer selben Sequenz
enthaltenen Informationen verringert werden.
-
Die Bilder I (Intra frames) sind ohne Referenz zu einem anderen Bild codierte
Bilder.
-
Die Bilder P (Predicted) werden von dem vorher wiederhergestellten Bild I oder P
abgeleitet.
-
Die Bilder B (Bi-directional frames) werden von zwei wiederhergestellten Bildern
I und P oder P und P abgeleitet, eines genau davor und das andere genau danach.
-
Es ist hier zu betonen, daß im allgemeinen die Reihenfolge der Übertragung der
Bilder einer Sequenz nicht ihrer Reihenfolge der Darstellung beim Erhalt oder bei
der Wiederherstellung entspricht. Sie befinden sich in der Decodier-Reihenfolge.
-
Die Diskret-Kosinusumwandlung (Discrete Cosine Transformation - DCT) wird
im Bereich der Blöcke angewandt.
-
Diese DCT-Umwandlung wandelt Raumblöcke, die, wie oben angeführt, in einer
Matrix 8 · 8 Pixels definiert sind, in Zeitblöcke um, die ebenfalls von einer
Matrix 8 · 8 von Raumfrequenzen gebildet werden.
-
Man hat gezeigt, daß in der Matrix 8 · 8 des Zeitblockes der kontinuierliche
Grundkoeffzient (DC), der in der Matrix oben links angeordnet ist, viel wichtiger
für den erzielten visuellen Eindruck ist als die anderen Komponenten, die
verschiedenen Frequenzen entsprechen.
-
Genauer gesagt ist das Auge weniger dafür empfindlich, je höher die Frequenz ist.
-
Deshalb werden die Frequenzbereiche um so mehr quantifiziert, als die
Frequenzen hoch sind. Diese Quantifizierung wird durch einen Algorithmus gewährleistet,
der nicht durch die Norm vorgegeben wird, der ein Verfahren zur Quantifizierung
und Codierung mit variabler Länge (Variable Length Coding - VLC) umfaßt.
-
Die in dem Frequenzbereich erhaltene Matrix durch die DCT-Umwandlung wird
sodann durch eine sogenannte "Quantifizierungsmatrix" bearbeitet, die verwendet
wird, um jeden Terminus der Matrix des Zeitbereichs durch einen Wert zu
dividieren, der von seiner Position abhängt, und unter Berücksichtigung der Tatsache,
daß das Gewicht der verschiedenen durch diese Koeffizienten dargestellten
Frequenzen variabel ist.
-
Das Ergebnis dieses Vorganges führt, nachdem jeder der Werte auf den nächsten
ganzen Wert gerundet wurde, zu einer großen Anzahl von Koeffizienten gleich
Null.
-
Es ist zu betonen, daß für die Intra-Makroblöcke der Quantifizierungswert des
Grundkoeffizienten (DC) konstant ist, beispielsweise gleich 8. Die
Frequenzkoeffizienten ungleich Null werden nun nach einer Zick-Zack-Abfrage unter
Bezugnahme auf eine Huffman-Tabelle codiert, die für jeden der Koeffizienten
der Matrix einen codierten Wert variabler Länge angibt und das
Informationsvolumen verringert.
-
Vorzugsweise werden die Koeffizienten, die den kontinuierlichen Grund
darstellen, nach der Quantifizierung übertragen, und überdies wird die
Quantifizierungsmatrix optimiert, so daß das Informationsvolumen geringer ist als ein
vorbestimmtes Niveau, das den Speicher- oder Übertragungsmöglichkeiten
entspricht, ohne daß dies übermäßig der Qualität der übertragenen Informationen
schadet.
-
Die Bilder vom Typ I werden ohne Verwendung eines Bewegungsvektors codiert.
-
Die Bilder vom Typ P und B hingegen verwenden zumindest für gewisse der
Makro-Blöcke, die sie zusammensetzen, Bewegungsvektoren, die es ermöglichen,
die Wirksamkeit der Codierung zu erhöhen, und die angeben, von welchem Teil
des bzw. der Referenzbilder ein bestimmter Makro-Block des betreffenden Bildes
abzuleiten ist.
-
Die Suche nach dem Bewegungsvektor ist Gegenstand einer Optimierung bei der
Codierung, und er wird selbst codiert, indem die Technik DPCM angewandt wird,
die am besten die bestehende Korrelation zwischen den Bewegungsvektoren der
verschiedenen Makro-Blöcke eines selben Bildes auswertet. Sie sind schließlich
Gegenstand einer Codierung mit variabler Länge (VLC).
-
Alle Informationen, die eine codierte Sequenz betreffen, bilden den digitalen
Informationsfluß (bitstream), der entweder aufgezeichnet oder übertragen wird.
-
Ein solcher digitaler Informationsfluß beginnt mit einer Sequenz-Kopfzeile, die
eine gewisse Anzahl von Informationen und Parametern enthält, deren Werte für
die Gesamtheit der Sequenz aufrechterhalten werden.
-
Ebenso geht aufgrund der Tatsache, daß sich jede Sequenz aus Bildgruppen
zusammensetzt, jeder dieser Gruppen eine Gruppen-Kopfzeile voraus, und den
Daten, die jedes Bild darstellen, geht ebenfalls eine Bild-Kopfzeile voraus.
Ein Empfangssystem nach der Norm MPEG empfängt somit einen digitalen
Daten- oder Informationsfluß in Form von Codes variabler Länge, die die Bilder
darstellen. Dieser Datenfluß umfaßt auch Codelängentabellen,
Decodierungstabellen für die Codes mit variabler Länge, die es dem Empfangssystem
ermöglichen, den Datenfluß in die Trickbildabfolge umzuwandeln, die ursprünglich
codiert wurde.
-
Wie oben zu sehen ist, umfaßt der Datenfluß auch Bewegungsvektoren.
-
Das Dokument EP-A-0 572 263 beschreibt einen Decoder MPEG, bei dem ein
interner Zentralprozessor eine gewisse Anzahl von Coprozessoren über einen
gemeinsamen Bus kontrolliert. Die Coprozessoren umfassen unter anderem eine
Schnittstelle, um den von einem externen Prozessor codierten Datenfluß zu
emp
fangen, einen externen Speicherkontroller DRAM und einen
Decoder/Dekompressor VLC (Variable Length Code) für Codes mit variabler Länge. Der
Speicherkontroller teilt jedem Coprozessor eine Verschiebestufe FIFO (First In
First Out) zu, um als Puffer für diesen Coprozessor zu dienen. Im Bereich der
Decodierung von Codes mit variabler Länge ist der Decoder/Dekompressor mit
einer speziellen Verschiebestufe verbunden und steuert die Übertragungen mit
dieser Verschiebestufe.
-
Andererseits beschreibt das Dokument: SMPTE JOURNAL, FEB. 1995 USA,
Band 104, Nr. 2, ISSN 0036-1682, Seiten 62-72, XP002008642 STOJANCIC M
M ET AL.: "Architecture and VLSI implementation of the MPEG-2:MP@-ML
video decoding process", einen ähnlichen Decoder MPEG, der einen internen
Zentralprozessor umfaßt, der unter anderem einen Decoder Huffmann für Codes
mit variabler Länge und eine externe Speicherschnittstelle DRAM steuert. Die
Eingangsverschiebestufe (input FIFO) wird in bezug zu einem Außenprozessor
(host processor) gesteuert.
-
Bei den derzeit bekannten Vorrichtungen empfängt eine Bearbeitungseinheit den
Datenfluß von einer Verschiebestufe der Daten und nimmt selbst die Entnahme
der Länge aus jedem Code sowie dessen Decodierung vor.
-
Aufgrund des Informationsflusses, der bearbeitet werden muß, um Bilder zu
erzeugen, die eine ausreichende Raumdefinition aufweisen, und die in
ausreichend großer Anzahl vorhanden sind, um einen kontinuierlichen
Bewegungseindruck zu erzeugen, müssen die verschiedenen Decodierverfahren mit sehr großer
Geschwindigkeit durchgeführt werden.
-
Die Erfinder stellten fest, daß die Verfahren der Entnahme der Länge der Codes
und der Decodierung, die von der Bearbeitungseinheit durchgeführt werden, wie
oben angeführt, ein wesentlicher Punkt sind, der die Geschwindigkeit der
Bearbeitung der gesamten Decodierung einschränken kann.
-
Gegenstand der vorliegenden Erfindung ist eine alternative Vorrichtung, die es
ermöglicht, die Geschwindigkeit der Durchführung dieser Verfahren zu erhöhen,
ohne daß es erforderlich ist, dazu umfassende und somit kostspielige Mittel
einzusetzen.
-
Zu diesem Zweck betrifft die Erfindung eine Decodiervorrichtung für einen
Datenfluß, der Trickbilder, die nach der Norm MPEG codiert sind, darstellt, bei
der eine logische Einheit von einer Verschiebestufe Daten erhält, die die
maximale Bit-Anzahl eines Codes mit variabler Länge umfassen, an die Verschiebestufe
die Länge jedes decodierten Codes zurücksendet und einen decodierten Wert
jedes Codes erzeugt.
-
Erfindungsgemäß umfaßt die Decodiervorrichtung ein Steuergerät, das
mindestens zwei getrennte Bearbeitungseinheiten steuert, von denen eine erste
Bearbeitungseinheit die Länge jedes Codes entnimmt und sie an die Verschiebestufe
adressiert, und eine zweite Bearbeitungseinheit die Decodierung der Codes
vornimmt, wobei die Bearbeitungseinheiten von der logischen Einheit gesteuert
werden.
-
Nach verschiedenen bevorzugten Ausführungsarten umfaßt diese
Decodiervorrichtung die folgenden, gegebenenfalls kombinierten Merkmale:
-
- da der Datenfluß eine Längentabelle der Codes enthält, entnimmt das
Steuergerät aus dem Datenfluß die Parameter, die die Längentabelle der
Codes definieren, und adressiert diese Tabelle an die erste
Bearbeitungseinheit;
-
- da der Datenfluß eine Tabelle zur Decodierung der Längen der Codes
enthält, entnimmt das Steuergerät aus dem Datenfluß die Parameter, die
die Decodiertabelle für die Codes mit variabler Länge definieren, und
adressiert sie an die zweite Bearbeitungseinheit;
-
- der Datenfluß enthält Bewegungsvektoren und umfaßt eine dritte
Bearbeitungseinheit, die die Decodierung der Bewegungsvektoren vornimmt;
-
- jede Bearbeitungseinheit wird von dem Steuergerät in einem
Master/Follower-Verhältnis gesteuert, wobei das Steuergerät einen
Anfangsbefehl entsendet, um eine Bearbeitung in einer Bearbeitungseinheit
zu steuern, und wobei diese an das Steuergerät ein Endsignal
zurücksendet, wenn die Bearbeitung beendet ist;
-
- jede Bearbeitungseinheit empfängt die Daten, die von der Verschiebestufe
kommen, zur gleichen Zeit, als diese von dem Steuergerät erhalten
werden;
-
- das Steuergerät steuert die Entsendung der Signale nach der Decodierung.
Die Erfindung ist im Detail unter Bezugnahme auf die beiliegenden Zeichnungen
beschrieben, in welchen:
-
- Fig. 1 eine schematische Darstellung der erfindungsgemäßen
Vorrichtung in einer ersten Ausführungsart ist;
-
- Fig. 2 eine schematische Darstellung der Erfindung in einer zweiten
Ausführungsart ist.
-
Die Verschiebestufe 1 erhält einen Datenfluß 2, der nach einer der
MPEG-Normen codierte Trickbilder enthält.
-
Der Datenfluß wird somit von einer Aufeinanderfolge von Sequenzen gebildet,
die jeweils sowohl Kopfzeilen, die verschiedene Informationen tragen, als auch
direkt für die Bilder repräsentative Daten in codierter Form enthalten.
-
Die Decodiervorrichtung 3 erhält die Informationen 4, die von der
Verschiebestufe kommen, und entsendet Werte von decodierten Daten 5, die für die
folgende Stufe der Bildanzeigevorrichtung bestimmt sind, und eine Information 6
über die Länge jedes decodierten Codes, die an die Verschiebestufe gesandt wird,
um es ihr zu ermöglichen, auf den folgenden Code zuzugreifen und diesen zu
bearbeiten.
-
Die Decodiervorrichtung 3 umfaßt ein Steuergerät 7, eine erste
Bearbeitungseinheit 8, die dazu bestimmt ist, die Länge des Codes zu entnehmen, und eine zweite
Bearbeitungseinheit 9, die den decodierten Wert jedes Codes erzeugt. 26, 27, 28
sind Verzögerungs-Kippschaltungen, die an ihrem Ausgang angeordnet sind.
-
Die Eingänge 10, 11 bzw. 12 des Steuergeräts 7 und der beiden
Bearbeitungseinheiten 8 und 9 sind mit dem Ausgang 13 der Verschiebestufe verbunden und
empfangen somit die für jeden Code repräsentativen Signale.
-
Das Steuergerät 7 ist derart programmiert, daß es die verschiedenen Signaltypen
erkennen kann, die den Datenfluß MPEG bilden, und es ist an seinem Ausgang 14
mit Steuereingängen 15 bzw. 16 der Bearbeitungseinheiten verbunden, die es
somit auf diese Weise steuern kann. Der Eingang 16 ist mit einem Kreis "Und" 24
verbunden. Die Bearbeitungseinheiten 8 und 9 weisen jeweils eine
Speicherkapazität auf, die es ihnen ermöglicht, einerseits eine Längentabelle der Codes zu
speichern, was die erste Bearbeitungseinheit betrifft, die die Aufgabe der
Entnahme der Länge des Codes hat, und andererseits eine Decodiertabelle für die
Codes mit variabler Länge zu speichern, was die zweite Bearbeitungseinheit 9
betrifft, die dazu bestimmt ist, diese Decodierung vorzunehmen.
-
Das Steuergerät 7 nimmt, wenn es in den von der Verschiebestufe 1 erhaltenen
Signalen solche Tabellen erkennt, deren Aktualisierung vor, indem es sie an die
gewünschte Bearbeitungseinheit 8, 9 adressiert.
-
Die Bearbeitungseinheit 8 kann somit die Länge des Codes entnehmen und über
ihren Ausgang 20 den Verschiebebefehl an die Verschiebestufe 1 adressieren, der
für den Zugriff auf den folgenden Code erforderlich ist, während die
Bearbeitungseinheit 9 die Decodierung vornimmt.
-
So sind die verschiedenen Funktionen der Decodiervorrichtung zwischen dem
Steuergerät 7 selbst, der Bearbeitungseinheit 8 für die Länge und der
Bearbeitungseinheit 9 für die Decodierung aufgeteilt, was es ermöglicht, eine äußerst
rasche Funktion dieser Vorrichtung zu erzielen.
-
Vorteilhafterweise, wie in Fig. 2 dargestellt, umfaßt die Decodiervorrichtung
eine zusätzliche Bearbeitungseinheit 17, die auch die Codes an ihrem Eingang 18
empfängt, der von dem Steuergerät 7 gesteuert wird, das mit seinem
Steuereingang 19 verbunden ist. Der Ausgang eines Kreises "Oder" 23, dessen Eingänge
mit dem Ausgang 21 der Einheit 17 bzw. mit dem Ausgang 22 der Einheit 9
verbunden sind, stellt nun den Ausgang 5 der Decodiervorrichtung dar. Diese
Bearbeitungseinheit 17 ist für die Bearbeitung der Bewegungsvektoren bestimmt.
Sie wird auch von dem Steuergerät 7 gesteuert, von dem es die Decodiertabellen
für die Bewegungsvektoren erhält.
-
Jede Bearbeitungseinheit 8, 9, 17 wird vorteilhafterweise von dem Steuergerät 7
in einem Master/Follower-Verhältnis gesteuert. Das Steuergerät 7 entsendet an
jede Bearbeitungseinheit einen Anfangsbefehl, wenn es einen Code erkannt hat,
der für sie bestimmt ist, und die Bearbeitungseinheit sendet an das Steuergerät ein
Endsignal zurück, wenn sie ihre Arbeitsgänge beendet hat.
-
Bei einer bevorzugten Ausführungsart steuert das Steuergerät 7 auch eine
Speichereinheit 21 und steuert somit Signale nach der Decodierung.