-
Die vorliegende Erfindung betrifft
ein Verfahren und eine Vorrichtung zur Videodatenkomprimierung und
Bitstromcodierung.
-
Solche Verfahren und Vorrichtungen
sind zum Beispiel aus den folgenden Schriften bekannt: IEEE TRANSACTIONS
ON CONSUMER ELECTRONICS, Band 40, Nr. 3, 1. August 1994, Seiten 466–472, XP000471207
AKIYAMA, T. ET AL.: "MPEG2
VIDEO CODEC USING IMAGE COMPRESSION DSP" und IEEE JOURNAL OF SOLID-STATE CIRCUITS;
Band 29, Nr. 12, 1. Dezember 1994, S. 1474–1481, XP000495322 MASAKI, TOYOKURA
ET AL.: "A VIDEO
DSP WITH A MACROBLOCK-LEVEL-PIPELINE
AND A SIMD TYPE VECTOR-PIPELINE ARCHITECTURE FOR MPEG2 CODEC".
-
Aus diesen beiden Schriften sind
jeweils MPEG-Codierer bekannt.
-
Allgemeiner
Stand der Technik
-
ISO bzw. IEC haben einen Videobitstrom standardisiert,
der Videokompessionsverfahren für Videosignale
und -bilder mit Standardauflösung
und auch hoher Auflösung
darstellt, und zwar den sogenannten MPEG-2-Standard.
-
MPEG-2 liefert drei verschiedene
Bildcodierungstypen: Einzelbilder oder Teilbilder des Typs Intra
(I), Vorhergesagt (P) und bidirektional vorhergesagt oder interpoliert
(B). In P- und B-Einzelbildern oder -Teilbildern können jedoch
Makroblöcke
immer noch im Intra-Einzelbild- bzw. Intra-Teilbild-Verfahren codiert
sein, wenn die Bewegungsprädiktion
keine guten Ergebnisse liefert. Es muß im Codierer mit durch die
Implementierung zu bestimmenden Kriterien eine Entscheidung getroffen
werden. Zusätzlich ermöglicht MPEG-2
eine auf Einzelbildern oder Teilbildern basierende DCT (diskrete
Kosinustransformation), die ein Sortieren von Zeilen und eine weitere Entscheidung durch
den Codierer erfordert.
-
Bei digitalen Videorundsendeanwendungen werden
Decodierer gewöhnlich
in einem großen
Volumen benötigt,
während
zur Bereitstellung des Dienstes nur eine kleine Anzahl von Codierern
verwendet wird. Eine typische Konfiguration wird durch den DirecTv-Satellitendienst
in den USA gegeben, wobei MPEG-2-Codierer für etwa 150 gleichzeitige Programme
einen die USA abdeckenden Rundsendedienst liefern. Dies erfordert
relativ billige Decodierer, während
Codierer umfassendere Schaltkreise enthalten und teurer sein können. Die
MPEG-2-Videocodierung
und -decodierung kann auf asymmetrische Weise implementiert werden,
wobei Codierer ein großes
Ausmaß an
sehr komplexen Schaltkreisen enthalten, während Decodierer nur den zur
Decodierung gültiger
Bitströme
absolut erforderlichen Funktionalitätsumfang enthalten müssen.
-
Zu diesem Zweck definiert MPEG die
Syntax und Semantik des Bitstroms und einen sogenannten System-Target-Decodierer. Die Implementierung
des Codierers wird durch den Standard nicht geregelt. Dadurch ist
es möglich,
für Anwendungen
mit geringen Anforderungen an die Bildqualität relativ einfache Codierer
und für
Anforderungen hoher Qualität sehr
komplexe Codierer aufzubauen.
-
Für
Videorundsende- und Unterhaltungsanwendungen werden von bestehenden
Videostandards Bezugswerte für
die Bildqualität
gesetzt. Für das
Rundsenden von Live-Ereignissen
ist ein Echtzeitbetrieb des Codierers unabdinglich. Um mit all den
verschiedenen digitalen Videoanwendungen und ihren jeweiligen Anforderungen
zurechtzukommen, hat das sogenannte MPEG-Komitee (Arbeitsgruppe 11
der ISO/IEC) eine Menge von Profilen und Ebenen definiert. Profile
bestimmen eine bestimmte Teilmenge von zu dem MPEG-2-Standard gehörenden Codierungswerkzeugen.
Für spezifische Codierungsverfahren
und -anwendungen werden verschiedene Werkzeuge verwendet. Ebenen
schränken
die großen
Parameterumfänge
auf die Zahlen ein, die bei üblichen
Anwendungen, wie zum Beispiel Videorundsendung oder Videoübertragung über Netzwerke, verwendet
werden.
-
Für
Videorundsendedienste hängen
Videosignale mit Standardauflösung
mit den Spezifikationen der ITU-R-Empfehlung 601 oder Teilmengen dieser zusammen
und können
durch das MPEG-2-Hauptprofil auf der Hauptebene (MP@ML) abgewickelt werden.
Hochauflösende
Videosignale können
durch die in den höheren
Ebenen von MPEG-2 (z. B. MP@HL) definierten Parametermengen abgedeckt werden.
-
Das Hauptprofil umfaßt Komprimierungsverfahren
für Videosignale
in sogenannten 4 : 2 : 0-Format und definiert vielfältige Bewegungskompensations-
und Codierungsmodi, die für
hohe Kompressionsverhältnisse
notwendig sind. Die Bewegungskompensation in dem MP basiert auf
der auf Einzelbildern und Teilbildern basierenden Prädiktion
in Vorwärts-
und Rückwärtsrichtung
und umfaßt
Verfeinerungen, die spezifisch auf verschachtelte Videosignale abzielen,
wie zum Beispiel die Dual-Prime-Technik. Zur
Codierung erlaubt das MP auf Einzelbildern und Teilbildern basierende
DCT, lineare und nichtlineare Quantisierung, Standard- und Alternativ-Zickzack-Scannen
und mehr.
-
Digitale Videorundsendedienste werden
auf Bitraten im Bereich von sogar nur 1 Mbit/s bis herauf zu etwa
10 Mbit/s basieren. Die unverarbeiteten Datenraten von Videosignalen,
die gemäß der ITU-R-Empfehlung
601 digitalisiert werden, umfassen etwa 166 Mbit/s ohne Austastintervalle,
Takt und Synchronisation. Für
eine typische Bitrate von 4 Mbit/s, die eine Bildqualität bereitstellt,
die bestehenden NTSC- und PAL-Videostandards ähnlich ist,
wird ein Kompressionsfaktor im Bereich von 40 benötigt.
-
Kompressionsfaktoren in diesem Bereich lassen
sich für
Videosignale, die aus Filmmaterial stammen, aufgrund ihrer nicht
verschachtelten Beschaffenheit und ihrer geringen zeitlichen Wiederholungsrate
von 24 Hz relativ leicht erzielen. Wesentlich schwierigere Anforderungen
kommen von echten Videosignalen, die aus Videokameras stammen, insbesondere
in Sequenzen mit schneller und zufälliger Bewegung. Zur adäquaten Wiedergabe
solcher Bilder mit hohen Kompressionsverhältnissen sind alle durch MPEG-2
MP bereitgestellten Bewegungsprädiktions- und Codierungsalternativen
obligatorisch.
-
Die Hauptfunktionsblöcke zur
Codierung von MPEG-2-Videodatenströmen gemäß dem Hauptprofil
MP aus digitalen Videosignalen sind in 1 gezeigt. Bei einer solchen einfachen
Codiereranordnung, die in der Technik wohlbekannt ist, werden digitalisierte
Videosignale in einen Bildorganisationsblock 101 eingespeist,
der die zeilen- und teilbildweisen Luminanz- und Chrominanzsignale
in einem Makroblock und einer Blockordnung wie für eine nachfolgende Bewegungsschätzung und
Codierung verwendet umordnet. Die Umorganisation der Einzelbild-
oder Teilbildsequenz solcher Videodaten erfolgt ebenfalls im Block 101.
Eine Bewegungsschätzstufe 102 berechnet
geeignete Makroblockkorrespondenzen zwischen aufeinanderfolgenden
Bildern in Form von Bewegungsvektoren für verschiedene Prädiktionstypen,
wie sie durch die Syntax und Semantik des Standards ISO/IEC 13818-2
zugelassen und unterstützt
werden, d. h. Einzelbildprädiktion,
Teilbildprädiktion
und Dual-Prime-Prädiktion.
Makroblöcke
von 16*16 Pixeln werden zu einem Kombinierer 103 weitergeleitet,
und Bewegungsvektorparameter oder Daten-MVD und Prädiktionsmodusbeschreibungselemente
PMD werden zu einem Prädiktor 109,
zu einem ersten Codierer 115 für VLC (Codierung mit variabler
Länge)
für die
Bewegungsvektorparameter und zu einem zweiten VLC-Codierer 116 für die Prädiktionsmodi
geleitet. Für vorhergesagte
Makroblöcke
(P- und B-Bilder) nimmt der Kombinierer 103 die Makroblöcke aus
der Bewegungsschätzstufe 102 und
aus dem Prädiktor 109 und
berechnet Differenzsignale, die aus Pixeldifferenzen für jeden
Pixel der jeweiligen Makroblöcke
bestehen. Diese Differenzsignale werden einer DCT-Stufe 104 zugeführt und
für jeden
8*8-Pixelblock in entsprechende Arrays von 8*8-DCT-Koeffizienten
transformiert. Im Fall von nicht vorhergesagten Makroblöcken (I-Bildern)
werden die Ausgangssignale aus der Stufe 102 ohne Bildung
von Differenzsignalen zu der DCT-Stufe 104 weitergeleitet.
-
Die Koeffizientenarrays werden zu
einer Quantisierungstufe 105 weitergeleitet, die Tabellen zum
Dividieren jedes Koeffizienten gemäß einem jeweiligen Tabelleneintrag
und einem Skalierungsfaktor umfassen. Die Ausgabe des Quantisierers 105 wird
an eine Zickzack-Scan-Einheit 110 und an einen Invers-Quantisierer 106 weitergeleitet.
Der Invers-Quantisierer
führt insofern
die inverse Operation des Quantisierers 105 durch, als
er jeden Eingangswert mit dem jeweiligen Tabelleneintrag und Skalierungsfaktor
multipliziert. Ausgangssignale des Invers-Quantisierers 106 werden
zu dem Invers-DCT-Block 107 geleitet, in dem 8*8-Arrays
von DCT-Koeffizienten in 8*8-Blöcke
von Pixelwerten rücktransformiert
werden. Diese Pixelwertblöcke werden
zu einem Addierer 108 weitergeleitet und dort zu den entsprechenden
Ausgangssignalen des Prädiktors 109 addiert.
Die Prädiktorstufe 109 empfängt ihre
Eingangssignale aus dem Addierer 108. Der Prädiktor 109 speichert
die Eingangssignale makroblockweise und führt Translationsverschiebungen von
Makroblöcken
in dem jeweiligen Bildarray, d. h. eine Bewegungskompensation, gemäß den Bewegungsvektoren
und Prädiktorwerten,
die zuvor durch den Bewegungsdetektor 102 berechnet wurden, durch.
Die Ausgangssignale dieser Prädiktionsprozedur
werden zu dem Addierer 108 und zu dem Kombinierer 103 weitergeleitet.
-
Ausgangssignale des Quantisierers 105 in Form
quantisierter DCT-Koeffizienten werden in der Einheit 110 durch
Zickzack-Scannen aufgereiht und dann zu einer RLC/VLC-Einheit (Lauflängencodierung) 111 weitergeleitet,
die alle notwendigen RLC/VLC-Tabellen, einschließlich Escape-Codes von ISO/IEC
13818-2, umfaßt.
Die Ausgangssignale der RLC/VLC-Stufe 111 stellen komprimierte
Bilddaten in einem bitsequentiellen Datenstrom dar.
-
In den VLC-Codierern 115 und 116 werden ähnliche
MPEG-VLC-Transformationen
für Bewegungsvektoren
und Prädiktionsmodi
durchgeführt. Diese
transformierten Signale werden in eine MPEG-Kopferzeugungseinheit 117 eingegeben,
die außerdem
Steuerparameter CONPAR aus einer externen Steuerungseinrichtung,
wie zum Beispiel einem PC, einfügt.
Die vollständigen
Kopfsignale werden zu einer Paketierungs- und Multiplexerstufe 112 geleitet,
die außerdem
die RLC/VLC-Daten empfängt,
die dem Bildinhalt aus der RLC/VLC-Einheit 111 entsprechen.
In der Stufe 112 werden alle Daten entsprechend ISO/IEC
13818-2 oder 11172-2 ausgerichtet und geordnet. Ausgangssignale
der Stufe 112 werden zu einem Puffer 113, z. B.
einem RAM, weitergeleitet, der alle ankommenden Daten speichert und
den Füllstatus
mißt.
In bezog auf die eigentliche Füllung
führt der
Statuspuffer 113 der Ratensteuereinheit 114 ein
Signal zu, die wiederum entsprechende Quantisierungsskalierungsparameter
berechnet, die in der Quantisierungsstufe 105 anzuwenden
sind. Das andere Ausgangssignal OUS des Puffers 113 ist der
komprimierte Datenstrom des Codierers, der den Spezifikationen ISO/IEC
13818-2 oder 11172-2 oder ähnlichen
Datenkomprimierungsstandards und gewünschten konstanten oder variablen
Bitraten entspricht.
-
Die Chrominanz wird entsprechend
codiert, wodurch die Bewegungsschätzung normalerweise nur für die Luminanz
ausgeführt
wird.
-
Kurzdarstellung
der Erfindung
-
Eine Aufgabe der Erfindung ist die
Offenlegung eines Verfahrens und einer Vorrichtung zur Codierung
digitaler Videosignale unter Verwendung eines skalierbaren MPEG-2-Codierungschipsatzes
mit einer minimalen Anzahl von Chips und einer optimalen Aufteilung
der erforderlichen Codiererfunktionen in bezug auf die spezifischen
Chips, wobei der Prädiktionsschritt
in dem Bewegungsschätzchip
durchgeführt
wird und in einem Bitstromzusammenstellschritt ein Vielzweckspeicher
verwendet wird, der keine Pixeldaten enthält.
-
Diese Aufgabe wird durch das in Anspruch
1 offengelegte Verfahren und durch die Vorrichtung gemäß Anspruch
6 gelöst.
-
Weitere Ausführungsformen der vorliegenden
Erfindung werden in den abhängigen
Ansprüchen
beansprucht.
-
Die Erfindung betrifft die Videodatenkomprimierung
und Bitstromcodierung, entsprechend insbesondere dem Standard MPEG-2
und MPEG-1 für
die Codierung von beweglichen Bildern (ISO/IEC 13818-2 und 11172-2)
und basiert auf einer VLSI-Architektur und kann in Verbindung mit
Standard-Steuerungsschaltungen verwendet werden. Die Erfindung ist
darauf abgestimmt, eine schnelle Berechnung bereitzustellen, wie
sie für
die Echtzeitausführung
von MPEG-2-Videocodierungsalgorithmen notwendig ist.
-
Ein Echtzeit-MPEG-2-Videocodierer
wurde auf der Grundlage einer Menge spezieller IC-Entwürfe entwickelt.
Der Codierer komprimiert Videobilder gemäß der ITU-R-Empfehlung 601
zu Bitströmen
z. B. von 1 Mbit/s auf 15 Mbit/s gemäß den Spezifikationen des MPEG-2-Videostandards
Hauptprofil auf der Hauptebene (MP@ML). Es können auch andere Eingangsformate
behandelt werden, darunter verschiedene HDTV-Quellenformate, die in Bitströme des Hauptprofils
auf hoher Ebene umgesetzt werden können.
-
Die Hauptfunktionalität des Codierers
besteht aus einer Vorverarbeitungsstufe, einer Bewegungsschätzstufe
und einer Bitstromcodierungsstufe. Diese Funktionen werden durch
die folgenden spezifischen ICs unterstützt: eine Vorprozessorschaltung,
ein Grob- und ein Fein-Bewegungsschätz-IC und
einen Bitstromcodierer. Jedes der ICs steuert einen externen Speicherraum,
der z. B. mit herkömmlichen
DRAM-Teilen realisiert werden kann. Der Chipsatz wird durch externe
Standard-Mikrosteuerungen gesteuert
und enthält
Onchip-RISC-Maschinen
zur flexiblen Umkonfiguration.
-
Die Implementierung des Codierers
wird nicht durch den MPEG-2-Videostandard (ISO/IEC 13818-2) eingeschränkt. Mit
diesem erfindungsgemäßen MPEG-2-Chipsatz
sind die Komplexität
und die Qualität
skalierbar. Dies ermöglicht
die Konstruktion relativ einfacher Codierer für Anwendungen mit geringen
Anforderungen an die Bildqualität
sowie sehr komplexer Codierer für
Anforderungen hoher Qualität.
Auf der Grundlage der erfindungsgemäßen Architektur können mehrere
Prozessoren desselben Typs parallel verwendet werden, um die Verarbeitungsleistung
zu erhöhen.
Dies gewährleistet
alle Codierungsmerkmale, die in dem MPEG-2-Hauptprofil spezifiziert sind, plus
zusätzliche
Funktionalität,
die nicht dieser Standardisierung unterliegt.
-
Eingangssignalformate sind z. B.
576 Zeilen/Einzelbild mit 25 Einzelbildern/s oder 480 Zeilen/Einzelbild
mit 29,97 Einzelbildern/s mit Luminanz Y und Chrominanz Cb, Cr im Format 4
: 2 : 2.
-
Ein MPEG-2-MP-Codierer muß nicht
alle Komprimierungstechniken und die volle Auswahl der MP-Funktionalität bereitstellen,
solange er einen gültigen
Bitstrom liefert. Dadurch werden einige Vereinfachungen möglich.
-
Die für die MPEG-2-Codierung erforderlichen
Verarbeitungsfunktionen werden in drei Haupt-ICs oder -stufen organisiert.
Ein Vorprozessor enthält
alle Eingangs- und Vorverarbeitungsfunktionen, wie zum Beispiel
Bildformatumsetzung, die für die
Datenkomprimierung erforderlich sind. Ein Bewegungsschätzer enthält alle
Bewegungsschätz-
und Bewegungsprädiktionsfunktionen,
und ein Bitstromcodierer enthält
die gesamte Bitstromerzeugung für die
MPEG-2-Codierung, wie zum Beispiel DCT, Quantisierer, Invers-Quantisierer,
Invers-DCT, Zickzack-Scannen und RLC/VLC-Codierung, aber keine Bewegungsprädiktion.
Die vorliegende Erfindung betrifft insbesondere den Bitstromcodiererchip.
-
Im Prinzip eignet sich das erfindungsgemäße Verfahren
zur Kodierung digitaler Videosignale unter Verwendung von Bewegungsschätzung und
einer Codierungsschleife, die folgendes enthält: einen Transformationsschritt,
einen Quantisierungsschritt, einen Invers-Quantisierungsschritt, einen Rücktransformationsschritt,
einen Rekonstruktionsschritt und einen Pixel-Makroblock-Prädiktionsschritt, bei dem aus
der Bewegungsschätzung
abgeleitete Bewegungsinformationen für die Prädiktion verwendet werden, wobei
in dem Transformationsschritt Differenzsignale zwischen Pixel-Makroblock-Daten
und vorhergesagten Pixel-Makroblock-Daten und/oder Pixel-Makroblock-Daten
an sich verarbeitet werden und die Ausgangssignale des Quantisierungsschritts weiterverarbeitet
werden, um daraus codierte Videosignale einschließlich aus
den Bewegungsinformationen abgeleiteter Informationen abzuleiten,
wobei
entweder:
die Codierung in einer integrierten Schaltung unter Verwendung
von Pipeline-Verarbeitung zur Ausführung der Schritte der Transformation,
der Quantisierung, der Invers-Quantisierung, der Rücktransformation
und der Rekonstruktion, aber nicht der Prädiktionsschritt ausgeführt wird,
und
wobei die weitere Verarbeitung folgendes umfaßt: einen Schritt des Zickzack-Scannens,
einen Schritt des Lauflängen-
und Codierens mit variabler Länge
und einen Bitstromzusammenstellschritt, wofür Speichermittel verwendet
werden, die als ein Datenratensteuerpuffer und als eine Zwischenspeicherung
für Bitstromdaten
dienen, die nicht kleiner oder gleich einem Makroblockpegel sind,
die der integrierten Schaltung durch Steuermittel zugeführt werden,
und
wodurch in mindestens einer weiteren integrierten Schaltung, die
mit der integrierten Schaltung verbunden ist und der Bilddatenspeichermittel
zugeordnet sind, die für
die Bewegungsschätzung
und für den
Prädiktionsschritt
verwendet werden, die Bewegungsschätzung und der Prädiktionsschritt
ausgeführt
werden,
oder
die Codierung in einer integrierten Schaltung
zur Ausführung
der Schritte der Transformation, der Quantisierung, der Invers-Quantisierung,
der Rücktransformation
und der Rekonstruktion, aber nicht des Prädiktionsschritts ausgeführt wird
und wobei die weitere Verarbeitung folgendes umfaßt: einen
Schritt des Zickzack-Scannens, einen Schritt des Lauflängen- und Codierens mit
variabler Länge
und einen Bitstromzusammenstellschritt, wofür Speichermittel verwendet
werden, die mindestens als ein Datenratensteuerpuffer dienen,
wodurch
der Pufferfüllstand
nicht aus den in den Speichermitteln gespeicherten Daten berechnet, sondern
aus einem Zählen
jeweiliger Bit in dem Bitstromzusammenstellschritt abgeleitet wird
und der so abgeleitete Pufferfüllstand
zur Steuerung des Quantisierungsschritts und des Invers-Quantisierungsschritts
verwendet wird, und wodurch in mindestens einer weiteren integrierten
Schaltung, die mit der integrierten Schaltung verbunden ist und
der Bilddatenspeichermittel zugewiesen sind, die für die Bewegungsschätzung und
für den
Prädiktionsschritt
verwendet werden, die Bewegungsschätzung und der Prädiktionsschritt
ausgeführt
werden.
-
Vorteilhafte zusätzliche Ausführungsformen des
erfindungsgemäßen Verfahrens
ergeben sich aus den jeweiligen abhängigen Ansprüchen.
-
Im Prinzip eignet sich die erfindungsgemäße Vorrichtung
für die
Codierung digitaler Videosignale unter Verwendung von Bewegungsschätzungsmitteln
und einer Codierungsschleife, die folgendes enthält: Transformationsmittel,
Quantisierungsmittel, Invers-Quantisierungsmittel,
Rücktransformationsmittel,
Rekonstruktionsmittel und Pixel-Makroblock-Prädiktionsmittel,
wobei aus der Bewegungsschätzung abgeleitete
Bewegungs-informationen in den Prädiktionsmitteln verwendet werden,
wobei in den Transformationsmitteln Differenzsignale zwischen Pixel-Makroblock-Daten
und vorhergesagten Pixel-Makroblock-Daten und/oder Pixel-Makroblock-Daten
an sich verarbeitet werden und die Ausgangssignale der Quantisierungsmittel
weiterverarbeitet werden, um daraus codierte Videosignale einschließlich aus
den Bewegungsinformationen abgeleiteter Informationen abzuleiten,
und wobei entweder:
die Codierung in einer integrierten Schaltung
unter Verwendung von Pipeline-Verarbeitung ausgeführt wird,
die die Mittel zur Transformation, zur Quantisierung, zur Invers-Quantisierung,
zur Rücktransformation
und zur Rekonstruktion, aber nicht die Prädiktionsmittel enthält, und
wobei die weitere Verarbeitung folgendes umfaßt: Zickzack-Scan-Mittel, Mittel
zur Lauflängen- und Codierung mit
variabler Länge
und Bitstromzusammenstellmittel, wofür Speichermittel verwendet
werden, die als ein Datenratensteuerpuffer und als eine Zwischenspeicherung
für Bitstromdaten
dienen, die nicht kleiner oder gleich einem Makroblockpegel sind,
die der integrierten Schaltung durch Steuermittel zugeführt werden,
und
wodurch in mindestens einer weiteren integrierten Schaltung, die
mit der integrierten Schaltung verbunden ist und der Bilddatenspeichermittel
zuwiesen sind, die für
die Bewegungsschätzung
und für
den Prädiktionsschritt
verwendet werden, die Bewegungsschätzungsmittel und die Prädiktionsmittel
enthalten sind, ausgeführt
wird,
oder:
die Codierung in einer integrierten Schaltung
ausgeführt
wird, die die Mittel zur Transformation, zur Quantisierung, zur
Invers-Quantisierung, zur Rücktransformation
und zur Rekonstruktion, aber nicht die Prädiktionsmittel enthält, und
wobei die weitere Verarbeitung folgendes umfaßt: Zickzack-Scan-Mittel, Mittel
zur Lauflängen-
und Codierung mit variabler Länge
und Bitstromzusammenstellmittel, wofür Speichermittel verwendet
werden, die mindestens als ein Datenratensteuerpuffer dienen,
wodurch
der Pufferfüllstand
nicht aus den in den Speichermitteln gespeicherten Daten berechnet, sondern
aus einem Zählen
jeweiliger Bit in den Bitstromzusammenstellmitteln abgeleitet wird
und der so abgeleitete Pufferfüllstand
zur Steuerung der Quantisierungsmittel und der Invers-Quantisierungsmittel
verwendet wird, und wodurch in mindestens einer weiteren integrierten
Schaltung, die mit der integrierten Schaltung verbunden ist und
der Bilddatenspeichermittel zugewiesen sind, die für die Bewegungsschätzung und
für die
Prädiktionsmittel
verwendet werden, die Bewegungsschätzungs- und die Prädiktionsmittel
enthalten sind.
-
Vorteilhafte zusätzliche Ausführungsformen der
erfindungsgemäßen Vorrichtung
ergeben sich aus den jeweiligen abhängigen Ansprüchen.
-
Zeichnungen
-
Bevorzugte Ausführungsformen der Erfindung
werden mit Bezug auf die beigefügten
Zeichnungen beschrieben. Es zeigen:
-
1 Prinzipfunktionsblöcke zur
Codierung von MPEG-2-Videodatenströmen;
-
2 ein
Blockschaltbild des erfindungsgemäßen Chipsatzes;
-
3 ein
Beispiel für
eine ausführliche
Ausführungsform
des erfindungsgemäßen Chipsatzes;
-
4 eine
grundlegende Ausführungsform der
Erfindung;
-
5 eine
modifizierte Ausführungsform
der Erfindung;
-
6 ein
Impulsdiagramm für
das Verschachteln im ersten und zweiten Durchgang;
-
7 Kernfunktionen.
-
Bevorzugte
Ausführungsformen
-
Dieselbe Funktionalität wie in
bezug auf 1 beschrieben
kann mit einer in Verbindung mit 2 und
den weiteren Figuren beschriebenen Architektur erzielt werden. Bei
dieser Architektur werden die für
die MPEG-2-Codierung
erforderlichen Verarbeitungsfunktionen in drei Haupt-ICs oder -Stufen
organisiert, denen jeweils ein Speicher zugewiesen ist.
-
Die Vorverarbeitungsstufe 201 enthält alle für die Datenkomprimierung
erforderlichen Eingangs- und Vorverarbeitungsfunktionen, d. h. Block 101 von 1.
-
Die Bewegungsschätzstufe 203 enthält alle Bewegungsschätz- und
Bewegungsprädiktionsfunktionen,
d. h. die Schaltungen 102 und 109 von 1. Dadurch erfolgen die
Bewegungsvektorerzeugung und die Bewegungsvektoranwendung auf demselben Chip,
und die auf dem beigefügten
Speicher 204 gespeicherten Bilddaten können für beide Funktionen verwendet
werden. Die Stufe 203 kann an Luminanz- und/oder Chrominanzdaten
wirken.
-
Die Bitstromcodierungsstufe 207 enthält die gesamte
Bitstromerzeugung für
MPEG-2-Codierung, d.h. die Schaltungen 103 bis 108 und 110 bis 117 von 1, aber keine Bewegungsprädiktionsschaltung (Schaltung 109 von 1), die einen Bilddatenspeicher,
z. B. einen Einzelbildspeicher, auf diesem Chip erfordern würde.
-
Jede dieser Hauptverarbeitungsstufen
besitzt eine Schnittstelle zu einem externen Speicher 202, 204 und 208 sowie
eine Schnittstelle zu einer Steuerung 209, die alle programmierbaren
Optionen des Codierers gewährleistet.
Das heißt,
daß in
Verbindung mit der oben erwähnten
Aufteilung der Blöcke
von 1 in die Stufen 203 und 207 der
Inhalt des Speichers 204 (zum Beispiel Pixeldaten von mindestens
einem Teilbild, falls nur ein Bezugsbild gespeichert wird, Pixeldaten
zweier Teilbilder, falls ein Bezugsbild und ein vorhergesagtes Bild
gespeichert wird, Pixeldaten dreier Teilbilder falls ein Bezugsbild und
zwei vorhergesagte Bilder für
eine bidirektionale Prädiktion
von B-Bildern gespeichert werden) nicht in den Speicher 208 kopiert
werden muß.
Dadurch kann der Speicher 208 wesentlich kleiner und billiger
sein. Die Stufen 201, 203 und 207 können festverdrahtete Funktionalität sowie
programmierbare Schaltungen enthalten, wie zum Beispiel Mikrosteuerungs-
oder Mikrocomputerkerne, die mit jeweiliger Software arbeiten. Ein
weiterer Vorteil ist der folgende: Die Bewegungsschätzstufe 203 bewirkt
eine Verzögerung von
mehreren Bildern (vom I- zum nächsten
I- oder P- zum nächsten
P- oder I- zum nächsten
P- oder P- zum nächsten
I-Bild). Da die Ausgangsdaten der Stufe 203 und die Bilddaten
auf dem Bus A im wesentlichen gleichzeitig in der Stufe 207 benötigt werden, müßte der
Speicher 208 normalerweise eine Korrektur in Bezug auf
die verschiedenen Zeitpunkte der Eingangsdaten vornehmen. Da die
Stufe 201 für
bestimmte Operationen jedoch einen großen Speicher, z. B. einen Mehrfachbildspeicher,
benötigt,
wird dieser Speicher auch zum Ausgleich der oben beschriebenen Zeitverzögerung verwendet.
Das Ergebnis ist, daß die
Eingangsdaten für
die Stufe 207 im wesentlichen zum richtigen Zeitpunkt ankommen,
und der Speicher 208 kann eine niedrige Kapazität aufweisen.
Dadurch können
die Bilddaten auf dem Bus A eine Verzögerung von mehreren Bildern
in Bezug auf die entsprechenden Bilddaten auf dem Bus B aufweisen.
-
Aufgrund dieser Aufteilung von Funktionen, die
ein Aspekt der Erfindung ist, kann jede der Stufen 201, 203 und 207 in
einem VLSI-Chip realisiert werden, da alle Stufen gerade so viele
Verarbeitungselemente enthalten, wie auf einzelnen integrierten Schaltungen
des aktuellen Stands der Technik der VLSI-Technologie, d. h. der
HCMOS4-Technologie mit 0,8 μ und
2 Schichten, implementiert werden können. Die Speicher 202, 204 und 208 können aus Standardspeicherbausteinen
bestehen, wie zum Beispiel 4-Mbit-DRAMs, SDRAMs oder anderen praktikablen
Speichern.
-
Am Eingang der Vorverarbeitungsstufe 201 können standardmäßige digitale
Videosignale DVS im YCbCr-Format
im Zusammenhang mit der ITU-R-Empfehlung 601 verwendet
werden, zusammen mit Standard-Videosynchronisationssignalen SCLK,
einschließlich
z. B. eines 13,5-MHz-Takts, während die
Schnittstellen zwischen den Stufen 201 und 203 und
zwischen den Stufen 203 und 207 mit interner Synchronisation
arbeiten. Zum Beispiel werden die Eingangssynchronisierungssignale,
die mit Zeilen und Teilbildern zusammenhängen, durch Makroblock- und
andere Sync-Signale ersetzt, die mit MPEG-Ebenen zusammenhängen. Die
Codiererausgangsschnittstelle bei Stufe 207 liefert an
ihrem Ausgang CVBS einen komprimierten MPEG-2-Videobitstrom, wie
zum Beispiel den paketierten elementaren Bitstrom (PES), der in
ISO 13818 beschrieben wird, zusammen mit geeigneten Synchronisationssignalen.
Dieser Bitstrom kann unter Verwendung des Datenanforderungseingangs
DREQ ausgelesen werden. Die Vorverarbeitungsstufe 201 ist über einen ersten
Bus A mit der Bewegungsschätzstufe 203 und über einen
zweiten Bus B mit der Bitstromcodierungsstufe 207 für Codierungskomplexitätsvoranalysezwecke
verbunden.
-
Die Voranalyse ermöglicht eine
zusätzliche Art
der Ratensteuerung in jedem Makroblock durch Einstellen der relevanten
Codierungsparameter, wie zum Beispiel der Inter-/Intra- und der
Teilbild-/Einzelbild-Entscheidung.
Vorzugsweise transferiert der Bus A keine Luminanzdaten, während dies
beim Bus B der Fall ist. Die Schnittstellen der Stufen 201, 203 und 207 der
Steuerung 209 sind über
einen bidirektionalen dritten Bus C verbunden und können Standard-Daten-,
Adresse- und Synchronisationsdefinitionen
verwenden, so wie sie Standard-Steuerungseinrichtungen betreffen,
wie zum Beispiel Schaltungen von Motorola oder Texas Instruments,
z. B. TMS320C30. Die Steuerung 209 besitzt wiederum über den
Bus SYSSV eine Schnittstelle zu der Gesamtsystemsteuerung oder einem
Benutzerschnittstellencomputer, woher sie Parameter für die Codierereinrichtung,
die Modusauswahl usw. erhält. Über den
Bus SYSSV können
außerdem
Codiererstatusinformationen, wie zum Beispiel Fehlercodes, übermittelt
werden.
-
Genauer gesagt enthält die Stufe 201 alle Vorverarbeitungs-
und Datenumordnungsfunktionen, die auch den Inhalt von Block 101 in 1 bilden. Zu diesen Funktionen
kann eine Horizontal- und Vertikalfilterung und -dezimierung zur
Umsetzung aus dem ursprünglichen
Bildformat in das Codierungsformat, z. B. von 720 auf 544 Pixel
pro aktiver Zeile, gehören.
Beispielsweise kann eine Umsetzung aus der sogenannten 4 : 2 : 2-YCbCr-Organisation,
eine entsprechende Filterung und Dezimierung der Chrominanzsignale,
um das 4 : 2 : 0-Codierungsformat
zu erzielen, Teil der Verarbeitungsfunktionen in der Stufe 201 sein.
Eine andere wichtige Aufgabe der Schaltung in der Stufe 201 ist
die Beseitigung von Horizontal- und Vertikal-Austastintervallen und die Umordnung
von Videodaten von sequenziellem Scannen von Teilbildern und Zeilen
zu der entsprechenden makroblockbezogenen Scan-Reihenfolge, die
für die MPEG-2-Codierung
hilfreich ist. Die Stufe 201 liefert verschiedene Arten
von Makroblockdaten, wie zum Beispiel Luminanz- und YCbCr-Daten, mit ihrem entsprechenden Zeitsteuerungsverhalten
für die
nachfolgenden Verarbeitungsblöcke
des Gesamtcodierers. Andere Verarbeitungsoptionen, wie zum Beispiel
Rauschverminderung und die Erkennung redundanter Teilbilder im Fall
von Spielfilmbildsequenzen, können
Teil der Funktionalität
in der Stufe 201 sein. Diese Vorverarbeitungsstufe in der
Videocodierungsarchitektur ist außerdem für das Erkennen von Synchronisationssignalen
an ihrem SCLK-Eingang und für
das Erzeugen von Synchronisationssignalen für die jeweiligen Makroblock-Ausgangssignale
und für
den Rest der Codiererschaltungen verantwortlich.
-
Die Bewegungsschätzstufe 203 enthält die gesamte
für die
MPEG-2-Codierung erforderliche Bewegungsschätzverarbeitung, vgl. Block 102 in 1, und enthält außerdem Bewegungsprädiktionsfunktionalität, wie für den Prädiktor 109 in 1 beschrieben. Die Stufe 207 enthält die anderen
in 1 aufgelisteten Verarbeitungselemente,
insbesondere die Funktionen der DCT und ihrer Umkehrung, der Quantisierung
und der Invers-Quantisierung, der Lauflängen- und Codierung mit variabler Länge, die
Kopfzusammenstellung und die Paketisierung. Die Stufe 207 codiert
Luminanz- und Chrominanzdaten.
-
Diese spezifische Aufteilung von
Funktionen ist geeignet und vorteilhaft, z. B. weil sich die schnelle Verarbeitung
der Bewegungsschätzung
und der Bewegungsprädiktion
und die gemeinsame Benutzung von Bewegungsvektoren auf demselben
Chip befinden.
-
Eine andere spezifische Aufteilung
von Funktionen betrifft die Bitstromerzeugungs- und -ratensteuerfunktionen,
die in den Blöcken 111, 112, 113,
und 114 in 1 enthalten
sind. Diese Funktionen können
in speziellen Hardwareschaltungen in der Stufe 207 implementiert
werden, wenn sie die schnelle Verarbeitung für Blöcke, Makroblöcke und die
Slice-Ebene betrifft.
Alle MPEG-Videobitstromoperationen und -ratensteuerfunktionen über dem Slice-Level
(die weniger Betriebsgeschwindigkeit erfordern) können auf
einer Standardsteuerung wie in der Stufe 209 implementiert
werden.
-
In einer ausführlicheren bildlichen Darstellung
zeigt
3 eine weitere
Ausführungsform
der Erfindung. Die Stufen 301 und 307 entsprechen
den Stufen 201 bzw. 207. Die Realisierung der
Stufe 203 erfolgt nun auf alternative Weise. Die Funktionalität der Stufe 203 wird
wieder in eine Grob-Bewegungsschätzstufe 303 und
eine Fein-Bewegungsschätzstufe 305 aufgeteilt.
Diese hierarchische Bewegungsschätzung
hängt mit
aufwendigeren Bewegungsschätztechniken
zusammen, wobei zur Implementierung von Bewegungsvektorsuchprozeduren
mehr Verarbeitungsleistung notwendig ist.
-
Die Stufen 303 und 305 wirken
vorzugsweise nur an Luminanz-, können
aber auch an Chrominanzdaten wirken. Außerdem ist es möglich, daß die Stufe 303 nur
an Luminanzsignalen wirkt, während
die Stufe 305 Fein-Bewegungsvektoren
für Luminanz-
und Chrominanzsignale berechnet.
-
Wenn die Stufe 303 aus einem
Chip besteht, kann für
eine Einzelbildsuche ein Einzelbildvektorsuchbereich von ±64 Pixeln
horizontal und ±32
Pixeln vertikal erzielt werden. Die Stufe 305 kann eine Full-Pel-Suche
durchführen,
aber auch Bewegungsvektoren mit 1/2-Pel-Genauigkeit berechnen. Im Fall der Full-Pel-Suche
beträgt
der Suchbereich zum Beispiel ±3
Pixel horizontal und ±8
Pixel vertikal im Einzelbildmodus.
-
Beide Stufen 303 und 305 sind
durch einen Bus D verbunden, der Grob-Bewegungsvektordaten transferiert,
und sie besitzen ihre eigenen Standardspeicherschnittstellen 304 und 306,
wie in bezug auf 2 beschrieben.
Die Steuerung 309 entspricht der Steuerung 209 und
ist außerdem über den
bidirektionalen Bus C mit der Stufe 303 und der Stufe 305 verbunden.
-
Bei dieser Architektur empfängt die
Grob-Bewegungsschätzstufe 303 ihre
Eingangssignale über den
Bus A aus der Vorverarbeitungsstufe 301. Derselbe Bus ist
für Codierungskomplexitätsvoranalysezwecke
mit der Bitstromcodierungsstufe 307 verbunden. Die Vorverarbeitungsstufe 301 liefert
auf dem Bus B ein weiteres Signal direkt an die Fein-Bewegungsschätzstufe 305.
Vorzugsweise transferiert der Bus A keine Luminanzdaten, während dies
bei Bus B der Fall ist.
-
Vorteilhafterweise werden auf den
Bussen A sind B Videobilddaten in einer spezifischen Reihenfolge
geführt,
die mit der MPEG-2-Makroblockorganisation zusammenhängt, zusammen
mit spezifischen Synchronisationssignalen. Die YCbCr-Daten auf dem
Bus B können
im Vergleich zu den entsprechenden Daten auf dem Bus A um ein Einzelbild
verzögert werden.
-
Auf dem Bus D werden Daten aus Anfangsbewegungsvektoren,
die in der Grob-Bewegungsschätzstufe 303 berechnet
wurden, zu der Fein-Bewegungsschätzstufe 305 geführt, die
die Endbewegungsvektoren berechnet.
-
Der Bus C führt die Standardsteuerungsschnittstellensignale.
Auf dem Bus E werden Makroblockdaten (d. h. Eingangssignale des
Kombinierers 103) von der Stufe 305 zu der Stufe 307 geführt. Dies sind
die entsprechenden auf dem Bus B geführten Daten, aber entsprechend
der Verarbeitungszeit in der Stufe 305 verzögert.
-
Der Bus F transferiert ebenfalls
Makroblockdaten (d. h. die Ausgangssignale des Prädiktors 109) von
der Stufe 305 zu der Stufe 307. Diese Makroblockdaten
betreffen die Fein-Bewegungsvektoren und Prädiktionsmodi (d. h. Eingangssignale
der Blöcke 115 und 116),
die in der Stufe 305 berechnet und auf dem Bus G zu der
Stufe 307 weitergeleitet werden.
-
Der Bus H führt rekonstruierte Makroblöcke (d.
h.
-
Ausgangssignale des Addierers 108)
von der Stufe 307, die für die MPEG-2-Prädiktionsschleife
erforderlich sind, zurück
zu der Stufe 305. Alle Makroblockdaten auf den Bussen E,
F und H werden von spezifischen Synchronisationssignalen begleitet.
-
Die Probleme mit der Datenschnittstelle
und dem damit zusammenhängenden
Speicher für
den Prädiktionsprozeß bei der
MPEG-2-Videocodierung werden in der Erfindung auf vorteilhafte Weise
gelöst. Mit
der in 3 abgebildeten
Busstruktur ist es möglich,
alle Bewegungsschätz-
und Makroblockprädiktionsaufgaben
auf die Stufen 303 und 305 begrenzt zu halten.
Folglich werden alle damit zusammenhängenden Speicheranforderungen
durch die mit den Bewegungsschätzschaltungen 303 und 305 verbundenen
Speicher 304 und 306 abgedeckt. Die bei MPEG-2,
MPEG-1 und anderen Videocodierungstechniken verwendete Prädiktionsschleife
wird geschlossen, indem die (von der Schaltung 108 in 1 ausgegebenen) rekonstruierten
Bilddaten, die in der Stufe 307 enthalten sind, zu dem
Prädiktionsprozeß in der
Fein-Bewegungsschätzstufe 305 zurückgeführt werden.
Die verbleibenden Speicheranforderungen der Stufe 307 betreffen
nur den Bitstromcodierungsprozeß.
Ein anderer Vorteil dieser Art von Schnittstelle zwischen Bewegungsschätzung und
Bitstromerzeugung ist die Möglichkeit,
Bewegungsvektoren an rekonstruierten Daten zu berechnen, die nach
der Invers-Quantisierung verfügbar sind.
Dadurch verbessert sich die Codierungsqualität in der Hinsicht, daß die Decodierungsfehler
in einem Decodierer bereits im Codierer berücksichtigt werden können. Wie
in 2 bewirkt die Grob-Bewegungsschätzstufe 303 eine
Verzögerung
von mehreren Bildern (vom I- zum nächsten I- oder P- zum nächsten P-
oder I- zum nächsten
P oder P- zum nächsten I-Bild).
Da die Ausgangsdaten der nachfolgenden Fein-Bewegungsschätzstufe 305 und
die Bilddaten auf dem Bus A in der Stufe 307 im wesentlichen
zur selben Zeit benötigt
werden, müßte der Speicher 308 normalerweise
die verschiedenen Zeitpunkte der Eingangsdaten einstellen. Da die
Stufe 301 für
bestimmte Operationen jedoch einen großen Speicher benötigt, z.
B. einen Mehrfachbildspeicher, wird dieser Speicher auch zur Kompensation
der oben beschriebenen Zeitverzögerung
verwendet. Das Ergebnis ist, daß die
Eingangsdaten für
die Stufe 307 im wesentlichen zu der richtigen Zeit ankommen
und der Speicher 308 eine niedrige Kapazität aufweisen kann.
Dadurch können
die Bilddaten auf dem Bus A eine Verzögerung von mehreren Bildern
in bezug auf die entsprechenden Bilddaten auf dem Bus B aufweisen.
-
Obwohl die Fein-Bewegungsschätzstufe 305 intern
eine kurze Verzögerung
(die Stufe 305 verarbeitet in einer Pipeline-Struktur acht
Makroblöcke und
transferiert diese zusammen mit Bewegungsinformationen) in den Ausgangsdaten
in bezug auf die Daten auf dem Bus A einführt, ist es vorteilhafter, eine
jeweilige kleine Speicherkapazität
für die
Stufe 307 aufzuwenden, aber einen dritten Bus aus der Stufe 301 für die Stufe 307 zu
sparen. Da der Codierer mit hoher Geschwindigkeit arbeitet, wäre ein paralleler
Bus erforderlich, der zusätzliche
Anschlüsse für die Chips
und zusätzlichen
Raum auf der die Chips tragenden Leiterplatte verbrauchen würde.
-
Wie bereits erwähnt erfordert die MPEG-Videocomprimierung
eine Prädiktionsschleife,
die DCT und ihre Umkehrung enthält
sowie eine Quantisierungsstufe und ihre inverse Funktion. In dieser Schleife
werden mehrere Entscheidungen benötigt, die die Einstellung von
Codierungsprozeduren auf den tatsächlichen Bildinhalt ermöglichen.
Die vorliegende Erfindung betrifft insbesondere die Implementierung
der Bitstromcodiererfunktionalität
und schlägt vor,
daß die
Prädiktionsschleife über externe
Schaltkreise geschlossen wird, wozu alle Mittel zur Bewegungskompensation
und Auswahl der besten Prädiktion gehören.
-
Die Architektur des Bitstromcodierers
ist in 4 dargestellt.
Vorteilhafterweise werden die zu codierenden YCbCr-Pixeldaten auf dem Bus A_e zusammen mit
den jeweiligen YCbCr-Pixeldaten, die zu dem
besten Prädiktor
gehören
(Bus_f), d. h. vorhergesagter Pixelblock bzw. Makroblock, empfangen. Beide
Daten, die in die Schaltung auf den Bussen A_e und B_f angegeben
werden, können
in Makroblock-Scan-Reihenfolge organisiert werden. Folglich werden
die YCbCr-Daten für
den rekonstruierten Weg auf dem Bus D h durch Kombination der Eingangsdaten
aus dem Bus B_f (vorhergesagte Makroblöcke) mit den Daten auf dem
Bus FF (rekonstruierte Makroblöcke)
erzeugt, die aus der Invers-DCT- und der Quantisierungsstufe kommen.
Vorteilhafterweise ermöglicht
die Architektur von 4 Pipeline-Verarbeitung.
-
Bei der Ausführungsform von 4 enthält der Block 410 alle
Mittel zum Ordnen von Makroblockdaten auf Teilbild- und Einzelbildscanweise
(genannt „Teilbild-/Einzelbild-"Entscheidung, siehe
Kapitel 6.1.3 „Makroblock" von ISO/IEC 13818-2)
und zum Auswählen
der ursprünglichen
Daten auf dem Bus A_e oder der Pixelwertdifferenzen zwischen den ursprünglichen
Daten und den vorhergesagten Pixelblockdaten auf dem Bus B_f zur
Codierung. Diese Art von Auswahl wird als „Inter-/Intra-"Entscheidung bezeichnet, siehe ISO/IEC
13818-2 I- oder P-Bilder. Zum Treffen solcher Entscheidungen wird
ein Blockschwierigkeitswert durch Berechnen z. B. einer Summe von
Zeilenpaardifferenzsignalen für
jeden Makroblock berechnet. Der Block 410 kann außerdem Mittel
zum Coring enthalten, die zur Rauschverminderung in den Prädiktionsschleifen
verwendet werden können.
Drei verschiedene Beispiele für
eine solche in der Schleife angeordnete Coring-Funktion sind in 7 abgebildet: fette Linie,
fette und gestrichelte Linie und fette und gepunktete Linie. IP
ist die Eingangssignalamplitude und OP die Ausgangssignalamplitude.
Die ursprüngliche
Daten-/Differenzdatenausgabe
des Blocks 410 wird über
den Bus EE dem Block 420 zugeführt, und die vorhergesagten
Pixelblockdaten werden über
die Verbindung I zu dem Block 411 transferiert. Block 420 enthält die DCT-Funktion (vgl. Block 104).
DCT-Daten auf dem Bus GG werden der Quantisierungsstufe 430 zugeführt, die
die verschiedenen Quantisierungsfunktionen von MPEG-2 implementiert
(vgl. Block 105). Bei dieser spezifischen Architektur können lineare
oder nichtlineare Quantisierungsfaktoren über den bidirektionalen Bus
C durch die Steuerungsschaltung 409 und über einen
zusätzlichen
Bus Q aus der Stufe 432 bereitgestellt werden.
-
Die Ausgangsdaten aus der Quantisierungsstufe 430 kommen über die
Verbindung L in den Scanner 412 (vgl. Block 110)
sowie in die Invers-Quantisierungsstufe 431 (vgl. Block 106),
die über
den Bus C dieselben Steuerfunktionen wie die Quantisierungsstufe 430 empfängt. Die
Ausgabe der Stufe 431 wird über den Bus HH dem Block 421 (vgl. Block 107)
zugeführt,
der die Invers-DCT durchführt. Die
Ausgabe des Blocks 421 wird über den Bus FF dem Block 411 zugeführt, der
die jeweilige inverse Makroblock-Anordnung durchführt und
die vorhergesagten Pixelblockdaten auf der Verbindung I mit den rekonstruierten
Pixelblockdaten auf dem Bus FF kombiniert.
-
Der Scanner 412 enthält Zickzack-
und alternierende Scan-Funktionen, wie in MPEG-2 spezifiziert. Er
liefert das Ausgangssignal U, dessen Pipeline-Daten zu den in der
Einheit 422 (vgl. Block 111, 115, 116)
enthaltenen Stufen der Lauflänge-
und Codierung mit variabler Länge
weitergeleitet werden. Die Einheit 422 nimmt außerdem die
Bewegungsvektordaten MVD und PMD an, die aus externen Schaltkreisen über den
seriellen Bus M_g bereitgestellt werden.
-
Die Busse A_e, B_f, D h, M_g und
C entsprechen den Bussen E, F, H, G bzw. C von 3.
-
Vorteilhafte Funktionalitätsmerkmale
sind in der Zusammenstellstufe 432 enthalten, die den komprimierten
Videobitstrom zusammenstellt. Die Stufe 432 wird über den
bidirektionalen Bus Z durch die Steuerung 409 gesteuert
und empfängt
die komprimierten Videodaten in Form von VLC-Codewörtern zusammen
mit den VLC-Codewörtern für die Bewegungsvektordaten
aus dem Block 422. Aus der lokalen Steuerung 409 empfängt sie
außerdem
alle für die
vollständige
MPEG-2-Bitstromsyntax
benötigten relevanten
Informationen. Die Steuerung 409 selbst erhält alle
Bitstrominformationen, die zu Syntaxelementen bis herauf zu dem
Slice-Level gehören,
aus den Verarbeitungsblöcken 410, 420 und 430 über den
Bus C. Dies betrifft hauptsächlich
Makroblockcodierungsentscheidungen, wie zum Beispiel „Teilbild/Einzelbild", „Inter/Intra" und andere. Die
Steuerung 409 ist ebenfalls in der Lage, diese Codierungsentscheidungen
in den Blöcken 410, 420, 430, 411, 421, 431, 412 und 422 sowie
Parameter für
die Coring-Funktion im Block 410 über den Bus C zu beinflussen.
-
Vorteilhafterweise können diese
Codierungsentscheidungen und die Parameter für das Coring dem Block 410 auch
direkt aus externen Schaltkreisen über den Bus K zugeführt werden,
der z. B. aus zwei seriellen Bussen bestehen kann, wobei einer für die Coring-Steuerung
und der andere für
die Intra/Inter- und die Teilbild/Einzelbild-Anordnungsentscheidung
dienen.
-
Alle Bitstrominformationen, die mit
Syntaxelementen über
dem Slice-Level zusammenhängen, zum
Beispiel Bildgrößeninformationen,
Bitrateninformationen, Benutzerdaten usw., können extern erzeugt werden,
zum Beispiel durch die Systemaufsicht, und werden über den
Bus SYSSV zu der Steuerung 409 gesendet. Die Steuerung
leitet diese Informationen zu der Zusammenstellstufe
432 weiter,
von der aus sie entweder sofort in den Bitstrom eingefügt werden
oder vorübergehend über den
Bus P in dem externen Speicher 308 gespeichert werden.
Der Speicher 308 kann aus Standard-DRAM-, SDRAM- oder anderen
geeigneten Speicherbausteinen bestehen. Er wird für die Zwischenspeicherung
der Bitstromdaten verwendet und dient außerdem als Bitstrompuffer für Ratensteuerungszwecke.
-
Vorteilhafterweise werden die Funktionen der
Bitstromzusammenstellung, der Puffer- und Ratensteuerung in einer
einzigen Verarbeitungseinheit (Zusammenstellstufe 432)
organisiert, die als ein Multiplexer für verschiedene Syntaxelemente
dient und gleichzeitig die Anzahl von für den Bitstrom erzeugten Bit
verfolgt. Als Ergebnis dieses Verfolgungsprozesses werden Quantisierungswerte
erzeugt, die zu der Quantisierungsstufe 430 und über den
Bus Q zu der Invers-Quantisierungsstufe 431 zurückgekoppelt
werden.
-
Vorteilhafterweise ist keine direkte
Pufferfüllstandsbestimmung
unter Verwendung des Inhalts des Speichers 308 selbst erforderlich,
um Quantisierungsfaktorinformationen für den Bus Q zu erzeugen. Statt
dessen wird in der Zusammenstellstufe 432 die Anzahl von
Bit in internen Akkumulatormitteln gezählt, ohne den Speicher 308 und
die Busse P, X und Y zu verwenden. Diese Anzahl von Bit kann z.
B. pro Bild oder pro vorbestimmter Anzahl von Makroblöcken gezählt werden.
Diese vorbestimmte Anzahl kann über
den Bus Z geladen werden.
-
Die Zusammenstellstufe 432 erzeugt
außerdem
Speichersteuerdaten, die über
den Bus X einer Adressensteuerung 450 für den externen Speicher 308 zugeführt werden.
Speicheradressendaten werden auf dem Bus Y ausgegeben. Alle Ratensteuerfunktionen
werden durch die Zusammenstellstufe 432 in Zusammenarbeit
mit der lokalen Steuerung 409 ausgeführt, die den Gesamtcodierungsprozeß überwacht
und alle vorherigen Verarbeitungsblöcke in dem Bitstromerzeugungsprozeß erforderlichenfalls in
eine bestimmte Betriebsart führen
kann. Auf der Grundlage von Nachrichten aus der Stufe 432 kann die
Steuerung 409 außerdem
Informationen über
den Bus SYSSV an die Gesamtsystemaufsicht zurückkoppeln. Dieses Merkmal kann
zum Beispiel verwendet werden, wenn mehrere Videocodierer dieses Typs
auf der Grundlage variabler Bitraten zusammenarbeiten. In diesem
Fall müssen
lokale Bitrateninformationen für
eine globale Rateneinstellung regelmäßig einer Überwachungsschaltung zur Verfügung gestellt
werden. Die lokalen Codierer empfangen wiederum ihre jeweiligen
Rateneinstellungen über
den Bus SYSSV von der Aufsicht.
-
Die Zusammenstellstufe 432 erzeugt
den vollständigen
Bitstrom mit aus dem externen Speicher 308 gelesenen, zuvor
komprimierten Daten und mit lokal erzeugten und aus der Steuerung 409 empfangenen
Köpfen
und anderen Syntaxinformationen höherer Ebene. Sie leitet den
vollständigen
Bitstrom, der bereit zur Codierausgabe ist, über die Verbindung R zu der
Einheit 440 weiter, die als ein komprimierter Datenport
dient. Die Einheit 440 kann den Bitstrom auf serielle oder
parallele (byteweise) Weise als kontinuierlichen Strom oder in einem
Daten-Burst-Modus auf dem Bus CVBS bereitstellen. Sie kann außerdem ein
Daten-Gültig-Signal
erzeugen, wenn sie Burst-Daten erzeugt. In einem Anforderungsmodus mit
einer (nicht abgebildeten) nachfolgenden Verarbeitungsstufe kann
die Einheit 440 ein Datenanforderungssignal DREQ annehmen,
das sie in ein internes Anforderungssignal J für die Stufe 432 verwandelt. Die
Stufe 432 kann dann angemessene Auslesezeiten für die komprimierten
Daten aus dem externen Speicher bestimmen.
-
Vorteilhafterweise wird die Bewegungsschätzung und
Bewegungsprädiktion
in dem Fein-Bewegungsschätzer 305 ausgeführt, wodurch
der Speicher 308 keine rekonstruierten oder vorhergesagten Bilddaten
speichern muß.
Solche Daten werden gespeichert und/oder sind bereits in dem Speicher 306 vorhanden,
der solche Daten für
Bewegungsschätzzwecke
speichern muß.
Deshalb kann der Speicher 308 eine kleinere Kapazität aufweisen,
und der Bus B kann entweder mit einer niedrigeren Taktrate arbeiten
oder nur mit einer kleineren Anzahl paralleler Leitungen gebaut
sein. Ein weiterer Bus z. B. zwischen der Zusammenstellstufe 432 und
den Blöcken 410/411 ist
nicht erforderlich. Solche Betrachtungen sind bei der Codierung
von HDTV-Signalen sogar noch wichtiger.
-
Bei einer modifizierten Konfiguration
gemäß 5 kann der Bitstromcodierer
auch zur Voranalyse der zu codierenden Bilder verwendet werden.
Zu diesem Zweck wird der Block 410 modifiziert, so daß er einen
Multiplexer enthält,
der zwischen Makroblockeingangsdaten A1_e und A2_e auswählt. Die Eingabe
A2_e kann die YCbCr-Daten darstellen, die zuletzt
zu codieren sind, während
die Eingabe A1_e aus den Y- oder YCbCr-Daten
desselben Signals, aber von einem vorherigen Zeitpunkt, besteht.
In diesem Fall ist es möglich,
in den Blöcken 410, 420, 430, 412, 422 und 432 dieselben
Verarbeitungselemente zur Codierung der Daten aus der Eingabe A1_e
und zur Berechnung oder Zählung
der Anzahl von sich aus diesem Codierungsprozeß in jeweiligen Mitteln ergebenden
Bit (wie in der Stufe 432) zu berechnen oder zu zählen. Der
Zählwert
kann in der Steuerung 409 gespeichert werden und folglich
zur Einstellung der Codierungsentscheidungen und der Quantisierereinstellungen
für den
realen Codierungsdurchgang der A2_e-Eingangsdaten verwendet werden.
Dieses Verfahren wird manchmal als „Codierung im ersten Durchgang
und zweiten Durchgang" bezeichnet.
-
Die vorliegende Erfindung deckt die
spezielle Implementierung in der hier beschriebenen Architektur
ab. Die Zeitverzögerung
zwischen den A1_e- und A2_e- Daten
muß ausreichen,
um die Codierung des ersten Durchgangs abzuschließen, bevor
die Codierung des zweiten Durchgangs beginnt. Abhängig von der
Anwendung kann diese Zeitverzögerung
aus einem oder mehreren Einzelbildern bestehen und muß in den
Schaltkreisen, die die A1_e- und die A2_e-Daten liefern, implementiert
werden.
-
Die vorliegende Erfindung betrifft
außerdem eine
Implementierung, die eine Verarbeitung der Schritte der Codierung
des ersten und des zweiten Durchgangs in dem für die Erzeugung des vollständigen Bitstroms
gegebenen Zeitrahmen ermöglicht. Ein
geeignetes Multiplex- oder Verschachtelungsverfahren basiert auf
einem Makroblockintervall, wie in 6 dargestellt,
wobei TMB ein Makroblockintervall, A1P der Verarbeitungszeitraum
für den
ersten Durchgang und A2P der Verarbeitungszeitraum für den zweiten
Durchgang für
den jeweiligen Makroblock ist. Die Erfindung ist jedoch nicht auf
diese spezifischen Parameter beschränkt. Es ist auch möglich, daß zwei Chips
mit den jeweiligen Funktionen wie 4 in
Parallelverbindung wirken, und zwar einer für die Codierung des ersten
Durchgangs und der andere für
die Codierung des zweiten Durchgangs, wodurch beide durch die Steuerung 409 gesteuert
werden.
-
Alle Zwischenchip-Datenübermittlungen können synchrone
Datentransfers mit einer Systemtaktfrequenz von z. B. 27 MHz sein.
Die grundlegenden Funktionen, wie in 1 und 4 gezeigt, soweit es MPEG-1
betrifft, können
mit Schaltkreisen wie denen auf dem STi3230-Chip von SGS-Thomson ausgeführt werden.
Bewegungsschätz-
und Bewegungsschätzsteuerungsschaltkreise
sind an sich aus den Chips STi3220 und STi3223 von SGS-Thomson bekannt.
Die DCT und Invers-DCT können
unter Verwendung von Schaltkreisen wie denen auf den Chips IMSA121,
STV3208 und STV3200 von SGS-Thomson ausgeführt werden.
-
Das Gesamtsystem wird in einer anderen
eigenen europäischen
Patentanmeldung EP95119207 ausführlicher
beschrieben. Die Vorverarbeitungsstufe 201, 301 wird
ausführlicher
in einer weiteren eigenen europäischen
Patentanmeldung EP95119202 beschrieben.
-
Die Grob-Bewegungsschätzstufe 303 wird ausführlicher
in einer anderen eigenen Patentanmeldung (FR 9110158) beschrieben.
-
Die Fein-Bewegungsschätzstufe 305 wird ausführlicher
in einer weiteren eigenen europäischen Patentanmeldung
EP95402787 beschrieben.
-
Die Erfindung kann zum Beispiel für digitale Videorundsendungen,
zum Aufzeichnen und Wiedergeben digitaler Videosignale auf Compaktdiscs,
für interaktive
Videodienste sowie für
die Programmbeiträge,
für ENG/SNG,
für Videoserver,
zum nichtlinearen Editieren und so weiter auf der Grundlage des MPEG-2-Standards
sowie des MPEG-1-Standards verwendet werden.