-
Die
vorliegende Erfindung bezieht sich auf einen Signalprozessor. Die
Erfindung betrifft das Verbinden, hier anschließend als Zusammenfügen bezeichnet,
von digitalen Bitströmen,
die komprimiert sind. Ausführungsformen
der Erfindung, die hier beschrieben sind, betreffen das Zusammenfügen digitaler
Videobitströme,
welche gemäß der MPEG-2-Norm
komprimiert sind.
-
Die
Erfindung und deren Hintergrund werden mittels eines Beispiels in
Bezug auf MPEG-2-Videobitströme
beschrieben. Die Erfindung ist jedoch nicht auf MPEG-2 begrenzt.
-
MPEG-2
ist aus beispielsweise ISO/IEC/13818-2 bekannt und wird hier nicht
ausführlich
beschrieben. Das Zusammenfügen
von Video ist ebenfalls bekannt. Das Zusammenfügen analoger Signale ist relativ
unkompliziert und kann an der Grenze zwischen benachbarten Rahmen
ausgeführt
werden, da jeder analoge Rahmen die Gesamtheit der Videoinformation
dieses Rahmens unabhängig
von anderen Rahmen enthält.
Das Zusammenfügen
kann ähnlich
auf dem digitalen Gebiet für
sowohl komprimierte als auch nichtkomprimierte Videodaten durchgeführt werden,
wenn alle Rahmen die gesamte Videoinformation des Rahmens enthalten.
-
MPEG-2-komprimiertes
Video umfasst Gruppen von I-, P- und/oder B-Rahmen, die als GOPs
(Bildgruppen) bekannt sind. I-, P- und B-Rahmen sind ebenfalls bekannt.
Ein I- oder intra-codierter
Rahmen enthält die
gesamte Information des Rahmens unabhängig von jedem anderen Rahmen.
Ein P-Rahmen in einer GOP hängt
schließlich
von einem I-Rahmen ab und kann von anderen P-Rahmen abhängen. Ein
B-Rahmen einer GOP hängt
schließlich
von einem I-Rahmen ab und kann von P-Rahmen in der GOP abhängen. Ein
P-Rahmen muss nicht von einem anderen B-Rahmen abhängen.
-
Eine
GOP weist üblicherweise
12 oder 15 Rahmen auf, die zumindest einen I-Rahmen und mehrere P- und B-Rahmen umfassen.
Um eine GOP korrekt zu decodieren, erfordert dies alle Rahmen der
GOP, da ein großer
Teil der Videoinformation, die erforderlich ist, einen B-Rahmen
in der GOP zu decodieren, in einem vorhergehenden und/oder nachfolgenden
Rahmen der GOP ist. Ebenso ist ein großer Teil der Videoinformation, die
erforderlich ist, einen P-Rahmen zu decodieren, in einem vorhergehenden
Rahmen der GOP.
-
Wenn
somit zwei unterschiedliche Bitströme zusammen in einem komprimierten
Bereich zusammengefügt
werden, ist es wahrscheinlich, dass die Information, die notwendig
ist, Rahmen jeder Seite vom Zusammenfügungspunkt zu decodieren, verloren
wird.
-
Viele
Abhandlungen wurden betreffs des Zusammenfügens komprimierter Bitströme geschrieben,
was ein bekanntes Problem bei MPEG ist. Eine Abhandlung "Flexible Switching
and Editing of MPEG-2 Video Bitstreams" von P. J. Brightwell, S. J. Dancer
und M. J. Knee wurde veröffentlicht
in "Atlantic Technical
Papers 1996/1997",
dessen Einleitung mit September 1997 datiert ist.
-
Die
Abhandlung erläutert
die Probleme des Zusammenfügens
von MPEG-2-Videobitströmen.
Zwei Bitströme
A und B, die zusammenzufügen
sind, werden in entsprechenden Decodern decodiert. Ein Codierer wird
vom Decoder A zum Decoder B am Zusammenfügungspunkt umgeschaltet. Diese
offenbart, dass in der Nähe
eines Zusammenfügungspunkts,
wo ein Bitstrom A durch einen Bitstrom B ersetzt wird, die folgenden Modifikationen
durchgeführt
werden.
-
Die
Bildart kann geändert
werden, um eine geeignetere Auffrischstrategie rundum den Schaltpunkt
bereitzustellen. Im Beispiel unten wird der erste P-Rahmen im Bitstrom
B nach dem Schalten in einem I-Rahmen umgesetzt, um volles Auffrischen
in der neuen Szene früh
bereitzustellen. Ein Bitstrom A enthält außerdem einen I-Rahmen unmittelbar
vor dem Schaltpunkt – da
dies nicht notwendig ist, wird dieser als ein P-Rahmen aufgezeichnet,
um Bits zu sparen. Schaltpunkt
-
Vorhersagemoden
und Bewegungsvektoren können
Modifikation erfordern, um jegliche Änderungen in der Bildart beim
Umcodieren in Betracht zu ziehen, oder um jegliche Vorhersagen zu
verhindern, welche über
das Schalten beim Umcodieren gemacht werden. Im Beispiel oben werden
Makroblöcke,
welche ursprünglich
für vorwärts- oder
bidirektionale Vorhersage für
den B-Rahmen verwendet werden, der auf den Schaltpunkt folgt, unter
Verwendung des Intra-Modus bzw. der Rückwärtsvorhersage umcodiert. Außerdem sind
Vektoren für
den I-Rahmen erforderlich, der als ein P-Rahmen umcodiert wird – diese
können
von den Vektoren in umgebenden Rahmen geschätzt werden oder von I-Rahmen-Verbergungsvektoren
genommen werden, welche viele MPEG-2-Bitströme tragen.
-
Die
Quantisierungsparameter werden als Teil der Ratensteuerstrategie
von Umcodierern geändert. Wie
bei einem herkömmlichen
Codierer bezweckt dies, die Puffer-Trajektorie eines stromabwärtigen Decoders zu
steuern, um Unterlaufen oder Überlaufen
zu verhindern und um die Bildqualität so hoch wie möglich beizubehalten.
Außerdem
verwendet der Ratensteueralgorithmus für das Atlantik-Umschalten die
Vbv-Verzögerungswerte
in Bitströmen
A und B (welche im Info-Bus befördert
werden), um zu bewirken, dass die Puffer-Trajektorie für den geschalteten Bitstrom
identisch ist mit der für
den Bitstrom B in einiger Zukunft (d.h., der eine wird umgeschaltet).
In Abhängigkeit
von den relativen vbv_Verzögerungswerten
kann dies bald nach dem Schalten vorkommen, oder es kann eine Erholungsperiode
von wenigern GOPs erforderlich sein. Wenn dies erreicht ist, werden
Quantisierungsparameter des Umcodierers auf die des Bitstroms B
verriegelt, und das Schalten wird transparent.
-
Die
Quantisierungsparameter können
ebenfalls geändert
werden, um den Vorteil des Effekts zu nutzen, der als temporäres Maskieren
bekannt ist. Dies bezieht sich auf die Unfähigkeit der Augen, moderat
zu sehen, oder sogar auf große
Mengen an Rauschen rundum eine Szenenänderung – üblicherweise 5 dB einer Verschlechterung
im Rahmen nach dem Umschalten können
nicht gesehen werden – und
erlaubt, welche die Anzahl von Bits für Rahmen sehr nahe am Schaltpunkt
verwendet werden, reduziert, wodurch eine kürzere Wiederherstellungsperiode
zugelassen wird.
-
"Vbv-Verzögerungswerte" sind Messgrößen der
Anzahl von Bits im Puffer des stromabwärtigen Decoders. Die Art und
Weise, mit der die "Puffer-Trajektorie" für den umgeschalteten
Bitstrom identisch zu der für den
Bitstrom B gemacht wird, ist in der Abhandlung nicht offenbart.
Außerdem
kann die Zeitraum, über
welchem dies passiert, "bald
nachdem dem Umschalten" oder
nach wenigen GOPs sein.
-
Wie
oben erwähnt
kann Zusammenfügung
in dem digitalen Bereich für
einen komprimierten Bitstrom ausgeführt werden, wenn alle Rahmen
die gesamte Videoinformation des Rahmens enthalten. Somit wurde für MPEG vorgeschlagen,
komprimierte Bitströme
zu editieren, die lediglich I-Rahmen. Das ist Standardpraxis in
Studios geworden, um das Editieren zu erleichtern.
-
Die
vorliegende Erfindung schlägt
das Umsetzen von zwei Bitströmen,
die zusammenzufügen
sind, vor, und umfasst beispielsweise GOPs von 12 oder 15 Rahmen,
für alle
I-Rahmen das Zusammenfügen
der I-Rahmen von zwei Bitströmen;
und das Umcodieren der zusammengefügten Bitströme als GOPs von I- und P- und/oder
B-Rahmen.
-
Das
Umsetzen aller Rahmen, gleich ob I-, P- und/oder B in I-Rahmen,
um diese in I-, P- und B-Rahmen zusammenzufügen und erneut umzusetzen,
hat nach dem Zusammenfügen
einen Verlust der Bildqualität
zur Folge.
-
Es
wird gewünscht,
die Bildqualität
so hoch wie möglich
beizubehalten.
-
Gemäß der vorliegenden
Erfindung wird ein Signalprozessor zum Zusammenfügen eines komprimierten Videobitstroms
B0 mit einem komprimierten Videobitstrom
A0 bereitgestellt, um einen komprimierten
Videobitstrom C zu bilden, wobei die Bitströme A0,
B0 und C GOPs haben, die I-Rahmen und P-
und/oder B-Rahmen enthalten, wobei die Bitströme A0 und
B0 Codierparameter haben, welche für das Codieren
bezeichnend sind, welches durchgeführt wird, um die Bitströme A0 bzw. B0 zu erzeugen,
wobei der Prozessor aufweist:
einen ersten und einen zweiten
Eingang zum Empfangen der Bitströme
A0 bzw. B0;
eine
erste Einrichtung zum erneuten Codieren der Bitströme A0 und B0, um erneut – codierte
Bitströme
AI bzw. BI zu bilden,
die lediglich I-Rahmen haben, wobei die Codierparameter der Rahmen
der Bitströme
A0 und B0 unverändert in
Verbindung mit den entsprechenden Rahmen der Bitströme AI und BI gespeichert
sind;
eine Einrichtung zum Zusammenfügen des Bitstroms AI mit dem Bitstrom AI an
einem Zusammenfügungspunkt,
um einen zusammengefügten
I-Rahmen-Bitstrom (AI/BI)
zu erzeugen;
eine zweite Einrichtung zum erneuten Codieren
des zusammengefügten
I-Rahmen-Bitstroms
(AI/BI), um den Bitstrom
C zur Lieferung zu einem stromabwärtigen Decoder zu bilden, der
einen stromabwärtigen
Puffer hat, wobei eine Belegung eines derartigen stromabwärtigen Puffers
abhängig
ist von der Anzahl von Bits, mit denen Rahmen des zusammengefügten I-Rahmen-Bitstroms
(AI/BI) durch die
zweite Einrichtung erneut codiert sind, wobei eine stromabwärtige Pufferbelegung
des Bitstroms C über
einen Übergangsbereich
gesteuert wird, der eine Übergangs-GOP
hat, die den Zusammenfügungspunkt
aufweist, so dass die stromabwärtige
Pufferbelegung des Bitstroms C sich über die Dauer des Übergangsbereichs
von einer stromabwärtigen
Pufferbelegung äquivalent
zu der eines Bitstroms A0 zu einer stromabwärtigen Pufferbelegung äquivalent
zu der des Bitstroms B0 ändert; und
wobei die Rahmen
des Bitstroms AI vor dem Übergangsbereich
unter Verwendung der gespeicherten Codierparameter der jeweiligen
Rahmen des Bitstroms A0 erneut codiert werden
und die Rahmen des Bitstroms BI nach dem Übergangsbereich
unter Verwendung der gespeicherten Codierparameter der jeweiligen
Rahmen des Bitstroms B0 erneut codiert werden.
-
Durch
erneutes Codieren von Parametern der Rahmen vor und nach dem Übergangsbereich
(der den Zusammenfügungspunkt
umfasst) wird die Reduzierung der Bildqualität minimiert. Aufgrund von Differenzen der
vbv-Belegung der ursprünglichen
Bitströme
A0 und B0 kann der
stromabwärtige
Puffer jedoch überlaufen oder
unterlaufen. Durch Steuern der Belegung des zusammengefügten Bitstroms
im Übertragungsbereich kann Überlaufen
oder Unterlaufen des stromabwärtigen
Puffers vermieden werden.
-
Um
die vorliegende Erfindung besser zu verstehen, wird nun beispielhaft
auf die beiliegenden Zeichnungen bezuggenommen, in denen:
-
1 ein
Zeitablaufdiagramm ist, welches das Zusammenfügen eines Bitstroms B0 mit einem Bitstrom A0 gemäß einem
Beispiel der vorliegenden Erfindung zeigt;
-
2 einen
Bereich R des Flussdiagramms von 1 ausführlicher
zeigt;
-
3A ein
schematisches Blockdiagramm eines Signalprozessorbeispiels nach
der vorliegenden Erfindung ist;
-
3B eine
Modifikation von 3A zeigt;
-
4 beispielhafte
GOPs in Anzeigereihenfolge und die Anwendung der beispielhaften
Bildartentscheidungen zeigt;
-
5 die
GOPs von 4 in Verarbeitungsreihenfolge
zeigt;
-
6 und 7 jeweils
beispielhafte Werte der VBV-Belegung und der verbleibenden Bit-GOP
für die GOPs
von 4 für
eine Ausführungsform
der Erfindung zeigt;
-
8 beispielhafte
Werte der VBV-Belegung und der Restbit-GOP für die GOPs von 4 für eine andere
Ausführungsform
der Erfindung zeigt;
-
9 beispielhafte
Werte der VBV-Belegung für
die GOPs von 4 für eine weitere Ausführungsform
der Erfindung zeigt; und
-
10A, B und C ein Flussdiagramm ist, welches die
Art und Weise zeigt, mit der die Belegung im Übergangsbereich bei einer weiteren
Ausführungsform
der Erfindung gesteuert wird.
-
Umcodierungsparameter
-
I-Rahmen
haben die folgenden Umcodierungsparameter, die bei MPEG bekannt
sind.
-
DCT_Art,
Q und Q_Matrix, welche bei Ausführungsformen
der vorliegenden Erfindung erneut verwendet werden, sind unten beschrieben.
Diese Parameter werden beim Aufzeichnen von I-Rahmen unter erneuter Verwendung
von Parametern erneut verwendet.
-
P-
und B-Rahmen haben die Parameter DCT_Art, Q, Q_Matrix, Pred_Art,
MB-Modus und Bewegungsvektoren.
Diese Parameter werden beim erneuten Codieren von P- und B-Rahmen
unter erneuter Verwendung von Parametern erneut verwendet. Diese
Parameter werden erneut berechnet, wenn alle Rahmen völlig umcodiert
werden.
-
Überblick
-
Gemäß 1, 3A und 4 sind
zwei Bitströme
A0 und B0 MPEG-2-codiert
mit GOPs, die 12 Rahmen umfassen. In diesem Beispiel haben die Bitströme A0 und B0 die GOP-Struktur:
IBBPBBPBBPBB
wie
in 4 gezeigt ist. Die Bitströme können jedoch eine andere GOP-Struktur,
welche durch MPEG-2 zugelassen ist, haben. Die beiden Bitströme A0 und B0 haben unterschiedliche
GOP-Strukturen. Um die Erläuterung zu
vereinfachen, wird angenommen, dass die Bitströme A0 und
B0 die gleiche GOP-Struktur – wie in 4 gezeigt – haben.
-
Es
wird gewünscht,
den Bitstrom A0 durch den Bitstrom B0 zu ersetzen. Wie in 1 und 3A gezeigt
ist, werden zunächst
A0 und B0 decodiert.
Wenn A0 und B0 als
AI und BI decodiert
und umcodiert werden, werden die MPEG-Parameter aller Rahmen der
ursprünglichen
Bitströme
A0 und B0 in Verbindung
mit den umcodierten entsprechenden Rahmen von AI und
BI gespeichert. I-Rahmen von A0 und
B0 werden als I-Rahmen der Bitströme AI und BI unter Verwendung
der gleichen Umcodierungsparameter, welche sie in A0 und
B0 hatten, gespeichert. P- und B-Rahmen
von A0 und B0 werden
als I-Rahmen in AI und BI umcodiert,
wobei jedoch deren ursprüngliche
MPEG-Parameter gespeichert werden. Die MPEG-Parameter werden im umcodierten Bitstrom
AI, BI als beispielsweise
Benutzerdaten gespeichert.
-
Wenn
ein Bediener entscheidet, die umcodierten Bitströme BI und
AI zusammenzufügen, betätigt der Bediener den Schalter
S1, so dass AI zu einem Speicher 12 bis
zum Zusammenfügungspunkt
geleitet wird und BI zum Speicher 12 nach
dem Zusammenfügungspunkt
geleitet wird, so dass der Speicher 12 einen zusammengefügten Bitstrom
AI/BI speichert,
mit einem Zusammenfügungspunkt
zwischen einem Rahmen AI und einem Rahmen BI.
-
Der
zusammengefügte
Bitstrom AI/BI wird
zum Basisband decodiert und in einem Codierer 4 als eine GOP
C der Form, die in 4 gezeigt ist, rückcodiert.
-
Bei
einer bevorzugten Ausführungsform,
welche in 3B gezeigt ist, werden die Bitströme in entsprechenden
Speichern 14 und 16 stromaufwärts vom Schalter S1 gespeichert,
bevor sie zusammengefügt werden.
Der zusammengefügte
Bitstrom AI/BI wird
in ei nem weiteren Speicher 12 gespeichert. Die Speicher 14, 16 und 12 können beispielsweise
digitale Videobandrekorder, I-Rahmenserver und/oder Plattenrekorder sein.
Aktuell geeignete VTRs arbeiten mit einer Datenübertragungsrate von 50 Mbit/s
zur Kompatibilität
mit I-Rahmen.
-
In 1 ist
der Zusammenfügungspunkt
SPLICE gezeigt. Am Zusammenfügungspunkt
schaltet der Schalter S1 beispielsweise den Bitstrom AI auf
den Bitstrom BI. Wenn die zusammengefügten Bitströme umzucodieren
bzw. rückzucodieren
sind, werden sie zum Codierer 4 geführt. Im Beispiel von 1 und 4 findet
volles Umcodieren, d.h., ohne erneutes Verwenden der MPEG-Parameter
in einem Übergangsbereich beginnend
in Bezug auf den Bitstrom AI fünf Rahmen
vor dem Zusammenfügungspunkt
SPLICE statt. Der Grund dafür
wird unten erläutert.
-
Vor
dem Beginn des Übergangsbereichs
(d.h., mehr als 5 Rahmen vor SPLICE) wird der Bitstrom AI unter erneuter Verwendung der MPEG-Parameter,
welche vom ursprünglichen
Bitstrom A0 hergeleitet werden, umcodiert.
-
Nach
dem Zusammenfügungspunkt
SPLICE wird der Bitstrom BI für den Rest
der Übergangsperiode völlig umcodiert,
während
der VBV_Verriegelung erlangt wird, wie unten erläutert wird. Wenn VBV_Verriegelung
erlangt wird, fährt
das Umcodieren des Bitstroms BI fort, jedoch
mit der erneuten Verwendung der MPEG-Parameter, welche vom ursprünglichen
Bitstrom B0 hergeleitet werden.
-
Der
zusammengefügte
und der umcodierte Bitstrom C, der durch den Prozessor P und den
Codierer 4 erzeugt wird, wird zu einem stromabwärtigen Decoder 2 geführt, wo
der Bitstrom C beispielsweise zur Anzeige decodiert wird. Der stromabwärtige Decoder 2 kann
beispielsweise in einem Heimfernsehempfänger sein. Der Prozessor P
kann in einem Studio sein.
-
In 3A und 3B wird
der zusammengefügte
Bitstrom AI/BI im
I-Rahmenspeicher 12 gespeichert, bevor er umcodiert wird.
Ein Markierer, der den Zusammenfügungspunkt
markiert, wird im Bitstrom beispielsweise in Benutzerbits aufgezeichnet.
-
Zeitliche Referenz
-
Eine
zeitliche Referenz, bekannt bei MPEG, ist eine Referenz, welche
jeden Rahmen von einem GOP-Datenkopf inkrementiert. Es gibt üblicherweise
einen GOP-Datenkopf pro GOP, und die zeitliche Referenz inkrementiert
bezüglich
jeden Rahmen der GOP. Alternativ gibt es einen Datenkopf am Kopf
einer Sequenz von GOPs, und die zeitliche Referenz inkrementiert
von diesem Datenkopf einmal pro Rahmen. Dies erlaubt, dass Positionen
von Rahmen in einer GOP nachgeführt
werden können.
Die zeitlichen Referenzen für die
GOPs der Bitströme
A0 und B0 sind in
den I-Rahmen-Bitströmen
AI und BI gespeichert.
-
Bildartentscheidungen
-
Im Übergangsbereich,
der in 1 gezeigt ist, werden folgende Bildart-Entscheidungsregeln
angewandt. Die Regeln werden bei dem Umcodieren der I-Rahmen AI und BI angewandt
und definieren die Rahmenarten, für welche die I-Rahmen erneut
zu codieren sind. Die Entscheidungen werden auf Basis der Rahmenart,
die der in Frage stehenden I-Rahmens im ursprünglichen Bitstrom A0 oder B0 hatte,
getroffen. Die Information wird im Bitstrom mit den I-Rahmen der
Bitströme
AI und BI erhalten.
-
Somit
wird ein I-Rahmen des Bitstroms AI auf dessen
frühere
Art bezogen, beispielsweise I0, P0 oder B0, wie in 4 gezeigt
ist.
-
Der
Bitstrom wird – in
diesem Beispiel AI – vor dem Zusammenfügen umcodiert,
so dass:
- (1) die beiden "I0"- oder "P0"-Rahmen vor der Zusammenfügung umgesetzt
werden auf "P";
- (2) wenn der letzte Rahmen vor dem Zusammenfügen ein "B0"-Rahmen ist, wird
dieser umgesetzt auf "P".
Der Bitstrom
wird – in
diesem Beispiel BI – nach der Zusammenfügung umcodiert,
so dass:
- (3) der erste "I0"-
oder "P0"-Rahmen nach dem
Zusammenfügen
umgesetzt wird auf "I"; und
- (4) wenn die erste GOP nach dem Zusammenfügen und nach der Anwendung
der Regeln (3) weniger als drei "P"-Rahmen enthält, der
erste "I0"-Rahmen
der nachfolgenden GOP auf "P" umgesetzt wird,
wodurch die GOP bezüglich
der Länge
erweitert wird.
-
Eine
neue Übergangs-GOP
beginnt mit einem I-Rahmen bei der Zusammenfügung, und die neue GOP kann
bezüglich
der Länge
anders sein als die vorhergehenden (und nachfolgenden) GOPs im Bitstrom B0. Die neue GOP ist in Wirklichkeit eine
Vorhersage, wo VBV_Verriegelung zu erzielen ist. Die Anwendung dieser
Regeln ist in 4 bei (1), (2), (3) und (4)
gezeigt.
-
In 4 ist:
A
der Bitstrom A0 (vor Umcodierung wie alle
I-Rahmen AI),
B der Bitstrom B0 (vor Umcodieren wie alle I-Rahmen BI),
C der zusammengefügte Bitstrom
(nach Umcodieren aller I-Rahmen des zusammengefügten Bitstroms AI/BI am Ausgang C des Codierers 4),
als ob die Bildartentscheidungen nicht getroffen wurden, und
C' der zusammengefügte Bitstrom
am Ausgang C des Codierers 4, wobei die Bildartentscheidungen
dafür angewandt
sind.
-
Durch
Anwendung von Regel (2) wird der "B0"-Rahmen von AI unmittelbar vor der Zusammenfügung auf
P umgesetzt. Durch Anwendung von Regel (1) auf den I0-Rahmen
von AI vor der Zusammenfügung ebenfalls auf P umgesetzt.
-
Durch
Anwendung von Regel (3) wird der erste "P0"-Rahmen des Stroms
BI nach der Zusammensetzung auf I im Strom
CI umgesetzt.
-
Durch
Anwendung von Regel (4) hat die GOP des Bitstroms BI nach
der Zusammenfügung
(nach Umsetzung des ersten P-Rahmens auf I) weniger als 3 "P0"-Rahmen. Dafür wird der
nächste "I0"-Rahmen auf "P" umgesetzt. Die Anwendung dieser Regeln
ergibt eine GOP, welche einen Vorhersage-VBV_Verriegelungs-Punkt
gibt, wie unten erläutert
wird.
-
Verarbeitungsreihenfolge
-
4 zeigt
die Rahmen der Bitströme
in der Reihenfolge, in welcher sie angezeigt werden oder angezeigt
werden würden. 5 zeigt
die Reihenfolge, mit der die Rahmen verarbeitet werden. Beispielsweise sind
in 4 (Anzeigereihenfolge) der Rahmen 0, 1 und 2 des
Bitstroms A0 in dieser Reihenfolge gezeigt.
Sogar, obwohl die B-Rahmen 0 und 1 vor dem I-Rahmen 2 angezeigt
würden,
hängen
sie vom I-Rahmen 2 ab, der zu decodieren ist. Somit muss, um diese
zu decodieren, der I-Rahmen 2 den B-Rahmen, wie in 5 gezeigt
ist, vorhergehen. In gleicher Weise hängen die B-Rahmen 3 und 4 von 4 vom
P-Rahmen 5 von 4 ab; somit wird in 5 der
P-Rahmen 5 von 4 zum P-Rahmen 3, der den beiden
B-Rahmen vorhergeht.
-
Konstante Bitrate
-
Das
Beispiel des Prozessors von 3A oder 3B hat
eine konstante Bitrate. Die Bitströme A0,
B0 haben eine feste Bitrate, und der Codierer 4 erzeugt
am Ausgang C des Codierers 4 eine konstante Bitrate.
-
Stromabwärtiger Decoder
und Puffer
-
Der
stromabwärtige
Decoder 2 hat einen Puffer 8. Das Codieren, welches
im Codierer 4 des Prozessors stattfindet, ist so eingerichtet,
dass der Puffer 8 des stromabwärtigen Decoders 2 weder überläuft noch unterläuft. 6, 7 und 8 zeigen
die Arbeitsweise des stromabwärtigen
Puffers 8 des stromabwärtigen
Decoders 2.
-
(Der
Codierer 4 hat einen entsprechenden Puffer und arbeitet
wie der inverse Puffer, der in 6, 7 und 8 gezeigt
ist).
-
Folgendes
sind bekannte MPEG-Ratensteuerparameter.
-
VBV
-
VBV
ist ein virtueller Pufferverifizierer. Dieser ist eine Messgröße der Anzahl
von Bits, welche im stromabwärtigen
Puffer 8 sein würden.
-
Restbit-GOP
-
Am
Beginn einer GOP ist diese ein Ziel für die gesamte GOP. Diese ist
eine Zielzahl für
die gesamte Anzahl von Bits für
den Rest der aktuellen GOP. Sie wird reduziert, wenn die GOP fortschreitet.
Komplexität X, Konstanten
Kp, Kb und N, Np, Nb
N ist die Anzahl von Bildern in einer
GOP
Np ist die Anzahl von P-Rahmen, die in einer GOP verbleiben
Nb
ist die Anzahl von B-Rahmen, welche in einer GOP verbleiben
-
Kp
und Kb sind "universelle" Schätzungen
in Abhängigkeit
von Quantisierungsmatrizen. Sie definieren (indirekt) die Relativgrößen von
I-, P- und B-Rahmen. Xi, Xp, Xb sind "Komplexitätsmessgrößen" für
I-, P- und B-Rahmen.
-
Diese
Parameter werden in einer bekannten Art und Weise verwendet, um
die Bits einer GOP unter I-, P- und B-Rahmen zu verteilen.
-
Sie
werden weiter erläutert
in "Test Model 5", veröffentlicht
durch "International
Organisation for Standardisation Organisation Internationale De
Normalisation Coded Representation of Picture and Audio Information
ISO/IEC JTCI/SC29/WG11/N0400".
-
Erzielung von VBV-Verriegelung
-
Wie
oben erläutert
soll der stromabwärtige
Puffer weder unterlaufen noch überlaufen.
Bei MPEG-2 wird der Puffer normalerweise ungefähr halbvoll gehalten. Eine
Diskontinuität
im Bitstrom kann veranlassen, dass der Puffer unterläuft oder überläuft. VBV
ist die Messgröße der Pufferbelegung.
-
6, 7 und 8 zeigen
als einen extremen Fall die Pufferbelegung VBV für zwei Bitströme A0 und B0. A0 hat eine typische Belegung, und B0 hat eine unübliche hohe Bele gung. Bei der
vorliegenden Ausführungsform
der Erfindung wird der ursprüngliche
Bitstrom B0, der als BI umcodiert
wurde, in den ursprünglichen
Bitstrom A0 zusammengefügt, der als AI umcodiert
wurde. Der zusammengefügte
AI/BI Bitstrom wird
umcodiert unter Verwendung – außerhalb
des Übergangsbereichs – der ursprünglichen
Umcodierungsparameter Q, DCT-Art,
Q-Matrix, Pred-Art, MB-Modus und Bewegungsvektoren umcodiert. Somit
werden die Bitströme außerhalb
des Übergangsbereichs
auf die gleiche Form umcodiert und somit ungefähr auf die gleiche VBV wie in
ihren ursprünglichen
Formen A0, B0. Die
VBV-Werte der ursprünglichen
Bitströme
A0, B0 können sehr
unterschiedlich sein. Folglich, sogar obwohl die Bitströme ebenso
wie alle I-Rahmen wie einem Zwischenschritt zum Editieren umcodiert
werden, hat der VBV des zusammengefügten Bitstroms eine Diskontinuität rundum
den Zusammenfügungspunkt.
Somit zeigen die 6, 7 und 8 die
VBV-Diskontinuität,
die vorgefunden wird, wenn die I-Rahmen-Bitströme AI und
BI zusammengefügt werden und diese als Bitstrom
C aufgezeichnet werden.
-
In
der Situation, wo der Bitstrom mit A mit typischer Belegung und
der Bitstrom B mit hoher Belegung auf A am Zusammenfügungspunkt
zusammengefügt
werden, ist es im Übergangsbereich
notwendig:
- a) Kontinuität bereitzustellen, obgleich Änderung
der VBV-Belegung; und
- b) die VBV-Belegung von dem Wert des Stroms A unmittelbar vor
der Zusammenfügung
zu einem Zielwert zu ändern,
der der Wert von VBV für
den Strom B ist.
-
Wie
am besten in 7 oder 8 zu sehen
ist, beginnt der VBV des Bitstroms C identisch mit A und ändert sich
dann progressiv in Richtung auf den VBV von B.
-
Der
Punkt, bei dem die VBV-Belegung von C identisch zu der des Stroms
B wird, ist der VBV-Verriegelungspunkt.
-
Wie
oben erwähnt
zeigen die 6, 7 und 8 die
Belegung des stromabwärtigen
Puffers 8. Um die VBV-Verriegelung zu erzielen, wird der
Codierer 4 gesteuert.
-
6 und 7 zeigen
ein zweites Verfahren zum Erlangen der VBV-Verriegelung. 8 zeigt
ein erstes Verfahren, bei dem die ersten Bildart-Entscheidungsregeln
wie oben festgelegt verwendet werden.
-
Erstes Verfahren (Lange
Wartezeit)
-
Das
erste Verfahren nutzt die Bildart-Entscheidungsregeln (1) bis (4)
oben unverändert.
-
a) Einstellen der Restbit-GOP
-
Die
Länge der Übergangs-GOP
ist aus dem Einstellergebnis der GOP-Länge unter Verwendung der Bildentscheidungsregeln
bekannt.
-
Der
Wert der Restbit-GOP wird auf null am Zusammenfügungspunkt zurückgesetzt,
der durch den Zusammenfügungsmarkierer
markiert wird. Der Wert der Restbit-GOP wird in normaler Weise für die neue
GOP erneut berechnet, welche dem Zusammenfügungspunkt folgt, und
ein
Extrawert-Bit wird dem Ergebnis hinzugefügt, wobei Extra-Bits sind
[VBV_C_Splice-VBV_B_Lock]
wobei
VBV_C_Splice die VBV-Belegung des Stroms C unmittelbar vor der Zusammenfügung ist,
welche immer das Ende der vorherigen (eingestellten) GOP wegen der
Bildentscheidungsregeln ist und VBV_B_Lock die VBV-Belegung des
Stroms B am Ende der neuen GOP ist. Dieser Wert ist bekannt da die
Rahmen des B-Stroms gespeichert sind und die Länge der neuen GOP bekannt ist.
-
Extra
Bits können
negativ sein.
-
Der
Anfangswert der Restbit-GOP, der auf diese Weise berechnet wird,
wird um einen Faktor α reduziert,
wobei α kleiner
als 1 ist. Der Faktor α wird
gewählt,
um den Wert der Restbit-GOP um einen kleinen Betrag, beispielsweise
5% oder weniger zu reduzieren, so dass Reservebits zulassen, dass
zusätzliche
Bits (Füllbits)
hinzugeführt
werden, um eine exakte Verriegelung zu erzielen. Die Notwendigkeit
dafür wird
unten erläutert.
Der Faktor α wird
empirisch bestimmt. In der folgenden Erläuterung wird angenommen, dass
dieser fest ist. Es kann jedoch variiert werden.
-
b) Komplexität
-
Der
Datenstrom A wird decodiert und vor dem Zusammenfügen erneut
codiert. Dieses Codieren tritt mit Komplexitätswerten auf, die für den Strom
A geeignet sind. Jedoch sind diese Werte nicht für den Strom B geeignet. Komplexitätswerte
XI, XP, XB der I-, P- und B-Rahmen des Stroms B werden
berechnet auf der Basis von
X = S·Q
wobei X = Komplexitätswert
S
= Anzahl von Bits, welche durch Codieren des Bilds erzeugt werden
Q
= Durchschnittsquantisierungsparameter aller Makroblöcke in einem
Bild
X = S·Q
ist eine Standardgleichung zur Ratensteuerung bei MPEG
-
Da
die zusammenzufügenden
Bitströme
AI und BI lediglich
I-Rahmen aufweisen, werden die Komplexitätsschätzungen wie folgt hergeleitet:
- a) für
P- und B-Rahmen von den ersten Erzeugungsumcodierungsparametern
(die in Verbindung mit den Rahmen gespeichert wurden) der I-Rahmen
des Bitstroms BI nach dem Zusammenfügungspunkt;
und
- b) für
die I-Rahmen von irgendeinem I-Rahmen des Stroms BI nach
dem Zusammenfügungspunkt.
Vorzugsweise wird ist der gewählte
I-Rahmen ein Rahmen, der als I-Rahmen
im Strom C umcodiert wird.
-
Diese
Rahmen können
am Zusammenfügungspunkt
aufgrund der 3-Rahmen-Umordnungsverzögerung verfügbar sein. Andernfalls kann
eine 3-Rahmenverzögerung
vorgesehen werden.
-
Am
Zusammenfügungspunkt
ersetzen diese Komplexitätswerte
die existierenden Werte (des Stroms A). Somit werden nach der Zusammenfügung Komplexitätswerte,
welche für
den Strom B geeignet sind, verwendet. Bei der vorliegenden Ausführungsform,
wo zunächst
der zusammengefügte
Bitstrom AI/BI im
I-Rahmenspeicher als I-Rahmen gespeichert ist, werden die Komplexitätswerte
vom Bitstrom BI nach dem Zusammenfügungspunkt
hergeleitet. Sie können
unter Verwendung einer geeigneten Verzögerung hergeleitet werden.
Die Verzögerung
kann aufgrund der Verzögerung,
die für
Umordnung der Rahmen erforderlich ist, anhaften.
-
Die
Komplexitätswerte
steuern die Verteilung von Bits unter I-, P- und B-Rahmen. Das Erzielen
guter subjektiver Qualität
hängt von
den Komplexitätswerten
ab.
-
c) Virtuelle Puffermodifikation
-
Die
virtuellen Puffer werden verwendet, die Q-Referenzskala für jeden
Makroblock zu berechnen. Eine Verbesserung der Qualität kann durch
Einstellen der virtuellen Puffer auf geschätzte B-Stromwerte beim Zusammenfügungspunkt
erlangt werden. Dies stellt sicher, dass der resultierenden Q-Skalen ähnlich denjenigen sind,
welche im Strom B in der vorherigen Generation verwendet werden,
anstelle mit den Q-Stromskalen für Strom
A weiterzufahren.
-
Virtuelle
Pufferwerte für
den B-Strom werden geschätzt
und am Zusammenfügungspunkt
erzwungen.
-
Für den I-Rahmen
wird der Wert berechnet so:
geschätzter_buf_i = (Q·Bit_Rate)/(31·Rahmenrate),
wobei Q der Durchschnittsquantisierungsparameter ist. Die Werte
für die
P- und B-Rahmen werden ähnlich
berechnet.
-
Da
die Bitströme,
welche zusammenzufügen
sind, lediglich I-Rahmen umfassen, werden virtuelle Pufferschätzungen
wie folgt hergeleitet:
- a) für P- und B-Rahmen von den Umcodierungsparametern
für die
erste Generation (welche in Verbindung mit den Rahmen gespeichert
sind) der I-Rahmen des Bitstroms BI nach
dem Zusammenfügungspunkt;
und
- b) für
die I-Rahmen für
irgendeinen I-Rahmen des Stroms BI nach
dem Zusammenfügungspunkt.
Vorzugsweise wird der I-Rahmen als ein Rahmen gewählt, der
als ein I-Rahmen
im Strom C umcodiert wird.
-
Diese
Rahmen können
am Zusammenfügungspunkt
aufgrund der 3-Rahmenumordnungsverzögerung verfügbar sein. Ansonsten kann eine
3-Rahmenverzögerung
vorgesehen sein.
-
Das
Codieren im Codierer 4 wird gemäß der Restbit-GOP im Übergangsbereich
zwischen der Zusammenfügung
und VBV-Verriegelung gesteuert, so dass auf die Belegung des stromabwärtigen Puffers
eine fortlaufende jedoch sich ändernde
Trajektorie von vor dem Zusammenfügen beim Bitstrom A Belegung
zu VBV Verriegelung bei der B-Bitstrombelegung folgt. Die Steuerung
wird auch dazu verwendet, die Komplexität und virtuelle Puffer wie
oben beschrieben zu zwingen.
-
Um
die Belegung des stromabwärtigen
Puffers wie in 8 gezeigt zu vergrößern, wird
der Puffer im Codierer gesteuert, um Bilder mit einer kleineren
Anzahl von Bits auszugeben, so dass dessen Belegung abnimmt. Bilder
mit einer kleineren Anzahl von Bits werden durch vergrößerte Kompressions-/gröbere Quantisierung
erzeugt.
-
Wenn
die Trajektorie von hoher Belegung des stromabwärtigen Puffers zu unterer Belegung
des stromabwärtigen
Puffers läuft,
wird der Codierer gemäß der höheren Restbit-GOP gesteuert, um
die Belegung von dessen Puffer zu steigern, wodurch größere Bilder
durch weniger Kompression/feinere Quantisierung erzeugt werden.
-
Verschiedene
Modifikationen können
bei dem ersten Verfahren ausgeführt
werden. Die VBV-Werte eines Bitstroms, beispielsweise des Stroms
B, neigen dazu, konstante Spitzenwerte grob beizubehalten. Anstelle
des Findens des Spitzenwerts VBV des Stroms B beim vorhergesagten
Verriegelungspunkt VBV-Verriegelung könnte der VBV-Wert des Stroms
B am I-Rahmen, der am nächsten
zum Zusammenfügungspunkt
ist, als Vorhersagebelegung bei VBV-Verriegelung verwendet werden.
-
Der
Wert kann periodisch über
die GOP eingestellt werden.
-
Zweites Verfahren (kurze
Wartezeit)
-
Das
zweite Verfahren modifiziert das erste Verfahren wie folgt:
Das
zweite Verfahren verwendet die Bildentscheidungsregeln (1) bis (4)
oben, jedoch mit der folgenden Modifikation:
Regel (1) wird
geändert
auf
(1') der
letzte "I0"-
oder "P0"-Rahmen des Bitstroms
(AI) vor dem Zusammenfügen wird umgesetzt in "P".
-
Die
Komplexität
und die virtuelle Puffermodifikation werden mit der gleichen Weise
wie beim ersten Verfahren behandelt.
-
Einstellung von Restbit-GOP
-
Um
die Belegung des stromabwärtigen
Puffers wie in 6 gezeigt zu steigern, wird
der Puffer im Codierer gemäß der Restbit-GOP
gesteuert, um Bilder mit einer kleineren Anzahl von Bits auszugeben,
so dass dessen Belegbarkeit abnimmt. Bilder mit einer kleineren
Anzahl von Bits werden durch vergrößerte Kompressions-/gröbere Quantisierung
vergrößert.
-
Wenn
die Trajektorie von hoher Belegung des stromabwärtigen Puffer zu niedriger
Belegung des stromabwärtigen
Puffers läuft,
wird der Codierer gemäß der höheren Restbit-GOP gesteuert, um
dessen Puffer zu vergrößern, wodurch
größere Bilder
durch geringere Kompressions-/feinere Quantisierung erzeugt werden.
-
Die
Restbit-GOP ist das Ziel für
die Anzahl von Bits, welche in der GOP bleiben.
-
Die
Länge der Übergangs-GOP
ist aus dem Ergebnis zum Einstellen der GOP-Länge
bekannt, wobei die Bildentscheidungsregeln verwendet werden.
-
Der
Wert der Restbit-GOP wird am Zusammenfügungspunkt auf null zurückgesetzt.
Der Wert der Restbit-GOP wird in normaler Weise für die neue Übergangs-GOP,
welche auf den Zusammenfügungspunkt folgt,
erneut berechnet. Der Wert der Restbit-GOP bei der Zusammenfügung wird
geändert
um einen Wert VBV_diff, wobei
VBV_diff = VBV_C_Zusammenfügung-VBV_B_nächste_I
oder P
-
Das
heißt,
die Restbit-GOP wird anfangs auf die Summe gesetzt von [die Normalzuteilung
von Bits für die
GOP] und [die Differenz zwischen (dem VBV-Wert des Stroms C bei
der Zusammenfügung)
und (dem VBV-Wert beim ersten I- oder P-Rahmen im Anschluss an die
Zusammenfügung
des Stroms B)]. Dies ist eine Vorhersage des VBV des Bitstroms B
am VBV-Verriegelungspunkt. Der Wert der Restbit-GOP wird dann um einen
Faktor α < 1 für die Übergangs-GOP
reduziert.
-
Der
Faktor reduziert die Restbit-GOP für die Übergangs-GOP um einen empirischen-bestimmten
Betrag von beispielsweise 5% oder weniger. Es sei hier angenommen,
dass α fest
ist. Dieser kann variiert werden.
-
Die
Restbit-GOP wird für
jeden Rahmen mit der Anzahl von Bits aktualisiert, die verwendet
werden, diesen Rahmen zu codieren. Zusätzlich geschieht die folgende
Aktualisierung.
-
Am
Zusammenfügungspunkt
basiert VBV_diff auf VBV_C_Zusammenfügen-VB_B_nächste I oder P. Nachfolgend
gilt bei jedem nachfolgenden I- und P-Rahmen des Stroms B VBV_Diff
= VBV_B_aktuell_I oder P-VBV_B_nächste_I
oder P. Wenn VBV_diff positiv ist, wird die Änderung durch die Anzahl von
I- und P-Rahmen im Rest der Übergangs-GOP geteilt und der
Rest zur Restbit-GOP bei jeder nachfolgenden Aktualisierung addiert.
Wenn VBV_diff negativ ist, wird die Restbit-GOP um VBV_diff reduziert.
Im Strom von 6 und 7 wird somit
die Restbit-GOP alle 3 Rahmen aktualisiert. Dies läuft weiter,
bis VBV-Verriegelung erzielt ist.
-
Der
Anfangswert der Restbit-GOP wird um den Faktor α reduziert. α wird gewählt, um den Wert der Restbit-GOP
zu reduzieren, so dass Reservebits bei VBV-Verriegelung verfügbar sind.
Die Reservebits erlauben, dass Zusatzbits ("Auffüllbits") hinzugefügt werden,
um exakte Verriegelung zu erreichen. Die Notwendigkeit dafür wird unten
erläutert.
-
Die
Differenzen VBV_diff können
berechnet werden, da die Rahmen gespeichert sind.
-
Bei
der obigen Erläuterung
des ersten und des zweiten Verfahrens wird angenommen, dass VBV-Verriegelung
am Ende der ersten Übergangs-GOP
nach dem Zusammenfügungspunkt
erzielt wird. VBV-Verriegelung kann nicht in dem Fall von extremen
Differenzen zwischen zwei Bitströmen
auftreten. Bei dem zweiten Verfahren wird der Wert von Restbit-GOP bei jedem dritten
Rahmen auf einen I- oder P-Rahmen aktualisiert, und der Prozess
zum Versuchen, VBV-Verriegelung zu erzielen, läuft weiter, bis Verriegelung
erzielt ist.
-
Drittes Verfahren (Reduzierungsgrenzen)
-
Ein
drittes Verfahren, welches anschließend erläutert wird, bezweckt, dieses
Problem zu reduzieren. Dies erlaubt außerdem die automatische Bestimmung,
ob der Übergangsbereich
zwischen den Bitströmen
A und B zu erweitern ist. Das dritte Verfahren modifiziert das zweite
Verfahren auf die Weise, dass die Restbit-GOP gesteuert wird. Es
verwendet die Bildentscheidungsregeln des zweiten Verfahrens und
wird mit der Komplexität
und virtuellen Puffermodifikation in der gleichen Weise wie beim
ersten Verfahren fertig.
-
Die
Restbit-GOP wird bei jedem Rahmen mit der Anzahl von Bits aktualisiert,
die verwendet werden, diesen Rahmen zu codieren, wie dies bei MPEG-2
normal ist. Zusätzlich
wird diese gemäß 10A, B und C am Start der Übergangs-GOP und bei jedem
I- oder P-Rahmen
darin aktualisiert, wie mit Hilfe von 10A bis
C beschrieben wurde.
-
d) Einstellen von Restbit-GOP
-
Um
die Belegung des stromabwärtigen
Puffers zu vergrößern, wie
in 9 gezeigt ist, wird der Puffer im Codierer gemäß der Restbit-GOP
gesteuert, um Bilder mit einer kleineren Anzahl von Bits auszugeben,
so dass dessen Belegung abnimmt. Bilder mit einer kleineren Anzahl
von Bits werden durch vergrößerte Kompressions-/gröbere Quantisierung
erzeugt.
-
Wenn
die Trajektorie von hoher Belegung des stromabwärtigen Puffers zu niedrigerer
Belegung des stromabwärtigen
Puffers verläuft,
wird der Codierer gemäß der höheren Restbit-GOP
gesteuert, um die Belegung dieses Puffers zu steigern, wodurch größere Bilder
durch geringere Kompressions-/feinere Quantisierung erzeugt werden.
-
Die
Restbit-GOP ist das Ziel für
die Anzahl von Bits, welche in der GOP verbleiben.
-
Die
Länge der Übergangs-GOP
ist aus dem Ergebnis des Einstellens der GOP-Länge
bekannt, wobei die Bildentscheidungsregeln (1) bis (4) oben verwendet
werden.
-
Die
Restbit-GOP wird in der folgenden Weise eingestellt. Sie wird nach
jedem Rahmen um die Anzahl von Bits reduziert, die verwendet werden,
diesen Rahmen zu codieren, wie dies bei MPEG-2 normal ist. Zusätzlich wird
gemäß 10A, B und C diese am Start der Übergangs-GOP
und bei jedem I- oder P-Rahmen aktualisiert, wie hier mit Hilfe
von 10A bis C beschrieben wurde.
-
Am
Zusammenfügungspunkt
wird die Restbit-GOP auf die normale Zuteilung von Bits für die Übergangs-GOP
gesetzt, welche durch die Bildentscheidungsregeln definiert ist,
wobei die Zuteilung vorzugsweise um den Faktor α reduziert wird, ein variabler Überlauf
auf null gesetzt wird und ein variabler Reduktionsüberlauf (Reduktions-Überlauf)
auf null gesetzt wird. [Schritt S1]. (Überlauf ist ein positiver Wert
von VBV_diff, gemittelt über
die verbleibenden I- und P-Rahmen der GOP, und Reduzierungsüberlauf
ist der Überschuss
von VBV_diff über
dem Reduktionslimit).
-
Ein
variables Verkleinerungslimit wird zu Anfang gesetzt auf
minus
(Bitrate·remain_num_total·max_red_%)/
Rahmenrate)
wobei remain_num_total die Anzahl von Rahmen ist,
welche in der GOP verbleiben, und
max_red_% eine Zahl ist,
welche empirisch gewählt
wird, welche eine gewünschte
maximale Reduzierung in der Bitrate zeigt, welche während der Übergangs-GOP
zugelassen wird. [Schritt S2]. Reduzierungslimit zeigt die maximale
Menge, mit der die Bitrate bei jeder Aktualisierung in Bezug auf
einen I- oder P-Rahmen reduziert werden kann.
-
Die
VBV_diff für
den Start der Übergangs-GOP
wird berechnet als
(VBV_C_Zusammenfügen) – (VBV_B_nächste_I oder P)
d.h.,
als die Differenz zwischen dem VBV-Wert des Bitstroms C am Zusammenfügungspunkt
und dem VBV-Wert des Bitstroms B beim unmittelbar folgenden I- oder
P-Rahmen. [Schritt
S31].
-
Man
wird es würdigen,
dass Reduzierungslimit eine negative Zahl in diesem Beispiel ist.
Auch die Schritt S1, S2 und S31 richteten Anfangwerte, die verwendet
werden, lediglich am Start der Übergangs-GOP ein.
-
Im
Schritt 4 bestimmt Schritt S4, ob der Anfangswert von VBV_diff
am Start der GOP positiv oder negativ ist, wie durch den Schritt
S31 berechnet wurde. Wenn die Aktualisierung auf einem I- oder P-Rahmen nicht
am Start der GOP stattfindet, wird VBV_diff durch Schritt S32 berechnet
als
VBV_diff = (VBV_B_laufende I oder P) – (VBV_B nächste I oder P) + Reduzierungsübertrag.
-
Das
heißt,
VBV_diff wird durch die Differenz zwischen dem laufenden VBV-Wert des Bitstroms
B und dem nächsten
VBV_Wert (auf einem I- oder P-Rahmen) zusätzlich eines Reduzierungs-Übertrags
aktualisiert.
-
Aktualisierungen
finden dann in der folgenden Weise statt, welche gleich auf den
Start der GOP und auf nachfolgende Aktualisierungen in Bezug auf
einen I- oder P-Rahmen angewandt wird.
-
VBV_diff
positiv im Schritt S4 (siehe 10B).
-
Wenn
VBV_diff positiv ist, inkrementiert danach der Schritt S5 den variable Übertrag
durch
(VBV_diff)/(Anzahl von I- oder P-Rahmen, die in der GOP
verbleiben)
und danach inkrementiert der Schritt S6 die Restbit-GOP
mit dem Übertrag.
Danach mitteln die Schritt S5 und S6 positive Werte von VBV_diff über die
verleihenden I- und P-Rahmen in der GOP. Bei jeder Gelegenheit,
wo es eine positive VBV_diff gibt, wird die Restbit-GOP um den Übertrag
inkrementiert.
-
Der
Schritt S7 legt die Reduzierungs-Grenze fest auf:
(Reduzierungs-Grenz-Übertrag)·(next_remain_num_total)/(remain_num_total),
wobei next_remain_num_total die Gesamtzahl von Rahmen ist, welche
in der GOP bei der nächsten
Aktualisierung verbleiben (bei einem I- oder P-Rahmen) einschließlich des
nächsten
I- oder P-Rahmens, und remain_num_total die Anzahl von Rahmen ist,
welche in GOP einschließlich
des aktuellen Rahmens verbleiben. Das heißt, dass die Negativwert-Reduzierungsgrenze
durch den Übertrag
vergrößert wird,
da die positive Änderung
in der Restbit-GOP
eine größere Änderung
der VBV in einer nachfolgenden Aktualisierung zulässt.
-
Der
Schritt S8 setzt den Reduzierungsübertrag auf null: Reduzierungsübertrag
wird bei jeder Aktualisierung in Bezug auf einen I- oder P-Rahmen
erneut berechnet, um eine Akkumulation von deren Werte zu vermeiden.
-
VBV_diff
negativ im Schritt S4 (siehe 10B).
-
Wenn
VBV_diff im Schritt S4 negativ ist, dann wird in einem Schritt S10
der variable Überlauf
(der der kumulative gemittelte positive Wert von VBV_diff von vorherigen
Aktualisierungen ist, welche im Schritt S5 berechnet wurden) zu
VBV_diff addiert, um einen neuen Wert von VBV_diff zu erzeugen.
Das heißt,
der Überlauf wird
zu VBV_diff addiert, um diesen weniger negativ zu machen, um somit
eine entsprechend höhere Änderung
zuzulassen, damit sie in Rest-Bit-GOP auftritt, da mehr Bits verfügbar sind.
Das Ergebnis, wie im Schritt S11 getestet, ist folgendes, dass der
neue Wert von VBV_diff mehr oder weniger negativ sein kann als Reduzierungsgrenze,
welche die maximale Änderung
ist, welche in der Restbit-GOP zugelassen ist.
-
Wenn
der neue Wert von VBV_diff negativer ist als die Reduzierungsgrenze,
wird die Restbit-GOP um die Reduzierungsgrenze reduziert (Schritt
S15). Der Reduzierungsübertrag
wird im Schritt S16 als Überschuss des
neuen Werts von VBV_diff über
der Reduzierungsgrenze berechnet. Wenn die Reduzierungsgrenze in
der GOP überstiegen
ist, wird diese auf null im Schritt S17 gesetzt.
-
Wenn
der neue Wert von VBV_diff weniger negativ ist als die Reduzierungsgrenze,
wird im Schritt S12 die Restbit-GOP um den Wert von VBV_diff geändert. Dann
wird es als vorteilhaft ansehen, dass der neue Wert von VBV_diff
in diesem Fall positiv oder negativ sein könnte. Wenn VBV_diff positiv
ist, wird die Restbit-GOP um VBV_diff vergrößert, und wenn VBV_diff negativ
ist, wird die Restbit-GOP um VBV_diff reduziert.
-
Im
Schritt S13 wird die Reduzierungsgrenze festgelegt auf:
(Reduzierungsgrenze-VBV_diff)·(next_remain_num-total)/(remain_num_total),
wobei
next_remain_num_total und remain_num_total definiert sind für den Schritt
S7. Das heißt,
die Reduzierungsgrenze wird verkleinert (d.h., weniger negativ gemacht),
da die GOP fortschreitet, wenn VBV_diff negativ ist, da weniger
Bits in der GOP verfügbar
sind; und dem Skalierungseffekt von (next_remain_num_total)/(remain_num_total)
unterworfen, die vergrößert wird
(d.h., mehr negativ gemacht wird), wenn VBV_diff positiv ist, da
mehr Bits in der GOP verfügbar
sind.
-
Der
Reduzierungsüberlauf
wird auf null im Schritt S14 aus dem gleichen Grund wie im Schritt
S8 festgelegt.
-
Der
Algorithmus läuft
dann weiter zur nächsten
I- oder P-Aktualisierung im Schritt S9. Wenn im Schritt S18 das
Ende der Übergangs-GOP,
wie durch die Bildentscheidungsregeln bestimmt, nicht aufgetreten
ist, kehrt die Verarbeitung zurück
zum Schritt S32 und wiederholt, bis zum Ende der Übergangs-GOP.
-
Am
Ende der GOP bestimmt der Schritt S19, ob der Reduzierungsübertrag
negativer ist als der Schwellenwert-Reduzierungsübertrag-Schwellenwert. Man
wird als vorteilhaft sehen, dass dieser nur auftreten wird, wenn
VBV_diff negativer (nach einem positiven Versetzen um den kumulativen Übertragswert)
als die Reduzierungsgrenze ist.
-
Wenn
der Reduzierungsübertrag
weniger negativ ist als der Schwellenwert, zeigt dies, dass VBV-Verriegelung
erzielt werden kann, wobei Füllbits
wie im Schritt S22 verwendet werden. Die nächste GOP wird dann unter erneuter
Verwendung der Umcodierungsparameter begonnen, um die Bildqualität beizubehalten.
-
Ein
Reduzierübertrag,
der negativer ist als der Schwellenwert, zeigt, dass VBV_Verriegelung
nicht erzielt wurde, und es wird eine neue Übergangs-GOP begonnen, jedoch
unter erneuter Verwendung der I-Rahmen-Umcodierungsparameter und
Umcodierung der P- und B-Rahmen. [Schritt S20]. Für die neue Übergangs-GOP
werden die folgenden Variablen auf Anfangswerte am Beginn der GOP
gesetzt.
-
Die
Restbit-GOP wird auf ihre normale Zuordnung festgelegt. Die Länge der
GOP wird nicht durch die Bildentscheidungsregeln bestimmt, sondern
als normale Länge
für eine
GOP bestimmt. Der Übertrag
wird auf null festgelegt. Die Reduzierungsgrenze wird auf minus
festgelegt.
(bitrate·remain_num_total·max_red_%)/(frame_rate).
-
Der
Wert des Reduzierungsübertrags
von der vorherigen GOP wird auf die neue GOP übertragen.
-
Die
Prozedur zum Aktualisieren der Restbit-GOP der Schritte S32 und
S4 bis S18 beginnt wiederum, bis die Belegung der Übergangs-GOP
gleich ist wie der Bitstrom B. Vor zugsweise verwendet die neue Übergangs-GOP
Umcodierungsparameter für
ihre I-Rahmen erneut.
-
Bei
einer Version wird der Schwellenwert auf null gesetzt. Wenn der
Reduzierungsübertrag
null ist, endet die Übergangs-GOP,
da es erscheint, dass die VBV-Verriegelung nicht aufgetreten ist.
Wenn der Übertrag nicht
null ist, läuft
das volle Codieren in einer anderen GOP weiter, die eine normal
lange GOP ist, jedoch gemäß der Prozedur
von 10, bis VBV-Verriegelung erreicht
ist.
-
Bei
einer anderen Version wird der Schwellenwert auf einen Wert K% gesetzt.
Wenn der Reduzierungsübertrag
kleiner ist als K, werden irgendeine Differenz zwischen den VBVs
der Übergangs-GOP
und dem Bitstrom B klein und werden mit Füllbits ausgerüstet. Die
Reservefüllbits
sind von der Zuteilung von Reservebits, welche durch Verminderung
der Normalzuteilung für
die Restbit-GOP um den Faktor α am
Beginn der GOP bereitgestellt werden. Der Schwellenwert K% ist die
normale Bitzuteilung für
eine lange GOP. K kann im Bereich von 0% bis 8% liegen, jedoch vorzugsweise
ungefähr
5% betragen. Der maximale Verminderungsprozentsatz kann 25% sein.
-
Das
Anwenden der Reduzierungsgrenze stellt sicher, dass während der Übergangs-GOP die Bitrate nicht
unterhalb einer vorher festgelegten normalen Rate läuft oder äquivalent
die Änderungsrate
der Belegung eine maximale Rate nicht übersteigt. Das Teilen positiver Änderungen
in der Restbit-GOP über
dem Rest der I- und P-Rahmen in der GOP tendiert dazu, die Änderungen
in der Restbit-GOP über
der GOP auszugleichen. Wenn VBV_diff negativ ist, jedoch nicht die
Reduzierungsgrenze übersteigt,
wird die Grenze progressiv reduziert, wenn die GOP fortschreitet.
Somit reduziert die zulässige
maximale Änderung
das Verhindern unproportional-langer Änderungen in der Restbit-GOP
am Ende der GOP. Das Verfahren von 10 erlaubt,
dass der Übergangsbereich
unmittelbar vor der Zusammenfügung
beginnt und bei VBV_Verriegelung endet, um in der Länge wenn
notwendig variiert zu werden, (wie durch die Reduzierungsgrenze
bestimmt), um so wirksam VBV-Verriegelung zu erzielen.
-
VBV-Verriegelungspunkt-Anwendungen
auf erste, zweite und dritte Verfahren
-
Die
Periode, über
welcher VBV-Verriegelung vorhergesagt wird, um eine (oder mehrere)
GOP zu erzielen, wenn auch eine GOP, deren Länge durch die Bildart-Entscheidungsregeln
geändert
wurde. In diesem Beispiel beträgt
sie ungefähr
30 Rahmen.
-
In 2, 3, 4, 5 und 6 wird
eine Annahmeverriegelung beim I-Rahmen 52 in der Anzeigereihenfolge
erzielt (4). In Wirklichkeit wird die
VBV-Verriegelung in der Verar beitungsreihenfolge erzielt, so dass
sie in einem umgeordneten I-Rahmen 50 auftritt (5).
Die folgenden B-Rahmen 52 und 52 in 5 sind
völlig
umcodierte Rahmen vor der VBV-Verriegelung
und stören
die Verriegelung. Somit werden Reservebits im zweiten B-Rahmen 52 verwendet,
um den Bitstrom zu füllen,
um exakte Verriegelung zu erzielen.
-
Wenn
der Faktor α null
ist, sind keine Reservebits verfügbar,
so dass das System versucht, exakte Verriegelung beim I-Rahmen unmittelbar
nach dem Ende der Übergangs-GOP zu erzielen.
Die Ratensteuerung darunter oder darüber führt üblicherweise zur Erzeugung
zu vieler Bits. Sogar, wenn exakte Verriegelung erreicht wird, wird
die Verriegelung im I-Rahmen bei dem B-Rahmen gestört. Damit
wird die Rest-Bit-GOP um den Faktor α reduziert, so dass die Ratesteuerung übersteuert
wird, so dass Reservebits am Ende der GOP verfügbar sind. Diese Reservebits
werden verwendet, um exakte Verriegelung im zweiten B-Rahmen zu erzielen.
-
Der
I-Rahmen 50 wird durch erneutes Verwenden von dessen Parametern
verarbeitet, welche vom ursprünglichen
Bitstrom B0 hergeleitet werden. Nach den
völlig
umcodierten B-Rahmen 51 und 52 wird die erneute
Verwendung von Parameter wieder aufgenommen.
-
Dies
wird auf das erste, zweite und dritte Verfahren angewandt.
-
Verschiedene
Modifikationen können
für das
erste und das zweite Verfahren durchgeführt werden:
Beim ersten
Verfahren wird innerhalb der Übergangs-GOP
nach dem Zusammenfügungspunkt
Verriegelung mit dem geeigneten Wert α erzielt. α wird gewählt, so dass die Verriegelung
erzielt wird, mit Ausnahme für
den extremen Fall. α kann
verfügbar
sein.
-
Die
Bildart-Entscheidungsregel (4) kann auf (41)
geändert
werden:
(41) wenn die erste GOP nach
der Zusammenfügung
lediglich einen "P"-Rahmen enthält, werden
die Rahmenarten von der nächsten
GOP von "I" auf "P" und "P" auf "I" geändert,
um zwei "P"-Rahmen in einer
GOP zu ergeben.
-
Dies
hat zwei kürzere
GOPs zwischen dem Zusammenfügungspunkt
und der VBV-Verriegelung zur Folge.
-
In
diesem Fall wird Extra Bits unterteilt zwischen zwei GOPs in geeigneten
Pro portionen.
-
Bewegungsvektoren
-
Bewegungsvektoren
für die
Rahmen der Übergangs-GOP
können
durch völliges
Umcodieren erzeugt werden oder können
aus Vektoren in benachbarten Rahmen geschätzt werden.
-
Bitzunahme bezüglich Rahmen
außerhalb
des Übergangsbereichs
-
Die
VBV der umcodierten Rahmen sind lediglich ungefähr gleich wie ihre ursprünglichen
Formen, da die Anzahl von Bits im Laufe des Decodierens und Umcodierens
schrumpfen oder wachsen kann.
-
Die
Rahmen außerhalb
des Übergangsbereichs
sind ursprünglich
als lange GOPs codiert, decodiert auf Basisband, umcodiert als I-Rahmen,
decodiert auf Basisband und umcodiert als lange GOPs. Bei diesen Prozessen
werden die Umcodierungsparameter des ursprünglichen Codierens erneut verwendet,
um maximale Qualität
beizubehalten. Die DCT- und
die inversen DCT (IDCT)-Prozesse sind jedoch nicht transparent,
d.h., es treten Fehler auf. Zusätzlich
ist das ursprüngliche
Basisband nicht das gleiche wie die decodierten I-Rahmen auf Grund
von Quantisierungseffekten. Als Ergebnis kann die Anzahl von Bits
in den Rahmen schrumpfen oder wachsen. Wenn das Schrumpfen oder
das Wachstum groß genug
ist, kann der Puffer überlaufen
oder unterlaufen. Somit werden die Rahmen überwacht.
-
Wenn übermäßiges Schrumpfen
auftritt, wird das Bitauffüllen
verwendet. Wenn übermäßiges Wachstum
auftritt, werden die Rahmen umcodiert bzw. rückcodiert. Das Bitfüllen und
Umcodieren wird verwendet, um die Belegung innerhalb von normalen
MPEG-2-Grenzen beizubehalten.
Vorzugsweise verwendet das Umcodieren erneut die Umcodierungsparameter
der I-Rahmen, um die Bildqualität
beizubehalten.
-
Um
die Bildqualität
beizubehalten, können
die Umcodierungsparameter der I-Rahmen
des Bitstroms B0 erneut verwendet werden,
wenn diese Rahmen in der Übergangs-GOP erneut codiert
werden.