[go: up one dir, main page]

DE60311734T2 - Codierungsverfahren mit variabler länge und decodierungsverfahren mit variabler länge - Google Patents

Codierungsverfahren mit variabler länge und decodierungsverfahren mit variabler länge Download PDF

Info

Publication number
DE60311734T2
DE60311734T2 DE60311734T DE60311734T DE60311734T2 DE 60311734 T2 DE60311734 T2 DE 60311734T2 DE 60311734 T DE60311734 T DE 60311734T DE 60311734 T DE60311734 T DE 60311734T DE 60311734 T2 DE60311734 T2 DE 60311734T2
Authority
DE
Germany
Prior art keywords
coding
coefficient
unit
coefficients
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60311734T
Other languages
English (en)
Other versions
DE60311734D1 (de
Inventor
Satoshi Yawata-shi Kondo
Shinya Nishinomiya-shi Kadono
Makoto Moriguchi-shi HAGAI
Kiyofumi Kadoma-shi ABE
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=29255105&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE60311734(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of DE60311734D1 publication Critical patent/DE60311734D1/de
Application granted granted Critical
Publication of DE60311734T2 publication Critical patent/DE60311734T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/29Flow control; Congestion control using a combination of thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Discrete Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
  • Vehicle Body Suspensions (AREA)
  • Studio Devices (AREA)
  • Automatic Focus Adjustment (AREA)

Description

  • 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.

Claims (5)

  1. Kodierverfahren zum Durchführen einer Kodierung mit variabler Länge auf zweidimensionalen Koeffizienten eines Blockes, die erhalten werden, indem eine Frequenztransformation auf Bilddaten des Blockes, der eine vorbestimmte Pixelgröße aufweist, durchgeführt wird, wobei das Verfahren folgende Schritte aufweist: einen Koeffizienten-Abtast-Schritt zum Abtasten der zweidimensionalen Koeffizienten des Blockes in einer vorbestimmten Reihenfolge startend von einer niedrigen Frequenzkomponente zu einer hohen Frequenzkomponente, um die zweidimensionalen Koeffizienten zu eindimensionalen Koeffizienten zu transformieren, und einen Kodierungs-Schritt zum Durchführen einer Kodierung mit variabler Länge auf den eindimensionalen Koeffizienten startend von einer hohen Frequenzkomponente zu einer niedrigeren Frequenzkomponente, wobei zwischen einer Mehrzahl von Tabellen gewechselt wird, die zur Kodierung verwendet werden und denen ansteigende Schwellwerte zugeordnet sind, wobei in dem Kodierungs-Schritt, wenn ein absoluter Wert eines aktuellen Koeffizienten, der zu kodieren ist, einen Schwellwert übersteigt, der der Tabelle zugeordnet worden ist, die zur Kodierung des aktuellen Koeffizienten verwendet wird, ein nächster Koeffizient, der zu kodieren ist und dem aktuellen Koeffizienten folgt, kodiert wird, nachdem der Schwellwert angestiegen ist und nachdem die Tabelle zu der Tabelle gewechselt ist, der der angestiegene Schwellwert zugeordnet ist.
  2. Kodierverfahren nach Anspruch 1, dadurch gekennzeichnet, dass ein Schwellwert aus einer Mehrzahl von Schwellwerten für jedes Wechseln der Tabellen bestimmt wird.
  3. Kodierverfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Wechseln der Tabellen in Richtung von Tabellen mit größeren Schwellwerten durchgeführt wird.
  4. Kodierverfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Wechseln der Tabellen in einer Richtung durchgeführt wird.
  5. Kodierverfahren nach Anspruch 1, dadurch gekennzeichnet, dass eine Kodierungslänge für einen kleinsten Koeffizienten von Tabelle zu Tabelle in einer aufsteigenden Folge von Zahlen, die jeweils zu jeder der Tabellen zugeordnet sind, länger wird.
DE60311734T 2002-04-19 2003-04-16 Codierungsverfahren mit variabler länge und decodierungsverfahren mit variabler länge Expired - Lifetime DE60311734T2 (de)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
JP2002118483 2002-04-19
JP2002118483 2002-04-19
JP2002126029 2002-04-26
JP2002126029 2002-04-26
JP2002363106 2002-12-13
JP2002363106A JP4368575B2 (ja) 2002-04-19 2002-12-13 可変長復号化方法、可変長復号化装置およびプログラム
PCT/JP2003/004803 WO2003090472A1 (en) 2002-04-19 2003-04-16 Variable length encoding method and variable length decoding method

Publications (2)

Publication Number Publication Date
DE60311734D1 DE60311734D1 (de) 2007-03-29
DE60311734T2 true DE60311734T2 (de) 2007-11-15

Family

ID=29255105

Family Applications (5)

Application Number Title Priority Date Filing Date
DE60311734T Expired - Lifetime DE60311734T2 (de) 2002-04-19 2003-04-16 Codierungsverfahren mit variabler länge und decodierungsverfahren mit variabler länge
DE60329873T Expired - Lifetime DE60329873D1 (de) 2002-04-19 2003-04-16 Kodierungs- und Dekodierungsverfahren mit variabler Länge
DE2003618918 Expired - Lifetime DE60318918T2 (de) 2002-04-19 2003-04-16 Decodierungsverfahren mit variabler Länge
DE60321406T Expired - Lifetime DE60321406D1 (de) 2002-04-19 2003-04-16 Decodierungsverfahren mit variabler Länge
DE60323171T Expired - Lifetime DE60323171D1 (de) 2002-04-19 2003-04-16 Kodierungsverfahren mit variabler Länge

Family Applications After (4)

Application Number Title Priority Date Filing Date
DE60329873T Expired - Lifetime DE60329873D1 (de) 2002-04-19 2003-04-16 Kodierungs- und Dekodierungsverfahren mit variabler Länge
DE2003618918 Expired - Lifetime DE60318918T2 (de) 2002-04-19 2003-04-16 Decodierungsverfahren mit variabler Länge
DE60321406T Expired - Lifetime DE60321406D1 (de) 2002-04-19 2003-04-16 Decodierungsverfahren mit variabler Länge
DE60323171T Expired - Lifetime DE60323171D1 (de) 2002-04-19 2003-04-16 Kodierungsverfahren mit variabler Länge

Country Status (17)

Country Link
US (12) US7305035B2 (de)
EP (13) EP3515072B1 (de)
JP (1) JP4368575B2 (de)
KR (8) KR101001417B1 (de)
CN (1) CN1319385C (de)
AT (5) ATE447295T1 (de)
AU (1) AU2003235171C1 (de)
BR (2) BR0304543A (de)
CA (2) CA2625292C (de)
DE (5) DE60311734T2 (de)
DK (5) DK1742483T3 (de)
ES (11) ES2886861T3 (de)
HU (1) HUE044271T2 (de)
MX (1) MXPA03011198A (de)
PT (7) PT1742484E (de)
SI (2) SI1742484T1 (de)
WO (1) WO2003090472A1 (de)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101448162B (zh) 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
JP4368575B2 (ja) 2002-04-19 2009-11-18 パナソニック株式会社 可変長復号化方法、可変長復号化装置およびプログラム
JP2005004718A (ja) * 2003-05-16 2005-01-06 Canon Inc 信号処理装置及び制御方法
US10554985B2 (en) 2003-07-18 2020-02-04 Microsoft Technology Licensing, Llc DC coefficient signaling at small quantization step sizes
US20070230805A1 (en) * 2004-07-27 2007-10-04 Yoshihisa Yamada Coded Data Recording Apparatus, Decoding Apparatus and Program
CN101848391B (zh) * 2005-09-26 2014-11-26 三菱电机株式会社 运动图像编码装置以及运动图像译码装置
JP4540585B2 (ja) * 2005-10-20 2010-09-08 パナソニック株式会社 符号化装置及び復号化装置
US7903973B1 (en) * 2005-12-23 2011-03-08 Lockheed Martin Corporation Dynamic temporal duration optical transmission privacy
JP4863840B2 (ja) * 2006-10-27 2012-01-25 株式会社リコー 画素形成装置、光走査装置、光走査方法、画像形成装置、カラー画像形成装置
KR100987028B1 (ko) * 2008-08-20 2010-10-11 연세대학교 산학협력단 무작위 데이터가 가지는 정렬 구조의 불확실성을 산출하는 장치 및 그 방법, 상기 방법을 구현하는 프로그램이 기록된기록매체
TR201001101A2 (tr) * 2010-02-12 2011-09-21 Vestel Elektroni̇k Sanayi̇ Ve Ti̇caret A.Ş. Bir veri sıkıştırma metodu.
KR101780921B1 (ko) * 2010-04-01 2017-09-21 소니 주식회사 화상 처리 장치, 방법 및 기록매체
US8410959B2 (en) 2010-04-09 2013-04-02 Qualcomm, Incorporated Variable length codes for coding of video data
US20120082230A1 (en) * 2010-10-01 2012-04-05 Qualcomm Incorporated Variable length coding of video block coefficients
US9490839B2 (en) 2011-01-03 2016-11-08 Qualcomm Incorporated Variable length coding of video block coefficients
US8755620B2 (en) * 2011-01-12 2014-06-17 Panasonic Corporation Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus for performing arithmetic coding and/or arithmetic decoding
US8687904B2 (en) 2011-01-14 2014-04-01 Panasonic Corporation Image coding method, image coding apparatus, image decoding method, image decoding apparatus, and image coding and decoding apparatus which include arithmetic coding or arithmetic decoding
US9516316B2 (en) 2011-06-29 2016-12-06 Qualcomm Incorporated VLC coefficient coding for large chroma block
US9338456B2 (en) 2011-07-11 2016-05-10 Qualcomm Incorporated Coding syntax elements using VLC codewords
KR101710633B1 (ko) 2011-08-05 2017-02-27 삼성전자주식회사 자동 초점 조절 방법, 자동 초점 조절 장치, 및 이를 포함하는 디지털 촬영장치
WO2013065262A1 (ja) * 2011-11-04 2013-05-10 日本電気株式会社 映像符号化装置、映像復号装置、映像符号化方法、映像復号方法およびプログラム
WO2015110011A1 (en) * 2014-01-24 2015-07-30 Mediatek Inc. Decoding apparatus capable of controlling repetition number of scan procedure based on at least one syntax element decoding result and related method
US10171810B2 (en) 2015-06-22 2019-01-01 Cisco Technology, Inc. Transform coefficient coding using level-mode and run-mode
EP3504853B1 (de) * 2016-09-06 2021-11-03 MediaTek Inc. Effiziente codierungsschaltung und modemressourcennutzung in drahtloskommunikationssystemen
JP2018085008A (ja) * 2016-11-25 2018-05-31 株式会社ジャパンディスプレイ 画像処理装置および画像処理装置の画像処理方法
US10666985B1 (en) * 2018-11-18 2020-05-26 Sony Corporation Sub-block based entropy coding for image coding
US10728555B1 (en) * 2019-02-06 2020-07-28 Sony Corporation Embedded codec (EBC) circuitry for position dependent entropy coding of residual level data
CN112399181B (zh) 2019-08-19 2022-08-26 华为技术有限公司 图像编解码的方法、装置和存储介质
CN113889046B (zh) * 2020-07-02 2022-12-09 京东方科技集团股份有限公司 显示面板及其驱动方法、以及显示装置

Family Cites Families (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4541012A (en) * 1982-01-04 1985-09-10 Compression Labs, Inc. Video bandwidth reduction system employing interframe block differencing and transform domain coding
CA1296430C (en) * 1986-11-10 1992-02-25 Masahide Kaneko Encoding system capable of accomplishing a high efficiency by anterior and/or posterior processing to quantization
JPH04100390A (ja) * 1990-08-20 1992-04-02 Hitachi Ltd 高能率符号化方式
JP3205028B2 (ja) 1991-02-05 2001-09-04 キヤノン株式会社 画像圧縮装置及びその方法
US6546145B1 (en) * 1991-02-05 2003-04-08 Canon Kabushiki Kaisha Image compression using selection of quantization method
JPH04315270A (ja) 1991-04-15 1992-11-06 Toshiba Corp 符号化装置
JP2670201B2 (ja) * 1991-08-30 1997-10-29 富士写真フイルム株式会社 画像データ圧縮符号化装置および方法
JP3016456B2 (ja) 1992-06-15 2000-03-06 日本電信電話株式会社 適応的可変長符号化方法
JPH06178282A (ja) 1992-12-02 1994-06-24 Mitsubishi Electric Corp 画像の符号化装置
US5367629A (en) * 1992-12-18 1994-11-22 Sharevision Technology, Inc. Digital video compression system utilizing vector adaptive transform
JP3278948B2 (ja) * 1993-02-05 2002-04-30 日本電信電話株式会社 可変長符号化方法
US5510785A (en) * 1993-03-19 1996-04-23 Sony Corporation Method of coding a digital signal, method of generating a coding table, coding apparatus and coding method
JP3277425B2 (ja) * 1993-03-19 2002-04-22 ソニー株式会社 ディジタル信号の符号化方法、符号化用テーブル生成方法、符号化装置及び符号化方法
JP3111750B2 (ja) 1993-06-08 2000-11-27 松下電器産業株式会社 可変長符号復号方式
JPH0759086A (ja) 1993-07-30 1995-03-03 Canon Inc 画像処理装置
JP3210996B2 (ja) * 1993-07-30 2001-09-25 三菱電機株式会社 高能率符号化装置及び高能率復号化装置
JP3220598B2 (ja) * 1994-08-31 2001-10-22 三菱電機株式会社 可変長符号テーブルおよび可変長符号化装置
KR100209877B1 (ko) * 1994-11-26 1999-07-15 윤종용 복수개의 허프만부호테이블을 이용한 가변장부호화장치 및 복호화장치
US5883976A (en) * 1994-12-28 1999-03-16 Canon Kabushiki Kaisha Selectively utilizing multiple encoding methods
JP3305140B2 (ja) 1994-12-28 2002-07-22 キヤノン株式会社 符号化装置及び方法
JP3624450B2 (ja) * 1995-02-06 2005-03-02 ソニー株式会社 画像データ符号化方法及び画像データ符号化装置
JP3431331B2 (ja) * 1995-03-01 2003-07-28 株式会社日立製作所 動画像符号化装置及び動画像伝送装置並びにテレビ会議装置
US6704494B1 (en) * 1995-03-15 2004-03-09 Kabushiki Kaisha Toshiba Moving picture coding and/or decoding systems, and variable-length coding and/or decoding system
US6104754A (en) * 1995-03-15 2000-08-15 Kabushiki Kaisha Toshiba Moving picture coding and/or decoding systems, and variable-length coding and/or decoding system
JPH08256266A (ja) * 1995-03-17 1996-10-01 Mitsubishi Electric Corp 画像符号化方式
JP3992303B2 (ja) * 1995-06-22 2007-10-17 ソニー株式会社 信号圧縮装置と信号伸長装置および信号圧縮方法と信号伸長方法
JP3114796B2 (ja) 1995-09-11 2000-12-04 松下電器産業株式会社 可変長符号化装置及び方法
EP0762771A3 (de) 1995-09-11 1998-09-23 Matsushita Electric Industrial Co., Ltd. Verfahren und Vorrichtung zur variablen Längenkodierung
US5818877A (en) * 1996-03-14 1998-10-06 The Regents Of The University Of California Method for reducing storage requirements for grouped data values
JPH09307901A (ja) 1996-05-13 1997-11-28 Toshiba Corp 映像信号処理装置
JP3743837B2 (ja) 1996-06-14 2006-02-08 株式会社大宇エレクトロニクス ランレングス符号器
US5831977A (en) 1996-09-04 1998-11-03 Ericsson Inc. Subtractive CDMA system with simultaneous subtraction in code space and direction-of-arrival space
TW366669B (en) 1996-10-30 1999-08-11 Matsushita Electric Industrial Co Ltd Picture encoding device and picture encoding method, picture decoding device and picture decoding method, and data recording media
JP2870515B2 (ja) * 1996-12-27 1999-03-17 日本電気株式会社 可変長符号化装置
US5995148A (en) * 1997-02-14 1999-11-30 At&T Corp Video coder having scalar dependent variable length coder
JP3410629B2 (ja) * 1997-05-21 2003-05-26 シャープ株式会社 可変長符号化回路及び可変長符号化方法
US6118822A (en) 1997-12-01 2000-09-12 Conexant Systems, Inc. Adaptive entropy coding in adaptive quantization framework for video signal coding systems and processes
JPH11243343A (ja) 1998-02-25 1999-09-07 Victor Co Of Japan Ltd 可変長符号化方法、可変長復号化方法、及び可変長符号記録媒体
JPH11341497A (ja) 1998-05-29 1999-12-10 Matsushita Electric Ind Co Ltd 画像符号化復号化装置及び、画像符号化復号化方法
JP3888597B2 (ja) * 1998-06-24 2007-03-07 日本ビクター株式会社 動き補償符号化装置、及び動き補償符号化復号化方法
JP2000059234A (ja) * 1998-08-10 2000-02-25 Mitsubishi Electric Corp 可変長符号処理装置
JP2001024515A (ja) * 1999-07-07 2001-01-26 Sony Corp 信号処理方法及び装置
KR100644498B1 (ko) * 1999-08-25 2006-11-10 마츠시타 덴끼 산교 가부시키가이샤 노이즈 검출방법과 노이즈 검출장치 및 화상 복호화장치
JP2001308715A (ja) * 2000-04-20 2001-11-02 Mitsubishi Electric Corp 可変長符号化装置および可変長復号装置
TW515192B (en) 2000-06-06 2002-12-21 Noa Kk Off Compression method of motion picture image data and system there for
JP2002261623A (ja) * 2001-02-28 2002-09-13 Canon Inc 復号装置、復号方法、記憶媒体及びプログラムソフトウェア
EP1391121B1 (de) * 2001-03-23 2012-08-15 Nokia Corporation Codierung variabler länge
KR100921031B1 (ko) * 2001-11-22 2009-10-08 파나소닉 주식회사 블럭 이미지의 부호화 데이터의 복호화 방법 및 장치
US7099387B2 (en) * 2002-03-22 2006-08-29 Realnetorks, Inc. Context-adaptive VLC video transform coefficients encoding/decoding methods and apparatuses
JP4090862B2 (ja) * 2002-04-26 2008-05-28 松下電器産業株式会社 可変長符号化方法および可変長復号化方法
JP4368575B2 (ja) * 2002-04-19 2009-11-18 パナソニック株式会社 可変長復号化方法、可変長復号化装置およびプログラム
US6646578B1 (en) * 2002-11-22 2003-11-11 Ub Video Inc. Context adaptive variable length decoding system and method
US7602850B2 (en) * 2003-12-19 2009-10-13 Intel Corporation Content adaptive variable length coding (CAVLC) decoding
US7843997B2 (en) * 2004-05-21 2010-11-30 Broadcom Corporation Context adaptive variable length code decoder for decoding macroblock adaptive field/frame coded video data
US7643694B2 (en) * 2004-12-31 2010-01-05 Zoran Corporation Method and apparatus for processing a compressed image in an order other than the order in which it was compressed
JP4540585B2 (ja) * 2005-10-20 2010-09-08 パナソニック株式会社 符号化装置及び復号化装置
US7903973B1 (en) * 2005-12-23 2011-03-08 Lockheed Martin Corporation Dynamic temporal duration optical transmission privacy
KR100813877B1 (ko) * 2006-05-11 2008-03-18 전자부품연구원 효율적인 h.264/avc cavlc 디코딩 방법
US7885473B2 (en) * 2007-04-26 2011-02-08 Texas Instruments Incorporated Method of CABAC coefficient magnitude and sign decoding suitable for use on VLIW data processors
US7813567B2 (en) * 2007-04-26 2010-10-12 Texas Instruments Incorporated Method of CABAC significance MAP decoding suitable for use on VLIW data processors
CN101335000B (zh) * 2008-03-26 2010-04-21 华为技术有限公司 编码的方法及装置
US7876257B2 (en) * 2008-04-28 2011-01-25 Mitsubishi Electric Research Laboratories, Inc. Method and apparatus for compressing SAR signals

Also Published As

Publication number Publication date
EP2271118A3 (de) 2011-05-04
ES2730954T3 (es) 2019-11-13
EP1965590B1 (de) 2009-10-28
EP2919390B1 (de) 2019-04-03
ES2279945T3 (es) 2007-09-01
US20180332311A1 (en) 2018-11-15
DK1742483T3 (da) 2008-05-13
ATE354258T1 (de) 2007-03-15
US20170034541A1 (en) 2017-02-02
ATE406051T1 (de) 2008-09-15
DE60318918D1 (de) 2008-03-13
ES2332159T3 (es) 2010-01-27
KR20100052547A (ko) 2010-05-19
DE60311734D1 (de) 2007-03-29
US20170034540A1 (en) 2017-02-02
EP2765707A2 (de) 2014-08-13
EP1742484B1 (de) 2008-05-28
US10057602B2 (en) 2018-08-21
CA2448771C (en) 2012-05-29
MXPA03011198A (es) 2004-02-26
ES2309913T3 (es) 2008-12-16
KR101001459B1 (ko) 2010-12-14
US9054734B2 (en) 2015-06-09
DE60323171D1 (de) 2008-10-02
KR101001417B1 (ko) 2010-12-14
AU2003235171A1 (en) 2003-11-03
KR20080041748A (ko) 2008-05-13
KR101001411B1 (ko) 2010-12-14
PT2765707E (pt) 2015-11-17
ES2297811T3 (es) 2008-05-01
US9661353B2 (en) 2017-05-23
US7305035B2 (en) 2007-12-04
AU2003235171C1 (en) 2009-01-08
EP1424856A1 (de) 2004-06-02
DK2752994T3 (en) 2015-11-09
CA2448771A1 (en) 2003-10-30
US9025671B2 (en) 2015-05-05
SI1742484T1 (sl) 2008-08-31
KR101001097B1 (ko) 2010-12-14
US20080260037A1 (en) 2008-10-23
CA2625292A1 (en) 2003-10-30
JP4368575B2 (ja) 2009-11-18
KR20080041747A (ko) 2008-05-13
EP2752994A1 (de) 2014-07-09
DK2765707T3 (en) 2015-10-12
BR0304543A (pt) 2004-08-03
KR20080041750A (ko) 2008-05-13
KR20100051864A (ko) 2010-05-18
US10623781B2 (en) 2020-04-14
US10063890B2 (en) 2018-08-28
US10027990B2 (en) 2018-07-17
EP1742483B1 (de) 2008-01-23
BRPI0304543B1 (pt) 2018-02-14
KR101001053B1 (ko) 2010-12-14
ATE385140T1 (de) 2008-02-15
ES2886861T3 (es) 2021-12-21
HUE044271T2 (hu) 2019-10-28
US20170034539A1 (en) 2017-02-02
EP3515071B1 (de) 2021-06-30
EP2765707B1 (de) 2015-08-19
US20080260038A1 (en) 2008-10-23
PT2919390T (pt) 2019-07-11
EP2271118A2 (de) 2011-01-05
ES2307267T3 (es) 2008-11-16
DK2919390T3 (da) 2019-07-15
US20080260039A1 (en) 2008-10-23
EP1965590A1 (de) 2008-09-03
US9020041B2 (en) 2015-04-28
EP2343903A1 (de) 2011-07-13
US20170034514A1 (en) 2017-02-02
EP2271118B1 (de) 2012-11-07
ES2550993T3 (es) 2015-11-13
DE60321406D1 (de) 2008-07-10
KR20040105543A (ko) 2004-12-16
SI1742483T1 (sl) 2008-04-30
US9020040B2 (en) 2015-04-28
EP1742484A1 (de) 2007-01-10
ES2388479T3 (es) 2012-10-15
AU2003235171B8 (en) 2003-11-03
EP2117236B1 (de) 2012-07-11
KR100975486B1 (ko) 2010-08-11
CA2625292C (en) 2012-05-29
US9031133B2 (en) 2015-05-12
US20150208099A1 (en) 2015-07-23
US20050099522A1 (en) 2005-05-12
EP1742483A1 (de) 2007-01-10
EP1744560B1 (de) 2008-08-20
EP3515072A1 (de) 2019-07-24
EP2765707A3 (de) 2014-08-20
ES2549252T3 (es) 2015-10-26
EP2919390A1 (de) 2015-09-16
WO2003090472A1 (en) 2003-10-30
EP2343903B1 (de) 2014-05-21
KR20080041751A (ko) 2008-05-13
US20080056374A1 (en) 2008-03-06
JP2004007381A (ja) 2004-01-08
EP1424856A4 (de) 2004-11-24
EP3515071A1 (de) 2019-07-24
ATE447295T1 (de) 2009-11-15
DK1742484T3 (da) 2008-08-18
ATE397355T1 (de) 2008-06-15
KR101001478B1 (ko) 2010-12-14
DE60329873D1 (de) 2009-12-10
DE60318918T2 (de) 2009-01-08
PT1965590E (pt) 2009-11-24
CN1522544A (zh) 2004-08-18
EP1424856B1 (de) 2007-02-14
CN1319385C (zh) 2007-05-30
BRPI0304543B8 (pt) 2020-12-29
PT2752994E (pt) 2015-10-26
EP2752994B1 (de) 2015-07-29
EP2752994B8 (de) 2015-09-02
EP3515072B1 (de) 2021-06-30
ES2886874T3 (es) 2021-12-21
PT1742484E (pt) 2008-06-12
PT1744560E (pt) 2008-09-10
KR20080041749A (ko) 2008-05-13
EP2117236A2 (de) 2009-11-11
EP1744560A1 (de) 2007-01-17
KR100975487B1 (ko) 2010-08-11
US10034025B2 (en) 2018-07-24
US20080063083A1 (en) 2008-03-13
EP2117236A3 (de) 2011-05-04
AU2003235171B2 (en) 2007-12-20
PT2117236E (pt) 2012-09-24

Similar Documents

Publication Publication Date Title
DE60311734T2 (de) Codierungsverfahren mit variabler länge und decodierungsverfahren mit variabler länge
DE60312620T2 (de) Codierungs- und decodierungsverfahren mit variabler länge
DE60203492T2 (de) Bildkodierungsverfahren und bilddekodierungsverfahren
DE60311530T2 (de) Bildcodierungsverfahren
DE60318307T2 (de) Bilddecodierungsverfahren für S-pictures mit Pufferrücksetzung und PN Umstellung für kontinuität.
DE60320243T2 (de) Bewegungsvektorcodierungsverfahren und bewegungsvektordecodierungsverfahren
JP4767992B2 (ja) 可変長符号化方法および可変長復号化方法
JP4592823B2 (ja) 可変長復号化装置
AU2008201313B2 (en) Variable length coding method and variable length decoding method
JP2002209111A (ja) 画像符号化装置、画像通信システムおよびプログラム記録媒体

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: PANASONIC CORP., KADOMA, OSAKA, JP