-
HINTERGRUND DER ERFINDUNG
-
1. Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft eine Video-Codiervorrichtung und insbesondere eine
Video-Codiervorrichtung,
die Prädiktionscodierung
von Digitalvideosignalen vornimmt.
-
2. Beschreibung des Standes
der Technik
-
Der
ITU-T-Standard H.261 und die ISO-Standards MPEG-1 und MPEG-2 sind
beispielsweise anerkannte internationale Standards für Bewegtbild-Codiertechniken,
welche Hybridcodieralgorithmen verwenden. In diesen Standard-Videocodierschemata
läuft der
Codierprozess folgendermaßen ab:
(1) Ein Quellenbild wird in Pixelblöcke aufgeteilt, (2) Eine orthogonale
Transformation (z.B. diskrete Cosinus-Transformation)) und eine Bewegungskompensation
werden unabhängig
auf jeden Block angewendet und (3) quantifizierte Videodaten werden durch
Entropiecodierung komprimiert.
-
Wenn
eine Bewegung spürbaren
Umfangs oder ein vollständiger
Szenenübergang
in der Mitte einer Folge von Videorahmen auftritt, können die oben
beschriebenen Hybridvideocodiertechniken unter einem erdrückenden
Umfang an codierten Rahmendaten leiden, die einen für jeden
Rahmen zulässigen
Standardpegel übersteigen.
In einem solchen Fall wird der Codierer den Umfang an codierten
Daten bei einem Versuch, sie auf einen Standardpegel zu reduzieren
zwangsweise reduzieren. Dies wird eine extreme Verschlechterung
der Bildqualität und/oder
auch eine grobe Rahmenunterabtastung (oder einen Abfall der Rahmenaktualisierungsrate) verursachen,
was zu nicht akzeptierbar schlechten Bildern führt beim Rekonstruieren am
Empfangsende.
-
Ein
Videocodiersystem, das versucht, das obige Problem zu vermeiden,
ist beispielsweise in der japanischen Patent-Offenlegungsschrift mit der Veröffentlichungsnummer
7-30901 (1995) offenbart. In dem in dieser Veröffentlichung vorgeschlagenen System
reduziert der Codierer die Auflösung
der Eingangsrahmensignale zum Reduzieren des Umfangs an codierten
Rahmendaten, wenn ein vollständiger Szenenübergang
oder eine starke Bewegung in der Mitte einer Abfolge von Videorahmen
aufgetreten ist. Eine solche Datenreduzierstrategie basiert auf
der Tatsache, dass das Reduzieren der Bildauflösung die Wahrnehmungsqualität decodierter
Bilder besser aufrechterhalten kann als das Erhöhen der Quantisiererschrittgröße. Das
Videocodiersystem gemäß dem Stand
der Technik verwendet eine Bewegungskorrekturberechnungsvorrichtung
zum Berechnen von Zwischenrahmenversatz jedes Blockes anzeigenden
Bewegungsvektoren. Das Codiersystem berechnet dann den durchschnittlichen
Umfang der erhaltenen Bewegungsvektoren in einem gesamten Rahmen
und wählt
eine geeignete Auflösung
in Übereinstimmung
mit der berechneten durchschnittlichen Größe der Bewegungsvektoren aus.
Auf diese Weise reduziert das Codiersystem dem Umfang an codierten
Daten durch Reduzieren der Auflösung
des Videosignals, wenn eine Bewegung großen Umfangs zwischen zwei aufeinanderfolgenden
Rahmen beobachtet wird.
-
Das
oben beschriebene Codiersystem des Standes der Technik hat jedoch
die folgenden Probleme.
-
Zum
einen kann das System des Standes der Technik eine unnötige Reduzierung
der Bildauflösung
bedingt durch nicht korrekte Interpretation von der Bewegungsvektorgröße vornehmen.
Die durchschnittliche Größe von Bewegungsvektoren
in einem Rahmen ist nicht immer proportional zu dem Gesamtumfang
an codierten Daten. Angenommen, dass das Gesichtsfeld einer Kamera
sich einfach in einer festen Richtung bewegt, wie bei einem Kameraschwenk.
Die in einer solchen Situation berechneten Bewegungsvektoren werden
einen großen
Bewegungsumfang anzeigen, aber der Umfang an tatsächlich durch
den Codierer produzierten Daten kann relativ klein sein, weil der
im Codierer implementierte Bewegungsvorhersagealgorithmus effizient
arbeitet und die berechneten Bewegungsvektoren dazu tendieren, gleichförmige Werte
zu haben. Daher muss es in diesem Fall möglich sein, Videorahmen ohne
Reduzieren ihrer Auflösung
zu codieren und zu senden und die Ursprungsqualität am Empfangsende
wiederherzustellen. Das Codiersystem des Standes der Technik kann
jedoch gegebenenfalls unnötiger
Weise die Auflösung
verringern einfach wegen einer großen Durchschnittsmagnitude von
Bewegungssektoren.
-
Zum
Zweiten führt
das Codiersystem des Standes der Technik eine unnötige Reduzierung
von Bildauflösung
bedingt durch eine Indifferenz von Pufferbelegung durch. Zum Regulieren
der zum empfangenen Ende zu sendenden Bitstromrate verwendet das
Codiersystem einen Pufferspeicher, der codierte Daten temporär speichert.
Wenn die Pufferbelegung (d.h., der Umfang an codierten Daten als
Teil der Pufferspeicherkapazität)
kleiner ist als ein vorbestimmter Wert, kann der Puffer gegebenenfalls
eine größere Menge
codierter Daten annehmen als gewöhnlich.
In solchen Fällen
wird das konventionelle System unnötiger Weise die Auflösung bedingt
durch das Vorliegen einer großen
mittleren Magnitude an Bewegungsvektoren absetzen, was zu einer
Verschlechterung der Bildqualität
führt.
-
Zum
Dritten muss das System des Standes der Technik jede Codierprozedur
schneller ausführen als
normale Pipeline- Systeme.
Um die erforderliche Performance bereitzustellen, nehmen die meisten
Videocodiersysteme Pipeline-Architektur, bei der mehrere Blöcke gleichzeitig
in unterschiedlichen Stufen verarbeitet werden. Hier sei angenommen,
dass dieser Blockdatenwert durch drei Stufen geführt werden soll von: Bewegungsvektorberechnung,
Prädiktionsfehlerberechnung
und orthogonale Transformation. Der ersten Stufe wird ein Bewegungsvektor
eines ersten Blocks berechnet. In der nächsten Stufe wird der verarbeitete
erste Block einer Prädiktionsfehlerberechnung
unterzogen und gleichzeitig wird auf einen zweiten Block die Bewegungsvektorberechnung angewendet.
Im dritten Schritt wird eine orthogonale Transformation auf den
ersten Block angewendet, Prädiktionsfehler
des zweiten Blockes werden berechnet und ein Bewegungssektor des
dritten Blocks wird berechnet. Auf diese Weise kann ein Pipeline-Codiersystem
eine Vielzahl von Prozessen, die in einer sequentiellen Weise ausgeführt werden
sollen, gleichzeitig auf unterschiedliche Blöcke anwenden, hierdurch einen
hohen Gesamtdurchsatzpegel bereitstellend. Im Codiersystem des Standes
der Technik berechnet andererseits die Bewegungsvektorberechnungseinrichtung
Bewegungsvektoren und auf das Abschließen der Vektorberechnung für den gesamten
Rahmen wird die durchschnittliche Vektormagnitude berechnet, um
die Bildauflösung
zu bestimmen. Das heißt,
die Bildauflösung
kann nicht definiert werden, bis die Bewegungsvektorberechnung beendet
ist und die nachfolgenden Prozesse wie die Prädiktionsfehlerberechnung, die
orthogonale Transformation, die Quantisierung, die Inversquantisierung und
die inverse orthognale Transformation können nicht beginnen, bis die
Bildauflösung
definiert ist. Daher muss das System des Standes der Technik jeden Prozess
schneller ausführen
als normale Pipeline-Systeme, um die Rahmencodierung innerhalb einer
festen Zykluszeit zu beenden.
-
RESÜMEE DER
ERFINDUNG
-
Unter
Berücksichtigung
des Voranstehenden ist ein Ziel der vorliegenden Erfindung, eine
Video-Codiervorrichtung bereitzustellen, die geeignete und prompte
Steuerung der Auflösung
von Quellenbildern bereitstellt zum Regulieren des Umfangs an codierten
Daten bei einem geeigneten Pegel.
-
Um
das obige Ziel zu erreichen, wird gemäß der vorliegenden Erfindung
ein Videocodiergerät
zum Ausführen
von Prädiktionscodierung
digitaler Videoeingangssignale bereitgestellt, die umfasst: Eine Ortsauflösungsauswahl-Steuereinrichtung
zum Auswählen
einer Ortsauflösung
eines ersten Bildes oder einer Ortsauflösung eines zweiten Bildes,
die geringer ist als die Ortsauflösung des ersten Bildes zur Verwendung
beim Codieren eines Ursprungsbildes eines momentanen Rahmens bzw.
Rasterbildes basierend auf Codierinformation in dem vorherigen Rahmen,
eine Ortsauflösungskonvertiereinrichtung zum
Konvertieren der Ortsauflösung
des Quellenbildes von der Ortsauflösung des ersten Bildes zu der Ortsauflösung des
zweiten Bildes, die durch die Ortsauflösungsauswahlsteuereinrichtung
ausgewählt worden
ist; und eine Codiereinrichtung zum Codieren des Quellenbildes,
dessen Ortsauflösung
durch die Ortsauflösungskonvertiereinrichtung
konvertiert worden ist, und gekennzeichnet dadurch, dass die Codierinformation
mindestens eine Quantisierschrittgröße, eine Menge codierter Daten
und die Pufferbelegung in dem vorangehenden Rahmen einschließt, die
Ortsauflösung
des zweiten Bildes ausgewählt wird,
wenn der vorangehende Rahmen in der Ortsauflösung des ersten Bildes codiert
worden ist, wenn eine Pufferbelegung größer ist als ein erster Schwellwert,
und wenn ein Produkt der Quantisierschrittgröße und der Menge an codierten
Daten größer ist
als ein zweiter Schwellwert, welcher zweite Schwellwert ein Produkt
der größten zulässigen Quantisierschrittgröße in der
Ortsauflösung
des ersten Bildes und einer Zielmenge codierter Daten pro Rahmen
in der Ortsauflösung
des ersten Bildes ist.
-
Das
obige und andere Ziele, Merkmale und Vorteile der vorliegenden Erfindung
werden aus der folgenden Beschreibung ersichtlich, wenn im Zusammenhang
mit den beiliegenden Zeichnungen betrachtet, die eine bevorzugte
Ausführungsform
der vorliegenden Erfindung beispielhaft darlegen.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
Es
zeigt:
-
1 eine
Konzeptansicht der vorliegenden Erfindung; und
-
2 ein
Blockdiagramm des Aufbaus einer Ausführungsform der Erfindung.
-
BESCHREIBUNG
DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Eine
Ausführungsform
der vorliegenden Erfindung wird nachstehend unter Bezugnahme auf
die beiliegenden Zeichnungen beschrieben.
-
Zu
Beginn wird das Prinzip eines Video-Codiersystems der Ausführungsform
unter Bezugnahme auf 1 erläutert. Das Videocodiersystem
der Ausführungsform
umfasst eine Auflösungsauswahlsteuereinrichtung 1 zum
Auswählen
von Bildauflösung,
die beim Codieren eines Quellenbildes eines momentanen Rahmens zu
verwenden ist, basierend auf Codierinformation im vorangehenden
Rahmen, wobei die Codierinformation eine Quantisierschrittgröße, den
Umfang codierter Daten und die Pufferbelegung einschließt. Die
Vorrichtung umfasst ferner eine Auflösungskonvertiereinrichtung 2 zum
Konvertieren der Auflösung
des Quellenbildes zu der Bildauflösung, die durch die Auflösungsauswahlsteuereinrichtung 1 ausgewählt worden ist
und eine Codiereinrichtung 3 zum Codieren des Quellenbildes,
dessen Auflösung
durch die Auflösungskonvertiereinrichtung 2 konvertiert
worden ist.
-
Wenn
das Codieren eines Rahmens abgeschlossen ist, werden einige resultierende
Informationen, die sich auf den codierten Rahmen beziehen, verfügbar, welche
mindestens eine Quantisierschrittgröße, den Umfang codierter Daten
und die Pufferbelegung einschließen. Solche Codierinformation
gibt die Eigenschaften dieses Rahmens in einem gewissen Ausmaß an. Im
Allgemeinen ändern
sich die Eigenschaften von Bildern graduell mit dem Laufe der Zeit,
aber es ist auch wahr, dass zwei aufeinanderfolgende Rahmen eine
gute Korrelation in ihren Eigenschaften haben. Daher ist es möglich, die
Eigenschaften des momentanen Rahmens, der gerade codiert wird, vorherzusagen
unter Verwendung der Codierinformation des vorangehenden Rahmens.
Mit anderen Worten, durch Prüfen
der Codierinformation des vorangehenden Rahmens kann das System
abschätzen,
ob der momentane Rahmen erfolgreich codiert werden wird oder nicht
anhand der folgenden Kriterien: (1) Der Umfang der codierten Daten
muss innerhalb eines Zielumfangs liegen, und (2) das Bild muss,
wenn es decodiert ist, einen Standardqualitätspegel erfüllen.
-
Die
vorliegende Erfindung wendet die oben beschriebenen Ideen auf ein
Videocodiersystem an. Gemäß der vorliegenden
Erfindung schätzt
das Codiersystem den Umfang an codierten Daten und die Qualität des decodierten
Bildes und verwendet diese Schätzung
zum Bestimmen der Bildauflösung.
Das heißt,
wenn abgeschätzt
wird, dass jene Bedingungen nicht erfüllt werden können, reduziert
das System die Bildauflösung
der eingegebenen Videoinformation (d.h. reduziert die Anzahl der
zu codierenden Pixel), so dass der Gesamtumfang codierter Daten verringert
wird. Auf diese weise erzeugt das Codiersystem einen digitalen Videobitstrom,
der glatt bzw. übergangsfrei
die Ursprungsbewegung reproduziert mit weniger häufigen Rahmenverlusten, wenn
er decodiert wird.
-
Spezieller
wird das wie in 11 gezeigt konfigurierte
Videocodiersystem folgendermaßen
arbeiten. Die Auflösungsauswahlsteuereinrichtung 1 empfängt von
der Codiereinrichtung 3 die Quantisierschrittgröße, den
Umfang codierter Daten und die Pufferbelegung im vorangehenden Rahmencodierprozess.
Basierend auf jenen drei Faktoren schätzt die Auflösungsauswahlsteuereinrichtung 1,
die zuvor erwähnten
Bedingungen, die im derzeitigen Rahmencodierprozess erfüllt werden
oder nicht, hierbei eine Bildauflösung auswählend, die geeignet ist für ein Quellenbild
oder Eingangsbild des derzeitigen Rahmens.
-
Das
Quellenbild wird in der Auflösungskonvertiereinrichtung 2 verarbeitet
vor dem Erreichen der Codiereinrichtung 3. Die Auflösungskonvertiereinrichtung 2 ändert die
Auflösung
des Quellenbildes in die von der Auflösungsauswahlsteuereinrichtung 1 ausgewählte Bildauflösung. Die
Codiereinrichtung 3 codiert das Quellenbild mit jener ausgewählten Auflösung.
-
Auf
diese Weise ermöglicht
die vorliegende Erf indung es, dass die nächste Bildauflösung gerade nachdem
der vorangehende Rahmen codiert worden ist, bestimmt werden kann.
Im Gegensatz zu dem System des Standes der Technik braucht das Videocodiersystem
der vorliegenden Erfindung nicht auf das Ergebnis der Mittelung
der Bewegungsvektoren zu warten und demnach kann es die Quellenbildauflösung in
einer prompten und geeigneten Weise bestimmen sowie den Umfang an
codierten Daten auf einen geeigneten Pegel regulieren. Dank der
Bereitschaft der Bildauflösung
kann das System vollständig mit
einem Pipeline-Schema konfiguriert werden, ohne jede Stufe davon
schneller zu machen.
-
2 ist
ein Blockdiagramm zum Zeigen des detaillierten Aufbaus der Ausführungsform.
Beachte, dass ein solches Videocodiersystem in der Realität einige
zusätzliche
Datenpfade und Schalter haben muss zum Vorbeiführen einiger Funktionselemente für die Zwischenrahmencodierung
(d.h., das System führt
nur Zwischenrahmencodierung aus). Da jedoch die vorliegende Erfindung
sich speziell auf eine Prädiktionsvideocodiervorrichtung
bezieht, ist 2 aus Gründen der Einfachheit auf die
strukturelle Anordnung für
ein Zwischenrahmencodiersystem fokussiert.
-
Diese
Ausführungsform
steht folgenderweise im Zusammenhang mit der Grundstruktur der vorliegenden
Erf indung, die in ihrer Konzeptansicht gezeigt ist. Die Auflösungsauswahlsteuereinrichtung 1 in 1 entspricht
einer CIF/QCIF-Auswahlsteuerung 25 in 2 und
in ähnlicher
Weise entspricht die Auflösungskonversionseinrichtung 2 in 1 einem
CIF/QCIF-Konverter 11 in 2. Die Codiereinrichtung 3 wird
als eine Kombination eines Prädiktionsparameterrechners 12,
eines Prädiktionsfehlerrechners 14,
eines DCT-Prozessors 15, eines Quantisierers 16,
eines Entropiecodierers 17 und einer Codiersteuerung 24 implementiert.
-
H.261
lässt nur
zwei Bildformate zu: Das gemeinsame Zwischenformat bzw. "common intermediate
formate" (CIF) und
quater-CIF (QCIF). Die CIF-Bildauflösung wird definiert als 352 × 288 Bildpunkte
bzw. Pixel für
Luminanzkomponenten eines Bildes, während die von QCIF 176 × 144 Bildpunkte ist.
Aus Gründen
der Recheneffizienz verwendet H.261 blockbasierte Algorithmen, in
welchen jedes Bild in Blöcke
von 8 × 8
Bildpunkten partitioniert ist.
-
Im
Betrieb des Videocodiersystems der 2 setzt
ein CIF/QCIF-Konverter 11 die CIF-Bildauflösung des
Quellenbildes in die QCIF-Bildauflösung um gemäß Anweisungen von einer (später beschriebenen)
CIF/QCIF-Auswahlsteuerung 25. Die Ausgangsgröße des CIF/QCIF-Konverters 11 wird
zu einem Prädiktionsparameterrechner 12 und
einem Prädiktionsfehlerrechner 14 gesendet.
Ein wiederhergestelltes (oder decodiertes) Bild des Vorangehenden,
in einem Rahmenspeicher 22 gespeicherten Rahmens wird ebenfalls
zu dem Prädiktionsparameterrechner 12 über einen
CIF/QCIF-Konverter 23 gesendet. Vollständige Details des Rahmenspeichers 22 und
des CIF/QCIF-Konverters 23 werden später beschrieben. Das Quellenbild
des momentanen Rahmens mit dem wiederhergestellten Bild des vorangehenden
Rahmens auf einer Block-zu-Block-Basis vergleichend berechnet der
Prädiktionsparameterrechner 12 Bewegungsvektoren
des momentanen Rahmens. Beachte, dass die Bilder der beiden aufeinanderfolgenden
Rahmen konfiguriert sind, um für einen
leichteren Vergleich dieselbe Auflösung zu haben, wie später detailliert
beschrieben wird. Die von dem Prädiktionsparameterrechner 12 erhaltenen
Bewegungsvektoren werden dem Prädiktionsbildgenerator 13 und
einem Entropiecodierer 17 zugeführt. Der Prädiktionsbildgenerator 13 empfängt zusätzlich zu
den Bildvektoren ein decodiertes Bild des vorangehenden Rahmens
von dem Rahmenspeicher 22 über den CIF/QCIF-Konverter 23.
Basierend auf dem decodierten Bild des vorangehenden Rahmens und den
Bewegungsvektoren produziert der Prädiktionsbildgenerator 13 ein
Prädiktions- bzw. Vorhersagebild
des momentanen Rahmens und sendet es zu einem Prädiktionsparameterrechner 14 und
einem Rekonstruktionsbildgenerator 21.
-
Der
Prädiktionsfehlerrechner 14 erzeugt
ein Prädiktionsfehlersignal
durch Berechnen von Unterschieden zwischen dem momentanen Rahmenbild, das
durch den CIF/QCIF-Konverter 11 bereitgestellt wird
und dem Prädiktionsbild,
das von dem Prädiktionsbildgenerator 13 bereitgestellt
wird. Das erzeugte Prädiktionsfehlersignal
wird dann an einen DCT-Prozessor 15 gesendet.
Die beiden verglichenen Bilder sind konfiguriert, um dieselbe Auflösung zu
haben wie später
detailliert beschrieben wird. Um die Ortsredundanz innerhalb eines
Blocks zu reduzieren, wendet der DCT-Prozessor 15 eine
diskrete Cosinus-Transformation (DCT) auf das Prädiktionsfehlersignal jedes
Blocks an, hierdurch Transformationskoeffizienten erhalten. Ein
als Nächstes
zu dem DCT-Prozessor 15 angeordneter Quantisierer 16 quantisiert
die Transformationskoeffizienten jedes Blocks mit einer Quantisierschrittgröße, die
durch eine Codiersteuerung 24 spezifiziert ist. Die quantisierten
Transformationskoeffizienten werden dann in einen Entropiecodierer 17 eingegeben,
um eine Datenkompression mit einem Entropiecodieralgorithmus vorzunehmen.
Spezieller empfängt
der Entropiecodierer 17 die quantisierten Transformationskoeffizienten
von dem Quantisierer 16, Bewegungsvektoren von dem Prädiktionsparameterrechner 12,
und Quantisierer-Schrittgröße und andere
Prädiktivcodiersysteminformation
(z.B. Zwischenrahmen- oder Zwischenrahmencodiermus) von der Codiersteuerung 24,
und die Bildauflösung
von der CIF/QCIF-Auswahlsteuerung 25. Der Entropiecodierer 17 ordnet
dann unterschiedliche Codes zu den Kombinationen jener empfangener
Daten zu und speichert die codierten Daten in einen Code-Puffer 18.
Der Code-Puffer 18 dient als temporärer Speicher der codierten
Daten, die zu der Übertragungsleitung in
Form eines Bitstroms bei einer konstanten Übertragungsrate ausgesendet
werden.
-
Die
durch den Quantisierer 16 erzeugten quantisierten Transformationskoeffizienten
werden auch an den Umkehr-Quantisierer 19 gerichtet
zur Entquantisierung oder inversen Quantisierung. Sie werden dann
zu einer inversen diskreten Cosinus-Transformation (IDCT) durch
einen IDCT-Prozessor 20 gerichtet zum Erzeugen des Prädiktionsfehlersignals.
Ein Rekonstruktionsbildgenerator 21 rekonstruiert ein Bild
durch Hinzufügen
des von dem Prädiktionsbildgenerator 13 erzeugten
Prädiktionsbildes
und des Prädiktionsfehlersignals
von dem IDCT-Prozessor 20. Dieses rekonstruierte Bild zeigt das
Bild des derzeitigen Rahmens, aber es ist nicht exakt dasselbe wie
das ursprüngliche
Quellenbild, weil einige detaillierte graphische Information in
dem Codierprozess verlorengegangen ist. Der Rekonstruktionsbildgenerator 21 sichert
das rekonstruierte Bild in einem Rahmenspeicher 22 zur
Verwendung im nächsten
Rahmen. In dem obigen Summationsprozess wird die Auflösung des
Prädiktionsbildes
an die Auflösung
des Bildes angepasst, von dem ein Prädiktionsfehlersignal hergeleitet
worden ist, wie später
detaillierter beschrieben wird.
-
Der
Codier-Controller 24 wird von dem Entropiecodierer 17 über den
Umfang an durch die Entropiecodierung erzeugten codierten Daten
informiert. Der Codier-Controller 24 empfängt auch
von dem Code-Puffer 18 die Pufferbelegungsinformation, welche
anzeigt, wie viel Daten die Kapazität des Code-Puffers 18 belegen.
Basierend auf jener Information bestimmt der Codier-Controller 24 die
Quantisierschrittgröße und verteilt
sie an den Quantisierer 16, den Inversquantisierer 19 und
den Entropiecodierer 17, obwohl der Signalstrom zu dem
inversen Quantisierer 19 in 2 weggelassen
ist.
-
Die
CIF/QCIF-Auswahlsteuerung 25 empfängt die Quantisierschrittgröße für jeden
Block in dem vorhergehenden Rahmen von der Codiersteuerung 24,
den Umfang der codierten Daten des vorhergehenden Rahmens von dem
Entropiecodierer 17 und die Pufferbelegung von dem Code-Puffer 18.
Basierend auf der empfangenen Information bestimmt der CIF/QCIF-Auswahl-Controller 25,
welche Bildauflösung
beim Codieren des momentanen Rahmens verwendet werden sollte. Vollständige Details
dieses Entscheidungsprozesses werden später als separater Unterpunkt
beschrieben. Die bestimmte Bildauflösung wird an den CIF/QCIF-Konverter 11,
den CIF/QCIF-Konverter 23 und den Entropiecodierer 17 verteilt
und ferner an den DTC-Prozessor 15 und
den Anzeigeauflösungskonverter 26.
-
Wenn
die CIF/QCIF-Auswahlsteuerung 25 entscheidet, die CIF-Auflösung oder
die hohe Auflösung
zu verwenden, leitet der CIF/QCIF-Konverter 11 einfach
das Quellenbild, das die CIF-Auflösung hat, unverändert weiter
zu den nachfolgenden Stufen. Der CIF/QCIF-Konverter 23 gibt
einfach ein von dem Rahmenspeicher 22 geholtes wiederhergestelltes Bild
aus, wenn es die CIF-Auflösung
hat, oder konvertiert das geholte Bild in die CIF-Auflösung, wenn es
die QCIF-Auflösung
hat. Als ein Ergebnis werden die in dem Prädiktionsparameterrechner 12,
dem Prädiktionsfehlerrechner 14 und
dem Rekonstruktionsbildgenerator 21 verarbeiteten Signale
vereinheitlicht zu dem CIF bezüglich
der Bildauflösung.
-
Wenn
die CIF/QCIF-Auswahlsteuerung 25 entschieden hat, CIF-Auflösung oder
die niedrige Auflösung
zu verwenden, konvertiert andererseits der CIF/QCIF-Konverter 11 das
CIF-Quellenbild
in QCIF-Bilder. Der CIF/QCIF-Konverter 23 holt das wiederhergestellte
Bild des vorangehenden Rahmens aus dem Rahmenspeicher 22 und
konvertiert es in QCIF-Bilder, wenn es von der CIF-Auflösung ist. Wenn
das geholte Bild die QCIF-Auflösung hat,
wird der CIF/QCIF-Konverter 23 einfach dieses Bild ausgeben.
Als ein Ergebnis werden die in dem Prädiktionsparameterrechner 12,
dem Prädiktionsfehlerrechner 14 und
dem Rekonstruktionsbildgenerator 21 verarbeiteten Signale
vereinheitlicht zu QCIF bezüglich
der Bildauflösung.
-
Die
CIF/QCIF-Auswahlsteuerung 25 weist die Bildauflösung auch
für den
DTC-Prozessor 15 und den Anzeigeauflösungskonverter 26 an.
Die Verwendung der Bildauflösung
in jenen beiden Funktionsblöcken
wird direkt nach der folgenden Erläuterung in Bezug darauf, wie
die CIF/QCIF-Auswahlsteuerung 25 die Bildauflösung bestimmt,
beschrieben.
-
Die
CIF/QCIF-Auswahlsteuerung 25 verwendet verschiedene Parameter,
die zuvor definiert worden sind für den Videocodierprozess. QPTH1 ist die größte (oder gröbste) Quantisierschrittgröße, die beim
Ausführen
der Codierung in einem Hochauflösungsmodus,
wenn nämlich
die CIF-Auflösung
ausgewählt
ist, zulässig
ist. In ähnlicher
Weise ist QPTH2 die kleinste (oder feinste)
Quantisierschrittgröße, die in
dem Niederauflösungsmodus
oder der QCIF-Auflösung
zulässig
ist. Btarget1 wird als einen Zielumfang codierter
Daten pro Rahmen in der CIF-Auflösung definiert
und Btarget1 in der QCIF-Auflösung. Die CIF/QCIF-Auswahlsteuerung 25 berechnet
ein Produkt QPi-1·Bi-1,
wobei QPi-1 eine Durchschnitts- Quantisierungsschrittgröße für alle Blöcke im vorangehenden
Rahmen ist und Bi-1 der Umfang codierter
Daten, die tatsächlich
in dem derzeitigen Rahmen produziert worden sind. Ein Symbol Δ repräsentiert
eine Pufferbelegung der Speichereinheit 18, wenn der vorangehende
Rahmen beendet ist.
-
Hier
sei angenommen, dass die CIF-Auflösung im vorangehenden Rahmen
genommen worden ist. Wenn die Pufferbelegung Δ größer ist als ein vorbestimmter
Standardwert ΔTH1 und das Produkt QPi-1·Bi-1 größer ist
als QPTH1·Btarget1,
dann wird die CIF/QCIF-Auswahlsteuerung 25 die CIF-Auflösung zum
Codieren des momentanen Rahmens auswählen.
-
Noch
einmal angenommen, dass die QCIF-Auflösung im vorangehenden Rahmen
genommen worden ist. Wenn die Pufferbelegung Δ kleiner ist als ein anderer
vorbestimmter Standardwert ΔTH2 und das Produkt QPi-1·Bi-1 kleiner ist als QPTH2·Btarget2, wird die CIF/QCIF-Auswahlsteuerung 25 die CIF-Auflösung zum
Codieren des momentanen Rahmens auswählen.
-
Im
Allgemeinen wird eine kleinere Quantisierschrittgröße eine
größere Menge
codierter Daten verursachen und eine größere Schrittgröße wird
eine kleinere Menge codierter Daten verursachen. Grob ausgedrückt, die
Menge codierter Daten ist umgekehrt proportional zu der Durchschnitts-Quantisierungsschrittweite
aller ein Quellenbild bildender Blöcke. Mit anderen Worten, das
Produkt jener zwei Faktoren ist nahezu konstant, wenn Quellenbilder
mit derselben Auflösung
gegeben werden. Dieses Produkt dient als ein guter Index zum Zeigen
der Eigenschaften eines Quellenbildes, speziell bezüglich des Aspektes
der Videocodiersteuerung, solange das Videocodiersystem mit konsistenten
Systemparametern einschließlich
der Bildauflösung
läuft.
Weil die Eigenschaften von Videobildern sich im Allgemeinen mit
der Zeit ohne große Übergänge ändern, wird
das oben beschriebene Produkt nicht so sehr von einem Rahmen zum nächsten Rahmen
variieren und dies rechtfertigt in den meisten Fällen die Verwendung des Produktwertes
im vorangehenden Rahmen als eine Schätzung für den momentanen Rahmen, der von
nun an zu verarbeiten ist.
-
Die
vorliegende Erfindung basiert auf der obigen Beobachtung. Im Falle,
dass die CIF-Auflösung
im vorangehenden Rahmen ausgewählt
war, impliziert die Pufferbelegung Δ, die größer ist als der vorbestimmte
Standardwert ΔTH1, dass der Code-Puffer 18 einen geringen Raum
hat. Auch wenn ein Produktwert QPi-1·Bi-1 den Standardwert QPTH1·Btarget1 übersteigt,
suggeriert dies, dass die momentane Rahmencodierung einen Überlauf
codierter Daten verursachen würde,
wenn die vorangehende Auflösung
CIF, ohne Änderung
darauf angewendet würde. Wenn
solche Bedingungen beobachtet werden, wählt die CIF/QCIF-Auswahlsteuerung 25 die CIF-Auflösung als
die neue Bildauflösung
zum Codieren des derzeitigen Rahmens. In dem Fall, in dem die QCIF-Auflösung im
vorangehenden Rahmen ausgewählt
war, bedeutet wiederum, dass die Puffer-Belegung Δ kleiner
ist als der vorbestimmte Standardwert ΔTH2,
dass der Code-Puffer 18 Raum bei einem gewissen Level hat.
Der Produktwert QPi-1·Bi-1 des
vorangehenden Rahmens, der kleiner ist als der Standardwert QPTH2·Btarget2, zeigt an, dass die momentane Rahmencodierung
zu wenig codierte Daten erzeugen würde, wenn die vorangehende
Auflösung, QCIF,
kontinuierlich ohne Änderung
darauf angewendet würde.
Wenn solche Bedingungen beobachtet werden, wählt die CIF/QCIF-Auswahlsteuerung 25 die
CIF-Auflösung
für die
Codierung des derzeitigen Rahmens.
-
Anders
als beim Codiersystem des Standes der Technik erfordert die vorliegende
Erfindung keine Berechnung der durchschnittlichen Magnitude von Bewegungsvektoren.
Die vorliegende Erfindung kann schnell die Bildauflösung in
geeigneter Weise für
den derzeitigen Rahmen basierend auf der Codierinformation im vorangehenden
Rahmen bestimmen, wie oben erläutert.
Daher kann das Codiersystem den Umfang der codierten Daten bei einem
geeigneten Pegel regulieren.
-
Unterdessen
kann das decodierter Videosignal, das von dem Rekonstruktionsbildgenerator 21 erzeugt
wird, gegebenenfalls in einigen Fällen die CIF-Auflösung haben
und in anderen Fällen
die QCIF-Auflösung.
Wenn das Beobachten der rekonstruierten Bilder erforderlich ist,
wird eine solche Inkonsistenz in der Bildauflösung ein Problem mit einer Anzeigeeinheit
(in 2 nicht dargestellt) mit sich bringen, die normalerweise
entworfen worden ist, um nur eine feste Auflösung anzunehmen. Ein Anzeigenauflösungskonverter 26 löst dieses
Problem durch Anpassen der Auflösung,
um an die Anzeigeeinheit angepasst zu sein. Das heißt, in Übereinstimmung mit
der durch die CIF/QCIF-Auswahlsteuerung 25 ausgewählten Auflösung ändert der
Anzeigeauflösungskonverter 26 die
Auflösung
der von dem Rekonstruktionsbildgenerator 21 erzeugten rekonstruierten
Bilder, um die Eingangssignalanforderungen der Anzeigeeinheit zu
erfüllen.
-
Selbst
wenn die Auflösung
von QCIF zu CIF erhöht
wird, wird das Vorhersagebild sich nicht unmittelbar zu CIF ändern, sondern
es wird immer noch die QCIF-Auflösung
haben, weil die Vorhersage auf dem rekonstruierten Bild des vorangehenden
Rahmens beruht. Obwohl CIF-Bilder im Allgemeinen einige hohe Ortsfrequenzkomponenten
haben, um detaillierte Bilder zu repräsentieren, lassen QCIF-Bilder jene
Komponenten vollständig
weg. Daher wird unmittelbar, nachdem der CIF/QCIF-Konverter 11 eine Umsetzung
von CIF nach QCIF beendet, ein hochauflösendes CIF-Quellenbild unter
Bezugnahme auf ein niedrigauflösendes
QCIF-Vorhersagebild prädiktionscodiert,
hierdurch eine plötzliche
Zunahme codierter Daten verursachend. Als ein Ergebnis kann die
CIF/QCIF-Auswahlsteuerung 25 gegebenenfalls wieder QCIF
auswählend
und es ist wahrscheinlich, dass das Ändern der Bildauflösung von
einer zur anderen fortgesetzt wird. Um ein solches Oszillieren zu vermeiden,
wird der DCT-Prozessor 15 zuerst nur eine beschränkte Anzahl
an Transformationskoeffizienten ausgeben und sie dann graduell erhöhen, wenn
die CIF/QCIF-Auswahlsteuerung 25 die Bildauflösung von
QCIF nach CIF ändert.
Spezieller, gibt der DCT-Prozessor 15 zuerst nur die 4 × 4-Koeffizienten
aus, die Niederfrequenzkomponenten repräsentieren. Dann wird er graduell
andere, höherfrequente
Komponenten wie 5 × 5-,
6 × 6- und 7 × 7-Komponenten
so lange einschließen,
wie die aufeinanderfolgenden Rahmen in derselben CIF-Auflösung verbleiben.
Auf diese Weise erhöht
der DCT-Prozessor 15 die Anzahl der Koeffizienten von Niederfrequenzkomponenten
zu Hochfrequenzkomponenten, hierdurch eine Änderung der Bildauflösung ohne
starke Übergänge realisierend.
Das spektrale Auswahlverfahren verhindert das Auftreten der Oszillation
zwischen CIF und QCIF sowie ein Unterdrücken einer übermäßigen Zunahme codierter Daten.
-
Obwohl
die Ausführungsform
nur zwei Auflösungen,
CIF und QCIF verwendet, kann die vorliegende Erfindung auch auf
einem solchem System angewendet werden, das mehr Auflösungen auszuwählen ermöglicht.
In diesem Fall definiert das Codiersystem unterschiedliche Standard-Quantisierschrittgrößen und
Bitraten für
die jeweiligen Bildauflösungen
und steuert die Auflösung
jedes Rahmens durch Evaluieren der vorangehenden Codierergebnisse
unter Bezugnahme auf das Produkt einer relevanten Quantisierschrittgröße und die
Zielmenge an codierten Daten pro Rahmen.
-
Blockbasierte
Codierschemata sind als exzellente Techniken bekannt, die im Allgemeinen
gute Performance bereitstellen, und die beste Effizienz wird erreicht,
wenn die Bildauflösung
ein ganzzahliges Vielfaches der Blockgröße ist. In einem Videocodiersystem,
das mit einer blockbasierten Codiereinheit konfiguriert ist, wird
jeder Block getrennt verarbeitet, egal, welche Bildauflösung gewählt ist,
hierdurch die Wiederverwendung desselben Satzes an Entropiecodes
in unterschiedlichen Blöcken
ermöglichend.
Daher wird vorgezogen, die Breite und Höhe eines Bildes auszuwählen, damit
sie ganzzahlige Vielfache von n Bildpunkten sind, wobei n die Breite und
die Höhe
eines in Bildpunkten gemessenen Blocks ist. Das heißt, die
horizontale Größe eines
Bildes wird definiert als (L × n)
Bildpunkte bzw. Pixel und die vertikale Größe wird ausgewählt als
(M × n)
Bildpunkte bzw. Pixel, wobei L und M ganze Zahlen sind. Mit solchen
Bilddimensionen kann das Codiersystem effizient Bilder verschiedener
Größen durch
einfaches (L × M)-maliges
Wiederholen der blockbasierten Codieroperationen verarbeiten.
-
Die
CIF/QCIF-Auswahlsteuerung 25 bestimmt die Bildauflösung auf
dieselbe Weise wie in der ersten Ausführungsform. Wenn sie beispielsweise
eine hohe Auflösung
oder CIF auswählt,
dann leitet der CIF/QCIF-Konverter 31 das empfangene Prädiktionsfehlersignal
des momentanen Rahmens zu dem DCT-Prozessor 15 ohne Modifikationen
weiter. Da in diesem Fall ein decodiertes Prädiktionsfehlersignal mit der
CIF-Auflösung
auftritt, speist der CIF/QCIF-Konverter 32 es einfach in
den Rekonstruktionsbildgenerator 21. Wenn die CIF/QCIF-Auswahlsteuerung 25 eine
niedrige Auflösung
oder QCIF ausgewählt
hat, ändert
der CIF/QCIF-Konverter 31 die Auflösung des Prädiktionsfehlersignals von CIF nach
QCIF. Der CIF/QCIF-Konverter 32 empfängt demnach das decodierte
Prädiktionsfehlersignal
mit der QCIF-Auflösung
und in diesem Fall gibt er das Signal nach dem Umsetzen seiner Auflösung in
CIF aus.
-
Die
oben beschriebene strukturelle Anordnung vereinheitlicht die Auflösung von
in dem Prädiktionsparameterrechner 12,
dem Prädiktionsfehlerrechner 14 und
dem Konstruktionsbildgenerator 21 zu verarbeiteten Bilder.
Erinnern wir uns, dass jene Funktionselemente in der ersten Ausführungsform sowohl
CIF- als auch QCIF-Dimensionen behandeln sollten. Anders als in
einer solchen ersten Ausführungsform
ermöglicht
die zweite Ausführungsform
es ihnen, die Bilder immer in der hohen Auflösung von CIF-Dimensionen zu verarbeitet.
Eingedenk des Einfügens
von Auflösungskonvertern
kann eine solche Konfiguration in der zweiten Ausführungsform
eine bessere Qualität
decodierter Bilder im Vergleich zu der ersten Ausführungsform
bereitstellen.
-
Die
obige Diskussion wird folgendermaßen zusammengefasst. Gemäß der vorliegenden
Erfindung wird die Bildauflösung
des derzeitigen Rahmens basierend auf der Quantisierschrittgröße und dem
Umfang an codierten Daten in der Codierung des vorangehenden Rahmens
bestimmt, sowie unter Beachtung der Pufferbelegung. Das Quellenbild
des derzeitigen Rahmens wird konvertiert, um die vor der Codierung
bestimmte Auflösung
zu erzielen.
-
Die
vorliegende Erfindung bestimmt die Auflösung des derzeitigen Rahmens
unmittelbar, nachdem der vorangehende Rahmen verarbeitet worden ist.
Anders als bei dem konventionellen Codiersystem braucht nicht gewartet
zu werden, bis eine durchschnittliche Magnitude von Bewegungsvektoren
für einen
gesamten Rahmen berechnet worden ist. Das System stellt eine geeignete
und prompte Steuerung der Auflösung
der Quellenbilder bereit, hierdurch ermöglichend, dass der Umfang an
codierten Daten bei einem geeigneten Pegel gehalten wird. Die vorliegende
Erfindung ermöglicht
auch eine vollständige Konfiguration
des Systems in einer Pipeline-Architektur, welche genügend Performance
bereitstellt, ohne eine Verbesserung jeder Stufe des Codierprozesses zu
erfordern.