[go: up one dir, main page]

DE69025033T2 - Vorrichtung zur Dekodierung von Kode variabler Länge und geeignetes Adresssteuerungsverfahren - Google Patents

Vorrichtung zur Dekodierung von Kode variabler Länge und geeignetes Adresssteuerungsverfahren

Info

Publication number
DE69025033T2
DE69025033T2 DE69025033T DE69025033T DE69025033T2 DE 69025033 T2 DE69025033 T2 DE 69025033T2 DE 69025033 T DE69025033 T DE 69025033T DE 69025033 T DE69025033 T DE 69025033T DE 69025033 T2 DE69025033 T2 DE 69025033T2
Authority
DE
Germany
Prior art keywords
code
length
conversion
variable length
fixed
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
DE69025033T
Other languages
English (en)
Other versions
DE69025033D1 (de
Inventor
Kazuo Konishi
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
Application filed by Toshiba Corp filed Critical Toshiba Corp
Publication of DE69025033D1 publication Critical patent/DE69025033D1/de
Application granted granted Critical
Publication of DE69025033T2 publication Critical patent/DE69025033T2/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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • H03M7/425Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory for the decoding process only

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

  • Die Erfindung betrifft im allgemeinen eine Demoduliereinrichtung für einen Code mit variabler Länge. Insbesondere betrifft sie eine Demoduliereinrichtung für einen Code mit variabler Länge, die für die Kompression von Bilddaten geeignet ist.
  • In der jüngeren Vergangenheit wurden bei Techniken zur Kompression von Bilddaten beachtliche Fortschritte gemacht. Um die Wirksamkeit der digitalen Übertragung, Aufzeichnung usw. zu vergrößern, werden bei diesen Kompresslonstechniken für Bilddaten die Bilddaten mit einer geringeren Bitrate codiert. Beispiele für diese Techniken sind die Vorhersage-Codiertechnik, die Transformations-Codiertechnik usw. Diese Techniken sind ausführlich beschrieben in dem Werk "Multidimensional Processing of TV Pictures" von T. Fukinuki, veröffentlicht bei Nikkan Kogyo Shinbunsha am 25. Juni 1984. Zusätzlich ist eine weitere Bilddatenkompression erzielbar, wenn der Code, der mit derartigen Codierverfahren komprimiert wird, mit variabler Länge codiert wird. Die Codierung mit variabler Länge besteht darin, die codierte Bitbreite abhängig von der Frequenz des Auftretens des Codes zu verändern. Gegenüber einer Codierung mit fester Länge ist hierdurch eine geringere Bitbreite erzielbar.
  • Als nächstes wird mit Bezug auf Fig. 3a und Fig. 3b ein Beispiel für eine Codierung mit variabler Länge angegeben, und zwar ein Verfahren zum Erzeugen von Huffman-Codes. Es sei vorausgesetzt, daß t Codes mit fester Länge S&sub1;, S&sub1;, ... St in Huffman-Codes umgesetzt werden. Fig. 3a und Fig. 3b zeigen ein Beispiel für den Fall t=6. Zuerst werden diese Codes S&sub1; bis S&sub6; nach der Größe der Frequenz ihres Auftretens (der Auftrittswahrscheinlichkeit) angeordnet. Die Auftritts- Wahrscheinlichkeiten der Codes S&sub1; bis S&sub6; sind jeweils 0,35, 0,20, 0,15, 0,15, 0,10 und 0,05, siehe Fig. 3a. Sie werden daher in der Reihenfolge der Codes S&sub1; bis S&sub6; angeordnet. Nun werden die beiden Codes, deren Auftrittswahrscheinlichkeit am kleinsten ist, zu einer Gruppe zusammengefaßt und ihre Verbundwahrscheinlichkeit (die Summe der beiden Auftrittswahrscheinlichkeiten) bestimmt. In Fig. 3a haben die Codes S&sub6; und S&sub5; die kleinste Auftrittswahrscheinlichkeit, und ihre Verbundwahrscheinlichkeit beträgt 0,15. Nun werden diese Gruppe und die anderen Codes nach der Größe ihrer Auftrittswahrscheinlichkeiten (oder Verbundwahrscheinlichkeiten) angeordnet. Die beiden Codes (oder Gruppen), deren Auftrittswahrscheinlichkeit (oder Verbundwahrscheinlichkeit) am kleinsten ist, werden als neue Gruppe genommen und die Verbundwahrscheinlichkeit dieser Gruppe wird bestimmt. Nachfolgend wird dieser Vorgang fortgesetzt&sub1; bis eine Auflistung mit der Verbundwahrscheinlichkeit 1 entsteht, siehe Fig. 3a.
  • Nun wird mit Hilfe von Fig. 3a ein Codebaum nach Fig. 3b erstellt. "0" und "1" werden gemäß den Verzweigungen dieses Codebaums zugeordnet. In Fig. 3b wird allen oberen Zweigen "0" zugewiesen, allen unteren Zweigen dagegen "1". Die Huffman-Codes erhält man, indem man diesen Verzweigungen folgt. Beispielsweise verläuft der Code mit fester Länge S&sub4;, in Fig. 3b mit dicken Linien dargestellt, entlang eines Zweigs "0", eines Zweigs "1" und zuletzt entlang eines Zweigs "0"; er wird somit in den Huffman-Code "010" umgesetzt. Die auf diese Weise gefundenen Huffman-Codes für die Codes S&sub1; bis S&sub6; sind unten in Tabelle 1 dargestellt. Tabelle 1 Code Huffman-Code
  • Wie Tabelle 1 zeigt, werden Codes mit großer Auftrittswahrscheinlichkeit in Huffman-Codes mit kurzer Bitlänge umgesetzt, Codes mit niedriger Auftrittswahrscheinlichkeit dagegen in Huffman-Codes mit größerer Bitlänge. Auf diese Weise ist die Gesamtbitrate verminderbar.
  • Im allgemeinen wird zum Umsetzen eines derartigen Codes mit variabler Länge in einen Code mit fester Länge eine Umsetztabelle benutzt, die in einem Festkörperspeicher, beispielsweise einem ROM abgelegt ist. Zum Vereinfachen der Erklärung wurde in Fig. 3a die größte Bitzahl des Codes mit variabler Länge (Huffman-Code) zu 4 Bit gewählt; in einem tatsächlichen Bilddatensignal ist die größte Bitzahl jedoch sehr groß, beispielsweise 15 Bit.
  • Dementsprechend wurden einige Vorschläge zum Verkleinern des Umfangs der Umsetztabelle gemacht. Diese Art von Vorrichtung zum Demodulieren eines Codes mit variabler Länge ist beispielsweise in der japanischen Patentschrift (Kokai) Nr. 63-52578 beschrieben. Diese Technik offenbart, daß die Bitlänge der codierten, eingegebenen Daten auf den n-ten Bruchteil der größten Bitlänge der codierten Daten gesetzt wird, und daß die Umsetztabelle n-mal ausgelesen wird. Hierdurch ist der Umfang der Umsetztabelle verminderbar.
  • In der oben beschriebenen Vorrichtung zum Demodulieren eines Codes mit variabler Länge wird jedoch ein Lauflängencode verwendet, bei dem zwei Werte eingesetzt werden, die aus Weiß und Schwarz bestehen. Eine derartige Technik erfordert eine lange Umwandlungszeit, da die Umsetztabelle oft ausgelesen werden muß.
  • US-A-3,883,847 offenbart eine Vorrichtung zum Decodieren von Huffman-Codes, umfassend:
  • eine erste Umsetztabelle, geeignet zum Umsetzen der höchstwertigen Bits, die eine ausgewählte Bitlänge des Codes mit variabler Länge aufweisen, entweder in einen sekundären Tabellenerkennungscode oder in einen ersten Code mit fester Länge;
  • eine Anzahl sekundärer Tabellen, die ausgehend von dem sekundären Tabellenerkennungscode wählbar sind, daß das niedrigstwertige Bit bzw. die niedrigstwertigen Bits des Codes mit variabler Länge als Adresse an die ausgewählte sekundäre Tabelle angelegt werden, und daß die ausgewählte sekundäre Tabelle einen zweiten Code mit fester Länge als Ausgangssignal ausgibt; und
  • Auswahlvorrichtungen, geeignet zum Wählen entweder des ersten oder des zweiten Codes mit fester Länge als Ausgangssignal der Vorrichtung, und zwar abhängig von der Länge des Codes mit variabler Länge.
  • Gemäß einem ersten Aspekt der Erfindung wird eine Demoduliereinrichtung für einen Code mit variabler Länge bereitgestellt, geeignet zum Umsetzen eines Eingabecodes mit variabler Länge in einen Ausgabecode mit fester Länge, wobei die Einrichtung umfaßt:
  • eine erste Umsetztabelle (22);
  • eine zweite Umsetztabelle (23); und
  • eine Vorrichtung, geeignet zum Einspeisen der höchstwertigen Bits des Eingabecodes als Adresse in die erste Umsetztabelle und zum Einspeisen der verbleibenden niedrigstwertigen Bits des Eingabecodes als Teiladresse in die zweite Umsetztabelle, wobei
  • die höchstwertigen Bits eine feste gewählte Bitlänge aufweisen, die kleiner ist als eine größtmögliche Bitanzahl im Code mit variabler Länge,
  • die erste Umsetztabelle abhängig von den höchstwertigen Bits eines jeden Codes mit variabler Länge einen ersten Code mit fester Länge erzeugt und einen Umsetzcode mit einer Bitlänge, die kleiner ist als die gewählte Bitlänge,
  • der Umsetzcode als Teiladresse in die zweite Umsetztabelle eingespeist wird und die zweite Umsetztabelle abhängig vom Umsetzcode und den niedrigstwertigen Bits des Eingabecodes einen zweiten Code mit fester Länge erzeugt, und
  • die Einrichtung ferner eine Auswahlvorrichtung (24) umfaßt, die zum Empfangen des ersten und des zweiten Codes mit fester Länge geschaltet und dazu betreibbar ist, den ersten Code mit fester Länge als Ausgabecode mit fester Länge auszuwählen, falls die Bitlänge des Codes mit variabler Länge die gewählte Bitlänge nicht überschreitet, und zum Wählen des zweiten Codes mit fester Länge, falls die Bitlänge des Codes mit variabler Länge die gewählte Bitlänge überschreitet.
  • Gemäß einem zweiten Aspekt der Erfindung wird eine Demoduliereinrichtung für einen Code mit variabler Länge bereitgestellt, geeignet zum Umsetzen eines Eingabecodes mit variabler Länge in einen Ausgabecode mit fester Länge, wobei die Einrichtung umfaßt:
  • eine Umsetztabelle (T1) mit der Nummer 1;
  • Umsetztabellen (T2 - Tm-1 mit den Nummern 2 bis m-1, wobei m größer ist als 2;
  • eine Umsetztabelle (Tm) mit der Nummer m;
  • eine Vorrichtung zum Einspeisen der Gruppe 1 von höchstwertigen Bits des Eingabecodes als Adresse in die Umsetztabelle 1;
  • eine Vorrichtung zum Einspeisen der Gruppen 2 bis m-1 der höchstwertigen Bits des Eingabecodes als jeweilige Teiladressen in die Umsetztabellen 2 bis m-1; und
  • eine Vorrichtung zum Einspeisen der verbleibenden niedrigstwertigen Bits des Eingabecodes als Teiladresse in die Umsetztabelle m, wobei
  • jede der Gruppen 1 bis m-1 der höchstwertigen Bits eine jeweils gewählte Bitlänge aufweist, die kleiner ist als eine größtmögliche Bitanzahl im Code mit variabler Länge, die Umsetztabelle 1 abhängig von der Gruppe 1 der höchstwertigen Bits eines jeden Codes mit variabler Länge einen Code 1 mit fester Länge erzeugt und einen Umsetzcode 1, der eine kleinere Bitlänge hat als die jeweils gewählte Bitlänge, und der Umsetzcode als Teiladresse in die Umsetztabelle 2 eingespeist wird,
  • jede der Umsetztabellen 2 bis m-1 abhängig von der jeweiligen Gruppe höchstwertiger Bits eines jeden Codes mit variabler Länge und von den jeweils darin eingespeisten Umsetzcodes jeweils Codes 2 bis m-1 mit fester Länge erzeugt, und der jeweilige Umsetzcode 2 bis m-1 eine Bitlänge hat, die kleiner ist als die jeweils gewählte Bitlänge, und jeder der Umsetzcodes 2 bis m-1 als Teiladresse jeweils in Umsetztabellen 3 bis m eingespeist wird, und
  • die Umsetztabelle m abhängig von den niedrigstwertigen Bits des Eingabecodes und des darin eingespeisten Umsetzcodes einen Code m mit fester Länge erzeugt, und
  • die Einrichtung zudem Auswahlvorrichtungen (SE1 - SEM-1 mit den Nummern 1 bis m-1 umfaßt, wobei
  • die Auswahlvorrichtung m-1 zum Empfangen der Codes m-1 und m mit fester Länge geschaltet und dazu betreibbar ist, als Zwischenausgabecode mit fester Länge den Code m-1 mit fester Länge auszuwählen, wenn die Bitlänge des Codes mit variabler Länge eine Gesamtheit der gewählten Bitlängen 1 bis m-1 nicht überschreitet, und zum Wählen des Codes m mit fester Länge, wenn die Bitlänge des Codes mit variabler Länge eine Gesamtheit der gewählten Bitlängen 1 bis m-1 überschreitet,
  • von den Auswahlvorrichtungen 2 bis m-2 jede k-te zum Empfangen des Codes k mit fester Länge und des Zwischenaus gabecodes mit fester Länge aus der Auswahlvorrichtung k+1 geschaltet und dazu betreibbar ist, als Zwischenausgabecode mit fester Länge den Code k mit fester Länge auszuwählen, falls die Bitlänge des Codes mit variabler Länge eine Gesamtheit der gewählten Bitlängen 1 bis k nicht überschreitet, und zum Wählen des Zwischenausgabecodes mit fester Länge aus der Auswahlvorrichtung k+1, falls die Bitlänge des Codes mit variabler Länge die Gesamtheit der gewählten Bitlängen 1 bis k überschreitet,
  • die Auswahlvorrichtung 1 zum Empfangen des Codes 1 mit fester Länge und des Zwischenausgabecodes mit fester Länge aus der Auswahlvorrichtung 2 geschaltet und dazu betreibbar ist, als Ausgabecode mit fester Länge der Einrichtung den Code 1 mit fester Länge auszuwählen, falls die Bitlänge des Codes mit variabler Länge die gewählte Bitlänge 1 nicht überschreitet, und zum Wählen des Zwischenausgabecodes mit fester Länge aus der Auswahlvorrichtung 2, falls die Bitlänge des Codes mit variabler Länge die gewählte Bitlänge 1 überschreitet.
  • Die Erfindung wird nunmehr beispielhaft mit Bezug auf die beiliegenden Zeichnungen beschrieben.
  • Es zeigt:
  • Fig. 1 ein grundlegendes Blockdiagramm der erfindungsgemäßen Demoduliereinrichtung für einen Code mit variabler Länge;
  • Fig. 2 ein grundlegendes Blockdiagramm der Demoduliereinrichtung für einen Code mit variabler Länge gemäß einer weiteren Ausführungsform der Erfindung; und
  • Fig. 3 ein Diagramm zum Erklären des Huffman-Codes, wobei Fig. 3a den Erzeugungsvorgang des Huffman-Codes darstellt und Fig. 3b einen Huffman-Codebaum.
  • Die bevorzugte Ausführungsform der Erfindung wird nun ausführlicher mit Bezug auf die begleitenden Zeichnungen beschrieben.
  • In Fig. 1 wird an einem Eingangsanschluß 21 ein Code mit variabler Länge eingegeben, der beispielsweise eine größtmögliche Bitanzahl von 15 Bit hat. Die höchstwertigen 8 Bit dieses Codes mit variabler Länge werden an einen Adreßeingangsanschluß einer Umsetztabelle 22 angelegt. Dagegen werden die niedrigstwertigen 7 Bit an einen Adreßeingangsanschluß einer Umsetztabelle 23 angelegt. Die am Adreß eingangsanschluß eingegebenen Daten legen die Adressen in den Umsetztabellen 22 oder 23 fest, und die an der bezeichneten Adresse gespeicherten Daten werden ausgegeben.
  • Die Umsetztabelle 22 hat Adressen, die allen Codes mit variabler Länge von 8 Bit oder weniger entsprechen. An jeder dieser Adressen ist jeweils ein 9-Bit-Code mit fester Länge gespeichert, der jedem dieser Codes mit variabler Länge von 8 Bit oder weniger entspricht. Die Umsetztabelle 22 weist auch Adressen auf, die den höchstwertigen 8 Bit von Codes mit variabler Länge von 9 Bit oder mehr entsprechen. An diesen Adressen sind 5-Bit-Umsetzcodes gespeichert, die jeweils diesen Codes mit variabler Länge entsprechen. Die Umsetztabeile 22 hat zusätzlich einen Bereich, der 1-Bit-Längencodes speichert. Hat dieser Längencode den Wert "1", so zeigt dies an, daß der Code mit variabler Länge 8 Bit oder weniger hat. Hat er den Wert "0", so zeigt dies an, daß der Code mit variabler Länge länger als 8 Bit ist. Die Umsetztabelle 22 besteht somit aus 2&sup8; x (9+5+1) Bit.
  • Das obige Beispiel für die Huffman-Codierung macht deutlich, daß die höchstwertigen n Bit eines Codes mit variabler Länge mit einer Bitlänge größer als n Bit (wobei n eine natürliche Zahl ist) sich notwendig von den Mustern der Codes mit variabler Länge von n Bit oder weniger unterscheiden. Beispielsweise sind in den Huffman-Codes nach Tabelle 1 die Muster "00", "10" der Huffman-Codes S&sub1; und S&sub1; in den höchstwertigen 2 Bit der Huffman-Codes S&sub3;, S&sub4;, S&sub5; und nicht enthalten. Verwendet man folglich Codes mit variabler Länge von 8 Bit oder weniger oder die höchstwertigen 8 Bit eines Codes mit variabler Länge von 9 Bit oder mehr zum Bezeichnen unterschiedlicher Adressen, so kann ein Längencode erhalten werden, beim dem es möglich ist, aus seiner Adresse zu bestimmen, ob der Code mit variabler Länge 8 Bit oder weniger hat oder nicht. In der Tat ist die Musteranzahl der höchstwertigen 8 Bit bei Codes mit variabler Länge von 9 Bit oder mehr vergleichsweise klein. Obwohl es gewisse systemabhängige Unterschiede gibt, sind diese Muster durch 5 Bit (32 Arten) ausreichend unterscheidbar. Aus diesem Grund ist in dieser Ausführungsform die Bitanzahl des Umsetzcodes auf 5 Bit gesetzt.
  • Die Umsetztabelle 22 gibt den Längencode (1-Bit) an den Steuer-Eingangsanschluß 26 eines Auswählers 24 aus. Die Umsetztabelle 22 gibt auch den Code mit fester Länge an den anderen Eingangsanschluß des Auswählers 24 aus. Die Umsetz tabelle 22 gibt den 5-Bit-Umsetzcode als höchstwertige Bits der Adresse einer Umsetztabelle 23 aus. Somit legt die Umsetztabelle 22 den 5-Bit-Code an den Adreßeingangsanschluß der Umsetztabelle 23 an, und zwar zusammen mit den 7 niedrigstwertigen Bits vom Eingangsanschluß 21.
  • Andererseits weist die Umsetztabelle 23 Adressen auf, die diesen 12-Bit-Codes entsprechen. An jeder Adresse ist ein 9-Bit-Datencode mit fester Länge gespeichert, der dem Eingabecode mit fester Länge von 9 Bit oder mehr entspricht. Die Umsetztabelle 23 weist also 2¹² x 9 Bit auf. Die Umsetztabelle 23 gibt die Codes mit fester Länge, die an der bezeichneten Adresse gespeichert sind, an den zweiten Eingangsanschluß 30 des Auswählers 24 aus. Der Auswähler 24 ist so eingerichtet, daß er - wenn ein Längencode "1" eingegeben wird - den Code mit fester Länge ausgibt, der am ersten Eingangsanschluß 28 eingegeben wurde (und von der Umsetztabelle 22 kommt). Dagegen gibt er den Code mit fester Länge aus, der am zweiten Eingangsanschluß 30 eingegeben wurde (und von der Umsetztabelle 23 kommt), wenn ein Längencode "0" eingegeben wird.
  • Es wird nun die Arbeitsweise der Demoduliereinrichtung für einen Code mit variabler Länge beschrieben, die wie oben angegeben aufgebaut ist.
  • Über den Eingangsanschluß 21 wird ein Code mit variabler Länge von 15 Bit eingegeben. Die höchstwertigen 8 Bit des Codes mit variabler Länge werden an die Umsetztabeile 22 angelegt. Die niedrigstwertigen 7 Bit werden in den Adreßeingangsanschluß der Umsetztabelle 23 eingegeben, und zwar als die niedrigstwertigen Bits des 5-Bit-Umsetzcodes aus der Umsetztabelle 22. Es sei nun angenommen, daß der Code mit variabler Länge aus 8 Bit oder weniger besteht. In diesem Fall gibt die Umsetztabelle 22 einen Längencode "1" an den Steuer-Eingangsanschluß 26 des Auswählers 24 aus. Ferner gibt die Umsetztabelle 22 den 9-Bit-Code mit fester Länge an den Eingangsanschluß 28 des Auswählers 24 aus. Der 9-Bit-Code mit fester Länge ist an der Adresse gespeichert, den der Code mit variabler Länge anzeigt. Da der Auswähler 24 an seinem Steuer-Eingangsanschluß 26 den Wert "1" einliest, gibt er den Code mit fester Länge am ersten Eingangsanschluß 28 aus.
  • Besteht andererseits der Code mit fester Länge aus 9 oder mehr Bit, so gibt die Umsetztabelle 22 einen Längencode "0" aus. Die Umsetztabelle 22 gibt den 5-Bit-Umsetzcode aus, der an der Adresse gespeichert ist, die den höchstwertigen 8 Bit entspricht. Dadurch wird ein 12-Bit-Code an den Adreßeingangsanschluß der Umsetztabelle 23 angelegt. Hiermit wird die Adresse der Umsetztabelle 23 bezeichnet, und der 9-Bit- Code mit fester Länge, der dem Code mit variabler Länge mit 9 Bit oder mehr entspricht, wird an den zweiten Eingangsanschluß 30 des Auswählers 24 ausgegeben. Da der Auswähler 24 an seinem Steuer-Eingangsanschluß 26 den Wert "0" einliest, gibt er den Code mit fester Länge vom zweiten Eingangsanschluß 30 aus. Die gesamte Bitanzahl der Umsetztabellen beträgt 28 x 15 + 2¹² x 9 = 40 (kbit) und ist somit auf weniger als 1/7 der herkömmlich verwendeten Bitanzahl vermindert. Der Schaltungsumfang ist damit stark verkleinerbar.
  • In dieser Ausführungsform unterscheiden sich die Muster der 8 höchstwertigen Bits des Codes mit variabler Länge von 9 oder mehr Bit notwendig von den Mustern des Codes mit variabler Länge von 8 Bit oder weniger. Zudem ist die Anzahl dieser Muster ganz besonders klein. Daher werden die 8 höchstwertigen Bits des Codes mit variabler Länge von 9 oder mehr Bit in einen 5-Bit-Umsetzcode umgesetzt, der als höchstwertige Bits verwendet wird. Dadurch ist die gesamte Bitanzahl der Umsetztabellen 22 und 23 stark verringerbar, und zwar aufgrund der Tatsache, daß das Demodulieren des Codes mit variabler Länge von 9 Bit oder mehr dadurch ausgeführt wird, daß ein 12-Bit-Code die Adresse der Umsetztabeile 23 bezeichnet.
  • Die größtmögliche Bitlänge des Codes mit variabler Länge ist natürlich nicht auf 15 Bit beschränkt. Anstatt jeweus die höchstwertigen 8 Bit und die niedrigstwertigen 7 Bit an die beiden Umsetztabellen anzulegen, ist es auch möglich, den Code mit variabler Länge bei einer geeigneten Bitanzahl aufzuspalten, um eine bestmögliche Wirksamkeit beim Vermindern der Bitanzahl zu erhalten.
  • Fig. 2 zeigt eine zweite Ausführungsform der Erfindung. In der zweiten Ausführungsform werden für ähnliche Bauteile die gleichen Zahlen verwendet wie in der ersten Ausführungsform; sie werden daher nicht nochmals ausführlich beschne ben. Die zweite Ausführungsform ist ein Beispiel, bei dem m Umsetztabellen verwendet werden. Der Code mit variabler Länge vom Eingangsanschluß 21 wird in höchstwertige und niedrigstwertige Bits 1 bis m-1 aufgeteilt (wobei m eine natürliche Zahl ist), die jeweils in Umsetztabellen T&sub1; bis Tm eingespeist werden. Aus den Umsetztabellen T&sub1; bis Tm-1 werden Längencodes und Codes mit fester Länge 1 bis m-1 jeweils an die Auswähler DE&sub1; bis SEm-1 an gelegt. Zudem werden aus den Umsetztabellen T&sub1; bis Tm-1 Umsetzcodes 1 bis m-1 jeweils in die Umsetztabellen T&sub2; bis Tm der nächsten Stufe eingespeist. Der Code mit fester Länge aus der Umsetztabelle Tm wird an den Auswähler SEm-1 ausgegeben. Die Codes mit fester Länge, die von den Auswählern SE&sub2; bis SEm-1 ausgegeben werden, werden jeweils in die Auswähler SE&sub1; bis SEm-2 der vordersten Stufe eingegeben. Der Ausgangsanschluß des Auswählers SE&sub1; gibt somit einen demodulierten Code mit fester Länge aus, der dem Code mit variabler Länge entspricht.
  • Mit dieser Erfindung ist, wie oben beschrieben, die gesamte Bitlänge der Umsetztabellen stark verminderbar.
  • Gemäß den Lehren der obigen Angaben sind zahlreiche Änderungen und Abwandlungen möglich. Es ist daher einsichtig, daß die Erfindung im Rahmen des Schutzumfangs der beigefügten Ansprüche auch auf eine Weise ausgeführt werden kann, die hier nicht besonders beschrieben ist.

Claims (6)

1. Demoduliereinrichtung für einen Code mit variabler Länge, geeignet zum Umsetzen eines Eingabecodes mit variabler Länge in einen Ausgabecode mit fester Länge, wobei die Einrichtung umfaßt:
eine erste Umsetztabelle (22);
eine zweite Umsetztabelle (23); und
eine Vorrichtung, geeignet zum Einspeisen der höchstwertigen Bits des Eingabecodes als Adresse in die erste Umsetztabelle und zum Einspeisen der verbleibenden niedrigstwertigen Bits des Eingabecodes als Teiladresse in die zweite Umsetztabelle, wobei
die höchstwertigen Bits eine feste gewählte Bitlänge aufweisen, die kleiner ist als eine größtmögliche Bitanzahl im Code mit variabler Länge,
die erste Umsetztabelle abhängig von den höchstwertigen Bits eines jeden Codes mit variabler Länge einen ersten Code mit fester Länge erzeugt und einen Umsetzcode mit einer Bitlänge, die kleiner ist als die gewählte Bitlänge,
der Umsetzcode als Teiladresse in die zweite Umsetztabeile eingespeist wird und die zweite Umsetztabelle abhängig vom Umsetzcode und den niedrigstwertigen Bits des Eingabecodes einen zweiten Code mit fester Länge erzeugt, und die Einrichtung ferner eine Auswahivorrichtung (24) umfaßt, die zum Empfangen des ersten und des zweiten Codes mit fester Länge geschaltet und dazu betreibbar ist, den ersten Code mit fester Länge als Ausgabecode mit fester Länge auszuwählen, falls die Bitlänge des Codes mit variabler Länge die gewählte Bitlänge nicht überschreitet, und zum Wählen des zweiten Codes mit fester Länge, falls die Bitlänge des Codes mit variabler Länge die gewählte Bitlänge überschreitet.
2. Demoduliereinrichtung für einen Code mit variabler Länge, geeignet zum Umsetzen eines Eingabecodes mit variabler Länge in einen Ausgabecode mit fester Länge, wobei die Einrichtung umfaßt:
eine Umsetztabelle (T1) mit der Nummer 1;
Umsetztabellen (T2 - Tm-1) mit den Nummern 2 bis m-1, wobei m größer ist als 2;
eine Umsetztabelle (Tm) mit der Nummer m;
eine Vorrichtung zum Einspeisen der Gruppe 1 von höchstwertigen Bits des Eingabecodes als Adresse in die Umsetztabelle 1;
eine Vorrichtung zum Einspeisen der Gruppen 2 bis m-1 der höchstwertigen Bits des Eingabecodes als jeweilige Teiladressen in die Umsetztabellen 2 bis m-1; und
eine Vorrichtung zum Einspeisen der verbleibenden niedrigstwertigen Bits des Eingabecodes als Teiladresse in die Umsetztabelle m, wobei
jede der Gruppen 1 bis m-1 der höchstwertigen Bits eine jeweils gewählte Bitlänge aufweist, die kleiner ist als eine größtmögliche Bitanzahl im Code mit variabler Länge,
die Umsetztabelle 1 abhängig von der Gruppe 1 der höchstwertigen Bits eines jeden Codes mit variabler Länge einen Code 1 mit fester Länge erzeugt und einen Umsetzcode 1, der eine kleinere Bitlänge hat als die jeweils gewählte Bitlänge, und der Umsetzcode als Teiladresse in die Umsetztabelle 2 eingespeist wird,
jede der Umsetztabellen 2 bis m-1 abhängig von der jeweiligen Gruppe höchstwertiger Bits eines jeden Codes mit variabler Länge und von den jeweils darin eingespeisten Umsetzcodes jeweils Codes 2 bis m-1 mit fester Länge erzeugt, und der jeweilige Umsetzcode 2 bis m-1 eine Bitlänge hat, die kleiner ist als die jeweils gewählte Bitlänge, und jeder der Umsetzcodes 2 bis m-1 als Teiladresse jeweils in Umsetztabellen 3 bis m eingespeist wird, und
die Umsetztabelle m abhängig von den niedrigstwertigen Bits des Eingabecodes und des darin eingespeisten Umsetzcodes einen Code m mit fester Länge erzeugt, und
die Einrichtung zudem Auswahivorrichtungen (SE1 - SEm-1) mit den Nummern 1 bis m-1 umfaßt, wobei
die Auswahivorrichtung m-1 zum Empfangen der Codes m-1 und m mit fester Länge geschaltet und dazu betreibbar ist, als Zwischenausgabecode mit fester Länge den Code m-1 mit fester Länge auszuwählen&sub1; wenn die Bitlänge des Codes mit variabler Länge eine Gesamtheit der gewählten Bitlängen 1 bis m-1 nicht überschreitet, und zum Wählen des Codes m mit fester Länge, wenn die Bitlänge des Codes mit variabler Länge eine Gesamtheit der gewählten Bitlängen 1 bis m-1 überschreitet,
von den Auswahlvorrichtungen 2 bis m-2 jede k-te zum Empfangen des Codes k mit fester Länge und des Zwischenausgabecodes mit fester Länge aus der Auswahlvorrichtung k+1 geschaltet und dazu betreibbar ist, als Zwischenausgabecode mit fester Länge den Code k mit fester Länge auszuwählen, falls die Bitlänge des Codes mit variabler Länge eine Gesamtheit der gewählten Bitlängen 1 bis k nicht überschreitet, und zum Wählen des Zwischenausgabecodes mit fester Länge aus der Auswahlvorrichtung k+1, falls die Bitlänge des Codes mit variabler Länge die Gesamtheit der gewählten Bitlängen 1 bis k überschreitet,
die Auswahlvorrichtung 1 zum Empfangen des Codes 1 mit fester Länge und des Zwischenausgabecodes mit fester Länge aus der Auswahlvorrichtung 2 geschaltet und dazu betreibbar ist, als Ausgabecode mit fester Länge der Einrichtung den Code 1 mit fester Länge auszuwählen, falls die Bitlänge des Codes mit variabler Länge die gewählte Bitlänge 1 nicht überschreitet, und zum Wählen des Zwischenausgabecodes mit fester Länge aus der Auswahivorrichtung 2, falls die Bitlänge des Codes mit variabler Länge die gewählte Bitlänge 1 überschreitet.
3. Demoduliereinrichtung für einen Code mit variabler Länge nach Anspruch 1 oder 2, wobei die Umsetztabelle 1 einen Festwertspeicher (ROM) enthält.
4. Demoduliereinrichtung für einen Code mit variabler Länge nach Anspruch 1, wobei die Umsetztabelle 2 einen Festwertspeicher (ROM) enthält.
5. Demoduliereinrichtung für einen Code mit variabler Länge nach Anspruch 2, wobei die Umsetztabellen 2 bis m Festwertspeicher (ROM) enthalten.
6. Demoduliereinrichtung für einen Code mit variabler Länge nach irgendeinem vorhergehenden Anspruch, wobei der Code mit variabler Länge einen Huffman-Code umfaßt.
DE69025033T 1989-10-30 1990-10-30 Vorrichtung zur Dekodierung von Kode variabler Länge und geeignetes Adresssteuerungsverfahren Expired - Fee Related DE69025033T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1283468A JPH03145223A (ja) 1989-10-30 1989-10-30 可変長符号復調装置

Publications (2)

Publication Number Publication Date
DE69025033D1 DE69025033D1 (de) 1996-03-07
DE69025033T2 true DE69025033T2 (de) 1996-10-02

Family

ID=17665938

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69025033T Expired - Fee Related DE69025033T2 (de) 1989-10-30 1990-10-30 Vorrichtung zur Dekodierung von Kode variabler Länge und geeignetes Adresssteuerungsverfahren

Country Status (5)

Country Link
US (1) US5138316A (de)
EP (1) EP0426429B1 (de)
JP (1) JPH03145223A (de)
KR (1) KR910008977A (de)
DE (1) DE69025033T2 (de)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5473326A (en) * 1990-12-14 1995-12-05 Ceram Incorporated High speed lossless data compression method and apparatus using side-by-side sliding window dictionary and byte-matching adaptive dictionary
JP3123792B2 (ja) * 1991-11-05 2001-01-15 株式会社リコー 算術符号を用いる符号化装置および復号化装置
JP2968112B2 (ja) * 1991-12-27 1999-10-25 株式会社ピーエフユー 符号変換方法
TW219416B (de) * 1992-03-10 1994-01-21 Sony Co Ltd
US5233348A (en) * 1992-03-26 1993-08-03 General Instrument Corporation Variable length code word decoder for use in digital communication systems
US5226082A (en) * 1992-07-02 1993-07-06 At&T Bell Laboratories Variable length decoder
JP3428039B2 (ja) * 1992-06-30 2003-07-22 ソニー株式会社 同期信号検出器、同期信号検出方法及び復号化装置
US5325092A (en) * 1992-07-07 1994-06-28 Ricoh Company, Ltd. Huffman decoder architecture for high speed operation and reduced memory
JP3003894B2 (ja) * 1992-07-29 2000-01-31 三菱電機株式会社 可変長復号器
US5351047A (en) * 1992-09-21 1994-09-27 Laboratory Automation, Inc. Data decoding method and apparatus
US5982437A (en) * 1992-10-26 1999-11-09 Sony Corporation Coding method and system, and decoding method and system
US5367383A (en) * 1992-11-27 1994-11-22 Eastman Kodak Company Method and apparatus for maximizing data storage in a processor of image data
US5384646A (en) * 1992-11-27 1995-01-24 Eastman Kodak Company Marking engine for grey level printing having a high productivity image data processing mode
US5400075A (en) * 1993-01-13 1995-03-21 Thomson Consumer Electronics, Inc. Adaptive variable length encoder/decoder
JPH06217274A (ja) * 1993-01-18 1994-08-05 Matsushita Electric Ind Co Ltd 画像信号圧縮装置
JP3127655B2 (ja) * 1993-03-22 2001-01-29 ソニー株式会社 変調装置及び復調装置
JPH06350854A (ja) * 1993-06-10 1994-12-22 Matsushita Electric Ind Co Ltd 画像圧縮符号化装置
US5488366A (en) * 1993-10-12 1996-01-30 Industrial Technology Research Institute Segmented variable length decoding apparatus for sequentially decoding single code-word within a fixed number of decoding cycles
US5550542A (en) * 1994-05-04 1996-08-27 Matsushita Electric Corporation Of America Variable length code look-up table having separate code length determination
US5541595A (en) * 1994-05-19 1996-07-30 Matsushita Electric Corporation Of America Variable length code decoder for simultaneous decoding the most significant bits and the least significant bits of a variable length code
KR100186915B1 (ko) * 1994-07-13 1999-05-01 모리시다 요이치 디지털 부호화 장치 및 디지털 부호 복호화 장치
JPH08116447A (ja) * 1994-10-18 1996-05-07 Fuji Xerox Co Ltd 画像信号の符号化装置
US5589829A (en) * 1994-10-26 1996-12-31 Intel Corporation Decoding variable-length encoded signals
KR100214593B1 (ko) * 1996-03-15 1999-08-02 구자홍 캐스케이드 구조를 이용한 런랭스 코드의 코드워드 검출 방법 및 장치
US5841380A (en) * 1996-03-29 1998-11-24 Matsushita Electric Corporation Of America Variable length decoder and method for decoding two codes per clock cycle
GB2346470B (en) * 1999-02-05 2003-10-29 Advanced Risc Mach Ltd Bitmap font data storage within data processing systems
KR100618972B1 (ko) 1999-08-02 2006-09-01 삼성전자주식회사 가변장 코딩 방법 및 장치
GB2361244B (en) * 2000-04-14 2004-02-11 Trikon Holdings Ltd A method of depositing dielectric
US6912070B1 (en) 2000-08-08 2005-06-28 Qualcomm, Inc. Sub-optimal variable length coding
GB2367459A (en) * 2000-09-28 2002-04-03 Roke Manor Research Method of compressing data packets
US20040199522A1 (en) * 2001-01-25 2004-10-07 Hanna Edpalm Method and apparatus for optimised indexing records of static data with different lengths
US6580377B1 (en) * 2001-05-30 2003-06-17 Sony Corporation Huffman decoding using cascaded sub-table lookup method
US6931688B2 (en) * 2002-08-09 2005-08-23 Colgate-Palmolive Company Toothbrush
AU2003277347A1 (en) * 2002-10-11 2004-05-04 Quicksilver Technology, Inc. Reconfigurable bit-manipulation node
US7661694B2 (en) * 2003-08-18 2010-02-16 Cequent Towing Products, Inc. Towing assembly
US7434150B1 (en) 2004-03-03 2008-10-07 Marvell Israel (M.I.S.L.) Ltd. Methods, circuits, architectures, software and systems for determining a data transmission error and/or checking or confirming such error determinations
US7360142B1 (en) * 2004-03-03 2008-04-15 Marvell Semiconductor Israel Ltd. Methods, architectures, circuits, software and systems for CRC determination
US7095342B1 (en) * 2005-03-31 2006-08-22 Intel Corporation Compressing microcode

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3883847A (en) * 1974-03-28 1975-05-13 Bell Telephone Labor Inc Uniform decoding of minimum-redundancy codes
JPS5564445A (en) * 1978-11-08 1980-05-15 Nec Corp Code converter circuit
CA1211219A (en) * 1982-06-30 1986-09-09 Hideo Kuroda Digital data code conversion circuit for variable- word-length data code
EP0145396B1 (de) * 1983-12-08 1990-04-04 Crosfield Electronics Limited Coderwörter-Decodierer
JPS6325758A (ja) * 1986-07-18 1988-02-03 Nec Corp スレ−ブプロセサ

Also Published As

Publication number Publication date
EP0426429A3 (en) 1991-11-27
US5138316A (en) 1992-08-11
KR910008977A (ko) 1991-05-31
DE69025033D1 (de) 1996-03-07
EP0426429B1 (de) 1996-01-24
JPH03145223A (ja) 1991-06-20
EP0426429A2 (de) 1991-05-08

Similar Documents

Publication Publication Date Title
DE69025033T2 (de) Vorrichtung zur Dekodierung von Kode variabler Länge und geeignetes Adresssteuerungsverfahren
DE69735680T2 (de) Verfahren zur Bilddecodierung
DE3587107T2 (de) Drehungsverfahren und -geraet fuer binaere bilder.
DE69603547T2 (de) Codierungsverfahren und Decodierungsschaltung für die Komprimierung von chinesischen Textzeichendaten
DE3501830C2 (de)
DE60100416T2 (de) Dekoder für Kode variabler Länge
DE69029876T2 (de) Anpassungsfähiger Wahrscheinlichkeitsabschätzer für Entropie-Kodierung/-Dekodierung
EP0290085B1 (de) System zur Übertragung von Videobildern
DE69731517T2 (de) Übertragung und empfang codierter videobilder
DE2640414C2 (de) Schaltungsanordnung ung Verfahren für die Kompressionscodierung unter Verwendung einer Korrelation zwischen zweidimensionalen, aus zweiwertigen digitalen Bildern abgeleiteten Matrizen
DE69329092T2 (de) Huffman-Kode-Decodierungsschaltung
DE3711200C2 (de)
DE69026292T2 (de) Methode zur Bilddatenkodierung
DE2706080C2 (de) Verfahren zur adaptiven Quantisierung von Transformationskoeffizienten eines Bildes und Anordnung zum Durchführen des Verfahrens
DE69527883T2 (de) Decodierung eines Huffman Codes mit MSB und LSB Tabellen
DE2652459C2 (de) Umsetzvorrichtung für Binärsignale variabler Länge
DE2558264C3 (de) Verfahren zur Verdichtung binärer Bilddaten
DE19821727B4 (de) Vorrichtung und Verfahren zur Codierung mit variabler Länge
DE3711201C2 (de)
DE69015398T2 (de) Vorrichtung zum Kodieren von digitalen Videosignalen.
EP1323313B1 (de) Verfahren und anordnung zum übertragen eines vektors
DE68908941T2 (de) Verfahren zur Kodierung und Dekodierung von Blockinformationen und Vorrichtung dazu.
DE69524999T2 (de) Verfahren zum Komprimieren und Dekomprimieren von Dateien
DE69737304T2 (de) Dekoder für Kodes variabler Länge
DE69607063T2 (de) Verfahren und System zur Kompression und Dekompression von digitalen Bildsignalen

Legal Events

Date Code Title Description
8332 No legal effect for de
8370 Indication related to discontinuation of the patent is to be deleted
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Free format text: BENEDUM, U., DIPL.-CHEM.UNIV.DR.RER.NAT., PAT.-ANW., 81669 MUENCHEN

8339 Ceased/non-payment of the annual fee