-
Hintergrund
der Erfindung
-
Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft die Codierung und Decodierung von
Umrissinformationen für bewegte
Bilder, und insbesondere eine Vorrichtung und ein Verfahren zur
skalierbaren Codierung/Decodierung von Umrissen unter der Verwendung
eines Scan-Verschachtelungs-Verfahrens, in dem eine Scan-Reihenfolge
des vertikalen und horizontalen Scannens bei der skalierbaren Codierung/Decodierung
von Umrissen unterschiedlich angewendet wird.
-
Diskussion des
Standes der Technik
-
Bei
der skalierbaren Codierung von Umrissinformationen wird nach dem
Stand der Technik eine Vielzahl von Schichten mit unterschiedlichen
Auflösungen
codiert, übertragen
und decodiert. Diese Technik ist in verschiedenen Anwendungsgebieten erforderlich.
Bei der Codierung einer Vielzahl von Schichten mit unterschiedlichen
Auflösungen
gibt es die örtliche
Skalierbarkeit und die zeitliche Skalierbarkeit.
-
1 zeigt eine Diagramm, welches
das Konzept eines örtlich
skalierbaren Codierverfahrens wiedergibt. Eine Basisschicht weist
eine niedrige örtliche
Auflösung
auf und eine Verfeinerungsschicht weist eine hohe örtliche
Auflösung
auf. Ein allgemeines Codierverfahren wird in der Basisschicht verwendet.
In einer Vergrößerungsschicht
werden unterdessen Bilder aus der Basisschicht abgetastet, d.h.
die Bilder der Basisschicht werden zu einem Bild mit einer hohen
Auflösung
mittels einer Interpolation zusammengesetzt, und Bilder von der
gleichen Größe wie die
Bilder in der Verfeinerungsschicht werden darüber bereitgestellt. Somit kann
eine Codierung mit hoher Effizienz erreicht werden, indem nicht
nur Bilder aus der Verfeinerungsschicht vorhergesagt werden, sondern
auch die interpolierten Bilder aus der Vergrößerungsschicht. Weiße Pfeile
in 1 zeigen eine Richtung
einer Prädiktion
an.
-
Die
Kompressionseffizienz ist hoch, falls ein Bild eines Objekts von
seinem Hintergrund getrennt wird und anschließend codiert wird. Um nur ein
Objekt separat zu codieren, muss man die Umrissinformation zum Separieren
eines Objekts von einem Hintergrund des Bildes codieren, und zwar
getrennt von der Information der Luminanz- und Farbsignale in jedem
der Pixel, die das Objekt bilden. Die Umrissinformation ist ein
binäres
Bild, das das Innere und das Äußere des
Objekts anzeigt. Das heißt,
das Innere des Objekts kann auf "1" gesetzt werden und
das Äußere des
Objekts kann auf "0" gesetzt werden.
-
Bei
einem skalierbaren Codierverfahren steht nicht nur die Farbinformation,
sondern auch die Umrissinformation für die Codierung zur Verfügung. Bei
der Codierung eines Bildes in einer Verfeinerungsschicht unter der
Verwendung eines Bildes einer Basisschicht unterscheidet man die
Verwendung eines Intrabildes und eines Prädiktionsbildes. Bei der skalierbaren
Codierung von Umrissformationen wird beispielsweise ein Scan-Verschachtelungs-Verfahren
verwendet, wenn Umrissinformationen eines Intrabildes in einer Basisschicht
verwendet werden.
-
2 zeigt ein Diagramm, welches
das Grundkonzept der Scan-Verschachtelung zur Codierung von einer
Basisschicht zu einer Verfeinerungsschicht darstellt. Die erste,
dritte und fünfte
Reihe sind Referenz-Scan-Zeilen, deren Werte einem Codierer und
einem Decodierer bekannt sind. Ihre Werte können Pixelwerte der Basisschicht
sein. Die zweite und vierte Reihe sind Code-Scan-Zeilen, die von dem
Codierer zu codieren sind. Um einen Pixelwert einer Code-Scan-Zeile zu codieren,
werden Pixelwerte von zwei oberen und unteren Referenz-Scan-Zeilen
gescannt. Die Korrelation zwischen den Referenz-Scan-Zeilen und
den Code-Scan-Zeilen ist wie folgt.
-
Es
gibt den Fall, dass die Pixelwerte von zwei Scan-Zeilen und ein
Pixelwert einer Code-Scan-Zeile identisch sind. In diesem Fall hat
die Umrissinformation den Wert "0" auf dem Hintergrund und
den Wert "1" auf dem Objekt oder
sie hat umgekehrte Werte. Die meisten zu codierenden Pixel betreffen
diesen Fall. Es gibt den Fall, dass die Pixelwerte von zwei Referenz-Scan-Zeilen
unterschiedlich voneinander sind, was eine Transition darstellt, mit
der die Pixelwerte codiert werden sollen. Eine Position der Transition
kann über
die Referenz-Scan-Zeilen vermerkt werden, so dass die Information
bezüglich
dieser Position nicht übertragen werden
muss. Es gibt auch den Fall, dass Pixelwerte von zwei Referenz-Scan-Zeilen
identisch sind, sich jedoch von dem Pixelwert der Code-Scan-Zeile
unterscheiden. Dies ist der Fall einer Exzeption, mit der die Information
bezüglich
der Position des Pixels, bei dem die Exzeption auftritt, übertragen
werden soll, wohingegen der Pixelwert nicht übertragen werden muss, da er
einen Wert aufweist, welcher der umgekehrte Wert der Pixelwerte
der Referenzzeilen ist.
-
Bei
der Verwendung eines Scan-Verschachtelungs-Verfahrens zur Codierung
einer Basisschicht und einer Verfeinerungsschicht sollten somit
zwei Arten von Daten, nämlich
Transitionsdaten (nachfolgend als "TSD" bezeichnet)
und Exzeptionsdaten (ESD) codiert werden.
-
In
den 3(a) und 3(b) ist die Auflösung einer
Basisschicht bzw. einer Verfeinerungsschicht gezeigt. Die Verfeinerungsschicht
hat in der Breite und in der Höhe
die doppelte Auslösung
wie die Basisschicht. Falls die Basisschicht eine Auflösung M×N hat,
weist die Verfeinerungsschicht die Auflösung (2×M) × (2×N) auf. Eine Pixelposition
der Basisschicht wird derart konstruiert, dass sie einen Positionswert
des rechten unteren Wertes von jedem der 2×2-Blöcke der Verfeinerungsschicht
aufweist. Einfach schraffierte Bereiche in 3(b) werden jeweils Pixelpositionen,
welche die Basisschicht bilden. Um die Verfeinerungsschicht unter
Verwendung der Basisschicht zu codieren, sollten weiße Blöcke in 3(b) codiert werden. Hierbei
haben die einfach schraffierten Bereiche den gleichen Wert wie die
Basisschicht, so dass diese Bereiche nicht nochmals codiert werden
müssen.
Die einfach schraf fierten Bereiche werden verwendet, wenn die Verfeinerungsschicht
codiert wird.
-
Die
Codierung der Verfeinerungsschicht erfolgt in zwei Schritten. 4(a) bis 4(d) zeigen vertikale und horizontale
Scans zum Codieren der Verfeinerungsschicht.
-
Wie
in 4(a) gezeigt ist,
werden zunächst linke
und rechte Pixelwerte der Basisschicht, welche einfach schraffierte
Pixel sind, als Referenzwerte zur Codierung von doppelt schraffierten
Bereichen der Verfeinerungsschicht verwendet. Wie in 4(b) gezeigt ist, werden
als nächstens
obere und untere Pixelwerte, welche einfach schraffierte Pixel darstellen und
in der Basisschicht in einem ersten Schritt codiert wurden, als
Referenzwerte zur Codierung von doppelt schraffierten Bereichen
der Verfeinerungsschicht verwendet.
-
In
einem weiteren Verfahren, das in 4(c) gezeigt
ist, werden obere und untere Pixelwerte der Basisschicht, welche
den einfach schraffierten Bereichen entsprechen, als Referenzwerte
zur Codierung von doppelt schraffierten Bereichen der Verfeinerungsschicht
verwendet. Anschließend
werden, wie in 4(d) gezeigt
ist, linke und rechte Pixelwerte der Pixel, welche einfach schraffiert
dargestellt sind und in der Basisschicht in einem ersten Schritt
codiert wurden, als Referenzwerte zur Codierung von doppelt schraffierten
Teilen der Verfeinerungsschicht verwendet.
-
In
zwei Schritten der Codierung einer Verfeinerungsschicht wird das
Verfahren, bei dem linke und rechte Pixelwerte als Referenzwerte
verwendet werden, als horizontaler Scan bezeichnet und das Verfahren,
bei dem obere und untere Pixelwerte als Referenzwerte verwendet
werden, wird vertikaler Scan genannt.
-
Das
Scan-Verschachtelungs-Verfahren weist zwei oben beschriebene Scan-Schritte
auf. Bezüglich
seiner Scan-Reihenfolge gibt es auch zwei Verfahren, wobei bei dem
einen Verfahren zunächst
der vertikale Scan und anschließend
der horizontale Scan durchgeführt
wird und wobei bei dem anderen Verfahren zunächst der horizontale Scan und
anschließend
der vertikale Scan durchgeführt
wird. Heutzutage wird eines dieser beiden Scan-Verfahren beim Scan-Verschachtelungs-Verfahren
ausgewählt und
angewendet.
-
Bei
der Verwendung des Scan-Verschachtelungs-Verfahrens sollen zwei
Arten von Daten, nämlich
TSD- und ESD-Daten, codiert werden. Die Menge an Codierinformation
in dem Scan-Verschachtelungs-Verfahren wird hauptsächlich durch
die Menge an erzeugten TSD- und ESD-Daten bestimmt. D.h., je kleiner
die Menge an TSD- und ESD-Daten ist, desto geringer ist die Menge
an Codierinformation. Ferner kann die erzeugte Menge an TSD- und ESD-Daten
bei der Codierung aufgrund der Form der Umrissinformation in Abhängigkeit
von der Reihenfolge des vertikalen und horizontalen Scans unterschiedlich
werden. Um die Verfeinerungsschicht zu codieren, wie in den 4(a) bis 4(d) gezeigt ist, sollte der Scan zweimal
in vertikaler und horizontaler Richtung durchgeführt werden. Bei solchen Scans
ist die Anzahl der Codierpixel in dem zweiten Scan mehr als doppelt
so groß als
im ersten Scan, unabhängig von
der Reihenfolge des vertikalen und horizontalen Scans. Dies liegt
daran, dass Pixel der Verfeinerungsschicht im ersten Scan mit Bezug
auf Pixel der Basisschicht codiert werden, bei denen ein Block ausgelassen
wird, wie in 4(a) und 4(c) gezeigt ist, und Pixel,
deren Werte durch den ersten Scan bekannt sind, anschließend im
zweiten Scan codiert werden. Wie durch die doppelt schraffierten
Bereiche in den 4(a) bis 4(d) angedeutet ist, werden
16 Pixel in den 4(a) und 4(c) in dem ersten Scan gescannt,
und 32 Pixel in den 4(b) und 4(d) werden in dem zweiten
Scan gescannt.
-
5(a) bis 5(d) zeigen die Erzeugung von TSD- und
ESD-Daten, basierend auf der Reihenfolge der Scan-Richtung für Umrissinformationen
mit vielen vertikalen Randlinien. 5(a) und 5(b) zeigen ein Verfahren,
bei dem der horizontale Scan zuerst ausgeführt wird und der vertikale
Scan anschließend ausgeführt wird. 5(c) und 5(d) zeigen ein Verfahren, bei dem der
vertikale Scan zuerst ausgeführt wird
und anschließend
der horizontale Scan ausgeführt
wird. Falls der horizontale Scan zuerst und der vertikale Scan anschließend ausgeführt wird,
werden im ersten Scan-Verfahren 4 TSDs erzeugt. Im zweiten
Scan-Verfahren der 5(b) wird ein TSD erzeugt.
Somit werden insgesamt 5 TSDs erzeugt. In 5(b) ist eine nachfolgende Darstellung
von Pixeln mit bekannten Pixelwerten auf Referenz-Scan-Zeilen gezeigt,
wobei Pixel zwischen den Pixeln, welche die Basisschicht bilden,
durch einen horizontalen Scan ermittelt wurden. Demgegenüber wird
im Fall, dass der vertikale Scan zuerst durchgeführt wird und anschließend der
horizontale Scan durchgeführt
wird, ein TSD im ersten Scan erzeugt und 8 TSDs werden im zweiten
Scan erzeugt. Somit werden insgesamt 5 TSDs erzeugt.
-
Folglich
kann im Fall, dass eine Randlinie der Umrissinformation in vertikaler
Richtung verläuft,
die Menge an erzeugter TSDs in der Scan- Reihenfolge verringert
sein, in welcher der horizontale Scan zuerst und der vertikale Scan
anschließend
durchgeführt
wird. Im Fall, dass die Randlinie eine horizontale Richtung aufweist,
kann eine Scan-Reihenfolge, bei welcher der vertikale Scan zuerst
und der horizontale Scan anschließend durchgeführt wird,
die Menge an erzeugten TSDs vermindern.
-
Somit
kann die Menge der erzeugten TSDs und ESDs doppelt so groß sein wie
in der umgekehrten Scan-Reihenfolge, da die Menge an erzeugten TSDs
und ESDs entsprechend der Scan-Reihenfolge unterschiedlich sein
kann, falls die Scan-Reihenfolge permanent festgelegt ist. Das heißt, die
Codiereffizienz verschlechtert sich, da die Anzahl an Bits in einem
solchen Fall größer wird
als in der entgegengesetzten Scan-Reihenfolge.
-
Ein
Artikel von Bossen F. et al mit dem Titel "A Simple and Efficient Binary Shape
Coding Technique Based on Bitmap Representation", (1997 IEEE Int. Conf. on Acoustics
etc., München,
21.–24.
April 1997, Band 4, Seiten 3129-3132)
offenbart eine auf dem JBIG-Algorithmus basierende Technik zur binären Umriss-Codierung
für nicht
skalierbare Codierung und skalierbare Codierung.
-
US 4 754 336 zeigt ein Bildkommunikationssystem
mit einem Wechsel des Scan-Musters mit einer Vielzahl von Auswahleinheiten
für das
Scan-Muster, welche in Antwort auf Eingangsbildsignale einen Scan-Mustertyp
auswählen,
und mit einer Vielzahl von Differenz-Codier- und Quantisier-Einheiten,
die auf Ausgaben der Auswahleinheiten für das Scan-Muster reagieren,
um Unterschiede zwischen Daten in benachbarten Frames in einer Frame-Sequenz
für Pixel
zu codieren und zu quantisieren und um die codierten Differenzdaten
zu quantisieren.
-
Wesen der Erfindung
-
Die
Erfindung wird durch die beigefügten
Ansprüche
definiert.
-
Die
vorliegende Erfindung betrifft eine Vorrichtung nach Anspruch 1.
-
Die
Vorrichtung kann ein oder mehrere der Merkmale der abhängigen Ansprüche 2 bis
7 umfassen.
-
Die
vorliegende Erfindung betrifft ferner eine Vorrichtung nach Anspruch
8.
-
Die
Vorrichtung kann ein oder mehrere der Merkmale der abhängigen Ansprüche 9 bis
14 umfassen.
-
Die
vorliegende Erfindung betrifft ein Verfahren nach Anspruch 15.
-
Das
Verfahren kann ein oder mehrere der Merkmale der abhängigen Ansprüche 16 bis
20 umfassen.
-
Die
vorliegende Erfindung betrifft auch ein Verfahren nach Anspruch
21.
-
Das
Verfahren kann ein oder mehrere der Merkmale der abhängigen Ansprüche 22 bis
24 umfassen.
-
Gemäß der vorliegenden
Erfindung wird eine Vorrichtung und ein Verfahren zur skalierbaren
Codierung/Decodierung von Umrissen mit Hilfe einer Scan-Verschachtelung
geschaffen, wobei das Verfahren im wesentlichen ein oder mehrere
der Probleme vermeidet, die durch die Einschränkungen und Nachteile des Standes
der Technik entstehen.
-
Eine
Aufgabe der vorliegenden Erfindung ist es, eine Vorrichtung und
ein Verfahren zur skalierbaren Codierung/Decodierung von Umrissen
zu schaffen, welches die Codier- und Decodier-Effizienz verbessern
kann, und zwar durch das Verwenden einer Scan-Reihenfolge mit voneinander
unterschiedlichen vertikalen und horizontalen Scans für eine Bildcodierung
mittels einer Scan-Verschachtelung bei der Codierung von Bildern
einer Basisschicht und einer Verfeinerungsschicht.
-
Eine
weitere Aufgabe der vorliegenden Erfindung ist es, eine Vorrichtung
und ein Verfahren zur skalierbaren Codierung/Decodierung von Umrissen zu
schaffen, wobei eine Scan-Verschachtelung verwendet wird, in der
eine Scan-Reihenfolge
basierend auf einer Randlinien-Richtung einer Basisschicht derart
bestimmt wird, dass eine kleine Menge an Codierbits erzeugt wird.
-
Weitere
Merkmale und Vorteile der Erfindung werden in der folgenden Beschreibung
offenbart und werden teilweise durch die Beschreibung ersichtlich oder
können
durch das Ausführen
der Erfindung ersichtlich werden. Die Ziele und weitere Vorteile
der Erfindung können
durch eine Struktur verwirklicht und erreicht werden, die insbesondere
in der vorliegenden Beschreibung und den Ansprüchen sowie den beigefügten Zeichnungen
dargelegt ist.
-
Um
diese und weitere Vorteile in Übereinstimmung
mit dem Zweck der vorliegenden Erfindung, die anhand von Ausführungsbeispielen
und breit gefasst beschrieben ist, zu erreichen, wird eine Scan-Reihenfolge
von horizontalen und vertikalen Scans unterschiedlich auf die Bildcodierung
von einer Basisschicht zu einer Verfeinerungsschicht bei der Verwendung
eines Scan-Verschachtelungs-Verfahrens angewendet. Die Scan-Reihenfolge
wird bestimmt durch eine Richtung einer Randlinie, die Anzahl der
TSD-Daten, die Anzahl der ESD-Daten, die Summe der TSD- und ESD-Daten,
die Anzahl der Bits, wenn die TSD-Daten codiert wurden, die Anzahl der
Bits, wenn die ESD-Daten codiert wurden, die Anzahl der Bits, wenn
die TSD- und ESD-Daten codiert wurden, sowie die Gesamtanzahl der
Codierbits. Zusätzliche
Informationen umfassend die bestimmte Scan-Reihenfolge und die Codierinformation werden
an einen Decodierer übertragen.
Der Decodierer empfängt
diese zusätzliche
Information und decodiert sie in der Scan-Reihenfolge. Die zusätzliche
Information, welche die Scan-Reihenfolge anzeigt, wird unter der
Verwendung einer Codierung mit fester Länge, einer Codierung mit variabler
Länge,
einer festen arithmetischen Codierung und einer variablen arithmetischen
Codierung codiert.
-
Die
zusätzliche
Information, welche die Scan-Reihenfolge darstellt, die für jeden
Block übertragen
wird, ist insgesamt sehr wichtig. Es wird somit ein Verfahren vorgestellt,
das eine Eigenschaft einer Randlinie einer Basisschicht in einem
Verfahren verwendet, bei dem die zusätz liche Information betreffend
einer Scan-Reihenfolge nicht übertragen
wird. Ein Codierer und ein Decodierer können die gleiche Scan-Reihenfolge
bestimmen, falls nur die Basisschicht verwendet wird, da der Codierer
und der Decodierer die gleiche Basisschicht verwenden. Somit gibt
es keine Veranlassung, die zusätzliche
Information betreffend die Scan-Reihenfolge zu übertragen.
-
In
einem weiteren Verfahren zum unterschiedlichen Anwenden einer Scan-Reihenfolge kann
die Codierung und die Decodierung durchgeführt werden, indem eine Scan-Reihenfolge
festgelegt wird und codierte Blocks symmetrisch bewegt werden oder
codierte Blocks um 90 Grad um eine diagonale Linie gedreht werden.
Das heißt,
im Fall, dass die Scan-Reihenfolge
eine bevorzugte Ausführung
eines horizontalen Scans oder eine bevorzugte Ausführung eines
vertikalen Scans erfordert, wird die Codierung und die Decodierung
durch das symmetrische Bewegen der Codierblocks in einer Richtung
einer diagonalen Linie erreicht bzw. durch das Rotieren der Codierblocks
um 90 Grad, wobei die Scan-Reihenfolge fest bleibt.
-
Es
ist ersichtlich, dass sowohl die vorangegangene allgemeine Beschreibung
als auch die nachfolgende detaillierte Beschreibung beispielhaft sind
und zur Erklärung
dienen, wobei die Beschreibungen die beanspruchte Erfindung näher zu erläutern.
-
Kurze Beschreibung
der beigefügten
Zeichnungen
-
Die
beigefügten
Zeichnungen, welche zum besseren Verständnis der Erfindung dienen
und Teil dieser Schrift sind, zeigen Ausführungsformen der Erfindung
und dienen zusammen mit der Beschreibung zur Erklärung der
Prinzipien der Zeichnungen.
-
Es
zeigen:
-
1: ein Diagramm zur Darstellung
des Konzeptes der örtlichen
Skalierbarkeit;
-
2: ein Diagramm zur Darstellung
des Grundkonzeptes einer Scan-Verschachtelung zur Codierung von
Basisschichten zu Verfeinerungsschichten;
-
3(a) und 3(b): die Auflösung einer Basisschicht und
einer Verfeinerungsschicht;
-
4(a) bis 4(d): vertikale und horizontale Scans
während
der Codierung einer Verfeinerungsschicht;
-
5(a) bis 5(d): die Erzeugung von Transitions-
und Exzeptions-Daten (TSD- und ESD-Daten), wobei Umrissinformation
mit vielen vertikalen Randlinien in einer Reihenfolge gescannt wird;
-
6: ein Blockdiagramm, welches
den Aufbau einer Ausführungsform
eines Scan-Verschachtelungs-Codierers in Übereinstimmung mit der vorliegenden
Erfindung zeigt;
-
7: ein Blockdiagramm, welches
eine erfindungsgemäße Ausführungsform
einer Einheit zum horizontalen Scannen zeigt;
-
8: ein Blockdiagramm, welches
eine erfindungsgemäße Ausführungsform
einer Einheit zum vertikalen Scannen zeigt;
-
9: ein Blockdiagramm, welches
den Aufbau einer Ausführungsform
eines Scan-Verschachtelungs-Decodierers in Übereinstimmung mit der vorliegenden
Erfindung zeigt;
-
10: ein Blockdiagramm, welches
eine erfindungsgemäße Ausführungsform
einer Einheit zum Decodierscannen in eine horizontale Richtung zeigt;
-
11: ein Blockdiagramm, welches
eine erfindungsgemäße Ausführungsform
einer Einheit zum Decodierscannen in eine vertikalen Richtung darstellt;
-
12: ein Flussdiagramm, welches
ein Verfahren zur skalierbaren Codierung von Umrissen unter der
Verwendung eines Scan-Verschachtelungs-Verfahrens gemäß der Erfindung
zeigt;
-
13(a) und 13(b): ein Scan-Richtung, basierend auf
einer Richtung der Randlinie in einer Basisschicht;
-
14: ein Flussdiagramm, welches
eine Ausfüh rungsform
der Verfahren zur Bestimmung der Scan-Reihenfolge in Übereinstimmung
mit der vorliegenden Erfindung zeigt;
-
15: ein Verfahren zum Addieren
von Reihen und Spalten an einem Rand einer Basisschicht;
-
16: ein Flussdiagramm, welches
eine Bestimmung einer Scan-Reihenfolge basierend auf der erzeugten
Menge an TSD-Daten (ESD-Daten) gemäß der Erfindung darstellt;
-
17: ein Flussdiagramm, welches
eine Bestimmung einer Scan-Reihenfolge basierend auf der Menge an
codierten Bits der TSD-Daten (ESD-Daten) gemäß der Erfindung darstellt;
-
18: ein Flussdiagramm, welches
eine Bestimmung der Scan-Reihenfolge basierend auf der Summe der
erzeugten Menge an TSD-Daten und ESD-Daten gemäß der Erfindung zeigt;
-
19: ein Flussdiagramm, welches
die Bestimmung einer Scan-Reihenfolge basierend auf der Summe der
erzeugten Bits der TSD-Daten und ESD-Daten gemäß der Erfindung zeigt;
-
20: ein Flussdiagramm, welches
ein Verfahren zur skalierbaren Decodierung von Umrissen mit einem
erfindungsgemäßen Scan-Verschachtelungs-Verfahren
zeigt;
-
21: ein Flussdiagramm, welches
ein Verfahren zur skalierbaren Decodierung von Umrissen mit Hilfe
der Übertragung
von zusätzlicher
Information betreffend eine Scan-Reihenfolge gemäß der vorliegenden Erfindung
darstellt;
-
22: eine Ausführungsform
einer erfindungsgemäßen Codiervorrichtung,
in der eine Scan-Reihenfolge
festgelegt ist und ein Scanblock symmetrisch bewegt wird;
-
23: ein Zustandsdiagramm,
das einen Scanblock zeigt, der symmetrisch um eine diagonale Linie
bei fester Scan-Reihenfolge verschoben wird;
-
24: ein Flussdiagramm, welches
ein skalierbares Codierverfahren zeigt, bei dem eine Scan-Reihenfolge
fest ist und ein Scanblock symmetrisch gemäß der Erfindung bewegt wird;
-
25: eine Ausführungsform
einer erfindungsgemäßen Decodiervorrichtung,
bei der die Scan-Reihenfolge
fest ist und ein Scanblock symmetrisch bewegt wird;
-
26: ein Flussdiagramm, welches
ein skalierbares Decodierverfahren zeigt, bei dem die Scan-Reihenfolge
fest ist und ein Scanblock symmetrisch gemäß der Erfindung bewegt wird.
-
Detaillierte
Beschreibung einer bevorzugten Ausführungsform
-
Es
wird nunmehr im Detail auf bevorzugte Ausführungsformen der vorliegenden
Erfindung Bezug genommen, wobei Beispiele dieser Ausführungsformen
in den beigefügten
Zeichnungen dargestellt sind.
-
6 zeigt ein Blockdiagramm,
welches den Aufbau einer bevorzugten Ausführungsform eines Scan-Verschachtelungs-Codierers gemäß der vorliegenden
Erfindung zeigt.
-
Wie
in 6 gezeigt, extrahiert
eine Umriss-Informations-Extraktionseinheit 60 Umrissinformationen
von einem eingegebenen Bild und gibt diese Information aus. Eine
Basisschicht-Extraktionseinheit 61 extrahiert Pixeldaten,
welche einer Basisschicht entsprechen, aus den Umrissinformationsdaten,
die von der Umriss-Informations-Extraktionseinheit 60 ausgegeben
werden, codiert die Pixeldaten unter der Verwendung des vorliegenden
Umriss-Informations-Codierverfahrens,
decodiert die Daten und gibt diese aus. Ein solcher Prozess wird
bei der Verwendung von Daten der gleichen Basisschicht im Codierer
und Decodierer eingesetzt. Eine Scan-Reihenfolge-Bestimmungseinrichtung 62 vergleicht
die Längen
der horizontalen und vertikalen Randlinien der Basisschicht, die
von der Basisschicht-Extraktionseinheit 61 ausgebeben wurde,
und gibt ein Schaltsteuersignal gemäß dem Vergleichsergebnis aus.
Eine erste Schalteinheit 63 gibt die Umrissinformation,
die von der Umriss-Informations-Extraktionseinheit 60 ausgegeben
wurde, und die Basisschicht, die von der Basisschicht-Extraktionseinheit 61 ausgegeben
wurde, an eine Einheit 64 zum Scannen in eine erste Richtung
oder an eine Einheit 65 zum Scannen in eine zweite Richtung
in Antwort auf ein Schaltsteuersignal, das von der Scan-Reihenfolge-Bestimmungseinheit 62 ausgegeben
wurde. Die Einheit 64 zum Scannen in eine erste Richtung
empfängt
die Daten der Basisschicht und die Umrissinformation und führt zuerst
einen horizontalesn Scan und anschließend einen vertikalen Scan
aus. Die Einheit 65 zum Scannen in eine zweite Richtung
empfängt die
Daten der Basisschicht und die Umrissinformation und führt zuerst
einen vertikalen Scan und anschließend einen horizontalen Scan
aus.
-
Für die Umrissinformation
werden beispielsweise alle Pixelwerte innerhalb eines Frames mit
einem Schwellenwert verglichen und als Vergleichsergebnis werden
Pixel über
dem Schwellenwert auf "1" gesetzt und Pixel
unterhalb des Schwellenwertes auf "0" gesetzt.
Somit kann eine Form eines erforderlichen Objekts von einem anderen
Objekt und einem Hintergrund extrahiert werden. In einer solchen
extrahierten Umrissinformation wird ein Pixel pro Block einer vorgegebenen
Größe, beispielsweise
pro 2×2-Block,
pro 4×4-Block
usw., extrahiert und die Basisschicht wird in der Basisschicht-Extraktionseinheit 61 erzeugt.
Die Scan-Reihenfolge-Bestimmungseinheit 62 vergleicht die
Längen
der horizontalen und vertikalen Randlinien in der Basisschicht.
Insbesondere wird die Anzahl der rechten oder linken benachbarten
Pixel mit unterschiedlichen Pixelwerten, welche eine Länge der
vertikalen Randlinie entspricht, mit der Anzahl der oberen und unteren
benachbarten Pixel mit unterschiedlichen Pixelwerten, welche eine Länge der
horizontalen Randlinie entspricht, verglichen. Für den Fall, dass im Vergleichergebnis
die Anzahl der rechten und linken benachbarten Pixel mit unterschiedlichen
Pixelwerten größer ist,
d.h. falls die Länge
der vertikalen Randlinie länger
als die Länge der
horizontalen Randlinie ist, steuert die Scan-Reihenfolge-Bestimmungseinheit 62 die
erste Schalteinheit 63 derart, dass die Umrissinformation
in die Einheit 64 zum Scannen in die erste Richtung eingegeben
werden kann. Im anderen Fall, d.h. im Fall, dass die Anzahl der
oberen und unteren benachbarten Pixel mit unterschiedlichen Pixelwerten
größer ist, steuert
die Scan-Reihenfolge-Bestimmungseinheit 62 die erste Schalteinheit 63 derart,
dass Umrissinformation in die Einheit 65 zum Scannen in
die zweite Richtung eingegeben werden kann.
-
Die
Einheit 64 zum Scannen in eine erste Richtung umfasst einen
Block 641 zum Scannen in eine horizontale Richtung und
einen Block 642 zum Scannen in eine vertikale Richtung,
wie in 6 gezeigt ist.
Der Block 641 zum Scannen in eine horizontale Richtung
führt einen
Scan in horizontaler Richtung für
die Umrissinformation und die Basisschichtdaten aus und gibt die
nach dem Scannen verarbeiteten Daten nach Abschluss des Scannens
aus. Der Block 642 zum Scannen in eine vertikale Richtung empfängt die
durch das Scannen verarbeiteten Daten von dem Block 641 zum
Scannen in eine horizontale Richtung und führt ein Scannen in vertikaler Richtung
für die
Umrissinformation und die Basisschichtdaten aus. In gleicher Weise
ist in der Einheit 65 zum Scannen in eine zweite Richtung
nur eine Scan-Reihenfolge von einem Block 651 zum Scannen
in eine vertikale Richtung zu einem Block 652 zum Scannen
in eine horizontale Richtung unterschiedlich von der Scan-Reihenfolge von dem
Block 641 zum Scannen in eine horizontale Richtung zu dem
Block 642 zum Scannen in eine vertikale Richtung, wobei
die anderen Funktionen mit denen der Einheit 64 zum Scannen
in eine erste Richtung überein stimmen.
-
7 zeigt ein Blockdiagramm
einer bevorzugten Ausführungsform
einer erfindungsgemäßen Einheit
zum Scannen in eine horizontale Richtung. Ein Codierpixel-Extraktionseinheit 71 extrahiert
Codierpixel aus der Umrissinformation. Eine Extraktionseinheit 72 für horizontal
benachbarte Pixel extrahiert Pixel, die rechts und links eines Pixels
angeordnet sind, das durch die Codierpixel-Extraktionseinheit 71 extrahiert
wurde. Eine erste Vergleichseinheit 73 vergleicht Pixel,
die benachbart zu dem Codierpixel sind, das von der Extraktionseinheit 72 für horizontal benachbarte
Pixel ausgegeben wurde, und gibt ein Schaltsteuersignal aus. Eine
zweite Schalteinheit 74 schaltet das Codierpixel und horizontal
benachbarten Pixel auf eine TSD-Codiereinheit 77 oder auf
eine dritte Schalteinheit 76 in Antwort auf das Schaltsteuersignal.
Eine zweite Vergleichseinheit 75 vergleicht das Codierpixel
und seine benachbarten Pixel und gibt ein Schaltsteuersignal aus.
Eine dritte Schalteinheit 76 schaltet das Codierpixel und
horizontal benachbarte Pixel auf eine ESD-Codiereinheit 78 oder auf
einen Decodierer in Antwort auf das Schaltsteuersignal der zweiten
Vergleichseinheit 75. Die TSD-Codiereinheit 77 codiert
das Codierpixel, das von der zweiten Schalteinheit 74 eingegeben
wird. Die ESD-Codiereinheit 78 codiert das Codierpixel, das
von der dritten Schalteinheit 76 eingegeben wird.
-
8 zeigt ein Blockdiagramm
einer bevorzugten Ausführungsform
für eine
erfindungsgemäße Einheit
zum Scannen in eine vertikale Richtung. Ein Codierpixel-Extraktionseinheit 81 empfängt Umrissinformationen
und Codierdaten in horizontaler Richtung und extrahiert daraus Codierpi xel.
Eine Extraktionseinheit 82 für vertikal benachbarte Pixel
empfängt die
Basisschichtdaten und die Codierdaten in horizontaler Richtung,
die von dem Block 641 zum Scannen in einer horizontalen
Richtung zusammen ausgegeben werden, und extrahiert Pixel, die auf
der oberen und der unteren Seite eines Pixels liegen, das durch
die Codierpixel-Extraktionseinheit 71 extrahiert wurde.
Eine dritte Vergleichseinheit 83 vergleicht vertikal benachbarte
Pixel miteinander, die von der Extraktionseinheit 82 für vertikal
benachbarte Pixel ausgegeben wurden, und gibt ein Schaltsteuersignal
gemäß dem Vergleichsergebnis
aus. Eine vierte Schalteinheit 84 schaltet das Codierpixel
und horizontal benachbarte Pixel auf eine TSD-Codiereinheit 87 oder auf
eine fünfte
Schalteinheit 86 in Antwort auf das Schaltsteuersignal
der dritten Vergleichseinheit 83. Eine vierte Vergleichseinheit 85 vergleicht
das Codierpixel und seine benachbarten Werte und gibt ein Schaltsteuersignal
aus. Eine fünfte
Schalteinheit 86 schaltet das Codierpixel und vertikal
benachbarte Pixel auf eine ESD-Codiereinheit 88 oder auf
den Decodierer in Antwort auf das Schaltsteuersignal der vierten
Vergleichseinheit 85. Die TSD-Codiereinheit 87 codiert
das Codierpixel, das von der vierten Schalteinheit 84 eingegeben
wurde. Die ESD-Codiereinheit 88 codiert das Codierpixel,
das von der fünften
Schalteinheit 86 eingegeben wird.
-
In
der ersten Scaneinheit 64 ist der Block 641 zum
Scannen in horizontaler Richtung vor dem Block 642 zum
Scannen in vertikaler Richtung angeordnet, wie in 6 gezeigt ist. Die Umrissinformation
wird in die Codierpixel-Extraktionseinheit 71 durch die
erste Schalteinheit 63 eingegeben, wobei die Umrissinformation
die Daten der Verfeinerungsschicht sind, und die Pixel, die in 4 doppelt schraffiert sind,
werden aufeinander folgend von der Codierpixel-Extraktionseinheit 71 extrahiert.
Die Extraktionseinheit 72 für horizontal benachbarte Pixel
empfängt
Positionen der Pixel, die von der Codierpixel-Extraktionseinheit 71 extrahiert
wurden, und extrahiert Pixel der Basisschicht, die rechts und links
von dem Codierpixel angeordnet sind, beispielsweise horizontal benachbarte Pixel 42, 44 eines
Codierpixels 43 in 4.
Um zu diesem Zeitpunkt linke benachbarte Pixel der ersten Spalte,
wie etwa ein Pixel 41, das in einer ersten Spalte einer
zweiten Reihe in 4(a) positioniert
ist, zu extrahieren, werden Pixel der Basisschicht in einer zweiten
Spalte auf die linke Seite des Blocks kopiert oder entsprechende
Pixel eines benachbarten linken Blocks werden kopiert. Um Pixel 49,
die in einer zweiten Spalte einer ersten Reihe in 4(c) positioniert sind, zu extrahieren,
werden analog Pixel der Basisschicht in einer zweiten Reihe auf
die obere Seite eines Blocks kopiert oder entsprechende Pixel eines benachbarten
oberen Blocks werden kopiert.
-
Die
Pixel 42, 44, die durch die Extraktionseinheit 72 für horizontal
benachbarte Pixel extrahiert wurden, werden in die erste Vergleichseinheit 73 eingegeben
und dann dort verglichen. Falls die extrahierten Pixel 42, 44 gemäß dem Vergleichsergebnis nicht übereinstimmen,
gibt die zweite Schalteinheit 74 ein Schaltsteuersignal
aus, um das Codierpixel und horizontal benachbarte Pixel mit der
TSD-Codiereinheit 77 zu
verbinden, da die extrahierten Pixel den TSD-Daten entsprechen.
Falls die Pixel übereinstimmen,
können
die extrahierten Pixel ESD-Daten sein, wobei dann die zweite Schalteinheit 74 ein Schaltsteuersignal
ausgibt, um das Codierpixel und horizontal benachbarte Pixel mit
der dritten Schalteinheit 76 zu verbinden.
-
Zwischenzeitlich
werden das Codierpixel und ein horizontal benachbartes Pixel, die
von der Codierpixel-Extraktionseinheit 71 und der Extraktionseinheit 72 für horizontal
benachbarte Pixel ausgegeben wurden, in der zweiten Vergleichseinheit 75 miteinander
verglichen. Falls das Codierpixel und ein horizontal benachbartes
Pixel in der zweiten Vergleichseinheit 75 nicht übereinstimmen,
entsprechen die Pixel den ESD-Daten, so dass die dritte Schalteinheit 76 ein
Schaltsteuersignal ausgibt, um das Codierpixel und die horizontal
benachbarten Pixel mit der ESD-Codiereinheit 78 zu verbinden.
Sollte das Vergleichsergebnis eine Übereinstimmung liefern, gibt
die zweite Vergleichseinheit 75 die Pixel an den Block 642 zum
Scannen in vertikaler Richtung, da die Pixel nicht codiert werden
müssen.
-
Wie
oben erwähnt
wurde, codiert der Block 641 zum Scannen in horizontaler
Richtung doppelt schraffierte Pixel aus 4(a) und gibt sie an den Block 642 zum
Scannen in vertikaler Richtung aus. 8 zeigt
eine Ausführungsform
des Blocks 642 zum Scannen in vertikaler Richtung.
-
In 8 extrahiert eine Codierpixel-Extraktionseinheit 81 doppelt
schraffierte Pixel der 4(b) aus
der Umrissinformation einer Verfeinerungsschicht sowie Codierdaten
in horizontaler Richtung, die von dem Block 641 zum Scannen
in horizontaler Richtung ausgegeben wurden. Die Extraktionseinheit 82 für vertikal
benachbarte Pixel empfängt
Positionen der Pixel, die durch die Codierpixel-Extraktionseinheit 81 extrahiert
wurden, und extrahiert Pixel, die auf der oberen und unteren Seite
des Codierpi xels positioniert sind, beispielsweise vertikal benachbarte Pixel 46, 47 des
Codierpixels 45 in 4(b).
Um Pixel zu extrahieren, die in einer ersten Reihe oder einer ersten
Spalte in 4(b) angeordnet
sind, werden analog zur gleichen Zeit Pixel der Basisschicht in einer
zweiten Reihe oder zweiten Spalte kopiert oder benachbarte Pixel
des benachbarten Blocks werden kopiert.
-
Die
Pixel 46, 47, die durch die Extraktionseinheit 72 für vertikale
benachbarte Pixel extrahiert wurden, werden in die erste Vergleichseinheit 83 eingegeben
und miteinander verglichen. Falls die extrahierten Pixel 46, 47 nicht übereinstimmen,
entsprechen die Pixel der TSD-Daten, so dass die vierte Schalteinheit 84 ein
Schaltsteuersignal ausgibt, um das Codierpixel und die horizontal
benachbarten Pixel mit der TSD-Codiereinheit 87 zu verbinden.
Falls die Pixel aufgrund des Vergleichsergebnisses übereinstimmen,
gibt die vierte Schalteinheit 84 eine Schaltsteuersignal
aus, um das Codierpixel und die horizontal benachbarten Pixel mit
der fünften
Schalteinheit 86 zu verbinden, da die Pixel den ESD-Daten entsprechen
können.
-
In
der Zwischenzeit werden das Codierpixel und ein vertikal benachbartes
Pixel, das von der Codierpixel-Extraktionseinheit 81 und
der Extraktionseinheit 82 für vertikal benachbarte Pixel
ausgegeben wurde, in der vierten Vergleichseinheit 85 miteinander
verglichen. Falls das Codierpixel und ein vertikal benachbartes
Pixel aufgrund des Vergleichsergebnisses nicht übereinstimmen, identifiziert
die Vergleichseinheit 85 ESD-Daten, so dass die fünfte Schalteinheit 86 ein
Schaltsteuersignal ausgibt, um das Codierpixel und vertikal benachbarte
Pixel mit der ESD-Codiereinheit 88 zu
verbinden. Falls die Pixel aufgrund des Vergleichsergebnisses übereinstimmen,
werden sie an den Decodierer ausgegeben, da die Pixel nicht codiert
werden müssen.
-
Ein
Block 641 zum Scannen in horizontaler Richtung und ein
Block 642 zum Scannen in vertikaler Richtung sind Bestandteil
der ersten Scaneinheit 64, in der zunächst das Scannen in horizontaler
Richtung durchgeführt
wird und anschließend
das Scannen in vertikaler Richtung durchgeführt wird. In der zweiten Scaneinheit 65 ist
der Block 651 zum Scannen in vertikaler Richtung vor dem
Block 652 zum Scannen in horizontaler Richtung angeordnet,
wie in 6 gezeigt ist.
Es ist somit offensichtlich, dass die Codierdaten in horizontaler
Richtung nicht in die Codierpixel-Extraktionseinheit 81 und die
Extraktionseinheit 82 für
vertikal benachbarte Pixel eingegeben werden und dass die Codierdaten
in vertikaler Richtung mit Umrissinformation und Basisschichtdaten
in die Codierpixel-Extraktionseinheit 71 und die Extraktionseinheit 72 für horizontal
benachbarte Pixel eingegeben werden.
-
9 zeigt den Aufbau einer
bevorzugten Ausführungsform
eines Scan-Verschachtelungs-Decodierers gemäß der vorliegenden Erfindung.
-
Eine
Basisschicht-Decodiereinheit 91 empfängt Codierdaten der Basisschicht,
die von einer Codiervorrichtung übertragen
werden, und decodiert die Daten. Eine Scan-Reihenfolge-Bestimmungseinheit 92 vergleicht
die Längen
der horizontalen und vertikalen Randlinien in der Basisschicht,
die von der Basisschicht-Decodiereinheit 91 ausgegeben
werden, und gibt ein Schaltsteuersignal gemäß dem Vergleichsergebnis aus.
Eine sechste Schalteinheit 93 schaltet die Codierdaten,
die von der Codiervorrichtung übertragen
wurden, und die Basisschichtdaten, die von der Basisschicht-Decodiereinheit 91 ausgegeben
werden, auf eine Einheit 94 zum Decodierscannen in eine
erste Richtung oder eine Einheit 95 zum Decodierscannen
in eine zweite Richtung in Antwort auf das Schaltsteuersignal, das
von der Scan-Reihenfolge-Bestimmungseinheit 92 ausgegeben
wurde. Die Einheit 94 zum Decodierscannen in eine erste
Richtung empfängt
die Basisschichtdaten und die Codierdaten und führt zunächst einen horizontalen Decodierscan
und anschließend
einen vertikalen Decodierscan aus. Die Einheit 95 zum Decodierscannen
in eine zweite Richtung empfängt
die Basissichtdaten und die Codierdaten und führt zunächst den vertikalen Decodierscan
und anschließend
den horizontalen Decodierscan aus.
-
Die
Basisschicht wird separat zu den Verfeinerungsschichtdaten codiert
und an den Decoder übertragen.
Die Basisschicht-Decodiereinheit 91 empfängt eine
codierte Basisschicht und decodiert diese. Die Scan-Reihenfolge-Bestimmungseinheit 92 vergleicht
die Längen
der horizontalen und vertikalen Randlinien in der decodierten Basisschicht.
Insbesondere wird die Anzahl der rechten oder linken benachbarten
Pixel mit unterschiedlichen Pixelwerten, welche einer Länge der
vertikalen Randlinie entspricht, mit der Anzahl der oberen oder
unteren benachbarten Pixel mit unterschiedlichen Pixelwerten, welche
einer Länge
der horizontalen Randlinie entspricht, miteinander verglichen. Falls
gemäß dem Vergleichsergebnis
die Anzahl der rechten oder linken benachbarten Pixel mit unterschiedlichen
Werten größer ist,
d.h. falls die Länge
der vertikalen Randlinie länger
als die Länge
der horizontalen Randlinie ist, steuert die Scan-Reihenfolge-Bestimmungs einheit 92 die
sechste Schalteinheit 93 derart, dass die Basisschicht
und die Codierdaten in die Einheit 94 zum Decodierscannen
in eine erste Richtung eingegeben werden können. Falls im umgekehrten
Fall die Anzahl der oberen oder unteren benachbarten Pixel mit unterschiedlichen
Werten größer ist,
steuert die Scan-Reihenfolge-Bestimmungseinheit 92 die sechste
Schalteinheit 93 derart, dass die Basisschicht und die
Codierdaten in die Einheit 95 zum Decodierscannen in eine
zweite Richtung eingegeben werden können.
-
Die
Einheit 94 zum Decodierscannen in eine erste Richtung umfasst
einen Block 941 zum Decodieren in horizontaler Richtung
und einen Block 942 zum Decodierscannen in vertikaler Richtung,
wie in 9 gezeigt ist.
Der Block 941 zum Decodieren in horizontaler Richtung führt einen
Decodierscan in horizontaler Richtung in den Codierdaten und den
Basisschichtdaten aus und gibt die durch das Scannen verarbeiteten
Daten nach Abschluss des Scannens aus. Der Block 942 zum
Decodierscannen in vertikalerRichtung empfängt die durch das Scannen verarbeiteten
Daten von dem Block 941 zum Decodierscannen in horizontaler
Richtung und führt
einen Decodierscan in vertikaler Richtung in den Codierdaten und
den Basisschichtdaten aus. Analog ist in der Einheit 95 zum
Decodierscannen in eine zweiten Richtung die Scan-Reihenfolge von
dem Block 951 zum Decodierscannen in vertikaler Richtung
zu einem Block 952 zum Decodierscannen in horizontaler Richtung
nur unterschiedlich zu der Scan-Reihenfolge von dem Block 941 zum
Decodierscannen in horizontaler Richtung zu dem Block 942 zum
Decodierscannen in vertikaler Richtung, wobei die anderen Funktionen
denen der Einheit 94 zum Decodierscannen in der ersten
Richtung entsprechen.
-
10 zeigt ein Blockdiagramm
einer Ausführungsform
eines erfindungsgemäßen Blocks
zum Decodierscannen in horizontaler Richtung. Eine Extraktionseinheit 101 für horizontal
benachbarte Pixel empfängt
die Basisschichtdaten, die von der Basisschicht-Decodiereinheit 91 übertragen
werden, und extrahiert Pixel, die rechts und links von einem zu
decodierenden Pixel angeordnet sind. Eine fünfte Vergleichseinheit 103 vergleicht
Pixel benachbart zu dem Decodierpixel, das von der Extraktionseinheit 101 für horizontal
benachbarte Pixel ausgegeben wird, und gibt ein Schaltsteuersignal
aus. Eine siebte Schalteinheit 102 schaltet die Codierdaten
und die horizontal benachbarten Pixel auf eine TSD-Decodiereinheit 104 oder
eine achte Schalteinheit 105 in Antwort auf das Schaltsteuersignal
der fünften
Vergleichseinheit 103. Die TSD-Decodiereinheit 104 decodiert
die Codierdaten, die von der siebten Schalteinheit 102 eingegeben
werden. Die achte Schalteinheit 105 gibt die Codierdaten
und horizontal benachbarte Pixel, die von der Codiervorrichtung übertragen wurden,
an eine ESD-Decodiereinheit 106 oder
eine Kopiereinheit 107 für benachbarte Pixel in Antwort auf
ESD-Daten von entsprechenden Decodierpixeln in den Codierdaten.
Die ESD-Decodiereinheit 106 decodiert die Codierpixel,
die von der achten Schalteinheit 105 eingegeben werden.
Die Kopiereinheit 107 für
benachbarte Pixel speichert horizontal benachbarte Pixelwerte der
Decodierpixel, welche nicht TSD- oder ESD-Daten entsprechen.
-
11 ist ein Blockdiagramm
einer Ausführungsform
eines erfindungsgemäßen Blocks
zum Decodierscannen in vertikaler Richtung. Eine Extraktionseinheit 111 für vertikal
benachbarte Pixel empfängt
Decodierdaten in horizontaler Richtung und die Basisschicht, die
von dem Block 641 zum Scan nen in horizontaler Richtung
ausgegeben wurden, und extrahiert Pixel, die auf der oberen oder
unteren Seite des Decodierpixels angeordnet sind. Eine sechste Vergleichseinheit 113 vergleicht
vertikal benachbarte Pixel miteinander, welche von der Extraktionseinheit 111 für vertikal
benachbarte Pixel ausgegeben wurden, und gibt ein Schaltsteuersignal
gemäß dem Vergleichsergebnis
aus. Eine neunte Schalteinheit 112 schaltet die Codierdaten
und die vertikal benachbarten Pixel auf eine TSD-Decodiereinheit 114 oder
eine zehnte Schalteinheit 115 in Antwort auf das Schaltsteuersignal
der neunten Vergleichseinheit 113. Die TSD-Decodiereinheit 114 decodiert
die Codierdaten, die von der neunten Schalteinheit 112 eingegeben wurden.
Die zehnte Schalteinheit 115 schaltet die vertikal benachbarten
Pixel und die Codierdaten, die von der Codiervorrichtung ausgegeben
wurden, auf eine ESD-Decodiereinheit 116 oder auf eine
Kopiereinheit 117 für
benachbarte Pixel in Abhängigkeit
davon, ob das entsprechende Decodierpixel in den Codierdaten ESD-Daten
entspricht oder nicht ESD-Daten entspricht. Die ESD-Decodiereinheit 116 decodiert
das vertikal benachbarte Pixel und Codierdaten, die von der zehnten
Schalteinheit 115 eingegeben werden. Die Kopiereinheit 117 für benachbarte
Pixel kopiert Decodierpixel als horizontal benachbarte Pixelwerte.
-
In
der Einheit 94 zum Decodierscannen in eine erste Richtung,
die in 9 gezeigt ist,
ist der Block 941 zum Decodierscannen in horizontaler Richtung
vor dem Block 942 zum Decodierscannen in vertikaler Richtung
angeordnet. Die Codierdaten und die Basisschicht werden durch die
sechste Schalteinheit 93 in den Block 941 zum
Decodierscannen in horizontaler Richtung eingegeben, wobei die Codierdaten
Daten sind, welche in der Verfeinerungsschicht decodiert wurden.
Die Extraktionseinheit 101 für horizontal benachbarte Pixel
extrahiert zu dem Decodierpixel horizontal benachbarte Pixel, beispielsweise
die Pixel 42, 44 der 4(a) für ein Pixel 43 in
einer zweiten Reihe und dritten Spalte in 4(a), und zwar für aufeinander folgende Pixel
der Basisschicht, die von der Basisschicht-Decodiereinheit 91 ausgegeben
werden.
-
Um
die Pixel einer ersten Spalte zu decodieren, beispielsweise ein
Pixel 41 der zweiten Reihe und ersten Spalte in 4(a), werden zugleich Pixel der
Basisschicht in einer zweiten Spalte auf die linke Seite eines Blocks
kopiert und dann verwendet. Die Pixel 42, 44,
die durch die Extraktionseinheit 101 für horizontal benachbarte Pixel
extrahiert wurden, werden in die fünfte Vergleichseinheit 103 eingegeben und
miteinander verglichen. Falls die extrahierten Pixel 42, 44 nicht
identisch sind, entsprechen die Pixel den TSD-Daten, so dass die
fünfte
Vergleichseinheit 103 ein Steuersignal derart aussendet,
dass die siebte Schalteinheit 102 die Codierdaten und horizontal benachbarte
Pixel auf die TSD-Decodiereinheit 104 schalten kann. Falls
die Pixel übereinstimmen,
können
die Pixel ESD-Daten sein, so dass die siebte Schalteinheit 102 ein
Steuersignal ausgibt, um die Codierdaten und die horizontal benachbarten
Pixel mit der achten Schalteinheit 105 zu verbinden.
-
Falls
das entsprechende Decodierpixel in den Codierdaten zu ESD-Daten
gehört,
wird die achte Schalteinheit 105 durch die ESD-Daten derart
gesteuert, dass die Codierdaten und horizontal benachbarte Pixel,
die von der Codiervorrichtung übertragen werden,
auf die ESD-Decodiereinheit 106 geschaltet werden können. Falls
das entsprechende Decodierpixel keinen ESD-Daten entspricht, muss
das Pixel nicht codiert werden, so dass das Pixel an die Kopiereinheit 107 für benachbarte
Pixel ausgegeben wird.
-
Wie
oben erwähnt
wurde, decodiert der Block 941 zum Decodierscannen in horizontaler Richtung
Pixel, die in 4(a) doppelt
schraffiert sind, und gibt diese an den Block 942 zum Decodierscannen
in vertikaler Richtung aus. Die Extraktionseinheit 111 für vertikal
benachbarte Pixel extrahiert zu dem Decodierpixel vertikal benachbarte
Pixel, beispielsweise Pixel 49, 50 in 4(c) für ein Pixel 48 in einer
zweiten Reihe und zweiten Spalte in 4(c), und
zwar für
aufeinander folgende Pixel der Basisschicht und Decodierdaten in
horizontaler Richtung, die von dem Block 941 zum Decodierscannen
in horizontaler Richtung ausgegeben werden. Um die Pixel einer ersten
Reihe einer Verfeinerungsschicht zu decodieren, decodiert die Extraktionseinheit 111 für vertikal
benachbarte Pixel gleichzeitig die Pixel, indem ein Pixelwert in
einer entsprechenden Position seines benachbarten Blocks verwendet
wird oder indem die erste Reihe der Basisschicht doppelt verwendet
wird.
-
Die
Pixel 49, 50, die von der Extraktionseinheit 111 für vertikal
benachbarte Pixel extrahiert wurden, werden in die sechste Vergleichseinheit 113 eingegeben
und miteinander verglichen. Falls die extrahierten Pixel 49, 50 nicht übereinstimmen,
entsprechen die Pixel den TSD-Daten, so dass die neunte Schalteinheit 112 ein
Schaltsteuersignal ausgibt, um die Codierdaten und die vertikal
benachbarten Pixel 49, 50 mit der TSD-Decodiereinheit 114 zu
verbinden. Falls die Pixel aufgrund des Vergleichsergebnisses übereinstimmen,
gibt die neunte Schalteinheit 112 ein Schaltsteuersignal
aus, um die Codierdaten und die vertikal benachbarten Pixel 49, 50 mit
der zehnten Schalteinheit 115 zu verbinden, da die Pixel den
ESD-Daten entsprechen können.
-
Falls
das entsprechende Decodierpixel in den Codierdaten zu den ESD-Daten
gehört,
wird die zehnte Schalteinheit 115 zwischenzeitlich durch
die ESD-Daten derart gesteuert, dass die Codierdaten und die vertikal
benachbarten Pixel, die von der Codiervorrichtung übertragen
wurden, auf die ESD-Decodiereinheit 116 geschaltet werden
können.
Falls das entsprechende Decodierpixel nicht zu den ESD-Daten gehört, braucht
das Pixel nicht codiert werden, so dass das Pixel an die Kopiereinheit 117 für benachbarte
Pixel ausgegeben wird.
-
Ein
Block 941 zum Decodierscannen in horizontaler Richtung
und ein Block 942 zum Decodierscannen in vertikaler Richtung
sind Bestandteil der Einheit 94 zum Decodierscannen in
eine erste Richtung, wobei zunächst
der Scan in horizontaler Richtung durchgeführt wird und anschließend der
Scan in vertikaler Richtung. In der Einheit 95 zum Decodierscannen
in die zweite Richtung ist der Block 951 zum Decodierscannen
in vertikaler Richtung vor dem Block 952 zum Decodierscannen
in horizontaler Richtung angeordnet, wie in 9 gezeigt ist.
-
12 zeigt ein Flussdiagramm,
welches ein skalierbares Codierverfahren für Umrissinformation unter Verwendung
einer Scan-Verschachtelung darstellt. In einem Schritt ST121 wird
eine Scan-Reihenfolge zur Erzeugung einer kleinen Menge an Codierbits
bestimmt, falls das Scan-Verschachtelungs-Verfahren verwendet wird,
um eine skalier bare Codierung von Umrissinformationen durchzuführen, da
die Menge an erzeugten Codierbits für die Scan-Reihenfolge in horizontaler
und vertikaler Richtung unterschiedlich ist. In einem Schritt ST122
wird detektiert, ob oder ob nicht ein Flag bezeichnet als "Order", das eine Scan-Reihenfolge
anzeigt, die in dem Schritt ST121 bestimmt wurde, einen Wert zur bevorzugten
Ausführung
eines vertikalen Scans repräsentiert,
d.h. ob gilt "Order
= 1". Falls eine
Priorität für das vertikale
Scannen vorliegt, wird das vertikale Scannen in einem Schritt ST125
ausgeführt,
und ein horizontales Scannen wird in dem Schritt ST126 ausgeführt. Falls
die Priorität
auf horizontales Scannen gesetzt ist, wird das horizontale Scannen
in einem Schritt ST123 durchgeführt,
und ein vertikales Scannen wird in einem Schritt ST124 durchgeführt.
-
Durch
das Bestimmen einer Scan-Reihenfolge, wie in 13(a) und 13(b) gezeigt
ist, wird die Anzahl der Pixel, welche eine horizontale Randlinie
in der Basisschicht bilden, und der Pixel, welche eine vertikale
Randlinie in der Basisschicht bilden, verglichen, und eine Richtung,
welche als Vergleichsergebnis einen größeren Wert liefert, wird als
die Richtung bestimmt, die zuerst gescannt wird. Wenn beispielsweise
ein Scannen in horizontaler Richtung, wie in 13(b) gezeigt, ausgeführt wird, werden 8 Pixel mit
gegenseitig unterschiedlichen Werten erzeugt, und wenn ein vertikales
Scannen, wie in 13(a) gezeigt,
durchgeführt
wird, werden 6 Pixel mit unterschiedlichen Werten erzeugt. Da die
Anzahl der Pixel mit unterschiedlichen Werten in horizontaler Richtung
größer ist,
ist die Wahrscheinlichkeit einer Erzeugung von TSD-Daten in horizontaler
Richtung größer, wenn
eine Verfeinerungsschicht codiert wird. In einem solchen Fall kann
demzufol ge die Gesamtanzahl der erzeugten TSD-Daten vermindert werden,
indem zunächst
ein horizontales Scannen und anschließend ein vertikales Scannen
ausgeführt wird.
Da ein Codierer und ein Decodierer die gleiche Basisschicht umfassen
und der Decodierer somit eine Scan-Richtung aufgrund des gleichen
Verfahrens kennt, kann ein Decodieren ohne eine Übertragung von zusätzlichen
Informationen in Bezug auf die Scan-Reihenfolge durchgeführt werden.
-
14 zeigt ein Flussdiagramm,
welches eine Ausführungsform
eines Verfahrens zum Bestimmen einer Scan-Reihenfolge darstellt,
wobei Codierbits in geringer Anzahl erzeugt werden können. In
einem Schritt ST141 wird eine Basisschicht von der Umrissinformation
extrahiert, und die Anzahl an vertikal benachbarten Pixel in der
Basisschicht, die unterschiedliche Werte aufweisen, wird berechnet,
wobei die Anzahl als N1 bezeichnet wird und einer Länge einer
horizontalen Randlinie entspricht. In Schritt ST142 wird die Anzahl
der horizontal benachbarten Pixel der Basisschicht, welche unterschiedliche
Werte aufweisen, berechnet, wobei die Anzahl als N2 bezeichnet wird
und einer Länge
der vertikalen Randlinie entspricht. In einem Schritt 143 wird
detektiert, ob oder ob nicht die Anzahl der vertikal benachbarten
Pixel, welche unterschiedliche Werte aufweisen, d.h. die Anzahl
N1, größer ist
als die Anzahl der horizontal benachbarten Pixel, welche unterschiedliche
Werte aufweisen, d.h. die Anzahl N2. In dem Fall, dass gilt N1 > N2, wird in einem
Schritt ST144 ein Wert eines Flags "Order", welcher eine Scan-Reihenfolge anzeigt,
auf "1" gesetzt. In einem
Falle, wenn N1 > N2 nicht
gilt, wird in einem Schritt ST145 ein Wert eines Flags "Order", welcher eine Scan-Reihenfolge
anzeigt, auf "0" gesetzt. Wenn die
Scan-Reihenfolge bestimmt ist, wird das Scannen gemäß der bestimmten
Reihenfolge durchgeführt,
wie in 12 gezeigt ist.
Falls die Scan-Reihenfolge mittels der Längen der vertikalen und horizontalen
Randlinien der Basisschicht bestimmt wird, werden die Codierdaten
der Basisschicht an den Decoder übertragen
und der Decoder decodiert die Basisschicht, um hierdurch die Längen der
vertikalen und horizontalen Randlinien zu vergleichen und somit
anschließend
die Scan-Reihenfolge, die in dem Codierer bestimmt wurde, zu erfahren.
Deshalb ist es nicht notwendig, eine zusätzliche Information zur Anzeige
der Scan-Reihenfolge an den Decoder zu übertragen. Falls eine Verfeinerungsschicht
unter der Verwendung einer Basisschicht codiert wird, kann ein horizontales
Scannen beim Codieren einer ersten Spalte einer Verfeinerungsschicht
nicht durchgeführt
werden, da Pixel einer Basissicht, auf die zurückgegriffen werden muss, nur
auf der rechten Seite angeordnet sind, wie in 4(a) und 4(c) gezeigt
ist. In einem solchen Fall wird deshalb, wie in 15 gezeigt ist, eine erste Spalte des
am weitesten rechts liegenden linken Blocks 151 verwendet.
Falls es keinen linken Block gibt, wird eine erste Spalte der Basisschicht
auf die linke Seite der ersten Spalte der Verfeinerungsschicht kopiert,
und anschließend
wird das horizontale Scannen mit dem Scan-Verschachtelungs-Verfahren
durchgeführt.
-
Bei
der Codierung einer ersten Zeile einer Verfeinerungsschicht ist
ein vertikales Scannen nicht möglich,
da Pixel der Basisschicht, auf die Bezug genommen wird, nur auf
der unteren Seite positioniert sind, wie in 4(c) gezeigt ist. In einem solchen Fall wird
somit, wie in 15 gezeigt
ist, eine erste Zeile 152 der untersten Seite eines oberen
Blocks verwendet. Falls es keinen oberen Block gibt, wird eine erste Zeile
der Basisschicht auf die obere Seite einer ersten Zeile der Verfeinerungsschicht
kopiert und anschließend
wird ein vertikales Scannen mittels des Scan-Verschachtelungs-Verfahrens
durchgeführt. Um
von einer Basisschicht zu einer Verfeinerungsschicht zu codieren,
sollten bei der Verwendung der Scan-Verschachtelung zwei Arten von
Daten, nämlich
TSD-Daten und ESD-Daten, codiert werden. Es sollte ein Scan-Reihenfolge
bestimmt werden, mit der wenig TSD- und ESD-Daten erzeugt werden
können,
da die Menge an erzeugten TSD- und ESD-Daten gemäß der Scan-Reihenfolge unterschiedlich sein
kann.
-
16 zeigt ein Flussdiagramm,
welches ein Verfahren zum Bestimmen einer Scan-Reihenfolge basierend
auf der erzeugten Menge an TSD- und ESD-Daten gemäß der Erfindung
darstellt. In einem Schritt ST161 wird eine VOP-Ebene (VOP = video object
plane) oder ein Block mit einer vorgegebenen Größe, wie z.B. 4×4, 2×2, usw.,
von der Umrissinformation extrahiert, und die Anzahl der TSD-Daten (ESD-Daten)
beim horizontalen Scannen, bezeichnet als N_H, wird berechnet, wobei
die VOP-Ebene aus der MPEG-4 oder einer polygonalen Domäne zum Codieren
in einer Objekteinheit ausgewählt
ist. In einem Schritt ST162 wird die Codieranzahl der TSD-Daten
(ESD-Daten), bezeichnet als N_V, für die VOP-Ebene oder den Block
mit vorgegebener Größe für das vertikale
Scannen berechnet. In einem Schritt ST163 werden die Anzahlen in
N_H und N_V addiert, und die Gesamtanzahl N_HV der TSD-Daten (ESD-Daten),
die in der Scan-Reihenfolge mit bevorzugtem horizontalen Scannen
erzeugt wurde, wird berechnet. In einem Schritt ST164 wird die VOP-Ebene
oder ein Block mit vorgegebener Größe von der Umrissinformation
extrahiert, und die Anzahl der TSD- Daten (ESD-Daten) beim vertikalen Scannen, bezeichnet
als N_V, wird berechnet. In einem Schritt ST165 wird die Codieranzahl
der TSD-Daten (ESD-Daten) beim horizontalen Scannen für die VOP-Ebene
oder dem Block mit vorgegebener Größe, bezeichnet als N_H, berechnet.
In einem Schritt ST166 werden die Anzahlen N_H und N_V addiert und
die Gesamtanzahl der TSD-Daten (ESD-Daten) wird für die Scan-Reihenfolge mit bevorzugtem
vertikalen Scannen, bezeichnet als N_VH, gezählt.
-
In
einem Schritt 167 wird detektiert, ob N_HV > N_VH gilt oder nicht.
Falls N_HV > N_VH
gilt, wird in einem Schritt ST168 das Flag (Order), welches die Scan-Reihenfolge
anzeigt, auf "1" gesetzt, wodurch eine
Reihenfolge mit Priorität
für das
vertikale (horizontale) Scannen festgelegt wird. Falls nicht N_HV > N_VH gilt, wird in
einem Schritt ST169 das Flag (Order), welches die Scan-Reihenfolge
anzeigt, auf "0" gesetzt, wodurch
eine Reihenfolge mit Priorität
für das
horizontale (vertikale) Scannen festegelegt wird. In einem Schritt
ST170 soll die zusätzliche
Information bezüglich
der Scan-Reihenfolge, beispielsweise die Daten des Flags (Order),
an den Decoder übertragen
werden, da der Decoder die Scan-Reihenfolge nicht kennt, wenn die
Scan-Reihenfolge bestimmt wird und das Codieren durchgeführt wird.
Der Decoder empfängt
die zusätzliche
Information und decodiert die Basisschicht auf die Verfeinerungsschicht entsprechend
der Scan-Reihenfolge.
-
Hierbei
kann die zusätzliche
Information durch eine Codierung mit fester Länge, eine Codierung mit variabler
Länge,
eine feste arithmetische Codierung und eine variable arithmetische
Codierung dargestellt werden. Die Menge an Information, die bei
der Codierung der TSD-Daten und ESD- Daten erzeugt wird, ist aufgrund der
Codierverfahren unterschiedlich. Deshalb ist die Menge an Information
nicht zwangsläufig
groß,
wenn die Anzahl an erzeugten TDS-Daten groß ist, und die Menge an Information
ist nicht zwangsläufig
groß,
wenn die Menge an erzeugten ESD-Daten groß ist. Ferner kann die tatsächliche
Codierung der TSD- und ESD-Daten und der Vergleich der erzeugten
Informationsmenge exakter sein, da die Menge an Codierinformation
für jeweilige
TSD- und ESD-Daten voneinander unterschiedlich sein kann, wie vorher
erwähnt
wurde. Demzufolge können
abweichend von dem obigen Scan-Reihenfolge-Bestimmungsverfahren
die erzeugten TSD (ESD)-Daten codiert werden, falls zunächst das
horizontale Scannen und anschließend das vertikale Scannen
ausgeführt
wird. Die Anzahl der bei einer solchen Codierung erzeugten Bits
wird mit der Anzahl der Bits verglichen, die bei der Codierung der
TSD(ESD)-Daten in
dem Falle erzeugt wurden, wenn zunächst das vertikale Scannen
und anschließend
das horizontale Scannen ausgeführt
werden. Man erhält
als Vergleichsergebnis den Fall, für den die Anzahl der Codierbits
der TSD(ESD)-Daten klein ist, und dieser Fall kann als Scan-Reihenfolge bestimmt
werden.
-
17 zeigt ein Flussdiagramm,
welches ein Verfahren zur Bestimmung der Scan-Reihenfolge basierend
auf der Menge an Codierbits der TSD- und ESD-Daten gemäß der Erfindung
darstellt. In einem Schritt ST171 wird eine VOP-Ebene oder ein Block mit einer vorgegebenen
Größe von der
Umrissinformation extrahiert, und die Anzahl an Codierbits der TSD(ESD)-Daten
für das
horizontale Scannen, bezeichnet als N_H, wird berechnet. In einem
Schritt ST172 wird die Menge an Codierbits der TSD(ESD)-Daten, bezeichnet
als N_V, für
die VOP-Ebene oder den Block mit vorgegebener Größe für das vertikale Scannen berechnet.
In einem Schritt ST173 werden die Anzahlen N_H und N_V addiert, und
die Gesamtanzahl der Codierbits der TSD(ESD)-Daten für die Scan-Reihenfolge
mit bevorzugter horizontaler Richtung, bezeichnet als N_HV, wird
berechnet. In einem Schritt ST174 wird die VOP-Ebene oder der Block
mit vorgegebener Größe von der
Umrissinformation extrahiert, und die Anzahl der Codierbits der
TSD(ESD)-Daten für
das vertikale Scannen, bezeichnet als N_V, wird berechnet. In einem
Schritt ST175 wird die Anzahl der Codierbits der TSD(ESD)-Daten
für das
horizontale Scannen, bezeichnet als N_H, berechnet. In einem Schritt
ST176 werden die Anzahlen N_H und N_V addiert und die Gesamtanzahl
der Codierbits der TSD(ESD)-Daten für eine Scan-Reihenfolge mit
bevorzugter vertikaler Richtung, bezeichnet als N_VH, wird gezählt.
-
In
einem Schritt 177 wird detektiert, ob N_HV > N_VH gilt oder nicht.
Falls N_HV > N_VH
gilt, wird in einem Schritt ST178 das Flag (Order), welches die Scan-Reihenfolge
anzeigt, auf "1" gesetzt, um eine Reihenfolge
mit Priorität
für das
vertikale (horizontale) Scannen festzulegen. Falls N_HV > N_VH nicht gilt, wird
in einem Schritt ST179 das Flag (Order), welches die Scan-Reihenfolge
anzeigt, auf "0" gesetzt, wodurch
eine Reihenfolge mit Priorität
des horizontalen (vertikalen) Scannens festgelegt wird. In einem
Schritt ST180 wird das Flag (Order), welches die Scan-Reihenfolge
anzeigt, an den Decoder übertragen.
Im Unterschied zu dem oben beschriebenen Verfahren zur Bestimmung
der Scan-Reihenfolge wird die Summe der TSD- und ESD-Daten, welche durch
das Ausführen
des horizontalen Scannens erhalten wird, mit der Summe der TSD-
und ESD-Daten verglichen,
welche durch das Ausführen
des vertikalen Scannens erhalten wird. Als Vergleichsergebnis kann zunächst ein
Scannen in der Richtung durchgeführt
werden, in der die Summe der TSD- und ESD-Daten größer ist.
-
18 zeigt ein Flussdiagramm,
welches ein Verfahren zur Bestimmung der Scan-Reihenfolge basierend
auf der erzeugten Größe der Summe
der TSD- und ESD-Daten gemäß der Erfindung
darstellt. In einem Schritt ST181 wird eine VOP-Ebene oder ein Block mit vorgegebener
Größe von der
Umrissinformation extrahiert, und die Summe der TSD- und ESD-Daten
für das
horizontale Scannen, bezeichnet als N_H, wird berechnet. In einem
Schritt ST182 wird die Summe der TSD- und ESD-Daten für das vertikale
Scannen, bezeichnet als N_V, berechnet. In einem Schritt ST183 werden
die Anzahlen N_H und N_V addiert, und die Gesamtanzahl der TSD-
und ESD-Daten, die für
eine Scan-Reihenfolge mit bevorzugter horizontaler Richtung erzeugt
werden, bezeichnet als N_HV, werden gezählt. In einem Schritt ST184,
wird die Summe der TSD- und ESD-Daten für das vertikale Scannen, bezeichnet
als N_V, berechnet. In einem Schritt ST185 wird die Summe der TSD-
und ESD-Daten für
das horizontale Scannen, bezeichnet als N_H, berechnet. In einem
Schritt ST186 werden die Anzahlen N_H und N_V addiert und die Gesamtsumme
der TSD- und ESD-Daten, die für
die Scan-Reihenfolge
mit bevorzugter vertikaler Richtung erzeugt werden, bezeichnet als
N_VH, wird gezählt.
-
In
einem Schritt 187 wird detektiert, ob N_HV > N_VH gilt oder nicht.
Falls N_HV > N_VH
gilt, wird in einem Schritt ST188 das Flag (Order), welches die Scan-Reihenfolge
anzeigt, auf "1" gesetzt, wodurch eine
Reihenfolge mit der Priorität
für das
vertikale (horizontale) Scannen festgelegt wird. Falls N_HV > N_VH nicht gilt, wird
in einem Schritt ST189 das Flag (Order), welches die Scan-Reihen folge
anzeigt, auf "0" gesetzt, wodurch
eine Reihenfolge mit der Priorität
für das
horizontale (vertikale) Scannen festgelegt wird. In einem Schritt
ST190 wird das Flag (Order), welches die Scan-Reihenfolge anzeigt,
an den Decoder übertragen.
-
Die
tatsächliche
Codierung der TSD- und ESD-Daten und der Vergleich der erzeugten
Informationsmenge kann genauer sein, da die Menge der Codierinformation
für die
jeweiligen TSD- und ESD-Daten unterschiedlich sein kann, wie oben
erläutert
wurde. Im Unterschied zu dem oben beschriebenen Verfahren zur Bestimmung
der Scan-Reihenfolge werden deshalb die TSD- und ESD-Daten codiert,
falls zunächst
das horizontale Scannen und anschließend das vertikale Scannen
ausgeführt
wird. Die Anzahl der bei einer solchen Codierung erzeugten Bits
wird mit der Anzahl der Bits verglichen, die durch die Codierung
der TSD- und ESD-Daten
erhalten werden, welche in dem Falle erzeugt werden, wenn zunächst das
vertikale Scannen und anschließend
das horizontale Scannen ausgeführt
werden. Als Vergleichsergebnis kann als Scan-Reihenfolge der Fall
gewählt
werden, bei dem die Anzahl der Codierbits der TSD- und ESD-Daten klein ist.
-
19 zeigt ein Flussdiagramm,
welches ein Verfahren zur Bestimmung einer Scan-Reihenfolge basierend
auf der Summe der erzeugten Bits der TSD- und ESD-Daten gemäß der Erfindung
darstellt. In einem Schritt ST191 wird eine VOP-Ebene oder ein Block mit vorgegebener
Größe aus der
Umrissinformation extrahiert, und die Summe der Bits, welche bei
der Codierung der TSD- und ESD-Daten beim horizontalen Scannen erhalten
wird, bezeichnet als N_H, wird berechnet. In einem Schritt ST192
wird die Summe der Bits, welche bei der Codierung der TSD- und ESD-Daten
beim vertikalen Scannen erhalten wird, bezeichnet als N_V, berechnet.
In einem Schritt ST193 werden die Anzahlen N_H und N_V addiert, und
die Bitsumme, die bei der Codierung aller TSD- und ESD-Daten mit
der Scan-Reihenfolge mit bevorzugter horizontaler Richtung erzeugt
wurden, bezeichnet als N_HV, wird gezählt. In einem Schritt ST194
wird die Bitsumme, welche bei der Codierung der TSD- und ESD-Daten beim vertikalen
Sannen erhalten wird, bezeichnet als N_V, berechnet. In einem Schritt
ST195 wird die Summe der TSD- und ESD-Daten für das horizontale Scannen,
bezeichnet als N_H, berechnet. In einem Schritt ST196 werden die
Anzahlen N_H und N_V addiert, und die Bitsumme, die bei der Codierung
aller TSD- und ESD-Daten erhalten wurde, welche mit der Scan-Reihenfolge
mit bevorzugter vertikaler Richtung erzeugt wurden, bezeichnet als
N_VH, wird gezählt.
-
In
einem Schritt 197 wird detektiert, ob N_HV > N_VH gilt oder nicht.
Im Falle, dass N_HV > N_VH gilt,
wird in einem Schritt ST198 das Flag (Order), welches die Scan-Reihenfolge
anzeigt, auf "1" gesetzt, wodurch
eine Prioritätsreihenfolge
für das
vertikale (horizontale) Scannen festgelegt wird. Im Falle, dass
N_HV > N_VH nicht
gilt, wird in einem Schritt ST199 das Flag (Order), welches die
Scan-Reihenfolge
anzeigt, auf "0" gesetzt, wodurch
eine Prioritätsreihenfolge
für das
horizontale (vertikale) Scannen festgelegt wird. In einem Schritt
ST200 wird das Flag (Order), welches die Scan-Reihenfolge anzeigt,
an den Decoder übertragen.
-
20 zeigt ein Flussdiagramm,
welches ein skalierbares Decodierverfahren für Umrissinformation unter der
Verwen dung einer Scan-Verschachtelung darstellt. In einem Schritt
ST201 kann eine Decodiervorrichtung nicht die Scan-Reihenfolge des vertikalen
und horizontalen Scannens bei der Codierung wissen, falls das Scan-Verschachtelungs-Verfahren verwendet
wird, um eine skalierbare Codierung der Umrissinformation auszuführen. Somit
werden in der Decodiervorrichtung analog zur Codiervorrichtung Längen der
horizontalen und vertikalen Randlinien in der Basisschicht verglichen
und die Scan-Reihenfolge wird bestimmt. In einem Schritt ST202 wird
detektiert, ob ein Flag (Order), das die in Schritt ST201 bestimmte
Scan-Reihenfolge anzeigt, einen Wert für das bevorzugte Ausführen des
vertikalen Scannens darstellt, nämlich
Order=1. Im Falle einer Prioritätsreihenfolge
des vertikalen Scannens wird das vertikale Decodierscannen in einem
Schritt ST205 ausgeführt,
und das horizontale Decodierscannen wird in einem Schritt ST206
ausgeführt.
Im Falle einer Prioritätsreihenfolge
des horizontalen Scannens wird das horizontale Decodierscannen in einem
Schritt ST203 ausgeführt,
und das vertikale Decodierscannen wird in einem Schritt ST204 ausgeführt. Falls
die Scan-Reihenfolge durch die Detektion der erzeugten Menge an
TSD- und ESD-Daten gemäß der Scan-Reihenfolge bestimmt
wird, sollte die Scan-Reihenfolge, die in der Codiervorrichtung
bestimmt wurde, an die Decodiervorrichtung als zusätzliche
Information übertragen
werden.
-
21 zeigt ein Flussdiagramm,
welches ein erfindungsgemäßes skalierbares
Decodierverfahren für
Umrissinformation zeigt, wobei Zusatzinformation, welche eine Scan-Reihenfolge anzeigt, übertragen
wird. In einem Schritt ST211 werden Codierdaten, eine Codierbasisschicht
und die Zusatzinformation empfangen. In einem Schritt ST212 wird detektiert,
ob oder ob nicht ein Flag Order, das die Zusatzinformation anzeigt,
einen Wert zum bevorzugten Ausführen
des vertikalen Scannens, nämlich Order=1,
repräsentiert.
Im Falle einer Prioritätsreihenfolge
des vertikalen Decodierscannens wird das vertikale Decodierscannen
in einem Schritt ST215 ausgeführt,
und ein horizontales Decodierscannen wird in einem Schritt ST216
ausgeführt.
Im Falle einer Prioritätsreihenfolge
des horizontalen Scannens wird das horizontale Decodierscannen in
einem Schritt ST213 ausgeführt,
und das vertikale Decodierscannen wird in einem Schritt ST214 ausgeführt. Auch
wenn die Scan-Reihenfolge
des vertikalen und horizontalen Scannens bestimmt wird, ist die Scan-Richtung
festgelegt, wobei die festgelegte Reihenfolge beispielsweise zunächst die
horizontale Richtung und anschließend die vertikale Richtung
ist oder zunächst
die vertikale Richtung und anschließend die horizontale Richtung
ist. Um einen Wechsel der Scan-Richtung
zum Zwecke eines Scannens der Reihe nach im tatsächlichen Scan-Vorgang zu vermeiden,
wird ein zu scannender Block symmetrisch nach rechts und links um
eine diagonalen Linie bewegt, oder der Block wird um 90° gedreht,
und zwar entsprechend der Scan-Reihenfolge.
-
22 zeigt eine Ausführungsform
einer Codiervorrichtung, in der eine Scan-Richtung festgelegt ist
und ein zu scannender Block symmetrisch gemäß der Erfindung bewegt wird.
Diese Ausführungsform
ist für
eine Scan-Reihenfolge gedacht, bei der zuerst das horizontale Scannen
und anschließend das
vertikale Scannen ausgeführt
wird, aber der Fall einer Scan-Richtung, bei der zuerst das vertikale Scannen
und anschließend
das horizontale Scannen durchgeführt
wird, kann analog wie nachfolgend beschrieben werden.
-
Eine
Scan-Reihenfolge-Bestimmungseinheit 221 vergleicht die
Längen
der horizontalen und vertikalen Randlinien der Basisschicht und
gibt ein Schaltsteuersignal gemäß dem Vergleichsergebnis aus.
Eine Schalteinheit 222 schaltet eine Verfeinerungsschicht
und die Basisschicht auf die erste und zweite Einheit 223, 224 zum
symmetrischen Bewegen, und zwar in Antwort auf das Schaltsteuersignal, das
von der Scan-Reihenfolge-Bestimmungseinheit 221 ausgegeben
wird. Eine Einheit 225 zum Scannen in horizontaler Richtung
und eine Einheit 226 zum Scannen in vertikaler Richtung
scannen die Verfeinerungsschicht und die Basisschicht horizontal und
vertikal. Die Scan-Reihenfolge-Bestimmungseinheit 221 vergleicht
Längen
der horizontalen und vertikalen Randlinien der Basisschicht. Falls
die horizontale Randlinie länger
ist als die vertikale Randlinie, erzeugt ein Scan mit bevorzugter
vertikaler Richtung Codierbits in kleinerer Menge, so dass die Scan-Reihenfolge-Bestimmungseinheit 221 die
Schalteinheiten 222 derart steuert, dass die Verfeinerungsschicht und
die Basisschicht auf die erste und zweite Einheit 223, 224 zum
symmetrischen Bewegen schalten. Die erste und zweite Einheit 223, 224 zum
symmetrischen Bewegen bewegt die Verfeinerungsschicht und die Basisschicht
symmetrisch entlang einer diagonalen Linie und gibt die Daten aus.
Falls die Scan-Reihenfolge auf eine Reihenfolge festgelegt ist, bei
der zuerst das horizontale Scannen und anschließend das vertikale Scannen
ausgeführt
werden, wird die horizontale Randlinie 230 in eine vertikale
Randlinie 230' umgewandelt,
wenn die horizontale Randlinie 230 symmetrisch um die diagonale
Linie 231 bewegt wird, wie in 23 gezeigt ist. D.h., die Menge an erzeugten
Codierbits kann vermindert werden, wie im vorangegangenen beschrieben
wurde. Die gleiche Beschreibung gilt auch für den Fall, dass die Scan-Reihen folge
auf eine Reihenfolge festgelegt ist, bei der zuerst das vertikale
Scannen und anschließend
das horizontale Scannen durchgeführt
wird. Durch eine symmetrische Bewegung der Verfeinerungsschicht
und der Basisschicht wird somit die horizontale Randlinie in eine
vertikale Randlinie und die vertikale Randlinie in eine horizontale
Randlinie umgewandelt. Selbst wenn zunächst das horizontale Scannen
und anschließend
das vertikale Scannen in einem Zustand ausgeführt werden, bei dem die vertikale
Randlinie länger
als die horizontale Randlinie ist, wird das Scannen in einer Richtung
ausgeführt,
in der die Codierbits in geringer Menge erzeugt werden, und zwar
ohne dass die Hardware verändert
werden muss.
-
24 zeigt ein Flussdiagramm,
welches ein skalierbares Codierverfahren darstellt, in dem eine
Scan-Reihenfolge festgelegt ist und ein Scanblock gemäß der Erfindung
symmetrisch bewegt wird. In einem Schritt ST241 wird eine vorbestimmte Scan-Reihenfolge
festegelegt, wobei die Codiervorrichtung und die Decodiervorrichtung
die Codierung/Decodierung in der vorbestimmten Scan-Reihenfolge
ausführen,
z.B. zuerst das horizontale Scannen und anschließend das vertikale Scannen, und
wobei Daten, welche die Scan-Reihenfolge anzeigen, festgelegt werden,
beispielsweise auf "1" gesetzt werden.
In den vorher beschriebenen Verfahren zum Bestimmen der Scan-Reihenfolge
wird detektiert, welche Scan-Reihenfolge verwendet werden kann,
so dass eine geringe Menge an Codierbits erzeugt werden; dies wird
beispielsweise durch Verfahren zum Bestimmen der Länge der
horizontalen und vertikalen Randlinien der Basisschicht und durch
das Bestimmen von Zusatzinformationen, welche von der Codiervorrichtung übertragen
werden, bewerkstelligt. In einem Schritt ST242 wird detek tiert,
ob oder ob nicht die bestimmte Scan-Reihenfolge zur Erzeugung einer
geringen Menge an Codierbits der festgelegten Scan-Reihenfolge entspricht.
Stimmen die Reihenfolgen überein,
wird in einem Schritt ST244 zuerst das horizontale Scannen gemäß der festen Scan-Reihenfolge
durchgeführt,
und in einem Schritt ST245 wird als Nächstes das vertikale Scannen durchgeführt. Falls
die bestimmte Reihenfolge nicht der festgelegten Scan-Reihenfolge
entspricht, wird der Block um 90° in
einem Schritt ST243 gedreht, und das horizontale und das vertikale
Scannen werden durchgeführt.
-
25 zeigt eine Ausführungsform
einer Decodiervorrichtung, bei der eine Scan-Reihenfolge festgelegt
ist und ein Scanblock symmetrisch gemäß der Erfindung bewegt wird.
Diese Ausführungsform ist
für die
Scan-Reihenfolge gedacht, bei der das horizontale Scannen zuerst
und anschließend
das vertikale Scannen durchgeführt
wird, aber der Fall einer Scan-Reihenfolge, bei der das vertikale
Scannen zuerst und anschließend
das horizontale Scannen durchgeführt
wird, kann in der gleichen Weise wie nachfolgend beschrieben werden.
-
Eine
Basisschicht-Decodiereinheit 250 decodiert die Basisschicht
der Codierdaten, die von der Codiervorrichtung übertragen werden. Eine Scan-Reihenfolge-Bestimmungseinheit 251 vergleicht
die Längen
der horizontalen und vertikalen Randlinien der Basisschicht und
gibt ein Schaltsteuersignal entsprechend dem Vergleichsergebnis
aus. Eine Schalteinheit 252 schaltet die Basisschicht auf die
symmetrische Bewegungseinheit 253 in Antwort auf das Schaltsteuersignal,
das von der Scan-Reihenfolge-Bestimmungseinheit 251 ausgegeben
wird. Die symmetrische Bewegungsein heit 253 bewegt die Basisschicht,
die von der Schalteinheit 252 ausgegeben wird, symmetrisch
um eine diagonale Linie oder dreht die Daten um 90° und gibt
diese aus. Eine Einheit 254 zum Decodierscannen in horizontaler
Richtung und eine Einheit 255 zum Decodierscannen in vertikaler
Richtung scannen die Basisschicht, die von der symmetrischen Bewegungseinheit 253 ausgegeben
wird bzw. nicht durch diese Einheit gelaufen ist, in horizontaler
und vertikaler Richtung. Eine zweite Schalteinheit 256 schaltet
die Verfeinerungsschicht, die von der Einheit 255 zum Decodierscannen
in vertikaler Richtung ausgegeben wird, auf eine umgekehrte symmetrische
Bewegungseinheit 257 in Antwort auf das Schaltsteuersignal
der Scan-Reihenfolge-Bestimmungseinheit 251.
Die umgekehrte symmetrische Bewegungseinheit 257 bewegt
die Verfeinerungsschicht, die von der zweiten Schalteinheit 256 eingegeben
wird, in einer entgegengesetzten Richtung zur symmetrischen Bewegungseinheit 253, oder
sie dreht die Verfeinerungsschicht um 90°, wodurch die ursprüngliche,
nicht symmetrisch bewegte Verfeinerungsschicht erzeugt und ausgegeben
wird.
-
Die
Scan-Reihenfolge-Bestimmungseinheit 251 vergleicht die
Längen
der horizontalen und vertikalen Randlinien in der Basisschicht.
Falls die horizontale Randlinie länger als die vertikale Randlinie ist,
werden Codierdaten, die von einer Übertragungsseite übertragen
werden, in einer bevorzugten vertikalen Scan-Richtung codiert, so
dass die Scan-Reihenfolge-Bestimmungseinheit 251 die
Schalteinheit 252 derart steuert, dass die Basisschicht
auf die symmetrische Bewegungseinheit 253 geschaltet wird. Eine
solche symmetrische Bewegung der Basisschicht wird durchgeführt, da
die Basisschicht ohne eine symmetrische Bewegung bei der Codierung übertragen
wird und die Verfeinerungsschicht nach einer symmetrischen Bewegung
codiert wird und anschließend übertragen
wird.
-
Die
symmetrische Bewegungseinheit 253 bewegt die Basisschicht
symmetrisch analog zur Codierseite und gibt diese aus. Falls die
vertikale Randlinie länger
als die horizontale Randlinie ist, werden die Codierdaten in einer
bevorzugten horizontale Scan-Richtung codiert, so dass die Scan-Reihenfolge-Bestimmungseinheit 251 die
Schalteinheit 252 derart steuert, dass die Basisschicht
auf die Einheit 254 zum Decodierscannen in horizontaler
Richtung und die Einheit 255 zum Decodierscannen in vertikaler
Richtung geschaltet wird, und zwar nicht über die erste symmetrische
Bewegungseinheit 253. Die symmetrische Bewegungseinheit 253 bewegt
die Basisschicht symmetrisch um die diagonale Linie und gibt sie
aus, wie vorher beschrieben wurde. Die Einheit 254 zum
Decodierscannen in horizontaler Richtung und die Einheit 255 zum
Decodierscannen in vertikaler Richtung decodieren die Basisschicht
und die Verfeinerungsschicht. Somit werden die Basisschicht und
die Verfeinerungsschicht gleichzeitig in die Einheit 254 zum
Decodierscannen in horizontaler Richtung und die Einheit 255 zum
Decodierscannen in vertikaler Richtung eingegeben, jedoch empfängt die Einheit 255 zum
Decodierscannen in vertikaler Richtung die Decodierdaten von der
Einheit 254 zum Decodierscannen in horizontaler Richtung
und führt
danach den vertikalen Decodierscan aus, wie in Bezug auf 10 und 11 erläutert wurde.
-
Falls
das Codieren nach der symmetrischen Bewegung ausgeführt wird,
liegt ein Zustand vor, in dem die Ansicht gedreht ist. Um die Ansicht
in den Originalzustand zurückzuführen, wird
deshalb eine umgekehrte symmetrische Bewe gung ausgeführt. D.h.,
falls die Basisschicht durch die symmetrische Bewegungseinheit 253 gelaufen
ist, schaltet die zweite Schalteinheit 256 die Verfeinerungsschicht, die
von der Einheit 255 zum Decodierscannen in vertikaler Richtung
ausgegeben wurde, auf die umgekehrte symmetrische Bewegungseinheit 257 in
Antwort auf das Schaltsteuersignal der Scan-Reihenfolge-Bestimmungseinheit 251.
Die umgekehrte symmetrische Bewegungseinheit 257 bewegt
die Verfeinerungsschicht, die von der zweiten Schalteinheit 256 eingegeben
wurde, symmetrisch in eine entgegengesetzte Richtung zu der symmetrischen
Bewegungseinheit 253, um hierdurch die ursprüngliche, nicht
symmetrisch bewegte Verfeinerungsschicht zu erzeugen und auszugeben.
-
26 zeigt ein Flussdiagramm,
welches ein skalierbares Decodierverfahren darstellt, bei dem eine
Scan-Reihenfolge festgelegt ist und ein Scanblock symmetrisch gemäß der Erfindung
bewegt wird. In einem Schritt ST261 wird eine vorbestimmte Scan-Reihenfolge
festgelegt und die Decodiervorrichtung führt die Decodierung in der
gleichen Scan-Reihenfolge
wie die Codiervorrichtung aus, beispielsweise wird zuerst das horizontale
Scannen und anschließend
das vertikale Scannen ausgeführt. Ferner
werden Daten, welche die Scan-Reihenfolge anzeigen, festgelegt,
beispielsweise auf "1" gesetzt. In den
zuvor beschriebenen Verfahren zur Bestimmung der Scan-Reihenfolge
wurde detektiert, welche Scan-Reihenfolge verwendet werden kann,
um eine kleine Anzahl an Codierbits zu erzeugen, beispielsweise
mittels Verfahren zur Bestimmung der Länge der horizontalen und vertikalen
Randlinien der Basisschicht und zur Bestimmung von Zusatzinformationen,
die von der Codiervorrichtung übertragen
werden. In einem Schritt ST262 wird detektiert, ob oder ob nicht
die bestimmte Scan-Reihenfolge für
die Erzeugung einer kleinen Anzahl an Codierbits mit der festgelegten
Scan-Reihenfolge übereinstimmt.
Im Falle einer Übereinstimmung
wird in einem Schritt ST264 zunächst
das horizontale Decodierscannen und anschließend der vertikale Decodierscann durchgeführt. Falls
keine Übereinstimmung
mit der Scann-Reihenfolge vorliegt, wird der Block symmetrisch in
Schritt ST263 bewegt, und der horizontale und vertikale Decodierscann
werden anschließend durchgeführt.
-
Wie
vorher erwähnt
wurde, kann gemäß der Erfindung
die Menge der erzeugten TSD- und ESD-Daten und die Menge der erzeugten
Bits insgesamt vermindert werden, indem eine Scann-Reihenfolge des
vertikalen und horizontalen Scannens unterschiedlich voneinander
basierend auf der Häufigkeit
der erzeugten TSD- und ESD-Daten oder basierend auf dem Typ der
Randlinien der Bilder verwendet wird, und zwar bei der Codierung
von Verfeinerungsschichten unter der Verwendung eines Scan-Verschachtelungs-Verfahren.
Hierdurch wird die Effizienz der Codierung erhöht.
-
Es
ist für
einen Fachmann ersichtlich, dass verschiedene Modifikationen und
Variationen in der Vorrichtung und dem Verfahren zum skalierbaren
Codieren/Decodieren von Umrissen in Übereinstimmung mit der Erfindung,
die in den Ansprüchen
definiert ist, gemacht werden können,
wobei diese Modifikationen immer noch im Schutzbereich der Erfindung
liegen. Es ist somit beabsichtigt, dass die vorliegende Erfindung
Modifikationen und Variationen der Erfindung umfasst, solange diese
in dem Schutzbereich der beigefügten
Ansprüche
sowie deren Äquivalente
liegen.