-
Die
vorliegende Anmeldung betrifft eine Vorrichtung zum Liefern von
Steuersignalen zu mehreren asynchron arbeitenden kooperativen Signalprozessoren.
-
Hintergrund
der Erfindung
-
Es
ist manchmal notwendig, Steuersignale zu jedem von mehreren kooperativen
Signalprozessoren zu liefern. Wenn alle Signalprozessoren synchron
arbeiten, so enthält
dieses eine Messvorrichtung, um Parameterwerte von den Prozessoren
abzutasten, Steuersignale mit Werten aufgrund der relativen Werte
der Parameterwerte zu erzeugen und diese Steuersignale den Verarbeitungskanälen zuzuführen, alles
im Synchronismus mit den verarbeiteten Signalen. Jedoch ist es in
Fällen,
wo die Datensignale nicht miteinander synchronisiert sind, jedoch
noch gefordert wird, kooperativ die Verarbeitung aller Datensignale
aufgrund der Relativwerte der jeweiligen Signalparameter zu steuern,
noch notwendig, dass die Signalparameter in allen Datensignalen
annähernd
gleichzeitig abgetastet werden und dass die Steuersignale den geeigneten
Wert haben, um die asynchrone Art der Signalprozessoren zu kompensieren
und den Signalprozessoren zu den richtigen Zeiten zuzuführen.
-
In
einem beispielhaften System werden mehrere Videosignale von jeweiligen
Kanälen,
die Fernsehnetzversorgungen, Fernsehstationen oder andere Videoquellen
sein können, über eine
Sattelitenstrecke zur Sendung von jeweiligen Fernsehempfängern im
Heim der Benutzer übertragen.
Jedes Videosignal kann in ein Signal von sequentiellen Datengruppen
codiert sein, wobei jede Gruppe aus Daten einer festen Zahl von auf
einander folgenden Videobildern oder Halbbildern besteht und mit
einer Gruppe von Bildern (GOP = group of pictures) bezeichnet wird.
Jedoch sind die durch diese Kanäle
gelieferten Videosignale nicht unbedingt im Synchronismus. Z.B.
arbeiten Kanäle
mit einer Videonorm (in den USA) bei ungefähr 30 Vollbildern je Sekunde,
Filmbilder übertragende
Signale arbeiten bei 24 Vollbildern je Sekunde, und Kanäle mit Zeichentrick
arbeiten bei 15 Vollbildern je Sekunde. Es ist auch möglich, dass
verschiedene Kanäle
in einer GOP unterschiedliche Anzahlen von Bildern oder Vollbildern
aufweisen. Demzufolge haben GOPs unterschiedlicher Kanäle unterschiedliche
zeitliche Längen,
d.h. sie sind asynchron.
-
In
einem derartigen System werden Daten von verschiedenen Kanälen bei
einer Head-Endstation in einen einzigen Datenstrom kombiniert oder
gemultiplext. Der gemultiplexte Datenstrom wird dann über eine Übertragungsstrecke,
wie eine Drahtleitung, ein Lichtfaserbündel oder eine Hochfrequenzstrecke
(wie eine Satellitenstrecke), zu einer Rück-Endstation übertragen,
wo die Datenkanäle
dann von dem gemultiplexten Datenstrom getrennt oder demultiplexiert
und zu den beabsichtigten Empfängern übertragen
werden. Ein Beispiel einer Satellitenstrecke enthält einen
digitalen Übertragungsweg,
der 24 Megabit je Sekunde (Mbps) übertragen kann. Um die Effizienz
und Ausnutzung einer derartigen Strecke zu maximieren, ist es notwendig,
dass sich mehrere Videosignale die Strecke teilen. Z.B. kann es
erwünscht
sein, die obige Satelliten-Übertragungsstrecke
an wenigstens sechs Videosignalkanälen zu beteiligen.
-
Es
sind Coder mit einer variablen Bitrate (VBR = variable bit rate)
bekannt, die die Steuersignale aufgrund der Füllung eines Puffers umschalten.
Siehe z.B. PRO-CEEDINGS
OF THE SPIE – THE
INTERNATIONAL SOCIETY FOR OPTICAL EN-GINEERING, Band 2188, B.–10. Februar
1994, USA, Seiten 153–162, XP002057147
REININGER D ET AL "RATE
CONTROL FOR VBR MPEG VIDEO ON LOCAL A-REA NETWORKS"
-
Kurzbeschreibung
der Erfindung
-
Es
wurde vorgeschlagen, die gesamte Bitrate in dem gemultiplexten Signal,
das durch die Sattelitenstrecke übertragen
wird, dynamisch den verschiedenen Kanälen auf Grund der laufenden
Codierungskomplexität
der durch diese Kanäle übertragenen
Bilder zuzuordnen. Die Codierkomplexität der derzeit laufenden Bilder
für alle
Kanäle
wird auf einer GOP-Basis berechnet und Bild-für-Bild auf der Grundlage eines
gleitenden Fensters verfügbar
gemacht. Die Codierkomplexitäten
von allen Kanälen
werden im Wesentlichen gleichzeitig abgetastet. Ein Anteil der gesamten
Bitrate der Übertragungstrecke
wird jedem Kanal für
die nächste
Quoten-Periode auf der Grundlage des Zusammenhangs der laufenden
Codierkomplexität
des Kanals zu den Gesamt- Codierkomplexitäten aller Kanäle zugeordnet.
-
Die
Erfinder haben erkannt, dass, obwohl die GOPs für die jeweiligen Kanäle unterschiedlich
lang sein können,
es möglich
ist, Bitraten unter den verschiedenen Kanälen durch eine Zeitnormierung
der Codierkomplexität
einer GOP und auf der Grundlage der Zuordnungen der relativen zeitnormierten
Codierkomplexitäten zuzuordnen.
Die Erfinder haben ferner erkannt, dass Steuersignale auf derzeit
verfügbaren,
zeitnormierten Codierkomplexitäten
den Kanälen
zu beliebigen Steuerzeiten zugeordnet werden können, vorausgesetzt, dass nicht
mehr als ein Steuersignal in einem einzigen Bild- oder Vollbild
Intervall für
jeden der Kanäle
ausgegeben werden kann. Insbesondere werden Steuersignale bei konstanten
Intervallen geliefert, derart dass jeder Kanal eine jeweilige konstante
ganze Anzahl von in jedem der GOP aktualisierten Steuersignale empfängt. In
diesem Fall ordnet jeder Satz von jeweiligen Steuersignalen die
Zahl der während
eines konstanten Intervalls verfügbaren
Bit den jeweiligen Kanälen
zu. Alternativ können
Steuersignale zu jeder Zeit jeweils dann zu allen Kanälen geliefert
werden, wo die Kanäle
eine neue GOP beginnen, zu. In einem derartigen Fall ordnet jeder
Satz von Steuersignalen die Anzahl der Bit, die in der (sich ändernden)
Zeitperiode verfügbar
sind der letzte Satz von Steuersignalen den Kanälen zugeführt. Steuersignale können auch
zu allen Kanälen
zu willkürlichen
Zeiten aufgrund eines externen Quoten-Aktualisierungssignals geliefert
werden, vorausgesetzt, dass die willkürlichen Aktualisierungszeiten
nicht mehr als einmal in einem einzigen Bild oder Vollbild in einem
der Kanäle
auftreten.
-
Gemäß Prinzipien
der vorliegenden Erfindung enthält
eine Vorrichtung zur asynchronen Erzeugung von Steuersignalen mehrere
Quellen von asynchronen Datensignalen und mehrere Datenverarbeitungskanäle, von
denen jeder eines der Datensignale aufgrund eines Steuersignals
verarbeitet. Jede der mehreren, einen Parameter bestimmenden Schaltungen
erzeugt einen Parameter, der eines der Datensignale darstellt. Ein Datenabtaster
bewirkt eine Abtastung der Signale von allen Parameterbestimmenden
Schaltungen im Wesentlichen gleichzeitig bei vorbestimmten Abtastzeitintervallen.
Ein Steuersignalgenerator erzeugt Steuersignale für die Daten
verarbeitenden Kanäle
mit Werten aufgrund der abgetasteten Parameter, die Signale und
das vorangehende Abtastzeitintervall darstellen.
-
Kurzbeschreibung
der Zeichnung
-
1 ist ein Blockschaltbild
eines Multiplexer-Systems gemäß der vorliegenden
Erfindung,
-
2 ist ein Blockschaltbild
eines Kanalprozessors, der in dem in 1 dargestellten
Multiplexer-System benutzt werden kann,
-
3 ist ein Blockschaltbild
eines Teils eines MPEG-Coders, der in dem in 2 dargestellten Kanalprozessor benutzt
werden kann.
-
4 ist ein Blockschaltbild
eines Bitraten-Zuordners, der in dem in 1 dargestellten Multiplexersystem benutzt
werden kann,
-
5 ist ein detaillierteres
Blockschaltbild eines Komplexitäts-Analysators,
der in dem in 2 dargestellten
Kanalprozessor benutzt werden kann, und
-
6, 7, 8 und 9 sind Zeitdiagramme oder
so genannte Timing-Diagramme, die die Abtastung der Komplexitäts-Informationen
darstellen.
-
Detaillierte
Beschreibung einer bevorzugten Ausführungsform
-
1 ist ein Blockschaltbild
eines Multiplexersystems mit der vorliegenden Erfindung. In 1 sind alle Signalwege als
einzelne Signalleitungen dargestellt. Jedoch wird der Fachmann auf
diesem Gebiet verstehen, dass die dargestellten Signalwege digitale
Multibit-Signale übertragen
können,
entweder parallel, in welchem Fall die Signalwege aus mehreren Signalleitungen
bestehen, oder seriell, in welchem Fall die Signalwege eine einzige
Datenleitung sein und/oder eine Daten- und eine Taktsignalleitung
enthalten können.
Andere Steuer- und Taktsignalwege, die für das Verständnis der vorliegenden Erfindung
nicht wichtig sind, sind in der Figur zu deren Vereinfachung weggelassen.
-
In 1 sind mehrere Eingangsklemmen 5 mit
(nicht dargestellten) Quellen von Videosignalen verbunden (Kanal 1 – Kanal
K), die zusammen über
eine Datenstrecke übertragen
werden. Die mehreren Eingangsklemmen 5 sind mit den Dateneingangsklemmen
der entsprechenden mehreren Kanalprozessoren 10 verbunden.
Die jeweiligen Datenausgangsklemmen der mehreren Kanalprozessoren 10 sind
mit den entsprechenden Dateneingangsklemmen 1 – K eines
Multiplexers (MUX) 20 verbun den. Eine Datenausgangsklemme 15 ist
mit einer (nicht dargestellten) Auswertschaltung zur Übertragung
des gemultiplexten Datenstroms (MUX'ED Daten) über die Übertragungsstrecke verbunden.
Jeder der mehreren Kanalprozessoren 10 enthält außerdem eine
Komplexitäts-Ausgangsklemme
und eine Steuereingangsklemme.
-
Jeder
der mehreren Prozessoren 10 enthält außerdem eine Komplexitäts-Ausgangsklemme und
eine Steuereingangsklemme. Die jeweiligen Komplexitäts-Ausgangsklemmen jeder
der mehreren Kanalprozessoren sind mit entsprechenden Komplexitäts-Eingangsklemmen
eines Bitraten-Zuordners 30 verbunden, und jeweilige Quoten-Ausgangsklemmen
des Bitraten-Zuordners 30 sind mit den entsprechenden Steuereingangsklemmen
der mehreren Kanalprozessoren 10 verbunden. Der Multiplexer 20 kann
zusätzlich
eine Quoten-Aktualisierungs-Steuerausgangsklemme
enthalten, die mit einer entsprechenden Quoten-Aktukalisierungs-Steuereingangsklemme
des Bitratenzuordners 30 verbunden ist, wie gestrichelt
in 1 dargestellt ist.
-
Im
Betrieb empfängt
jeder Kanalprozessor ein Signal an seiner Steuereingangsklemme,
das die Bitrate darstellt, die ihm für die nächste Quotenperiode zugeordnet
ist. Der Kanalprozessor codiert dann das Signal an seiner Dateneingangsklemme
für die
nächste
Quotenperiode in ein digital codiertes Signal bei der zugeordneten
Bitrate. Das codierte Datensignal wird der entsprechenden Eingangsklemme
des Multiplexers 20 zugeführt. Der Multiplexer 20 arbeitet
in bekannte Weise und kombiniert die Signale von allen Kanalprozessoren
in einen gemultiplexten Datenstrom. Der gemultiplexte Datenstrom
wird dann der die Datenstrecke enthaltenden Schaltung zur Übertragung
zugeführt,
ebenfalls in bekannter Weise.
-
Während des
Codiervorgangs erzeugt der Kanalprozessor 10 an seiner
Komplexitäts-Ausgangsklemme
ein Signal, das die Codierkomplexität des codiert werdenden Signals
darstellt. Der Bitraten-Zuordner 30 empfängt die
Signale von den Komplexitäts-Ausgangsklemmen
der Kanalprozessoren 10 und stellt aufgrund aller Komplexitätssignale
die Bitraten-Quoten für
die nächste
Quotenperiode unter den mehreren Kanalprozessoren 10 dynamisch
ein. In einer bevorzugten Ausführungsform
werden mehreren komplexen Signalen eine relativ höhere Bitrate
als den weniger komplexen Signalen zugeordnet. Verschiedene Verfahren
zur Ermittlung der Komplexität
des Videosignals und zur Zuordnung der Bitraten aufgrund der Komplexitäten werden
im Folgenden beschrieben.
-
2 ist ein Blockschaltbild
eines Kanalprozessors, der in dem in 1 dargestellten
Multiplexersystem benutzt werden kann. In 2 sind Bauteile, die denen in 1 ähnlich sind, mit denselben
Bezugsziffern versehen und werden im Folgenden nicht im Detail beschrieben.
In 2 ist eine Dateneingangsklemme 5 mit einer
(nicht dargestellten) Videosignalquelle verbunden. Die Dateneingangsklemme 5 ist
mit einer Dateneingangsklemme eines Coders mit konstanter Bitrate
(CBR = constant bit rate) 14 und einem Komplexitäts-Analysator 16 verbunden.
Eine Datenausgangsklemme des CBR-Coders 14 ist mit einer
Eingangsklemme eines Multiplexers (MUX) 20 (von 1) verbunden. Eine Steuereingangsklemme
(CONTROL) des Kanalprozessors 10 ist mit einer Quoteneingangsklemme
Q des CBR-Coders 10 verbunden. Eine Ausgangsklemme des Komplexitäts-Analysators 16 ist
mit der Komplexitäts-Ausgangsklemme
(KOMPLEXITÄT)
des Kanalprozessors 10 verbunden.
-
Im
Betrieb analysiert der Komplexitäts-Analysator 16 die
Komplexität
des Videosignals an der Dateneingangsklemme 5. Es wird
an der Ausgangsklemme des Komplexitäts-Analysators 16 ein
Signal erzeugt, das die Komplexität des Eingangssignals darstellt.
Das die Komplexität
darstellende Signal wird dem Bitraten-Zuordner 30 (von 1) zugeführt. Aufgrund dieses Komplexitätssignals
(und derjenigen der anderen Kanalprozessoren 10) liefert
der Bitraten-Zuordner 30 ein Signal zu der Steuereingangsklemme
(CONTROL) dieses Kanalprozessors 10 (und der anderen Kanalprozessoren 10),
das die Bitraten-Zuordnung zu diesem Kanalprozessor 10 darstellt.
Der CBR-Coder 14 bildet einen Datenweg zwischen seinen
Dateneingangs- und
Daten Ausgangsklemmen zur Erzeugung eines bei einer konstanten Bitrate
codiertes Ausgangssignal. Die konstante Bitrate wird entsprechend
dem Signal an der Quoten-Eingangsklemme Q von der Steuereingangsklemme (CONTROL)
des Kanalprozessors 10 von dem Bitraten-Zuordner 30 eingestellt.
-
Es
ist möglich,
dass die Schaltung in dem CBR-Coder 14 ebenfalls als Komplexitäts-Analysator 16 in der
Durchführung
seiner Analyse dienen kann. In einem derartigen Fall werden Daten
vom Inneren des CBR-Coders 14 direkt zu dem Komplexitäts- Analysator 16 geliefert,
wie in 2 gestrichelt
dargestellt ist. Derartige Daten von dem CBR-Coder 14 können Daten
von der Eingangsklemme 5 ergänzen oder sie vollständig ersetzen,
in welchem Fall es keine direkte Verbindung des Komplexitäts-Analysators zu der
Dateneingangsklemme 5 gibt.
-
In
einer bevorzugten Ausführungsform
ist jeder CBR-Coder 14 ein Coder, der ein Videosignal gemäß einer
Norm, die durch die Moving Picture Expert Group (MPEG), bezeichnet
als MPEG-Coder, propagiert wird, komprimiert und codiert. 3 ist ein Blockschaltbild
und zeigt einen Teil eines MPEG-Coders 14. Die bekannten
Bauteile des MPEG-Coders 14 werden im Folgenden nicht im
Detail beschrieben. Die MPEG-Coder
enthalten weitere Bauteile, die für das Verständnis der vorliegenden Erfindung
unwichtig und zur Vereinfachung in der Figur weggelassen worden
sind.
-
In 3 ist eine Dateneingangsklemme 5 (DATA
IN) des MPEG-Coders 14 mit einer (nicht dargestellten)
Quelle eines zu komprimierenden und zu codierenden Videosignals
dargestellt. Die Eingangsklemme 5 ist mit einer Eingangsklemme
eines Vollbildpuffers 41 verbunden. Der Vollbildpuffer 41 enthält mehrere
Puffer für
die Vollbildperiode oder Verzögerungsleitungen
und mehrere Ausgangsklemmen, die jeweilige Teile von verschiedenen,
jedoch zeitlich benachbarten Vollbildern oder Bildern darstellen.
Die mehreren Ausgangsklemmen des Vollbild-Puffers 41 sind
mit jeweiligen Eingangsklemmen eines Bewegungsschätzers 42 verbunden. Eine
Ausgangsklemme des Bewegungsschätzers
ist mit einer Schaltung 43 für eine diskrete Cosinustransformation
(DCT) verbunden. Eine Ausgangsklemme der DCT-Schaltung 43 ist
mit einer Dateneingangsklemme einer variablen Quantisierers (Qu)-Schaltung
verbunden. Eine Ausgangsklemme der variablen Quantisiererschaltung 46 ist
mit einer Eingangsklemme eines Coders mit variabler Länge (VLC) 47 verbunden.
Eine Ausgangsklemme des VLC 47 ist mit einer Eingangsklemme
eines Ausgangspuffers 48 verbunden. Eine Datenausgangsklemme
des Ausgangspuffers 48 ist mit einer Datenausgangsklemme
(DATA OUT) des MPEG-Coders 14 verbunden. Die Datenausgangsklemme
(DATA OUT) des MPEG-Coders 14 ist mit einer entsprechenden
Eingangsklemme des Multiplexers 20 (von 1) verbunden.
-
Eine
Status-Ausgangsklemme des Ausgangspuffers 48 ist mit einer
Status-Eingangsklemme
eines Bitraten-Reglers 49 verbunden. Eine Steuerausgangsklem me
des Bitraten-Reglers 49 ist mit einer Steuereingangsklemme
eines variablen Quantisierers 46 verbunden. Eine Quoten-Eingangsklemme
Q ist mit einer entsprechenden Quoten-Ausgangsklemme des Bitraten-Zuordners 30 verbunden.
Die Quoten-Eingangsklemme Q des MPEG-Coders 14 ist mit
einer Steuereingangsklemme des Reglers 49 verbunden.
-
Im
Betrieb arbeitet der MPEG-Coder 14 in bekannter Weise zur
Komprimierung und Codierung des Videosignals an seiner Eingangsklemme
für die
nächste
Quotenperiode bei einer Bitrate, die durch das Signal an seiner
Eingangsklemme Q bestimmt ist. In dem folgenden Beispiel wird ein
MPEG-Coder, der ein Video-signal codiert, das in zwei Gruppen (GOPs)
aus jeweils zwölf
Bildern oder Vollbildern aufgeteilt ist, beschrieben. Das sollte
jedoch so verstanden werden, dass sich die Zahl der Bilder oder
Vollbilder in einer GOP ändern kann.
Auch in dem folgenden Beispiel wird angenommen, dass die Zuordnung
der Bitrate für
jeden MPEG-Coder einmal je GOP aktualisiert wird, das heißt die Quotenperiode
ist die GOP-Periode. Das sollte jedoch so verstanden werden, dass
die Quotenperiode unterschiedlich sein und sich mit der Zeit ändern kann,
wie es später
detaillierter beschrieben wird.
-
Der
Vollbildpuffer 41 empfängt
und speichert Daten, entsprechend dem Teil der zwölf Vollbilder
in der beispielhaften GOP, die derzeit codierten GOP codiert werden,
wie es zur Durchführung
der Bewegungsschätzung
notwendig ist, ebenfalls in einer im Folgenden beschriebenen Weise.
Diese Daten werden dem Bewegungsschätzer 42 zugeführt. In
der bevorzugten Ausführungsform
dient das erste der zwölf
Vollbilder oder Bilder als ein Referenzvollbild (1-Vollbild) und
wird über
den Bewegungsschätzer
der DCT-Schaltung 43 zugeführt. Für den übrigen Teil der Vollbilder
wird in dem Bewegungsschätzer 42 für jeden
der mehreren Blöcke
mit 16 Pixeln mit 16 Zeilen in jedem Bild oder Vollbild ein Bewegungsvektor
erzeugt, in dem MPEG-Normdokument als
Makroblöcke
bezeichnet, entweder von vorangehenden Vollbildern alleine (P-Vollbilder)
oder interpoliert aus vorangehenden und darauffolgenden Vollbildern
(B-Vollbilder). Wie oben beschrieben, hält der Vollbildpuffer 41 die
Daten, um die Schätzung
von vorangehenden Vollbildern oder die Interpolation aus vorangehenden und
darauffolgenden Vollbildern durchzuführen. Die für ein bestimmtes Vollbild erzeugten
Bewegungsvektoren werden dann mit den tatsächlichen Daten in den geschätzt werdenden
Vollbild verglichen, und es wird ein Bewegungsdifferenzsignal erzeugt
und der DCT-Schaltung 43 zugeführt.
-
In
der DCT-Schaltung 43 werden die Makroblöcke aus 16 Pixeln mal 16 Zeilen
von räumlichen
Daten aus dem 1-Vollbild und Bewegungsdifferenzsignale von den P-Vollbildern und den
B-Vollbildern in sechs Blöcke
mit 8 Pixeln mal 8 Zeilen aufgetrennt, (vier Luminanzblöcke und
zwei unterabgetastete Chrominanzblöcke), im übrigen Teil dieser Anmeldung
als Mikroblöcke
bezeichnet, gemäß dem MPEG-Norm-Dokument. Es erfolgt
eine diskrete Cosinustransformation auf jedem Mikroblock. Die sich
ergebenden 8 mal 8 Blöcke
der DCT-Koeffizienten werden dann dem variablen Quantisierer 46 zugeführt. Die
Koeffizienten der 8 durch 8 Blöcke
werden quantisiert, in einer Zick-Zack-Reihenfolge abgetastet und
dem VLC 47 geführt.
Die quantisierten DCT-Koeffizienten und andere Seiteninformationen
(für die
Parameter der codierten GOP), die unter Anwendung der Lauflängencodierung
in dem VLC 47 codierten GOP darstellen, und werden dem
Ausgangspuffer 48 zugeführt.
-
Es
ist bekannt, dass der direkteste Weg zur Steuerung der Ausgangsbitrate
des VLC 47 und somit die Aufrechterhaltung der zugeordneten
konstanten Bitrate für
den MPEG-Coder 14 darin besteht, die Anzahl der Quantisierwerte
(oder auf andere Weise die Quantisierschrittgröße) für die Anwendung für die Quantisierung jedes
Blocks der DCT-Koeffizienten in dem variablen Quantisierer 46 zu
steuern. Das Quoten-Aktualisierungs-Steuersignal Q, das dem variablen
Quantisierer 46 von dem Bitraten-Regler 49 zugeführt wird,
führt diese
Steuerfunktion aus. Innerhalb einer Quotenperiode, das ist die Periode
zwischen aufeinander folgenden Bitraten-Quoten-Aktualisierungssignalen Q von dem Bitraten-Zuordner 30 (von 1), liefert der Bitraten-Regler 49 in
bekannter Weise ein Steuersignal zu dem variablen Quantisierer 46,
das die Anzahl der Werte ändert,
in die jeder Makroblock 16 mal 16 in der GOP quantisiert
wird, um die zugeordnete Bitrate für diese Quotenperiode aufrechtzuerhalten.
-
Die
Bitraten-Zuordnung für
diesen Bitraten-Regler 49 in dem vorliegenden Beispiel
wird für
jede GOP-Periode in Abhängigkeit
von den Codier-Komplexitätswerten
der Videosignale in jedem der mehreren Kanäle in einer im Folgenden beschriebenen
Weise geändert.
Jedoch benutzt der Bitraten-Regler 49 eine Steuerstrategie
auf grund einer konstanten zugeordneten Bitrate während der Codierung jedes einzelnen
Bilds oder Vollbilds. Auf diese Weise kann nicht mehr als ein einziges
Quoten-Aktualisierungssignal
Q durch den Bitraten-Regler 49 während eines einzigen Bilds
oder Vollbilds empfangen werden, und jedes Quoten-Aktualisierungssignal
Q, das während
eines Bilds oder Vollbilds empfangen wird, hat einen Einfluss bei
dem Beginn des nächsten
Bilds oder Vollbilds.
-
In
einer bevorzugten Ausführungsform
ist der Bitraten-Zuordner 30 (von 1) ein Computersystem mit Anschlüssen, die
mit den verschiedenen Schaltungskomponenten in mehreren 10 Kanalprozessoren
verbunden sind. 4 ist
ein Blockschaltbild der Hardware, die den Bitraten-Zuordner 30 bildet.
In 4 ist ein Mikroprozessor
(μP) 31 mit
einem Schreib/Lese-Speicher (RAM) 32, einem Nur-Lese-Speicher
(ROM) 33 und einem Eingang/Ausgang (I/O)-Controller 34 über einen
Computersystem-Bus 35 verbunden. Es bestehen noch andere
Bauteile des Computersystems, wie Massen-Speichereinheiten und Benutzerterminals,
die zur Vereinfachung der Figur nicht dargestellt sind. Der I/O
Controller enthält
mehrere Eingangsklemmen (KOMPLEXITÄT), die mit entsprechenden
Komplexitäts-Ausgangsklemmen
der mehreren Kanalprozessoren 10 (von 1) verbunden sind, und mehrere Ausgangsklemmen
(QUOTA), die mit den entsprechenden Quoten-Eingangsklemmen der mehreren
Kanalprozessoren 10 verbunden sind. Der I/O-Controller 34 kann
auch eine Eingangsklemme enthalten, die mit dem Multiplexer 20 (von 1) zur Empfang eines Quoten-Aktualisierungs-Steuersignals
verbunden ist, wie in 4 gestrichelt
gezeigt ist.
-
Der
Mikroprozessor 31, das RAM 32, das ROM 33 und
der I/O-Controller 34 arbeiten als ein Computersystem in
bekannter Weise, um die in dem ROM 33 gespeicherten Programme
durchzuführen,
Daten in dem RAM 32 zu speichern und zurückzugewinnen
und Daten zu den Einheiten zu übertragen,
die dem I/O-Controller 34 beigefügt sind. Die Daten, die die
laufende Codierkomplexität
des codiert werdenden Videosignals darstellen, die in den mehreren
Kanalprozessoren 10 (von 1)
codiert werden, werden von den entprechenden Ausgangsklemmen derjenigen
Kanalprozessoren an dem I/O-Controller 34 über die
KOMPLEXITÄTS-Eingangsklemmen
in einer im Folgenden beschriebenen Weise empfangen. Der Mikroprozessor 31 wird über den Empfang
dieser Daten in bekannter Weise benachrichtigt, zum Beispiel durch
Polling oder Aufruf, Unterbrechung, usw. Der Mikroprozessor 31 gewinnt
diese Signale aus dem I/O-Controller 34 über den
Computersystembus 35 zurück, ermittelt die Quote der
Bits für
die nächste
Quotenperiode für
jeden der Coder und führt diese
Quoten darstellenden Signale den mehreren Kanalprozessoren 10 über die
QUO-TEN-Ausgangsklemmen
der nächsten
Quotenperiode zu. Das Timing der Sendung der Quoten-Aktualisierungssignale
zu den mehreren Kanalprozessoren 10 kann intern durch den
Mikroprozessor 51 gesteuert werden, kann in Abhängigkeit
von dem Timing der Komplexitäts-Signals
von den Komplexitäts-Analysierer 16 gesteuert
werden oder kann durch ein Quoten-Aktualisierungssignal von dem
Multiplexer 20 gesteuert werden, wie später detaillierter beschrieben
wird.
-
Ein
bevorzugtes Verfahren zur Ermittlung der Codierkomplexität eines
Videosignals, das durch einen MPEG-Coder 14 (von 3) codiert wird, benutzt
den Quantisierungs-Skalierfaktor (bezeichnet mit QMB)
für jeden
Makroblock 16 mal 16 und der Anzahl der Bit (bezeichnet
mit TMB), der zur Codierung dieses Makroblocks
dient, für
alle Makroblöcke
in jedem Bild oder Vollbild der GOP. 5 ist
ein Blockschaltbild des Bitraten-Reglers 49 des MPEG-Coders 14 (von 3) und des Komplexitäts-Analysators 16 von 2, der ein die Codierkomplexität darstellendes
Signal nach diesem Verfahren erzeugt. Verschiedene Takt- und Steuersignale sind
zur Vereinfachung in der 5 weggelassen.
Jedoch sind gut verständlich,
welche Signale benötigt
werden, sowie das notwendige Timing der Spannungseigenschaften dieser
Signale.
-
Der
in 5 dargestellte Komplexitäts-Analysator 16 ist
ein Beispiel eines Komplexitäts-Analysators, der
nur Informationen von dem CBR-Coder verwendet, wie in 2 gestrichelt dargestellt
ist. In 5 enthält der Bitraten-Regler 49 eine
Status-Eingangsklemme
CMB, die mit der Statusausgangsklemme des
Ausgangspuffers 48 (von 3)
verbunden ist. Die Steuerausgangsklemme QMB des
Bitraten-Reglers 49 ist mit der Steuereingangsklemme eines
variablen Quantisierers 46 (von 3) verbunden. Der Regler 49 enthält ferner eine
Steuereingangsklemme (Q), die mit einer entsprechenden Quotenausgangsklemme
des Bitraten-Zuordners 30 (von 1) verbunden ist.
-
Die
Status-Eingangsklemme TMB des Bitraten-Reglers 49 ist
außerdem
mit einer ersten Eingangsklemme einer ersten Addierstufe 92 verbunden.
Eine Ausgangsklemme der ersten Addierstufe 92 ist mit einer
Eingangsklemme eines ersten Latch (Zwischenspeichers) 93 verbunden.
Eine Ausgangsklemme des ersten Latch 93 ist mit einer ersten
Eingangsklemme eines Multiplikators 94 und einer zweiten
Eingangsklemme der ersten Addierstufe 92 verbunden. Eine
Ausgangsklemme des Multiplikators 94 ist mit einer Eingangsklemme
eines zweiten Latch 95 verbunden. Eine Ausgangsklemme des
zweiten Latch 95 ist mit einer Ausgangsklemme Xpic für
die Codierkomplexität
verbunden. Die Komplexitäts-Ausgangsklemme
Xpic ist mit einer entsprechenden Komplexitäts-Eingangsklemme
des Bitraten-Zuordners 30 (von 1) verbunden.
-
Die
Steuerausgangsklemme QMB des Bitratenreglers 49 ist
außerdem
mit einer ersten Eingangsklemme einer zweiten Addierstufe 96 verbunden.
Eine Ausgangsklemme der zweiten Addierstufe 96 ist mit
einer Eingangsklemme eines dritten Latch 97 verbunden.
Eine Ausgangsklemme des dritten Latch 97 ist mit einer Zähler-Eingangsklemme N
eines Teilers 98 und mit einer zweiten Eingangsklemme der
zweiten Addierstufe 96 verbunden. Eine Ausgangsklemme des
Teilers 98 ist mit einer zweiten Eingangsklemme des Multiplikators 94 verbunden.
Ein Register 99 enthält
eine Ausgangsklemme, die mit der Nenner-Eingangsklemme D des Teilers 98 verbunden.
-
Im
Betrieb erzeugt für
jeden Makroblock der Bitraten-Regler 49 ein Quantisierungs-Skalierfaktorsignal QMB für
den variablen Quantisierer 46 in bekannter Weise, aufgrund
der laufenden Bitratenquote und der Anzahl der Bit, die zur Codierung
der vorangehenden Bilder dienen, und empfängt dann ein Signal von dem
Ausgangspuffer 48, das die Anzahl der Bit TB anzeigt,
die zur Codierung des Makroblocks dienen. Ein variabler Quantisierer 46 (von 3) quantisiert die DCT-Koeffizienten
in jedem Makroblock entsprechend dem Quantisier-Skalierfaktor QMB. Der Quantisier-Skalierfaktor QMB stellt
die Quantisierschrittgröße oder
den Prozentsatz des vollen Dynamikbereichs der DCT-Koeffizienten
in jedem Quantisierwert dar. Ein hoher Wert für QMB bedeutet,
dass eine größere Quantisierschrittgröße und demzufolge
weniger Quantisierwerte vorliegen. Umgekehrt bedeutet ein niedriger
Wert für
QMB, dass eine kleinere Quantisierschrittgröße und demzufolge
mehr Quantisierwerte vorliegen. In der bevorzugten Ausführungsform
ist QMB eine ganze Zahl mit fünf Bit (mit
Werten zwischen 1 und 31).
-
Ein
mittlerer Quantisier-Skalierfaktor für alle Makroblöcke in einem
vollständigen
Bild oder Vollbild (bezeichnet mit Xpic)
wird dann folgendermaßen
berechnet. Zu Beginn jedes Vollbildes oder Bildes werden die Latche 93 und 97 durch
ein (nicht dargestelltes) Löschsignal
auf nulll gelöscht.
Die Kombination der zweiten Addierstufe 96 und des dritten
Latch 97 arbeitet als ein Akkumulator zur kontinuierlichen
Summierung der Makroblock-Quantisier-Skalierfaktoren QMB von
dem Bitratenregler 49. Zur selben Zeit arbeitet die Kombination
der ersten Addierstufe 92 und des ersten Latch 93 als
ein Akkumulator zur kontinuierlichen Summierung der Anzahl der Bit,
die soweit zur Codierung des Vollbildes oder Bildes benutzt wurden.
-
Nachdem
alle Makroblöcke
in einem Vollbild oder Bild (eine mit NMB bezeichnete
Zahl) verarbeitet worden sind, enthält das Latch 97 die
Summe aller Makroblock-Quantisier-Skalierfaktoren
QMB, die durch den Bitratenregler 49 erzeugt
werden, und das Latch 93 enthält die Summe aller Bit, die
zur Codierung des Bildes oder Vollbildes Xpic benutzt
werden. Der Teiler 98 erzeugt den Quotienten der Summe
aller Makroblock-Quantisier-Skalierfaktoren QMB in
dem Bild oder dem Vollbild, geteilt durch die Anzahl der Makroblöcke in dem
Bild oder Vollbild NMB. Dieser Quotient
ist der mittlere Quantisier-Skalierfaktor Qpic für dieses
Vollbild oder Bild. Der Multiplizierer 94 erzeugt das Produkt
von Qpic und Tpic,
das die Codier-Komplexität
für dieses
Bild (bezeichnet mit Xpic) ist, d.h. Xpic = Tpic · Qpic. Am Ende des Bildes oder Vollbildes wird
das Codier-Komplexitätssignal
Xpic durch ein (nicht dargestelltes) Taktsignal
in das zweite Latch 95 eingeschrieben (latched into). Der
oben beschriebene Zyklus wiederholt sich dann für jedes Vollbild oder Bild
in dem codiert werdenden Videosignal.
-
Die
Coderkomplexität
Xpic wird dann von dem Latch 95 einer
Komplexitäts-Eingangsklemme des I/O-Controllers 34 des
Bitraten-Zuordners 30 (von 4)
zugeführt,
der die übrige
Verarbeitung zur Gewinnung der Codierkomplexität für die GOP bewirkt. Die Codierkomplexität für eine GOP
(bezeichnet mit XGPO) ist die Summe der
Xpic für
alle Bilder in dieser GOP (siehe Gleichung (1)).
-
-
Der μP 31 arbeitet
als ein Akkumulator durch Rückgewinnung
jedes Wertes Xpic von dem I/O-Controller 34 und
durch Summierung dieser über
alle Vollbilder oder Bilder in der GOP.
-
Die
Anzahl der Vollbilder oder Bilder in einer GOP (bezeichnet mit N)
bleibt im Allgemeinen konstant. Während N konstant ist, kann
XGPO berechnet werden auf der Basis eines
gleitenden Fensters durch Addition des Codier-Komplexitätswertes
Xpic des letzten Bildes und durch Subtraktion
des Codier-Komplexitätswertes von
dem ältesten
Bild in der GOP. In diesem Fall ist ein aktualisierter Wert von
XGPO nach jedem Vollbild oder Bild verfügbar. Jedoch
kann N sich ändern.
Wenn N sich ändert,
dann muss XGPO für die neu definierte GOP durch
Summierung der Codier-Komplexitätswerte
Xpic aus der neuen Anzahl von vorangehenden
Bildern in der neu definierten GOP berechnet werden, wie in Gleichung
(1).
-
Wie
oben beschrieben, ist es möglich,
dass verschiedene Kanäle
bei verschiedenen Vollbild- oder Bildraten arbeiten, z.B. der genormten
Video-Vollbildrate (in den USA) von 29,97 Vollbilder je Sekunde,
für Filmbilder
beträgt
sie 24 Vollbilder je Sekunde und für Zeichentrick beträgt sie 15
Vollbilder je Sekunde. Es ist auch möglich, dass verschiedene Kanäle unterschiedliche
Anzahlen von Bildern oder Vollbildern in einer GOP aufweisen. Auf
diese Weise ist es möglich,
dass verschiedene Kanäle
unterschiedliche GOP-Zeitperioden aufweisen. Um unter derartigen
Bedingungen die Bits richtig den Kanälen zuzuordnen, werden die
GOP-Codier-Komplexitätswerte
der mehreren Kanäle
in dem Bitraten-Zuordner 30 durch Teilung der GOP-Komplexitätswerte
von der Gleichung (1) für
jeden Kanal durch die GOP-Zeitperiode des Kanals in der Zeit normiert
(bezeichnet mit GOPtime) (siehe Gleichung
(2)). Die normalisierten oder skalierten GOP-Codier-Komplexitätswerte (bezeichnet
mit XnormGOP) werden dann zur Zuordnung
der Bit unter den verschiedenen Kanälen benutzt.
-
-
Das
Timing der Abtastung der Komplexitätswerte und die Erzeugung der
Quotenwerte für
derartige Systeme werden im Folgenden detaillierter beschrieben.
-
In 5 wird, wie oben beschrieben,
erzeugt für
jeden Makroblock der Bitraten-Regler 49 einen
Quantisierungs-Skalierfaktorsignal QMB für den variablen
Quantisierer 46 und empfängt dann ein Signal von dem Ausgangspuffer 48,
das die Anzahl der Bit TMB anzeigt, die
zur Kodierung des Makroblocks dienen. Diese Signale können alternativ
direkt dem I/O-Controller 34 in dem Bitraten-Zuordner 30 (von 4) zugeführt werden. Der μP 31 kann
dann das richtige Codier-Komplexitätsmaß (von der Gleichung (1) oder
den Gleichungen (1) und (2)) intern berechnen.
-
Außerdem kann,
um die Übertragung
zu vereinfachen, der Codier-Komplexitätswert für jedes Bild Xpic skaliert
werden.
-
In
einer bevorzugten Ausführungsform
wird dieser Wert nach dem Multiplizierer 94 in eine Zahl
mit acht Bit skaliert. Dieser skalierte Wert wird dann dem Bitraten-Zuordner 30 (von 4) zugeführt. Es kann auch für das Computersystem
erwünscht
sein, eine Datei der Bild-Komplexitätswerte Xpic aufrechtzuerhalten, zum
Beispiel in einer (nicht dargestellten) Massenspeichereinheit, aus
anderen Gründen,
wie die Ermöglichung
der Neuberechnung des Codier-Komplexitätswerts in dem Ereignis N sich ändert. Die
Speicherung einer Stunde von Werten mit 8 Bit Xpic erfordert
108 Kilobyte (kB) für
ein genormtes Videosignal und 86 kB für einen Film.
-
In
der folgenden Erläuterung
bezeichnet X' den
derzeitig verfügbaren
geeigneten von entweder XGOP (wenn alle
Kanäle
dieselbe GOP-Zeitperiode aufweisen) oder XnormGOP (wenn
Kanäle
mit unterschiedlichen GOP-Zeitperioden vorliegen) von dem i-ten
Kanalprozessor. Der Bitraten-Zuordner 30 (von 1) erzeugt jeweilige Quotensignale
(Q), die die Zuordnungen der verfügbaren Bit in der Übertragungsstrecke
für die
nächste
Quotenperiode aufgrund der Codier-Komplexitätswerte X' von allen K Kanalprozessoren, die die
mehreren Kanalprozessoren 10 bilden. Die vorbestimmte Übertragungsstrecken-Bitrate
von der Ausgangsklemme des Multiplexers 20 (von 1) (bezeichnet mit R) wird
unter den mehreren Kanalprozessoren 10 zugeord net, so dass
der i-te Kanalprozessor eine mit R' bezeichnete Bitraten-Zuordnung empfängt.
-
Ein
Verfahren zur Zuordnung der Bitraten in der Übertragungsstrecke zu den verschiedenen
Kanälen ist
eine lineare Zuordnung aufgrund der laufenden verfügbaren Codierkomplexität X' der vorangehenden GOP-Periode
(auf der Basis eines gleitenden Fensters, wie oben beschrieben)
für alle
der mehreren Kanalprozessoren 10 (von 1). In diesem Verfahren empfängt jeder
Prozessor i denselben Anteil R' der
gesamten Bit-Kapazität
R, da die Codierkomplexität
dieses Coders X' zu
der gesamten Codierkomplexität
aller Coder beiträgt.
(Siehe Gleichung (3)). Jedoch wurde herausgefunden, dass es eine
niedrigere Bitraten-Zuordnung gibt, unterhalb der die Qualität eines
wiedergegebenen Bildes wahrnehmbar oder erkennbar abnimmt.
-
-
Zusätzlich sind
in der dargestellten Ausführungsform
die Bitraten-Zuordnungen für
die nächste
Quotenperiode abhängig
von den Komplexitätswerten
aus der vorangehenden GOP. Wenn dort ein Szenenwechsel von einem
einfachen Bild zu einem komplexen Bild auftritt, können ausreichend
Bit zur Codierung der neuen, komplexen Szene zugeordnet werden,
da die Zuordnung für
die neue Szene auf der vorangehenden einfachen Szene basierte.
-
Ein
alternatives Verfahren zur Zuordnung der Bitraten in der Übertragungsstrecke
zu verschiedenen Kanälen
garantiert eine minimale Bitraten-Zuordnung RG' zu jedem Coder i und ordnet die übrigen Bit
linear zu, wie in Gleichung (3). (Siehe Gleichung (4)).
-
-
Jeder
Kanal kann eine andere garantierte minimale Bitrate aufweisen, abhängig von
der vorangehenden Gesamtkomplexität des Videosignals, das über den
Kanal und/oder das Pricing des Kanals zu den Anbietern des Videokanals.
-
Ein
weiteres alternatives Verfahren zur Zuordnung der Bit in der Übertragungsstrecke
zu verschiedenen Kanälen
bildet einen Wichtungsfaktor P' für jeden
Coder i und bewirkt eine Zuordnung der Bit proportional zu den Codier-Komplexitätswerten
X', gewichtet durch
die Wichtungsfaktoren P'.
(Siehe Gleichung (5)). Wie in dem Verfahren zur Garantie einer minimalen
Zuordnung nach Gleichung (4) können
die Wichtungsfaktoren P' von
den vorangehenden oder von der zurückliegenden Gesamtkomplexität des Videosignals
abhängig
sein, das über
den Kanal und/oder das Pricing des Kanals zu dem Anbieter der Videosignale übertragen
wird.
-
-
Ein
bevorzugtes Verfahren für
die Bitzuordnung in der Übertragungsstrecke
zu verschiedenen Kanälen
ist eine Kombination des Verfahrens mit der gewichteten Zuordnung
der Gleichung (5) und dem Verfahren mit der garantierten minimalen
Zuordnung der Gleichung (4). In diesem Verfahren wird jedem Kanal
eine minimale Zuordnung garantiert, und die übrigen Bit werden auf einer
Basis mit gewichteten Anteilen zugeordnet. (s. Gleichung (6)).
-
-
Wie
oben, können
die garantierte minimale Zuordnung und die Wichtungsfaktoren abhängig sein
von der vorangehenden Gesamtkomplexität des über den Kanal übertragenen
Videosignals und/oder dem Pricing des Kanals zu dem Anbieter der
Videosignale.
-
Es
ist möglich,
die Bit-Zuordnungen R' aufgrund
der anderen Parameter des Systems weiter zu verfeinern. Z.B. wurde
herausgefunden, dass es einen oberen Bitraten-Zuordnungswert gibt,
oberhalb dessen keine Verbesserung in der Qualität des wiedergegebenen Bildes
sichtbar ist. Daher ist eine Zuordnung der Bit über diesen oberen Zuordnungswert
hinaus eine Vergeudung von Bit in der Übertragungsstrecke. Ebenso kann
der Operateur der Übertragungsstrecke
eine maximale Bitraten- Zuordnung
Rmax (die den Wert der Zuordnung der oberen
Bitrate angibt) und/oder eine minimale Bitraten-Zuordnung Rmin für
jeden Kanal aufweisen.
-
Zusätzlich kann,
um das Potential für
die Steuerschwingungen für
die Bitrate zu minimieren und damit die Bitraten-Steuerstabilität zu erhöhen, ein
maximales Inkrement der Zunahme α und/oder
der Abnahme β in der
Bitraten-Zuordnung in einer Quotenperiode zu der nächsten für einen
Kanal angewendet werden. Wie oben, sind die Werte der oberen Bitraten-Zuordnung,
die maximalen und minimalen Bitraten-Zuordnungen und maximale Inkrementierungen
der Zunahme und der Abnahme für
die verschiedenen Kanäle
sein und können abhängig sein
von der vorangehenden Gesamtkomplexität des Videosignals, das über diesen
Kanal und/oder das Pricing des Kanals dem Anbieter der Videosignale übertragen
werden soll. Zusätzlich
ist es für
die maximalen und minimalen Inkremente der Zunahme und Abnahme möglich, das
Maß der
Leerheit oder Füllung
der Puffer in dem Kanal zu ändern.
-
Außerdem können die
zugeordneten Bitraten weiter verfeinert werden, um eine Puffer-Verwaltung
zu bilden, z.B. zu bewirken, dass die Ausgangspuffer 48 der
CBR-Coder 10 (von 1) und die Eingangspuffer der
entsprechenden Empfängerdecoder
(nicht dargestellt) nicht überlaufen
oder unterlaufen. Eine explizite Pufferverwaltung ist nicht notwendig,
wenn die Coderpuffergröße E gesteuert
wird, wie in der Ungleichung (7) dargestellt ist, wobei
D die feste Decoderpuffergröße ist.
-
-
Wenn
die Coderpuffergröße gemäß der Ungleichung
(7) gewählt
wird, kann sich die Bitraten-Zuordnung von Rmin bis
Rmax ändern,
ohne dass ein Überlaufen
oder Unterlaufen in jedem der Coder- oder Decoderpuffer entsteht.
Jedoch begrenzt dieses Verfahren unnötig die Größe der Coderpuffer und begrenzt
somit unnötig
die Raten-Steuerflexibilität.
-
Ein
alternatives Pufterverwaltungsschema ist adaptiv und benutzt die
laufenden, augenblicklichen Bitraten für die Pufferverwaltung und
nicht die festen Parameter Rm in und
Rmax. Da die Decoderpuffergröße so gewählt wurde,
dass sie Daten verarbeiten kann, die bei den höchsten Raten Rmax übertragen
werden, kann die Bitraten-Zuordnung
immer erhöht
werden (auf das Systemmaximum Rmax), ohne
dass der Decoderpuffer überläuft. Jedoch
gibt es eine augenblickliche, minimale Bitrate, die aufrechterhalten
werden muss, um zu bewirken, dass die bereits in dem Coderpuffer
enthaltenen Daten vor ihren Decodierzeiten zu dem Decoderpuffer übertragen
werden. Daher muss eine minimale Bitratenzuordnung, damit der Puffer
nicht überläuft, dynamisch berechnet
werden.
-
Bei
der dynamischen Berechnung dieser minimalen Bitraten-Zuordnung müssen, wenn
die Bitraten-Zuordnung abnimmt, sowohl eine neue ermittelte Coderpuffergröße und die
Datenmenge, die bereits in einem vorangehenden Zeitbetrag in dem
Coderpuffer enthalten ist, berücksichtigt
werden. Die neu ermittelte Coderpuffergröße für das Vollbild n, bezeichnet
mit En, wird entsprechend der Gleichung
(8) ermittelt, in der Δ die Systemverzögerungszeit
ist, die eine konstante Zeitverzögerung
zwischen den Zeitpunkten, wenn ein Videovollbild beim Coder ankommt,
und wenn dieses Vollbild beim Decoder wiedergegeben wird.
-
-
D
ist die feste Decoderpuffergröße, und
Rnew ist die neu vorgeschlagene Bitraten-Zuordnung. Diese Puffergröße bewirkt,
dass im eingeschwungenen Zustand die neue Bitraten-Zuordnung kein Überlaufen
oder Unterlaufen in den Coder- und Decoderpuffern auftritt.
-
Jedoch
gibt es, wie oben beschrieben, wenn die neu vorgeschlagene Bitraten-Zuordnung abgenommen
hat, eine Übergangsperiode
gleich der Systemverzögerungszeit Δ, in der
zu viele Bit, die bereits in dem Coderpuffer erfolgreich bei der
neuen niedrigeren Rate erfolgreich übertragen werden. Ein vorgeschlagenes Verfahren
zur Verfeinerung der neu vorgeschlagenen Bitraten-Zuordnung besteht
darin, zuerst die Anzahl der Bit zu prüfen, die mit e bezeichnet und
tatsächlich
in den Coderpuffer enthalten sind, bezeichnet mit e, die tatsächlich in
den Coderpuffer eingegeben wurden (Pufferfüllung) für die Anzahl von vorangehenden
Vollbildern in der Systemverzögerungszeit Δ, bezeichnet
mit T. Dann wird die Zahl für
die maximale Pufferfüllung
für die vorangehenden
T Halbbilder (bezeichnet mit emax,r) mit
der neu bestimmten Coderpuffergröße En von der Gleichung (8) verglichen. Die minimal
re duzierte Bitraten-Zuordnung Rreduced für den Kanal
i, die garantiert, dass alle Bit von dem vorangehenden T Vollbildern
erfolgreich zu dem Empfängerdecoder übertragen
werden, ist dann in der Gleichung (9) angegeben.
-
-
Wenn
derartige Grenzen in einem Multiplexersystem auferlegt werden, werden,
nachdem den Bitraten-Zuordnungen gemäß den Gleichungen (3), (4),
(5) oder (6) berechnet worden sind, diese Bitraten-Zuordnungen geprüft, um zu
ermitteln, ob sie in die laufenden und in die oberen und unteren
Grenzen für
diesen Kanal fallen. Zunächst
werden die obere und die untere Grenze für jeden Kanal i ermittelt.
Die obere Grenze der Bitraten-Zuordnung für jede Quotenperiode k (bezeichnet
mir R'upper[k])
ist das Minimum von: die maximal erlaubte, erhöhte Zuordnung über die
vorangehende Quotenperiode k–1
und der Grenze der maximalen Bitraten-Zuordnung (siehe Gleichung
(10)).
-
-
Die
untere Grenze der Bit-Zuordnung für jede Quotenperiode k, R'lower[k]
ist das Maximum von: der Grenze der minimalen Bitraten-Zuordnung,
die minimal erlaubte verringerte Zuordnung über die vorangehende Quoten-Periode
k–1 und
die minimale pufferverwaltungsreduzierte Bitraten-Zuordnung von
der Gleichung (9). (Siehe Gleichung (11)). Dann erfolgen Einstellungen
in den Bitraten-Zuordnungen für
die Kanäle.
-
-
Wenn
die zugeordnete Bitrate für
einen Kanal einen Grenzwert übersteigt,
dann wird die Bitraten-Zuordnung für diesen Kanal so eingestellt,
dass der Begrenzungswert und die verfügbare verbleibenden Bitrate unter
den anderen Kanälen
neu zugeordnet wird. Wenn z.B. die einem Kanal i zugeordnete Bitrate,
wie in der Gleichung (3), (4), (5) und (6) berechnet, größer ist
als die Obergrenze für
diesen Kanal, wie be rechnet in der Gleichung (10), dann wird die
Bitrate für
den Kanal i auf die obere Grenze R'upper eingestellt.
Wenn andererseits die Bitrate kleiner ist als die untere, in der
Gleichung (11) berechnete Grenze, dann wird die Bitrate auf diese untere
Grenze R'lower eingestellt. (Siehe Gleichung (12)).
-
-
Wenn
eine der Bitraten-Zuordnungen durch die Begrenzungsvorgänge der
Gleichungen (10), (11) und (12) geändert wird, dann wird die verbleibende
verfügbare
Bitrate unter den nicht-begrentzten Kanälen gemäß der Gleichung (3), (4), (5)
oder (6) neu zugeordnet. Dann werden diese Kanäle wieder gegenüber den
Grenzen in den Gleichungen (10), (11) und (12) geprüft. Dieser
Zyklus wird wiederholt, bis alle Bitraten-Zuordnungen abgeschlossen
sind. In der obigen Ausführungsform
ist die Codier-Komplexitätsperiode
die GP-Periode, bestimmt Bild für
Bild auf der Grundlage eines gleitenden Fensters mit einer ausreichenden
Dauer, dass Änderungen
in den Bitraten-Zuordnungen in einem Kanal von einer Quotenperiode
zu der nächsten
im Allgemeinen relativ klein sein sollten. Infolgedessen sollten
die Gleichungen (10), (11) und (12) nur selten angewendet werden.
-
Das
Timing der Codierkomplexitäts-Abtastung
und Erzeugung von aktualisierten Bitratenquoten auf Grund der Codierkomplexitäten werden
komplizierter, wenn die Kanäle
mit unterschiedlichen GOP-Zeitperioden arbeiten. Es gibt jedoch
Bemühungen,
die in dieser Lage eine genaue Codierkomplexitäts-Abtastung und Bitraten-Quotenzuordnungen
enthalten. In einer ersten Lösung
wird eine konstante Quoten-Aktualisierungsperiode
in einer derartigen Weise berechnet, dass jeder Kanal eine gleiche
Zahl von Quoten-Aktualisierungsperioden in jeder GOP aufweist. In
dieser Lösung
kann sich die Anzahl der Abtast- und Quotenaktualisierungsperioden
je GOP von Kanal zu Kanal ändern,
jedoch bleibt die Anzahl derartiger Abtast- und Quoten-Aktualisierungsperioden
innerhalb einer GOP konstant. In einer zweiten Lösung wird eine Abtastung genommen,
und eine neue Zuordnung immer dann erzeugt, wenn ein Kanal eine
neue GOP beginnt und die Anzahl der Bit, die in dieser neuen Perio de
zugeordnet werden, wird berechnet unter Berücksichtigung der Länge der
Zeitperiode von der vorausgehenden Abtastung zu der laufenden Abtastung.
Eine dritte Lösung
ist eine Abwandlung der dritten Lösung, in der ein Abtastwert
und eine neue Zuordnung abhängig
von dem Quoten-Aktualisierungs-Steuersignal genommen wird. Das Timing
des Quoten-Aktualisierungs-Steuersignals, wie oben beschrieben,
ist willkürlich,
vorausgesetzt dass sie keine Aktualisierungen mehr als ein Mal je
Bild oder Vollbild in einem der Kanäle durchführt. In der dritten Lösung wird
die Anzahl der in der neuen Quote zugeordneten Bit berechnet unter
Berücksichtigung
der Länge
der Zeitperiode von der vorangehenden Abtastung zu der laufenden
Abtastung.
-
7 ist ein Zeitdiagramm und
zeigt die Abtastung und Quoten-Aktualisierungen in einem die erste Lösung benutzenden
System. Zur Vereinfachung der Zeichnung sind nur zwei Kanäle dargestellt.
In 7 ist der Kanal 1 ein
Beispiel eines ein Standardvideosignal übertragenden Kanals mit einer
Vollbildrate von ungefähr
30 Vollbildern je Sekunde (in den USA). Kanal 2 ist ein
Beispiel eines Kanals, der einen Film mit einer Vollbildrate von
24 Vollbildern je Sekunde überträgt. Es wird
angenommen, dass jeder der Kanäle 12 Vollbilder je
GOP aufweist. Der Kanal 1 beginnt somit eine neue GOP jede
0,4 Sekunden oder 2,5 GOPs je Sekunde, während Kanal 2 eine
neue GOP jede 0,5 Sekunden oder 2 GOPs je Sekunde beginnt. Die gewählte Abtastrate
beträgt
eine Abtastung jede 0,1 Sekunden. Somit gibt es im Kanal 1 vier
Abtast- und Quotenaktualisierungen in jeder GOP, und im Kanal 2 gibt
es fünf
Abtast- und Quotenaktualisierungen
in jeder GOP. Die Abtastzeiten ts sind durch
vertikale, gestrichelte Linien dargestellt.
-
Da
die Zeitperiode zwischen zwei Abtastungen Δt konstant ist (0,1 Sekunden),
können
die Bitraten-Zuordnungen R' von
den Gleichungen (3) bis (12) ausgedrückt werden als die Zahl der
zugeordneten Bit, bezeichnet mit C' , die das Produkt der Bitraten-Quote
R' und der konstanten
Abtastperiode Δt
ist, d.h. C'=R'Δt, oder die Bitraten-Quoten R' können unverändert benutzt
werden. Diese Bitraten-Zuordnungen können akkumuliert und in den
Kanalprozessoren 10 (von 1)
gemäß dem bekannten
Schema benutzt werden, das allgemein mit "token and leaky bucket"-Schema bezeichnet
wird.
-
8 ist ein Zeitdiagramm und
zeigt die Abtastung der Codier-Komplexitätswerte und die Quoten-Aktualisierung
in einem System, das die oben beschriebene zweite Lösung benutzt.
Die in 8 dargestellten jeweiligen
Kanäle übertragen
dieselben Signale wie in 7.
In 8 werden Abtastungen
der laufenden Codier-Komplexitätswerte
von allen Kanälen
genommen, immer wenn ein Kanal eine neue GOP beginnt. Neue Zuordnungen
werden auf Grund der Werte dieser Abtastungen erzeugt, und die Zeitperiode Δt wird seit
der letzten Abtastung erzeugt. Diese Abtastzeiten sind in 8 als vertikale gestrichelte
Linien t1 – t8
dargestellt, wo t2, t3, t4, t6 und t8 den Startpunkten der GOPs
im Kanal 1 und t1, t3, t5, und t7 den Startpunkten der GOPs im Kanal
2 entsprechen. Obwohl t3 eine Abtastzeit entsprechend den Startpunkten
der GOPs in beiden Kanälen
1 und 2 darstellt, gibt es keine Forderung, dass eine derartige
Zeit auftritt.
-
Bei
jeder Abtastzeit werden die laufenden Codier-Komplexitätswerte
(von der vorangehenden GOP, verfügbar
Bild für
Bild auf Grund eines gleitenden Fensters) in allen Kanälen abgetastet.
Die Gleichungen (3) bis (12) können
benutzt zur Berechnung der Anteile der nächsten Bitratenquoten werden,
jedoch muss in der Bestimmung der tatsächlichen Zahl von verfügbaren zuzuordnenden
Bit, der Betrag der Zeit Δt
seit der letzten Abtastung berücksichtigt
werden. Für
eine geeignete Kompensation der unterschiedlichen Abtastperioden wird
die insgesamt verfügbare
Bitrate R in den Gleichungen (3) bis (12) durch die Anzahl der für die Abtastung verfügbaren Bit,
bezeichnet mit C, ersetzt, die das Produkt der insgesamt verfügbaren Bitrate
R und der Abtastperiode Δt
ist, d.h. C=R Δt.
Die Anzahl der durch die Gleichungen (3) bis (12) berechneten Bit
wird dann den jeweiligen Kanalprozessoren 10 (von 1) zugeordnet, die, wie
oben, das genannte "token
and leaky bucket"-Schema
zur Ackumulation und Benutzung der zugeordneten Bit benutzt.
-
9 ist ein Zeitdiagramm und
zeigt die Abtastung der Codier-Komplexitätswerte und der Quoten-Aktualisierung
in einem System, das die oben beschrieben dritte Lösung benutzt.
Die jeweiligen in 9 dargestellten
Kanäle übertragen
dieselben Signale wie in den 7 und 8. In 9 werden die Abtastungen der laufenden
Codier-Komplexitätswerte
von allen Kanälen
zu willkürlichen
Zeiten genommen, die z.B. durch ein Quoten-Aktualisierungssignal
gesteuert wird, das von dem Multiplexer 20 (von 1) geliefert wird. Es werden neue
Zuordnungen erzeugt auf Grund der Werte dieser Abtastungen und der
Zeitperiode seit der letzten Abtastung. Diese Abtastzeiten sind
in 9 als vertikale,
gestrichelte Linien t1 – t4
dargestellt. Wenngleich sie in 9 mit
einer konstanten Zeitperiode Δt
dargestellt sind, so ist dies keine Forderung. Die Quoten-Aktualisierungs-Zeitperiode
kann konstant bleiben oder von einer Periode zu einer anderen über die
Zeit verschoben werden oder kann vollständig willkürlich sein, vorausgesetzt,
dass das Zeitintervall zwischen den Quoten-Aktualisierungssignalen länger ist
als die kürzeste
Vollbildperiode aller Kanäle,
so dass kein Kanal zwei Quoten-Aktualisierungen innerhalb einer
einzigen Bild- oder Vollbildperiode empfängt (wie oben beschrieben).
In einer bevorzugten Ausführungsform
wird jedoch die Quoten-Aktualisierungsperiode über relativ lange Zeitperioden
konstant bleiben.
-
Bei
jeder Abtastzeit werden die laufenden Codier-Komplexitätswerte
(von der vorangehenden GOP, verfügbar
Bild für
Bild auf der Grundlage eines gleitenden Fensters) in allen Kanälen abgetastet.
Wie oben, können
die Gleichungen (3) bis (12) dazu dienen, die Anteile der nächsten Bitratenquoten
zu berechnen, wo der Betrag der Zeit Δt seit dem letzten Abtastwert
berücksichtigt
und die gesamte verfügbare
Bitrate R durch die Anzahl der für
die Zuordnung verfügbaren
Bit C=R Δt
ersetzt wird. Die Anzahl der Bit, die durch die Gleichungen (3)
bis (12) berechnet werden, wird dann den jeweiligen Kanalprozessoren 10 (von 1) zugeordnet, die, wie
oben, das genannte "token
and leaky bucket"-Schema
zur Akkumulation und die zugeordneten Bit benutzen. Jede der obigen
Lösungen
wird eine genaue Zuordnung der Bitraten zu den jeweiligen Kanalprozessoren 10 vornehmen,
wenn die Videosignale von den verschiedenen Kanälen 5 unterschiedliche GOP-Zeitperioden
aufweisen.
-
Das
Timing der Abtastung der Codier-Komplexitätswerte und die Erzeugung der
aktualisierten Bitraten-Quoten für
die unterschiedlichen Kanäle
können
vereinfacht werden, wenn alle Kanäle bei derselben Vollbildrate
arbeiten und dieselbe Zahl von Vollbildern in einer GOP aufweisen,
d.h. alle Kanäle
dieselbe GOP-Zeitperiode aufweisen, GOPtime. 6 ist ein Zeitdiagramm und
zeigt die Codier-Komplexitätsabtastung
und das Quoten-Aktualisierungs-Timing in einem derartigen System.
In 6 entspricht jede
horizontale Zeile einem jeweiligen Kanal 1–K. Die kurzen, vertikalen,
von den horizontalen Linien nach oben gerichteten Linien stellen die
Zeit dar, wenn die Codierung eines I-Vollbildes für diesen
Kanal begonnen hat, was angesehen wird als der Beginn einer GOP
für diesen
Kanal. Die Zeitperiode für
eine GOP, GOPtime, ist in allen Kanälen gleich,
jedoch sind, wie ersichtlich ist, die Anfangszeiten der GOPs für die jeweiligen
Kanäle
unterschiedlich. Es wurde tatsächlich
als wünschenswert
erkannt, unterschiedliche Startzeiten für die GOPs für die jeweiligen
Kanäle
anzuwenden, so dass die Codierung der I-Halbbilder keine Überlappung
bildet. Das erhöht
die Komplexitäts-Änderungen über die
verschiedenen Kanäle.
-
Es
wurde herausgefunden, dass, solange dieselbe Zahl von I-Vollbildern,
P-Vollbilder und
B-Vollbilder in der Berechnung des Codier-Komplexitätswertes
berücksichtigt
wird, es nicht schadet, dass diese Halbbilder von unterschiedlichen
GOPs kommen. Somit kann, wie es durch die starken Linien, die sich über die
Zeitachsen aller Kanäle
erstrecken, eine Codier-Komplexitätswert-Abtastung gleichzeitig
von allen Kanälen
bei jeder Zeit innerhalb einer GOP genommen werden kann. Aktualisierungen
der Bitraten-Quoten für
alle Kanäle
können
dann von dieser Abtastung erzeugt und zu den Kanalprozessoren 10 (von 1) zurückübertragen werden.
-
Das
obige Multiplexersystem wurde als ein zugeordnetes System beschrieben.
Jedoch können
die mehreren Kanalprozessoren 10 an Stellen liegen, die
von dem Bitraten-Zuordner 30 und dem Multiplexer 20 entfernt
sind. In einem derartigen System würden Kommunikations-Verbindungen
zwischen den Codern und dem Bitraten-Zuordner gebildet. In diesem Fall kann
ein Teil der Bit, die zwischen dem Prozessor 10 und dem Multiplexer übertragen
werden, der Übertragung
der Komplexitätsinformationen
von den Prozessoren gewidmet sein.