-
HINTERGRUND
DER ERFINDUNG
-
Die vorliegende Erfindung bezieht
sich auf die Kompression von digitalen Daten und insbesondere auf
ein Verfahren und eine Vorrichtung zur Bereitstellung von Bewegungskompensation
für ein
verflochtenes digitales Videosignal wie beispielsweise ein Fernsehsignal.
-
Die digitale Übertragung von Fernsehsignalen
kann Video- und Audiodienste von viel höherer Qualität als vorhergehende
analoge Techniken liefern. Digitale Übertragungssysteme sind besonders vorteilhaft
für Signale,
die über
Satellit an Kabelfernsehgesellschaften und/oder direkt an hauseigene Satellitenfernsehempfangssysteme übertragen
werden. Derartige Signale können
auch über
ein Kabelfernsehnetzwerk übertragen
werden.
-
Bei jedem beliebigen digitalen Fernsehsystem
muss eine wesentliche Menge digitaler Daten übertragen werden. Dies gilt
insbesondere dann, wenn hochauflösendes
Fernsehen („HDTV")
bereitgestellt wird. Bei einem digitalen Fernsehsystem empfängt ein
Teilnehmer den digitalen Datenstrom über einen Empfänger/Entwürfler, der
dem Teilnehmer Video, Audio und Daten anbietet. Um das verfügbare Funkfrequenzspektrum
am effizientesten zu nutzen, ist es vorteilhaft, die digitalen Fernsehsignale zu
komprimieren, um die Datenmenge, die übertragen werden muss, zu minimieren.
-
Der Videoteil eines Fernsehsignals
beinhaltet eine Sequenz von Video-„Frames",
die zusammen ein Bewegtbild bereitstellen. Bei digitalen Fernsehsystemen
ist jede Zeile eines Videoframes durch eine Sequenz digitaler Datenbits,
die als „Pixel"
bezeichnet werden, festgelegt. Zum Festlegen jedes Videoframes eines
Fernsehsignals ist eine große
Datenmenge erforderlich. Um diese Datenmenge zu verwalten, müssen die
Daten, insbesondere für HDTV-Anwendungen,
komprimiert werden.
-
Videokompressionsmethoden ermöglichen die
effiziente Übertragung
digitaler Videosignale über herkömmliche
Kommunikationskanäle.
Derartige Methoden verwenden Kompressionsalgorithmen, die sich die
Korrelation unter benachbarten Pixeln zu Nutze machen, um eine effizientere
Darstellung der wichtigen Information in einem Videosignal abzuleiten.
Die leistungsfähigsten
Kompressionssysteme machen sich nicht nur die räumliche Korrelation zu Nutze,
sondern können
auch Ähnlichkeiten
unter benachbarten Frames nutzen, um die Daten weiter zu verdichten.
Bei derartigen Systemen wird eine Differenzcodierung verwendet,
um nur die Differenz zwischen einem aktuellen Frame und einer Prädiktion des
aktuellen Frames zu übertragen.
Die Prädiktion basiert
auf aus einem vorhergehenden Frame der gleichen Videosequenz abgeleiteten
Informationen. Beispiele derartiger Systeme können in Krause et al. U.S.
Patente 5,068,724; 5,091,782; und 5,093,720, die sich auf verschiedene
Bewegungskompensationssystem für
digitales Video beziehen, gefunden werden.
-
Bei Bewegungskompensationssystemen
der in den erwähnten
Patenten offenbarten Art werden Bewegungsvektoren durch Vergleich
eines Teils (d. h. eines Block) von Pixeldaten aus einem Halbbild
eines gegenwärtigen
Frames mit ähnlichen
Teilen des vorhergehenden Frames abgeleitet. Ein Bewegungsschätzer bestimmt,
wie der entsprechende Bewegungsvektor im vorhergehenden Frame eingestellt werden
soll, um im gegenwärtigen
Halbbild verwendet zu werden. Derartige Systeme sind bei der Reduzierung
der zu übertragenden
Datenmenge sehr effektiv, insbesondere, wenn sich das Originalvideo
in einem stufenlosen Abtasten befindet. Die Effizienz der bereits
vorhandenen Bewegungskompensationsmethoden wird jedoch ausreichend
reduziert, wenn sie auf das verflochtene Video, bei dem die ungeraden
und geraden nummerierten Zeilen eines Bilds nacheinander als zwei
separate verschachtelte Halbbilder übertragen werden, angewendet
wird.
-
EP-A-0 526 163 offenbart ein Bildcodierungsverfahren,
das die Schritte der Kompensation einer Bewegung von Reproduktionssignalen
von N (eine ganze Zahl von 2 oder größer) Frames, die vor einem
zu codierenden Frame, positioniert sind, um erste bis N-te Prädiktionssignale
zu erhalten, wobei eine lineare Kombination der ersten bis N-ten
Prädiktionssignale
bestimmt wird, um ein Prädiktionssignal zu
erhalten, und die Codierung einer Differenz des zu codierenden Frames
und des Prädiktionssignals
beinhaltet.
-
EP-A-0 538 834 offenbart ein adaptives Sperrbildcodierungssystem
zum Codieren eines Eingangsbildsignals, das durch Zeilensprungverfahren in
Einheiten des Blocks der N Pixel × N Zeilen erhalten wird.
-
Das Dokument „Grand Alliance HDTV System
Specification", als Dokumententwurf bei der ACATS Technical Subgroup
am 22. Februar 1994 eingereicht, Neudruck von Verhandlungen der
jährlichen
Rundfunktechnikkonferenz, Las Vegas, 20. bis 24. März 1994,
Konf. Nr. 48, 22. Februar 1994, National Association of Broadcasters
(NAB), Seiten 12 bis 17, offenbart ein Verfahren der Bewegungsschätzung und
- kompensation.
-
WO-A-92/10061 offenbart ein System
zum prädiktiv
interpolativen Multimode-Codieren von Videohalbbildern und ein System
zum Decodieren codierter Videoalbbilder.
-
Es ist das der vorliegenden Erfindung
zu Grunde liegende Ziel, ein Bewegungskompensationssystem für verflochtene
digitale Videosignale, in denen ein höherer Grad Datenkompression
erreicht werden kann, bereitzustellen.
-
Die vorliegende Erfindung stellt
gemäß dem Gegenstand
der unabhängigen
Ansprüche
1 und 9 ein derartiges System bereit.
-
Weitere Ausführungsformen sind in den abhängigen Ansprüchen aufgeführt.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Gemäß der vorliegenden Erfindung
wird ein Verfahren zum bewegungskompensierten Codieren von digitalen
Videosignalen bereitgestellt. Die digitalen Videosignale legen aufeinanderfolgende
Frames von verflochtenen Videodaten fest. Ein erstes Prädiktionsfehlersignal,
das auf den Unterschied zwischen einem gegenwärtigen Teil aus einem Halbbild
eines gegenwärtigen
Videoframes und einem ähnlich
gelegenen ersten Teil im gleichen Halbbild eines vorherigen Videoframes
hinweist, wird erhalten. Ein zweites Prädiktionsfehlersignal, das auf
den Unterschied zwischen dem gegenwärtigen Teil und einem ähnlich gelegenen
Teil in einem entgegengesetzten Halbbild des vorherigen Videoframes
hinweist, wird erhalten. Ein drittes Prädiktionsfehlersignal, das auf
den Unterschied zwischen dem gegenwärtigen Teil und einem Druchschnitt
des ersten und zweiten Teils hinweist, wird erhalten. Es wird entweder
das erste, zweite oder dritte Prädiktionsfehlersignal
ausgewählt,
um den gegenwärtigen
Teil darzustellen.
-
Bewegungsvektorinformation kann bereitgestellt
werden, um dem gegenwärtigen
Frameteil, dem das ausgewählte
Prädiktionsfehlersignal
entspricht, zu ermöglichen,
durch einen Decodierer reproduziert zu werden. In einem praktischen
System werden das erste, zweite und dritte Prädiktionsfehlersignal für jede einer
Vielzahl von Teilen im gegenwärtigen
Videoframe erhalten. Um dies zu tun, wird ein ungerades Halbbild
des gegenwärtigen
Videoframes in Teile von Pixeldaten ungerader Halbbilder unterteilt.
Das gerade Halbbild des gegenwärtigen
Videoframes ist in Teile von Pixeldaten gerader Halbbilder unterteilt.
Jeder Teil der Pixeldaten vom gegenwärtigen Videoframe wird mit ähnlich gelegenen
Teilen in sowohl den ungeraden als auch den geraden Halbbildern
des vorherigen Videoframes verglichen, um ein bevorzugtes Gegenstück F des
gleichen Halbbilds des vorherigen Frames und ein bevorzugtes Gegenstück G des
entgegengesetzten Halbbilds des vorherigen Frames für jeden
gegenwärtigen
Frameteil zu finden. Das erste Prädiktionsfehlersignal für jeden
gegenwärtigen
Frameteil weist auf den Unterschied zwischen dem Teil und seinem
F-Gegenstück
hin. Das zweite Prädiktionsfehlersignal
für jeden
gegenwärtigen
Frameteil weist auf den Unterschied zwischen dem Teil und seinem
G-Gegenstück
hin. Das dritte Prädiktionsfehlersignal
für jeden
gegenwärtigen
Frameteil weist auf den Unterschied zwischen dem Teil und dem Durchschnitt
seiner F- und G-Gegenstücke hin.
-
Das ausgewählte Prädiktionsfehlersignal für jeden
gegenwärtigen
Frameteil kann mit Daten, die auf die Stelle in dem vorherigen Videoframe
des F-Gegenstücks
hinweisen, wenn das erste Prädiktionsfehlersignal
ausgewählt
wird, codiert werden. Wenn das zweite Prädiktionsfehlersignal ausgewählt wird,
wird das ausgewählte
Prädiktionsfehlersignal mit
Daten, die auf die Stelle im vorherigen Videoframe des G-Gegenstücks hinweisen,
codiert. Wenn das dritte Prädiktionsfehlersignal
ausgewählt
wird, wird es mit Daten, die auf die Stelle im vorherigen Videoframe
sowohl der F- als auch des G-Gegenstücke hinweisen, codiert. Die Codierungsdaten
können Halbbildkennungsinformationen
und Bewegungsvektoren beinhalten.
-
In einer etwas anderen „Framemode"-Implementation
werden das erste, zweite und dritte Prädiktionsfehlersignal für jede einer
Vielzahl von Teilen im gegenwärtigen
Videoframe, der durch Blockpaare mit sowohl ungeraden als auch geraden
Halbbildpixeldaten festgelegt wird, erhalten. Insbesondere wird
der gegenwärtige
Videoframe in Blockpaare von ungeraden und geraden Halbbildpixeldaten
unterteilt. Die ungeraden und geraden Halbbildpixeldaten jedes Blockpaars
des gegenwärtigen
Videoframes werden jeweils mit ähnlich
gelegenen ungeraden bzw. geraden Halbbildpixeldaten in dem vorherigen
Videoframe verglichen, um ein bevorzugtes Gegenstück F des
gleichen Halbbilds des vorherigen Frames für jedes gegenwärtige Frameblockpaar
zu finden. Die ungeraden und geraden Halbbildpixeldaten jedes Blockpaars
des gegenwärtigen
Videoframes werden auch jeweils mit ähnlich gelegenen geraden bzw.
ungeraden Halbbildpixeldaten in dem vorherigen Videoframe verglichen,
um ein bevorzugtes Gegenstück G
des entgegengesetzten Halbbilds des vorherigen Frames für jedes
gegenwärtige
Frameblockpaar zu finden. Das erste Prädiktionsfehlersignal für jedes gegenwärtige Frameblockpaar
weist auf den Unterschied zwischen dem Blockpaar und seinem F-Gegenstück hin.
Das zweite Prädiktionsfehlersignal
für jedes
gegenwärtige
Frameblockpaar weist auf den Unterschied zwischen dem Blockpaar
und seinem G-Gegenstück
hin. Das dritte Prädiktionsfehlersignal für jedes
gegenwärtige
Frameblockpaar weist auf den Unterschied zwischen dem Block und
dem Durchschnitt des F- und G-Gegenstücks für dieses Blockpaar hin.
-
Das ausgewählte Prädiktionsfehlersignal für jedes
gegenwärtige
Frameblockpaar ist mit Daten codiert, die auf die Stelle im vorherigen
Videoframe des F-Gegenstücks
hinweisen, wenn das erste Prädiktionsfehlersignal
ausgewählt
wird, des G-Gegenstücks,
wenn das zweite Prädiktionsfehlersignal
ausgewählt
wird und auf sowohl das F- als auch das G-Gegenstück, wenn
das dritte Prädiktionsfehlersignal
ausgewählt
wird. Die Codierungsdaten beinhalten Halbbildkennungsinformationen
und Bewegungsvektoren.
-
Ein Verfahren zum bewegungskompensierten
Codieren von verflochtenen Frames von digitalen Videodaten, in dem
sowohl Halbbildmode- als auch Framemodeverarbeitung verglichen werden,
wird auch bereitgestellt. Ein gegenwärtiger Videoframe ist in Blockpaare
von ungeraden und geraden Halbbildpixeldaten unterteilt. Die ungeraden
und geraden Halbbildpixeldaten jedes Blockpaars des gegenwärtigen Videoframes
werden jeweils mit ähnlich
gelegenen ungeraden bzw. geraden Halbbildpixeldaten in dem vorherigen
Videoframe verglichen, um ein bevorzugtes Gegenstück F des
gleichen Halbbilds des vorherigen Frames für jedes gegenwärtige Frameblockpaar
zu finden, wobei der Unterschied zwischen dem gegenwärtigen Frameblockpaar
und seinem F-Gegenstück
ein erstes Framemode-Prädiktionsfehlersignal
beinhaltet. Die ungeraden und geraden Halbbildpixeldaten jedes Blockpaars
vom gegenwärtigen
Videoframe werden jeweils mit ähnlich
gelegenen geraden bzw. ungeraden Halbbildpixeldaten in dem vorherigen
Videoframe verglichen, um ein bevorzugtes Gegenstück G des
entgegengesetzten Halbbilds des vorherigen Frames für jedes gegenwärtgge Frameblockpaar
zu finden, wobei der Unterschied zwischen dem gegenwärtigen Frameblockpaar
und seinem G-Gegenstück
ein zweites Framemode-Prädiktionsfehlersignal
beinhaltet. Die Pixeldaten jedes Blockpaars werden mit dem Durchschnitt
der F- und G-Gegenstücke
für dieses Blockpaar
verglichen, wobei der Unterschied ein drittes Framemode-Prädiktionsfehlersignal
beinhaltet. Entweder das erste, zweite oder dritte Framemode-Prädiktionsfehlersignal
wird als ein bevorzugtes Framemode-Prädiktionsfehlersignal ausgewählt. Die ungeraden
Halbbildpixeldaten jedes gegenwärtigen Frameblockpaars werden
mit ähnlich
gelegenen ungeraden Halbbildpixeldaten in dem vorherigen Videoframe
verglichen, um ein bevorzugtes Gegenstück F1 des gleichen Halbbilds
des vorherigen Frames für das
gegenwärtige
Frameblockpaar ungerader Halbbildpixeldaten zu finden. Der Unterschied
zwischen dem gegenwärtigen
Frameblockpaar ungerader Halbbildpixeldaten und seinem F1-Gegenstück beinhaltet
ein erstes Halbbildmode-Prädiktionsfehlersignal.
Die ungeraden Halbbildpixeldaten jedes gegenwärtigen Frameblockpaars werden
mit ähnlich
gelegenen geraden Halbbildpixeldaten in dem vorherigen Videoframe
verglichen, um ein bevorzugtes Gegenstück G1 des entgegengesetzten
Halbbilds des vorherigen Frames für das gegenwärtige Frameblockpaar
ungerader Pixeldaten zu finden. Der Unterschied zwischen dem gegenwärtigen Frameblockpaar
ungerader Halbbildpixeldaten und seinem G1-Gegenstück beinhaltet ein zweites Halbbildmode-Prädiktionsfehlersignal.
Die geraden Halbbildpixeldaten jedes gegenwärtigen Frameblockpaars werden
mit ähnlich
gelegenen geraden Halbbildpixeldaten in dem vorherigen Videoframe
verglichen, um ein bevorzugtes Gegenstück F2 des gleichen Halbbilds des
vorherigen Frames für
das gegenwärtige Frameblockpaar
gerader Halbbildpixeldaten zu finden. Der Unterschied zwischen dem
gegenwärtigen Frameblockpaar
gerader Halbbildpixeldaten und seinem F2-Gegenstück beinhaltet ein drittes Halbbildmode-Prädiktionsfehlersignal.
Die geraden Halbbildpixeldaten jedes gegenwärtigen Frameblockpaars werden
mit ähnlich
gelegenen ungeraden Halbbildpixeldaten im vorherigen Videoframe
verglichen, um ein bevorzugtes Gegenstück G2 des entgegengesetzten
Halbbilds des vorherigen Frames für das gegenwärtige Frameblockpaar
gerader Halbbildpixeldaten zu finden. Der Unterschied zwischen dem
gegenwärtigen
Frameblockpaar gerader Halbbildpixeldaten und seinem G2-Gegenstück beinhaltet
ein viertes Halbbildmode-Prädiktionsfehlersignal.
-
Die ungeraden Halbbildpixeldaten
jedes gegenwärtigen
Frameblockpaars werden mit dem Durchschnitt der F1- und G1-Gegenstücke verglichen,
um ein fünftes
Halbbildmode-Prädiktionsfehlersignal
zu erhalten. Die geraden Halbbildpixeldaten jedes gegenwärtigen Frameblockpaars
werden mit dem Durchschnitt der F2- und G2-Gegenstücke verglichen,
um ein sechstes Halbbildmode-Prädiktionsfehlersignal
zu erhalten.
-
Entweder das erste, zweite oder fünfte Halbbildmode-Prädiktionsfehlersignal
wird als ein bevorzugtes ungerades Halbbildmode-Prädiktionsfehlersignal
ausgewählt.
Entweder das dritte, vierte oder sechste Halbbildmode-Prädiktionsfehlersignal
wird als ein bevorzugtes gerades Halbbildmode-Prädiktionsfehlersignal ausgewählt. Entweder
das bevorzugte Framemode-Prädiktionsfehlersignal
oder die bevorzugten ungeraden und geraden Halbbildmode-Prädiktionsfehlersignale
werden ausgewählt,
um ein gegenwärtiges
Blockpaar darzustellen.
-
Bewegungsvektorinformationen werden
bereitgestellt, um dem gegenwärtigen
Blockpaar zu ermöglichen,
an einem Decodieren rekonstruiert zu werden. Die Bewegungsvektorinformationen
umfassen mindestens entweder einen F- oder G-Bewegungsvektor, wenn
das bevorzugte Framemode-Prädiktionsfehlersignal
ausgewählt
wird, um das gegenwärtige
Blockpaar darzustellen. Wenn die bevorzugten ungeraden und geraden
Halbbildmode-Prädiktionsfehlersignale
ausgewählt
werden, um das gegenwärtige
Blockpaar darzustellen, ist mindestens einer der F1- und G1-Bewegungsvektoren
und mindestens einer der F2- und G2-Bewegungsvektoren in den Bewegungsvektorinformationen
eingeschlossen. In einer bevorzugten Ausführungsform entsprechen die G-,
G1- und G2-Bewegungsvektoren den jeweiligen G-, G1- bzw. G2-Gegenstücken entgegengesetzter Halbbilder
und sind skaliert, um einen Abstandsunterschied, der aus der Verwendung
eines entgegengesetzten Halbbildblockvergleichs anstatt eines gleichen
Halbbildblockvergleichs resultiert, anzuzeigen. Jeder der F-, F1-
und F2-Bewegungsvektoren und der skalierten G-, G1- und G2-Bewegungsvektoren, die
in den Bewegungsvektorinformationen für ein gegenwärtiges Blockpaar
eingeschlossen sind, sind mit einem entsprechenden vorhergehenden
Bewegungsvektor zur Übertragung
mit dem gegenwärtigen
Blockpaar unterschiedlich codiert.
-
Die Auswahl des Prädiktionsfehlersignals, das
für jedes
Blockpaar verwendet werden soll, kann basierend auf dem Angebot,
das die für
die Übertragung
notwendigen Daten minimieren würde,
durchgeführt
werden, um einem Decodieren zu ermöglichen, das gegenwärtige Blockpaar
zu reproduzieren. Das F- und G-Gegenstück kann durch Minimierung der
Summe des Absolutwerts ungerader und gerader Halbbildfehler zwischen
dem gegenwärtigen Frameblockpaar
und den ähnlich
gelegenen Pixeldaten im vorherigen Videoframe gefunden werden.
-
In einer allgemeineren Ausführungsform
wird ein Verfahren zum bewegungskompensierten Codieren von verflochtenen
Frames von digitalen Videodaten bereitgestellt. Ein gegenwärtiger Videoframe
ist in Blockpaare unterteilt, wobei jedes Blockpaar einen ungeraden
Halbbildpixeldatenblock und einen geraden Halbbildpixeldatenblock
beinhaltet. Die Blockpaare des gegenwärtigen Videoframes werden mit ähnlich gelegenen
Blockpaaren eines vorherigen Videoframes verglichen, indem Frameverarbeitung verwendet
wird, um für
jedes gegenwärtige
Blockpaar ein bevorzugtes Framemode-Prädiktionsfehlersignal zu erhalten,
basierend auf einer Berücksichtigung
von gleichen Halbbildblockpaarvergleichen und entgegengesetzten
Halbbildblockpaarvergleichen und einem Durchschnitt der gleichen
und entgegengesetzten Halbbildblockpaarvergleiche. Die ungeraden
und geraden Halbbildpixeldatenblöcke,
die die Blockpaare des gegenwärtigen Videoframes
bilden, werden mit ähnlich
gelegenen Blöcken
des vorherigen Videoframes verglichen, indem Halbbildverarbeitung
verwendet wird, um für
jeden der ungeraden und geraden Halbbildpixeldatenblöcke ein
bevorzugtes Halbbildmode-Prädiktionsfehlersignal
zu erhalten, basierend auf einer Berücksichtigung von gleichen Halbbildblockvergleichen,
entgegengesetzten . Halbbildblockpaarvergleichen und einem Durchschnitt
der gleichen und entgegengesetzten Halbbildblockvergleiche. Für jedes
gegenwärtige
Blockpaar werden entweder das bevorzugte Framemode-Prädiktionsfehlersignal
oder die bevorzugten ungeraden und geraden Modeprädiktionsfehlersignale,
die mit jenem Blockpaar assoziiert sind, ausgewählt.
-
Eine Codierungsvorrichtung ist gemäß der Erfindung
zum bewegungskompensierten Codieren von verflochtenen digitalen
Videosignalen bereitgestellt, in welcher aufeinanderfolgende verflochtene Halbbilder
ungerader und gerader Pixeldaten aufeinanderfolgende Videoframes
bilden. Mittel zum Unterteilen der Frames in Blockpaare sind bereitgestellt, wobei
jedes einen Block ungerader Halbbildpixeldaten und einen Block gerader
Halbbildpixeldaten enthält.
Mittel zum Speichern der Blöcke
aus mindestens drei aufeinanderfolgenden Halbbildern zur Verwendung
beim Erzeugen von Prädiktionsfehlersignalen,
die auf den Unterschied zwischen den ungeraden und geraden Blöcken jedes
Blockpaars eines gegenwärtigen
Frames und ähnlich
gelegenen gleichen Halbbild- und entgegengesetzten Halbbildprädiktionsdaten
in einem vorherigen Frame hinweisen, sind bereitgestellt. Mittel
zum Wählen
eines bevorzugten Halbbildmode-Prädiktionsfehlersignals für jeden Block
der gegenwärtigen
Frameblockpaare aus einem gleichen Halbbildprädiktionsfehler, einem entgegengesetzten
Halbbildprädiktionsfehler
und einem Prädiktionsfehler,
der auf einem Durchschnitt der gleichen Halbbild- und entgegengesetzten Halbbildprädiktionsdaten
für den
Block basiert, sind bereitgestellt. Ein bevorzugtes Framemode-Prädiktionsfehlersignal
wird für
jedes Blockpaar des gegenwärtigen Frames
aus einem gleichen Halbbildprädiktionsfehler,
einem entgegengesetzten Halbbildprädiktionsfehler und einem Prädiktionsfehler,
der auf einem Durchschnitt der gleichen Halbbild- und entgegengesetzten
Halbbildprädiktionsdaten
für das
Blockpaar Basiert, gewählt.
Mittel zur Auswahl von entweder der bevorzugten Halbbildmode-Prädiktionsfehlersignale
oder des bevorzugten Framemode-Prädiktionsfehlersignals
sind bereitgestellt, um das entsprechende Blockpaar darzustellen.
-
Die Codierungsvorrichtung kann Mittel
zur Bereitstellung eines Bewegungsvektors für jeden der ungeraden und geraden
Blöcke
der gleichen Halbbild- und der entgegengesetzen Halbbildprädiktionsfehler
und für
jedes der Blockpaare der gleichen Halbbild- und der entgegengesetzten
Halbbildprädiktionsfehler
umfassen. Mittel zum Ausgeben des/der Bewegungsvektors/en, entsprechend
dem/der Prädiktionsfehlersignal/e,
das/die durch die Auswahlmittel ausgewählt wird/werden, sind bereitgestellt.
Mittel zur Skalierung der Bewegungsvektoren, die mit den entgegengesetzten
Halbbildprädiktionsfehlern
assoziiert sind, um einen Abstandsunterschied, der aus der Verwendung
eines entgegengesetzten Halbbildblockvergleichs anstatt eines gleichen
Halbbildblockvergleichs resultiert, anzuzeigen, sind in der Codierungsvorrichtung
auch bereitgestellt. Mittel zum unterschiedlichen Codieren aufeinanderfolgender
Bewegungsvektoren mit unmittelbar vorhergehenden Bewegungsvektoren
für aufeinanderfolgende
Prädiktionsfehlersignale,
die durch Auswahlmittel ausgewählt
sind, sind bereitgestellt.
-
Die Mittel zum Wählen der bevorzugten Halbbildmode-
und Framemode- Prädiktionsfehlersignale
innerhalb der Codierungsvorrichtung können erste und zweite Bewegungsschätzermittel
beinhalten. Die ersten Bewegungsschätzermittel sind gekoppelt,
um gleiche Blöcke
des gegenwärtigen
Frames zum Vergleich mit ähnlich
gelegenen vorherigen gleichen Halbbildblöcken zu empfangen und sind
gekoppelt, um entgegengesetzte Blöcke des gegenwärtigen Frames
zum Vergleich mit ähnlich
gelegenen vorherigen geraden Halbbildblöcken zu empfangen. Der erste
Bewegungsschätzer
gibt Prädiktionen
F2 des geraden Blocks des gleichen Halbbilds und Bewegungsvektoren
F2v für
jeden geraden Block des gegenwärtigen
Frames aus und gibt entgegengesetzte Halbbildprädiktionen G1 des ungeraden Blocks
und Bewegungsvektoren G1v für jeden
ungeraden Block des gegenwärtigen
Frames aus. Der zweite Bewegungsschätzer ist gekoppelt, um ungerade
Blöcke
des gegenwärtige
Frames zum Vergleich mit ähnlich
gelegenen vorherigen Blöcken
ungerader Halbbilder zu empfangen und ist gekoppelt, um gegenwärtige gerade
Blöcke
des Frames zum Vergleich mit ähnlich
gelegenen vorherigen ungeraden Halbbildblöcken zu empfangen. Der zweite
Bewegungsschätzer
gibt Prädiktionen
F1 des ungeraden Blocks des gleichen Halbbilds und Bewegungsvektoren
F1v für
jeden ungeraden Block des gegenwärtigen
Frames und Prädiktionen
G2 des geraden Blocks des entgegengesetzten Halbbilds und Bewegungsvektoren
G2v für
jeden geraden Block des gegenwärtigen
Frames aus. Mittel zum Testen jeder der F1-, F2-, G1- und G2-Prädiktionen
für jeden
gegenwärtigen
Frameblock gegen ein Kriterium, um den Prädiktionsfehler des Halbbildmodus
des gleichen Halbbilds und den Prädiktionsfehler des Halbbildmodus
des entgegengesetzten Halbbilds für jeden Block zu erhalten,
sind bereitgestellt. Mittel zur Durchschnittsermittlung der jeweiligen
vorherigen ungeraden bzw. geraden Halbbildblöcke werden verwendet, die verwendet
werden, um die F1- und F2-Prädiktionen
zu erhalten, um F-Prädiktionen
für die
Blockpaare bereitzustellen und zur Durchschnittsermittlung der jeweiligen
vorherigen geraden bzw.
-
ungeraden Halbbildblöcke, die
verwendet werden, um die G1- und G2-Prädiktionen
zu erhalten, um G-Prädiktionen
für die
Blockpaare bereitzustellen. Von den F- und G-Prädiktionen wird der Durchschnitt
ermittelt, um F/G-Prädiktionsfehler
für die Blockpaare
bereitzustellen. Mittel zum Testen jeder der F-, G- und F/G-Prädiktionen
für jedes
gegenwärtige
Frameblockpaar hinsichtlich eines Kriteriums sind bereitgestellt,
um den Framemode-Prädiktionsfehler
des gleichen Halbbilds, den FramemodePrädiktionsfehler des entgegengesetzten
Halbbilds und den auf dem Durchschnitt basierenden Prädiktionsfehler
für jedes
Blockpaar zu erhalten.
-
Die Codierungsvorrichtung kann ferner
Mittel zur Skalierung der G1v und G2v Bewegungsvektoren umfassen, um einen Abstandsunterschied,
der aus der Verwendung eines entgegengesetzten Halbbildblockvergleichs
anstatt eines gleichen Halbbildblockvergleichs resultiert, anzuzeigen,
wenn die entgegengesetzten Halbbildprädiktionen G1, G2 und G erhalten
werden.
-
Eine Decodierungsvorrichtung decodiert
bewegungskompensierte verflochtene digitale Videosignale. Speichermittel
speichern ungerade und gerade Halbbildpixeldaten für einen
ersten Videoframe. Mittel zum Empfangen von bewegungskompensierten
Pixeldaten aus ungeraden und geraden Halbbildteilen eines zweiten
Videoframes zusammen mit Bewegungsvektor- und Bewegungskompensationsmodeinformationen
für die
Teile, sind bereitgestellt. Die Bewegungsvektorinformationen identifizieren
Pixeldaten im gleichen und/oder entgegengesetzten Halbbild des gespeicherten
ersten Videoframes, die notwendig sind, um den zweiten Videoframe
aus den empfangenen bewegungskompensierten Pixeldaten zu rekonstruieren.
Die ersten Bewegungskompensatormittel reagieren auf empfangene gleiche
Halbbildbewegungsvektorinformationen zur Wiedergewinnung von Pixeldaten
aus dem gleichen Halbbild des gespeicherten ersten Videoframes als
ein Teil des zweiten Videoframes, der verarbeitet wird. Die zweiten
Bewegungskompensatormittel reagieren auf empfangene entgegengesetzte
Halbbildbewegungsvektorinformationen zur Wiedergewinnung von Pixeldaten
von dem entgegengesetzten Halbbild des ersten Videoframes als der
Teil des zweiten Videoframes, der verarbeitet wird. Mittel, die
auf die Bewegungskompensationsmodeinformationen reagieren, sind
zur Verbindung der empfangenen bewegungskompensierten Pixeldaten
mit Pixeldaten, die durch das erste Bewegungskompensatormittel wiedergewonnen
werden, mit Pixeldaten, die durch das zweite Bewegungskompensatormittel
wiedergewonnen werden oder mit einem Durchschnitt von Pixeldaten, die
durch sowohl das erste als auch das zweite Bewegungskompensatormittel
wiedergewonnen werden, bereitgestellt. Die kombinierten Daten werden verwendet,
um den zweiten Videoframe zu rekonstruieren.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 ist
eine diagrammatische Darstellung eines Halbbildmodebewegungsprädiktionsverfahrens
des bisherigen Stands der Technik;
-
2 ist
eine diagrammatische Darstellung eines alternativen Halbbildmodebewegungsprädiktionsverfahrens
des bisherigen Stands der Technik;
-
3 ist
eine diagrammatische Darstellung eines Halbbildmodebewegungsprädiktionsverfahrens
des bisherigen Stands der Technik;
-
4 ist
eine diagrammatische Darstellung eines Framemodebewegungsprädiktionsverfahrens gemäß der vorliegenden
Erfindung;
-
5 ist
eine diagrammatische Darstellung eines Halbbildmodebewegungsprädiktionsverfahrens,
das eine Framestruktur, gemäß der vorliegenden
Erfindung verwendet;
-
6 ist
eine diagrammatische Darstellung eines Halbbildmodebewegungsprädiktionsverfahrens
gemäß der vorliegenden
Erfindung, das eine Halbbildstruktur anstatt einer Framestruktur
verwendet;
-
7 ist
ein Blockdiagramm der Codierungsvorrichtung gemäß der vorliegenden Erfindung;
-
8 ist
ein detailliertes Blockdiagramm des Bewegungsschätzerteils des Codierers aus 7;
-
9 ist
ein schematisches Diagramm der im Bewegungsschätzer aus 8 verwendeten Akkumulatoren; und
-
10 ist
ein Blockdiagramm eines Decodierers gemäß der vorliegenden Erfindung.
-
DETAILLIERTE BESCHREIBUNG
DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
In der Vergangenheit wurde Bewegungskompensation
für verflochtene
Videosignale unter Verwendung von entweder Halbbildmodebewegungsprädiktion
oder Framemodebewegungsprädiktion
angewendet. Eine Form der Halbbildmodebewegungsprädiktion
ist in 1 dargelegt.
In dieser Technik nach dem Stand der Technik werden vorhergehende
Halbbilder eins und zwei verwendet, um den Videoinhalt der gegenwärtigen Halbbilder
drei und vier vorherzusagen. Die Prädiktion für Halbbild drei ist entweder
vom Halbbild eins, wie durch Vektor 10 angezeigt, oder
vom Halbbild zwei, wie durch Vektor 12 angezeigt, abgeleitet.
Auf ähnliche
Weise ist die Prädiktion
für Halbbild
vier entweder vom Halbbild zwei, wie durch Vektor 14 angezeigt,
oder vom Halbbild drei, wie durch Vektor 16 angezeigt,
abgeleitet. Da ein vertikaler Versatz auf Grund der inhärenten Natur
von verflochtenem Video zwischen den Zeilen der benachbarten Halbbilder
vorhanden ist, ist es von Vorteil, beide der neusten Halbbilder
in Betracht zu ziehen, wenn ein neues gegenwärtiges Halbbild vorausberechnet
wird. Das neuste Halbbild, das die genaueste Prädiktion des gegenwärtigen Halbbilds
bereitstellt, ist dasjenige, das ausgewählt wird, um ein Prädiktionsfehlersignal
zur Übertragung
bereitzustellen.
-
Eine zweite Form der Halbbildmodebewegungsprädiktion
des Stands der Technik ist in 2 dargestellt
und ist die Mode, die am meisten verwendet wurde, wenn die Kompression
auf Frames anstatt auf Halbbilder von Videodaten angewendet wird.
In dieser Ausführungsform
stellen Halbbilder eins und zwei einen einzelnen „vorherigen"
Frame dar und Halbbilder drei und vier stellen einen einzelnen „gegenwärtigen"
Frame dar. Da beide Halbbilder des gegenwärtigen Frames gleichzeitig
komprimiert werden, ist es nicht möglich, Halbbild drei zu verwenden, um
Halbbild vier vorherzusagen, wie in der in 1 dargestellten Ausführungsform durchgeführt wurde. Deshalb
wird in der Ausführungsform
aus 2 entweder Halbbild 1 oder
Halbbild 2 verwendet, um die Prädiktion beider Halbbilder drei
und vier zu bilden. Daher wird Halbbild drei vom Halbbild eins vorausberechnet,
wie durch Vektor 20 angezeigt, oder vom Halbbild zwei,
wie durch Vektor 22 angezeigt. Auf ähnliche Weise wird Halbbild
vier vorhergesagt, indem entweder Vektor 24 aus Halbbild
eins oder Vektor 26 aus Halbbild zwei verwendet wird.
-
Da das Zeitinterval zwischen dem
Prädiktionshalbbild
und dem gegenwärtigen
Halbbild größer für Vektor 24 in
der Ausführungsform
aus 2 ist als es für Vektor 16 in
der Ausführungsform
aus 1 war, wird die
Prädiktion
etwas ungenauer sein. Dies kann normalerweise jedoch durch die erhöhte Effektivität der Framemodekompression über das
genaue Halbbildmodekompressionsverfahren, das in 1 dargestellt ist, kompensiert werden.
-
Ein Beispiel früher bekannter Framemodebewegungskompensation
ist in 3 dargestellt.
In dieser Ausführungsform
wird ein einzelner Bewegungsvektor verwendet, um sowohl Halbbild
drei als auch Halbbild vier aus den Halbbildern eins und/oder zwei
vorherzusagen. Der Bewegungsvektor, der ausgewählt wird, ist derjenige, der
die Summe des Prädiktionsfehlers
aus Halbbild drei und des Prädiktionsfehlers
aus Halbbild vier minimiert. Eine von zwei Möglichkeiten wird, abhängig vom
ausgewählten
Bewegungsvektor auftreten. Entweder Halbbilder eins und zwei oder
Halbbilder zwei und eins werden jeweils Halbbilder drei bzw. vier
vorhersagen. In der Praxis ist es weniger wahrscheinlich, dass die
zweite Möglichkeit
auftritt, da das Zeitintervall zwischen den Halbbildern eins und
vier viel länger
als das Zeitinterval zwischen den Halbbildern zwei und drei ist.
Wenn die Geschwindigkeit der Bewegung konstant ist, sollte deshalb
der Bewegungsvektor, der verwendet wird, um Halbbild vier vorherzusagen,
proportional größer sein
als derjenige, der zur Prädiktion
des Halbbilds drei verwendet wird. Dies ist eins der Probleme bei
bestehenden Framemodebewegungskompensationssystemen.
-
Die vorliegende Erfindung bewältigt die
Mängel
von Bewegungskompensationssystemen des Stands der Technik, die für verflochtenes
Video verwendet werden, und gilt für sowohl Framemode- als auch Halbbildmodeverarbeitung.
Framemodebewegungskompensation
gemäß der vorliegenden
Erfindung ist durch 4 dargestellt. Bei
der Verwendung von Framemodebewegungskompensation müssen zwei
Bewegungsvektoren berechnet werden. Der erste ist der Bewegungsvektor des „gleichen
Halbbilds" (F1 oder F2), der verwendet wird, um Halbbild eins eines
gegenwärtigen
Frames aus Halbbild eins eines vorherigen Frames (F1) vorauszuberechen
oder um Halbbild zwei des gegenwärtigen
Frames aus Halbbild zwei des vorherigen Frames (F2) vorherzusagen.
Der andere Bewegungsvektor wird als ein Bewegungsvektor des „entgegengesetzten
Halbbilds" (G1 oder G2) bezeichnet, der verwendet wird, um Halbbild
eins des gegenwärtigen
Frames aus Halbbild zwei des vorherigen Frames (G1) vorherzusagen
oder um Halbbild zwei des gegenwärtigen
Frames aus Halbbild eins des vorherigen Frames (G2) vorherzusagen.
-
Aus 4 ist
ersichtlich, dass Bewegungsvektor 40 (F1) der gleiche wie
Bewegungsvektor 44 (F2) ist und dass Bewegungsvektor 42 (G1)
der gleiche wie Bewegungsvektor 46 (G2) ist, ausser, dass sowohl
G1 als auch G2 skaliert sind, um den Abstandsunterschied zwischen
den entsprechenden Halbbildern anzuzeigen. Genauer ist 2 (G1) =
2 (G2)/3. Sowohl der Vektor des gleiche Halbbilds F1 oder F2 als
auch der Vektor des entgegengesetzten Halbbilds G1 oder G2 sind
durch Minimierung der Summe des Prädiktionsfehlers des Halbbilds
eins und des Prädiktionsfehlers
des Halbbilds zwei für
den gegenwärtigen
Frame berechnet. Dann wird eine Entscheidung getroffen, ob der Vektor
des gleichen Halbbilds (F1, F2), der Vektor des entgegengesetzten
Halbbilds (2G1, (2/3) G2) oder beide verwendet werden. Wenn sowohl
der Vektor des gleichen Halbbilds als auch der Vektor des entgegengesetzten Halbbilds
verwendet werden, dann wird der Durchschnitt der Prädiktionen
des gleichen Halbbilds und des entgegengesetzten Halbbilds, die
aus dem vorhergehenden Frame gemacht sind, ermittelt, bevor mit
dem gegenwärtigen
Frame differenziert wird. Es sei bemerkt, dass es die zwei Prädiktionen
aus dem vorhergehenden Frame sind, deren Durchschnitt ermittelt
wurde, und nicht die Vektoren.
-
Zwei unterschiedliche Halbbildmode-Bewegungsprädiktionsverfahren
werden gemäß der vorliegenden
Erfindung verwendet. Im ersten, in 5 dargelegten
Verfahren wird eine Framestruktur verwendet, wobei Teile von ungeraden
und geraden Halbbilddaten (z. B. „ein Blockpaar", das einen
Block ungerader Halbbilddaten und einen Block gerader Halbbilddaten
beinhaltet) aus dem gegenwärtigen Frame
mit ähnlich
gelegenen ungeraden und geraden Teilen des vorherigen Frames verglichen
werden. Dies wird als Halbbildmodebewegungskompensation unter Verwendung
einer Framestruktur bezeichnet. Im zweiten Verfahren werden einzelne
ungerade Teile und gerade Teile des gegenwärtigen Frames mit ähnlich gelegenen
Teilen in sowohl den ungeraden als auch den geraden Halbbildern
des vorhergehenden Frames verglichen. Dies wird als Halbbildmodebewegungskompensation
unter Verwendung einer Halbbildstruktur bezeichnet.
-
Bei der Halbbildmodebewegungskompensation
werden die Bewegungsvektoren des gleichen Halbbilds und des entgegengesetzten
Halbbilds unabhängig
für Halbbild
eins und Halbbild zwei des gegenwärtigen Frames erzeugt. Wie
in 5 gezeigt, kann sich
Vektor 52 (F1) von Vektor 56 (F2) unterscheiden.
Auf ähnliche
Weise kann sich Vektor 50 (G1) von Vektor 54 (G2)
unterscheiden. Entscheidungen, ob Vektoren des gleichen Halbbilds
oder des entgegengesetzten Halbbilds verwendet werden sollen, werden
unabhängig
für die
zwei Halbbilder bestimmt. Mit anderen Worten wird die Prädiktion
für Halbbild
eins unter Verwendung von entweder F1, G1 oder durch die Ermittlung
des Durchschnitts der Prädiktionen,
die mit sowohl den F1- als auch den G1-Vektoren assoziiert sind, erhalten.
Auf ähnliche Weise
wird die Prädiktion
für Halbbild
zwei unter Verwendung von entweder F2, G2 oder einem Durchschnitt
der Prädiktionen,
die mit sowohl den F2- als auch den G2-Vektoren assoziiert sind, erhalten.
-
Beispielsweise kann die Prädiktion
für einen Teil 51 des
Halbbilds eins des gegenwärtigen,
in 5 dargestellten Frames
durch Vergleich der in Teil 51 enthaltenen Videodaten mit ähnlich gelegenen
Videodaten im Halbbild eins des vorherigen Frames (wie durch Bewegungsvektor 52 angezeigt
wird) oder durch Vergleich der Videodaten für Teil 51 des Halbbilds
eins des gegenwärtigen
Frames mit ähnlich
gelegenen Daten im Halbbild zwei des vorherigen Frames (wie durch
Bewegungsvektor 50 angezeigt wird), erhalten werden. Als
Alternative dazu kann die beste Prädiktion durch Vegleich der
Videodaten für
Teil 51 des gegenwärtigen
Frames mit einem Durchschnitt der Videodaten, die die besten unabhängigen Prädiktionen
in jedem Halbbild eins und Halbbild zwei des vorherigen Frames bilden,
ergeben. In diesem Fall wird der Durchschnitt der Videodaten im
vorherigen Framehalbbild eins, das dem Bewegungsvektor 52 entspricht,
mit den Videodaten im vorherigen Framehalbbild zwei, das dem Bewegungsvektor 50 entspricht,
ermittelt. Der Durchschnitt dieser Daten wird mit den Videodaten,
die in Teil 51 des gegenwärtigen Frames enthalten sind,
verglichen. Dann wird eine Entscheidung getroffen, ob der Prädiktionsfehler
(d. h. die Differenz zwischen Teil 51 und den F1-, G1-
oder F1/G1-Daten aus dem vorherigen Frame, von denen der Durchschnitt
ermittelt wurde) minimiert ist, indem die F1-, G1- oder F1/G1-Optionen
verwendet werden. Die Auswahl des Prädiktionsfehlersignals kann
auf Grundlage desjenigen, das das kleinste mittlere Fehlerquadrat oder
den minimalsten absoluten Fehler bereitstellt, vorgenommen werden.
-
In der Halbbildmode-, Halbbildstrukturimplementation,
die in 6 dargestellt
ist, sind die Bilder nicht als Frames strukturiert. In diesem Fall
kann der Bewegungsvektor 64 (G2) den Vektor, der verwendet wird,
um Halbbild zwei des gegenwärtigen
Frames aus Halbbild eins des gegenwärtigen Frames vorherzusagen,
bezeichnen. Die verbleibenden Vektoren in der Ausführungsform
aus 6 sind mit denen
der Ausführungsform
aus 5 identisch. Genauer
ist Vektor 60 (G1) der gleiche wie Vektor 50,
Vektor 62 (F1) ist der gleiche wie Vektor 52 und
Vektor 66 (F2) ist der gleiche wie Vektor 56.
-
Nun wird Bezug auf 7 genommen, in der ein Blockdiagramm
eines Codierers zum Implementieren der vorliegenden Erfindung bereitgestellt
ist. Die Videodaten, die codiert werden sollen, werden in ein Terminal 70 eingegeben.
Typischerweise werden die Videodaten in einem Blockformat verarbeitet
werden. Jeder Block ist in ein Subtrahierschaltung 82 mit einer
Prädiktion
für diese
Blockausgabe aus einer logischen Mode-Entscheidungsschaltung 80 differenziert.
Die Differenz wird als ein Prädiktionsfehlersignal
bezeichnet und wird unter Verwendung eines geeigneten Algorithmus
wie dem in 84 dargestellten Algorithmus der diskreten Cosinus-Transformation (DCT)
komprimiert. Die Transformationskoeffizienten werden durch einen
(Quantisierer 86 quantisiert und an einen variablen Längencodierer 92 zur
weiteren Kompression eingegeben. Der variable Längencodierer kann zum Beispiel
einen wohlbekannten Huftman-Codierer beinhalten.
-
Um eine Prädiktion für jede gegenwärtige Videoblockeingabe
am Terminal 70 zu erhalten, werden die Blöcke in einem
Bewegungsschätzer 72 mit ähnlich gelegenen
Daten in einem vorherigen Videoframe oder in einem vorherigen Halbbild
des gleichen Videoframes verglichen, wobei Halbbildmode-, Halbbildstrukturverarbeitung
bereitgestellt ist. Der Bewegungsschätzer 72 gibt einen
Bewegungsvektor F des gleichen Halbbilds und einen Bewegungsvektor
G des entgegengesetzten Halbbilds an die jeweiligen Bewegungskompensatoren 74, 76 aus.
-
Der Bewegungskompensator 74 wird
einen Teil von Videodaten aus einem vorherigen Videohalbbild, das
in Framespeicher 90 gespeichert ist, als Reaktion auf die
F-Bewegungsvektorausgabe aus dem Bewegungsschätzer 72 wiedergewinnen.
Auf ähnliche
Weise wird der Bewegungskompensator 76 Daten aus einem
vorherigen entgegengesetzten Halbbild, das in Framespeicher 90 gespeichert
ist, als Reaktion auf den G-Bewegungsvektor wiedergewinnen. Der
Framespeicher 90 empfängt
die vorherigen Videodaten von einem Addieren 89, der die
vorherige Frameprädiktion
mit dem rekonstruierten Prädiktionsfehlersignal,
das umgekehrt quantisiert wurde, und der umgekehrten diskreten Cosinus-Transformation (IDCT)
durch Schaltungen 88 unterzogen wurde, kombiniert. Eine
logische Mode-Entscheidungsschaltung 80 ist
gekoppelt, um die Prädiktionsdaten
vom Bewegungskompensator 74 und Bewegungskompensator 76 zu
empfangen und um die Summe daraus vom Addieren 78 zu empfangen.
Die Schaltung 80 ermittelt, ob die Prädiktion vom Bewegungskompensator 74,
die Prädiktion
vom Bewegungskompensator 76 oder ein Durchschnitt der beiden
zur besten Gesamtprädiktion
des gegenwärtigen
Videodatenblocks führt.
Die Entscheidung basiert darauf, welche Wahl zu den minimalsten
Daten (einschließlich
jedes beliebig notwendigen Overheads wie beispielsweise Halbbild/Framemodeidentifizierung
und Indentifizierung des gleichen Halbbilds und/oder des entgegengesetzten
Halbbilds), die für
den Block übertragen werden
müssen,
führen
wird.
-
Der Bewegungsschätzer 72 ist detaillierter
in 8 dargestellt. Ein
Bewegungsschätzer
berechnet die in 5 dargestellten
F1-, F2, G1- und
G2-Bewegungsvektoren und die in 4 dargestellten
F- und G- Vektoren,
wobei F = F1 = F2 und G = 2G1 = (U3) G2 ist. Der Bewegungsvektor
berechnet auch einen zusätzlichen
Vektor F/G, der der beste einzelne Vektor mit der Einschränkung F
= G ist.
-
Die Entscheidung hinsichtlich der
Verwendung von Halbbildmode oder Framemode und des gleichen Halbbilds
und/oder entgegengesetzten Halbbilds kann durch Minimierung des
Prädiktionsfehlers
oder durch Verwendung intelligenterer aposteriorische Entscheidungsmethoden
getroffen werden. Obwohl die Anzahl von Bewegungsvektoren, die übertragen
werden, von eins bis vier variieren kann, wird eine Gesamtzahl von
sechs Bewegungsvektoren durch den Bewegungsschätzer aus 8 berechnet. Zwei von den Bewegungsvektoren
(F, G) beziehen sich auf Framemode und vier (F1, F2, G1, G2) beziehen
sich auf Halbbildmode. Es sei jedoch bemerkt, dass alle Bewegungsvektoren
von Halbbildpaaren berechnet werden und deshalb nur halb so viele
Berechnungen erfordern, um den gleichen Suchbereich wie ein von
einem Framepaar abgeleiteten Bewegungsvektor, abzudecken. Deshalb
können
die zwei Framebewegungsvektoren berechnet werden, indem die gleiche
Anzahl Berechnungen, die für
einen herkömmlichen
Bewegungsvektor erforderlich ist, verwendet wird. Ferner ist, da
der Suchbereich entsprechend den vier Halbbildvektoren auf ein einzelnes
Halbbild beschränkt
ist, die Gesamtzahl der Berechnungen, um alle vier Halbbildvektoren
zu schätzen,
die gleiche wie die Anzahl, die für einen einzelnen herkömmlichen
Bewegungsvektor erforderlich ist. Es sei bemerkt, dass die vorliegende
Erfindung einige zusätzliche
Komplexität
zum Schätzen des
Bewegungsvektors des entgegengesetzten Halbbilds in der Betriebs-Framemode
zufügt,
da der Prädiktionsfehler
auf Grund des skalierten G1-Vektors mit dem Prädiktionsfehler, der dem skalierten G2-Vektor entspricht,
summiert werden muss. Im Endeffekt kann diese zusätzliche
Komplexität
durch Implementieren des Schätzers
in einen anwendungsintegriert Chipschaltkreis ausgeschaltet werden.
-
Subpixelgenauigkeit wird für sowohl
Frame- als auch Halbbildbewegungsvektoren durch Interpolation innerhalb
des Halbbilds und nicht innerhalb des Frames erreicht. Eine Methode
zum Bereitstellen von Interpolation ist in der gemeinsam übertragenen, gleichzeitig
schwebenden U.S. Patentanmeldung 08/009,831 an Liu et al., eingereicht
am 27. Januar 1993, offenbart. In der vorliegenden Erfindung
ist es nicht erforderlich, zwischen benachbarten Zeilen innerhalb
eines Frames zu interpolieren, da der gleiche Effekt durch Durchschnittsermittlung
der Prädiktionen
aus beiden Halbbildern im Frame erreicht werden kann.
-
Der Bewegungsschätzer aus 8 stellt drei Halbbild-Speicher 102, 104 und 106 dar.
Diese Halbbild-Speicher empfangen Videodateneingabe am Terminal 100 und
verzögern
das Eingabevideo durch jeweils ein Halbbild. Deshalb sind drei aufeinanderfolgende
Datenhalbbilder im Schätzer
gespeichert. Ein erster Bewegungsschätzer 110 und ein zweiter Bewegungsschätzer 112 berechnen
Block-Verschiebungsfehler, die allen möglichen Verschiebungen innerhalb
eines vorbestimmten Suchbereichs entsprechen. Diese Bewegungsschätzer sind
von herkömmlichem
Design und auf dem Bereich der Bewegungskompensation wohlbekannt.
Die Bewegungsschätzer empfangen
vorherige Videodaten von den Halbbild-Speichern 102, 104 und 106 über einen
Schalter 108. Der Bewegungsschätzer 110 empfängt Daten, die
durch ein Halbbild vom Halbbild-Speicher 102 verzögert wurden
oder Daten, die durch zwei Halbbilder vom Halbbild-Speicher 104 verzögert wurden. Der
Bewegungsschätzer 112 empfängt Daten,
die durch zwei Halbbilder vom Halbbild-Speicher 104 verzögert wurden
oder Daten, die durch drei Halbbilder vom Halbbild-Speicher 106 verzögert wurden. Der
Schalter 108 reagiert auf ein Signal „HALBBILD", das bestimmt,
ob die Prädiktion
auf Halbbild eins oder Halbbild zwei des vorhergehenden Frames angewendet
werden soll. Das Signal wird hin- und hergeschaltet, nachdem jedes
neue Halbbild empfangen wurde. Die Bewegungsschätzer vergleichen den gegenwärtigen Frameteil
mit einem Suchbereich im vorherigen Frame und finden die beste Übereinstimmung
auf der Grundlage vorbestimmter Kriterien. Die Bewegungsschätzer geben
das Prädiktionsfehlersignal
für die
beste Übereinstimmung
sowie den Bewegungsvektor, der die Stelle der am besten übereinstimmenden
Daten, im vorherigen Frame identifiziert, aus.
-
Die Prädiktionsfehlersignale („ERR"),
die von den Bewegungsschätzern
ausgegeben wurden, werden in entsprechende Speicherbanken 114, 116 eingegeben.
Diese Speicherbanken werden verwendet, um jeweils die G1-, F2- bzw.
F1-, G2-Prädiktionsfehler
zu speichern, um nachfolgend den Durchschnitt der F1- und F2-Fehler
im Addieren 118 zu ermitteln und den Durchschnitt der G1-
und G2-Fehler im Addieren 120 zu ermitteln. Die durchschnittlichen
Werte werden verwendet, um die F- und G-Bewegungsvektoren über Akkumulatoren, die unten
genauer beschrieben sind, bereitzustellen. Von den zwei Durchschnitten
wird auch der Durchschnitt zusammen in einem Addieren 122 zur
Verwendung in der Bereitstellung eines F/G- Bewegungsvektors ermittelt.
-
Eine Bank von sieben Akkumulatoren 124, 126, 128, 130, 132, 134 und 136 ist
zum Abspeichern der entsprechenden F1-, F2-, G1-, G2-, F-, G- und F/G-
Bewegungsvektoren mit dem geringsten Fehler, bereitgestellt. Die
Halbbildmodeakkumulatoren 124 und 130 empfangen
Bewegungsvektor- und
Fehlerdaten vom Bewegungsschätzer 112.
Die Halbbildmodeakkumulatoren 126, 128 empfangen
Bewegungsvektor- und Fehlerdaten vom Bewegungsschätzer 110.
Der Framemodeakkumulator 132 empfängt Bewegungsvektorinformationen
vom Bewegungsschätzer 110 und
Fehlerinformationen vom Addierer 118. Der Framemodeakkumulator 134 empfängt Bewegungsvektorinformationen
vom Bewegungsschätzer 112 und
Fehlerinformationen vom Addierer 120. Der F/G-Akkumulator
136 empfängt
Bewegungsvektorinformationen vom Bewegungsschätzer 110 (oder als Alternative
dazu vom Bewegungsschätzer 112,
da F = G für
die F/G-Mode ist) und Fehlerinformationen vom Addieren 122.
-
Die Ausgabe jedes Akkumulators wird
nur mit einem neuen Eingabebewegungsvektor aktualisiert, wenn der
entsprechende Verschiebungsfehler geringer als der Fehler ist, der
dem im Akkumulator gespeicherten vorhergehenden Bewegungsvektor entspricht.
Die F1- und G1-Akkumulatoren dürfen
nur während
des ersten Halbbilds jedes Frames (Halbbild = 0) aktualisieren,
und alle anderen Akkumulatoren dürfen
nur während
des zweiten Halbbilds jedes Frames (Halbbild = 1) aktualisieren.
Diese Aktualisierungseinschränkung
wird durch Eingabe des Halbbildsignals über das Terminal 148 direkt
an die Akkumulatoren 124 und 128 gesteuert. Das
Halbbildsignal wird durch einen Inverter 138 umgekehrt,
bevor es an die verbleibenden Akkumulatoren eingegeben wird. Die
Akkumulatoren werden über
das Terminal 146 für jeden
neuen Teil (z. B. Block) der Eingabevideodaten, die verarbeitet
werden, zurückgesetzt.
Das Rücksetzen
zwingt den Akkumulator dazu, mit dem ersten Bewegungsvektoranwärter für den neuen
Teil, der verarbeitet wird, zu aktualisieren.
-
Wie oben angeführt, sind die G1-, G2- und G-
Bewegungsvektoren skaliert. Ein Skalierungsfaktor von zwei wird
für den
G1-Vektor an einen Multiplikator 140 eingegeben. Ein Skalierungsfaktor
von 2/3 wird für
den G2-Vektor über
einen Multiplikator 142 angewendet. Ein Skalierungsfaktor
von 2/3 wird auch für
den G-Vektor über
einen Multiplikator 144 angewendet.
-
Da Framemodebewegungsschätzung erfordert,
dass die Fehler den F7- und
F2-Bewegungsvektoren entsprechen, und die G1- und G2-Bewegungsvektoren
summiert werden, sind Speicherbanken 114 und 116 erforderlich.
Da F1 und G1 nur während Halbbild 1 (Halbbild
= 0) berechnet werden, und F2 und G2 nur während Halbbild 2 (Halbbild
= 1) berechnet werden, ist es notwendig, die Fehler, die allen möglichen
Verschiebungen für
jeden Block eines Halbbilds entsprechen, zu speichern. Es sei bemerkt, dass
es möglich
ist, die Speicherbanken zu eliminieren, wenn zwei weitere Bewegungsschätzer eingeführt werden,
um F2 und G2 gleichzeitig mit F1 und G1 zu berechnen. Etwas Speicher
wird jedoch immer noch erforderlich sein, um einen skalierten G-Vektor mit
jedem F-Vektor abzustimmen. In diesem Fall wird die Menge des erforderlichen
Speichers vom Bewegungsvektorbereich abhängen.
-
Eine Implementation des Akkumulators 124 ist
in 9 dargestellt. Jeder
der anderen Akkumulatoren kann eine identische Konfiguration aufweisen. Die
Bewegungsvektoren werden an den Akkumulator über ein Terminal 150 eingegeben.
Die mit den Bewegungsvektoren assoziierten Prädiktionsfehler werden über das
Terminal 152 eingegeben. Nach Erhalt eines Rücksetzsignals
am Terminal 146 werden AND-Gatter 164 und OR-Gatter 166 bewirken,
dass der erste Signalspeicher 158 den ersten Bewegungsvektor
für den
nächsten
Teil der zu verarbeitenden Videodaten einrastet. Gleichzeitig wird
der mit dem Bewegungsvektor assoziierte Fehler in einem zweiten Signalspeicher 160 eingerastet
werden. Wenn der assoziierte Bewegungsschätzer (z. B. Bewegungsschätzer 112)
einen Bereich des vorherigen Videoframes nach einer Übereinstimmung
mit dem Teil der gegenwärtig
verarbeiteten Videodaten sucht, werden neue Bewegungsvektoren und
damit assoziierte Fehler an den Akkumulator über die jeweiligen Terminals 150, 152 eingegeben.
Die neuen Fehler werden in einem Komparator 162 mit dem
vorhergehenden Fehler, der im Signalspeicher 160 eingerastet
wurde, verglichen. Wenn der Komparator 162 ermittelt, dass ein
neu empfangener Fehler besser als ein vorhergehend eingerasteter
Fehler ist, wird er bewirken, dass der Signalspeicher 158 den
Bewegungsvektor, der mit diesem Fehler assoziiert ist, speichert
und dass der Signalspeicher 160 den Fehler selbst speichert. Auf
diese Weise wird der Akkumulator den besten Prädiktionsfehler und den assoziierten
Bewegungsvektor für
jeden neuen Teil der verarbeiteten Videodaten erhalten.
-
Alle Bewegungsvektoren werden hinsichtlich ihres
Absolutwerts dargestellt, wenn sie auf einen Abstand eines Frames
(d. h. zwei Halbbilder) eingestellt sind. Deshalb erfordern die
Vektoren des gleichen Halbbilds (F1 und F2) niemals Skalierung.
Andererseits entsprechen die Vektoren des entgegengesetzten Halbbilds
(G1 und G2) den jeweiligen Frameabständen 1/2 und 3/2. Deshalb würde der
Vektor, der übertragen
wird, im Fall von G1, zweimal so gross, und im Fall von G2 zwei
Drittel so gross sein. Wenn Framemode verwendet wird, werden G1
und G2 identisch sein, wenn sie mit einem Frameabstand von eins
dargestellt sind. Jeder Vektor ist mit einer halben Pixelgenauigkeit
vor der Skalierung dargestellt, wenn der Frameabstand eins ist.
Nach der Skalierung werden die Vektoren wieder auf das nächste halbe
Pixel gerundet.
-
Ein Vorteil dieser Darstellung ist,
dass sie die Prädiktion
der Bewegungsvektoren vereinfacht. Da der Bewegungsvektorabstand
nun in allen Fällen festgesetzt
ist, muss nur ein Bewegungsvektor gespeichert werden, so dass er
für die
Prädiktion
des nächsten
Bewegungsvektors verwendet werden kann.
-
Beispielsweise wird angenommen, dass
die in 4 angegebenen
Bewegungsvektoren übertragen
werden sollen. Diese Vektoren werden zuerst komprimiert, um das
Overhead, das erforderlich ist, um sie zu senden, zu minimieren.
Es ist immer wünschenswert,
Bewegungsvektoren als Differenzen zu senden, da die resultierende
Verteilung mit dem Mittelwert Null leichter zu komprimieren ist.
Deshalb ist der erste Schritt, die Differenz zwischen F1 und dem letzten
Bewegungsvektor, der codiert wurde, zu senden. Als nächstes wird
die Differenz zwischen 2G1 (die die gleiche wie (2l3) G2 ist) und
F1 übertragen. F2
muss nicht gesendet werden, da es das gleiche wie F1 ist. Wenn der
nächste
Bewegungsvektor codiert werden soll, wird zuerst mit 2G1 differenziert.
-
Nun wird angenommen, dass die Bewegungsvektoren
in 5 übertragen
werden sollen. Der erste Schritt wird sein, die Differenz zwischen
F1 und dem zuletzt codierten Bewegungsvektor zu senden. Als nächstes wird
die Differenz zwischen 2G1 und F1 gesendet. Danach wird die Differenz
zwischen F2 und 2G1 gesendet, gefolgt von der Differenz zwischen
(2/3) G2 und F2. Der nächste
Bewegungsvektor wird mit (2/3) G2 differenziert. Bewegungsvektoren,
die nicht zur Übertragung
ausgewählt
werden, werden einfach ausgelassen, ohne die Übertragungsordnung der verbleibenden
Vektoren zu ändern.
-
10 stellt
einen Decodieren dar, der gemäß der vorliegenden
Erfindung verwendet werden kann. Die übertragenen Videodaten und
das Overhead werden an ein Eingabeterminal 170 empfangen und
mit einem Demultiplexer 172 demultiplexiert. Der Demultiplexer
gibt die codierten Videodaten variabler Länge über Zeile 171 aus.
Die Overheaddaten, die Bewegungsvektoren und Modeauswahlinformationen
einschließen,
werden über
Zeile 173 ausgegeben.
-
Die codierten Videodaten variabler
Länge werden
durch einen Decodieren variabler Länge 174 decodiert und im Dekomprimierungsschaltkreis 176, der
z. B. einen umgekehrten Quantisierer und einen IDCT-Schaltkreis ähnlich den
Schaltkreisen 88 am Codieren aus 7 beinhalten kann, dekomprimiert. Die
dekomprimierten, decodierten Prädiktionsfehler variabler
Länge werden
mit einer Eingabe eines Addierers 178, der verwendet wird,
um die ursprünglichen
Videodaten zu rekonstruieren, gekoppelt. Die andere Eingabe des
Addierers 178 beinhaltet die wiedergewonnenen Prädiktionen,
indem die vorhergehenden rekonstruierten vorherigen Framedaten verwendet
werden. Ein erster Bewegungskompensator 182 empfängt die
F-Bewegungsvektoren aus Zeile 173 und ein zweiter Bewegungskompensator 184 empfängt die
G-Bewegungsvektoren
aus Zeile 173. Diese Bewegungskompensatoren sind ähnlich den jeweiligen
Bewegungskompensatoren 74, 76 des Codierers aus 7. Die Bewegungskompensatoren
empfangen vorhergehende Framedaten von einem Framespeicher 180,
der gekoppelt ist, um die vorhergehenden Frames von der Ausgabe
des Addierers 178 zu empfangen.
-
Die Ausgaben der Bewegungskompensatoren 182 und 184 werden
an einen Selektor 188 und an einen Addieren 186 eingegeben.
Der Addieren 186 stellt den Durchschnitt der Prädiktionsdatenausgabe
vom Bewegungskompensator zum Selektor 188 bereit. Der Selektor 188 reagiert
auf die Modeauswahldaten, die über
Zeilen 173 zum Auswählen
entweder der Prädiktionsausgabe
für den
Bewegungskompensator 182, der Prädiktionsausgabe für den Bewegungskompensator 184 oder
des Durchschnitts der zwei vom Addieren 186 ausgegebenen Prädiktionen,
empfangen werden. Die ausgewählte Prädiktion
wird durch den Addieren 178 verwendet, um die ursprünglichen
Videodaten für
die Ausgabe zu rekonstruieren.
-
Es versteht sich nun, dass die vorliegende Erfindung
Verfahren und Vorrichtung zum Codieren und Decodieren von bewegungskompensierten
verflochtenen Videodaten bereitstellt. Der beste Vektor F des gleichen
Halbbilds und der beste Vektor G des entgegengesetzten Halbbilds
werden unabhängig voneinander
ausgewählt.
Der Prädiktionsfehler,
der aus der Verwendung von sowohl F- und G-Vektoren resultiert (mit
den zwei Prädiktionen,
von denen der Durchschnitt ermittelt wurde), wird mit dem Prädiktionsfehler,
der aus der Verwendung von F oder G allein resultiert, verglichen.
Der Vektor/die Vektoren, der/die zum geringsten Fehler führt/führen, wird/werden
dann ausgewählt.
Dies unterscheidet sich von Systemen des Stands der Technik, in
denen nur ein Vektor (d. h. entweder der Vektor des gleichen Halbbilds
oder des entgegengesetzten Halbbilds) erzeugt wurde.
-
Wenn Framemodeschätzung durchgeführt wird,
findet die vorliegende Erfindung den G-Vektoren, der die Summe der
ersten und zweiten Halbbildfehler minimiert, wenn Skalierung auf
G1 und G2 angewendet wird. Auf ähnliche
Weise wird der beste Signalvektor F/G (wobei F–G ist) gefunden, während er zur
Skalierung von G1 und G2 beiträgt.
In der Bewegungsschätzerimplementation
aus 8 werden alle Bewegungsvektoren
berechnet, ohne die erforderliche Anzahl Bewegungsschätzer über Implementationen
des Stands der Technik zu erhöhen.
-
Die vorliegende Erfindung stellt
ferner Bewegungsvektorprädiktion
bereit, in der alle Bewegungsvektoren skaliert werden, um einem
herkömmlichen Zeitintervall
wie beispielsweise einer Framezeit zu entsprechen, bevor die Bewegungsvektorunterschiede
berechnet werden. Infolgedessen muss nur ein Bewegungsvektor gespeichert
werden. Die F2- oder G2-Bewegungsvektoren
werden vorteilhafterweise mit den F1- oder G1-Vektoren differenzcodiert.