-
Gebiet der
Erfindung
-
Die
vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung
zum Kodieren von Zeilensprung-Forminformation; und, insbesondere,
ein Verfahren und eine Vorrichtung zum wirksamen Kodieren der Zeilensprung-Forminformation
durch Verändern
eines Kodiermodus der Zeilensprung-Forminformation, basierend auf
einer Halbbild_keine_Aktualisierung-(Feld_keine_Aktualsierung) Abschätzung.
-
Hintergrund
der Erfindung
-
In
digitalen Fernsehübertragungssystemen,
wie beispielsweise Videotelefon-, Telekonferenz- und hochauflösende Fernsehsysteme
wird eine große
Menge digitaler Daten benötigt,
um jedes Video-Vollbildsignal (Video-Rahmensignal) festzulegen,
da ein Video-Zeilensignal in dem Video-Vollbildsignal eine Folge von digitalen
Daten aufweist, die als Pixelwerte bezeichnet werden. Da jedoch
die verfügbare
Frequenzbandweite eines herkömmlichen Übertragungskanals
begrenzt ist, ist es notwendig, um die große Menge digitaler Daten dort
hindurch zu übertragen,
das Datenvolumen unter Verwendung verschiedener Datenkompressionstechniken
zu komprimieren oder zu reduzieren, insbesondere im Falle solcher
Niedrigbitraten Videosignalkodierer, wie Videotelefon- und Telekonferenzsysteme.
-
Eine
solcher Techniken zum Kodieren von Videosignalen für ein Niedrigbitraten-Kodiersystem
ist die sogenannte objektbasierte Analyse-Synthese-Kodiertechnik,
bei welcher ein Eingangs-Videobild in Objekte aufgeteilt wird, und
drei Parametersätze
zur Festlegung der Bewegung, des Umrisses und von Pixeldaten für jedes
Objekt, durch verschiedene Kodierungskanäle verarbeitet werden.
-
Ein
Beispiel eines solchen objektbasierten Kodierschemas ist das sogenannte
MPEG (Moving Picture Experts Group) Phase 4 (MPEG-4), welches entwickelt
wurde, um einen audiovisuellen Kodierstandard bereitzustellen, um
inhaltsbasierte Interaktivität,
verbesserte Kodiereffizienz und/oder universelle Verfügbarkeit
in Anwendungen wie beispielsweise Niedrigbitraten-Kommunikation,
interaktives Multimedia (zum Beispiel Spiele, interaktives TV, usw.)
und Gebietsüberwachung
zu ermöglichen.
-
Gemäß MPEG-4,
wird ein Eingangs-Videobild in mehrere Video-Objektebenen (VOP) unterteilt, die Einheiten
in einem Bitstrom entsprechen, auf die ein Benutzer Zugriff haben
kann und diese manipulieren kann. Eine VOP kann als ein Objekt bezeichnet
werden und durch ein Begrenzungsrechteck dargestellt werden, dessen
Breite und Höhe
das kleinste Vielfache von 16 Pixeln (einer Makroblockgröße) ist,
das jedes Objekt umgibt, so dass der Kodierer das Eingangs-Videobild auf einer
VOP-zu-VOP-Basis verarbeiten kann.
-
Eine
in MPEG-4 beschriebene VOP weist Forminformation und Texturinformation
auf mit Helligkeits- und Farbartdaten, wobei die durch binäre Formsignale
dargestellte Forminformation als eine Alphaebene bezeichnet wird.
Die Alphaebene ist in mehrere binäre Alphablöcke aufgeteilt, wobei jeder
binäre
Alphablock (BAB) herkömmlicherweise
16 × 16
binäre
Pixel aufweist. Jeder der binären
Pixel ist entweder in einen Hintergrundpixel oder einen Objektpixel
eingeteilt, wobei der Hintergrundpixel außerhalb des Objektes in der
Alphaebene angeordnet ist und durch einen binären Pixelwert, beispielsweise
0, dargestellt wird, während
der Objektpixel innerhalb des Objekts angeordnet ist und durch einen
anderen binären
Pixelwert, beispielsweise 255, dargestellt wird.
-
Jedes
der binären
Pixel in dem BAB kann durch Verwendung eines herkömmlichen
Bit-Map-basierten Formkodierverfahrens kodiert werden, wie beispielsweise
einer kontextbasierten arithmetischen Kodier-(CAE, engl. Context-based
arithmetic encoding)-Technik und einer Bewegungsabschätzungs-
und Ausgleichstechnik. Zum Beispiel werden in einem Intramodus alle
binären
Pixel eines aktuellen BAB durch Verwendung einer intra-CAE-Technik
kodiert, um dadurch Intra-CAE-Daten zu erzeugen, wobei ein Kontextwert
für einen
binären Pixel
des BAB basierend auf einer vorgegebenen Zahl, beispielsweise 10
binären
Pixeln um den binären
Pixel in dem BAB herum, berechnet wird. In einem Intermodus werden
alle binären
Pixel eines aktuellen BAB durch Verwendung einer Inter-CAE-Technik
kodiert, um dadurch Inter-CAE-Daten zu erzeugen, wobei ein Kontextwert
von einem binären
Pixel des aktuellen BAB basierend auf beispielsweise 4 binären Pixeln,
die den binären Pixel
in dem aktuellen BAB umgeben, berechnet wird, und beispielsweise
5 binären
Pixeln in einem Referenz-BAB, beispielsweise, innerhalb eines randbewegungsausgeglichenen
BAB (siehe MPEG-4 Video Verification Model Version 7,0, International
Organisation for Standardisation, Coding of Moving Pictures And
Associated Audio Information, ISO/IEC JTC1/SC29/WG11 MPEG97/N1642,
Bristol, April 1997, Seiten 28–30).
-
In
dem herkömmlichen
binären
Formkodierschema wird ein BAB_Typ zur Darstellung oder Charakterisierung
eines Kodiertyps eines BAB verwendet, um die Kodiereffizienz zu
verbessern. Zum Beispiel wird ein BAB_Typ, wenn alle binären Pixel
innerhalb eines BAB Objektpixel sind, der anzeigt, dass alle binären Pixel innerhalb
des BAB Objektpixel sind, kodiert und an einen Dekodierer an einem
Empfangsende anstelle der Pixeldaten selbst übertragen. Daher ist es möglich, die
Kodiereffizienz durch Übertragen
des BAB_Typs als die grundlegende binäre Forminformation für den BAB
zu verbessern.
-
-
-
Bezugnehmend
auf Tabelle 1 sind dort 7 BAB_Typen für ein BAB veranschaulicht,
wie er herkömmlicherweise
im Stand der Technik verwendet wird, wobei ein Bewegungsvektorunterschied
für eine
Form (MVDs = Englisch: motion vector difference for shape) ein Unterschied
zwischen einem Bewegungsvektor für
eine Form (MVs = Englisch: motion vector for shape) und einem Bewegungsvektor-Prädiktor für eine Form
(MVPs = Englisch motion vector predictor for shape) eines BAB ist
(siehe MPEG-4 Video
Verification Model Version 7.0, Supra, Seiten 20–23).
-
In
Tabelle 1 stellt ein BAB_Typ "0" dar, dass der MVDs
für einen
BAB Null ist und, dass der BAB keine_Aktualisierung entspricht,
d.h., dass der BAB durch einen ähnlichsten
Kandidaten-BAB davon ersetzt werden kann, wohingegen ein BAB_Typ "1" beschreibt, dass der MVDs für einen
BAB einen von Null verschiedenen Wert aufweist und, dass der BAB
durch einen ähnlichsten
Kandidaten-BAB davon ersetzt werden kann. Ein BAB des BAB_Typs "0" kann nur durch den BAB_Typ selbst dargestellt
werden, während
ein BAB des BAB_Typs "1" sowohl durch den
BAB_Typ und dem MVDs davon dargestellt bzw. repräsentiert werden kann.
-
Ein
BAB_Typ "2" repräsentiert,
dass ein BAB transparent ist, d.h. alle binären Pixel innerhalb des BAB können als
Hintergrundpixel behandelt werden, wohingegen ein BAB_Typ "3" zeigt, dass ein BAB opak ist, d.h. alle
binären
Pixel innerhalb des BAB können
durch Objektpixel repräsentiert
werden. Es werden keine anderen Daten neben dem BAB_Typ für die Darstellung
des BAB des BAB_Typs "2" oder "3" benötigt.
-
Ein
BAB_Typ "4" setzt voraus, dass
alle binären
Pixel innerhalb eines BAB durch eine Intra-CAE kodiert worden sind;
ein BAB_Typ "5" bedeutet, dass der
MVDs als Null festgelegt ist und alle binären Pixel innerhalb eines BAB
durch Inter-CAE
kodiert worden sind; und ein BAB_Typ "6" zeigt
an, dass der MVDs einen von Null verschiedenen Wert aufweist und
alle binären
Pixel innerhalb eines BAB durch Inter-CAE kodiert worden sind. Ein
BAB des BAB_Typs "4" oder "5" wird durch den BAB_Typ "4" oder "5" gefolgt
von den Intra-CAE- oder den Inter-CAE-Daten repräsentiert. Ein BAB des BAB_Typs "6" benötigt
den MVDs und die Inter-CAE-Daten zusätzlich zu dem BAB_Typ selbst.
-
Bezugnehmend
auf 1 ist dort eine herkömmliche Vorrichtung zum Anpassungskodieren
von Zeilensprung-Forminformation
einer VOP auf einer Vollbild BAB-Basis (Rahmen-BAB-Basis, Englisch:
frame BAB basis) und einer Halbbild BAB-Basis (Feld-BAB-Basis, Englisch:
field BAB basis) veranschaulicht, bei welcher ein Vollbild BAB M × N Pixel
darin aufweist und in einen Oben-Halbbild- und einen Unten-Halbbild
BAB aufgeteilt werden kann, wobei jeder M/2 × N Pixel aufweist, wobei M
eine gerade positive Ganzzahl und N eine positive Ganzzahl ist.
Typischerweise weisen M und N einen Wert von 16 auf und die Oben-Halbbild-
und Unten-Halbbild
BAB werden durch ungerade bzw. gerade Pixelreihen des Vollbild BAB
erstellt. Die Zeilensprung-Forminformation einer VOP wird in eine
Vollbild-Erkennungsschaltung 10 auf der Vollbild BAB-Basis eingegeben.
Die Vollbild-Erkennungsschaltung 10 untersucht,
ob ein aktueller Vollbild BAB, der beispielsweise 16 × 16 binäre Pixel
aufweist, als entweder transparent oder opak behandelt werden kann.
Typischerweise wird ein aktueller Vollbild BAB als transparent oder
opak erkannt, wenn ein erzeugter Fehler kleiner als eine vorgegebene
Schwelle ist, wenn die Pixel innerhalb des aktuellen Vollbild BAB
alle mit 0 oder alle mit 255 ersetzt werden. Wenn der aktuelle Vollbild
BAB als entweder transparent oder opak erkannt wurde, wird der BAB_Typ "2" oder "3" an
einem Übertrager
(nicht gezeigt) über
einen Multiplexer (MUX) 60 bereitgestellt und das Kodierverfahren
des aktuellen Vollbild BAB wird beendet.
-
Wenn
der aktuelle Vollbild BAB weder transparent noch opak ist, wird
die Zeilensprung-Forminformation des aktuellen Vollbild BAB an eine
Kodier_Typ Entscheidungs-Schaltung 20 und an einem Schalter 30 bereitgestellt.
Die Kodier_Typ Entscheidungs-Schaltung 20 berechnet Vollbild-
und Halbbildkorrelationen für
den aktuellen Vollbild BAB, basierend auf Veränderungen der binären Pixelwerte
zwischen zwei benachbarten Zeilen; ermittelt, ob ein vollbildbasiertes
(rahmenbasiertes) oder ein halbbildbasiertes (feldbasiertes) Kodieren
basierend auf den berechneten Vollbild- und Halbbildkorrelatioinen
vorzuziehen ist; weist einen Kodier_Typ "0" dem
aktuellen Vollbild BAB zu, wenn die Vollbildkorrelation größer oder
gleich der Halbbildkorrelation ist und einen Kodier_Typ "1", wenn es anders ist; und stellt einen
Kodier_Typ "0" oder "1" des aktuellen Vollbild BAB an dem Schalter 30 und
dem MUX 60 bereit, wobei die Kodier_Typen "0" und "1" anzeigen,
dass der aktuelle Vollbild BAB auf einer Vollbild BAB- bzw. einer
Halbbild BAB-Basis kodiert ist. Die Vollbildkorrelationen können zum
Beispiel als eine Summe von binären
Pixelwertunterschieden zwischen allen möglichen zwei benachbarten Zeilen,
d.h. einer ersten und einer zweiten Zeile, der zweiten und einer
dritten Zeile usw. des aktuellen Vollbild BAB berechnet werden;
und die Halbbildkorrelation kann als eine Summe von binären Pixelwertunterschieden
zwischen allen möglichen
zwei benachbarten ungeraden Zeilen berechnet werden, d.h. der ersten und
der dritten Zeile, der dritten und einer fünften Zeile usw. und aller
möglichen
zwei benachbarten geraden Zeilen, d.h. der zweiten und einer vierten
Zeile, der vierten und einer sechsten usw. Je kleiner die Summe
der binären
Pixelwertedifferenzen ist, desto höher ist der Grad der Korrelation.
-
Der
auf dem Kodier_Typ ansprechende Schalter 30 stellt die
Zeilensprung-Forminformation des aktuellen Vollbild BAB der Vollbild-Kodierschaltung 40 bereit,
wenn der Kodier_Typ "0" entspricht, und
der Halbbild-Kodierschaltung 50 bereit, wenn der Kodier_Typ "1" entspricht.
-
Die
Vollbild-Kodierschaltung 40 wählt einen der BAB_Typen "0", "1", "4", "5" und "6" als den BAB_Typ des aktuellen Vollbild
BAB aus und kodiert den aktuellen Vollbild BAB als eine Vollbildbasis
entsprechend dem festgestellten BAB_Typ. Wenn der BAB_Typ als "0" festgestellt wurde, ist die Ausgabe
der Vollbild-Kodierschaltung 40 an den MUX 60 nur
der BAB_Typ, wohingegen, wenn der erkannte BAB_Typ einer der BAB_Typen "1", "4", "5" und "6" ist,
gibt die Vollbild-Kodierschaltung 40 die
kodierten Daten des aktuellen Vollbild BAB auf der Vollbildbasis
an den MUX 60 aus (oder der vollbildkodierten Daten) zusammen
mit dem festgestellten BAB_Typ. Die vollbildkodierten Daten weisen
den kodierten MVDs und/oder die Intra/Inter-CAE-Daten auf.
-
Andererseits,
wenn der aktuelle Vollbild BAB von dem Schalter 30 der
Halbbild-Kodierschaltung 50 in Reaktion auf den Kodier_Typ "1" bereitgestellt wird, teilt die Halbbild-Kodierschaltung 50 den
aktuellen Vollbild BAB in zwei Halbbild BAB auf, d.h. einen Oben-Halbbild-
und einen Unten-Halbbild
BAB; wählt
einen der BAB_Typen "0", "1", "4", "5" und "6" als
einen BAB_Typ für
sowohl den Oben- als auch den Unten-Halbbild BAB; und kodiert die
zwei Halbbild BAB einzeln auf der Halbbild-Basis entsprechend dem
festgestellten BAB_Typ. Es soll festgehalten werden, dass die zwei
Halbbild BAB einzeln auf der Halbbild-Basis kodiert werden, obwohl
nur ein BAB_Typ den zwei Halbbild BAB zugeordnet ist. Der Halbbild
BAB_Typ wird mit den halbbildkodierten Daten dem MUX 60 bereitgestellt,
wobei die halbbildkodierten Daten, wenn welche vorhanden sind, zwei
kodierte MVDs aufweisen und/oder die Intra/Inter-CAE-Daten der zwei
Halbbild BAB. Details des Kodierschemas der Halbbild-Kodierschaltung 50 werden
unter Bezugnahme auf Tabelle 2 beschrieben.
-
Der
MUX 60 multiplext den BAB_Typ, den Kodier_Typ und/oder
die vollbildkodierten (rahmenkodierten) oder die halbbildkodierten
(feldkodierten) Daten, um die kodierten Daten für den aktuellen Vollbild BAB dem Überträger für die Übertragung
derselbigen bereitzustellen. Wenn der BAB_Typ als "2" oder "3" bei
der Vollbild-Erkennungsschaltung 10 festgestellt wurde,
werden die kodierten Daten nur durch den BAB_Typ gestellt. Wenn
der BAB_Typ "0" ist, weisen die
kodierten Daten einen Kodier_Typ und den BAB_Typ auf. Wenn der BAB_Typ "1", "4", "5" oder "6" ist,
weisen die kodierten Daten einen Kodier_Typ, den BAB_Typ und die vollbildkodierten
oder die halbbildkodierten Daten abhängig von dem Kodier_Typ auf.
-
-
Bezugnehmend
auf Tabelle 2 sind dort BAB_Typen veranschaulicht, die für die zwei
Halbbild BAB der Halbbild-Kodierschaltung 50 zugeordnet
sind. Ein Oben-Halbbild BAB_Typ, d.h. ein BAB_Typ des Oben-Halbbild
BAB, "Ti" und ein Unten-Halbbild
BAB_Typ, d.h. ein BAB_Typ des Unten-Halbbild BAB, "Bi" entsprechen einem
BAB_Typ "i", wie in Tabelle
1 definiert, wobei i eine Ganzzahl zwischen 0 und 6 ist.
-
Die
Halbbild-Kodierschaltung 50 untersucht den Oben- und Unten-Halbbild
BAB_Typ einzeln. Wenn die zwei Halbbild BAB_Typen als identisch
mit BAB_Typ "0", "1", "4", "5" oder "6" erkannt
werden, wird der erkannte BAB_Typ den zwei Halbbild BAB zugeordnet.
Der BAB_Typ "2" oder "3" ist nicht den zwei Halbbild BAB zugeordnet,
da der BAB_Typ "2" oder "3" auf der Vollbildbasis bei der Vollbild-Erkennungsschaltung 10 herausgeprüft wurde.
-
Wenn
einer der Halbbild BAB_Typen "0" ist und der andere "1" ist, wird der BAB_Typ "1" den zwei Halbbild BAB zugeordnet. Wenn
einer der zwei Halbbild BAB_Typen "6" ist
und der andere "5" ist, wird der BAB_Typ "6" den zwei Halbbild BAB zugeordnet. Für die übrig bleibenden
Fälle werden
beide Halbbild BAB entsprechend den BAB_Typen "4", "5" und "6" kodiert
und ein BAB_Typ, der wenigstens eine Anzahl von kodierten Bits erreicht,
wird als der BAB_Typ der zwei Halbbild BAB zugeordnet.
-
In
der herkömmlichen
Vollbild-Halbbild-Anpassungskodiertechnik,
wie oben beschrieben, weisen, wenn ein BAB_Typ "2" oder "3" ist, kodierte Daten für den aktuellen
Vollbild BAB nur den BAB_Typ auf. Wenn der BAB_Typ als von zwei "2" oder "3" verschieden
erkannt wird, wird der aktuelle Vollbild BAB durch einen BAB_Typ
und einen Kodier_Typ zusammen mit vollbildkodierten oder halbbildkodierten
Daten dargestellt, wenn welche vorhanden sind. Die Anpassungskodiertechnik
wurde basierend auf der Tatsache entwickelt, dass die Korrelation
zwischen Halbbildern größer ist,
als die zwischen Vollbildern und auf der Annahme, dass zwei BAB_Typen
des Oben- und Unten-Halbbild BAB einander identisch sind. Durch
Ausführung
der oben beschriebenen Formkodierung können extra Bits für einige
BAB bei der einzelnen Darstellung des Kodier_Typ und der Kodierung
der zwei Halbbild BAB unter Verwendung eines einzelnen BAB_Typen
benötigt
werden. Es soll festgehalten werden, dass der optimale Fall wäre, zwei
Halbbild BAB einzeln basierend auf deren eigenen Halbbild BAB_Typen
zu kodieren, die voneinander unterschiedlich sein können. Solche
Vorkommnisse werden allerdings als selten erachtet, da die Wahrscheinlichkeit,
dass die zwei Halbbild BAB einen identischen BAB_Typ teilen, in
der Zeilensprung-Form-Information
eines Videosignals hoch wäre.
Diese Extrabits können mit
Bits ausgeglichen werden, die durch Zuweisung nur eines BAB_Typ
für alle
zwei Halbbild BAB eingespart werden, und es kann eine erweiterte
Kodiereffizienz erreicht werden.
-
Allerdings
bleibt es weiterhin wünschenswert,
obwohl die oben genannte Anpassungskodiertechnik in der Lage ist,
die Kodiereffizienz zu verbessern, das Volumen der Übertragungsdaten
weiter zu reduzieren. Wenn zum Beispiel ein BAB_Typ als "6" für
zwei Halbbild BAB mit Halbbild BAB_Typen "0" und "6" festgestellt wurde, würde ein
beträchtlicher
Verlust an Bits auftauchen, da ein Halbbild BAB mit BAB_Typ "0", der nur durch den BAB_Typ "0" kodiert werden konnte, MVDs und Inter-CAE-Daten
für seine
Darstellung benötigen
wird.
-
Kurzfassung
der Erfindung
-
Es
ist daher eine hauptsächliche
Aufgabe der vorliegenden Erfindung, ein Verfahren und eine Vorrichtung
bereitzustellen, die in der Lage sind, das Volumen von Transmissionsdaten
durch Verändern
eines BAB Typ von Zeilensprung-Form-Information zu reduzieren.
-
Es
ist eine weitere Aufgabe der vorliegenden Erfindung, ein Verfahren
und eine Vorrichtung bereitzustellen, um das Volumen von Transmissiondaten
durch einzelnes Aussortieren der BAB weiter zu reduzieren, die nur
durch den BAB_Typ beschrieben sind.
-
Gemäß der vorliegenden
Erfindung wird ein Verfahren zum Kodieren eines Zielblockes eines
Zeilensprung-Formsignals bereitgestellt, wobei das Zeilensprung-Formsignal
mehrere Bilder umfaßt,
jedes Bild in eine Vielzahl von Blöcken von M × N Pixeln, die einen ersten
oder einen zweiten binären
Wert aufweisen, aufgeteilt ist, wobei M und N jeweils positive gerade
Ganzzahlen sind, und der Zielblock entweder durch eine vollbildbasierte
(rahmenbasierte, Englisch: frame based) Kodierung, um auf Basis
von M × N
Pixeln kodiert zu werden oder durch eine halbbildbasierte (feldbasierte,
Englisch: field based) Kodierung, um auf Basis von M/2 × N Pixeln
kodiert zu werden, kodiert wird, wobei der Zielblock einen der Blöcke eines
zu kodierenden aktuellen Bilds repräsentiert, umfassend die folgenden
Schritte:
- (a) Feststellen, ob der Zielblock
nur mit einem keine_Aktualisierung-BAB_Typ kodiert wird oder nicht,
wobei der keine_Aktualisierung-BAB_Typ repräsentiert, dass der Zielblock
nur durch den BAB_Typ selbst kodiert wird, was keine zusätzlichen
kodierten Daten für
den Zielblock erfordert;
- (b) wenn der Zielblock nicht mit dem keine_Aktualisierung BAB_Typ
kodiert wird, Auswählen
entweder des vollbildbasierten (rahmenbasierten) oder des halbbildbasierten
(feldbasierten) Kodier_Typs als einen Kodier_Typ basierend auf einem
Korrelationsgrad zwischen dem Zielblock und seinen beiden Halbbildblöcken (Feldblöcken), wobei
die beiden Halbbildblöcke
(Feldblöcke)
jede ungerade bzw. jede gerade Zeile des Zielblocks enthalten, wobei
jeder Feldblock M/2 × N
Pixel aufweist, und der Kodier_Typ anzeigt, welche einer vollbildbasierten
(rahmenbasierten) und einer halbbildbasierten (feldbasierten) Kodierdisziplin
zum Kodieren des Zielblocks verwendet wird;
- (c) wenn in Schritt (b) die halbbildbasierte (feldbasierte)
Kodierung ausgewählt
wird, Feststellen, ob die beiden Halbbildblöcke (Feldblöcke) einer Ein_Halbbild(Feld)_keine_Aktualisierung
entsprechen oder nicht, wobei die Ein_Halbbild(Feld)_keine_Aktualisierung
repräsentiert,
dass wenigstens einer der beiden Halbbildblöcke (Feldblöcke) durch einen ähnlichsten
Kandidaten-Halbbildblock (Feldblock) ersetzt wird;
- (d) Wenn die beiden Halbbildblöcke (Feldblöcke) als ein BAB_Typ "1" der Ein_Halbbild(Feld)_keine_Aktualisierung
erkannt werden, Ermitteln von Oben oder Unten und BAB_Typ Halbbild(Feld),
wobei das Oben_oder_Unten anzeigt, welche der beiden Halbbildblöcke (Feldblöcke) durch den ähnlichsten
Kandidaten-Halbbildblock (Feldblock) ersetzt wird, und der BAB_Typ_Halbbild(Feld)
eine Kodierbedingung des anderen, nicht durch das Oben oder Unten
bezeichneten Halbbildblocks (Feldblocks) repräsentiert; und
- (e) Multiplexen des keine_Daten-BAB_Typs, des Kodier_Typs, des
BAB_Typs, des Oben_oder_Unten und/oder des BAB_Typ Halbbilds(Felds).
-
Kurzbeschreibung
der Zeichnungen
-
Die
obigen und andere Aufgaben und Merkmale der vorliegenden Erfindung
werden durch die folgende Beschreibung bevorzugter Ausführungsbeispiele
unter Bezugnahme auf die beigefügten
Zeichnungen offensichtlich, in welchen:
-
1 eine
herkömmliche
Vorrichtung zum Kodieren der Zeilensprung-Forminformation auf einer
binären
Alphablock(BAB)-Basis veranschaulicht;
-
2 ein
schematisches Blockdiagramm einer Vorrichtung zum Kodieren der Zeilensprung-Forminformation auf
einer BAB-Basis gemäß dem bevorzugten
Ausführungsbeispiel
der vorliegenden Erfindung zeigt;
-
3 ein
detailliertes Blockdiagramm einer Ein_Halbbild_keine_Aktualisierung
Kodierschaltung, wie in 2 gezeigt, darstellt; und
-
4A und 4B ein
Flußdiagramm
darstellen, die den BAB_Typ Kodieralgorithmus für einen BAB gemäß der vorliegenden
Erfindung betreffen.
-
Beschreibung
der bevorzugten Ausführungsbeispiele
-
Bezugnehmend
auf 2 ist dort eine Vorrichtung zum Anpassen der Kodierung
von Zeilensprung-Forminformation einer aktuellen VOP gemäß dem bevorzugten
Ausführungsbeispiel
der vorliegenden Erfindung veranschaulicht, wobei die Zeilensprung-Forminformation
in der Form einer binären
Alphaebene ist. Die binäre
Alphaebene ist in mehrere Vollbild BAB unterteilt und umrandete
Vollbild BAB, die nacheinander einer keine_Aktualisierung BAB_Typ
Entscheidungsschaltung 110, einer Bewegungsabschätzungsschaltung 170 und
einem Vollbildspeicher 175 bereitgestellt werden. Ein umrandeter
Vollbild BAB weist einen Vollbild BAB und Randpixel benachbart zu
dem Vollbild BAB auf, wobei die Randpixel oben und unten Randpixel
an einem oberen und einem unteren Rand darstellen mit einer Breite
gleich beispielsweise 4 Pixel oberhalb bzw. unterhalb des Vollbild
BAB, und linke und rechte Randpixel an einem linken und rechten
Rand mit einer Breite gleich beispielsweise 2 Pixeln links bzw.
rechts des Vollbild BAB. Die rechten Randpixel des umrandeten Vollbild
BAB können,
basierend auf den äußersten
rechten Pixeln des Vollbild BAB, ausgefüllt sein. Die Randpixel können verwendet
werden, um einen Zusammenhang eines Pixel in dem Vollbild BAB für sowohl
die Intra-CAE und die Inter-CAE herzustellen.
-
Die
Bewegungsabschätzungsschaltung 170 führt eine
Bewegungsabschätzung
eines aktuellen Vollbild BAB, der in einem aktuellen umrandeten
Vollbild BAB enthalten ist, auf einer Vollbildbasis durch bzgl.
mehrerer Kandidaten-Vollbild-BAB
innerhalb einer binären
Alphaebene einer Referenz, beispielsweise einem vorhergehenden Vollbild,
wobei das vorhergehende Vollbild aus dem Vollbildspeicher 175 bereitgestellt
wird; wählt
einen vorhergesagten Vollbild BAB des aktuellen Vollbild BAB unter
den Kandidaten-Vollbild-BAB, wobei der vorhergesagte Vollbild BAB
der ähnlichste
Kandidaten-Vollbild-BAB ist; berechnet einen Bewegungsvektorunterschied
für eine
Form (MVDs) des aktuellen Vollbild BAB; und stellt den MVDs und
einen vorhergesagte umrandeten Vollbild BAB aus dem Vollbildspeicher 175 der
keine_Aktualisierung BAB_Typ Entscheidungshaltung 110 und
einer Vollbild-Kodierschaltung 140 bereit, wobei der vorhergesagte
umrandetet Vollbild BAB den vorhergesagten Vollbild BAB und Randpixel
mit einer Breite gleich 1 um den vorhergesagten Vollbild BAB aufweist
und die Randpixel in dem vorhergesagten umrandetet Vollbild genutzt
werden können,
um einen Kontext eines Pixels in dem aktuellen Vollbild BAB für die Inter_CAE
herzustellen. Der MVDs repräsentiert
einen Unterschied zwischen einem Bewegungsvektor für eine Form
(MVs) und einem Bewegungsvektor Prädiktor für eine Form (MVPs) des aktuellen
Vollbild BAB, wobei der MVs eine Verschiebung zwischen dem aktuellen
Vollbild BAB und dem vorhergesagten Vollbild BAB repräsentiert.
-
Die
keine_Aktualisierung BAB_Typ Entscheidungsschaltung 110 untersucht,
ob oder ob nicht ein BAB_Typ des aktuellen Vollbild BAB "0", "2" oder "3" entspricht. Wenn sich das Untersuchungsergebnis
bestätigt,
wird der BAB_Typ "0", "2" oder "3" einem
Multiplexer (MUX) 160 als ein keine_Aktualisierung BAB_Typ
B bereitgestellt, wobei der BAB_Typ "0", "2" oder "3" repräsentiert,
dass der aktuelle Vollbild BAB nur als der BAB_Typ selbst kodiert
werden kann und deshalb keine zusätzlichen Daten benötigt.
-
Insbesondere
der aktuelle Vollbild BAB kann in eine Anzahl von 16 Subblöcken von
4 × 4
Pixeln unterteilt werden. Wenn alle Fehler zwischen allen Subblöcken des
BAB und eines Alle_0 Subblocks kleiner oder gleich eines vorbestimmten
Schwellwertes sind, können
alle Pixel des BAB durch Hintergrundpixel mit einem Pixelwert "0" und BAB_Typ "2",
der anzeigt "Alle_0" ist zugeteilt, repräsentiert
werden, wobei der Alle_0 Subblock ein Subblock ist, dessen binäre Pixelwerte
alle "0" sind. Auf ähnliche
Weise wird, wenn alle binären Pixel
des BAB in Objektpixel mit einem Pixelwert "255" geändert werden
können,
der BAB_Typ "3", der "Alle_255" anzeigt, zugewiesen.
Wenn der vorgegebene Schwellwert auf "0" gesetzt
ist, repräsentieren "Alle_0" und "Alle_255", dass jeder Pixel
des aktuellen Vollbild BAB der Hintergrundpixel bzw. der Objektpixel ist.
Demzufolge wird der BAB_Typ "0", der anzeigt "MVDs ist gleich Null
und keine_Aktualisierung",
zugewiesen, wenn der MVDs Null ist und alle Fehler zwischen allen
Subblöcken
des aktuellen Vollbild BAB und deren entsprechenden Subblöcken des
vorhergesagten Vollbild BAB kleiner oder gleich dem vorgegebenen
Schwellwert sind, so dass der aktuelle Vollbild BAB durch den vorhergesagten
Vollbild BAB, von der Bewegungs-Abschätzungsschaltung 170 geliefert,
ersetzt werden kann.
-
Wenn
der keine_Aktualisierung BAB_Typ B erzeugt wird, geht das BAB_Typ
Erkennungsverfahren nicht weiter, ansonsten wird der aktuelle umrandete
Vollbild BAB einer Kodier_Typ Entscheidungsschaltung 120,
der Vollbild-Kodierschaltung 140 und einem Halbbild BAB
Erzeuger 135 bereitgestellt. Die Kodier_Typ Entscheidungsschaltung 120 berechnet
Vollbild- und Halbbildkorrelationen für den aktuellen Vollbild BAB,
basierend auf Veränderungen
der binären
Pixelwerte zwischen zwei benachbarten Zeilen; stellt fest, welcher
der vollbildbasierten und halbbildbasierten Kodierung vorgezogen
werden soll, basierend auf den berechneten Vollbild- und Halbbildkorrelationen;
weist einen Kodier_Typ E "0" dem aktuellen Vollbild
BAB zu, wenn die Vollbildkorrelation kleiner gleich der Halbbildkorrelation
ist und ansonsten einen Kodier_Typ E "1";
und stellt einen Kodier_Typ E "0" oder "1" des aktuellen Vollbild BAB der Vollbild-Kodierschaltung 140,
dem Halbbild BAB Erzeuger 135 und dem MUX 160 bereit,
wobei der Kodier_Typ E "0" und "1" anzeigt, dass der aktuelle Vollbild BAB
auf einer Vollbild- bzw. einer Halbbildbasis kodiert wurde.
-
Die
Vollbild-Kodierschaltung 140 wird aktiviert, wenn der Kodier_Typ
E "0" ist und stellt einen
der BAB_Typen "1", "4", "5" und "6" als einen BAB_Typ des aktuellen Vollbild
BAB fest, basierend auf dem aktuellen umrandeten Vollbild BAB von
der Kodier_Typ Entscheidungsschaltung 120 und der MVDs
und dem vorhergesagten Randvollbild BAB von der Bewegungsabschätzungsschaltung 170.
Die Vollbild-Kodierschaltung 140 versorgt
die MUX 160 mit dem festgestellten BAB_Typ und den vollbildkodierten
Daten, wobei die vollbildkodierten Daten Daten des aktuellen Vollbild
BAB basierend auf der Vollbildbasis repräsentieren. Die vollbildkodierten
Daten weisen kodierten MVDs auf, wenn der BAB_Typ "1" ist; Intra-CAE-Daten, wenn der BAB_Typ "4" ist; Inter-CAE-Daten, wenn der BAB_Typ "5" ist; und kodierten MVDs und Inter-CAE-Daten,
wenn der BAB_Typ "6" ist.
-
Der
Halbbild BAB Erzeuger 135 wird aktiviert, wenn der Kodier_Typ
E, der "1" entspricht, ihm
geliefert wird. Der Halbbild BAB Erzeuger 135 teilt den
aktuellen umrandeten Vollbild BAB in zwei umrandete Halbbild BAB
auf, d.h. einen umrandeten Oben- und umrandeten Unten-Halbbild BAB.
Der umrandete Oben-Halbbild BAB enthält vorzugsweise jede ungerade
Zeile des aktuellen umrandeten Vollbild BAB und weist einen Oben-Halbbild
BAB und Randpixel davon auf, wobei der Oben-Halbbild BAB aus ungeraden
Reihen des aktuellen Vollbild BAB hergestellt wird. Der umrandete
Unten-Halbbild BAB weist jede gerade Reihe des aktuellen umrandeten
Vollbild BAB auf und weist ein Unten-Halbbild BAB und Randpixel
davon auf, wobei der Unten-Halbbild BAB aus geraden Reihen des aktuellen
Vollbild BAB hergestellt wird. Der Halbbild BAB Erzeuger 135 stellt
die zwei umrandeten Halbbild BAB einer Eine_Halbbild_keine_Aktualisierung
Entscheidungsschaltung 180 und einer Halbbild-Bewegungsabschätzungsschaltung 185 bereit.
-
Die
Halbbild-Bewegungsabschätzungsschaltung 185 führt die
Bewegungsabschätzung
auf den Oben- und Unten-Halbbild BAB auf der Halbbildbasis aus.
Genauer gesagt, empfängt
die Halbbild-Bewegungsabschätzungsschaltung 185 eine
binäre
Alphaebene einer Referenz, beispielsweise eines vorhergehenden Vollbilds
aus dem Vollbildspeicher 175 und teilt die erhaltene Alphaebene
in eine Oben- und eine Unten-Alphaebene auf, wobei die Oben- und
die Unten-Alphaebenen aus ungeraden bzw. geraden Reihen der erhaltenen Alphaebene
aufgebaut sind. Bei der Bewegungsabschätzung des Oben-Halbbild BAB
wird zuerst ein Oben-Halbbild MVPs bestimmt. Der Oben-Halbbild MVPs
kann ein MVs oder ein vorher erzeugter Halbbild BAB oder Vollbild
BAB benachbart dem Oben-Halbbild BAB sein. Danach wird eine Vielzahl
von Kandidaten Halbbild BAB basierend auf dem Oben-Halbbild MVPs in
der Oben- und der Unten-Alphaebene bestimmt, wobei der Kandidaten
Halbbild BAB eine mit der eines Halbbild BAB identische Größe aufweist.
Dann wird der Oben-Halbbild BAB bzgl. dem Kandidaten Halbbild BAB
bewegungsabgeschätzt,
um einen der Kandidaten Halbbild BAB als einen vorhergesagten Oben-Halbbild
BAB zu bestimmen. Nach Festlegen des vorhergesagten Oben-Halbbild
BAB wird ein MVDs für
den Oben-Halbbild
BAB (Oben-Halbbild MVDs) berechnet, wobei der Oben-Halbbild MVDs durch
den Unterschied zwischen dem Oben-Halbbild MVPs und einem Oben-Halbbild
MVs gegeben ist, wobei der Oben-Halbbild MVs die Verschiebung zwischen
dem Oben-Halbbild
BAB und dem vorhergesagten Oben-Halbbild BAB repräsentiert.
Ausgaben für
den Oben-Halbbild BAB von der Halbbild-Bewegungsabschätzungsschaltung 185 sind
eine Oben-Halbbild
Markierung, die die Oben- oder Unten-Alphaebene repräsentiert,
bei welcher der vorhergesagte Oben-Halbbild BAB angeordnet ist,
der Oben-Halbbild MVDs und ein vorhergesagter umrandeter Oben-Halbbild
BAB, der aus dem Vollbildspeicher 175 erhalten wurde, wobei
der vorhergesagte umrandete Oben-Halbbild BAB den vorhergesagten
Oben-Halbbild BAB und Randpixel mit einer Breite gleich 1 in dem
vorhergesagten Oben-Halbbild BAB aufweist. Der Unten-Halbbild BAB
wird auf eine ähnliche
Art und Weise, wie oben beschrieben, bewegungsabgeschätzt und eine
Unten-Halbbild Markierung, ein Unten-Halbbild MVDs und ein vorhergesagter
umrandeter Unten-Halbbild BAB mit einem vorhergesagten Unten-Halbbild BAB und
seinen entsprechenden Randpixeln werden dem Unten-Halbbild BAB bereitgestellt.
Ausgaben der Halbbild- Bewegungsabschätzungsschaltung 185 werden
an die Eine_Halbbild_keine_Aktualisierung Entscheidungsschaltung 180 geleitet.
Für Details
der Bewegungsabschätzung
eines Vollbild BAB und eines Halbbild BAB siehe beispielsweise MPEG-4-Supra.
Es soll festgehalten werden, dass die Bewegungsabschätzung in
einer von der oben beschriebenen abweichenden Art und Weise vorgenommen
werden kann.
-
Die
Eine_Halbbild_keine_Aktualisierung Entscheidungsschaltung 180 entscheidet,
ob oder ob nicht einer der zwei Halbbild BAB dem BAB_Typ "0" oder "1" entspricht;
und stellt ein Schaltsignal und Halbbilddaten an einem Schalter 190 bereit,
wobei das Schaltsignal anzeigt, ob oder ob nicht wenigstens einer
der zwei Halbbild BAB durch seinen entsprechenden vorhergesagten
Halbbild BAB ersetzt werden kann, unabhängig von einem Wert des entsprechenden
MVDs, und die Halbbilddaten weisen den umrandeten Oben- und Unten-Halbbild
BAB des Halbbild BAB Erzeugers 135 und Ausgaben der Halbbild-Bewegungsabschätzungsschaltung 185 auf.
Insbesondere überprüft die Eine_Halbbild_keine_Aktualisierung
Entscheidungsschaltung 180, ob oder ob nicht ein Fehler
zwischen dem Oben- oder dem Unten-Halbbild BAB und seinem entsprechenden
vorhergesagten Halbbild BAB kleiner oder gleich einem vorgegebenen
Schwellenwert ist, so dass der Oben- oder der Unten-Halbbild BAB
durch seinen entsprechenden vorhergesagten Halbbild BAB ersetzt
werden kann.
-
An
dem Schalter werden die Halbbilddaten für die zwei Halbbild BAB basierend
auf dem Schaltersignal geschaltet. Insbesondere repräsentiert
das Schaltsignal, dass der Oben- oder
der Unten-Halbbild BAB durch seinen entsprechend vorhergesagten
Halbbild BAB ersetzt werden kann, wobei die Halbbilddaten einer Eine_Halbbild_keine_Aktualisierung
Kodierschaltung 200 bereitgestellt werden. Ansonsten werden
die Halbbilddaten einer Halbbild-Kodierschaltung 150 bereitgestellt.
-
Die
Eine_Halbbild_keine_Aktualisierung Kodierschaltung 200 kodiert
die zwei Halbbild BAB basierend auf einem erfinderischen Schema
der vorliegenden Erfindung. Bezugnehmend auf 3 ist dort
ein detailliertes Blockdiagramm der Eine_Halbbild_keine_Aktualisierung
Kodierschaltung 200 in Übereinstimmung
mit dem bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung veranschaulicht, wobei die Halbbilddaten einer
Oben_oder_Unten Entscheidungsschaltung 210 und einer Halbbild
Entscheidungsschaltung 220 bereitgestellt werden.
-
Zu
allererst bestimmt die Oben_oder_Unten Entscheidungsschaltung 210,
ob alle Halbbild BAB dem BAB_Typ "0" oder "1" als ein Halbbild_keine_Aktualisierung
entsprechen und stellt ein Oben_oder_Unten (T/B) "0" oder "1" der
Halbbild Erkennungsschaltung 220 und dem MUX 160 bereit,
wobei T/B "0" und "1" anzeigen, dass der Unten- und der Oben-Halbbild BAB entsprechend
dem Halbbild_keine_Aktualisierung entsprechen. Wenn alle zwei Halbbild
BAB dem BAB_Typ "0" oder "1" entsprechen, kann der Oben-Halbbild
BAB vorzugsweise als Halbbild_keine_Aktualisierung bezeichnet werden.
Die Oben_oder_Unten Erkennungsschaltung 210 kodiert den
MVDs des festgestellten Halbbild_keine_Aktualisierung sogar dann,
wenn der Wert davon Null ist und überträgt den kodierten MVDs an den
MUX 160. Es soll festgehalten werden, dass sogar, wenn
ein BAB, der als ein Halbbild_keine_Aktualisierung erkannt wurde,
von dem BAB_Typ "0" ist, ihm der BAB_Typ "1" zugeordnet wird und der MVDs davon
mit dem Wert 0 ebenfalls gemäß der vorliegenden
Erfindung kodiert wird, wobei ein BAB des BAB_Typ "0" nur durch den BAB_Typ ohne Kodierung
des MVDs davon in dem herkömmlichen
Kodierschema repräsentiert
wird.
-
Die
Halbbild Erkennungsschaltung 220 findet den anderen Halbbild
BAB, welcher nicht durch Oben_oder_Unten angezeigt wird, und bestimmt,
ob ein BAB_Typ_Halbbild, d.h. BAB_Typ des anderen Halbbild BAB dem "keine_Aktualisierung" entspricht (d.h.
BAB_Typ "0" oder "1"), "Alle_0" (d.h. BAB_Typ "2") oder "Alle_255" (d.h. BAB_Typ "3")
basierend auf den Halbbilddaten. Wenn der BAB_Typ_Halbbild "keine_Aktualisierung", "Alle_0" oder "Alle_255" ist, wird ein Anzeigesignal
S2 davon, welches anzeigt, dass ein anderer
Halbbild BAB als "keine_Aktualisierung", "Alle_0" oder "Alle_255" festgelegt ist,
einer BAB_Typ_Halbbild Erkennungsschaltung 260 bereitgestellt.
Die Halbbild Erkennungsschaltung 220 stellt ebenfalls ein
MVDs_Halbbild, d.h. der MVDs des anderen Halbbild BAB, einer MVD
Kodierschaltung 240 bereit, wenn der andere Halbbild BAB "keine_Aktualisierung" entspricht. Wenn
der BAB_Typ_Halbbild weder "keine_Aktualisierung", "Alle_0" noch "Alle_255" ist, wird der MVDs_Halbbild
der MVD Kodierschaltung 240 bereitgestellt und die verbleibenden
Halbbilddaten, d.h. ein umrandeter Halbbild BAB und vorhergesagter
umrandeter Halbbild BAB des anderen Halbbild BAB wird an eine Intra- oder Inter-Erkennungsschaltung 250 geleitet.
-
Die
MVD Kodierschaltung 240 versorgt die BAB_Typ_Halbbild Erkennungsschaltung 260 mit
einem MVD Signal S3, das anzeigt, ob oder
ob nicht der MVDs gleich "0" ist, und kodiert
den MVDs_Halbbild, um den kodierten MVDs_Halbbild der Intra- oder
Inter-Erkennungsschaltung 250 und dem MUX 160 bereitzustellen. Der
MVDs_Halbbild ist vorzugsweise nicht kodiert, wenn der Wert davon
Null ist.
-
Die
Intra- oder Inter-Erkennungsschaltung 250 führt die
Intra-CAE und die Inter-CAE auf dem anderen Halbbild BAB basierend
auf den verbleibenden Halbbilddaten und dem kodierten MVDs_Halbbild
aus; vergleicht die Anzahl von Bits der Intra-CAE Daten mit denen
des kodierten MVDs_Halbbild und der Inter-CAE Daten; und wählt Daten
aus, die keine größere Bit-Anzahl
als ein BAC(binärer
arithmetischer Code)_Halbbild haben. Die Intra- oder Inter-Erkennungsschaltung 250 stellt
ein Intra/Inter-Signal S4 bereit, das anzeigt,
dass der andere Halbbild BAB entweder durch die Intra-CAE oder die
Inter-CAE kodiert wurde, der BAB_Typ_Halbbild Erkennungsschaltung 260 und
den BAC_Halbbild dem MUX 160 bereit.
-
Die
BAB_Typ_Halbbild Erkennungsschaltung 260 stellt einen BAB_Typ
des anderen Halbbild BAB fest, d.h. ein BAB_Typ_Halbbild, "0", "1", "2", "3", "4", "5" oder "6" basierend auf den Signalen S2, S3 und S4 und stellt den BAB_Typ_Halbbild dem MUX 160 bereit.
Insbesondere, wenn das S2 anzeigt, dass
der andere Halbbild BAB "Alle_0" oder "Alle_255" entspricht, wird
der BAB_Typ_Halbbild als "2" oder "3" festgestellt. Wenn das S2 repräsentiert,
dass der andere Halbbild BAB "keine_Aktualisierung" entspricht und das
S3 das "MVDs_Halbbild=0" repräsentiert,
wird der BAB_Typ_Halbbild als "0" entschieden. Wenn
die S2 und S3 zeigen, dass
der andere Halbbild BAB und der MVDs_Halbbild "keine_Aktualisierung" entsprechen bzw. einem Wert, der nicht
Null ist, wird der BAB_Typ_Halbbild "1" gesetzt.
Wenn das S2 nicht weitergeleitet wird und
das S4 anzeigt, dass der BAC_Halbbild die
Intra-CAE-Daten sind, wird der BAB_Typ_Halbbild als "4" bestimmt. Wenn das S2 nicht
weitergeleitet wird, während
das S4 darstellt, dass der BAC_Halbbild
die Inter_CAE-Daten sind und das MVDs_Halbbild durch das S3 gleich Null gefunden wird, wird der BAB_Typ_Halbbild
als "5" gesetzt. Schlußendlich,
wenn das S4 den Inter-CAE-Daten entspricht
und das S3 einem MVDs_Halbbild mit nicht
Nullwerten entspricht, wird der BAB_Typ_Halbbild als "6" entschieden.
-
Zurückkommend
zu 2 stellt, wenn keiner der beiden Halbbild BAB
dem BAB_Typ "0" oder "1" entspricht, die Halbbild Kodierschaltung 150 einen
der BAB_Typen "4", "5" und "6" als
einen BAB_Typ für
beide der zwei Halbbild BAB fest, basierend auf den Halbbilddaten,
die von der Ein_Halbbild_keine_Aktualisierung Entscheidungsschaltung 180 über den
Schalter 190 bereitgestellt wurden. Beim Bestimmen des
BAB_Typs für die
zwei Halbbild BAB kann ein herkömmliches
Bit-Anzahl Vergleichschema verwendet werden, wobei die Anzahl von
Bits, die für
die Darstellung der zwei Halbbild BAB durch das Intra-CAE Schema
benötigt
werden (d.h. die Anzahl von Bits zur Darstellung des BAB_Typs "4" und der Intra-CAE-Daten für die zwei
Halbbild BAB) und die, die für
die Darstellung der zwei Halbbild BAB durch die Inter-CAE Technik
benötigt
werden (d.h. die Anzahl von Bits zur Darstellung des BAB_Typs "5" oder "6",
die Inter-CAE-Daten für
die zwei Halbbild BAB und die kodierten MVDs für die zwei Halbbild BAB, wenn
ein MVDs eines der zwei Halbbild BAB nicht Null ist) werden miteinander
verglichen; und ein BAB_Typ, der einer nicht größeren Anzahl von Bits entspricht,
wird als der BAB_Typ für
die zwei Halbbild BAB ausgewählt.
Beachte, dass der BAB_Typ "4" oder "5" als der BAB_Typ für die zwei Halbbild BAB gewählt wird,
wenn beide der zwei MVDs nullwertig sind und der BAB_Typ "4" oder "6" als
der BAB_Typ für
die zwei Halbbild BAB festgestellt wird, wenn wenigstens einer der
zwei MVDs einen Nicht-Nullwert aufweist. Das heißt, wenn ein MVDs Null ist
und der andere einen Nicht-Nullwert aufweist, und der BAB_Typ als "6" festgestellt wird, werden beide MVDs
kodiert. Die Halbbild Kodierschaltung 150 stellt den kodierten
BAB_Typ "4", "5" oder "6" und
Intra_CAE oder Inter_CAE Daten als ein BAC dem MUX 160 bereit. Die
kodierten MVDs werden von der Halbbild Kodierschaltung 150 zu
dem MUX 160 geleitet, wenn der BAB_Typ "6" ist.
-
Der
MUX 160 multiplext den Keine_Aktualisierung BAB_Typ B,
den Kodiertyp E und die kodierten Daten von der Vollbild Kodierschaltung 140,
der Ein_Halbbild_keine_Aktualisierung Kodierschaltung 200 und
der Halbbild Kodierschaltung 150, um multigeplexte Daten
für das
aktuelle Vollbild BAB einem Überträger (nicht gezeigt)
zur Übertragung
derselben bereitzustellen. Details des Multiplexingschemas werden
unter Bezugnahme auf die Bitstromsyntax, wie in Tabelle 3 gezeigt,
beschrieben.
-
Bezugnehmend
auf Tabelle 3, ist dort eine beispielhafte Bitstromsyntax gemäß der vorliegenden
Erfindung gezeigt.
-
-
-
Der
1 Bit Kodier_Typ "0" zeigt an, dass die
zwei Halbbild BAB als eine Einheit kodiert sind, d.h. auf einer
Vollbildbasis, während
der Kodier_Typ "1" anzeigt, dass die
zwei Halbbild BAB einzeln kodiert wurden, d.h. auf einer Halbbildbasis.
-
Der
BAB_Typ ist ein veränderbarer
Längencode,
beispielsweise zwischen 1 und 6 Bits. Wenn der BAB_Typ "0", "2" oder "3" entspricht, das voraussetzt, dass der
aktuelle Vollbild BAB auf der Vollbildbasis kodiert ist, folgt der
Kodier_Typ. Wenn der BAB_Typ "1", "4", "5" oder "6" ist, folgt der Kodier_Typ danach.
-
Der
1 Bit Oben_oder_Unten "0" zeigt an, dass der
Unten-Halbbild BAB
dem Halbbild Keine_Aktualisierung entspricht, während der Oben_oder_Unten "1" anzeigt, dass der Oben-Halbbild BAB dem
Halbbild Keine_Aktualisierung entspricht.
-
Der
BAB_Typ_Halbbild "0", "1", "2", "3", "4", "5" oder "6" repräsentiert
den BAB_Typ des anderen Halbbild BAB, welcher nicht durch den Oben_oder_Unten
angezeigt wird.
-
Die
MVDs_x/MVDs_y mit dem Kodier_Typ "0" repräsentieren
horizontale/vertikale Komponenten des MVDs für den Vollbild BAB, während die
MVDs_x/MVDs_y mit dem Kodier_Typ "1" horizontale/vertikale
Komponenten des Halbbild MVDs für
ein Halbbild BAB, wie in Tabelle 4 gezeigt ist, repräsentieren.
-
-
Der
BAC sind die Vollbild kodierten Daten, die durch die Infra-CAE oder
Inter-CAE erzeugt wurden, wenn der Kodier_Typ "0" ist.
-
Der
BAC_Halbbild sind halbbildkodierte Daten für die zwei Halbbild BAB, die
durch Intra-CAE oder Inter-CAE erzeugt werden, wenn der BAB_Typ "4", "5" oder "6" ist und der Kodier_Typ "1" ist. Der BAB_Halbbild sind halbbildkodierte
Daten für
den anderen Halbbild BAB, der durch Intra_CAE oder Inter-CAC erzeugt
werden, wenn der BAB_Typ "1" ist, der Kodier_Typ "1" ist und der BAB_Typ_Halbbild "4", "5" oder "6" ist.
-
Der
MVDs_x_unten/MVDs_y_unten repräsentiert
die horizontale/vertikale Komponente des Halbbild MVDs für den Unten-Halbbild
BAB. Der MVDs_x_Halbbild/MVDs_y_Halbbild repräsentiert die horizontale/vertikale
Komponente des Halbbild MVDs für
den anderen Halbbild BAB, der nicht durch Oben_oder_Unten angezeigt
wird, wobei, wenn der Oben_oder_Unten "1" ist,
der andere Halbbild BAB anzeigt, dass der Unten-Halbbild BAB des
BAB ist, während,
wenn der Oben_oder_Unten "0" ist, der andere
Halbbild BAB den Oben-Halbbild
BAB davon zeigt.
-
Bezugnehmend
auf Tabelle 5 sind dort beispielhaft vier Anzahlen von BAB_Typen,
die zwei Halbbild BAB zugeordnet sind, für den Fall veranschaulicht,
dass der aktuelle Halbbild BAB auf einer Halbbild-nach-Halbbildbasis
kodiert ist, wobei ein Oben- und ein Unten-Halbbild BAB_Typ "Ti" und "Bi" einem herkömmlichen
BAB_Typ "i" entsprechen, wobei
i eine Ganzzahl zwischen 0 und 6 ist. Es gibt keine anderen BAB_Typen "0", "2" und "3", die beiden Halbbild BAB zugeordnet
sind, da "MVDs=0
und Keine_Aktualisierung", "Alle_0" und "Alle_255" bereits auf der
Vollbildbasis herausgeprüft
in der Keine_Aktualisierung BAB_Typ Entscheidungsschaltung 110 wurden.
-
-
Bezugnehmend
auf 4A und 4C ist dort
ein Flußdiagramm
betreffend den BAB_Typ Kodieralgorithmus der Zeilensprung-Forminformation auf
einer BAB-Basis gemäß der vorliegenden
Erfindung veranschaulicht.
-
Bei
Schritt S11 wird, durch Durchführen
der Bewegungsabschätzung
eines aktuellen Vollbild BAB in einem aktuellen umrandeten Vollbild
BAB auf einer Vollbildbasis bzgl. mehreren Kandidaten Vollbild BAB
innerhalb einer binären
Alphaebene einer Referenz, beispielsweise eines vorhergehenden Vollbilds,
ein vorhergesagter Vollbild BAB des aktuellen Vollbild BAB ausgewählt und
der MVDs des aktuellen Vollbild BAB berechnet.
-
Bei
Schritt S13 wird der Keine_Aktualisierung BAB_Typ basierend auf
dem aktuellen Vollbild BAB entschieden (bestimmt). Genauer gesagt,
wird untersucht, ob alle Pixel innerhalb des aktuellen BAB durch
alle 0 oder alle 255 ersetzt werden können, so dass nur der BAB_Typ "2" oder "3" den
BAB selbst repräsentiert
und, wenn nicht, wird weiterhin festgestellt, dass der MVDs des
aktuellen Vollbild BAB 0 ist und der BAB durch einen vorhergesagten
Vollbild BAB ersetzt wird, beispielsweise durch den ähnlichsten
Kandidaten BAB, so dass nur der BAB_Typ "0" den
aktuellen Vollbild BAB selbst repräsentieren kann. Wenn der aktuelle
Vollbild BAB durch den Keine_Aktualisierung BAB_Typ "2", "3" oder "0" repräsentiert wird, d.h. "Alle_0", "Alle_255" oder "MVDs=0 und Keine_Aktualisierung", wird bei Schritt
S14 der Keine_Aktualisierung BAB_Typ des aktuellen Vollbild BAB kodiert
und es wird kein weiterer Kodieralgorithmus ausgeführt.
-
Wenn
andererseits bei Schritt S16 die Vollbild- und die Halbbildkorrelation
des aktuellen Vollbild BAB basierend auf den Veränderungen der binären Pixelwerte
von allen zwei benachbarten Zeilen davon und allen zwei benachbarten
ungeraden bzw. geraden Zeilen davon berechnet werden, so dass festgestellt
wird, ob oder ob nicht die Vollbildkorrelation des aktuellen Vollbild
BAB größer als
die Halbbildkorrelation davon ist. Wenn das vollbildbasierte Kodieren
gegenüber
dem halbbildbasierten Kodieren als bevorzugt bestimmt wird, so dass der
Kodier_Typ "Vollbild_Basis" ist, d.h. "0" bei Schritt S17, wird einer der BAB_Typen "1", "4", "5" und "6" als ein
BAB_Typ des aktuellen Vollbild_BAB bestimmt, wobei die BAB_Typen "1", "4", "5", "6" repräsentieren,
dass der aktuelle Vollbild BAB bevorzugter Weise mit "MVDs≠0 und Keine_Aktualisierung" kodiert wird, bzw. "Intra CAE", "MVDs=0 und Inter_CAE" und "MVDs≠0 und Inter
CAE". Bei Schritt
S18 werden der BAB_Typ "1", "4", "5" oder "6" und der Kodier_Typ "0" kodiert;
und dann werden bei Schritt S19 vollbildkodierte Daten des aktuellen
Vollbild BAB gemäß dem BAB_Typ "1", "4", "5" und "6" gemultiplext
und das Verfahren endet, wobei die vollbildkodierten Daten den kodierten
MVDs und/oder den BAC aufweisen, d.h. die Intra/Inter-CAE-Daten,
die durch die Intra/Inter-CAE-Technik erzeugt wurden.
-
In
der Zwischenzeit, wenn bei Schritt S16 herausgefunden wird, dass
das halbbildbasierte Kodieren gegenüber dem vollbildbasieren Kodieren
in Reaktion auf den Kodier_Typ "1" bevorzugt ist, wird
dann bei Schritt S21 bestimmt, ob oder ob nicht die zwei Halbbild
BAB des aktuellen Vollbild BAB dem Ein_Halbbild_keine_Aktualisierung
entsprechen. Mit anderen Worten wird untersucht, ob ein Oben- oder
ein Unten-Halbbild BAB durch einen entsprechenden vorhergesagten
Halbbild BAB ersetzt werden kann. Wenn die zwei Halbbild BAB nicht
zu dem Ein_Halbbild_keine_Aktualisierung passen, wird dann bei Schritt
S22 der BAB_Typ "4", "5" oder "6" der
zwei Halbbild BAB basierend auf dem Bitanzahl-Vergleichschema entschieden, welches
die Anzahl der Bits, die für
die Darstellung der zwei Halbbild BAB durch das Intra-CAC Schema
benötigt
werden, mit der vergleicht, die für die Darstellung der zwei
Halbbild BAB durch das Inter-CAE Schema benötigt werden; bei Schritt S23
werden der Halbbild BAB_Typ "4", "5", oder "6" und
der Kodier_Typ "1", der das halbbildbasierte
Kodieren anzeigt, kodiert; und bei Schritt S24 werden die zwei Halbbild
BAB einer nach dem anderen durch die Intra/Inter-CAE Disziplin dafür kodiert,
so dass die halbbildkodierten Daten zwei MVDs für die zwei Halbbild BAB aufweisen,
wenn welche vorhanden sind, und/oder die Intra/Inter-CAE Daten werden erzeugt
und das Verfahren endet dann.
-
Wenn
die zwei Halbbild BAB zu dem Ein_Halbbild_keine_Aktualisierung bei
Schritt S21 passen, so dass die zwei Halbbild BAB dem Halbbild BAB_Typ "1" entsprechen, wird bei Schritt S25 festgestellt,
dass entweder der Oben- oder der Unten-Halbbild BAB dem Halbbild_keine_Aktualisierung
entspricht, so dass der Oben_oder_Unten T/B "0" oder "1" erzeugt werden kann, und dann der BAB_Typ_Halbbild,
d.h. der BAB_Typ des anderen Halbbild BAB, der nicht durch den Oben_oder_Unten
angezeigt wird, wird bestimmt, wobei die BAB_Typ_Halbbild "0", "1", "2", "3", "4", "5" und "6" repräsentieren, dass die anderen
entsprechenden Halbbild BAB dem "MVDs_Halbbild=0
und Halbbild_keine_Aktualisierung", "MVDs_Halbbild≠0 und Halbbild_keine_Aktualisierung", "Alle_0", "Alle_255", "Intra_CAE", "MVDs_Halbbild=0 und
Inter_CAE" und "MVDs_Halbbild≠0 und Inter_CAE" entsprechen. Bei
Schritt S26 werden der BAB_Typ "1", der Kodier_Typ "1", der Oben_oder_Unten "0" oder "1" und
der BAB_Typ_Halbbild "0", "1", "2", "3", "4", "5" oder "6" nacheinander kodiert.
Bei Schritt S27 werden halbbildkodierte Daten des anderen Halbbild
BAB gemultiplext und dann endet das Verfahren, wobei die halbbildkodierten
Daten des anderen Halbbild BAB den MVDs_Halbbild aufweisen, wenn
er vorhanden ist, und/oder die Intra/Inter-CAE-Daten des anderen
Halbbild BAB.
-
Nachdem
die vorliegende Erfindung nur unter Bezugnahme auf ein bestimmtes
bevorzugtes Ausführungsbeispiel
beschrieben wurde, können
weitere Veränderungen
oder Variationen ausgeführt
werden, ohne den Schutzbereich der vorliegenden Erfindung, wie er
in den nachfolgenden Patentansprüchen
festgelegt ist, zu verlassen.