-
Die
vorliegende Erfindung bezieht sich auf hocheffizientes Codieren
einer von einem Videosignal ausgedrückten Videoinformation in Form
eines Stromes von Bildern zum Zwecke des Sendens oder Speicherns
der Videoinformation, wodurch die Bilder – gemessen am Stand der Technik – als kleinere
Codemenge transportiert werden können.
-
Typische
Verfahren hocheffizienten Codierens einer Videoinformation werden
weitestgehend verwendet, wobei es sich um die Normen MPEG-1 oder
MPEG-1 handelt, das heißt,
um internationale Codierstandards der Moving Picture Experts Group, die
von IEC/ISO kommen. Mit dem MPEG-Codiersystem werden gewisse periodisch
ausgewählte
Bilder (gesendet als jeweilige Vollbilder eines digitalen Videosignals,
wobei jedes Bild als Gliederung von Pixeln gesendet wird, die jeweils
von einem digitalisierten Abtastwert ausgedrückt sind) durch Bewegungskompensation
mit einem in Blocksätzen
von Pixeln codierten Bild codiert. Mit der Bewegungskompensation
wird ein Teil eines vorherigen Bildes räumlich verschoben, um so vorhergesagte
Pixelwerte für
einen codierten Block herzuleiten. Der erforderliche Betrag und
die Richtung der Verschiebung wird als durch einen Vorgang hergeleiteten
Bewegungsvektor ausgedrückt,
den man Bewegungsschätzung
nennt. Die jeweiligen Differenzen zwischen den aktuellen Pixelwerten
und den Prädiktionswerten,
bezogen auf das folgende als die Prädiktionsfehlerwerte, werden unter
Verwendung einer DCT-Umsetzung und längenvariablen Codierens der
sich ergebenden Koeffizienten gewonnen und codiert. Die Bewegungsvektoren
werden allgemein für
Blöcke
von 8 × 8
oder in einer Größe von 16 × 16 Elementen
hergeleitet, und die DCT wird allgemein auf Blöcke von 8 × 8 werten angewandt, jedoch
wird zur Vereinfachung der Beschreibung nachstehend angenommen,
daß dieselbe
Blockgröße (das
heißt,
8 × 8
Elemente) in Codier-/Decodieroperationen verwendet werden.
-
Da
es erforderlich ist, die Prädiktionsfehlerbeträge für die Blöcke in Verbindung
mit Bewegungsvektoren für
die Blöcke
zu verwenden, werden auch zur Zeit der nachfolgenden Codierung die
Bewegungsvektoren mitcodiert. Dies erfolgt durch längenvariables
Codieren, beispielsweise durch Huffman-Codierung, da die Bewegungsvektoren
sich im allgemeinen wesentlich zwischen aufeinanderfolgenden Blöcken eines
Bildes ändern.
-
11 ist
ein allgemeines Systemblockdiagramm eines Beispiels nach dem Stand
der Technik von einem Bewegungskompensationscodiergerät, das die
obigen Prinzipien anwendet. Wenn nachstehend sowohl dieses Beispiel
nach dem Stand der Technik als auch Ausführungsbeispiele der vorliegenden
Erfindung beschrieben worden sind, wird nur die Codierverarbeitung
beschrieben, die jenen Bildern zukommt, die durch Bewegungskompensation codiert
werden.
-
In 11 wird
ein digitales Videosignal aus einem Videoeingabeanschluß 1 an
einen Eingang eines Subtrahierers 2 geliefert. In der folgenden
Beschreibung dieses Beispiels nach dem Stand der Technik und auch
in der nachfolgenden Beschreibung von Ausführungsbeispielen der Erfindung
versteht es sich, daß ein
derartiges digitales Videosignal aus aufeinanderfolgenden digitalen
Abtastwerten besteht, die jeweilige Pixel ausdrücken, die an den Eingangsanschluß 1 in
der passenden Sequenz zur Verwendung vom Codiergerät geliefert
werden, das heißt,
daß aufeinanderfolgende
Pixelblöcke
in einem Bild aktiviert werden. Ein Bewegungsschätzabschnitt 15 arbeitet
bezüglich
des eingegebenen Videosignals, um jeweilige Bewegungsvektoren für die Blöcke herzuleiten,
die codiert werden sollen, und liefert die Bewegungsvektoren an
einen Bewegungskompensationsabschnitt 8. Da jeder Pixelwert
eines derartigen Blockes codiert und an den Subtrahierer 2 geliefert
wird, erfolgt ein Herleiten eines zugehörigen Prädiktionswertes für dieses
Pixel durch den Bewegungskompensationsabschnitt 8 und eine
Lieferung an den anderen Eingang des Subtrahierers 2, um
dadurch den zugehörigen
Prädiktionsfehlerwert
herzuleiten. Die Prädiktionswerte
werden durch Bewegungskompensation vom Bewegungskompensationsabschnitt 8 erzeugt,
das heißt,
durch Verschieben eines rekonstruierten Bildes (geliefert vom Bildspeicher 51)
um einen Betrag und eine Richtung, die der zugehörige Bewegungsvektor spezifiziert,
mit derjenigen Bewegungskompensation, die typischerweise die lineare
Interpolation verwendet, um eine Genauigkeit von 1/2 Pixel zu erreichen.
Die Prädiktionsfehlerwerte,
die solchermaßen
für den
Block hergeleitet sind, werden an einen DCT-Abschnitt 3 geliefert.
Der DCT-Abschnitt 3 führt
die DCT-Umsetzverarbeitung bezüglich
desjenigen Satzes von Pixeln aus, das heißt, als 2-dimensionale (8 × 8) -Gliederung
von Werten, und liefert den sich ergebenden Satz von DCT-Koeffizienten
für den
Block an den Quantisierer 4. Der Quantisierer 4 quantisiert
die DCT-Koeffizienten
unter Verwendung einer vorbestimmten Quantisierungsschrittweite,
und liefert die sich ergebenden Werte an einen längenvariablen Codierer 5 und
an einen Dequantisierer 12 als eine 2-dimensionale Gliederung
quantisierter Koeffizienten.
-
Der
längenvariable
Codierer 5 führt
die Umsetzung einer jeden dieser 2-dimensionalen Gliederungen in
einen 1-dimensionalen
Satz von Werten durch Gliederungsumsetzung aus unter Verwendung einer
Zickzackabtastung, mit Huffman-Codierung, die dann angewandt wird,
um die sich ergebende Wertesequenz als Läufe aufeinanderfolgender 0-Werte
auszudrücken,
sowie Werteläufe,
die sich von 0 unterscheiden. Auf diese Weise werden jeweilige Bitströme für die Prädiktionsfehlerwerte
eines jeden der Blöcke
von einem Bild hergeleitet, das codiert wird, und sie werden aufeinanderfolgend
an einen Multiplexer geliefert, um mit Bitströmen dem Multiplexverfahren
unterzogen zu werden, die durch Codieren der Bewegungsvektoren hergeleitet
werden, die für
dieses Bild hergeleitet sind. Der sich ergebende Codestrom wird
an einen Codeausgabeanschluß 7 geliefert.
-
Der
Dequantisierer 12 und der inverse DCT-Abschnitt 11 führen eine
inverse Verarbeitung zu derjenigen aus, die der Quantisierer 4 und
der DCT-Abschnitt 3 bezüglich
des Blockes ausführt,
der in Codierung ist, um die jeweiligen Prädiktionsfehlerwerte für jedes
der Pixel im Block zu rekonstruieren. Da jeder derartige Pixelprädiktionsfehlerwert
somit rekonstruiert wird, wird er in einem Addierer 10 einem Prädiktionswert
hinzugefügt,
der durch Bewegungskompensationsabschnitt 8 hergeleitet
ist, um dadurch die jeweiligen rekonstruierten Werte für jedes der
Pixel eines Bildes zu bekommen, mit sich ergebenden rekonstruierten
Bildern, die im Bildspeicher 51 gespeichert werden, um
an den Bewegungskompensationsabschnitt 8 geliefert zu werden.
-
Die
vom Bewegungsschätzabschnitt 15 hergeleiteten
Bewegungsvektoren werden auch an einen Bewegungsvektorcodierer 13 geliefert.
Typischerweise werden Bewegungsvektoren hergeleitet mit einer Genauigkeit
von 1/2 Pixeln für
jeden Block.
-
Der
Bewegungskompensationsabschnitt 8 empfängt aus dem Bildspeicher 15 die
Pixelwerte eines zuvor codierten Bildes, das heißt, eines bereits rekonstruierten
Bildes, welches zu verwenden ist als Bezugsbild, wählt eine
Zone des Bezugsbildes aus, die der Bewegungsvektor für einen
Block bestimmt hat, der codiert wird, und gibt nachfolgend aufeinanderfolgend
Pixelwerte an den Subtrahierer 2 ab, wobei diese werte
die Bezugsbildzone sind, als Bewegungskompensationsprädiktionssignal,
um von den aktuellen Pixelwerten des eingegebenen Videosignals abgezogen
zu werden und dadurch die zuvor genannten Prädiktionsfehlerwerte herzuleiten.
-
Typischerweise
wird der Bewegungskompensationsabschnitt 8 eine lineare
Interpolation zum Herleiten des Bewegungskompensationsprädiktionssignals
verwenden, womit die Genauigkeit von 1/2 Pixel erreicht wird, die
für die
Bewegungsprädiktion vorzusehen
ist.
-
Der
Bewegungsvektorcodierer 13 vergleicht die Komponenten in
X- und Y-Richtung vom Bewegungsvektor eines Blockes, der zu codieren
ist, mit jenen des Bewegungsvektors vom unmittelbar vorangehenden
codierten Block und führt
eine Huffman-Codierung bezüglich
der resultierenden Differenzwerte aus, mit den sich ergebenden Bitströmen, die
an den Multiplexer 6 zum Multiplexen mit den Bitströmen geliefert
werden, die in der zuvor beschriebenen Weise für die Prädiktionsfehlerwerte gewonnen
sind.
-
Ein
Decodiergerät
entsprechend dem Bewegungskompensationscodiergerät von 11 ist nachstehend
unter Bezug auf das allgemeine Systemblockdiagramm eines derartigen
Decodiergerätes
beschrieben, welches in 12 gezeigt
ist. Ein Eingangscodestrom, den das Bewegungskompensationscodiergerät von 11 erzeugt
hat, wird geliefert an einen Eingangsanschluß 61 und vom Demultiplexer 62 in
die Bitströme
der zuvor genannten Prädiktionsfehlerwerte
jeweiler (8 × 8)
Blöcke
eines Bildes separiert, das codiert wurde durch Bewegungskompensation,
und den Bitströmen
für die
Bewegungsvektoren, die für
dieses Bild hergeleitet sind. Die Prädiktionsfehlerwertbitströme werden
auf den Code feststehender Länge
gebracht durch den längenvariablen
Decodierer 63, und rekonstruierte Prädiktonsfehlerwerte für jeweilige
Blöcke
eines Bildes, die decodiert wurden, werden dann vom Dequantisierer 72 und
dem inversen DCT-Abschnitt 71 gewonnen. Die jeweiligen
Prädiktonsfehlerwerte
für Pixel
eines Blockes, die gerade codiert werden, erfahren eine sukzessive
Lieferung an einen Addierer 70. Vorhergesagte Pixelwerte,
hergeleitet durch Bewegungskompensation, werden vom Bewegungskompensationsabschnitt 78 an
den anderen Eingang des Addierers 70 geliefert, um dadurch
rekonstruierte Pixelwerte für
das Bild zu gewinnen, welches decodiert wird.
-
Diese
rekonstruierten Pixelwerte werden an einen Videoausgangsanschluß 64 und
auch an einen Bildspeicher 52 geliefert, um dort zeitweilig
zur Verwendung eines rekonstruierten Bezugsbildes verwendet zu werden.
-
Die
Bitströme
für die
Bewegungsvektoren werden an einen Bewegungsvektordecodierer 65 geliefert,
der decodierte Bewegungsvektoren herleitet und diese Information
an den Bewegungskompensationsabschnitt 78 liefert. Der
Bewegungskompensationsabschnitt 79 leitet jeweilige bewegungskompensierte
Prädiktionspixelwerte
unter Verwendung der Bewegungsvektorinformation her, die der Bewegungsvektordecodierer 65 in
Verbindung mit den rekonstruierten Bezugsbildwerten liefert, die
vom Bildspeicher 52 kommen, und liefert diese vorhergesagten
Werte an den Addierer 70. Es versteht sich, daß der Dequantisierer 72,
der inverse DCT-Abschnitt 71, der Addierer 70,
der Bildspeicher 52 und der Bewegungskompensationsabschnitt 78 dieses
Decodiergerätes
jeweils in der selben Weise wie für den Dequantisierer arbeiten,
den Bildspeicher 51 und den Bewegungskompensationsabschnitt 8 vom
Codiergerät
gemäß 11.
-
Die
Bewegungsvektorbitströme
hat der Demultiplexer 63 aus dem Eingabecodestrom separiert, und
sie werden von längenvariabel
codierter Form in einen Festlängencode
vom Bewegungsvektordecodierer 65 umgesetzt, und jeder der
Bewegungsvektoren, der dadurch gewonnen wird, wird dem Bewegungsvektor
für den
vorhergehenden Block hinzugefügt,
um dadurch Informationen zu gewinnen, die einen Bewegungsvektor
spezifizieren für
den Block, der gerade decodiert wird, welcher an den Bewegungskompensationsabschnitt 79 geliefert
wird.
-
Mit
dem Bewegungskompensationscodiergerät nach dem Stand der Technik
werden die Bewegungsvektoren gewonnen durch Bewegungsschätzung und
direkt codiert, ohne irgendeine Veränderung. Die Arbeitsweise vom
Bewegungsschätzabschnitt,
wie dem Bewegungsschätzabschnitt 15 von 11,
dient der Herleitung für
jeden Block des Bewegungsvektors, der zum Kleinstbetrag des Prädiktionsfehlers
führt.
Auf diese Weise wird der Codeumfang, der als codierte Prädiktionsfehlerwerte
erzeugt wird, minimiert. Es gibt viele Fälle, bei denen das Herleiten
solcher Optimalbewegungsvektoren durch Bewegungsschätzung zu
einem exzessiven Codeumfang führt,
der aus den Bewegungsvektoren hergeleitet ist. Aufgrund dieser Tatsache,
daß mit
der längenvariablen
Codierung der Bewegungsvektoren der Umfang an Bewegungsvektorcode,
der erzeugt wird (das heißt,
vom Bewegungsvektorcodierer 13 in 11) bestimmt
durch die Anzahl stetiger Läufe derselben
Bewegungsvektoren. Wenn jedoch nur die Optimalbewegungsvektoren
zur Anwendung kommen, dann wird, selbst wenn der Umfang der Verringerung
vom Prädiktionsfehlerwertcode
vorliegt, das Ergebnis aus der Verwendung eines unterschiedlichen
Bewegungsvektors für
den aktuellen Block (das heißt,
Unterschied vom Bewegungsvektor, hergeleitet für den vorhergehenden Block)
sehr gering ausfallen, dieser abweichende Bewegungsvektor wird dann
unverändert
verwendet. Dies kann zu unnötigen
Bewegungsvektorcodemengen führen,
die erzeugt werden, was zu einer Verringerung der Gesamtcodiereffizienz
führt.
-
Da
es keine Steuerung der Codemenge gibt, die durch Codieren von Bewegungsvektoren
bei exzessiv umfangreichem Betrag erzeugt wird, erfolgt ein Unterdrücken der
aus den Prädiktionsfehlerwerten
erzeugten Codemenge. Dieses Problem ist insbesondere schwerwiegend,
wenn die verwendete Blockgröße für die Bewegungskompensation
gering ist und eine hochgenaue Bewegungskompensation ausgeführt wird.
-
Das
Dokument Ya-Qin Zhang et al.: "Predictive
Block-Matching Motion Estimation Schemes for Video Compression – Part II,
Inter-Frame Prediction of Motion Vectors", Proceedings of Southeastcon, Ausgabe
2, Januar 1991, offenbart grundlegende Prinzipien und Verfahren
des Herleitens von Bewegungsvektoren und eine Vielzahl von Aspekten
der Bewegungsvektorabschätzung
und der Kompensation für
eine voll bewegte Zwischenvollbildvideokompression und zeigt auf,
daß ein
zu untersuchendes Bild eingeteilt wird in eine Vielzahl entsprechend
den Blöcken
aufeinanderfolgender Bilder (Vollbilder), die untersucht werden
zum Ausführen
des Zwischenvollbildsuchschemas. Eine prädiktive Mustersuche wird verwendet
zum Kompensieren der Übersetzung
bedingt durch Gegenstandsbewegung oder durch Kameraschwenks der
Szene. In einem derartigen Bild einer Schwenkkamera großen Bereichs
des Vollbildes wird im allgemeinen in derselben Richtung mit gleicher
Geschwindigkeit erfolgen, so daß die
Bewegungsvektorinformation innerhalb eines solchen Bereichs hochgradig
korreliert oder abhängig
ist. Für
die Berechnung wird ein 2-dimensionales kausalautoregressives Modell
verwendet. Insbesondere empfängt ein
Bewegungsschätzabschnitt
die Bildelementwerte eines Bildes, welches gerade codiert wird,
und leitet jeweilige Bewegungsvektoren für jeden Block her (das heißt, 8 × 8 Gliederung
von pel) dieses Bildes. Um dies durchzuführen, speichert der Bewegungschätzabschnitt
zeitweilig die pel-Werte des vorangehenden Bildes (das heißt, des
vorangehenden Vollbildes) zum Vergleich mit den pel-Werten vom laufenden
Bild. Jeder solchermaßen
gewonnene Bewegungsvektor wird an einen Bewegungskompensationsabschnitt
geliefert. Der Bewegungsschätzabschnitt
verwendet rekonstruierte Versionen der Bilder (das heißt, hergeleitet
durch Anwenden inverser Quantisierung und inverser DCT-Transformationsverarbeitung
der Prädiktionsfehlerwerte,
die ein Subtrahierer erzeugt).
-
Darüber hinaus
offenbart das Dokument
DE 41
01 490 C1 ein Verfahren und eine Einrichtung zum Bestimmen
von Bewegungsvektoren für
das Senden digitaler Bildinformationen, wobei ein blockbasierendes
Suchverfahren für
Bewegungsvektoren zur Ausführung
kommt. Bildblöcke
werden festgelegt und grob untersucht, um zu bestimmen, ob irgendein
Bewegungsaspekt im speziellen Block eines der Vielzahl von Bildern
enthalten ist. Im Falle, daß ein
Block zum Bilden von Bewegungsvektoren angesehen wird, wie einem
Block, wird dieser markiert als Bewegungsvektor (Bewegungsmarkierung).
Darüber
hinaus wird auch die Struktur untersucht, und eine Strukturmarkierung
wird dem entsprechenden Block zugewiesen. Wenn die Blöcke insgesamt
untersucht sind und die Datenbewertung erfolgt ist, werden zuerst
die Blöcke,
die mit der Bewegungsmarkierung und der Strukturmarkierung versehen
sind, zur Bestimmung der Bewegungsvektoren verwendet. Danach werden
andere Blöcke,
die nur mit einer Bewegungsmarkierung versehen sind, entsprechend
verwendet. Eine Strukturmarkierung wird einem Block zugewiesen, der
in Horizontal- und Vertikalrichtung scharf festgelegte Umrisse aufweist.
-
Für die Bestimmung
von Bewegungsvektoren hypothetischer Bewegungsvektoren können diese
bestimmt werden, die unter Berücksichtung
des vorangehenden Bewegungsvektors desselben Bildblockes erzeugt
wurden, und den bereits berechneten Bewegungsvektoren. Die Bewegungsvektoren benachbarter
Bildblöcke
werden zu diesem Zwecke ebenfalls berücksichtigt. Basierend auf dem
hypothetischen Bewegungsvektor eines Bildblockes kann eine Verschiebung
so erfolgen, daß sie
verglichen werden kann mit dem zugehörigen Bildblock des aktuellen
Bildes. Es läßt sich
dann bestimmen, in welchem Umfang der hypothetische Bewegungsvektor der
aktuellen Bewegung entspricht. Die gewonnenen Unterschiede werden
verglichen, und der spezielle Bewegungsvektor wird beurteilt als
korrekter Bewegungsvektor mit der geringsten Differenz, die einen vorbestimmten
Schwellwert nicht überschreitet.
Mit einem derartigen Verfahren zur Erfassung von Bewegungsvektoren
in Bildern, die eingeteilt sind in eine Vielzahl von Blöcken, kann
eine beträchtliche
Berechnungszeit eingespart werden.
-
Eine
Aufgabe der vorliegenden Erfindung ist es, die obigen Probleme des
Standes der Technik zu lösen
und ein Bewegungskompensationscodiergerät zu schaffen, ein Bewegungskompensationscodierverfahren,
bei dem, soweit möglich,
die Codemenge, die zur Transportbewegungsvektorinformation erzeugt
wird, derart minimiert wird, daß die
Gesamtrate der Codeerzeugung durch das Bewegungskompensationscodiergerät verringert
wird.
-
Nach
der vorliegenden Erfindung wird diese Aufgabe gelöst durch
ein Bewegungskompensationscodiergerät, ein Bewegungskompensationscodiergerät und einen
Aufzeichnungsträger,
der hocheffizient codierte Informationen enthält, wie in den anliegenden
Patentansprüchen
angegeben.
-
Auf
diese Weise kann ein Bewegungskompensationscodiergerät realisiert
werden, durch das die Codemenge, die durch Codieren der Bewegungsvektoren
aufkommt, reduziert werden, um so die Gesamtrate der Codeerzeugung
vom Bewegungskompensationscodiergerät zu reduzieren.
-
Des
weiteren wird es durch diese Erfindung möglich, das Verhältnis vorhergesagter
Bewegungsvektoren, die ausgewählt
sind zum Decodieren und zu verwenden sind bei der Bewegungskompensationsverarbeitung
(das heißt,
zum Steuern der Durchschnittsrate der Auswahl von vorhergesagten
Bewegungsvektoren, besser als geschätzte Bewegungsvektoren) gemäß einer
oder mehrerer Betriebsbedingungen des Bewegungskompensationscodiergerätes. Insbesondere
kann diese Steuerung entsprechend der sukzessiv durch Codieren der
Bewegungsvektoren erzeugten Codemenge erfolgen.
-
Darüber hinaus
schafft die Erfindung ein hocheffizientes Aufzeichnungsmedium, das
einen Code aufzeichnet, der die in der zuvor beschriebenen Weise
hergeleitete Videoinformation ausdrückt.
-
Die
Erfindung sieht weiterhin ein Verfahren zur Bewegungskompensationscodierung
unter Verwendung der zuvor beschriebenen Prinzipien vor.
-
Genauer
gesagt, die vorliegende Erfindung sieht ein Kodiergerät vor mit
Bewegungskompensation zum Umsetzen eines durch ein eingegebenes
Videosignal in einen Codestrom ausgedrückten Bilderstromes, der kodierte
Bewegungsvektoren entsprechend jeweiliger Blöcke der Bildelemente von den Bildern
enthält,
mit:
einem Mittel zur Bewegungsschätzung, um für jeden der Blöcke einen
zugehörigen
geschätzten
Bewegungsvektor herzuleiten,
einem ersten Fehlerbetragsfeststellmittel
zum Herleiten eines aus der Verwendung des geschätzten Bewegungsvektor resultierenden
Blockprädiktionsfehlerbetrages
aus jedem Block zur Vorhersage jeweiliger Werte der Bildelemente
vom Block durch Bewegungskompensationsprädiktion,
einem Bewegungsvektorprädiktionsmittel
zur Verwendung bei wenigstens einem Bewegungsvektor, der zuvor kodiert
und vom Kodiergerät
mit Bewegungskompensation zum Herleiten eines vorhergesagten Bewegungsvektors
für jeden
Block gesendet wurde,
einem zweiten Fehlerbetragsfeststellmittel
zum Herleiten eines aus der Verwendung des vorhergesagten Bewegungsvektors
resultierenden zweiten Blockprädiktionsfehlerbetrages,
um die Werte der Bildelemente des Blockes durch Bewegungskompensationsprädiktion
vorherzusagen,
einem Vergleichsmittel zum Vergleichen des ersten Blockprädiktionsfehlerbetrages
mit dem zweiten Blockprädiktionsfehlerbetrag,
um ein Vergleichsausgangssignal zu erzeugen, das vom ersten oder
zweiten Blockprädiktionsfehlerbetrag
einen kleineren aufzeigt, und mit
einem Auswahlmittel, das
auf das Vergleichsausgangssignal zur Auswahl des geschätzten Bewegungsvektors
und des vorhergesagten Bewegungsvektors anspricht, um bei der Bewegungskompensationskodierung
eines jeden zu kodierenden Blockes als Teil der kodierten Bewegungsvektoren
angewandt zu werden.
-
Ein
derartiges Bewegungskompensationscodiergerät enthält vorzugsweise ein Justiermittel
zum Einstellen wenigstens eines ersten Blockprädiktionsfehlerbetrags und eines
zweiten Blockprädiktionsfehlerbetrages
vor Ausführen
des Vergleichs vom Vergleichsmittel in einer Richtung, die dazu
neigt, den zweiten Blockprädiktionsfehlerbetrag
geringer als den ersten Blockfehlerprädiktionsbetrag zu machen. Auf
diese Weise neigen die Bewegungsvektoren dazu, eher ausgewählt zu werden
als die Schätzbewegungsvektoren,
das heißt,
die Durchschnittsrate der Auswahl von vorhergesagten Bewegungsvektoren, die
bei der Bewegungskompensationsverarbeitung zu verwenden und zu codieren
sind, werden erhöht mit
dem Anstieg, der mit dem Grad des Justierens, vorgesehen vom Justiermittel,
in Übereinstimmung ist.
Die Justage kann beispielsweise ausgeführt werden durch Multiplizieren
der Blockprädiktionsfehlerbetragswerte,
die für
die vorhergesagten Bewegungsvektoren gewonnen sind, mit einem Faktor,
der kleiner als Eins ist, bevor der Vergleich mit den Blockprädiktionsfehlerbetragswerten
ausgeführt
wird, die für
den Fall unter Verwendung der geschätzten Bewegungsvektoren gewonnen sind,
oder durch Subtrahieren eines spezifischen numerischen Wertes von
den Blockprädiktionsfehlerbetragswerten,
die für den
Fall der Verwendung der vorhergesagten Bewegungsvektoren gewonnen
wurden.
-
Ein
derartiges Bewegungskompensationscodiergerät enthält ein Codebetragsrechenmittel
zum Messen von Beträgen
von Codemengen, die das Gerät
erzeugt, und ein Justiersteuermittel, das auf die Meßergebnisse
anspricht, die das Codemengenrechenmittel zum Steuern des Justagemittels
erzielt hat, um so den Justiergrad zu erhöhen, wenn relativ große Codemengen
erzeugt werden, und um den Justiergrad abzusenken, wenn relativ
kleine Codemengen erzeugt werden.
-
Alternativ
kann ein derartiges Bewegungskompensationscodiergerät ein Quantisierungsmittel und
einen Quantisierungssteuerabschnitt enthalten, um ein Schrittweitensteuersignal
zu erzeugen, um damit eine Quantisierungsschrittweite zu bestimmen, die
das Quantisierungsmittel mit dem Gerät verwendet, das weiterhin
das Justiersteuermittel vergleicht, das auf das Schrittweitensteuersignal
anspricht, um das Justiermittel so zu steuern, daß ein Anstieg
des Justiergrades erfolgt, wenn die Schrittweite weit ist, und um
den Justiergrad abzusenken, wenn die Schrittweite kurz ist.
-
Nach
der vorliegenden Erfindung weiterhin vorgesehen ist ein Kodierverfahren
zur Bewegungskompensation, um einen Strom von durch ein Videosignal
ausgedrückten
Bildern in einen Codestrom umzusetzen, der den jeweiligen Blöcken der
Bildelemente der Bilder entsprechende kodierte Bewegungsvektoren
enthält,
mit den Verfahrensschritten:
Herleiten eines zugehörigen geschätzten Bewegungsvektors
für jeden
der Blöcke,
Herleiten
für jeden
Block eines aus der Verwendung des zugehörigen geschätzten Bewegungsvektors resultierenden
Blockprädiktionsfehlerbetrages,
um jeweilige Werte der Bildelemente vom Block durch Bewegungskompensationsprädiktion
vorherzusagen,
Verwenden wenigstens eines vorher kodierten
und gesendeten Bewegungsvektors, um einen vorhergesagten Bewegungsvektor
für jeden
Block herzuleiten,
Herleiten eines aus der Verwendung des vorhergesagten
Bewegungsvektors resultierenden zweiten Blockprädiktionsfehlerbetrages, um
die Werte der Bildelemente des Blockes durch Bewegungskompensationsprädiktion
vorherzusagen,
Vergleichen des ersten Blockprädiktionsfehlerbetrages
mit dem zweiten Blockprädiktionsfehlerbetrag, um
einen kleineren des ersten Blockprädiktionsfehlerbetrages und
des zweiten Blockprädiktionsfehlerbetrages
herauszufinden, und
Auswählen
gemäß einem
Ergebnis des Vergleichs entweder den geschätzten Bewegungsvektor oder den
vorhergesagten Bewegungsvektor, um bei der Bewegungskompensationscodierung
eines jeden Blockes angewandt und als Teil der kodierten Bewegungsvektoren
kodiert zu werden.
-
Die
vorliegende Erfindung schafft zwei grundlegende Vorteile in Hinsicht
auf das Codieren der Bewegungsvektoren. Erstens: Wenn ein wesentlicher
Anstieg im Prädiktionsfehler
nicht aus der Verwendung eines vorhergesagten Bewegungsvektors resultiert
(hergeleitet aus Bewegungsvektoren, die bereits codiert worden sind),
eher als aus der Verwendung eines Bewegungsvektors, der durch Bewegungsschätzung hergeleitet
ist, dann wird der vorhergesagte Bewegungsvektor verwendet. Dies
erhöht die
Wahrscheinlichkeit, daß Läufe identischer
Bewegungsvektoren codiert werden, wodurch eine Verringerung der
Codemenge sichergestellt ist, die durch längenvariables Codieren der
Bewegungsvektoren erzeugt werden.
-
Zweitens:
Es wird möglich,
die Codemenge zu steuern, die aus dem Codieren der Bewegungsvektoren
entsteht. Das heißt,
die Erfindung ermöglicht
das Verhältnis
der vorhergesagten Bewegungsvektoren, die ausgewählt zur Verwendung bei der
Bewegungskompensation, die zu bestimmen ist auf der Grundlage einer
maximal zulässigen
Größe des Prädiktionsfehlers,
der durch Codieren eines Blockes entsteht, mit dem Grad dieser zulässigen Menge,
die durch den zuvor genannten Justierfaktor eingestellt wurde. Dieser
Justierfaktor kann bestimmt sein bei einem passenden Wert oder kann
gesteuert werden gemäß der Änderung
der Erzeugungsrate vom Code durch das Gerät, das heißt, gemäß der Codeerzeugungsrate durch
Codieren der Bewegungsvektoren. Die Erfindung ermöglicht auf
diese Weise das Vermeiden exzessiver Codemengen, die erzeugt werden
durch Codieren von Bewegungsvektoren. Der Justierfaktor kann ebenfalls
gemäß dem Wert
der Quantisierungsschrittweite gesteuert werden, die beim Quantisieren
der DCT-Koeffizienten verwendet wird, gewonnen für die Prädiktionsfehlerbeträge eines
Blockes, um das Verhältnis
der vorhergesagten Bewegungsvektoren einzustellen, die ausgewählt sind
für einen
passenden Wert in Beziehung auf die Quantisierungsschrittweite.
-
Nach
der vorliegenden Erfindung darüber
hinaus vorgesehen ist ein Aufzeichnungsmedium, das hocheffizient
kodierte Informationen enthält,
gewonnen durch Umsetzen eines Stromes von durch ein Videosignal
ausgedrückt
Bildern in einen Codestrom, der kodierte Bewegungsvektoren enthält, die
den jeweiligen Blöcken
der Bildelemente von den Bildern entsprechen, wobei die Bewegungsvektoren
gewonnen wurden durch:
Herleiten eines zugehörigen geschätzten Bewegungsvektors
für jeden
der Blöcke,
Herleiten
eines Blockprädiktionsfehlerbetrages
für jeden
Block, der aus der Verwendung des zugehörigen geschätzten Bewegungsvektors resultiert,
um jeweilige werte der Bildelemente des Blockes durch Bewegungskompensationsprädiktion
vorherzusagen,
Verwenden wenigstens eines zuvor kodierten und gesendeten
Bewegungsvektors, um einen vorhergesagten Bewegungsvektor für jeden
Block herzuleiten,
Herleiten eines aus der Verwendung des vorhergesagten
Bewegungsvektors resultierenden zweiten Blockprädiktionsfehlerbetrages, um
die Werte der Bildelemente vom Block durch Bewegungskompensationsprädiktion
vorherzusagen,
Vergleichen des ersten Blockprädiktionsfehlerbetrages
mit dem zweiten Blockprädiktionsfehlerbetrag, um
einen kleineren des ersten Blockprädiktionsfehlerbetrages und
des zweiten Blockprädiktionsfehlerbetrages
herauszufinden, und
Auswählen
gemäß einem
Vergleichsergebnis den geschätzten
Bewegungsvektor oder den vorhergesagten Bewegungsvektor, der als
Teil der kodierten Bewegungsvektoren zu kodieren ist.
-
KURZE BESCHREIBUNG DER
ZEICHNUNG
-
1 ist
ein allgemeines Systemblockdiagramm eines ersten Ausführungsbeispiels
eines Bewegungskompensationscodiergerätes nach der vorliegenden Erfindung;
-
2 veranschaulicht
konzeptionell die Auswahl der Bewegungsvektoren, die durch Bewegungsschätzung und
durch Bewegungsvektorprädiktion
hergeleitet sind, während 3 mögliche Verfahren
der Prädiktion
darstellt;
-
4 ist
ein Blockdiagramm eines Beispiels der Konfiguration eines Bewegungsvektorcodierers, der
im Ausführungsbeispiel
von 1 verwendet wird;
-
5 ist
ein Teilsystemblockdiagramm, das eine Abwandlung vom Ausführungsbeispiel
gemäß 1 zeigt,
wodurch eine Fehlerbetragsjustage besser durch einen Subtrahierer
als durch Faktormultiplikation erfolgt;
-
6 ist
ein Blockdiagramm, das ein Beispiel der Konfiguration eines Fehlerbetragsbestimmungsabschnitts
zeigt, die im Ausführungsbeispiel von 1 verwendet
wird;
-
7 ist
ein allgemeines Systemblockdiagramm einer abgewandelten Version
vom ersten Ausführungsbeispiel,
bei dem Codemengen, die erzeugt werden durch Verwendung jeweiliger
Prädiktionsfehlerbeträge, hergeleitet
für einen
Block, verglichen werden;
-
8 ist
ein Blockdiagramm, das ein Beispiel der Konfiguration einer Kombination
eines Fehlerbetragsbestimmungsabschnitts und eines Codierabschnitts
zeigt, die verwendet werden im Gerät von 7;
-
9 ist
ein allgemeines Systemblockdiagramm, eines zweiten Ausführungsbeispiels
eines Bewegungskompensationscodiergerätes nach der vorliegenden Erfindung,
bei dem eine Prädiktionsfehlerbetragsjustage
gemäß erzeugter
Codemenge und gemäß Quantisierungsschrittweite
variiert wird;
-
10 ist
ein Teilsystemblockdiagramm, das eine Abwandlung vom Ausführungsbeispiel
gemäß 9 zeigt,
wobei die Fehlerbetragsjustage besser von einem Subtrahierer als
durch Faktormultiplikation ausgeführt wird;
-
11 ist
ein allgemeines Systemblockdiagramm eines Beispiels nach dem Stand
der Technik von einem Bewegungskompensationscodiergerät; und
-
12 ist
ein allgemeines Systemblockdiagramm eines Beispiels nach dem Stand
der Technik eines Decodiergerätes
zur Verwendung in Verbindung mit dem Bewegungskompensationscodiergerät von 11.
-
BESCHREIBUNG
BEVORZUGTER AUSFÜHRUNGSBEISPIELE
-
Ein
erstes Ausführungsbeispiel
eines Bewegungskompensationscodiergerätes nach der vorliegenden Erfindung
ist nachstehend beschrieben. 1 ist ein
allgemeines Systemblockdiagramm, das die Konfiguration dieses Ausführungsbeispiels zeigt.
In 1 sind Komponenten, die denen des Standes der
Technik von 11 entsprechen, mit denselben
Bezugszeichen versehen. Dieses Ausführungsbeispiel unterscheidet
sich von dem in 11 dadurch, daß es Fehlerbetragsdetektoren 16, 19,
einen Fehlerbetragsvergleicher 17, einen Faktormultiplizierer 18,
einen Bewegungsvektorschalter 14 und einen Bewegungsvektorprädiktionsabschnitt 20 hat, während zusätzlich die
Arbeitsweise des Bildspeichers 9 etwas unterschiedlich
ist gegenüber
demjenigen Beispiel von 11, und
das Ausführungsbeispiel
verwendet bevorzugt einen Bewegungsvektorcodierer 83, der
eine Abwandlung des Bewegungsvektorcodierers 13 von 11 ist,
wie hiernach zu beschreiben ist. Dieses Ausführungsbeispiel unterscheidet
sich auch von dem Beispiel des Standes der Technik darin, daß die Arbeitsweise
der Beurteilungsbewegungsvektoren in der hiernach beschriebenen Weise
erfolgt, jedoch ist die Bewegungskompensationscodierverarbeitung
identisch mit derjenigen des Beispiels nach dem Stand der Technik.
Die Arbeitsweise des Videoeingangsanschlusses 1, des Subtrahierers 2,
des DCT-Abschnitts 3, des Quantisierers 4, des
längenvariablen
Codierers 5, des Multiplexers 6, des Videoausgangsanschlusses 7,
des Bewegungskompensationsabschnitts 8, des Dequantisierers 12, des
inversen DCT-Abschnitts 11 und des Addierers 10 von 1 ist
von daher identisch mit derjenigen der zugehörigen Komponenten des Beispiels
nach dem Stand der Technik.
-
Der
Bewegungsschätzabschnitt 15 leitet
einen geschätzten
Bewegungsvektor her (nachstehend als MVe benannt) für jeden
Block in derselben Weise wie im Beispiel des Standes der Technik
und liefert diesen an den Fehlerbetragsbestimmungsabschnitt 16 und
an einen der Auswahlanschlüsse
des Bewegungsvektorschalters 14. Der Bewegungsvektorprädiktionsabschnitt 20 empfängt aus
dem Bewegungsvektorschalter 14 die aufeinanderfolgenden Bewegungsvektoren,
die der Bewegungsvektorschalter 14 auswählt, um vom Bewegungsvektorcodierer 83 codiert
und bei der Bewegungskompensationsverarbeitung vom Bewegungskompensationsabschnitt 8 verwendet
zu werden, und leitet einen vorhergesagten Bewegungsvektor für den laufenden Block
her, der zu codieren ist, auf der Grundlage der Bewegungsvektoren,
die bereits codiert worden sind, wobei ein derartiger vorhergesagter
Bewegungsvektor nachstehend als MVp benannt wird.
-
Das
einfachste Verfahren der Bewegungsvektorprädiktion ist die Verwendung
des Bewegungsvektors als MVp, der bereits gewonnen und für den unmittelbar
vorangehenden Block codiert wurde, in der Sequenz des Codierens
aufeinanderfolgender Blöcke
eines Bildes. In diesem Falle kann der Bewegungsvektorprädiktionsabschnitt 20 jeden
vorhergesagten Bewegungsvektor herleiten, einfach durch Verzögern eines
jeden Eingangssignals um eine Verzögerungszeit, die der Blockcodierperiode
gleicht, das heißt,
der Periode des Codierens aufeinanderfolgender Gliederungen von
Prädiktionsfehlerwerten
für jeweilige
Blöcke
durch den DCT-Abschnitt 3. Der vorhergesagte Bewegungsvektor
MVp für
einen Block, der zu codieren ist, wird vom Bewegungsvektorprädiktionsabschnitt 20 an
den Fehlerbetragsbestimmungsabschnitt 19 und an den anderen
Auswahlanschluß des
Bewegungsvektorschalters 14 geliefert.
-
2 stellt
die Grundlage dar für
die Verwendung der geschätzten
Bewegungsvektoren und der vorhergesagten Bewegungsvektoren, wie
schon zuvor beschrieben. In 2 bedeutet
Bezugszeichen 200 einen Teil des Bildes, das codiert wird,
mit Bewegungsvektoren jeweiliger Blöcke, die durch Pfeillinien
bestimmt sind. Wird angenommen, daß Block 203 aktuell
der Block ist, der zu codieren ist, dann bedeutet Bezugszeichen 201 den
vorangehenden Block, für
den ein Bewegungsvektor 202 vom Bewegungsvektorschalter 14 ausgewählt wurde,
um codiert und bei der Bewegungskompensationsverarbeitung von Block 201 verwendet
zu werden. Bezugszeichen 205 bedeutet einen Bewegungsvektor, der
hergeleitet wird durch Bewegungsschätzung für Block 203, während Bezugszeichen 204 einen
vorhergesagten Bewegungsvektor MVp bedeutet, der hergeleitet wurde
vom Bewegungsvektorprädiktionsabschnitt 20 für diesen
Block. Im einfachsten Falle, wie er zuvor beschrieben wurde, kann
der vorhergesagte Bewegungsvektor 204 identisch gemacht
werden mit dem letzten zu codierenden Bewegungsvektor, das heißt, Bewegungsvektor 202.
Die Grundlage der Erfindung liegt in der Tatsache, daß sich in
vielen Fällen
die Bewegungsvektoren 204, 204 genau gleichen.
-
Die
Bewegungskompensationsverarbeitung derselben Art wie diejenige,
die der Bewegungskompensationsabschnitt 8 ausführt, wird
für den
Block angewandt, der gerade codiert wird, gleichzeitig vom Fehlerbetragsfeststellabschnitt 16 und
vom Fehlerbetragsfeststellabschnitt 19 unter Verwendung
des geschätzten
Bewegungsvektors MVe und des vorhergesagten Bewegungsvektors MVp,
die jeweils für den
Block vom Bewegungsschätzabschnitt 15 beziehungsweise
den Bewegungsvektorprädiktionsabschnitt 20 hergeleitet
wurden. Die Bewegungskompensation verwendet Pixelwerte eines Bezugsbildes, die
aus dem Bildspeicher 9 kommen. Beide Fehlerbetragsfeststellabschnitte 16 und 19 leitet
den Betrag des vorhergesagten Fehlers für diesen Block her in Hinsicht
auf die aktuellen Pixelwerte des Bezugsbildes. Der Blockprädiktionsfehlerbetrag
(nachstehend mit AEe bezeichnet), der hergeleitet wird unter Verwendung
des geschätzten
Bewegungsvektors MVe, wird vom Fehlerbetragsfeststellabschnitt 16 an
einen Eingang des Fehlerbetragsvergleichers 17 geliefert. Der
Blockprädiktionsfehlerbetrag
AEp, der für
diesen Block als Ergebnis der Verwendung eines vorhergesagten Bewegungsvektors
MVp hergeleitet wurde, wird vom Fehlerbetragsfeststellabschnitt 19 an
den anderen Eingang des Fehlerbetragsvergleichers 17 geliefert,
nachdem eine Multiplikation mit einem vorbestimmten Justierfaktor
Kp im Faktormultiplizierer 18 erfolgt ist. Der Wert vom
Justierfaktor Kp ist vorzugsweise etwa 0,9.
-
Der
Fehlerbetragsvergleicher 17 vergleich die Größen des
Blockprädiktionsfehlerbetrages
AEe und des Blockprädiktionsfehlerbetrages
AEp, multipliziert mit dem Faktor Kp, und erzeugt ein Vergleichsausgangssignal 17a,
das einen von zwei Werten annimmt entsprechend der Tatsache, ob
AEe oder (Kp·AEp)
kleiner als Zwei ist, und legt dieses Vergleichsausgangssignal als
Auswahlsteuersignal an den Bewegungsvektorschalter 14 an.
Der Bewegungsvektorschalter 14 wählt dadurch entweder MVe oder
MVp zur Verwendung beim Codieren des aktuellen Blockes gemäß folgender
Regel aus:
wenn AEe < Kp·AEp ist,
dann wird der Bewegungsvektor MVe gewählt,
wenn AEe > Kp·AEp ist, dann wird der Bewegungsvektor
MVp gewählt.
-
Der
dadurch ausgewählte
Bewegungsvektor wird vom Bewegungskompensationsabschnitt 8 verwendet,
um vorhergesagte Pixelwerte für
diesen Block zu erzeugen, und wird auch geliefert an den Bewegungsvektorcodierer 83 und
den Bewegungsvektorprädiktionsabschnitt 20.
-
Die
Arbeitsweise des Bewegungsvektorcodierers 83 gleicht grundsätzlich derjenigen
des Bewegungsvektorcodierers 13 im Beispiel nach dem Stand
der Technik, jedoch ist es vorzuziehen, den Bewegungsvektorcodierer 83 so
zu konfigurieren, daß er
aufeinanderfolgend vorhergesagte Bewegungsvektoren in derselben
Weise herleitet, wie dies durch den Bewegungsvektorprädiktionsabschnitt 20 erfolgt,
um den Unterschied zwischen einem jeden derartigen vorhergesagten
Bewegungsvektor und dem Bewegungsvektor zu erzielen, den der Bewegungsvektorschalter 14 für den aktuellen
Block ausgewählt
hat, und um die längenvariable
Codierung auf die Differenzen anzuwenden, die dadurch gewonnen werden. 4 zeigt
ein Beispiel, wie der Bewegungsvektorcodierer 83 dieses
Ausführungsbeispiels konfiguriert
werden kann.
-
Beim
einfachsten Verfahren zur Herleitung der zuvor beschriebenen Prädiktionsbewegungsvektoren
ist die Arbeitsweise des Bewegungsvektorcodierers 83 im
wesentlichen identisch mit derjenigen des Bewegungsvektorcodierers 13 im
Beispiel nach dem Stand der Technik.
-
Verschiedene
Verfahren der Bewegungsvektorprädiktion
sind möglich,
wie anhand 3 beschrieben wird. Es sei angenommen,
daß ein
Block X eines Satzes von Blöcken
von einem Bild, das gerade codiert wird, der Block ist, der aktuell
zu codieren ist, mit den Blöcken,
die sequentiell als aufeinanderfolgende Linien codiert werden, von
oben nach unten und von links nach rechts, wie aus 3 ersichtlich. Das
einfaches Verfahren der Prädiktion
in diesem Falle, wie zuvor beschrieben, besteht darin „ daß der Bewegungsvektor,
der für
Block B codiert wurde, ausgewählt
wird zur Verwendung für
Block X. Jedoch kann ein anderes mögliches Verfahren ein solches sein,
einen vorhergesagten Bewegungsvektor für Block X auf der Grundlage
einer Kombination der Bewegungsvektoren herzuleiten, die für Blöcke A und
B ausgewählt
wurden, das heißt
für zwei
horizontal benachbarte Blöcke.
Adaptive Prädiktion
läßt sich
alternativ anwenden, beispielsweise durch Auswahl entweder des Bewegungsvektors
eines horizontal benachbarten Blockes oder eines vertikal benachbarten Blockes,
je nach dem, wie es passend erscheint.
-
Anders
als beim zuvor beschriebenen Verfahren für das Justieren des Blockfehlerbetrags
AEp durch Multiplikation dieses Betrages mit dem Justierfaktor Kp,
wird ein anderes mögliches
Justierverfahren das Subtrahieren eines Justierwertes Mp vom Blockfehlerbetrag
sein, womit das Ausführungsbeispiel
von 1 gegenüber
der Darstellung im Teilblockdiagramm von 5 abgewandelt
wird, oder das Subtrahieren eines Justierwertes von jedem der Fehlerwerte,
die für
jeweilige Pixel eines Blockes hergeleitet sind. Wird angenommen,
daß der
dadurch hergeleitete Fehlerwert für ein Pixel ein Wert im Bereich
von 0 bis 255 ist, könnte
letzterer Justierwert beispielsweise 1 oder 2 sein.
-
Anstelle
des Anwendens der Justage an den Fehlerbetrag AEp, den der Fehlerbetragfeststellabschnitt 19 hergeleitet
hat, ist es alternativ gleichermaßen möglich, eine derartige Justage
durch Multiplizieren des Fehlerbetrages AEe anzuwenden, den der
Fehlerbetragsfeststellabschnitt 16 hergeleitet hat, mit
einem Faktor, der beispielsweise größer als ungefähr 1,1 ist,
oder durch Addition eines passenden Justierwertes zu den Fehlerbeträgen, die
gewonnen werden (unter Verwendung des Bewegungsvektors MVe) für jeweilige
Pixel des Blockes, der codiert wird. Welches Verfahren auch angewandt
wird, die Justage muß in
einer solchen Richtung angewandt werden, daß der Wert des Fehlerbetrages
AEp (wie an den Fehlerbetragsvergleicher 17 geliefert)
kleiner ist im Verhältnis
zum Fehlerbetrag AEe.
-
Somit
versteht es sich, daß dieselben
Wirkungen wie jene zuvor beschriebenen für das erste Ausführungsbeispiel
erzielbar sind durch Anwenden eines derartigen anderen Verfahrens
des Justierens von jeweiligen Beträgen des Blockprädiktionsfehlers.
-
Die
Fehlerbetragsdetektoren 16, 19 können im
allgemeinen so konfiguriert sein, daß sie den Fehlerbetrag für einen
Block als kumulative Summe der jeweiligen Absolutwerte vom Bewegungskompensationsprädiktionsfehler
erhalten, die für
die Pixel des Blockes hergeleitet sind, oder die Summe der Quadrate
der jeweiligen Prädiktionsfehlerwerte,
die für diese
Pixel erzielt sind. 6 ist ein Blockdiagramm, das
ein Beispiel der Konfiguration des Fehlerbetragfeststellabschnitts 16 für den Fall
zeigt, daß Absolutwerte
verwendet werden. Ein Bewegungskompensationsabschnitt 100 empfängt hier
einen geschätzten Bewegungsvektor
MVe aus dem Bewegungsschätzabschnitt 15 und
Pixelwerte eines Bezugsbildes aus dem Bildspeicher 9 und
wendet diese an zum Herleiten vorhergesagter Pixelwerte für den Block,
der gerade codiert wird, und liefert diese Werte an einen Eingang
eines Subtrahierers 101. Die aktuellen Pixelwerte für diesen
Block werden an den anderen Eingang des Subtrahierers 101 gesandt,
um dadurch jeweilige Prädiktionsfehlerwerte
für diese
Bildelemente zu gewinnen, die umgesetzt werden in jeweilige Absolutwerte
vom Absolutwertumsetzabschnitt 102, wobei diese Werte vom
Kumulativaddierer 103 summiert werden, um dadurch einen
Gesamtabsolutwert des Betrages vom Prädiktionsfehler für den Block
zu erhalten.
-
Die
zugehörige
Konfiguration für
den Fehlerbetragsfeststellabschnitt 19 ist identisch mit
derjenigen in 6, aber mit dem vorhergesagten
Bewegungsvektor MVp, der an den Bewegungskompensationsabschnitt 100 geliefert
wird.
-
Um
eine höhere
Genauigkeit bei der Beurteilung der jeweiligen Fehlerbeträge zu bekommen,
die für
jeden Block für
die Fälle
der Verwendung von MVe beziehungsweise MVp erzielt werden, ist es
möglich, komplexere
Systemkonfigurationen anzuwenden, wodurch dieselbe Codierverarbeitung
ausgeführt wird wie
die durch den DCT-Abschnitt 3, den Quantisierer 4 und
den längenvariablen
Codierer 5 ausgeführte.
Das heißt,
es wird möglich,
die aktuellen Gesamtbeträge
vom Code herzuleiten, die für
den Fall der Verwendung des geschätzten Bewegungsvektors MVe
und des vorhergesagten Bewegungsvektors MVp herzuleiten wären beziehungsweise
um einen Block zu codieren, und diese Codemengen nach Anwender der
Justage zu vergleichen. Eine derartige Beurteilung, die auf aktuellen
Codemengen ruht, ist genauer als die Beurteilung auf der Grundlage
lediglich der Beträge
vom Prädiktionsfehler,
jedoch wird der erforderliche Verarbeitungsumfang höher. 7 ist
ein allgemeines Systemblockdiagramm einer Abwandlung vom ersten
Ausführungsbeispiel
in 1, wodurch derartige aktuelle Codemengen hergeleitet und
beurteilt werden. In 7 codieren Fehlerbetragsfeststell-
und -codierabschnitte 36 und 39 einen Satz von
Prädiktionsfehlerwerten,
die für
den Block erzeugt werden, der gerade codiert wird, das heißt, jeweilige
Bearbeitung bezüglich
Prädiktionsfehlerwerten,
die erzeugt werden im Falle der Verwendung des geschätzten Bewegungsvektors
MVe beziehungsweise im Falle der Verwendung des vorhergesagten Bewegungsvektors
MVp. Nach Anwenden der Justage, das heißt, durch Multiplizieren der
Codemenge, die die Fehlerbetragsfeststellung und der Codierabschnitt 39 erzeugt
haben, mit dem Wert Kp werden die sich ergebenden Codemengen von
Abschnitten 36, 39 erzeugt und mit dem Codebitgesamtzahlvergleicher 37 verglichen,
und das sich ergebende Vergleichssignal 37a wird der Steuerung des
Bewegungsvektorschalters 14 in derselben Weise wie zum
ersten Ausführungsbeispiel
in 1 beschrieben angelegt.
-
Der
Fehlerbetragsfeststell- und -codierabschnitt 36 kann beispielsweise
wie in 8 gezeigt konfiguriert sein. In diesem Falle wird
die Gesamtzahl von Codebits, die für einen Block erzeugt wird,
als Ergebnis der längenvariablen
Codierung gewonnen und dem Codebitgesamtzahlvergleicher 37 eingegeben.
Die Konfiguration des Fehlerbetragsfeststell- und -codierabschnitts 39 ist
identisch mit der in 8 gezeigten, aber der vorhergesagte
Bewegungsvektor MVp wird an den Bewegungskompensationsabschnitt 100 geliefert.
-
Nachstehend
anhand 9 beschrieben ist ein zweites Ausführungsbeispiel
der Erfindung, das ein allgemeines Systemblockdiagramm mit der Konfiguration
dieses Ausführungsbeispiels
zeigt. Komponenten in 9, die den Komponenten in 1 entsprechen,
sind mit denselben Bezugszeichen versehen. Das Ausführungsbeispiel
von 9 unterscheidet sich von demjenigen in 1 dadurch,
daß ein Quantisierungssteuerabschnitt 31,
Codemengenrechenabschnitte 32, 34 und ein Justiersteuerabschnitt 33 vorgesehen
sind. Darüber
hinaus ist die Arbeitsweise des Faktormultiplizierers 18 etwas
abweichend gegenüber
demjenigen Ausführungsbeispiel
von 1.
-
Der
Codemengenmeßabschnitt 32 überwacht
die Gesamtcodemengen, die das Gerät erzeugt, und liefert eine
entsprechende Information an den Quantisierungssteuerabschnitt 31.
Der Quantisierungssteuerabschnitt 31 erstellt einen geeigneten Wert
für die
Quantisierungsschrittweite entsprechend der festgestellten erzeugten
Codemenge und liefert eine zugehörige
Schrittweiteninformation an den Quantisierer 4 und an den
Justiersteuerabschnitt 33, das heißt als ein Quantisierungsschrittweitenbefehlssignal,
wie in 9 gezeigt. Die Quantisierungsschrittweite, die
der Quantisierer 4 anwendet, bestimmt sich gemäß der Schrittweiteninformation.
-
Ist
die erzeugte Codemenge größer geworden
als der vorbestimmte Zielwert, so daß es erforderlich wird, die
Codemenge zu reduzieren, dann veranlaßt der Quantisierungssteuerabschnitt 31 die Erhöhung der
Quantisierungsschrittweite, während die
Schrittweite verringert wird, wenn der erzeugte Wert kleiner als
der vorbestimmte Zielwert geworden ist. Dies ist eine herkömmliche
Form des Steuerns der Quantisierung.
-
Der
Codemengenmeßabschnitt 34 überwacht
die Codemenge, die durch Bewegungsvektorcodierung entsteht, und
liefert eine entsprechende Information an den Justiersteuerabschnitt 33.
-
Darüber hinaus
wird die Quantisierungsschrittweiteninformation vom Quantisierungssteuerabschnitt
ebenfalls in den Justiersteuerabschnitt 33 eingegeben.
Der Justiersteuerabschnitt 33 bestimmt einen passenden
Wert für
den Justierfaktor Kp in Kombination entsprechend der Bewegungsvektorcodemenge
und dem Quantisierungsschrittweitenwert, und erzeugt ein zugehöriges Justierfaktorsteuersignal 33a,
das an den Faktormultiplizierer 18 geliefert wird, womit
der Faktormultiplizierer 18 veranlaßt wird, den Wert von Kp auf
den Wert einzustellen, der bestimmt worden ist.
-
Im
Ergebnis wird die Steuerung des Justierfaktors Kp auf der Grundlage
der erzeugten Bewegungsvektorcodemenge so gesteuert, daß, wenn
die Bewegungsvektorcodemenge exzessiv groß wird, der Justierfaktor Kp
verringert wird. Da in diesem Falle der Wert des Fehlerbetrags AEp,
der sich aus der Anwendung eines vorhergesagten Bewegungsvektors
MVp ergibt, bei einer derartigen Justage verringert ist, gibt es
eine höhere
Wahrscheinlichkeit, daß die
vorhergesagten Bewegungsvektoren MVp vom Bewegungsvektorschalter 14 ausgewählt werden. Aufgrund
der Tatsache, daß die
längenvariable
Codierung verwendet wird, wie zuvor beschrieben, wird im Ergebnis
die Bewegungsvektorcodemenge verringert.
-
Die
Gründe
zum Steuern des Justierfaktors Kp auf der Grundalge der Quantisierungsschrittweite sind
folgende: Die Codemenge, die aus dem Codieren der DCT-Koeffizienten
der vorhergesagten Prädiktionsfehlerbeträge eines
Blockes resultieren, werden entsprechend der Quantisierungsschrittweite
variieren. Wenn die Schrittweite kurz ist, das heißt, es wird
eine fein detaillierte Quantisierung vom Quantisierer 4 ausgeführt, dann
kann ein großer
Differenzbetrag in der erzeugten Codemenge als Ergebnis von nur
geringem Differenzbetrag zwischen aufeinanderfolgenden erzielten
Prädiktionsfehlerwerten
auftreten, die an den längenvariablen
Codierer 5 geliefert werden. Wenn aus diesem Grund die
Quantisierungsschrittweite kurz wird, dann besteht die Neigung zum
Veranlassen des Wertes von Kp, eng an 1 zu kommen, das heißt, den
Justiergrad zu verringern, der bei den Prädiktionsfehlerbeträgen angewandt wird.
Der Justiersteuerabschnitt 33 reagiert von daher auf die
Quantisierungsschrittweiteninformation durch Erhöhen des Wertes von Kp, da die
Quantisierungsschrittweite kürzer
wird. Der aktuelle Wert von Kp wird somit bestimmt durch den Justiersteuerabschnitt 33 auf
der Grundalge sowohl der Quantisierungsschrittweite als auch der
Codemenge, die durch Codieren der Bewegungsvektoren entstehen (das heißt die Erzeugungsrate
eines derartigen Codes), mit relativen Auswirkungen dieser beiden
Parameter auf den Justierfaktor, der Gegenstand der Auswahl ist.
-
Der
Justiersteuerabschnitt 33 kann konfiguriert werden unter
Verwendung von Einrichtungen verschiedener bekannter Art, beispielsweise
als Nurlesespeicher, so daß eine
detaillierte Beschreibung hier entfällt.
-
Das
Ausführungsbeispiel
von 9 läßt sich gleichermaßen modifizieren,
wie zuvor beschrieben, für
das Ausführungsbeispiel
von 1 und 7, um so die jeweiligen Codemengen
zu vergleichen, die sich aus der Codierung der Prädiktionsfehlerbeträge eines
Blockes ergeben, als Ergebnis der Verwendung der Bewegungsvektoren
MVe beziehungsweise MVp. In diesem Falle sollte die Quantisierung, die
beim Fehlerbetragsfeststell- und -codierabschnitt 36 und 39 erfolgt,
wenn die Prädiktionsfehlerbeträge codiert
werden, gesteuert werden zur Verwendung derselben Quantisierungsschrittweite
wie diejenige des Quantisierers 4.
-
Die
Erfindung ermöglicht
auch eine verbessertes Hocheffizienz-codiertes Aufzeichnungsmedium.
Dies läßt sich
erzielen durch Multiplexen der Prädiktionsfehlerwertbitströme und der
Bewegungsvektorbitströme,
die erzielt werden vom Bewegungskompensationscodiergerät von 1 oder
von 9 mit Bitströmen,
die Audio- und Steuerinformationen ausdrücken unter Verwendung einer
Multiplexnorm, wie beispielsweise MPEG, Addieren von Fehlerkorrekturcodes
zum Ergebnis und Aufzeichnen nach Modulation auf einen Aufzeichnungsträger.
-
Im
Falle des Aufzeichnungsmediums der Nurlese-Art kann das Aufzeichnen
mit hoher Geschwindigkeit unter Verwendung eines Stanzers oder Ähnlichem
erfolgen.
-
Grundsätzlich ist
es möglich,
das Decodiergerät
nach dem Stand der Technik zu verwenden, so daß es vom Beispiel gemäß 12 ist,
um den Codestrom zu decodieren, den das Bewegungskompensationscodiergerät des Ausführungsbeispiels
von 1 oder 9 erzeugt. Jedoch muß sichergestellt sein,
daß der
Bewegungsvektordecodierer 65 entsprechend einer beliebigen
Bewegungsvektorprädiktion
arbeitet, die der Bewegungsvektorcodierer 83 aus 1 ausführt, das
heißt
konfiguriert ist zum Ausführen
der inversen Verarbeitung zu derjenigen, die der Bewegungsvektorcodierer 83 ausführt. Bei der
obigen Beschreibung des zweiten Ausführungsbeispiels von 9 ist
angenommen worden, daß das
Justieren der jeweiligen Prädiktionsfehlerbeträge, die
hergeleitet sind auf der Grundlage eines geschätzten Bewegungsvektors MVe
und eines vorhergesagten Bewegungsvektors MVp, mittels eines Multiplikationsfaktor
Kp von einem Wert geringer als 1 ausgeführt wird, der bezüglich MVp
arbeitet. Jedoch ist es auch gleichermaßen möglich, beliebige andere Verfahren
des Ausführens
einer derartigen Justage anzuwenden, beispielsweise Multiplizieren
von MVe mit einem Faktor, der größer als
1 ist, und so weiter, wie zuvor zum ersten Ausführungsbeispiel beschrieben.
-
Aus
der Beschreibung der Ausführungsbeispiele
geht hervor, daß mit
der vorliegenden Erfindung ein Bewegungsvektor für einen Block, der zu codieren
ist, vorhergesagt wird aus den Bewegungsvektoren, die bereits codiert
worden sind, und wenn der Prädiktionsfehlergrad,
der bei der Verwendung des vorhergesagten Bewegungsvektors für die Bewegungskompensation
vom Block aufkommt, sich nicht großartig vom Prädiktionsfehlergrad
unterscheidet, der sich aus der Verwendung eines Bewegungsvektors
ergibt, der durch Bewegungsschätzung hergeleitet
ist, dann wird der vorhergesagte Bewegungsvektor für eine Bewegungskompensation
zum Codieren des Blockes verwendet, wodurch die Codemenge, die bei
der längenvariablen
Codierung von Bewegungsvektoren aufkommt, verringert werden kann.
-
Aufgrund
der Tatsache, daß ein
vorhergesagter Bewegungsvektor lediglich zur Bewegungskompensationscodierung
eines Blockes verwendet wird, wenn es bereits eine kleine Differenz
zwischen der Prädiktionsfehlermenge
gibt, die aus der Verwendung dieses Bewegungsvektors und dem Umfang des
Prädiktionsfehlers
resultiert, der sich aus der Verwendung des geschätzten Bewegungsvektors
ergeben könnte,
kann dieses Verfahren des Verwendens vorhergesagter Bewegungsvektoren
nur einen geringfügigen
Gesamtanstieg der Codemenge verursachen, die durch Codieren der
Prädiktionsfehlerbeträge erzeugt
wird. Das heißt,
da diese erhöhte
Codemenge im allgemeinen wesentlich geringer ist als das Absenken
der erzeugten Codemenge (das heißt, durch Codieren von Bewegungsvektoren
erzeugter Code), der sich aus der Verwendung vorhergesagter Bewegungsvektoren
ergibt, wird das Absenken der Gesamtcademenge ermöglicht,
die das Bewegungskompensationscodiergerät erzeugt.
-
Durch
Variieren des Justiergrades, der auf die Prädiktionsfehlerbeträge angewandt
wird, hergeleitet für
einen Block unter Verwendung des geschätzten Bewegungsvektors beziehungsweise
des vorhergesagten Bewegungsvektors, wodurch somit das Verhältnis von
vorhergesagten Bewegungsvektoren variiert, die für die Verwendung in der Bewegungskompensationscodierung
ausgewählt
werden, wird es möglich,
den Grad der Codereduzierung zu steuern (das heißt, Verringern der codierten
Bewegungsvektoren), der sich ergibt durch die Verwendung vorhergesagter
Bewegungsvektoren, und wodurch die Steuerung der Gesamterzeugungsrate
des Codes durch das Gerät
gesteuert wird. Band 4 Das heißt,
der Grad, zu dem eine solche Verringerung beim erzeugten Code erzielt
werden kann, bestimmt sich durch den Maximalbetrag der Prädiktionsfehler, die
zulässig
sind zum Codieren eines jeden Bockes. Das Codiergerät kann dadurch
eingerichtet sein, einen gewünschten
Ausgleich zwischen den jeweiligen Erfordernissen für die Prädiktionsfehlermenge
und die Verringerung des erzeugten Codes zu erzielen.
-
Insbesondere
wird es möglich,
den Justierfaktor zu steuern, und von daher das Verhältnis vorher
gesagter Bewegungsrektoren, die ausgewählt werden zur Verwendung bei
der Bewegungskompensationscodierung in Übereinstimmung mit den festgestellten
Regeln an Code, die das Gerät
erzeugt, oder gemäß der Quantisierungsschrittweite,
die verwendet wird beim Codieren der Prädiktionsfehlerbeträge, die
aus den jeweiligen Blöcken
hergeleitet sind) (im Falle eines Gerätes, in dem die Quantisierungsschrittweite
variabel ist) oder gemäß einer Kombination
dieser Parameter.
-
In
einem Videobewegungskompensationskodiergerät, bei dem jedes der periodisch
ausgewählten
Bilder kodiert wird als aufeinander folgende Blöcke von Bildelementen werden
durch Codieren der Prädiktionsfehlerbeträge, die
für jeden
Block in Verbindung mit längenvariabler
Codierung durch Bewegungsvektorcodierer (83) gewonnen werden
von Bewegungsvektoren, die verwendet werden bei der Bewegungskompensationsverarbeitung
zum Herleiten der Prädiktionsfehlerbeträge, von
denen jeder dieser Bewegungsvektoren ausgewählt wird von einem vergleichergesteuerten
Schalter (14), entweder als geschätzter Bewegungsvektor, der
durch eine herkömmliche
Art des Bewegungsschätzabschnitts (15)
hergeleitet worden ist, oder als vorher gesagter Bewegungsvektor,
den ein Bewegungsvektorprädiktionsabschnitt
(20) herleitet, auf der Grundlage zuvor kodierter Bewegungsvektoren,
mit dem geschätzten Bewegungsvektor,
der nur ausgewählt
wird, wenn herausgefunden ist, daß der Prädiktionsfehlerbetrag, der auftreten
kann durch die Verwendung des vorher gesagten Bewegungsvektors,
signifikant größer sein als
derjenige, der sich aus der Verwendung des geschätzten Bewegungsvektors ergeben
würde.
Eine höhere
Wahrscheinlichkeit des Kodierens aufeinander folgend identischer Bewegungsvektoren
wird dadurch erzielt, was zu einer verbesserten Kodiereffizienz
führt.