-
Die
vorliegende Erfindung bezieht sich auf ein Verfahren und eine Vorrichtung
für das
Kodieren einer Kontur eines in einem Videosignal ausgedrückten Objekts;
und insbesondere auf ein Verfahren und eine Vorrichtung, die dazu
fähig sind,
die Kontur durch die Verwendung eines adaptiven Kodierungsschemas
zu kodieren, das eine auf Oktanten basierende Scheitelkodierungstechnik
und eine Kettenkodierungstechnik anwendet.
-
In
digitalen Fernsehübertragungssystemen, wie
z.B. Videotelefon-, Fernsprechkonferenz- und Hochauflösungsfernsehsystemen,
wird eine große Menge
an digitalen Daten benötigt,
um jedes Videorahmensignal zu definieren, da ein Videozeilensignal
des Videorahmensignals eine Folge von digitalen Daten aufweist,
die als Pixelwerte bezeichnet werden. Da jedoch die verfügbare Frequenzbandbreite eines
herkömmlichen Übertragungskanals
beschränkt
ist, ist es für
die Übertragung
der großen Menge
an digitalen Daten darüber
notwendig, das Datenvolumen durch die Verwendung verschiedener Datenkompressionstechniken
zu komprimieren oder zu reduzieren, besonders im Fall von solchen
Kodierern für
Videosignale mit niedriger Bitrate wie in Videotelefon- und Fernsprechkonferenzsystemen.
-
Eine
solche Technik für
das Kodieren von Videosignalen für
ein Kodierungssystem mit niedriger Bitrate ist die so genannte objektorientierte
Analysesynthesekodierungstechnik, wobei ein Eingangsvideobild in
Objekte unterteilt wird und drei Sätze von Parametern für das Definieren
der Bewegung, der Kontur und der Pixeldaten von jedem Objekt durch
verschiedene Kodierungskanäle
verarbeitet werden.
-
Beim
Verarbeiten einer Kontur eines in einem Videosignal ausgedrückten Objekts
ist Konturinformation, die Positionen von Konturpixeln darstellt, die
die Kontur bilden, wichtig für
die Analyse und die Synthese der Form des Objekts. Ein klassisches
Kodierungsverfahren, das für
die Darstellung der Konturinformation verwendet wird, ist eine Kettenkodierungstechnik.
Die Kettenkodie rungstechnik erfordert jedoch eine erhebliche Menge
an Bits für
das Darstellen der Konturinformation, auch wenn die Technik keinerlei
Verlust in der Konturinformation erfährt.
-
Um
den Nachteil der Kettenkodierungstechnik zu überwinden, wurden deshalb mehrere
Verfahren für
die Kodierung der Konturinformation vorgeschlagen, wie z.B. polygonale
Annäherungs-,
B-Spline-Annäherungs-
und DST(diskrete Sinustransformation)-Technik kombiniert mit einer
polygonalen Annäherungstechnik.
In solchen Annäherungstechniken
wird die Kontur durch Linien- oder Kurvensegmente angenähert, wobei
jedes der Segmente ein Paar benachbarte Scheitel auf der Kontur
verbindet, und werden die Scheitel auf der Basis z.B. der so genannten
lokal-adaptiven auf Oktanten basierenden Scheitelkodierungstechnik
kodiert (siehe z.B. International Organisation for Standardisation,
Coding of Moving Pictures and Audio Information, ISO/IEC JTCI/SC29/WG11,
Shape Coding AHG, 30. Juli 1996, mit dem Titel "Revised Description of S4a: Geometrical
Representation Method" von
K. O'Connell, P.
Gerken und J. H. Kim).
-
International
Organization for Standardization, Coding of Moving Pictures and
Associated Audio, ISO/IEC JTC/SC29/WG11, MPEG 95/0447, November
1995 mit dem Titel „Motorola
MPEG-4 Contour-Coding tool Technical Description" von O'Connell und D. Tull offenbart ein Verfahren
für das Kodieren
eines Videosignals einer Kontur eines Objekts auf der Basis einer
Technik wiederholter Verfeinerung, wobei eine Mehrzahl von Scheiteln
auf der Kontur mit Konturpixeln darin bestimmt wird und jedes von
zwei benachbarten Scheiteln auf der Kontur definierte Kontursegment
durch ein Liniensegment angenähert
wird, das zwei benachbarte Scheitel verbindet, und wobei die Scheitel
kodiert werden.
-
Mit
Bezug auf 1 ist ein schematisches Blockdiagramm
einer herkömmlichen
Vorrichtung für das
Kodieren von Scheiteln einer Kontur eines Objekts in einem Videosignal
durch das Verwenden der auf Oktanten basierenden Scheitelkodierungstechnik gezeigt.
-
Eine
binäre
Maske wird in einen Konturextraktionsblock 10 eingegeben,
wobei jedes der Pixel in der binären
Maske von einem der binären
Werte, d.h. 0 oder 1, dargestellt wird, abhängig davon, ob sich ein Pixel
entweder in einem Objekt oder in einem Hintergrundbereich befindet.
-
Der
Konturextraktionsblock 10 extrahiert eine Kontur des Objekts
aus der binären
Maske und liefert ein Bild der Kontur an einen Scheitelauswahlblock 20.
Die Kontur ist aus Konturpixeln gemacht, wobei jedes Konturpixel
ein an der Grenze des Objekts positioniertes Objektpixel ist.
-
Der
Scheitelauswahlblock 20 wählt eine Mehrzahl von Scheiteln
durch das Verwenden einer herkömmlichen
Technik wiederholter Verfeinerung, z.B. einer polygonalen Annäherungstechnik,
aus, wobei ein Paar durch einen Maximalabstand getrennte Konturpixel
zuerst als Anfangsscheitel bestimmt wird und zusätzliche Konturpixel eins nach dem
anderen als ein anderer Scheitel ausgewählt werden, bis ein größter rechtwinkliger
Abstand Dmax von einem Liniensegment, das
ein Paar benachbarte Scheitel zu einem durch das Paar benachbarte Scheitel
definierten Kontursegment verbindet, einen voreingestellten Schwellenwert
Dmax nicht übersteigt. Die Scheitel werden
an einem Scheitelkodierungsblock 30 kodiert.
-
In
einer solchen herkömmlichen
Vorrichtung für
das Kodieren von Scheiteln ist es, da ein größerer vorherbestimmter Schwellenwert
Dmax eine grobe Darstellung der Kontur mit
einer kleineren Anzahl von Scheiteln bewirkt, vorzuziehen, dass
der Schwellenwert Dmax für eine sinnvolle Annäherung so
klein wie möglich
ist. Jedoch nimmt, wenn der Schwellenwert zu klein wird, z.B. Dmax kleiner als oder gleich einer Hälfte des
Pixel-zu-Pixel-Abstands ist, die Anzahl von durch die Technik wiederholter
Verfeinerung bestimmten Scheiteln schnell bis zu einem Ausmaß zu, dass
es vorzuziehen sein kann, die Kontur durch die Verwendung der herkömmlichen
Kettenkodierungstechnik zu kodieren.
-
Dennoch
werden von der herkömmlichen Kodierungsvorrichtung
nicht alle Konturen effektiv kodiert. Zum Beispiel kann eine Kontur,
die eine Mehrzahl von Linien aufweist, z.B. ein in 2A gezeigtes
Polygon, unabhängig
von der Größe des Schwellenwerts
Dmax vorzugsweise von der Technik wiederholter
Verfeinerung statt der Kettenkodierungstechnik kodiert werden, während eine
wie in 2B gezeigte hochgradig schwankende
Kontur vorzugsweise von der Kettenkodierungstechnik statt der Technik
wiederholter Verfeinerung kodiert werden kann, da die Anzahl von
Scheiteln rasch steigt.
-
Deshalb
ist, obwohl die oben genannte Technik wiederholter Verfeinerung
dazu fähig
ist, das Volumen von Übertragungsdaten
zu reduzieren, die Suche weitergegangen, um eine bessere Herangehensweise
zu finden, um das Volumen von Übertragungsdaten
weiter zu reduzieren.
-
Es
ist deshalb eine Hauptaufgabe der Erfindung, ein verbessertes Konturkodierungsverfahren und
eine verbesserte Konturkodierungsvorrichtung bereitzustellen, die
nutzbringend verwendet werden können,
um die Menge an Übertragungsdaten
durch die Verwendung eines adaptiven Kodierungsschemas, das eine
auf Oktanten basierende Scheitelkodierungstechnik und eine Kettenkodierungstechnik verwendet,
weiter zu reduzieren.
-
Gemäß der Erfindung
ist ein Verfahren für das
Kodieren eines Videosignals einer Kontur eines Objekts auf der Basis
einer Technik wiederholter Verfeinerung vorgesehen, wobei eine Mehrzahl
von Scheiteln auf der Kontur mit Konturpixeln darin bestimmt wird
und jedes durch zwei benachbarte Scheitel auf der Kontur definierte
Kontursegment durch ein Liniensegment angenähert wird, das zwei benachbarte
Scheitel verbindet, wobei das Verfahren folgende Schritte aufweist:
- (a) Berechnen einer Konturpixelbitzahl, wobei
die Konturpixelbitzahl die Anzahl von Bits darstellt, die notwendig
ist, um alle Konturpixel zu kodieren;
- (b) Schätzen
einer Scheitelbitzahl, wobei die Scheitelbitzahl die Anzahl von
Bits darstellt, die notwendig ist, um alle Scheitel auf der Kontur
zu kodieren;
- (c) Vergleichen der Konturpixelbitzahl mit der Scheitelbitzahl,
um ein Bestimmungssignal zu erzeugen, das die kleinere der zwei
Bitzahlen darstellt; und
- (d) Kodieren von Konturinformation auf der Basis des Bestimmungssignals,
um kodierte Daten zu erzeugen, wobei die Konturinformation entweder die
Scheitel oder die Konturpixel darstellt.
-
Die
oben genannten und andere Aufgaben und Merkmale der vorliegenden
Erfindung werden aus der folgenden Beschreibung bevorzugter Ausführungsformen
in Verbindung mit den begleitenden Zeichnungen ersichtlich. Für die gilt:
-
1 zeigt
ein schematisches Blockdiagramm einer herkömmlichen Vorrichtung für das Kodieren
von Scheiteln einer Kontur eines Objekts in einem Videosignal;
-
2A und 2B zeigen
ein Polygon bzw. eine hochgradig schwankende Kontur, um einen Nachteil
der herkömmlichen
Technik wiederholter Verfeinerung zu erläutern;
-
3 stellt
ein Blockdiagramm einer Vorrichtung für das Kodieren von Eingangskonturbilddaten gemäß der vorliegenden
Erfindung dar;
-
4 legt
eine erklärende
Kontur für
die Darstellung einer Funktion des Bereichsbestimmungsblocks in 3 dar;
und
-
5 beschreibt
ein erklärendes
Diagramm für
die Darstellung der Oktantenbereiche der relativen Adressen.
-
Mit
Bezug auf 3 ist ein Blockdiagramm einer
Vorrichtung 100 für
das Kodieren von Eingangskonturbilddaten gemäß der vorliegenden Erfindung
gezeigt, wobei die Eingangskonturbilddaten Positionen von Konturpixeln,
die eine Kontur eines Objekts bilden, darstellen. Die Eingangskonturbilddaten
werden einem Scheitelbestimmungsblock 110, einem Konturpixelzähler 140 und
einem Kettenkodierungsblock 170 zugeführt. Der Kettenkodierungsblock 170 kodiert
eine Mehrzahl von Konturpixeln unter Verwendung der herkömmlichen
Kettenkodierungstechnik, um die kettenkodierten Daten an einen Auswahlblock 180 zu
liefern, wobei die herkömmliche
Kettenkodierungstechnik Verschiebungen zwischen nächsten benachbarten
Konturpixeln mittels einer auf Oktanten basierenden Scheitelkodierungstechnik
auf der Basis von Eingangskonturbilddaten kodiert.
-
In
der Zwischenzeit bestimmt der Scheitelbestimmungsblock 110 eine
Mehrzahl von Scheiteln auf der Kontur unter Verwendung der herkömmlichen Technik
wiederholter Verfeinerung. Die Scheitel sind in einer Verarbeitungsreihenfolge
auf der Kontur angeordnet und Information auf den angeordneten Scheiteln
wird eine nach der anderen an einen Anfangsscheitelauswahlblock 115 und
einen Scheitelzähler 130 geliefert.
-
Der
Scheitelzähler 130 zählt die
Anzahl der Scheitel, die der Reihe nach von dem Scheitelbestimmungsblock 110 geliefert
werden, um die Scheitelzahl N an einen Scheitelbitzahlberechnungsblock 135 und
einen Scheitelkodierungsblock 160 zu liefern, wobei N eine
positive ganze Zahl ist.
-
In
der Zwischenzeit wählt
der Anfangsscheitelauswahlblock 115 unter Verwendung einer
herkömmlichen
Scheitelneuordnungstechnik einen Anfangs- und einen Endscheitel.
In der herkömmlichen Scheitelneuordnungstechnik
werden waagerechte und senkrechte Komponenten R(x) und R(y) und
ihre Größen x_mag
und y_mag einer Verschiebung zwischen jedem Paar benachbarter Scheitel
berechnet; und zwei Scheitel, die einer größten Größe unter allen x_mag- und y_mag-Werten
entsprechen, werden als der Anfangs- und der Endscheitel, d.h. ein
erster und ein N-ter Scheitel der Kontur ausgewählt, wobei N die Gesamtanzahl
der Scheitel ist. Die N, z.B. 5, Scheitel werden dann aufeinander
folgend entlang der Kontur indexiert, angefangen mit dem ersten Scheitel
zu dem N-ten Scheitel, wie in 4 gezeigt. In 4 ist
der Wert x_mag X51, der einem Paar der Scheitel
V1 und V5 entspricht,
der größte unter
5 Paaren der von den Scheiteln V1 bis V5 erhaltenen Werte x_mag, und y_mag. Information
auf den Scheiteln wird an einen Bereichsbestimmungsblock 120 und den
Scheitelkodierungsblock 160 geliefert.
-
Wieder
mit Bezug auf 3 bestimmt der Bereichsbestimmungsblock 120 einen
Wert x_dynamic_range und einen Wert y_dynamic_range auf der Basis
der Information auf den von dem Anfangsscheitelauswahlblock 115 zugeführten Scheiteln.
Der Wert x_dynamic_range und der Wert y_dynamic_range der Kontur,
die für
die Bestimmung der für
das Kodieren der neugeordneten Scheitel notwendigen Gesamtbitzahl
entscheidend sind, stellen die jeweiligen Maximalwerte der Werte
x_mag bzw. y_mag der Verschiebungen Ri dar, wobei Ri =
Pi+1 - Pi für i = 1,
2, ..., N – 1,
wobei Pi ein Positionsvektor ist, der einem
Scheitel Vi entspricht. In 4 werden
der Wert x_mag X23 der Verschiebung R2 = P3 – P2 und der Wert y_mag Y45 der
Verschiebung R4 = P5 – P4 als der Wert x_dynamic_range bzw. der Wert y_dynamic_range
der Kontur bestimmt. Es ist vorzuziehen, die Verschiebung zwischen
dem ersten und dem N-ten Scheitel nicht zu berücksichtigen. Ein Wert x_bit_number
und ein Wert y_bit_number werden an dem Bereichsbestimmungsblock 120 berechnet
und an den Scheitelbitzahlberechnungsblock 135 und den
Scheitelkodierungsblock 160 geliefert, wobei der Wert x_bit_number
und der Wert y_bit_number die Anzahl von Bits sind, die erforderlich
sind, um den Wert x_dynamic_range bzw. den Wert y_dynamic_range
zu kodieren.
-
Der
Scheitelkodierungsblock 160 kodiert der Reihe nach die
von dem Anfangsscheitelauswahlblock 115 zugeführten Scheitel
auf der Basis des Werts x_bit_number und des Werts y_bit_number, die
von dem Bereichsbestimmungsblock 120 zugeführt werden.
Die Gesamtzahl von Scheiteln, d.h. N, der Wert x_bit_number, der
Wert y_bit_number und die absolute Position des ersten Scheitels
V, werden kodiert, während
jeder der übrigen
Scheitel, d.h., Vi+1 für i = 1 bis (N – 1), auf
der Basis der Verschiebung Ri = Pi+1 – Pi von seinem vorherigen Scheitel Vi kodiert wird. Die scheitelkodierten Daten
werden an den Auswahlblock 180 geliefert.
-
Genauer
wird, wie in 5 gezeigt, ein Oktant, zu dem
ein Scheitel Vi+1, gehört, unter Oktant 0 bis Oktant
7 auf der Basis einer x-Komponente Ri(x) und
einer y-Komponente
Ri(y) der Verschiebung Ri bestimmt, wobei
die acht nächsten
Nachbarn des Ursprungs (alle von den geschlossenen Kreisen in 5 markiert)
die Anfangspunkte der acht Oktanten darstellen.
-
Nach
dem Bestimmen von Oktanten für
die Scheitel Vi+1, werden die Indizes der
Oktanten unter Verwendung der herkömmlichen Differenzkettenkodierungstechnik
kodiert; und die Größen der
Komponenten Ri(x) und Ri(y),
d.h. x_mag und y_mag, die den relativen Positionsvektor des Scheitels
Vi+1 bezüglich
seines vorangegangenen Scheitels Vi darstellen,
werden unter Verwendung der auf der Basis von x_dynamic_range bzw.
y_dynamic_range bestimmten Bits kodiert.
-
Als
ein anderes Beispiel der auf Oktanten basierenden Scheitelkodierungstechnik
werden die Oktanten-Indizes und die Ri's alternativ durch
die Verwendung der so genannten syntax-adaptiven arithmetischen
Kodierung (SAAC) kodiert. Bei der SAAC hängt die Anzahl möglicher
Symbole von dem Maximum des dynamischen Bereichs, d.h. dem max(x_dynamic_range,
y_dynamic_range) ab. (Für weitere
Details der auf Oktanten basierenden Scheitelkodierungstechnik siehe
K. O'Connell et
al., oben).
-
Wieder
mit Bezug auf 3 berechnet der Scheitelbitzahlberechnungsblock 135 eine
Scheitelbitzahl auf der Basis der von dem Scheitelzähler 130 zugeführten Scheitelzahl
N und den von dem Bereichbestimmungsblock 120 zugeführten Werten x_bit_number
und y_bit_number, wobei die Scheitelbitzahl die Anzahl von Bits
darstellt, die für
das Kodieren aller Scheitel erforderlich ist. Die Scheitelbitzahl wird
vorzugsweise als die Scheitelzahl N multipliziert mit der Summe
des Werts x_bit_number und des Werts y_bit_number bestimmt. Die
Scheitelbitzahl wird an einen Vergleichsblock 150 geliefert.
-
In
der Zwischenzeit zählt
der Konturpixelzähler 140 die
Anzahl von Konturpixeln, die die Kontur darstellen, auf der Basis
der Eingangskonturbilddaten; und berechnet eine Konturpixelbitzahl
auf der Basis der Konturpixelzahl, wobei die Konturpixelbitzahl
gleich der Konturpixelzahl multipliziert mit einer vorherbestimmten
Gewichtung ist, wobei 1,5 vorzugsweise unter Berücksichtigung einer Kodierungstechnik
mit variabler Länge
und einer Quantisierung als die Gewichtung verwendet wird. Die Konturpixelbitzahl
wird an den Vergleichsblock 150 geliefert.
-
Der
Vergleichsblock 150 bestimmt, ob Information auf der Kontur
auf der Basis der Scheitelbitzahl und der Konturpixelbitzahl scheitelkodiert
oder kettenkodiert wird, um ein Bestimmungssignal an den Auswahlblock 180 zu
liefern. Wenn die Konturpixelbitzahl größer ist als die Scheitelbitzahl,
wird ein erstes Bestimmungssignal für das Auswählen der scheitelkodierten
Daten erzeugt und sonst ein zweites Bestimmungssignal für das Auswählen der
kettenkodierten Daten erzeugt.
-
Der
Auswahlblock 180 wählt
kodierte Daten unter den von dem Scheitelkodierungsblock 160 zugeführten scheitelkodierten
Daten und den von dem Kettenkodierungsblock 170 zugeführten kettenkodierten
Daten entsprechend dem Bestimmungssignal aus, um die ausgewählten kodierten
Daten auf den Eingangskonturbilddaten an den (nicht gezeichneten)
Sender zu liefern.
-
Während die
vorliegende Erfindung in Bezug auf die besonderen Ausführungsformen
beschrieben wurde, wird dem Fachmann klar sein, dass verschiedene Änderungen
und Modifikationen gemacht werden können, ohne von dem wie in den
folgenden Ansprüchen
definierten Umfang der Erfindung abzuweichen.