DE69637067T2 - System zur variablen Längendekodierung - Google Patents

System zur variablen Längendekodierung Download PDF

Info

Publication number
DE69637067T2
DE69637067T2 DE69637067T DE69637067T DE69637067T2 DE 69637067 T2 DE69637067 T2 DE 69637067T2 DE 69637067 T DE69637067 T DE 69637067T DE 69637067 T DE69637067 T DE 69637067T DE 69637067 T2 DE69637067 T2 DE 69637067T2
Authority
DE
Germany
Prior art keywords
code
decoding
decoded
data
coding
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 - Fee Related
Application number
DE69637067T
Other languages
English (en)
Other versions
DE69637067D1 (de
Inventor
Takeshi Higashi-Murayama-shi Nagai
Yoshihiro 604 Kureare Toshiba Yoshin Yokohama-shi Kikuchi
Toshiaki Yokohama-shi Watanabe
Takeshi Shibuya-ku Chujoh
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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
Priority claimed from JP26038395A external-priority patent/JP3431368B2/ja
Priority claimed from JP8055096A external-priority patent/JPH09182073A/ja
Application filed by Toshiba Corp filed Critical Toshiba Corp
Publication of DE69637067D1 publication Critical patent/DE69637067D1/de
Application granted granted Critical
Publication of DE69637067T2 publication Critical patent/DE69637067T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • H04L1/0084Formats for payload data
    • 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/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/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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
    • 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/1887Methods 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 variable length codeword
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • 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/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • H04N19/66Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving data partitioning, i.e. separation of data into packets or partitions according to importance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • H04N19/69Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving reversible variable length codes [RVLC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

  • Hintergrund der Erfindung
  • Die Erfindung betrifft allgemein ein Bewegtbild-Decodiersystem, das in einer Vorrichtung/einem System zum Übertragen, Speichern und Wiedergeben eines Bewegtbildes, wie etwa einem Videotelefon, einer Videokonferenzeinheit, einem transportierbaren bzw. tragbaren Informationsendgerät, einem digitalen Videodisksystem und einer digitalen Fernsehrundübertragungseinheit vorgesehen ist. Im Einzelnen betrifft die Erfindung ein System zum Komprimieren und Codieren von Bilddaten in eine geringere Menge von Daten. Die Erfindung betrifft insbesondere ein Bewegtbild-Decodiersystem, das eine große Fehlerwiderstandsfähigkeit hat, selbst wenn die Codierbilddaten mittels eines Mediums bzw. Trägers übertragen/gespeichert werden, das bzw. der leicht Fehler erzeugt, wie etwa ein Funkkanal, und das das Bewegtbild in guter Qualität übertragen/speichern kann.
  • Die Erfindung betrifft allgemein ein Decodierungssystem mit variabler Wortlänge.
  • In den zurückliegenden Jahren sind als Technik zur Komprimierung und zur Codierung von Bilddaten in eine geringere Menge von Daten zum effizienten Übertragen und Speichern der Bilddaten verschiedene Verfahren entwickelt und vorgeschlagen worden, wie etwa die Bewegungskompensation, die diskrete Konsinustransformation, die Unterbandcodierung (subband coding), die Pyramidencodierung und die Kombination davon. Insbesondere ist als internationales Standardverfahren zum Komprimieren und Codieren eines Bewegtbildes "ISO-MPEG1, MPEG2, ITU-T·H. 261, H. 262" standardisiert. Alle diese sind in Verfahren beinhaltet, die eine diskrete Kosinustransformationscodierung mit bewegungskompensierter adaptiver Prädiktion verwenden, die im Detail in "International Standard of Multimedia Coding" (von Hiroshi Yasuda, veröffentlicht durch Maruzen, Juni 1991) (Literatur 1) usw. beschrieben sind. Der Ausdruck "MPEG" bedeutet "Moving Picture Experts Group", die einer Organisation entspricht, die die Standardisierungsarbeit eines Codierverfahrens zum Speichern eines Farbbewegungsbildes bearbeitet. Der Ausdruck "MPEG" wird ebenso als der Standardisierungsname eines Codierverfahrens verwendet, dessen Spezifikation durch die Organisation "MPEG" bestimmt worden ist.
  • Als ein Beispiel von konventionellen Bewegtbild-Codiersystemen zeigt das Blockschaltbild in 1(a) ein Codiersystem, das die diskrete Kosinustransformation mit adaptiver Bewegungskompensationsprädiktion verwendet. Zunächst werden einem Codiersystem eingespeiste Bilddaten 331 in Bereiche unterteilt, die durch eine Bereichsunterteileinheit 301 definiert sind. Danach werden gemäß der Darstellung von 2(a) die Codierungen in einer Blockreihenfolge von dem obersten linken Bereich zu dem untersten linken Bereich ausgeführt und wird gemäß der Darstellung von 2(b) eine kontinuierliche Codefolge in einem Rahmensynchronisationssignal konfiguriert. In einem Codierer wird zunächst die adapitive Bewegungskompensationsprädiktion ausgeführt. In 1(a) erfaßt ein Generator eines adaptiven Bewegungskompensationsprädiktionssignals einen Bewegungsvektor zwischen einem Eingangsbild und einem Bild, das in einem Rahmenspeicher 305 gespeichert worden ist und codiert und lokal decodiert worden ist, und erzeugt ein adaptives Bewegungskompensationsprädiktionssignal. Danach wird aus den Intrarahmencodierungen (ein Prädiktionssignal = 0), bei denen die Bewegungskompensationsprädiktion und das Eingangssignal in der Codierung, wie sie sind, gesendet werden, ein für die Codierung geeigneter Prädiktionsmodus ausgewählt und das entsprechende Prädiktionssignal 333 ausgegeben.
  • In einer Subtrahiereinheit 306 wird das ausgewählte Prädiktionssignal 333 von dem Eingangssignal zum Ausgeben eines Prädiktionsrestsignals 334 subtrahiert. Bezüglich jedem Block einer vorbestimmten Größe wird die diskrete Kosinustransformation (DCT) des Prädiktionsrestsignals 334 mittels einer diskreten Kosinustransformationseinheit 307 ausgeführt und wird ihre Quantisierung mittels einer Quantiziereinheit 308 ausgeführt. Die Ausgabe der Quantiziereinheit 308 wird in zwei Abschnitte unterteilt, eine davon wird mit dem Bewegungsvektor mittels eines Multiplexers 309 gemultiplext, um ausgegeben zu werden, und der andere davon wird invers quantiziert mittels einer inversen Quantiziereinheit 312 und die inverse bzw. umgekehrte diskrete Kosinustransformationseinheit (inverse DCT) davon wird durch eine Inverse-Diskrete-Konsinustransformationseinheit 313 ausgeführt. Die Ausgabe der Inverse-Diskrete-Konsinustransformationseinheit 313 wird zu dem adaptiven Prädiktionssignal 333 mittels einer Addiereinheit 314 addiert, um in dem Rahmenspeicher 305 aufgezeichnet zu werden.
  • Bei einem derartigen konventionellen Bewegtbildcodiersystem bestehen die folgenden Probleme: Zunächst bestehen die Probleme darin, dass, falls ein Fehler bei einem Abschnitt eines Codes mit variabler Wortlänge auftritt, ein Außertrittfallen der Codierung mit variabler Wortlänge erzeugt wird, und dass, selbst wenn die nachfolgenden Daten korrekt empfangen werden, sie in einen fehlerhaften Wert decodiert werden. Folglich beeinflußt der Fehler in diesem Abschnitt die nachfolgende Decodierung, die mit einer großen Verschlechterung der Bildqualität in Bezug steht. Aus diesem Grund werden bei einem konventionellen Verfahren, falls ein Fehler erfasst wird, die Daten nicht berücksichtigt, bis das Rahmensynchronisationssignal (PSC) des nächsten Rahmens empfangen wird. Wird jedoch eine derartige Verarbeitung ausgeführt, wird die Bildqualität stark verschlechtert, da die Datenmenge im Vergleich zu der natürlichen Datenmenge stark verringert wird.
  • Als ein Verfahren zum Lösen derartiger Probleme haben Nakamura und Nakai ein hocheffizientes Bewegtbild-Codierverfahren, das die Fehlerwiderstandsfähigkeit berücksichtigt, in dem Picture Coding Symposium 1994 (PCSJ94) vorgeschlagen (vgl. Literatur 2: "Moving Picture High-Efficient Coding Method Considering Error Resistance" von Matsui und Nakai, Picture Coding Symposium 1994, 1-1). Obwohl die Bewegtbildcodierung einen Code mit variabler Wortlänge verwendet, besteht der Nachteil, dass bei dem Code mit variabler Wortlänge das Außertrittfallen auftritt, falls ein Fehler darin auftritt. Der Code mit variabler Wortlänge ist jedoch ebenso dadurch gekennzeichnet, dass, selbst wenn das Außertrittfallen in Folge von Fehlern auftritt, er decodiert wird, wie er ist, so dass die Pause zwischen Codierungen automatisch mit der korrekten Pause übereinstimmt, so dass seine Synchronisation wiederhergestellt wird. Selbst wenn der Synchronismus wiederhergestellt wird, ist es unmöglich, einen Bereich zu identifizieren, der den Daten entspricht, so dass die Daten nach einer Synchronisationswiederherstellung nicht wieder verwendet werden können. Das vorstehende Verfahren ist dadurch gekennzeichnet, dass das Codierungsserienbeschreibende Verfahren von der konventionellen Anordnung der Bereiche zu der Anordnung einer Vielzahl von Einheiten von Bereichen in der hinteren Prädiktionsrestcodierungsfolge geändert wird, nachdem eine Codierung mit variabler Wortlänge in die Einheiten von Bereichen gemäß den Inhalten von Daten unterteilt ist, wie es in 1(b) gezeigt ist, so dass die selbst synchronisierende Heilung der Codierung mit variabler Wortlänge verwendet werden kann. In diesem Verfahren wird, selbst wenn ein Fehler auftritt, die Decodierung aufgeführt, wie sie ist, bis das Rahmensynchronisationssignal des nächsten Rahmens empfangen wird, so dass es möglich ist, die Kopfdaten, die in dem Präfixabschnitt decodiert worden sind, zusammen mit dem deco dierten Wert des Reduktionsrestsignals in der Reihenfolge von dem Suffix zu verwenden, so dass die Menge verfügbarer Daten ansteigt.
  • Bei diesem Verfahren bestehen jedoch die nachstehenden Probleme. Bei einem Kanal mit einer hohen Fehlerrate, bei dem eine Vielzahl von Fehlern in Daten eines Rahmens vorhanden sind, verringern sich die verfügbaren Daten. Verringern sich die decodierbaren Bereiche, werden die Bereiche mit einer hohen Wahrscheinlichkeit zur Decodierung an einen bestimmten Bereich (dem oberen Abschnitt eines Bildschirms) unabhängig von der Charakteristik des Bildes konzentriert. D.h., dass nur unbedeutende Bereiche, wie etwa der Hintergrund, ausgespart werden und es uneffizient ist, da bedeutende Bereiche im Zentrum des Bildschirms vorhanden sind, wenn die gewöhnliche Verwendung betrachtet wird. Wenn die Bereiche, die nicht decodiert werden konnten, auf der Grundlage der Bereiche vorhergesagt werden, die decodiert werden konnten, muss der gesamte Bildschirm auf der Grundlage lokal konzentrierter Bereiche vorhergesagt werden, so dass es schwierig ist, die Bereiche vorherzusagen, die nicht decodiert werden können. Tritt ein Fehler in der ersten Hälfte der Kopfdaten auf, kann, selbst wenn alle die hinteren Prädiktionsrestdaten decodiert werden können, nur der Bereich decodiert werden, in dem die erste Hälfte der Kopfdaten decodiert werden konnte.. D.h., da die hinteren PrädiktionsPrädiktionsdaten auf der ersten Hälfte der Kopfdaten beruhen, sind die Daten, die decodiert werden konnten, nicht nötig.
  • 1(c) zeigt ein Blockschaltbild zur Veranschaulichung des prinzipiellen Aufbaus eines konventionellen Bewegtbild-Decodiersystems. Das System ist derart ausgeführt, dass eine Decodierung eines Bilddatensignals durch eine Betriebsweise erlangt wird, die umgekehrt zu der von 1(a) ist.
  • 3 zeigt eine Darstellung zur Veranschaulichung eines Beispiels von konventionellen Abtastreihenfolgen von DCT-Koeffizienten. Die Abtastung wurde in Zick-Zack-Form als Verlauf dieser Fig. ausgeführt.
  • 4 zeigt ein Beispiel von konventionellen Codierverfahren zum Einfügen von Synchronisationssignalen in Rahmen. Wird die Codierung der Bereiche gemäß der Darstellung von 4(a) ausgeführt, wird ein Synchronisationssignal bei jeder Blockzeileneinheit (n ≥ 1) gemäß der Darstellung von 4(b) eingefügt, so dass die Gelegenheit für eine Synchronisationsheilung ansteigt.
  • Wie vorstehend angeführt, besteht bei konventionellen Bewegtbild-Codier- und/oder Decodiersystemen ein Nachteil darin, dass, falls ein Fehler in einem Code mit variabler Wortlänge auftritt, die Qualität des decodierten Bildes in Folge des Außertrittfallens des Signals mit variabler Wortlänge stark verringert wird. Es besteht ebenso der Nachteil, dass, falls nur ein Teil der Bilddaten in Folge des Fehlers decodiert werden kann, die Wahrscheinlichkeit der Decodierung jeder der Bereiche auf einem bestimmten Abschnitt konzentriert wird, was ineffizient ist.
  • Dabei ist ein Code mit variabler Wortlänge eine Reihe von Codes, bei welchen auf der Grundlage der Häufigkeit des Auftretens von Symbolen ein Code mit kurzer Wortlänge einem Symbol, dass häufig auftritt, zugeordnet wird und ein Code mit einer großen Länge einem Symbol zugeordnet wird, das selten auftritt, um die mittlere Codelänge zu verkürzen. Wenn daher der Code mit variabler Wortlänge verwendet wird, kann die Datenmenge im Vergleich zu den Daten vor der Codierung stark komprimiert werden. Als Verfahren zum Konfigurieren eines derartigen Codes mit variabler Wortlänge ist der Huffmann-Algorithmus, der der geeignetste für eine speicherlose Quelle ist, bekannt.
  • Bei dem Code mit variabler Wortlänge besteht ein allgemeines Problem darin, dass, wenn ein Fehler bei der Codierung von Daten in Folge eines Kanalfehlers oder aus weiteren Gründen in die Codierdaten eingemischt wird, die Daten nach dem Einmischen des Fehlers übertragen werden, so dass die Daten durch ein Decodiersystem nicht korrekt decodiert werden können. Aus diesem Grund werden allgemein, wenn ein Fehler auftreten kann, Synchronisiercode an regelmäßigen Intervallen zum Verhindern der Ausbreitung des Fehlers eingefügt. Den Synchronisiercodes wird ein Bit-Muster zugewiesen, das durch Kombination von Codes mit variabler Wortlänge nicht auftritt. Gemäß diesem Verfahren kann, selbst wenn ein Fehler bei der Codierung von Daten auftritt, so dass die Decodierung nicht ausgeführt werden konnte, die Ausbreitung des Fehlers zum korrekten Decodieren der Daten durch Suchen des nächsten Synchronisiercodes verhindert werden. Falls jedoch derartige Synchronisiercode verwendet werden, ist es unmöglich, die Codierdaten zwischen der Stelle, an welcher ein Fehler auftritt, so dass eine korrekte Decodierung nicht möglich ist, und der Stelle zu Decodieren, an der der nächste Synchronisiercode gesucht wird, wie es in 33(a) gezeigt ist.
  • Es ist daher ein Verfahren zum Ändern der Konfiguration eines Codes mit variabler Wortlänge von einer gewöhnlichen Konfiguration, wie sie in 34 gezeigt ist, in eine weitere Konfiguration, wie sie in 35 gezeigt ist, bekannt, so dass er in der üblichen Vorwärtsrichtung und der Rückwärtsrichtung decodiert werden kann. Darüber hinaus kann ein derartiger Code für eine Rückwärtswiedergabe in einem Speichermedium wie etwa einem Plattenspeicher, der Codierdaten speichert, verwendet werden, da die Codierdaten ebenso in der Rückwärtsrichtung gelesen werden können. Ein derartiger Code mit variabler Wortlänge, der in der Vorwärtsrichtung als auch in der Rückwärtsrichtung decodiert werden kann, wird nachstehend als "reversibler Code" bezeichnet. Ein Beispiel von reversiblen Codes ist in der japanischen Patentoffenlegungsschrift Nr. 530027 mit dem Titel "Reversible and Variable-Length Coding Method" offenbart. Der reversible Code ist ein Code mit variabler Wortlänge, der in der Rückwärtsrichtung und nicht nur in der Vorwärtsrichtung decodiert werden kann, indem Bits dem Suffix von Codeworten des Huffmann-Code hinzugefügt werden, der ein Code mit variabler Wortlänge ist, der in der Vorwärtsrichtung decodierbar ist, wie es in 34 gezeigt ist, unter der Bedingung, dass die jeweiligen Codeworte nicht mit dem Suffix eines anderen Codewortes größerer Länge übereinstimmen, wie es in 35 gezeigt ist.
  • Da jedoch bei dem reversiblen Code Bits dem Suffix von Codeworten eines Codes mit variabler Wortlänge, die nur in der Vorwärtsrichtung decodiert werden können, hinzugefügt werden, wird die Zahl nutzloser Bits erhöht, so dass die mittlere Codelänge erhöht wird. Folglich wird im Vergleich zu einem Code mit variabler Wortlänge, der nur in der Vorwärtsrichtung decodiert werden kann, die Codiereffizienz stark verringert.
  • Ein weiteres Problem besteht darin, das ein konventioneller reversibler Code nicht praktikabel ist, da die Speicherkapazität, die für ein Codiersystem und/oder Decodiersystem mit variabler Wortlänge notwendig ist, erhöht wird, wenn die Zahl der Quellsymbole groß ist. Ein Beispiel für den Fall, dass die Zahl der Quellsymbole groß ist, ist die Codierung von DCT-Koeffizienten, die häufig für die Bilddatencodierung eines Bewegtbildes oder eines Stehbildes verwendet werden. Bei der Bilddatencodierung wird gewöhnlich eine 8×8 DCT (diskrete Kosinustransformierung) ausgeführt und wird dann die lineare Quantizierung von 8 Bits bezüglich orthogonal transformierten Koeffizienten, genannt DCT-Koeffizienten ausgeführt, die auf diese Weise erlangt werden. Danach wird bezüglich den quantizierten DCT-Koeffizienten die Zick-Zack-Abtastung, die von ei nem niedrigen Bereich startet, ausgeführt und wird die Codierung mit variabler Wortlänge als ein Satz der Koeffizienten eines Null-Laufes (zero-run) und von Nicht-Null (not-zero) ausgeführt.
  • Beispielsweise in der ITU-T Entwurfempfehlung H. 263 (1995) liegt der Quantizierunsindexwert zwischen -127 und +127 (da der Indexwert 0 im Lauf ist, ist die Indexzahl 253), ist das Maximum der Null-Lauf-Zahl 63 und erfolgt eine Codierung für die Unterscheidung, ob es sich bei dem letzten DCT-Koeffizienten des Blocks um einen Nicht-Null-Koeffizient handelt. Aus diesem Grund ist die Zahl der Quellsymbole sehr groß, d.h. 253 × 64 × 2 = 32384. Daher wird in der H. 263, obwohl der DCT-Koeffizient, der eine große Auftrittswahrscheinlichkeit hat, durch den Code mit variabler Wortlänge codiert wird, der DCT-Koeffizient mit einer geringen Auftrittswahrscheinlichkeit durch einen Code mit fixer Wortlänge von insgesamt 15 Bits codiert, der einen Code mit einem Bit als Code, der die Unterscheidung repräsentiert, ob es sich um den letzten Nicht-Null-Koeffizienten des Blocks handelt, einen Code von 6 Bits für einen Null-Lauf und einen Code von 8 Bits für einen Quantizierungsindex enthält, und es wird danach ein Code, der als Escape-Code bezeichnet wird, dem Präfix des Codes mit fester Wortlänge hinzugefügt.
  • Falls Codeworttabellen alle die Codeworte aufweisen, kann die Codierung und/oder Decodierung ebenso ausgeführt werden. Da jedoch gemäß der vorstehenden Codekonfiguration der Code mit fixer Wortlänge von 15 Bits unabhängig von dem Code mit variabler Wortlänge codiert und/oder decodiert werden kann, können nur DCT-Koeffizienten mit einer hohen Auftrittswahrscheinlichkeit und eine Codeworttabelle mit Escape-Coden vorbereitet werden. Daher kann die Codeworttabelle von Coden mit variabler Wortlänge zur Verringerung der Speicherkapazität entfallen.
  • Wie vorstehend angeführt ist es jedoch bei konventionellen reversiblen Coden notwendig, Bits dem Suffix der Codeworte eines Codes mit variabler Wortlänge, der nur in der Vorwärtsrichtung decodiert werden kann, hinzuzufügen, so dass der Escape-Code nicht hinzugefügt werden kann. Daher ist es notwendig, Codeworte vorzubereiten, die allen den Quellsymbolen entsprechen, selbst wenn die Zahl der Quellsymbole groß ist, so dass die Speicherkapazität immens wird.
  • Wie vorstehend angeführt werden die konventionellen reversiblen Code (d.h. die Code mit variabler Wortlänge, die in der Vorwärtsrichtung und in der Rückwärtsrichtung decodiert werden können), durch Hinzufügen von Bits zu dem Suffix der Codeworte eines Codes mit variabler Wortlänge, der nur in der Vorwärtsrichtung decodiert werden kann, konfiguriert. Daher besteht ein Nachteil darin, dass die Zahl von nutzlosen Bitmustern erhöht wird, so dass die mittlere Codelänge erhöht wird. Darüber hinaus besteht ein Nachteil darin, dass ein Codiersystem und/oder Decodiersystem mit variabler Wortlänge, das eine derartigen reversiblen Code verwendet, nicht praktikabel ist, da es notwendig ist, eine Codeworttabelle mit Codeworten in allen Fällen vorzubereiten, die allen den Quellsymbolen entsprechen und da eine große Speicherkapazität erforderlich ist, falls die Zahl der Quellsymbole wie bei der Bilddatencodierung groß ist.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Es ist daher eine Aufgabe der vorliegenden Erfindung, ein Bewegtbild-Decodierungssystem bereitzustellen, wie es in den Ansprüchen definert ist, das eine starke Störung der Qualität eines decodierten Bildes selbst dann begrenzen kann, falls ein Fehler in irgendwelchen Abschnitten eines Codes auftritt, und dass effizient den Code selbst dann decodieren kann, falls nur ein Teil des Codes aufgrund des Fehlers decodiert werden kann.
  • Um die zuvor erwähnte und andere Aufgaben zu erreichen, weist ein Bewegtbild-Codierungssystem auf: ein Codiermittel zum Codieren von eingegebenen Bilddaten; ein Unterteilungsmittel zum Unterteilen eines Codestrings, der von dem Codiermittel ausgegeben wird, in eine Mehrzahl von Codestrings; und ein Codezeilenumordnungsmittel zum Ausgeben von einem aus der Mehrzahl von Codestrings in einer Eingabereihenfolge, und zum Ausgeben des anderen Codestrings in einer zu der Eingabereihenfolge umgekehrten Reihenfolge nach dem Unterteilen des Codestrings in vorbestimmte Einheiten. Bei diesem System wird der Codestring durch zwei Codestrings ausgedrückt, von denen einer in der Vorwärtsrichtung von dem Präfix zu dem Suffix angeordnet ist, und von denen der andere in der Rückwärtsrichtung von dem Suffix zu dem Präfix angeordnet ist, anders als bei dem herkömmlichen Codieren, bei dem der Codestring durch einen Codestring ausgedrückt wird, so dass der Fehler, der in einem der Datensätze erzeugt wird, die anderen Daten nicht beeinflusst. Darum ist es möglich, zu verhindern, dass die Bildqualität durch Decodieren der Daten, in denen irgendwelche Fehler nicht gefunden worden sind, stark gestört wird, und es ist außerdem möglich, die Daten, die aufgrund von Fehlern nicht decodiert worden sind, mittels der Daten, die decodiert worden sind, vorherzusagen.
  • Ein Bewegtbild-Codierungssystem weist auf: ein Bereichsunterteilungsmittel zum Unterteilen eines Bilddatensignals, das eingegeben wird, für jeden Rahmen (Frame) in eine Mehrzahl von Bereichen; ein Bereichsumordnungsmittel zum Umordnen (Rearrangieren) von Bereichen bezüglich jedes der Bereiche, die durch das Bereichsunterteilungsmittel unterteilt worden sind; und ein Codiermittel zum Codieren der entsprechenden Bereiche, die durch das Bereichsunterteilungsmittel unterteilt worden sind. Bei diesem System sind, wenn der Codestring durch zwei Codestrings ausgedrückt wird, anders als bei der herkömmlichen Codierung, bei der der Codestring durch einen Codestring ausgedrückt wird, deren Codierreihenfolgen voneinander derart unterschiedlich, dass sie komplementär zueinander sind. Darum ist es, selbst falls nur ein Teil der Daten decodiert werden konnte, da Fehler in einer oder beiden Zeilen aufgetreten sind, möglich, die Wahrscheinlichkeit des Decodieren des gesamten Bildes (Screens) oder von wichtigen Bereichen durch Kombinieren der beiden Datenätze zu erhöhen.
  • Ein Bewegtbild-Decodiersystem weist auf: ein Eingabemittel zum Eingeben eines ersten Codestrings, der in einer Reihenfolge von dem Präfix zu dem Suffix angeordnet ist, und eines zweiten Codestrings, der in einer Reihenfolge von dem Suffix zu dem Präfix in der Rückwärtsrichtung angeordnet ist; und ein Decodiermittel zum Decodieren des ersten Codestrings in einer Reihenfolge von dem Präfix m dem Suffix und zum Decodieren des zweiten Codestrings in einer Reihenfolge von dem Suffix zu dem Präfix in der Rückwärtsrichtung. In diesem System werden der erste Codestring, der in der Vorwärtsrichtung von dem Präfix zu dem Suffix angeordnet ist, und die zweite Zeile, die in der Rückwärtsrichtung von dem Suffix zu dem Präfix angeordnet ist, decodiert. Darum kann, selbst falls ein Fehler in einer der Zeilen auftritt, das Decodieren ohne Beeinflussen der anderen Zeile ausgeführt werden.
  • Ein Bewegtbild-Decodiersystem weist auf: ein Eingabemittel zum Eingeben des Codestrings, der in eine Mehrzahl von Bereichen bezüglich jedes der Rahmen unterteilt worden ist; ein Decodiermittel zum Decodieren des Codestrings von jedem der Bereiche, der von dem Eingabemittel geliefert wird, und ein Umordnungsmittel zum Umordnen der Daten jedes der Bereiche, die von dem Decodiermittel geliefert werden, in der korrekten Reihenfolge. In diesem System sind in dem Codestring die Bereiche in der Reihenfolge der Wichtigkeit in dem umgeordneten Bild angeordnet. Darum, selbst falls ein Fehler in einem Teil der Daten auftritt, ist der Bereich, der der codiert werden konnte, ein wichtiger Abschnitt, so dass es möglich ist, das Fehlen des wichtigen Abschnitts des Bildes im Vergleich zu dem herkömmlichen System zu begrenzen.
  • Bin Bewegtbild-Decodiersystem weist ein Detektionsmittel zum Detektieren eines Fehlers bezüglich des ersten und zweiten Codestrings bzw. der/des codierten Daten/Signals auf, bei dem das Decodieren nur unter Verwendung der Daten ausgeführt wird, in denen kein Fehler durch das Fehlerdetektionsmittel detektiert worden ist. In diesem System wird die Detektion eines Fehlers ausgeführt, wenn der unterteilte Codestring decodiert wird. Darum ist es möglich, ein reproduziertes Bild mittels nur der korrekt decodierten Daten zu bilden. Es ist auch möglich, die Daten, die nicht decodiert werden konnten, mittels der korrekt detektierten Daten vorherzusagen und zu ergänzen.
  • Ein Bewegtbild-Decodiersystem weist ein Fehlerdetektionsmittel zum Detektieren eines Fehlers bezüglich des Codestrings und der/des decodierten Daten/Signals; und ein Vorhersagemittel zum Vorhersagen des Bereichs, der nicht decodiert werden konnte, auf der Basis des decodierten Bereichs, wenn ein Fehler mittels des Fehlerdetektionssystems detektiert worden ist, auf. Bei diesem System können die Bereiche mit einer höheren Wahrscheinlichkeit der Decodierung in beiden Teilen des in zwei Teile geteilten Codestrings die Bereiche mit einer niedrigeren Wahrscheinlichkeit der Decodierung in den beiden Teilen des in zwei Teile geteilten Codestrings ergänzen. Darum ist es möglich, die Daten des Bereichs, dem Daten fehlen, vorherzusagen und zu ergänzen.
  • Ein Bewegtbild-Codiersystem weist ein Änderungsmittel zum Ändern der Reihenfolge der Umordnung der Bereiche durch das Bereichsumordnungsmittel; und ein Codiermittel zum Codieren der Daten, die repräsentativ für die Reihenfolge der Umordnung sind, auf. Bei diesem System kann die Codierreihenfolge der Bereiche entsprechend des Bildes geändert werden. Darum ist es, selbst falls die Daten aufgrund von Fehlern nicht vollständig decodiert werden konnten, möglich, die Wahrscheinlichkeit des Decodieren mindestens des wichtigen Abschnitts zu erhöhen.
  • Ein Bewegtbild-Decodierungssystem weist Mittel zum Umordnen und Decodieren von Bereichen entsprechend den Bereichsumordnungsdaten, die in dem Codestring enthalten sind, auf. Bei diesem System wird der Codestring, dessen Codierungsreichenfolge entsprechend des Bildes geändert worden ist, decodiert. Darum ist es, selbst falls die Daten aufgrund von Fehlern nicht vollständig decodiert werden konnten, möglich, die Wahrscheinlichkeit des Decodieren bezüglich des wichtigen Abschnitts der codierten Daten zu erhöhen.
  • Es ist eine andere Aufgabe der vorliegenden Erfindung, ein praktikables Codierungs- und/oder Decodierungssystem mit variabler Wortlänge, das in der Vorwärtsrichtung und in der Rückwärtsrichtung decodiert werden kann, anzugeben.
  • Im Einzelnen ist es Aufgabe der Erfindung, ein Codierungs- und/oder Decodierungssystem mit variabler Wortlänge bereitzustellen, das in der Vorwärtsrichtung und in der Rückwärtstrichtung decodiert werden kann und bei dem die Zahl der nutzlosen Bitmuster gering ist und die Codiereffizenz hoch ist.
  • Eine weitere Aufgabe der Erfindung ist die Bereitstellung eines Decodierungssystems und/oder eines Decodierungssystems mit variabler Wortlänge, das in der Vorwärtsrichtung und in der Rückwärtsrichtung decodiert werden kann und das eine große Speicherkapazität nicht benötigt, selbst wenn die Zahl der Quellsymbole groß ist.
  • Um die vorstehenden und anderen Aufgaben zu erreichen, weist ein Codierungssystem mit variabler Wortlänge, das Codeworte einer Mehrzahl von Quellsymbolen zuordnet, wobei die Codeworte eine Codelänge entsprechend der Wahrscheinlichkeit der Quellsymbole aufweisen, und das als codierte Daten die Codeworte, die den eingegebenen Quellsymbolen entsprechen, ausgibt, auf: eine Codeworttabelle zum Speichern einer Mehrzahl von Codeworten, die den Quellsymbolen entsprechen sollen, wobei die Codeworte so konfiguriert sind, dass sie die Pause zwischen Codes durch die Gewichte der Codeworte bestimmen können; und ein Codiermittel zum Auswählen eines Codewortes, das dem eingegebenen Quellsymbol entspricht, aus der Codeworttabelle und zum Ausgeben des ausgewählten Codewortes als codierte Daten.
  • Der Begriff „Gewicht eines Codewortes" entspricht einer Hamming-Distanz von dem Minimal- oder Maximalwert des Codeworts. Wenn das Codewort ein Binarcode ist, ist der Minimalwert des Codewortes gleich „0" in allen Fällen und der Maximalwert des Codewortes ist gleich „1" in allen Fällen, so dass das Gewicht des Codewortes der Zahl „1" oder „0" entspricht. Die Position, bei der das Gewicht des Codeworts ein vorbestimmter Wert ist, zeigt die Pause zwischen den Codes in dem Code variabler Länge an.
  • Bezüglich der Mehrzahl von Codeworten, die in der Codeworttabelle gespeichert sind, ist es unnötig, dass ein Code mit fester Länge, d.h. eine konstante Länge von Code, zu mindestens dem Präfix oder Suffix desselben addiert wird.
  • In dem Codierungssystem mit variabler Länge entsprechend des neunten Aspekts der vorliegenden Erfindung wird ein Code variabler Länge konfiguriert durch Codeworte, bei dem die Pause zwischen des Codes, d.h. die Codelänge, bestimmt wird durch das Gewicht des Codewortes, was ein Wert ist, der unabhängig von der Reihenfolge des Codewortes ist. Darum ist dieser Code variabler Länge ein reversibler Code, der in entweder der Vorwärtsrichtung oder der Rückwärtsrichtung decodiert werden kann, da die Pause zwischen den Codes in entweder der Vorwärtsrichtung oder der Rückwärtsrichtung gesucht werden kann.
  • Zusätzlich wird, anders als bei einem Code, bei dem Bits zu dem Suffix eines Codes variabler Länger addiert werden, der nur in der Vorwärtsrichtung decodierbar ist, wie ein reversibler Code, der in der zuvor erwähnten japanischen Patentoffenlegungsschrift offenbart ist, ein reversibler Code ursprünglich ohne das Hinzufügen von überschüssigen Bits konfiguriert, so dass es möglich ist, einen Code variabler Länge zu erhalten, bei dem die Anzahl der nutzlosen Bitmuster klein ist und bei dem die Codierungseffizienz groß ist.
  • Darüber hinaus kann ein Code variabler Länge in Übereinstimmung mit der Wahrscheinlichkeit der Erscheinung von Quellsymbolen erhalten werden durch Auswählen einer Mehrzahl von Code konfigurierenden Verfahren und eines Codes mit der minimalen Durchschnittscodelänge aus Parametern auf der Basis der Wahrscheinlichkeit der Quellsymbole.
  • Ein Decodierungssystem variabler Länge, das in der Vorwärtsrichtung und der Rückwärtsrichtung decodiert werden kann und das einen Code variabler Länge decodiert, in den Synchronisierungscodes bei regelmäßigen Intervallen eingesetzt sind, weist auf: ein Vorwärtsdecodiermittel zum Decodieren eines Codes variabler Länge in der Vorwärtsrichtung und Detektieren eines Fehlers eines Codewortes des Codes variabler Länge; ein Rückwärtsdecodiermittel zum Decodieren des Codes variabler Länge in der Rückwärtsrichtung und zum Detektieren eines Fehlers eines Codeworts des Codes variabler Länge; und ein Decodierwertentscheidungsmittel zum Entscheiden eines decodierten Wertes auf der Basis der decodierten Ergebnisse durch das Vorwärtsdecodiermittel und das Rückwärtsdecodiermittel, bei dem der decodierte Wert an der Position, in der der Fehler decodiert wird entsprechend der Ergebnisse der Detektion des Fehlers durch das Vorwärtsdecodiermittel und das Rückwärtsdecodiermittel.
  • Insbesondere bei dem Decodierwertentscheidungsmittel, (a) wenn Fehler sowohl durch das Vorwärtsdecodiermittel als auch das Rückwärtsdecodiermittel detektiert worden sind und wenn die detektierten Positionen der Fehler einander nicht passiert haben, wird nur das decodierte Ergebnis, bei dem kein Fehler detektiert worden ist, als der decodierte Wert verwendet, (b) wenn Fehler durch sowohl das Vorwärtsdecodiermittel als auch das Rückwärtsdecodiermittel detektiert worden sind und wenn die detektieren Positionen der Fehler einander passiert haben, wird das decodierte Ergebnis, bei dem kein Fehler durch sowohl das Vorwärtsdecodiermittel als auch das Rückwärtsdecodiermittel detektiert worden ist, als der decodierte Wert verwendet, (c) wenn ein Fehler durch das Vorwärtsdecodiermittel oder das Rückwärtsdecodiermittel detektiert worden ist, wird der decodierte Wert bezüglich des Codewortes an der Position, an der der Fehler detektiert worden ist, aufgegeben und der decodierte Wert in der Rückwärtsrichtung wird als der decodierte Wert bezüglich des nachfolgenden Codewortes verwendet, und (d) wenn Fehler bezüglich des selben Codewortes durch das Vorwärtsdecodiermittel und das Rückwärtsdecodiermittel detektiert worden sind, wird der detektierte Wert bezüglich des Codewortes an der Position, an der ein Fehler detektiert worden ist, aufgegeben und das decodierte Ergebnis in der Rückwärtsrichtung wird als der decodierte Wert bezüglich des nachfolgenden Codewortes verwendet.
  • Bei diesem Decodierungssystem variabler Länge ist es, wenn der decodierte Wert auf der Basis der decodierten Ergebnisse durch das Vorwärtsdecodiermittel und das Rückwärtsdecodiermittel, die eine Funktion zum Detektieren von Fehlern in Codeworten des Codes variabler Länge verwenden, entschieden wird, möglich, den reversiblen Code, der von dem zuvor erwähnten Codiersystem variabler Länge ausgegeben worden ist, gegenüber den Fehlern wie Kanalfehlern, durch Entscheiden des decodierten Wertes an der Position, an der die Fehler detektiert worden sind, entsprechend der detektierten Ergebnisse der Fehler durch das Vorwärtsdecodiermittel und das Rückwärtsdecodiermittel effektiv zu decodieren.
  • Ein Codiersystem variabler Länge, das eine Mehrzahl von Quellsymbolen zuordnet, wobei die Codeworte eine Codelänge aufweisen, die der Wahrscheinlichkeit des Quellsymbols entspricht, und das ein Codewort, dass dem eingegebenen Quellsymbol entspricht, als codierte Daten ausgibt, weist auf: eine Codeworttabelle zum Speichern einer Mehrzahl von Codeworten, die in der Vorwärtsrichtung und der Rückwärtsrichtung decodiert werden können, damit sie unterschiedlichen Quellsymbolen entsprechen; und ein Codiermittel zum Auswählen eines Codewortes, das dem eingegebenen Quellsymbol entspricht, aus der Codeworttabelle, wenn das Codewort, dass dem eingegebenen Quellsymbol entspricht, in der Codeworttabelle gespeichert worden ist, und zum Ausgeben des ausgewählten Codeworts als codierte Daten, und zum Ausgeben eines Codewortes, bei dem spezifische Codes (Escape-Codes), die in der Vorwärtsrichtung und der Rückwärtsrichtung codiert werden können, dem Präfix und Suffix eines Codes fester Länge hinzugefügt sind, als codierte Daten, wenn das Codewort, das dem eingegebenen Quellsymbol entspricht, nicht in der Codeworttabelle gespeichert war.
  • Ein Decodiersystem variabler Länge, das an ein Codiersystem variabler Länge entsprechend der elften Ausführungsform der vorliegenden Erfindung angepasst werden kann und das codierte Daten von Codes variabler Länge, die in der Vorwärtsrichtung und der Rückwärtsrichtung decodierbar sind, decodiert, weist auf: ein Vorwärtsdecodiermittel zum Decodieren eines Codes variabler Länge in der Vorwärtsrichtung; ein Rückwärtsdecodiermittel zum Decodieren eines Codes variabler Länge in der Rückwärtsrichtung; und ein Decodiermittel für einen Code mit fester Länge zum Decodieren eines Codes mit fester Länge, bei dem, wenn spezifische Codes (Escape-Codes), die repräsentativ für das Präfix und das Suffix eines Codes mit fester Länge sind, decodiert worden sind, wenn der Code variabler Länge durch das Vorwärtsdecodiermittel und das Rückwärtsdecodiermittel decodiert wird, die nachfolgenden codierten Daten durch das Decodiermittel für den Code mit fester Länge decodiert werden.
  • Bei dem Codiersystem mit variabler Länge und dem Decodiersystem mit variabler Länge entsprechend der elften und zwölften Aspekte der vorliegenden Erfindung ist es, z.B., möglich, ein Quellsymbol mit einer niedrigen Wahrscheinlichkeit der Erscheinung als einen Code mit fester Länge zu codieren, dem ein Escape-Code hinzugefügt wird, und es ist möglich den Codeabschnitt mit fester Länge unabhängig von einem reversiblen Code zu codieren und/oder zu decodieren, so dass es möglich ist, die maximale Codelänge zu begrenzen und die Speicherkapazität zu vermindern, falls die Anzahl der Quellsymbole, die eingegeben werden können, sich erhöht.
  • Ein Decodiersystem mit variabler Länge, das codierte Daten eines Codes variabler Länge, die in der Vorwärtsrichtung und der Rückwärtsrichtung decodierbar sind, decodiert. Bei diesem System wird die Codelänge eines Codes variabler Länge abgeleitet auf der Basis der Anzahl einer vorbestimmten „1" oder „0" des Codeworts, und der Wert, der durch ein Pascal-Dreieck bestimmt wird, wird dann zu dem Wert einer Verbindung hinzugefügt. Dann werden die Reihenfolgewerte von verschiedenen Codeworten der selben Codelänge mittels eines gerichteten Graphen abgeleitet, bei dem die Pfeile von jeder Verbindung zu nächsten Verbindung „1" und „0" der Codeworte entsprechen, und ein decodierter Wert wird mittels des Reihenfolgewertes und des gerichteten Graphen berechnet.
  • Bei diesem Decodiersystem variabler Länge ist es möglich, die Pause zwischen den Codes durch die Anzahl der Gewichte der Codeworte zu bestimmen, d.h., die Codelänge, ähnlich zu dem Codiersystem variabler Länge entsprechend der neunten Ausführungsform der vorliegenden Erfindung. Zusätzlich verwendet dieses System Codeworte variabler Länge, die die konfiguriert sind durch Codeworte, die in der Vorwärtsrichtung und der Rückwärtsrichtung decodierbar sind, wobei der Wert, der durch ein Pascal-Dreieck bestimmt wird, dem Wert einer Verbindung zugeordnet wird, und der decodierte Wert wird berechnet durch den gerichteten Graphen (Decodiergraph), bei dem die Pfeile von jeder Verbindung zu der nächsten Verbindung „1" und „0" der Codeworte entsprechen. Darum ist es möglich, den Code variabler Länge mit einer kleinen Speicherkapazität zu decodieren, selbst falls die Anzahl der Quellsymbole groß ist.
  • Ein Codiersystem variabler Länge, das einem orthogonalen Transformationskoeffizienten, der durch die orthogonale Transformierte jedes Blocks mittels eines Bewegtbild-Codierers erzeugt werden kann, ein Codewort, das eine Codelänge aufweist, die der Wahrscheinlichkeit des orthogonalen Transformationskoezienten entspricht, zuordnet und das das Codewort, das dem orthogonalen Transformationskoeffizienten entspricht, der durch den Bewegtbild-Codierer erzeugt worden ist, als codierte Daten ausgibt, weist auf: eine erste Codeworttabelle, die für jeden aus der Mehrzahl von Codiermodi des Bewegtbild-Codierers vorgesehen ist, zum Speichern einer Mehrzahl von Codeworten, die in der Vorwärtsrichtung und der Rückwärtsrichtung decodierbar sind, so dass die Codeworte entsprechend dem orthogonalen Transformationskoeffizienten des Blocks, der ein anderer als der letzte Block ist, entsprechen; eine zweite Codeworttabelle, die für eine Mehrzahl von Codiermodi des Bewegtbild-Codierers gemeinsam vorgesehen ist, zum Speichern einer Mehrzahl von Codeworten, die in der Vorwärtsrichtung und der Rückwärtsrichtung decodierbar sind, so dass die Codeworte entsprechend den orthogonalen Transformationskoeffizienten des letzten Blocks entsprechen; und ein Codiermittel zum Auswählen eines Codewortes, dass dem orthogonalen Transformationskoeffizienten entspricht, der durch den Bewegtbild-Codierer erzeugt worden ist, aus den ersten und zweiten Codeworttabellen und zum Ausgeben des ausgewählten Codeworts als codierte Daten.
  • Ein Decodiersystem variabler Länge, das an das Codiersystem variabler Länge entsprechend der vierzehnten Aspekt der vorliegenden Erfindung angepasst werden kann und bei dem ein Bewegtbild-Decodierer codierte Daten decodiert, die in einen Code variabler Länge decodiert sind, der einen orthogonalen Transformationskoeffizienten, der erzeugt worden ist durch die orthogonale Transformierte jeden Blocks mittels eines Bewegtbild-Codierers, in der Vorwärtsrichtung und der Rückwärtsrichtung decodieren kann, weist auf: ein Vorwärtsdecodiermittel zum Decodieren eines Codes variabler Länge in der Vorwärtsrichtung; und ein Rückwärtsdecodiermittel zum Decodieren eines Codes variabler Länge in der Rückwärtsrichtung, bei dem das Vorwärtsdecodiermittel den Code variabler Länge decodiert, wobei der letzte Block bestimmt wird auf der Basis der Erscheinung eines Codeworts, das repräsentativ für den orthogonalen Transformationskoeffizienten des letzten Blockes ist, und wenn das Rückwärtsdecodiermittel den Code variabler Länge decodiert, der Kopf des Blockes bestimmt wird durch das Codewort, das repräsentativ für den letzten orthogonalen Koeffizienten des letzten Blockes ist.
  • Da das Codierverfahren in einem Bewegtbild-Codierer/Decodierer eine Syntax aufweist, ist es für den Codierer/Decodierer erforderlich, dass er zum Decodieren eines Codes variabler Länge in beiden Richtungen in der Lage ist, und dass er ihn syntaktisch in beiden Richtungen decodieren kann. Das Codiersystem variabler Länge und das Decodiersystem variabler Länge entsprechend den vierzehnten und fünfzehnten Ausführungsformen können die zuvor erwähnten Anforderungen jedoch erfüllen. D.h., die Syntax in dem Bewegtbild-Codierer/Decodierer verspricht, dass die codierten Daten in einer Hierarchie derart ausgebildet sind, dass, z.B., die obere Hierarchie Modidaten aufweist, die repräsentativ für die codierten Modi, Bewegungsvektoren usw. sind, und dass die untere Hierarchie orthogonale Transformationskoeffizienten wie DCT-Koeffizienten enthält. Zusätzlich können entsprechend der Syntax des Bewegtbild-Codierers/Decodierers, angenommen, dass die Codiermodi in jedes der Blöcke (Makroblock) bereits in der unteren Hierarchie durch das Decodieren der oberen Hierarchie gefunden worden sind, die Decodierungen in beiden Richtungen ausgeführt werden, falls die Pause zwischen den Blöcken gesucht wird.
  • Bei dem Codiersystem und/oder dem Decodiersystem variabler Länge entsprechend der vierzehnten und fünfzehnten Aspekte der vorliegenden Erfindung ist die erste Codeworttabelle, die den orthogonalen Transformationskoeffizienten entspricht, die andere als der letzte des Blockes sind, bezüglich jedes der Mehrzahl der Codiermodi konfiguriert. Jedoch wird die zweite Codeworttabelle, die dem orthogonalen Transformationskoeffizienten des Letzten der Blöcke entspricht, für die entsprechenden Codiermodi gemeinsam benutzt, so dass es möglich ist, mit der Änderung der Codeworttabellen durch den Codiermodi Schritt zu halten und die Pause zwischen den Blöcken durch die Erscheinung des Codewortes, das repräsentativ für den letzten orthogonalen Transformationskoeffizienten des letzten Blockes ist, zu finden, so dass das Decodieren syntaktisch in beiden Richtungen sein kann.
  • In unterschiedlichen Codiermodi, z.B. in dem Intramode und dem Intermode, sind die erzeugten orthogonalen Transformationskoeffizienten unterschiedlich in ihrer Häufigkeit der Erscheinung, so dass es möglich ist, die Codiereffizienz durch unabhängiges Bereitstellen der zweiten Codeworttabelle zu erhöhen.
  • Kurzbeschreibung der Zeichnungen
  • Die Erfindung wird aus der nachstehenden detaillierten Beschreibung in Verbindung mit der angefügten Zeichnung von den bevorzugten Ausführungsbeispielen der Erfindung erläutert. Die Zeichnung soll jedoch nicht eine Beschränkung der Erfindung auf ein bestimmtes Ausführunsbeispiel mit sich bringen, sondern lediglich der Erläuterung und dem Verständnis dienen.
  • Es zeigen:
  • 1(a) ein Blockschaltbild eines konventionellen Bewegtbild-Codierungssystems;
  • 1(b) eine Darstellung zum Veranschaulichung einer Codefolge, die durch das konventionelle Bewegtbild-Codierungssystem codiert ist;
  • 1(c) ein Blockschaltbild zur Veranschaulichung eines konventionellen Bewegtbild-Decodiersystems;
  • 2 eine Darstellung zur Veranschaulichung der Codierreihenfolge des konventionellen Bewegtbild-Codiersystems;
  • 3 eine Darstellung zur Veranschaulichung eines Beispiels der konventionellen Reihenfolge zum Abtasten von DCT-Koeffizienten;
  • 4 eine Ansicht zur Veranschaulichung eines Beispiels von konventionellen Verfahren zum Einfügen von Synchronisiersignalen;
  • 5 ein Blockschaltbild zur Veranschaulichung des Grundkonzepts eines Bewegtbild-Codiersystems gemäß einem Ausführungsbeispiel der Erfindung;
  • 6 eine Darstellung zur Veranschaulichung einer Codefolge, die durch das Codierungssystem aus 5 ausgebildet ist;
  • 7 ein Blockschaltbild zur Veranschaulichung des ersten bevorzugten Ausführungsbeispiels eines Bewegtbild-Codierungssystems;
  • 8 eine Darstellung zur Veranschaulichung eines Beispiels der Reihenfolge zum Umordnen von Bereichen in einem Bewegtbild-Codierungssystem;
  • 9 eine Darstellung zur Veranschaulichung einer Codefolge, die durch ein Bewegtbild-Codierungssystem codiert ist;
  • 10 eine Darstellung zur Veranschaulichung eines Beispiels der Reihenfolge zum Umordnen von Bereichen in einem Bewegtbild-Codiersystem;
  • 11 eine Darstellung zur Veranschaulichung eines Beispiels der Reihenfolge zum Umordnen von Bereichen in einem Bewegtbild-Codiersystems;
  • 12 eine Darstellung eines Beispiels der Reihenfolge zum Umordnen von Bereichen, wenn der zentrale Bereich gemäß einem Ausführungsbeispiel der Erfindung festgelegt wird;
  • 13 eine Ansicht zur Veranschaulichung eines Verfahrens zum Anordnen einer Codefolge, wenn ein Ausführungsbeispiel der Erfindung auf die Code angewendet wird, die in beiden Richtung decodiert werden können;
  • 14 ein Blockschaltbild des zweiten bevorzugten Ausführungsbeispiels eines Bewegtbild-Codiersystems;
  • 15 eine Ansicht zur Veranschaulichung des Unterschieds zwischen dem ersten und dem zweiten bevorzugten Ausführungsbeispiel;
  • 16 eine Ansicht zur Veranschaulichung eines Beispiels der Reihenfolge zum Abtasten von DCT-Koeffizienten gemäß einem Ausführungsbeispiel der Erfindung;
  • 17 eine Ansicht zur Veranschaulichung eines Beispiels zum Teilen der Abtastung von DCT-Koeffizienten in der Reihenfolge, die die Beziehung zwischen der horizontalen und der vertikalen Richtung berücksichtigt;
  • 18 ein Blockschaltbild des bevorzugten Ausführungsbeispiels eines Bewegtbild-Decodiersystems gemäß der Erfindung;
  • 19 eine Ansicht des bevorzugten Ausführungsbeispiels entsprechend der Hierachiecodierung;
  • 20 eine Ansicht des bevorzugten Ausführungsbeispiels entsprechend der Hierachiecodierung;
  • 21 eine Ansicht zur Veranschaulichung eines Hierachiecodierungsverfahrens und eines Beispiels von konventionellen Hierachiecodierungsverfahren;
  • 22 eine Ansicht des bevorzugten Ausführungsbeispiel entsprechend der Hierachiecodierung;
  • 23 eine Ansicht zur Veranschaulichung des Auftretens von Fehlern in dem bevorzugten Ausführungsbeispiel entsprechend der Hierachiecodierung gemäß der Erfindung;
  • 24 eine Ansicht zur Veranschaulichung des bevorzugten Ausführungsbeispiels der Anwendung der Hierachiecodierung;
  • 25 eine Ansicht zur Veranschaulichung von drei Codefolgen gemäß einem Ausführungsbeispiel der Erfindung;
  • 26 eine Ansicht zur Veranschaulichung einer Codefolge, wenn die Verzögerung einer Verarbeitungsoperation gemäß einem Ausführungsbeispiel der Erfindung verringert werden kann;
  • 27 eine Ansicht zur Veranschaulichung, dass ein Verfahren zum Anordnen von Bereichen in der Reihenfolge der Bedeutung auf ein Verfahren zum Konfigurieren eines Rahmens durch eine Vielzahl von Synchronisationsblöcken gemäß einem Ausführungsbeispiel der Erfindung angewendet wird;
  • 28 eine Ansicht des bevorzugten Ausführungsbeispiels einer Codefolge, die für einen Code mit fixer Wortlänge angewendet wird, gemäß der Erfindung;
  • 29 eine Ansicht des weiteren bevorzugten Ausführunsbeispiels einer Codefolge, die auf einen Code mit fixer Wortlänge angewendet wird, gemäß der Erfindung;
  • 30 eine Ansicht des bevorzugten Ausführungsbeispiels einer Codefolge, die zusätzliche Daten verwendet, gemäß der Erfindung;
  • 31 eine Ansicht des bevorzugten Ausführungsbeispiels eines Bewegtbild-Codierungssystems und/oder Decodierungssystems gemäß der Erfindung, das auf ein Funkkommunikationssystem angewendet wird; und
  • 32 eine Ansicht des bevorzugten Ausführungsbeispiels eines Bewegtbild-Codierungssystems und/oder Decodierungssystems gemäß der Erfindung, das auf ein Funkkommunikationssystem angewendet wird;
  • 33 eine Ansicht zur Veranschaulichung eines allgemeinen Verfahrens zum Decodieren eines reversiblen Codes;
  • 34 eine Ansicht zum Erläutern eines gewöhnlichen Codes mit variabler Wortlänge;
  • 35 eine Ansicht zur Erläuterung eines konventionellen reversiblen Codes;
  • 36 ein Blockschaltbild des ersten bevorzugten Ausführungsbeispiels eines Codierungssystems und/oder Decodierungssystems mit variabler Wortlänge;
  • 37 eine Ansicht zur Erläuterung des Betriebes des Decodierwert-Entscheidungsabschnittes von 36;
  • 38 ein Blockschaltbild eines Codeworttabellenvorbereitungsabschnittes von 36;
  • 39 eine Ansicht zur Veranschaulichung eines Verfahrens zum Vorbereiten eines Binärcodesystems, bei dem Gewichtungen, die einen Code mit variabler Wortlänge konfigurieren, konstant sind;
  • 40 eine Ansicht zur Veranschaulichung eines ersten Codewort-Konfigurierverfahrens in dem Codewortkonfigurierabschnitt von 38;
  • 41 eine Ansicht zur Veranschaulichung von Decodierbäumen in der Vorwärtsrichtung und in der Rückwärtsrichtung, die aus Codeworten vorbereitet sind, die durch das erste Codewort-Konfigurierverfahren konfiguriert sind;
  • 42 eine Ansicht zur Veranschaulichung eines zweiten Codewort-Konfigurierverfahrens in dem Codewortkonfigurierabschnitt von 38;
  • 43 eine Ansicht zur Veranschaulichung von Decodierbäumen in der Vorwärtsrichtung und in der Rückwärtsrichtung, die aus Codeworten vorbereitet sind, die durch das zweite Codewortkonfigurierverfahren konfiguriert sind;
  • 44 eine Ansicht zur Veranschaulichung eines dritten Codewortkonfigurierverfahrens in dem Codewortkonfigurierabschnitt von 38;
  • 45 eine Ansicht zur Veranschaulichung von Decodierbäumen in der Vorwärtsrichtung und in der Rückwärtsrichtung, die aus Codeworten vorbereitet sind, die durch das dritte Codewortkonfigurierverfahren konfiguriert sind;
  • 46 eine Ansicht zur Veranschaulichung eines Codeverkürzungsverfahrens in dem Codewortkonfigurierabschnitt von 38;
  • 47 eine Ansicht zur Veranschaulichung von Decodierbäumen in der Vorwärtsrichtung und in der Rückwärtsrichtung, die durch Codeworte vorbereitet sind, die durch das Codeverkürzungsverfahren verkürzt sind;
  • 48 eine Ansicht zur Veranschaulichung eines Codeerweiterungsverfahrens in dem Codewortkonfigurterabschnitt von 38;
  • 49 eine Ansicht zur Veranschaulichung des Vergleiches zwischen den Charakteristiken eines Codes mit variabler Wortlänge, der durch das bevorzugte Ausführungsbeispiel der Erfindung konfiguriert ist, und einem konventionellen Code mit variabler Wortlänge;
  • 50 ein Blockschaltbild des zweiten bevorzugten Ausführungsbeispiels eines Codierungssystems und/oder Decodierungssystems mit variabler Wortlänge gemäß der Erfindung;
  • 51 eine Ansicht zur Veranschaulichung eines Codewort-Konfigurierverfahrens in dem Codewortkonfigurierabschnitt von 50;
  • 52 eine Ansicht zur Veranschaulichung eines Verfahrens zum Zählen eines Binärcodesystems, bei dem Gewichtungen konstant sind;
  • 53 eine Ansicht zur Veranschaulichung der Operationen eines Vorwärtsdecodierers und eines Rückwärtsdecodierers;
  • 54 eine Ansicht zur Veranschaulichung des Vergleiches zwischen einem konventionellen Decodierbaum und einem Decodiergraph des bevorzugten Ausführungsbeispiels;
  • 55 eine Ansicht zur Erläuterung einer Decodierwerttabelle des bevorzugten Ausführungsbeispiels;
  • 56 ein Blockschaltbild zur Veranschaulichung eines Prinzipaufbaues eines Bewegtbild-Codiersystems und/oder Decodiersystems, in dem ein Codierungssystems und/oder Decodierungssystems mit variabler Wortlänge gemäß der Erfindung enthalten ist;
  • 57 eine Darstellung zur Veranschaulichung der Syntax zum Codieren von Daten in dem Bewegtbild-Codierungssystem und/oder Decodierungssystem des bevorzugten Ausführungsbeispiels;
  • 58 ein Blockschaltbild zur Veranschaulichung des Bewegtbild-Multiplexabschnitts und des Bewegtbild-Multiplexunterteilabschnitts von 56;
  • 59 eine Ansicht zur Veranschaulichung eines Teils einer Codeworttabelle von Nicht-LETZTEN-Koeffizienten von INTRA und INTER in dem gleichen bevorzugten Ausführungsbeispiel;
  • 60 eine Ansicht zur Veranschaulichung eines weiteren Teils der Codeworttabelle von Nicht-LETZTEN-Koeffizienten von INTRA und INTER in dem gleichen bevorzugten Ausführungsbeispiel;
  • 61 eine Ansicht zur Veranschaulichung eines Teils einer Codeworttabelle von Letzten-Koeffizienten von INTRA und INTER in dem gleichen bevorzugten Ausführungsbeispiel;
  • 62 eine Ansicht zur Veranschaulichung eines weiteren Teils der Codeworttabelle von LETZTEN-Koeffizienten aus INTRA und INTER in dem gleichen bevorzugten Ausführungsbeispiel;
  • 63 eine Darstellung zur Veranschaulichung einer Codeworttabelle von Escape-Coden in dem gleichen bevorzugten Ausführungsbeispiel;
  • 64 eine Ansicht zur Veranschaulichung eines Codierverfahrens von Codeworten, die nicht in der Codeworttabelle in dem gleichen bevorzugten Ausführungsbeispiel existieren;
  • 65 eine Ansicht zur Veranschaulichung eines Beispiels zum Codieren von Daten in dem gleichen bevorzugten Ausführungsbeispiel;
  • 66 eine Ansicht zur Veranschaulichung eines Decodiergraphen in dem gleichen bevorzugten Ausführungsbeispiel;
  • 67 eine Ansicht zur Veranschaulichung eines Teils einer Decodierwerttabelle von Nicht-LETZTEN-Koeffizienten von INTRA und INTER in dem gleichen bevorzugten Ausführungsbeispiel;
  • 68 eine Ansicht zur Veranschaulichung eines weiteren Teils der Decodierwerttabelle von Nicht-LETZTEN-Koeffizienten von INTRA und INTER in dem gleichen bevorzugten Ausführungsbeispiel;
  • 69 eine Ansicht zur Veranschaulichung einer Codierwerttabelle von LETZTEN-Koeffizienten von INTRA und INTER in dem gleichen bevorzugten Ausführungsbeispiel;
  • 70 eine Ansicht zur Veranschaulichung einer Decodierwerttabelle von Escape-Coden in dem gleichen bevorzugten Ausführungsbeispiel;
  • 71 eine Ansicht zur Erläuterung des Betriebes des Decodierwertentscheidungsabschnittes von 50;
  • 72 eine Ansicht zur Veranschaulichung der Codier-/Decodierreihenfolge eines Makroblockes in dem gleichen bevorzugten Ausführungsbeispiel; und
  • 73 eine Ansicht zur Veranschaulichung eines Beispiels eines Systems, in dem ein Codiersystem und/oder Decodiersystem in variabler Wortlänge gemäß der Erfindung enthalten ist.
  • Beschreibung des bevorzugten Ausführungsbeispiels
  • Unter Bezugnahme auf die angefügten Zeichnungen, insbesondere auf 5 bis 32, werden nachstehend bevorzugte Ausführungsbeispiele eines Bewegtbild-Codierungssystems und/oder Decodierungssystems gemäß der Erfindung erläutert.
  • Zunächst wird der Gesamtaufbau der Erfindung durch 5 beschrieben, die das Konzept eines Bewegtbild-Codierungssystems zeigt. Die eingegebenen Bilddaten werden durch ein Codiermittel 10 komprimiert und codiert, so dass zwei Codefolgen einer vorbestimmten Anordnung gebildet werden. Das Codiermittel 10 enthält ein Bereichunterteilungsmittel 11 zum Unterteilen eines Bildschirms in vorbestimmte Bereiche, ein Bereichumordnungsmittel 12 zum Umordnen der unterteilten Bereiche beispielsweise auf der Grundlage eines Standards wie etwa der Bedeutung und ein Codezeilenbildungsmittel 13 zum Ausbilden von zwei Codefolgen bezüglich den umgeordneten Bereichen. Die durch das Codiermittel ausgebildete Codefolge wird durch ein Codezeilenunterteilmittel 14 unterteilt. Danach wird ein Rahmen mittels eines Codezeilenumordnungsmittels 15 umgeordnet, wobei die zwei Codefolgen in einem Rahmen zu dem Zentrum des Rahmens in der Vorwärtsrichtung und in der Rückwärtsrichtung von zwei Rahmensynchronisationsignalen (PSC), zwischen die der Rahmen eingefügt ist, umgeordnet wird. Diese Bedingung ist in einem Datenrahmen von 6 gezeigt.
  • 7 zeigt ein Blockschaltbild des ersten bevorzugten Ausführungsbeispiels eines Bewegtbild- Codierungssystems gemäß der Erfindung. In dem bevorzugten Ausführungsbeispiel verwendet das Bewegtbild-Codiersystem das diskrete Kosinustransformationscodiersystem mit bewegungskompensierter adaptiver Prädiktion.
  • Das diskrete Kosinustransformationscodiersystem mit bewegungskompensierter adaptiver Prädiktion ist in der vorstehend angeführten Literatur 1 im Detail beschrieben. Daher wird nur ihr Konzept beschrieben und wird der Unterschied zwischen dem System der Erfindung und dem konventionellen System im Detail beschrieben.
  • In einer Bereichsunterteilungseinheit 101 werden Bilddaten 131 in vorbestimmte Bereiche unterteilt und werden diese danach zu einer Bereichsumordnungseinheit 102 übertragen. In der Bereichsumordnungseinheit 102 werden die Bereiche auf der Grundlage der Daten einer Bereichsumordnungstabelle 103, die die Reihenfolge bzw. Zählreihenfolge der Umordnung definiert, umgeordnet und werden die Daten der umgeordneten Bereiche für jeden Bereich zu einer bewegungskompensierten adaptiven Prädiktionseinheit 104 übertragen. Da die Abschnitte bezüglich der Umordnung der Bereiche für die Erfindung von Bedeutung sind, werden sie nach der Erläuterung des Konzepts des Blockschaltbilds im Detail beschrieben.
  • In der bewegungskompensierten adaptiven Prädiktionseinheit 104 werden die letzten Rahmendaten, die aus dem Rahmenspeicher 105 ausgelesen sind, in dem der letzte Rahmen gespeichert ist, der codiert/decodiert worden ist, mit dem gegenwärtigen Rahmendaten verglichen, die bezüglich jedes der Bereiche unterteilt sind. Darüber hinaus wird berechnet, zu welchen Abschnitt der Bereich des gegenwärtigen Rahmens bewegt worden ist, d.h. welche Distanz der Bereich zu dem gegenwärtigen Rahmen bewegt worden ist, so dass es als Bewegungsvektor ausgedrückt wird (eine derartige Serie von Operationen wird als Bewegungskompensation bezeichnet).
  • In einer Subtrahiereinheit 106 werden die Daten jedes der Bereiche des letzten Rahmens, der bewegungskompensiert worden ist, von den Daten jedes der Bereiche des gegenwärtigen Rahmens subtrahiert und werden die Differenzdaten (d.h. die Daten des gegenwärtigen Rahmens, der ausreichend zum Ausdruck gebracht worden ist, lediglich in dem die Bewegungsdaten bezüglich des letzten Rahmens betrachtet werden) mittels einer diskreten Kosinustransformationseinheit 107 und einer Quantisiereinheit 108 codiert. Die Codierdaten und der Bewegungsvektor werden mittels eines Multiplexers 109 gemultiplext und die Codefolge wird in zwei Teile mittels einer Codezeilenteileinheit 110 unterteilt. Die Teile werden mittels einer Codezeilenumordnungseinheit 111 umgeordnet, zum Übertragen zu der Senke über einen Kanal. Da die Codefolgenunterteileinheit 110 und die Codefolgenumordnungseinheit 111 ebenso für die Erfindung von Bedeutung sind, werden sie wie die vorstehend angeführte Bereichsumordnungseinheit im weiteren im Detail beschrieben.
  • Andererseits werden die codierten Daten jedes der Bereiche als ein bewegungskompensierter Fehler mittels einer Rückquantiziereinheit 112 und einer diskreten Kosinusrücktransformationseinheit 113 decodiert. Mittels einer Addiereinheit 114 wird der bewegungskompensierte Fehler zu den letzten Rahmendaten nach der Bewegungskompensation addiert und werden die Daten des gegenwärtigen Rahmens zum Speichern in dem Rahmenspeicher reproduziert.
  • In dem konventionellen Bewegungskompensationscodiersystem wird, nachdem der Bereich durch die Bereichsunterteileinheit 101 unterteilt ist, die Codierung bezüglich jedes der Bereiche in der Reihenfolge ausgeführt, die in 2 gezeigt ist. Andererseits wird gemäß der Erfindung, nachdem der Bereich unterteilt ist, eine Neuverarbeitung mittels der Bereichsumordnungseinheit 102 für eine Codierung ausgeführt. 8 zeigt ein Beispiel der Reihenfolge der Umordnung der unterteilten Bereiche. Die Bereichsumordnungstabelle 103, die Codierreihenfolge der Bereiche speichert, ist vorbereitet und die Bereichsumordnungseinheit 102 ordnet die Bereiche auf der Grundlage der Tabelle 103 um. Gemäß der Erfindung wird die Codefolge, die mittels der Bereichsumordnungseinheit 102 umgeordnet und codiert worden ist, in zwei Zeilen von Coden mittels der Codefolgenunterteileinheit 110 unterteilt. Im Falle von 8 ist er in eine erste Codefolge und in eine zweite Codefolge unterteilt, die jeweils 8(a) und 8(b) entsprechen.
  • Danach schreitet in der Codezeilenumordnungseinheit 111 die erste Codefolge von dem Synchronisiersignal voran, um in der Vorwärtsrichtung von dem Präfix zu dem Suffix angeordnet zu sein, und schreitet die zweite Codefolge von der ersten Codefolge voran, um in der Rückwärtsrichtung an dem Präfix zu dem Suffix angeordnet zu sein, um zu dem Kanal übertragen zu werden. 9 zeigt ein Verfahren zum Umordnen der Codefolge zum Übertragen zu dem Kanal. Auf diese Weise kann aus den beiden unterteilten Codefolgen die erste Codefolge durch Suchen des Rahmensynchronisationssignals des gegenwärtigen Rahmens decodiert werden und kann die zweite Codefolge durch Suchen des Rahmensynchronisationssignals des nächsten Rahmens decodiert werden, da die Codefolge von dem Synchronisiersignal in der Rückwärtsrichtung angeordnet ist. In konventionellen Systemen müssen, wenn ein Fehler in der Mitte der Decodierung auftritt, alle die Daten bis zu dem Rahmensynchronisationssignal des nächsten Rahmens verworfen werden, so dass die Bildqualität stark verschlechtert wird. Im Gegensatz dazu können gemäß der Erfindung, falls die Daten eines der Codefolgen in Folge eines Fehlers nicht decodiert werden können und falls der Endabschnitt der ersten Codefolge in Folge des Außertrittfallens des Codes mit variabler Wortlänge nicht identifiziert werden kann, die Daten unabhängig von der ersten Codefolge decodiert werden, da die zweite Codefolge lediglich von dem Rahmensynchronisationssignal des nächsten Rahmens abhängig ist. Auf diese Weise beeinflußt gemäß der Erfindung der Fehler, der in einem der Codefolgen erzeugt wird, nicht die andere Codefolge. Daher ist es möglich, das Problem konventioneller Systeme zu lösen, dass die Kopfdaten von den Enddaten abhängen.
  • Selbst wenn die Daten eines der Codefolgen verworfen worden sind oder selbst wenn die Daten von beiden Codefolgen nur bis zu ihrer Mitte decodiert worden sind, kann verhindert werden, dass die Bereiche, die decodiert werden, an bestimmten Bereichen des Bildschirms konzentriert werden, da die Codierreihenfolge gemäß 8 geändert ist. Da darüberhinaus die Bereiche, die decodiert worden sind, einheitlich an dem gesamten Bildschirm vorhanden sind, ist es leicht möglich, den Bereich vorherzusagen, der nicht decodiert worden ist, mittels der Daten, die decodiert worden sind. Daher ist es möglich, die Bilddaten des gegenwärtigen Rahmens als Bilddaten zu decodieren, die ein bestimmtes Maß an Bildqualität haben, so dass die Bildqualität nicht stark verschlechtert wird, obwohl sie nicht perfekt ist.
  • In dem ersten bevorzugten Ausführungsbeispiel der Erfindung wird der erste und der zweite Aspekt der Erfindung kombiniert. Es ist jedoch nicht erforderlich, dass sie kombiniert werden und sie können unabhängig ausgeführt werden. Obwohl gemäß dem ersten bevorzugten Ausführungsbeispiel der Erfindung das diskrete Kosinustransformationscodierungssystem mit bewegungskompensierter adaptiver Prädiktion verwendet wird, sollte die Erfindung nicht auf dieses Codierungssystem beschränkt werden und kann die Erfindung auf weitere Bildcodiersystem angewendet werden.
  • 10 und 11 zeigen Beispiele der Bereichsumordnungstabellen. Beispielsweise für den Fall der Anwendung auf ein Eingangsbild, bei dem bedeutende Daten (Bewegung, Gesicht usw.) im Zentrum des Bildschirms angeordnet sind, werden die Daten derart umgeordnet, dass der Bereich des Zentrums des Bildschirms bei dem Präfix angeordnet wird. Bei einer Umordnung auf derartige Weise ist es möglich, die Wahrscheinlichkeit der Decodierung des bedeutenden Bereichs im Vergleich zu den konventionellen System zu erhöhen, falls das Außertrittfallen des Codes mit variabler Wortlänge in Folge eines Fehlers auftritt. Der Grund, warum die Erfindung diesen vorteilhaften Effekt aufweist, liegt darin, dass, wenn ein Fehler auftritt, die Wahrscheinlichkeit der Unmöglichkeit zum Decodieren in Folge der Natur des Codes mit variabler Wortlänge ansteigt, sowie die Daten dem Ende zugehen. Es ist ebenso möglich, eine Umordnungstabelle bezüglich jedes der Eingangsbilder durch Suchen des bedeutenden zentralen Abschnittes auf der Grundlage des Wertes des Bewegungsvektors usw. zum Codieren von Bereichen spiralförmig von den Koordinaten des zentralen Abschnitts zu schalten oder vorzubereiten, wie es in 12 gezeigt ist. In diesem Falle ist es erforderlich, zwischen der Codierseite und der Decodierseite beispielsweise durch Einfügen der Daten, die repräsentativ für die Koordinaten des bedeutenden Steuerabschnittes sind, in die Codefolge jedes der Rahmen nach dem Rahmensynchronisiersignal unterscheiden. Darüber hinaus ist es möglich, eine Vielzahl der gleichen Umordnungstabellen auf der Codierseite und der Decodierseite vorzubereiten und die Umordnungstabellen auf der Decodierseite derart zu schalten, dass ihre Zahl identisch zu der Zahl der Umordnungstabelle auf der Codierseite ist, die auf der Grundlage des Bildes geschaltet worden ist.
  • Wird beispielsweise der Code mit variabler Wortlänge, der in beiden Richtungen decodiert werden kann, verwendet, ist es möglich, den Code in der Vorwärtsrichtung und in der Rückwärtsrichtung als eine Codefolge ohne Unterteilen der Codefolge in zwei Teile in der Vorwärtsrichtung und in der Rückwärtsrichtung zu decodieren. In diesem Fall ist es möglich, die Wahrscheinlichkeit der Decodierung eines bedeutenden Abschnittes durch die Umordnung der Codefolge zu erhöhen, wie es in 8, 10, 11 und 12 gezeigt ist. Als ein Beispiel davon zeigt 13 ein Verfahren zum Umordnen der Codefolge, wenn der Code mit variabler Wortlänge, der in beiden Richtungen decodiert werden kann, verwendet wird. In der Fig. entsprechen die Blöcke von Zahlen Makroblöcken, wenn die Codierung ausgeführt wird.
  • Das zweite bevorzugte Ausführungsbeispiel eines Codiersystems gemäß der Erfindung wird nachstehend beschrieben:
  • 14 zeigt ein Blockschaltbild zur Veranschaulichung des zweiten bevorzugten Ausführungsbeispiels der Erfindung. In dem ersten bevorzugten Ausführungsbeispiel von 7 werden die Daten des gesamten Bildschirms in die von zwei Gruppen von Bereichen unterteilt und werden in die entsprechende Codefolge mittels der Codefolgenunterteileinheit 110 unterteilt. In dem zweiten bevorzugten Ausführungsbeispiel enthält anstelle jeweils der ersten und der zweiten Codefolge, die alle die Bereiche des gesamten Bildschirms enthalten, die Codefolge jedes der Bereiche nur einen von zwei Bereichen, die mittels einer DCT-Koeffizientenunterteileinheit 220 unterteilt sind.
  • Selbst wenn auf diese Weise die Daten eines der Codefolgen verworfen werden, ist es möglich, wenn die Daten der anderen Codefolge decodiert werden können, diese Daten mit einem bestimmten Maß an Qualität zu decodieren, obwohl die Qualität jedes der Bereiche geringer als die übliche Qualität ist, so dass es möglich ist, eine uniforme Bildqualität auf den gesamten Bildschirm im Vergleich zu den ersten bevorzugten Ausführungsbeispiel zu erlangen. Alternativ können andere Daten als die DCT-Koeffizienten in zwei Teile zum Codieren unterteilt werden.
  • Als Aufbau zum Unterteilen der Daten jedes der Bereiche in zwei Teile ist das nachstehende Beispiel ausgeführt. In konventionellen Systemen wird der Koeffizient, der durch die diskrete Kosinusinformation eines adaptiven Prädiktionssignals erlangt ist, durch eine Zick-Zack-Abtastung, wie sie in 3 gezeigt ist, codiert. Andererseits werden gemäß der Erfindung die Daten jedes der Bereiche in Koeffizienten ungerader Zahlen und Koeffizienten gerader Zahlen unterteilt, wie es in 16 gezeigt ist. Alternativ können sie in Abschnitte mit enger Verbindung zu der horizontalen Richtung und Abschnitte mit enger Verbindung zu der vertikalen Richtung unterteilt werden. Obwohl die Reihe der DCT-Koeffizienten auf der Grundlage der gewöhnlichen Zick-Zack-Abtastung in dem vorstehend angeführten Beispiel (16) unterteilt ist, können die DCT-Koeffizienten auf der Grundlage einer für das Bild geeigneten Abtastung gemäß der Erfindung unterteilt sein.
  • 18 zeigt ein Bewegtbild-Decodiersystem gemäß dem Bewegtbild-Codiersystem von 5. Nachdem die Rahmensynchronisationssignale der Codefolge, die von dem Codierungssystem zum Speichern übertragen wird, erfaßt sind, wird eine Serie von Verarbeitungen ausgeführt. D.h., das prädiktive Fehlersignal für jedes der Bereiche wird auf der Grundlage der Daten einer Codierreihenfolgetabelle 1103 decodiert, die Rückquantizierung wird mittels einer Rückquantiziereinheit 1112 ausgeführt und die diskrete Kosinusrücktransformation wird mittels einer diskreten Kosinusrücktransformationseinheit 1113 ausgeführt. Dabei wird die gelesene Codefolge in einem Codefolgenspeicher 116 gespeichert. Wenn die Codierung des vorderen Teils der ersten Codefolge beendet ist, oder wenn es in Folge gewisser Fehler unmöglich war, den vorderen Teil zu decodieren, wird die Decodierverarbeitung gestoppt und wird die Codefolge weiterhin in dem Codefolgenspeicher 116 gespeichert, bis das Rahmensynchronisationssignal des nächsten Rahmens empfangen wird. Ist das Rahmensynchronisationssignal des nächsten Rahmens herausgefunden worden, werden die Inhalte des Codefolgenspeichers 1116 Bit für Bit von dem letzten Bit umgekehrt gelesen und decodiert. Nach Ausführung der Decodierung gleichartig zu der des vorderen Teils der ersten Codefolge wird, wenn die Decodierung beendet ist oder wenn es unmöglich war, den vorderen Teil in Folge von Fehlern zu decodieren, die Decodierverarbeitung beendet und werden die decodierten Daten des vorderen Teils der ersten Daten und des hinteren Teils der zweiten Daten als Decodierdaten kombiniert.
  • Danach werden die Decodierdaten zu einem Prädiktionssignal mittels einer Addiereinheit 114 zum Erlangen reproduzierter Bilddaten addiert. Die reproduzierten Bilddaten werden nach außerhalb des Systems ausgegeben und in einem Rahmenspeicher 1105 aufgezeichnet. Wie vorstehend angeführt werden zwei Codefolgen, die in zwei Teile unterteilt sind, einer davon wurde in der Vorwärtsrichtung angeordnet und der andere davon wurde in der Rückwärtsrichtung angeordnet, decodiert, so dass, selbst wenn es unmöglich war, die Daten eines der beiden Codefolgen in Folge von Fehlern zu decodieren, dies nicht die weitere Codefolge beeinflußt und es möglich ist, die Daten der anderen Codefolge zu decodieren. Da darüber hinaus die Codierreihenfolge durch Umordnen der Bereiche geändert wird, ist es möglich, wenn Fehlerdetektoren 1126 und 1127 Fehler detektieren, im Vergleich zu den konventionellen Systemen die Bereiche, die nicht decodiert werden konnten, auf der Grundlage der Bereiche, die decodiert werden konnten, leicht vorherzusagen und komplementär auszuführen.
  • Nachfolgend wird ein Codiersystem beschrieben, bei dem die Übertragung mittels zweier Kanäle mit unterschiedlichen Fehlerraten ausgeführt wird. Wird die Übertragung mittels zweier Kanäle mit unterschiedlichen Fehlerraten ausgeführt, wurde häufig ein Hierarchiecodiermittel verwendet, durch welches, wenn ein Fehler auftritt, die bedeutenden Daten mit bedeutendem Einfluß über einen Kanal mit guter Qualität mit geringer Fehlerrate und die Daten ohne Bedeutung über einen Kanal mit hoher Fehlerrate übertragen werden. Bezüglich der Daten, die jeweils zu dem Kanal mit einer geringen Fehlerrate (einer höheren Schicht) und dem Kanal einer höheren Fehlerrate (einer niedrigeren Schicht) übertragen werden, werden daher die Umordnung der Bereiche, die Unterteilung der Codefolge und die Umordnung der Codefolge durch das gleiche Verfahren wie in dem ersten und dem zweiten bevorzugten Ausführungsbeispiel ausgeführt, so dass die gleiche Verarbeitung bezüglich der hierarchischen Codierung ausgeführt werden kann. 19 zeigt ein Beispiel von Codefolgen, wenn sie mit der Hierarchiebildung kombiniert werden. In diesem Beispiel werden aus der Codefolge die Bereiche, die zum Codieren umgeordnet worden sind, mit bedeutenden Daten, wie etwa Modusdaten und einem Bewegungsvektor der Codefolge der oberen Schicht eingegeben und wird ein prädiktives Differenzsignal der Codefolge der niedrigeren Schicht eingegeben.
  • Danach werden die Codefolgen jedes der Hierarchien in zwei Teile unterteilt, wobei eines davon in der Vorwärtsrichtung von dem Präfix zu dem Ende umgeordnet wird, und das andere davon in der Rückwärtsrichtung von dem Suffix zu dem Kopf umgeordnet wird. Sind die Codefolgen wie in dem ersten bevorzugten Ausführungsbeispiel unterteilt, ist es möglich, die obere Schicht oder die untere Schicht einzustellen, falls die gleichen Unterteilverfahren in der oberen Schicht und in der unteren Schicht ausgeführt werden. Für den Fall, dass die Bereiche in einem Rahmen in zwei Teile unterteilt werden, wird angenommen, falls die Codefolgen an einem der zwei Teile konzentriert sind, dass die Fehlerrate der oberen Schicht gering ist, so dass die Codefolge der oberen Schicht nicht unterteilt wird zum Ausdrücken der oberen Schicht durch eine Codefolge, wie sie in 20 gezeigt ist, und die Codefolge nur für die Codefolge der niedrigeren Schicht unterteilt wird. In diesem Fall wird die Zahl der Bereiche, die in 8(a) und 8(b) enthalten sind, derart geändert, so dass die Codemengen der zwei Codefolgen der niedrigeren Schicht zueinander gleich sind. D.h., die Zahl der enthaltenen Bereiche wird nicht gleich gemacht, in dem sie auf der Grundlage der Modusdaten der oberen Schicht dynamisch geändert werden. Auf diese Weise können die Codemengen der unterteilten zwei Teile der Codefolge der unteren Schicht zu der anderen gleich gemacht werden.
  • Obwohl der Prädiktionsfehler von den weiteren Daten in dem vorstehend ausgeführten Beispielen getrennt ist, können die Bewegungsvektoren in die obere und die untere Schicht gemäß der Codemenge des Bewegungsvektors unterteilt werden. Wenn die Codemenge des Bewegungsvektors gering ist und Platz in der oberen Schicht ist, können alternativ einige der DCT-Koeffizienten der prädiktiven Signale in die obere und in die untere Schicht usw. unterteilt werden.
  • Gemäß der Darstellung von 21 sind in einem System zum Anordnen einer bedeutenden Codefolge an dem vorderen Abschnitt bezüglich eines Kanals und zum Anordnen einer Codefolge ohne Bedeutung zum Fortführen der bedeutenden Codefolge die bedeutenden Codefolgen in 21(a) in der Vorwärtsrichtung angeordnet und sind die Codefolgen ohne Bedeutung in der Rückwärtsrichtung angeordnet, so dass die bedeutenden Codefolgen an dem hinteren Abschnitt angeordnet sind (21(c)). Folglich ist es möglich, in korrekter Weise eine größere Menge von Daten zu decodieren, selbst wenn Fehler auftreten, im Vergleich zu dem konventionellen System, wie es in 21(b) dargestellt ist. In diesem Fall sind die Daten der unteren Schicht, die den Daten entsprechen, die an dem Kopf der Codefolge der oberen Schicht angeordnet sind (Codefolge in der Vorwärtsrichtung), an dem Kopf der Codefolge der unteren Schicht angeordnet (Codefolge in der Rückwärtsrichtung). Da die Wahrscheinlichkeit zum korrekten Decodieren der Daten des Kopfes größer ist in der Codierung mit variabler Wortlänge, ist, falls das System des bevorzugten Ausführungsbeispiels angewendet wird, wie es in 22 gezeigt ist, sowie die Daten an einem vorderen Abschnitt der oberen Schicht angeordnet sind und sowie die Daten an einem hinteren Abschnitt der niedrigeren Schicht angeordnet sind, die Wahrscheinlichkeit zum decodiert werden groß.
  • Aus Systemen zum Codieren Einheit für Einheit, wie etwa Block für Block, ist in einem hierarchischen Codiersystem zum Unterteilen der Daten jeder Einheit in die obere Schicht und in die untere Schicht und zum Codieren der unterteilten Daten die Effizienz hoch, sowie die Daten der unteren Schicht, die den Daten der oberen Schicht entsprechen, an dem hinteren Abschnitt angeordnet sind (nahe dem Synchronisationssignal des hinteren Abschnitts). Dies ist in 23 im Detail gezeigt. Falls sie in diesem Fall gemäß der Darstellung von 23(b) angeordnet sind, und nicht wie in 23(a), sind keine oberen Daten vorhanden, die den unteren Daten entsprechen, die korrekt decodiert worden sind. Falls daher die Decodierung auf der Stufe der Codeworte ausgeführt werden konnte, kann das Bilddatensignal nicht daraus reproduziert werden.
  • Für den Fall, dass ein Bewegtbild-Codiersystem und/oder Decodiersystem gemäß der Erfindung auf das Hierarchiecodiersystem angewendet wird, können die Codefolge, die in Vorwärtsrichtung angeordnet ist, und die Codefolge, die in der Rückwärtsrichtung angeordnet ist, jeweils in einer Hierarchie ausgebildet sein, ohne dass das System der Erfindung auf jeden der ausgebildeten Folgen in einer hierarchischen Codefolge wie in dem vorstehend angeführten bevorzugten Ausführungsbeispiel angewendet wird.
  • 24 zeigt den Aufbau einer Codefolge zum Erläutern des bevorzugten Ausführungsbeispiels für die Ausbildung einer Hierarchie jedes der Codefolgen. Gemäß der Darstellung von 24 wird in diesem bevorzugten Ausführungsbeispiel jedes der Codefolgen, die in zwei Teile unterteilt sind, in einer Hierarchie ausgebildet. Beispielsweise werden zunächst die Bilddaten eines Rahmens verschachtelt abgetastet, zum Unterteilen in zwei Felder, wobei eines davon als Codefolge in der Vorwärtsrichtung ausgebildet ist und das andere davon als Codefolge in der Rückwärtsrichtung ausgebildet ist. Danach wird in der jeweiligen Codefolge die Hierarchie derartig ausgebildet, dass die Daten, die immer für eine Codierung notwendig sind, als die oberen Daten angeordnet sind und die restlichen Daten usw. als die unteren Daten angeordnet sind.
  • Falls in dem auf derartige Weise in einer Hierarchie ausgebildeten Codefolge einer der Codefolgen in Folge von Fehlern nicht decodiert werden kann, kann die andere Codefolge komplett decodiert werden. Daher ist es im Vergleich zu der getrennten Hierarchiebildung der oberen und der unteren Daten leicht und effizient möglich, die hierarchische Codierung auszuführen. Es ist ebenso möglich, die Codes in einem System in einer Hierarchie effizient auszuführen, die nicht verwendet werden können, ohne dass die oberen Daten komplett decodiert worden sind, selbst wenn die unteren Daten decodiert worden sind. Als das System, das nicht verwendet werden kann, ohne dass die oberen Daten komplett decodiert worden sind, selbst wenn die unteren Daten decodiert worden sind, wird ein System betrachtet, bei dem beispielsweise in 19 kein Synchronisationssignal zwischen den oberen und den unteren Daten eingefügt ist oder keine Zeigerdaten, die das Ende der oberen Daten darstellen, hinzugefügt sind, usw. In dem bevorzugten Ausführungsbeispiel von 15 kann, obwohl es möglich ist, den Nachteil zu eliminieren, dass keine Daten verwendet werden, ohne dass die unteren Daten decodiert worden sind, selbst wenn die oberen Daten decodiert worden sind, durch Einfügen eines Synchronisationssignals zwischen den oberen und den unteren Daten oder durch Hinzufügen von Zeigerdaten usw. der vorstehend angeführte Nachteil durch die hierarchische Codierung wie in dem bevorzugten Ausführungsbeispiel sehr leicht eliminiert werden.
  • Unter Bezugnahme auf 25 wird nachstehend ein weiteres bevorzugtes Ausführungsbeispiel eines Bewegtbild-Codierungssystems gemäß der Erfindung erläutert, bei dem Bewegtbilddaten in drei zu codierende Codefolgen unterteilt sind.
  • In dem bevorzugten Ausführungsbeispiel werden Bewegtbilddaten im Hinblick auf das vorstehend angeführte Konzept der hierarchischen Codierung codiert. Beispielsweise werden bedeutende Daten in zwei Teile geteilt, so dass eine erste und eine zweite Codefolge ausgebildet werden, und die Daten, die nicht in den Codefolgen der bedeutenden Daten enthalten sind, bilden eine dritte Codefolge. Nachdem die erste bis dritte Codefolge gemäß der Bedeutung der Daten ausgebildet sind, wird die Codefolge im Einzelnen ausgebildet, wie es im unteren Bereich von 25 gezeigt ist. Durch die Anordnung von Coden auf derartige Weise können bedeutende Daten geschützt werden.
  • Wenn beispielsweise das hierarchische Codieren gemäß der Darstellung von 25 auf das Codieren von Bilddaten angewendet wird, werden die Modusdaten und der Bewegungsvektor dem Abschnitt bedeutender Daten zugeordnet und werden diese Daten in zwei Codefolgen im Hinblick auf die Position an dem Bildschirm unterteilt, in der diese Daten angeordnet sind. Bei dieser Unterteilung werden, selbst wenn einer der zwei Codefolgen für bedeutende Daten in Folge von Fehlern fehlen, zum Kompensieren der Fehler für die weitere Codefolge die Makroblöcke derartig ausgewählt, dass ein schachbrettartiges Muster ausgebildet wird, so dass beispielsweise die schwarzen Blöcke des schachbrettartigen Musters der ersten Codefolge entsprechen und die weißen Blöcke davon der zweiten Codefolge entsprechen. Folglich kann die Verarbeitung wie etwa eine Übermittlung (flashing) und ein Zurückhalten (concealment) leicht ausgeführt werden.
  • Wie vorstehend ausgeführt können die bedeutenden Daten in die anzuordnende erste und zweite Codefolge unterteilt werden und kann der Rest der dritten Codefolge zugewiesen werden. Um die Fehlerwiderstandsfähigkeit der dritten Codefolge selbst zu verbessern, kann alternativ ein Code mit fester Wortlänge oder ein Code mit variabler Wortlänge, die in beiden Richtungen decodiert werden können, in der dritten Codefolge vorgesehen sein.
  • Die vorstehend angeführte Konstruktion kann mit der Verdoppelung der Zeichenfolge kombiniert sein. Durch Verwenden der zweiten Codefolge, die gleich oder ähnlich zu der ersten Codefolge ist, und durch Anordnen der Codefolge, wie es im unteren Bereich von 25 gezeigt ist, wird die erste Codefolge üblicherweise nur in der Vorwärtsrichtung decodiert und können komplette Bilddaten ohne Fehler durch Decodieren der zweiten Codefolge in der Rückwärtsrichtung erlangt werden, wenn Fehler in der ersten Codefolge auftreten.
  • Bezüglich der Anordnungsreihenfolge jedes der Codefolgen und der Positionsbeziehung auf dem Bildschirm werden darüber hinaus beispielsweise die Daten der ersten Codefolge dem entsprechenden Bildelementen von dem oberen linken Abschnitt zu dem unteren linken Abschnitt des Bildschirms zugewiesen und werden die Daten der zweiten Codefolge den entsprechenden Bildelementen von dem unteren rechten Abschnitt zu dem oberen linken Abschnitt zugeordnet, so dass es möglich ist, in duplizierter Weise die erste Codefolge, die von dem oberen linken Abschnitt zu dem unteren rechten Abschnitt decodiert ist, und die zweite Codefolge, die von dem unteren rechten Abschnitt zu dem oberen linken Abschnitt decodiert ist, zu verwenden, falls ein Fehler in einem der Codeworte auftritt. Falls beispielsweise ein Fehler an einer Position eines der Codefolgen auftritt, kann auf diese Weise die erste und die zweite Codefolge in der Vorwärtsrichtung und in der Rückwärtsrichtung jeweils decodiert werden, so dass sie einander kompensieren, so dass es möglich ist, die Wahrscheinlichkeit von Daten zu erhöhen, die decodiert werden. Selbst wenn beide Folgen der paarweisen der Codefolgen nicht komplett in der Reihenfolge zum Konfigurieren der Codefolge decodiert werden können, können sie durch den anderen kompensiert werden, so dass es möglich ist, die Rate der Daten zu erhöhen, die korrekt decodiert werden können, wenn ein Fehler in einem der Codeworte auftritt.
  • Da es darüber hinaus nicht erforderlich ist, zusätzlich ein Synchronisiersignal usw. dem Präfix der duplizierten Daten hinzuzufügen, ist die Effizienz höher, als wenn sie einfach dupliziert wird.
  • Der Aufbau sollte nicht auf die Anordnung beschränkt werden, die in 25 gezeigt ist, und sie kann auf eine der weiteren bevorzugten Ausführungsbeispiele der Erfindung durch Verwenden einer der Codefolgen als eine gewöhnliche Codefolge und der weiteren Codefolge als eine Hilfscodefolge angewendet werden.
  • Als ein Beispiel von praktikablen Anwendungen können die Codeworte gemäß immer kleineren Dateneinheiten in der Vorwärtsrichtung und der Rückwärtsrichtung und nicht für jede Codefolge in der Vorwärtsrichtung und in der Rückwärtsrichtung angeordnet werden. In allen vorstehend angeführten bevorzugten Ausführungsbeispielen sind die Codefolgen in zwei Dateneinheiten auf der Grundlage eines bestimmten Standards unterteilt und werden die Codeworte in einer der Dateneinheiten in der Vorwärtsrichtung und in der anderen Dateneinheit in der Rückwärtsrichtung angeordnet. Die Codefolge, die in der Rückwärtsrichtung bei der Codierung angeordnet wird, muß nach einer temporären Speicherung in einem Zwischenspeicher umgeordnet und ausgegeben werden. Daher bestehen Nachteile darin, dass die Umordnung nicht ausgeführt werden kann, ohne dass die Decodierung beendet ist, so dass der Verarbeitungsvorgang verzögert wird.
  • Um die Verzögerung des Verarbeitungsvorgangs zu verringern, wird nicht eine relativ große Einheit, wie etwa eine Codefolge, als Dateneinheit für eine Codierung verwendet und kann beispielsweise die Codierung in der Rückwärtsrichtung unter Verwendung einer kleinen Einheit, wie etwa einer Makroblockeinheit ausgeführt werden. Das bevorzugte Ausführungsbeispiel ist in 26 gezeigt. Wenn in 26 die Daten von Mikroblöcken MB 1 bis MB 10 in Hälften unterteilt sind, werden die Makroblöcke MB6 bis MB10, die in der Rückwärtsrichtung angeordnet sind, nicht als Gruppe umgeordnet und sind die Daten jedes der Makroblöcke zum Codieren angeordnet.
  • In dem bevorzugten Ausführungsbeispiel muß die Decodierung mit einem Start von MB 10 aus mittels einer Decodiereinheit ausgeführt werden. Bei einer gewöhnlichen Decodiereinheit müssen die Daten jedoch geordnet startend von dem Makroblock MB1 decodiert werden, da die Daten des letzten Makroblocks in den Daten des gegenwärtigen Makroblocks derart verwendet werden, dass der Unterschied zwischen dem letzten Makroblock und dem gegenwärtigen Makroblock codiert wird und der gegenwärtige Makroblock mittels des Differenzsignals decodiert wird.
  • In dem bevorzugten Ausführungsbeispiel werden daher zusätzliche Daten derart hinzugefügt, dass eine geordnete Decodierung startend von den hinteren Daten zum Eliminieren des vorstehend angeführten Nachteils, dass die Decodierung in der Vorwärtsrichtung ausgeführt werden muß, möglich wird. Beispielsweise werden bezüglich der Daten zum Codieren der Differenz zwischen den gegenwärtigen Daten und den letzten Daten, wie etwa das Bewegungsvektors und der Quantizierungsbreite, die aktuellen Werte des Bewegungsvektors und der Quantizierungsbreite des Makroblocks MB10 als zusätzliche Daten derart hinzugefügt, dass die Decodierung in der Reihenfolge mit einem Start von den hinteren Daten ausgeführt werden kann. Die Decodierung kann daher von dem Makroblock MB10 gestartet werden. Da daher die Daten bezüglich der Differenz zwischen den Makroblöcken MB9 und MB10 in den Daten des Makroblocks MB10 enthalten sind, werden derartige Daten zum Decodieren des Makroblocks MB9 verwendet. Danach wird das Decodieren in gleichartiger Weise in der Rückwärtsrichtung, wie etwa in der Reihenfolge MB8, MB7 und MB6 ausgeführt, so dass es möglich ist, eine Gruppe von Daten komplett zu decodieren. Die zusätzlichen Daten müssen nicht immer zu den Positionen, die in 26 gezeigt sind, hinzugefügt werden und können zu beliebigen Positionen hinzugefügt werden, solange die Positionen identifiziert werden können, bevor die in der Rückwärtsrichtung angeordneten Codeworte decodiert werden.
  • Während die bevorzugten Ausführungsbeispiele der hierarchischen Codierung vorstehend beschrieben worden sind, sollten die vorstehend angeführten Verfahren nicht auf das Verfahren zum Anordnen der Codefolge beschränkt werden, wenn eine Codierung der Daten unterschiedlicher Bedeutung, wie etwa der oberen und der unteren Schichten ausgeführt wird, und kann das gleiche Verfahren auf zwei Codefolgen der gleichen Bedeutung angewendet werden.
  • Darüber hinaus kann ein Codiersystem gemäß der Erfindung nicht nur auf zwei Schichten, wie etwa der oberen und der unteren Schicht angewendet werden, sondern kann die Erfindung ebenso auf eine Gruppe von Daten von Multistufungen (Multiechelon) in gleichartiger Weise zu dem vorstehend Angeführten angewendet werden.
  • Ferner werden in den vorstehend angeführten bevorzugten Ausführungsbeispielen die Codefolgen Rahmen für Rahmen umgeordnet und wird die Synchronisation mittels Rahmensynchronisiersignalen ausgeführt. Es muß jedoch nicht mittels Rahmensynchronisiersignalen ausgeführt werden und es können alle Fälle verwendet werden, falls ein Synchronisationssignal nach der zweiten Codefolge vor der ersten Codefolge vorhanden ist. Sind beispielsweise eine Mehrzahl von Synchronisiersignalen in einem Rahmen (beispielsweise, wenn Synchronisiersignale für jede Zeile von 2(a) eingefügt sind) in dem konventionellen System vorhanden ist, können INTRA-Rahmen-Synchronisiersignale in jede Zeile gemäß der Darstellung von 2(b) eingefügt werden und können die Bereichsumordnung, die Codierunterteilung und die Codefolgenumordnung in einer Zeile als eine Einheit, die Bereiche zwischen den benachbarten Synchronisiersignalen enthalten, wie es in 2(b) dargestellt ist, ausgeführt werden. D.h., wie das konventionelle System von 2(b) kann die konventionelle Umordnung gemäß der Darstellung von 2(c) ausgeführt werden.
  • 27 zeigt eine Ansicht zur Veranschaulichung, dass ein Verfahren zum Anordnen von einem bedeutenden Bereich auf ein Verfahren angewendet wird, bei dem ein Rahmen eine Vielzahl von Synchronisierblöcken enthält. In diesem Verfahren werden Synchronisiersignale, die sich von dem Rahmensynchronisiersignal (PSC) unterscheiden, in den Rahmen derart eingefügt, dass die Daten, die nicht verwendet werden können, selbst wenn ein Fehler auftritt, abnehmen. Ein derartiges Verfahren wurde konventionell gemäß der Darstellung von 4 verwendet. Bezüglich jedes Synchronisationsblocks, bei denen das Innere des Rahmens unterteilt worden ist, kann der Synchronisationsblock, der in der Reihenfolge von 27(a) codiert worden ist, einem ersten Synchronisationsblock entsprechen und kann der Synchronisationsblock, der in der Reihenfolge von 27(b) codiert worden ist, einem zweiten Synchronisationsblock entsprechen, so dass, selbst wenn einer der Synchronisationsblöcke in Folge von Fehlern fehlt, es möglich ist, die Wahrscheinlichkeit einer korrekten Decodierung ansteigt, wie der Block von Bedeutung ist.
  • In dem vorstehend angeführten bevorzugten Ausführungsbeispiel kann die Decodierung in beiden Richtungen durch Hinzufügen von Synchronisationssignalen am Kopf und am Ende der Codierfolge ausgeführt werden. Gemäß der Erfindung sind die Synchronisiersignale nicht im Einzelnen erforderlich, solange der letzte Abschnitt der Codefolge vor einer Decodierung der Codefolge identifiziert werden kann.
  • Das bevorzugte Ausführungsbeispiel eines Systems, das keine Synchronisiersignale verwendet, wird nachstehend beschrieben.
  • Bei einem Codiersystem, bei dem die Codierung mit fixer Wortlänge von Daten einer vorbestimmten Einheit wie etwa eines Rahmens oder mehrerer Makroblöcke für eine Ausgabe ausgeführt wird, können der Kopf jeder Codefolge, die in der Vorwärtsrichtung angeordnet ist, und der Codefolge, die in der Rückwärtsrichtung angeordnet ist, unabhängig von Synchronisiersignalen usw. auf der Decodierseite identifiziert werden. 28 zeigt ein Beispiel der Anwendung eines Codiersystems gemäß der Erfindung auf die Codierfolge, die in einer fixen Wortlänge codiert worden ist. In dem Beispiel wird die Erfindung auf eine Codefolge angewendet, die mit fixer Wortlänge codiert worden ist, so dass m Bits durch Kombinieren von N-Makroblöcken (MB) vorhanden sind. Da in dem bevorzugten Ausführungsbeispiel gemäß der Darstellung von 29 der Kopf der Codefolge, die in der Rückwärtsrichtung angeordnet ist, immer alle m Bits angeordnet ist, ist es nicht erforderlich, Synchronisiersignale in die Codefolge einzufügen, so dass die Decodierung regulär und korrekt ausgeführt werden kann.
  • Entgegen der vorstehend angeführten Konstruktion wird nachstehend ein System beschrieben, bei dem die Daten nicht eine fixe Länge der vorstehend angeführten vorbestimmten Einheit aufweisen, sondern der Kopfabschnitt einer Codefolge, die in der Rückwärtsrichtung angeordnet ist, ohne Verwendung von Synchronisiersignalen identifiziert werden kann.
  • In dem bevorzugten Ausführungsbeispiel des Systems werden die Daten zum Identifizieren der Position des Präfixes der Codefolge in der Rückwärtsrichtung einer Ausgangscodefolge hinzugefügt. 30 zeigt die Codefolge in dem bevorzugten Ausführungsbeispiel. Durch Anordnen der Zeigerdaten, die die Präfixposition darstellen, an der Position des Rahmenkopfes oder an einer dazu entsprechenden Position wird das Präfix der Codefolge, die in der Rückwärtsrichtung angeordnet ist, unter Verwendung der Zeigerdaten auf der Decodierseite identifiziert und wird die Codierfolge decodiert. Auf diese Weise kann der Schwanz bzw. das Ende der Codefolge durch eine vorbestimmte Einheit anstelle von Synchronisiersignalen identifiziert werden, so dass die Erfindung auf ein Codiersystem mit variabler Wortlänge angewendet werden kann.
  • Das bevorzugte Ausführungsbeispiel einer Hochgeschwindigkeitswiedergabe, die auf das vorstehend angeführte erste und zweite bevorzugte Ausführungsbeispiel angewendet werden kann, wird nachstehend beschrieben.
  • Im Falle einer Hochgeschwindigkeitsvorwärtswiedergabe wird, nachdem das Rahmensynchronisiersignal, das den Kopf des Rahmens darstellt, empfangen ist, nur die erste Codefolge an dem Kopf, die in der Vorwärtsrichtung beschrieben ist, durch den vorstehend angeführten Decodierprozeß zum Voranschreiten zur Verarbeitung des nächsten Rahmens decodiert. Die Daten, die der zweiten Codefolge entsprechen, die in der Rückwärtsrichtung umgeordnet ist, kann mittels der durch die erste Codefolge usw. decodierten Daten interpoliert werden.
  • Im Falle einer Hochgeschwindigkeitsrückwärtswiedergabe wird gleichartig zu der Hochgeschwindigkeitsvorwärtswiedergabe das Rahmensynchronisiersignal in der Rückwärtsrichtung gesucht und wird nur die zweite Codefolge, die in der Rückwärtsrichtung umgeordnet ist, decodiert, nachdem das Rahmensynchronisiersignal empfangen ist. Da in diesem Fall die Bilddaten des letzten Rahmens erforderlich sind, wenn die bewegungskompensierte adaptive Prädiktionscodierung verwendet wird, ist es erforderlich, nur den Rahmen auszuwählen, der nicht die Bewegungskompensation verwendet.
  • 31 zeigt das dritte bevorzugte Ausführungsbeispiel eines Bewegtbild-Codierungssystems und/oder Decodierungssystems gemäß der Erfindung, das auf eine Funkkommunikation angewendet wird. In 31 beinhaltet das Funkkommunikationssystem ein Bildübertragungssystem 20 und ein Bildwiedergabesystem 30 und werden die Bilddaten über eine Basisstation 41 mit einem Netz 40 übertragen und empfangen.
  • Das Bildübertragungssystem 20 enthält einen Bilddatensignaleingangsabschnitt 21, einen Quellencodierabschnitt 22 mit einem Fehlerwiderstandsverarbeitungsabschnitt 23, einem Kanalcodierabschnitt 24 und einem Funkabschnitt 25. Bei dem Quellencodierabschnitt 22 werden die diskrete Kosinustransformation (DCT), die Quantisierung usw. ausgeführt. In dem Kanalcodierabschnitt 24 werden die Erfassung und Korrektur des Fehlers der Codierdaten usw. ausgeführt.
  • Das Bildwiedergabesystem 30 enthält einen Funkabschnitt 31, einen Kanaldecodierabschnitt 32, einen Informationsquellendecodierabschnitt 33 mit einem Fehlerwiderstandsverarbeitungsabschnitt 34 und einen Bilddatensignalausgangsabschnitt 35.
  • 32 zeigt ein Beispiel von Anwendungen eines Bewegtbild-Koodierungssystems und/oder Decodierungssystems gemäß der Erfindung. Gemäß der Darstellung von 32 wird das Bewegtbild mittels Endgeräten 50, wie etwa einem Laptopcomputer 51 und einem Tischcomputer 52, über Basisstationen 41, 42 und 43 des Funkkommunikationsnetzes 40 gesendet und empfangen.
  • Wie vorstehend angeführt, ist gemäß der Erfindung ein Bewegtbild-Codiersystem und/oder Decodiersystem vorgesehen, das die Verschlechterung der Qualität eines decodierten Bildes in Folge von Fehlern eines Codes, die bei der Übertragung und Speicherung auftreten, verringern kann.
  • Darüber hinaus werden Codierdaten bei der Codierung eines Bewegtbildes in eine Vielzahl von Gruppen von Codierdaten unterteilt. Zumindest eine der Gruppen von Codierdaten ist in der Vorwärtsrichtung beschrieben und die weiteren Gruppen der Codierdaten sind in der Rückwärtsrichtung beschrieben, so dass es möglich ist, die Decodiereffizienz von Bewegtbilddaten zu verbessern und zu verhindern, dass die Qualität des decodierten Bildes stark verschlechtert wird.
  • Wenn darüber hinaus zwei unabhängige Codefolgen von einem Eingangsbild durch Codieren eines Bewegtbildes ausgegeben werden, werden die durch Unterteilen des Eingangsbildes erlangten jeweiligen Bereiche in unterschiedlicher Reihenfolge codiert. Selbst wenn die Decodierung in Folge von Fehlern, die in der Mitte jedes der Daten von beiden Codefolgen auftreten, unmöglich war, wird der Abschnitt, der decodiert werden konnte, nicht auf einen Teil eines Bildschirms konzentriert, so dass es möglich ist, den ganzen Bildschirm oder einen bedeutenden Abschnitt des Bildschirms in vorzüglicher Weise wiederzugeben.
  • Unter Bezugnahme auf 36 bis 73 werden nachstehend die bevorzugten Ausführungsbeispiele eines Codiersystems und/oder Decodiersystems mit variabler Wortlänge gemäß der Erfindung beschrieben.
  • 36 zeigt ein Blockschaltbild des ersten bevorzugten Ausführungsbeispiels eines Codiersystems und/oder Decodiersystems mit variabler Wortlänge gemäß der Erfindung. Das Codierungssystem und/oder Decodierungssystem mit variabler Wortlänge in dem bevorzugten Ausführungsbeispiel enthält einen Codeworttabellenvorbereitungsabschnitt 101, einen Codierabschnitt 114, ein Übertragungs- oder Speichersystem 104 und einen Decodierabschnitt 115. Zunächst wird die Funktion jedes dieser Abschnitte kurz beschrieben.
  • Der Codeworttabellenvorbereitungsabschnitt 101 bereitet Codeworttabellen auf der Grundlage der Wahrscheinlichkeiten von Quellsymbolen zum Übertragen der vorbereiteten Codeworttabellen zu einer Codiertabelle 102 in dem Codierabschnitt 114 und eine Vorwärtscodeworttabelle 110 und eine Rückwärtscodeworttabelle 122 in dem Decodierabschnitt 115 vor. Der Codierabschnitt 114 codiert das Quellsymbol in ein Codewort mit variabler Wortlänge zum Ausgeben des codierten Codes mit variabler Wortlänge an das Übertragungs- oder Speichersystem 104 als Codierdaten. Der Decodierabschnitt 115 decodiert die durch die Übertragungs- oder Speichereinheit 104 eingespeisten Codierdaten zum Reproduzieren des ursprünglichen Quellsymbols.
  • Der detaillierte Aufbau und Betrieb jedes der Abschnitte im bevorzugten Ausführungsbeispiel wird nachstehend beschrieben.
  • In dem Codierabschnitt 114 wird das eingespeiste Quellsymbol zu einer Codiereinheit 103 eingespeist. Andererseits speichert die Codeworttabelle 102 Quellsymbole, die durch den Codeworttabellenvorbereitungsabschnitt 101 vorbereitet worden sind, und Codeworte von Coden mit variabler Wortlänge, die den Quellsymbolen entsprechen. Die Codiereinheit 103 wählt ein Codewort, das dem eingespeisten Quellsymbol entspricht, aus den in der Codeworttabelle 102 gespeicherten Codeworten aus und gibt das ausgewählte Codewort als Codierdaten aus. Die Codierdaten werden zu der Decodiereinheit 115 über das Übertragungs- oder Speichersystem 104 übertragen. Dabei wird ein Synchronisiercode in die Codierdaten mit regelmäßigen Intervalen eingefügt.
  • In dem Decodierabschnitt 115 erfaßt ein Synchronisiercodeerfassungsabschnitt 105 einen Synchronisiercode auf der Grundlage der Codierdaten, die durch das Übertragungs- oder Speichersystem 104 eingespeist sind, und speichert ein Zwischenspeicher 106 die Codierdaten zwischen benachbarten Synchronisiercoden. In einer Vorwärtsdecodiereinheit 107 werden die in dem Zwischenspeicher 106 gespeicherten Codierdaten in einer Abfolge, die von dem Kopf der Codierdaten startet, auf der Grundlage eines von einem Vorwärtsdecodierbaumvorbereitungsabschnitt 101 zugeführten Vorwärtsdecodierbaums decodiert. In einer Rückwärtsdecodiereinheit 108 werden die in dem Zwischenspeicher 106 gespeicherten Decodierdaten in einer Abfolge decodiert, die von dem Ende der Codierdaten startet, auf der Grundlage eines von einem Rückwärtsdecodierbaumvorbereitungsabschnitt 113 zugeführten Rückwärtsdecodierbaums.
  • Ein Decodierwertentscheidungsabschnitt 109 entscheidet einen decodierten Wert auf der Grundlage eines durch die Vorwärtsdecodiereinheit 107 erlangten decodierten Ergebnisses (das nachstehend als "Vorwärtsdecodierergebnis" bezeichnet wird) und eines decodierten Ergebnisses, das durch die Rückwärtsdecodiereinheit 108 erlangt wird (das nachstehend als "Rückwärtsdecodierergebnis" bezeichnet wird) und gibt ein decodiertes Endergebnis aus. D.h., da ein Bitmuster, das nicht in dem Decodierbaum erscheint, auftritt, falls ein Fehler in den Decodierdaten auftritt, kann die Existenz des Fehlers erfaßt werden, so dass der Decodierentscheidungsabschnitt 109 einen decodierten Wert auf der Grundlage des Vorwärtsdecodierergebnisses und des Rückwärtsdecodierergebnisses gemäß der Darstellung von 37 beschließt. 37 zeigt ein Verfahren zum Entscheiden von decodierten Werten zwischen den benachbarten Synchronisiercoden.
  • Gemäß der Darstellung von 37(a) werden zunächst, wenn die Position eines Codewortes, bei dem ein Fehler erfaßt wird, in dem decodierten Ergebnis in der Vorwärtsrichtung nicht mit der Fehlererfassungsposition in dem decodierten Ergebnis in der Rückwärtsrichtung zusammentrifft, nur die decodierten Ergebnisse, bei welchen kein Fehler erfaßt wird, als decodierte Werte verwendet und werden die decodierten Ergebnisse an zwei Fehlererfassungspositionen nicht als decodierte Werte verwendet, so dass sie verworfen werden.
  • Gemäß der Darstellung von 37(b) werden, wenn die Fehlererfassungspositionen in den decodierten Ergebnissen in der Vorwärtsrichtung und der Rückwärtsrichtung einander passiert haben, die decodierten Ergebnisse, bei welchen kein Fehler erfaßt wird, als decodierte Werte verwendet. In diesem Fall werden die decodierten Ergebnisse zwischen den Codeworten bei den zwei Fehlerfassungspositionen nicht als decodierte Werte verwendet, so dass sie verworfen werden.
  • Darüber hinaus wird gemäß der Darstellung in 37(c), wenn ein Fehler lediglich in einem der decodierten Ergebnisse in der Vorwärtsrichtung und der Rückwärtsrichtung erfaßt worden ist (in diesem Fall ist ein Fehler nur in dem decodierten Ergebnis in der Vorwärtsrichtung erfaßt worden), der decodierte Wert bezüglich dem Codewort an der Fehlererfassungsposition verworfen und werden die decodierten Ergebnisse in der Rückwärtsrichtung als decodierte Werte bezüglich den folgenden Codeworten verwendet.
  • Darüber hinaus wird gemäß der Darstellung von 37(d), wenn Fehler bezüglich dem gleichen Codewort in den decodierten Ergebnissen sowohl in der Vorwärtsrichtung als auch in der Rückwärtsrichtung erfaßt werden, der decodierte Wert bezüglich dem Codewort an der Fehlererfassungsposition verworfen und werden die decodierten Ergebnisse in der Rückwärtsrichtung als decodierte Werte bezüglich den nachfolgenden Codeworten in gleichartiger Weise zu 37(c) verwendet.
  • Der Codeworttabellenvorbereitungsabschnitt 101 bereitet eine Codeworttabelle, die sowohl in der Vorwärtsrichtung als auch in der Rückwärtsrichtung decodiert werden kann, auf der Grundlage der Wahrscheinlichkeit eines Quellsymbols vor. Die durch den Codeworttabellenvorbereitungsabschnitt 101 vorbereitete Codeworttabelle wird zu der Codeworttabelle 102 in dem Codierabschnitt 114 und zu einer Vorwärtscodeworttabelle 110 und einer Rückwärtscodeworttabelle 112 in dem Decodierabschnitt 115 übertragen. In dem Vorwärtsdecodierbaumvorbereitungsabschnitt 111 wird ein Vorwärtsdecodierbaum auf der Grundlage der Vorwärtscodeworttabelle 110 vorbereitet. Darüber hinaus wird in dem Rückwärtsdecodierbaumvorbereitungsabschnitt 113 ein Rückwärtsdecodierbaum auf der Grundlage der Rückwärtscodeworttabelle 112 vorbereitet.
  • 38 zeigt ein Blockschaltbild des Codeworttabellenvorbereitungsabschnitts 101. Ein Codeauswahlabschnitt 21 speist Daten der Wahrscheinlichkeit des Quellsymbols ein und wählt ein Codesystem mit der minimalen mittleren Codelänge aus auswählbaren Codesystemen auf der Grundlage der Daten der Wahrscheinlichkeit des Quellsymbols zum Übertragen des ausgewählten Ergebnisses zu einem Codewortkonfigurierabschnitt 22 aus. Der Codewortkonfigurierabschnitt 22 konfiguriert Codeworte des durch den Codewortauswahlabschnitt 21 ausgewählten Codes. Die durch den Codewortkonfigurierabschnitt 22 vorbereitete Codeworttabelle wird zu der Codeworttabelle 102 in dem Codierabschnitt 114 und der Vorwärtscodeworttabelle 110 in dem Decodierabschnitt 115 übertragen. Zu der Rückwärtscodeworttabelle 112 in dem Decodierabschnitt 115 wird die in der Rückwärtsrichtung der Vorwärtsrichtung beschriebene Codeworttabelle übertragen.
  • In dem Codeauswahlabschnitt 21 werden die eingespeisten Quellsymbole in der Reihenfolge der Wahrscheinlichkeit umgeordnet, so dass S = |S1, S2, ..., Sn| ist, und auf der Grundlage der Wahrscheinlichkeiten P der Quellsymbole S wird ein Code C, der die folgende Formel erfüllt, aus einem Satz von konfigurierbaren Coden C ausgewählt.
    Figure 00450001
    wobei Li eine Codelänge ist, die durch eine Gewichtung eines Codewortes berechnet werden kann, die durch den Codewortkonfigurierabschnitt 22 gegeben. ist. In diesem Fall ist die Gewichtung eines Codewortes die Anzahl von "1" oder "0" in dem Codewort.
  • Nachstehend wird ein Verfahren zum Konfigurieren eines Codewortes in dem Codewortkonfigurierabschnitt 22 beschrieben.
  • 39 zeigt ein Beispiel eines Verfahrens zum Konfigurieren eines Binärcodesystems, bei dem die Gewichtungen bzw. Wertigkeiten für Code mit variabler Wortlänge, konstant sind. Gemäß der Darstellung von 39(a) wir ein gitterartig gerichteter Graph von dem Startpunkt zu dem Endpunkt ausgebildet. In dem gewichteten Graph entspricht für den Fall, dass der Verlauf von dem Startpunkt zu dem Endpunkt folgt, "1" dem Binärcode, wenn der linke Kurs ausgewählt ist, und "0" entspricht dem Binärcode, wenn der rechte Kurs ausgewählt wird, so dass ein Binärcodesystem ausgebildet wird, wie es in 39(b) gezeigt ist. In diesem Beispiel hat das konfigurierte Binärcodesystem eine Codelänge von 5 Bits und eine Wertigkeit (die Anzahl von "1) von zwei. Allgemein ist die Zahl der Binärcodesysteme, die eine Codelänge von N-Bits und eine Wertigkeit von W haben, gleich zu der Zahl der Kombinationen, die durch Auswählen von W aus N ausgebildet wird. In diesem Fall gibt es zehn Binärcodesysteme, da die Zahl der Kombinationen durch Auswählen von zwei aus 5 ausgebildet ist.
  • 40 zeigt ein erstes Verfahren zum Konfigurieren von Codeworten eines Codes in variabler Wortlänge in dem Codewortkonfigurierabschnitt 22, der sowohl in der Vorwärtsrichtung als auch in der Rückwärtsrichtung decodiert werden kann (was nachstehend als "reversibler Code" bezeichnet wird). Gemäß der Darstellung auf der linken Seite von 40 ist zunächst ein Binarcodesystem, das das Quellsymbol 1 aufweist (in diesem Fall 9) und bei dem die Wichtung (die Anzahl von "1") konstant ist (in diesem Fall 1) in der Reihenfolge einer kürzeren Codelänge mit dem Verfahren von 39 konfiguriert. Gemäß der Darstellung von 40 wird dann "1" dem Kopf und dem Ende jedes der Binärcodesystem hinzugefügt und wird "0" dem kürzesten Code zugewiesen, so dass die Codeworte des reversiblen Codes konfiguriert sind. Der reversible Code startet immer von dem Code "0" bezüglich dem Quellsymbol A und von dem Code "1" bezüglich den weiteren Quellsymbolen B bis J zum Ausbilden einer Codekonfiguration, bei der der Code beendet ist, wenn dreimal "1" auftritt, d.h. die Pause zwischen Coden (die Codelänge) kann erfaßt werden.
  • Die notwendigen und ausreichenden Bedingungen, dass der Code mit variabler Wortlänge ein reversibler Code ist, d.h. der Code kann sowohl in der Vorwärts- als auch in der Rückwärtsrichtung decodiert werden, sind, dass alle die Codeworte den Blättern des Decodierbaums in der Vorwärtsrichtung und den Blättern des Decodierbaums in der Rückwärtsrichtung zugewiesen sind. Die Blätter des Decodierbaums stehen für das Ende des Decodierbaums, d.h. eine Stelle, an der nichts davor ist. In dem Code mit variabler Wortlänge von 40 sind beispielsweise die Codeworte, die allen den Quellsymbolen A bis J entsprechen, den Blättern des Decodierbaums in der Vorwärtsrichtung gemäß der Darstellung von 41(a) sowie den Blättern des Decodierbaums in der Rückwärtsrichtung gemäß der Darstellung von 41(b) zugewiesen. Daher kann er sowohl in der Vorwärts- als auch in der Rückwärtsrichtung decodiert werden.
  • Die Parameter bei dem Verfahren zum Konfigurieren von Codeworten eines Codes mit variabler Wortlänge von 40 kann verschiedenen Wahrscheinlichkeiten von Quellsymbolen entsprechen, indem als die Wertigkeit die Anzahl von "1" in den Codeworten und eine natürliche Zahl W, die nicht kleiner als 2 ist, ausgewählt wird. Natürlich kann das gleiche Ergebnis durch Umkehren der Bits zum Betrachten der Anzahl von "0" als die Wertigkeit erlangt werden.
  • 42 zeigt ein zweites Verfahren zum Konfigurieren von Codeworten eines reversiblen Codes in dem Codewortkonfigurierabschnitt 22. Zunächst wird gemäß der linken Seite von 42 ein Binärcodesystem, das ein Quellsymbol 2 aufweist und bei dem die Gewichtung (die Anzahl von "1") konstant ist (in diesem Fall 1) in der Reihenfolge einer kürzeren Codelänge durch das Verfahren von 39 konfiguriert. Danach wird, wie es in der Mitte von 43 gezeigt ist, "1" dem Kopf und dem Ende jedes der Binärcodesysteme hinzugefügt und werden die Codeworte, die durch Umkehren der Bits der Codeworte erlangt werden, den Binärcodesystemen hinzugefügt, wie es in 42 gezeigt ist.
  • Bei dem Code mit variabler Wortlänge kann die Codelänge gefunden werden, indem die Zahl der Symbole am Beginn jedes Codes gezählt wird. In dem Beispiel von 43, wenn vier Symbole am Beginn jedes der Code auftreten, sind die Code beendet, d.h. die Pause zwischen Coden (die Codelänge) kann erfaßt werden.
  • Bei dem Code mit variabler Wortlänge von 42 sind die Codeworte, die allen den Quellsymbolen A bis J entsprechen, den Blättern des Decodierbaums in der Vorwärtsrichtung, wie er in 43(a) gezeigt ist, sowie den Blättern des Decodierbaums in der Rückwärtsrichtung, wie er in 43(b) gezeigt ist, zugeordnet. Daher kann er sowohl in der Vorwärts- als auch in der Rückwärtsrichtung decodiert werden.
  • 44 zeigt ein drittes Verfahren zum Konfigurieren von Codeworten eines reversiblen Codes in dem Codewortkonfigurierabschnitt 22. Bei dem reversiblen Code kann die Codelänge der Codeworte gefunden werden, wenn die Anzahl von "0" gleich zu der Zahl von "1" ist. D.h., es wird ein gitterartig gerichteter Graph, wie er in 44(a) gezeigt ist, betrachtet. In diesem gerichteten Graph entspricht, wenn der linke Kurs, der von dem Startpunkt startet, ausgewählt wird, '0' dem Binärcode, und wenn der rechte Kurs ausgewählt wird, entspricht "1" diesem, so dass Codeworte durch den Kurs ausgebildet werden, der die Punkte an der Diagonallinie erreicht, die durch den Startpunkt verläuft.
  • In diesem Fall sind die Codeworte, die allen den Quellsymbolen A bis J entsprechen, den Blättern des Decodierbaums in der Vorwärtsrichtung zugewiesen, wie es in 45(a) gezeigt ist, sowie den Blättern des Decodierbaums in der Rückwärtsrichtung zugewiesen, wie es in 45(b) gezeigt ist, so dass ersichtlich ist, dass sie sowohl in der Vorwärtsrichtung als auch in der Rückwärtsrichtung decodiert sein können.
  • Ein Verfahren zum Verkürzen eines reversiblen Codes gemäß einem Ausführungsbeispiel der Erfindung wird nachstehend beschrieben.
  • Da die Zahl der Quellsymbole, d.h. die Zahl der Code eines Codes mit variabler Wortlänge begrenzt ist, ist es möglich einen Teil eines Codes eines variablen Codes zu verkürzen. Der Ausdruck "Verkürzen" bedeutet, dass die Codelänge eines Teils eines Codes verkürzt wird, ohne dass die Codelänge von weiteren Coden erhöht wird. 46 zeigt ein Beispiel eines Verfahrens zum Verkürzen eines reversiblen Codes. Wird beispielsweise in dem reversiblen Code, wie er in 42 gezeigt wird, ein Bit an dem Ende der Codeworte, die den Quellsymbolen G, H, I und J entsprechen, entfernt, ist es möglich, den reversiblen Code sowohl in der Vorwärts- als auch in der Rückwärtsrichtung zu decodieren. Durch Anwendung dessen wird die Codelänge von vier Codeworten, die den Quellsymbolen G, H, J und J entsprechen, in 46 verkürzt.
  • In dem Code mit variabler Wortlänge, wie er in 46 gezeigt ist, sind die Codeworte, die allen den Quellsymbolen A bis J entsprechen, den Blättern des Decodierbaums in der Vorwärtsrichtung, wie es in 47(a) gezeigt ist, sowie den Blättern des Decodierbaums in der Rückwärtsrichtung, wie es in 47(b) gezeigt ist, zugeordnet. Daher kann er sowohl in der Vorwärts- als auch in der Rückwärtsrichtung decodiert werden.
  • Unter Bezugnahme auf 48 wird nachstehend ein Verfahren zum Erweitern eines reversiblen Codes gemäß einem Ausführungsbeispiel der Erfindung erläutert.
  • Die Erweiterung eines reversiblen Codes kann durch Hinzufügen eines Codes mit fixer Wortlänge zum Kopf und/oder zum Ende eines jeden Codes zum Erhöhen der Zahl der Codeworte der gesamten Codelänge erfolgen. In einem Beispiel von 48 wird ein Code mit fixer Wortlänge von zwei Bits dem Ende jedes reversiblen Codes hinzugefügt, wie es auf der linken Seite gezeigt ist. Obwohl in diesem Fall die Codelänge jedes reversiblen Codes im Gesamten um zwei Bits ansteigt, wird die Zahl der Codeworte der gleichen Codelänge um das Vierfache erhöht. Wird ein Code mit fixer Wortlänge von N-Bits hinzugefügt, können allgemein, obwohl die Codelänge im Gesamten um N-Bits ansteigt, die Zahl der Codeworte der gleichen Codelänge um das 2N-fache ansteigen. Da der Code mit fixer Wortlänge klar ein reversibler Code ist, bleibt er, falls ein Code mit fixer Wortlänge dem Kopf oder dem Ende des reversiblen Codes hinzugefügt wird, ein reversibler Code.
  • 49 zeigt den Vergleich zwischen einem reversiblen Code, der durch Codieren mit variabler Wortlänge von Quellsymbolen erlangt wird, die dem Alphabet in Englisch entsprechen, gemäß einem Ausführungsbeispiel der Erfindung und einem reversiblen Code, der in der japanischen Patentoffenlegungsschrift Nr. 5-300027 offenbart ist. Der reversible Code gemäß dem Ausführungsbeispiel der Erfindung, wie er in 49 gezeigt ist, ist ein Code, der durch Hinzufügen eines Codes mit fixer Wortlänge von 2 Bits an das Ende eines Codes erweitert ist, wenn die Wertigkeit des Codewortes in dem Verfahren, wie es in 40 gezeigt ist, null ist.
  • Obwohl der reversible Code gemäß dem Ausführungsbeispiel der Erfindung dem Hufmanns-Code unterlegen ist, der dem optimalen Code für einen Code mit variabler Wortlänge entspricht, der nur in der Vorwärtsrichtung decodiert werden kann, ist seine mittlere Codelänge kürzer als der reversible Code, der in der vorstehend angeführten japanischen Patentoffenlegungsschrift offenbart ist, und weist eine bessere Leistungsfähigkeit auf. Der bekannte reversible Code ist ein Code, bei dem Bits dem Ende des Hufmanns-Codes hinzugefügt werden, der ein Code mit variabler Wortlänge ist, der nur in der Vorwärtsrichtung decodierbar ist. Andererseits werden gemäß dem Ausführungsbeispiel der Erfindung exzessive Bits hinzugefügt und ist ein reversibler Code ursprünglich konfiguriert, so dass die Zahl von nutzlosen Bit-Mustern gering ist.
  • Das zweite bevorzugte Ausführungsbeispiel eines Codiersystems und/oder Decodiersystems mit variabler Wortlänge gemäß der Erfindung wird nachstehend beschrieben.
  • 50 zeigt ein Blockschaltbild des zweiten bevorzugten Ausführungsbeispiels eines Codiersystems und/oder Decodiersystems mit variabler Wortlänge gemäß der Erfindung. Das Codiersystem und/oder Decodiersystem mit variabler Wortlänge in dem bevorzugten Ausführungsbeispiel enthält allgemein einen Codeworttabellenvorbereitungsabschnitt 201, einen Codierabschnitt 213, ein Übertragungs- und Speichersystem 205 und einen Decodierabschnitt 214.
  • Die Funktionsweise jeder dieser Abschnitte wird nachstehend kurz beschrieben. Der Codeworttabellenvorbereitungsabschnitt 201 enthält eine Codeworttabelle auf der Grundlage der Wahrscheinlichkeit eines Quellsymbols zum Übertragen davon zu einer Codiertabelle 202 in dem Codierabschnitt 213 und zum Übertragen der Parameter der Codierworte der vorbereiteten Codeworttabelle zu einem Decodiergraph und einem Decodierwerttabellenvorbereitungsabschnitt 208 in dem Decodierabschnitt 214. Der Codierabschnitt 213 codiert das Quellsymbol zu einem Code mit variabler Wortlänge zum Ausgeben des Codes mit variabler Wortlänge zu dem Übertragungs- oder Speichersystem 205 als Codierdaten. Der Decodierabschnitt 214 decodiert die über das Übertragungs- oder Speichersystem 205 eingespeisten Codierdaten zum Wiedergeben des ursprünglichen Quellsymbols.
  • Der detaillierte Aufbau und Betrieb jedes Abschnittes im bevorzugten Ausführungsbeispiels wird nachstehend beschrieben.
  • In dem Codierabschnitt 213 wird das eingespeiste Quellsymbol einem Codierer 203 eingespeist. Andererseits speichert die Codeworttabelle 202 die Quellsymbole, die durch den Codeworttabellenvorbereitungsabschnitt 201 vorbereitet worden sind, und die Codeworte der Code mit variabler Wortlänge, die den Quellsymbolen entsprechen. Jedoch die Codeworttabelle 202 enthält nicht alle die Codeworte, die allen den Quellsymbolen entsprechen, die eingespeist werden können, und sie speichert nur die Codeworte, die einem Teil der Quellsymbole entsprechen, die eine relativ hohe Auftrittswahrscheinlichkeit aufweisen. Der Codierer 203 wählt ein Codewort, das dem eingespeisten Quellsymbol entspricht, aus den in der Codeworttabelle 202 gespeicherten Codeworten aus und gibt es als Codierdaten aus.
  • Wird ein Quellsymbol, bei dem kein entsprechendes Codewort in der Codeworttabelle 202 enthalten ist, d.h. ein Quellsymbol mit relativ geringer Auftrittswahrscheinlichkeit, eingespeist zu dem Codierabschnitt 213, wird ein Code mit fixer Wortlänge, der dem Quellsymbol entspricht, durch einen Codierabschnitt 204 für einen Code mit fixer Wortlänge vorbereitet und wird ein Escape-Code in der Codeworttabelle 202 dem Präfix und dem Suffix des Codes mit fixer Wortlänge zum Konfigurieren von Codeworten hinzugefügt, die als Codierdaten ausgegeben werden.
  • Die auf diese Weise von dem Codierer 203 in dem Codierabschnitt 213 ausgegebenen Codierdaten werden zu dem Decodierer 214 über das Übertragungs- oder Speichersystem 205 übertragen. Dabei wird ein Synchronisiercode mit jeder vorbestimmten Periode in die Codierdaten eingefügt.
  • Der Decodierabschnitt 214 enthält einen Synchronisiercodedetektierabschnitt 206, einen Zwischenspeicher 207, den Decodiergraphen- und Decodierwerttabellenvorbereitungsabschnitt 208, einen Vorwärtsdecodierer 209, einen Decodierabschnitt 210 mit fixer Wortlänge und einen Rückwärtsdecodierer 211 und einen Decodierwertentscheidungsabschnitt 212. Zunächst erfaßt der Synchronisiercodeerfassungsabschnitt 206 einen Synchronisiercode auf der Grundlage der durch das Übertragungs- und Speichersystem 205 eingespeisten Codierdaten und speichert der Zwischenspeicher 207 die Codierdaten zwischen den benachbarten Synchronisiercoden. In dem Vorwärtsdecodierer 209 werden die in dem Zwischenspeicher 207 gespeicherten Codierdaten in einer Abfolge decodiert, die von dem Präfix der Codierdaten startet. In dem Rückwärtsdecodierer 211 werden die in dem Zwischenspeicher 207 gespeicherten Decodierdaten in einer Abfolge decodiert, die von dem Suffix der Codierdaten startet. Der Decodierwertentscheidungsabschnitt 212 entscheidet einen Decodierwert auf der Grundlage eines decodierten Ergebnisses, das durch den Vorwärtsdecodierer 209 erlangt wird (welches nachstehend als "vorwärtsdecodierter Wert" bezeichnet wird) und eines decodierten Ergebnisses, das durch den Rückwärtsdecodierer 211 erlangt wird (das nachstehend als "rückwärtsdecodierter Wert" bezeichnet wird), und gibt ein endgültig decodiertes Ergebnis aus.
  • 51 zeigt ein Verfahren zum Hinzufügen von Escape-Coden zu dem Kopf und zu dem Ende von Coden mit fixer Wortlänge zum Konfigurieren von Codeworten in dem Codeworttabellenvorbereitungsabschnitt 201. Gemäß der Darstellung von 51(a) ist das durch den Codeworttabellenvorbereitungsabschnitt 201 vorbereitete Codewort grundsätzlich ein reversibler Code, bei dem eine Pause eines Codes durch das Auftreten von drei "1" mit Ausnahme des Quellsymbols "A" erfaßt werden kann. Der reversible Code wird nachstehend als "Code (1)" bezeichnet.
  • Andererseits ist ein Code (2), wie er in 51(b) gezeigt ist, durch neuerliches Hinzufügen zu dem Code (1) eines Codewortes, das durch Hinzufügen zu dem Kopf und dem Ende eines Codes mit fixer Wortlänge von 3 Bit konfiguriert ist, wobei das Codewort "1011" dem Quellsymbol "C" des Codes (1) als Escape-Code zum Darstellen des Kopfes und des Endes des Codes mit fixer Wortlänge entspricht. Die Abschnitte des reversiblen Codes des Codes (2), die dem Code (1) entsprechen, verwenden jedoch nicht das Codewort "1011", das als der Escape-Code in dem Code (2) verwendet wird und verwenden nur die Codeworte, die den Quellsymbolen A bis I entsprechen, wobei die Zahl davon um eins geringer als die des Codes (1) ist. Aus dem Vergleich von 51(a) und 51(b) ist klar ersichtlich, dass die Anzahl der Quellsymbole, die codiert werden können, von "10" des Codes (1) auf "17" des Codes (2) ansteigt.
  • Um einen derartigen Code (2), wie er aus 51(a) und 51(b) ersichtlich ist, zu decodieren, wird der Code (1) immer einmal decodiert, wenn der Code (2) in der Vorwärts- und Rückwärtsrichtung decodiert wird, und kann der Code mit fixer Wortlänge in der Vorwärts- und der Rückwärtsrichtung decodiert werden. Falls daher der Code (1) in der Vorwärts- und in der Rückwärtsrichtung decodiert werden kann, kann der Code (2) in der Vorwärts- und in der Rückwärtsrichtung decodiert werden.
  • Für den Fall von konventionellen reversiblen Coden ist es notwendig, alle die Codeworte, die den Quellsymbolen entsprechen, die eingespeist werden können, als Codeworttabellen in dem Codierer 213 und dem Decodierer 214 vorzubereiten. Andererseits kann in dem Code (2) der Codeabschnitt mit fixer Wortlänge separat als Binärcode mit 3 Bit in dem Codierabschnitt 204 für einen Code mit fixer Wortlänge und dem Decodierabschnitt 210 für den Code mit fixer Wortlänge vorbereitet sein, so dass die Codeworttabelle 202 nur die Codeworte des Codes (1) speichert. Daher ist es möglich, die Speicherkapazität des Codiersystems und/oder Decodiersystems mit variabler Wortlänge im Vergleich zu den konventionellen reversiblen Coden stark zu verringern.
  • Der Decodiergraph und Decodierwerttabellenvorbereitungsabschnitt 208 bereitet einen Decodiergraphen auf der Grundlage eines Shalkwijk's Algorithmus und eine Decodierwerttabelle vor. Der Vorwärtsdecodierer 209 und der Rückwärtsdecodierer 211 decodieren Code auf der Grundlage der Decodiergraphen und der Decodierwerttabelle.
  • 52 zeigt ein Verfahren zum Zählen eines Binärwertsystems einer konstanten Wertigkeit. Als ein Beispiel eines Algorithmuses zum Zählen eines Binärcodesystems mit konstanter Wertigkeit ist der Algorithmus, der in "An algorithm for source coding" (J.P.M. Shalkwijk; IEEE Trans. Inform Theory, vol. IT-18, No. 3, pp. 395-399, May 1972) als Shalkwijk's Algorithmus bekannt. In dem Shalkwijk's Algorithmus ist ein gitterartig gerichteter Graph, der sich von dem Startpunkt zu dem Endpunkt erstreckt, auf der Grundlage eines "Pascal-Dreiecks" ausgebildet, wie es in 52(a) gezeigt ist. Der durch eine Zahl einer Verbindung ausgedrückte Wert ist gleich der Gesamtzahl der Werte der Verbindungen an den Startpunkten der Pfeile, die an der vorstehend angeführten Verbindung eintreffen, unter der Annahme, dass der Wert an dem Startpunkt 1 ist. D.h., die Werte der jeweiligen Verbindungen werden durch das Pascalsche Dreieck bestimmt.
  • Für den Fall, dass der Kurs von dem Startpunkt zu dem Endpunkt gemäß den eingespeisten Quellsymbolen in dem gerichteten Graph von 52(a) verläuft, kann ein Binärcodesystem mit einer Wertigkeit von 2 ausgebildet werden, indem "0" des Codewortes zum Entsprechen des Binärcodes veranlaßt wird, wenn der linke Kurs (Pfeil) ausgewählt wird, und "1" des Codewortes zum Entsprechen des Binärcodes veranlaßt wird, wenn der rechte Kurs (Pfeil) ausgewählt wird. Die Gesamtzahl der Werte, die durch Subtrahieren des Wertes an der Verbindung des Startpunktes eines Pfeils von dem Wert an der Verbindung des Endpunktes eines Pfeils erlangt wird, wenn "0" ausgewählt ist, ist der Rangordnungswert bzw. Zählwert (rank Order value) bezüglich der Codeworte der gleichen Codelänge in dem Binärcodesystem. Falls beispielsweise das eingespeiste Quellsymbol "01001" ist, ist der Rangordnungswert der Gesamtwert der Differenzen zwischen den Werten an Verbindungen bezüglich drei "0", d.h. (1-1) + (3-2) + (4-3) = 2. Der Rangordnungswert bedeutet einen Wert zum Bestimmen der Reihenfolgen verschiedener Codeworte der gleichen Codelänge. 52(b) zeigt die Beziehung zwischen dem Quellsymbol und dem Rangordnungswert in diesem Fall.
  • Das Beispiel der Anwendung des Shalkwijk's Algorithmus zum Codieren ist bekannt. In diesem Fall wird die Codierung durch Transformieren des Wertes, der dem vorstehend angeführten Rangordnungswert entspricht, in einen Binarcode ausgeführt. Andererseits wird gemäß dem bevorzugten Ausführungsbeispiel der Erfindung der Algorithmus für das Decodieren, wie nachstehend ausgeführt, verwendet.
  • D.h., in dem Decodiergraphen- und Decodierwerttabellenvorbereitungsabschnitt 208 wird ein gerichteter Graph als Decodiergraph auf der Grundlage des vorstehend angeführten Shalkwijk's Algorithmus vorbereitet. D.h., der Decodiergraph ist ein gerichteter Graph, bei dem die Werte, die durch das Pascalsche Dreieck bestimmt werden, die Werte an Verbindungen sind und die Pfeile durch "1" und "0" ausgedrückt werden. Ein Beispiel davon ist in 53(a) gezeigt. 53(b) zeigt ein Beispiel eines Verfahrens zum Berechnen eines decodierten Wertes in dem Vorwärtsdecodierer 208 und dem Rückwärtsdecodierer 211, die diesen Decodiergraphen verwenden.
  • Der Code (1), wie er in 51(a) gezeigt ist, ist ein reversibler Code, bei dem eine Pause durch einen Punkt gesucht werden kann, bei dem drei "1" auftreten. Für den Fall, dass ein decodierter Wert des reversiblen Codes für den Code (1) berechnet wird, wird bezüglich der Vorwärtsrichtung 0 dem decodierten Wert zugeführt, falls das Präfix des reversiblen Codes "0" ist, und wird "1" am Kopf und "1" am Ende entfernt, falls das Präfix nicht "0" ist und wird dann der Rangordnungswert auf der Grundlage des Shalkwijk's Algorithmus berechnet. Da nun die Zahl der Codeworte mit einer kürzeren Codelänge als eines zu decodierenden Codewortes +1 ist, das der Gesamtwert der Werte der Verbindungen entlang der Linie ist, die nach rechts von dem Endpunkt in 53(a) geneigt ist, wird der decodierte Wert durch Addieren des Rangordnungswertes zu dem Gesamtwert erlangt.
  • Andererseits wird bezüglich der Rückwärtsrichtung gleichartig zu der Vorwärtsrichtung 0 dem decodierten Wert zugeführt, falls der Kopf des reversiblen Codes "0" ist und werden "1" am Kopf und "1" am Ende entfernt, falls der Kopf nicht "0" ist. Nachdem danach die Restabschnitte umgekehrt sind, wird der Rangordnungswert auf der Grundlage des Shalkwijk's Algorithmus berechnet. Der decodierte Wert wird erlangt, indem der Rangordnungswert zu dem Gesamtwert der Werte der Verbindungen entlang der Linie addiert wird, die nach rechts von dem Endpunkt geneigt ist.
  • Unter Bezugnahme auf 53(a) und 53(b) wird das Verfahren zum Berechnen eines decodierten Wertes im Detail beschrieben. Falls beispielsweise das Codewort eines reversiblen Codes, das zu decodieren ist, "10101" ist, werden "1" am Kopf und "1" am Ende zu "010" entfernt. Ist der Rangordnungswert bezüglich dem "010" auf der Grundlage des Shalkwijk's Algorithmuses hergeleitet, ist er (1-1) + (3-2) = 1 bezüglich zwei "0"en. Da in diesem Fall die Gesamtzahl der Werte der Verbindungen entlang der Linie, die nach rechts von dem Endpunkt geneigt ist, 1 + 2 = 3 ist, kann der decodierte Wert zu 5 berechnet werden, in dem der Wert +1 (=4) zu dem Rangordnungswert (=1) addiert wird.
  • Wird die Decodierung mittels eines derartigen Decodiergraphen ausgeführt, ist es möglich, die Speicherkapazität stark zu verringern. 54(a) und 54(b) zeigen den Unterschied zwischen den notwendigen Speicherkapazitäten bei dem konventionellen Codierverfahren, das ein Codierbaum verwendet, und dem Codierverfahren, das einen Decodiergraphen gemäß dem bevorzugten Ausführungsbeispiel verwendet. Wird die Anzahl der Verbindungen in beiden Verfahren verglichen, ist, obwohl die Anzahl der Pfeile, die sich von jedem der Verbindungen erstrecken, in jedem der vorstehend angeführten Verfahren zwei ist, die Zahl der Pfeile, die jeden der Verbindungen erreichen, unterschiedlich. D.h., im Falle des Decodierbaumes von 54(a) ist die Zahl der Pfeile, die jeden der Verbindungen erreichen, immer 1. Andererseits erreichen für den Fall des Decodierbaums von 54(a) zwei Pfeile jeden der Verbindungen, so dass die Gesamtzahl der für das gleiche Codewort notwendigen Verbindungen sich verringert. In diesem Beispiel sind, obwohl fünfzehn Verbindungen für den Decodierbaum von 54(a) notwendig sind, nur acht Verbindungen für den Decodierbaum von 54(b) notwendig. Es besteht daher ein Vorteil darin, dass die für das Decodierverfahren, das einen Decodiergraphen gemäß dem bevorzugten Ausführungsbeispiel verwendet, notwendig ist, geringer als die für das konventionelle Decodierverfahren, das einen Decodierbaum verwendet, ist.
  • Um den Code (2) zu decodieren, zu dem ein Escape-Code addiert ist, wie es in 51(b) gezeigt ist, sind zwei Decodierwerttabellen vorbereitet, d.h. die Decodierwerttabelle des Codes (1), wie sie in 55(a) gezeigt ist, und die Decodierwerttabelle von Coden mit fixer Wortlänge, wie sie in 55(b) gezeigt ist. Wenn ein Escape-Code in der Decodierwerttabelle der Code (1) decodiert wird, wird die Decodierwerttabelle mit Coden fester Wortlänge gelesen. Für den Fall, dass das Codewort "101100011011" ist, wird beispielsweise das "10111" am Präfix, d.h. der Escape-Code decodiert, wird das nachfolgende "001" von drei Bits als Code mit fixer Wortlänge betrachtet und wird die Decodierung in dem Decodierabschnitt 210 für einen Code mit fixer Wortlänge ausgeführt. Da in diesem Fall 1 als der Decodierwert "001" hergeleitet wird, wird das Quellsymbol "K" als das decodierte Ergebnis auf der Grundlage der Decodierwerttabelle der Code mit fixer Wortlänge von 55(a) hergeleitet.
  • Das bevorzugte Ausführungsbeispiels eines Codiersystems und/oder Decodiersystems mit variabler Wortlänge, das auf ein Bewegtbild-Codier- und/oder Decodiersystem angewendet wird, gemäß der Erfindung, wird nachstehend beschrieben.
  • 56 zeigt ein Blockschaltbild, das schematisch ein Bewegtbild-Codiersystem und/oder Decodiersystem zeigt, in dem das vorstehend angeführte Codiersystem und/oder Decodiersystem mit variabler Wortlänge beinhaltet ist.
  • Bei einem Bewegtbildcodierer 709, wie er in 56(a) gezeigt ist, werden die Codierung mit variabler Wortlänge, die Kanalcodierung, das Multiplexen usw. der durch einen Quellcodierer 702 codierten Daten durch einen Bewegtbildmultiplexabschnitt 703 ausgeführt. Nachdem darüber hinaus das Glätten der Übertragungsgeschwindigkeit durch einen Übertragungszwischenspeicher 704 ausgeführt ist, werden sie zu einem Übertragungs- oder Speichersystem 705 als Codierdaten übertragen. Ein Steuerabschnitt 701 steuert den Quellcodierer 702 und den Bewegtbildmultiplexabschnitt 703 im Hinblick auf die Speicherkapazität des Übertragungszwischenspeichers 704.
  • Andererseits werden in einem Bewegtbilddecodierabschnitt 710, wie er in 56(b) gezeigt ist, die von dem Übertragungs- oder Speichersystem 705 übertragenen Codierdaten temporär in einem Empfangszwischenspeicher 706 gespeichert. Nachdem darüber hinaus nach dem Multiplexteil die Kanalcodedecodierung und die Decodierung für den Code mit variabler Wortlänge der Decodierdaten durch einen Bewegtbild-Multiplexteilabschnitt 707 ausgeführt werden, werden die Daten zu einem Quelldecodierer 708 übertragen und wird ein Bewegtbild schließlich decodiert.
  • 57 zeigt die Syntax des Bewegtbildcodierverfahrens in dem Bewegtbildcodierer 709 und dem Bewegtbildmultiplexteilabschnitt 707 von 56. In der oberen Schicht der Bildschichten, wie es in 57(a) gezeigt ist, werden Daten wie etwa Modusdaten, Bewegungsvektordaten und INTRA-DC eines Makroblocks, die sich von den DCT-Koeffizientendaten unterscheiden, beschrieben und in ihrer unteren Schicht werden DCT-Koeffizientendaten beschrieben. Der reversible Code gemäß der Erfindung wird auf die untere Schicht angewendet.
  • 58(a) und 58(b) zeigen Blockschaltbilder zur Veranschaulichung der detaillierten Konstruktionen des Bewegtbildmultiplexabschnittes 703 und des Bewegtbildmultiplexteilabschnittes 707 von 56. Aus den von dem Quellcodierer 702 von 56 zugeführten Codierdaten wird bezüglich der Daten wie etwa der Modusdaten, der Bewegungsvektordaten und der INTRA-DC-Daten, die sich von den DCT-Koeffizientendaten unterscheiden, die in der oberen Schicht beschrieben sind, nachdem die übliche Codierung mit variabler Wortlänge in einem Codierer 901 mit variabler Wortlänge der oberen Schicht ausgeführt ist, die Kanalcodierung in einem Kanalcodierer 902 der oberen Schicht mittels eines Fehlerkorrekturerfassungssignals ausgeführt, das eine hohe Korrekturkapazität aufweist, obwohl es eine hohe Redundanz aufweist, und werden die auf diese Weise verarbeiteten Daten zu einem Multiplexabschnitt 905 übertragen.
  • Andererseits werden aus den von dem Quellcodierer 702 zugeführten Codierdaten die DCT-Koeffizientendaten in reversible Daten mittels eines Codierers 903 mit variabler Wortlänge der unteren Schicht codiert. Nachdem danach dessen Kanalcodierung in einem Kanalcodierer 904 der unteren Schicht mittels eines Fehlerkorrekturerfassungssignals ausgeführt wird, das eine geringe Redundanz aufweist, werden die auf diese Weise verarbeiteten Daten zu dem Multiplexabschnitt 905 übertragen. In dem Multiplexabschnitt 905 werden Codierdaten der oberen und der unteren Schicht zum Übertragen zu dem Übertragungszwischenspeicher 904 gemultiplext.
  • In dem Bewegtbild-Multiplexteilabschnitt 707, wie er in 58(b) gezeigt ist, werden die von dem Empfangszwischenspeicher 706 zugeführten Codierdaten in die obere und die untere Schicht mittels eines Multiplexteilabschnitts 906 unterteilt. Die Codierdaten in der oberen Schicht werden mittels eines Kanaldecodieres 907 der oberen Schicht decodiert und das decodierte Ergebnis wird zu einem Decodierer 909 mit variabler Wortlänge der oberen Schicht übertragen. Die Codierdaten in der unteren Schicht werden mittels eines Kanaldecodierers 908 der unteren Schicht decodiert und das decodierte Ergebnis wird zu einem Decodierer 910 mit variabler Wortlänge der unteren Schicht übertragen.
  • Der Decodierer 910 mit variabler Wortlänge der unteren Schicht decodiert den reversiblen Code und überträgt das decodierte Ergebnis zu dem Quelldecodierer 708 und dem Decodierer 909 mit variabler Wortlänge der oberen Schicht. Der Decodierer 909 mit variabler Wortlänge der oberen Schicht decodiert den Code mit variabler Wortlänge, der als Codierdaten der oberen Schicht dient, und schreibt die Codierergebnisse auf der Grundlage des decodierten Ergebnisses des Decodierers 910 mit variabler Wortlänge der oberen Schicht neu.
  • Der Codierer 903 mit variabler Wortlänge der unteren Schicht in 58(a) entspricht dem Codierabschnitt 213 in 50 und der Decodierer 910 mit variabler Wortlänge der unteren Schicht in 58(b) entspricht dem Decodierabschnitt 214 in 50.
  • Aus dem Bewegtbild-Codiersystem und/oder Decodiersystem des bevorzugten Ausführungsbeispiels ist ersichtlich, dass, wenn das Codierverfahren eine Syntax aufweist, wie sie in 57 gezeigt ist, es nicht nur für den Code mit variabler Wortlänge selbst notwendig ist, dass er in beiden Richtung decodiert werden kann, sondern dass es ebenso für den Code mit variabler Wortlänge notwendig ist, das er syntaktisch in beiden Richtungen decodiert werden kann. In dem bevorzugten Ausführungsbeispiel kann dieses Erfordernis durch die Codeworttabelle erfüllt werden, wie sie nachstehend beschrieben ist.
  • 59 bis 63 zeigen Beispiele einer Codeworttabelle von Coden mit variabler Wortlänge von DCT-Koeffizienten, die in dem Codierer 903 mit variabler Wortlänge der unteren Schicht verwendet werden. Darüber hinaus zeigt 64 eine Codeworttabelle von Escape-Coden.
  • In dem Quellcodierern 702 wird bezüglich eines Blockes mit 8×8 DCT-Koeffizienten nach einer Quantisierung der Abtastung in dem Block ausgeführt, um einen LETZTEN-Wert bzw. LAST (O: Nicht-Null-Koeffizient an dem von dem letzten des Blocks unterschiedlichen Abschnitt; 1: Nicht-Null-Koeffizient beim Letzten des Blocks), einen LAUF-Wert bzw. RUN (die Zahl eines Null-Laufes vor dem Nicht-Null-Koeffizienten) und einen PEGEL-Wert bzw. LEVEL (dem Absolutwert des Koeffizienten) zum Übertragen des Ergebnisses zu dem Bewegtbildcodier 709 zu erlangen.
  • Der Codierer 903 mit variabler Wortlänge der unteren Schicht in dem Bewegtbildcodierer 709 enthält eine Codeworttabelle (eine erste Codeworttabelle) von Nicht-LETZTEN-Koeffizienten, wobei die reversiblen Code (VLC-Code) den Nicht-LETZTEN-Koeffizienten, den LAUF-Werten und PEGEL-Werten von INTRA und INTER entsprechen, wie es in 59 und 60 gezeigt ist, und eine Codeworttabelle (eine zweite Codeworttabelle) von LETZTEN-Koeffizienten, bei welchen die reversiblen Code (VLC-Code) den LETZTEN-Koeffizienten, den LAUF-Werten und den PEGEL-Werten von INTRA und INTER entsprechen, wie es in 61 und 62 gezeigt ist. Auf der Grundlage der Modusdaten werden für den Fall INTRA die Codeworttabellen der Nicht-LETZTEN-Koeffizienten und der LETZTEN-Koeffizienten von INTRA ausgewählt, und für den Fall für INTER werden die Codeworttabellen der Nicht-LETZTEN-Koeffizienten und der LETZTEN-Koeffizienten von INTER zum Ausführen der Codierung ausgewählt. Ferner gibt "S" bei dem letzten Bit des VLC-Codes in 61 und 62 das Vorzeichen des PEGEL-Wertes an. Ist "S" "0" ist das Vorzeichen des PEGEL-Wertes positiv, und ist "S" "1", ist S negativ.
  • Bezüglich der Koeffizienten, die nicht in dem Codewort existieren, werden der LAUF-Wert und der Absolut-Wert des PEGEL-Wertes in einen Code mit fixer Wortlänge codiert, wie es in 64 gezeigt ist, und wird ein Escape-Code dem Kopf und dem Ende des Codes mit fixer Wortlänge addiert, so dass die Vorzeichen der LETZTEN-Koeffizienten und des PEGEL-Wertes durch das letzte Bit des Escape-Codes bestimmt werden können. 63 zeigt eine Codeworttabelle der Escape-Code. In dieser Tabelle gibt "t" am letzten Bit des VLC-Codes, der als Escape-Code verwendet wird, an, ob der Escape-Code ein LETZTER-Koeffizient ist, wenn "t" dem Kopf des Codes mit fixer Wortlänge hinzugefügt wird. Ist "T" "0", ist der Escape-Code ein Nicht-LETZTER-Koeffizient, und, wenn "t" "1" ist, ist der Escape-Code ein LETZTER-Koeffizient. Darüber hinaus gibt "t" das Vorzeichen des PEGEL-Wertes an. Ist es "0", ist das Vorzeichen des PEGEL-Wertes positiv, und ist es "1", ist das Vorzeichen des PEGEL-Wertes negativ.
  • 65 zeigt ein Beispiel von Codierdaten des bevorzugten Ausführungsbeispiels. Gemäß der Darstellung von 65 kann, wenn die Decodierung in der Vorwärtsrichtung in der unteren Schicht ausgeführt wird, da der Code des LETZTEN-Koeffizienten immer am Ende eines Blockes mit DCT-Koeffizienten von 8×8-Bildelementen existiert, das Ende des Blocks bestimmt werden. Wenn andererseits die Decodierung in Rückwärtsrichtung ausgeführt wird, kann der Kopf des Blocks auf der Grundlage des Auftretens des Codes des LETZTEN-Koeffizienten des letzten Blocks in einer Adresse bestimmt werden. In diesem Code wird der LETZTE-Koeffizient gemeinsam in einem INTRA-Modus und in einem INTER-Modus verwendet, so dass es möglich ist, den Kopf des Blocks zu bestimmen, selbst wenn der Modus für jeden Makroblock existiert.
  • Bezüglich dem ersten Block in der unteren Schicht wird vorab ein Dummy-LETZTER-Koeffizient bei dem Präfix der unteren Schicht mittels des Codierers 903 mit variabler Wortlänge der unteren Schicht codiert oder es wird in dem Decodierer 910 mit variabler Wortlänge der unteren Schicht die Zahl der Bits der unteren Schicht vorab auf der Grundlage der Zahl der Bits zu einem Synchronisiersignal des nächsten Rahmens berechnet, um es mit der Zahl der decodierten Bits zu vergleichen, oder ein Dummy-LETZTER-Koeffizient wird dem Kopf der unteren Schicht mittels eines Zwischenspeichers in dem Decodierer 910 mit variabler Wortlänge der unteren Schicht eingefügt, so dass es möglich ist, den Kopf der unteren Schicht zu bestimmen, wenn das Decodieren in der Rückwärtsrichtung ausgeführt wird.
  • Für den Fall der Vorwärtsrichtung werden die in der Codeworttabelle gemäß der Darstellung der 59 bis 62 gespeicherten reversiblen Code gelesen, bis zwei "0"en auftreten, falls das erste Bit des Kopfes "0" ist, und bis zwei "1"en auftreten, falls das erste Bit des Kopfes "1" ist, so dass ersichtlich ist, dass das nächste Bit das letzte Bit ist, das das Vorzeichen des PEGEL-Wertes darstellt. Im Falle der Rückwärtsrichtung gibt das erste "1"-Bit das Vorzeichen des PEGEL-Wertes an, so dass der reversible Code gelesen werden kann, bis zwei "0"en auftreten, falls das nächste Bit "0" ist und bis zwei "1"en auftreten, falls das nächste Bit "1" ist.
  • 66 zeigt einen Decodiergraphen zum Decodieren des reversiblen Codes, der auf den Code mit variabler Wortlänge des DCT-Koeffizienten angewendet wird, der in dem Codierer 903 mit variabler Wortlänge der unteren Schicht in dem bevorzugten Ausführungsbeispiel verwendet wird. Bezüglich der Codierdaten, die das Bit des Kopfes und die zwei Bits des Endes in der Vorwärtsrichtung entfernen, kann der decodierte Wert durch die Decodiergraphen berechnet werden.
  • Falls in diesem Decodiergraphen das Bit am Kopf "0" ist, verläuft er entlang des rechten Pfeiles, wenn "0" auftritt, und verläuft es entlang des linken Pfeiles, wenn "1" auftritt. Ist das Bit am Kopf "1", verläuft er entlang des rechten Pfeiles, wenn "1" auftritt, und verläuft er entlang des linken Pfeiles, wenn "0" auftritt.
  • Wenn gemäß dem Shalkwijk's Algorithmuses, wie er vorstehend angeführt ist, der linke Pfeil ausgewählt wird, kann ein Rangordnungswert bezüglich Binärcodesystemen der gleichen Codelänge dem Gesamtwert der Werte entsprechen, die durch Subtrahieren des Wertes der Verbindung an dem Startpunkt des Pfeiles von dem Wert der Verbindung an dessen Endpunkt erlangt werden.
  • Falls andererseits der Bit an dem Kopf "0" ist, kann der decodierte Wert ein Wert sein, der durch Addieren des Rangordnungswertes zu dem Doppelten der Größe des Gesamtwertes der Werte der Verbindungen entlang der Linie erlangt wird, die nach rechts von der Verbindung an dem Endpunkt geneigt ist. Falls das Bit an dem Präfix "1" ist, kann der decodierte Wert ein Wert sein, der durch Addieren des Wertes der Verbindung an dem Endpunkt zum Zweifachen der Größe des Gesamtwertes der Werte der Verbindungen entlang der Linie erlangt wird, die nach rechts von der Verbindung an dem Endpunkt sich neigt.
  • Ist beispielsweise die Codefolge, die zu decodieren ist, "0110101", werden das erste Bit am Kopf und die zwei Bits am Ende in der Vorwärtsrichtung entfernt, so dass "111101" erlangt wird. Da das Bit am Kopf "0" ist, folgt ein Verlauf entlang des rechten Pfeils, wenn "0" in dem decodierten Graph auftritt und folgt ein Verlauf entlang des linken Pfeils, wenn "1" darin auftritt. Da in diesem Fall der Unterschied zwischen den Werten der Verbindungen bei einem Verlauf entlang des linken Pfeils (1-1) + (1-1) + (4-3) = 1 ist, ist der Rangordnungswert 1. Da das Bit mit der höchsten Wertigkeit "0" ist, wird dreizehn erlangt, indem die Rangordnungszahl 1 dem Zweifachen der Größe des Gesamtwertes der Werte der Verbindungen entlang der Linie hinzugefügt wird, die nach rechts von der Verbindung an dem Endpunkt geneigt ist, d.h. (1+2+3) × 2 = 12, und es ist möglich, den decodierten Wert des Codewortes mit dreizehn herzuleiten.
  • 67 bis 69 zeigen Beispiel von Decodierwerttabellen, die in dem Decodierer 910 mit variabler Länge der unteren Schicht verwendet werden. 67 bis 68 zeigen Beispiel von Decodierwerttabellen von Nicht-LETZTEN-Koeffizienten, bei welchen die Nicht-LETZTEN- Koeffizienten, die LAUF-Werte und die PEGEL-Werte von INTRA und INTER den decodierten Werten entsprechen. 69(a) und 69(b) zeigen eine Decodierwerttabelle von LETZTEN-Koeffizienten, bei welchen LETZTE-Koeffizienten, LAUF-Werte und PEGEL-Werte von INTRA und INTER den decodierten Werten entsprechen. Darüber hinaus zeigt 69(c) eine Decodierwerttabelle von Escape-Coden.
  • In diesen Beispielen kann aus 69(a) entnommen werden, dass beispielsweise bei dem Decodierwert 13 der LETZTE-Koeffizient 1 ist, die LAUF-Zahl 3 ist, der ABSOLUT-Wert des PEGEL-Werts 1 ist. Da darüber hinaus das Bit mit der geringsten Wertigkeit "1" ist, ist ersichtlich, dass der PEGEL-Wert negativ ist. Darüber hinaus ist aus 69(c) ersichtlich, dass der Escape-Code decodiert worden ist, wenn der decodierte Wert 41 decodiert worden ist. Es wird bestimmt, ob es sich um einen LETZTEN-Koeffizienten oder einen Nicht-LETZTEN-Koeffizienten beim letzten Bit des Escape-Codes handelt. Bezüglich der nachfolgenden dreizehn Bits werden der LAUF-Wert und der ABSOLUT-Wert des PEGEL-Wertes in dem Decodierabschnitt 210 mit fixer Wortlänge decodiert. Danach wird wieder der Escape-Code decodiert und wird das Vorzeichen des PEGEL-Wertes durch das letzte Bit bestimmt.
  • Als ein Beispiel wird der Fall angeführt, dass die Codefolge des zu codierenden Gegenstandes die Folge "110000010000111000101111000010" ist. Da in diesem Fall das letzte Bit des Escape-Codes "11000010" beim Präfix "0" ist, handelt es sich um einen Nicht-LETZTEN-Koeffizienten und wird der Code mit fixer Wortlänge der nachfolgenden dreizehn Bits berechnet. Da die signifikanteren sechs Bits der nachfolgenden dreizehn Bits den LAUF-Wert angeben, ist der LAUF-Wert 7 aus "000111". Da die weniger signifikanten sieben Bits den Absolutwert des PEGEL-Wertes angeben, ist der Absolutwert des PEGEL-Wertes 12 aus "0001011". Da das letzte Bit des Escape-Codes "11000010" "0" ist, ist der PEGEL-Wert positiv. Auf diese Weise kann die Decodierung ausgeführt werden.
  • Der Decodierwertentscheidungsabschnitt 212 entscheidet einen decodierten Wert auf der Grundlage des auf diese Weise durch den Vorwärtsdecodierer 209 erlangten decodierten Ergebnisses (was nachstehend als "vorwärtsdecodiertes Ergebnis" bezeichnet wird) und dem decodierten Ergebnis, das durch den Rückwärtsdecodierer 211 erlangt wird (das nachstehend als "rückwärtsdecodiertes Ergebnis" bezeichnet wird), und gibt ein decodiertes Endergebnis aus.
  • D.h., falls ein Fehler in Codierdaten auftritt, kann, da das Bitmuster, das vorhanden war, als decodiertes Ergebnis des Kanalcodierers 908 der unteren Schicht oder als ein Codewort auftritt, die Existenz des Fehlers gesucht werden. Daher entscheidet der Decodierwertentscheidungsabschnitt 212 den decodierten Wert auf der Grundlage der decodierten Ergebnisse in der Vorwärtsrichtung und der Rückwärtsrichtung, wie es in 36 gezeigt ist. Ferner zeigt 71 ein Verfahren zum Entscheiden eines decodierten Wertes in der unteren Schicht.
  • Gemäß der Darstellung von 71(a) werden zunächst, wenn die Positionen (erfaßte Positionen der Fehler) der Makroblöcke, in welchen Fehler in den vorwärtsdecodierten und rückwärtsdecodierten Ergebnissen nicht zueinander passen, nur das decodierte Ergebnis des Makroblocks als der decodierte Wert verwendet, in welchem kein Fehler erfaßt worden ist, und werden die decodierten Ergebnisse an den zwei fehlerbehafteten Positionen nicht als der decodierte Wert verwendet. Auf der Grundlage des decodierten Ergebnisses der Modusdaten in der oberen Schicht wird dann das decodierte Ergebnis in der oberen Schicht derart neu geschrieben, dass der INTRA-Makroblock durch den letzten Rahmen angegeben wird, wie er ist, und der INTER-Makroblock nur durch die Bewegungskompensation von dem letzten Rahmen angegeben wird.
  • Darüber hinaus wird, wie es in 71(b) gezeigt ist, wenn die erfaßten fehlerbehafteten Positionen für das vorwärtsdecodierte und das rückwärtsdecodierte Ergebnis zueinander passen, das decodierte Ergebnis, bei dem kein Fehler in beiden decodierten Ergebnissen erfaßt worden ist, als decodierter Wert verwendet. In diesem Fall werden die decodierten Ergebnisse zwischen den Codeworten der zwei erfaßten fehlerbehafteten Positionen nicht als decodierte Werte verwendet. Auf der Grundlage des decodierten Ergebnisses der Modusdaten in der oberen Schicht wird darüber hinaus das decodierte Ergebnis in der oberen Schicht neu geschrieben, so dass der INTRA-Makroblock durch den letzten Rahmen, wie er ist, angegeben wird, und der INTER-Makroblock nur durch die Bewegungskompensation von dem letzten Rahmen angegeben wird.
  • Wenn gemäß der Darstellung von 71(c) ein Fehler in nur einem der decodierten Ergebnisse in der Vorwärts- und der Rückwärtsrichtung erfaßt worden ist (beispielsweise ist ein Fehler nur in dem vorwärts erfaßten Ergebnis erfaßt worden), wird der Makroblock nicht als decodierter Wert verwendet. Auf der Grundlage des decodierten Ergebnisses der Modusdaten in der oberen Schicht wird darüber hinaus das decodierte Ergebnis in der oberen Schicht derart neu geschrieben, dass der INTRA-Makroblock durch den letzten Rahmen, wie er ist, angegeben wird, und der INTER-Makroblock nur durch die Bewegungskompensation von dem letzten Rahmen angegeben wird. Als der decodierte Wert bezüglich den nachfolgenden Makroblöcken, wird der decodierte Wert in der Rückwärtsrichtung verwendet.
  • Die Codier-/Decodierreihenfolge des Makroblocks kann durch ein Verfahren bestimmt werden, dass sich von dem des vorstehend angeführten bevorzugten Ausführungsbeispieles unterscheidet. Beispielsweise kann ein Verfahren zum Bestimmen der Reihenfolge, wie es in 72 gezeigt ist, verwendet werden, so dass die bedeutenden zentralen Abschnitte des decodierten Bildschirms gesichert werden können, wenn ein Fehler auftritt. D.h., auf der Grundlage der Decodierung in beiden Richtungen wird, da die Möglichkeit, dass der erste Abschnitt und der letzte Abschnitt der Codierdaten zwischen den benachbarten Synchronisiercoden korrekt decodiert sind, hoch ist, die Reihenfolge derart bestimmt, dass diese Abschnitte an dem zentralen Abschnitt angeordnet werden.
  • Während ferner die bevorzugten Ausführungsbeispiele der Erfindung auf die Codierung mit variabler Wortlänge eines DCT-Koeffizienten angewendet worden ist, kann die Erfindung auf die Codierung mit variabler Wortlänge weiterer Quellsymbole angewendet werden. Darüber hinaus wurde die Erfindung in den vorstehend angeführten bevorzugten Ausführungsbeispielen lediglich auf Binärcode angewendet, sie kann jedoch leicht auf hyperkomplexe Code angewendet werden und es können die gleichen Effekte erlangt werden.
  • Schließlich wird unter Bezugnahme auf 72 als eine Anwendung der Erfindung das bevorzugte Ausführungsbeispiel eines Bild-Senders-Empfängers, auf den ein Codiersystem und/oder Decodiersystem mit variabler Wortlänge gemäß der Erfindung angewendet wird, nachstehend beschrieben.
  • Ein Bilddatensignal, das durch eine in einem Personalcomputer (PC) 1001 vorgesehene Kamera 1002 eingespeist wird, wird mittels eines Codiersystems mit variabler Wortlänge, das in dem PC 1001 vorgesehen ist, codiert. In diesem Fall sind das Quellsymbol beispielsweise DCT- Koeffizientendaten, die durch die diskrete Kosinustransformation eines Eingangsbilddatensignals oder eines prädiktiven Fehlersignals erlangt werden, das eine Differenz zwischen einem Eingangsbilddatensignal und einem prädiktiven Bilddatensignal entspricht, mittels einer DCT-Schaltung zum Quantizieren durch eine Quantizierschaltung. Natürlich ist das Quellsymbol nicht auf derartige DCT-Koeffizientendaten beschränkt. Die von dem Codiersystem mit variabler Wortlänge ausgegebenen Codierdaten werden mit weiteren Audiodaten usw. gemultiplext und dann zu einem Audio-Sender-Empfänger 1003 zum Empfangen durch weitere Audio-Sender-Empfänger 1004 übertragen. Das durch den Audio-Sender-Empfänger 1004 empfangene Signal wird in Codierdaten, Audiodaten usw. unterteilt. Die Codierdaten des Bilddatensignals werden durch ein Decodiersystem mit variabler Wortlänge, das in einer Arbeitsstation (EWS) 1005 vorgesehen ist, zum Anzeigen an einer Anzeige des EWS 1005 decodiert.
  • Andererseits wird das Bilddatensignal, das durch eine in dem EWS 1005 vorgesehene Kamera 1006 eingespeist wird, mittels eines Codiersystems mit variabler Wortlänge, das in dem EWS 1005 vorgesehen ist, gleichartig zu dem vorstehend angeführten Verfahren codiert. Die Codierdaten werden mit weiteren Audiodaten usw. gemultiplext und durch den Audio-Sender-Empfänger 1004 zum Empfangen durch den Audio-Sender-Empfänger 1003 übertragen. Das durch den Audio-Sender-Empfänger 1003 empfangene Signal wird in Codierdaten, Audiodaten usw. unterteilt. Die Codierdaten des Bilddatensignals werden mittels eines in dem PC 1001 vorgesehenen Decodiersystems mit variabler Wortlänge decodiert und an einer Anzeige des PC 1001 angezeigt.
  • Das Codiersystem und/oder Decodiersystem mit variabler Wortlänge gemäß der Erfindung hat eine Codelänge, die der Auftrittswahrscheinlichkeit eines Quellsymbols entspricht. Das System hat darüber hinaus eine hohe Effizienz, da die Zahl nutzloser Bitmuster kleiner als bei dem konventionellen System ist. Darüber hinaus kann es einen reversiblen Code mit variabler Wortlänge konfigurieren, der sowohl in der Vorwärts- als auch in der Rückwärtsrichtung decodiert werden kann. Darüber hinaus ist es insbesondere für einen Sender-Empfänger nützlich, der einen Kanal verwendet, bei dem viele Fehler auftreten, wie etwa bei einem Audiokanal, wie er in 73 gezeigt ist.
  • Wie vorstehend angeführt, kann ein Codiersystem und/oder Decodiersystem mit variabler Wortlänge gemäß der Erfindung eine Decodierung mit einer geringeren Speicherkapazität als bei konventionellen Systemen ausführen und kann zum Codieren angewendet werden, wobei die Zahl der Quellsymbole groß ist, obwohl konventionelle Systeme nicht darauf angewendet werden können.
  • Im Einzelnen kann es auf ein Bewegtbild-Codiersystem und/oder Decodiersystem angewendet werden und kann ein Bewegtbild-Codiersystem und/oder Decodiersystem geliefert werden, das widerstandsfähig gegenüber Fehlern ist.
  • Wie vorstehend angeführt, ist gemäß der Erfindung ein Codiersystem und/oder Decodiersystem mit variabler Wortlänge vorgesehen, das sowohl in der Vorwärtsrichtung als auch in der Rückwärtsrichtung decodieren kann und das hinsichtlich der Gesichtspunkte der Codiereffizienz, der für das System notwendigen Speicherkapazität, usw. praktisch ist.
  • D.h., das erste bevorzugte Ausführungsbeispiel eines Codiersystems mit variabler Wortlänge gemäß der Erfindung enthält eine Codeworttabelle, die sowohl in der Vorwärts- als auch in der Rückwärtsrichtung decodiert werden kann und die eine Vielzahl von Codeworten zum Entsprechen mit Quellsymbolen speichert, wobei die Mehrzahl der Codeworte derart konfiguriert ist, das eine Pause des Codewortes durch die Wertigkeit des Codewortes, d.h. durch die Anzahl von "1" oder "0" des Codewortes, gesucht werden kann. Durch Auswählen eines Codewortes, das dem eingespeisten Quellsymbol entspricht, aus der Codeworttabelle ist es möglich, einen Code mit variabler Wortlänge zu erlangen, bei dem die Zahl der nutzlosen Bitmuster klein ist und die Codiereffizienz hoch ist. Durch Auswählen eines Codes mit der minimalen mittleren Codelänge aus einer Mehrzahl von Codekonfigurierverfahren und Parameter auf der Grundlage der Wahrscheinlichkeit des Quellsymbols ist es ferner möglich, einen Code mit variabler Wortlänge zu produzieren, der der Auftrittswahrscheinlichkeit des Quellsymbols entspricht.
  • Gemäß dem ersten bevorzugten Ausführungsbeispiel eines Decodiersystems mit variabler Wortlänge wird, wenn der decodierte Wert auf der Grundlage der decodierten Ergebnisse des Codes mit variabler Wortlänge sowohl in der Vorwärts- als auch in der Rückwärtsrichtung bestimmt ist, durch Bestimmen des decodierten Wertes bei der erfaßten fehlerbehafteten Position gemäß dem erfaßten Ergebnis des Fehlers, wenn die decodierten Ergebnisse erlangt sind, wenn der von dem vorstehend angeführten Codiersystem mit variabler Wortlänge ausgegebene reversible Code über einen Kanal übertragen wird, bei dem viele Fehler auftreten, wie etwa einem Audiokanal, die Decodierung gegen den Fehler effektiv ausgeführt, so dass das ursprüngliche Quellsymbol stabil wiedergegeben werden kann.
  • Gemäß dem zweiten bevorzugten Ausführungsbeispiel eines Codiersystem und/oder Decodiersystems mit variabler Wortlänge ist es möglich, ein Quellsymbol mit einer geringen Auftrittswahrscheinlichkeit als einen Code mit fixer Wortlänge zu codieren, zu welchem ein Escape-Code hinzugefügt wird, und den Codeabschnitt mit fixer Wortlänge unabhängig von dem reversiblen Code zu codieren/zu decodieren. Falls daher ein Quellsymbol, dessen Zahl sehr groß ist, wie etwa der quantizierte orthogonale Transformationskoeffizient, in dem Bildcodierer/Bilddecodierer codiert wird, ist es möglich, die maximale Codelänge zu verringern und effektiv die Speicherkapazität zu verringern.
  • Das dritte bevorzugte Ausführungsbeispiel eines Decodiersystems mit variabler Wortlänge verwendet ein Codewort mit variabler Wortlänge, das die Codelänge durch die Zahl der Wertigkeiten der Codeworte bestimmen kann und das durch Codeworte konfiguriert ist, die sowohl in der Vorwärts- als auch in der Rückwärtsrichtung decodierbar sind. In diesem System wird der durch das Pascalsche Dreieck bestimmt Wert als der Wert einer Verbindung verwendet und wird der decodierte Wert auf der Grundlage eines gerichteten Graphen (eines decodierten Graphen) berechnet, bei dem die Pfeile von den jeweiligen Verbindungen zu der nächsten Verbindung einer "1" und "0" entsprechen, so dass es möglich ist, einen Code mit variabler Wortlänge mit einer geringen Speicherkapazität zu decodieren, selbst wenn die Zahl der Quellsymbole groß ist.
  • Gemäß dem vierten bevorzugten Ausführungsbeispiel eines Codiersystems und/oder Decodiersystems mit variabler Wortlänge wird eine erste Codeworttabelle, die den orthogonalen Tranformationkoeffizienten entspricht, die sich von dem Letzten eines Blocks unterscheiden, für jeden einer Mehrzahl von Codemodi konfiguriert. Durch Verwendung einer zweiten Codeworttabelle, die dem Letzten des Blocks gemeinsam für jede der Codemodie entspricht, ist es möglich, die Änderung der Codeworttabelle durch den Codemodus zu behandeln und eine Pause des Blocks durch Auftreten eines Codewortes zu suchen, das den letzten orthogonalen Transformationskoeffizienten des letzten Blocks darstellt. Daher kann die Decodierung in beiden Richtungen syntaktisch ausgeführt werden. Durch separates Bereitstellen der zweiten Codeworttabelle bezüglich der erzeugten orthogonalen Transformationskoeffizienten wie etwa eines INTRA-Modus und eines INTER-Modus und einer Mehrzahl von Codiermodi mit verschiedener Auftrittshäufigkeit kann die Codiereffizienz verbessert werden.

Claims (6)

  1. Decodiersystem variabler Länge zum Decodieren von Codedaten eines Codes variabler Länge, der in beiden Richtungen, der Vorwärtsrichtung und der Rückwärtsrichtung, decodiert werden kann und in den Synchronisierungscodes in regelmäßigen Abständen eingesetzt sind, wobei das Decodiersystem variabler Länge aufweist: einen Vorwärtsdecoder (107, 209) zum Decodieren des Codes variabler Länge in der Vorwärtsrichtung und zum Detektieren eines ersten Fehlers in einem Codewort an einer ersten Position des Codes variabler Länge; einen Rückwärtsdecoder (108, 211) zum Decodieren des Codes variabler Länge in der Rückwärtsrichtung und zum Detektieren eines zweiten Fehlers in einem Codewort an einer zweiten Position des Codes variabler Länge; und ein Entscheidungsteil (109, 212) zum Entscheiden eines decodierten Wertes auf der Basis der decodierten Ergebnisse des Vorwärtsdecoders (107, 209) und des Rückwärtsdecoders (108, 211), bei dem der Entscheidungsteil (109, 212) den decodierten Wert an einer Position, an der der Fehler entsprechend dem detektierten Ergebnis des Fehlers durch den Vorwärtsdecoder (107, 209) und den Rückwärtsdecoder (108, 211) detektiert worden ist, entscheidet.
  2. Decodiersystem variabler Länge nach Anspruch 1, das weiter aufweist: einen Decoder (210) für einen Code fixierter Länge zum Decodieren eines Codes fixierter Länge, bei dem, wenn der Code variabler Länge durch den Vorwärtsdecoder (107, 209) und den Rückwärtsdecoder (108, 211) decodiert wird, falls spezifische Codes, die für den Kopf und das Ende des Codes fixierter Länge repräsentativ sind, decodiert werden, die nachfolgenden Codedaten durch den Decoder (210) für einen Code fixierter Länge decodiert werden.
  3. Decodiersystem variabler Länge nach Anspruch 1 oder 2, bei dem der Entscheidungsteil (109, 212) das Letzte eines Blockes auf der Basis eines Erscheinens eines Codeworts, das repräsentativ für den letzten orthogonalen Transformationskoeffizienten des Blockes ist, entscheidet, wenn der Vorwärtsdecoder (107, 209) den Code variabler Länge decodiert, und den Kopf eines Blockes durch ein Codewort, das repräsentativ für den letzten orthogonalen Transformationskoeffizienten des letzten Blockes ist, entscheidet.
  4. Decodiersystem variabler Länge nach einem der Ansprüche 1 bis 3, bei dem der Entscheidungsteil (109, 212) die Codeworte des Codes variabler Länge an der ersten Position, an der zweiten Position und an irgendeiner Position zwischen der ersten und der zweiten Position missachtet.
  5. Decodierverfahren variabler Länge zum Decodieren von Codedaten eines Codes variabler Länge, der in der Vorwärtsrichtung und der Rückwärtsrichtung decodiert werden kann und bei dem Synchronisierungscodes in regelmäßigen Abständen eingesetzt sind, mit: Decodieren des Codes variabler Länge in der Vorwärtsrichtung und Detektieren eines ersten Fehlers in einem Codewort an einer ersten Position des Codes variabler Länge; Decodieren des Codes variabler Länge in der Rückwärtsrichtung und Decodieren eines zweiten Fehlers in einem Codewort an einer zweiten Position des Codes variabler Länge; und Entscheiden eines decodierten Wertes auf der Basis der decodierten Ergebnisse der Vorwärtsdecodierung und der Rückwärtsdecodierung, bei dem der decodierte Wert an einer Position, in der der Fehler entsprechend des detektierten Ergebnisses des Fehlers durch die Vorwärtsdecodierung und die Rückwärtsdecodierung detektiert worden ist, entschieden wird.
  6. Decodierverfahren variabler Länge nach Anspruch 5 bei dem, in dem Schritt des Entscheidens eines decodierten Wertes, Codeworte des Codes variabler Länge an der ersten Position, an der zweiten Position und an irgendeiner Position zwischen der ersten und der zweiten Position missachtet werden.
DE69637067T 1995-03-15 1996-03-15 System zur variablen Längendekodierung Expired - Fee Related DE69637067T2 (de)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
JP5628595 1995-03-15
JP5628595 1995-03-15
JP8977295 1995-04-14
JP8977295 1995-04-14
JP26038395A JP3431368B2 (ja) 1995-04-14 1995-10-06 可変長符号化/復号化方法及び可変長符号化/復号化装置
JP26038395 1995-10-06
JP27798295 1995-10-25
JP27798295 1995-10-25
JP8055096A JPH09182073A (ja) 1995-03-15 1996-03-08 動画像符号化装置および復号装置
JP8055096 1996-03-08

Publications (2)

Publication Number Publication Date
DE69637067D1 DE69637067D1 (de) 2007-06-14
DE69637067T2 true DE69637067T2 (de) 2008-01-10

Family

ID=27523291

Family Applications (4)

Application Number Title Priority Date Filing Date
DE69637068T Expired - Fee Related DE69637068T2 (de) 1995-03-15 1996-03-15 System zur Dekodierung von bewegten Bildern
DE69637067T Expired - Fee Related DE69637067T2 (de) 1995-03-15 1996-03-15 System zur variablen Längendekodierung
DE69636150T Active DE69636150T8 (de) 1995-03-15 1996-03-15 System zur Kodierung von bewegten Bildern, und System zur variablen Längenkodierung
DE69624276T Expired - Lifetime DE69624276T2 (de) 1995-03-15 1996-03-15 System und Verfahren zur variablen Längenkodierung von sich bewegenden Bildern

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE69637068T Expired - Fee Related DE69637068T2 (de) 1995-03-15 1996-03-15 System zur Dekodierung von bewegten Bildern

Family Applications After (2)

Application Number Title Priority Date Filing Date
DE69636150T Active DE69636150T8 (de) 1995-03-15 1996-03-15 System zur Kodierung von bewegten Bildern, und System zur variablen Längenkodierung
DE69624276T Expired - Lifetime DE69624276T2 (de) 1995-03-15 1996-03-15 System und Verfahren zur variablen Längenkodierung von sich bewegenden Bildern

Country Status (3)

Country Link
US (1) US5852469A (de)
EP (18) EP1802135A3 (de)
DE (4) DE69637068T2 (de)

Families Citing this family (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69619002T2 (de) * 1995-03-10 2002-11-21 Toshiba Kawasaki Kk Bildkodierungs-/-dekodierungsvorrichtung
KR100308703B1 (ko) * 1995-09-12 2001-11-30 모리시타 요이찌 부호화방법,부호화장치,웨이블릿변환장치및웨이블릿역변환장치
JPH1023415A (ja) * 1996-07-05 1998-01-23 Matsushita Electric Ind Co Ltd 画像符号化復号方法および装置
WO1998020681A1 (en) * 1996-11-06 1998-05-14 Matsushita Electric Industrial Co., Ltd. Image encoding/decoding method, image encoder/decoder and image encoding/decoding program recording medium
US6738393B2 (en) * 1997-02-13 2004-05-18 Ntt Mobile Communications Frame synchronization circuit
US6744928B1 (en) * 1997-03-12 2004-06-01 Matsushita Electric Industrial Co., Ltd. Variable-length decoding method and apparatus employing code length and a recording medium
KR100596123B1 (ko) * 1997-03-27 2006-07-05 휴렛-팩커드 컴퍼니(델라웨어주법인) 어드레스 디코더 시스템
US6633611B2 (en) * 1997-04-24 2003-10-14 Mitsubishi Denki Kabushiki Kaisha Method and apparatus for region-based moving image encoding and decoding
JP3884172B2 (ja) 1997-10-02 2007-02-21 株式会社東芝 可変長復号化装置および復号化方法
JP3662129B2 (ja) * 1997-11-11 2005-06-22 松下電器産業株式会社 マルチメディア情報編集装置
US6768775B1 (en) * 1997-12-01 2004-07-27 Samsung Electronics Co., Ltd. Video CODEC method in error resilient mode and apparatus therefor
US6211801B1 (en) * 1998-04-17 2001-04-03 Netergy Networks Data communication arrangement having variable length coding and method therefor
JP2000032393A (ja) * 1998-07-09 2000-01-28 Sony Corp 画像情報処理装置および方法、並びに提供媒体
EP0987897A3 (de) * 1998-08-25 2005-07-13 Matsushita Electric Industrial Co., Ltd. Einrichtung zum Synthetisieren von Bewegtbildsequenzen
DE19840835C2 (de) * 1998-09-07 2003-01-09 Fraunhofer Ges Forschung Vorrichtung und Verfahren zum Entropiecodieren von Informationswörtern und Vorrichtung und Verfahren zum Decodieren von Entropie-codierten Informationswörtern
DE19907728C2 (de) * 1999-02-23 2001-03-01 Fraunhofer Ges Forschung Vorrichtung und Verfahren zum Erzeugen eines Datenstroms und Vorrichtung und Verfahren zum Lesen eines Datenstroms
DE19907729C2 (de) * 1999-02-23 2001-02-22 Fraunhofer Ges Forschung Verfahren und Vorrichtung zum Erzeugen eines Datenstroms aus Codeworten variabler Länge und Verfahren und Vorrichtung zum Lesen eines Datenstroms aus Codeworten variabler Länge
US7543148B1 (en) 1999-07-13 2009-06-02 Microsoft Corporation Audio watermarking with covert channel and permutations
KR100327412B1 (ko) * 1999-08-02 2002-03-13 서평원 에러 정정을 위한 영상 부호화 및 복호화 방법
KR100618972B1 (ko) * 1999-08-02 2006-09-01 삼성전자주식회사 가변장 코딩 방법 및 장치
EP1075148A3 (de) * 1999-08-02 2005-08-24 Texas Instruments Incorporated Fehlerresistente Videocodierung unter Verwendung reversibler Codes variabler Länge
SE9903191D0 (sv) 1999-09-08 1999-09-08 Pacesetter Ab Compression and decompression coding scheme and apparatus
US6907073B2 (en) * 1999-12-20 2005-06-14 Sarnoff Corporation Tweening-based codec for scaleable encoders and decoders with varying motion computation capability
FR2803476B1 (fr) * 1999-12-31 2003-01-10 Cit Alcatel Procede d'etablissement de mode de fonctionnement sans double transcodage dans un systeme cellulaire de radiocommunications mobiles
US7142603B2 (en) * 2000-01-15 2006-11-28 Sony Corporation Method and system for predictive table look-up code length of variable length code
AU2001264812A1 (en) * 2000-06-22 2002-01-02 Sony Electronics Inc. A method, system, and apparatus pertaining to signal processing
KR100755825B1 (ko) * 2000-07-07 2007-09-07 엘지전자 주식회사 지그재그 스캔을 이용한 광 디스크 데이터 기록방법/장치, 재생방법/장치 및 기록매체
JP2002311996A (ja) * 2001-02-09 2002-10-25 Sony Corp コンテンツ供給システム
JP2003046944A (ja) * 2001-08-02 2003-02-14 Sony Corp 信号処理装置および方法、記録装置および方法、再生装置および方法、記録再生装置および方法、ビデオカメラ、ならびに、映像モニタ装置
US7218251B2 (en) * 2002-03-12 2007-05-15 Sony Corporation Signal reproducing method and device, signal recording method and device, and code sequence generating method and device
US7428684B2 (en) 2002-04-29 2008-09-23 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Device and method for concealing an error
DE10219133B4 (de) * 2002-04-29 2007-02-22 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Verschleiern eines Fehlers
US6646578B1 (en) * 2002-11-22 2003-11-11 Ub Video Inc. Context adaptive variable length decoding system and method
FI114071B (fi) * 2003-01-13 2004-07-30 Nokia Corp Kuvien käsitteleminen rajoitetulla bittimäärällä
US7212681B1 (en) * 2003-01-15 2007-05-01 Cisco Technology, Inc. Extension of two-dimensional variable length coding for image compression
US7194137B2 (en) * 2003-05-16 2007-03-20 Cisco Technology, Inc. Variable length coding method and apparatus for video compression
CN1214649C (zh) * 2003-09-18 2005-08-10 中国科学院计算技术研究所 用于视频预测残差系数编码的熵编码方法
US7400681B2 (en) * 2003-11-28 2008-07-15 Scientific-Atlanta, Inc. Low-complexity motion vector prediction for video codec with two lists of reference pictures
US7702021B2 (en) * 2004-01-27 2010-04-20 Broadcom Corporation Decoding of digital video standard material during variable length decoding
US7454073B2 (en) * 2004-06-15 2008-11-18 Cisco Technology, Inc. Video compression using multiple variable length coding processes for multiple classes of transform coefficient blocks
US7454076B2 (en) * 2004-06-15 2008-11-18 Cisco Technology, Inc. Hybrid variable length coding method for low bit rate video coding
US7471841B2 (en) 2004-06-15 2008-12-30 Cisco Technology, Inc. Adaptive breakpoint for hybrid variable length coding
US7492956B2 (en) * 2004-08-18 2009-02-17 Cisco Technology, Inc. Video coding using multi-dimensional amplitude coding and 2-D non-zero/zero cluster position coding
US7499596B2 (en) 2004-08-18 2009-03-03 Cisco Technology, Inc. Amplitude coding for clustered transform coefficients
US7499595B2 (en) * 2004-08-18 2009-03-03 Cisco Technology, Inc. Joint amplitude and position coding for photographic image and video coding
US7471840B2 (en) * 2004-08-18 2008-12-30 Cisco Technology, Inc. Two-dimensional variable length coding of runs of zero and non-zero transform coefficients for image compression
US7620258B2 (en) * 2004-08-18 2009-11-17 Cisco Technology, Inc. Extended amplitude coding for clustered transform coefficients
US7680349B2 (en) 2004-08-18 2010-03-16 Cisco Technology, Inc. Variable length coding for clustered transform coefficients in video compression
US7132963B2 (en) * 2004-09-13 2006-11-07 Ati Technologies Inc. Methods and apparatus for processing variable length coded data
US7397871B2 (en) * 2004-10-01 2008-07-08 L-3 Communications Titan Corporation Estimation of single-to-noise ratio by processing measured error vector magnitude
EP1829027A1 (de) * 2004-12-15 2007-09-05 Telefonaktiebolaget LM Ericsson (publ) Verfahren und einrichtung zur codierung der modusänderung codierter datenströme
US7242328B1 (en) * 2006-02-03 2007-07-10 Cisco Technology, Inc. Variable length coding for sparse coefficients
CN101093998B (zh) * 2007-08-15 2011-03-30 威盛电子股份有限公司 解码方法及装置
JP2009278373A (ja) * 2008-05-14 2009-11-26 Sharp Corp 画像処理装置、画像形成装置及びコンピュータプログラム
JP2010045598A (ja) * 2008-08-12 2010-02-25 Fujitsu Ltd 可変長復号装置、及び、符号化装置
US8503527B2 (en) 2008-10-03 2013-08-06 Qualcomm Incorporated Video coding with large macroblocks
JP5105191B2 (ja) * 2008-10-08 2012-12-19 株式会社メガチップス 画像処理装置
US8878041B2 (en) * 2009-05-27 2014-11-04 Microsoft Corporation Detecting beat information using a diverse set of correlations
KR101474756B1 (ko) 2009-08-13 2014-12-19 삼성전자주식회사 큰 크기의 변환 단위를 이용한 영상 부호화, 복호화 방법 및 장치
AU2014280910B2 (en) * 2009-08-13 2016-03-24 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding image by using large transformation unit
US8825675B2 (en) * 2010-03-05 2014-09-02 Starcounter Ab Systems and methods for representing text
US9042440B2 (en) 2010-12-03 2015-05-26 Qualcomm Incorporated Coding the position of a last significant coefficient within a video block based on a scanning order for the block in video coding
US8976861B2 (en) 2010-12-03 2015-03-10 Qualcomm Incorporated Separately coding the position of a last significant coefficient of a video block in video coding
BR112013012721A2 (pt) * 2010-12-14 2016-09-06 Ericsson Telefon Ab L M codificação e decodificação de tile
US20120163456A1 (en) 2010-12-22 2012-06-28 Qualcomm Incorporated Using a most probable scanning order to efficiently code scanning order information for a video block in video coding
US20120230418A1 (en) 2011-03-08 2012-09-13 Qualcomm Incorporated Coding of transform coefficients for video coding
US9106913B2 (en) 2011-03-08 2015-08-11 Qualcomm Incorporated Coding of transform coefficients for video coding
US9167253B2 (en) 2011-06-28 2015-10-20 Qualcomm Incorporated Derivation of the position in scan order of the last significant transform coefficient in video coding
KR20130011994A (ko) * 2011-07-22 2013-01-30 삼성전자주식회사 송신 장치, 수신 장치 및 그 송수신 방법
JP5966345B2 (ja) * 2011-12-21 2016-08-10 ソニー株式会社 画像処理装置および方法
CN103237212B (zh) * 2013-04-08 2016-04-13 浙江大学 一种生成增强层块单元编码信息参考队列的方法及装置
GB2521828A (en) * 2013-12-23 2015-07-08 Sony Corp Data encoding and decoding
AU2015400311B2 (en) * 2015-10-13 2017-11-02 Huawei Technologies Co., Ltd. Decoding device and method and signal transmission system
WO2020164751A1 (en) * 2019-02-13 2020-08-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Decoder and decoding method for lc3 concealment including full frame loss concealment and partial frame loss concealment
WO2020165265A1 (en) * 2019-02-13 2020-08-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Decoder and decoding method for lc3 concealment including full frame loss concealment and partial frame loss concealment
CN112887054B (zh) * 2019-11-29 2023-11-21 厦门雅迅网络股份有限公司 一种基于长度转义的数据流封包方法、解包方法及***

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4569050A (en) * 1983-01-14 1986-02-04 Honeywell Inc. Data communication system with fixed weight error correction and detection code
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
SE454734B (sv) * 1987-02-20 1988-05-24 Harald Brusewitz Forfarande och anordning for sendning och mottagning vid variabel lengdkodning
US4972260A (en) * 1988-08-22 1990-11-20 Matsushita Electric Industrial Co., Ltd. Apparatus for coding a moving-picture signal
EP0453229B1 (de) * 1990-04-17 1997-06-18 Matsushita Electric Industrial Co., Ltd. Verfahren zur Übertragung von Kodes mit variabler Länge
TW223690B (de) * 1991-02-13 1994-05-11 Ampex
US5168356A (en) * 1991-02-27 1992-12-01 General Electric Company Apparatus for segmenting encoded video signal for transmission
JP3141139B2 (ja) * 1991-03-13 2001-03-05 三菱電機株式会社 映像音声デジタル記録/再生装置
US5392037A (en) * 1991-05-21 1995-02-21 Matsushita Electric Industrial Co., Ltd. Method and apparatus for encoding and decoding
US5144425A (en) * 1991-08-26 1992-09-01 General Electric Company Apparatus for hierarchically dividing video signals
JP3134424B2 (ja) * 1991-10-31 2001-02-13 ソニー株式会社 可変長符号化方法及び装置
JP3360844B2 (ja) * 1992-02-04 2003-01-07 ソニー株式会社 ディジタル画像信号の伝送装置およびフレーム化方法
NO175080B (no) * 1992-03-11 1994-05-16 Teledirektoratets Forskningsav Fremgangsmåte for koding av bildedata
JP2697479B2 (ja) * 1992-04-17 1998-01-14 国際電信電話株式会社 可逆可変長符号化方式
US5396595A (en) * 1992-04-24 1995-03-07 Spacelabs Medical, Inc. Method and system for compression and decompression of data
KR0162197B1 (ko) * 1992-05-30 1998-12-15 강진구 영상데이타의 가변장부호와/복호화방법 및 장치
US5231486A (en) * 1992-07-27 1993-07-27 General Electric Company Data separation processing in a dual channel digital high definition television system
US5982437A (en) * 1992-10-26 1999-11-09 Sony Corporation Coding method and system, and decoding method and system
JP2959916B2 (ja) * 1992-10-28 1999-10-06 松下電器産業株式会社 デジタル・ビデオ・コーダ用のバーサタイルなエスケープ・ラン・レベル・コーダ
US5400075A (en) * 1993-01-13 1995-03-21 Thomson Consumer Electronics, Inc. Adaptive variable length encoder/decoder
JP3261844B2 (ja) * 1993-01-13 2002-03-04 株式会社日立製作所 デジタルビデオ記録装置及び記録方法
JP3190755B2 (ja) * 1993-01-22 2001-07-23 株式会社東芝 復号装置
KR970003024B1 (ko) * 1994-02-28 1997-03-13 한국전기통신공사 병렬처리 패턴매칭을 이용한 가변부호길이에서 고속 재동기방법
US5563593A (en) * 1994-03-18 1996-10-08 Lucent Technologies Inc. Video coding with optimized low complexity variable length codes

Also Published As

Publication number Publication date
EP0732855A3 (de) 1998-12-23
EP1802141A2 (de) 2007-06-27
EP1802134A2 (de) 2007-06-27
DE69637068D1 (de) 2007-06-14
DE69637067D1 (de) 2007-06-14
DE69636150T8 (de) 2007-07-12
EP1802140A3 (de) 2008-11-12
EP1802129A3 (de) 2008-10-22
EP1802138A3 (de) 2008-11-12
EP1267582A3 (de) 2004-09-29
EP1802137A2 (de) 2007-06-27
EP1802131A2 (de) 2007-06-27
EP1802133A3 (de) 2008-11-12
EP1802130A3 (de) 2008-11-12
EP1265444A3 (de) 2004-09-29
EP1802131A3 (de) 2008-11-12
EP1802130A2 (de) 2007-06-27
DE69637068T2 (de) 2007-12-27
EP1802133A2 (de) 2007-06-27
EP1802129A2 (de) 2007-06-27
EP1267581B1 (de) 2007-05-02
EP1802132A3 (de) 2008-11-12
EP1267582B1 (de) 2006-05-17
EP1781040A3 (de) 2008-10-08
EP1802140A2 (de) 2007-06-27
EP1265444B1 (de) 2007-05-02
EP1802135A2 (de) 2007-06-27
EP1781040A2 (de) 2007-05-02
DE69624276D1 (de) 2002-11-21
US5852469A (en) 1998-12-22
EP0732855B1 (de) 2002-10-16
EP1267582A2 (de) 2002-12-18
DE69624276T2 (de) 2003-06-12
EP1802134A3 (de) 2008-12-31
EP1267581A2 (de) 2002-12-18
EP1265444A2 (de) 2002-12-11
DE69636150D1 (de) 2006-06-22
EP1802136A3 (de) 2008-11-12
EP1802135A3 (de) 2008-11-12
EP1802138A2 (de) 2007-06-27
EP0732855A2 (de) 1996-09-18
EP1802132A2 (de) 2007-06-27
EP1267581A3 (de) 2004-09-29
DE69636150T2 (de) 2007-03-15
EP1802137A3 (de) 2008-12-31
EP1802136A2 (de) 2007-06-27
EP1802139A2 (de) 2007-06-27

Similar Documents

Publication Publication Date Title
DE69637067T2 (de) System zur variablen Längendekodierung
DE69625945T2 (de) Hierarchischer Bildkodierer und -dekodierer
EP1487113B1 (de) Kodierung und Dekodierung von Transformationskoeffizienten in Bild- oder Videokodierern
DE19506164C2 (de) Verfahren zum Komprimieren eingegebener Symbole in Codeworte
DE60109423T2 (de) Videokodierung mit prädiktiver bitebenenkodierung und progressiver fein-granularitätsskalierung (pfgs)
DE69333714T2 (de) Speicher zur Verwendung im Dekodieren von Wörtern variabler Länge und Dekoder und Verfahren zur Verwendung in digitalen Kommunikationssystemen
EP0290085B1 (de) System zur Übertragung von Videobildern
DE3005775C2 (de) Kodierverfahren für ein Farbbild
DE19758761B4 (de) Verfahren zum Intrakodieren eines von einer Pixelmatrix gebildeten Bildes
DE4205896B4 (de) Anordnung zur rangmäßigen Aufteilung von Daten z. B. für eine Videosignal-Verarbeitungseinrichtung
DE602004010081T2 (de) Verfahren, vorrichtung und system zum codieren und decodieren von seiteninformationen für die multimedia-übertragung
DE69932543T2 (de) Verlustfreies Kodierungs- und Dekodierungssystem
EP2489187B1 (de) Verfahren zur codierung von symbolen aus einer folge digitalisierter bilder
DE69916027T2 (de) Videokompressionssystem welches auch codierungsentscheidungsdaten komprimiert
DE69735835T2 (de) Dekodierer variabler Länge und Verfahren zur Dekodierung zweier Kodewörter pro Takt
DE4400355A1 (de) Adaptiver Längenvariabel-Kodierer/Dekodierer
DE69535710T2 (de) Dekodierer variabler Länge für bitgestopfte Daten
EP0698316B1 (de) Verfahren zum Übertragen von Bildern mit ungleichem Fehlerschutz
DE69816971T2 (de) Videokodierer mit skalierungsabhängiger vlc (variable length code) kodierung
DE60221807T2 (de) Lauflängenkodierung nichtkodierter makroblöcke
DE60012717T2 (de) Bildcodierung unter verwendung einer umordnung von wavelet-koeffizienten
DE10296787T5 (de) Selektive Prädikation für ein Intra-Codieren eines Videodatenblocks
DE60200377T2 (de) Datenkompression
EP0703711A2 (de) Coder zur segmentweisen Codierung eines Bildsignales
EP0929975B1 (de) Verfahren und anordnung zur vektorquantisierung und zur inversen vektorquantisierung eines digitalisierten bildes

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee