DE69025033T2 - Vorrichtung zur Dekodierung von Kode variabler Länge und geeignetes Adresssteuerungsverfahren - Google Patents
Vorrichtung zur Dekodierung von Kode variabler Länge und geeignetes AdresssteuerungsverfahrenInfo
- 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
Links
- 238000000034 method Methods 0.000 title description 13
- 238000006243 chemical reaction Methods 0.000 claims description 104
- 101100042258 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) sem-1 gene Proteins 0.000 claims description 5
- 101100425597 Solanum lycopersicum Tm-1 gene Proteins 0.000 claims description 4
- 230000015654 memory Effects 0.000 claims description 4
- 238000013144 data compression Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 101100042265 Caenorhabditis elegans sem-2 gene Proteins 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/42—Conversion 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/425—Conversion 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.
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)
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)
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 | スレ−ブプロセサ |
-
1989
- 1989-10-30 JP JP1283468A patent/JPH03145223A/ja active Pending
-
1990
- 1990-10-29 US US07/604,175 patent/US5138316A/en not_active Expired - Fee Related
- 1990-10-30 DE DE69025033T patent/DE69025033T2/de not_active Expired - Fee Related
- 1990-10-30 EP EP90311870A patent/EP0426429B1/de not_active Expired - Lifetime
- 1990-10-30 KR KR1019900017415A patent/KR910008977A/ko not_active Application Discontinuation
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 |