-
ALLGEMEINER STAND DER TECHNIK
-
Die
vorliegende Erfindung bezieht sich auf einen statistischen Multiplexer
zum Codieren und Multiplexen von mehreren Kanälen digitaler Fernsehdaten.
-
Digitales
Fernsehen ist aufgrund der hohen Qualität des von ihm bereitgestellten
Videobildes, zusammen mit seinen Informations- und Unterhaltungsfunktionen,
wie etwa Gebührenfernsehen,
elektronischen Programmführern,
Videoabruf, Börsen-,
Wetter- und Börseninformationen,
Internet-Hyperlinks und so weiter, zunehmend beliebter geworden.
Derartige Fernsehdaten können
zum Beispiel über
ein Breitbandkommunikationsnetz wie etwa ein Satelliten- oder Kabelfernsehnetz
oder über
ein Computernetz an einen Benutzer übermittelt werden.
-
Aufgrund
von Bandbreitenbeschränkungen
des Kommunikationskanals ist es jedoch notwendig, eine Bitrate der
digitalen Videoprogramme, die verschlüsselt und zur Übertragung
in einem komprimierten Bitstrom gemultiplext werden, anzupassen.
Ein Ziel einer derartigen Bitratenanpassung ist es, die Einschränkung der Gesamtbitrate
des gemultiplexten Stroms einzuhalten, während außerdem für jedes Programm eine zufriedenstellende
Videoqualität
beibehalten wird.
-
Demgemäß sind verschiedene
Arten von statistischen Multiplexern entwickelt worden, die statistische Informationen
des Quellvideos, das verschlüsselt
wird, evaluieren und Bits zum Codieren der verschiedenen Videokanäle entsprechend
zuweisen. Zum Beispiel können
Videokanälen,
die ein nur schwer komprimierbares Video wie etwa eine Szene mit
schneller Bewegung enthalten, mehr Bits zugewiesen werden, während Kanälen mit
relativ leicht komprimierbaren Szenen wie etwa Szenen mit geringer
Bewegung weniger Bits zugewiesen werden können.
-
US 5,793,425 offenbart ein Übertragungssystem
für gemultiplexte
Daten, das eine Vielzahl von Verschlüsselern umfasst, die jeweils
einen Dateneingang, welcher an ein jeweiliges Datensignal einer
Vielzahl von Datensignalen gekoppelt ist, einen Steuerungseingang
und einen Verschlüsselereingang
aufweisen. Des Weiteren wird ein Multiplexer bereitgestellt, der
eine Vielzahl von Multiplexereingängen, welche an jeweilige Verschlüsselerausgänge gekoppelt
sind, und einen Multiplexerausgang, der an ein übertragendes Ende einer Datenübertragung
gekoppelt ist, aufweist. Eine Steuereinheit zum Produzieren von
Steuerungssignalen gemäß dem Steuerungsalgorithmus
wird bereitgestellt, wobei die Steuerungssignale zum dynamischen
Steuern von mindestens zwei Verschlüsselungsparametern der Verschlüsseler an
den Steuerungseingang der jeweiligen Verschlüsseler gekoppelt werden, wobei
ein erster der Verschlüsselungsparameter
eine Ausgangsbitrate jedes der Verschlüsseler ist.
-
Es
besteht jedoch ein Bedarf an einem verbesserten statistischen Multiplexsystem.
Ein derartiges System sollte eine Anzahl von individuellen Verschlüsselern
einsetzen, die Daten von einer Anzahl von eingehenden Kanälen von
Quellvideodaten verschlüsseln.
Diese Daten können
aus einem Speicherungsmedium, einer Livespeisung oder dergleichen
erhalten werden.
-
Das
System sollte den individuellen Verschlüsselern dynamisch Bits zuweisen,
um Vollbilder von Videodaten von den Kanälen zu verschlüsseln.
-
Das
System sollte zwischen einer Zuweisung der Verschlüsselungsbitrate
und einer Zuweisung der Übertragungsbitrate
unterscheiden.
-
Das
System sollte jedem Videokanal eine Übertragungsbitrate zuteilen,
um eine Nichtübereinstimmung
zwischen den Eingangs- und
den Ausgangsbits eines modellierten Decodiererpuffers zu verhindern.
-
Des
Weiteren sollte das System auf bevorstehende Ereignisse eines Überlaufs
oder Unterlaufs des Decodiererpuffers überprüfen, um eine Mindest- und Höchstgrenze
der Übertragungsbitrate
festzusetzen. Diese Grenzen sollten auf der Basis dessen, ob eine
neue Übertragungsbitrate
vor dem Decodierungszeitstempel (DTS) des aktuellen oder nächsten Vollbildes
umgesetzt werden kann, festgesetzt werden.
-
Das
System sollte mit im Wesentlichen jeder Art von Videodaten, einschließlich hochauflösendem (HD)
und normal auflösendem
(SD) Fernsehen (TV) verwendbar sein.
-
Die
vorliegende Erfindung stellt ein System mit den obigen und weiteren
Vorteilen bereit.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die
vorliegende Erfindung, die in ihren weitesten Aspekten in den Patentansprüchen 1 und
13 definiert ist, betrifft einen statistischen Multiplexer zum Codieren
und Multiplexen von mehreren Kanälen
digitaler Fernsehdaten.
-
Bandbreite
wird zwischedn einer Anzahl von Videodienstleistungen mit variabler
Bitrate (VBR), die gemultiplext werden, um einen Transportbitstrom
mit fester Bitrate zu formen, zugewiesen.
-
Im
Besonderen wird eine Übertragungsbitrate
berechnet, indem eine Verschlüsselungsbitrate
um einen Betrag verzögert
wird, der gleich einer Systemverzögerung ist. Auf die Übertragungsbitrate
werden eine obere Begrenzung (max) und eine untere Begrenzung (min)
gesetzt, um den Decodiererpuffer zu schützen.
-
Das
Stat-Mux-System umfasst drei distinkte Teile:
- 1)
Für jeden
Videokanal werden die Sammlung von optischen Merkmalen und Komplexitätsinformationen für individuelle
Videokanäle
und ein Bedarfsparameter erzeugt, um anzugeben, wie schwierig es
ist, diesen Kanal zu komprimieren. Dieser Prozess wird einmal pro
Vollbild wiederholt und von den individuellen Einzelkanalverschlüsselern
(die SD und/oder HD sein können)
vorgenommen.
- 2) Die aktuellsten Bedarfsparameter von allen Videokanälen werden
von einem Quantisierungsniveauprozessor (QLP) oder Ratensteuerungsprozessor
gesammelt. Der Ratensteuerungsprozessor teilt jedem Videokanal eine
Verschlüsselungsbandbreite
in der Form einer Verschlüsselungsbitrate
zu. Jeder Kanal empfängt
auf der Basis seines Bedarfsparameters im Verhältnis zu den Bedürfnissen
aller anderen Kanäle
eine andere Verschlüsselungsbitrate.
Die Verschlüsselungsbitrate
wird verwendet, um die Videoverschlüsselung individueller Kanäle zu steuern.
Der Ratensteuerungsprozessor teilt den Kanälen außerdem Übertragungsbitraten zu, die
bestimmen, wie viele Bits von jedem Videokanal an einen Decodierer
gesendet werden.
- 3) Der Einzelkanalverschlüsseler
verwendet die Verschlüsselungsbitrate,
die ihm gegeben wurde, um eine Videokompression durchzuführen. Die
Hauptaufgabe hierbei ist eine Ratensteuerungsfunktion, die das Verwenden
der Verschlüsselungsbitrate
und der relativen Komplexität
von unterschiedlichen Vollbildarten (d. h. I-, B- und P-Arten) zum
Zuteilen eines Zielbitbudgets für
jedes Vollbild, das er verschlüsseln
soll, involviert.
-
Ein
besonderes Verfahren zum Verarbeiten einer Vielzahl von Kanälen in einem
statistischen Multiplexer umfasst die folgenden Schritte: Zuweisen
einer Verschlüsselungsbitrate
zum Codieren eines aktuellen Bildes jedes Kanals gemäß einem
Bitratenbedarfsparameter davon, und Zuweisen einer Übertragungsbitrate zum Übertragen
des aktuellen Bildes jedes Kanals nach dessen Verschlüsselung.
Für jeden
Kanal wird die Übertragungsbitrate
gemäß der Verschlüsselungsbitrate
des Kanals zugewiesen, nach der Zuweisung der Verschlüsselungsbitrate
an den Kanal und im Anschluss an eine Systemverzögerung eines modellierte Puffers
eines Decodierers, um eine Nichtübereinstimmung
der Raten zwischen einem Eingang und einem Ausgang des modellierten
Decodiererpuffers zu minimieren.
-
Des
Weiteren werden Mindest- und Höchstgrenzen
für die Übertragungsbitrate
bereitgestellt, um einen potenziellen Überlauf oder Unterlauf eines
modellierten Decodiererpuffers zu vermeiden. Diese Grenzen berücksichtigen
eine Verzögerung
beim Umsetzen einer neuen Bitrate, und sie berücksichtigen auch, ob die neue
Bitrate vor der Decodierungszeit des aktuellen Bildes, des nächsten Bildes
und/oder des übernächsten Bildes
umgesetzt werden kann.
-
Es
ist zu beachten, dass die Bilder z. B. Vollbilder oder Halbbilder
sein können.
-
Auch
wird eine entsprechende Vorrichtung geboten.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 veranschaulicht
ein statistisch gemultiplextes Mehrkanal-Verschlüsselungssystem zur Verwendung
gemäß der vorliegenden
Erfindung.
-
2 veranschaulicht
einen Verschlüsseler
für normal
auflösende
Fernsehdaten zur Verwendung gemäß der vorliegenden
Erfindung.
-
3 veranschaulicht
einen Verschlüsseler
für hochauflösende Fernsehdaten
zur Verwendung gemäß der vorliegenden
Erfindung.
-
4(a) veranschaulicht eine Zeitleiste, bei der
gemäß der vorliegenden
Erfindung eine neue maximale Übertragungsbitrate
vor dem Decodierungszeitstempel (DTS) des nächsten Vollbildes umgesetzt
werden kann.
-
4(b) veranschaulicht eine Zeitleiste, bei der
gemäß der vorliegenden
Erfindung eine neue maximale Übertragungsbitrate
nicht vor dem Decodierungszeitstempel (DTS) des nächsten Vollbildes
umgesetzt werden kann.
-
4(c) veranschaulicht eine Zeitleiste, bei der
gemäß der vorliegenden
Erfindung eine neue minimale Übertragungsbitrate
vor dem Decodierungszeitstempel (DTS) des aktuellen Vollbildes umgesetzt
werden kann.
-
4(d) veranschaulicht eine Zeitleiste, bei der
gemäß der vorliegenden
Erfindung eine neue minimale Übertragungsbitrate
nicht vor dem Decodierungszeitstempel (DTS) des aktuellen Vollbildes
umgesetzt werden kann.
-
5 veranschaulicht ein Verfahren zum Festsetzen
von Mindest- und
Höchstgrenzen
einer Übertragungsbitrate
gemäß der vorliegenden
Erfindung.
-
DETAILLIERTE BESCHREIBUNG
DER ERFINDUNG
-
Die
vorliegende Erfindung bezieht sich auf einen statistischen Multiplexer
zum Codieren und Multiplexen von mehreren Kanälen digitaler Fernsehdaten.
-
1 veranschaulicht
ein statistisch gemultiplextes Mehrkanal-Verschlüsselungssystem zur Verwendung
gemäß der vorliegenden
Erfindung.
-
Das
Verschlüsselungssystem 100 umfasst
L Puffer-/Bedarfsparameter-Berechnungsfunktionen 102, 104,..., 106,
die entsprechende unkomprimierte Quellvideoeingänge empfangen. Die Funktionen 102, 104,..., 106 stellen
die Bedarfsparameterdaten einem Ratensteuerungsprozessor 125 bereit,
der wiederum jedem der Verschlüsseler 112, 114,..., 116 eine
entsprechende Zuweisung der Verschlüsselungsbitrate bereitstellt.
Die Verschlüsseler
können
dem Ratensteuerungsprozessor bezüglich
der tatsächlichen
Verschlüsselungsbitrate Rückkopplungsinformationen
bereitstellen. Die verschlüsselten
Daten werden einem Mux 120 bereitgestellt, um einen gemultiplexten
Bitstrom bereitzustellen, dann einem Transportpaketpuffer 130 und
einem Sender 135 zur Übertragung über einen
Kanal.
-
Der
Ratensteuerungsprozessor 125 kann ein Füllungsgradsignal von dem Transportpaketpuffer 130 empfangen.
-
An
einer Decodierungsstelle 180 sind ein Empfänger 182,
ein Decodiererpuffer 184, ein Demux 186 und ein
Decodierer 188 bereitgestellt, um ein decodiertes Videosignal
auszugeben, z. B. zur Anzeige auf einem Fernseher.
-
2 veranschaulicht
einen Verschlüsseler
für normal
auflösendes
Fernsehen zur Verwendung gemäß der vorliegenden
Erfindung.
-
Der
Verschlüsseler 112,
der ein Beispiel für
einen der Verschlüsseler 112, 114,..., 116 aus 1 ist, verschlüsselt einen
einzelnen Kanal von Eingangsdaten und umfasst einen Datenkompressor 210,
der eine herkömmliche
Datenkompression durchführt,
einschließlich
einer Bewegungskompensation (für
P- und B-Vollbilder), einer diskreten Cosinus-Transformation (DCT)
und Quantisierung. Ein Video-First-in-First-out-Puffer (Video-FIFO-Puffer) 230 speichert
die komprimierten Daten vorübergehend,
und ein Paketprozessor 250 formt aus den komprimierten
Daten Pakete mit angemessenen Kopfinformationen, z. B. gemäß dem MPEG-2-Standard
oder einem anderen Video-Standard.
-
3 veranschaulicht
einen Verschlüsseler
für hochauflösendes Fernsehen
zur Verwendung gemäß der vorliegenden
Erfindung.
-
Der
Verschlüsseler 300 verschlüsselt einen
einzelnen Kanal von Eingangsdaten. Ein Feldteiler 305 teilt
jedoch ein Videovollbild auf, so dass verschiedene Unterbereiche
oder Felder des Vollbildes an jeweilige verschiedene Datenkompressoren 310–324 geleitet
werden. Acht Datenkompressoren werden lediglich als Beispiel gezeigt.
Typischerweise wird derselbe Unterbereich aufeinander folgender
Vollbilder demselben Datenkompressor zugeteilt.
-
Eine
Hauptkompressionssteuereinheit (MCC) 370 steuert die Kompression
der Daten an jedem Datenkompressor über einen Peripheral-Component-Interconnect-Bus
(PCI) 325, und die komprimierten Daten werden zur vorübergehenden
Speicherung an einen Video-FIFO 330 ausgegeben. Die komprimierten
Daten werden an einem Paketprozessor 350 für den Transport
zu Paketen geformt.
-
Ein
Bedarfsparameter für
die Verschlüsselungsbitrate
für den
HDTV- Kanal wird
von dem MCC 370 bestimmt, indem für jeden der Felddatenkompressoren
ein Bedarfsparameter summiert wird. Andere statistische Informationen
wie etwa Bewegungsschätzungswerte
und dergleichen werden ebenfalls für jeden Datenkompressor summiert.
-
Es
ist zu beachten, dass es möglich
ist, sowohl SDTV- als auch HDTV-Verschlüsseler in einer einzigen Stat-Mux-Gruppe
zu kombinieren. In diesem Fall ist der Verschlüsseler 300 ein Beispiel
für einen
der Verschlüsseler 112, 114,..., 116 aus 1.
Zum Beispiel kann ein HDTV-Verschlüsseler mit zwei oder drei SDTV-Verschlüsselern
in einer Stat-Mux-Gruppe kombiniert werden.
-
Übersicht
-
Ein
entscheidender Teil eines statistisch gemultiplexten Mehrkanal-Verschlüsselungssystems
der Erfindung ist die Berechnung der Bedarfsparameter.
-
Die
optischen Merkmale und Komplexitätsinformationen
bezüglich
des Quellvideos werden gesammelt und zu einem einzigen Parameter,
der als der „Bedarfsparameter" bezeichnet wird,
verdichtet. Ein Bedarfsparameter wird für jeden Videokanal berechnet
und einmal pro Vollbild aktualisiert, wann immer ein neues Videovollbild
von dem entsprechenden Einzelkanalverschlüsseler 112, 114,..., 116 verarbeitet
wird. Wahlweise kann der Bedarfsparameter häufiger aktualisiert werden,
wie etwa mehrere Male pro Vollbild. Des Weiteren kann der Bedarfsparameter
in einem Halbbild-Bildmodus einmal pro Halbbild aktualisiert werden.
-
Diskussion
-
Bei
der folgenden Beschreibung eines Stat-Mux wird davon ausgegangen,
dass jede Videodienstleistung dem Ratensteuerungsprozessor 125,
der die Aufgaben des Zuwelsens von Bandbreite für jeden Fernsehdienstleistungsanbieter
(TSP), z. B. Kanal, und des Modulierens der Übertragungsraten für jeden
Kanal handhabt, ein Maß der
Bildkomplexität
wie etwa einen ME-Wert oder ein Aktivitätsniveau bereitstellt. Bei
einem Verschlüsseler
mit Vorgrifffähigkeit
kann der ME-Wert mit anderen Maßen
wie etwa der tatsächlichen
Anzahl Bits, die unter einem konstanten Quantisierungsniveau (QL)
codiert werden, ersetzt werden.
-
Für den Hochauflösungs-Verschlüsseler,
der mehrere Felder eines Vollbilds parallel verarbeitet, sammeln
die Verschlüsseler 112, 114,..., 116 die
ME-Werte von allen Feldern und kalkulieren die Summe zusammen mit
anderen Parametern wie etwa dem durchschnittlichen Pixelniveau (APL),
Bildauflösung,
Vollbildrate, Vollbildart (I, B oder P) und Gesamt-Intravollbild-Aktivität. Er behält auch
Aufzeichnungen über
die Größe und das
durchschnittliche QL von vergangenen Vollbildern. Auf der Basis
der verfügbaren
Informationen plus den Vorgriffparametern von Szenenwechsel, Überblendung
und Filmerkennung kann der MCC 370 einen Bedarfsparameter
für diesen
Videokanal ableiten.
-
Wenn
der Ratensteuerungsprozessor 125 einen aktualisierten Bedarfsparameter
von einer Puffer-/Bedarfsparameter-Berechnungsfunkion 102, 104,..., 106 empfängt, weist
er allen Videodienstleistungen auf der Basis der neuesten Informationen
die Bandbreiten neu zu. Die Bandbreitenzuweisung wird in der Form einer Verschlüsselungsbitrate
zurück
an jeden Verschlüsseler 112, 114,..., 116 gesendet.
Des Weiteren verwendet der Ratensteuerungsprozessor 125 die
Bandbreitenzuweisung, um Bitbudgets für das Verschlüsseln zu
kalkulieren. Er behält
ein annäherndes
Model eines Videopufferprüfers
(VBV), wie etwa von dem MPEG-Standard her bekannt, um sicherzustellen,
dass jedes Vollbild innerhalb akzeptabler Größengrenzen verschlüsselt wird.
-
Es
ist zu beachten, dass das VBV-Modell nur annähernd ist, da die tatsächliche Übertragungsratenänderungen,
die zu der Decodierzeit eines Vollbildes auftreten, nicht genau
im Voraus, zur Zeit der Verschlüsselung,
modelliert werden können.
Der Ratensteuerungsprozessor 125 behält ein bitgenaues Modell des
Decodiererpuffers 184, und wenn ihm die Größe jedes
verschlüsselten
Vollbildes zusammen mit dem Decodierungszeitstempel (DTS) gegeben
wird, können
die Mindest- und
Höchstgrenze
der Übertragungsrate
berechnet und verwendet werden, bevor eine Übertragungsratenänderung
ausgegeben wird. Wie von dem MPEG-Standard her bekannt, ist ein
DTS ein Datenfeld, das in einem PES-Paketkopf vorliegt, das die
Zeit angibt, zu der eine Zugriffseinheit (z. B. ein Bild) in einem
Systemzieldecodierer decodiert wird.
-
Hierbei
werden die Mindest- und Höchstraten
für den
Schutz des Decodiererpuffers verwendet. Unter normalen Bedingungen
wäre es
zu erwarten, dass Übertragungsratenänderungen
(mit einem Zeitverzug) den Änderungen
der Verschlüsselungsrate,
wie von den Verschlüsselern
an den Ratensteuerungsprozessor übermittelt,
folgen. Der Zeitverzug oder die Systemverzögerung ist die Gesamtpuffersystemverzögerung sowohl durch Verschlüsselungspuffer
als auch durch Decodierpuffer, und es wird davon ausgegangen, dass
sie für alle
Videodienstleistungen in der Stat-Mux-Gruppe dieselbe ist. Die Systemverzögerung umfasst
die Zeit zwischen der Verschlüsselung
und der Decodierung eines Bildes. In dem Fall des Multiplexens von
HD- und SD-Kanälen
können
ihre Systemverzögerungen
annähernd
gleich sein, wenn eine relative Gewichtung von z. B. fünf zu eins
zwischen den HD- und SD-Kanälen
angenommen wird.
-
Da
nicht alle Videodienstleistungen vollbildsynchronisiert sein müssen, werden
die Verschlüsselungsbitraten
und die Übertragungsraten
so häufig
aktualisiert, wie es der Ratensteuerungsprozessor handhaben kann.
Verschlüsselungsbitraten
werden (mit der Puffersystemverzögerung)
weitergeleitet, um die Übertragungsrate
für diesen
Kanal zu werden.
-
1. Zuteilung der übertragungsbitrate
an jeden Videokanal
-
Den
Kern des statistischen Multiplexsystems bildet der Bandbreitenzuweisungsprozess,
der von dem Ratensteuerungsprozessor 125 durchgeführt wird.
Bei unserem Stat-Mux-System
kann eine Unterscheidung zwischen zwei unterschiedlichen Konzepten
von Bandbreite getroffen werden: eines ist die Zuweisung von Bandbreite
an jeden Videokanal zum Zweck des Verschlüsselns. Aus der Perspektive
des Ratensteuerungsprozessors wird jedem Einzelkanal-Videoverschlüsseler eine
Verschlüsselungsbitrate
(BR) zugewiesen, die verwendet wird, um die angezielte Größe zum Verschlüsseln eines
Videovollbildes zu bestimmen. Der Einzelkanalverschlüsseler empfängt in jeder
QL/BR-Periode Aktualisierungen seiner Verschlüsselungsbitrate, was z. B.
mehr als neunzigmal pro Sekunde auftreten kann. Vor dem Verschlüsseln eines
bestimmten Videovollbildes wird jedoch nur die neueste Verschlüsselungsbitrate
verwendet, um die angezielte Budgetgröße für das Verschlüsseln dieses
Vollbildes zu berechnen.
-
Der
andere Bandbreitenzuweisungsprozess gemäß der Erfindung involviert
die Zuteilung der Übertragungsbitrate
an jeden Videokanal. Dies kann ebenfalls in jeder QL-/BR-Periode
berechnet werden, oder mit einer schnelleren oder langsameren Rate.
Die Übertragungsbitrate
für einen
Videokanal bestimmt, wie viele Bits komprimierten Videos während einer
QL-/BR-Periode von diesem Kanal gesendet werden sollten. Die Summe
der Übertragungsbitraten über alle
Videokanäle
für eine
bestimmte QL-/BR-Periode sollte gleich der Gesamtvideobandbreite,
die dem Stat-Mux-System gegeben wird, sein oder weniger als diese
betragen. Auf ähnliche
Weise sollte die Summe der Verschlüsselungsbitraten über alle
Videokanäle
für eine
bestimmte QL-/BR-Periode gleich der Gesamtvideobandbreite, die dem
System gegeben wird, sein oder weniger als diese betragen.
-
1.1 Beziehung zwischen den Verschlüsselungsbitraten
und den Übertragungsbitraten
-
Bei
einem Videoverschlüsselungs-/Videodecodierungssystem
des MPEG-2 bezieht sich das Konzept der Puffersystemverzögerung auf
den Zeitverzug von der Zeit, zu der ein Videovollbild zuerst an
dem Verschlüsseler
verschlüsselt
wird, bis zu der Zeit, zu der das Videovollbild von dem Decodierer
decodiert wird, z. B. wie von dem DTS des Vollbildes gekennzeichnet.
Für die
meisten MPEG-2- Systeme
ist die Puffersystemverzögerung
konstant, sobald das Verschlüsselungs-/Decodierungssystem
auf eine gewisse Bitrate konfiguriert ist. Eine konstante Puffersystemverzögerung kann
auch für
das vorliegende Stat-Mux-System angenommen werden.
-
Des
Weiteren wird die Übertragungsbitrate
ausgewählt,
um annähernd
eine Zeitverzugsversion der Verschlüsselungsbitrate zu sein. Der
Zeitverzug zwischen den beiden Raten ist gleich der Puffersystemverzögerung.
-
Der
Grund für
diese bestimmte Wahl ist wie folgt. Wenn jedwede Latenz in dem Übertragungsweg
zwischen dem Transportpaketpuffer 130 auf der Verschlüsselungsseite
und dem Decodiererpuffer 184 ignoriert wird, ist die Übertragungsbitrate
dieselbe Rate wie die Rate, mit der die Videobits an dem Decodiererpuffer eintreffen.
Da die Verschlüsselungsbitrate
beim Bestimmen des Budgets für
das Verschlüsseln
eines Videovollbildes verwendet wird, kann sie auch als die Decodierungsrate
angesehen werden, wenn das bestimmte Vollbild decodiert wird.
-
Die
Biteintreffrate an dem Decodiererpuffer (d. h. die Übertragungsbitrate)
gleicht der Verschlüsselungsbitrate,
die um die Verzögerungszeit
des Puffersystems verzögert
wird, und die Decodierungsbitrate gleicht ebenfalls der Verschlüsselungsbitrate,
die um die Verzögerungszeit
des Puffersystems verzögert
wird. Daher gleicht, wenn ein Videovollbild decodiert wird, die
Decodierungsrate (die die Ausgangsrate des Decodierpuffers steuert)
grob der Biteintreffrate an dem Eingang des Decodiererpuffers. Daher
minimiert die vorliegenden Erfindung jede mögliche Nichtübereinstimmung
der Raten zwischen dem Ausgang und dem Eingang des Decodiererpuffers.
In einem System mit fester Rate tritt diese Nichtübereinstimmung
niemals auf, da die Verschlüsselungsbitrate
und die Übertragungsbitrate
dieselbe feste Rate sind.
-
In
der oben stehenden Diskussion bezieht sich die Verschlüsselungs-/Decodierungsbitrate
auf die Rate, mit der ein Videovollbild verschlüsselt bzw. decodiert wird,
ohne die Wirkung der verschiedenen Vollbildarten in Betracht zu
ziehen. Die Zuteilung von Bitbudgets gemäß den Vollbildarten wird von
der Ratensteuerungsfunktion an dem individuellen Einzelkanalverschlüsseler vorgenommen.
Zum Beispiel teilt die Ratensteuereinheit bei einer gegebenen Verschlüsselungsbitrate
einem I-Vollbild ein großes
Bitbudget zu, wenn das die Art des Vollbilds ist, die sie zu verschlüsseln im
Begriff steht. Umgekehrt wird einem B-Vollbild ein viel kleineres Bitbudget
zugeteilt.
-
1.2 Mindest- und Höchstbitratenanforderungen von
dem Paketprozessor
-
Es
ist zu beachten, dass die Übertragungsbitrate
nur annähernd
eine Zeitverzugsversion der Verschlüsselungsbitrate ist. Der Ratensteuerungsprozessor 125 kann
die Übertragungsbitrate,
falls notwendig, frei anders festsetzen. Wenn die Übertragungsbitrate
von der Verschlüsselungsbitrate
abweicht, können
die Vollbilder, die bereits verschlüsselt und in dem Transportpaketpuffer 130 gespeichert
wurden, bewirken, dass der Decodiererpuffer 184 überläuft oder
unterläuft.
Dies liegt daran, dass diese Vollbilder ursprünglich unter der Annahme verschlüsselt worden
waren, dass die Übertragungsrate
der Verschlüsselungsbitrate
genau folgt. Die Übertragungsrate
kann von der Verschlüsselungsbitrate
aus mehreren Gründen
abweichen, z. B. einer vorübergehenden Überlastung
des Übertragungsnetzes
oder einer Ungenauigkeit bei der tatsächlichen Anzahl von Bits, die über einen
QL-/BR-Zeitraum gesendet werden.
-
In
dem vorliegenden Stat-Mux-System werden derartige Abweichungen berücksichtigt,
während
der Schutz des Decodierpuffers vor Überlauf bzw. Unterlauf weiter
beibehalten wird. Dies wird erreicht, indem der Paketprozessor 250 oder 350 auf
bevorstehende Überlauf-/Unterlaufereignisse
hin überprüft und durch
einen Satz von Anforderungen für
die Höchst-
und Niedrigstübertragungsbitraten
mit dem Ratensteuerungsprozessor 125 zurück in Kommunikation
tritt. Die Höchstbitrate
definiert die höchste
Rate, mit der der Paketprozessor Videopakete für diesen Kanal senden kann,
ohne dass der Decodiererpuffer des Kanals überläuft. Die Mindestbitratenanforderung
informiert den Ratensteuerungsprozessor 125 über die
niedrigste Rate, mit der der individuelle Videokanal seine Videobits
senden muss, um das ganze Videovollbild hinüber zum Decodierer zu schicken,
bevor die Decodierungszeit des Vollbildes anfängt.
-
Damit
der Paketprozessor (250 oder 350) die Mindest-
und Höchstgrenzen
der Übertragungsbitrate kalkulieren
kann, muss er den Decodiererpuffer durch ein Decodiererpuffermodell
verfolgen, einschließlich
des aktuellen Status des Puffers, der Anzahl der Vollbilder darin,
des DTS und der Größe jedes
Vollbildes sowie des DTS und der Größe des Vollbildes, das aktuell übertragen
wird.
-
Ein
Bild wird selbstverständlich
vor seiner DTS-Zeit übertragen,
z. B. bis zu 0,5 s vorher. Die Bilddaten werden vor dem Decodieren
zu der DTS-Zeit in dem Puffer des Decodierers gespeichert. Der DTS
basiert auf einer Program Clock Reference (PCR), bei der es sich
um einen Takt handelt, der auf einem Verschlüsselungsmodul läuft. Diese
Zeit wird periodisch von dem Verschlüsseler an den Decodierer gesendet,
um die Geräte zu
synchronisieren. Der PCR-Takt läuft
in einer üblichen
Umsetzung mit 27 MHz.
-
Bevor
jede neue Übertragungsrate
ausgegeben wird, fragt der Ratensteuerungs(QL)-Prozessor 125 alle
Kanäle
auf ihre zulässigen
Mindest- und Höchstbitraten
ab. Der Paketprozessor für
jeden Kanal berechnet diese Grenzen wie folgt.
-
CT
ist die aktuelle Zeit, Next_DTS ist die Zeit, in der der Decodierer
sein nächstes
Vollbild decodiert, und der DTS danach ist Next_next_DTS. „Latenz", „Verzögerung" oder „Umsetzungsverzögerung" bezeichnen das Intervall
von der aktuellen Zeit bis zu der Zeit, wenn die Bitrate umgesetzt
werden kann. Diese Verzögerung
berücksichtigt
derartige Faktoren wie eine Signallaufzeit zwischen dem Paketprozessor
und dem Ratensteuerungsprozessor und eine Zeit, damit der Ratensteuerungsprozessor
eine neue Übertragungsbitrate
berechnen kann. Die Verzögerung
hängt von
der Hardware-Konfiguration ab.
-
Die Übertragungsbitrate
wird in aufeinander folgenden Zyklen aktualisiert, die von den Zyklen
zum Aktualisieren der Verschlüsselungsbitraten
variieren können.
Es können
zweiunddreißig
Zyklen für
die Aktualisierung der Übertragungsbitrate
zwischen DTSs verwendet werden. Das Intervall zwischen DTSs ist
die Umkehr der Vollbildrate, z. B. 1/24 oder 1/30 s. Die Latenz
(latency) ist typischerweise ein Bruchteil (z. B. 1/3) eines Zyklus
zur Aktualisierung der Übertragungsbitrate.
-
Die
current_br ist die Übertragungsbitrate
für den
aktuellen Zyklus, die von dem Ratensteuerungsprozessor 125 empfangen
wird und um 184/188 skaliert ist, um die Bits des Transportpaketkopfes
zu entfernen. Der Paketprozessor jedes Kanals gibt Pakete gemäß der ihm
zugeteilten Übertragungsbitrate
aus. Es sei angenommen, es werde ein MPEG-Transportpaket mit 184
Byte Nutzlast und 4 Byte Kopf verwendet. Es können jedoch auch andere Transportschemata
verwendet werden, in welchem Fall diese Anpassung wie erforderlich modifiziert
wird.
-
In
den folgenden Gleichungen wird current_br weiter um einen „margin" (Rand) von 61 kbit/s
angepasst, um PCR, PES-Köpfe
und Zeitstempel zu berücksichtigen.
Für einen
HDTV-Verschlüsseler
wird der Rand auf 122 kbit/s verdoppelt. Diese Werte sind wiederum
spezifisch für
den MPEG-Codierungsstandard, aber die Erfindung ist auch zur Verwendung
mit anderen Codierungs- und Übertragungsschemata
geeignet.
-
Die
Höchstgrenze
der Bitrate wird verwendet, um für
jeden Kanal zu verhindern, dass der modellierte Decodiererpuffer überläuft. Erforderlich
ist, dass der Decodiererpuffer zur nächsten DTS-Zeit nicht überlaufen sollte.
Durch das Überwachen
des Betrags an Platz in dem Decodiererpuffer zur Next_DTS-Zeit (decode_buffer_sizedecode_buffer)
unter der Annahme, es werden keine neuen Bits übertragen, und durch das Anpassen
an die Latenz in der Antwort des Ratensteuerungsprozessors wird
die Höchstbitrate
von dem Betrag an leerem Pufferplatz geteilt durch die Zeit bis
zum Next_DTS gegeben.
-
Die
Zeitleiste 400 aus 4(a) zeigt
den Fall, wenn die Zeit für
das Umsetzen der nächsten
Aktualisierung der Übertragungsbitrate
vor dem Next_DTS liegt. Wie in der Zeitleiste 420 aus 4(b) gezeigt, sollte, wenn die Zeit für das Umsetzen
der nächsten
Aktualisierung der Bitrate nach dem Next_DTS liegt, die Pufferüberlaufbedingung
für den
Next_next_DTS überprüft werden.
Die Berechnung der Höchstbitrate
wird in der folgenden C-Sprachen-Syntax ausgedrückt.
-
-
Wenn
(CT + latency) < Next_DTS,
stellt der Zähler
den modellierten Füllungsgrad
des Decodiererpuffers zur Zeit (CT + latency) dar, und der Nenner
stellt den Zeitraum zwischen (CT + latency) und (Next_DTS) dar.
Max_br ist dann die Bitrate, die den verbleibenden Pufferplatz verbrauchen
wird, wenn sie in dem Zeitraum zwischen (CT + latency) und (Next_DTS)
umgesetzt wird. Siehe 4(a).
-
Wenn
(CT + latency) ≥ Next_DTS,
stellt der Zähler
den modellierten Füllungsgrad
des Decodiererpuffers zur Zeit (CT + latency) dar, und der Nenner
stellt den Zeitraum zwischen (CT + latency) und (Next_next_DTS)
dar. Max_br ist dann die Bitrate, die den verbleibenden Pufferplatz
verbrauchen wird, wenn sie in dem Zeitraum zwischen (CT + latency)
und (Next_next_DTS) umgesetzt wird. picture_size_pf(picture_at_Next_DTS)
ist die Größe (z. B.
in Bits) des Bildes, dessen DTS Next_DTS ist. Siehe 4(b).
-
In
dem unten stehenden Code zur Berechnung der Mindestbitrate bezeichnet
der Begriff „current
frame" (aktuelles
Vollbild) das codierte Videovollbild, das aktuell übertragen
wird. Die Mindestbitrate wird von dem Erfordernis abgeleitet, dass
das aktuelle Vollbild von komprimierten Daten vor dem DTS für dieses
Vollbild vollständig übertragen
werden muss, ansonsten kann der Decodiererpuffer während der
Decodierung dieses Vollbilds unterlaufen. Als Erstes ist zu überprüfen, ob
die nächste Änderung
der Bitrate vor der DTS-Zeit des aktuellen Vollbilds auftritt (d.
h. CT + latency < DTS_of_current_frame).
Wenn das so ist, wie auf der Zeitleiste 440 von 4(c) gezeigt, ist es sinnvoll, eine min_br zu
berechnen, die als die minimale konstante Bitrate definiert ist,
welche erforderlich ist, um den Rest des Vollbildes vor der DTS-Zeit
zu senden. Wenn es sich herausstellt, dass min_br null oder weniger
beträgt
(dies könnte
geschehen, falls bei einer gegebenen Latenz die Anzahl der im aktuellen
Vollbild verbleibenden Bits no_of_bits_left_current_frame <= current_br·latency
ist), wird dann min_br auf null festgesetzt. Dies bedeutet, dass
es kein Mindesterfordernis an die neue Bitrate gibt.
-
Für den speziellen
Fall, wenn der DTS so nahe an der aktuellen Zeit liegt, dass CT
+ latency > DTS_of_current_frame,
wie auf der Zeitleiste 460 von 4(d) gezeigt,
ist min_br nicht sinnvoll. In diesem Fall wird min_br auf null festgesetzt,
wenn die alte Bitrate das Abliefern aller verbleibenden Bits vor
dem Auftreten des DTS beenden kann; ansonsten wird min_br auf einen
Wert festgesetzt, der groß genug
ist, um jegliches mögliche
Unterlaufproblem des Decodiererpuffers abzuschwächen. Die Berechnung der Mindestbitrate
wird in der folgenden C-Sprachen-Syntax ausgedrückt.
-
-
no_of_bits_left_current_frame
ist die Anzahl an Bits, die in dem aktuellen Vollbild zur Zeit CT übrig sind,
um gesendet zu werden. Wenn (latency < DTS_of_current_frame – CT), stellt
der Nenner für
min_br die Anzahl an Bits dar, die in dem aktuellen Vollbild zur
Zeit CT + latency übrig
sind, um gesendet zu werden, und der Nenner stellt den Zeitraum
zwischen (CT + latency) und (DTS_of_current_frame) dar. Min_br ist
dann die kleinste Bitrate, die es ermöglicht, dass der Rest des aktuellen
Vollbildes übertragen
wird, wenn sie in dem Zeitraum zwischen (CT + latency) und (DTS_of_current_frame)
umgesetzt wird. Siehe 4(c).
-
Es
ist zu beachten, dass das Festsetzen von min_br = 0 im Wesentlichen
die aktuelle Übertragungsbitrate
beibehält.
-
Der
Code „min_br
= HARDWARE_MAX/4" bezeichnet
einen „Panikmodus", bei dem es nicht
genügend
Bandbreite gibt, um den Rest des Bildes vor dem DTS des aktuellen
Bildes über
den Kommunikationskanal an den Decodierer zu senden. HARDWARE_MAX
beträgt
28 Mbit/s für
SD und 39 Mbit/s für
HD. Eine Alternative besteht darin, festzusetzen, dass min_br =
(no_of_bits_left_current_frame – (current_br – margin)·latency)/(one_QLBR_cycle).
In diesem Fall muss, was immer in dem aktuellen Vollbild übrig ist,
während des
neuen QL/BR-Zyklus gesendet werden.
-
Es
ist zu beachten, dass die Mindest- und Höchstbitraten unter Verwendung
eines Skalierfaktors von 188/184 zurück in Transportbitraten umgewandelt
werden, bevor sie an den Ratensteuerungsprozessor zurückgesendet
werden, da der Ratensteuerungsprozessor mit allen Übertragungsbitraten
auf der Transportebene umgeht.
-
1.3 Eine C-Sprachen-Syntax für einen Übertragungsbitratenprozess
gemäß der Erfindung
-
- (1) Initialisieren der Bitratenparameter zu
nominellen Werten.
- (2) Berechnen der gesamten harten Mindestübertragungsbitrate für den Stat-Mux,
dann Begrenzen der Mindest- und Höchstbitraten durch die harten
Grenzen. Ignorieren des harten Minimums, wenn das gesamte harte
Minimum die verfügbare
Bandbreite überschreitet.
Wahlweise kann der Benutzer individuelle harte Grenzen für jeden
Kanal festsetzen.
- (3) Wenn die gesamte Mindestbitrate, die von dem Paketprozessor 250 (PP)
eines Kanalverschlüsselers angefordert
wird, die verfügbare
Bandbreite überschreitet,
handhabt der Ratensteuerungsprozessor 125 die Zuweisung
der Übertragungsbitrate
anders, abhängig
davon, ob das gesamte harte Minimum die verfügbare Bandbreite überschreitet.
Wenn dies zutrifft, wird die Bandbreite proportional zu der Mindestbitrate, die
von dem Paketprozessor angefordert wird, zugewiesen. Anderenfalls
greift der Ratensteuerungsprozessor auf die harten Minima zurück und weist
die verbleibende Bandbreite proportional zu dem Unterschied zwischen
den angeforderten Minima und den harten Minima zu.
- (4) Wenn die gesamte Mindestbitrate, die von dem Paketprozessor
eines Kanals angefordert wird, die verfügbare Bandbreite nicht überschreitet,
dann Zuweisen der angeforderten Mindestbandbreite an jeden Kanal
und Anpassen der Zielbitrate für
jeden Kanal.
- (5) Wenn noch immer Bandbreite verfügbar ist, ihr Verteilen proportional
zu den Zielbandbreiten der Kanäle.
- (6) Wenn immer noch Bandbreite verfügbar ist, ihr Verteilen proportional
zu dem Unterschied zwischen der max_bitrate und der zugeteilten
Bitrate, ohne die max_bitrate zu überschreiten.
-
5 veranschaulicht ein Verfahren zum Festsetzen
einer Mindest- und
einer Höchstgrenze
einer Übertragungsbitrate
gemäß der vorliegenden
Erfindung. Eine Zusammenfassung der oben stehenden Diskussionen
wird bereitgestellt.
-
Eine
Verschlüsselungsbitrate
wird zuerst für
ein aktuelles Bild zugewiesen (Block 500), und eine Übertragungsbitrate
wird als Reaktion darauf (Block 510) und im Anschluss an
eine Systemverzögerung
zugewiesen. Wenn eine neue Bitrate vor einer Decodierzeit des nächsten Bildes
zugewiesen werden kann, wird eine Höchstgrenze der Bitrate festgesetzt,
um einen Überlauf
des Decodiererpuffers zu der Decodierzeit des nächstens Bildes zu vermeiden
(Block 530). Wenn eine neue Bitrate nicht vor der Decodierzeit
des nächsten
Bildes zugewiesen werden kann, wird eine Höchstgrenze der Bitrate festgesetzt,
um einen Überlauf
des Decodiererpuffers zu der Decodierzeit des übernächsten Bildes zu vermeiden
(Block 540).
-
Vor
dem Festsetzen einer Mindestgrenze der Übertragungsbitrate (550),
z. B. um einen möglichen
Unterlauf des Decodiererpuffers zu vermeiden, wird, wenn eine neue
Bitrate vor der Decodierzeit des aktuellen Bildes zugewiesen werden
kann, die Mindestbitrate so festgesetzt, dass ein Rest des aktuellen
Bildes vor der Decodierzeit des aktuellen Bildes übertragen
wird (Block 560). Wenn eine neue Bitrate nicht vor der
Decodierzeit des aktuellen Bildes zugewiesen werden kann, wird bestimmt,
ob die aktuelle Übertragungsbitrate
ausreicht, um den Rest des aktuellen Bildes vor der Decodierzeit
des aktuellen Bildes zu übertragen
(Block 570). Wenn die aktuelle Bitrate ausreicht, wird
die Mindestbitrate auf null festgesetzt (Block 580), da
kein Bedarf besteht, die Bitrate höher zu zwingen. Wenn die aktuelle
Bitrate nicht ausreicht, wird die Mindestbitrate auf einen Höchstwert
festgesetzt, wie etwa einem Hardware-Maximum (Block 590),
um die Bitrate auf das höchste
mögliche
Niveau zu zwingen, um jeglichen möglichen Pufferunterlauf zur
Decodierzeit des aktuellen Bildes abzuschwächen.
-
Die Übertragungsbitrate
für das
aktuelle Bild wird angepasst, wie in Hinblick auf die Mindest- und Höchstgrenzen
notwendig (Block 595). Die Verarbeitung wird dann für den nächsten Zuweisungszyklus
der Übertragungsbitraten
wiederholt. Die Mindest- und Höchstgrenzen
berücksichtigen
eine Verzögerung
beim Umsetzen einer neuen Bitrate, und sie berücksichtigen auch, ob die neue
Bitrate vor der Decodierungszeit des aktuellen Bildes, des nächsten Bildes
und/oder des übernächsten Bildes
umgesetzt werden kann.
-
Demgemäß wird ersichtlich,
dass die vorliegende Erfindung einen statistischen Multiplexer zum
Codieren und Multiplexen von mehreren Kanälen digitaler Fernsehdaten
bereitstellt. Ein Bitratenbedarfsparameter wird für jeden
Verschlüsseler
in einer Stat-Mux-Gruppe
bestimmt, und jedem Kanal wird auf der Basis seines Bedarfsparameters
eine Verschlüsselungsbitrate
zugewiesen.
-
Zusätzlich dazu
wird jedem Kanal eine Übertragungsbitrate
als eine Zeitverzugsversion seines Bedarfsparameters zugewiesen,
um eine Nichtübereinstimmung
der Raten zwischen dem Ausgang und dem Eingang eines Decodiererpuffers
zu minimieren. Ein Paketprozessor überprüft auf bevorstehende Ereignisse
eines Überlaufs
oder Unterlaufs des Decodiererpuffers, um eine Mindest- und Höchstgrenze
für die Übertragungsbitrate
festzusetzen.
-
Obwohl
die Erfindung in Verbindung mit verschiedenen bevorzugten Ausführungsformen
beschrieben worden ist, sollte es verstanden werden, dass verschiedene
Abänderungen
und Anpassungen daran vorgenommen werden können, ohne den Bereich der
Erfindung, wie in den Patentansprüchen dargelegt, zu verlassen.