-
Technisches
Gebiet
-
Die
vorliegenden Erfindung bezieht sich auf ein Kodierverfahren mit
variabler Länge
zum Kodieren von Koeffizienten in jedem Block, die erhalten werden,
indem eine Frequenztransformation auf Bilddaten eines Bewegungsbildes
pro Block durchgeführt
wird, der eine vorbestimmte Größe aufweist. Des
Weiteren bezieht sich die Erfindung auf ein Dekodierverfahren mit
einer variablen Länge
und Ähnliches.
-
Stand der
Technik
-
Beim
Kodieren eines Bewegungsbildes wird eine Kompression eines Informationsvolumens
gewöhnlich
durchgeführt,
indem Redundanzen sowohl in räumlichen
als auch in zeitlichen Richtungen, die das Bewegungsbild aufweist,
verwendet werden. Gewöhnlich
wird eine Transformation in einen Frequenzraum als ein Verfahren
zum Verwenden der räumlichen
Redundanz verwendet, während
als ein Verfahren zum Verwenden der zeitlichen Redundanz eine Zwischenbild-Vorhersagekodierung
(engl. inter picture prediction coding) verwendet wird.
-
In
einem Bewegungsbild-Kodierverfahren, das zurzeit einen Standardisierungsprozess
durchläuft,
wird eine Quantisierung auf jedem Block durchgeführt, der eine Größe von 4×4 Pixeln
aufweist, um Koeffizienten zu erzeugen, nachdem eine Frequenztransformation
auf einem derartigen Block durchgeführt worden ist, mit der Aussicht,
die Kodierungseffizienz eines konventionellen MPEG-4-Bewegungsbild-Kodierverfahrens
zu erhöhen.
Dann wird ein Abtasten startend bei Gleichstromkomponenten in Richtung
von Hochfrequenzkomponenten durchgeführt und Kombinationen eines
Wertes R (Lauf, engl. Run, im Folgenden mit „R" bezeichnet), der die Anzahl von aufeinander
folgenden Nullkoeffizienten anzeigt, und eines Koeffizientenwertes
L (Niveau, engl. Level, im Folgenden einfach bezeichnet mit „L"), der diesem nachfolgt,
werden erzeugt, so dass eine Kombinationssequenz (R, L) erzeugt
wird. Nach einem Transformieren dieser (R, L) zu einer Kodierungszahl,
wobei eine vorbestimmte Kodierungstabelle verwen det wird, wird ein
Kodieren durchgeführt,
indem die Kodierungszahl zu einer VLC-Kodierung transformiert wird,
wobei des Weiteren eine einzelne Variable-Länge-Kodierungstabelle
(VLC-Tabelle) verwendet wird. In der Kodierungstabelle wird gewöhnlich eine
kleinere Kodierungszahl zugeordnet, wenn eine Auftrittswahrscheinlichkeit
größer wird.
Beispielsweise wird eine kleine Kodierungszahl einer Kombination
zugeordnet, bei der sowohl R als auch L kleine Werte anzeigen, da
ihre Auftrittswahrscheinlichkeit hoch ist. In bestimmten VLC-Kodierungstabellen
wird ein VLC-Kodierung mit einer kurzen Kodierungslänge einer
kleinen Kodierungszahl zugeordnet (siehe den Verweis auf ISO/IEC
14496-2: "Information technology – Coding
of audio-visual Objekts – Part2:
Visual" 7.4.1, Seiten
119-120, 1999.12).
-
Eine
Verwendung des bestehenden Verfahrens erzeugt jedoch eine Abnahme
der Kodierungseffizienz, da die Kodierungslänge länger wird, wenn die Anzahl
an aufeinander folgenden Nullkoeffizienten R und ein Koeffizientenwert
L größer werden.
Gewöhnlich
ist die Abnahme der Kodierungseffizienz offensichtlich, wenn ein
niedriger Frequenzkomponentenwert kodiert wird, da der Koeffizientenwert
L als ein niedriger Frequenzkomponentenwert groß ist.
-
Als
ein Ergebnis des Zuordnens einer einzelnen VLC-Tabelle entsprechend
der Auftrittswahrscheinlichkeit und einer einzelnen einzigartigen
Variable-Länge-Kodierung gemäß eines
Paares von R und L wird nämlich
der Koeffizientenwert L, der einen großen Wert anzeigt, zu einer
Variable-Länge-Kodierung
transformiert, die eine sehr lange Kodierungslänge aufweist. Selbst wenn ein
Kodieren von L getrennt von R (eindimensionale Kodierung von L)
unter Verwendung einer einzelnen VLC-Tabelle durchgeführt wird,
tritt das gleiche Problem auf wie in dem Fall, in dem R und L als
ein Paar kodiert werden.
-
Die
EP 0827345 A1 offenbart
ein Bildkodiersystem, bei dem ein Eingabebildsignal blockiert wird, die
resultierenden Blöcke
zu zwei oder mehreren Arten von transformierten Koeffizienten transformiert werden,
die transformierten Koeffizienten entsprechend einer gegebenen Quantisierungsschrittgröße quantisiert
werden und die quantisierten transformierten Koeffizienten gemäß einer
Vielzahl von Abtastsequenzen abgetastet werden. Die so abgetasteten
Koeffizienten werden entsprechend einer Vielzahl von Kodierungstabellen
weiter kodiert, und aus Kombinationen von der Vielzahl von Abtastsequenzen
mit der Vielzahl von Kodierungstabellen wird eine Kombination einer
Abtastsequenz mit einer Kodierungstabelle, die die höchste Kodierungseffizienz
aufweist, durch Auswahlmittel für
ein Abtastsequenz und eine Kodierungstabelle gemäß der Niveauverteilung der transformierten
Koeffizienten ausgewählt.
-
Die
EP 0 616 741 offenbart eine
Variable-Länge-Kodierung,
die eine Vielzahl von Tabellen verwendet, wobei Tabellen für jedes
mögliche Lauf-Niveau-Paar
entsprechend einer Auftrittsfrequenz erzeugt werden. Wenn Koeffizientendaten
zu kodieren sind, wird eine Tabelle korrespondierend zu der Größe der Koeffizientendaten,
die vor den Koeffizientendaten bereitgestellt wird, ausgewählt und
auf der Basis der ausgewählten
Tabelle wird eine Kodierung durchgeführt.
-
Die
JP 8214310 offenbart eine
Variable-Länge-Kodierung
durch Wechseln zwischen drei Tabellen entsprechend der Korrelation
zwischen aufeinanderfolgenden Koeffizienten.
-
Die
EP 0 267 576 offenbart ein
Kodierungssystem, das eine Variable-Länge-Kodierung durchführt, wobei eine Vielzahl von
Kodierungssätzen
verwendet wird und wobei unterschiedliche Kodierungssätze für hohe und
niedrige Frequenzkomponenten ausgewählt werden.
-
Die
US 5751232 offenbart eine
Vorrichtung zum hocheffizienten Kodieren, die eine Datendivisionsschaltung
aufweist, die ein eindimensionales Abtasten auf den orthogonal transformierten
Daten anwendet, die durch Anwenden einer orthogonalen Transformation
auf geblockte digitale Daten in der Blockeinheit erhalten wurden,
und die Daten in Lauflängendaten
und Koeffizientendaten dividiert. Die Vorrichtung umfasst des Weiteren
eine Kodierungsschaltung, die ein Lauflängenkodieren auf den dividierten
Lauflängendaten
durch Verwendung von Daten der höchsten
Auftrittswahrscheinlichkeit (beispielsweise 0) anwendet. Des Weiteren
umfasst die Vorrichtung eine Kodierungsschaltung, die ein Lauflängenkodieren
auf den aufgeteilten Koeffizientendaten durch Verwenden von Daten
der höchsten
Auftrittswahrscheinlichkeit (beispielsweise 1) anwendet, wodurch
die Menge der digitalen Daten reduziert wird.
-
Offenbarung
der Erfindung
-
Die
vorliegende Erfindung wurde im Hinblick auf die obigen Probleme
entwickelt und hat das Ziel, das Kodierverfahren mit variabler Länge und
das Dekodierverfahren mit variabler Länge, die die Kodierungseffizienz
verbessern können,
wenn der Koeffizientenwert L kodiert wird, bereitzustellen.
-
Um
das obige Ziel zu erreichen, wird ein Kodierverfahren mit variabler
Länge gemäß der vorliegenden
Erfindung, wie sie in Anspruch 1 definiert ist, vorgeschlagen.
-
Es
ist daher möglich,
die Kodierungseffizienz zu verbessern, da die Variable-Länge-Kodierung der Kodierungslänge basierend
auf dem Koeffizienten an jede Tabelle angepasst werden kann. Es
ist mit anderen Worten möglich,
eine Kodierungslänge
merklich zu kürzen,
indem zwischen den Tabellen in Abhängigkeit von dem Koeffizienten
gewechselt wird, so dass ein Koeffizient zu einer Variable-Länge-Kodierung kodiert werden
kann, deren Kodierungslänge bei
einer Tabelle kürzer
ist als bei der anderen Tabelle, wenn der Koeffizient klein ist,
und ein Koeffizient kann in eine Variable-Länge-Kodierung kodiert werden,
deren Kodierungslänge
bei einer Tabelle kürzer ist
als bei der anderen Tabelle, wenn der Koeffizient groß ist.
-
Hier
kann eine Wechselrichtung zwischen der Mehrzahl von Tabellen eindirektional
sein. Daher wird ein häufiges
Wechseln der Tabellen verhindert, wodurch die Anzahl von Wechseln
zwischen den Tabellen abnimmt. Es ist daher möglich, die Kodierungseffizienz
zu erhöhen.
Beispielsweise ist, da ein Arbeitsbereich in dem Speicher betreffend
des Platzes begrenzt ist, nur eine zu verwendende Tabelle gespeichert.
In diesem Fall dauert es eine Weile, die Kodierung des nächsten Koeffizienten
zu beginnen, da es jedes Mal, wenn die Tabelle gewechselt wird, eine
Weile dauert, die nächste
Tabelle von dem ROM zu lesen und in dem Arbeitsbereich zu expandieren. Ein
Wechseln auf diese Art eindirektional zwischen den Tabellen bewirkt
eine Begrenzung der Anzahl von Wechseln zwischen den Tabellen und
eine Reduktion der Gesamtzeit, die für eine Kodierung des nächsten Koeffizienten
benötigt
wird.
-
In
diesem Kodierungsschritt kann die Kodierung auf jedem Block durch
Wechseln zwischen der Mehrzahl von Tabellen erzeugt werden und die
Koeffizienten können
Nicht-Null-Koeffizienten sein, die eindimensionalisiert sind.
-
Es
ist bevorzugt, dass die Kodierung eine nicht-arithmetische Kodierung
ist. Daher kann, wenn eine zu verwendende Tabelle für eine Kodierung
bestimmt ist, die Kodierung von Koeffizienten zu Variable-Länge-Kodierungen
durch Verweisen auf die Tabelle durchgeführt werden.
-
Es
ist auch bevorzugt, dass jede der Tabellen eine andere Änderungsrate
bezüglich
der Kodierungslänge
für Koeffizienten
aufweist, so dass eine Kodierungslänge für einen kleinsten Koeffizienten
in einer steigenden Reihenfolge von Zahlen länger wird, die jeweils zu jeder
der Tabellen zugeordnet worden sind, und dass eine Kodierungslänge für einen
größten Koeffizienten
in der gleichen steigenden Reihenfolge von Zahlen nicht länger wird.
Es ist auch bevorzugt, dass jede der Tabellen so konstruiert ist, dass
eine Rate eines Anstiegs der Kodierungslänge, die zu einem Anstieg von
Koeffizienten korrespondiert, in einer steigenden Reihenfolge von
Zahlen kleiner wird, die zu jeder der Tabellen zugeordnet sind.
Daher kann die Verbesserung der Kodierungseffizienz sicher realisiert
werden, da ein Bereich, in dem eine Kodierungslänge bei jeder Tabelle kürzer wird,
zugeordnet werden kann.
-
Es
ist auch bevorzugt, dass in dem Kodierungsschritt jede der Tabellen
basierend auf einem vorbestimmten Schwellwert für einen absoluten Wert des
Koeffizienten gewechselt wird. Es ist daher leicht, Zeitpunkte zum
Wechseln zwischen den Tabellen zu bestimmen, wodurch die Kodierungseffizienz
erreicht werden kann.
-
Es
ist auch bevorzugt, dass in dem Koeffizienten-Abtast-Schritt die
Koeffizienten startend bei hohen Frequenzkomponenten zu niedrigen
Frequenzkomponenten hin abgetastet werden. Da eine große Tendenz
besteht, dass um „1" der absolute Wert
des Koeffizienten allmählich
größer wird,
ist es daher leicht, eine Tabelle zum Kodieren des ersten Koeffizienten
in dem Block, eine Struktur jeder Tabelle und einen Schwellwert
zu bestimmen.
-
Es
ist des Weiteren bevorzugt, dass in dem Kodierungsschritt eine Tabelle,
die zum Kodieren eines aktuellen zu kodierenden Koeffizienten verwendet
wird, zu eine Tabelle gewechselt wird, deren Zahl größer ist
als die Zahl, die dieser Tabelle zugeordnet ist, wenn der absolute
Wert des aktuellen Koeffizienten einen Schwellwert übersteigt.
Daher kann die Kodierungseffizienz verbessert werden, da eine Kodierungslänge gekürzt werden
kann, wenn der nächste Koeffizient
kodiert wird.
-
Die
vorliegende Erfindung kann nicht nur als ein Kodierverfahren mit
variabler Länge
und ein Dekodierverfahren mit variabler Länge realisiert sein, sondern
auch als eine Kodiervorrichtung mit variabler Länge und eine Dekodiervorrichtung
mit variabler Länge,
die charakteristische Schritte als Einheiten aufweisen, die von
dem Kodierverfahren mit variabler Länge und dem Dekodierverfahren
mit variabler Länge
umfasst sind. Des Weiteren kann die vorliegende Erfindung als ein
Bewegungsbild-Kodierverfahren und ein Bewegungsbild-Dekodierverfahren
realisiert sein, die die charakteristischen Schritte verwenden, die
von dem Kodierverfahren mit variabler Länge und Dekodierverfahren mit
variabler Länge
umfasst sind. Zudem kann die vorliegende Erfindung als ein Programm
mit einem Computer realisiert sein, das diese Schritte durchführt. Ein
derartiges Programm kann sicher mittels eines Aufzeichnungsmediums,
wie beispielsweise einer CD-ROM, und eines Übertragungsmediums, wie beispielsweise
eines Internets, vertrieben werden.
-
Kurze Beschreibung
der Zeichnungen
-
1 ist
ein Blockdiagramm, das eine funktionale Struktur einer Kodiervorrichtung
zeigt, die ein Kodierverfahren mit variabler Länge und ein Bewegungsbild-Kodierverfahren verwendet,
gemäß einer ersten
Ausführungsform
der vorliegenden Erfindung.
-
2 ist
ein Blockdiagramm, das im Detail eine funktionale Struktur einer
Variable-Länge-Kodiereinheit
zeigt, die in 1 dargestellt ist.
-
Die 3A und 3B sind
Musterdiagramme zum Beschreiben einer Verarbeitung, die durch eine
RL-Sequenz-Erzeugungseinheit ausgeführt wird, die in 2 gezeigt
ist.
-
Die 4A und 4B sind
Musterdiagramme zum Beschreiben einer RL-Sequenz, die durch die RL-Sequenz-Erzeugungseinheit
und einer Neuordnungsverarbeitung, die durch eine Neuordnungseinheit
ausgeführt
wird, die in 2 gezeigt ist, erzeugt worden
ist.
-
5 ist
ein Diagramm, das ein Beispiel einer Kodierungstabelle zeigt, die
von einer Tabellen-Speichereinheit, die in 2 dargestellt
ist, gehalten wird.
-
6 ist
ein Diagramm, das ein Beispiel einer VLC-Tabelle zeigt, die durch
die in 2 dargestellte Tabellen-Speichereinheit gehalten
wird.
-
Die 7A und 7B sind
Musterdiagramme zum Beschreiben eines anderen Beispiels der RL-Sequenz,
die durch die RL-Sequenz-Erzeugungseinheit und die Neuordnungsverarbeitung,
die durch die Neuordnungseinheit ausgeführt wird, erzeugt worden ist.
-
8 ist
ein Blockdiagramm, das eine funktionale Struktur einer Dekodiervorrichtung
zeigt, die ein Dekodierverfahren mit variabler Länge und ein Bewegungsbild-Dekodierverfahren
verwendet, gemäß einer
zweiten Ausführungsform
der vorliegenden Erfindung.
-
9 ist
ein Blockdiagramm, das im Detail eine funktionale Struktur einer
Variable-Länge-Dekodiereinheit,
die in 8 dargestellt ist, zeigt.
-
Die 10A und 10B sind
Musterdiagramme zum Beschreiben einer RL-Sequenz, die durch eine Kodierungs-Konvertierungseinheit,
die in 9 gezeigt ist, erzeugt worden ist, und einer Neuordnungsverarbeitung,
die durch eine Neuordnungseinheit, die in 9 gezeigt
ist, ausgeführt
wird.
-
11 ist
ein Musterdiagramm zum Beschreiben einer Verarbeitung, die durch
eine Koeffizienten-Erzeugungseinheit, die in 9 gezeigt
ist, ausgeführt
wird.
-
Die 12A und 12B sind
Musterdiagramme zum Beschreiben eines anderen Beispiels der RL-Sequenz,
die durch die Kodierungs-Konvertierungseinheit und die Neuordnungsverarbeitung, die
von der Neuordnungseinheit ausgeführt wird, erzeugt worden ist.
-
13 ist
ein Blockdiagramm, das eine Struktur einer Kodiervorrichtung gemäß einer
dritten Ausführungsform
der vorliegenden Erfindung zeigt.
-
14 ist
ein Blockdiagramm, das eine innere Struktur der Variable-Länge-Kodiereinheit gemäß der dritten
Ausführungsform
der vorliegenden Erfindung zeigt.
-
Die 15A und 15B sind
Musterdiagramme, die schematisch eine RL-Sequenz zeigen, die von der RL-Sequenz-Erzeugungseinheit
gemäß der dritten
Ausführungsform
der vorliegenden Erfindung ausgegeben worden ist.
-
Die 16A, 16B und 16C sind Musterdiagramme, die schematisch die
RL-Sequenz zeigen,
die von der RL-Sequenz-Erzeugungseinheit gemäß der dritten Ausführungsform
der vorliegenden Erfindung ausgegeben worden ist.
-
17 ist
ein Übergangsdiagramm,
das ein Verfahren zum Wechseln zwischen Wahrscheinlichkeitstabellen
gemäß der dritten
Ausführungsform
der vorliegenden Erfindung zeigt.
-
18 ist
ein Wahrscheinlichkeitstabelle-Inhalt-Darstellungsdiagramm, das
den Inhalt einer Wahrscheinlichkeitstabelle gemäß der dritten Ausführungsform
der vorliegenden Erfindung zeigt.
-
19 ist
ein Blockdiagramm, das eine Struktur einer Bild-Dekodiervorrichtung
gemäß einer vierten
Ausführungsform
der vorliegenden Erfindung zeigt.
-
20 ist
ein Blockdiagramm, das eine innere Struktur einer Variable-Länge-Dekodiereinheit gemäß der vierten
Ausführungsform
der vorliegenden Erfindung zeigt.
-
21 ist
ein Tabellendiagramm, das ein Beispiel einer Binärtabelle zeigt.
-
22 ist
ein Blockdiagramm, das eine funktionale Struktur einer Kodiervorrichtung
zeigt, die ein Kodierverfahren mit variabler Länge und ein Bewegungsbild-Kodierverfahren gemäß einer
fünften
Ausführungsform
der vorliegenden Erfindung anwendet.
-
23 ist
ein Blockdiagramm, das im Detail eine funktionale Struktur einer
Variable-Länge-Kodiereinheit
zeigt, die in 22 dargestellt ist.
-
Die 24A und 24B sind
Diagramme, die ein Beispiel einer L-Sequenz und einer R-Sequenz
zeigen, die durch eine RL-Sequenz-Erzeugungseinheit erzeugt werden,
die in 23 dargestellt ist.
-
25 ist
ein Diagramm, das ein strukturelles Beispiel für jede VLC-Tabelle zeigt, die
in einer Speichereinheit, die in 23 dargestellt
ist, gespeichert ist.
-
26 ist
ein Diagramm, das ein strukturelles Beispiel einer Schwellwert-Tabelle
zeigt, die in der in 23 dargestellten Speichereinheit
gespeichert ist.
-
27 ist ein Flussdiagramm, das eine Verarbeitung
zugeordneter Variable-Länge-Kodierungen zeigt,
die von einer Kodierungs-Zuordnungseinheit, die in 23 gezeigt
ist, ausgeführt
wird.
-
28 ist ein Diagramm, das eine Beziehung zwischen
der VLC-Tabelle, die zum Kodieren verwendet wird, und einem Schwellwert
zeigt.
-
29 ist ein Musterdiagramm, das zeigt, wie die
Kodierungs-Zuordnungseinheit eine Kodierungsverarbeitung durchführt.
-
30 ist ein Blockdiagramm, das eine funktionale
Struktur einer Dekodiervorrichtung zeigt, die ein Dekodierverfahren
mit variabler Länge
und ein Bewegungsbild-Dekodierverfahren verwendet, gemäß einer
sechsten Ausführungsform
der vorliegenden Erfindung.
-
31 ist ein Blockdiagramm, das im Detail eine funktionale
Struktur einer Variable-Länge-Dekodiereinheit,
die in 30 dargestellt ist, zeigt.
-
Die 32A, 32B und 32C sind Darstellungen für einen Fall eines Durchführens des Bewegungsbild-Kodierverfahrens
gemäß der ersten, dritten
und fünften
Ausführungsform
oder des Bewegungsbild-Dekodierverfahrens gemäß der zweiten, vierten und
sechsten Ausführungsform
in einem Computersystem, das eine flexible Disk bzw. Diskette verwendet,
auf der ein Programm zum Ausführen dieser
Verfahren aufgezeichnet ist.
-
33 ist ein Blockdiagramm, das eine Gesamtkonfiguration
eines Inhaltslieferungssystems (engl. content delivery system) zum
Realisieren eines Inhaltslieferungsdienstes zeigt.
-
34 ist eine Darstellung, die ein Mobiltelefon
zeigt, das das Bewegungsbild-Vorhersageverfahren
(engl. moving picture prediction method), die Bewegungsbild-Kodiervorrichtung
und die Bewegungsbild-Dekodiervorrichtung gemäß der vorliegenden Erfindung
verwendet.
-
35 ist ein Blockdiagramm, das eine Struktur eines
Mobiltelefons gemäß der vorliegenden Erfindung
zeigt.
-
36 ist ein Blockdiagramm, das eine Gesamtkonfiguration
eines digitalen Rundfunksystems gemäß der vorliegenden Erfindung
zeigt.
-
Beste Art, die Erfindung
durchzuführen
-
Im
Folgenden werden erfindungsgemäße Ausführungsformen
unter Bezugnahme auf die Diagramme beschrieben.
-
(Erste Ausführungsform)
-
1 ist
ein Blockdiagramm, das eine funktionale Struktur einer Kodiervorrichtung
zeigt, die das Bewegungsbild-Kodierverfahren gemäß der vorliegenden Erfindung
anwendet. Die erste Ausführungsform
illustriert die funktionale Struktur in einem Fall einer Intra-Bild-Kodierung
eines Eingabebilds, die das Bewegungsbild-Kodierungsverfahren gemäß der vorliegenden
Erfindung verwendet.
-
Wie
in dem Diagramm gezeigt, weist eine Kodiervorrichtung 100a eine
Block-Konvertierungseinheit 110,
eine Frequenztransformationseinheit 120, eine Quantisierungseinheit 130 und
eine Variable-Länge-Kodiereinheit 140 auf.
Jede Einheit, die eine derartige Kodiervorrichtung 100a bildet,
wird mit einer CPU, einem ROM zum vorherigen Speichern eines Programms
oder Daten, die durch die CPU ausgeführt werden, und einem Speicher
zum Bereitstellen eines Arbeitsbereichs, wenn das Programm ausgeführt wird,
und auch zum temporären
Speichern des Eingabebildes oder Ähnlichem realisiert.
-
Die
Blocktransformationseinheit 110 dividiert das Eingangsbild
in Blöcke,
die jeweils eine Größe von 4
(horizontal) × 4
(vertikal) Pixeln aufweisen, und gibt jeden Pixelblock an die Frequenztransformationseinheit 120 aus.
-
Die
Frequenztransformationseinheit 120 führt eine Frequenztransformation
auf den eingegebenen Pixelblöcken
durch und konvertiert diese in Frequenzkoeffizienten und gibt die
transformierten Frequenzkoeffizienten dann an die Quantisierungseinheit 130 aus.
-
Die
Quantisierungseinheit 130 führt eine Quantisierungsverarbeitung
auf den eingegebenen Frequenzkoeffizienten durch. Die Quantisierungsverarbeitung
bedeutet hier ein Verarbeiten, das äquivalent ist zu einer Division
eines Frequenzkoeffizienten durch einen vorbestimmten Quantisierungswert.
Des Weiteren variiert ein Quantisierungswert in der Regel in Abhängigkeit
von einem Pixelblock und einem Frequenzband. Die quantisierten Frequenzkoeffizienten werden
in die Variable-Länge-Kodiereinheit 140 eingegeben.
-
Die
Variable-Länge-Kodiereinheit 140 führt eine
Kodierung mit variabler Länge
auf Werten der Frequenzkoeffizienten in dem Block durch, dessen Größe vorbestimmt
ist (4×4
Pixel).
-
2 ist
ein Blockdiagramm, das im Detail eine funktionale Struktur der Variable-Länge-Kodiereinheit 140 zeigt.
-
Die
Variable-Länge-Kodiereinheit 140 umfasst
eine RL-Sequenz-Erzeugungseinheit 141,
eine Neuordnungseinheit 142, eine Kodierungs-Zuordnungseinheit 143 und
eine Tabellen-Speichereinheit 144.
-
Die
quantisierten Frequenzkoeffizienten, die von der Quantisierungseinheit 130 ausgegeben
worden sind, werden in die RL-Sequenz-Erzeugungseinheit 141 eingegeben.
-
Die
RL-Sequenz-Erzeugungseinheit 141 konvertiert zuerst die
quantisierten Frequenzkoeffizienten in eindimensionalisierte Koeffizienten
unter Verwendung eines vorbestimmten Abtastverfahrens. Die RL-Sequenz-Erzeugungseinheit 141 erzeugt dann
eine Sequenz (im Folgenden als „RL-Sequenz" bezeichnet), die
aus einer Kombination eines Wertes R, der die Anzahl von aufeinander
folgenden Null-Koeffizienten anzeigt, und eines Nicht-Null-Koeffizientenwertes
L, der diesem folgt, (im Folgenden als „RL-Wert" bezeichnet) besteht. Ein Beispiel von
diesem ist unter Bezugnahme auf die 3 und 4 beschrieben.
-
3A ist
ein Diagramm, das die quantisierten Frequenzkoeffizienten in einem
Block zeigt, der von der Quantisierungseinheit 130 ausgegeben
worden ist. Hier zeigt der obere linke Frequenzkoeffizient eine
Gleichstromkomponente an, wobei Frequenzkomponenten in der horizontalen
Richtung nach rechts größer werden
und Frequenzkomponenten in der vertikalen Richtung nach unten größer werden. 3B ist
ein Diagramm, das ein Abtastverfahren zum Eindimensionalisieren
der quantisierten Frequenzkoeffizienten zeigt. Die RL-Sequenz-Erzeugungseinheit 141 eindimensionalisiert
die Koeffizienten durch Durchführen
eines Abtastens startend bei dem Niedrig-Frequenz-Bereich in Richtung
des Hoch-Frequenz-Bereichs.
-
Ein
Ergebnis einer Erzeugung einer RL-Sequenz für die eindimensionalisierten
Koeffizientenwerte, die durch die RL-Sequenz-Erzeugungseinheit 141 durchgeführt worden
ist, ist in 4A gezeigt. In 4A ist
EOB (Ende eines Blockes, engl. End Of Block) ein Zeichen, das anzeigt,
dass alle nachfolgenden Koeffizientenwerte in dem Block „0" sind. Im Allgemeinen
neigt ein Koeffizientenwert in dem Hoch-Frequenz-Bereich eher dazu,
einen „0"-Wert aufzuweisen.
Daher ist es möglich,
die Informationsmenge, die in der RL-Sequenz enthalten ist, zu re duzieren,
indem ein Abtasten startend bei dem Niedrig-Frequenz-Bereich in
Richtung des Hoch-Frequenz-Bereichs durchgeführt wird. Die erzeugte RL-Sequenz wird in die
Neuordnungseinheit 142 eingegeben.
-
Die
Neuordnungseinheit 142 sortiert die eingegebene RL-Sequenz
in umgekehrter Reihenfolge. Das EOB soll jedoch nicht neu geordnet
werden. Die 4B zeigt einen Zustand, nachdem
die Neuordnung durchgeführt
worden ist. Die RL-Sequenz,
die so neu geordnet worden ist, wird in die Kodierungs-Zuordnungseinheit 143 eingegeben.
-
Die
Tabellen-Speichereinheit 144 hält im vorhinein eine Tabelle
(eine Kodierungstabelle, siehe 5), die
RL-Werte mit Kodierungszahlen korreliert, die den RL-Werten zugeordnet
worden sind, sowie mehrere Arten von Tabellen (VLC-Tabellen in 6),
die Kodierungszahlen mit Variable-Länge-Kodierungen korrelieren,
und Ähnliches.
-
Die
Kodierungs-Zuordnungseinheit 143 ordnet Variable-Länge-Kodierungen
jedem Paar in der RL-Sequenz unter Verwendung der in der Tabellen-Speichereinheit 144 gespeicherten
Tabellen zu.
-
Genauer
ausgeführt
ordnet die Kodierungs-Zuordnungseinheit 143 zunächst die
Kodierungszahlen den RL-Werten zu. Hier wird die Konvertierung der
RL-Werte zu Kodierungszahlen unter Verwendung einer vorbestimmten
Kodierungstabelle (siehe die Bezugnahme auf 5), die
in der Tabellen-Speichereinheit 144 gespeichert ist, durchgeführt.
-
5 ist
ein Diagramm, das ein Beispiel der Kodierungstabelle zeigt.
-
Die
Kodierungstabelle macht von der Tendenz Gebrauch, dass die kleineren
Kodierungszahlen gewöhnlich
zugeordnet werden, wenn die Wahrscheinlichkeit der RL-Werte größer wird,
und dass die Wahrscheinlichkeit zunimmt, wenn die RL-Werte die kleineren
Werte anzeigen. Unter Verwendung dieser Tabelle wird beispielsweise
die Kodierungszahl „2" dem RL-Wert (0, –1) zugeordnet.
Für den zweiten
bis fünften
RL-Wert (1, 1), (0, –2),
(0, 3) und (0, 4) werden die Kodierungszahlen „3", „8", „13" bzw. „15" zugeordnet.
-
Dann
konvertiert die Kodier-Zuordnungseinheit 143 die Kodierungszahlen
in die Variable-Länge-Kodierungen.
Für die
Konvertierung der Kodierungszahlen in die Variable-Länge-Kodierungen
wird eine Vielzahl von VLC-Tabellen (siehe Bezugnahmen auf 6)
verwendet, die in der Tabellen-Speichereinheit 144 gespeichert
sind.
-
6 ist
ein Diagramm, das ein Beispiel der VLC-Tabelle zeigt.
-
In
der ersten Ausführungsform
sind zwei Arten von VLC-Tabellen gespeichert.
-
Die
erste VLC-Tabelle 1 und die zweite VLC-Tabelle 2 sind so konstruiert,
dass die Variable-Länge-Kodierung
länger
wird, wenn die Kodierungszahl größer wird.
Die VLC-Tabelle 1 ist so konstruiert, dass im Vergleich zu der VLC-Tabelle
2 die Variable-Länge-Kodierung
kürzer
wird, wenn die Kodierungszahl kleiner wird, wohingegen die VLC-Tabelle
2 im Vergleich zu der VLC-Tabelle 1 so konstruiert ist, dass die
Variable-Länge-Kodierung
kürzer wird,
wenn die Kodierungszahl größer wird.
In der VLC-Tabelle 1 wird nämlich
eine kurze Kodierung einer kleinen Kodierungszahl zugeordnet und
in der VLC-Tabelle 2 wird eine kurze Kodierung einer großen Kodierungszahl
zugeordnet.
-
Die
VLC-Tabelle 1 wird für
den ersten RL-Wert verwendet. In diesem Fall ist die Kodierungszahl
des ersten RL-Wertes „2", so dass die Variable-Länge-Kodierung „011" beträgt. Die
Konvertierung der Kodierungszahlen in die Variable-Länge-Kodierungen wird
weiter durchgeführt,
und, wenn ein absoluter Wert von L einen Schwellwert übersteigt, wird
die VLC-Tabelle 2 für
die folgenden RL-Werte verwendet. Unter der Annahme, dass ein Schwellwert
des absoluten Wertes von L „2" beträgt, übersteigt
der absolute Wert von L den Schwellwert an dem vierten RL-Wert (0,
3). Daher wird VLC-Tabelle 1 für
den ersten bis den vierten RL-Wert verwendet und die VLC-Tabelle
2 wird für
den fünften
RL-Wert und folgende Werte verwendet.
-
Hier
unterschreitet der absolute Wert von L den Schwellwert wieder an
dem siebten RL-Wert (1, 2), wobei jedoch nicht zu der VLC-Tabelle
1 gewechselt wird und die VLC-Tabelle 2 für die Konvertierung verwendet
wird. Dies bedeutet, dass eine Wechselrichtung zwischen den Tabellen
eindirektional ist. Hier bedeutet „eindirektional", dass die Tabelle,
die einmal verwendet worden ist, nicht wieder verwendet wird. Daher
wird das häufige
Wechseln der Tabellen verhindert, wodurch die Anzahl von Wechseln
zwischen den Tabellen abnimmt. Der absolute Wert von L tendiert
im Allgemeinen dazu, anzusteigen, wenn die Koeffizienten startend
bei hohen Frequenzkomponenten zu niedrigen Frequenzkomponenten hin eindimensionalisiert
sind. Daher ist es in vielen Fällen,
wenn der absolute Wert von L einmal den Schwellwert unterschritten
hat, nur der Koeffizient, der den Schwellwert unterschreitet, selbst
der absolute Wert von L unterschreitet wieder den Schwellwert. Es
ist daher möglich,
die Kodierungseffizienz zu verbessern, indem die verwendeten Tabellen
nicht wieder verwendet werden, selbst wenn der absolute Wert von
L wieder den Schwellwert unterschreitet. Beispielsweise ist gewöhnlich nur
die Tabelle, die als nächstes
zu verwenden ist, in einem Arbeitsbereich gespeichert, da der Arbeitsbereich
in dem Speicher betreffend des Platzes begrenzt ist. In diesem Fall dauert
es eine Weile, bis mit der Kodierung des nächsten Koeffizienten begonnen
wird, da es jedes Mal, wenn die Tabelle gewechselt wird, eine Weile dauert,
die nächste
Tabelle aus dem ROM auszulesen und in dem Arbeitsbereich zu expandieren.
Auf diese Art bewirkt ein eindirektionales Wechseln zwischen den
Tabellen ein Begrenzen der Anzahl von Wechseln zwischen den Tabellen
und ein Verkürzen einer
Gesamtzeit, die für
einen Start einer Kodierung des nächsten Koeffizienten benötigt wird.
-
Die
RL-Sequenz-Erzeugungseinheit 141 führt ein Abtasten auf Koeffizientenwerten
in einer Koeffizientenwert-Sequenz startend bei den niedrigen Frequenzkomponenten
in Richtung der hohen Frequenzkomponenten durch, während die
Kodier-Zuordnungseinheit 143 danach eine Variable-Länge-Kodierung
startend von dem Ende der Koeffizientenwert-Sequenz durchführt. Dies
erleichtert schnelle Entscheidungen bezüglich einer Tabelle, die zum
Kodieren des ersten Koeffizientenwertes in dem Block zu verwenden
ist, einer Struktur jeder Tabelle und eines Schwellwertes, da der
absolute Wert des Koeffizienten dazu tendiert, um „1" größer zu werden.
-
Daher
führt das
Kodierverfahren mit variabler Länge
gemäß der ersten
Ausführungsform
ein Abtasten auf den Frequenzkoeffizienten in dem Block startend
bei dem Niedrig-Frequenz-Bereich in Richtung des Hoch-Frequenz-Bereichs
durch. Dann wird eine Sequenz von RL-Werten für die eindimensionalisierten
Koeffi zienten erzeugt, wobei jeder von diesen eine Kombination eines
Wertes R, der die Anzahl von aufeinander folgenden Null-Koeffizienten
anzeigt, und eines Koeffizientenwertes L, der einen Nicht-Null-Koeffizienten
anzeigt, ist. Die RL-Werte werden in die Variable-Länge-Kodierungen
in einer Reihenfolge, die umgekehrt zu der Reihenfolge beim Abtasten
ist, konvertiert. Die RL-Werte können
nämlich
direkt konvertiert werden. Eine Mehrzahl von VLC-Tabellen wird zum
Konvertieren der RL-Werte in die Variable-Länge-Kodierungen bereitgestellt.
Zunächst
wird die erste VLC-Tabelle für
die Konvertierung verwendet und, wenn der absolute Wert von L den
Schwellwert übersteigt,
wird die zweite VLC-Tabelle für
die nachfolgenden RL-Werte verwendet. Hier wird im Vergleich zu
der zweiten VLC-Tabelle
in der ersten VLC-Tabelle die Variable-Länge-Kodierung kürzer, wenn
die Kodierungszahl kleiner wird, und in der zweiten VLC-Tabelle
wird im Vergleich zu der ersten VLC-Tabelle die Variable-Länge-Kodierung
kürzer,
wenn die Kodierungszahl größer wird.
-
Der
absolute Wert von L wird in dem Niedrig-Frequenz-Bereich gewöhnlich größer, so
dass der absolute Wert von L größer wird,
wenn die RL-Werte zu Variable-Länge-Kodierungen
in einer Reihenfolge konvertiert werden, die umgekehrt ist zu der
Reihenfolge, in der die RL-Werte erzeugt worden sind, indem die
Koeffizienten von dem Niedrig-Frequenz-Bereich in Richtung des Hoch-Frequenz-Bereichs abgetastet
worden sind.
-
Daher
kann, wenn der absolute Wert von L größer wird, nachdem der absolute
Wert von L den Schwellwert überschritten
hat, das heißt,
durch Verwenden der VLC-Tabelle, in der die Variable-Länge-Kodierung
kürzer
wird, wenn die Kodierungszahl größer wird,
die Gesamtgröße einer
Kodierung reduziert werden. Die Gesamtkodierungsgröße für L kann nämlich auch
durch getrenntes Kodieren von L und R und auch durch Verwenden mehrerer
VLC-Tabellen reduziert werden.
-
Die
erste Ausführungsform
beschreibt den Fall eines Kodierens des Bildes unter Verwendung
einer Intra-Bild-Kodierung, wobei jedoch die gleichen Wirkungen
für den
Fall erzielt werden können,
bei dem ein Bild durch ein Zwischenbild-Kodieren kodiert wird, indem eine Bewegungskompensation
und Anderes auf einem Eingabe-Bewegungsbild durchgeführt wird,
wobei das Verfahren gemäß der vorliegenden
Erfindung verwendet wird.
-
Die
erste Ausführungsform
beschreibt den Fall einer Division des Eingabebildes in einen Block mit
der Größe von 4
(horizontal) × 4
(vertikal) Pixeln. Es kann jedoch auch eine andere Größe des Blockes verwendet
werden.
-
Die
erste Ausführungsform
beschreibt ein Verfahren zum Abtasten eines Blockes unter Bezugnahme
auf 3, wobei jedoch auch andere Abtastverfahren
angewendet werden können,
wenn das Abtasten startend bei dem Niedrig-Frequenz-Bereich in Richtung
des Hoch-Frequenz-Bereichs durchgeführt wird.
-
Ein
Beispiel der Kodierungstabelle ist unter Bezugnahme auf 5 beschrieben,
wobei jedoch auch eine andere Kodierungstabelle verwendet werden
kann.
-
Gleichermaßen ist
unter Bezugnahme auf 6 ein Beispiel der VLC-Tabelle
beschrieben, wobei diese auch eine andere Tabelle sein kann.
-
Der
Fall der Verwendung zweier VLC-Tabellen wird in der vorliegenden
Ausführungsform
beschrieben, wobei jedoch drei VLC-Tabellen unter Verwendung mehrerer
Schwellwerte verwendet werden und die VLC-Tabellen jedes Mal, wenn
jeder Schwellwert überschritten
wird, gewechselt werden können.
-
In
der ersten Ausführungsform
ist erläutert, dass
die VLC-Tabellen gewechselt werden, wenn der absolute Wert von L
den Schwellwert übersteigt.
Die gleichen Wirkungen können
jedoch durch Wechseln zwischen den VLC-Tabellen erreicht werden,
wenn die Kodierungszahl den Schwellwert überschritten hat.
-
Es
wird in der vorliegenden Ausführungsform auch
beschrieben, dass das EOB zu dem Ende der RL-Sequenz hinzugefügt wird.
Es kann jedoch auch die Anzahl der RL-Werte zu dem Kopf der RL-Sequenz
hinzugefügt
werden. Die 7A und 7B zeigen
die Anzahl von RL-Werten, die zu kodieren sind, und die RL-Sequenz für diesen
Fall korrespondierend zu den 4A und 4B.
-
In
der Kodierungstabelle, die in 5 gezeigt
ist, ist die Zuordnung der Kodierungszahl zu der EOB unnötig.
-
(Zweite Ausführungsform)
-
8 ist
ein Blockdiagramm, das eine funktionale Struktur einer Dekodiervorrichtung
zeigt, die das Dekodierverfahren mit variabler Länge gemäß den Ausführungsformen der vorliegenden
Erfindung anwendet. Hier soll der Bitstrom, der unter Verwendung
des Kodierverfahrens mit variabler Länge gemäß der vorliegenden Erfindung,
die in der ersten Ausführungsform
beschrieben ist, erzeugt worden ist, eingegeben werden.
-
Wie
in 8 gezeigt, umfasst eine Dekodiervorrichtung 500a eine
Variable-Länge-Dekodiereinheit 510,
eine inverse Quantisierungseinheit 520, eine inverse Frequenztransformationseinheit 530 und
einen Bildspeicher 540. Jede Einheit, die eine derartige
Dekodiervorrichtung 500a bildet, wird, wie bei der Kodiervorrichtung 100a,
mit einer CPU, einem ROM zum vorherigen Speichern eines Programms oder
Daten, die durch die CPU ausgeführt
werden, und einem Speicher zum Bereitstellen eines Arbeitsbereichs,
wenn das Programm ausgeführt
wird, sowie zum temporären
Speichern des Eingabebildes oder Ähnlichem realisiert.
-
Der
Bitstrom wird in die Variable-Länge-Dekodiereinheit 510 eingegeben.
Die Variable-Länge-Dekodiereinheit 510 dekodiert
den Bitstrom, der mit variabler Länge kodiert worden ist. Der
Bitstrom ist durch Dividieren der Bilddaten in Blöcke, die
jeweils eine vorbestimmte Größe aufweisen,
durch Eindimensionalsieren der Frequenzkoeffizienten in dem Block
unter Verwendung eines vorbestimmten Abtastverfahrens und durch
Kodieren einer Sequenz der Kombinationen (RL-Werte) des Wertes R, der die Anzahl
von aufeinander folgenden Null-Koeffizienten anzeigt,
und des Koeffizientenwertes L, der diesem folgt, erzeugt worden.
-
9 ist
ein Blockdiagramm, das im Detail eine funktionale Struktur der Variable-Länge-Dekodiereinheit 510 zeigt.
-
Wie
in 9 gezeigt, umfasst die Variable-Länge-Dekodiereinheit 510 eine
Kodierungs-Konvertierungseinheit 511, eine Tabellen-Speichereinheit 512,
eine Neuordnungseinheit 513 und eine Koeffizienten-Erzeugungseinheit 514.
-
Die
Tabellen-Speichereinheit 512 ist auf die gleiche Art wie
die Tabellen-Speichereinheit 144 konstruiert
und speichert im vorhinein mehrere Arten von Tabellen (VLC-Tabellen
in 6), die die Kodierungszahlen mit den Variable-Länge-Kodierungen korrelieren,
und die Tabelle (eine Kodierungstabelle, siehe Bezugnahme auf 5),
die die RL-Werte mit den Kodierungszahlen korreliert, die diesen
zugeordnet sind.
-
Die
Kodier-Konvertierungseinheit 511 konvertiert eine Variable-Länge-Kodierung
in Kodierungszahlen für
den eingegebenen Bitstrom unter Verwendung der Tabellen (mehrere
VLC-Tabellen), die in der Tabellen-Speichereinheit 512 gespeichert sind.
Die Konvertierung der Variable-Länge-Kodierungen
zu den Kodierungszahlen wird unter Verwendung einer Vielzahl von
VLC-Tabellen durchgeführt. Die
VLC-Tabellen sind in der Tabellen-Speichereinheit 512 gespeichert
und die Variable-Länge-Kodierungen
werden zu den Kodierungszahlen konvertiert, indem auf die Tabellen-Speichereinheit 512 verwiesen
wird.
-
Ein
Beispiel der VLC-Tabelle wird unter Bezugnahme auf 6 beschrieben.
Hier sind zwei Arten von VLC-Tabellen gespeichert. Eine kürzere Kodierung
ist einer kleineren Kodierungszahl in der VLC-Tabelle 1 zugeordnet,
während
eine kürzere
Kodierung einer größeren Kodierungszahl
in der VLC-Tabelle 2 zugeordnet ist. Es wird angenommen, dass eine
Kodierung eines Kopfteils des eingegebenen Bitstroms hier „01100100000100100011100010011" beträgt. Die VLC-Tabelle 1 wird für die erste
Variable-Länge-Kodierung
verwendet. Wenn auf die VLC-Tabelle 1 in 6 Bezug
genommen wird, korrespondiert die Variable-Länge-Kodierung „011" zu dem angegebenen Bitstrom,
so dass die Kodierungszahl in diesem Fall „2" beträgt.
-
Die
Kodier-Konvertierungseinheit 511 konvertiert dann die erhaltene
Kodierungszahl zu einem RL-Wert. In diesem Fall wird eine vorbestimmte
Kodierungstabelle verwendet. Die Kodierungstabelle ist in der Tabellen-Speichereinheit 512 gespeichert
und die Kodierungszahl wird in einen RL-Wert unter Verweis auf die
Tabellen-Speichereinheit 512 konvertiert. Ein Beispiel
der Kodierungstabelle ist in 5 gezeigt.
Die Kodieungszahl beträgt
in diesem Fall „2", so dass der RL-Wert
(0, –1)
beträgt.
-
Durch
sequenzielles Fortführen
der Konvertierung der Variable-Länge-Kodierungen zu den
Kodierungszahlen nacheinander unter Verwendung der VLC-Tabelle 1
wird die Variable-Länge-Kodierung „00100" zu der Kodierungszahl „3", die Variable-Länge-Kodierung „0001001" zu der Kodierungszahl „8" und die Variable-Länge-Kodierung „0001110" zu der Kodierungszahl „13" kodiert, wobei die
jeweiligen Kodierungszahlen weiter zu dem RL-Werten (1, 1), (0, –2) und
(0, 3) konvertiert werden.
-
Wenn
hier der absolute Wert von L des erhaltenen RL-Werts den Schwellwert übersteigt,
verwendet die Kodier-Konvertierungseinheit 511 die VLC-Tabelle
2 für die
Konvertierung der nachfolgenden Variable-Länge-Kodierungen. Wenn angenommen
wird, dass der Schwellwert des absoluten Wertes von L „2" beträgt, unterschreitet
der absolute Wert von L den Schwellwert an dem vierten RL-Wert (0,
3). Daher wird für
die nachfolgenden RL-Werte die Konvertierung unter Verwendung der
VLC-Tabelle 2 durchgeführt.
Dementsprechend wird die nächste
Variable-Länge-Kodierung „0010011" zu der Kodierungszahl „15" und weiter zu dem
RL-Wert (0, 4) konvertiert.
-
Selbst
wenn der absolute Wert L des RL-Werts, der in der folgenden Dekodierung
erhalten wird, den Schwellwert wieder unterschreitet, wird das Wechseln
zu der VLC-Tabelle 1 nicht durchgeführt und die VLC-Tabelle 2 wird
für die
Konvertierung verwendet. Daher werden, wenn die RL-Werte, die äquivalent
zu einem einzelnen Block sind, erzeugt werden (ein EOB wird detektiert),
diese in die Neuordnungseinheit 513 eingegeben. Hier wird
angenommen, dass die RL-Sequenz, die in 10A gezeigt ist,
erzeugt wird.
-
Die
Neuordnungseinheit 513 sortiert die eingegebene RL-Sequenz
in umgekehrter Reihenfolge. Das EOB soll jedoch nicht neu geordnet
werden. 10B zeigt den Zustand nach dem
Neuordnen. Die RL-Sequenz, die so neu geordnet worden ist, wird
in die Koeffizienten-Erzeugungseinheit 514 eingegeben.
-
Die
Koeffizienten-Erzeugungseinheit 514 konvertiert die eingegebene
RL-Sequenz zu Koeffizienten
und zweidimensionalisiert einen Koeffizientenblock unter Verwendung
eines vorbestimmten Abtastverfahrens. Wenn die RL-Sequenz zu den Koeffizienten
konvertiert wird, wird ein Koeffizient „0" für
die Zahl erzeugt, die durch R angezeigt ist, basierend auf die vorbestimmte
Abtastreihenfolge, und dann wird der Koeffizient erzeugt, der durch
L angezeigt wird. Hier wird, wenn angenommen wird, dass die Koeffizienten
in Zick-Zack-Linien startend bei dem Niedrig-Frequenz-Bereich in
Richtung des Hoch-Frequenz-Bereichs
abgetastet werden, die RL-Sequenz, die in 10B gezeigt
ist, zu dem in 11 gezeigten Koeffizientenblock
konvertiert. Der erzeugte Koeffizientenblock wird in die inverse
Quantisierungseinheit 520 eingegeben.
-
Die
inverse Quantisierungseinheit 520 führt eine inverse Quantisierungsverarbeitung
auf dem eingegebenen Koeffizientenblock durch. Die inverse Quantisierung
bedeutet hier, einen vorbestimmten Quantisierungswert zu jedem Koeffizienten
in dem Koeffizientenblock zu integrieren. Der quantisierte Wert
hängt hier
gewöhnlich
von einem Block oder einem Frequenzband ab, wobei entweder ein aus
dem Bitstrom erhaltener Wert oder ein vorbestimmter Wert verwendet
wird. Der inverse quantisierte Koeffizientenblock wird in die inverse
Frequenztransformationseinheit 530 eingegeben.
-
Die
inverse Frequenztransformationseinheit 530 führt eine
inverse Frequenztransformation auf anderen invers quantisierten
Koeffizientenblöcken durch,
um diese in Pixelblöcke
zu konvertieren. Konvertierte Pixelblöcke werden in den Bildspeicher 540 eingegeben.
-
Die
dekodierten Pixelblöcke
werden nacheinander in dem Bildspeicher 540 gespeichert
und als ein Ausgabebild ausgegeben, nachdem die Pixelblöcke, die äquivalent
zu einem einzelnen Bild sind, gespeichert worden sind.
-
Daher
dekodiert das Dekodierverfahren mit variabler Länge gemäß der vorliegenden Ausführungsform
einen Eingabe-Bitstrom zuerst durch Verwenden der ersten VLC-Tabelle
und erzeugt eine Sequenz von RL-Werten, die eine Kombination von
R, der die Anzahl von aufeinander folgenden Null-Koeffizienten anzeigt,
und L ist, der einen diesem nachfolgenden Nicht-Null-Koeffizienten
anzeigt. Dann wird, wenn der absolute Wert von L den Schwellwert übersteigt,
die zweite VLC-Tabelle zum Dekodieren der nachfolgenden Variable-Länge-Kodierungen
verwendet. Der RL-Wert wird dann zu einem Koeffizienten basierend
auf ein vor bestimmtes Verfahren zum Abtasten des Blockes konvertiert,
nachdem die RL-Werte
in umgekehrte Reihenfolge gesetzt worden sind.
-
Mit
der obigen Verarbeitung ist es möglich, den
Bitstrom richtig zu dekodieren, der unter Verwendung des Kodierverfahrens
mit variabler Länge
gemäß der vorliegenden
Erfindung kodiert worden ist, indem dass Dekodierverfahren mit variabler
Länge gemäß der vorliegenden
Erfindung verwendet wird.
-
In
der zweiten Ausführungsform
wird der Fall eines Dekodierens des Bitstroms erläutert, der
unter Verwendung einer Intra-Bild-Kodierung erzeugt worden ist,
wobei jedoch die gleichen Wirkungen erzielt werden können, wenn
der Bitstrom dekodiert wird, der durch Durchführen eines Zwischenbild-Kodierens
auf einem Eingabe-Bewegungsbild erzeugt worden ist, wobei eine Bewegungskompensation
und Anderes verwendet werden und wobei das Verfahren gemäß der vorliegenden
Erfindung angewendet wird.
-
Die
zweite Ausführungsform
beschreibt den Fall, bei dem das Eingabebild in Blöcke dividiert
wird, die jeweils eine Größe von 4
(horizontal) × 4
(vertikal) Pixeln aufweisen und kodiert sind. Die Blockgröße kann
jedoch auch eine andere sein.
-
Die
zweite Ausführungsform
beschreibt ein Verfahren zum Abtasten eines Blocks unter Bezugnahme
auf 11. Es kann jedoch auch eine andere Abtastreihenfolge
verwendet werden, solange es diejenige ist, die zur Kodierung verwendet
worden ist.
-
In
der zweiten Ausführungsform
wird das Beispiel der Kodierungstabelle unter Bezugnahme auf 11 erläutert. Es
kann jedoch auch eine andere Kodierungstabelle verwendet werden,
solange es diejenige ist, die zur Kodierung verwendet worden ist.
-
Zudem
wurde ein Beispiel der VLC-Tabelle unter Bezugnahme auf 6 erläutert. Es
kann jedoch auch eine andere Tabelle verwendet werden, solange es
diejenige ist, die zur Kodierung verwendet worden ist. In der vorliegenden
Ausführungsform
ist der Fall einer Verwendung zweier VLC-Tabellen beschrieben. Es
können
jedoch auch drei VLC-Tabellen bei Verwendung mehrerer Schwell werte
verwendet werden. Zudem kann die VLC-Tabelle jedes Mal gewechselt
werden, wenn jeder Schwellwert überschritten
wird. Die Struktur der VLC-Tabelle und des Schwellwertes sollte
jedoch die gleiche sein wie diejenige, die zum Kodieren verwendet
worden ist.
-
Die
zweite Ausführungsform
beschreibt den Fall des Wechselns zwischen den VLC-Tabellen, wenn
der absolute Wert von L den Schwellwert übersteigt. Die gleichen Wirkungen
bezüglich
des Wechselns zwischen den VLC-Tabellen können jedoch auch erreicht werden,
wenn die Kodierungszahl den Schwellwert überschritten hat.
-
In
der zweiten Ausführungsform
wird der Fall beschrieben, in dem der Bitstrom dekodiert wird, der mit
dem an dem Ende der RL-Sequenz hinzugefügten EOP kodiert worden ist.
Es kann jedoch auch der Bitstrom dekodiert werden, der mit den an
dem Kopf der RL-Sequenz hinzugefügten
RL-Werten kodiert worden ist. Die 12A und 12B zeigen die Anzahl von RL-Werten und die RL-Sequenz, die durch die
Dekodierverarbeitung erhalten worden sind, für diesen Fall korrespondierend
zu den 10A und 10B.
In diesem Fall ist in der in 5 gezeigten Kodierungstabelle
die Zuordnung der Kodierungszahl zu dem EOB unnötig.
-
Das
Kodierverfahren mit variabler Länge
gemäß der vorliegenden
Erfindung führt
ein Abtasten auf den Frequenzkoeffizienten in dem Block startend bei
dem Niedrig-Frequenz-Bereich in Richtung des Hoch-Frequenz-Bereichs
durch und eindimensionalisiert diese. Dann wird eine Sequenz von
RL-Werten für
die eindimensionalisierten Koeffizienten erzeugt, wobei die RL-Werte
jeweils eine Kombination von R, die Anzahl von aufeinander folgenden
Null-Koeffizienten, und L, der Nicht-Null-Koeffizient, der diesem folgt,
sind. Die RL-Werte werden dann zu Variable-Länge-Kodierungen in einer Reihenfolge
konvertiert, die zu der Reihenfolge des Abtastens umgekehrt ist.
Eine Mehrzahl von VLC-Tabellen wird dann zum Konvertieren der RL-Werte
zur Variable-Länge-Kodierungen
bereitgestellt. Dann wird die Konvertierung zunächst durch Verwenden der ersten VLC-Tabelle
durchgeführt,
und, wenn der absolute von L oder die Kodierungszahl den Schwellwert übersteigt,
wird die zweite VLC-Tabelle zum Konvertieren der nachfolgenden RL-Werte
verwendet. In diesem Fall wird im Vergleich zu der zweiten VLC-Tabelle
in der ersten VLC-Tabelle die Variable-Länge-Kodierung kürzer, wenn
die Kodierungszahl kleiner wird. In der zweiten VLC-Tabelle wird
im Vergleich zu der ersten VLC-Tabelle die Variable-Länge-Kodierung
kürzer,
wenn die Kodierungszahl größer wird.
-
Gewöhnlich wird
dann der absolute Wert von L und die Kodierungszahl in dem Niedrig-Frequenz-Bereich
größer, so
dass der absolute Wert von L größer wird,
wenn die RL-Werte zu den Variable-Länge-Kodierungen in einer Reihenfolge
konvertiert werden, die umgekehrt zu der Reihenfolge ist, in der
die RL-Werte erzeugt worden sind, indem ein Abtasten startend bei
dem Niedrig-Frequenz-Bereich
in Richtung des Hoch-Frequenz-Bereichs durchgeführt wird. Daher kann die Gesamtkodierungsgröße reduziert
werden, indem die VLC-Tabelle verwendet wird, in der die Variable-Länge-Kodierung
kürzer
wird, wenn die Kodierungsszahl größer wird, nachdem der absolute
Wert von L den Schwellwert überschritten hat.
-
Das
Dekodierverfahren mit variabler Länge gemäß der vorliegenden Erfindung
dekodiert zunächst
den Eingabe-Bitstrom unter Verwendung der ersten VLC-Tabelle und erzeugt
eine Sequenz der RL-Werte, die jeweils eine Kombination von R, die Anzahl
von aufeinander folgenden Null-Koeffizienten, und L, der Nicht-Null-Koeffizient,
der diesem folgt, sind. Wenn der absolute Wert von L oder die Kodierungszahl
den Schwellwert übersteigt,
wird die zweite VLC-Tabelle zum Dekodieren der nachfolgenden Variable-Länge-Kodierungen
verwendet. Die RL-Werte
werden dann zu dem Koeffizienten basierend auf der vorbestimmten
Abtastreihenfolge des Blockes konvertiert, nachdem die RL-Werte
in umgekehrte Reihenfolge gesetzt worden sind.
-
Mit
der obigen Verarbeitung ist es möglich, indem
das Dekodierverfahren mit variabler Länge gemäß der vorliegenden Erfindung
verwendet wird, den Bitstrom richtig zu dekodieren, der unter Verwendung des
Kodierverfahrens mit variabler Länge
gemäß der vorliegenden
Erfindung kodiert worden ist.
-
(Dritte Ausführungsform)
-
Im
Folgenden wird eine Kodiervorrichtung gemäß der dritten Ausführungsform
unter Bezugnahme auf die Diagramme beschrieben.
-
13 ist
ein Blockdiagramm, das eine Struktur der Kodiervorrichtung 100b gemäß der dritten
Ausführungsform
der vorliegenden Erfindung zeigt.
-
Diese
Bild-Kodiervorrichtung 100b, die ein Intra-Bild-Kodieren
auf einem Eingabebild (Bilddaten) mit verbesserter Kodierungseffizienz
durchführt, weist
eine Block-Konvertierungseinheit 101, eine Frequenztransformationseinheit 102,
eine Quantisierungseinheit 103 und eine Variable-Länge-Kodierungseinheit 150 auf.
-
Die
Block-Konvertierungseinheit 101 dividiert das Eingabebild
in Pixelblöcke,
die jeweils eine Größe von 4
(horizontal) × 4
(vertikal) Pixeln aufweisen, und gibt diese an die Frequenztransformationseinheit 102 aus.
-
Die
Frequenztransformationseinheit 102 führt eine Frequenztransformation
auf jedem der dividierten Pixelblöcke durch, um Frequenzkoeffizienten zu
erzeugen. Dann gibt die Frequenztransformationseinheit 102 die
erzeugten Frequenzkoeffizienten an die Quantisierungseinheit 103 aus.
-
Die
Quantisierungseinheit 103 führt eine Quantisierung auf
den Frequenzkoeffizienten durch, die von der Frequenztransformationseinheit 102 ausgegeben
worden sind. Die Quantisierung bedeutet hier ein Verarbeiten, das äquivalent
zu einem Dividieren eines Frequenzkoeffizienten durch einen vorbestimmten
Quantisierungswert ist. Des Weiteren variiert ein Quantisierungswert
im Allgemeinen in Abhängigkeit
von einem Pixelblock und einem Frequenzband. Danach gibt die Quantisierungseinheit 103 die quantisierten
Frequenzkoeffizienten an die Variable-Länge-Kodierungseinheit 150 aus.
-
Die
Variable-Länge-Kodierungseinheit 150 führt eine
Kodierung mit variabler Länge
auf den Frequenzkoeffizienten durch, die durch die Quantisierungseinheit 103 quantisiert
worden sind.
-
14 ist
ein Blockdiagramm, das eine innere Struktur der Variable-Länge-Kodierungseinheit 150 zeigt.
-
Wie
in 14 gezeigt, ist die Variable-Länge-Kodierungseinheit 150 aus
einer RL-Sequenz-Erzeugungseinheit 201, einer Neuordnungseinheit 202, einer
Binärisierungseinheit 203,
einer Tabellen-Speichereinheit 204 und einer Arithmetische-Kodierung-Einheit 205 zusammengesetzt.
-
Die
RL-Sequenz-Erzeugungseinheit 201 konvertiert die quantisierten
Frequenzkoeffizienten (im Folgenden mit „Koeffizienten" abgekürzt), die durch
die Quantisierungseinheit 103 ausgegeben worden sind, zu
eindimensionalisierten Koeffizienten unter Verwendung eines vorbestimmten
Abtastverfahrens. Dann erzeugt die RL-Sequenz-Erzeugungseinheit 201 eine
Sequenz (im Folgenden als „RL-Sequenz" bezeichnet), die
aus Kombinationen eines Wertes R, der die Anzahl von aufeinander
folgenden Null-Koeffizienten anzeigt, und einem Koeffizientenwert
L, der einen Nicht-Null-Koeffizienten anzeigt, (im Folgenden als „RL-Wert" bezeichnet) zusammengesetzt
ist. Ein Beispiel von diesem wird unter Bezugnahme auf die 15 und 16 beschrieben.
-
15A zeigt einen Koeffizientenblock, der aus einer
Vielzahl von Koeffizienten zusammengesetzt ist, die von der Quantisierungseinheit 103 ausgegeben
worden sind. Hier bezeichnet der obere linke Frequenzkoeffizient
eine Gleichstromkomponente und Frequenzkomponenten in der horizontalen
Richtung werden nach rechts größer, während Frequenzkomponenten
in der vertikalen Richtung nach unten größer werden.
-
15B ist ein Erläuterungsdiagramm zum Erläutern eines
Abtastverfahrens zum Eindimensionalisieren einer Vielzahl von Koeffizienten
in einem Koeffizientenblock. Wie durch Pfeile in 15B angezeigt ist, eindimensionalisiert die RL-Sequenz-Erzeugungseinheit 201 die
Koeffizienten, indem ein Abtasten in dem Koeffizientenblock startend
bei dem Niedrig-Frequenz-Bereich zu dem Hoch-Frequenz-Bereich hin durchgeführt wird.
-
16A zeigt eine RL-Sequenz, die von der RL-Sequenz-Erzeugungseinheit 201 ausgegeben worden
ist. In 16A zeigt die erste Zahl die
Anzahl von Koeffi zienten an. Im Allgemeinen ist es wahrscheinlicher,
dass ein Koeffizientenwert in einem Hoch-Frequenz-Bereich „0" ist. Daher ist es
durch Durchführen
eines Abtastens startend bei dem Niedrig-Frequenz-Bereich zu dem
Hoch-Frequenz-Bereich
hin möglich,
die Informationsmenge zu reduzieren, die in einer RL-Sequenz enthalten
ist (von dieser die Informationsmenge der Zahlen R). Die erzeugte RL-Sequenz
wird in die Neuordnungseinheit 202 eingegeben.
-
Die
Neuordnungseinheit 202 sortiert die eingegebene RL-Sequenz
in umgekehrter Reihenfolge. Die Anzahl von Koeffizienten soll jedoch
nicht neu geordnet werden.
-
16B zeigt die RL-Sequenz, die durch die Neuordnungseinheit 202 neu
geordnet worden ist. Durch Durchführen einer Neuordnung auf diese
Art ist es möglich,
die Informationsmenge, wie oben beschrieben, zu reduzieren und dementsprechend
Koeffizienten zu eindimensionalisieren, indem ein Abtasten auf dem
Koeffizientenblock von dem Hoch-Frequenz-Bereich zu dem Niedrig-Frequenz-Bereich durchgeführt wird.
Danach wird die RL-Sequenz, die so neu geordnet worden ist, an die Binärisierungseinheit 203 ausgegeben.
-
Die
Binärisierungseinheit 203 führt eine
Binärisierung
auf der Anzahl von Koeffizienten und jedem RL-Wert durch, das heißt, sie
konvertiert diese zu Binärdaten,
die aus mehreren Nullen und Einsen zusammengesetzt sind. Hier werden
der Wert R und der Koeffizientenwert L getrennt binärisiert.
-
16C zeigt nur die Koeffizientenwerte L in der
RL-Sequenz, die durch die Neuordnungseinheit 202 neu geordnet
worden ist. Die absoluten Werte und Vorzeichen dieser Koeffizientenwerte
L werden getrennt verarbeitet. Des Weiteren führt die Binärisierungseinheit 203 eine
Binärisierung
auf den Werten R und den absoluten Werten der Koeffizientenwerte L
durch, wobei eine vorbestimmte Binärisierungstabelle, wie sie
beispielsweise in 21 gezeigt ist, verwendet wird.
Dann gibt die Binärisierungseinheit 203 an
die Arithmetische-Kodierung-Einheit 205 Binärdaten aus,
die von deren Binärisierung
resultieren.
-
Die
Arithmetische-Kodierung-Einheit 205 führt eine binäre arithmetische
Kodierung auf den Werten der Zahlen R und den absoluten Werten der Koeffizienten werte
L durch, die als Binärdaten
repräsentiert
sind, während
ein Kodieren der Vorzeichen der Koeffizientenwerte L zu der gleichen
Zeit durchgeführt
wird. Eine Erläuterung
für die
arithmetische Kodierung, die auf dem absoluten Wert des Koeffizientenwertes
L durchzuführen
ist, wird hier gegeben. Die Arithmetische-Kodierung-Einheit 205 verwendet eine
Mehrzahl von Wahrscheinlichkeitstabellen, indem zwischen diesen
gewechselt wird, wenn eine arithmetische Kodierung auf dem absoluten
Wert des Koeffizientenwertes L, der als Binärdaten repräsentiert ist, durchgeführt wird.
Diese Mehrzahl von Wahrscheinlichkeitstabellen ist in der Tabellen-Speichereinheit 204 gespeichert.
-
17 ist
ein Übergangsdiagramm,
das ein Verfahren zum Wechseln zwischen den Wahrscheinlichkeitstabellen
zeigt.
-
Wie 17 zeigt,
verwendet die Arithmetische-Kodierung-Einheit 205 vier
Wahrscheinlichkeitstabellen, von denen die Wahrscheinlichkeitstabelle 1
verwendet wird, um ein arithmetisches Kodieren auf dem absoluten
Wert des ersten Koeffizientenwertes L durchzuführen. Derweil wechselt für die nachfolgenden
Koeffizientenwerte L die Arithmetische-Kodierung-Einheit 205 zu
einer anderen Wahrscheinlichkeitstabelle, um diese zu verwenden,
in Abhängigkeit
von der Tabellenzahl der Wahrscheinlichkeitstabelle, die zum Kodieren
des absoluten Wertes des vorherigen Koeffizientenwertes L verwendet
worden ist, sowie in Abhängigkeit
von dem absoluten Wert. Hier sind die vier Wahrscheinlichkeitstabellen
die Wahrscheinlichkeitstabelle 1, die Wahrscheinlichkeitstabelle
2, die Wahrscheinlichkeitstabelle 3 und die Wahrscheinlichkeitstabelle
4. Die Tabellenzahl der Wahrscheinlichkeitstabelle 1 ist „1", die Tabellenzahl
der Wahrscheinlichkeitstabelle 2 ist „2", die Tabellenzahl der Wahrscheinlichkeitstabelle
3 ist „3" und die Tabellenzahl
der Wahrscheinlichkeitstabelle 4 ist „4".
-
Insbesondere
wird Wahrscheinlichkeitstabelle 2 verwendet, wenn eine der folgenden
Bedingungen erfüllt
ist: Wenn die Wahrscheinlichkeitstabelle 1 verwendet wird, um den
absoluten Wert des vorherigen Koeffizientenwertes L zu kodieren,
und sein absoluter Wert „1" beträgt; und
wenn die Wahrscheinlichkeitstabelle 2 verwendet wird, um den absoluten Wert
des vorherigen Koeffizientenwertes L zu kodieren, und sein absoluter
Wert „1" beträgt. Derweil
wird die Wahrscheinlichkeitstabelle 3 verwendet, wenn eine der folgenden
Bedingungen erfüllt
ist:
Wenn die Wahrscheinlichkeitstabelle 1 verwendet wird,
um den absoluten Wert des vorherigen Koeffizientenwertes L zu kodieren,
und sein absoluter Wert „2" ist; wenn die Wahrscheinlichkeitstabelle
2 verwendet wird, um den absoluten Wert des vorherigen Koeffizientenwertes
L zu kodieren, und sein absoluter Wert „2" ist; und wenn die Wahrscheinlichkeitstabelle
3 verwendet wird, um den absoluten Wert des vorherigen Koeffizientenwertes
L zu kodieren, und sein absoluter Wert „2 oder kleiner" ist. Und die Wahrscheinlichkeitstabelle
4 wird verwendet, wenn eine der folgenden Bedingungen erfüllt ist:
Wenn der absolute Wert des vorherigen Koeffizientenwertes L „3 oder
größer" ist; und wenn die
Wahrscheinlichkeitstabelle 4 verwendet wird, um den absoluten Wert
des vorherigen Koeffizientenwertes L zu kodieren.
-
Wie
oben beschrieben, werden die Wahrscheinlichkeitstabellen in einer
Richtung gewechselt, das heißt,
von einer Wahrscheinlichkeitstabelle mit einer kleineren Tabellenzahl
wird zu einer Wahrscheinlichkeitstabelle mit einer größeren Tabellenzahl
gewechselt. Dementsprechend sollen, selbst wenn der absolute Wert
des vorherigen Koeffizientenwertes L gleich oder kleiner als ein
vorbestimmter Schwellwert ist, die Wahrscheinlichkeitstabellen nicht zurück in die
umgekehrte Richtung gewechselt werden. Dies ist der Punkt, der die
vorliegende Erfindung von der existierenden Technik unterscheidet.
-
18 ist
ein Wahrscheinlichkeitstabelle-Inhalt-Darstellungsdiagramm, das
den Inhalt der zuvor erwähnten
vier Wahrscheinlichkeitstabellen 1~4 zeigt.
-
Wie
in 18 gezeigt, ist jede der vier Wahrscheinlichkeitstabellen
1~4 aus der Wahrscheinlichkeit, mit der „0" auftritt, und der Wahrscheinlichkeit, mit
der „1" auftritt, aufgebaut.
-
Beispielsweise
ist die Wahrscheinlichkeitstabelle aus der Wahrscheinlichkeit „0.1", mit der „0" auftritt, und der
Wahrscheinlichkeit „0.9", mit der „1" auftritt, aufgebaut
und die Wahrscheinlichkeitstabelle 2 ist aus der Wahrscheinlichkeit „0.2", mit der „0" auftritt, und der
Wahrscheinlichkeit „0.8", mit der „1" auftritt, aufgebaut.
-
Um
es anders auszudrücken,
wenn der absolute Wert des Koeffizientenwertes L „2" beträgt, ist das
Ergebnis einer Binärisierung
von „2" „01". Daher führt, wenn die Wahrscheinlichkeitstabelle
1 verwendet wird, um eine arithmetische Kodierung auf „01" durchzuführen, die
Arithmetische-Kodierungs-Einheit 205 eine arithmetische
Kodierung auf „01" unter Verwendung
der Wahrscheinlichkeit „0.1" korrespondierend
zu „0" in solch einem „01"-Fall und unter Verwendung
der Wahrscheinlichkeit „0.9" korrespondierend
zu „1" in solch einem „01"-Fall durch.
-
Hier
ist es, da die Summe der Wahrscheinlichkeit, mit der „0" auftritt, und der
Wahrscheinlichkeit, mit der „1" auftritt, 1.0 beträgt, nicht
notwendig, diese beiden Wahrscheinlichkeiten zu halten, so dass
nur eine der Wahrscheinlichkeiten gehalten werden kann.
-
Das
Folgende erläutert
ein Beispiel eines Wechselns zwischen Wahrscheinlichkeitstabellen
in einem Fall, indem ein Kodieren auf den absoluten Werten (die
binärisierten
Werte) der Koeffizientenwerte L, die in 16C gezeigt
sind, durchgeführt wird.
-
Die
Arithmetische-Kodierung-Einheit 205 verwendet die Wahrscheinlichkeitstabelle
1 für den absoluten
Wert des ersten Koeffizientenwertes L (–2). Hier wechselt, da der
absolute Wert eines solchen Koeffizientenwertes L 2 ist, die Arithmetische-Kodierung-Einheit 205 von
der Wahrscheinlichkeitstabelle 1 zu der Wahrscheinlichkeitstabelle
3, um diese zu benutzen. Dementsprechend verwendet die Arithmetische-Kodierung-Einheit 205 die
Wahrscheinlichkeitstabelle 3, um eine arithmetische Kodierung auf
dem absoluten Wert des zweiten Koeffizientenwertes L (3) durchzuführen. Hier
wechselt, da der absolute Wert von solch einem Koeffizientenwert L „3" ist, die Arithmetische-Kodierung-Einheit 205 von
der Wahrscheinlichkeitstabelle 3 zu der Wahrscheinlichkeitstabelle
4, um diese zu benutzen. Dementsprechend verwendet die Arithmetische-Kodierung-Einheit 205 die
Wahrscheinlichkeitstabelle 4, um eine arithmetische Kodierung auf
dem absoluten Wert des dritten Koeffizientenwertes L (6) durchzuführen. Hier
verwendet, da die Wahrscheinlichkeitstabelle, die zu verwenden ist,
zu der Wahrscheinlichkeitstabelle 4 gewechselt ist, die Arithmetische-Kodierung-Einheit 205 die
Wahrscheinlichkeitstabelle 4, um ein arithmetisches Kodieren auf
den absoluten Werten von allen nachfolgenden Koeffizientenwerten
L durchzuführen.
Beispielsweise ist der absolute Wert des fünften Koeffizientenwertes L „2". Aber anders als
bei der existierenden Technik, verwendet die Arithmetische-Kodierung- Einheit 205 die Wahrscheinlichkeitstabelle
4, wenn ein arithmetisches Kodieren auf den absoluten Wert des sechsten Koeffizientenwertes
L durchgeführt
wird und auch danach, ohne zu einer anderen Wahrscheinlichkeitstabelle
zu wechseln.
-
Des
Weiteren werden derartige Wahrscheinlichkeitstabellen aktualisiert,
um an der Eingabe angepasst zu sein, da jede der Wahrscheinlichkeitstabellen
so aktualisiert wird, wie es in Abhängigkeit davon, ob eine Eingabe
eine „0" oder „1" ist, benötigt wird.
-
Wie
oben beschrieben, wird in dem Kodierverfahren mit variabler Länge, das
von der Variable-Länge-Kodiereinheit 150 in
der Bild-Kodiervorrichtung 100b gemäß der vorliegenden Erfindung
angewendet wird, eine Eindimensionalisierung auf Koeffizienten innerhalb
eines Koeffizientenblockes durchgeführt, indem diese startend bei
dem Niedrig-Frequenz-Bereich zu dem Hoch-Frequenz-Bereich hin abgetastet
werden. Dann erzeugt sie eine Sequenz von RL-Werten (RL-Sequenz), die aus
einer Kombination von einer Zahl R, die aufeinander folgende Null-Koeffizienten-Werte
anzeigt, und eines Nicht-Null-Koeffizienten-Wertes L, der dieser
nachfolgt, aufgebaut ist. Derartige RL-Werte werden dann zu variable-Länge-Kodierungen in einer Reihenfolge kodiert,
die entgegengesetzt zu der Reihenfolge ist, in der das Abtasten
angewendet worden ist. Wenn die RL-Werte zu Variable-Länge-Kodierungen
konvertiert worden sind, werden die Zahlen R, die absoluten Werte
der Koeffizientenwerte L und die Vorzeichen der Koeffizientenwerte
L getrennt konvertiert. Wenn sie konvertiert sind, wird zunächst eine
Binärisierung
durchgeführt,
der ein arithmetisches Kodieren folgt. Um ein arithmetisches Kodieren
auf den absoluten Werten der Koeffizientenwerte L durchzuführen, werden
zwischen diesen mehrere Wahrscheinlichkeitstabellen gewechselt.
Wenn von einer Wahrscheinlichkeitstabelle zu einer anderen Wahrscheinlichkeitstabelle
gewechselt wird, wird eine Wahrscheinlichkeitstabelle, die zum Kodieren
des absoluten Wertes des nächsten
Koeffizientenwertes L zu verwenden ist, in Abhängigkeit von der Tabellenzahl der
aktuellen Wahrscheinlichkeitstabelle und des absoluten Wertes des
aktuellen Koeffizientenwertes L bestimmt. Die Wahrscheinlichkeitstabellen
sollen nur in einer Richtung gewechselt werden und wenn der absolute
Wert eines Koeffizientenwertes L einmal einen vorbestimmten Wert überschritten
hat, wird die gleiche Wahrscheinlichkeitstabelle von da an zum Durchführen eines
arithmetischen Kodierens verwendet.
-
Wenn
ein Abtasten von dem Hoch-Frequenz-Bereich zuerst und dann zu dem
Niedrig-Frequenz-Bereich durchgeführt wird, ist es wahrscheinlich,
dass der absolute Wert des Koeffizientenwertes L größer wird,
da der absolute Wert des Koeffizientenwertes L im Allgemeinen in
Richtung des Niedrig-Frequenz-Bereichs größer wird. Daher ist es sehr gut
möglich,
dass, wenn einmal der absolute Wert des Koeffizientenwertes L einen
vorbestimmten Wert überschritten
hat, selbst wenn der absolute Wert des anderen Koeffizientenwertes
L kleiner als der vorbestimmte Wert nach diesem wird, nur der absolute Wert
von solch einem Koeffizientenwert klein ist. Daher wird durch Durchführen eines
arithmetischen Kodierens unter Verwendung der gleichen Wahrscheinlichkeitstabelle
ein Aktualisieren einer Wahrscheinlichkeitstabelle leichter an die
Eingaben angepasst. Dies macht es konsequenterweise möglich, dass
die Auftrittwahrscheinlichkeit von Symbolen („0" oder „1" in Binärdaten) jeder Wahrscheinlichkeitstabelle
verzerrter ist (das heißt,
die Auftrittswahrscheinlichkeit von entweder „0" oder „1" wird zu einem Wert näher an 1.0).
Ein arithmetisches Kodieren hat die Eigenschaft, dass je stärker die
Wahrscheinlichkeitswerte in einer Wahrscheinlichkeitstabelle verzerrt
sind, desto höher
die Kodierungseffizienz wird. Dementsprechend kann die Kodierungseffizienz
verbessert werden, indem das Kodierverfahren mit variabler Länge gemäß der vorliegenden
Erfindung verwendet wird.
-
Die
Bild-Kodiervorrichtung gemäß der vorliegenden
Erfindung wurde unter Verwendung der vorliegenden Ausführungsformen
erläutert,
aber die vorliegende Erfindung ist nicht auf diese begrenzt.
-
In
der vorliegenden Ausführungsform
wurde beispielsweise eine Erläuterung
für den
Fall gegeben, dass ein Bild durch ein Intra-Bild-Kodieren kodiert
wird. Aber die gleichen Wirkungen können in dem Fall erreicht werden,
in dem ein Bild durch ein Zwischenbild-Kodieren kodiert wird, in
dem eine Bewegungskompensation oder Anderes auf einem Eingabe-Bewegungsbild
durchgeführt
wird.
-
Des
Weiteren kann in der vorliegenden Ausführungsform, obwohl eine Erläuterung
für den
Fall gegeben worden ist, in dem ein Eingabebild in Pixelblöcke divi diert
worden ist, die jeweils eine Größe von 4
(horizontal) × 4
(vertikal) Pixeln aufweisen, der Pixelblock auch eine andere Größe aufweisen.
-
Auch
in der vorliegenden Erfindung kann, obwohl 15B verwendet
worden ist, um ein Verfahren zum Durchführen eines Abtastens innerhalb
eines Koeffizientenblockes zu erläutern, eine andere Abtastreihenfolge
angewendet werden, solange ein Abtasten von dem Niedrig-Frequenz-Bereich
zu dem Hoch-Frequenz-Bereich
durchgeführt
wird.
-
Des
Weiteren wird in der vorliegenden Ausführungsform eine Erläuterung
für den
Fall gegeben, dass die RL-Sequenz-Erzeugungseinheit 201 quantisierte
Frequenzkoeffizienten in eindimensionalisierte Koeffizienten unter
Verwendung eines vorbestimmten Abtastverfahrens konvertiert und
eine Sequenz (RL-Sequenz)
erzeugt, die aus Kombinationen von R, der die Anzahl von aufeinander
folgenden Null-Koeffizientenwerten anzeigt, und L, der einen Nicht-Null-Koeffizientenwert
anzeigt, der diesem nachfolgt, aufgebaut ist. Es können aber
auch eine Sequenz der Zahlen R und eine Sequenz der Koeffizientenwerte
L getrennt erzeugt werden. Wenn eine Sequenz von Koeffizientenwerten
L erzeugt wird, kann beispielsweise die Neuordnungseinheit 202 ausgelassen
werden, wenn eine derartige Sequenz erzeugt wird, indem ein Abtasten
startend bei dem Hoch-Frequenz-Bereich zu dem Niedrig-Frequenz-Bereich
hin durchgeführt
wird und indem die Koeffizienten ausgewählt werden, deren Werte andere
Werte als Null anzeigen.
-
Des
Weiteren wird in der vorliegenden Ausführungsform eine Erläuterung
für den
Fall gegeben, dass die Wahrscheinlichkeitstabellen gemäß des Übergangsschemas,
das in 17 dargestellt ist, gewechselt
werden. Die Anzahl von Wahrscheinlichkeitstabellen und die Schwellwerte
für den
absoluten Wert des Koeffizientenwertes L können aber auch andere Werte
aufweisen, wenn Wahrscheinlichkeitstabellen, wie in 17 dargestellt,
gewechselt werden.
-
In 21 ist
ein Beispiel einer Binärtabelle gezeigt.
Es kann aber auch eine andere Tabelle angewendet werden.
-
Des
Weiteren ist in der vorliegenden Ausführungsform eine Erläuterung
für den
Fall gegeben worden, dass die Arithmetische-Kodierung-Einheit ein
binäres
arithmetisches Kodieren durchführt.
Es kann aber auch ein arithmetisches Kodieren mit mehreren Werten
durchgeführt
werden. In solch einem Fall ist es möglich, die Binärisierungseinheit 203 auszulassen.
-
(Vierte Ausführungsform)
-
Im
Folgenden wird eine Bild-Dekodiervorrichtung gemäß der vierten Ausführungsform
der vorliegenden Erfindung unter Bezugnahme auf die Diagramme erläutert.
-
19 ist
ein Blockdiagramm, das eine Struktur einer Dekodiervorrichtung 500b gemäß der vierten
Ausführungsform
der vorliegenden Erfindung zeigt.
-
Diese
Dekodiervorrichtung 500b führt ein Intra-Bild-Dekodieren
auf einem Bitstrom durch, der auf einer Durchführung eines Intra-Bild-Kodierens
auf Bilddaten resultiert, und weist eine Variable-Länge-Dekodiereinheit 601,
eine inverse Quantisierungseinheit 602, eine inverse Frequenztransformationseinheit 603 und
einen Bildspeicher 604 auf. Der Bitstrom, der einzugeben
ist, ist hier unter Verwendung des Kodierverfahrens mit variabler
Länge erzeugt,
das von der Kodiervorrichtung 100b gemäß der dritten Ausführungsform
angewendet wird, und wird zuerst der Variable-Länge-Dekodiereinheit 601 übergeben.
-
Beim
Empfangen des Bitstroms erzeugt die Variable-Länge-Dekodiereinheit 601 einen
Koeffizientenblock, der aus einer Vielzahl von Koeffizienten aufgebaut
ist, wie es in 15A gezeigt ist, indem ein Dekodieren
mit variabler Länge
auf solch einem Bitstrom durchgeführt wird.
-
Die
inverse Quantisierungseinheit 602, die den Koeffizientenblock
von der Variable-Länge-Dekodiereinheit 601 empfängt, führt eine
inverse Quantisierung auf solch einem Koeffizientenblock durch. Inverse
Quantisierung bedeutet hier, einen vorbestimmten Quantisierungswert
zu jedem Koeffizienten in dem Koeffizientenblock zu integrieren.
Im Allgemeinen variiert ein Quantisierungswert basierend auf einem
Koeffizientenblock oder einem Frequenzband und wird von einem Bit strom
erhalten. Die inverse Quantisierungseinheit 602 gibt dann
den invers quantisierten Koeffizientenblock an die inverse Frequenztransformationseinheit 603 aus.
-
Die
inverse Frequenztransformationseinheit 603 führt eine
inverse Frequenztransformation auf dem invers quantisierten Koeffizientenblock
durch und konvertiert den Koeffizientenblock in einen Pixelblock.
Dann gibt die inverse Frequenztransformationseinheit 603 den
konvertierten Pixelblock an den Bildspeicher 604 aus.
-
Der
Bildspeicher 604 speichert die dekodierten Pixelblöcke in einer
Sequenz und, wenn die Pixelblöcke,
die zu einem Bild äquivalent
sind, gespeichert sind, gibt er diese Pixelblöcke als ein Ausgabebild aus.
-
Im
Folgenden wird eine detaillierte Erklärung für die Variable-Länge-Dekodiereinheit 601,
die oben beschrieben ist, gegeben.
-
20 ist
ein Blockdiagramm, das eine innere Struktur der Variable-Länge-Dekodiereinheit 601 zeigt.
-
Wie
in 20 gezeigt, weist die Variable-Länge-Dekodiereinheit 601 eine
Arithmetische-Dekodierung-Einheit 701, eine Mehrfachwert-Konvertierungseinheit 702,
eine Tabellen-Speichereinheit 703, eine Neuordnungseinheit 704 und eine
Koeffizienten-Erzeugungseinheit 705 auf.
-
Die
Tabellen-Speichereinheit 703 speichert z.B. vier Wahrscheinlichkeitstabellen
1~4, wie in 18 gezeigt.
-
Beim
Empfang des Bitstroms führt
die Arithmetische-Dekodierung-Einheit 701 zunächst ein arithmetisches
Dekodieren auf dem Bitstrom durch. Hier wird eine Erläuterung
für ein
binäres
arithmetisches Dekodieren gegeben, das auf den absoluten Werten
(binärisierte
Werte) von kodierten Koeffizientenwerten L, die in dem Bitstrom
enthalten sind, durchgeführt
wird.
-
Wenn
ein arithmetisches Dekodieren auf dem absoluten Wert des kodierten
Koeffizientenwertes L durchgeführt
wird, erhält
die Arithmetische-Dekodierung-Einheit 701 von
der Mehrfachwert-Konvertierungseinheit 702, den absoluten
Wert des vorherigen Koeffizientenwertes L, der bereits kodiert und
in einen Mehrfachwert konvertiert worden ist. Dann wechselt die
arithmetische-Dekodierung-Einheit 701 zwischen
den Wahrscheinlichkeitstabellen 1~4, die in der Tabellen-Speichereinheit 703 gespeichert
sind, auf eine Art, wie sie in 17 gezeigt
ist, in Abhängigkeit
von dem absoluten Wert von solch einem Koeffizientenwert L und führt ein
binäres
arithmetisches Dekodieren auf dem absoluten Wert von jedem der kodierten
Koeffizientenwerte L durch, um Binärdaten, die zu jedem von diesen
korrespondieren, auszugeben.
-
Die
Mehrfachwert-Konvertierungseinheit 702 konvertiert die
Binärdaten,
die von der Arithmetische-Dekodierung-Einheit 701 ausgegeben
worden sind, zu Mehrfachwerten unter Verwendung von beispielsweise
einer Binärtabelle,
wie sie in 21 gezeigt ist, um diese als
die absoluten Werte der Koeffizientenwerte L zu repräsentieren.
Dann gibt die Mehrfachwert-Konvertierungseinheit 702 die
absoluten Werte derartiger Koeffizientenwerte L an die Arithmetische-Dekodierung-Einheit 701 und
die Neuordnungseinheit 704 aus.
-
Arbeitsweisen
der Arithmetische-Dekodierung-Einheit 701 und der Mehrfachwert-Konvertierungseinheit 702 werden
im Folgenden detailliert erläutert.
-
Zuerst
verwendet die Arithmetische-Dekodierung-Einheit 701 die
Wahrscheinlichkeitstabelle 1, um ein arithmetisches Dekodieren auf
dem absoluten Wert des ersten kodierten Koeffizientenwertes L durchzuführen. Die
Arithmetische-Dekodierung-Einheit 701 gibt
dann die Binärdaten,
die durch Durchführen
des arithmetischen Dekodierens erhalten worden sind, an die Mehrfachwert-Konvertierungseinheit 702 aus.
Die Mehrfachwert-Konvertierungseinheit 702 verwendet die
Binärtabelle,
um die Binärdaten
zu dem absoluten Wert des Koeffizientenwertes L zu konvertieren
und gibt den absoluten Wert an die Arithmetische-Dekodierung-Einheit 701 und
die Neuordnungseinheit 704 aus.
-
Dann
wechselt für
die absoluten Werte der nachfolgenden kodierten Koeffizientenwerte
L die Arithmetische-Dekodierung-Einheit 701 zu einer anderen
Wahr scheinlichkeitstabelle, um diese zu benutzen, in Abhängigkeit
von der Tabellenzahl der Wahrscheinlichkeitstabelle, die verwendet
wurde, wenn der absolute Wert des vorherigen kodierten Koeffizientenwertes
L binär
arithmetisch dekodiert wird, sowie in Abhängigkeit von dem absoluten
Wert von solch einem vorherigen Koeffizientenwert L, der von der
Mehrfachwert-Konvertierungseinheit 702 erhalten worden
ist. Wie in 17 gezeigt, wird die Wahrscheinlichkeitstabelle
2 verwendet, wenn eine der folgenden Bedingungen erfüllt ist:
Wenn die Wahrscheinlichkeitstabelle 1 verwendet wird, um ein arithmetisches
Dekodieren auf dem absoluten Wert des vorherigen kodierten Koeffizientenwertes
L durchzuführen,
und der absolute Wert des vorherigen Koeffizientenwertes L, der
von der Mehrfachwert-Konvertierungseinheit 702 erhalten
worden ist, „1" anzeigt; und wenn
die Wahrscheinlichkeitstabelle 2 verwendet wird, um ein arithmetisches
Dekodieren auf dem absoluten Wert der vorherigen kodierten Koeffizientenwertes
L durchzuführen,
und der absolute Wert des vorherigen Koeffizientenwertes L, der
von der Mehrfachwert-Konvertierungseinheit 702 erhalten worden
ist, „1" anzeigt. Die Wahrscheinlichkeitstabelle
3 wird verwendet, wenn eine der folgenden Bedingungen erfüllt ist:
Wenn die Wahrscheinlichkeitstabelle 1 verwendet wird, um ein arithmetisches
Dekodieren auf dem absoluten Wert des vorherigen kodierten Koeffizientenwertes
L durchzuführen,
und der absolute Wert des vorherigen Koeffizientenwertes L, der
von der Mehrfachwert-Konvertierungseinheit 702 erhalten
worden ist, „2" anzeigt; wenn die
Wahrscheinlichkeitstabelle 2 verwendet wird, um ein arithmetisches
Dekodieren auf dem absoluten Wert der vorherigen kodierten Koeffizientenwertes
L durchzuführen,
und der absolute Wert des vorherigen Koeffizientenwertes L, der
von der Mehrfachwert-Konvertierungseinheit 702 erhalten
worden ist, „2" anzeigt; und wenn
die Wahrscheinlichkeitstabelle 3 verwendet wird, um ein arithmetisches
Dekodieren auf dem absoluten Wert des vorherigen kodierten Koeffizientenwertes
L durchzuführen,
und der absolute Wert des vorherigen Koeffizientenwertes L, der
von der Mehrfachwert-Konvertierungseinheit 702 erhalten worden
ist, „2
oder kleiner" anzeigt.
Und die Wahrscheinlichkeitstabelle 4 wird verwendet, wenn eine der
folgenden Bedingungen erfüllt
ist: Wenn der absolute Wert des vorherigen Koeffizientenwertes L, der
von der Mehrfachwert-Konvertierungseinheit 702 erhalten
worden ist, „3
oder einen größeren Wert" anzeigt; und wenn
die Wahrscheinlichkeitstabelle 4 verwendet wird, um ein arithmetisches
Dekodieren auf dem absoluten Wert des vorherigen kodierten Koeffizientenwertes
L durchzuführen.
Wie oben gezeigt wor den ist, werden die Wahrscheinlichkeitstabellen 1~4
in einer Richtung gewechselt, das heißt von einer Wahrscheinlichkeitstabelle
mit einer kleineren Tabellenzahl zu einer Wahrscheinlichkeitstabelle
mit einer größeren Tabellenzahl.
Dementsprechend sollen, selbst wenn der absolute Wert des vorherigen
Koeffizientenwertes L, der von der Mehrfachwert-Konvertierungseinheit 702 erhalten
worden ist, gleich oder kleiner als ein vorbestimmter Schwellwert
ist, die Wahrscheinlichkeitstabellen nicht in die entgegengesetzte
Richtung gewechselt werden. Dies ist der Punkt, der die vorliegende
Erfindung von der existierenden Technik unterscheidet.
-
Im
Folgenden wird ein Beispiel eines Wechselns zwischen den Wahrscheinlichkeitstabellen
in einem Fall erläutert,
in dem ein Dekodieren auf den absoluten Werten von Koeffizientenwerten
L durchgeführt
wird, die in 16C gezeigt sind.
-
Die
Arithmetische-Dekodierung-Einheit 701 verwendet die Wahrscheinlichkeitstabelle
1, um ein arithmetisches Dekodieren auf dem absoluten Wert des ersten
kodierten Koeffizientenwertes L (–2) durchzuführen, um
ihn in Binärdaten „01" zu dekodieren. Da
die Arithmetische-Dekodierung-Einheit 701 von der Mehrfachwert-Konvertierungseinheit 702 „2" erhält, was
ein Mehrfachwert ist, der aus diesen Binärdaten „01" konvertiert worden ist, wechselt sie
von der Wahrscheinlichkeitstabelle 1 zu der Wahrscheinlichkeitstabelle
3, um diese zu benutzen. Dementsprechend verwendet die Arithmetische-Dekodierung-Einheit 701 die
Wahrscheinlichkeitstabelle 3, um ein arithmetisches Dekodieren auf
dem absoluten Wert des zweiten kodierten Koeffizientenwertes L (3) durchzuführen, um
ihn zu Binärdaten „001" zu dekodieren. Da
die Arithmetische-Dekodierung-Einheit 701 von der Mehrfachwert-Konvertierungseinheit 702 „3" erhält, was
ein Mehrfachwert ist, der aus diesen Binärdaten „001" konvertiert worden ist, wechselt sie
hier von der Wahrscheinlichkeitstabelle 3 zu der Wahrscheinlichkeitstabelle
4, um diese zu benutzen. Dementsprechend verwendet die Arithmetische-Dekodierung-Einheit 701 die
Wahrscheinlichkeitstabelle 4, um ein arithmetisches Dekodieren auf
dem absoluten Wert des dritten kodierten Koeffizientenwertes L (6)
durchzuführen,
um ihn zu Binärdaten „000001" zu dekodieren. Da
zu der Wahrscheinlichkeitstabelle 4 gewechselt worden ist, um diese
zu verwenden, verwendet die arithmetische-Dekodierung-Einheit 701 die
Wahrscheinlichkeitstabelle 4, um ein arithmetisches Dekodieren auf
den absoluten Werten von allen nachfolgenden kodierten Koeffizientenwerten
L durchzuführen.
Beispielsweise wird der absolute Wert des fünften kodierten Koeffizientenwertes
L dekodiert und in einen Mehrfachwert „2" konvertiert, aber anders als bei der
existierenden Technik, verwendet die Arithmetische-Dekodierung-Einheit 701 die
Wahrscheinlichkeitstabelle 4, um ein arithmetisches Dekodieren auf
dem absoluten Wert des sechsten kodierten Koeffizientenwertes L
und den folgenden Werten durchzuführen, ohne zu einer anderen
Wahrscheinlichkeitstabelle zu wechseln.
-
Durch
die obige Operation werden, wenn die absoluten Werte von Koeffizientenwerten
L, die Zahlen R und die Vorzeichen der Koeffizientenwerte L äquivalent
zu einem Koeffizientenblock erzeugt werden, diese in die Neuordnungseinheit 704 als
eine RL-Sequenz eingegeben.
-
Die
Neuordnungseinheit 704 sortiert eine derartige eingegebene
RL-Sequenz in umgekehrte Reihenfolge. Die Anzahl an Koeffizienten
soll jedoch nicht neu geordnet werden. 16A stellt
eine neu geordnete RL-Sequenz dar. Danach gibt die Neuordnungseinheit 704 die
so neu geordnete RL-Sequenz an die Koeffizienten-Erzeugungseinheit 705 aus.
-
Die
Koeffizienten-Erzeugungseinheit 705 konvertiert die eingegebene
RL-Sequenz zu einem Koeffizientenblock.
Dabei führt
die Koeffizienten-Erzeugungseinheit 705 eine
Konvertierung von der RL-Sequenz zu einem Koeffizientenblock durch,
indem die folgende Operation wiederholend durchgeführt wird:
Erzeugen von Null-Koeffizienten für die Zahl, die durch eine
Zahl R angezeigt wird, und dann Erzeugen eines Koeffizienten mit
einem Wert, der durch einen Koeffizientenwert L angezeigt wird.
Hier führt
die Koeffizienten-Erzeugungseinheit 705 ein Zick-Zack-Abtasten
startend bei dem Niedrig-Frequenz-Bereich
zu dem Hoch-Frequenz-Bereich hin, wie in 15B gezeigt,
durch, um die RL-Sequenz, die in 16A gezeigt
ist, zu dem Koeffizientenblock, der in 15A gezeigt
ist, zu konvertierten. Dann gibt die Koeffizienten-Erzeugungseinheit 705 den
so erzeugten Koeffizientenblock an die inverse Quantisierungseinheit 602 aus.
-
Wie
oben beschrieben, wird in dem arithmetischen Dekodierverfahren,
das durch die Variable-Länge-Dekodiereinheit 601 in
der Dekodiervorrichtung 500b gemäß der vorliegenden Erfindung
angewendet wird, eine Mehrzahl von Wahrscheinlichkeitstabellen gewechselt,
wenn ein arithmetisches Dekodieren auf den absoluten Werten von
Koeffizientenwerten L, die in dem Eingabe-Bitstrom enthalten sind, durchgeführt wird.
Wenn zu einer anderen Wahrscheinlichkeitstabelle gewechselt wird,
wird die Wahrscheinlichkeitstabelle, die zum Dekodieren des absoluten
Wertes des nächsten
Koeffizientenwertes L zu verwenden ist, in Abhängigkeit von der Tabellenzahl
der aktuellen Wahrscheinlichkeitstabelle und des absoluten Wertes
eines Koeffizientenwertes L bestimmt, der aus dem Dekodieren resultiert.
Die Wahrscheinlichkeitstabellen werden in diesem Fall nur in einer
Richtung gewechselt und, wenn der absolute Wert des Koeffizientenwertes
L, der aus dem Dekodieren resultiert, einen vorbestimmten Wert übersteigt,
wird die gleiche Wahrscheinlichkeitstabelle verwendet, um ein arithmetisches
Dekodieren auf allen nachfolgenden absoluten Werte durchzuführen.
-
Ausgehend
von dem Obigen ist es offensichtlich, dass die Verwendung des arithmetischen Dekodierverfahrens
gemäß der vorliegenden
Erfindung es möglich
macht, einen Bitstrom richtig zu Dekodieren, der unter Verwendung
des Kodierverfahrens mit variabler Länge gemäß der vorliegenden Erfindung
kodiert worden ist.
-
Die
Dekodiervorrichtung gemäß der vorliegenden
Erfindung wurde oben unter Verwendung der vorliegenden Ausführungsform
beschrieben, aber die vorliegende Erfindung ist nicht auf diese
beschränkt.
-
In
der vorliegenden Ausführungsform
wird beispielsweise eine Erläuterung
für den
Fall gegeben, dass ein Kodieren auf einem Bitstrom durchgeführt wird,
der unter Verwendung eines Intra-Bild-Kodierens erzeugt worden ist.
Aber die gleichen Wirkungen können
auch für
den Fall erreicht werden, in dem ein Dekodieren auf einem Bitstrom
durchgeführt
wird, der unter Verwendung eines Zwischenbild-Kodierens durch Durchführen einer
Bewegungskompensation und Anderes auf einem Eingabe-Bewegungsbild
erzeugt worden ist.
-
Des
Weiteren wird in der vorliegenden Erfindung eine Erläuterung
für den
Fall gegeben, dass ein Bitstrom vorhanden ist, in dem Bilddaten
kodiert sind, die in Pixelblöcke
dividiert sind, die jeweils eine Größe von 4 (horizontal) × 4 (vertikal)
Pixeln aufweisen. Der Pixelblock kann aber auch eine andere Größe aufweisen.
-
Des
Weiteren ist in der vorliegenden Ausführungsform ein Fall erläutert worden,
in dem vier Wahrscheinlichkeitstabellen verwendet und entsprechend
der Übergangstabelle,
die in 17 dargestellt ist, gewechselt
werden. Die Anzahl an Wahrscheinlichkeitstabellen und die Schwellwerte
für die Absolutwerte
der Koeffizientenwerte L können
aber auch andere Werte aufweisen, wenn Wahrscheinlichkeitstabellen
gewechselt werden, wie es in 17 dargestellt
ist.
-
Obwohl 15B verwendet wird, um ein Verfahren zum Durchführen eines
Abtastens innerhalb eines Koeffizientenblockes zu erläutern, kann auch
in der vorliegenden Ausführungsform
eine andere Abtastreihenfolge verwendet werden, solange sie die
gleiche ist wie die des Abtastverfahrens, das zum Zeitpunkt des
Kodierens verwendet worden ist.
-
Des
Weiteren wird ein Beispiel einer Binärtabelle unter Bezugnahme auf 21 beschrieben. Aber
auch eine andere Tabelle kann verwendet werden, solange sie die
gleiche ist wie die Binärtabelle, die
zum Zeitpunkt des Kodierens verwendet wird.
-
Des
Weiteren kann, obwohl eine Erläuterung in
der vorliegenden Ausführungsform
für den
Fall gegeben worden ist, dass die Arithmetische-Dekodierung-Einheit 701 ein
binäres
arithmetisches Dekodieren durchführt,
stattdessen eine Mehrfachwert-Arithmetische-Kodierung durchgeführt werden.
In einem derartigen Fall ist es möglich, die Mehrfachwert-Konvertierungseinheit 702 auszulassen.
-
Im
Folgenden werden andere Ausführungsformen
gemäß der vorliegenden
Erfindung weiter unter Bezugnahme auf die Diagramme beschrieben.
-
(Fünfte Ausführungsform)
-
22 ist
ein Blockdiagramm, das eine funktionale Struktur einer Kodiervorrichtung 100c zeigt, die
das Kodierverfahren mit variabler Länge gemäß der vorliegenden Erfindung
und das Bewegungsbild-Kodierverfahren, das dieses verwen det, anwendet.
In der fünften
Ausführungsform
wird die funktionale Struktur für
einen Fall eines Intra-Bild-Kodierens eines Eingabebildes unter
Verwendung des Bewegungsbild-Kodierverfahrens der vorliegenden Erfindung
beschrieben, wie es für
die Kodiervorrichtungen 100a und 100b illustriert
ist, die in der ersten und der dritten Ausführungsform beschrieben sind.
Auch hier kann jede Einheit, die die derartige Kodiervorrichtung 100c umfasst,
mit einer CPU, einem ROM zum vorherigen Speichern eines Programms
oder Daten, die durch die CPU ausgeführt werden, und einem Speicher
zum Bereitstellen eines Arbeitsspeichers beim Ausführen des
Programms sowie zum temporären Speichern
des Eingabebildes oder Ähnlichem
realisiert sein.
-
Die
Kodiervorrichtung 100c gemäß der fünften Ausführungsform weist, wie in 22 gezeigt, die
Block-Konvertierungseinheit 110, die Frequenztransformationseinheit 120,
die Quantisierungseinheit 130 und eine Variable-Länge-Kodierungseinheit 160 auf.
-
Hier
ist die Kodiervorrichtung 100a gemäß der ersten Ausführungsform
so strukturiert, dass Paare von RL unter Verwendung einer Mehrzahl
von Variable-Länge-Kodierungstabellen
(VLC-Tabellen) kodiert werden, und die Kodiervorrichtung 100b gemäß der dritten
Ausführungsform
ist so strukturiert, dass L und R unter Verwendung einer Mehrzahl
von Wahrscheinlichkeitstabellen getrennt arithmetisch kodiert werden.
Die Kodiervorrichtung 100c gemäß der fünften Ausführungsform ist jedoch so strukturiert,
dass L und R unter Verwendung einer Mehrzahl der VLC-Tabellen getrennt
kodiert werden, wodurch sich die Kodiervorrichtung 100c von
den Kodiervorrichtungen 100a und 100b unterscheidet.
Daher umfasst die Kodiervorrichtung 100c die Variable-Länge-Kodierungseinheit 160 anstelle
der Variable-Länge-Kodierungseinheiten 140 und 150 in
den Kodiervorrichtungen 100a und 100b. Für die anderen
Komponenten sind die Beschreibungen abgekürzt, da sie die gleichen sind
wie diejenigen, die für
die Kodiervorrichtungen 100a und 100b beschrieben
worden sind. Die Variable-Länge-Kodierungseinheit 160 wird detailliert
beschrieben.
-
Die
Variable-Länge-Kodierungseinheit 160 erzeugt
eine L-Sequenz und eine R-Sequenz
basierend auf den Frequenzkoeffizienten, die durch die Quantisierungseinheit 130 quantisiert
worden sind, und erzeugt dann einen Bitstrom von absolu ten Werten
von Koeffizienten |L| oder Ähnliches
unter Verwendung eines eindimensionalen VLC-Wechselverfahrens.
-
23 ist
ein Blockdiagramm, das im Detail eine funktionale Struktur der Variable-Länge-Kodierungseinheit 160 zeigt.
-
Die
Variable-Länge-Kodierungseinheit 160 weist,
wie in 23 gezeigt, eine RL-Sequenz-Erzeugungseinheit 161,
eine Kodierungs-Zuordnungseinheit 163 und eine Tabellen-Speichereinheit 164 auf.
-
Die
RL-Sequenz-Erzeugungseinheit 161 erzeugt die R-Sequenz
und die L-Sequenz
getrennt durch Durchführen
eines Zick-Zack-Abtastens auf den quantisierten Frequenzkoeffizienten
(im Folgenden einfach mit „Koeffizienten" bezeichnet) startend bei
dem Niedrig-Frequenz-Bereich zu dem Hoch-Frequenz-Bereich hin.
-
Genauer
ausgedrückt
führt,
wenn die Koeffizienten in dem in 3A gezeigten
Block eingegeben werden, die RL-Sequenz-Erzeugungseinheit 161 ein
Zick- Zack-Abtasten,
wie in 3B gezeigt, durch. Die RL-Sequenz-Erzeugungseinheit 161 erhält dann
zuerst für
die L-Sequenz m, das die Anzahl von Nicht-Null-Koeffizientenwerten
L anzeigt, eine Sequenz von absoluten Werten von derartigen Koeffizienten
|L| und eine Sequenz von Vorzeichen für derartige Koeffizienten,
wie es in 24A gezeigt ist. Dies ist so,
da L nicht von R abhängt
und unabhängig erhalten
werden kann, während
R von L abhängt.
Danach erzeugt die RL-Sequenz-Erzeugungseinheit 161 eine
Sequenz von R (R-Sequenz),
wie sie in 24B gezeigt ist.
-
Die
Tabellen-Speichereinheit 164 speichert eine Vielzahl von
VLC-Tabellen (beispielsweise 8) von 1641a~1641g zum
Durchführen
eines Variable-Länge-Kodierens auf jedem
absoluten Wert der Koeffizienten |L| in der L-Sequenz, eine Vielzahl
von Schwellwerten für
den absoluten Wert des Koeffizienten |L| und eine Schwellwerttabelle 1642 zum
adaptiven Wechseln zwischen den VLC-Tabellen 1641a~641g gemäß dem absoluten
Wert des Koeffizienten |L|.
-
25 ist
ein Diagramm, das strukturelle Beispiele für die VLC-Tabellen 1641a 1641g zeigt. Jede
der VLC-Tabellen 1641a~1641g korreliert absolute
Werte der Koeffizienten |L| und Binärkodierungen, was in einer
einzelnen Tabelle in dem Diagramm gezeigt ist.
-
Hier
wird eine kleine Kodierungszahl dem absoluten Wert des Koeffizienten
|L| zugeordnet, wenn eine Erscheinungsfrequenz (engl. apparition frequency)
des absoluten Wertes des Koeffizienten |L| größer wird, und im Allgemeinen
wird die Erscheinungsfrequenz umso größer, je kleiner der absolute Wert
des Koeffizienten |L| ist. Dies ist so, da sich der größte Wert
des absoluten Wertes des Koeffizienten |L|, ob in einem Video oder
auf einem Bildschirm, verteilt, so dass die Erscheinungsfrequenz
des gleichen Wertes niedrig ist, während der kleinste Wert des
absoluten Wertes des Koeffizienten |L|, nämlich eine Hoch-Frequenz-Komponente, eine
starke Tendenz aufweist, „1" und „2" anzuzeigen, wodurch
die Erscheinungsfrequenz des gleichen Wertes größer wird. Auf der anderen Seite
macht die Verwendung von nur dem absoluten Wert des Koeffizienten
|L|, der Binärkodierung
und der VLC-Tabelle, die wechselseitig korreliert sind, die Kodierungslänge sehr lang,
wenn der absolute Wert des Koeffizienten |L| größer wird. Daher werden die
VLC-Tabellen 1641a~1641g, die in Abhängigkeit
von dem absoluten Wert des Koeffizienten |L| anzuwenden sind, im Vorhinein
bereitgestellt, so dass die Kodierungslänge nicht länger wird, selbst wenn der
absolute Wert des Koeffizienten |L| größer wird.
-
Jede
der VLC-Tabellen 1641a~1641g weist eine andere Änderungsrate
bezüglich
einer Kodierungslänge
für Koeffizienten
auf: Eine Kodierungslänge
für den
kleinsten Wert des Koeffizienten wird in einer ansteigenden Reihenfolge
der Zahl k, die zu jeder der Tabellen zugeordnet wird, länger und
eine Kodierungslänge
für den
größten Wert
des Koeffizienten wird in der ansteigenden Reihenfolge der Zahl k
kürzer.
-
Die
VLC-Tabelle 1641a ist, konkreter ausgedrückt, eine
Tabelle, in der eine Kodierungslänge
die Kürzeste
ist, wenn der absolute Wert des Koeffizienten |L| klein ist, und
eine Kodierungslänge
die Längste
ist, wenn der absolute Wert des Koeffizienten |L| groß ist. Denn
die VLC-Tabelle 1641a von den VLC-Tabellen 1641a~1641g ist
eine Tabelle, in der die Änderungsrate
bezüglich
einer Kodie rungslänge für absolute
Werte der Koeffizienten |L| die Größte ist, und sie ist für den Fall
geeignet, in dem der absolute Wert des Koeffizienten |L| klein ist
(beispielsweise „1"~„3").
-
Die
Variable-Länge-Tabelle 1641g ist
eine Tabelle, in der eine Kodierungslänge die Längste ist, wenn der absolute
Wert des Koeffizienten |L| groß ist, und
eine Kodierungslänge
die Kürzeste
ist, wenn der absolute Wert des Koeffizienten |L| groß ist. Und zwar
ist die VLC-Tabelle 1641g von den VLC-Tabellen 1641a 1641g eine
Tabelle, in der die Änderungsrate
bezüglich
einer Kodierungslänge
für absolute Werte
der Koeffizienten |L| die Kleinste ist, und sie ist für den Fall
geeignet, in dem der absolute Wert des Koeffizienten |L| groß ist (beispielsweise „193").
-
Die
VLC-Tabellen 1641b~1641f sind Tabellen, in denen
die Kodierungslänge
allmählich
länger wird,
wenn der absolute Wert des Koeffizienten |L| kleiner wird, und allmählich kürzer wird,
wenn der absolute Wert des Koeffizienten |L| größer wird, in einer ansteigenden
Reihenfolge von 1641b bis 1641f. Und zwar sind
die VLC-Tabellen 1641b bis 1641f Tabellen, in
denen die Änderungsrate
bezüglich
der Kodierungslänge
für absolute
Werte der Koeffizienten |L| allmählich
kleiner wird. Die VLC-Tabelle 1641b ist geeignet, verwendet
zu werden, wenn der absolute Wert des Koeffizienten |L| beispielsweise
zwischen „4" und „6" liegt, während die
VLC-Tabelle 1641c geeignet ist, verwendet zu werden, wenn
der absolute Wert des Koeffizienten |L| beispielsweise zwischen „7" und „12" liegt.
-
Es
ist daher möglich,
die Kodierungseffizienz zu verbessern, da die Variable-Länge-Kodierung mit der Kodierungslänge die,
auf dem Koeffizienten basiert, an jede Tabelle angepasst werden
kann. Mit anderen Worten ist es möglich, die Kodierungslänge merklich
zu kürzen,
indem zwischen den Tabellen in Abhängigkeit von dem Koeffizienten
gewechselt wird, so dass der Koeffizient zu der Variable-Länge-Kodierung
kodiert werden kann, deren Kodierungslänge kürzer bei einer Tabelle ist
als bei der anderen Tabelle, wenn der Koeffizient klein ist, und
der Koeffizient zu der Variable-Länge-Kodierung kodiert werden kann,
deren Kodierungslänge
kürzer
ist bei einer Tabelle als bei der anderen, wenn der Koeffizient
groß ist.
Des Weiteren kann die Verbesserung einer Kodierungseffizienz realisiert
werden, da ein Bereich, in dem die Kodierungslänge kürzer wird, zu jeder der Tabellen
zugeordnet werden kann. Das Kodieren verwendet kein arithmetisches
Kodieren, aber ein VLC-Verfahren, so dass ein kompliziertes Verarbeiten,
das für
ein arithmetisches Kodieren benötigt wird,
unnötig
ist, und das Variable-Länge-Kodieren wird
leicht durch einen Verweis auf eine Tabelle durchgeführt, wenn
einmal die Tabelle zum Kodieren bestimmt worden ist.
-
26 ist
ein Diagramm, das ein strukturelles Beispiel der Schwellwert-Tabelle 1642 zeigt.
-
Die
Schwellwert-Tabelle 1642 wird im Voraus gemäß den Charakteristika
der VLC-Tabellen 1641a~1641g erstellt und hält eine
Vielzahl von Schwellwerten, die zum Wechseln zwischen den VLC-Tabellen 1641a~1641f zu
verwenden sind. Beispielsweise werden die Schwellwerte jeweils,
wie folgt, gesetzt: „4" zum Wechseln zwischen
den VLC-Tabellen 1641a und 1641b, „7" für das Wechseln
zwischen den VLC-Tabellen 1641b und 1641c, ...
und „193" für das Wechseln
zwischen den VLC-Tabellen 1641f und 1641g. Daher
kann der Zeitpunkt zum Wechseln zwischen den Tabellen leicht vorhergesagt
werden, so dass es möglich
ist, zu der optimalen Tabelle entsprechend dem absoluten Wert des Koeffizienten
|L| zu wechseln.
-
Die
Kodierungs-Zuordnungseinheit 163 führt ein Variable-Länge-Kodieren
auf den absoluten Werten der Koeffizienten |L| durch, die von der
RL-Sequenz-Erzeugungseinheit 161 ausgegeben
worden sind, getrennt von der R-Sequenz, unter Verwendung der VLC-Tabellen 1641a~1641g sowie
der Schwellwert-Tabelle 1642,
die in der Tabellen-Speichereinheit 164 gespeichert sind,
und ordnet diesen dann Binärkodierungen
zu. Kurz ausgedrückt
eindimensionalisiert die Kodierungs-Zuordnungseinheit 163 die absoluten
Werte der Koeffizienten |L|.
-
Das
Folgende beschreibt eine Kodieroperation, die durch die Kodiervorrichtung 100c durchgeführt wird.
Die Operationen, die durch die Block-Konvertierungseinheit 101 ~
die Quantisierungseinheit 130 durchgeführt werden, werden verkürzt beschrieben,
da sie die gleichen sind, wie diejenigen, die für die Kodiervorrichtungen 100a und 100b beschrieben worden
sind. Die Variable- Länge-Kodierung,
die durch die Variable-Länge-Kodierungseinheit 160 durchgeführt wird,
wird im Detail beschrieben.
-
Die
Frequenzkoeffizienten, die durch die Quantisierungseinheit 130 quantisiert
worden sind, werden in die RL-Sequenz-Erzeugungseinheit 161 in der
Kodiervorrichtung 160 mit variabler Länge eingegeben.
-
Die
RL-Sequenz-Erzeugungseinheit 161 eindimensionalisiert,
wie in 3B gezeigt, zuerst die quantisierten
Frequenzkoeffizienten in dem Block durch Durchführen eines Zick-Zack-Abtastens
auf diesen startend bei dem Bereich von Gleichstromkomponenten in
Richtung des Bereichs von Hoch-Frequenz-Komponenten. Die RL-Sequenz-Erzeugungseinheit 161 erzeugt
dann getrennt eine Sequenz von mehreren „L", die jeweils einen Nicht-Null-Koeffizienten
anzeigen (im Weiteren mit „L-Sequenz" bezeichnet), und
eine Sequenz von mehreren „R", die jeweils die
Anzahl von folgenden Null-Koeffizienten anzeigen (im Folgenden mit „R-Sequenz" bezeichnet). Die 24A und 24B zeigen
Beispiele der erzeugten L-Sequenz und R-Sequenz. Die L-Sequenz kann
in die Anzahl von Koeffizienten m, absolute Werte von Koeffizienten
|L| und Vorzeichen der Koeffizienten dividiert werden. Bezug nehmend
auf die Vorzeichen der Koeffizienten zeigt „0" an, dass der Koeffizient positiv ist,
während „1" anzeigt, dass der
Koeffizient negativ ist.
-
Hier
nähern
sich der Koeffizient der L-Sequenz „1" durch Abtasten von dem Niedrig-Frequenz-Bereich
in Richtung des Hoch-Frequenz-Bereichs an, da der Koeffizient der
Hoch-Frequenz-Komponente im Allgemeinen dazu tendiert, „0" zu werden.
-
Die
Kodierungs-Zuordnungseinheit 163 kodiert jeden L-Wert in
der L-Sequenz, die durch die RL-Sequenz-Erzeugungseinheit 161 in
einer Reihenfolge erzeugt worden ist, die umgekehrt zu der Reihenfolge
ist, die zum Zick-Zack-Abtasten verwendet wird, dass heißt, startend
von den hohen Frequenzkoeffizienten. Und zwar erhält die Kodierungs-Zuordnungseinheit 163 der
Reihe nach Huffman-Kodierungen
(Variable-Länge-Kodierungen)
entsprechend den absoluten Werten der Koeffizienten |L| startend von
dem Ende der L-Sequenz unter Verwendung der VLC-Tabellen 1641a~1641g.
-
Der
Grund für
ein Kodieren des L-Wertes in einer Reihenfolge, die zu der Reihenfolge
umgekehrt ist, die für
ein Zick-Zack-Abtasten verwendet worden ist, ist, dass Nicht-Null-Koeffizienten
in dem Hoch-Frequenz-Bereich auf einem Rand des Koeffizienten „1" konvergieren, und
es ist leicht, die erste Tabelle zum Kodieren zu bestimmen, die
VLC-Tabellen 1641a~1641g zu erzeugen und die Schwellwerte zu
bestimmen.
-
Die
Kodierungs-Zuordnungseinheit 163 ordnet die Variable-Länge-Kodierungen
mehreren „L" in der L-Sequenz
und mehreren „R" in der R-Sequenz unter
Verwendung verschiedenen Tabellen zu, die in der Tabellen-Speichereinheit 164 gespeichert
sind. Die Kodierungs-Zuordnungseinheit 163 ordnet auch eine
Variable-Länge-Kodierung
der Anzahl von Koeffizienten m zu, aber hier wird ein Verarbeiten
beschrieben, bei dem die Variable-Länge-Kodierungen den absoluten
Werten der Koeffizienten |L| zugeordnet werden.
-
27 ist ein Flussdiagramm, das eine Verarbeitung
zeigt, bei dem die Variable-Länge-Kodierungen
durch die Kodierungs-Zuordnungseinheit 163 zugeordnet werden.
-
Die
Kodierungs-Zuordnungseinheit 163 setzt die Anzahl von Koeffizienten
m, die von der RL-Sequenz-Erzeugungseinheit 161 ausgegeben
worden ist, als einen Start zum Kodieren der Koeffizienten (absolute
Werte der Koeffizienten |L|) in dem Block (S101). Dann setzt die
Kodierungs-Zuordnungseinheit 163 „0" für
die Tabellenzahl k als einen initialen Wert der VLC-Tabelle, die
zum Verweisen zu verwenden ist (S102), verweist auf die Schwellwert-Tabelle 1642 und
setzt einen Schwellwert auf „4" (S103).
-
Wenn
das Setzen der Anzahl von Koeffizienten m, der referentiellen VLC-Tabelle
(VLC-Tabelle 1641a in diesem Fall) und des Schwellwertes
abgeschlossen ist, liest die Kodierungs-Zuordnungseinheit 163 den
absoluten Wert des Koeffizienten |L| aus, der durch die RL-Sequenz-Erzeugungseinheit 161 ausgegeben
wird, startend von dem letzten (S104) und kodiert den ausgelesenen
absoluten Wert des Koeffizienten |L| zu einer Variable-Länge-Kodierung
unter Verwendung der VLC-Tabelle, bei der die Zahl im Voraus gesetzt
worden ist (S105). Wenn dann das Kodieren beendet ist, speichert
die Kodierungs- Zuordnungseinheit 163 die
Binärkodierung, die
durch das Kodieren erhalten worden ist, in einem Puffer (beispielsweise
FILO-Puffer), der in dem Diagramm nicht dargestellt ist (S106),
dekrementiert die Anzahl von Koeffizienten m um „1" (S107) und entscheidet, ob die dekrementierte
Zahl m eine „0" anzeigt oder nicht,
nämlich
ob alle Koeffizienten, die in der L-Sequenz enthalten sind, kodiert
sind oder nicht (S108).
-
Wenn
die Zahl von Koeffizienten m nicht „0" anzeigt (Nein in S108), wird entschieden,
ob der absolute Wert des unmittelbar vorhergehenden Koeffizienten
den Schwellwert überschritten
hat oder nicht (S109). Wenn er den Schwellwert nicht überschritten hat
(Nein in S109), liest die Kodierungs-Zuordnungseinheit 163 den
absoluten des nächsten
Koeffizienten |L| startend von dem letzten (S104) aus und führt die
Schritte S105~S108 aus oder Ähnliches.
Und zwar kodiert die Kodierungs-Zuordnungseinheit 163 den
absoluten Wert des nächsten
Koeffizienten unter Verwendung der gleichen VLC-Tabelle, die für den vorherigen
Koeffizienten verwendet worden ist.
-
Wenn
der absolute Wert des unmittelbar vorhergehenden Koeffizienten |L|
den Schwellwert überschritten
hat (Nein in S109), inkrementiert die Kodierungs-Zuordnungseinheit 163 die Tabellenzahl
k um „1" (S110). Daher wird
beim Kodieren des absoluten Wertes des nächsten Koeffizienten |L| auf
die VLC-Tabelle mit niedriger Änderungsrate
bezüglich der
Kodierungslänge
verwiesen, die zum Kodieren des absoluten Wertes des Koeffizienten
|L| anwendbar ist, dessen Kodierungslänge lang ist (beispielsweise
wird auf die VLC-Tabelle 1641b mit k = 1 verwiesen, wenn
die vorherige VLC-Tabelle 1641a mit k = 0 ist).
-
Wenn
das Inkrementieren für
die Tabellenzahl k beendet ist, weist die Kodierungs-Zuordnungseinheit 163 auf
die Schwellwert-Tabelle 1642 und aktualisiert sie auf den
nächsten
Schwellwert (beispielsweise „7", wenn der vorherige
Schwellwert „4" ist) (S111). Daher
kann nur zu der nächsten
VLC-Tabelle mit einer niedrigen Änderungsrate
bezüglich
einer Kodierungslänge
gewechselt werden, die zum Kodieren des absoluten Wertes dieses
Koeffizienten |L| anwendbar ist, dessen Kodierungslänge lang
ist, wenn der absolute Wert des Koeffizienten |L| den neuen Schwellwert überschritten
hat.
-
Genauer
gesagt wird der Verweis, wenn der absolute Wert des vorherigen Koeffizienten
|L| den Schwellwert „4" überschritten hat, der dem Wechseln zwischen
dem VLC-Tabellen 1641a mit der Tabellenzahl „0" und 1641b mit
der Tabellenzahl „1" zugeordnet worden
ist, von der VLC-Tabelle 1641a zu der VLC-Tabelle 1641b zum
Kodieren des absoluten Wertes des nächsten Koeffizienten gewechselt,
und der Schwellwert wird auf „7" gesetzt, wie in 28 gezeigt.
-
Gleichermaßen wird,
wenn der absolute Wert des vorherigen Koeffizienten |L| den Schwellwert „7"~„193" zwischen der VLC-Tabelle 1641b mit der
Tabellenzahl „1" und der VLC-Tabelle 1641g mit der
Tabellenzahl „6" überschritten hat, der Verweis für ein Kodieren
des absoluten Wertes des nächsten Koeffizienten
|L| sequentiell von der VLC-Tabelle 1641b mit der Tabellenzahl „1" zu der VLC-Tabelle 1641c mit
der Tabellenzahl „2", ... und zu der
VLC-Tabelle 1641g gewechselt. Dies ist in 28 gezeigt.
-
Hier
ist eine Richtung eines Wechsels zwischen den Tabellen eindirektional
und geht nicht zurück.
Daher kann das häufige
Wechseln der Tabellen in Abhängigkeit
von dem Koeffizienten verhindert werden, wodurch die Anzahl von
Wechseln zwischen den Tabellen reduziert werden kann. Beispielsweise wird,
da der Arbeitsbereich in dem Speicher bezüglich des Platzes begrenzt
ist, nur die zu verwendende Tabelle gespeichert. In diesem Fall
dauert es eine Weile, ein Kodieren des nächsten Koeffizienten zu starten,
da es, jedes Mal wenn die Tabelle gewechselt wird, eine Weile dauert,
die nächste
Tabelle aus dem ROM auszulesen und in dem Arbeitsbereich zu expandieren.
Ein derartiges eindirektionales Wechseln zwischen den Tabellen bewirkt
ein Begrenzen der Anzahl von Wechseln zwischen den Tabellen und verkürzt die
Gesamtzeit, die für
ein Kodieren des nächsten
Koeffizienten notwendig ist.
-
Wenn
das Inkrementieren der Tabellenzahl und das Aktualisieren des Schwellwertes
als solche beendet sind, liest die Kodierungs-Zuordnungseinheit 163 den
absoluten Wert des nächsten
Koeffizienten |L| startend von dem Letzten aus (S104) und führt die
Schritte S105~S108 aus oder Ähnliches.
Und zwar wird das Kodieren unter Verwendung der VLC-Tabelle durchgeführt, die
für den
Fall geeignet ist, in dem der absolute Wert des Koeffizienten |L| größer ist
als der vorherige.
-
Ein
derartiges Verarbeiten wird wiederholend ausgeführt, bis die Anzahl von Koeffizienten
m „0" anzeigt, wobei dies
der Zeitpunkt ist, zu dem das Kodieren der absoluten Werte der Koeffizienten
|L| in dem aktuellen Block endet.
-
Um
es konkreter auszudrücken,
kodiert, wenn die Sequenz der absoluten Werte der Koeffizienten
|L| in dem Block „1", „1", „2", „3", „4", „12", „2", „3", „31", „22", „5", „9" und „38" startend von dem Ende
der Sequenz beträgt,
die Kodierungs-Zuordnungseinheit 163 diese
jeweils zu Binärkodierungen „1", „1", „010", „011", „00100" und „0001100" in dieser Reihenfolge
zuerst unter Verwendung der VLC-Tabelle 1641a.
Die Kodierungs-Zuordnungseinheit 163 wechselt dann die
Tabelle für
die Kodierung zu der VLC-Tabelle 1641b mit der Tabellenzahl
k = 1, da der Schwellwert „4" überschritten wird, wenn der
absolute Wert des Koeffizienten |L|, der „12" anzeigt, kodiert wird.
-
Die
Kodierungs-Zuordnungseinheit 163 kodiert dann jeweils den
absoluten Wert des nächsten Koeffizienten
|L|, der „2", „3" und „31" anzeigt, zu Binärkodierungen „11", „0100" und „0000100000" unter Verwendung
der VLC-Tabelle 1641b, zu der gewechselt worden ist. Die
Kodierungs-Zuordnungseinheit 163 wechselt dann die Tabelle
für die
Kodierung zu der VLC-Tabelle 1641c mit der Tabellenzahl
k = 2, da der Schwellwert „7" beim Kodieren des
absoluten Wertes des Koeffizienten |L|, der „31" anzeigt, überschritten wird.
-
Des
Weiteren kodiert die Kodierungs-Zuordnungseinheit 163 den
absoluten Wert des nächsten Koeffizienten
zu einer Binärkodierung „0011001" unter Verwendung
der VLC-Tabelle 1641c, zu der gewechselt worden ist. Die
Kodierungs-Zuordnungseinheit 163 wechselt
dann die Tabelle für
die Kodierung zu der VLC-Tabelle 1641d mit
der Tabellenzahl k = 3, da der Schwellwert „13" beim Kodieren des absoluten Wertes
des Koeffizienten |L|, der „22" anzeigt, überschritten
wird.
-
Die
Kodierungs-Zuordnungseinheit 163 kodiert dann jeweils die
absoluten Werte der folgenden Koeffizienten |L|, die „5", „9" und „38" anzeigen, zu Binärkodierungen „1100", „010000" und „00101101" unter Verwendung
der VLC-Tabelle 1641d, zu der gewechselt worden ist.
-
Dementsprechend
wird die Binärkodierung „1101001100100000110011010000001000000011001110001000000101101" in dem Puffer gespeichert.
-
Die
Anzahl von Koeffizienten in der L-Sequenz, m, die Binärkodierung
der absoluten Werte der Koeffizienten |L|, die Vorzeichen der Koeffizienten
und die Binärkodierungen
der R-Werte in der R-Sequenz, die kodiert werden, werden auch in
dem Puffer gespeichert und zu der Dekodiervorrichtung mittels eines
Aufzeichnungsmediums, wie beispielsweise einer CD, und eines Übertragungsmediums, wie
beispielsweise eines Internets, Satellitenrundfunks oder Ähnliches übertragen.
-
Hier
sind, wenn angenommen wird, dass die absoluten Werte der Koeffizienten
in der L-Sequenz „„1", „1", „2", „3", „4", „12", „2", „3", „31", „22", „5", „9" und „38" unter Verwendung
nur der VLC-Tabelle 1641a kodiert sind, die Binärkodierungen „1", „1", „010", „011", „00100", „0001100", "010", „011", „010", 011", „000011111", „000010110", „00101", „001001", und „00000100110", deren die Kodierungslänge 64 bit
beträgt.
-
Im
Gegensatz dazu ist es durch Verwenden des Kodierverfahrens gemäß der fünften Ausführungsform
möglich,
eine Kodierungseffizienz zu verbessern, selbst wenn der größte Wert
des absoluten Wertes des Koeffizienten |L| in dem Block relativ
klein ist und der absolute Wert des Koeffizienten |L| nicht allmählich ansteigt,
da die Kodierungslänge
61 bit beträgt.
Dies ist zum großen
Teil darauf zurückzuführen, dass,
wenn der absolute Wert des Koeffizienten |L| beispielsweise „22" und „38" anzeigt, 9 bit für „000010110" und 11 bit für „00000100110" benötigt werden,
wobei nur die VLC-Tabelle 1641a für das Kodieren verwendet wird,
während
nur 7 bit für „0011001" und 8 bit für „00101101" bei Verwendung des
vorliegenden Verfahrens benötigt
werden. Es ist daher möglich,
die Kodierungseffizienz merklich zu verbessern, wenn der größte Wert
des Koeffizienten |L| in dem normalen Block relativ groß ist und
der absolute Wert des Koeffizienten |L| allmählich ansteigt.
-
In
der fünften
Ausführungsform
wird, wenn der absolute Wert des unmittelbar vorhergehenden Koeffizienten
|L| den Schwellwert überschritten
hat (Ja in S109), die Tabellenzahl k um „1" inkrementiert (S110) und das Kodieren
wird unter Verwendung der VLC-Tabelle mit der nächsten Zahl durchgeführt (siehe
Bezugnahme auf 28). Es kann aber auch zu der
VLC-Tabelle gesprungen werden, die an den absoluten Wert des Koeffizienten
|L| angepasst ist, in Abhängigkeit
von dem absoluten Wert des unmittelbar vorhergehenden Koeffizienten
|L|, der den Schwellwert überschritten
hat. Und zwar gibt es beispielsweise eine hohe Wahrscheinlichkeit,
wenn der absolute Wert des unmittelbar vorhergehenden Koeffizienten
|L|, der unter Verweis auf die Tabelle mit der Zahl k = 1 zu kodieren
ist, „20" ist, dass der absolute Wert
des nächsten
Koeffizienten |L| größer ist
als „20", so dass die Tabelle
mit der Zahl k = 3 als ein Verweis für eine Kodierung des absoluten
Wertes des nächsten
Koeffizienten |L| verwendet werden kann. In diesem Fall kann der
Schwellwert auf den Wert gesetzt werden, der zu der VLC-Tabelle
korrespondiert (beispielsweise 25).
-
Es
wird erläutert,
dass acht VLC-Tabellen verwendet werden. Aber die Anzahl von VLC-Tabellen
kann zwischen 2~7 liegen oder größer als
8 sein, wobei eine Mehrzahl von Schwellwerten verwendet wird, und
die VLC-Tabelle kann jedes Mal gewechselt werden, wenn jeder Schwellwert überschritten
wird.
-
In
der fünften
Ausführungsform
werden der absolute Wert und das Vorzeichen des Koeffizienten getrennt
kodiert und jede VLC-Tabelle für
absolute Werte von Koeffizienten enthält keine Vorzeichen (absolute
Werte). Die Koeffizienten können
jedoch aber auch mit den Vorzeichen kodiert werden. In diesem Fall
können
die Binärkodierungen
Vorzeichen enthalten. Beispielsweise kann ein Bit für das Vorzeichen
zu dem LSB-Bit für
die Kodierung mit variabler Länge
hinzugefügt
werden.
-
In
der fünften
Ausführungsform
wird der Fall beschrieben, bei dem ein Bild durch ein Intra-Bild-Kodieren
kodiert wird. Die gleichen Wirkungen können aber auch für den Fall
erreicht werden, bei dem ein Bild durch ein Zwischenbild-Kodieren
durch Durchführen
einer Bewegungskompensation oder Anderes auf einem Eingabe-Bewegungsbild
unter Verwendung des Verfahrens gemäß der vorliegenden Erfindung
kodiert wird.
-
Auch
die fünfte
Ausführungsform
beschreibt den Fall eines Dividierens des Eingabebildes in Blöcke, die
jeweils eine Größe von 4
(horizontal) × 4 (vertikal)
Pixeln aufweisen. Die Größe des Blockes kann
jedoch auch eine andere sein.
-
Die
fünfte
Ausführungsform
beschreibt ein Verfahren zum Abtasten eines Blockes unter Bezugnahme
auf 3B. Es kann aber auch ein anderes Abtastverfahren
angewendet werden, solange das Abtasten von dem Niedrig-Frequenz-Bereich in Richtung
des Hoch-Frequenz-Bereichs durchgeführt wird.
-
Ein
Beispiel der VLC-Tabelle ist unter Bezugnahme auf 25 beschrieben.
Diese Tabelle kann aber auch eine andere Tabelle sein.
-
Die
fünfte
Ausführungsform
beschreibt den Fall eines Hinzufügens
der Anzahl von L-Werten zu dem Anfang der L-Sequenz. Das EOB kann
aber auch an das Ende der L-Sequenz angefügt werden.
-
(Sechste Ausführungsform)
-
30 ist ein Blockdiagramm, das eine funktionale
Struktur einer Dekodiervorrichtung zeigt, die das Dekodierverfahren
mit variabler Länge
und das Bewegungsbild-Dekodierverfahren, das dieses verwendet, gemäß der Ausführungsform
der vorliegenden Erfindung anwendet. Hier soll der Bitstrom, der unter
Verwendung des Kodierverfahrens mit variabler Länge der vorliegenden Erfindung
erzeugt worden ist, das in der fünften
Ausführungsform
beschrieben worden ist, verwendet werden.
-
Wie
in 30 gezeigt, weist die Dekodiervorrichtung 500c eine
Variable-Länge-Dekodiereinheit 560,
eine inverse Quantisierungseinheit 520, eine inverse Frequenztransformationseinheit 530 und
einen Bildspeicher 540 auf. Jede Einheit, die eine derartige
Dekodiervorrichtung 500c aufweist, kann mit einer CPU,
einem ROM zum vorherigen Speichern eines Programms oder Daten, die
durch die CPU ausgeführt
werden, und einen Speicher zum Bereitstellen eines Arbeitsbereichs,
wenn das Programm ausgeführt
wird, sowie zum temporären
Speichern eines Eingabe-Bitstrom oder Ähnliches realisiert sein. Bezüglich der
inversen Quantisierungseinheit 520, der inversen Frequenztransformationseinheit 530 und des
Bildspeichers 540 sind die Strukturen die gleichen wie
diejenigen, die für
die Kodiervorrichtungen 500a und 500b beschrieben
worden sind, so dass die Beschreibungen verkürzt sind und die Struktur der
Variable-Länge-Dekodiereinheit 560 im Detail
erläutert
wird.
-
Die
Variable-Länge-Dekodiereinheit 560 weist
eine Kodierungs-Konvertierungseinheit 561, eine
Tabellen-Speichereinheit 562 und eine Koeffizienten-Erzeugungseinheit 564 auf.
-
Die
Tabellen-Speichereinheit 562 speichert im Voraus eine Vielzahl
von VLC-Tabellen 5621a~5621g,
die Variable-Länge-Kodierungen
mit absoluten Werten eines Koeffizienten |L| korrelieren, sowie
eine Schwellwert-Tabelle 5622 oder Ähnliches. Die VLC-Tabellen 5621a~5621g sind
auf die gleiche Art konstruiert wie die VLC-Tabellen 1641a~1641e, die
in 25 gezeigt sind, und die Schwellwert-Tabelle 5622 ist
auf die gleiche Art konstruiert wie die Schwellwert-Tabelle 1642,
die in 26 gezeigt ist.
-
Die
Kodierungs-Konvertierungseinheit 561 führt eine Konvertierung auf
einem eingegebenen Bitstrom durch, so dass die Variable-Länge-Kodierungen
zu der Anzahl von Koeffizienten in einer L-Sequenz m, den absoluten
Werten der Koeffizienten |L| und den R-Werten in der R-Sequenz unter
Verwendung der in der Tabellen-Speichereinheit 562 gespeicherten
Tabellen konvertiert werden (die VLC-Tabellen 5621a~5621g und
die Schwellwert-Tabelle 5622 und Ähnliches). Die VLC-Tabellen 5621a~5621g werden
für die
Konvertierung der absoluten Werten der Koeffizienten |L| verwendet.
-
Die
Koeffizienten-Erzeugungseinheit 564 konvertiert die RL-Werte
in Koeffizienten basierend auf die eingegebene L-Sequenz und R-Sequenz
und zweidimensionalisiert diese unter Verwendung eines vorbestimmten
Abtastverfahrens. Wenn die RL-Sequenz zu Koeffizienten konvertiert
wird, wird ein Koeffizient „0" für die Zahl
erzeugt, die durch R angezeigt ist, basierend auf eine vorbestimmte
Abtastreihenfolge und dann wird der Koeffizient, der durch L angezeigt
ist, erzeugt. Wenn hier angenommen wird, dass die Koeffizienten
zick-zack-artig startend bei dem Niedrig-Frequenz-Bereich in Richtung
des Hoch-Frequenz-Bereichs abgetastet werden, wird die RL-Sequenz
zu einem Koeffizientenblock konvertiert, der in 11 gezeigt
ist. Der erzeugte Koeffizientenblock wird in die inverse Quantisierungseinheit 520 eingegeben.
-
Im
Folgenden werden die Kodieroperationen an jeder Einheit in der Variable-Länge-Dekodiereinheit 560 beschrieben.
-
Sie
werden hier unter der Annahme beschrieben, dass die Kodierungen
des Binärkodierung-Eingabe-Bitstroms,
der durch die Kodierungs-Konvertierungseinheit 561 eingegeben
wird, in einer Reihenfolge startend von dem Kopf „1", „1", „101", „011", „011", „00100", „0001100", „11", „0100", „0000100000", „0011001", „1100", „010000" und „00101101" sind.
-
Die
Kodierungs-Konvertierungseinheit 561 dekodiert am Anfang
des Dekodierens der Variable-Länge-Kodierungen
die Anzahl von Koeffizienten m, die von der Kodiervorrichtung 100c ausgegeben worden
ist, und setzt die dekodierte Anzahl von Koeffizienten m. Die Kodierungs-Konvertierungseinheit 561 setzt
dann eine Tabellenzahl k auf „0" als einen initialen
Wert eines Verweises auf eine VLC-Tabelle. Dann verweist die Kodierungs-Zuordnungseinheit 163 auf
die Schwellwert-Tabelle 5622 und setzt einen Schwellwert
auf „4" (S103). Nachdem
die Anzahl von Koeffizienten m, die Verweis-VLC-Tabelle (VLC-Tabelle 5621a in
diesem Fall) und der Schwellwert gesetzt sind, liest die Kodierungs-Konvertierungseinheit 561 sequentiell
die absoluten Werte der Koeffizienten |L| von dem Kopf (nämlich von
denen in dem Hoch-Frequenz-Bereich) in einer Reihenfolge aus, in der
sie von der Kodiervorrichtung 100c ausgegeben worden sind,
und führt
eine Dekodierung mit variabler Länge
auf den ausgelesenen Variable-Länge-Kodierungen
zu den absoluten Werten der Koeffizienten |L| unter Verwendung der
VLC-Tabelle mit der gesetzten Zahl durch. Nach dem Dekodieren jeder
Variable-Länge-Kodierung
speichert die Kodierungs-Konvertierungseinheit 561 den
absoluten Wert des Koeffizienten |L|, der bei dem Dekodieren erhalten
worden ist, in einen Puffer, der in dem Diagramm nicht gezeigt ist
(beispielsweise ein FILO-Puffer), dekrementiert die Anzahl von Koeffizienten
m um „1" und entscheidet,
ob die Anzahl m nach dem Dekrementieren „0" anzeigt oder nicht, das heißt, ob alle
Koeffizienten, die in der L-Sequenz enthalten sind, dekodiert sind
oder nicht.
-
Wenn
die Anzahl von Koeffizienten m nicht „0" anzeigt, wird entschieden, ob der absolute
Wert der unmittelbar vorhergehenden Koeffizienten |L|, der mit variabler
Länge dekodiert
ist, den Schwellwert überschritten
hat oder nicht. Wenn er den Schwellwert nicht überschritten hat, liest die
Kodierungs-Konvertierungseinheit 561 die
nächste
Variable-Länge-Kodierung
von dem Ende aus und dekodiert diese als einen absoluten Wert des
Koeffizienten |L| unter Verwendung der gleichen Tabelle, die für die vorherige
verwendet worden ist.
-
Wenn
der absolute Wert des unmittelbar vorhergehenden Koeffizienten |L|,
der mit variabler Länge
dekodiert worden ist, den Schwellwert überschritten hat, inkrementiert
die Kodierungs-Konvertierungseinheit 561 die Tabellenzahl
k um „1". Daher wird beim
Kodieren des absoluten Wertes des nächsten Koeffizienten |L| auf
die VLC-Tabelle mit niedriger Änderungsrate
bezüglich
der Kodierungslänge
verwiesen, die zum Kodieren des absoluten Wertes des Koeffizienten
|L|, dessen Kodierungslänge
lang ist, anwendbar ist (beispielsweise die VLC-Tabelle 5621b,
auf die verwiesen wird, wenn die vorherige VLC-Tabelle 5621a ist).
Wenn das Inkrementieren für die
Tabellenzahl k beendet ist, verweist die Kodierungs-Konvertierungseinheit 561 auf
die Schwellwert-Tabelle 5622 und aktualisiert diese auf
den nächsten
Schwellwert (beispielsweise „7", wenn der vorherige
Schwellwert „4" ist). Daher kann
nur zu der nächsten
VLC-Tabelle mit niedriger Änderungsrate bezüglich einer
Kodierungslänge
gewechselt werden, die für
das Kodieren des absoluten Wertes des Koeffizienten |L| verwendet
werden kann, dessen Kodierungslänge
lang ist, wenn der absolute Wert des Koeffizienten |L| den neuen
Schwellwert überschritten
hat.
-
Genauer
ausgedrückt
wird auf die VLC-Tabelle 5621a mit der Tabellenzahl k =
0 für die
erste Variable-Länge-Kodierung
verwiesen. Wenn jetzt angenommen wird, dass auf die VLC-Tabelle 5621a verwiesen
wird, ist die Variable-Länge-Kodierung, die zu
dem Eingabe-Bitstrom korrespondiert, „1" und der absolute Wert des Koeffizienten
|L| ist in diesem Fall „1". Gleichermaßen werden
beim sequentiellen Fortschreiten der Konvertierung von Variable-Länge-Kodierungen
zu absoluten Werten der Koeffizienten |L| unter Verwendung der VLC-Tabelle 5621a die
Variable-Länge-Kodierungen
zu absoluten Werten der Koeffizienten |L|, wie folgt, konvertiert:
Die Variable-Länge-Kodierung „1" zu dem absoluten
Wert des Koeffizienten |L| „1"; die Variable-Länge-Kodierung „010" zu dem ab soluten
Wert des Koeffizienten |L| „3"; die Variable-Länge-Kodierung „00100" zu dem absoluten Wert
des Koeffizienten |L| „4"; und die Variable-Länge-Kodierung „0001100" zu dem absoluten
Wert des Koeffizienten |L| „12".
-
Wenn
hier angenommen wird, dass der Schwellwert des absoluten Wertes
des Koeffizienten |L| „4" beträgt, übersteigt
der absolute Wert des Koeffizienten |L| den Schwellwert, wenn die
sechste Variable-Länge-Kodierung
konvertiert wird. Daher verwendet die Kodierungs-Konvertierungseinheit 561 die
nächste
VLC-Tabelle 5621b mit
der Zahl k = 1 für die
Konvertierung der nachfolgenden absoluten Werte der Koeffizienten
|L|, setzt den Schwellwert auf „7" und konvertiert diese zu absoluten
Werten der Koeffizienten |L|. Dementsprechend wird die siebte Variable-Länge-Kodierung „11" zu dem absoluten
Wert des Koeffizienten |L| „2" konvertiert.
-
Die
achte Variable-Länge-Kodierung „0100" wird zu dem absoluten
Wert des Koeffizienten |L| „3" konvertiert, während die
neunte Variable-Länge-Kodierung „000010000" zu dem absoluten
Wert des Koeffizienten |L| „31" konvertiert wird.
Wenn hier angenommen wird, dass der Schwellwert für den absoluten
Wert des Koeffizienten |L| „7" ist, übersteigt
der absolute Wert des Koeffizienten |L| den Schwellwert an dem neunten
absoluten Wert des Koeffizienten |L| "31".
Daher verwendet die Kodierungs-Konvertierungseinheit 561 die
VLC-Tabelle 5621b mit der Tabellenzahl k = 2 für die Konvertierung
der nachfolgenden absoluten Werte der Koeffizienten |L|, setzt den Schwellwert
auf „13" und konvertiert
diese zu den absoluten Werten der Koeffizienten |L|. In der Zwischenzeit
wird, selbst wenn der absolute Wert des Koeffizienten |L|, der durch
das Dekodieren zu dem siebten absoluten Wert des Koeffizienten |L|
erhalten wird, den Schwellwert „7" unterschreitet, nicht zu der VLC-Tabelle 5621a zurück gewechselt
und es wird die Konvertierung unter Verwendung der VLC-Tabelle 5621b durchgeführt.
-
Durch
das Wiederholen des obigen Verarbeitens werden die absoluten Werte
der zu einem einzelnen Block äquivalenten
Koeffizienten |L| („m" Koeffizienten) erzeugt
und sie werden unter Verwendung eines Zuerst-Rein-Später-Raus-Prinzips (engl. first-in
later-out), das von dem FILO-Puffer durchgeführt wird, in umgekehrter Reihenfolge
neu geordnet. Die Vorzeichen werden auch in umge kehrter Reihenfolge
neu geordnet, indem das Zuerst-Rein-Später-Raus-Prinzip verwendet
wird, das von dem FILO-Puffer durchgeführt wird. Die Anzahl soll jedoch nicht
neu geordnet werden. Es wird hier angenommen, dass die Sequenz in
der gleichen Reihenfolge erzeugt wird, wie diejenige, die für die L-Sequenz,
die in 24A gezeigt ist, verwendet wird
(und zwar eine Reihenfolge startend bei dem Niedrig-Frequenz-Bereich
in Richtung des Hoch-Frequenz-Bereichs).
-
Jeder
der absoluten Werte der Koeffizienten |L| in der L-Sequenz, die
derart neu geordnet worden sind, wird in die Koeffizienten-Erzeugungseinheit 564 eingegeben.
Die Kodierungs-Konvertierungseinheit 561 dekodiert jeden
R-Wert in der R-Sequenz unter Verwendung der gleichen Verarbeitung
wie diejenige, die für
die absoluten Werte der Koeffizienten |L| verwendet worden ist,
und gibt die R-Sequenz, die in 24A gezeigt
ist, an die Koeffizienten-Erzeugunseinheit 564 aus.
-
Die
Koeffizienten-Erzeugungseinheit 564 konvertiert die RL-Sequenz
zu Koeffizienten basierend auf die eingegebene L-Sequenz und R-Sequenz.
Dabei führt
die Koeffizienten-Erzeugungseinheit 564 die Konvertierung
der RL-Sequenz zu Koeffizienten durch, indem die folgende Operation
wiederholend ausgeführt
wird: Erzeugen eines Koeffizienten „0" für
die Zahl, die durch R angezeigt ist, und dann Erzeugen des Koeffizienten
für den
Wert, der durch L angezeigt ist, durch Hinzufügen der Vorzeichen. Hier ist
anzunehmen, dass das Abtasten in Zick-Zack-Linien startend bei dem Niedrig-Frequenz-Bereich
in Richtung des Hoch-Frequenz-Bereichs
durchgeführt
wird, wobei die R-Sequenz, die in 24A gezeigt
ist, und die L-Sequenz, die in 24B gezeigt
ist, zu einem Koeffizientenblock konvertiert werden. Der erzeugte
Koeffizientenblock wird in die inverse Quantisierungseinheit 520 eingegeben.
-
Wie
oben beschrieben, wird bei dem Dekodierverfahren mit variabler Länge gemäß der sechsten
Ausführungsform
zuerst in dem Dekodierschritt eine Mehrzahl von Variable-Länge-Kodier(Dekodier)-Tabellen,
die zum Dekodieren zu verwenden sind, in einer Richtung gewechselt,
wobei die Variable-Länge-Kodierungen
in dem Bitstrom zu Nicht-Null-Koeffizienten entsprechend eines Frequenzbereichs
in einer vorbestimmten Reihenfolge unter Verwendung der VLC-Tabelle,
zu der gewechselt worden ist, dekodiert werden. Danach werden in dem
Koeffizienten- Konvertierungsschritt
die Nicht-Null-Koeffizienten zu Koeffizienten in einem Block basierend
auf die erzeugten Koeffizienten konvertiert. Hier weist jede der
Tabellen eine andere Änderungsrate
bezüglich
einer Kodierungslänge
für Koeffizienten
auf, so dass eine Kodierungslänge
des kleinsten Koeffizienten länger
wird, wenn die der Tabelle zugeordnete Zahl größer wird, und eine Kodierungslänge des
größten Koeffizienten
kürzer
wird, wenn die Tabellenzahl größer wird.
Der Schwellwert wird basierend auf die Anpassungsfähigkeit
jeder Tabelle gesetzt, in der eine Kodierungslänge korrespondierend zu einem
Koeffizienten kürzer
ist als in der anderen Tabelle. Die Variable-Länge-Kodierungen in dem Bitstrom
werden in einer Reihenfolge startend von den Hoch-Frequenz-Komponenten
in Richtung der Niedrig-Frequenz-Komponenten angeordnet. In dem
Dekodierschritt werden die Variable-Länge-Kodierungen zu Koeffizienten
entsprechend der Reihenfolge dekodiert, in der der Bitstrom aus
diesen aufgebaut ist. Des Weiteren wird eine Sequenz von Koeffizienten
durch Ausgeben der dekodierten Koeffizienten in einer Reihenfolge
startend von dem Ende des Bitstroms erzeugt. In dem Koeffizienten-Erzeugungsschritt
werden die Koeffizienten entsprechend der Reihenfolge abgetastet,
in der die Sequenz von Koeffizienten zusammengesetzt ist.
-
In
dem Kodierschritt wird, wenn der absolute Wert des dekodierten Koeffizienten
den Schwellwert überschreitet,
die nächste
Variable-Länge-Kodierung zu
einem Koeffizienten dekodiert, indem von der Tabelle, die zum Dekodieren
einer aktuellen Variable-Länge-Kodierung,
die zu dekodieren ist, verwendet wird, zu einer Tabelle gewechselt
wird, deren Zahl größer ist
als diejenige, die der derzeitigen Tabelle zugeordnet ist.
-
Bei
der obigen Verarbeitung kann der Bitstrom, der unter Verwendung
des Kodierverfahrens mit variabler Länge gemäß der vorliegenden Erfindung
kodiert worden ist, richtig dekodiert werden, indem das Dekodierverfahren
mit variabler Länge
gemäß der vorliegenden
Erfindung verwendet wird.
-
In
der sechsten Ausführungsform
wird angenommen, dass, wenn der absolute Wert des unmittelbar vorhergehenden
dekodierten Koeffizienten |L| den Schwellwert überschreitet, die Tabellenzahl
k um „1" inkrementiert und
das Dekodieren unter Verwendung der VLC-Tabelle mit der nächsten Zahl,
wie in der fünften
Ausführungsform,
durchgeführt
wird. Es kann jedoch auch zu der Tabelle gesprungen werden, die
an den absoluten Wert des Koeffizienten |L| gemäß des absoluten Wertes des
unmittelbar vorhergehenden Koeffizienten angepasst ist, der den
Schwellwert überschritten
hat, unter der Bedingung, dass das Verfahren zum Wechseln zwischen
den Tabellen das gleiche ist wie dasjenige, das zum Kodieren verwendet
worden ist. In diesem Fall kann der Schwellwert auf den Wert gesetzt
werden, der zu der VLC-Tabelle korrespondiert.
-
In
der sechsten Ausführungsform
wird ein Beispiel der VLC-Tabelle unter Bezugnahme auf 25 beschrieben.
Es kann aber auch eine andere Tabelle verwendet werden, solange
es diejenige ist, die zum Kodieren verwendet worden ist. Zudem wird der
Fall beschrieben, in dem acht VLC-Tabellen verwendet werden. Aber
die Anzahl an den Tabellen kann auch zwischen zwei und sechs oder
mehr als acht liegen, wobei eine Mehrzahl von Schwellwerten verwendet
wird, und die VLC-Tabellen können
jedes Mal gewechselt werden, wenn jeder der Schwellwerte überschritten
wird. Die Struktur der VLC-Tabelle und der Schwellwert sollten hier
jedoch die gleichen sein wie diejenigen, die zum Kodieren verwendet werden.
-
Auch
werden in der sechsten Ausführungsform
der absolute Wert und das Vorzeichen des Koeffizienten getrennt
kodiert und jede VLC-Tabelle für absolute
Werte von Koeffizienten enthält
keine Vorzeichen (absoluter Wert). Es können aber auch die Koeffizienten
mit den Vorzeichen kodiert werden. In diesem Fall können die
Binärkodierungen
die Vorzeichen enthalten. Beispielsweise kann ein 1 bit für das Vorzeichen
einem LSB-Bit für
die Variable-Länge-Kodierung
hinzugefügt
werden.
-
Auch
wird in der sechsten Ausführungsform die
VLC-Tabelle gewechselt, wenn der Wert L den Schwellwert überschritten
hat. Eine VLC-Tabelle mit einer großen Zahl kann zum Dekodieren
der absoluten Werte der Koeffizienten |L| in einer fallenden Reihenfolge
(und zwar startend von denjenigen in dem Hoch-Frequenz-Bereich) verwendet werden und
es kann zu einer VLC-Tabelle mit einer kleinen Zahl gewechselt werden,
wenn der absolute Wert des dekodierten Koeffizienten |L| den Schwellwert
unterschreitet.
-
In
der sechsten Ausführungsform
wird der Fall beschrieben, bei dem ein Bild durch ein Intra-Bild-Kodieren
kodiert ist. Die gleichen Wirkungen können jedoch erreicht werden,
wenn ein Bild durch ein Zwischenbild-Kodieren kodiert worden ist,
indem eine Bewegungskompensation und Anderes auf ein Eingabe-Bewegungsbild durchgeführt wird,
wobei das Verfahren gemäß der vorliegenden
Ausführungsform
verwendet wird.
-
Auch
beschreibt die sechste Ausführungsform
den Fall eines Dividierens des Eingabebildes in Blöcke, die
jeweils eine Größe von 4
(horizontal) × 4 (vertikal)
Pixeln aufweisen. Die Größe des Blockes kann
aber auch eine andere sein.
-
Die
sechste Ausführungsform
beschreibt ein Verfahren zum Abtasten eines Blockes unter Bezugnahme
auf 11. Eine andere Abtastreihenfolge kann jedoch
auch verwendet werden, solange sie die gleiche ist, wie diejenige,
die zum Kodieren verwendet worden ist.
-
(Siebte Ausführungsform)
-
Im
Folgenden wird ein Beispiel einer Realisierung des Kodierverfahrens
mit variabler Länge, des
Dekodierverfahrens mit variabler Länge, einer Kodiervorrichtung
mit variabler Länge,
der Dekodiervorrichtung mit variabler Länge, des Bewegungsbild-Kodierverfahrens,
des Bewegungsbild-Dekodierverfahrens, der Bewegungsbild-Kodiervorrichtung
und der Bewegungsbild-Dekodiervorrichtung gemäß der vorliegenden Erfindung
in einer anderen Ausführungsform
beschrieben.
-
Es
ist möglich,
das in jeder der obigen Ausführungsformen
beschriebene Verarbeiten in einem unabhängigen Computersystem durchzuführen, indem
ein Programm zum Realisieren der Strukturen der Kodiervorrichtung
oder der Dekodiervorrichtung, die in jeder der obigen Ausführungsformen
gezeigt sind, in einem Aufzeichnungsmedium, wie beispielsweise einer
flexiblen Disk bzw. Diskette oder Ähnlichem, aufgezeichnet wird.
-
32 ist eine Darstellung der Durchführung des
Bewegungsbild-Kodierverfahrens,
das in der ersten, dritten und fünften
Ausführungsform
beschrieben ist, oder des Bewegungsbild-Dekodierverfahrens, das
in der zweiten, vierten und sechsten Ausführungsform beschrieben ist,
in dem Computersystem unter Verwendung des Programms, das auf der
flexiblen Disk bzw. Diskette aufgezeichnet ist.
-
32B zeigt eine vollständige Außendarstellung einer flexiblen
Disk, ihre Struktur an einem Querschnitt und die flexible Disk selbst,
während 32A ein Beispiel eines physikalischen Formats der
flexiblen Disk als einen Hauptkörper
eines Speichermediums zeigt. Eine flexible Disk FD ist in einem Gehäuse F enthalten,
wobei eine Vielzahl von Spuren Tr konzentrisch von dem Umfang zu
der Innenseite auf der Oberfläche
der Disk ausgebildet ist und jede Spur in 16 Sektoren Se in der
Winkelrichtung eingeteilt ist. Daher wird das Programm in einem
Bereich gespeichert, der diesen auf der flexiblen Disk FD zugeordnet
ist.
-
32C zeigt eine Struktur zum Aufzeichnen und Lesen
des Programms auf der flexiblen Disk FD. Wenn das Programm auf der
flexiblen Disk aufgezeichnet wird, schreibt das Computersystem Cs
in das Programm mittels eines Laufwerks für eine flexible Disk. Wenn
die Kodiervorrichtung und die Dekodiervorrichtung in dem Computersystem
unter Verwendung des Programms auf der flexiblen Disk erstellt sind,
wird das Programm von der flexiblen Disk gelesen und dann mittels
des Laufwerks für
die flexible Disk zu dem Computersystem übertragen.
-
Die
obige Erläuterung
wird unter der Annahme gegeben, dass ein Speichermedium eine flexible Disk
ist. Aber die gleiche Verarbeitung kann auch mittels einer optischen
Disk durchgeführt
werden. Des Weiteren ist das Speichermedium nicht auf eine flexible
Disk und eine optische Disk begrenzt, sondern jedes andere Medium,
beispielsweise eine IC-Karte und eine ROM-Kassette, die ein Programm
aufzeichnen können,
können
verwendet werden.
-
Im
Folgenden werden in Anwendungen des Bildkodier/Bilddekodier-Verfahrens,
die in der oben erwähnten
Ausführungsform
dargestellt sind, und ein System beschrieben, das diese verwendet.
-
33 ist ein Blockdiagramm, das eine Gesamtkonfiguration
eines Inhaltslieferungssystems ex100 zum Realisieren eines Inhaltslieferungsdienstes
(engl. content delivery service) zeigt. Der Bereich zum Bereitstellen
eines Kommunikati onsdienstes wird in Zellen gewünschter Größe dividiert und Zellenplätze ex107~ex110,
die fixierte drahtlose Stationen sind, werden in jeweiligen Zellen
platziert.
-
Dieses
Inhaltslieferungssystem ex100 ist mit Vorrichtungen verbunden, wie
beispielsweise einem Computer ex111, einem PDA (Persönlicher
Digitaler Assistent, engl. Personal Digital Assistant) ex112, einer
Kamera ex113, einem Mobiltelefon ex114 und einem Mobiltelefon mit
einer Kamera ex115 über
beispielsweise ein Internet ex101, einem Internet-Dienstleister
ex102, einem Telefonnetzwerk ex104 sowie den Zellenplätzen ex107~ex110.
-
Das
Inhaltslieferungssystem ex100 ist jedoch nicht auf die Konfiguration,
die in 33 gezeigt ist, begrenzt und
kann zu einer Kombination von jedem von diesen verbunden sein. Auch
kann jede Vorrichtung unmittelbar mit dem Telefonnetzwerk ex104
und nicht über
die Zellenplätze
ex107~ex110 verbunden sein.
-
Die
Kamera ex113 ist eine Vorrichtung, die ein Video aufnehmen kann,
wie beispielsweise eine digitale Videokamera. Das Mobiltelefon ex114
kann ein Mobiltelefon von jedem der folgenden Systeme sein: Ein
PDC(Persönliche
Digitale Kommunikation, engl. Personal Digital Communications)-System,
ein CDMA(Kodierungs-Divisions-Mehrfach-Zugang, engl. Code Division
Multiple Access)-System, ein W-CDMA(Breitband-Kodierungs-Divisions-Mehrfach-Zugang,
engl. Wideband-Code Division Multiple Access)-System oder ein GSM(Globales
System für mobile
Kommunikation, engl. Global System for Mobile Communications)-System,
ein PHS(Persönliches
Handy-Telefon-System, engl. Personal Handyphone System) oder Ähnliches.
-
Ein
Streaming-Server ex103 ist mit der Kamera ex113 über das Telefonnetzwert ex104
und auch den Zellenplatz ex109 verbunden, der eine Live-Verteilung
oder Ähnliches
unter Verwendung der Kamera ex113 basierend auf den kodierten Daten, die
von dem Benutzer übertragen
worden sind, realisiert. Entweder die Kamera ex113, der Server,
der die Daten überträgt, oder Ähnliches
können
die Daten kodieren. Die Bewegungsbilddaten, die durch eine Kamera
ex116 aufgenommen worden sind, können zu
dem Streaming-Server ex103 über
den Computer ex111 übertragen
werden. In diesem Fall kann entweder die Kamera ex116 oder der Computer
ex111 die Bewegungsbilddaten kodieren. Ein LSI ex117, der in dem
Computer ex111 und der Kamera ex116 enthalten ist, führt das
Kodierverarbeiten durch. Software zum Kodieren und Dekodieren von
Bildern kann in jeder Art eines Speichermediums integriert sein (wie
beispielsweise in einer CD-ROM,
einer flexiblen Disk und einer Hardisk), das ein Aufzeichnungsmedium
ist, das von dem Computer ex111 auslesbar ist, oder Ähnliches.
Des Weiteren kann ein Mobiltelefon mit einer Kamera ex115 die Bewegungsbilddaten übertragen.
Diese Bewegungsbilddaten sind die Daten, die durch den LSI kodiert
worden sind, der in dem Mobiltelefon ex115 enthalten ist.
-
Das
Inhaltslieferungssystem ex100 kodiert Inhalte (wie beispielsweise
ein Musik-Live-Video),
die von einem Benutzer unter Verwendung der Kamera ex113, der Kamera
ex116 oder Ähnliches
aufgenommen worden sind, auf die gleiche Art, wie es in der oben
erwähnten
Ausführungsform
gezeigt ist, und überträgt diese
an den Streaming-Server ex103, während
der Streaming-Server die Streamingzuführung der Inhaltsdaten zu den
Clients bei deren Anforderungen durchführt. Die Clients umfassen den Computer
ex111, das PDA ex112, die Kamera ex113, das Mobiltelefon ex114 und
so weiter, die fähig
sind, die oben erwähnten
kodierten Daten zu dekodieren. In dem Inhaltslieferungssystem ex100
können
die Clients die kodierten Daten daher empfangen und diese wiedergeben
und des Weiteren empfangen, dekodieren und wiedergeben in Echtzeit,
so dass ein persönlicher
Rundfunk (engl. Personal Broadcasting) realisiert wird.
-
Wenn
jede Vorrichtung in diesem System ein Kodieren oder Dekodieren durchführt, kann
die Bild-Kodiervorrichtung oder die Bild-Dekodiervorrichtung, die
in der oben erwähnten
Ausführungsform
gezeigt ist, verwendet werden.
-
Ein
Mobiltelefon als ein Beispiel einer derartigen Vorrichtung wird
im Folgenden erläutert.
-
34 ist ein Diagramm, das das Mobiltelefon ex115
zeigt, das das Bildkodier/Bilddekodier-Verfahren verwendet, das
in den oben erwähnten
Ausführungsformen
erläutert
ist. Das Mobiltelefon ex115 umfasst eine Antenne ex201 zum Kommunizieren mit
dem Zellenplatz ex110 über
Funkwellen, eine Kameraeinheit ex203 wie beispielsweise eine CCD-Kamera,
die fähig
ist, Bewegungsbilder und Standbilder aufzuzeichnen, eine Anzeigeeinheit
ex202 beispielsweise eine Flüssigkristallanzeige
zum Anzeigen der Daten wie beispielsweise dekodierter Bilder und Ähnliches,
die von der Kameraeinheit ex203 aufgenommen oder durch die Antenne
ex201 empfangen worden sind, eine Körpereinheit umfassend einen
Satz von Operationstasten ex204, eine Tonausgabeeinheit ex208 wie
beispielsweise einen Lautsprecher zum Ausgeben eines Tons, eine
Toneingabeeinheit ex205 wie beispielsweise ein Mikrophon zum Eingeben
eines Tons, eine Speichereinheit ex207 zum Speichern kodierter oder
dekodierter Daten wie beispielsweise Daten eines Bewegungsbildes
oder eines Standbildes, das von der Kamera aufgenommen worden ist,
Daten von empfangenen E-Mails und von Bewegungsbildern oder Standbildern
und eine Einschubeinheit ex206 zum Befestigen des Speichermediums
ex207 an dem Mobiltelefon ex115. Das Speichermedium ex207 enthält ein Flash-Speicherelement,
eine Art eines EEPROM (elektrisch löschbarer und programmierbarer
nur lesbarer Speicher, engl. Electrically Erasable and Programmable
Read Only Memory), der ein nichtflüchtiger Speicher ist, der löschbar und
wiederbeschreibbar ist, in einem Kunststoffgehäuse und ist beispielsweise
eine SD-Karte.
-
Im
Folgenden wird das Mobiltelefon ex115 unter Bezugnahme auf 35 beschrieben. In dem Mobiltelefon ex115 ist
eine Hauptsteuerungseinheit ex311, die konstruiert ist, um insgesamt
jede Einheit des Hauptkörper
zu steuern, der die Anzeigeinheit ex202 sowie die Operationstasten
ex204 umfasst, wechselseitig mit einer Energieversorgungs-Schaltungseinheit
ex310, einer Operationseingangs-Steuerungseinheit ex304, einer Bildkodiereinheit
ex312, einer Kameraschnittstelleneinheit ex303, einer LCD(Flüssigkristallanzeige,
engl. Liquid Crystal Display)-Steuerungseinheit ex302, einer Bilddekodiereinheit
ex309, einer Multiplexierungs/Demultiplexierungs-Einheit ex308,
einer Lese/Schreib-Einheit ex307, einer Modem-Schaltungseinheit
ex306 und einer Tonverarbeitungseinheit ex305 über einen Synchronbus ex313
verbunden.
-
Wenn
ein Aufruf-Ende-Schlüssel
bzw. -Taste oder ein Energieschlüssel
bzw. Energietaste durch eine Benutzeroperation auf AN geschaltet
wird, versorgt die Energieversorgungs-Schaltungseinheit ex310 die
jeweiligen Einheiten mit Energie von einer Batteriepackung, um das
digitale Mobiltelefon mit einer Kamera ex115 zu einem Bereitschaftszustand
zu aktivieren.
-
In
dem Mobiltelefon ex115 konvertiert die Tonverarbeitungseinheit ex305
die Tonsignale, die von der Toneingabeeinheit ex205 in dem Konversationsmodus
empfangen worden sind, in digitale Tondaten unter Steuerung durch
die Hauptsteuerungseinheit ex311, die eine CPU, einen ROM und einen RAM
umfasst. Zudem führt
die Modem-Schaltungseinheit ex306 eine Frequenzspreizungsverarbeitung auf
den digitalen Tondaten durch und die Kommunikations-Schaltungseinheit
ex301 führt
eine Digital-Zu-Analog-Konvertierung und Frequenztransformation
auf den Daten durch, um diese über
die Antenne ex201 zu übertragen.
Zudem verstärkt
in dem Mobiltelefon ex115 die Kommunikation-Schaltungseinheit ex301 die Daten, die
von der Antenne ex201 in dem Konversationsmode empfangen worden
sind und führt
eine Frequenztransformation und die Analog-Zu-Digital-Konvertierung
auf den Daten durch. Die Modem-Schaltungseinheit
ex306 führt
eine inverse Frequenzspreizungsverarbeitung auf den Daten durch
und die Tonverarbeitungseinheit ex305 konvertiert diese zu analogen
Tondaten, um diese über
die Tonausgabeeinheit ex208 auszugeben.
-
Des
Weiteren werden, wenn eine E-Mail im Datenkommunikationsmodus übertragen
wird, die Textdaten der E-Mail, die durch die Operation der Operationstasten
ex204 des Hauptkörpers
eingegeben worden sind, an die Hauptsteuerungseinheit ex311 über die
Operationseingabe-Steuerungseinheit ex304 gesendet. In der Hauptsteuerungseinheit ex311
werden, nachdem die Modem-Schaltungseinheit
ex306 eine Frequenzspreizungsverarbeitung auf den Textdaten und
die Kommunikations-Schaltungseinheit ex301 die Digital-Zu-Analog-Konvertierung und
die Frequenztransformation auf den Textdaten durchgeführt hat,
die Daten zu dem Zellenplatz ex110 über die Antenne ex201 übertragen.
-
Wenn
Bilddaten im Datenkommunikationsmodus übertragen werden, werden die
Bilddaten, die von der Kameraeinheit ex203 aufgenommen worden sind, über die
Kameraschnittstelleneinheit ex303 an die Bildkodiereinheit ex312 übertragen.
Wenn sie nicht übertragen
werden, ist es auch möglich,
die von der Kameraeinheit ex203 aufgenommenen Bilddaten direkt auf
der Anzeigeeinheit ex202 über
die Kameraschnittstelleneinheit ex303 und die LCD-Steuerungseinheit
ex302 anzuzeigen.
-
Die
Bildkodiereinheit ex312, die die Bildkodiervorrichtung, wie sie
in der vorliegenden Erfindung beschrieben ist, umfasst, komprimiert
und kodiert die Bilddaten, die von der Kameraeinheit ex203 geliefert worden
sind, unter Verwendung des Kodierverfahrens, das von der Bildkodiervorrichtung,
wie in der ersten Ausführungsform
gezeigt, verwendet wird, um diese zu kodierten Bilddaten zu transformieren
und sendet diese an die Multiplexierungs/Demultiplexierungs-Einheit
ex308 aus. Zu diesem Zeitpunkt sendet das Mobiltelefon ex115 den
Ton, der durch die Toneingabeeinheit ex205 während des Aufnehmens mit der
Kameraeinheit ex203 empfangen worden ist, zu der Multiplexierungs/Demultiplexierungs-Einheit ex308 als
digitale Tondaten über
die Tonverarbeitungseinheit ex305.
-
Die
Multiplexierungs/Demultiplexierungs-Einheit ex308 multiplext die
kodierten Bilddaten, die von der Bildkodiereinheit ex312 geliefert
worden sind, und die Tondaten, die von der Tonverarbeitungseinheit
ex305 geliefert worden sind, unter Verwendung eines vorbestimmten
Verfahrens, wobei dann die Modem-Schaltungseinheit
ex306 eine Frequenzspreizungsverarbeitung auf den Multiplexdaten durchführt, die
als ein Ergebnis der Multiplexierung erhalten worden sind. Zuletzt
führt die
Kommunikationsschaltungseinheit ex301 eine Digital-Zu-Analog-Konvertierung
und eine Frequenztransformation auf den Daten für die Übertragung über die Antenne ex201 durch.
-
Zum
Empfangen von Daten einer Bewegungsbilddatei, die mit einer Web-Seite
oder Ähnlichem
verbunden ist, in einem Datenkommunikationsmodus führt die
Modem-Schaltungseinheit ex306 eine inverse Frequenzspreizungsverarbeitung
auf den Daten durch, die von dem Zellenplatz ex110 über die
Antenne ex201 empfangen worden sind, und sendet die Multiplexdaten,
die als ein Resultat der inversen Frequenzspreizungsverarbeitung
erhalten worden sind, aus.
-
Um
die Multiplexdaten zu dekodieren, die über die Antenne ex201 empfangen
worden sind, demultiplext die Multiplexierungs/Demultiplexierungs-Einheit
ex308 die Multiplexdaten zu einem kodierten Strom von Bilddaten
und einem kodierten Strom von Tondaten und liefert jeweils über den
Synchronbus ex313 die kodierten Bilddaten an die Bilddekodiereinheit
ex309 und die Tondaten an die Tonverarbeitungseinheit ex305.
-
Als
nächstes
dekodiert die Bilddekodiereinheit ex309, die die Bilddekodiervorrichtung,
wie in der vorliegenden Erfindung beschrieben, umfasst, den kodierten
Strom von Bilddaten unter Verwendung des Dekodierverfahrens korrespondierend
zu dem Kodierverfahren, wie in den oben erwähnten Ausführungsformen gezeigt, um wiedergegebene
Bewegungsbilddaten zu erzeugen, und liefert diese Daten an die Anzeigeeinheit
ex202 über
die LCD-Steuerungseinheit ex302. Die Bilddaten, die in der Bewegungsbilddatei
enthalten sind, die derart mit einer Web-Seite verbunden ist, werden
beispielsweise so angezeigt. Zu der gleichen Zeit konvertiert die
Tonverarbeitungseinheit ex305 die Tondaten zu analogen Tondaten
und gibt diese Daten an die Tonausgabeeinheit ex208 aus. Die Tondaten,
die in der Bewegungsbilddatei enthalten sind, die mit einer Web-Seite
verbunden ist, werden beispielsweise so wiedergegeben.
-
Die
vorliegende Erfindung ist nicht begrenzt auf das oben erwähnte System,
da ein bodenbasierter oder Satelliten-Digitalrundfunk kürzlich in
den Nachrichten war und zumindest entweder die Bildkodiervorrichtung
oder die Bilddekodiervorrichtung, die in der oben erwähnten Ausführungsform
beschrieben sind, in einem digitalen Rundfunksystem, wie in 36 gezeigt, inkorporiert sein kann. Insbesondere wird
ein kodierter Strom von Videoinformationen von einer Rundfunkstation
ex409 zu einem Rundfunksatelliten ex410 über Funkwellen übertragen
oder mit einem Rundfunksatelliten ex410 über Funkwellen übermittelt.
Beim Empfang von diesen überträgt der Rundfunksatellit
ex410 Funkwellen für
den Rundfunk. Dann empfängt
eine in bzw. an einem Haus verwendbare Antenne ex406 mit einer Satellitenrundfunkempfangsfunktion
die Funkwellen und ein Fernseher (Empfänger) ex401 oder ein Digitalempfänger (STB)
ex407 dekodiert einen kodierten Bitstrom zur Wiedergabe. Die Bilddekodiervorrichtung,
wie sie in der oben erwähnten
Ausführungsform
gezeigt ist, kann in der Wiedergabevorrichtung ex403 zum Auslesen
und Dekodieren des kodierten Stroms implementiert werden, der auf
einem Speichermedium ex402 aufgezeichnet ist, das ein Aufzeichnungsmedium
wie beispielsweise eine CD und eine DVD ist. In diesem Fall werden
die wiedergegebenen Bewegungsbildsignale auf einem Monitor ex404
angezeigt. Es ist auch vorstellbar, die Bilddekodiervorrichtung
in dem Digitalempfänger
ex407 zu implementieren, der mit einem Kabel ex405 für Kabelfernsehen oder
der Antenne ex406 für
Satellitenrundfunk und/oder bodenbasiertem Rundfunk verbunden ist, um
diese auf einem Monitor ex408 des Fernsehers ex401 wiederzugeben.
Die Bilddekodiervorrichtung kann in dem Fernseher und nicht in dem
Digitalempfänger
inkorporiert sein. Auch kann ein Auto ex412 mit einer Antenne ex411
Signale von dem Satelliten ex410 oder dem Zellenplatz ex107 zum
Wiedergeben eines Bewegungsbildes auf einer Anzeigeeinrichtung wie
beispielsweise einem Autonavigationssystem ex413, das in dem Auto
ex412 vorhanden ist, empfangen.
-
Des
Weiteren kann die Bildkodiervorrichtung, wie in der oben erwähnten Ausführungsform gezeigt,
Bildsignale kodieren und diese auf dem Speichermedium aufzeichnen.
Als ein konkretes Beispiel kann eine Aufzeichnungseinrichtung ex420
wie beispielsweise eine DVD-Aufzeichnungseinrichtung zum Aufzeichnen
von Bildsignalen auf eine DVD-Disk ex421 oder eine Disk-Aufzeichnungseinrichtung
zum Aufzeichnen dieser auf einer Harddisk genannt werden. Sie können auf
einer SD-Karte ex422 aufgezeichnet werden. Wenn die Aufzeichnungseinrichtung
ex420 die Bilddekodiervorrichtung, wie in der oben erwähnten Ausführungsform
gezeigt, umfasst, können
die Bildsignale, die auf der DVD-Disk ex421 oder der SD-Karte ex422
aufgezeichnet sind, zum Anzeigen auf dem Monitor ex408 wiedergegeben
werden.
-
Bezüglich der
Struktur des Autonavigationssystems ex413 ist die Struktur ohne
die Kameraeinheit ex203, die Kameraschnittstelleneinheit ex303 und
die Bildkodiereinheit ex312 von den in 35 gezeigten
Komponenten vorstellbar. Das gleiche gilt für den Computer ex111, den Fernseher
(Empfänger) ex401
und andere.
-
Außerdem sind
drei Arten von Implementationen für eine Endeinheit wie beispielsweise
das Mobiltelefon ex114 vorstellbar: Eine Sende/Empfangs-Endeinheit, die sowohl
mit einem Kodierer als auch einem Dekodierer implementiert ist,
eine Sendeendeinheit, die nur mit einem Kodierer implementiert ist,
und eine Empfangsendeinheit, die nur mit einem Dekodierer implementiert
ist.
-
Es
ist, wie oben beschrieben, möglich,
das Kodierverfahren mit variabler Länge, das Dekodierverfahren
mit variabler Länge
sowie die Kodiervorrichtung mit variabler Länge und die Dekodiervorrichtung
mit variabler Länge,
die diese Verfahren verwenden, das Bewegungsbild-Kodierverfahren,
das Bewegungsbild- Dekodierverfahren,
die Bewegungsbild-Kodiervorrichtung und die Bewegungsbild-Dekodiervorrichtung,
die in der oben erwähnten
Ausführungsform
beschrieben sind, für
jede der oben erwähnten
Vorrichtungen und oben beschriebenen Systeme zu verwenden. Durch
Verwendung dieser Verfahren können
die Wirkungen, die in den oben erwähnten Ausführungsformen beschrieben sind,
erreicht werden.
-
Ausgehend
von der so beschriebenen Erfindung ist es offensichtlich, dass die
Ausführungsformen
der Erfindung auf unterschiedliche Arten variiert werden können. Derartige
Variationen sind nicht so zu betrachten, dass sie sich von dem Geist
und dem Umfang der Erfindung entfernen. Alle derartigen Modifikationen
sollen, da sie für
einen Fachmann offensichtlich sind, von dem Schutzumfang der folgenden Ansprüche umfasst
sein.
-
Es
wird beschrieben, dass die Kodiervorrichtung mit variabler Länge und
die Dekodiervorrichtung mit variabler Länge gemäß der ersten Ausführungsform
bis zu der sechsten Ausführungsform
ein Abtasten auf den Koeffizienten in einer Reihenfolge startend
bei der Niedrig-Frequenz-Komponente in Richtung der Hoch-Frequenz-Komponente
durchführt. Das
Abtasten kann jedoch auch in einer Reihenfolge startend bei der
Hoch-Frequenz-Komponente in Richtung der Niedrig-Frequenz-Komponente durchgeführt werden.
In diesem Fall kann eine Neuordnungsverarbeitung der Koeffizienten
abgekürzt
werden.
-
Industrielle
Anwendbarkeit
-
Das
Kodierverfahren mit variabler Länge
und das Dekodierverfahren mit variabler Länge gemäß der vorliegenden Erfindung
sind anwendbar, um Koeffizienten in jedem Block mit einer vorbestimmten Größe zu kodieren
oder zu dekodieren, die durch Durchführen einer Frequenztransformation
auf Bilddaten eines Bewegungsbildes unter Verwendung einer Computervorrichtung
wie beispielsweise eines Mobiltelefons, eines persönlichen
digitalen Assistenten, einer TV-Rundfunk-Vorrichtung,
eines TV-Monitors, eines Digitalempfängers oder Ähnlichem erhalten werden.