-
Technisches
Gebiet
-
Die
vorliegende Erfindung bezieht sich auf ein Bildkodierungsverfahren
und ein Bilddekodierungsverfahren zum digitalen Kodieren eines Bildes,
um dieses zu übertragen
oder zu speichern.
-
Stand der
Technik
-
Eine
Kodierung bewegter Bilder unterteilt im Allgemeinen ein Bild in
Blöcke
einer bestimmten Größe und führt eine
Intrabildvorhersage und eine Interbildvorhersage für jeden
Block durch. Anschließend
wendet sie eine orthogonale Transformation, z.B. eine diskrete Cosinustransformation
oder dergleichen, auf jeden Block der kleinsten Einheit eines Bereiches
(d.h. 4 × 4
Pixel) an, um somit eine Kodierung durchzuführen, die eine Kodierung mit
variabler Länge
auf der Grundlage der Laufebenenkodierung für Koeffizienten verwendet, die
mittels orthogonaler Transformation gewonnene Raumfrequenzkomponenten
aufweisen.
-
Die
Kodierung mit variabler Länge
weist den Werten der im Block enthaltenen Koeffizienten, auf die die
orthogonale Transformation angewendet wird (Ebene), sowie den Zahlen
bestehend aus einer Serie eines Koeffizienten 0 (Lauf) einen Kode
variabler Länge
zu. In diesem Fall wird eine Tabelle, die den Werten mit dem Kode
variabler Länge
entspricht, als VLC-Tabelle bezeichnet. Bei dem herkömmlichen
Verfahren wird nur eine Tabelle als VLC-Tabelle jeweils für die Intravorhersagekodierung
und die Intervorhersagekodierung vorbereitet (Bezug zu ISO/IEC 14496-2:
1999 (E) Information Technology – coding of audio-visual objects,
Part2: Visual (1.12.1999) S. 119, 7.4.1 Variable length decoding).
-
Bei
dem Kodierungsverfahren mit variabler Länge, das für die bestehende Technik erläutert worden ist,
wird nur eine Tabelle als VLC-Tabelle jeweils für die Intravorhersagekodierung
und die Intervorhersagekodierung vorbereitet. Es besteht daher das
Problem, dass sich die Kodierungseffizienz in Abhängigkeit
von einer Qualität
eines zu kodierenden aktuellen Bildes stark unterscheidet.
-
Um
dieses Problem zu lösen,
ist ein Verfahren denkbar, das mehrere Tabellen vorbereitet, um
somit auf diese Bezug zu nehmen durch Umschalten zwischen diesen
entsprechend der Anzahl der Koeffizienten ungleich 0 und in einem
aktuellen Block enthalten sind, auf den die orthogonale Transformation
angewendet wird. Um dies zu verwirklichen, ist es notwendig, eine
Kodierung durchzuführen,
indem eine Kodierung mit variabler Länge für die Anzahl der Koeffizienten
ungleich 0 angewendet wird, jedoch sind das Kodierungsverfahren
und das Dekodierungsverfahren noch nicht geschaffen worden.
-
EP 0 876 058 A1 offenbart,
dass Modusdaten eines zu kodierenden Blocks anhand der Modusdaten eines
bereits kodierten peripheren Blocks vorhergesagt werden und unter
Verwendung einer Kodeworttabelle kodiert werden, die entsprechend
einem Trefferverhältnis
der Vorhersage umgeschaltet wird. In der Kodeworttabelle ist die
Kodewortlänge
für die
Kodierung der Modi mit einem hohen Trefferverhältnis kürzer festgelegt.
-
G.
Bjontegaard, "Improved
Low Complexity Entropy Coding For Transform Coefficients", Joint Video Team
of ISO/IEC MPEG & ITU-T
VCEG (ISO/IEC JTC1/SC29/WG11 und ITU-T SG 16 26), 29. Januar 2002, S.
1–8, offenbart,
dass VLC-Tabellen entsprechend der Anzahl der Koeffizienten in einem
4 × 4-Block
verwendet werden.
-
Offenbarung
der Erfindung
-
Die
vorliegende Erfindung wurde im Hinblick auf diese Umstände erdacht,
wobei es eine Aufgabe der vorliegenden Erfindung ist, ein Bildkodierungsverfahren
sowie ein Bilddekodierungsverfahren vorzuschlagen, die die Kodierung
der Anzahl von Koeffizienten ungleich 0, die in dem Block enthalten
sind, auf den die orthogonale Transformation angewendet wird, mit
hoher Effizienz unabhängig
von der Qualität
des aktuellen Bildes verwirklichen.
-
Um
das obenerwähnte
Problem zu lösen,
werden ein Bildkodierungsverfahren und ein Bilddekodierungsverfahren
gemäß der vorliegenden
Erfindung, wie in den Ansprüchen
1 und 15 definiert, vorgeschlagen.
-
Somit
wird eine Verbesserung der Kodierungseffizienz verwirklicht, da
es möglich
ist, auf optimale Tabellen für
die Kodierung variabler Länge
Bezug zu nehmen, wenn die Anzahl der Koeffizienten ungleich 0, die in
einem aktuellen Block enthalten sind, kodiert wird.
-
Kurzbeschreibung
der Zeichnungen
-
1 ist
ein Blockdiagramm, das eine Struktur einer Ausführungsform einer Bildkodierungsvorrichtung
zeigt, die ein Bildkodierungsverfahren gemäß der vorliegenden Erfindung
verwendet.
-
2A ist
ein Musterdiagramm, das eine Skizze einer Verarbeitungsreihenfolge
von Makroblöcken
in jedem Bild zeigt. 2 ist ein Musterdiagramm,
das Makroblöcke
zeigt, die zu kodierten Blöcken
gehören,
die als Referenz verwendet werden, um eine Anzahl von Koeffizienten
eines zu kodierenden aktuellen Blocks zu kodieren.
-
3A ist
ein Blockdiagramm einer Struktur eines Koeffizientenzahlkodierers
gemäß der ersten
Ausführungsform
der vorliegenden Erfindung. 3B ist
ein Blockdiagramm, das eine Struktur eines Transformationsbeispiels
des Koeffizientenzahlkodierers zeigt.
-
4A und 4B sind
Musterdiagramme, die eine physikalische Position eines zu kodierenden
aktuellen Blocks und des als Referenz verwendeten kodierten Blocks
zeigen. 4A zeigt einen Fall der Verwendung
von drei benachbarten Blöcken,
während 4B einen
Fall der Verwendung von zwei benachbarten Blöcken zeigt.
-
5 ist
ein Musterdiagramm, das ein Beispiel eines Ablaufs zeigt, wenn die
Anzahl von Koeffizienten in einem Bitstrom mit Bezug auf Tabellen
transformiert wird.
-
6A und 6B sind
Musterdiagramme, die Referenzblöcke
für einen
zu kodierenden aktuellen Makroblock zeigen. 6A zeigt
den Fall der Verwendung von drei benachbarten Blöcken, während 6B den
Fall der Verwendung von zwei benachbarten Blöcken zeigt.
-
7A, 7B und 7C sind
Musterdiagramme, die eine Operation zeigen, bei der eine Koeffizientenzahlspeichereinheit
die Anzahl der Koeffizienten speichert. 7A zeigt
einen Fall, bei dem eine Verarbeitung zum nächsten Makroblock vorrückt, während 7B einen
Fall zeigt, bei dem die Verarbeitung zum nächsten Makroblock weiter vorrückt. 7C zeigt
einen Fall, bei dem der aktuelle Makroblock an der rechten Kante
des Bildes angeordnet ist und die Verarbeitung zum nächsten Makroblock
vorrückt.
-
8A, 8B und 8C sind
Blockdiagramme, die eine Struktur eines Transformationsbeispiels eines
Koeffizientenzahlkodierers gemäß der ersten
Ausführungsform
der vorliegenden Erfindung zeigen. 8A zeigt
einen Fall der Fixierung einer Kodetabelle. 8B zeigt
einen Fall der Fixierung einer VLC-Tabelle. 8C zeigt
einen Fall der Verwendung nur einer VLC-Tabelle ohne Verwendung
von Kodetabellen.
-
9 ist
ein Blockdiagramm, das eine Struktur eines Transformationsbeispiels
des Koeffizientenzahlkodierers gemäß der ersten Ausführungsform
der vorliegenden Erfindung zeigt.
-
10A ist ein Blockdiagramm, das eine Struktur eines
Koeffizientenzahlkodierers gemäß der zweiten
Ausführungsform
der vorliegenden Erfindung zeigt. 10B ist
ein Blockdiagramm, das eine Struktur eines Transformationsbeispiels
des Koeffizienten zahlkodierers zeigt.
-
11A und 11B sind
Musterdiagramme, die eine Position von Blöcken zeigen, die Ziel für Statistiken
der Anzahlen von Koeffizienten gemäss den zweiten und siebten
Ausführungsformen
der vorliegenden Erfindung sind.
-
12A ist ein Blockdiagramm, das eine Struktur eines
Koeffizientenzahlkodierers gemäß der dritten Ausführungsform
der vorliegenden Erfindung zeigt. 12B ist
ein Blockdiagramm, das eine Struktur eines Transformationsbeispiels
des Koeffizientenzahlkodierers zeigt.
-
13A ist ein Blockdiagramm, das eine Struktur eines
Koeffizientenzahlkodierers gemäß der vierten Ausführungsform
der vorliegenden Erfindung zeigt. 13B ist
ein Blockdiagramm, das eine Struktur eines Transformationsbeispiels
des Koeffizientenzahlkodierers zeigt.
-
14 ist
ein Blockdiagramm, das ein Verfahren zur Berechnung eines Beurteilungswertes
zeigt der mittels der Tabellenumschaltung gemäß dem vierten und neunten Ausführungsformen
der vorliegenden Erfindung erhalten wird.
-
15 ist
ein Blockdiagramm, das eine Struktur einer Bildkodierungsvorrichtung
gemäß der fünften Ausführungsform
der vorliegenden Erfindung zeigt.
-
16 ist
ein Blockdiagramm, das eine Struktur eines Koeffizientenzahlkodierers
gemäß der fünften Ausführungsform
der vorliegenden Erfindung zeigt.
-
17 ist
ein Blockdiagramm, das eine Struktur einer Ausführungsform einer Bilddekodierungsvorrichtung
und Verwendung eines Bilddekodierungsverfahrens gemäß der vorliegenden
Erfindung zeigt.
-
18A ist ein Blockdiagramm, das eine Struktur eines
Koeffizientenzahldekodierers gemäß der sechsten
Ausführungsform
der vorliegenden Erfindung zeigt. 18B ist
ein Blockdiagramm, das eine Struktur eines Transformationsbeispiels
des Koeffizientenzahldekodierers zeigt.
-
19 ist
ein Musterdiagramm, das ein Beispiel eines Ablaufs zeigt, wenn ein
Bitstrom einer Anzahl von Koeffizienten mit Bezug auf Tabellen in
die Anzahl von Koeffizienten transformiert wird.
-
20A und 20B sind
Blockdiagramme, die eine Struktur eines Transformationsbeispiels
eines Koeffizientenzahldekodierers gemäß der sechsten Ausführungsform
der vorliegenden Erfindung zeigen. 20A zeigt
einen Fall der Fixierung einer Kodetabelle. 20B zeigt
einen Fall der Fixierung einer VLC-Tabelle. 20C zeigt
einen Fall der Verwendung einer VLC-Tabelle ohne Verwendung von
Kodetabellen.
-
21 ist
ein Blockdiagramm, das eine Struktur eines Transformationsbeispiels
eines Koeffizientenzahldekodierers gemäß der sechsten Ausführungsform
der vorliegenden Erfindung zeigt.
-
22A ist ein Blockdiagramm zur Erläuterung
einer Operation der Verarbeitung, das eine Struktur eines Koeffizientenzahldekodierers
gemäß der siebten
Ausführungsform
der vorliegenden Erfindung zeigt. 22B ist
ein Blockdiagramm, das eine Struktur eines Transformationsbeispiels
des Koeffizientenzahldekodierers zeigt.
-
23A ist ein Blockdiagramm zur Erläuterung
einer Operation der Verarbeitung, das eine Struktur eines Koeffizientenzahldekodierers
gemäß der achten
Ausführungsform
der vorliegenden Erfindung zeigt. 23B ist
ein Blockdiagramm, das eine Struktur eines Transformationsbeispiels
des Koeffizientenzahldekodierers zeigt.
-
24A ist ein Blockdiagramm zur Erläuterung
einer Operation der Verarbeitung, das eine Struktur eines Koeffizientenzahldekodierers
gemäß der neunten
Ausführungsform
der vorliegenden Erfindung zeigt. 24B ist
ein Blockdiagramm, das eine Struktur eines Transformationsbeispiels
des Koeffizientenzahldekodierers zeigt.
-
25 ist
ein Blockdiagramm zur Erläuterung
einer Operation der Verarbeitung, das eine Struktur eines Koeffizientenzahldekodierers
gemäß der zehnten
Ausführungsform
der vorliegenden Erfindung zeigt.
-
26A und 26B sind
Darstellungen in Bezug auf ein Aufzeichnungsmedium zum Speichern
eines Programms, um ein Bildkodierungsverfahren sowie ein Bilddekodierungsverfahren
aller Ausführungsformen
in einem Rechnersystem zu verwirklichen. 26A ist
ein erläuterndes
Diagramm, das ein Beispiel eines physikalischen Formats einer flexiblen
Platte zeigt, die ein Hauptkörper
eines Aufzeichnungsmediums ist. 26B ist
ein erläuterndes
Diagramm, das ein Gesamterscheinungsbild der flexiblen Platte, eine
Struktur im Querschnitt und die flexible Platte selbst zeigt. 26C ist eine Darstellung, die eine Struktur für die Aufzeichnung
und Wiedergabe des Programms auf der flexiblen Platte FT zeigt.
-
27 ist
ein Blockdiagramm, das eine Gesamtstruktur eines Inhaltebereitstellungssystems
zeigt, das einen Inhaltelieferdienst verwirklicht.
-
28 ist
eine Skizze, die ein Beispiel eines Zellentelephons zeigt.
-
29 ist ein Blockdiagramm, das eine interne Struktur
des Zellentelephons zeigt.
-
30 ist ein Blockdiagramm, das ein Gesamtsystem
eines digitalen Rundfunksystems zeigt.
-
Bester Form
zur Ausführung
der Erfindung
-
Im
Folgenden werden Ausführungsformen
der vorliegenden Erfindung mit Bezug auf die Diagramme und Gleichungen
beschrieben.
-
(Erste Ausführungsform)
-
1 ist
ein Blockdiagramm, das eine Struktur einer Ausführungsform einer Bildkodierungsvorrichtung
zeigt, die ein Bildkodierungsverfahren gemäß der vorliegenden Erfindung
verwendet.
-
Die
Bildkodierungsvorrichtung enthält,
wie in 1 gezeigt ist, Vollbildspeicher 101 und 106,
eine Orthogonaltransformationseinheit 102, eine Quantisierungseinheit 103,
eine Inversquantisierungseinheit 104, eine Inversorthogonaltransformationseinheit 105,
eine Interbildvorhersageeinheit 107, eine Intrabildvorhersageeinheit 108,
eine Koeffizientenzahlerfassungseinheit 109, eine Koeffizientenzahlspeichereinheit 110,
einen Koeffizientenzahlkodierer 111, einen Koeffizientenwertkodierer 112,
eine Bitstromerzeugungseinheit 113, Schalter 114 und 115,
eine Differenzberechnungseinheit 116 und eine Additionsberechnungseinheit 117.
-
Der
Vollbildspeicher 101 speichert bewegte Bilder, die auf
bildweiser Basis in Anzeigereihenfolge eingegeben werden. Die Interbildvorhersageeinheit 107 erfasst
Bewegungsvektoren, die eine Position zeigen, die als optimal im
Suchbereich im Bild vorhergesagt wird, unter Verwendung von Bilddaten,
die in einer Kodierungsvorrichtung als Referenzbilder rekonstruiert
worden sind, um somit Vorhersagebilddaten auf der Grundlage der
Bewegungsvektoren zu erzeugen. Die Differenzberechnungseinheit 116 berechnet
eine Differenz zwischen den aus dem Vollbildspeicher 101 ausgelesenen
Eingabebilddaten und den von der Interbildvorhersageeinheit 107 eingegebenen
Vorhersagebilddaten, um somit Vorhersagerestbilddaten zu erzeugen.
-
Die
Intrabildvorhersageeinheit 108 erzeugt Vorhersagebilddaten
unter Verwendung der Bilddaten des kodierten Bereiches im aktuellen
Bild und erzeugt Vorhersagerestbilddaten durch Berechnung der Differenz zwischen
den erzeugten Vorhersagebilddaten und den Eingabebilddaten.
-
Die
Orthogonaltransformationseinheit 102 führt eine orthogonale Transformation
mit den eingegebenen Vorhersagerestbilddaten durch. Die Quantisierungseinheit 103 führt eine
Quantisierung mit dem orthogonal transformierten Daten durch und
erzeugt Koeffizienten, die Raumfrequenzkomponenten zeigen, was eine Aufgabe
für die
Kodierung variabler Länge
ist. Die Inversquantisierungseinheit 104 führt eine
inverse Quantisierung für
die in der obenerwähnten
Verarbeitung erzeugten Koeffizienten durch. Die Inversorthogonaltransformationseinheit 105 führt eine
inverse orthogonale Transformation mit den invers quantisierten
Daten durch und erzeugt rekonstruierte Vorhersagerestbilddaten.
Die Additionsberechnungseinheit 117 addiert die rekonstruierten
Restbilddaten, die von der Inversorthogonaltransformationseinheit 105 eingegeben
werden, und die von der Intervorhersageeinheit 107 eingegebenen
Vorhersagebilddaten, und erzeugt rekonstruierte Bilddaten. Der Vollbildspeicher 106 speichert
die erzeugten rekonstruierten Bilddaten.
-
Die
Koeffizientenzahlerfassungseinheit 109 erfasst die Anzahl
der Koeffizienten ungleich 0 (im Folgenden einfach als Anzahl von
Koeffizienten bezeichnet) aus jedem Block durch Untersuchen des
Wertes des erzeugten Koeffizienten. Die Koeffizientenzahlspeichereinheit 110 speichert
die Anzahlen der Koeffizienten, die von der Koeffizientenzahlerfassungseinheit 109 erfasst
worden sind. Der Koeffizientenzahlkodierer 111 nimmt auf
die Werte der Koeffizienten im Block Bezug, die bereits kodiert
und in der Koeffizientenzahlspeichereinheit 110 gespeichert
worden sind, und führt
eine Kodierung für
die Anzahlen der Koeffizienten unter Verwendung eines später erwähnten Verfahrens
durch. Der Koeffizientenwertkodierer 112 führt eine
Kodierung mit variabler Länge
für die
Werte der Koeffizienten selbst mit Bezug auf VLC-Tabellen durch,
die für
die Kodierung variabler Länge
notwendig sind, indem zwischen diesen unter Verwendung der Anzahlen
der Koeffizienten, die von der Koeffizientenzahlerfassungseinheit 109 erfasst
worden sind, umgeschaltet wird. Die Bitstromerzeugungs einheit 113 erzeugt
einen Bitstrom durch Addieren anderer Informationen über die
Bewegungsvektoren oder dergleichen, die von der Interbildvorhersageeinheit 107 eingegeben
worden sind, zu den Anzahlen der Koeffizienten und den Werten der
Koeffizienten, die kodiert worden sind.
-
Es
folgt eine Erläuterung
bezüglich
einer Operation einer Bildkodierungsvorrichtung, die wie oben beschrieben
aufgebaut ist.
-
Die
bewegten Bilder, die das Ziel der Kodierung sind, werden auf bildweiser
Basis in Anzeigereihenfolge in den Vollbildspeicher 101 eingegeben
und anschließend
in der Reihenfolge der Kodierung umgeordnet. Jedes Bild wird in
einen Block von z.B. 16 (horizontal) × 16 (vertikal) Pixel, als
Makroblock bezeichnet, unterteilt, wobei die anschließende Verarbeitung
unter Verwendung der Einheit eines Makroblocks durchgeführt wird. 2A ist
ein Musterdiagramm, das eine Skizze einer Verarbeitungsreihenfolge
von Makroblöcken
in jedem Bild zeigt, während 2B ein
Musterdiagramm ist, das Makroblöcke
zeigt, zu denen die kodierten Blöcke
gehören,
die als Referenz verwendet werden, um die Anzahlen der Koeffizienten
im aktuellen Block zu kodieren. Die 2B zeigt
einen Fall, bei dem ein Makroblock MP13 der aktuelle Makroblock
ist.
-
Die
Kodierung der Makroblöcke
in jedem Bild beginnt oben links und rückt einzeln nach rechts vor,
wie in 2A gezeigt ist, geht einen Schritt
nach unten, wenn die rechte Kante erreicht ist, und beginnt wieder
von links nach rechts. Der Makroblock, der aus dem Vollbildspeicher 101 ausgelesen
wird, wird zuerst in die Interbildvorhersageeinheit 107 eingegeben,
wenn ein zu kodierender aktuellen Makroblock unter Verwendung der Interbildvorhersage
kodiert werden soll. Die Interbildvorhersageeinheit 107 verwendet
rekonstruierte Bilddaten der im Vollbildspeicher 106 gespeicherten
kodierten Bilder als Referenzbilder zur Erfassung von Bewegungsvektoren
in jedem Block [d.h. 4 (horizontal) × 4 (vertikal) Pixel], der
ein weiter unterteilter Makroblock ist. Die Interbildvorhersageeinheit 107 gibt
Vorhersagebilddaten, die mittels der erfassten Eiewegungsvektoren
erzeugt worden sind, an die Differenzberechnungseinheit 116 aus.
Die Differenzberechnungseinheit 116 erzeugt Vorhersagerestbilddaten
durch Messen der Differenz zwischen den Vorhersagebilddaten und
den Einga bebilddaten des aktuellen Makroblocks.
-
Im
Gegensatz hierzu wird für
die Kodierung des Zielmakroblocks mittels der Intrabildvorhersage
der Makroblock, der aus dem Vollbildspeicher 101 ausgelesen
wird, zuerst in die Intrabildvorhersageeinheit 108 eingegeben.
Die Intrabildvorhersageeinheit 108 führt eine Intrabildvorhersage
unter Verwendung der Informationen über die umgebenden Blöcke durch
und erzeugt Vorhersagerestbilddaten.
-
Die
so erzeugten Vorhersagerestbilddaten durchlaufen die Verarbeitung
der orthogonalen Transformation in der Orthogonaltransformationseinheit 102,
die Verarbeitung einer Quantisierung in der Quantisierungseinheit 103 für jeden
Block, und werden anschließend
im Koeffizienten transformiert, für die die Kodierung variabler
Länge durchgeführt wird.
Diese Koeffizienten werden in die Koeffizientenzahlerfassungseinheit 109,
in den Koeffizientenwertkodierer 112 und die Inversquantisierungseinheit 104 eingegeben.
-
Die
Koeffizientenzahlerfassungseinheit 109 erfasst die Anzahl
der Koeffizienten ungleich 0 in jedem Block. Die Anzahlen der hier
erfassten Koeffizienten werden in der Koeffizientenzahlspeichereinheit 110 gespeichert.
Der Koeffizientenzahlkodierer 111 nimmt auf die Werte Bezug,
indem er aus der Koeffizientenspeichereinheit 110 die Anzahlen
der Koeffizienten in den kodierten Blöcken ausliest und eine Kodierung
für die Anzahl
der Koeffizienten im aktuellen Block durchführt. Ferner führt der
Koeffizientenwertkodierer 112 eine Kodierung der Werte
der Koeffizienten selbst unter Verwendung der Anzahlen von Koeffizienten
durch, die von der Koeffizientenzahlerfassungseinheit 109 erfasst
worden sind. Schließlich
erzeugt die Bitstromerzeugungseinheit 113 einen definitiven
Bitstrom durch Hinzufügen
der Anzahlen der Koeffizienten und der Werte der Koeffizienten,
die kodiert worden sind, zusammen mit anderen Informationen auf
den Bewegungsvektoren oder dergleichen zum Bitstrom.
-
Die
in die Inversquantisierungseinheit 104 eingegebenen Koeffizienten
durchlaufen die Verarbeitung der inversen Quantisierung in der Inversquantisierungseinheit 104,
sowie die Verarbeitung der inversen orthogona len Transformation
in der Inversorthogonaltransformationseinheit 105, und
werden anschließend
in rekonstruierte Vorhersagerestbilddaten transformiert. Als nächstes addiert
die Additionsberechnungseinheit 117 die rekonstruierten
Vorhersagerestbilddaten und die Vorhersagebilddaten, die von der
Interbildvorhersageeinheit 107 eingegeben worden sind,
um somit rekonstruierte Bilddaten zu erzeugen, und speichert diese
im Vollbildspeicher 106.
-
Somit
wurde oben eine Folge der Kodierung erläutert. Bezüglich einer Verarbeitung zur
Kodierung mit variabler Länge
der Anzahlen der Koeffizienten, die vom Koeffizientenzahlkodierer 111 durchgeführt wird,
werden Einzelheiten mit Bezug auf die 3 bis 9 sowie
auf die Diagramme 1 bis 7 erläutert.
-
3A ist
ein Blockdiagramm, das eine interne Struktur des Koeffizientenzahlkodierers 111 genauer zeigt.
-
Hierbei
ist ein Beispiel der Verwendung zweier Tabellen einer Kodetabelle
und einer VLC-Tabelle, um eine Kodierung mit variabler Länge für die Anzahl
der Koeffizienten durchzuführen,
gezeigt. Die Kodetabelle ist eine Tabelle zum Transformieren der
Anzahl der Koeffizienten in eine Kodezahl, während die VLC-Tabelle eine
Tabelle zum Transformieren der mittels der Kodetabelle erhaltenen
Kodezahl in einen Kode variabler Länge ist.
-
Der
Koeffizientenzahlkodierer 111 enthält, wie in 3A gezeigt
ist, eine Vorhersagewertberechnungseinheit 201, eine Kodetabellenspeichereinheit 202,
eine Kodetabellenauswahleinheit 203, eine VLC-Tabellenauswahleinheit 204,
eine VLC-Tabellenspeichereinheit 205 und einen Koeffizientenzahlkodierer 206.
-
Zuerst
werden die Anzahlen der Koeffizienten der kodierten Blöcke am Rand
von der in 1 gezeigten Koeffizientenanzahlspeichereinheit 110 in
die Vorhersagewertberechnungseinheit 201 eingegeben. Die Vorhersagewertberechnungseinheit 201 bestimmt
den Vorhersagewert (Prädiktionswert)
durch Berechnen eines Mittelwertes dieser Werte. Ein Maximal wert,
ein Minimalwert oder ein Mediumwert können anstelle des Mittelwertes
als Verfahren zum Bestimmen des Vorhersagewertes verwendet werden.
-
4A ist
ein Musterdiagramm, das eine Ortsbeziehung zwischen einem zu kodierenden
aktuellen Block und den als Referenz zu verwendenden kodierten Blöcken zeigt.
Hierbei ist ein Block X ein aktueller Block, während drei Blöcke an einer
Position der Blöcke
B, C und D die Referenzblöcke
sind. Wenn bei den drei Blöcken
an der Position der Blöcke
B, C und D die Blöcke
nicht kodiert sind oder außerhalb
des Bildes oder außerhalb
des Streifens angeordnet sind, der ein in mehrere Abschnitte unterteiltes
Bild ist, wird an den Referenzblöcken
entsprechend dem Diagramm 1 eine Änderungen vorgenommen.
-
-
Bei
den Zeichen in Diagramm 1 bezeichnet das Zeichen O einen kodierten
Block, während
das Zeichen X einen Block bezeichnet, auf den nicht Bezug genommen
werden kann, da er entweder nicht kodiert ist oder außerhalb
des Bildes oder außerhalb
des Streifens angeordnet ist. Wenn z.B. nur auf einen Block C nicht Bezug
genommen werden kann, zeigt dies, dass die Referenzblöcke die
Blöcke
A, B und D sind. Das Diagramm 1 zeigt eine Beziehung zwischen einer
Bedingung der Referenzblöcke
und den Blöcken,
auf die Bezug genommen werden kann, jedoch sind die Muster nicht
hierauf beschränkt.
Wenn ferner keine Blöcke
gefunden werden, wird entweder ein Wert 0 oder ein anderer beliebiger
Wert direkt als Vorhersagewert genommen.
-
Die
Kodetabellenauswahleinheit 203 wählt eine Kodetabelle für eine aktu elle
Nutzung aus mehreren Kodetabellen, die in der Kodetabellenspeichereinheit 202 gespeichert
sind, entsprechend einem von der Vorhersagewertberechnungseinheit 201 berechneten
Vorhersagewert aus.
-
Das
Diagramm 2 ist ein Beispiel einer Kodetabelle, in der die Anzahlen
der Koeffizienten den im voraus mit der Kodetabellenspeichereinheit 202 vorbereiteten
Kodeanzahlen entsprechen.
-
-
Gemäß diesem
Beispiel weist eine Kodetabelle 1 z.B. Kodeanzahlen zu, die zu den
Anzahlen der Koeffizienten identisch sind, während eine Kodetabelle 2 die
Kodeanzahlen so zuweist, dass ein Wert 2 der Koeffizientenanzahl
eine zentrale Rolle spielt. Vier Typen von Kodetabellen sind hier
vorbereitet; die Anzahlen der Typen von Tabellen und die Werte der
Tabellen sind jedoch nicht auf diejenigen beschränkt, die im Diagramm 2 verwendet
werden. Auch das Diagramm 3 stellt Auswahlkriterien für Kodetabellen
auf der Grundlage eines Vorhersagewertes dar.
-
-
Gemäß diesem
Beispiel wählt
die Kodetabellenauswahleinheit 203 eine Kodetabelle wie
folgt aus: sie nimmt auf eine Kodetabelle 1 Bezug, wenn der von
der Vorhersageberechnungseinheit 201 berechnete Vorhersagewert
nicht größer als
2 ist, während
sie auf eine Kodetabelle 2 Bezug nimmt, wenn der Vorhersagewert größer oder
gleich 3 und kleiner oder gleich 5 ist. Die Art der Zuweisung von
Vorhersagewerten und der Elemente der Referenztabellen ist nicht
auf diejenigen beschränkt,
die im Diagramm 3 verwendet werden.
-
Die
VLC-Tabellenauswahleinheit 204 wählt eine VLC-Tabelle für die aktuelle
Verwendung aus mehreren VLC-Tabellen, die in der VLC-Tabellenspeichereinheit 205 gespeichert
sind, entsprechend dem von der Vorhersageberechnungseinheit 201 berechneten
Vorhersagewert aus.
-
Das
Diagramm 4 ist ein Beispiel einer VLC-Tabelle, in der Kodeanzahlen
im voraus mittels der VLC-Tabellenspeichereinheit 205 entsprechend
mit Kodes mit variabler Länge
vorbereitet worden sind.
-
-
Gemäß diesem
Beispiel wird eine VLC-Tabelle 1 im Vergleich mit einer VLC-Tabelle
4 mit der Tendenz entworfen, dass eine Bitmenge zunimmt, wenn die
Kodeanzahl groß ist,
und abnimmt, wenn die Kodeanzahl klein ist. Dies zeigt, dass die
VLC-Tabelle 1 eine Kodierung mit variabler Länge effektiver durchführen kann, wenn
eine Erscheinungswahrscheinlichkeit der Kodeanzahl sich in dem Bereich
konzentriert, wo die Werte klein sind, während die VLC-Tabelle 4 effektiver
arbeiten kann, wenn eine Erscheinungswahrscheinlichkeit zu dem Bereich
streut, wo die Werte groß sind.
Hier sind vier Typen von Tabellen vorbereitet; die Anzahl der Typen von
Tabellen und die Werte der Tabellen sind jedoch nicht auf diejenigen
beschränkt,
die im Diagramm 4 verwendet wurden. Ferner präsentiert das Diagramm 5 die
Auswahlkriterien für
VLC-Tabellen auf der Grundlage eines Vorhersagewertes.
-
-
Gemäß diesem
Beispiel wählt
die VLC-Tabellenauswahleinheit 204 eine VLC-Tabelle wie
folgt aus: sie nimmt auf eine VLC-Tabelle 1 Bezug, wenn der von
der Vorhersagewertberechnungseinheit 201 berechnete Vorhersagewert
nicht größer als
1 ist, während
sie auf eine VLC-Tabelle 2 Bezug nimmt, wenn der Vorhersagewert
größer oder
gleich 2 und kleiner oder gleich 3 ist. Die Art der Zuweisung von
Vorhersagewerten und der Elemente der Referenztabellen ist nicht
auf diejenigen beschränkt,
die im Diagramm 5 verwendet wurden.
-
Der
Koeffizientenzahlkodierer 206 nimmt auf die Kodetabelle
und die VLC-Tabelle
Bezug, die mit der obigen Verarbeitung ausgewählt worden sind, und führt eine
Kodierung mit variabler Länge
für die
Anzahl der Koeffizienten im eingegebenen aktuellen Block durch.
Der Koeffizientenzahlkodierer 206 transformiert zuerst die
Anzahl der Koeffizienten in eine Kodezahl unter Verwendung der Kodetabelle
und transformiert anschließend
diese entsprechend der Kodezahl unter Verwendung der VLC-Tabelle
in einen Kode variabler Länge. 5 ist
ein Musterdiagramm, das ein Beispiel der Kodierung zeigt, wenn der
von der Vorhersageberechnungseinheit 201 berechnete Vorhersagewert "6" ist und die Anzahl der Koeffizienten
im aktuellen Block "4" ist. Eine in 5 gezeigte
Kodetabelle 2 wird bei der Kodetabellenauswahleinheit 203 unter
Verwendung des Diagramms 3 und des Diagramms 2 entsprechend dem
Vorhersagewert "6" ausgewählt, wobei
ferner eine in S gezeigte VLC-Tabelle
3 bei der VLC-Tabellenauswahleinheit 204 unter
Verwendung des Diagramms 5 und des Diagramms 4 ausgewählt wird.
Der Koeffizientenzahlkodierer 206 transformiert die eingegebene
Anzahl der Koeffizienten "4" in eine Kodenummer "2" entsprechend der Kodetabelle 3, und
erzeugt ferner einen definitiven Bitstrom "0100" entsprechend
der VLC-Tabelle 3.
-
Im
Folgenden werden die Einzelheiten einer Speichererarbeitung einer
Anzahl von Koeffizienten, die von der Koeffizientenzahlspeichereinheit 110 durchgeführt wird,
beschrieben. 6A ist ein Musterdiagramm, das
die Referenzblöcke
mit Bezug auf einen zu kodierenden aktuellen Makroblock in der Vorhersagewertberechnungseinheit 201 anzeigt.
Hierbei zeigt ein schwarzer Rand, der die kodierten Blöcke B1–B16 enthält, den aktuellen
Makroblock, während
ein schraffierter Abschnitt die Referenzblöcke mit Bezug auf den aktuellen
Makroblock zeigt. Ferner zeigen die den Blöcken zugewiesenen Zahlen die
Reihenfolge der Kodierung im Makroblock.
-
Die
Koeffizientenzahlspeichereinheit 110 speichert z.B. zum
Zeitpunkt des Beginns der Verarbeitung des in 6A gezeigten
aktuellen Makroblocks die Anzahlen der Koeffizienten, die von der
Koeffizientenzahlerfassungseinheit 109 erfasst worden sind,
wenigstens für
die in 6A gezeigten Referenzblöcke, die
für den
aktuellen Makroblock nötig
sind. Das heißt,
die Koeffizientenzahlspeichereinheit 110 speichert die
Anzahlen der Koeffizienten, die gemäß den Blöcken des aktuellen Makroblocks
(B1, B2, B3, ... und B16) erfasst worden sind, welche sequenziell
zu verarbeiten sind. Wenn z.B. der aktuelle Block ein Block B6 ist,
speichert die Koeffizientenzahlspeichereinheit 110 die
Anzahlen jedes Koeffizienten von B1, B2, B3, B4 und B5, die bereits verarbeitet
worden sind, zusätzlich
zu den in 6A schraffiert gezeigten Referenzblöcken. Anschließend speichert
die Koeffizientenzahlspeichereinheit 110 die Anzahl der
Koeffizienten dieses Blocks B6, wenn sie von der Koeffizientenzahlerfassungseinheit 109 erfasst
worden ist. Somit speichert die Koeffizientenzahlspeichereinheit 110 die
Anzahlen der Koeffizienten, die von den Blöcken im aktuellen Makroblock
erfasst worden sind (B1, B2, B3, ... und B16), die sequenziell zu
verarbeiten sind.
-
Wenn
anschließend
z.B. der aktuelle Makroblock ein Makroblock MB11 ist, wie in 2 gezeigt, speichert die Koeffizientenzahlspeichereinheit 110 wenigstens
die Anzahlen der Koeffizienten der Blöcke in einer unteren Reihe
und einer rechten Spalte (schraffierte Blöcke) des Makroblocks MB11,
wie in 7A gezeigt ist, wenn die Verarbeitung
des Makroblocks MB11 endet, und rückt zum nächsten Makroblock MB12 vor.
Wenn die Verarbeitung des Makroblocks MB12 endet und die Verarbeitung
zum nächsten
Makroblock MB13 vorrückt,
speichert anschließend
die Koeffizientenzahlspeichereinheit 110 wenigstens die
Anzahlen der Koeffizienten für
die Blöcke,
die in der unteren Reihe und in der rechten Spalte des Makroblocks
MB12 angeordnet sind, in der gleichen Weise wie die Anzahlen der
Koeffizienten der Blöcke
in der unteren Reihe des Makroblocks MB11 (schraffierte Blöcke), wie
in 7B gezeigt ist.
-
Wenn
z.B. der aktuelle Makroblock an der rechten Kante des Bildes angeordnet
ist, wie der in 2B gezeigte Makroblock MB9,
speichert die Koeffizientenzahlspeichereinheit 110 wenigstens
die Anzahlen der Koeffizienten der Blöcke in der unteren Reihe des
Makroblocks MB9 (schraffierte Blöcke),
wie in 7B gezeigt ist, wenn die Verarbeitung
des Makroblocks MB9 endet, wobei die Verarbeitung zum nächsten Makroblock
MB10 vorrückt.
-
Wenn
der aktuelle Makroblock an der Unterkante des Bildes angeordnet
ist, wie der in 2B gezeigte MBm, speichert die
Koefftizientenzahlspeichereinheit 110 wenigstens die Anzahlen
der Koeffizienten der Blöcke
in der rechten Spalte des Makroblocks MBm, wie in 7C gezeigt
ist, wenn die Verarbeitung des Makroblocks MBm endet und die Verarbeitung
zum nächsten
Makroblock MBn vorrückt.
-
Die
Koeffizientenzahlspeichereinheit 110 speichert somit die
Anzahlen der Koeffizienten für
die Blöcke,
auf die Bezug genommen werden soll. Es ist möglich, zu einem willkürlichen
Zeitpunkt die Informationen über
die Anzahl der Koeffizienten der Blöcke, die in der obigen Erläuterung
nicht gespeichert werden sollen, zu löschen, wenn sie nicht länger als
Referenz verwendet werden. Es ist z.B. möglich, zu löschen, wenn die Verarbeitung
zum nächsten
Makroblock vorrückt,
sowie während
der Verarbeitung des Makroblocks. Ferner erfordern die Anzahlen
der Koeffizienten in den Blöcken,
die nicht mehr als Referenz verwendet werden, nicht immer die Verarbeitung
der Löschung.
Zum Beispiel kann die Koeffizientenzahlspeichereinheit 110 die
Anzahlen der Koeffizienten in den Blöcken, auf die nicht mehr Bezug
genommen wird, als unnötig
identifizieren und kann diese bei Bedarf überschreiben.
-
Oben
ist erläutert
worden, dass es möglich
ist, auf die Anzahlen der Koeffizienten der kodierten Blöcke Bezug
zu nehmen, indem diese in der Koeffizientenzahlspeichereinheit 110 gespeichert
werden. Es kann jedoch bei Bedarf ein System zum Berechnen der Anzahl
der Koeffizienten verwendet werden, in dem nicht die Werte der Anzahl
der Koeffizienten selbst gespeichert werden, sondern z.B. die Werte
der Koeffizienten in den Blöcken,
welche in Raumfrequenzkomponenten transformiert werden.
-
In
der vorliegenden Ausführungsform
ist es möglich,
wie oben erwähnt
worden ist, einen Vorhersagewert unter Verwendung der Anzahlen der
Koeffizienten in den kodierten benachbarten Blöcken zu berechnen, um somit
die Kodierung der Anzahl der Koeffizienten effizient durchzuführen, selbst
für die
Bilder, deren Erscheinungswahrscheinlichkeit der Koeffizienten nicht
gleichmäßig ist,
indem entsprechend dem Vorhersagewert adaptiv auf die Kodetabelle
und die VLC-Tabelle Bezug genommen wird.
-
Wie
oben beschrieben worden ist, kann dies ferner einer Schwankung einer
Position entsprechen, wo die Erscheinungswahrscheinlichkeit der
Anzahl der Koeffizienten mit Bezug auf die Kodetabelle am höchsten ist,
indem diese entsprechend dem Vorhersagewert umgeschaltet wird. Dies
kann ferner der Größe der Verteilung
der Erscheinungswahrscheinlichkeit der Anzahl der Koeffizienten
entsprechen, indem die VLC-Tabellen für den Bezug entsprechend dem
Vorhersagewert umgeschaltet werden. Folglich ist es möglich, eine
effektive Kodierung der Anzahl der Koeffizienten durchzuführen.
-
Es
ist ferner möglich,
bei der Vorhersagewertberechnungseinheit 201 nur zwei Blöcke, die
an der Position der Blöcke
B und D angeordnet sind, für
einen zu kodierenden aktuellen Block X, wie in 4B gezeigt, zu
verwenden, anstelle der Verwendung von drei benachbarten Blöcken als
Referenzblöcke,
wie in 4A gezeigt ist. Bezüglich der
Referenzblöcke,
wie im Diagramm 5 gezeigt, wird eine Änderung vorgenommen, falls einer
von zwei Blöcken
an der Position der Blöcke
B und D nicht kodiert ist oder außerhalb des Bildes oder außerhalb
des Streifens angeordnet ist.
-
-
Bei
den Zeichen im Diagramm 6 bezeichnet das Zeichen O einen kodierten
Block und das Zeichen X einen Block, auf den nicht Bezug genommen
werden kann, da er entweder nicht kodiert ist oder außerhalb
des Bildes oder außerhalb
des Streifens angeordnet ist, wie in Diagramm 1. Das Diagramm 6
zeigt eine Beziehung zwischen den Bedingungen der Referenzblöcke und
den Blöcken,
auf die Bezug genommen werden kann, jedoch sind die Muster nicht
hierauf beschränkt.
Wenn keine Referenzblöcke
gefunden werden, kann entweder ein Wert 0 oder ein anderer willkürlicher
Wert direkt als Vorhersagewert genommen werden. In diesem Fall braucht
die Koeffizientenzahlspeichereinheit 110 nur die Anzahlen
der Koeffizienten, die bei der Koeffizientenzahlerfassungseinheit 109 erfasst
worden sind, wenigstens für
die in 6B gezeigten Referenzblöcke speichern,
die für
den aktuellen Makroblock notwendig sind.
-
Es
ist ferner möglich,
als Verfahren zum Berechnen eines Vorhersagewertes in der Vorhersagewertberechnungseinheit 201 z.B.
ein optimales Verfahren gemäß einer
jeden Sequenz, einer jeden GOP, eines jeden Bildes oder eines jeden
Streifens auszuwählen,
statt das Verfahren auf die Verwendung entweder eines Mittelwertes,
eines Maximalwertes, eines Minimalwertes oder eines Mediumwertes
zu fixieren. Der Kode für die
Identifizierung des Berechnungsverfahrens, das dann ausgewählt wird,
wird einem Kopfabschnitt der Sequenz, der GOP, des Bildes oder des
Streifens hinzugefügt.
Der Streifen ist ein Bild, das in mehrere Sektionen unterteilt ist.
Eine Sektion einer Spalte in einer Querrichtung, die auf einer Makroblock-zu-Makroblock-Basis unterteilt
ist, ist ein Beispiel hierfür.
-
Ferner
ist es möglich,
z.B. entweder einen Mittelwert, einen Maximalwert, einen Minimalwert
oder einen Mediumwert gemäß dem Mittelwert
der Anzahl der Koeffizienten in den kodierten Referenzblöcken auszuwählen. Das
Diagramm 7 zeigt diese Auswahlkriterien.
-
-
Gemäß diesem
Beispiel wird ein Minimalwert der Anzahlen der Koeffizienten von
mehr als einem Referenzblock als ein Vorhersagewert angewendet,
wenn z.B. ein Mittelwert kleiner oder gleich 4 ist, und ein Mittelwert
als Vorhersagewert angewendet, wenn der Mittelwert größer oder
gleich 5 und kleiner oder gleich 8 ist. Die positiven Effekte der
Verbesserung der Kodierungseffizienz können in beiden Fällen erhalten
werden: durch Auswählen
eines Maximalwertes, da eine Wahrscheinlichkeit, das eine größere Anzahl
von Koeffizienten erscheint, in den Blöcken höher wird, in denen der Quantisierungsschritt
klein ist und die Bewegungen kompliziert sind; und durch Auswählen eines
Minimalwertes, da eine Wahrscheinlichkeit, dass eine kleinere Anzahl
von Koeffizienten erscheint, in den Blöcken höher wird, in denen der Quantisierungsschritt
in umgekehrter Weise groß ist
und die Bewegung einfach ist. Die Art der Zuweisung des Mittelwertes
oder der Elemente, die als Vorhersagewertberechnungsverfahren angegeben
sind, ist nicht auf diejenigen beschränkt, die im Diagramm 7 angegeben
sind.
-
Der
Koeffizientenzahlkodierer 111 in der vorliegenden Ausführungsform
führt eine
Kodierung mit variabler Länger
für den
Wert der Anzahl der Koeffizienten selbst durch. Die Differenzberechnungseinheit 207 kann
jedoch einen Differenzwert zwischen dem in der Vorhersagewertberechnungseinheit 201 berechneten Vorhersagewert
und dem Wert der Anzahl der Koeffizienten, der eingegeben worden
ist, berechnen, um somit eine Kodierung für den gewonnenen Wert mit der
gleichen Verarbeitung durchzuführen,
wie in der obigen Ausführungsform
beschrieben worden ist. Die positiven Wirkungen können für die Verbesserung
der Kodierungseffizienz für
ein Bild erhalten werden, in welchem eine Änderung der Anzahl der Koeffizienten
unter den umgebenden Blöcken
kleiner wird, wenn Änderungen
in der Helligkeit und im Farbwert über den Bildschirm monoton
sind.
-
Ferner
führt der
Koeffizientenzahlkodierer 111 eine Kodierung durch, durch
Umschalten sowohl der Kodetabelle als auch der VLC-Tabelle entsprechend
dem Vorhersagewert auf der Grundlage der Anzahl der Koeffizienten
in den benachbarten Blöcken;
diese Tabellen brauchen jedoch nicht umgeschaltet werden, sondern
können
fixiert sein. Dies kann verwirklicht werden, indem nur eine Speichereinheit
verwendet wird, die entweder einen bestimmten Typ von Kodetabellen
oder einen bestimmten Typ von VLC-Tabellen aufweist, anstatt Tabellenauswahleinheiten
zu verwenden. 8A ist ein Blockdiagramm, das
eine Struktur des Koeffizientenzahlkodierers 111 für die Durchführung einer
Kodierung variabler Länger
der Anzahl der Koeffizienten durch Fixieren nur einer Kodetabelle
zeigt. Ferner ist 8B ein Blockdiagramm, das eine
Struktur des Koeffizientenzahlkodierers 111 zum Durchführen einer
Kodierung variabler Länge
der Anzahl der Koeffizienten durch Fixieren nur einer VLC-Tabelle
zeigt. Im Fall der Fixierung nur einer Kodetabelle enthält der Koeffizientenzahlkodierer 111,
wie in 8A gezeigt ist, eine Kodetabellenspeichereinheit 301 anstelle
der Kodetabellenspeichereinheit 202 und der Kodetabellenauswahleinheit 203,
wie in 3A gezeigt ist. Die Kodetabellenspeichereinheit 301 weist
einen Typ von Kodetabelle auf. Anschließend transformiert der Koeffizientenzahlkodierer 206 zuerst
die Anzahl der Koeffizienten in eine Kodezahl unter Verwendung einer
in der Kodetabellenspeichereinheit 301 gespeicherten Kodetabelle,
und transformiert anschließend
die Kodezahl in einem Kode variabler Länger unter Verwendung einer
VLC-Tabelle, die von der VLC-Tabellenauswahleinheit 204 ausgewählt worden
ist.
-
Andererseits
enthält
der Koeffizientenzahlkodierer 111, wie in 8B gezeigt
ist, eine VLC-Tabellenspeichereinheit 302 anstelle der
VLC-Tabellenspeichereinheit 205 und
der VLC-Tabellenauswahleinheit 204, die in 3A gezeigt
sind. Die VLC-Tabellenspeichereinheit 302 weist einen Typ
von VLC-Tabelle auf. Anschließend
transformiert der Koeffizientenzahlkodierer 206 zuerst
die Anzahl der Koeffizienten in eine Kodezahl unter Verwendung der
von der Kodetabellenauswahleinheit 203 ausgewählten Kodetabelle,
transformiert anschließend
die Kodezahl unter Verwendung der in der VLC-Tabellenspeichereinheit 302 gespeicherten VLC- Tabelle in einen
Kode mit variabler Länge.
-
Durch
Fixieren entweder der Kodetabelle oder der VLC-Tabelle, statt zwischen
diesen umzuschalten, kann somit der Durchsatz für das Umschalten der Tabellen
reduziert werden, oder es kann eine Speichergröße zum Speichern mehrerer Tabellen
reduziert werden, wenngleich die Effekte der Kodierungseffizienz
mehr oder weniger abnehmen.
-
Ferner
kann der Koeffizientenzahlkodierer 111 eine Kodierung variabler
Länge durchführen, indem
er nur die VLC-Tabellen gemäß dem Vorhersagewert
auf der Grundlage der Anzahlen der Koeffizienten in den benachbarten
Blöcken
umschaltet, ohne Kodetabellen zu verwenden. 8C ist
ein Blockdiagramm, das eine Struktur des Koeffizientenzahlkodierers 111 für die Durchführung der
Kodierung mit variabler Länge
der Anzahl der Koeffizienten unter Verwendung nur der VLC-Tabellen
ohne Kodetabellen zeigt. In diesem Fall, wie in 8C gezeigt
ist, enthält
der Koeffizientenzahlkodierer 111 weder die Kodetabellenspeichereinheit 202 noch die
Kodetabellenauswahleinheit 203. Der Koeffizientenzahlkodierer 111 wählt eine
VLC-Tabelle für
die aktuelle Verwendung aus mehreren VLC-Tabellen aus, die in der
VLC-Tabellenspeichereinheit 304 gespeichert sind. Anschließend transformiert
der Koeffizientenzahlkodierer 206 direkt die Anzahl der
Koeffizienten in den Kode variabler Länge, ohne sie in die Kodezahl
zu transformieren, wie oben gezeigt ist. Auf diese Weise wird in
den Beispielen der VLC-Tabellen, die im Diagramm 4 gezeigt sind,
der als Kodezahlen gezeigte Teil durch Werte der Anzahl der Koeffizienten
ersetzt.
-
Ferner
kann der Fall, bei dem der Koeffizientenzahlkodierer 111 eine
Kodierung variabler Länge
unter Verwendung eines Differenzwertes zwischen einem Vorhersagewert
und einem Wert der Anzahl der Koeffizienten anstelle eines Wertes
der Anzahl der Koeffizienten durchführt, in der gleichen Weise
behandelt werden. 9 ist ein Blockdiagramm, das
als Beispiel hierfür
eine Struktur des Koeffizientenzahlkodierers 111 zum Durchführen einer
Kodierung variabler Länge
für einen
Differenzwert zwischen dem Vorhersagewert und der Anzahl der Koeffizienten
durch Fixieren sowohl einer Kodetabelle als auch einer VLC-Tabelle
zeigt. In diesem Fall enthält
der Koeffizientenzahlkodierer 111, wie in 9 gezeigt
ist, eine Kodetabellenspeichereinheit 301 anstelle der
Kodetabellenspeichereinheit 202 und der Kodetabellenauswahleinheit 203,
die in 3A gezeigt sind, sowie eine
VLC-Tabellenspeichereinheit 302 anstelle der VLC-Tabellenspeichereinheit 205 und
der VLC-Tabellenauswahleinheit 204. Die Kodetabellenspeichereinheit 301 weist
einen Typ von Kodetabellen auf, während die VLC-Tabellenspeichereinheit 302 einen
Typ von VLC-Tabellen aufweist. Anschließend transformiert der Koeffizientenzahlkodierer 206 zuerst
den Differenzwert zwischen der Anzahl der Koeffizienten und dem
Vorhersagewert in eine Kodezahl unter Verwendung der in der Kodetabellenspeichereinheit 301 gespeicherten
Kodetabelle, und transformiert anschließend die Kodezahl in einen
Kode variabler Länge
unter Verwendung der in der VLC-Tabellenspeichereinheit 302 gespeicherten
VLC-Tabelle.
-
(Zweite Ausführungsform)
-
Die
Struktur der Bildkodierungsvorrichtung und der Umriss der Kodeverarbeitung
gemäß der vorliegenden
Ausführungsform
sind vollkommen identisch zu denjenigen, die in der ersten Ausführungsform
beschrieben worden sind, mit Ausnahme des in 1 gezeigten
Koeffizientenzahlkodierers 111. Die Einzelheiten bezüglich der
Verarbeitung der Kodierung variabler Länge der Anzahl der Koeffizienten,
die vom Koeffizientenzahlkodierer 111 in der zweiten Ausführungsform
durchgeführt
wird, werden im Folgenden unter Verwendung der 10 und 11 erläutert.
-
10A ist ein Blockdiagramm, das eine interne Struktur
des Koeffizientenzahlkodierers 111 genauer zeigt.
-
Wie
in 10A gezeigt ist, enthält der Koeffizientenzahlkodierer 111 eine
Kodetabellenerzeugungseinheit 701 anstelle der Kodetabellenspeichereinheit 202 und
der Kodetabellenauswahleinheit 203, die in 3A gezeigt
sind. Die Anzahlen der Koeffizienten in den kodierten Blöcken werden
von der Koeffizientenzahlspeichereinheit 110 in die Kodetabellenerzeugungseinheit 701 eingegeben.
Die Kodetabellenerzeugungseinheit 701 zählt die Anzahl der kodierten
Blöcke,
die die gleiche Anzahl von Ko effizienten wie der Wert der Anzahl
der Koeffizienten bei jedem der Werte aufweisen, und erzeugt Kodetabellen
durch Zuweisen von Kodezahlen in absteigender Reihenfolge beginnend
mit einer Koeffizientenzahl, die auf der Grundlage der Statistik
mit der größten Häufigkeit
aufgezeichnet worden ist. 11A ist
ein Musterdiagramm, das eine Position der kodierten Blöcke präsentiert,
die für
die Statistik genutzt werden. Hierbei sind P1, P3 und P4 Bilder,
in denen die Interbildvorhersagekodierung durchgeführt wird,
während
12 ein Bild ist, in welchem eine Intrabildvorhersagekodierung durchgeführt wird.
Unter der Annahme, dass ein aktueller Block zu P3 gehört, werden
für die
Statistik alle Blöcke
genommen, die unter Verwendung des gleichen Verfahrens kodiert sind,
das für
den aktuellen Block verwendet worden ist, der in P1 enthalten ist,
was ein unmittelbar dem aktuellen Bild vorangehendes Bild ist. Der
Fall, in dem die Blockäquivalente
eines Bildes einschließlich
der kodierten Blöcke
im aktuellen Bild für
die Statistik verwendet werden, wie in 11B,
kann in der gleichen Weise behandelt werden. Ferner sollte eine
Tabelle für
die Anfangsbedingung in aufsteigender Reihenfolge beginnend bei
der Zahl 0 als Kodetabelle verwendet werden, wenn die kodierten
Blöcke äquivalent
zu einem Bild, die für
die Statistik verwendet werden können,
nicht existieren. Hierbei werden die Blöcke äquivalent zu einem Bild für die Statistik verwendet,
jedoch kann der Fall, in dem eine andere Anzahl von Blöcken als
diese als Parameter verwendet wird, in der gleichen Weise behandelt
werden. Im Fall der Anwendung eines Referenzverfahrens, wie in 11A gezeigt ist, um somit eine Kodetabelle
zu erzeugen, kann die Tabelle nur einmal erzeugt werden, wenn die
Kodierung des aktuellen Bildes gestartet wird.
-
Indessen
werden die Anzahlen der Koeffizienten in den kodierten Blöcken, die
sich am Rand befinden, in die Vorhersagewertberechnungseinheit 201 eingegeben.
Die Vorhersagewertberechnungseinheit 201 ermittelt den
Vorhersagewert durch Berechnen eines Mittelwertes auf der Grundlage
dieser Werte, wie in der ersten Ausführungsform beschrieben worden
ist. Anstelle des Mittelwertes können
ein Maximalwert, ein Minimalwert oder ein Mediumwert als Verfahren
zum Ermitteln des Vorhersagewertes verwendet werden. Die kodierten
Blöcke,
die anschließend
als Referenz verwendet werden, werden gemäß dem Diagramm 1 unter Verwendung dreier
Blöcke
an der Position der Blöcke
B, C und D für
den in 4A in der ersten Ausführungsform
gezeigten aktuellen Block X bestimmt. Das Diagramm 1 zeigt eine
Beziehung zwischen den Bedingungen der Referenzblöcke und
der Blöcke,
auf die Bezug genommen werden kann, jedoch sind die Muster nicht
hierauf beschränkt.
Wenn keine Referenzblöcke
gefunden werden, wird entweder ein Wert 0 oder ein anderer beliebiger Wert
direkt als Vorhersagewert genommen.
-
Der
von der Vorhersagewertberechnungseinheit 201 berechnete
Vorhersagewert wird nur bei der VLC-Tabellenauswahleinheit 204 verwendet.
Die VLC-Tabellenauswahleinheit 204 wählt wie in der ersten Ausführungsform
entsprechend diesem Vorhersagewert eine VLC-Tabelle für die Kodierung
der Anzahl der Koeffizienten aus mehreren VLC-Tabellen, die in der
VLC-Tabellenspeichereinheit 205 im voraus wie im Diagramm 4
gezeigt vorbereitet worden sind, entsprechend den im Diagramm 5
gezeigten Auswahlkriterien aus.
-
Der
Koeffizientenzahlkodierer 206 nimmt auf die Kodetabelle
Bezug, die von der Kodetabellenerzeugungseinheit 701 erzeugt
worden ist, sowie auf die VLC-Tabelle, die von der VLC-Tabellenauswahleinheit 204 ausgewählt worden
ist, und führt
anschließend
eine Kodierung variabler Länge
der Anzahl der Koeffizienten im aktuellen Block durch, der für die Kodierung
verwendet wird und der in der gleichen Weise wie in der ersten Ausführungsform
beschrieben eingegeben wird.
-
In
der vorliegenden Ausführungsform
wird somit eine Kodetabelle erzeugt, indem Statistiken über die Anzahlen
der Koeffizienten in den kodierten Blöcken genommen werden, wobei
ferner eine VLC-Tabelle entsprechend dem Vorhersagewert bestimmt
wird, der aus der Anzahl der Koeffizienten in den kodierten Blöcken berechnet
worden ist, und indem auf beide Tabellen Bezug genommen wird, wobei
es möglich
ist, eine Kodierung der Anzahl der Koeffizienten selbst für ein Bild
effizient durchzuführen,
dessen Erscheinungshäufigkeit der
Koeffizienten ungleichmäßig ist.
-
Wie
bei der ersten Ausführungsform
ist es ferner möglich,
die für
die Referenz bei der Vorhersagewertberechnungseinheit 201 verwendeten
kodierten Blöcke
für den
in 4B gezeigten aktuellen Block X wie in der ersten Ausführungsform
gemäß dem Diagramm
6 unter Verwendung von nur zwei Blöcken zu bestimmen, die an der
Position der Blöcke
B und D angeordnet sind, statt drei benachbarte Blöcke zu verwenden,
wie in 4A gezeigt ist. Das Diagramm
6 zeigt eine Beziehung zwischen den Bedingungen der Referenzblöcke und den
Blöcken,
auf die Bezug genommen werden kann, jedoch sind die Muster nicht
hierauf beschränkt.
Wenn keine Referenzblöcke
gefunden werden, wird entweder ein Wert 0 oder ein anderer willkürlicher
Wert direkt als Vorhersagewert genommen.
-
Wie
in der ersten Ausführungsform
ist es ferner möglich,
z.B. entweder einen Mittelwert, einen Maximalwert, einen Minimalwert
oder einen Mediumwert, entsprechend einem Mittelwert der Anzahlen
der Koeffizienten in den kodierten Referenzblöcken, als Verfahren zum Berechnen
eines Vorhersagewertes in der Vorhersagewertberechnungseinheit 201 auszuwählen, wie
in der ersten Ausführungsform.
Das Diagramm 7 zeigt die Auswahlkriterien, jedoch ist die Art der
Zuweisung des Mittelwertes und der Elemente, die als Vorhersagewertberechnungsverfahren
angegeben sind, nicht hierauf beschränkt.
-
In
der vorliegenden Ausführungsform
führt der
Koeffizientenzahlkodierer 111 eine Kodierung variabler Länge für den Wert
der Anzahl der Koeffizienten selbst durch. Wie in der ersten Ausführungsform
ist es jedoch möglich,
wie in 10 gezeigt ist, dass ein Differenzwert
zwischen dem von der Vorhersagewertberechnungseinheit 201 berechneten
Vorhersagewert und dem eingegebenen Wert der Anzahl der Koeffizienten
vom Subtrahierer 207 berechnet wird, wobei eine Kodierung
variabler Länge
für den
gewonnenen Wert mit der gleichen Verarbeitung wie oben beschrieben
durchgeführt
wird.
-
Ferner
führt in
der vorliegenden Ausführungsform
der Koeffizientenzahlkodierer 111 die Kodierung variabler
Länge durch,
indem er die VLC-Tabellen
gemäß dem Vorhersagewert
auf der Grundlage der Anzahlen der Koeffizienten in den benachbarten
Blöcken
umschaltet. Es ist jedoch möglich,
die Tabelle zu fixieren, statt die VLC-Tabellen umzuschalten, wie
in der ersten Ausführungsform.
In diesem Fall wird dies verwirklicht, indem nur eine VLC-Tabellenspeichereinheit
verwendet wird, die einen bestimm ten Typ von VLC-Tabellen aufweist,
statt die VLC-Tabellenauswahleinheit zu verwenden.
-
(Dritte Ausführungsform)
-
Die
Struktur der Bildkodierungsvorrichtung und der Umriss der Kodierungsverarbeitung
gemäß der vorliegenden
Ausführungsform
sind vollkommen identisch zu denjenigen, die in der ersten Ausführungsform beschrieben
worden sind, mit Ausnahme des in 1 gezeigten
Koeffizientenzahlkodierers 111. Hierbei werden bezüglich der
Verarbeitung der Kodierung variabler Länge der Anzahl der Koeffizienten,
die beim Koeffizientenzahlkodierer 111 in der dritten Ausführungsform
durchgeführt
wird, die Einzelheiten unter Verwendung der 12A und 12B sowie der Diagramme 8 und 9 erläutert.
-
12A ist ein Blockdiagramm, das eine interne Struktur
des Koeffizientenzahlkodierers 111 genauer zeigt.
-
Wie
in 12A gezeigt ist, enthält der Koeffizientenzahlkodierer 111 nicht
die in 3A gezeigte Vorhersagewertberechnungseinheit 201.
Eine Kodetabellenauswahleinheit 901 und eine VLC-Tabellenauswahleinheit 902 wählen daher
eine Tabelle für
die aktuelle Nutzung verschieden von der ersten Ausführungsform aus
durch direkte Verwendung der Anzahlen der Koeffizienten in den kodierten
Blöcken
ohne Verwendung eines Vorhersagewertes. Für die kodierten Blöcke, die
anschließend
als Referenz verwendet werden, wie in 4B gezeigt
ist, werden nur zwei Blöcke
an der Position des Blocks B (oben) und des Blocks D (links) für den aktuellen
Block X verwendet. Wenn jedoch die oberhalb und links angeordneten
Blöcke
nicht kodiert sind oder außerhalb
des Bildes oder außerhalb
des Streifens angeordnet sind, kann entweder ein Wert 0 oder ein anderer
willkürlicher
Wert eingesetzt werden.
-
Das
Diagramm 8 zeigt ein Verfahren der Auswahl einer Kodetabelle in
der Kodetabellenauswahleinheit 901.
-
-
Die
Kodetabellenauswahleinheit 901 klassifiziert die entsprechende
Anzahl der Koeffizienten in den oberhalb und links des aktuellen
Blocks angeordneten Blöcken
entsprechend dem Wert in zwei Gruppen, wie im Diagramm 8 gezeigt
ist, und wählt
eine Tabelle unter Verwendung einer Kombination der vier so gebildeten Tabellen
aus. Zum Beispiel wird eine Kodetabelle 2 ausgewählt, wenn die Anzahl der Koeffizienten
im linken Block gleich 3 ist und die Anzahl der Koeffizienten im
oberen Block gleich 8 ist. Das Verfahren zum Klassifizieren der
Anzahl der Koeffizienten in den oberen und linken Blöcken und
die Art der Zuweisung der Kodetabellen sind nicht auf diejenigen
beschränkt,
die im Diagramm 8 verwendet werden.
-
Diagramm
9 zeigt ein Verfahren der Auswahl einer VLC-Tabelle bei der VLC-Tabellenauswahleinheit 902.
-
-
Die
VLC-Tabellenauswahleinheit 902 wählt eine VLC-Tabelle für die aktuelle
Referenz unter Verwendung des im Diagramm 9 gezeigten Auswahlverfahrens
aus, wie im Fall der Kodetabellenauswahleinheit 901.
-
Der
Koeffizientenzahlkodierer 206 nimmt auf die von der Kodetabellenauswahleinheit 901 ausgewählte Kodetabelle
und die von der VLC-Tabellenauswahleinheit 902 ausgewählte VLC-Tabelle
Bezug, um somit eine Kodierung variabler Länge für die Anzahl der Koeffizienten
im aktuellen Block durchzuführen,
der in der gleichen Weise wie in der ersten Ausführungsform eingegeben wird.
-
Durch
Klassifizieren der Anzahlen der Koeffizienten in den kodierten Blöcken, die
oberhalb und links des aktuellen Blocks angeordnet sind, in "n" Gruppen entsprechend dem Wert mit Bezug
auf die Kodetabelle und die VLC-Tabelle gemäß der Kombination von N × N Möglichkeiten,
die dann gebildet werden, und durch adaptives Umschalten zwischen
diesen, ist es somit in der vorliegenden Ausführungsform möglich, die
Kodierung der Anzahl der Koeffizienten für das Bild, dessen Erscheinungshäufigkeit
der Koeffizienten ungleichmäßig ist,
effizient durchzuführen.
-
In
der vorliegenden Ausführungsform
führt der
Koeffizientenzahlkodierer 111 eine Kodierung variabler Länge für den Wert
der Anzahl der Koeffizienten selbst durch. Die Differenzberechnungseinheit 207 kann
jedoch einen Differenzwert zwischen dem in der Vorhersagewertberechnungseinheit 201 berechneten
Vorhersagewert, wie in 12B in
der ersten Ausführungsform
gezeigt ist, und einem Wert der Anzahl der eingegebenen Koeffizienten
berechnen, um somit eine Kodierung variabler Länge durchzuführen.
-
Ferner
führt in
der vorliegenden Ausführungsform
der Koeffizientenzahlkodierer 111 eine Kodierung variabler
Länge durch,
indem er sowohl die VLC-Tabelle als auch die Kodetabelle entsprechend
den Anzahlen der Koeffizienten in den benachbarten Blöcken umschaltet.
Es ist jedoch möglich,
eine dieser Tabellen zu fixieren, statt diese wie in der ersten
Ausführungsform
umzuschalten. In diesem Fall wird die Kodierung variabler Länge verwirklicht
durch Verwendung einer Speichereinheit, die entweder einen bestimmten
Typ von Kodetabellen oder einen bestimmten Typ von VLC-Tabellen
aufweist, statt Tabellenauswahleinheiten zu verwenden. Ferner ist
es auch möglich,
eine Kodierung variabler Länge
durchzuführen
durch Umschalten nur der VLC-Tabellen gemäß den Anzahlen der Koeffizienten
in den benachbarten Blöcken,
ohne Kodetabellen zu verwenden, wie in der ersten Ausführungsform.
-
(Vierte Ausführungsform)
-
Die
Struktur der Bildkodierungsvorrichtung und der Umriss der Kodierungsverarbeitung
gemäß der vorliegenden
Ausführungsform
sind vollkommen identisch zu denjenigen, die in der ersten Ausführungsform beschrieben
worden sind, mit Ausnahme des in 1 gezeigten
Koeffizientenzahlkodierers 111. Bezüglich der Verarbeitung der
Kodierung variabler Länge
der Anzahl der Koeffizienten, die vom Koeffizientenzahlkodierer 111 in
der vierten Ausführungsform
durchgeführt
wird, werden hier Einzelheiten unter Verwendung der 13 und 14 erläutert.
-
13A ist ein Blockdiagramm, das eine interne Struktur
des Koeffizientenzahlkodierers 111 genauer zeigt.
-
Der
Koeffizientenzahlkodierer 111, wie in 13A gezeigt ist, enthält eine Tabellenauswahleinheit 1001 anstelle
der Vorhersagewertberechnungseinheit 201, der Kodetabellenauswahleinheit 203 und
der VLC-Tabellenauswahleinheit 204,
die in 3A gezeigt sind. Die Tabellenauswahleinheit 1001 verwendet
direkt die Anzahl der Koeffizienten in den kodierten Blöcken, ohne
einen Vorhersagewert zu verwenden, um somit Tabellen für die aktuelle
Verwendung durch Auswerten sowohl einer Kodetabelle als auch einer
VLC-Tabelle zur gleichen Zeit auszuwählen, was verschieden ist von
der ersten Ausführungsform.
Für die
kodierten Blöcke,
die anschließend
als Referenz verwendet werden, werden die drei Blöcke an der
Position der Blöcke B,
C und D für
den aktuellen Block X verwendet, wie in 4A gezeigt
ist. Wenn jedoch die so angeordneten Blöcke nicht kodiert sind oder
außerhalb
des Bildes oder außerhalb
des Streifens angeordnet sind, kann entweder ein Wert 0 oder ein
anderer beliebiger Wert eingesetzt werden.
-
Die
Tabellenauswahleinheit 1001 berechnet eine Summe aus einer
Länge eines
Bitstroms, der als Ergebnis der Kodierung der Anzahlen der Koeffizienten
in den Referenzblöcken
sowohl unter Verwendung der Kodetabelle als auch der VLC-Tabelle
gleichzeitig erzeugt wird, und bestimmt diesen als Beurteilungswert. 14 ist
ein Musterdiagramm, das ein Verfahren zum Durchführen einer Kodierung für die Anzahlen
der Koeffizienten in den drei Referenzblöcken unter Verwendung der Kodetabellen
und der VLC-Tabellen und der Berechnung der Summe der Länge des
gewonnenen Bitstroms, um diesen somit als Schätzwert zu bestimmen, zeigt.
Anschließend
führt die
Tabellenauswahleinheit 1001 diese Verarbeitung für alle Kombinationen
der Kodetabellen und der VLC-Tabellen, die in der Kodetabellenspeichereinheit 202 sowie
in der VLC-Tabellenspeichereinheit 205 gespeichert
sind, durch und wählt
eine Kombination aus einer Kodetabelle und einer VLC-Tabelle aus,
in der der gewonnene Beurteilungswert am kleinsten ist.
-
Der
Koeffizientenzahlkodierer 206 nimmt auf die Kodetabelle
und die VLC-Tabelle
Bezug, die von der Tabellenauswahleinheit 1001 ausgewählt worden
sind, und führt
eine Kodierung variabler Länge
der Anzahl der Koeffizienten im aktuellen Block durch, der in der
gleichen Weise eingegeben wird, wie in der ersten Ausführungsform
beschrieben worden ist.
-
In
der vorliegenden Ausführungsform,
wie oben beschrieben worden ist, ist es möglich, eine Kodierung für die Anzahlen
der Koeffizienten in den benachbarten Blöcken durchzuführen, die
unter Verwendung der Kodetabelle und der VLC-Tabelle kodiert worden
sind, und die Summe der Länge
des Bitstroms zu diesem Zeitpunkt als einen Schätzwert zu bestimmen, um somit
die Kodierung der Anzahl der Koeffizienten selbst für das Bild,
dessen Erscheinungshäufigkeit
der Koeffizienten ungleichmäßig ist,
effizient durchzuführen.
-
Für die kodierten
Blöcke,
die anschließend
als Referenz verwendet werden, kann der Fall, in dem nur zwei Blöcke an der
Position der Blöcke
B und D verwendet werden, statt drei Blöcke an der Position der Blöcke B, C
und D für
den aktuellen Block X zu verwenden, wie in 4A gezeigt
ist, in der gleichen Weise behandelt werden. Wenn diesbezüglich die
Blöcke,
die oberhalb und links angeordnet sind, nicht kodiert sind oder
außerhalb
des Bildes oder außerhalb
des Streifens angeordnet sind, kann entweder ein Wert 0 oder anderer
beliebiger Wert eingesetzt werden.
-
In
der vorliegenden Ausführungsform
führt der
Koeffizientenzahlkodierer 111 eine Kodierung variabler Länge für den Wert
der Anzahl der Koeffi zienten selbst durch. Wie in der ersten Ausführungsform
ist es jedoch möglich,
wie in 13 gezeigt ist, dass ein Differenzwert
zwischen dem von der Vorhersagewertberechnungseinheit 201 berechneten
Vorhersagewert und dem eingegebenen Wert der Anzahl. der Koeffizienten
von der Differenzwertberechnungseinheit 207 berechnet wird
und eine Kodierung variabler Länge
für den
gewonnenen Wert mit der gleichen Verarbeitung durchgeführt wird,
wie in den obenerwähnten
Ausführungsformen
beschrieben worden ist.
-
Auch
in der vorliegenden Ausführungsform
werden die Kodetabelle und die VLC-Tabelle im Koeffizientenzahlkodierer 111 umgeschaltet,
jedoch ist es möglich,
eine von diesen zu fixieren, statt zwischen diesen umzuschalten.
-
(Fünfte Ausführungsform)
-
15 ist
ein Blockdiagramm, das eine Struktur einer Bildkodierungsvorrichtung
in der fünften
Ausführungsform
zeigt, die ein Bildkodierungsverfahren gemäß der vorliegenden Erfindung
verwendet. Eine Sequenz der Kodierungsverarbeitung ist vollkommen
identisch zur ersten Ausführungsform.
Der Unterschied besteht jedoch darin, dass die vorliegende Ausführungsform
nicht die Koeffizientenzahlspeichereinheit 110 verwendet,
sondern einen Interbildvorhersagemodus im Fall einer Interbildvorhersagekodierung
und einen Intrabildvorhersagemodus im Fall eine Intrabildvorhersagekodierung
als Bezugsinformationen im Koeffizientenzahlkodierer 1201 verwendet,
statt die Anzahl der Koeffizienten in den kodierten Blöcken zu
verwenden, wie in der ersten Ausführungsform.
-
Bezüglich einer
Erläuterung
der Verarbeitung der Kodierung variabler Länge beim Koeffizientenzahlkodierer 1201,
der in 15 gezeigt ist, werden hier
Einzelheiten unter Verwendung der 16, des
Diagramms 10 und des Diagramms 11 erläutert.
-
16 ist
ein Blockdiagramm, das eine interne Struktur des Koeffizientenzahlkodierers 1201 genauer zeigt.
-
Wie
in 16 gezeigt ist, enthält der Koeffizientenzahlkodierer 1201 nicht
die im Diagramm 3A gezeigte Vorhersagewertberechnungseinheit 201.
Ein Interbildvorhersagemodus wird von einer Interbildvorhersageeinheit 107 eingegeben,
während
ein Intrabildvorhersagemodus von einer Intrabildvorhersageeinheit 108 in
eine Kodetabelleneinheit 1301 und eine VLC-Tabellenauswahleinheit 1302 eingegeben
wird. Folglich wählt die
Kodetabellenauswahleinheit 1301 eine Tabelle auf der Grundlage
des Modus aus: den Interbildvorhersagemodus für die Interbildvorhersage und
den Intrabildvorhersagemodus für
die Intrabildvorhersage. Das Diagramm 10 zeigt ein Auswahlverfahren
für Kodetabellen
bei der Kodetabellenauswahleinheit 1301.
-
-
In
dem Fall z.B., in dem das aktuelle Bild unter Verwendung der Interbildvorhersage
kodiert wird, wird eine Kodetabelle 2 entsprechend für die Kodierung
variabler Länge,
der Anzahl der Koeffizienten ausgewählt, wenn eine Vorhersage des
aktuellen Blocks mit der Größe 8 × 8 ausgewählt wird.
Die Elemente sind nicht auf diejenigen beschränkt, die im Diagramm 10 verwendet
werden. Das Diagramm 11 zeigt ein Auswahlverfahren bei der VLC-Tabellenauswahleinheit 1302.
-
-
Die
VLC-Tabellenauswahleinheit 1302 wählt eine VLC-Tabelle für die aktuelle
Referenz unter Verwendung eines im Diagramm 11 gezeigten Auswahlverfahrens
aus, wie im Fall der Kodetabellenauswahleinheit 1301.
-
Der
Koeffizientenzahlkodierer 206 nimmt auf die von der Kodetabellenauswahleinheit 1301 ausgewählte Kodetabelle
und eine von der VLC-Tabellenauswahleinheit 1302 ausgewählte VLC-Tabelle
Bezug und führt
eine Kodierung variabler Länge
für die
Anzahlen der Koeffizienten im aktuellen Block durch, der in der gleichen
Weise wie in der ersten Ausführungsform
eingegeben wird.
-
Die
vorliegende Ausführungsform,
wie oben gezeigt ist, weist ein Kodierungsverfahren auf, das die
Kodierung der Anzahl der Koeffizienten auch für das Bild effizient verwirklicht,
dessen Erscheinungshäufigkeit
der Koeffizienten ungleichmäßig ist,
mit Bezug auf eine Kodetabelle und eine VLC-Tabelle durch Umschalten zwischen diesen
in adaptiver Weise entsprechend dem Modus: Interbildvorhersagemodus
für die
Interbildvorhersagekodierung und Intrabildvorhersagemodus für die Intrabildvorhersagekodierung.
-
In
der vorliegenden Ausführungsform
führt der
Koeffizientenzahlkodierer 1201 eine Kodierung variabler
Länge für den Wert
der Anzahl der Koeffizienten selbst durch, wie in der ersten Ausführungsform.
Es ist jedoch wie in der ersten Ausführungsform möglich, einen
Vorhersagewert unter Verwendung der Anzahlen der Koeffizienten in
den benachbarten Blöcken
zu bestimmen, die wie in der ersten Ausführungsform kodiert worden sind, und
einen Differenzwert zwischen diesem Vorhersagewert und dem eingegebenen
Wert der Anzahl der Koeffizienten zu erhalten, um somit einen Kodierung
variabler Länge
für den
gewonnenen Wert in der gleichen Verarbeitung durchzuführen, wie
in den obenerwähnten
Ausführungsformen.
-
Ferner
führt in
der vorliegenden Ausführungsform
der Koeffizientenzahlkodierer 1201 eine Kodierung variabler
Länge durch
mittels Umschalten sowohl der Kodetabelle als auch der VLC-Tabelle.
Es ist jedoch möglich,
eine von diesen zu fixieren, statt eine oder beide von diesen umzuschalten.
In diesem Fall wird dies verwirklicht durch Vorbereiten nur einer
Speichereinheit, die einen bestimmten Typ von Kodetabellen oder
einen bestimmten Typ von VLC-Tabellen aufweist, statt Tabellenauswahleinheiten
zu verwenden.
-
(Sechste Ausführungsform)
-
17 ist
ein Blockdiagramm, das eine Struktur einer Ausführungsform einer Bilddekodierungsvorrichtung
zeigt, die ein Bilddekodierungsverfahren gemäß der vorliegenden Erfindung
verwendet. Der von der Bildkodierungsvorrichtung gemäß der ersten
Ausführungsform
erzeugte Bitstrom soll hier eingegeben werden.
-
Die
Bilddekodierungsvorrichtung enthält
eine Bitstromanalyseeinheit 1401, einen Koeffizientenzahlspeichereinheit 1402,
einen Koeffizientenzahldekodierer 1403, einen Koeffizientenwertdekodierer 1404,
eine Inversquantisierungseinheit 1405, eine Inversorthogonaltransformationseinheit 1406,
einen Vollbildspeicher 1407, einen Interbildvorhersagedekodierer 1408,
einen Intrabildvorhersagedekodierer 1409 und einen Umschalter 1410.
-
Die
Bitstromanalyseeinheit 1401 extrahiert aus dem eingegebenen
Bitstrom verschiedene Typen von Informationen, wie z.B. einen Kodierungsmodus,
Bewegungsvektoren, die für
die Kodierung verwendet worden sind, einen Bitstrom der Anzahl der
Koeffizienten (die Anzahl der Koeffizienten, die eine Raumfrequenzkomponente
zeigen, die einen Wert ungleich 0 für jeden Block aufweist), und
verschiedene Typen von Informationen über den Bitstrom des Wertes
der Koeffizienten. Die Koeffizien tenzahlspeichereinheit 1402 speichert die
Anzahlen der Koeffizienten der dekodierten Blöcke. Der Koeffizientenzahldekodierer 1403 dekodiert
den Bitstrom der Anzahlen der Koeffizienten durch Bezugnahme auf
die Anzahlen der Koeffizienten in den dekodierten Blöcken.
-
Der
Koeffizientenwertdekodierer 1404 dekodiert den Bitstrom
des Wertes der Koeffizienten unter Verwendung der Anzahlen der Koeffizienten,
die vom Koeffizientenzahldekodierer 1403 dekodiert worden
sind. Die Inversquantisierungseinheit 1405 führt eine
inverse Quantisierung der dekodierten Koeffizienten durch. Die Inversorthogonaltransformationseinheit 1406 führt eine
inverse orthogonale Transformation für die Daten durch, die invers
quantisiert worden sind, und transformiert diese in Vorhersagerestbilddaten.
-
Der
Interbildvorhersagedekodierer 1408 erzeugt Bewegungskompensationsbilddaten
auf der Grundlage der Bewegungsvektoren, die von der Bitstromanalyseeinheit 1401 extrahiert
worden sind, sowie der dekodierten Bilder oder dergleichen, wenn
ein aktueller Makroblock, der zu dekodieren ist, mit Interbildvorhersage
kodiert ist. Eine Additionsberechnungseinheit 1411 addiert
die von der Inversorthogonaltransformationseinheit 1406 eingegebenen
Vorhersagerestbilddaten und die vom Interbildvorhersagedekodierer 1408 eingegebenen
Bewegungskompensationsbilddaten, um somit dekodierte Bilddaten zu
erzeugen. Der Vollbildspeicher 1407 speichert die erzeugten
dekodierten Bilddaten.
-
Der
Intrabildvorhersagedekodierer 1409 führt eine Intrabildvorhersage
unter Verwendung von Informationen über die benachbarten dekodierten
Blöcke
durch, um somit dekodierte Bilddaten zu erzeugen, wenn der aktuelle
Makroblock mit Intrabildvorhersage kodiert ist.
-
Es
folgt eine Erläuterung
einer Operation einer Bilddekodierungsvorrichtung, die wie oben
konstruiert ist.
-
Zu
Beginn wird ein Bitstrom in die Bitstromanalyseeinheit 1401 eingegeben.
Die Bitstromanalyseeinheit 1401 extrahiert aus dem eingegebenen
Bitstrom verschiedene Typen von Informationen über Bewegungsvekto ren, einen
Bitstrom der Anzahl der Koeffizienten und einen Bitstrom des Wertes
der Koeffizienten und dergleichen. Anschließend gibt die Bitstromanalyseeinheit 1401 jeweils
Folgendes aus: die Bewegungsvektoren an die Interbildvorhersagedekodierungseinheit 1408,
den Bitstrom der Anzahl der Koeffizienten an den Koeffizientenzahldekodierer 1403 und
den Bitstrom des Wertes der Koeffizienten an den Koeffizientenwertdekodierer 1404.
-
Der
Koeffizientenzahldekodierer 1403, in den der Bitstrom der
Anzahl der Koeffizienten eingegeben wird, dekodiert diesen Bitstrom
als Anzahl von Koeffizienten, die einen Wert ungleich 0 aufweisen,
für jeden Block.
In diesem Fall führt
der Koeffizientenzahldekodierer 1403 eine Dekodierung mittels
Bezugnahme auf die Anzahl der Koeffizienten in den dekodierten Blöcken, die
in der Koeffizientenzahlspeichereinheit 1402 gespeichert
sind, mit einem Verfahren durch, das später erläutert wird. Anschließend führt der
Koeffizientenwertdekodierer 1404 die Dekodierung des Wertes
der Koeffizienten selbst mit Bezug auf die Kodetabellen und die VLC-Tabellen durch, die
für die
Dekodierung variabler Länge
erforderlich sind, indem zwischen diesen unter Verwendung der Anzahlinformation
des Koeffizienten, die vom Koeffizientenzahldekodierer 1403 gewonnen worden
ist, umgeschaltet wird. Der gewonnene Koeffizient wird von der Inversquantisierungseinheit 1405 sowie
der Inversorthogonaltransformationseinheit 1406 in Vorhersagerestbilddaten
transformiert.
-
Die
von der Bitstromanalyseeinheit 1401 extrahierten Bewegungsvektoren
werden in den Interbildvorhersagedekodierer 1408 eingegeben,
wenn ein aktueller Makroblock, der dekodiert werden soll, mit Interbildvorhersage
kodiert ist. Der Interbildvorhersagedekodierer 1408 erzeugt
Bewegungskompensationsbilddaten, indem er dekodierte Bilddaten der
dekodierten Bilder, die im Vollbildspeicher 1407 als Referenzbilder
gespeichert sind, auf der Grundlage der Informationen über die
Bewegungsvektoren aufweist. Die so gewonnenen Bewegungskompensationsbilddaten
werden als dekodierte Bilddaten erzeugt, indem sie zu den Vorhersagerestbilddaten
in der Additionsberechnungseinheit 1411 addiert werden.
und anschließend
im Vollbildspeicher 1407 gespeichert werden.
-
Wenn
andererseits der aktuelle Makroblock unter Verwendung der Intrabildvorhersage
kodiert ist, wird eine Intrabildvorhersage unter Verwendung von
Informationen über
die benachbarten dekodierten Blöcke
mittels des Intrabildvorhersagedekodierers 1409 durchgeführt, wobei
dekodierte Bilddaten erzeugt und im Vollbildspeicher 1407 gespeichert
werden. Anschließend
gibt der Vollbildspeicher 1407 diese als definitives Ausgabebild
in Anzeigereihenfolge aus.
-
Der
Umriss eines Ablaufs der Dekodierung wurde oben erläutert. Als
nächstes
wird eine Dekodierungsverarbeitung der Anzahl der Koeffizienten,
die vom Koeffizientenzahldekodierer 1403 durchgeführt wird, unter
Verwendung der 18 bis 21 genauer
erläutert.
-
18A ist ein Blockdiagramm, das eine interne Struktur
des Koeffizientenzahldekodierers 1403 genauer zeigt.
-
Hierbei
wird ein Beispiel der Verwendung von zwei Tabellen einer VLC-Tabelle und einer
Kodetabelle zur Durchführung
einer Dekodierung variabler Länge
der Anzahlen der Koeffizienten beschrieben. Die VLC-Tabelle ist
eine Tabelle, die für
die Transformation eines Kodes variabler Länge in einem Bitstrom zu einer
Kodezahl verwendet wird, während
die Kodetabelle für
die Transformation der mittels der VLC-Tabelle gewonnenen Kodezahl
zur Anzahl der Koeffizienten verwendet wird.
-
Wie
in 18A gezeigt ist, enthält der Koeffizientenzahldekodierer 1403 eine
Vorhersagewertberechnungseinheit 1501, eine Kodetabellenspeichereinheit 1502,
einen Kodetabellenauswahleinheit 1503, eine VLC-Tabellenauswahleinheit 1504,
eine VLC-Tabellenspeichereinheit 1505 und einen Koeffizientenzahldekodierer 1506.
-
Zuerst
werden die Anzahlen der Koeffizienten in den dekodierten Blöcken, die
am Rand angeordnet sind, von der Koeffizientenzahlspeichereinheit 1402,
wie in 17 gezeigt, in die Vorhersagewertberechnungseinheit 1501 eingegeben.
Die Vorhersagewertberechnungseinheit 1501 bestimmt einen
Vorhersagewert durch Berechnen eines Mittelwertes dieser Werte.
Entsprechend den Vorhersagewertberechnungsverfahren für die Kodie rung
können
ein Maximalwert, ein Minimalwert oder ein Mediumwert verwendet werden.
Die dekodierten Blöcke,
auf die anschließend
Bezug genommen wird, werden gemäß Diagramm
1 unter Verwendung dreier Blöcke
an der Position der Blöcke
B, C und D für
den in 4A gezeigten aktuellen Block
X bestimmt, wie in der ersten Ausführungsform. Bei den Zeichen
im Diagramm 1 bezeichnet das Zeichen O einen kodierten Block, während ein
Zeichen X einen Block bezeichnet, auf den nicht Bezug genommen werden
kann, da er entweder nicht kodiert ist oder außerhalb des Bildes oder außerhalb
des Streifens angeordnet ist. Das Diagramm 1 zeigt eine Beziehung
zwischen Bedingungen der Referenzblöcke und der Blöcke, auf
die Bezug genommen werden kann, jedoch sind die Muster nicht hierauf
beschränkt.
Wenn keine Referenzblöcke
gefunden werden, kann entweder ein Wert 0 oder ein anderer beliebiger
Wert direkt als Vorhersagewert genommen werden.
-
Die
Kodetabellenauswahleinheit 1503 wählt eine Kodetabelle für die aktuelle
Verwendung aus mehreren Kodetabellen, die in der Kodetabellenspeichereinheit 1502 gespeichert
sind, entsprechend dem von der Vorhersagewertberechnungseinheit 1501 berechneten
Vorhersagewert aus.
-
Das
Diagramm 2 ist ein Beispiel einer Kodetabelle, die auf Anzahlen
von Koeffizienten und Kodezahlen beruht, die im voraus von der Kodetabellenspeichereinheit 1502 vorbereitet
worden sind. Hierbei werden vier Typen von Kodetabellen vorbreitet;
die Anzahlen der Typen von Tabellen und die Werte, die in den Tabellen
gezeigt sind, sind jedoch nicht auf diejenigen beschränkt, die
im Diagramm 2 verwendet werden. In diesem Fall jedoch sollte die
gleiche Tabelle wie diejenige, die für die Kodierung verwendet worden
ist, verwendet werden. Ferner zeigt das Diagramm 3 Auswahlkriterien
für Kodetabellen
auf der Grundlage eines Vorhersagewertes. Die Art der Zuweisung
des Vorhersagewertes oder Elemente der Tabelle ist nicht auf diejenige
beschränkt, die
in Diagramm 3 gezeigt ist. Es sollte jedoch die gleiche Tabelle
wie diejenige, die für
die Kodierung verwendet wurde, verwendet werden.
-
Die
VLC-Tabellenauswahleinheit 1504 wählt eine VLC-Tabelle für die aktuelle
Verwendung aus mehreren VLC-Tabellen, die in der VLC- Tabellenauswahleinheit 1504 gespeichert
sind, entsprechend dem von der Vorhersagewertberechnungseinheit 1501 berechneten
Vorhersagewert aus.
-
Das
Diagramm 4 zeigt ein Beispiel einer VLC-Tabelle, die auf die Anzahl
der Koeffizienten und die Kodezahlen Bezug nimmt, die im voraus
von der VLC-Tabellenspeichereinheit 1505 vorbereitet worden
sind. Hierbei werden vier Typen VLC-Tabellen vorbereitet, jedoch
sind die Anzahlen der Typen von Tabellen und die Werte, die in den
Tabellen angegeben sind, nicht auf diejenigen beschränkt, die
im Diagramm 4 verwendet werden. In diesem Fall sollte jedoch die
gleiche Tabelle wie diejenige, die für die Kodierung verwendet wurde, verwendet
werden. Ferner zeigt das Diagramm 5 Auswahlkriterien für VLC-Tabellen
auf der Grundlage eines Vorhersagewertes. Die Art der Zuweisung
des Vorhersagewertes der Elemente, die in den Referenztabellen angegeben
sind, ist nicht auf diejenige beschränkt, die in Diagramm 5 verwendet
wird. In diesem Fall ist es jedoch angemessen, die gleiche Tabelle
wie diejenige, die für
die Kodierung verwendet wurde, zu verwenden.
-
Der
Koeffizientenzahldekodierer 1506 nimmt auf die Kodetabelle
sowie die VLC-Tabelle Bezug, die in der obigen Verarbeitung ausgewählt worden
sind, und führt
eine Dekodierung variabler Länge
für einen
Bitstrom der Anzahl der Koeffizienten im eingegebenen aktuellen
Block durch. Der Koeffizientenzahldekodierer 1506 transformiert
zuerst die Anzahl der Koeffizienten in eine Kodezahl unter Verwendung
VLC-Tabelle und transformiert anschließend diese in einen Wert der
Anzahl der Koeffizienten, die der Kodezahl entspricht, unter Verwendung
der Kodetabelle. 19 ist ein Musterdiagramm, das
ein Beispiel der Dekodierung zeigt, wenn ein in der Vorhersagewertberechnungseinheit 1501 berechneter
Vorhersagewert gleich "6" ist und ein Bitstrom der
Anzahl der Koeffizienten im aktuellen Block gleich "0100" ist. Wenn der Vorhersagewert
gleich "6" ist, wählt die
Kodetabellenauswahleinheit 1503 unter Verwendung des Diagramms
3 und des Diagramms 2 eine in 19 gezeigte
Kodetabelle 3 aus, während
die VLC-Tabellenauswahleinheit 1504 unter Verwendung des
Diagramms 5 und des Diagramms 4 eine in 19 gezeigte
VLC-Tabelle 3 auswählt.
Der Koeffizientenzahldekodierer 1506 transformiert den
einge gebenen Bitstrom "0100" gemäß der VLC-Tabelle
3 in eine Kodezahl "2" und bestimmt anschließend die
definitive Zahl der Koeffizienten "4" gemäß der Kodetabelle
3.
-
Im
Folgenden werden Einzelheiten der Speicherungsverarbeitung der Anzahl
der Koeffizienten, die von der Koeffizientenzahlspeichereinheit 1402 durchgeführt wird,
genauer erläutert.
Hierbei wird die 6A verwendet, die für die Beschreibung
der ersten Ausführungsform
verwendet worden ist, jedoch zeigt eine schwarze Grenze, die die
kodierten Blöcke
B1–B16
enthält,
einen zu kodierenden aktuellen Makroblock, während die schraffierten Blöcke Referenzblöcke für den aktuellen
Makroblock zeigen. Die für
die Blöcke
gesetzten Zahlen zeigen eine Reihenfolge der Dekodierung an, die
innerhalb des Makroblocks durchgeführt wird.
-
Die
Koeffizientenzahlspeichereinheit 1402 speichert die Anzahlen
der Koeffizienten, die vom Koeffizientenzahldekodierer 1403 dekodiert
worden sind, wenigstens für
die Referenzblöcke,
die schraffiert sind, wie in 6A gezeigt
ist, und für
den aktuellen Makroblock zum Zeitpunkt des Beginns der Verarbeitung
des in 6A gezeigten aktuellen Makroblocks
notwendig sind. Das heißt,
die Koeffizientenzahlspeichereinheit 1402 speichert die
Anzahl der Koeffizienten, die aus den Blöcken des aktuellen Makroblocks
(B1, B2, B3 ... und B16), die sequenziell zu verarbeiten sind, erfasst
worden sind. Wenn z.B. ein Block B6 ein aktueller Block ist, speichert
die Koeffizientenzahlspeichereinheit 1402 die Anzahlen
jedes Koeffizienten der Blöcke
B1, B2, B3, B4 und B5, die bereits verarbeitet worden sind, zusätzlich zu
denjenigen der Referenzblöcke,
wie in 6A gezeigt ist. Wenn der Koeffizientenzahldekodierer 1403 die
Anzahl der Koeffizienten des Blocks B6 dekodiert, speichert die
Koeffizientenzahlspeichereinheit 1402 diese. Die Koeffizientenzahlspeichereinheit 1402 speichert
somit die Anzahlen der Koeffizienten der Blöcke im aktuellen Makroblock,
die sequenziell zu verarbeiten sind.
-
Wenn
ein aktueller Makroblock ein Makroblock MB11 ist, wie in 2B gezeigt
ist, speichert die Koeffizientenzahlspeichereinheit 1402 wenigstens
die Anzahlen der Koeffizienten der Blöcke in der unteren Reihe und
in der rechten Spalte des Makroblocks MB11 (schraffierte Blöcke) in
-
7A,
wenn die Verarbeitung dieses Makroblocks MB11 endet und zum nächsten Makroblock
MB12 vorrückt.
Als nächstes
speichert die Koeffizientenzahlspeichereinheit 1402 wenigstens
die Anzahlen der Koeffizienten der Blöcke in der unteren Reihe und
in der rechten Spalte des Makroblocks MB12 in der gleichen Weise
wie die Anzahlen der Koeffizienten der Blöcke in der unteren Reihe des
Makroblocks MB11 (schraffierte Blöcke), wie in 7B gezeigt
ist, wenn die Verarbeitung des Makroblocks MB12 endet und die Verarbeitung
zum nächsten
Makroblock MB13 vorrückt.
-
Wenn
ein aktueller Makroblock an der rechte Kante des Bildes angeordnet
ist, wie in einem in 2B gezeigten Makroblock MB9,
speichert die Koeffizientenzahlspeichereinheit 1402 wenigstens
die Anzahlen der Koeffizienten der Blöcke in der unteren Reihe des
Makroblocks MB9, wenn die Verarbeitung dieses Makroblocks MB9 endet
und zum nächsten
Makroblock MB10 vorrückt.
-
Wenn
ein aktueller Makroblock an der unteren Kante des Bildes angeordnet
ist, wie ein in 2B gezeigter Makroblock MBm,
speichert die Koeffizientenzahlspeichereinheit 1402 wenigstens
die Anzahlen der Koeffizienten der Blöcke in der rechten Spalte dieses
Makroblocks MBm (schraffierte Blöcke),
wie in 7C gezeigt ist.
-
Somit
speichert die Koeffizientenzahlspeichereinheit 1402 wenigstens
die Anzahlen der Koeffizienten für
die Blöcke,
auf die Bezug genommen werden soll. Es ist möglich, zu einem beliebigen
Zeitpunkt die Informationen über
die Anzahlen der Koeffizienten der anderen Blöcke außer denjenigen, die zu speichern
sind, zu löschen,
wie in der obigen Erläuterung
beschrieben worden ist, wenn die Blöcke nicht mehr als Referenz
verwendet werden. Es ist z.B. möglich,
die Informationen zu löschen,
wenn die Verarbeitung zum nächsten
Makroblock vorrückt,
sowie whärend
der Verarbeitung des Makroblocks. Ferner erfordern die Anzahlen
der Koeffizienten der Blöcke,
die die nicht für
die Referenz verwendet werden, nicht immer eine Löschungsverarbeitung.
Zum Beispiel kann die Koeffizientenzahlspeichereinheit 1402 die
Anzahlen der Koeffizienten der Blöcke, auf die nicht mehr Bezug
genommen wird, als unnötig
identifizieren und diese bei Bedarf überschreiben.
-
Oben
ist erläutert
worden, dass es möglich
ist, auf die Anzahlen der Koeffizienten der dekodierten Blöcke Bezug
zu nehmen, indem diese in der Koeffizientenzahlspeichereinheit 1402 gespeichert
werden. Es kann jedoch ein System zur Berechnung der Anzahl der
Koeffizienten verwendet werden, falls erforderlich, indem nicht
die Werte der Anzahl der Koeffizienten selbst gespeichert werden,
sondern z.B. die Werte der Koeffizienten der Blöcke, die Raumfrequenzkomponenten
anzeigen.
-
Somit
ist es in der vorliegenden Ausführungsform
möglich,
den Vorhersagewert unter Verwendung der Anzahlen der Koeffizienten
in den dekodierten benachbarten Blöcken zu berechnen und die Anzahl
der Koeffizienten mit Bezug auf die Kodetabelle und die VLC-Tabelle
zu dekodieren, indem zwischen diesen gemäß dem Vorhersagewert adaptiv
umgeschaltet wird.
-
Ferner
werden die Änderungen
einer Position, wo die Erscheinungswahrscheinlichkeit der Anzahl
der Koeffizienten am höchsten
ist, mit Bezug auf die Kodetabellen durch adaptives Umschalten derselben
gemäß dem Vorhersagewert
behandelt. Gleichzeitig kann dies einer Größe der Verteilung der Erscheinungswahrscheinlichkeit
der Anzahl der Koeffizienten mit Bezug auf die VLC-Tabellen mittels
Umschalten derselben gemäß dem Vorhersagewert
entsprechen.
-
Es
ist möglich,
nur zwei Blöcke
an der Position der Blöcke
B und D als Blöcke,
auf die von der Vorhersagewertberechnungseinheit 1502 Bezug
genommen werden soll, für
den aktuellen Block X, wie in 4B gezeigt,
zu verwenden, statt drei benachbarte Blöcke zu verwenden, wie in 4A gezeigt
ist. In diesem Fall können Änderungen
der Referenzblöcke
wie im Diagramm 6 vorgenommen, wenn die Blöcke entweder nicht dekodiert
oder außerhalb
des Bildes oder außerhalb
des Streifens angeordnet sind. Bei den Zeichen im Diagramm 6 bezeichnet
das Zeichen O einen dekodierten Block, während ein Zeichen X einen Block
bezeichnet, auf den nicht Bezug genommen werden kann, da er entweder
nicht dekodiert ist oder außerhalb
des Bildes oder außerhalb
des Streifens angeordnet ist, wie im Diagramm 1. Das Diagramm 6
zeigt eine Beziehung zwischen den Bedingungen der Referenzblöcke und
den Blöcken,
auf die Bezug ge nommen werden kann, jedoch sind die Muster nicht
hierauf beschränkt.
Wenn keine Referenzblöcke
gefunden werden, kann entweder ein Wert 0 oder ein anderer beliebiger
Wert direkt als Vorhersagewert genommen werden. Es sollte jedoch
der gleiche Wert wie derjenige, der für die Kodierung verwendet wurde,
verwendet werden. In diesem Fall braucht die Koeffizientenzahlspeichereinheit 1402 nur
die Anzahlen der Koeffizienten speichern, die vom Koeffizientenzahldekodierer 1403 dekodiert
worden sind, wenigstens diejenigen der Referenzblöcke, die
für den
aktuellen Makroblock nötig
sind, wie in 6B gezeigt ist.
-
Es
ferner möglich,
als Verfahren zum Berechnen eines Vorhersagewertes in der Vorhersagewertberechnungseinheit 1501 z.B.
ein optimales Verfahren gemäß der jeweiligen
Sequenz, der jeweiligen GOP, des jeweiligen Bildes oder des jeweiligen
Streifens auszuwählen,
statt das Verfahren der Verwendung entweder eines Mittelwertes,
eines Maximalwertes, eines Minimalwertes oder eines Mediumwertes
zu fixieren. In diesem Fall wird das Berechnungsverfahren durch
die Dekodierung der Signale zur Identifikation eines Berechnungsverfahrens,
das im Kopfabschnitt der Sequenz oder des Bildes oder des Streifens
des Bitstroms beschrieben ist, bestimmt. Der Streifen ist ein Bild,
das in mehrere Sektionen weiter unterteilt ist. Eine Sektion äquivalent zu
einer Spalte in Transversalrichtung in jedem Makroblock ist ein
Beispiel hierfür.
-
Es
ferner möglich,
z.B. entweder einen Mittelwert, einen Maximalwert, einen Minimalwert
oder einen Mediumwert gemäß dem Mittelwert
der Anzahlen der Koeffizienten in den dekodierten Referenzblöcken als
ein Verfahren zum Berechnen eines Vorhersagewertes in der Vorhersagewertberechnungseinheit 1501 auszuwählen. Das
Diagramm 7 zeigt die Auswahlkriterien. Die Art der Zuweisung des
Mittelwertes und der Elemente, die als Vorhersagewertberechnungsverfahren
angegeben sind, sind nicht auf diejenigen beschränkt, die im Diagramm 7 verwendet
werden. Diesbezüglich
sollte das gleiche Verfahren wie dasjenige, das für die Kodierung verwendet
wurde, verwendet werden.
-
Die
vorliegende Ausführungsform
zeigt ein Dekodierungsverarbeitungsverfahren eines Bitstroms, bei dem
eine Kodierung variabler Länge
für die Werte
der Anzahl der Koeffizienten selbst vom Koeffizientenzahldekodierer 1403 durchgeführt wird.
Es ist jedoch möglich,
eine Dekodierung eines Bitstroms, in welchem eine Kodierung variabler
Länge für einen
Differenzwert zwischen dem Vorhersagewert und der Anzahl der Koeffizienten
durchgeführt
worden ist, durchzuführen.
In diesem Fall wird die Anzahl der Koeffizienten durch die Tatsache
bestimmt, dass die Additionsberechnungseinheit 1507 den
von der Vorhersagewertberechnungseinheit 1501 berechneten
Vorhersagewert zum Differenzwert der Anzahl der Koeffizienten, der
vom Koeffizientenzahldekodierer 1506 dekodiert worden ist,
addiert.
-
Ferner
führt der
Koeffizientenzahldekodierer 1403 eine Dekodierung variabler
Länge durch,
durch Umschalten sowohl der Kodetabelle als auch der VLC-Tabelle
gemäß dem Vorhersagewert
auf der Grundlage der Anzahlen der Koeffizienten der benachbarten
Blöcke.
Es ist jedoch möglich,
eine von diesen zu fixieren, statt zwischen diesen umzuschalten.
In diesem Fall wird dies verwirklicht durch Vorbereiten einer Speichereinheit, die
entweder einen bestimmten Typ von Kodetabellen oder einen bestimmten
Typ von VLC-Tabellen aufweist. 20A ist
ein Blockdiagramm, das eine Struktur des Koeffizientenzahldekodierers 1403 zur
Durchführung der
Dekodierung variabler Länge
der Anzahl der Koeffizienten durch Fixieren nur der Kodetabelle
zeigt. 20B ist ein Blockdiagramm, das
eine Struktur des Koeffizientenzahldekodierers 1403 für die Durchführung einer
Dekodierung variabler Länge
der Anzahl der Koeffizienten durch Fixieren nur der VLC-Tabelle
zeigt. Im Fall der Fixierung nur der Kodetabelle enthält der Koeffizientenzahldekodierer 1403,
wie in 20A gezeigt ist, eine Kodetabellenspeichereinheit 1601 anstelle
der Kodetabellenspeichereinheit 1502 und der Kodetabellenauswahleinheit 1503,
die in 18A gezeigt sind. Die Kodetabellenspeichereinheit 1601 weist
einen bestimmten Typ von Kodetabellen auf. Der Koeffizientenzahldekodierer 1506 transformiert
zuerst einen Kode variabler Länge
unter Verwendung der von der VLC-Tabellenauswahleinheit 1504 ausgewählten VLC-Tabelle
in eine Kodezahl und transformiert anschließend diese Kodezahl unter Verwendung
der in der Kodetabellenspeichereinheit 1601 gespeichert
Kodetabelle in die Anzahl der Koeffizienten.
-
Andererseits
enthält
im Fall der Fixierung nur der VLC-Tabelle der Koeffizientenzahldekodierer 1403, wie
in 20B gezeigt ist, eine VLC-Tabellenspeichereinheit 1602 anstelle
der VLC-Tabellenspeichereinheit 1505 und der VLC-Tabellenauswahleinheit 1504,
die in 18A gezeigt sind. Die VLC-Tabellenspeichereinheit 1602 weist
einen bestimmten Typ von VLC-Tabelle auf. Der Koeffizientenzahldekodierer 1506 transformiert
zuerst einen Kode variabler Länge
unter Verwendung der in der VLC-Tabellenspeichereinheit 1602 gespeicherten
VLC-Tabelle in eine Kodezahl und transformiert anschließend die
Kodezahl unter Verwendung der von der Kodetabellenauswahleinheit 1503 ausgewählten Kodetabelle
in die Anzahl der Koeffizienten.
-
Somit
ist es möglich,
die Speicherkapazität
zum Speichern mehrerer Tabellen zu reduzieren, indem entweder eine
Kodetabelle oder eine VLC-Tabelle
fixiert wird.
-
Es
ist ferner möglich,
eine Dekodierung variabler Länge
im Koeffizientenzahldekodierer 1403 durchzuführen, indem
nur die VLC-Tabellen entsprechend dem Vorhersagewert auf der Grundlage
der Anzahlen der Koeffizienten der benachbarten Blöcke umgeschaltet
werden, ohne Kodetabellen zu verwenden. 20C ist ein
Blockdiagramm, das eine Struktur des Koeffizientenzahldekodierers 1403 zeigt,
wenn eine Dekodierung variabler Länge der Koeffizientenzahl unter
Verwendung nur einer VLC-Tabelle ohne Verwendung von Kodetabellen
durchgeführt
wird. Wie in 20C gezeigt ist, enthält in diesem
Fall der Koeffizientenzahldekodierer 1403 weder die Kodetabellenspeichereinheit 1502 noch
die Kodetabellenauswahleinheit 1503, die in 18A gezeigt sind. Im Koeffizientenzahldekodierer 1403 wählt die
VLC-Tabellenauswahleinheit 1603 die VLC-Tabelle für die aktuelle
Verwendung aus mehreren VLC-Tabellen, die in der VLC-Tabellenspeichereinheit 1604 gespeichert
sind, auf der Grundlage des von der Vorhersagewertberechnungseinheit 1501 berechneten
Vorhersagewerts aus. Anschließend
transformiert der Koeffizientenzahldekodierer 1506 direkt
einen Kode variabler Länge
in die Anzahl der Koeffizienten, ohne die Anzahl der Koeffizienten
unter Verwendung der Kodetabelle in eine Kodezahl zu transformieren,
wie oben beschrieben worden ist.
-
Durch
Fixieren entweder der Kodetabelle oder der VLC-Tabelle, statt zwischen
diesen umzuschalten, kann somit der Durchsatz zum Umschalten von
Tabellen reduziert werden, oder eine Speichermenge zum Speichern
mehrerer Tabellen kann reduziert werden, obgleich die Effekte der
Kodierungseffizienz mehr oder weniger abnehmen.
-
Auch
ein Fall, in welchem der Koeffizientenzahldekodierer 1403 einen
Bitstrom, in welchem eine Kodierung variabler Länge durchgeführt worden
ist, zu einem Differenzwert zwischen dem Vorhersagewert und der
Anzahl der Koeffizienten dekodiert, statt in den Wert der Anzahl
der Koeffizienten, kann in der gleichen Weise behandelt werden. 21 ist
ein Blockdiagramm dieses Beispiels, das eine Struktur des Koeffizientenzahldekodierers 1403 zur
Durchführung
der Dekodierung des Bitstroms, in dem eine Dekodierung variabler
Länge durchgeführt worden
ist, in den Differenzwert zwischen dem Vorhersagewert und der Anzahl
der Koeffizienten durch Fixieren sowohl der Kodetabelle als auch
der VLC-Tabelle zeigt. Wie in 21 gezeigt
ist, enthält
in diesem Fall der Koeffizientenzahldekodierer 1403 eine
Kodetabellenspeichereinheit 1601 anstelle der Kodetabellenspeichereinheit 1502 und
der Kodetabellenauswahleinheit 1503, die in 18A gezeigt sind, sowie eine VLC-Tabellenspeichereinheit 1602 anstelle
der VLC-Tabellenspeichereinheit 1505 und der VLC-Tabellenauswahleinheit 1504,
die in 18A gezeigt sind. Diese Kodetabellenspeichereinheit 1601 weist
einen bestimmten Typ von Kodetabellen auf, während die VLC-TabeÍlenspeichereinheit 1602 einen
bestimmten Typ von VLC-Tabelle aufweist. Der Koeffizientenzahldekodierer 1506 transformiert
zuerst einen Kode variabler Länge in
eine Kodezahl unter Verwendung der in der VLC-Tabellenspeichereinheit 1602 gespeicherten
VLC-Tabelle, und transformiert anschließend die Kodezahl in einen
Differenzwert zwischen dem Vorhersagewert und der Anzahl der Koeffizienten
unter Verwendung der in der Kodetabellenspeichereinheit 1601 gespeicherten
Kodetabelle. Die Additionsberechnungseinheit 1507 berechnet
die Anzahl der Koeffizienten durch Addieren des Differenzwertes
zum Vorhersagewert.
-
(Siebte Ausführungsform)
-
Die
Struktur der Bilddekodierungsvorrichtung und der Umriss der Dekodierungsverarbeitung
sind vollkommen identisch mit der sechsten Ausführungsform, abgesehen von dem
in 17 gezeigten Koeffizientenzahldekodierer 1403.
Bezüglich
der Verarbeitung zur Dekodierung variabler Länge der Anzahl der Koeffizienten,
die im Koeffizientenzahldekodierer 1403 gemäß der siebten
Ausführungsform
durchgeführt
wird, werden Einzelheiten im Folgenden unter Verwendung der 11 und 22 erläutert.
Der in der Bildkodierungsvorrichtung gemäß der zweiten Ausführungsform
erzeugte Bitstrom soll eingegeben werden.
-
22A ist ein Blockdiagramm, das eine interne Struktur
des Koeffizientenzahldekodierers 1403 genauer zeigt.
-
Wie
in 22A gezeigt ist, enthält der Koeffizientenzahldekodierer 1403 eine
Kodetabellenerzeugungseinheit 1901 anstelle der Kodetabellenspeichereinheit 1502 und
der Kodetabellenauswahleinheit 1503, die in 18A gezeigt sind. Die Anzahlen der Koeffizienten
in den dekodierten Blöcken
werden von der in 17 gezeigten Koeffizientenzahlspeichereinheit 1402 in
die Kodetabellenerzeugungseinheit 1901 eingegeben. Die
Kodetabellenerzeugungseinheit 1901 zählt die Anzahl der dekodierten
Blöcke
mit der gleichen Anzahl von Koeffizienten wie der Wert der Anzahl
der Koeffizienten bei jedem Wert der Anzahl der Koeffizienten, und erzeugt
Kodetabellen durch Zuordnen von Kodezahlen in absteigender Reihenfolge
beginnend mit einer Anzahl von Koeffizienten, für die auf der Grundlage der
Statistik die höchste
Häufigkeit
aufgezeichnet wurde. 11A ist ein Musterdiagramm,
das eine Position dekodierter Blöcke
darstellt, die Ziel der Statistik sind. Hierbei sind P1, P3 und
P4 Bilder, in denen die Interbildvorhersage durchgeführt worden
ist, während
I2 ein Bild ist, in dem eine Intrabildvorhersage durchgeführt worden
ist. Unter der Annahme, dass ein zu dekodierender aktueller Block
zu P3 gehört,
sind alle Blöcke
in P1, einem dem aktuellen Bild unmittelbar vorangehendes Bild, das
mit dem gleichen Verfahren dekodiert worden ist, Ziel der Statistik.
Der Fall, in dem die Blöcke äquivalent zu
einem Bild, das die dekodierten Blöcke im aktuellen Bild enthält, Ziel
der Statistik sind, kann in der gleichen Weise behandelt werden.
Ferner wird eine Tabelle für
die Anfangsbedingung in absteigender Reihenfolge beginnend mit dem
Wert 0 verwendet, wenn die dekodierten Blöcke äquivalent zu einem Bild, die
Ziel der Statistik sein können,
nicht existieren. Hierbei sind jedoch die Blöcke äquivalent zu einem Bild das
Ziel der Statistik, wobei der Fall, in dem die Anzahl der Blöcke außer diesen
als Parameter verwendet wird, in der gleichen Weise behandelt werden
kann. Diesbezüglich
sollte die gleiche Zahl wie diejenige, die für die Kodierung verwendet wurde,
verwendet werden. Im Fall der Erzeugung der Kodetabelle, wie oben
beschrieben worden ist, indem wie in 11A gezeigt
Bezug genommen wird, braucht die Tabelle nur einmal erzeugt werden,
wenn mit der Kodierung des aktuellen Bildes begonnen wird.
-
Indessen
werden die Anzahlen der Koeffizienten in den dekodierten Blöcken, die
am Rand angeordnet sind, in die Vorhersagewertberechnungseinheit 1501 eingegeben.
Die Vorhersagewertberechnungseinheit 1501 ermittelt den
Vorhersagewert durch Berechnen eines Mittelwertes auf der Grundlage
dieser Werte, wie in der sechsten Ausführungsform. Anstelle des Mittelwertes
können
ein Maximalwert, ein Minimalwert oder ein Mediumwert als Verfahren
zum Bestimmen des Vorhersagewertes verwendet werden. Wie in der
sechsten Ausführungsform
werden anschließend
die dekodierten Blöcke,
die als Referenz verwendet werden, unter Verwendung der drei Blöcke, die
an der Position der Blöcke
P, C und D angeordnet sind, für
den in 4A gezeigten aktuellen Block
X gemäß dem Diagramm
1 bestimmt. Das Diagramm 1 zeigt eine Beziehung zwischen den Bedingungen
der Referenzblöcke
und der Blöcke,
auf die Bezug genommen werden kann, jedoch sind die Muster nicht
hierauf beschränkt.
Wenn keine Referenzblöcke
gefunden werden, kann entweder ein Wert 0 oder ein anderer beliebiger
Wert direkt als Vorhersagewert genommen werden. Diesbezüglich sollte
der gleiche Wert wie derjenige, der für die Kodierung verwendet wurde,
verwendet werden.
-
Der
von der Vorhersagewertberechnungseinheit 1501 berechnete
Vorhersagewert wird nur in der VLC-Tabellenauswahleinheit 1504 verwendet.
Die VLC-Tabellenauswahleinheit 1504 wählt wie in der sechsten Ausführungsform
eine VLC-Tabelle für
die Dekodierung der Anzahl der Koeffi zienten gemäß den im Diagramm 4 gezeigten
Auswahlkriterien aus mehreren VLC-Tabellen aus, die im Voraus in
der VLC-Tabellenspeichereinheit 1505 vorbereitet worden
sind, wie im Diagramm 5 gezeigt ist.
-
Der
Koeffizientenzahldekodierer 1506 nimmt auf die von der
Kodetabellenerzeugungseinheit 1901 erzeugte Kodetabelle
und die von der VLC-Tabellenauswahleinheit 1504 ausgewählte VLC-Tabelle
Bezug und führt
eine Dekodierung variabler Länge
für den
Bitstrom der Anzahl der Koeffizienten durch, der in der gleichen Weise
wie in der sechsten Ausführungsform
eingegeben wird.
-
Somit
ist es in der vorliegenden Ausführungsform
möglich,
eine Kodetabelle zu erzeugen, indem Statistiken der Anzahlen der
Koeffizienten in den dekodierten Blöcken verwendet werden und eine
VLC-Tabelle gemäß dem Vorhersagewert
bestimmt wird, der unter Verwendung der Anzahlen der Koeffizienten
in den dekodierten Blöcken
berechnet worden ist, und indem die Dekodierung der Anzahl der Koeffizienten
mit Bezug auf beide Tabellen durchgeführt wird.
-
Es
ist ferner möglich,
die dekodierten Blöcke,
die als Referenz bei der Vorhersagewertberechnungseinheit 1501 verwendet
werden sollen, wie in der sechsten Ausführungsform gemäß Diagramm
6 zu bestimmen, indem nur zwei Blöcke verwendet werden, die an
der Position der Blöcke
B und D bezüglich
des in 4B gezeigten aktuellen Blocks
X angeordnet sind, statt drei benachbarte Blöcke zu verwenden, wie in 4A gezeigt
ist. Das Diagramm 6 zeigt eine Beziehung zwischen den Bedingungen
der Referenzblöcke
und den Blöcken,
auf die Bezug genommen werden kann, jedoch sind die Muster nicht
hierauf beschränkt.
Wenn keine Referenzblöcke
gefunden werden, kann entweder ein Wert 0 oder ein anderer beliebiger
Wert direkt als Vorhersagewert genommen werden. Diesbezüglich sollte
der gleiche Wert wie derjenige, der für die Kodierung verwendet wurde,
verwendet werden.
-
Ferner
ist es möglich,
als Verfahren zum Berechnen eines Vorhersagewertes in der Vorhersagewertberechnungseinheit 1501 z.B.
ein optimales Verfahren gemäß jeder
Sequenz, jeder GOP, jedes Bildes oder jedes Streifens auszuwählen, statt
das Verfahren auf die Verwendung entweder eines Mittelwertes, eines
Maximalwertes, eines Minimalwertes oder eines Mediumwertes zu fixieren.
In diesem Fall wird das Berechnungsverfahren bestimmt, indem die
Signale zum Identifizieren des Berechnungsverfahrens dekodiert werden,
die im Kopf der Sequenz, der GOP oder des Bildes oder des Streifens
des Bitstroms beschrieben sind.
-
Ferner
ist es möglich,
z.B. entweder einen Mittelwert, einen Maximalwert, einen Minimalwert
oder einen Mediumwert gemäß dem Mittelwert
der Anzahlen der Koeffizienten in den dekodierten Referenzblöcken als
Verfahren zum Berechnen eines Vorhersagewertes in der Vorhersagewertberechnungseinheit 1501 auszuwählen. Das
Diagramm 7 zeigt diese Auswahlkriterien. Die Art der Zuweisung des
Mittelwertes und der Elemente, die als Vorhersagewerteberechnungsverfahren
angegeben sind, sind nicht auf diejenigen beschränkt, die im Diagramm 7 verwendet
werden. Diesbezüglich
sollte das gleiche Verfahren wie dasjenige, das für die Kodierung
verwendet wurde, verwendet werden.
-
Ferner
zeigt die vorliegende Ausführungsform
ein Dekodierungsverarbeitungsverfahren eines Bitstroms, in welchem
eine Kodierung variabler Länge
für die
Werte der Anzahl der Koeffizienten selbst durchgeführt wird.
Es ist jedoch möglich,
eine Dekodierung eines Bitstroms, in dem eine Kodierung variabler
Länge durchgeführt worden
ist, zu einem Differenzwert zwischen einem Vorhersagewert und der
Anzahl der Koeffizienten durchzuführen. In diesem Fall wird die
Anzahl der Koeffizienten durch die Tatsache bestimmt, dass die Additionsberechnungseinheit 1507 den
Differenzwert zwischen dem Vorhersagewert, der in der in 22 gezeigten Vorhersagewertberechnungseinheit 1501 berechnet
worden ist, und der vom Koeffizientenzahldekodierer 1506 dekodierten
Anzahl der Koeffizienten addiert.
-
Ferner
führt in
der obenerwähnten
Ausführungsform
der Koeffizientenzahldekodierer 1403 eine Dekodierung variabler
Länge durch
Umschalten der VLC-Tabellen gemäß dem Vorhersagewert
auf der Grundlage der Anzahlen der Koeffizienten in den benachbarten
Blöcken
durch. Es ist jedoch möglich,
die Tabelle zu fixieren, statt zwischen den Tabellen umzuschal ten,
wie in der sechsten Ausführungsform.
In diesem Fall wird dies verwirklicht durch Verwenden nur einer
VLC-Tabellenspeichereinheit, die einen bestimmten Typ von VLC-Tabellen
aufweist, statt die VLC-Tabellenauswahleinheit
zu verwenden.
-
(Achte Ausführungsform)
-
Die
Struktur der Bilddekodierungsvorrichtung und der Umriss der Dekodierungsverarbeitung
sind vollkommen identisch mit der sechsten Ausführungsform, abgesehen von dem
in 17 gezeigten Koeffizientenzahldekodierer 1403.
Bezüglich
der Verarbeitung der Dekodierung variabler Länge der Anzahl der Koeffizienten,
die vom Koeffizientenzahldekodierer 1403 gemäß der achten
Ausführungsform
durchgeführt
wird, werden im Folgenden Einzelheiten unter Verwendung der 23, des Diagramms 8 und des Diagramms
9 erläutert. Der
von der Bildkodierungsvorrichtung gemäß der dritten Ausführungsform
erzeugte Bitstrom soll eingegeben werden.
-
23A ist ein Blockdiagramm, das eine interne Struktur
des Koeffizientenzahldekodierers 1403 genauer zeigt.
-
Wie
in 23A gezeigt ist, enthält der Koeffizientenzahldekodierer 1403 nicht
die in 18A gezeigte Vorhersagewertberechnungseinheit 1501.
Eine Kodetabellenauswahleinheit 2001 und eine VLC-Tabellenauswahleinheit 2002 wählen eine
Tabelle für
die aktuelle Verwendung unter direkter Nutzung der Anzahlen der Koeffizienten
in den dekodierten Blöcken
aus, ohne einen Vorhersagewert zu verwenden, was von der sechsten
Ausführungsform
verschieden ist. Für
die dekodierten Blöcke,
die anschließend
als Referenz verwendet werden, wie in 4B gezeigt
ist, werden nur zwei Blöcke
an der Position des Blocks B (oben) und des Blocks D (links) bezüglich des
aktuellen Blocks X verwendet. Wenn jedoch die oberhalb und links
angeordneten Blöcke
nicht dekodiert sind oder außerhalb
des Bildes oder außerhalb
des Streifens angeordnet sind, kann entweder ein Wert 0 oder ein
anderer beliebiger Wert eingesetzt werden. Diesbezüglich sollte
der gleiche Wert wie derjenige, der für die Kodierung verwendet wurde,
verwendet werden.
-
Das
Diagramm 8 zeigt ein Auswahlverfahren für Kodetabellen bei der Kodetabellenauswahleinheit 2001.
Die Kodetabellenauswahleinheit 2001 klassifiziert die jeweiligen
Anzahlen der Koeffizienten in den Blöcken, die oberhalb und links
des aktuellen Blocks angeordnet sind, wie in Diagramm 8 gezeigt
ist, entsprechend dem Wert in zwei Gruppen und wählt eine Tabelle unter Verwendung
einer Kombination der vier so gebildeten Tabellen aus. Das Verfahren
zum Klassifizieren der Anzahl der Koeffizienten in den oberen und
linken Blöcken
und die Art der Zuweisung der Kodetabellen sind nicht auf diejenigen
beschränkt,
die im Diagramm 8 gezeigt sind. Diesbezüglich wird in diesem Fall das
gleiche Verfahren verwendet, wie dasjenige, das für die Kodierung
verwendet wurde. Ferner wählt
die VLC-Tabellenauswahleinheit 2002 eine
VLC-Tabelle für
die aktuelle Referenz unter Verwendung des in Diagramm 9 gezeigten
Auswahlverfahrens aus, wie im Fall der Kodetabellenauswahleinheit 2001.
-
Der
Koeffizientenzahldekodierer 1506 nimmt auf die von der
Kodetabellenauswahleinheit 2001 ausgewählte Kodetabelle und die von
der VLC-Tabellenauswahleinheit 2002 ausgewählte VLC-Tabelle
Bezug und führt
eine Dekodierung variabler Länge
für die
Anzahl der Koeffizienten im aktuellen Block durch, der in der gleichen
Weise wie in der sechsten Ausführungsform
eingegeben wird.
-
Die
oben gezeigte vorliegende Ausführungsform
ermöglicht,
die Dekodierung der Anzahl der Koeffizienten effizient durchzuführen, indem
die Anzahl der Koeffizienten in den dekodierten Blöcken, die
oberhalb und links des aktuellen Blocks angeordnet sind, in "N" Gruppen entsprechend dem Wert mit Bezug
auf die Kodetabelle und die VLC-Tabelle zu klassifizieren, gemäß der Kombination
von N × N
Möglichkeiten,
die dann gebildet werden, und durch adaptives Umschalten zwischen
diesen.
-
Die
vorliegende Ausführungsform
zeigt ein Dekodierungsverarbeitungsverfahren eines Bitstroms, in dem
eine Kodierung variabler Länge
durchgeführt
worden ist, in Werte der Anzahl der Koeffizienten selbst. Es ist
jedoch möglich,
die Dekodierung eines Bitstroms, in dem eine Kodierung variabler
Länge durchgeführt worden
ist, zu einem Differenzwert zwischen dem Vorhersagewert und der
Anzahl der Koeffizienten durchzuführen. In diesem Fall wird die
Anzahl der Koeffizienten durch die Tatsache bestimmt, dass die Additionsberechnungseinheit 1507 den
Differenzwert zwischen dem in der Vorhersagewertberechnungseinheit 1501 berechneten
Vorhersagewert und der vom Koeffizientenzahldekodierer 1506 dekodierten
Anzahl der Koeffizienten addiert.
-
Ferner
führt der
Koeffizientenzahldekodierer 1403 eine Dekodierung variabler
Länge durch
Umschalten sowohl der Kodetabelle als auch der VLC-Tabelle gemäß den Anzahlen
der Koeffizienten in den benachbarten Blöcken durch. Es ist jedoch möglich, eine
dieser Tabellen zu fixieren, statt zwischen diesen umzuschalten,
wie in der sechsten Ausführungsform.
In diesem Fall wird dies durch die Verwendung einer Speichereinheit
verwirklicht, die entweder einen bestimmten Typ von Kodetabellen
oder einen bestimmten Typ von VLC-Tabellen aufweist, statt die Tabellenauswahleinheiten
zu verwenden. Ferner ist es möglich,
eine Dekodierung variabler Länge
durchzuführen
durch Umschalten nur der VLC-Tabellen, ohne Kodetabellen zu verwenden,
entsprechend den Anzahlen der Koeffizienten in den benachbarten
Blöcken,
wie in der sechsten Ausführungsform.
-
(Neunte Ausführungsform)
-
Die
Struktur der Bilddekodierungsvorrichtung und der Umriss der Dekodierungsverarbeitung
gemäß der vorliegenden
Ausführungsform
sind vollkommen identisch mit der sechsten Ausführungsform, abgesehen von dem
in 17 gezeigten Koeffizientenzahldekodierer 1403.
Bezüglich
der Verarbeitung der Dekodierung variabler Länge der Anzahl der Koeffizienten,
die von dem Koeffizientenzahldekodierer 1403 gemäß der neunten
Ausführungsform
durchgeführt
wird, werden im Folgenden unter Verwendung der 24 und 14 Einzelheiten
erläutert.
Der von der Bildkodierungsvorrichtung gemäß der vierten Ausführungsform
erzeugte Bitstrom soll eingegeben werden.
-
24A ist ein Blockdiagramm, das eine interne Struktur
des Koeffizientenzahldekodierers 1403 genauer zeigt.
-
Wie
in 24A gezeigt ist, enthält der Koeffizientenzahldekodierer 1403 eine
Tabellenauswahleinheit 2101 anstelle der Vorhersagewertberechnungseinheit 1501,
der Kodetabellenauswahleinheit 1503 und der VLC-Tabellenauswahleinheit 1504,
die in 18A gezeigt sind. Die Tabellenauswahleinheit 2101 verwendet direkt
die Anzahl der Koeffizienten in den dekodierten Blöcken, ohne
einen Vorhersagewert zu verwenden, und wählt eine Tabelle für die aktuelle
Nutzung aus durch Beurteilen sowohl der Kodetabelle als auch der
VLC-Tabelle zur gleichen Zeit, was verschieden ist von der sechsten
Ausführungsform.
Für die
dekodierten Blöcke, die
anschließend
als Referenz verwendet werden, werden drei Blöcke an der Position der Blöcke B, C
und D bezüglich
des aktuellen Blocks X verwendet, wie in 4A gezeigt
ist. Wenn diesbezüglich
die so angeordneten Blöcke
nicht kodiert oder außerhalb
des Bildes oder außerhalb
des Streifens angeordnet sind, wird entweder ein Wert 0 oder ein
anderer beliebiger Wert als Anzahl der Koeffizienten eingesetzt.
Es sollte jedoch der gleiche Wert wie derjenige, der für die Kodierung
verwendet wurde, verwendet werden.
-
Wie
in 14 gezeigt ist, berechnet die Tabellenauswahleinheit 2101 eine
Summe einer Länge
eines Bitstroms, der als Ergebnis der Kodierung der Anzahlen der
Koeffizienten in den Referenzblöcken
verendet worden ist, unter Verwendung sowohl der Kodetabelle als
auch der VLC-Tabelle zur gleichen Zeit, und bestimmt diese als Beurteilungswert,
wie in der vierten Ausführungsform.
Anschließend
führt die
Tabellenauswahleinheit 2101 diese Verarbeitung für alle Kombinationen
der Kodetabelle und der VLC-Tabelle,
die in der Kodetabellenspeichereinheit 1502 sowie in der
VLC-Tabellenspeichereinheit 1505 gespeichert
sind, durch und wählt
eine Kombination einer Kodetabelle und einer VLC-Tabelle aus, in
der der gewonnene Beurteilungswert am kleinsten ist.
-
Der
Koeffizientenzahldekodierer 1506 nimmt auf die Kodetabelle
und die VLC-Tabelle Bezug, die von der Tabellenauswahleinheit 2101 ausgewählt worden
sind, und führt
eine Kodierung variabler Länge
für die
Anzahl der Koeffizienten im aktuellen Block durch, der in der gleichen
Weise wie in der sechsten Ausführungsform eingegeben
wird.
-
Somit
wird in der vorliegenden Ausführungsform
die Kodierung für
die Anzahlen der Koeffizienten in den benachbarten Blöcken, die
unter Verwendung der Kodetabelle und der VLC-Tabelle dekodiert worden sind,
durchgeführt,
wobei ein Schätzwert
unter Verwendung der Summe der Länge
des Bitstroms zu diesem Zeitpunkt bestimmt wird und eine Dekodierung
für die
Anzahl der Koeffizienten durchgeführt wird, indem auf die Kodetabelle
und die VLC-Tabelle Bezug genommen wird, deren Kombination den kleinsten
Beurteilungswert erzeugt.
-
Für die dekodierten
Blöcke,
die von der Tabellenauswahleinheit 2101 als Referenz verwendet
werden, kann ein Fall der Verwendung von nur zwei Blöcken, die
an der Position der Blöcke
B und D bezüglich
des aktuellen Blocks X angeordnet sind, wie in 4B gezeigt
ist, anstelle der Verwendung von drei benachbarten Blöcken, die
in 4A gezeigt sind, in der gleichen Weise wie in
der sechsten Ausführungsform
behandelt werden. Wenn diesbezüglich
die so angeordneten Blöcke
nicht kodiert oder außerhalb
des Bildes oder außerhalb
des Streifens angeordnet sind, kann entweder ein Wert 0 oder ein
anderer beliebiger Wert als Anzahl der Koeffizienten eingesetzt
werden.
-
Ferner
zeigt die vorliegende Ausführungsform
ein Dekodierungsverarbeitungsverfahren eines Bitstroms, in welchem
eine Kodierung variabler Länge
durchgeführt
worden ist, für
die Werte der Anzahl der Koeffizienten selbst. Es ist jedoch möglich, eine
Dekodierung eines Bitstroms durchzuführen, in dem eine Kodierung
variabler Länge
für einen
Differenzwert zwischen dem Vorhersagewert und der Anzahl der Koeffizienten durchgeführt worden
ist. In diesem Fall wird die Anzahl der Koeffizienten durch die
Tatsache bestimmt, dass die Additionsberechnungseinheit 1507 den
Differenzwert zwischen dem von der Vorhersagewertberechnungseinheit 1501 berechneten
Vorhersagewert und der vom Koeffizientenzahldekodierer 1506 dekodierten
Anzahl der Koeffizienten addiert, wie in 24B gezeigt
ist.
-
Ferner
sind in der vorliegenden Ausführungsform
die Kodetabelle und die VLC-Tabelle das Ziel für die Umschaltung im Koeffizientenzahldekodierer 1403,
jedoch ist es möglich,
eine von diesen zu fixieren, statt zwischen diesen umzuschalten.
-
(Zehnte Ausführungsform)
-
Die
Struktur der Bilddekodierungsvorrichtung und der Umriss der Dekodierungsverarbeitung
gemäß der vorliegenden
Ausführungsform
sind vollkommen identisch mit der sechsten Ausführungsform, abgesehen von dem
in 17 gezeigten Koeffizientenzahldekodierer 1403.
Die vorliegende Ausführungsform
verwendet einen Interbildvorhersagemodus für die Interbildvorhersagedekodierung
und einen Intrabildvorhersagemodus für die Intrabildvorhersagedekodierung
als Referenzinformation im Koeffizientenzahldekodierer 1403 anstelle der
Anzahlen der Koeffizienten in den dekodierten Blöcken, wie in der sechsten Ausführungsform.
Der Bitstrom, der bei der Bildkodierungsvorrichtung gemäß der fünften Ausführungsform
erzeugt wird, soll eingegeben werden.
-
Bezüglich der
Verarbeitung der Dekodierung variabler Länge der Anzahl der Koeffizienten,
die von dem in 17 gezeigten Koeffizientenzahldekodierer 1403 durchgeführt wird,
werden im Folgenden Einzelheiten mit Bezug auf 25 erläutert.
-
25 ist
ein Blockdiagramm, das eine interne Struktur des Koeffizientenzahldekodierers 1403 genauer
zeigt.
-
Wie
in 25 gezeigt ist, enthält der Koeffizientenzahldekodierer 1403 nicht
die in 18A gezeigte Vorhersagewertberechnungseinheit 1501.
Der Interbildvorhersagemodus für
die Interbildvorhersagedekodierung und der Intrabildvorhersagemodus
für die
Intrabildvorhersagedekodierung werden von der Bitstromanalyseeinheit 1401 in
eine Kodetabellenauswahleinheit 2201 sowie eine VLC-Tabellenauswahleinheit 2202 eingegeben.
Die Kodetabellenauswahleinheit 2201 wählt eine zu verwendende Tabelle
auf der Grundlage des Modus aus: dem Interbildvorhersagemodus für die Interbildvorhersagedekodierung
und dem Intrabildvorhersagemodus für die Intrabildvorhersagedekodierung.
Das Diagramm 10 zeigt ein Auswahlverfahren für die in der Kodetabellenauswahleinheit 2201 gespeicherten
Kodetabellen.
-
In
dem Fall z.B., in dem das aktuelle Bild unter Verwendung der Interbildvorhersage
dekodiert wird, wird eine Kodetabelle 2 entsprechend für eine Dekodierung
variabler Länge
der Anzahl der Koeffizienten ausgewählt, wenn die Größe des aktuellen
Blocks 8 × 8
für die
Vorhersage ausgewählt
ist. Die Elemente sind nicht auf diejenigen beschränkt, die
im Diagramm 10 verwendet werden. Diesbezüglich sollten die gleichen
Elemente verwendet werden wie diejenigen, die für die Kodierung verwendet wurden.
-
Ferner
wählt die
VLC-Tabellenauswahleinheit 2202 eine VLC-Tabelle für die aktuelle
Referenz unter Verwendung des Auswahlverfahrens wie im Diagramm
11 gezeigt aus, wie im Fall der Kodetabellenauswahleinheit 2201.
-
Der
Koeffizientenzahldekodierer 1506 nimmt auf die von der
Kodetabellenauswahleinheit 2201 ausgewählte Kodetabelle sowie auf
die von der VLC-Tabellenauswahleinheit 2202 ausgewählte VLC-Tabelle
Bezug, um somit die Dekodierung variabler Länge der Anzahl der Koeffizienten
im aktuellen Block durchzuführen, der
in der gleichen Weise wie in der sechsten Ausführungsform eingegeben wird.
-
Somit
kann die vorliegende Ausführungsform
die Dekodierung der Anzahl der Koeffizienten durchführen mittels
Bezugnahme auf die Kodetabelle und die VLC-Tabelle beim Umschalten
zwischen diesen in adaptiver Weise entsprechend dem Modus: dem Interbildvorhersagemodus
für die
Interbildvorhersagedekodierung und dem Intrabildvorhersagemodus
für die
Intrabildvorhersagedekodierung.
-
Die
vorliegende Ausführungsform
zeigt ein Dekodierungsverarbeitungsverfahren eines Bitstroms, in welchem
eine Kodierung variabler Länge
durchgeführt
worden ist, in Werte der Anzahl der Koeffizienten selbst. Es ist
jedoch möglich,
eine Dekodierung eines Bitstroms, in dem eine Kodierung variabler
Länge durchgeführt worden
ist, zu einem Differenzwert zwischen einem Vorhersagewert und einer
Anzahl der Koeffizienten durchzuführen. In diesem Fall wird der
Vorhersagewert unter Verwendung der Anzahlen der Koeffizienten in
den benachbarten dekodierten Blöcken
be stimmt, und die Anzahl der Koeffizienten wird bestimmt durch Addieren
dieses Wertes zu dem Differenzwert der Anzahl der Koeffizienten,
die vom Koeffizientenzahldekodierer 1506 dekodiert worden
ist, wie in der sechsten Ausführungsform.
-
In
der vorliegenden Ausführungsform
führt ferner
der Koeffizientenzahldekodierer 1403 eine Dekodierung variabler
Länge durch
Umschalten sowohl der Kodetabelle als auch der VLC-Tabelle durch.
Es ist jedoch möglich,
diese zu fixieren, statt eine oder beide umzuschalten. In diesem
Fall wird dies verwirklicht durch Vorbereiten nur einer Speichereinheit,
die entweder einen bestimmten Typ von Kodetabellen oder einen bestimmten
Typ von VLC-Tabellen aufweist.
-
(Elfte Ausführungsform)
-
Wenn
ein Programm für
die Verwirklichung der Struktur des Kodierungsverfahrens oder des
Dekodierungsverfahrens, wie in den obenerwähnten Ausführungsformen gezeigt, auf einem
Speichermedium, wie z.B. einer flexiblen Platte, aufgezeichnet wird,
wird es möglich,
die in diesen Ausführungsformen
gezeigte Verarbeitung leicht in einem unabhängigen Computersystem durchzuführen.
-
Die 26A, 26B und 26C sind Darstellungen, die den Fall zeigen, in
dem die in den obenerwähnten
Ausführungsformen
1 bis 10 gezeigte Verarbeitung in einem Computersystem durchgeführt wird, wobei
eine flexible Platte verwendet wird, die das Kodierungsverfahren
oder das Dekodierungsverfahren der obenerwähnten Ausführungsformen speichert.
-
26B zeigt ein vollständiges Erscheinungsbild einer
flexiblen Platte, ihre Struktur im Querschnitt und die flexible
Platte selbst, während 26A ein Beispiel eines physikalischen Formats
der flexiblen Platte als Hauptkörper
eines Aufzeichnungsmediums zeigt. Eine flexible Platte FT ist in
einem Gehäuse
F enthalten, wobei auf der Oberfläche der Platte mehrere Spuren
Tr konzentrisch vom Rand bis zur Mitte ausgebildet sind, und wobei
jede Spur in 16 Sektoren Se in Winkelrichtung unterteilt ist. Die
flexible Platte, die das obenerwähnte Programm
speichert, speichert somit die Daten als das obenerwähnte Programm
in einem Bereich, der dafür auf
der flexiblen Platte FT zugewiesen wird.
-
26C zeigt die Struktur für die Aufzeichnung und das
Auslesen des Programms auf der flexiblen Platte FT. Wenn das Programm
auf der flexiblen Platte FT aufgezeichnet wird, schreibt das Computersystem Cs
die Daten als Programm über
ein Laufwerk für
flexible Platten. Wenn die Kodierungsvorrichtung und die Dekodierungsvorrichtung
im Computersystem mittels des Programms auf der flexiblen Platte
ausgebildet sind, wird das Programm mittels des Laufwerks für flexible
Platten von der flexiblen Platte gelesen und anschließend in
das Computersystem übertragen.
-
Die
obige Erläuterung
beruht auf der Annahme, dass eine flexible Platte als Datenaufzeichnungsmedium
verwendet wird, jedoch kann die gleiche Verarbeitung auch unter
Verwendung einer optischen Platte durchgeführt werden. Außerdem ist
das Aufzeichnungsmedium nicht auf eine flexible Platte und eine
optische Platte beschränkt,
sondern es kann ein beliebiges anderes Medium verwendet werden,
wie z.B. eine IC-Karte und eine ROM-Kassette, die ein Programm aufzeichnen
können.
-
Es
folgt eine Erläuterung
der Anwendungen des Bildkodierungsverfahrens sowie des Bilddekodierungsverfahrens,
wie in den obenerwähnten
Ausführungsformen
gezeigt, sowie eines Systems, das diese verwendet:
-
27 ist
ein Blockdiagramm, das eine Gesamtkonfiguration eines Inhalteliefersystems
ex190 für
die Verwirklichung eines Inhalteverteilungsdienstes zeigt. Der Bereich
für die
Bereitstellung eines Kommunikationsdienstes ist in Zellen einer
gewünschten
Größe unterteilt,
wobei Zellenstandorte ex107–ex110,
die feste Funkstationen sind, in den jeweiligen Zellen platziert
sind.
-
Dieses
Inhalteliefersystem ex100 ist mit Vorrichtungen, wie z.B. einem
Computer ex111, einem PDA (persönlicher
digitaler Assistent) ex112, einer Kamera ex113, einem Zellentelephon
ex114 und einem Zellentelephon mit Kamera ex115 über das Internet ex101, einen
Internetdienstanbieter ex102, ein Telephonnetz ex104 und Zellenstandorte
ex107–ex110 verbunden.
-
Das
Inhalteliefersystem ex100 ist jedoch nicht auf die in 27 gezeigte
Konfiguration beschränkt
und kann mit einer beliebigen Kombination hieraus verbunden sein.
Ferner kann jede Vorrichtung direkt mit dem Telephonnetz ex104 und
nicht über
die Zellenstandorte ex107–ex110
verbunden sein.
-
Die
Kamera ex113 ist eine Vorrichtung, die Videoaufnahmen machen kann,
wie z.B. eine digitale Videokamera. Das Zellentelephon ex114 kann
ein Zellentelephon eines PDC-Systems (PDC = persönliches digitales Kommunikationssystem),
eines CDMA-Systems (Kodebereich-Mehrfachzugangs-System),
eines W-CDMA-Systems (Breitband-Kodebereich-Mehrfachzugangs-System)
oder eines GSM-Systems (Globales System für Mobilkommunikation), eines
PHS-Systems (persönliches
Handytelephon-System) oder dergleichen sein.
-
Ein
Streaming-Server ex103 ist mit der Kamera ex113 über das Telphonnetz ex104 und
den Zellenstandort ex109 verbunden, was eine unverzögerte Verteilung
oder dergleichen unter Verwendung der Kamera ex113 auf der Grundlage
der von dem Benutzer übermittelten
kodierten Daten verwirklicht. Entweder die Kamera ex113 oder der
Server, der die Daten übermittelt,
kann die Daten kodieren. Ferner können die von einer Kamera ex116
aufgenommenen Bilddaten über
den Computer ex111 zum Streaming-Server ex103 übermittelt werden. In diesem
Fall können
entweder die Kamera ex116 oder der Computer ex112 die Bilddaten
kodieren. Ein LSI ex117, der im Computer ex111 oder der Kamera ex116
enthalten ist, führt
aktuell die Kodierungsverarbeitung durch. Die Software für die Kodierung
und die Dekodierung der Bilder kann in einem beliebigen Typ von
Speichermedium (wie z.B. einem CD-ROM, einer flexiblen Platte und
einer Festplatte) integriert sein, das ein Aufzeichnungsmedium ist,
das von dem Computer ex111 oder dergleichen lesbar ist. Ferner kann
ein Zellentelephon mit Kamera ex115 die Bilddaten übermitteln.
Diese Bilddaten sind Daten, die mittels des im Zellentelephon ex115
enthaltenen LSI kodiert werden.
-
Das
Inhalteliefersystem ex100 kodiert Inhalte (z.B. ein Musik-Live-Video),
das von Benutzern unter Verwendung der Kamera ex113, der Kamera
ex116 oder dergleichen aufgenommen worden ist, in der gleichen Weise
wie in den obenerwähnten
Ausführungsformen
gezeigt ist, und übermittelt
diese an den Streaming-Server ex103, während der Streaming-Server
ex103 die Stromverteilung der Inhaltsdaten an die Klienten auf deren
Anforderung hin übernimmt.
Die Klienten enthalten den Computer ex111, den PDA-ex112, die Kamera ex113,
das Zellentelephon ex114 und dergleichen, die die obenerwähnten kodierten
Daten dekodieren können. Im
Inhalteliefersystem ex100 können
die Klienten somit die kodierten Daten empfangen und wiedergeben,
und können
ferner die Daten in Echtzeit empfangen, dekodieren und wiedergeben,
um somit eine persönliche Rundfunkübertragung
zu verwirklichen.
-
Wenn
jede Vorrichtung in diesem System eine Kodierung oder Dekodierung
durchführt,
können
die Bildkodierungsvorrichtung oder die Bilddekodierungsvorrichtung,
wie in den obenerwähnten
Ausführungsformen
gezeigt, verwendet werden.
-
Als
Beispiel der Vorrichtung wird ein Zellentelephon erläutert.
-
28 ist
ein Diagramm, das das Zellentelephon ex115 zeigt, das das Bildkodierungsverfahren
und das Bilddekodierungsverfahren verwendet, die in den obenerwähnten Ausführungsformen
erläutert
worden sind. Das Zellentelephon ex115 besitzt eine Antenne ex201
für die
Kommunikation mit dem Zellenstandort ex110 über Funkwellen, eine Kameraeinheit
ex203, wie z.B. eine CCD-Kamera, die bewegte und stehende Bilder
aufnehmen kann, eine Anzeigeeinheit ex202, wie z.B. eine Flüssigkristallanzeige
für die
Anzeige von Daten, wie z.B. der kodierten Bilder und dergleichen,
die von der Kameraeinheit ex203 aufgenommen worden sind und von
der Antenne ex201 empfangen worden sind, eine Körpereinheit, die einen Satz
Bedienungstasten ex204 enthält,
eine Sprachausgabeeinheit ex208, wie z.B. einen Lautsprecher zum
Ausgeben von Sprache, eine Spracheingabeeinheit 205, wie
z.B. ein Mikrofon zum Eingeben von Sprache, ein Speichermedium ex207
zum Speichern kodierter oder dekodierter Daten, wie z.B. Daten der
bewegten oder stehenden Bilder, die von der Kamera aufgenommen worden
sind, Daten empfangener E-Mails und Daten von bewegten oder stehenden
Bildern, sowie eine Schlitzeinheit ex206 zum Anbringen des Speichermediums
ex207 am Zellentelephon ex115. Das Speichermedium ex207 enthält ein Flash-Speicherelement,
eine Art EEPROM (elektrisch löschbarer
und programmierbarer Nur-Lese-Speicher), der ein nichtflüchtiger
Speicher ist, der elektrisch löschbar
und wiederbeschreibbar ist, in einem Kunststoffgehäuse, wie
z.B. einer SD-Karte.
-
Im
Folgenden wird ein Zellentelephon ex115 mit Bezug auf 29 erläutert.
Im Zellentelephon ex115 ist eine Hauptsteuereinheit ex311, die dafür ausgelegt
ist, jede Einheit des Hauptkörpers
zu steuern, der die Anzeigeeinheit ex202 sowie die Bedienungstasten
ex204 enthält,
wechselseitig mit einer Stromversorgungsschaltungseinheit ex310,
einer Bedienungseingabesteuereinheit ex304, einer Bildkodierungseinheit
ex312, einer Kameraschnittstelleneinheit ex303, einer LCD-(Flüssigkristallanzeige)-Steuereinheit ex302,
einer Bilddekodierungseinheit ex309, einer Multiplex/Demultiplex-Einheit
ex308, einer Lese/Schreib-Einheit ex307, einer Modem-Schaltungseinheit
ex306 und einer Sprachverarbeitungseinheit ex305 über einen
synchronen Bus ex313 verbunden.
-
Wenn
eine Anruf-Ende-Taste oder eine Stromversorgungstaste durch die
Betätigung
eines Benutzers eingeschaltet wird, liefert die Stromversorgungsschaltungseinheit
ex310 Strom von einem Batteriepaket an die jeweiligen Einheiten,
um somit die am digitalen Zellentelephon ex115 angebrachte Kamera
in einen Bereitschaftszustand zu versetzen.
-
Im
Zellentelephon ex115 setzt die Sprachverarbeitungseinheit ex305
die mittels der Spracheingabeeinheit ex205 empfangenen Sprachsignale
im Konversationsmodus in digitale Sprachdaten unter der Steuerung
der Hauptsteuereinheit ex311 um, die eine CPU, einen ROM und einen
RAM enthält,
wobei die Modemschaltungseinheit ex306 eine Spreizspektrumverarbeitung
für die
digitalen Sprachdaten durchführt,
und wobei die Kommunikationsschaltungseinheit ex301 eine Digital-zu-Analog-Umsetzung und eine
Frequenztransformation der Daten durchführt, um diese somit über die
Antenne ex201 zu senden. Ferner verstärkt im Zel lentelephon ex115
die Kommunikationsschaltungseinheit ex301 die von der Antenne ex201
im Konversationsmodus empfangenen Daten und führt eine Frequenztransformation
und eine Analog-zu-Digital-Umsetzung der Daten durch, wobei die
Modemschaltungseinheit ex306 eine inverse Spreizspektrumsverarbeitung
der Daten durchführt
und die Sprachverarbeitungseinheit ex305 diese in analoge Sprachdaten
umsetzt, um diese somit über
die Sprachausgabeeinheit 208 auszugeben.
-
Wenn
ferner eine E-Mail im Datenkommunikationsmodus übermittelt wird, werden die
durch eine Betätigung
der Bedienungstasten ex204 des Hauptkörpers eingegebenen Textdaten
der E-Mail über
die Operationseingabesteuerung ex304 zur Hauptsteuereinheit ex311
gesendet. Die Hauptsteuereinheit ex311 führt nach der Modemschaltungseinheit
ex306 eine Spreizspektrumsverarbeitung der Textdaten durch, während die Kommunikationsschaltungseinheit
ex301 eine Digital-zu-Analog-Umsetzung
und eine Frequenztransformation derselben durchführt, wobei die Daten über die
Antenne ex201 zum Zellenstandort ex110 übermittelt werden.
-
Wenn
die Bilddaten im Datenkommunikationsmodus übermittelt werden, werden die
von der Kameraeinheit ex203 aufgenommenen Bilddaten über die
Kameraschnittstelleneinheit ex303 der Bildkodierungseinheit ex312
zugeführt.
Wenn sie nicht übermittelt
werden, ist es auch möglich,
die von der Kameraeinheit ex203 aufgenommenen Bilddaten direkt über die
Kameraschnittstelleneinheit ex303 und die LCD-Steuereinheit ex302
auf der Anzeigeeinheit 202 anzuzeigen.
-
Die
Bildkodierungseinheit ex312, die die Bildkodierungsvorrichtung enthält, die
in der vorliegenden Erfindung erläutert wird, komprimiert und
kodiert die von der Kameraeinheit ex203 gelieferten Bilddaten mittels des
Kodierungsverfahrens, das für
die Bildkodierungsvorrichtung verwendet wird, die in der obenerwähnten ersten
Ausführungsform
gezeigt ist, um diese somit in kodierte Bilddaten zu transformieren,
und sendet diese an die Multiplex/Demultiplex-Einheit ex308. Zu
diesem Zeitpunkt sendet das Zellentelephon ex115 die von der Spracheingabeeinheit
ex205 während
der Aufnahme mit der Kameraeinheit ex203 empfangene Sprache an die Multiplex/Demultiplex-Einheit
ex308 als digitale Sprachdaten über
die Sprachverarbeitungseinheit ex305.
-
Die
Multiplex/Demultiplex-Einheit ex308 multiplexiert die kodierten
Bilddaten, die von der Bildkodierungseinheit ex312 geliefert werden,
und die von der Sprachverarbeitungseinheit ex305 gelieferten Sprachdaten
unter Verwendung eines vorgegebenen Verfahrens, wobei die Modemschaltungseinheit
ex306 eine Spreizsprektrumsverarbeitung der als Ergebnis der Multiplexierung
erhaltenen multiplexierten Daten durchführt, und wobei die Kommunikationsschaltungseinheit
ex301 eine Digital-zu-Analog-Umsetzung
und eine Frequenztransformation der Daten für die Übermittlung über die
Antenne ex201 durchführt.
-
Für den Empfang
von Daten einer Filmdatei, die mit einer Web-Seite oder dergleichen
verknüpft
ist, im Datenkommunikationsmodus führt die Modemschaltungseinheit
ex306 eine inverse Spreizspektrumsverarbeitung der vom Zellenstandort
ex110 über
die Antenne ex201 empfangenen Daten durch und sendet die als Ergebnis
der Verarbeitung erhaltenen multiplexierten Daten an die Multiplex/Demultiplex-Einheit
ex308.
-
Um
die über
die Antenne ex201 empfangenen multiplexierten Daten zu dekodieren,
trennt die Multiplex/Demultiplex-Einheit ex308 die multiplexierten
Daten in einen Bitstrom von Bilddaten und einen Bitstrom von Sprachdaten,
und liefert die kodierten Bilddaten an die Bilddekodierungseinheit
ex309 und die Sprachdaten an die Sprachverarbeitungseinheit ex305
jeweils über
den synchronen Bus ex313.
-
Die
Bilddekodierungseinheit ex309, die die in der obenerwähnten Erfindung
erläuterte
Bilddekodierungsvorrichtung enthält,
dekodiert als Nächstes
den Bitstrom der Bilddaten mittels des Dekodierungsverfahrens, das
dem in den obenerwähnten
Ausführungsformen
gezeigten Kodierungsverfahren entspricht, um reproduzierte Filmdaten
zu erzeugen, und liefert diese Daten über die LCD-Steuereinheit ex302
an die Anzeigeeinheit ex202, so dass die Bilddaten angezeigt werden,
die in einer Filmdatei enthalten sind, die z.B. mit einer Web-Seite
verknüpft
ist. Gleichzeitig konvertiert die Sprachverarbeitungseinheit ex305
die Sprachdaten in analoge Sprachdaten und liefert diese Daten an
die Sprachausgabeeinheit ex208, so dass die Sprachdaten wiedergegeben
werden, die in der Filmdatei enthalten sind, die z.B. mit einer
Web-Seite verknüpft
ist.
-
Die
vorliegende Erfindung ist nicht auf das obenerwhänte System beschränkt, wobei
entweder die Bildkodierungsvorrichtung oder die Bilddekodierungsvorrichtung
in den obenerwähnten
Ausführungsformen
in ein digitales Rundfunksystem integriert sein können, wie
in 30 gezeigt ist. Ein solcher digitaler Rundfunk auf
Bodenbasis oder auf Satellitenbasis war in der letzten Zeit in den
Schlagzeilen. Genauer wird ein Bitstrom von Videoinformationen von
einer Rundfunkstation ex409 über
Funkwellen zu einem Rundfunksatelliten ex410 übermittelt oder mitgeteilt.
Bei Empfang derselben sendet der Rundsatellit ex410 Funkwellen für den Rundfunk aus.
Anschließend
empfängt
eine Antenne ex406 für
den Heimgebrauch mit einer Satellitenrundfunkempfangsfunktion die
Funkwellen, wobei ein Fernsehgerät
(Empfänger)
ex401 oder eine Aufsatzbox (STB) ex407 den Bitstrom für die Wiedergabe
dekodiert. Die Bilddekodierungsvorrichtung, wie in der obenerwähnten Ausführungsform
gezeigt, kann in der Wiedergabevorrichtung ex403 implementiert werden,
um den auf einem Speichermedium ex402 aufgezeichneten Bitstrom auszulesen
und zu dekodieren, welches ein Aufzeichnungsmedium wie z.B. eine
CD und eine DVD ist. In diesem Fall werden die wiedergegebenen Videosignale
auf einem Monitor ex404 angezeigt. Es ist ferner denkbar, die Bilddekodierungsvorrichtung
in der Aufsatzbox ex407 zu implementieren, die mit einem Kabel ex405
für Kabelfernsehen
oder der Antenne ex406 für
Satelliten- und/oder Bodenbasis-Rundfunk verbunden ist, um diese
somit auf einem Monitor ex408 des Fernsehgerätes ex401 wiederzugeben. Die
Bilddekodierungsvorrichtung kann in das Fernsehgerät und nicht
in die Aufsatzbox eingebaut sein. Ferner kann ein Fahrzeug ex412,
das eine Antenne ex411 aufweist, Signale vom Satelliten ex410 oder
vom Zellenstandort ex107 empfangen, um bewegte Bilder auf einer
Anzeigevorrichtung, wie z.B. einem Fahrzeugnavigationssystem ex413,
wiederzugeben.
-
Ferner
kann die Bildkodierungsvorrichtung, wie in den obenerwähnten Ausführungsformen
gezeigt, Bildsignale für
die Aufzeichnung auf einem Aufzeichnungsmedium kodieren. Ein konkretes
Beispiel ist ein Rekorder ex420, wie z.B. ein DVD-Rekorder zum Aufzeichnen
von Bildsignalen auf einer DVD-Platte ex421, und ein Plattenrekorder
zum Aufzeichnen derselben auf einer Festplatte. Diese können auf
einer SD-Karte ex422 aufgezeichnet werden. Wenn der Rekorder ex420
die Bilddekodierungsvorrichtung enthält, wie in den obenerwähnten Ausführungsformen
gezeigt ist, können
die auf der DVD-Platte ex421 oder der SD-Karte ex422 aufgezeichneten
Bildsignale für
die Anzeige auf dem Monitor ex408 wiedergegeben werden.
-
Als
Struktur eines Fahrzeugnavigationssystems ex413, ist eine Struktur
ohne Kameraeinheit ex203, Kameraschnittstelleneinheit ex303 und
Bildkodierungseinheit ex312 aus den in 29 gezeigten
Komponenten denkbar. Das Gleiche gilt für den Computer ex111, das Fernsehgerät (Empfänger) ex401
und dergleichen.
-
Außerdem können drei
Typen von Implementierungen für
ein Endgerät,
wie z.B. das obenerwähnte Zellentelephon
ex114, angenommen werden; ein sendendes/empfangendes Endgerät, das sowohl
mit einem Kodierer als auch einem Dekodierer implementiert ist,
ein sendendes Endgerät,
das nur mit einem Kodierer implementiert ist, und ein empfangendes
Endgerät,
das nur mit einem Dekodierer implementiert ist.
-
Wie
oben beschrieben worden ist, ist es möglich, das Bildkodierungsverfahren
oder das Bilddekodierungsverfahren in den obenerwähnten Ausführungsformen
für irgendwelche
der obenerwähnten
Vorrichtungen und Systeme zu verwenden, wobei durch Verwendung dieses
Fahrens die in den obenerwähnten
Ausführungsformen
beschriebenen Effekte erzielt werden können.
-
Ferner
ist die vorliegende Erfindung nicht auf die obenerwähnten Ausführungsformen
beschränkt,
wobei ein weiter Bereich von Variationen oder Modifikationen innerhalb
des Umfangs der folgenden Ansprüche möglich ist.
-
Ein
Bildkodierungsverfahren gemäß der vorliegenden
Erfindung verbessert die Kodierungseffizienz, da optimale Tabellen
für die
Kodierung vari abler Länge
herangezogen werden können,
wenn die Anzahl der Koeffizienten ungleich 0, die in einem zu kodierenden
Block enthalten sind, kodiert wird.
-
Ferner
dekodiert ein Bilddekodierungsverfahren gemäß der vorliegenden Erfindung
einen Bitstrom, in dem eine Anzahl der Koeffizienten ungleich 0,
die in einem Block enthalten sind, nach einer orthogonalen Transformation
mit Bezug auf optimale Tabellen für die Kodierung variabler Länge kodiert
ist, korrekt.
-
Industrielle
Anwendbarkeit
-
Das
Bildkodierungsverfahren und das Bilddekodierungsverfahren gemäß der vorliegenden
Erfindung sind somit als Verfahren zum Kodieren eines Bildes zum
Erzeugen eines Bitstroms sowie zum Dekodieren des erzeugten Bitstroms
unter Verwendung von Vorrichtungen, wie z.B. eines Zellentelephons,
einer DVD-Vorrichtung, eines Personalcomputers oder dergleichen,
nützlich.