-
Die
Erfindung betrifft eine blockbasierte Videocodiertechnik und insbesondere
betrifft die Erfindung ein Verfahren und eine Vorrichtung für das dynamische
Steuern der Codierrate eines blockbasierten Videocodiersystems.
-
TECHNISCHER HINTERGRUND
DER BESCHREIBUNG
-
Blockbasierte
Videocodiersysteme benutzen typischerweise eine Codiertechnik, die
die Vorteile von sowohl der räumlichen
als auch der zeitlichen Redundanz innerhalb eines Bildes (Intra-Bild) und zwischen
Bildern (Inter-Bild) innerhalb einer Sequenz von Bildern ausnutzt.
Solche blockbasierten Bildcodiersysteme beinhalten diejenigen, die
den bekannten Moving Pictures Experts Group (MPEG) Standard der
Videocodierung, nämlich
die Internationale Normen ISO/EC 11172-2 (1994) (im allgemeinen
als MPEG-1 bezeichnet) und 13818-2 (20. Januar 1995 Entwurf) (im
allgemeinen als MPEG-2 bezeichnet) verwenden. Um die Redundanzen
in einer Eingangssequenz auszunutzen und eine Videosequenz in einen übertragbaren
Bitstrom effizient zu codieren, nehmen blockbasierte Codiertechniken
an, daß die sequentiellen
Bilder innerhalb einer Videoeingangssequenz im wesentlichen ähnliche
Information enthalten, d.h. die abgebildete Szene verändert sich sehr
wenig von Bild zu Bild. Ein Szeneschnitt, der in der Bildsequenz
auftritt, verletzt die zugrundeliegende Annahme für die effiziente
Codierung. Folglich muß eine
blockcodierte Technik nach einer Szenenänderung (Szenenschnitt) eine
wesentliche Anzahl von Bits verwenden, um das erste Bild zu codieren,
das der Szenenveränderung
folgt. Da die Anzahl von Bits, die verfügbar sind, um irgendein Bild
zu codieren, typischerweise begrenzt ist, kann ein Szeneschnitt
erhebliche Fehler in der Codierung verursachen und zu einer substantiellen
Störung
des decodierten Bildes führen.
-
In
blockbasierten Videocodiersystemen gibt es im allgemeinen Geschwindigkeits-
bzw. Ratensteueralgorithmus oder -prozeß, der verschiedene Aspekte
des Codierprozesses steuert. Die Hauptaufgabe des Ratensteuerprozesses
ist es, eine konstante Ausgangsbitrate in den Übertragungskanal beizubehalten.
Die konstante Bitrate muß beibehalten
werden, auch wenn die Codierrate signifikant variieren kann abhängig von
dem Inhalt jedes Bildes und der Abfolge bzw. Sequenz von Bildern.
-
Ein
anderer wichtiger Aspekt eines Ratensteuerprozesses ist es, sicherzustellen,
daß der
Bitstrom, der von dem Codierer erzeugt wurde, nicht einen Überlauf
oder Unterlauf des Eingangspuffers des Decoders verursacht. Die Überlauf-
und Unterlaufsteuerung wird verwirklicht durch Beibehalten und Überwachen
eines virtuellen Puffers innerhalb des Codierers. Dieser virtuelle
Puffer ist als der Videopufferverifizierer (VBV) bekannt. Um die
korrekte Decodereingangspufferbitsteuerung sicherzustellen, errichtet
der Ratensteuerprozeß des
Codierers für
jedes Bild und ebenso für
jeden Makroblock aus Pixeln, den jedes Bild aufweist, ein Bitkontingent
(ebenso hier als Bitbudget bezeichnet). Durch Codieren der Blöcke und
des Gesamtbildes unter Verwendung der jeweiligen Anzahl von Bits,
die innerhalb der entsprechenden Bitbudgets sind, kommt es zu keinem Überlauf
oder Unterlauf des VBV. Da der VBV die Funktion des Eingangspuffers
des Decoders spiegelt, wird, wenn der VBV keinen Überlauf
oder Unterlauf zeigt, der Eingangspuffer des Decoders dies ebenfalls
nicht tun.
-
Um
solche eine Puffersteuerung zu verwirklichen, macht der Ratencontroller
die Standardannahme in der Videocodierung, daß das gegenwärtige Bild
eine gewisse Ähnlichkeit
zu dem vorherigen Bild aufweist. Wenn diese Annahme zutrifft, werden
die Pixelblöcke
in dem Bild bewegungskompensiert durch die Codiertechnik, und erfordern,
sobald sie kompensiert sind, sehr wenige Bits, um codiert zu werden.
Dieses Verfahren arbeitet gut solange die tatsächliche Anzahl von Bits, die
benötigt
wird, um das Bild zu codieren, nahe der Zielanzahl von Bits ist, die
dem Bild zugewiesen sind, d.h., daß die Anzahl von tatsächlich verwendeten
Bits in dem Bitkontingent für
dieses Bild liegt.
-
Diese
Annahme ist jedoch falsch, wenn ein Szenenschnitt auftritt oder
es einen wesentlichen Unterschied zwischen dem vorherigen Bild und
dem gegenwärtigen
Bild gibt. Da die Bewegungskompensation wenig Nutzen bringt, wenn
zwei aufeinanderfolgende Bilder sich wesentlich unterscheiden, werden die
Blöcke
codiert unter Verwendung eines Codiertechnikzwischenmodus, der eine
viel größere Anzahl von
Bits erfordert, um irgendein Bild oder einen Block von Pixeln zu
codieren. In solchen Situationen wird das Bitbudget für das Bild
im allgemeinen überschritten.
Folglich ist die Bildqualität
für die
nächsten
paar Bilder wesentlich beeinträchtigt
und es gibt eine hohe Wahrscheinlichkeit, daß der VBV nahe an einen Unterlaufzustand
kommen kann. Wenn der VBV dabei ist, einen Unterlauf zu zeigen,
und es keine weiteren zugewiesenen Bits gibt, um dem Ratencontroller
zu erlauben, die letzten paar Blöcke,
die in dem zu codierenden Bild verbleiben, zu codieren, wird folglich gesagt,
daß das
blockbasierte Videocodiersystem einen „Panik"-Zustand erreicht hat. Um einen Panik-Zustand
zu vermeiden, verwendet der Stand der Technik im allgemeinen ein
sehr großes
Puffersystem. Solch ein Puffer ist teuer und verkompliziert das gesamte
blockbasierte Videocodiersystem.
-
Es
besteht daher im Stand der Technik die Notwendigkeit nach einem
Verfahren und einer Vorrichtung, die dynamisch den Codierprozeß steuert, so
daß das
Auftreten von Szeneschnitten oder anderen wesentlichen Szenenveränderungen
zwischen zwei aufeinanderfolgenden Bildern keinen Panikzustand oder
auf andere Art einen Unterlauf oder Überlauf des VBV erzeugt.
-
Nam
J. Y. et al. "An
adaptive rate control scheme with scene changed detection", Signal Processing
of HDTV, VI, Proceedings of the International Workshop on HDTV,
1994, Proceedings of the International Workshop on Signal Processing
of HDTV, VI, Turin, 26. bis 28. Oktober 1994, Seiten 99 bis 107
beschreiben ein blockbasiertes Codiersystem für das Erfassen einer Szenenveränderung,
d.h. einem großen
Unterschied zwischen aufeinanderfolgenden Bildern in einer Reihe
von Bildern und das Erhöhen
der Anzahl von verfügbaren
Bits für
das Codieren des Bildes nach der Szenenveränderung. Das System verwendet
das Konzept einer „Unter-GOP", die zwei bis drei
Einzelbilder einer GOP ist. Das System schaut auf die gegenwärtige, die
vorherige und die nächste Unter-GOP
und abhängig
davon, welche der Unter-GOPs die Szenenveränderung enthält und auf den
Positionen der P-Bilder in den verschiedenen Unter-GOPs werden die
Bitzuweisungen für
die gegenwärtige
und die nächste
Unter-GOP berechnet.
-
Wenn
das letzte Einzelbild der gegenwärtigen
Unter-GOP ein P-Einzelbild ist, dann wird die Bitzuweisung für das P-Einzelbild
des gegenwärtigen Sub-GOP
erhöht,
jedoch wird die Bitzuweisung für ein
B-Einzelbild der gegenwärtigen
Unter- bzw. Sub-GOP nicht verändert.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Gemäß eines
Aspektes der vorliegenden Erfindung wird in einem blockbasierten
Videocodiersystem ein Verfahren bereitgestellt für das Durchführen der
dynamischen Ratensteuerung in Antwort auf eine Szenenveränderung
zwischen einem ersten Bild und einem zweiten Bild, wobei das erste
Bild und das zweite Bild zwei aufeinanderfolgende Bilder in einer Abfolge
von Bildern sind, wobei das Verfahren die Schritte aufweist:
Erfassen
einer substantiellen Differenz zwischen dem ersten Bild und dem
zweiten Bild, die eine Szenenveränderung
anzeigt,
Berechnen eines Bitzuweisungserhöhungs- bzw. -vergrößerungswertes,
Vergrößern der
nominellen Bitzuweisung, die mit dem ersten Referenzbild verknüpft ist,
das auf das Auftreten der Szenenveränderung folgt, um den Bitzuweisungserhöhungswert,
um eine erhöhte
Bitzuweisung zu erzeugen,
Bestimmen einer Quantisierungsskala
für das
Codieren des ersten Referenzbildes innerhalb der erhöhten Bitzuweisung.
-
Gemäß eines
anderen Aspektes der Erfindung wird in einem blockbasierten Videocodiersystem
eine Vorrichtung für
das Durchführen
der dynamischen Ratensteuerung in Antwort auf einen deutlichen Unterschied
zwischen einem ersten Bild und einem zweiten Bild bereitgestellt,
wobei das erste Bild und das zweite Bild zwei aufeinanderfolgende
Bilder in einer Sequenz von Bildern sind, wobei die Vorrichtung
aufweist:
eine Einrichtung, die einen wesentlichen Unterschied zwischen
dem ersten Bild und dem zweiten Bild als Anzeige einer Szenenveränderung
erfaßt,
eine
Einrichtung für
das Berechnen eines Bitzuweisungserhöhungswertes,
eine Einrichtung,
die mit der Berechnungseinrichtung verbunden ist, für das Vergrößern der
nominellen Bitzuweisung, die mit dem ersten Referenzbild verknüpft ist,
das dem Auftreten der Szenenveränderung
folgt, und zwar um den Bitzuweisungserhöhungswert, um eine vergrößerte Bitzuweisung
zu erzeugen,
eine Einrichtung, die mit der Erhöhungseinrichtung verbunden
ist, für
das Bestimmen einer Quantisierungsskala für das Codieren des ersten Referenzbildes
innerhalb der erhöhten
Bitzuweisung,
eine Einrichtung für das Anwenden einer Ratensteuerung
und das Zuweisen von Bits zu dem ersten Referenzbild in Übereinstimmung
mit der erhöhten
Bitzuweisung, während
eine entsprechende Reduktion zu B-Bildern zugewiesen wird, die mit
dem ersten Referenzbild verknüpft
sind, wobei jedoch die Zuweisung von Bits zu irgendeinem Referenzbild,
das der Szenenveränderung
vorhergeht, nicht verändert wird.
-
Vorzugsweise
ist das erste Referenzbild, das der Szenenänderung folgt, ein P-Bild.
-
Eine
Ausführungsform
der vorliegenden Erfindung stellt einen dynamischen Ratencontroller
für ein
blockbasiertes Videocodiersystem zur Verfügung. Der Ratencontroller reagiert
auf einen Szeneschnittanzeiger, der von einem Szeneschnitterfasser
erzeugt wurde. Sobald eine Szeneschnittanzeige erfaßt wird,
stellt der Ratencontroller das Bitbudget für das Referenzeinzelbild, das
dem Szeneschnitt folgt, ein, bevor die Codierung auf diesem Einzelbild
beginnt. Zusätzlich
errichtet der Ratencontroller ein optimales Bitverwendungsprofil,
das mit der tatsächlichen
Bitverwendung verglichen wird, so daß die Bitzuweisung optimiert
werden kann, während
die Codierung fortschreitet.
-
KURZE BESCHREIBUNG DER
FIGUREN
-
Die
Lehren der vorliegenden Erfindung können leicht verstanden werden
durch Betrachten der folgenden detaillierten Beschreibung in Verbindung mit
den begleitenden Zeichnungen, in denen:
-
1 ein
Blockdiagramm eines blockbasierten Codiersystems darstellt, das
den dynamischen Ratencontroller der vorliegenden Ausführungsform der
Erfindung verwendet, und
-
2 stellt
den Effekt von Szeneschnitten auf einer MPEG-Gruppe von Bildern
(GOP) dar,
-
3 stellt
die korrekte Ausrichtung der 3A und 3B dar,
und
-
3A und 3B stellen
zusammen ein detailliertes Flußdiagramm
dar, das den Betrieb des dynamischen Ratencontrollers der vorliegenden
Ausführungsform
der Erfindung darstellt.
-
Um
das Verständnis
zu erleichtern, wurden identische Bezugszahlen verwendet, wo dies
möglich
war, um identische Elemente, die in den Figuren gleich sind, zu
bezeichnen.
-
DETAILLIERTE BESCHREIBUNG
-
1 stellt
ein Blockdiagramm eines blockbasierten Codiersystems 100 (genauer
gesagt ein MPEG-Codierer) dar, das die vorliegende Ausführungsform
der Erfindung beinhaltet. Das Eingangssignal für das System an Anschluß 102 soll
ein vorverarbeitetes Bild sein, daß in eine Mehrzahl von Blöcken aufgeteilt
wurde, wobei die Blöcke
sequentiell als eine Eingabe in das System bereitgestellt werden. Nach
der MPEG-Norm sind diese Pixelblöcke
allgemein bekannt als Makroblöcke,
z. B. ein 16 × 16
Pixelblock. Die folgende Beschreibung verwendet die MPEG-Normterminologie.
Es versteht sich jedoch, daß der
Begriff Makroblock dafür
vorgesehen ist, einen Block aus Pixeln irgendeiner Größe zu beschreiben,
der als Basis für
die Bewegungskompensation verwendet wird.
-
Das
System berechnet aus dem Systemausgangssignal eine Reihe von vorhergesagten
Markroblöcken
(P). Jeder vorhergesagte Makroblock wird anschaulich erzeugt durch
Decodieren des Ausgabesignals am Anschluß 104, genau wie der
Empfänger des übertragenen
Ausgangssignals das empfangene Signal decodieren würde. Der
Subtrahierer 106 erzeugt auf dem Pfad 107 ein
Restsignal (ebenso im Stand der Technik einfach als Rest oder Restmakroblock
bezeichnet) durch Subtrahieren des vorhergesagten Makroblockes von
dem Eingangsmakroblock. Falls der vorhergesagte Makroblock im wesentlichen gleich
dem Eingabemakroblock ist, sind die Reste relativ klein und werden
unter Verwendung von sehr wenigen Bits leicht codiert. In solch
einem Szenario wird gesagt, daß der
Eingangsmakroblock bewegungskompensiert ist. Falls jedoch die Differenz
zwischen dem vorhergesagten Makroblock und dem Eingabemakroblock
erheblich ist, sind die Reste schwierig zu codieren. Folglich ist
das System besser dran, wenn es den Eingangsmakroblock direkt codiert
anstatt den bewegungskompensierten Restmakroblock zu codieren. Diese
Auswahl ist bekannt als eine Auswahl des Codiermodus. Das Codieren
des Eingangsmakroblockes (I) wird als Intracodierung bezeichnet,
während
das Codieren der Reste als Intercodierung bezeichnet wird. Die Auswahl
zwischen diesen beiden Modi ist als die Intra-Inter-Entscheidung
(IID) bekannt.
-
Die
IID wird von dem IID-Schaltkreis 110 durchgeführt, der
den Codiermodusschalter 108 einstellt. Die IID wird berechnet
durch zunächst
berechnen der Varianz des Restmakroblockes (Var R) und der Varianz
des Eingangsmakroblockes (Var I). Die Codierentscheidung wird auf
diesen Werten begründet.
Es gibt verschiedene Funktionen, die verwendet werden können, um
diese Entscheidung zu treffen. Beispielsweise wählt, unter Verwendung der einfachsten
Funktion, falls Var R kleiner als Var I ist, die IID den Inter-Modus.
Umgekehrt, falls Var I geringer als Var R ist, wählt die IID den Intramodus.
-
Der
ausgewählte
Block wird in einem diskreten Cosinustransformations-(DCT-)Block 112 verarbeitet.
Die DCT erzeugt Koeffizienten, die das Eingangssignal an dem DCT
repräsentieren.
Der Quantisierer 114 quantisiert die Koeffizienten, um
den Ausgangsblock am Anschluß 104 zu
erzeugen. Der dynamische Ratencontroller 116 der vorliegenden
Ausführungsform
der Erfindung steuert die Quantisierungsskala (Schrittgröße), die
verwendet wird, um die Koeffizienten zu quantisieren. Optional steuert der
Ratencontroller ebenso die Anzahl von DCT-Koeffizienten, die von
dem System codiert werden. Die Details des Ratensteuerblocks werden
in Bezug auf 3 unten erörtert.
-
Um
korrekt vorhergesagte Blöcke
zu erzeugen und die effiziente Halb-pel-Bewegungsvektorerzeugung zu verwirklichen,
benötigt
der Codierer Zugriff auf die decodierten Bilder. Um solch einen
Zugriff zu verwirklichen, wird der Ausgang des Quantisierers 114 über sowohl
den inversen Quantisierer 118 als auch die inverse DCT 120 geleitet.
Der Ausgang der inversen DCT ist idealerweise identisch zu dem Eingang
des DCT 112. In dem Intermodus wird der decodierte Makroblock
produziert durch Summieren des Ausgangs des inversen DCT und des
vorhergesagten Markoblocks. Während
des Intramodus ist der decodierte Makroblock einfach der Ausgang
des inversen DCT. Die decodierten Makroblöcke werden dann in dem Einzelbildspeicher 124 gespeichert.
Der Einzelbildspeicher sammelt eine Mehrzahl dieser „rekonstruierten" Makroblöcke, die
ein gesamtes rekonstruiertes Einzelbild der Bildinformation bilden.
Der Bewegungsvektonrorhersager 126 verwendet das rekonstruierte
Einzelbild, um Bewegungsvektoren zu erzeugen, die verwendet werden
bei der Erzeugung von vorhergesagten Makroblöcken für bevorstehende Eingangsbilder.
-
Um
Bewegungsvektoren zu erzeugen, weist der Bewegungsvektorvorhersager 126 drei
Komponenten auf: ein Voll-pel-Bewegungsschätzer 128, ein Halb-pel-Bewegungsschätzer 130 und
ein Bewegungsmodusblock 132. Der Voll-pel-Bewegungsschätzer 128 ist
ein „grober" Bewegungsvektorerzeuger,
der eine grobe Übereinstimmung
zwischen einem Makroblock in einem vorherigen Bild und dem gegenwärtigen Eingangsmakroblock
sucht. Das vorherige Bild wird als ein Ankerbild bezeichnet. Nach den
MPEG-Normen ist das Ankerbild als ein I- oder P-Einzelbild innerhalb
einer Bildsequenz bekannt, die als eine Gruppe von Bildern (GOP)
bezeichnet wird. Der Bewegungsvektor ist ein Vektor, der die relative
Position bezeichnet, wo die grobe Übereinstimmung zwischen den
beiden Makroblöcken
aufgefunden wurde. Der grobe Bewegungsvektorgenerator erzeugt einen
Bewegungsvektor, der für
ein Bildelement (pel) genau ist.
-
Die
Genauigkeit des Voll-pel-Bewegungsschätzers wird in dem Halb-pel-Bewegungsschätzer verbessert.
Der Halb-pel-Bewegungsschätzer
verwendet die Voll-pel-Bewegungsvektoren
und die rekonstruierten Makroblöcke
von dem Einzelbildspeicher 124, um Bewegungsvektoren zu
berechnen mit einer Halb-pel-Genauigkeit. Die Halb-pel-Bewegungsvektoren
werden dann zu dem Bewegungsmodiblock 132 gesendet. Typischerweise
gibt es mehrere Bewegungsvektoren, die mit jedem Markoblock verbunden
sind. Der Modiblock 132 wählt den besten Bewegungsvektor
für das
Darstellen der Bewegung für
jeden Eingangsmakroblock aus.
-
Der
Voll-pel-Schätzer
ist eine rechenintensive Aufgabe verglichen mit dem Halb-pel-Schätzer. Aus
diesem Grund wird in verschiedenen Implementierungen dieser getrennt
auf speziell angefertigter Hardware berechnet. Häufig werden alle Voll-pel-Bewegungsvektoren
berechnet bevor die Halb-pel-Verarbeitung beginnt.
-
Das
MPEG-Codiersystem, das oben erörtert wurde,
ist ein konventionelles System, das verfügbar ist als Satz von integrierten
Schaltkreisen, wie z. B. das Modell L64120 von LSI Logic, Inc. aus
Milpitas, Kalifornien. Es ist wesentlich, daß diese MPEG-Codierer ein gesamtes
Einzelbild aus Voll-pel-Bewegungsvektoren speichert, bevor der Halb-pel-Schätzer mit
seiner Operation beginnt.
-
Die
Konzepte der Bewegungsschätzung
und der Bewegungskompensation basieren auf der zugrundeliegenden
Annahme, daß sich
das gegenwärtige
Bild nicht sehr stark von einem vorher aufgetretenen Bild (dem Ankerbild)
unterscheidet. Wenn jedoch eine wesentliche Szenenveränderung
(ebenso als Szenenschnitt bezeichnet) auftritt, sind die Ankerbilder
deutlich anders als das gegenwärtige
Bild. Somit sind die vorhergesagten Makroblöcke sehr ungenau und die Reste
sehr groß.
Im Grunde genommen wählt
für die
meisten Eingangsmakroblöcke
eines Bildes die IID den Eingangsmakroblock (Intra-Modus) für das Codieren
aus anstelle des Codierens der Reste (Inter-Modus). Es soll erwähnt werden, daß diese
Codierentscheidung selbst in dem Fall aufritt, wo es keine Szenenveränderung
gibt, und daß ein normal
codiertes Bild eine Mischung aus intra- und inter-codierten Makroblöcken aufweisen
kann. Der Prozentsatz der intra-codierten Makroblöcke innerhalb
eines gegebenen Bildes erhöht
sich jedoch signifikant nachdem ein Szenenschnitt aufgetreten ist. Der
Szenenschnittdetektor der vorliegenden Ausführungsform der Erfindung analysiert
alle Makroblöcke in
einem Bild und bestimmt dann, ob ein Szenenschnitt aufgetreten ist.
Dies wird verwirklicht durch Zählen
der Anzahl von intra-codierten Makroblöcken und Vergleichen der Zahl
mit einem Grenzwert. Genauer gesagt, falls der prozentuale Anteil
der intra-codierten Makroblöcke
in irgendeinem gegebenen Einzelbild den Grenzwert überschreitet,
wird dieses Einzelbild als folgend auf einen Szenenschnitt angesehen.
-
In
einem typischen MPEG-Codierer wird die tatsächliche IID-Entscheidung getroffen,
nachdem die Halb-pel-Bewegungsvektoren erzeugt wurden und der beste
Bewegungsvektor ausgewählt wurde. Da
der Voll-pel-Schätzer 128 Bewegungsvektoren
für das
gesamte Einzelbild erzeugt, bevor der erste Makroblock von dem Codierer
codiert wird, ist die erfindungsgemäße Szeneschnittdetektorvorrichtung 134, die
diese Voll-pel-Ergebnisse überwacht,
in der Lage, eine IID-Abschätzung
für alle
Makroblöcke
zu erzeugen, d.h. zu schätzen,
wie die IID ausfallen würde, wenn
sie die Reste analysiert. Der Szeneschnittdetektor weist einen IID-Schätzer 136 auf,
der in Reihe mit einem Intracode-Makroblockzähler 138 angeschlossen
ist. Der Zähler 138 erzeugt
eine Szeneschnittentscheidung (einen Anzeiger), der anzeigt, daß der Szeneschnittdetektor
bestimmt hat, daß ein Szeneschnitt
aufgetreten ist.
-
Diese
anschauliche Form des Szeneschnittdetektors ist im Detail beschrieben.
Im US-Patent mit der Anmeldungsnummer 08/606,613, eingereichet in den
Vereinigten Staaten am 26. Februar 1996, US-A-5,724,100. In Antwort
auf diesen Szeneschnittindikatoranzeiger stellt der erfindungsgemäße dynamische
Ratencontroller die Quantisierungsskala der Quantisierung ein, so
daß jede
Möglichkeit
einer Paniksituation vermieden wird. Im Grunde genommen hat der
dynamische Ratencontroller einen Codieranzeiger bereitgestellt,
der vor bevorstehenden Szeneschnitten warnt und zwar bevor das Einzelbild,
das dem Szeneschnitt folgt, codiert wird. Im Grunde genommen kann
der dynamische Ratencontroller die Bitzuweisungen neu einstellen
und die Bitverwendung überwachen,
um die Möglichkeit
einer sehr großen
Bitverwendung und einer Paniksituation zu verhindern.
-
Im
Betrieb erhöht
der dynamische Datencontroller 116 die Bitzuweisung zu
dem P-Bild, was sicherstellt, daß die neue Zuweisung den Puffer
nicht in einen Unterlauf bringt, und somit die Bildqualität beibehält. Entsprechend
der MPEG-Norm ist es wünschenswert,
genau codierte P-Bilder zu haben, da Fehler in den P-Bildern dazu
neigen, in andere P- und B-Bilder, die danach codiert werden, überzugehen. 2 stellt
die P-Bilder (P1 und P3)
dar, die am meisten durch Szeneschnitte 202 und 204 innerhalb der
MPEG-Gruppe von Bildern (GOP) 200 betroffen sind. Eine
vergrößerte P-Bildbitzuweisung,
die einen VBV-Unterlauf vermeidet, erfordert die Reduktion der Bits,
die den benachbarten B-Bildern zugewiesen sind. Diese Bitreduktion
kann sicher über
mehrere B-Bilder ausgebreitet werden. Es sei bemerkt, daß B-Bildfehler
sich nicht auf andere Bilder innerhalb der Gruppe von Bildern übertragen.
-
3 stellt
ein detailliertes Flußdiagramm dar,
daß den
Betrieb des dynamischen Ratencontrollers 116 der vorliegenden
Ausführungsform
der Erfindung darstellt. Der Prozeß 300 beginnt am Startblock 302 und
setzt mit Schritt 304 fort, wo der Prozeß eine nominale
Anzahl von Bits (T) berechnet, die verwendet wird, um das gegenwärtige Bild
zu codieren. Ebenso initialisiert Schritt 304 die vergrößerte Bitzuweisung
(ΔT) auf
null. In Schritt 306 fragt der Prozeß ab, ob ein Szeneschnittanzeiger
ausgegeben wurde durch den Szeneschnittdetektor. Falls die Abfrage negativ
beantwortet wird, setzt der Prozeß mit Schritt 308 fort,
wo das gegenwärtige
Bild mit T-Bits (d.h. der Nominalzahl von Bits) codiert wird. Wenn
statt dessen der Szeneschnittanzeiger erfaßt wird, setzt der Prozeß von Schritt 306 zu
Schritt 310 fort. In Schritt 310 berechnet der
Prozeß eine
Vergrößerung (ΔT) für die Bitzuweisung
(T). Die Bitzuweisungsvergrößerung hängt von
verschiedenen Faktoren ab, einschließlich: 1) dem Abstand des P-Bildes,
das zu codieren ist, von dem Ende der Gruppe von Bildern, 2) der
Anzahl von 1-Mode-Makroblöcken
in dem P-Bild, 3) der Einfachheit der Codierung der I-Mode-Makroblöcke und
4) der Anzahl von Bits, die gegenwärtig in der VBV sind. Diese
Information Mode-Makroblöcke und
4) der Anzahl von Bits, die gegenwärtig in der VBV sind. Diese
Information wird in verschiedenen Registern innerhalb des Ratencontrollers
gespeichert und sie werden als Blöcke 312, 314, 316 bzw. 318 in 3 gezeigt.
Jeder der Faktoren, die verwendet werden, um ΔT zu berechnen, werden unten im
Detail erläutert.
-
Genauer
gesagt, falls das erste P-Bild in der neuen Szene nahe dem Ende
der Gruppe von Bildern ist, wird der Ratencontroller keine Vergrößerung in
der Bitzuweisung für
das P-Bild erfordern. Im Grunde genommen wird die Bitzuweisung zu
den P-Bildern proportional zu deren Abstand von dem I-Bild der nächsten Gruppe
von Bildern durchgeführt,
d.h. der Wert von ΔT
kann kleiner sein, wenn das P-Bild näher an dem Ende der Gruppe
von Bildern ist.
-
Man
betrachte beispielsweise das P3 in 2,
welches das letzte P-Bild in der GOP ist. Dieses P-Bild wird nicht
verwendet, um irgendwelche P-Bilder vorherzusagen und wird verwendet,
um nur zwei B-Bilder vorherzusagen, die direkt nach dem Szeneschnitt
auftreten. Dies führt
zu Bildern schlechter Qualität
für nur
die ersten zwei oder drei Bilder in der neuen Szene. Psychovisuelle
Experimente haben gezeigt, daß das
menschliche Auge Schwierigkeiten hat, sich schnell auf eine neue
Szene einzustellen und daß,
selbst wenn die ersten zwei oder drei Bilder der neuen Szene schlechte
Qualität
haben, die Abweichung für
das menschliche Auge nicht bemerkbar ist. Es sei bemerkt, daß die B-Bilder,
die P3 folgen, aus dem I-Bild (I2) vorhergesagt werden und daher nicht an
einer signifikanten Verschlechterung aufgrund des Szeneschnittes
leiden. Im Grunde genommen kann das P3-Bild
schlecht codiert sein, ohne andere Bilder signifikant zu verschlechtern.
Somit wird ΔT
auf einen relativ kleinen Wert für
die P-Bilder, die am Ende einer GOP auftreten, eingestellt.
-
Da
die Anzahl von Intra-Mode-(I-Mode-)Makroblöcken in dem P-Bild bekannt
ist oder abgeschätzt
wird, bevor das Bild codiert wird, kann ΔT proportional zu dem Prozentsatz
der intra-codierten Makroblöcke in dem
Bild eingestellt werden. In manchen Szeneschnitten ist die neue
Szene leicht zu codieren, d.h. es benötigt wenige Bits für die Codierung, so
daß die
tatsächliche
Anzahl von Bits, die verwendet werden, sogar geringer als die Zielbitzuweisung sein
kann. Falls im Vorhinein bestimmt wird, daß die neue Szene so einfach
wie Intra-Mode-Makroblöcke codiert
werden kann, kann die Vergrößerung (ΔT) klein
sein. Beispielsweise kann dies verwirklicht werden durch Analysieren
der Varianzen der Makroblöcke
innerhalb des Bildes, das zu codieren ist, und durch Bestimmen,
wie leicht das Bild zu codieren ist.
-
Eine
andere Beschränkung
der Größe von ΔT ist die
Anzahl von Bits in dem VBV. Der Puffer wird einen Unterlauf erfahren,
falls T + ΔT
die Anzahl von Bits in dem VBV überschreitet.
Somit wird ΔT festgelegt
abhängig
von dem Potential eines Unterlaufs. Dieses Potential für einen
Pufferunterlauf wird leicht berechnet durch Bilden der Differenz
zwischen der Anzahl von Bits in dem VBV und dem Wert von (T + ΔT). Dann
wir der Wert von ΔT
eingestellt, um eine negative (–)
Differenz zu vermeiden.
-
In
Schritt 308 wird die nominelle Bitzuweisung T um die Bitzuweisungsvergrößerung ΔT erhöht, z. B.
T = T + ΔT.
In Schritt 320 berechnet der Prozeß das Potential für einen
Unterlauf unter Verwendung des gegenwärtigen Wertes von ΔT. Dieser Schritt
vergleicht die VBV-Größe mit dem gegenwärtigen Füllgrad des
Puffers für
diesen Wert von T erhöht
um den Wert von ΔT.
Falls die erwartete Pufferfüllung
nahe des Überschreitens
der VBV-Größe wird,
dann wird die Abfrage in Schritt 322 bestätigend beantwortet
und der Prozeß stellt
in Schritt 324 einen möglichen
Unterlaufanzeiger (ebenso bezeichnet als ein möglicher Panikanzeiger) ein.
Ein möglicher
Unterlaufanzeiger zeigt an, daß es
eine Möglichkeit
gibt, daß während des
Codierens des gegenwärtigen
Bildes eine Paniksituation auftreten kann. Wenn eine Paniksituation
nicht als drohend angesehen wird, wird die Abrage in Schritt 322 negativ
beantwortet und der Prozeß setzt
entlang des Nein-Pfades mit Schritt 326 fort.
-
In
Schritt 326 bestimmt der Prozeß basierend auf dem Wert von ΔT eine ursprüngliche
Quantisierungsskala, die dafür
vorgesehen ist, einen Unterlauf des VBV zu vermeiden. In Schritt 328 errichtet der
Prozeß eine
Anzahl von DCT-Koeffizienten, die mit der ursprünglichen Quantisierungsskala
codiert werden. Wie unten erörtert,
sind sowohl die Quantisierungsskala als auch die Anzahl von DCT-Koeffizienten,
die codiert werden, einstellbar, so daß ein VBV-Unterlauf vermieden
werden kann.
-
In
Schritt 330 erzeugt der Prozeß ein Zielbitnutzprofil. Im
allgemeinen wird dieses Nutzprofil festgelegt abhängig von
dem Bildtyp, der codiert wird, d.h. ob es ein P-Bild, ein B-Bild
oder ein I-Bild ist. Typischerweise ist das Nutzprofil linear über die
gesamte Bildcodierung. Alternativ kann das Profil nicht linear sein,
das mehr oder weniger zu verwendende Bits bei einigen Punkten in
dem Bild als an anderen Punkten erlaubt. Im Grunde genommen kann
dem Zentrum irgendeines gegebenen Bildes mehr Bits oder eine feinere
Quantisierungsskala zugewiesen werden als außenliegenden Bereichen des
Bildes. Eine Alternative ist es, das Zielbitnutzprofil dynamisch
zu erzeugen durch Verwenden von Information, die aus dem Codieren
von vorherigen Bildern desselben Typs gewonnen wurde. Beispielsweise
kann das tatsächliche
Zielbitprofil, das verwendet wird, um das vorherige P-Bild zu codieren,
verwendet werden als das Zielbitnutzprofil für das gegenwärtige P-Bild.
Sobald das Zielbitnutzprofil erzeugt ist, beginnt der Prozeß in Schritt 332 mit
dem Codieren des Bildes. Wenn das Bild in Schritt 334 codiert
ist, wird die tatsächliche
Bitverwendung mit dem Zielbitnutzprofil verglichen, nachdem jeder
Makroblock codiert wird. In Schritt 336 stellt der Prozeß die Quantisierungsskala
ein, wie dies notwendig ist, um sicherzustellen, daß die tatsächliche
Bitverwendung zu dem Zielbitnutzprofil paßt. Die Geschwindigkeit, mit
der die Einstellung der Quantisierungsskala verwirklicht wird, kann
variiert werden abhängig
von der Differenz zwischen dem tatsächlichen Bitnutzprofil und
dem Zielbitnutzprofil. In anderen Worten könnte die Antwort schnell sein
für große Unterschiede
zwischen den beiden Profilen oder langsam für kleinere Differenzen zwischen
den beiden Profilen. Die Antwortgeschwindigkeit kann ebenso davon
abhängen,
ob der mögliche
Panikanzeiger gesetzt ist. Falls beispielsweise sowohl der mögliche Panikanzeiger
und der Szeneschnittanzeiger gesetzt sind, muß die Anzahl von Bits, die
verwendet werden, um das nächste
Bild zu codieren, genau gesteuert werden oder eine Unterlaufsituation
ist möglich.
Wenn somit diese Anzeiger gesetzt sind, steuert die Ausführungsform
der Erfindung die Bitverwendung und die Antwortgeschwindigkeit der
Quantisierungsskalaveränderungen
genau. Zusätzlich
zu dem Einstellen der Quantisierungsskala können die DCT-Koeffizienten,
die codiert werden, ebenso verändert
werden. Beispielsweise wenn das tatsächliche Bitverwendungsprofil
beginnt, deutlich von dem Zielbitverwendungsprofil abzuweichen,
und es erwartet wird, daß die
gegenwärtige
Bitverwendung den VBV überschreiten
wird (d.h. der mögliche
Panikanzeiger ist gesetzt). Die DCT-Koeffizienten höherer Ordnung
können
weggelassen werden und nicht codiert werden. Die Anzahl von DCT-Koeffizienten,
die codiert werden, wird von dem Grad abhängen, um den das Zielbitnutzprofil überschritten
wird. Typischerweise wird die Anzahl von DCT-Koeffizienten nur eingestellt,
wenn sowohl der mögliche
Panikanzeiger in Schritt 324 gesetzt ist und ein Szeneschnittanzeiger
in Schritt 306 identifiziert wird.
-
In
Schritt 338 fragt der Prozeß ab, ob alle Makroblöcke für das gegenwärtige Bild
codiert wurden. Falls die Abfrage negativ beantwortet wird, setzt der
Prozeß entlang
des Nein-Pfades zu Schritt 332 fort, wo der nächste Makroblock
codiert wird. Falls die Abfrage in Schritt 338 betätigend beantwortet wird,
setzt der Prozeß mit
Schritt 340 fort, wo der Codierprozeß gestoppt wird.
-
Es
ist wichtig, daß der
vorhergehende Ratensteuerprozeß versucht,
die Gesamtqualität
aller Bilder in einer Sequenz auszugleichen. Im Grunde genommen
versucht der Ratensteuerprozeß,
die Fehler über
eine Anzahl von Bildern zu verteilen, anstatt eine wesentlichen
Anzahl von Fehlern in einem Bild zu haben. Darüber hinaus versucht der erfindungsgemäße Ratencontroller
die Qualität
von unterschiedlichen Bereichen innerhalb eines Bildes konstant
zu halten, so daß innerhalb
eines gegebenen Bildes, wenn es codiert ist, Codierfehler und Anomalien
nicht in einem Bereich des Bildes erscheinen.
-
Obgleich
eine einzelne Ausführungsform
die Lehren der vorliegenden Ausführungsform
der Erfindung beinhaltet, gezeigt und im Detail beschrieben wurde,
können
Fachleute leicht viele andere variierte Ausführungsformen ableiten, die
immer noch diese Lehren enthalten.