-
STAND DER TECHNIK
-
Die
vorliegende Erfindung betrifft die komprimierte Videoverarbeitung
und im Besonderen ein Verfahren zur Raten- und Übermittlungszeit-Multiplexierung
zur Bandbreitenoptimierung.
-
Bei
der Übertragung
von Videosignalen über physische Übertragungsstrecken
oder Rohre, Rohrleitungen bzw. Pipes, wird gewünscht, so viele Videosignale
wie möglich über die
Leitungen zu übertragen.
Um dies zu erreichen, werden objektive Videokomprimierungstechniken,
eingesetzt, wie zum Beispiel JPEG oder MPEG. Diese Komprimierungstechniken
sind mit Verlusten behaftet, wobei eine bestimmte Verschlechterung
des Videosignals zwischen der Codierung und Decodierung der Videosignale
eintritt. Somit handelt es sich bei dem Ausmaß der Komprimierung, der ein
Videosignal ausgesetzt ist, um einen Kompromiss zwischen der Bandbreite und
der Bildverschlechterung bzw. um das von einem Endanwender oder
Teilnehmer tolerierte Maß.
Wenn das Bild zu stark komprimiert wird, lehnt der Teilnehmer die
Bildverscblechterung ab. Wenn das Bild nicht ausreichend komprimiert
wird, so wird die Anzahl der Videosignale, die über die Leitung übertragen
werden können,
nicht optimiert. Je komplexer das Bild ist, desto mehr Bandbreite
ist erforderlich, um Bildverschlechterungen in unerwünschtem
Ausmaß zu vermeiden.
-
Für Übertragungsnetzwerke
stellen Lichtwellenleiterleitungen große Bandbreiten bereit, so dass gleichzeitig
viele Videosignale über
große
Strecken übertragen
werden können.
Dieses optische physische Medium wird allgemein für das Backbone
des Übertragungsnetzwerks
bzw. des Übertragungsnetzes
eingesetzt, wobei es jedoch nicht die "letzte Meile" zum Standort des Teilnehmers abdeckt
bzw. einschließt.
Die letzte Meile wird allgemein über
eine Kupferverbindung bereitgestellt, wie etwa über Telefonkabel mit verdrillten
Leitungspaaren. Die Bandbreite der Kupferverbindung oder -leitung
ist deutlich geringer als die der optischen Leitung, und alle Signale
in der Kupferleitung werden mit zunehmender Strecke schnell abgeschwächt. Zum
Beispiel unterstützt
die VDSL-Technologie (VDSL als englische Abkürzung von Very High Bit Rate
Digital Subscriber Line) sehr hohe Bitraten mit bis zu 55 Mbps hinter
einem Kopfende zu einem Teilnehmer und von 19 Mbps von dem Teilnehmer
zu dem Kopfende, und wobei diese Technologie für einen Einsatz über verhältnismäßig kurze
Kupferschleifen von 1000 bis 4000 Fuß vorgesehen ist. Andererseits
ermöglicht die
ADSL-Technologie
(ADSL als englische Abkürzung
von Asymmetrisch Digital Subscriber Line) den Einsatz einer bereits
vorhandenen lokalen Schleife eines verdrillten Leitungspaares, um
Daten- und/oder Videodienste mit hoher Bandbreite bereitzustellen. ADSL
unterstützt
die Zweiwege-Übertragung
von analoger Sprache (POTS für
einfachen alten Fernsprechdienst), einen digitalen Breitbandkanal
nur für die
Abwärtsstrecke
von bis zu 9 Mbps für
die Daten- oder
Videoverteilung und einen digitalen Kanal nur für die Aufwärtsstrecke mit bis zu 640 Kbps.
Die ADSL-Installation kann über
eine Strecke von bis zu 12.000 Fuß eingesetzt werden, wobei
sie jedoch für gewöhnlich nur
für Daten
oder nur für
ein Videosignal eingesetzt wird.
-
Durch
die VDSL-Technologie sind Dienstleistungsanbieter bzw. Service Provider
heute in der Lage, zu einem einzelnen Teilnehmer gleichzeitig bis
zu drei Videosignale zu übertragen.
Allerdings können nur
die Teilnehmer von dieser Technologie profitieren, die sich nahe
an dem Kopfende oder nahe an einem entfernten Anschluss befinden.
Wünschenswert wäre es, in
der Lage zu sein, die gleiche Möglichkeit der Übertragung
bzw. Übermittlung
von bis zu drei Videosignalen pro Teilnehmer über ein physisches Übertragungsmedium
mit geringerer Bandbreite bereitzustellen, so dass mehr Teilnehmer über eine
größere Fläche versorgt
werden können.
-
Bei
der MPEG-Komprimierung gehört
jedes abgehende Datenbyte einem Transportstrompaket an, und jedem
Programm in dem Transportstrom ist eine Zeit zugeordnet, mit der
der Transportstrom getaktet wird. Bei beispielsweise zehn Programmen weist
jedes Byte eine von zehn verschiedenen Zeiten auf, wobei jede einem
anderen Programmtakt zugeordnet ist (siehe Abschnitte 2.41.2 von
ISO 13818-1 für
nähere
Einzelheiten). Darüber
hinaus weist jedes Byte eine Zeit auf, die dessen Ausgangstakt zugeordnet
ist. GOP betrifft nicht nur eine Gruppe von Bildern, sondern auch
eine vollständige
Sequenz bzw. Folge, wenn keine Bildergruppe vorliegt – dies ist etwa
der Fall bei Video von bestimmten Inhaltsdiensten, wie etwa HITS,
wobei jede neue Sequenz eine Länge
von 15 Bildern aufweist und keine I Frames, sondern nur P und B
Frames mit intracodierten Teilen bzw. Scheiben (englisch: Slices),
die angeordnet sind als PBBPBBPBB...
-
Es
ist eine Leitung mit fester Bandbreite gegeben, welche eine konstante
Anzahl von MPEG Transportstrom-Paketen (MTS-Paketen) pro Sekunde
unterstützt.
Als Eingabe sind N einzelne Programmtransportströme gegeben, entweder mit variabler
Bitrate (VBR) oder mit konstanter Bitrate (CBR), die in den abgehenden
CBR-MTS multiplexiert werden müssen.
N ist nicht unbedingt eine Konstante. Gewünscht wird eine Optimierung
von N für
den jeweiligen MTS.
-
"Joint MPEG-2 coding
for multi-program broadcasting of pre-recorded video" von Koo, I et al, Proceedings
of IEEE International Conference, 15. März 1999, Seiten 2227–2230 wird
ein MPEG-2 basiertes Betriebssystem offenbart für die gemeinsame Bitratencodierung
mehrerer Videoprogramme unter Verwendung eines zweistufigen Codierungsansatzes.
In der ersten Stufe werden die Videoströme offline codiert, bevor sie
für eine
höhere
Bildqualität übertragen
werden. Aufzeichnungsstatistiken für Komplexitätsdateien der Videoströme werden
erzeugt und gespeichert. In einer zweiten Stufe während der Übermittlung
wird bei bekannten Komplexitäten
der Videoströme
eine erforderliche Anzahl von Bits bestimmt, die zum Codieren jedes
Videostroms benötigt
wird, und eine Reihe von Codeumsetzern führt die Bitzuweisungsentscheidungen
aus.
-
KURZE ZUSAMMENFASSUNG DER
ERFINDUNG
-
Vorgesehen
ist gemäß der vorliegenden
Erfindung ein Verfahren zur Bandbreitenoptimierung gemäß dem gegenständlichen
Anspruch 1.
-
Weitere
Ausführungsbeispiele
der vorliegenden Erfindung sind in den Unteransprüchen definiert.
-
Vorgesehen
wird gemäß der vorliegenden Erfindung
eine Raten- und Übermittlungszeit-Multiplexierung zur
Bandbreitenoptimierung einer Übertragungsleitung
mit begrenzter Bandbreite zur Erhöhung der Anzahl von Signalen,
die nach Bedarf zu einem Teilnehmer übermittelt bzw. übertragen
werden können.
Der Algorithmus gemäß der vorliegenden Erfindung
weist einen Zuweisungsabschnitt und einen Transrating-Abschnitt
auf. Der Zuweisungsabschnitt des Algorithmus bestimmt, wie viele
Bits für jede
Gruppe von Bildern für
jeden der Programmströme,
die in einen abgehenden MPEG Transportstrom (MTS) eingefügt werden,
zur Verfügung
stehen. Bits können
einer zukünftigen
Gruppe von Bildern entliehen werden oder von Daten, die nicht in
Echtzeit vorliegen. Wenn die Anzahl der Bits insgesamt nach der Entleihung
kleiner ist als die Gesamtanzahl der Bits für die Gruppen von Bildern insgesamt
in jeder Iteration, so wird eine Zuweisungsfunktion angewandt, um
die Anzahl der Bits für
jede Gruppe von Bildern zu verringern – ansonsten werden die Gruppen
von Bildern in den abgehenden MTS eingefügt. Wenn eine Bitreduzierung
erforderlich ist, so wird der Transrating-Abschnitt des Algorithmus
verwendet, um die Bitraten für
jeden Programmstrom zu reduzieren, wie dies erforderlich ist, um
die Bitzuweisung von dem Zuweisungsabschnitt des Algorithmus zu
erreichen. Wenn die Bitreduzierung minimal ist, so tritt das Bit-Transrating
in dem komprimierten Bereich ein, indem spezifizierte DCT-Koeffizienten (d.
h. spezifizierte Koeffizienten der diskreten Kosinustransformation) für die hohen
Frequenzen verworfen werden oder durch neue Quantisierung. Wenn
die Bitreduzierung groß ist,
so erfolgt die vollständige
Decodierung und Codierung, um die Bitzuweisung zu erreichen. Wenn die
Bitreduzierung zu groß ist,
so dass eine unzumssige Verschlechterung der Videobilder bewirkt
wird, so kann einer der Programmströme gemäß einem Teilnehmerprofil gelöscht werden,
und der Algorithmus wird für
die verbliebenen Ströme
ausgeführt.
-
Die
Aufgaben, Vorteile und neuartigen Merkmale der vorliegenden Erfindung
werden aus der folgenden genauen Beschreibung deutlich, wenn diese in
Verbindung mit den anhängigen
Ansprüchen
und den beigefügten
Zeichnungen gelesen wird.
-
KURZE BESCHREIBUNG DER VERSCHIEDENEN ANSICHTEN
DER ZEICHNUNG
-
Es
zeigen:
-
1 ein
Blockdiagramm eines repräsentativen
Videoübertragungssystems;
-
2 ein
Zeitsteuerungsdiagramm der Bitzuweisung gemäß der vorliegenden Erfindung;
-
3 ein
Blockdiagramm eines Moduls zur Verwendung in Verbindung mit einem
Digital Subscriber Line Access Multiplexer zur Bandbreitenoptimierung
gemäß der vorliegenden
Erfindung; und
-
4 ein Flussdiagramm eines Verfahrens zum
Transrating von drei Programmströmen
gemäß der vorliegenden
Erfindung.
-
GENAUE BESCHREIBUNG DER ERFINDUNG
-
In
folgendem Bezug auf die Abbildung aus 1 wird an
einer Übertragungsquelle 10 eine Mehrzahl
von Videoprogrammen 12 in einen statistischen Multiplexer 14 eingegeben,
um einen Breitband-Übertragungsstrom
an einen Sender 16 bereitzustellen. Die Ausgabe des Senders 16 kann über geeignete
Mittel bzw. Einrichtungen, wie etwa über Aufwärtsstreckenübertragung über eine Antenne 18 zu
einem Satelliten übertragen
werden, und danach über
eine Abwärtsstreckenübertragung
zu einer weiteren Antenne 22 an einem Verteilungskopfende 24. Das
auf die Abwärtsstrecke
gebrachte Signal wird über
die Antenne 22 in einen Empfänger 26 eingegeben
und danach in einen Demultiplexer 28, um den Strom in einzelne
Programmübertragungsströme (SPTS)
aufzuteilen und um Nullpakete zu entfernen. Die resultierenden SPTS
von dem Demultiplexer 28 werden in einen Verteilungs-Switch 30 zur
Verteilung über
ein lokales Netzwerk 32 eingegeben, für gewöhnlich unter Verwendung eines
Lichtwellenleiters als physikalisches Medium. An einem Teilnehmer-Verteilungspunkt
endet der Lichtwellenleiter in einem Digital Subscriber Line Access
Multiplexer (DSLAM) 34. Von dem DSLAM 34 zu einem
Standort 36 des Teilnehmers, d. h. die "letzte Meile", wird eine Kupferleitung 38 verwendet,
wie zum Beispiel ein Telefonkabel mit verdrilltem Leitungspaar.
-
Im
Betrieb übermittelt
der Teilnehmer von dem Standort 36 des Teilnehmers eine
Datenanforderung in der Aufwärtsstrecke
zu dem DSLAM 34, die anzeigt, welche Dienste der Teilnehmer
wünscht. Die
folgende Beschreibung betrifft einen ADSL-Dienst, der eine Bandbreite
von ungefähr
6 bis 8 Mbps für
den Transport von ausgewählten
Video-, Audio- und
Datensignalen auf der Abwärtsstrecke von
dem DSLAM 34 aufweist. Ein Teilnehmer am Standort 36 des
Teilnehmers leitet eine Nachricht in den Aufwärtsstrecke an den DSLAM 34 ein,
welche anzeigt, welche Videoprogramme A, B und C gewünscht werden.
Die ausgewählten
SPTS, in Verbindung mit Audio- und nicht in Echtzeit gegebenen Daten,
wie sie etwa durch einen Internet Service Provider (ISP) bereitgestellt
werden, die nicht Teil des MTS sind, werden gemäß der Anforderung des Teilnehmers
durch einen lokalen statistischen Multiplexer (Mux) in dem DSLAM 34 in
einen MPEG Transportstrom (MTS) paketisiert, wobei der MTS über die Kupferleitung 38 zu
dem Teilnehmerstandort 36 übermittelt wird.
-
Der
Algorithmus für
den statistischen Multiplexer in dem DSLAM 34 weist zwei
Abschnitte auf – einen
Bitzuweisungsabschnitt und einen Transrating-Abschnitt, soweit erforderlich.
Der Bitzuweisungsabschnitt überwacht
einen Berücksichtigungsbereich
für jeden
Programmstrom zur Integration in den abgehenden MTS, wobei der Berücksichtigungsbereich
mindestens eine Gruppe von Bildern (GOP als englische Abkürzung von
Group of Pictures) aus jedem Programm aufweist. Die Anzahl der Bits
insgesamt für
die Ausführung
von GOPs in dem Berücksichtigungsbereich
wird bestimmt und mit einer Anzahl der insgesamt verfügbaren Bits
für die
Iteration des Zuweisungsabschnitts für diesen Berücksichtigungsbereich
verglichen. Wenn die Anzahl der Bits insgesamt für die GOPs kleiner oder gleich
der insgesamt verfügbaren
Anzahl von Bits ist, so werden die GOPs in die abgehenden MTS-Pakete eingefügt und der
Transrating-Abschnitt des Algorithmus wird umgangen.
-
Wenn
die Gesamtanzahl der Bits größer ist als
die Anzahl der insgesamt verfügbaren
Bits, so werden Bits aus einem Entleihungs-Bitpool entliehen. Der
Entleihungs-Bitpool weist Bits von nicht in Echtzeit vorgesehenen
Daten auf, wie etwa von Webdaten oder anderen Internetdaten wie
zum Beispiel Dokumenten. Bits können
auch aus den GOPs entliehen werden, die in einer nächsten Iteration
des nächsten
Berücksichtigungsbereichs
enthalten sind. Die entliehenen Bits, die Bits für nicht in Echtzeit vorgesehenen
Daten aufweisen und einige Bits von zukünftigen GOPs aufweisen können, werden
den insgesamt verfügbaren
Bits hinzugefügt,
und wenn die Gesamtanzahl von Bits für die GOPs dann kleiner oder
gleich den modifizierten verfügbaren
Bits ist, werden die GOPs in die abgehenden MTS-Pakete eingefügt, wobei
erneut der Transrating-Abschnitt des Algorithmus umgangen wird.
-
Wenn
hingegen die Gesamtanzahl der Bits der GOP weiterhin die insgesamt
verfügbaren
Bits überschreitet,
so wird eine Bitzuweisungsfunktion eingesetzt, um zu bestimmen,
in welchem Ausmaß jede
GOP reduziert werden muss. Die einfachste Zuweisungsfunktion ist
eine Funktion, bei der ein tibereinstimmender prozentualer Anteil
von Bits für
jede GOP in dem Berücksichtigungsbereich
reduziert wird. Es können
aber auch andere Zuweisungsfunktionen verwendet werden – es kann
eine Priorität
zugewiesen werden, welche die Mindestbitrate für einen Programmstrom begrenzt,
wie etwa für
Sportveranstaltungen, und wobei die anderen Programmströme dabei
gleichermaßen
den verbleibenden verfügbaren
Bits zugewiesen werden.
-
Bei
einem Beispiel des Zuweisungsabschnitts des Algorithmus entspricht
für eine
Leitung, bei der 5 Mbps für
Video zugewiesen werden und jede GOP der drei Programmströme eine
Anzahl von Bits aufweist, die 1,5 Mbps entsprechen, die Bitrate insgesamt
für alle
drei GOPs 4,5 Mbps und es ist keine Zuweisung oder Entleihung von
Bits erforderlich. Wenn ein Programmstrom eine Anzahl von Bits aufweist,
die 2,5 Mbps entsprechen und die anderen beiden eine Anzahl von
Bits aufweisen, die 1,5 Mbps entsprechen, so entspricht die Bitrate
insgesamt 5,5 Mbps, wobei dieser Wert größer ist als die durch die verfügbare Anzahl
von Bits bestimmte Bitrate. Durch die Entleihung der Datenbits und
von bis zu 10% der Bits für
die nächste
Iteration kann die Anzahl der insgesamt verfügbaren Bits auf entsprechende
5,5 Mbps erhöht
werden, was der der insgesamt erforderlichen äquivalenten Bitrate entspricht.
Wenn schließlich
die Anzahl der Bits für
die drei Programmströme
3,0, 1,5 und 1,5 entspricht, so liegen die erforderlichen 6 Mbps über den
5,5 Mbps der äquivalent verfügbaren Bitrate,
so dass eine weitere Bitreduzierung erforderlich ist, bestimmt gemäß der Zuweisungsfunktion.
-
Der
erste Schritt des Zuweisungsabschnitts des Algorithmus umfasst die
Berechung der verfügbaren
Anzahl von Bits für
jede GOP in jedem abgehenden Programmstrom für den abgehenden CBR MTS von
dem DSLAM 34 zu dem Teilnehmerstandort 36. Der
anfangs ausgewählte
Strom ist der Strom mit der höchsten
Priorität,
oder er wird willkürlich
ausgewählt,
wenn alle Ströme
die gleiche Priorität
aufweisen. Standardmäßig weist
der ausgewählte
Strom einen Index von "1" auf. Wenn eine GOP
des eingehenden Stroms passt, so wird die GOP in den entsprechenden
abgehenden MTS-Paketen platziert. Wenn hingegen die eingehende GOP
nicht passt, wird das Video angepasst, so dass dafür gesorgt wird,
dass die GOP passt. Es existiert ein Entleihungs-Bitpool, durch
den Bits, die zum Senden von nicht in Echtzeit vorgesehenen Daten
verwendet werden können,
entliehen werden, um besonders schwierig einem Transrating zu unterziehenden
Videosequenzen Rechnung zu tragen.
-
Die
folgende Bezeichnung wird in der folgenden Beschreibung verwendet.
- – DTSi(n) ist der Decodierungszeitstempel in Bezug
auf den Systemtakt des Programms i des ersten Bilds der GOP n des
elementaren Videostroms in dem Programm i, wodurch der Zeitpunkt angezeigt
wird, zu dem GOP n in einem Systemzieldecodierer decodiert werden
soll.
- – Ini(t) ist der Index des abgehenden MTS-Pakets des
statistisch multiplexierten Stroms, dessen abgehende Byte-Zeit in
Bezug auf den Systemtakt des Programms i t aufweist.
- – p(k)
ist das k-te abgehende MTS-Paket des statistisch multiplexierten
Stroms.
- – t(k)
ist die Zeit von p(k) in Bezug auf den Ausgangstakt.
- – t(k)
ist die Zeit von p(k) in Bezug auf den Systemtakt des Programms
i.
- – borrowed_bitsn (entliehene_Bitsn)
ist die Anzahl der Bits in dem Entleihungs-Bitpool nach Iteration n
der Verarbeitung.
- – potential_bitsn (potenzielle_Bitsn)
ist die Anzahl von Bits, die nach der Iteration n der Verarbeitung vor
dem Transrating entliehen werden kann.
- – datan (Daten) ist die Anzahl von Bits der Eingabe von
nicht in Echtzeit vorgesehenen Daten in der Iteration n des Bitverfügbarkeitsprozesses.
-
Zu
Anfang ist der Entleihungs-Bitpool leer, d. h. borrowed_bits0 = 0. Bei jeder Iteration des Zuweisungsabschnitts
des Algorithmus wird ein neuer Berücksichtigungsbereich berechnet,
d. h. eine Sequenz abgehender MTS-Pakete, so dass in dem Berücksichtigungsbereich
mindestens eine GOP für
jeden Programmstrom vorhanden ist, der in die abgehenden MTS-Pakete eingefügt wird.
Die Iteration n dieses Abschnitts enthält definitionsgemäß die n-te GOP
des elementaren Videostroms in Programm 1. Für jedes Programm i, ist 1 < i ≤ N, die Ordnungszahl der
GOP für
die Iteration n, die immer in dem Berücksichtigungsbereich enthalten
ist, gegeben durch ni und so definiert,
dass DTSi(ni) < DTS1(ni + 1) und DTSi(ni + 1) > DTS1(n + 1), wie dies in 2 dargestellt ist.
-
Der
Index des ersten MTS-Pakets des Berücksichtigungsbereichs für die Iteration
n ist kn = In1(DTS1(n) – available_vbv – c), wobei
available_vbv den Wert des Bildpufferverifizierers darstellt oder
des VBV-Puffers, der für
Programm 1 nach GOP n-1, angegeben in Bits, verfügbar ist, mit einer Umwandlung im
Zeitverlauf, in der Annahme einer Bitrate, die gleich der Bitrage
von GOP n-1 für
Programm 1 ist, und wobei c eine Konstante ist, gleich BSmux + BSon, definiert
in Abschnitt 2.4.2.3 von ISO 13818-1. Dies gewährleistet, dass die GOP n zeitgerecht
zu dem Decodierer übermittelt
wird, so dass sie vorher ankommt als dies erforderlich ist für die Decodierung gemäß DTS1(n). Der genaue Wert von kn darf
nicht größer sein
als In1(DTS1(n) – available_vbv) und kann nicht
kleiner sein als der Index des letzten MTS-Pakets von GOP n-1 für Strom
1.
-
Das
letzte MTS-Pakets des Berücksichtigungsbereichs
für die
Iteration n ist p(kn + mm – 1), wobei
kn + mn = max{In1(DTS1(n + 1)} ist.
Somit gibt es mn MTS-Pakete zur Berücksichtigung
in dem Zeitintervall in Bezug auf den Ausgangstakt mit der Länge t(kn + mn) – t(kn). Ein bestimmter Berücksichtigungsbereich mit m
MTS-Paketen weist zugeordnete 1504-m Bits auf. Die der Iteration
n zuzuweisenden GOPs sind wie folgt gegeben: GOP n des elementaren
Videostroms in Programm 1; und GOPs nj-1 +
1 bis nj des elementaren Videostroms in
Programm i, 1 < i ≤ N. Die "available Bits" bzw. die verfügbaren Bits sind
die Bits in dem Berücksichtigungsbereich
abzüglich
der folgenden Bits:
- • aller Bits in den MTS-Paketen
für Audio,
PSI, etc. in dem Berücksichtigungsbereich,
die keine Video- oder in Echtzeit vorgesehenen Daten führen;
- • aller
Header-Bits für
TS-Paket-Header und PES-Paket-Header in den MTS-Paketen mit Video
in dem Berücksichtigungsbereich;
- • Bits,
die bereits vergeben sind – die
Bits, die einer beliebigen GOP j des Stroms i zugeordnet sind, so
dass Ini(DTSi(j)) < kn ist;
- • Bits
von GOPs, die sich teilweise in dem Berücksichtigungsbereich befinden,
die sich vollständig in
einem zukünftigen
Berücksichtigungsbereich befinden,
d. h. jede GOP j des Stroms i, so dass j > ni. Für jedes
Programm i wird die bislang durchschnittliche GOP-Größe für den Strom
i verwendet. Sofern dies erforderlich ist, kann ein bestimmter Anteil
dieser Bits entliehen werden, d. h. in den Entleihungs-Bitpool eingegeben
werden, wie dies nachstehend beschrieben wird;
- • für die nicht
in Echtzeit vorgesehenen Daten können
alle Bits der Größe datan entliehen werden. Die nicht gesendeten
bzw. übermittelten
Daten, deren Größe den entliehenen
Bits hinzugefügt
wird, werden in einer Warteschlange verarbeitet.
-
Wenn
die Anzahl der verfügbaren
oder Ziel-Bits in der Iteration n gleich T ist und die Gesamtanzahl
von Bits der zuzuweisenden GOPs gleich A ist, so gilt, wenn T nicht
kleiner ist als A, dass das Verfahren ausgeführt wird, da Platz vorhanden ist,
um alle GOPs unterzubringen. Darüber
hinaus können
T-A Bits aus dem Entleihungs-Bitpool für aus der Warteschlange entnommenen
Daten, die nicht in Echtzeit vorgesehen sind, eingesetzt und aus
dem Entleihungs-Bitpool entfernt werden. Formeller ausgedrückt bedeutet
dies: borrowed_bitsn = max(0,borrowed_bitsn-1 – (T – A)). Wenn
T hingegen kleiner ist als A und sich Bits in dem Entleihungs-Bitpool
befinden, so können
bis zu α T-Bits
entliehen werden, um T zu erhöhen.
Ein angemessener Wert für α ist 0,1.
Die Anzahl der Bits, die entliehen werden können, wird zu potential_bitsn = datan + α T.
-
Eine
Zuweisungsfunktion wird eingesetzt, um Bits Programmen zuzuweisen.
Es gilt, dass ai die Anzahl der tatsächlichen
Bits für
das Programm i darstellt, Σai = A, und wobei ti eine
Zielzahl für
das Programm i darstellt, Σti ≤ T.
Eine Zuweisungsfunktion f(ai) = ti ist eine Funktion, so dass Σt1 ≤ T
gilt. Die einfachste Zuweisungsfunktion ist die einheitliche Zuordnung
ti = (T/A)ai. Eine
Zuweisungsfunktion, deren Einzelheiten von den Grundsätzen des
statistischen Multiplexers abhängig
sind, wird eingesetzt, um eine Zuordnung von Bits für die GOPs
zuzuweisen, welche dem Transrating-Abschnitt des Algorithmus zugeführt werden.
Die Eingabe in den Transrating-Abschnitt umfasst die Zielbitrate
für jede
anzupassende GOP und für
jede anzupassende GOP die Größe und die
Art jedes Bilds in der GOP. Darüber
hinaus wird die potenzielle Anzahl von Bits, die entliehen werden können, als
potential_bitsn weitergeleitet. Zusätzlich zu
den angepassten GOPs gibt der Transrating-Abschnitt auch die Anzahl
der entliehenen Bits b zurück, so
dass folgendes gilt: borrowed_bitsn borrowed bitsn-1 + b.
-
Über eine
externe Steuerung kann ein Programm hinzugefügt oder gelöscht bzw. entfernt werden.
Programme können
auch von einer Videoquelle auf eine andere geschaltet werden. Logisch
treten diese Änderungen
auf zwischen Iterationen des Zuweisungsabschnitts des Algorithmus.
Diese Fälle werden
wie folgt behandelt.
- • Löschen eines Programms. Die
Zuweisungsfunktion wird angepasst, um die Bits über ein Programm weniger zu
verteilen. Der Wert von N wird um Eins herabgesetzt. Wenn Programm
1 gelöscht
wird, wird ein neues Programm 1 bezeichnet.
- • Hinzufügen eines
Programms. Der Wert von N wird um Eins heraufgesetzt. Der Index
des neuen Programms wird der neue Wert von N, und die Funktion InN(t) ist so definiert, dass InN(DTSN(nN)) kn +
mn zugewiesen wird. Die Zuweisungsfunktion wird
so angepasst, dass die Bits über
ein zusätzliches
Programm verteilt werden.
- • Quellenänderung.
Programm j wechselt von einer Videoquelle zu einer anderen, entweder
durch externe Mittel über
eine PSI-Tabellenänderung oder
durch einen Unterbrechungsindikator, und die Transrating-Funktion
wird über
die Änderung benachrichtigt.
Die Funktion Inj(t) wird neu definiert,
so dass Inj(DTSN(nN)) kn + mn zugewiesen wird. Die Zuweisungsfunktion
bleibt die gleiche.
-
Die
in die abgehenden MTS-Pakete einzufügenden Programmströme werden
durch den DSLAM 34 zu einem Transrating-Modul 40 über eine
Schnittstelle 42 zu einem Speicher 44 übertragen,
wo sie in N einzelnen Eingangspuffern gespeichert werden. In der
folgenden Beschreibung wird als Beispiel von N gleich 3 ausgegangen.
Die Eingangspuffer sind entsprechend mit IDA, IBB und IBC bezeichnet.
Eine Transrating-Steuereinrichtung 46 verwendet JA, JB und
JC Bilder von den entsprechenden Eingangspuffern zur Analyse gemäß dem Transrating-Abschnitt des
Algorithmus, wie dies in der Abbildung aus 3 dargestellt
ist. JA, JB und JC sind anwendungsabhängige Parameter. Je größer JA,
JB und JC sind, desto besser ist die Performance des Transrating-Moduls 40.
Die Obergrenzen von JA, JB und JC sind von Verzögerungseinschränkungen
abhängig. Die
unteren Grenzen sind JA > =
MA + 1, JB > = MB +
1 und JC > = MC +
1, wobei MA, MB und MC die Anzahl der Bilder in einer MPEG2 Sub-GOP
darstellen, d. h. den Abstand von P Bildern in den entsprechenden
Videoströmen.
Die drei Videosignale A, B, C werden durch die Transrating-Steuereinrichtung 46 analysiert,
bei der es sich um einen Mikroprozessor/digitalen Signalprozessor
(MP/DSP) handeln kann, um zu bestimmen, welches Transrating, sofern überhaupt,
erforderlich ist, bevor die Videoprogrammströme zu dem Teilnehmer weitergeleitet
werden.
-
Ein
Segment eines Videoprogrammstroms kann auf eine von drei unterschiedliche
Arten während
dem Transrating behandelt werden; Durchleitung, Ratenreduzierung
in dem komprimierten Strombereich oder Ratenreduzierung in dem Pixelbereich
durch eine Decodierer-Codierer-Kaskade.
-
Wie
dies in der Abbildung aus 4 dargestellt
ist, wird zu Beginn eine bestimmte Anzahl von Bildern von jedem
der komprimierten Videoströme
A, B und C in entsprechenden Eingangspuffern IBA, IBB und IBC gespeichert.
Die Bitraten der Bilder MA, MB und MC von jedem der Bilder JA, JB
und JC in den Eingangspuffern berechnet, BitsMA, BitsMB und BitsMC,
sowie die Bitraten für
JA, JB und JC, BitsJA, BitsJB und BitsJC sowie die Gesamtbitrate
Bits3 = BitsMA + BitsMB + BitsMC. Ein Ratenbudget BudgetMA, BudgetMB,
BudgetMC und BudgetS für
jeden Videostrom und der Gesamtwert für den Videostrom können anhand
von vorher definierten Zielen ermittelt werden, wobei sie jedoch
neu angepasst werden müssen
auf der Basis der Größen der
Decodierer-Eingangspuffer VB_A, VB_B und VB_C, der Bitraten und
dem Pufferfüllstand,
d. h. BudgetMA = 1/2VBV_A + (gewünschte
Bitrate für
Strom A nach dem Transrating) × MA/PA – VBV_A Füllstand,
wobei PA die Bildrate des Stroms A darstellt, wobei VBV_A den Ausgangspuffer
des Codeumsetzers für
Strom A darstellt (gleich dem Eingangspuffer des Decodierers an
diesem Enden), etc. und BudgetS = BudgetA + BudgetB + BudgetC. Wenn
das vorher berechnete Budget höher
ist als target + potential_bitsn (Ziel + potenzielle_Bitsn), so wrid das Budget neu angepasst, so
dass es unter target + potential_bitsn liegt. Anfängliche
Schwellen- bzw.
Grenzwerte TA1, TB1 und TC1 werden auf der Basis der Budgets und
der Raten der Bilder JA, JB und JC bestimmt, d. h. es handelt sich
dabei um anpassbare Parameter, welche Toleranzen einer fehlenden Übereinstimmung zwischen
BitsMA und BudgetMA, BitsMB und BudgetMB sowie BitsMC und BudgetMC
dartellen. Zum Beispiel sieht die Codeumsetzersteuerung die Bitrate der
Bilder MA + 1, MA + 2, ..., MA + (JA – MA) vorher; wenn die Rate
höher oder
niedriger ist als erwartet, so wird der Schwellenwert TA1 entsprechend
niedriger/höher
festgelegt.
-
Wenn
die fehlende Übereinstimmung
zwischen BitsMA und BudgetMA sich innerhalb des Toleranzbereichs
befindet, so wird ein Kennzeichen bzw. eine Flagge FlagMApass auf
Eins gesetzt, um anzuzeigen, dass die Transrating-Steuerung den Strom
der MA-Bilder ohne Ratenreduzierung hindurch lässt. Die Flagge stellt einen
temporären
Status da, da die Transrating-Steuerung den Status unter Bedingungen,
die nachstehend beschrieben werden, verändern kann. Wenn eine und nur
eine der Flaggen, wie etwa FlagMApass weiterhin auf Null gesetzt
ist, was einen Zustand außerhalb
des Toleranzbereichs in Bezug auf das entsprechende Budget darstellt,
so wird ein Ratenreduzierungsverhältnis RA für diesen Strom als RA=BitsMA-(BudgetS-BitsMB-BitsMC)
bestimmt. Wenn RA größer ist als
ein zweiter Schwellenwert T2, d. h. zu hoch, so verschlechtert sich
die Qualität
des Stroms A über den
Toleranzbereich hinaus, da nu ein Strom eine Transrating unterzogen
wird. Wenn das Ratenreduzierungsverhältnis zu hoch ist, so wird
für eines
der anderen Videosignale dessen Flagge auf Null zurückgesetzt
auf der Basis der kleinsten fehlenden Übereinstimmung zwischen der
Bitrate und dem Bitratenbudget. Der Schwellenwert TA2 stellt einen
anwendungsabhängigen
und anpassbaren Parameter dar, welcher den Toleranzbereich der Verschlechterung
der Videoqualität
darstellt.
-
Wenn
zwei Flaggen auf Null gesetzt sind, werden die Ratenreduzierungsverhältnisse
für die beiden
entsprechenden Videos auf der Basis des Gesamtbudgets proportional
zugewiesen. Wenn zum Bespiel FlagMApas und FlagMBpass auf Null zurückgesetzt
werden, während
FlagMCpass gesetzt wird, gilt für
die Ratenreduzierung RA + RB = (BitsMA + BitsMB) – (BudgetS – BitsMC).
Die Ratenreduzierungen RA und RB werden proportional für die Ströme A und
B zugewiesen. Wenn RA und RB zu hoch sind im Vergleich zu den entsprechenden
Schwellenwerten TA2 und TB2 verschlechtert sich die Videoqualität der Ströme A und
B über
den Toleranzbereich hinaus. Um dies zu vermeiden, wird FlagMCpass
auf Null zurückgesetzt.
-
Wenn
FlagMApass gesetzt ist und das aktuelle Bild aus MA letzten Bildern
des Stroms einen Ausgangs-Frame darstellt, d. h. einen I- oder P-Frame,
so ist das aktuelle Bild codiert. Dieses decodierte Basisbandsignal
kann später
zur zukünftigen
Codeumsetzung eingesetzt werden oder nicht eingesetzt werden. Es
ist möglich,
dass zukünftige
Bilder in dem Pixelbereich einer Codeumsetzung unterzogen werden,
wobei dieses Basisbandbild benötigt
wird. Wenn das aktuelle Bild kein Ausgangsbild darstellt, wird der Strom
des aktuellen Bilds an einen Ausgangspuffer OBA in dem Speicher
des Transrating-Moduls gesendet, d. h. der Strom tritt einfach hindurch.
-
Wenn
FlagMApass nicht gesetzt ist, ist eine Ratenreduzierung erforderlich.
Ferner kann es sein, dass der Strom B und/oder der Strom C einem
Transrating unterzogen werden müssen,
so dass die Ratenreduzierung RA0 für das MA-Bild proportional
zugewiesen wird. Wenn die Ratenreduzierung geringfügig ist,
wird sie in dem Bereich des komprimierten Stroms implementiert,
ansonsten wird sie in dem Pixelbereich durch eine Decodierer-Codierer-Kaskade implementiert.
Diese Entscheidung basiert auf dem Wert WAHR oder FALSCH von RA0<TA3, wobei TA3 einen
dritten Schwellenwert darstellt, der einen anpassbaren und anwendungsabhängigen Parameter darstellt,
der einem Kompromiss zwischen der Geschwindigkeit des Transrating
und der Einheitlichkeit der Verschlechterung der Videoqualität bei unterschiedlichen
räumlichen
Frequenzen entspricht.
-
Wenn
das aktuelle Bild ein B-Bild darstellt, wird ein bildbezogener Parameter
Kb proportional bestimmt auf der Basis der erforderlichen Ratenreduzierung.
Nach der variablen Längendecodierung
werden die Koeffizienten Kb DCT, welche die höchsten räumlichen Koeffizienten darstellen,
in jedem Block auf Null zurückgesetzt,
um die Bildrate zu reduzieren. Die Gesamtanzahl der DCT-Koeffizienten
beträgt
in einem Block von 8 × 8
allgemein 64. Einige dieser Koeffizienten können einen Wert von Null aufweisen. Wenn
einige der Kb Koeffizienten in einem DCT-Block bereits gleich Null
sind, so werden weniger als Kb Koeffizienten auf Null zurückgesetzt,
wobei eine obere Begrenzung darstellt, welche der Beschränkung der
Einheitlichkeit der Verschlechterung der Videoqualität bei unterschiedlichen
räumlichen Frequenzen
unterliegt. Nach dem Zurücksetzen
der Kb höchsten
räumlichen
Frequenzkoeffizienten nimmt der Codeumsetzer eine VLC-Codierung
vor und berechnet eine neue Bildrate. Wenn die neue Rate nicht nah
an der gewünschten
Rate liegt, springt die Codeumsetzer-Steuereinrichtung zurück, um den Kb
Parameter zu modifizieren, und die Schleife beginnt von Neuem, bis
die gewünschte
Ratenreduzierung erreicht wird. Bei dem Parameter Kb handelt es sich
um eine bildweite Konstante, die von B-Frame zu B-Frame variiert. Zur Vermeidung
eines erkennbaren Ungleichgewichts der Videoqualität zwischen B-Bildern
und Ausgangsbildern vermeidet der Codeumsetzer die unzweckmäßige Auswahl
eines hohen Wertes für
Kb, so dass die Ratenreduzierung für das B-Bild innerhalb von TA3 liegt. Wenn die
Ratenreduzierung über
TA3 und gleichzeitig unter einem anderen Schwellenwert TA4 liegt,
wird an dem B-Bild eine neue Quantisierung vorgenommen, d. h. etwaige DCT-Koeffizienten
unterhalb eines Schwellenwertes Tq werden auf Null zurückgesetzt.
Tq wird iterativ angepasst, bis die gewünschte Ratenreduzierung erreicht
worden ist.
-
Wenn
die Ratenreduzierungsanforderung höher ist als TA4, so wird eine
Decodierer-Codierer-Kaskade
in dem Pixelbereich eingesetzt für
ein Transrating für
ein, zwei oder drei Segmente des Stroms. Da die Datensegmente des
Stroms vorab in den drei Eingangspuffern gespeichert werden, sind die
Puffer ausreichend lang, damit die Codeumsetzer-Steuereinrichtung das mögliche Geschwindigkeitsproblem
vorhersehen und es versuchen kann, das Transrating aller drei Segmente
der Ströme
in dem Pixelbereich zu vermeiden, was eine höhere Geschwindigkeit erfordern
kann als die Geschwindigkeit, die der Prozessor bearbeiten kann.
Der Puffer wirkt unterstützend
in Bezug auf eine Entspannung der erforderlichen Spitzengeschwindigkeit
durch eine größere Ratenreduzierung
als wie dies aktuell erforderlich ist, um die Pufferbelegung ausreichend
gering zu gestalten, um eine zukünftige
Anforderung hinsichtlich der Reduzierung der Spitzenrate zu entspannen,
oder durch Ablegen von mehr Bits in Puffern als wie dies bei einem
Spitzenwert wünschenswert
ist, wenn es sich bei Bildern nach diesem Spitzenwert um Bilder
mit geringer Rate handelt, d. h. um die Spitzenrate bei hohem Verhältnis nicht
zu reduzieren, so dass das Transrating nicht in dem Pixelbereich
ausgeführt
werden muss.
-
Wenn
ein Transrating aller drei Segmente des Stroms in dem Pixelbereich
unvermeidbar ist, so kann die Codeumsetzer-Steuereinrichtung die
Spitzenratenreduzierung innerhalb eines längeren Zeitraums als dem gewünschten
Zeitraum ausführen, ohne
einen Verlust der Synchronisierung ZU bewirken, da in den Ausgangspuffern
abgelegte Bilder nach einer Verzögerung
erfasst werden, wie dies in der gleichzeitig anhängigen U. S. Patentanmeldung 09/535.676,
eingereicht am 23. März
2000, von Mayer Schwartz et al mit dem Titel "Demultiplexing a Statistically Multiplexed
MPEG Transport Stream into CBR Single Program Transport Stream" beschrieben ist.
Nachdem ein Bild hindurch getreten ist oder einem Transrating unterzogen
worden ist, wird das Bild zu dem Ausgangspuffer bewegt, wobei ein
neues Bild in den Eingangspuffer geladen wird, und wobei die Steuerparameter
zurückgesetzt
werden. Das Verfahren fährt
mit dem nächsten
Bild in jedem Videostrom fort.
-
Wenn
es sich bei einem der Videoströme
um ein Prioritätsvideosignal
handelt, wie etwa eine aktive Sportveranstaltung, wobei die Bitrate
den Großteil der
Leitung in Anspruch nimmt, d. h. die durchschnittliche Bitrate beträgt 4 Mbps
oder mehr, so können
die anderen beiden Videoströme
durch das Teilnehmerprofil unterdrückt und dem Teilnehmer nicht
angezeigt werden, während
das Sportvideo zur primären Ansicht
ausgewählt
ist. Zum Zeitpunkt einer Dienstanforderung durch den Teilnehmer,
wenn der Teilnehmer bis zu drei Programmströme anfordert:
- (a) wenn drei Ströme
empfangen werden und der Teilnehmer einen Sport- oder Pay-per-View-Kanal (PPV-Kanal)
einschaltet, hat der Teilnehmer die Wahl, sich den Kanal mit der
verfügbaren
Bitrate anzusehen oder einen der anderen Programmströme "abzuwählen", um eine bessere
Bitrate zu erhalten; oder
- (b) wenn weniger als drei Programmströme empfangen werden und einer
einen Dienst mit hoher Anforderung darstellt, wie etwa Ports oder
PPV, so würde
dieser Strom die höhere
Bitrate verwenden, und es würde
verhindert, dass ein zusätzlicher
Programmstrom diesem Teilnehmer-Mix hinzugefügt wird, bis der Kanal mit
hoher Anforderung erschöpft
ist.
-
Diese
Modi können
in den meisten Fällen wählbar sein
und durch den Teilnehmer in einer Settop-Box (STB) konfiguriert
werden, so dass das Teilnehmerprofil festgelegt wird, und dies kann
zu dem Algorithmus der vorliegenden Erfindung kommuniziert werden.
-
Vorgesehen
ist gemäß der vorliegenden
Erfindung die Raten- und Übermittlungszeit-Multiplexierung zur
Bandbreitenoptimierung innerhalb einer Leitung mit konstanter Bitrate,
indem zuerst die Anzahl der Bits für jede Gruppe von Bildern zugewiesen
und danach ein Transrating der Bilder in der Gruppe von Bildern
ausgeführt
wird, wobei die Gesamtanzahl der Bits für die Gruppe von Bildern innerhalb
eines Berücksichtigungsbereichs
größer ist
als eine Gesamtanzahl der verfügbaren
Bits nach dem Zulassen der Bitentleihung. Das Transrating kann in
dem komprimierten Bereich erfolgen, wo die Bitreduzierung gering
ist, entweder durch Nullstellung der höchsten Raumfrequenzlcoeffizienten
oder durch neue Quantisierung, oder in dem Pixelbereich durch Codeumsetzung
dort, wo die Bitreduzierung hoch ist.