DE2513862A1 - Vorrichtung zum dekodieren - Google Patents
Vorrichtung zum dekodierenInfo
- Publication number
- DE2513862A1 DE2513862A1 DE19752513862 DE2513862A DE2513862A1 DE 2513862 A1 DE2513862 A1 DE 2513862A1 DE 19752513862 DE19752513862 DE 19752513862 DE 2513862 A DE2513862 A DE 2513862A DE 2513862 A1 DE2513862 A1 DE 2513862A1
- Authority
- DE
- Germany
- Prior art keywords
- length
- register
- input
- code
- code word
- 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.)
- Granted
Links
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
- 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)
- Memory System (AREA)
Description
PATENTANWÄLTE :,\ MJNCHEii UN^WIESbADtN
Postadresse München: Patentccnsuit 8 München 60 Radedcestraße 43 Telefon (089)883603/883604 Telex 05-212313
Postadresse Wiesbaden: Patentconsult 62 Wiesbaden Sonnenberger Straße 43 Telefon (06121) 562943/561998 Telex 04-186237
Western Electric Company, Incorporated A. J. Frank New York, N. Y., USA
Vorrichtung zum Dekodieren
Die Erfindung betrifft eine Vorrichtung zum Dekodieren einer Eingangsfolge von Binärkodewörtern unterschiedlicher Länge,
mit einem Eingangsregister zur Aufnahme und Speicherung der Eingangskodewörter und einer Speicheranordnung zur Speicherung
dekodierter Symbole entsprechend jedem Eingangskodewort.
Mit zunehmender Verwendung von Di^italcomputern und anderen
Digitalspeicher- und Verarbeitungsanlagen ist das Erfordernis, digitale Information visuell zu speichern ur.d/oder zu übertragen,
von bedeutender Wichtigkeit geworden. Da Information im allgemeinen
einer Zahl von Symbolen wie alphanumerischen Zeichen zugeordnet ist, und da einige Symbole in eine~i typischen Alphabet
509840/0842
häufiger auftreten als andere, hat es sich als vorteilhaft gezeigt, die mittlere Länge der Kodewörter zu reduzieren, um sog.
statistische Kodierungsmethoden zu verwenden und Signale entsprechender
Länge abzuleiten, um die einzelnen Symbole darzustellen. Eine solche statistische Kodierung ist natürlich nicht neu.
In der Tat kann der wohlbekannte Morse-Kode für telegrafische
Übertragung als einer dieser Kodearten betrachtet werden, bei welchem die relativ häufig auftretenden Symbole (wie E) durch
kurze Signale dargestellt werden, wohingegen weniger häufig vorkommende Signale (wie Q) entsprechend längere Signaldarstellungen
aufweisen. Andere Kodes variabler Länge sind in folgenden Artikeln
beschrieben worden: D. A. Huffman, "A Method for the Construction of Miniumum-Redundancy Codes", Proc of the IRE, Vol.
40, Seiten IO98-IIOI, September 1952; E. N. Gilbert und E. P.
Moore, "Variable-Length»Binary Encodings", Bell System Technical
Journal, Vol. 38, Seiten 953-967, Juli 1959; und J. 3. Connell,
"A Huffman-Shannon-Fano Code", Proc. IEEE, Juli 1973, Seiten
1046-1047.
Aus den oben genannten Artikeln und von Pano, Transmission of
Information, John Wiley and Sons, Inc., New York, I96I, Seiten
75-81, ist es bekannt, daß das Huffman-Kodierungsverfahren verglichen
werden kann mit einem Baumbildungsprozess, bei welchem Kodes entsprechend weniger häufig auftretenden Symbolen an den
oberen Spitzen eines Baumes mit drei verschiedenen Etagen erscheinen, wohingegen jene Kodes, die mit relativ hoher Wahr-
B098A0/08A2
scheinlichkeit auftreten, an unteren Etagen in dem Baum erscheinen.
Wenn es auch intuitiv als offensichtlich erscheint, daß ein Dekodierungsprozeß durch Anwendung des Huffman-Dekodiersehemas
leicht ist, so entspricht dies nicht der allgemeinen Erfahrung. Viele Leute, die sich mit dem Gebiet des Kodierens
beschäftigen, haben die Huffman-Dekodierung als recht unhandlich befunden. (S. beispielsweise Bradley, "Data Compression
for Image Storage and Transmission", Digest of Papers, IDEA Symposium, Society for Information Display, 1970J und O'Neal,
"The Use of Entropy Coding in Speech and Television Differential PCM Systems", AFOSR-TR-72-0795, verteilt durch den National
Technical Information Service, Springfield, Va., 1971)· In jenen
Fällen, in welchen eine Huffman-Dekodierung durchgeführt worden ist, konnte die Kompliziertheit deutlieh erkannt werden. (S.
beispielsweise Ingels,%^nformation and Coding Theory, Intext
Educational Publishers, Scranton, Pa., 1971, Seiten 127-132;
und Gallager, Information Theory and Reliable Communication, Wiley, 1968).
Wenn eine solche Huffman-Dekodierung erforderlich ist, wurde sie gewöhnlich durch eine Baumsuchmethode entsprechend, einem
seriell empfangenen Bitstrom durchgeführt. Wenn man an jedem Knoten in einem Baum einen von zwei Zweigen nimmt, und zwar in
Abhängigkeit davon, welcher von zwei Werten für individuelle Digits in dem empfangenen Kode festgestellt worden ist, gelangt
man schließlich zu einer Angabe des durch den seriellen Kode
509SA 0/0842
dargestellten Symbols. Dies kann man bei einer praktischen Geräteausführung
als äquivalent ansehen zu einer Übertragung, die von einer gegebenen Startposition aus auf eine von zwei Stellen vorgenommen
wird und zwar für jedes Bit eines binären Eingangsstroms; der Prozeß ist deshalb ein sequentieller.
Solche sequentiellen "binärenAbtastungen" sind beispielsweise beschrieben
in Price "Table Lookup Techniques", Computing Surveys,
Vol. 3, Nr. 2, Juni 1971, Seiten 49-65.
Ähnliche Baum-Suchmethoden sind beschrieben in US-PS 3 700 819;
B. H. Sussenguth, Jr., "Use of Tree Structures for Processing Piles", Comm. ACM 6,5, Mai I963, Seiten 272-279; und H. A.
Clampett Jr., "Randomized Binary Searching with Tree Structures", Comm. ACM 7,3, März 1964, Seiten 163-165.
Wie oben erwähnt, sind Baummethoden äquivalent zur sequentiellen Übertragung von Stelle zu Stelle in einem Speicher für jedes
empfangene Bit, um zu einer endgültigen Stelle zu gelangen, welche (äie zur Dekodierung einer besonderen Bitfolge verwendete
Information enthält. Solche sequentiellen Übertragungen von Position
zu Position in einem Speicheraufbau sind zeitraubend und schließen in manchen Fällen effektiv die Verwendung von minimalredundanten Kodes aus. Außerdem treten beträchtliche Unterschiede
in der Dekodierzeit auf, wenn Kodewörter mit sehr unterschiedlichen Längen verarbeitet werden. Eine solche Unterschiedlichkeit
verringert die Wahrscheinlichkeit einer Ausnutzung für Anwendun-
5098 4 0/0842
gen wie Anzeigesystemen, bei welchen oft eine Darstellung der Ausgangssymbole mit konstanter Folgegeschwindigkeit erwünscht
ist.
Die aufgezeigten Probleme werden erfindungsgemäß gelöst mit einer Vorrichtung der eingangs genannten Art, die gekennzeichnet ist
durch ein an das Eingangsregister angekoppeltes erstes Register zur Auswahl eines in seiner Länge festgelegten Abtastmusters der
mit dem ersten Digit eines gegenwärtigen Kodewortes beginnenden Eingangsdigitsignale, einen das erste Register und die Speicheranordnung
verbindenden Adressengenerator zur Ableitung einer auf dem Abtastmuster der Eingangsdigitsignale beruhenden Adressenstelle
in der Speicheranordnung, und ein Ausgangsregister zum Auslesen der Information aus der adressierten Stelle der Speicheranordnung
. ^v
Ein erfindungsgemäßer Vorteil besteht darin, daß eine Dekodieranordnung
für minimal-redundante Huffman-Kodes verfügbar gemacht ist, ohne daß sequentielle oder Bit-für-Bit-Dekodiervorgänge erforderlich
sind.
Ein weiterer erfindungsgemäßer Vorteil besteht darin, daß eine parallele oder nahezu parallele Dekodierung minimal-redundanter
Kodes variabler Länge verfügbar ist.
Ein weiterer erfindungsgemäßer Vorteil besteht darin, daß eine wirkungsvolle Tabelle zum Dekodieren minimal-redundanter Kodes
509840/0842
verfügbar ist, für welche eine reduzierte Speicherkapazität verwendet werden kann.
In der Zeichnung zeigen:
Fig. 1 eine gesamte Machrichtenanlage einschließlich einem
erfindungsgemäß ausgebildeten Dekodierer;
Fig. 2 ein Blockdiagramm zur Darstellung einer erfindungsgemäßen
Ein-Tabellen-Ausführungsform;
Fig. 3- ein Blockdiagramm zur Darstellung einer erfindungsgemäßen
Ausführungsform mit einer Primär-Übersetzungstafel und mehreren Sekundär-Übersetzungstafeln.
Ein effindungsgernäßes Ausführungsbeispiel sorgt für den Zugriff
. zu einem in seiner Länge festgelegten Abtastmuster eines Eingangs-Bitstroms,
der zusammengefügte Kodewörter variabler Länge aufweist. Jedes dieser Abtastmuster wird zur Ableitung einer
Adresse verwendet, die einen Platz in einem Speicher festlegt, in welchem eine Angabe des dekodierten Ausgangssymbols zusammen
mit einer Angabe über die wirkliche Länge des dem Ausgangssymbol entsprechenden Kodewortes gespeichert ist. Da das in seiner
Länge festgelegte Abtastmuster so gewählt ist, daß es gleich lang wie die maximale Kodewortlänge ist, wird die Information
über die wirkliche Kodewortlänge dazu verwendet, den Anfangspunkt für das nächstfolgende Kodewort in der Eingangsfolge zu
bestimmen.
Wenn die aufzuwendende Speicherkapazität möglichst klein ge-
6 09840/0842
macht v/erden soll, macht eine andere Ausführungsform einen Speicheraufbau verfügbar, der eine Primär-Tabelle und mehrere
Sekundär-Tabellen umfaßt. Wieder wird ein Abtastmuster festgelegter
Länge verwendet, aber die Länge K ist so gewählt, daß sie kleiner als die des maximalen Kodewortes ist. Wenn das Abtastmuster
ein Xodewort mit einer Lange umfaßt, das kleiner oder gleich K ist, läuft ein Dekodierungsvorgang wie im ersten
AusfUhrungsbeispiel (mit einer Tabelle) ab. D.h., es braucht lediglich die erste Tabelle benutzt zu werden. Wenn das Abtastmuster
nicht genügend lang ist, um alle Bits in einem Kodewort aufzunehmen, wird jedoch eine Anzahl nachfolgender Bits im
Eingangs-Bitstrom (eine solche Anzahl ist in der adressierten Stelle der Primär-Tabelle angegeben) verwendet, um in Zusammenwirkung
mit anderen Daten, die in der adressierten Stelle in der Primär-Tabelle gespeichert sind, eine Adresse zu erzeugen,
die geeignet ist, einen Platz in einer das dekodierte Symbol enthaltenden Sekundär-Tabelle zu identifizieren. Dieser letztere
Platz enthält auch den Wert der um K reduzierten wirklichen Kodelänge, welche verwendet wird, um den Anfangspunkt für das
nächste Kodewort festzulegen.
Aufgrund der gleichförmigen Natur der einbegriffenen Operationen bietet sich die vorliegende Erfindung für Anwendungen an,
die sowohl eine speziell ausgelegte Vorrichtung als auch eine programmierte allgemeine Vorrichtung umfassen.
Fig. 1 zeigt die Gesamtanordnung einer typischen Nachrichten-
509840/0842
anlage derart, für welche die vorliegende Erfindung angewendet werden kann. Eine Informationsquelle 100 erzeugt Nachrichten,
die auf eine Verbrauchervorrichtung 104 zu übertragen sind,
nachdem sie durch einen Kodierer 101, einen Übertragungskanal
102 und einen Dekodierer IO3 verarbeitet worden sind. Die Informationsquelle
100 kann natürlich verschiedene Formen annehmen, einschließlich einer programmierten Datenverarbeitungsvorrichtung,
eines einfachen Tastenfeldes oder anderer Information erzeugender Vorrichtungen. Auch der Kodierer 101 kann verschiedene Formen
annehmen und braucht für vorliegende Zwecke lediglich als ein Kodierer betrachtet zu werden, der die Eingangsinformation, in
welcher Form auch immer sie von der Quelle 100 geliefert wird, in Kodes im Huffman-Format zu übersetzen vermag. Gleichermaßen
kann der Übertragungskanal 102 entweder ein einfacher Draht oder ein anderer Nachrichtenkanal in Standardausführung sein, oder er
kann eine weitere Verarbeitung wie mit einem Machrichtenspeicher und Übertragungsvorrichtungen umfassen. Der Kanal 102 kann
Signalgabe- und andere verwandte Vorrichtungen einschließen. Für vorliegende Zwecke braucht jedoch lediglich angenommen zu
werden, daß der Übertragungskanal 102 dem Dekodierer 10/5 einen seriellen Bitstrom liefert, der zusammengefügte Kodewörter variabler
Länge im Huffman-Minimalredundanzformat enthält. Die Funktion
des Dekodierers 103 besteht dann darin, von diesem Eingangsbitstrom die von der Informationsquelle 100 gelieferte ursprüngliche
Nachricht herzuleiten.
Die Verbrauchervorrichtung 104 kann eine Zahl von Standardformen
509640/0842
annehmen, wie eine Datenverarbeitungsanlage, eine Anzeigevorrichtung
oder eine Lichtzusammensetzungsanlage.
Der dem Dekodierer IO3 zugeführte Kodesatz minimaler Redundanz
enthält generell eine endliche Anzahl Kodewörter verschiedener Längen. Für vorliegende Zwecke sei angenommen, daß jedes Kodewort
eine Folge von einem oder mehreren binären Digits aufweist, obwohl andere als binäre Signale in manchen Zusammenhängen verwendet
werden können. Ein solcher Kodesatz kann gekennzeichnet werden durch einen Satz Dezimalzahlen I,, Ip, ..., I»», wobei I.
die Zahl der j Bit langen Kodewörter und M die maximale Kodewortlänge
ist. Diese Struktur wird durch einen Index I gekennzeichnet, welcher eine Verkettung der Dezimalzahlen I. ist, d. h. I = I1Ip
...Ι». Beispielsweise führt eine Quelle mit drei Nachrichtentypen
mit Wahrscheinlichlceit%ft^0,6, 0,3 und 0,1 zu einem minimal-redundanten
Kodesatz, der einen ein Bit langen Kode und zwei je zwei Bits lange Kodes enthält, was den Index I = 12 ergibt. Zahlreiche
Verwirklichungen eines Kodes mit einem bestimmten Index sind möglich.
Eine solche Verwirklichung für I = 12 einhält die Kodewörter 1 und 00 und 01; eine andere Verwirklichung ist 0 und 10 und
Als weiteres Beispiel zeigt Tabelle I einen Kode mit einem Index I = IOII496, der auf einer Veröffentlichung von B. Rudner, "Construction
of Minimum-Redundancy Codes With an Optimum Synchronizing Property", IEEE Transactions on Information Theory, Vol. IT-17>
Nr. 4, Seiten 478-487, Juli 1971. In Tabelle I sind die Länge der Kodewörter und die zugeordneten dekodierten V/erte dargestellt,
in diesem Fall alphabetische Schriftzeichen.
509840/0842
TABELLE I
Kode mit I = 10114-96
Kodewort- Dekodierter Kodewort Länge Wert
0 | 1 | A |
100 | 3 | B |
1100 · | 4 | C |
10100 | 5 | D |
11010 | 5 | E |
11100 | 5 | P |
11110 | 5 | G |
101010 | 6 | H |
101100 | 6 | I |
101110 | 6 | J |
101111 | 6 | K |
110110 | 6 | L |
110111 | 6 | M |
111010 | 6 | N |
111110 | 6 | 0 |
111111 | 6 | P |
1010110 | 7 | Q |
1010111 | 7 | R |
1011010 | 7 | S |
ionon | 7 | T |
1110110 | 7 | U |
1110111 . | _ 7 | V |
Der oben in Tabelle I angegebene Kode kann unter Anwendung von Verfahren zum direkten Tabellen-Lesen nur dann angewendet werden,
wenn irgendeine Funktion für jeden der individuellen Kodes erzeugt werden kann, welche entsprechende Tabellenadressen spezifiziert.
Die Identifikation einer solchen Punktion ist natürlich aufgrund der variablen Kodewortlängen kompliziert.
Eine Methode gemäß einem erfindungsgemäßen Aspekt wird nun beschrieben,
die zum Aufbau und zur Verwendung einer besonders geeigneten Übersetzungstabelle für den Kode der Tabelle I dient.
Bei der Bildung einer solchen Übersetzungstabelle zeigt es sich
S09840/08U
günstig, zuerst eine Tabelle äquivalenter Kodewörter mit gleicher Länge aufzubauen. Insbesondere wird für jedes Kodewort
mit einer Länge kleiner als M in Tabelle I ein neues Kodewort abgeleitet, dessen Länge gleich M ist. Diese neuen
Kodewörter werden dadurch erzeugt, daß rechts Nullen angehängt werden, d. h. durch Zufügen von angehängten Nullen. Tabelle II
zeigt die abgeleiteten Kodewörter in Binär- und in Dezimalform.
TABELLE II | Ko devi ört er |
Abgeleitete | Dezimal |
Binär | 0 |
0000000 | 64 |
1000000 | 96 |
1100000 | 8o |
1010000 | 104 |
1101000 | 112 |
1110000 | 120 |
1111000 | 84 |
IQlOlO(V* | 88 |
1011000 | 92 |
1011100 | 94 |
1011110 | 108 |
1101100 | 110 |
1101110 | 116 |
1110100 | 124 |
1111100 | 126 |
1111110 | 86 |
1010110 | 37 |
1010111 | 90 |
1011010 | 91 |
ionon | 118 |
1110110 | 119 |
1110111 |
Es soll nun gezeigt werden, daß die Kodewörter in Tabelle II zu einem direkten Zugriff zu Speicherplätzen, die eine Dekodiertabelle
enthalten, verwendet werden können. Insbesondere wird jedes Kodewort als eine Adresse interpretiert, die, wenn sie um
809840/Q842
1 erhöht wird, die erforderliche Adresse in einer Übersetzen^stabelle
vorsieht, welche 2 Eingänge oder Einträge enthält.
Jeder Eintrag in der Übersetzungstabelle enthält die zugeordnete ursprüngliche Kodewortlänge und den dekodierten Wert in zugehörigen
Feldern. So enthält beispielsweise der erste Tabclleneintrag die Kodewortlänge 1 und den dekodierten Wert A, und der 65. Tabelleneintrag
enthält die Kodewortlänge 5 und den dekodierten V/ert B.
Π
Es sind T] I,T solche Einträge vorhanden. Nachdem alle diese Ein-
Es sind T] I,T solche Einträge vorhanden. Nachdem alle diese Ein-
N-I N
träge gemacht worden sind, ist in jeden leeren Eingang in der Tabelle derjenige Eintrag kopiert worden, der sich genau in dem davorliegenden Eingang befindet. Somit sind beispielsweise die Kodewortlänge 1 und der dekodierte Wert A der Reihe nach in Tabelleneingänge 2 bis 64 kopiert. Die vollständige Übersetzungstabelle ist in Tabelle III dargestellt.
träge gemacht worden sind, ist in jeden leeren Eingang in der Tabelle derjenige Eintrag kopiert worden, der sich genau in dem davorliegenden Eingang befindet. Somit sind beispielsweise die Kodewortlänge 1 und der dekodierte Wert A der Reihe nach in Tabelleneingänge 2 bis 64 kopiert. Die vollständige Übersetzungstabelle ist in Tabelle III dargestellt.
840/0842
TABELLE III | 64 | in Tabelle I | |
Übers | etzun^stabelle für den Kode | 80 | |
Adres | se oder | 84 | Inhalte |
Adressenbereich | 86 | 1, A | |
1 - | 87 | 3, B | |
65 - | 88 | 5, D | |
81 - | 90 | 6, H | |
85 - | 91 | 7, Q | |
92 | Ί, R | ||
94 | 6, I | ||
89 - | 96 | 7, S | |
104 | 1, T | ||
108 | 6, J | ||
93 - | 110 | 6, K | |
95 - | 112 | 4, C | |
97 - | 116 | 5, E | |
105 - | 118 | 6, L | |
109 - | 119 | 6, M | |
111 - | 120 | 5, P | |
113 - | 124 | 6, Ν | |
117 - | 126 | 7, U | |
128 - | 7, V | ||
5, G | |||
121 - | 6, 0 | ||
125 - | 6, P | ||
127 - |
Es wird nun die Dekodierung eines Eingangsstroms unter Verwendung der Tabellen II und III beschrieben. Eine Marke oder ein ^ZeI-ger"
ist eingerichtet, der auf die laufende Position im Bitstrom zeigt und mit der ersten Position beginnt. Beginnend am Zeiger wird
ein festgelegtes Segment von M Bits aus dem Eingangsbitstrom herausgenommen. Zu dieser Zeit wird der Zeiger nicht vorgerückt, d. h. er
zeigt noch auf den Beginn des Segmentes. Die durch die herausgegriffenen M Bits dargestellte Zahl wird um 1 erhöht, was irgendeinen
Wert W ergibt. V/ wird als Adresse verwendet und der W-te Eintrag wird aus der Übersetzungstabelle herausgegriffen, wodurch sich die
503840/0842
Kodewortlänge und der dekodierte Wert ergeben. Der dekodierte Wert wird auf die Verbrauchervorrichtung 104 übertragen, und. der
Bitstromzeiger wird um einen Wert vorgerückt, der gleich der Länge
des herausgegriffenen Kodewortes ist. Dieser Vorgang wird, dann für das nächste Segment von Π Bits wiederholt.
Das wesentliche liegt darin, daß das konstante Herausgreifen von M Bits aus dem Bitstrom den Kode variabler Länge für Verarbeitungszwecke in einen Kode fester Länge umwandelt. Jedes Segment enthält
entweder das gesamte Kodewort selbst, wenn das Kodewort M Bits lang ist, oder es enthält das Kodewort plus einige Abschlußbits. Beim
Dekodieren eines solchen Kodewortes haben die Abschlußbits keine Wirkung, da die Übersetzungstabelle Kopien der Kodewortlänge und
des dekodierten Viertes für alle möglichen Vierte der Abschlußbits enthält. Die Abschlußbits gehören natürlich zu einem oder mehreren
aufeinanderfolgenden Kodewörtern, welche in richtiger Reihenfolge verarbeitet werden, wenn der Bitstromzeiger vorgerückt wird.
Obiges Verfahren zeigt sich somit als eine einfache Methode zur schnellen Dekodierung von Kodes variabler Länge und zwar bei
gleichmäßiger Dekodierzeit pro Kode.
Als Beispiel wird nun die Dekodierung des Anfangs der Nachricht THEQUICKSLYFOX, und zwar in Darstellung durch die Kodes in Tabelle I,
in Verbindung mit der Vorrichtung nach Pig. 2 beschrieben. Die Bitfolge für diese Nachricht ist, wenn die Zeit nach links zunimmt, und
das höchstwertige Bit eines jeden Buchstaben zuerst (am weitesten rechts)dargestellt ist:
503840/0342
111101001100110101101110110101010110101011101101, ♦
KCI U QEH T
Zwischenräume sind natürlich weggelassen worden, um die Verwendung
der Kodes in Tabelle I zu erlauben.
Die Schaltung nach Fig. 2 ist ein Beispiel einer Vorrichtung,
die zur praktischen Durchführung des oben beschriebenen erfindungsgemäßen Aspektes verwendet werden kann. Somit wird der oben dargestellte
Bitstrom in Serienform auf ein Eingangsregister 110 gegeben. Natürlich kann das Elngangsnuster in entsprechenden Fällen
auch in Parallelform eingegeben werden. Wenn die Nachricht mehr Bits enthält, als im Register 110 speicherbar sind, können Standardpuffermethoden
verwendet werden, um vorübergehend einige dieser Bits zu speichern, bis das Register 110 diese aufnehmen kann.
Wenn das Register 110 einmal gefüllt ist, d. h., wenn die ersten Bits auf der rechten Seite des Registers 110 erschienen sind,
empfängt ein M-Bit-Register 111 vorteilhafterweise die höchstwertigen
(am weitesten rechts befindlichen) M Bits durch Übertragung vom Register 110. Diese M-Bits werden dann auf einen
Addierer 112 gegeben, welcher die Summe aus den M Bits (als eine Zahl betrachtet) und dem konstanten Wert 1 bildet. In vereinfachter
Form kann der Addierer 112 ein einfacher M-Bit-Zähler sein,
und das +1-Signal kann ein erhöhender Impuls sein. Das Ausgangssignal
des Addierers 112 wird dann auf eine Adressierschaltung 113 gegeben, welche daraufhin ein V/ort aus einem Speicher 114
509840/0842
auswählt, das auf diesem Ausgangssignal beruht. Die Adressierschaltung
II3 und der Speicher 114 können zusammengenommen die
Form irgendeiner Standardspeicheranlage mit beliebigem Zugriff mit einer zugeordneten Adressierungsschaltung sein. Obwohl
Einzelleitungsverbindungen in Fig. 2 dargestellt und beschrieben sind, ist es aus dem Zusammenhang natürlich klar, daß einige
Signalwege Mehrfach-Bitwege sind. Beispielsweise ist der zum Addierer 112 führende Weg ein K-Bitweg, d.h. mit insgesamt K-Aderverbindungen.
Das adressierte Wort wird in ein Register II5 eingelesen, welches
mit zwei Teilen dargestellt ist. Der rechte Teil des Registers empfängt das dekodierte Schriftzeichen und 1st in Fig. 2 mit 117
bezeichnet. Dieses dekodierte Schriftzeichen wird dann in Standardweise auf die Verbraucherschaltung 104 gegeben. Wenn das Schriftzeichen
im Speicher 114 gespeichert ist, wird es in binär kodierte Dezimalform kodiert oder welche "expandierte" Form auch immer
durch die Verbraucherschaltung 104 erforderlich ist. Besondere Kodes zum Treiben eines Druckers sind typisch, wenn die alphabetischen
Symbole der Tabelle I zu verwenden sind. Die Dekodierung dieses Schriftzeichens ist vollständig.
Der linke Teil II6 des Registers II5 empfängt diejenigen Signale,
welche die Zahl der im Eingangsbitstrom zur Darstellung des dekodierten Schriftzeichens verwendeten Bits angibt. Diese Zahl wird
dann verwendet, um den Inhalt des Registers 110 um eine entsprechende Zahl von Bits nach rechts zu verschieben. Irgendeine ver-
S09840/0842
schiebesignalquelle, wie ein Binärratenmultiplizierer (ERM)
118 kann zur Durchführung der gewünschten Verschiebung verwendet werden. Somit v.'ird bei einer typischen Ausführung eine feste
Folge von Taktsignalen von einem Taktgeber II9 vom BRM "herausgegeben",
um die gewünschte Verschiebung zu erzielen. Ist die Verschiebung vollständig durchgeführt (was geeigneterweise durch
einen.Impuls auf einer Leitung 120 angegeben wird, der das Ende
der Taktimpulsfolge definiert), wird eine neue M-Bitfolge in das
Register 111 übertragen. Dieser Übertragungsimpuls wird bequemerweise
auch zum Löschen des Addierers 112 und des Registers II5
verwendet. Die obige Reihenfolge wird dann wiederholt.
Wenn ein spezielles Zeichen dekodiert wird, welches das Ende einer
Nachricht (ΕΟΓΙ) festlegt, setzt ein EOM-Detektor 121 (ein einfaches
UND-Gatter oder i&ine gleichwertige Vorrichtung) ein Flipflop
122. Dies hat die Wirkung, daß ein Sperrsignal an UND-Gatter 123 und 124 angelegt wird, wodurch der Zugriff zum Speicher 114
und die Verschiebung des Inhalts des Registers 110 verhindert wird. Wenn eine neue Nachricht im Ankommen ist, was unabhängig auf einer
START-Leitung 125 signalisiert wird, wird das Flipflop 122 zurückgesetzt, der Addierer 112 mittels eines ODER-Gatters l40 gelöscht
und die neue Nachricht wie oben verarbeitet. Kehrt man nun wieder zur oben angegebenen Musternachricht zurück, so sieht
man, daß die erste M-Bit-Folge 1101101 (oder 1011011 = 91 (dezimal)
in normaler Reihenfolge), die auf das Register 111 übertragen wird,
zu einem Zugriff zum Speicherplatz 91 + 1 = 92 führt, wie in
50SU0/0842
Tabelle III gezeigt ist. Aus Tabelle III sieht man, daß die
Stelle 92 die Information 7, T enthält, d.h. das dekodierte
Zeichen ist ein T und seine Länge, mit welcher es in der Eingangsfolge dargestellt ist, beträgt 7 Bits. Somit v/ird ein T
auf die Verbrauchers chaltung 104 geliefert und BRM II8 erzeugt 7 Schiebeimpulse. Das Übertragungssignal auf Ader 120 bewirkt
dann, daß die nächsten 7 Bits 1010101 (oder 1010101 = (dezimal)) auf das Register 111 übertragen werden. Das Übertragungssignal
löscht bequemerweise gleich den Addierer 112 und das Register 115j um zu verhindern, daß die vorhergehenden Inhalte
ein fehlerhaftes Ergebnis erzeugen. Zwischen dem Register 111 und dem Addierer 112 kann eine kleine Verzögerung vorgesehen
werden, v/enn ansonsten ein "Wettlaufzustand" entstehen würde.
Der Zugriff zum Speicherplatz 86 = 85 + 1 bewirkt dann, daß das Register II5 die Information 6, H empfängt. BRM II8 rückt dann
das Schieberegister 110 um 6 Bits vor. Die Tabelle IV vervollständigt die Verarbeitung der oben gegebenen Beispielsfolge.
' TABELLE IV
7~Bit-Folge Adresse, zu welcher Dekodiertes Verschiebungen
^_ Zugriff besteht Bit/Nr.
ionon 92 τ, 7
1010101 86 H, 6
1101010 IO7 E, 5
1010110 87 Q, 7
1110110 119 u, 7
1011001 90 ι, 6
1100101 102 C, 4
1011111 96 κ, 6
S0SS40/0842
Wenn der insgesamt erforderliche Tabellenspeicher reduziert werden soll, kann eine etwas andere Operationsfolge vorteilhaft
verwendet v/erden, wie im folgenden beschrieben werden soll. Wie oben bemerkt, sind für irgendeinen gegebenen Index
I = I1I2 ··· 1M viele Verwirklichungen eines minimal-redundanten
Kodes möglich. Der oben angeführte Kode für I = 1011496 hat eine bestimmte Synchronisationseigenschaft, die in der oben erwähnten
Schrift von Rudner beschrieben ist. Eine andere Verwirklichung ist ein monotoner Kode, in welchem die Kodewerte numerisch geordnet
sind. Solch ein zunehmender monotoner Kode ist dadurch aufgebaut, daß das erste Kodewort so ausgewählt wird, daß es I1
Nullen enthält. Jedes weitere Kodewort wird dadurch gebildet, daß zum vorausgehenden Kodewort eine 1 addiert und dann eine Multi-
Li"Li-l
plikation mit 2 , wobei L1 und Lj, die Längen des zu bildenden
bzw. des vorauseilende Kodeworts sind. Der monotone Kode
mit demselben Index wie demjenigen für den Kode der Tabelle I, nämlich I = 1011496, ist in Tabelle V dargestellt.
509840/0842
TABELLE V
Monotoner Kode I lit I = 1011496
Monotoner Kode I lit I = 1011496
Kodewort- | Dekodierter | |
Kodewort | länge | Wert |
0 | 1 | A |
100 | 3 | B |
1010 | 4 | C |
10110 | 5 | D |
10111 | 5 | E |
11000 | 5 | F |
11001 | 5 | G |
110100 | 6 | .H |
110101 | 6 | I |
110110 | 6 | J |
110111 | 6 | K |
111000 | 6 | L |
111001 | 6 | M |
111010 | 6 | N |
111011 | 6 | 0 |
111100 | 6 | P |
1111010 | 7 | 0 |
1111011 | 7 | R |
1111100 | 7 | S |
1111101 | 7 | T |
1111110 | .7 | U |
1111111 | V |
Kodes der in Tabelle V dargestellten Form sind für eine Bildcodierung
verwendet worden, die es in dem Artikel von A. J. Frank,
"High Fidelity Encoding of Two-Level, High Resolution Images", Proc. IEEE International Conference on Communications, Session 2.6,
Seiten 5-10« Juni 19735 und- von anderen beschrieben ist, die beispielsweise
im bereits angeführten Artikel von Connell angegeben sind. Zu Vereinfachungszwecken wird die unten folgende Diskussion
auf das Verfahren zum möglichst Kleinmachen eines Übersetzungstabellenspeichers
für monotone Kodes beschränkt. Es sei jedoch bemerkt, daß die Methode auf jeglichen minimal-redundanten Kode anwendbar
ist, obwohl für irgendeinen gegebenen Index T ein monotone·
50S8AO /08 4 2
Kode generell den kleinsten minimalen Tabellenspeicher ergibt.
Die oben in Verbindung mit der Anordnung nach Fig. 2 beschriebene
Methode macht die Dekodierzeit dadurch möglichst klein, daß lediglich ein einziger Speicherzugriff für jedes Kodewort erforderlich
ist. Ein Segment oder Ausschnitt von M Bits wird jedesmal, wenn
Zugriff zum Bitstrom besteht^ herausgegriffen. Die Wirkung des
Herausgreifens eines Segmentes von K Bits, wobei K kleiner als M ist, soll nun diskutiert werden. Zur Erläuterung sei K = 4 betrachtet.
Zunächst wird eine "Primär"-überseozungstabelle aus den
Kodewörtern der Tabelle V in einer Weise aufgebaut, die der oben beschriebenen gleich ist, wobei jedoch hier die abgeleiteten Kodewörter
alle exakt 1I Bits lang sind. Dies bedeutet generell, daß
einige der Kodewörter der Tabelle I durch Hinzufügen von Nullen auf der rechten Seite ve^ängert und einige vorkürzt werden, wie
aus der Tabelle VI zu ersehen ist.
509840/0842
TABELLE | VI |
idewörter für | einen monotonen |
Binär | Dezimal |
0000 | 0 |
1000 | 8 |
1010 | 10 |
1011 | 11 |
1011 | 11 |
1100 | 12 |
1100 | 12 |
1101 | 13 |
1101 | 1? |
1101 | 13 |
1101 | 13 |
1110 | 14 |
1110 | 14 |
1110 | 14 |
1110 | 14 |
1111 | 15 |
1111 | 15 |
1111 | 15 |
1111 | 15 |
1111 | 15 |
1111 | 15 |
1111 | 15 |
Kodewörter in Tabelle V mit einer Länge, die größer als K ist,
führen, zu identischen abgeleiteten Kodewörtern. Dies tritt immer auf, wenn die ersten K Bits einer Gruppe von Kodewörtern gleich
sind. Beispielsweise sind diejenigen Kodewörter, welche D und E entsprechen, gleich, da die ersten 4 Bits der ursprünglichen
Kodewörter in Tabelle V gleich sir.d. Jegliche solche Mehrdeutigkeit wird dadurch gelöst, daß zusätzliche Bits aus dem Bitstrom
herausgenommen und dazu verwendet v/erden, einen Zugriff teilweise auf meistens eine zusätzliche "Sekundär"-Übersetzungstabelle zu
richten. Der Primärtabelleneintrag für jeden der Kodes, dessen erste K = 4 Bits dieselben wie die eines anderes Kodes sind, enthält
die Zahl der zusätzlichen Bits, die aus dem Bitstrom heraus-
509840/0842
-. 23 -
zugreifen sind, und eine Adresse der erforderlichen Sekundärtabelle,
Vor dem Herausgreifen der zusätzlichen Bits wird der Bitstrorntnarkierer um K Positionen vorgerückt. Die Zahl der
herauszugreifenden zusätzlichen Bits ist gleich A, wobei 2 die
Größe der adressierten Sekundärtabelle ist. Die herausgegriffenen zusätzlichen Bits, die als Zahl betrachtet werden, bilden, wenn
sie um 1 erhöht sind, einen Index, der auf die indizierte Sekundärtabelle hinweist. Das identifizierte Wort in der indizierten
Sekundärtabelle enthält die Kodewortlänge ninus K und den dekodierten
Wert. Wie im vorherigen Fall, wird der entsprechende dekodierte Wert zur Verbrauchervorrichtung reliefert, der Bitstrommarkierer
wird vorgerückt (hier um einen Betrag, der gleich der Kodewortlänge minus K ist), und der Vorgang wird für das
nächste Segment wiederholt. Tabelle VII zeigt die Primär- und Sekundär-Übersetzunfstabellen, die für den in Tabelle V für K =
4 angegebenen monotonen Kode erforderlich sind. Es sei darauf hingewiesen, daß eine Sekundärtabelle Kodewerter unterschiedlicher
Länge umfassen kann, wie es durch die Sekundärtabelle 2.5 gezeigt
ist.
509840/0842
Übers ο tztmg stäbe 11 en.
vr den Kode in Tr^bej-le V
Prinär-Tabe11e
Adresse oder Ad r e s s enb er el oh
- 8 9-10
11 12
1.3 14
15 16 Inhalt
1, A 3, B *, G
I3 Tabelle 2.1
I3 Tabelle 2.2
2, Tabelle 2.3
2, Tabelle ~2,«
3, Tabelle 2.5
Sekundär-Tabelle Sekundär-Tabel1e
Adresse | Inhalt | D | H | Adresse | Inhalt | F | L |
1 | 1, | E | I | 1 | 1, | G | n/j |
2 | 2.^5 | J | 2 | 2.4 | |||
Sekundär-T | abelle | TnhÄT | K | SekundVr-Tabelle | Inhalt | O | |
Adresse | 2, | Adresse | 2, | ||||
1 | 2, | 1 | 2, | ||||
2 | 2, | 2 | 2, | ||||
3 | 2, | 3 | 2, | ||||
4 | 4 |
Sekundär-TabelIe
Adresse
1 2
7 8
Inhalt
2, | P |
2, | P |
•χ | J, |
3, | S |
T | |
U |
5* V
5 018 AO /OiU
Um Zahl und Kapazität der Sekundär-Tabelle zu bestimmen, geht man einfacherwe1.se folgendermaßen vor. Beginnend mit der niedrigsten
Kapazität von zwei Eingängen oder Eingaben, ergibt sich
die Anzahl solcher erforderlicher Tabellen als diejenige ganze Zahl, die sich ergibt, wenn 1^+-, durch zwei geteilt wird, oder
in symbolischer Formeldarstellung, ΙΝΤ(ΐχ+,/2). Dabei bedeutet
INT die Abkürzung von Integer, d.h. ganze Zahl. Läßt sich Iv ,
nicht ohne Rest durch 2 dividieren, wird das restliche Kodewort Tx-MOD 2 eingruppiert In irgendeine Tabelle größerer Kapazität.
Geht man zur nächsten Tabellenkapazität 2 über, so ist die Anzahl
solcher Tarellen gleich der ganzen Zahl, die sich ergibt, wenn man die Summe aus Iir+p im^ ^em s--c!l nach der Bildung der
Tabellen niedrigerer Kapazität ergebenden Resft*£urch 2 dividiert,
nämlich TNT(Ix+2+(Tx+1)MOD 2)/22). Die Anzahl der übrigbleibenden
Kodewörter ist nun auf den Wert (Ικ+2+^ΙΚ+1^Γ''0Ε) 2)M0D 2?'
aufgelaufen. Generell ist die Anzahl der Tabellen mit einer Kapazität von 2 Eingaben oder Eintragungen:
+(lK+2+(lK+1)M0D 2)MOD 22)...)M0D 2J"1)/2J)
Das Verfahren zur Bestimmung der Anzahl Tabellen nächstgrößerer
Kapazität und der angefallenen übrigbleibenden Kodewörter wird
M-K fortgesetzt, bis die Tabellen mit der größten Kapazität 2 erreicht ist. Für die Tabellen größter Kapazität wird obiger
Ausdruck modifiziert, um eine zusätzliche Tabelle einzurichten,
50S840/0842
- 2β -
wenn irgendwelche Kodewörter übrigbleiben. Um dies auszuführen,
M-K vjird zum Zähler des obigen Ausdrucks 2" - 1 addiert. Um zu
bestimmen, welches K die minimale gesamte ^bersetzungstabellen-Speicherkapazität
ergibt, wird die Gesantspeicherkapazität als Funktion von K bestimmt und dann das Minimuni dieser Punktion
gebildet. Die gesamte Übersetzungstabellen-Speicberkapazität
ist die Summe aus den Produkten einer jeden Tabellenkapazität und der Anzahl" Tabellen mit dieser Kapazität. Für das angeführte
Beispiel, für welches K = 4 ist, erfordert die Primärtabelle 2"v
oder 16 Eintragungen und von den Sekundär-Tabelleri benötigen
zwei Tabellen je zwei Eintragungen, zwei Tabellen je 2 Eintragungen,
und eine Tabelle erfordert 2^ Eintragungen, was eine
Gesamtzahl von ;3β Eintragungen ergibt. Für K = 7 ist allein für
1 die Primär-Tabelle eine Anzahl von 21 oder 128 Eintragungen oder
Eingaben erforderlich. Allgemein ist die Gesamtspeicherkapazität N gleich
K
K
(2J)IHT(
+(IK+2+(lK+1)M0D 2)MOD
2M"K)INT
(lK+2+(lK+1)M0D 2)MOD
50S840/0842
was reduziert v/erden kann auf;
κ = 2K + 3M-K - α
i - J-
2?)...)M0D
Für irgendeinen gegebenen Index I kann nun die minimale Speicherkapazität
durch Berechnung von N für alle T\rerte von K bestimmt
werden. Man kann aber auch eine gute Schätzung für das riinirnum dadurch erhalten, daS man berücksichtigt, dB3 für ein genügend
großes M der Wert N im wesentlichen durch die Summe der ersten beiden Terme in obiger Formel bestimmt wird. Die ersten beiden
Terme 2 + ?} sind minimal für K = Γί/2.
Die erforderliche Speicherkapazität kann noch weiter reduziert
werden dadurch, daß das maximale Kodeviort in mehr als zwei Teile
aufgeteilt wird und Tertiär-Tabellen und Tabellen höherer Ordnung eingerichtet werden. Dies würde jedoch auch die durchschnittliche
Anzahl von Tabellenzuzriffen pro Kodewort erhohen. Für eine
schnelle Verarbeitung zeigt sich eine Begrenzung der maximalen Zahl von Zugriffen auf zwei als geeignet.
schnelle Verarbeitung zeigt sich eine Begrenzung der maximalen Zahl von Zugriffen auf zwei als geeignet.
BAD ORiGHMAL
509840/0 8 42
509840/0 8 42
Tabelle VIII faßt die Ergebnisse für den monotonen Kode mit
I ='1011496 zusammen. Für jeden der sieben möglichen Werte
Y M-K von K zeigt Tabelle VIII die Summe von 2 l + 2 , die für die
Übersetzungstabellen erforderliche Speicherkapazität, die Anzahl derjenigen Kodewörter, welche einen Tabellenzugriff erforderlich
machen, und die Anzahl derer, welche zwei Tabellenzugriffe erforderlich machen.
TABELLR VIII
Übersetzung | 2K+2M-K | tabellensOeicherkanazität | und Anzahl der Tabellen- |
Zugriffe für den Kode in | Tabelle IV | ||
K | 65 | Übersetzungstabellen- sOeicherkaOazität |
Zahl der Kodewörte: |
35 | I 2 | ||
1 | 23 | 66 = 2 + (1)(26) | 1 21 |
2 | 36 = 22 + (1)(25) | 1 21 | |
3 | 36 = 23 + (1)(22) | ||
23 36 = 24 + (2)(2 )
3 19
5 35 48 = 25 + (4)(2 )+(2)(22) 7 35
6 65 70 =2β + Γ3)(2) 16 6
7 128 128 = 27 22 0
Es ist sovjohl die Tabellenspeicherkapasität insgesamt gezeirt,
als atich die für jede einzelne Tabelle erforderliche KaOazitvt.
So weist für K=I der Gesamtspeicher ·-'-"'? mabelleneintr"ge a^.f,
wobei er eine Primär-Tabelle mit einer I's^azitat 2 und eine
Sekundär-Tabelle mit einer Kapazität 2 ' -::nfaQt.
5098A0/0842 bad orsgsnal
Man kann sehen, daß sogar für M = 7» was relativ klein ist,
K M-K
die Summe 2 ' + 2 " einen großen Teil der Gesantspeicher!:apazität ausmacht. Pur dieses Beispiel liegt das geschätzte Minimum bei K = M/2 - 3, ^. Pas exakte Minimum liegt in V/irklichkeit bei drei V/erten von K, nämlich bei 2, 3 und 4. In diesem Fall würde für die Ausführung das größte K gewählt, da es zur größten Anzahl von Kodewörtern führt, v.'elche lediglich einen Zugriff zu den Übersetzungstabellen erfordern.
die Summe 2 ' + 2 " einen großen Teil der Gesantspeicher!:apazität ausmacht. Pur dieses Beispiel liegt das geschätzte Minimum bei K = M/2 - 3, ^. Pas exakte Minimum liegt in V/irklichkeit bei drei V/erten von K, nämlich bei 2, 3 und 4. In diesem Fall würde für die Ausführung das größte K gewählt, da es zur größten Anzahl von Kodewörtern führt, v.'elche lediglich einen Zugriff zu den Übersetzungstabellen erfordern.
In dem in Tabelle VTI dargestellten Beispiel bewirkt die Verwendung
von sekundären Übersetzungstabellen eine "Kompression" von 36/128 = 0,28. Beträchtlich bessere Kompressionen werden
erhalten, wenn M großer ist. Ein geeignetes praktisches Beispiel ist in Tabelle TX dargestellt, welches den "\ode mit dem Index I =
002847110^1 bildet; einen minimal-redundanten Kode für die Buchstaben
des englischen Alphabetes und ein Zwi sch enraurnsymbol. V/endet man obige Formel an, erhält man ein geschätztes und wirkliches
Minimum bei K = 5· Die minimale Speicherkapazität für die
Übersetzungstabellen für den Kode der Tabelle IX ist JO. Eine
solche Übersetzungstabelle umfaßt eine Primär-Tabelle mit 32
Eintragungen, drei Sekundär-Tabellen mit je zwei Eintragungen und eine .^elcundär-Tabelle mit 32 Eintragungen. Der Kompressionskoei'fizient
1st in diesem Fall 70/1024 = 0,07.
BAD ORIGWAL
509840/0842
TABELLE IX Huffman-Kodes für die Buchstaben des englischen Alphabets und
einen Zw | ischenraum |
Dekodierter | |
Wert | Kodewort |
Zwischenraum | 000 |
E | 001 |
A | 0100 |
H | 0101 |
I | 0110 |
N | Olli |
0 | 1000 |
R | looi |
S | 1010 ■ |
T | 1011 |
C | 11000 |
D | 11001 |
L | 11010 |
U | 11011 |
B | H]OOO |
P | 111001 |
G | 111010 |
'M | 111011 |
D-. | HIT OO |
W | 111101 |
γ | 111110 |
V | 1111110 |
K | 11111110 |
J | 1111111100 |
0. | 1111111101 |
X | 1111111110 |
Z | 1111111111 |
Fife. 3 zeigt eine typische Anordnung zur Durchführung der oben
beschriebenen Schritte für einen Zugriff zu den Prinär- und den Sekundr'r-Übersetzungstabellen. Eingangsbits werden mit den höchstwertigen
Bit zuerst in ein Schieberegister 210 eingegeben, und zwar entweder in Serien- oder in Parallelforn. Wieder gelten die
Pufferbetrachtungen, die bereits in Verbindung mit der Schaltung der Pig. 2 erwähnt worden sind.
Wenn die Bits vollständig eingegeben sind (das höchstwertige Bit
509840/0842
-Sides ersten Kodeworts ganz rechts im Register 210 der Fig. 3 angekommen
ist), werden die ersten K Bits in Parallel form zu einem K-Eitregister
211 übertragen. Wie bei der Schaltung der Fig. 2 wird diese übertragene Folge in einem Addierer 212 um 1 erhöht und von
einer Adressierungsschaltung 21.3 als Adresse verwendet, um die in
Speicher 214 gespeicherte Primär-Übersetzungstabelle zu adressieren.
Zur Vereinfachung wird angenommen, da.? es sich bei den Eingangskodewörtern
um die in mabelle V dargestellten handelt, mit
der Folge, da·? man die Primär-Übersetzungstabelle in Tabelle VTI
erhalt.
V.'enn eine K-Bitfolge der Form 0000 um 1 erhöht wird, was zu einer
Adresse von 0001 = 1 führt, besteht Zugriff z\ir Speicherstelle 1.
Der ausgelesene Inhalt (l,.O der Stelle 1 wird auf ein Register
215 geliefert, das einen linken Abschnitt 2Λ6 und einen rechten
Abschnitt 217 aufweist. Die 1 von der Stelle 1, welche die Länge des laufenden Modewortes anzeigt, wird in den Registerteil 216
und das A in den Registerteil 217 eingegeben. Der Inhalt des Registers 217'wird dann mittels eines UND-Gatters 241 und eines ODER-Gatters
242 auf eine Ader 243 geliefert, und von dort auf die
Verbrauchervorrichtung 104. VJenn das spezielle EOrT-Zeichen an der
Ausgan^sader 243 erscheint, bewirk: ein EOM-retektor 221, daß ein
Flipflop 222 gesetzt wird. Da die Dekodierung des laufenden J'odewortes
durchgeführt ist, wird der Inhalt des Registers 216 dazu verwendet, die Daten im Register 210 um ein Bit vorzurücken, und
zwar durch eine Betätigung von BR"! 218 über ein UND-Gatter 233
und ein ODER-Oatter 2^-''. BR." I 21 ο snricht auc': auf-einen StoR von
509840/08 42 BAD ORlGlMAL
K Takt impulsen von einer Taktschaltung 219 an* au.^er wenn durch
das EC.'-'-^lipflop 222 ein Sperrsignal auf die Leitung 2;l0 gegeben
wird.
Obige Reihenfolge, welche die Übertragung eines K~rit-Byts, die
Erhöhung um 1, den Zugriff zum Speicher 214 unter der resultierenden
Adresse, das Auslesen der dekodierten V.'erte und der Kodelänge umfaßt, läuft immer dann ohne eine"1 zusätzlichen Schritt ab,
wenn eine der -teilen 1 bis 11.des Speichers .214■(des Prin"r-ÜbersetzimgstabellensOeichers1)
adressiert ist. Venn jedoch Zugriff
Stellen
zu einer der/12 bis 16 des Speichers 2\H bestellt, ist ein weiterer Speicherzugriff zu einer der in Speicher 2^0 p:esneio/-:erten ?e'nmdär-Tabellen erforderlich. Das !"uster zur Identifizierung ner Sekundär-Tabelle, das in der Prinär-Tabelle .gespeichert ist, umfaßt typischerweise ein zusätzliches Nie'-t—Adressenbi t, welches, wenn es auf einer Leitung 239 festgestellt v.'ird, dJe 5>haltun~ BRM 218 veranlaßt, den Inhalt des Register.- 23 0 um X Bits nach rechts zu verschieben.
zu einer der/12 bis 16 des Speichers 2\H bestellt, ist ein weiterer Speicherzugriff zu einer der in Speicher 2^0 p:esneio/-:erten ?e'nmdär-Tabellen erforderlich. Das !"uster zur Identifizierung ner Sekundär-Tabelle, das in der Prinär-Tabelle .gespeichert ist, umfaßt typischerweise ein zusätzliches Nie'-t—Adressenbi t, welches, wenn es auf einer Leitung 239 festgestellt v.'ird, dJe 5>haltun~ BRM 218 veranlaßt, den Inhalt des Register.- 23 0 um X Bits nach rechts zu verschieben.
Wie oben und in Tabelle VIT angegeben, spezifizieren Stellen in
der Prirnär-Tabelle, welche eine S9]<:und:'r-'npcellen-Identifizierungsinformation
(einschließlich der Stellen 12 bis 16 in °neicher
214) enthalten, die entsprechende He'-rv^dur-Tabelle und die
Zahl der aus dem Eingan^sbitstrom zu entnehmenden zusätzlichen
Bits. Die Zahl der zu entnehmenden zusätzlichen Bits ist A, wobei
2 die Xapazit^t oder ZabJ der Einsahen oder Eintragungen in der
adressierten Sekundär-Tabelle int. Bei snip.*: η we ^ r-e gibt für .:as
5 0 9 8 4 0 / 0 8 U 2 BAD
Kodewort von P in Tabelle V und für K - 4 die adressierte Stelle l6 in der Primär-Tabelle eine 3 als die Anzahl der zu entnehmenden
zusätzlichen Bits, da die zugeordnete Sekundär-Tabelle 2.5 eine
Kapazität von 2=8 hat. Um die richtige Stelle im identifizierten Sekundär-Speicrer festzustellen, interpretiert eine Sekundärspeicher-Zugriffsschaltunr
251 den Inhalt des Registers 217 und die oben erwähnten Λ Zusat?bits, die aus dem Eingangsbitstrom abgeleitet sind.
Diese zusätzlichen A Bits v/erden wiederum mittels des Registers 21?,
eines Dekodierers 2^0 und eines Addierers 261 abgeleitet. Der Dekodierer
?60 kann eine einfache Maskenschaltung sein, die auf den Inhalt des Registers 216 anspricht und irgendwelche unerwünschten
Bits eliminiert. Tn Fall eines Eingangskodes für P aus Tabelle V
und auf einen Zugriff zur Stelle lo, der auf den ersten K = 4 Bits
(1111 - 15 Dezimal) beruht, die um 1 erhöht sind, werden zusätzliche
3 Bits für das Herausnehmen aus dem Eingangsbitstrom festgelegt.
Die Zugriffssc-ialtung 251 identifiziert dann die entsprechende
Stelle im sakundären Tabellenspeicher 250. Der Inhalt dieser Stelle
wird in ein Ausgangsregister 270 gegeben, wobei die um K reduzierte
Kodewortlänge in den linken Teil 271 und das dekodierte Wort in den rechten Teil 272 gegeben wird. Noch einmal VdBt das ODER-Gatter 242
das dekodierte V.'ort zur Ausgangsleitung 243 und von dort zur Verbrauchervorrichtung
104 passieren.
Um ein unbeabsichtigtes Passieren einer im Register 217 gespeicherten
Sekundärtabellen-Teiladresse zur Ausgangsleitung 243 zu ver-
509840/08Λ2
hindern, wird ein UND-Gatter 241 immer dann durch ein Signal
auf einer Leitung 291 gesperrt, wenn ein Flipflop 285 gesetzt
ist. Das Flipflop 285 wiederum spricht auf die Feststellung des
Signals.auf der Leitung 239 an, welches anzeigt, daß ein Sekundärtabellenzugriff
erforderlich ist. Dasselbe Signal auf Leitung wird zur Vorbereitung eines UND-Gatters 292 verwendet, um zu ermöglichen,
daß der Inhalt des Registers 2?2 auf die Ausgangsleitung 243 geliefert wird.
Das Signal auf der Leitung 239 wird auch dazu verwendet, zu verhindern,
daß der Inhalt des Registers 216 auf BRM 218 gelangt. Dies wird durch den Sperreingang am UND-Gatter 283 bewirkt. Es
sei daran erinnert, daß auf das Herausgreifen der zusätzlichen Λ Bits, die zur Identifizierung einer Stelle in der entsprechenden
Sekundär-Tabelle erforderlich sind, eine vollständig neue K-Bitfolge
verarbeitet wird. So bereitet statt dessen das Signal auf der Leitung 239 selektiv den Längendekoder 260 vor, und zwar über
das UND-Gatter 282, um die erforderliche Λ-Bitfolge abzuleiten.
Während Zugriff zu den Sekundär-Tabellen besteht, ist ein weiterer
Zugriff zum Speicher 214 verhindert, und zwar durch das Ausgangssignal des Flipflop 285, wenn dieses über das ODER-Gatter 234 auf
den Sperreingang des UND-Gatters 28l gegeben wird.
Der längenanzeisende Inhalt des Registers 271.wird, wenn er auch
primär die Inipulszahl anzeigt, die von BRM 213 zum Schieberegister
210 zu liefern ist, auch, und zwar in abgeleiteter Form und nach-
5098A0/0842
dem mittels einer Verzögerungseinheit 280 eine geeignete Verzögerung
vorgenommen v/orden ist, zur Rücksetzung des Flipflop
285 verwendet. Ein einfaches "ODERN" der Ausrangsbits vom Register
271 ist für diesen Zweck ausreichend.
Wenn die obigen erfindungsgemäßen Ausfübrungsformen auch in Form
von auf einen speziellen Zweck zugeschnittenen Dlgitalscha1. tungsanordnungen
vorliegen, ist es natürlich klar, daß eine Dekodierung von Huffman-Kodes durch programmierte Digitalcontmter in
manchen Fällen wünschenswert ist. Tatsächlich legt die im wesentlichen sequentielle Bit-für-Bit-Dekodierung, v:ie sie bei bekannten
Anwendungen der Huffman-Kodierung verwendet worden ist, eine solche programmierte Comnuteranwendunr nahe. (s. beispielsweise
F. M. Ingels, Information and Coding Theory, Tntext Educational Publisher, Scranton, Pa., 1971, Seiten 127-1.72, wo sich eine Beschreibung
von Huffman-Kodes findet und ein FORTRAN-Programm zur
Dekocferung solches Kodes enthalten ist.)
Während bei οΜτβη Beisoielen und Beschreibungen besondere erlaubte
Kodei-Jörter angenommen v/erden, ist die vorliegende Erfindung
nicht auf die Anwendung auf solche besonderen Kodes begrenzt. Irgendein Hatz von minimal-redundanten Huffman-Kodewörtern kann
in Verbindung mit vorliegender Erfindung verwendet werden. In der Tat lassen sich viele Prinzipien ^leichgut auf andere !'!odes
variabler L?.nge anwenden, welche die Eigenschaft haben, daß kein
Kodewort der Berinn eines anderen Kodewortes ist.
509840/0842
Wie aus der obigen Diskussion der Fi?,. "? hervorgeht, bedeutet
die Aufteilung der Sneichereinrichtim^en in Primer- und Sek^rdV.r-Tabellenspeicher
weder das Erfordernis für einen einzjren Speicher noch für einen sweiästigen Speicher; jede Konfiguration reicht
aus, vjenn sie anderen Systemanforderungen genügt.
509840/0842 bad original
Claims (6)
- BLUMBACH · WESER · BERGEN KRAMER ZWIRNER - HIRSCHPATENTANWÄLTE IN MÜNCHEN UND WIESBADENPostadresse München: Palenlconsult 8 München 60 Radedcestraße 43 Telefon (089) 883603/883604 Telex 05-212313 Postadresse Wiesbaden: Patentconsult 62 Wiesbaden Sonnenberger Straße 43 Telefon (06121) 562943/561998 Telex 04-186237PatentansprücheVorrichtung zum Dekodieren einer Singangsfolge von Binärkodewörtern unterschiedlicher Länge, mit einem Eingangsregister zur Aiifnahme und Speicherung der Eingangskodexvörter und einer Speicheranordnung zur Speicherung dekodierter Symbole entsprechend jedem Eingangskodewort,
gekennzeichnet durchein an das Eingangsregister (110; 210) angekoppeltes erstes Register (illj 211) zur Auswahl eines in seiner Länge festgelegten Abtastmusters der mit dem ersten Digit eines gegenwärtigen Kodewortes beginnenden Eingangssignale; einen das erste Register (111; 211) und die Speicheranordnung verbindenden Adressengenerator (112, 113; 212, 213, 261, 251) zur Ableitung einer auf dem Abtastmuster der Eingangsdlgitsignale beruhenden Adressenstelle in der Speicheranordnung (114; 214, 250);und ein Ausgangsregister (115; 215, 270) zum Auslesen der Information aus der adressierten Stelle der Speicheranordnung (114; 214, 250).509840/0842 - 2. Vorrichtung zum Dekodieren nach Anspruch 1, dadurch gekennzeichnet, daß jede adressierte Stelle der Speicheranordnung (ll4; 214, 250) gleichzeitig die Länge des gegenwartigen Xodewortes und dessen entsprechendes dekodiertes Ausgangssymbol identifiziert.
- 3. Vorrichtung zum Dekodieren nach Anspruch 2, dadurch gekenn? zeichnet, daß das Ausgangsregister (115; 215, 27O) einen Kodelängenabschnitt (116; 216, 271) aufweist zur Speicherung der auf die Länge eines Eingangskodewortes bezogenen Information, und daß eine Schaltungsanordnung (HS; 282, 283, 286, 2l8) vorgesehen ist, die an den Kodelängenabschnitt angekoppelt ist zur Identifizierung des ersten Bits im folgenden Kodewort der Eingangsfolge.
- 4. Vorrichtung zum Dekodieren nach Anspruch 3> dadiirch gekennzeichnet, daß die Speicheranordnung eine zwischengeschaltete Modulanordnung aufweist zur Speicherung von Wörtern, Vielehe ein dekodiertes Ausgangssymbol und die Länge von dessen zugeordnetem Eingangskodewort identifizieren.
- 5. Vorrichtung zum Dekodieren nach Anspruch 4, dadurch gekennzeichnet, daß die Speicheranordnung einen Primär-Tabellenspeicher (214) und eine Mehrzahl Sekundär-Tabellenspeicher (250) aufweist, daß jede Sekundär-Tabelle Wörter auf v/eist, die ein Äusgangssymbol explizit identifizieren, und daß in509840/0842- !59 -der Primär-Tabelle Information speicherbar ist zur Identifizierung einer aus der Vielzahl Sekundär-Tabellen.
- 6. Vorrichtung zum Dekodieren nach Anspruch 5> dadurch gekennzeichnet, daß der Sekundär-Tabellenspeicher (250) Information zur Identifizierung von L.-K speichert, wobei L. die Länge des Modewortes bedeutet, welches den i-ten Ausgangssymbol zugeordnet ist;1 — 1 P "3I M ·M die maximale Länge eines Eingangskodewortes; und K die Länge des in seiner Länge festgelegten Abtastrmsters der im ersten Register gespeicherten Eingangsdigits.503840/08 U2
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US455668A US3883847A (en) | 1974-03-28 | 1974-03-28 | Uniform decoding of minimum-redundancy codes |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2513862A1 true DE2513862A1 (de) | 1975-10-02 |
DE2513862C2 DE2513862C2 (de) | 1986-01-16 |
Family
ID=23809767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2513862A Expired DE2513862C2 (de) | 1974-03-28 | 1975-03-27 | Vorrichtung zum Decodieren von Codes minimaler Redundanz und variabler Länge |
Country Status (7)
Country | Link |
---|---|
US (1) | US3883847A (de) |
JP (1) | JPS50131726A (de) |
BE (1) | BE827319A (de) |
CA (1) | CA1055611A (de) |
DE (1) | DE2513862C2 (de) |
FR (1) | FR2266382B1 (de) |
GB (1) | GB1508653A (de) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3137704A1 (de) * | 1980-09-22 | 1982-04-15 | Nippon Telegraph & Telephone Public Corp., Tokyo | Vorrichtung zum decodieren eines baumfoermigen codes variabler laenge |
DE3406624A1 (de) * | 1983-02-25 | 1984-09-27 | Canon K.K., Tokio/Tokyo | Datendecodiereinrichtung |
Families Citing this family (81)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6336180B1 (en) | 1997-04-30 | 2002-01-01 | Canon Kabushiki Kaisha | Method, apparatus and system for managing virtual memory with virtual-physical mapping |
US4075622A (en) * | 1975-01-31 | 1978-02-21 | The United States Of America As Represented By The Secretary Of The Navy | Variable-to-block-with-prefix source coding technique |
US4099257A (en) * | 1976-09-02 | 1978-07-04 | International Business Machines Corporation | Markov processor for context encoding from given characters and for character decoding from given contexts |
US4177456A (en) * | 1977-02-10 | 1979-12-04 | Hitachi, Ltd. | Decoder for variable-length codes |
JPS53145410A (en) * | 1977-05-24 | 1978-12-18 | Toshiba Corp | Variable code length transmission system |
JPS6110287Y2 (de) * | 1978-06-08 | 1986-04-02 | ||
JPS55953A (en) * | 1978-06-20 | 1980-01-07 | Nippon Telegr & Teleph Corp <Ntt> | Data decoding system |
GB2060226A (en) * | 1979-10-02 | 1981-04-29 | Ibm | Data compression-decompression |
US4506325A (en) * | 1980-03-24 | 1985-03-19 | Sperry Corporation | Reflexive utilization of descriptors to reconstitute computer instructions which are Huffman-like encoded |
FR2480481A1 (fr) * | 1980-04-09 | 1981-10-16 | Cii Honeywell Bull | Dispositif pour la memorisation d'etats logiques de processus |
US4475174A (en) * | 1981-09-08 | 1984-10-02 | Nippon Telegraph & Telephone Public Corporation | Decoding apparatus for codes represented by code tree |
US4463386A (en) * | 1982-05-03 | 1984-07-31 | International Business Machines Corporation | Facsimile data reduction |
JPS5937773A (ja) * | 1982-08-26 | 1984-03-01 | Canon Inc | ランレングス符号復号装置 |
US4694420A (en) * | 1982-09-13 | 1987-09-15 | Tektronix, Inc. | Inverse assembly method and apparatus |
JPS59148467A (ja) * | 1983-02-14 | 1984-08-25 | Canon Inc | デ−タ圧縮装置 |
US4837634A (en) * | 1984-06-05 | 1989-06-06 | Canon Kabushik Kaisha | Apparatus for decoding image codes obtained by compression process |
JPH0656958B2 (ja) * | 1986-07-03 | 1994-07-27 | キヤノン株式会社 | 情報デ−タ復元装置 |
FR2601833B1 (fr) * | 1986-07-17 | 1992-12-31 | Brion Alain | Procede de decodage d'un signal binaire code par un code de plages a longueur variable |
US4745604A (en) * | 1986-10-20 | 1988-05-17 | International Business Machines Corporation | Method and apparatus for transferring data between a host processor and a data storage device |
US4764805A (en) * | 1987-06-02 | 1988-08-16 | Eastman Kodak Company | Image transmission system with line averaging preview mode using two-pass block-edge interpolation |
US4772956A (en) * | 1987-06-02 | 1988-09-20 | Eastman Kodak Company | Dual block still video compander processor |
US4774587A (en) * | 1987-06-02 | 1988-09-27 | Eastman Kodak Company | Still video transceiver processor |
US5045853A (en) * | 1987-06-17 | 1991-09-03 | Intel Corporation | Method and apparatus for statistically encoding digital data |
US4852173A (en) * | 1987-10-29 | 1989-07-25 | International Business Machines Corporation | Design and construction of a binary-tree system for language modelling |
US4967196A (en) * | 1988-03-31 | 1990-10-30 | Intel Corporation | Apparatus for decoding variable-length encoded data |
JP2766302B2 (ja) * | 1989-04-06 | 1998-06-18 | 株式会社東芝 | 可変長符号並列解読方法および装置 |
JPH03145223A (ja) * | 1989-10-30 | 1991-06-20 | Toshiba Corp | 可変長符号復調装置 |
DE4018133A1 (de) * | 1990-06-06 | 1991-12-12 | Siemens Ag | Anordnung zur decodierung eines in parallelen datenwoertern der breite n vorliegenden datenstroms mit codewoertern unterschiedlicher breite |
US5023610A (en) * | 1990-06-13 | 1991-06-11 | Cordell Manufacturing, Inc. | Data compression method using textual substitution |
US5136290A (en) * | 1990-06-18 | 1992-08-04 | Bond James W | Message expansion decoder and decoding method for a communication channel |
US5034742A (en) * | 1990-06-19 | 1991-07-23 | The United States Of America As Represented By The Secretary Of The Navy | Message compression encoder and encoding method for a communication channel |
US5173695A (en) * | 1990-06-29 | 1992-12-22 | Bell Communications Research, Inc. | High-speed flexible variable-length-code decoder |
US5216423A (en) * | 1991-04-09 | 1993-06-01 | University Of Central Florida | Method and apparatus for multiple bit encoding and decoding of data through use of tree-based codes |
US5181031A (en) * | 1991-07-30 | 1993-01-19 | Lsi Logic Corporation | Method and apparatus for decoding huffman codes by detecting a special class |
US5254991A (en) * | 1991-07-30 | 1993-10-19 | Lsi Logic Corporation | Method and apparatus for decoding Huffman codes |
US5208593A (en) * | 1991-07-30 | 1993-05-04 | Lsi Logic Corporation | Method and structure for decoding Huffman codes using leading ones detection |
US5227789A (en) * | 1991-09-30 | 1993-07-13 | Eastman Kodak Company | Modified huffman encode/decode system with simplified decoding for imaging systems |
US5857088A (en) * | 1991-10-24 | 1999-01-05 | Intel Corporation | System for configuring memory space for storing single decoder table, reconfiguring same space for storing plurality of decoder tables, and selecting one configuration based on encoding scheme |
WO1993013603A1 (en) * | 1991-12-23 | 1993-07-08 | Intel Corporation | Circuitry for decoding huffman codes |
US5233348A (en) * | 1992-03-26 | 1993-08-03 | General Instrument Corporation | Variable length code word decoder for use in digital communication systems |
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 | 三菱電機株式会社 | 可変長復号器 |
US5537551A (en) * | 1992-11-18 | 1996-07-16 | Denenberg; Jeffrey N. | Data compression method for use in a computerized informational and transactional network |
JP2741836B2 (ja) * | 1993-02-22 | 1998-04-22 | 現代電子産業株式会社 | 適応型可変長符号器 |
US5615020A (en) * | 1993-05-13 | 1997-03-25 | Keith; Michael | System and method for fast huffman decoding |
US5509088A (en) * | 1993-12-06 | 1996-04-16 | Xerox Corporation | Method for converting CCITT compressed data using a balanced tree |
US5546080A (en) * | 1994-01-03 | 1996-08-13 | International Business Machines Corporation | Order-preserving, fast-decoding arithmetic coding arithmetic coding and compression method and apparatus |
US5572208A (en) * | 1994-07-29 | 1996-11-05 | Industrial Technology Research Institute | Apparatus and method for multi-layered decoding of variable length codes |
US5793896A (en) * | 1995-03-23 | 1998-08-11 | Intel Corporation | Ordering corrector for variable length codes |
US5748790A (en) * | 1995-04-05 | 1998-05-05 | Intel Corporation | Table-driven statistical decoder |
US5689255A (en) * | 1995-08-22 | 1997-11-18 | Hewlett-Packard Company | Method and apparatus for compressing and decompressing image data |
US5838963A (en) * | 1995-10-25 | 1998-11-17 | Microsoft Corporation | Apparatus and method for compressing a data file based on a dictionary file which matches segment lengths |
US5646618A (en) * | 1995-11-13 | 1997-07-08 | Intel Corporation | Decoding one or more variable-length encoded signals using a single table lookup |
US5848195A (en) * | 1995-12-06 | 1998-12-08 | Intel Corporation | Selection of huffman tables for signal encoding |
US5821887A (en) * | 1996-11-12 | 1998-10-13 | Intel Corporation | Method and apparatus for decoding variable length codes |
AUPO648397A0 (en) | 1997-04-30 | 1997-05-22 | Canon Information Systems Research Australia Pty Ltd | Improvements in multiprocessor architecture operation |
US6311258B1 (en) | 1997-04-03 | 2001-10-30 | Canon Kabushiki Kaisha | Data buffer apparatus and method for storing graphical data using data encoders and decoders |
US6707463B1 (en) | 1997-04-30 | 2004-03-16 | Canon Kabushiki Kaisha | Data normalization technique |
US6259456B1 (en) | 1997-04-30 | 2001-07-10 | Canon Kabushiki Kaisha | Data normalization techniques |
US6289138B1 (en) | 1997-04-30 | 2001-09-11 | Canon Kabushiki Kaisha | General image processor |
US6272257B1 (en) | 1997-04-30 | 2001-08-07 | Canon Kabushiki Kaisha | Decoder of variable length codes |
AUPO647997A0 (en) * | 1997-04-30 | 1997-05-22 | Canon Information Systems Research Australia Pty Ltd | Memory controller architecture |
US6771196B2 (en) * | 1999-12-14 | 2004-08-03 | Broadcom Corporation | Programmable variable-length decoder |
US7283905B1 (en) | 2001-12-11 | 2007-10-16 | Garmin Ltd. | System and method for estimating impedance time through a road network |
US6704645B1 (en) * | 2001-12-11 | 2004-03-09 | Garmin Ltd. | System and method for estimating impedance time through a road network |
US6574554B1 (en) * | 2001-12-11 | 2003-06-03 | Garmin Ltd. | System and method for calculating a navigation route based on non-contiguous cartographic map databases |
US6545637B1 (en) | 2001-12-20 | 2003-04-08 | Garmin, Ltd. | Systems and methods for a navigational device with improved route calculation capabilities |
US6581003B1 (en) * | 2001-12-20 | 2003-06-17 | Garmin Ltd. | Systems and methods for a navigational device with forced layer switching based on memory constraints |
US6650996B1 (en) | 2001-12-20 | 2003-11-18 | Garmin Ltd. | System and method for compressing data |
US6847890B1 (en) | 2001-12-21 | 2005-01-25 | Garmin Ltd. | Guidance with feature accounting for insignificant roads |
US6892135B1 (en) | 2001-12-21 | 2005-05-10 | Garmin Ltd. | Navigation system, method and device with automatic next turn page |
US7277794B1 (en) | 2001-12-21 | 2007-10-02 | Garmin Ltd. | Guidance with feature accounting for insignificant roads |
US6975940B1 (en) | 2001-12-21 | 2005-12-13 | Garmin Ltd. | Systems, functional data, and methods for generating a route |
US6999873B1 (en) | 2001-12-21 | 2006-02-14 | Garmin Ltd. | Navigation system, method and device with detour algorithm |
US7184886B1 (en) | 2001-12-21 | 2007-02-27 | Garmin Ltd. | Navigation system, method and device with detour algorithm |
US6482830B1 (en) | 2002-02-21 | 2002-11-19 | Supergen, Inc. | Compositions and formulations of 9-nitrocamptothecin polymorphs and methods of use therefor |
US20060212185A1 (en) * | 2003-02-27 | 2006-09-21 | Philp Joseph W | Method and apparatus for automatic selection of train activity locations |
US8473693B1 (en) * | 2003-07-29 | 2013-06-25 | Netapp, Inc. | Managing ownership of memory buffers (mbufs) |
US7249227B1 (en) * | 2003-12-29 | 2007-07-24 | Network Appliance, Inc. | System and method for zero copy block protocol write operations |
US7925320B2 (en) | 2006-03-06 | 2011-04-12 | Garmin Switzerland Gmbh | Electronic device mount |
US10171810B2 (en) | 2015-06-22 | 2019-01-01 | Cisco Technology, Inc. | Transform coefficient coding using level-mode and run-mode |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3701111A (en) * | 1971-02-08 | 1972-10-24 | Ibm | Method of and apparatus for decoding variable-length codes having length-indicating prefixes |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3331056A (en) * | 1964-07-15 | 1967-07-11 | Honeywell Inc | Variable width addressing arrangement |
US3496550A (en) * | 1967-02-27 | 1970-02-17 | Burroughs Corp | Digital processor with variable field length operands using a first and second memory stack |
US3810154A (en) * | 1972-10-10 | 1974-05-07 | Us Navy | Digital code translator apparatus |
-
1974
- 1974-03-28 US US455668A patent/US3883847A/en not_active Expired - Lifetime
-
1975
- 1975-03-20 CA CA222,652A patent/CA1055611A/en not_active Expired
- 1975-03-27 GB GB13115/75A patent/GB1508653A/en not_active Expired
- 1975-03-27 FR FR7509682A patent/FR2266382B1/fr not_active Expired
- 1975-03-27 DE DE2513862A patent/DE2513862C2/de not_active Expired
- 1975-03-28 JP JP50037057A patent/JPS50131726A/ja active Pending
- 1975-03-28 BE BE154885A patent/BE827319A/xx not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3701111A (en) * | 1971-02-08 | 1972-10-24 | Ibm | Method of and apparatus for decoding variable-length codes having length-indicating prefixes |
DE2205422C2 (de) * | 1971-02-08 | 1981-09-17 | International Business Machines Corp., 10504 Armonk, N.Y. | Verfahren und Einrichtung zur Dekompression verdichteter Daten |
Non-Patent Citations (3)
Title |
---|
Bell Syst.Techn.J.Bd.38, Juli 1959, S.933-967 * |
Proc.of the IEEE, Juli 1973, S.1046-1047 * |
Proc.of the IRE, Bd.40 (1952) S.1098-1101 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3137704A1 (de) * | 1980-09-22 | 1982-04-15 | Nippon Telegraph & Telephone Public Corp., Tokyo | Vorrichtung zum decodieren eines baumfoermigen codes variabler laenge |
DE3406624A1 (de) * | 1983-02-25 | 1984-09-27 | Canon K.K., Tokio/Tokyo | Datendecodiereinrichtung |
Also Published As
Publication number | Publication date |
---|---|
DE2513862C2 (de) | 1986-01-16 |
BE827319A (fr) | 1975-07-16 |
US3883847A (en) | 1975-05-13 |
GB1508653A (en) | 1978-04-26 |
FR2266382B1 (de) | 1978-02-03 |
JPS50131726A (de) | 1975-10-18 |
CA1055611A (en) | 1979-05-29 |
FR2266382A1 (de) | 1975-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2513862A1 (de) | Vorrichtung zum dekodieren | |
DE2227148C3 (de) | Schaltungsanordnung zur Umsetzung digitaler Daten | |
DE2264090C3 (de) | Datenverdichtung | |
DE2508706C2 (de) | Schaltungsanordnung zur Codierung von Datenbitfolgen | |
DE10301362B4 (de) | Blockdatenkompressionssystem, bestehend aus einer Kompressionseinrichtung und einer Dekompressionseinrichtung, und Verfahren zur schnellen Blockdatenkompression mit Multi-Byte-Suche | |
DE2640414C2 (de) | Schaltungsanordnung ung Verfahren für die Kompressionscodierung unter Verwendung einer Korrelation zwischen zweidimensionalen, aus zweiwertigen digitalen Bildern abgeleiteten Matrizen | |
DE2153517A1 (de) | Anordnung zur Codeumsetzung | |
EP2290612B1 (de) | Verfahren und Anordnung zur arithmetischen Enkodierung und Dekodierung von binären Zuständen sowie ein entsprechendes Computerprogramm und ein entsprechendes computerlesbares Speichermedium | |
DE2652459C2 (de) | Umsetzvorrichtung für Binärsignale variabler Länge | |
DE1296182B (de) | Verfahren zur UEbertragung binaerkodierter Informationssignale sowie Kodierer zur Abgabe solcher Signale und mit diesem betreibbarer Dekodierer | |
DE2821348A1 (de) | Digitales dialogsystem | |
DE68923012T2 (de) | Kodierungs- und Dekodierungsverfahren variabler Länge, Kodierungs- und Dekodierungsvorrichtung zur Ausführung dieses Verfahrens. | |
DE2736967C3 (de) | Fernwirkanordnung | |
DE2340230A1 (de) | Verfahren und vorrichtung zur vorhersage des signalpegelwertes eines nachrichtenelementes | |
DE2925663A1 (de) | Vorrichtung zur kompression binaerer signale fuer ein system zur kodierten uebertragung von faksimiles | |
DE2500055C2 (de) | Faksimile-uebertragungssystem | |
DE2826450C3 (de) | Verfahren zum Steuern der Übertragung digitaler Signale und Anordnung zur Durchführung des Verfahrens bei einer digitalen Faksimileübertragungseinrichtung | |
DE2340250A1 (de) | Verfahren zum codieren eines eine bestimmte redundanz aufweisenden nachrichtenstromes | |
DE2758952B1 (de) | Schaltungsanordnung zum Codieren oder Decodieren von Binaerinformationen | |
DE2651902C2 (de) | Verfahren und Anordnung zum Codieren von Zahlen | |
DE69219494T2 (de) | Dekodierungsvorrichtung für Kodes variabler Länge | |
DE1924484A1 (de) | Informations-UEbertragungssystem | |
DE3884604T2 (de) | System zur produktion von pixelbilddaten aus ccitt-kodierten pixeldaten. | |
DE3904831C2 (de) | Ein universelles homophones Codierverfahren | |
EP0525349B1 (de) | Einrichtung zur redunanzvermindernden Codierung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: AT & T TECHNOLOGIES, INC., NEW YORK, N.Y., US |
|
8328 | Change in the person/name/address of the agent |
Free format text: BLUMBACH, P., DIPL.-ING., 6200 WIESBADEN WESER, W., DIPL.-PHYS. DR.RER.NAT., 8000 MUENCHEN ZWIRNER,G., DIPL.-ING. DIPL.-WIRTSCH.-ING., PAT.-ANW., 6200 WIESBADEN |
|
8339 | Ceased/non-payment of the annual fee |