DE3137704A1 - Vorrichtung zum decodieren eines baumfoermigen codes variabler laenge - Google Patents

Vorrichtung zum decodieren eines baumfoermigen codes variabler laenge

Info

Publication number
DE3137704A1
DE3137704A1 DE19813137704 DE3137704A DE3137704A1 DE 3137704 A1 DE3137704 A1 DE 3137704A1 DE 19813137704 DE19813137704 DE 19813137704 DE 3137704 A DE3137704 A DE 3137704A DE 3137704 A1 DE3137704 A1 DE 3137704A1
Authority
DE
Germany
Prior art keywords
decoding
data
bits
information
memory
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
Application number
DE19813137704
Other languages
English (en)
Other versions
DE3137704C2 (de
Inventor
Hideaki Yokohama Kanayama
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph & Telephone Public Corp Tokyo
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph & Telephone Public Corp Tokyo, Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph & Telephone Public Corp Tokyo
Publication of DE3137704A1 publication Critical patent/DE3137704A1/de
Application granted granted Critical
Publication of DE3137704C2 publication Critical patent/DE3137704C2/de
Expired legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • H03M7/425Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory for the decoding process only
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4025Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code constant length to or from Morse code conversion

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Description

- W-I' j:..j.X 1 31 3770A
BLUMBACH · WESΕΈ2 V'ΒEF*GtN ·''kU'AMER ZWIRNER - HOFFMANN
PATENTANWÄLTE IN MÜNCHEN UND WIESBADEN
Patentconsult Radedcestraße 43 8000 München 60 Telefon (089) 883603/883604 Telex 05-212313 Telegramme Patentconsult Patentconsult Sonnenberger Straße 43 6200 Wiesbaden Telefon (06121) 562943/561998 Telex 04-186237 Telegramme Patentconsult
VORRICHTUNG ZUM DECODIEREN EINES BAUMFÖRMIGEN CODES VARIABLER LÄNGE.
Die Erfindung bezieht sich auf eine Vorrichtung zum Decodieren eines baumförmigen Codes variabler Länge gemäß dem Oberbegriff der nebengeordneten Patentansprüche 1 und 4.
Ein bekannter baumförmiger Code variabler Länge ist beispielsweise der modifizierte Huffman-Code. Man et— hält diesen Code durch Codierung der Länge des Schwarz- und Weißdurchlaufs eines abgetasteten Bildes nach dem Huffman-Codierschema, wie dies beispielsweise in dem Aufsatz von R. Hunter "International Digital Facsimile Coding Standards" in der Zeitschrift "Proceedings of the IEEE", Juli 1980, Band 68, Nr. 7, Seiten 854 bis 867, Kap. IV "One-Dimensional Coding Scheme" beschrieben ist. Ein herkömmliches Decodierverfahren für den modifizierten Huffman-Code besteht darin, einen oder zwei Zweige an jedem Knoten des Codebaums in Abhängigkeit davon zu selektieren, ob eine "1" oder "0" für einzelne Bits des Eingangscodes abgetastet wird, die an einem Endknoten letztlich ankommen und ein decodiertes Ergeb-
München: R. Kramer Dipl.-Ing. · W. Weser Dipl.-Phys.Dr. rer. nat. · E. Hoffmann Dipl.-Ing. Wiesbaden: P.G. Blumbach Dipl.-Ing. · P. Bergen Prof. Dr. fur. Dipl.-Ing., Pat.-Ass., Pat.-Anw. bis 1979 · G. ZwirherDipl.-Ing. Dipl.-W.-lng.
nis ausweisen. Zur Durchführung dieses Verfahrens ist es erforderlich, einen Decodiertabei1enspeieher für jedes Bit der Eingangsdaten abzufragen und für jedes Speicher—Ausgangssignal zu entscheiden, ob der Endknoten erreicht wird oder nicht. Diese Vorgehensweise vergrößert die Anzahl der Verarbeitungsschritte und erfordert einen zeitaufwendigen Speicherzugriff mit anschließender Entscheidungsverarbeitung, was zu einer verhältnismäßig langen Gesamtverarbeitungsdauer führt. Aufgrund dieser Nachteile kann das bekannte Decodierverfahren praktisch nur bei Verwendung eines Mikroprozessors oder einer verdrahteten Logikschaltung mit hoher Verarbeitungsgeschwindigkeit durchgeführt werden.
Ein weiteres, jedoch nicht für Faksimilecode vorgesehenes Verfahren zur Erhöhung der Decodiergeschwindigkeit für den Huffman-Code ist in der US-PS 3 883 847 mit der Bezeichnung "Uniform Decoding of Minimum-Redundancy-Codes" beschrieben. Bei dem darin beschriebenen Decodierver— fahren werden von einem Eingangscodezug Daten mit einer vorgegebenen Anzahl von Bits eingespeist, um einen ersten Decodiertabel1enspeicher abzufragen und auszulesen. Falls die Decodierung durch den Auslesevorgang nicht beendet wird, wird die Adresse eines als nächsten abzufragenden zweiten Decodiertabel1enspeichers unter Verwendung der ausgelesenen Daten bestimmt und anschließend der zweite Decodiertabel1enspeicher durch die Eingangsdaten einer als nächste eingespeisten Vielzahl von Bits abgefragt, um auf diese Weise ein decodiertes Ergebnis zu erhalten. Dieses Verfahren vergrößert zwar die Decodi ergeschwind igkei t, doch erfordert es zwei Decodiertabel 1 enspei eher, was in unerwünschter Weise zu einer großen Gesamtspeicherkapazität führt.
.::..::. '-ν ::-*:.j .l 313770a
Die Aufgabe der Erfindung besteht demgegenüber darin, eine Decodiervorrichtung der eingangs erwähnten Art zu schaffen, welche die Decodierung eines baumförmigen Codes variabler Länge ohne eine Bit-füi—Bit-Decodierung bei geringer Speicherkapazität des verwendeten Decodiertabel1enspeichers mit hoher Geschwindigkeit et— mögli cht.
Die Aufgabe wird erfindungsgemäß durch die kennzeichnenden Merkmale der nebengeordneten Patentansprüche 1 und h alternativ gelöst.
Vorteilhafte Ausgestaltungen und Weiterbildungen der erfindungsgemäßen Decodiervorrichtung ergeben sich aus den Unteransprüchen.
Der bei der erfindungsgemäßen Decodiervorrichtung benutzte Decodiertabel1enspeieher besitzt einen Speicher— bereich zum Speichern von Enddaten und einen Speichel— bereich zum Speichern von Zwischendaten. Die Enddaten enthalten zumindest eine Information über den Abschluß der Decodierung sowie eine Information über das Ergebnis der Decodierung, während die Zwischendaten zumindest eine Information über den noch nicht erfolgten Abschluß der Decodierung, eine Information über die Anzahl der als nächstes von einem Eingangscodezug einzuspeisenden Bits und eine Information enthal ten, auf welcher der Zugriff zu dem anschließend abzufragenden Decodiertabel1enspeicher beruht. Der Decodiertabel1enspeieher wird abgefragt und ausgelesen, wobei mit Hilfe einer Entscheidungseinrichtung die aus dem Decodiertabel1enspeicher ausgelesenen Daten in Enddaten oder in Zwischendaten eingestuft werden. Im Falle von Enddaten wird die Information über
das Ergebnis der Decodierung aus der Decodiervorrichtung nach außen weitergeleitet. Im Falle von Zwischendaten werden die nachfolgenden Daten von dem Eingangscodezug in Form einer Anzahl von Bits herausgeholt, wobei die Bitzahl durch die in den Zwischendaten enthaltene Information über die Anzahl der als nächste einzuspeisenden Bits bestimmt wird. Die eingespeisten Daten und die in den Zwischendaten enthaltene Information zur Bestimmung der Adresse des als nächsten abzufragenden Decodiertabel1enspeichers werden verarbeitet, um die nächste abzufragende Adresse zu erhalten und anschließend die Adresse des Decodiertabel1enspeichers abzufragen. Diese Vorgänge werden solange wiederholt, bis die Enddaten aus dem Decodiertabel1enspeieher ausgelesen sind.
Die aufgrund der ausgelesenen Daten vorgenommene Bestimmung der Anzahl der als nächste einzuspeisenden Bits des Eingangscodezuges sowie die Bestimmung der Adresse des als nächsten abzufragenden Decodiertabel1enspeichers durch Verarbeitung der mittels der vorbestimmten Anzahl von Bits und der ausgelesenen Information eingespeisten Daten ermöglichen es, einen Code aus einer Vielzahl von Bits gleichzeitig zu decodieren, ohne daß einer oder zwei Zweige an jedem Knoten des Codebaums selektiert und die Anzahl der Abfragezyklen des Decodiertabel1enspeichers verringert zu werden braucht, was eine Decodierung mit hoher Geschwindigkeit ermöglicht. Desweiteren wird ein und derselbe Decodiertabel1enspeieher wiederholt abgefragt, so daß dieser wirkungsvoll verwendet und sein Umfang klein gehalten werden kann. Wenn darüberhinaus die Decodierung eines Codes beendet ist, zeigt ein erstes Bit des Eingangscodezuges das vordere Bit des nächsten Codes an.
- 10 -
Die Enddaten in dem Decodiertabel1enspeicher enthalten eine Information über den Abschluß der Decodierung, eine Information über das Ergebnis der Decodierung und eine Information über die Anzahl der als nächste einzuspeisenden Bits, während die Zwischendaten eine Information über den noch nicht erfolgten Abschluß der Decodierung und eine Information enthalten, auf welcher die Adresse des als nächsten abzufragenden Decodiertabel1enspeichers beruht. Nach erfolgter Auslesung des Decodiertabel1enspeichers werden die ausgelesenen Daten von einer Entscheidungseinrichtung in Enddaten oder in Zwischendaten eingestuft. Im Falle von Enddaten wird die Information über das Ergebnis der Decodierung als Ausgangssignal der Decodiervorrichtung ausgegeben, während die nachfolgenden Daten aus dem Eingangscodezug in Form einer Anzahl von Bits aufgegriffen werden, die durch die in den ausgelesenen Daten enthaltene Information über die Anzahl der als nächstes einzuspeisenden Bits bestimmt wird. Im Falle von Zwischendaten wet— den die nachfolgenden Daten aus dem Eingangscodezug in Form einer festgelegten Anzahl m von Bits Cm ist eine ganze Zahl gleich zwei oder mehr) aufgegriffen, wobei die eingespeisten Daten und die in den ausgelesenen Daten enthaltene Information zur Bestimmung der Adresse des als nächsten abzufragenden Decodiertabellenspeichers verarbeitet werden und das Ergebnis dieses Vererbeitungsvorganges zum Abfragen des Decodiertabel1enspeichers vei— wendet wird. Diese Verarbeitungsvorgänge werden wiederholt, um die Code des Eingangscodezuges nacheinander zu decodieren. Die Anzahl der bei den Enddaten als nächstes einzuspeisenden Bits ist durch die Beziehung L - Cn-O · m gegeben, wobei L die Länge eines decodierten Codes und in die Anzahl der Abfragezyklen des Decodiertabel1enspeichers ist.
- 1 1 -
Die Erfindung wird nachstehend anhand der Zeichnungen näher erläutert. Es zeigt:
Fig. 1 einen Ausschnitt einer Decodiertabel1e des modifizierten Huffman-Codes, wie sie bei einem herkömmlichen Bit-für-Bit-Decodiet— verfahren unter Verwendung eines Codebaums benutzt wi rd;
Fig. 2 ein Schema für die Verfahrensschritte bei der Decodierung des Eingangscodewortes "11011" für eine Weißdurchlauf 1änge von 64 unter Verwendung der Decodiertabel1e nach F i g . 1;
F?g. 3 ein Blockschaltbild der in der US-PS 3 883 beschriebenen Decodiervorrichtung;
Fig. 4 ein Ausführungsbeispiel einer Decodiertabelle für Weißcode, wie sie bei der erfindungsgemäßen Decodiervorrichtung verwendet wi rd;
Fig. 5A ein Ausführungsbeispiel für das Datenformat von Enddaten;
Fig. 5B ein Ausführungsbeispiel für das Datenformat von Zwischendaten;
Fig. 6 ein Schema für die Verfahrensschritte zum Decodieren eines Eingangscodewortes "11011" für eine Weißdurchlauf1änge von 64 bei Verwendung der Decodiertabel1e nach Fig. 4;
- 12 -
■ * *■ tr ·
Fig. 7 ein Blockschaltbild einer Ausführungsform der erf i ndungsgemäßen.Decod i ervorr i chtung, welche von der Decodiertabel1e nach Fig. k Gebrauch macht;
Fig. 8 einen Teil einer Decodiertabel1e für Weißcode zur Verwendung bei einer weiteren Ausführungsform der erfindungsgemäßen Decodiervorrichtung;
Fig. 9 ein Schema für die Verfahrensschritte bei der Decodierung eines Eingangsdatenwortes "11011" für eine Weißlauf 1änge von 64 bei Verwendung der Decodiertabel 1 e nach Fig. 8;
Fig. 10 ein Blockschaltbild für eine weitere Ausführungsform einer erfindungsgemäßen Decodiervorrichtung, welche von der Decodiertabelle nach Fig. 8 Gebrauch macht;
Fig. 11 ein Blockschaltbild einer weiteren Ausführungsform der erfindungsgemäßen Decodiervorrichtung, welche von der Decodiertabel1e nach Fig. 4 Gebrauch macht und für die Verwendung einer Mikroprozessors ausgebildet ist;
Fig. 12 ein Flußdiagramm für den Betriebsablauf der Decodiervorrichtung nach Fig. 11;
Fig. 13 eine Decodiertabel1e entsprechend Fig. 4, jedoch für einen Schwarzcode;
Fig. 14 eine graphische Darstellung für die bei verschiedenen Decodiersystemen et— forderlichen Kapazitäten zur Decodiertabel1enspeicherung;
- 13 -
»η ε* no .«β * <* t ei « ακ- *
31
Fig. 15 eine graphische Darstellung für die bei verschiedenen Decodiersystemen erforderliche Anzahl von Abfragezyklen für den oder die Decodiertabel1enspeieher, und
Fig. 16 eine Tabelle für die Beziehungen zwischen den Kapazitäten des oder der Decodiertabel1enspeieher und der Anzahl der bei jeder Decodiervot— richtung erforderlichen Abfragezyklen, und zwar bezogen auf den Fall, daß die Speicherkapazität des Decodiertabel1enspeichers und die bei der ersten Ausführungsform der erfindungsgemäßen Decodiervorrichtung benötigte Anzahl von Abfragezyklen jeweils gleich 1 ist.
Zum besseren Verständnis der Erfindung soll zunächst die herkömmliche Bit-für-Bit-Decodierung erläutert werden. Fig. 1 zeigt einen Teil eines Weißcodebaums des modifizierten Huffman-Code, welcher auf der herkömmlichen Bit-fürBit-Decodierung beruht, wobei der Codebaum eine Decodiertabel1e darstellt. Bei dem dargestellten Codebaum teilt sich eine Wurzel 1 in zwei Zweige k, von denen jeder an einem Knoten 2 endet. Der Knoten 2 wird in zwei Zweige 4 untertei11,von denen jeder an einem Knoten 2 weiter unterteilt ist. Auf diese Weise werden die Endknoten 3 erreicht. Oberhalb jedes Zweiges 4 sind an jedem Knoten 2 vor dessen Verzweigung eine Adresse <XX> der Decodiertabel1e sowie ein Datenwort CXX) oder eine Durchlauflänge /XX/ aufgetragen. Die dabei verwendeten Symbole "X" können einen der Zahlenwerte 0,1,2,3, ... 9 oder einen der Buchstaben A,B,C,D,E und F annehmen, da mit "XX" zwei Ziffern einer Hexadezimalzahl bezeichnet sind. Im Falle der Durch!auf 1änge bedeutet jedoch X eine Dezimalzahl. Ein Kleinbuchstabe "c" weist auf eine weitere
- 1-if -
Verlängerung des Codebaums hin.
Fig. 2 zeigt ein Beispiel für die Decodierung eines einer Wei ßdurchl auf si änge von 64 , . entsprechenden codierten Binärwortes "11011", das als Eingangscodezug CDatenzug) in die Decodiertabel1e nach Fig. 1 eingespeist wird. Der Decodiervorgang beginnt mit der Erzeugung eines Datenwortes COO) als Anfangsdatenwort. Das erste Bit "1" des Eingangsdatenwortes wird eingespeist, das dem Anfangsdatenwort COO) zur Erzielung einer Sprungadresse <01> hinzuaddiert wird. Anschließend wird das Datenwort CO1O der Sprungadresse ausgelesen. Das Datenwort CO1O wird dahingehend geprüft, ob ein Endknoten des Codebaums erreicht worden ist oder nicht. Die Daten CX2 = 0, Χ, = Ό werden durch Binärzahlen repräsentiert, so daß die Entscheidung, ob ein Endknoten erreicht ist oder nicht, davon abhängt, ob das höchstwertige Bit Cnachstehend als "MSB" bezeichnet) des Datenwortes "X2X1", d.h., der Ziffernfolge "00000100" eine 1M" oder eine "0" ist. Da in diesem Falle das höchstwertige Bit CMSB) = "0" ist, wird entschieden, daß der Endknoten noch nicht erreicht worden ist. Falls das höchstwertige Bit = "1" ist, wird entschieden, daß der Endknoten erreicht worden ist. Anschließend wird das nächste Bit, nämlich "1", des Eingangsdatenwortes zum gebildeten Datenwort CO1O addiert, um eine Sprungadresse <05> zu erhalten. Auf diese Weise werden ein oder zwei Zweige für jeden Knoten 2 selektiert, und zwar in Abhängigkeit davon, ob das Ein-Bit-Wort = "0" oder = "1" ist. Anschließend werden der Zugriff bzw. Abfragevorgang der Decodiertabel1e, die Entscheidung über den Endknoten und die Bildung einer Sprungadresse für jedes weitere Bit des Eingangsdatenwortes in gleicher Weise wiederholt, bis schließlich der Endknoten erreicht wird.
- 15 -
Auf diese Weise wird eine Adresse <21> erreicht und das zugehörige Datenwort Cd), d.h., das Binärwort "11000001" wird ausgelesen. Da das höchstwertige Bit dieses Datenwortes eine "1" ist, wird entschieden, daß der Endknoten erreicht worden ist, so daß die Durchl auf 1 änge unter Verwendung des Datenwortes (CO dieses Endknotens decodiert wird. Dies bedeutet, daß der Inhalt des dem höchstwertigen Bit nächstliegenden Bit des Datenwortes C1 = 11000001 angibt, ob es sich um einen Schlußcode oder um einen Aufbaucode handelt. Falls dieses erwähnte Bit eine "1" ist, handelt es sich um einen Aufbaucode, wobei man die Durchlauflänge durch Multiplikation der Zahl 64 mit der Dezimalzahl der hinter dem zweiten Bit folgenden sechs restlichen Bit, d.h., der Bitfolge "000001" entsprechend der Dezimalzahl 1 erhält. Falls der Dateninhalt des dem höchstwertigen Bit nächstliegenden Bit des ausgelesenen Datenwortes eine "0" ist, so bedeutet dies das Vorliegen eines Schlußcode, mit der Folge, daß der Dezimalwert der restlichen sechs Bit des Datenwortes der Durchlauf 1änge entspricht. Beim Stand der Technik ist es erforderlich, die Decodier— tabelle für jedes Datenbit abzufragen und die erläuterte Entscheidung über den Dateninahlt zu treffen. Dies führt zwangsläufig zu einer Verringerung der Decod i ergeschwi nd igke it.
Anschließend soll unter Bezugnahme auf Fig. 3 die Decodiervorrichtung nach der US-PS 3 883 847 kurz et— läutert werden. Die Eingangsdaten werden in ein Eingangsregister 210 eingespeist, von welchem nur K Bit der Eingangsdaten in ein Register 211 übertragen wet den. Das dem Register 211 zugeführte K-Bit-Datenwort
- 16 -
wird in einem Addierglied 212 um 1 ίnkrementiert. Das inkrementierte Datenwort am Ausgang des Addiergliedes 212 dient als Adresse zum Abfragen eines ersten De-Codiertabellenspeichers 214 über eine Adressierschaltung 213 und ein Inhibitierglled 281. Falls das von dem Speicher 214 ausgelesene Datenwort ein decodier— tes Ergebnis ist, wird der decodierte Code von einem Register 217 über ein Inhibitierglied 241 und ein ODER-Glied 242 einer Ausgangsleitung 243 zugeführt. Die Anzahl der in dem eingespeisten K-Bit-Datenwort verwendeten Bits wird von einem Register 216 über ein Inhibitierglied 283 und ein ODER-Glied 286 einem Binärtakt-Multiplizierglied 218 vorgegeben. Das Eingangsregister
210 wird von dem Binärtakt-Multiplizierglied 218 entsprechend der dabei verwendeten Anzahl von Bits gesteuert, um die entsprechende Eingangsdatenmenge in das Register 211 einzulesen.
Falls die K. Bit des in das Register 211 eingespeisten Datenwortes keinen Code bilden, erhält das Register nach erfolgtem Abfragen des ersten Decodiertabel1enspeichers 214 ein Signal, welches angibt, daß kein decodiertes Ergebnis vorliegt.Durch dieses Signal wer— den das Inhibitierglied 283 inhibitiert und ein Flip-Flop 285 gesetzt. Das Ausgangssignal des Flip-Flop wird den Inhibitiergliedern 241 und 281 zugeführt, um diese zu inhibitieren. Ferner wird das Ausgangssignal des Registers 217 über das ODER-Glied 286 dem Multiplizierglied 218 zugeführt, worauf di.eses die Einspeisung der K- Bit des Eingangsdatenwortes in das Register
211 über das Register 210 bewirkt. Die unnötigen Bits der Daten des Registers 211 werden in einem Decoder 260 mittels des Ausgangssignals des Registers 216 abgedeckt, um die erforderlichen K Bit auszugeben. Das
- 17 -
Datenwort am Ausgang des Decoders 260 wird in einem Addierglied 261 um 1 inkrementiert und das resultierende Datenwort als Adresse zum Abfragen eines zweiten Decodiertabel1enspeichers 250 über eine Adressierschaltung 251 verwendet. Die Adressierschaltung 251 wird durch das Ausgangssignal des Registers 217 gesteuert, um festzulegen, welche Tabelle des zweiten Decodiei— tabellenspeichers 250 abgefragt wird. Sobald der Speicher 250 ausgelesen ist, wird das decodierte Ergebnis von einem Register 272 über ein UND-Glied 292 und ein ODER-Glied 242 der Ausgangsleitung 243 zugeführt, wobei die Anzahl der zum Decodieren verwendeten Bits von einem Register 271 über das ODER-Glied 286 dem Multiplizierglied 218 zugeführt wird. Sobald das Ende des Eingangsdatenwortes von einer Enderfassungschaltung erfasst ist, wird ein Flip-Flop 222 gesetzt, dessen Ausgangssignal einem Inhibitierglied 224 zugeführt wird, welches daraufhin schließt und die Decodiervorrichtung stillsetzt.
Die Decodiervorrichtung nach der US-PS 3 383 847 ist dergestalt ausgebildet, daß sie den ersten Decodiet— tabel1enspeieher 214 unter Verwendung mehrerer Bits des Eingangsdatenwortes abfragt und nicht für jedes Bit prüft, ob es decodiert ist oder nicht. Damit ist die Anzahl der erforderlichen Speicherabfragevorgänge gering, was eine Decodierung mit hoher Geschwindigkeit erlaubt. Bei dieser Decodiervorrichtung müssen jedoch erste und zweite Decodiertabel1enspeicher und 250 vorgesehen werden, was zu einem Anstieg der Speichergröße führt.
- 18 -
Fig. 4 zeigt ein Ausführungsbeispiel einer für eine erfindungsgemäße Decodiervorrichtung verwendbaren Decod iertabelle, welche einen Weißcodebaum des modifizierten Huffman-Code benutzt. Im betrachteten Beispielsfall haben die Datenworte CXX3 und die Speichel— adresseOOO-etne Länge von 8 Bit, wobei die Anzahl der zu einem Zeitpunkt zu selektierenden Zweige, d.h., die Anzahl der zu einem Zeitpunkt zu decodierenden Codebits = 1,2 oder 4 ist. Die Datenlänge, die Länge der Speicheradresse und die Anzahl der zu einem Zeitpunkt zu selektierenden Zweige ist beliebig. Ferner kann die Anzahl der zu einem Zeitpunkt zu selektierenden Zweige festgelegt oder auf beispielsweise zwei Zweige begrenzt werden. Mit den Bezugszeichen 1 bis 4 sind in Fig. 1 dieselben Begriffe wie in Fig. 1 bezeichnet, wohingegen ein. im Laufe der Decodierung auftretendes Datenwort durch einen Innenknoten 5 bezeichnet ist. Die Anzahl der zu einem beliebigen Zeitpunkt zu wählenden Zweige ist im Falle von Fig. 1 so gewählt, daß sie die Anzahl der Zweige k zwischen der Wurzel 1 oder dem Innenknoten 5 und dem nächsten Endknoten 3 nicht überschreitet. In Fig. 4 liegen die der Wurzel 1 am nächsten 1 legenden Endknoten 3 mit den Adressen <07>, <08>, <0B>, <0C>, <0E> und <0F> auf einer strichpunktierten Linie 61 und sind vier Zweige von der Wurzel 1 entfernt. Prüft man die Innenknoten auf der Linie 61, beispielsweise mit der Adresse <03>, so wird der näqhste Endknoten 3 auf der Adresse <1D> erreicht, welche den der Adresse <03> nächstl "legenden Zweig darstellt, so daß die Anzahl der selektierten Zweige = 1 ist. Im Falle der Adresse <00> befindet sich ein Endknoten erst im zweiten Zweig, d.h., einem Zweig auf der strichpunktierten Linie 62 mit der Adresse <13>. Die Anzahl der selektierten Zweige zwischen der Adresse <00> und dem nächst 1iegenden Endknoten ist daher = 2.
- 19 -
Das in Fig. M- am unteren Rand mit " bezeichnete Verzweigungsmuster enthält die Datenworte CFF) und CEF) für ein Zeilensynchronisiersignal EOL sowie ein Datenwort C8F) für einen Decodierfehl er.
Unter jeder Adresse <XX> eines mit der Decodiertabelle nach Fig. h geladenen Decodiertabeilenspeichers ist das zugehörige Datenwort CXX) abgelegt. Mit dem Ausdruck /XX/ ist die Durch!auf 1änge bezeichnet, wobei hier X eine Dezimalzahl ist. Der Decodiertabel1enspeieher besitzt einen Speicherbereich zum Speichern von Enddaten und einen Speicherbereich zum Speichern von Zwischendaten. In dieser Ausführungsform ist der Decod i ertabel 1 enspei eher ein Ein-Wort-8-Bit-Speicher, wobei die End- und Zwischendaten jeweils aus 8 Bit bestehen. Das Format der Enddaten ist in Fig. 5A dargestellt. Wenn das geringstwertige Bit B. eine "1" ist, so entspricht dies einem Endknoten 3, d.h., dem Voi— liegen von Enddaten. Das dem geringstwertigen Bit B1 nächst 1iegende Bit B9 gibt die Art des decodierten Code wieder; im betrachteten Beispielsfalle gibt das Bit B„ an, ob das decodierte Ergebnis ein Schlußcode oder ein Aufbaucode ist. Die 6 Bits B7 bis B0 sind Informationen über das decodierte Ergebnis, d.h., die Durch!auf 1änge. Falls das Bit B„ eine "0" ist, ist die Information über das decodierte Ergebnis ein Schlußcode, so daß, wie anhand der Bezugszahl 44 angedeutet ist, die Bits B-, bis B0 vorgegebene Wertigkeiten 2 bis 2 besitzen. Wenn
dagegen das Bit B9 eine "1" ist, handelt es sich bei der Information über das decodierte Ergebnis um einen Aufbaucode, so daß, wie anhand des Bezugszeichens 45 angedeutet· ist, die Bits B bis BQ vorgegebene Wertigkeiten von 2 bis 2 besitzen.
- 20 -
Das Format der Zwischendaten ist in Fig. 5B dargestellt. Wenn das geringstwertige Bit B1 eine "0" ist, entspricht es dem Innenknoten 5, d.h., es gibt an, daß es sich um Zwischendaten im Verlauf der Decodierung handelt. Das zweite Bit B? gibt die Anzahl derjenigen Bits an, welche als nächste von dem Eingangscodezug eingespeist werden sollen. Falls das Bit B„ eine "0" ist, wird ein Bit eingespeist, während dann, wenn das Bit B„ eine "1" ist, zwei Bit eingespeist werden. Die Bits B, bis B0
J O
repräsentieren eine Information zur Bestimmung der Adresse des als nächstes abzufragenden Decodiertabel1enspeichers.
In Fig. 6 ist ein Decodierbeispiel veranschaulicht, bei dem eine einer Weißdurchlauf1änge von 64 entsprechende Binärzahl "11011" als Eingangsdatenwort in die Decodiertabelle gemäß Fig. h eingespeist wird. Der Decodiei— Vorgang ist für diesen Beispielsfall anhand von Fig. 6 erläutert. Bei der Einspeisung des Eingangsdatenwortes wird zunächst ein Anfangsdatenwort COO) erzeugt. Wie vorstehend bereits ausgeführt wurde, ist die Anzahl der zuerst zu selektierenden Zweige, d.h., die Anzahl der bei Beginn der Decodierung je Code einzuspeisenden Bits, = k, so daß dem Anfangsdatenwort COO) 4 Bits "1101" Centsprechend "OD" im Hexadezimalsystem) des Eingangsdatenwortes hinzuaddiert werden, um die Sprungadresse <0D> zu erhalten. Von dieser Sprungadresse wird deren Datenwort CS1O ausgelesen. Durch Erfassung des geringstwertigen Bit B1 der binären Entsprechung "00110100" dieses Datenwortes wird entschieden, ob ein Endknoten 3 des Codebaums erreicht worden ist oder nicht. Da im betrachteten Beispielsfalle das geringstwertige Bit B1 eine "0" ist, handelt es sich hier um Zwischendaten, so daß die Decodierung noch nicht abgeschlossen ist. Aufgrund des zweiten Bits B„ = 0 der binären Entsprechung des ausgelesenen Datenwortes C3O wird entschieden, daß die
- 21 -
. 313770A
Anzahl der als nächste zu selektierenden Zweige =1 ist. Anschließend wird das nächste eine Bit "1" des Eingangsdatenwortes eingespeist und einem Datenwort hinzuaddiert, in welchem die Bits B. und B„ des ausgelesenen Datenwortes (34) = "O" sind, wodurch man eine Sprungadresse <35> erhält. Von dieser Sprungadresse wird deren Datenwort (07) ausgelesen. Da das geringstwertige Bit B. der binären Entsprechung "00000111" des Datenwortes (07) eine "1" ist, wird entschieden, daß ein Endknoten des Codebaums erreicht worden ist. Aufgrund des Bit B2=11I" des ausgelesenen Datenwortes wird entschieden, daß es sich bei den Daten um den Aufbaucode handelt. Damit bedeutet die Information über das decodierte Ergebnis B„ B7.,. B, = 000001 eine Durch!auf 1änge von 64, die man durch Multiplizieren des decodierten Ergebnisses (entsprechend der Dezimalzähl "1") mit der Zahl 64 erhält.
In Fig. 7 ist ein Ausführungsbeispiel einer erfindungs-" gemäßen Decodiervorrichtung dargestellt, welches auf der in Fig. 4 dargestellten Decodiertabel1e des modifizierten Huffman-Code beruht. Die Funktionsweise dieser Decodiervorrichtung soll nachstehend für den Fall beschrieben werden, daß in gleicher Weise wie im Beispielsfalle von Fig. 6 die Binärkombination "11011" als Eingangsdatenwort eingespeist wird. Zum Beginn des Decodiervorganges wird ein Decodierstartsignal in Form eines High-Zustandes "1" von einer Leitung 11 an eine Erfassungsschaltung 12 für den Abschluß der Decodierung angelegt, beispielsweise für eine bestimmte Zeitspanne, Die dadurch erzeugte Anstiegsflanke des Ausgangssignals der Erfassungsschaltung 12 auf einer Signal1 eitung 32 bewirkt die Rücksetzung eines Toggle-Flip-Flop 14, welches angibt, ob es sich bei den Eingangsdaten um
- 22 -
Weiß- oder Schwarzdaten handelt. Durch das Rücksetzen des Flip-Flop 14 ist dieses für die Decodierung eines Weißcode vorbereitet, wobei gleichzeitig ein Speicheradressenregister 15 rückgesetzt wird. Bei dem modifizierten Huffman-Codierschema beginnt der Decodiervorgang eines Faksimilecodes mit einem Weißcode. Ein mit der Decodiet— tabelle nach Fig. 4 geladener Decod iertabel 1 enspe icher 16 wird mittels einer Speicheradresse aus dem Adressenregister 15 ausgelesen, wobei das ausgelesene Anfangsdatenwort COO) einem Datenregister 17 zugeführt wird. Das erwähnte Decodierstartsignal erzeugt in der Erfassungsschaltung 12 für den Abschluß der Decodierung einen Low-Zustand, der über ein ODER-Glied 33 und ein Invertierglied 34 auf eine Ausgangsleitung 18 gegeben wird. Gleichzeitig gelang dieser Low-Zustand vom Ausgang des Invertiergliedes 34 über eine aus einem Verzögerungsglied und einem UND-Glied bestehende Impulsdehnungsschaltung 39 auf eine Ausgangsleitung 38. Infolge dieser Low-Zustände werden Datenwählschalter 19,20 und 21 auf ihren jeweiligen Umschaltkontakt b^ umgeschaltet. Infolge dieses Umschaltvorganges wird der Datenwählschalter 20 mit einem Anfangsdatenspeicher 23 unmittelbar nach Beginn des Decodiervorganges verbunden. Der Anfangsdatenspeicher 23 wird durch ein "O"-Ausgangssignal des Flip-Flop 14 Cwelches eine Weißcode-Decodierung anzeigt) gesteuert, wodurch der Anfangsdatenspeicher 23 über den Datenwählschalter 20 einen Eingangsdatenzähler 24 auf den Wert 4 setzt.Dem Zähler 24 werden über einen Anschluß 25 Taktsignale zugeführt, wobei synchron hierzu von einem Anschluß 27 ein 4-Bit-Eingangsdatenwort "1101" einem Serien-Paral1 el-Umsetzer 26 für die Eingangsdaten zugeführt wird. Das Eingangsdatenwort "1101" wird anschließend von dem Serien-Paral1 el-Umsetzer 26 einem
- 23 -
8-Bit-Addierglied 22 zugeführt, nachdem der Umsetzer 26 rückgesetzt wurde. Dies bedeutet, daß dessen Eingangszustand zu "OOOO" gemacht wird, während dessen Ausgänge unverändert bleiben, d.h., den Zustand "1101" besitzen. Das geringstwert ige Bit B. = 0 des in das .Datenregister eingelesenen Anfangsdatenwortes COO) wird in der vorstehend beschriebenen Weise der Erfassungsschaltung 12 für den Abschluß der Decodierung zugeführt, um über das ODER-Glied 33 auf der Ausgangsleitung 18 einen High-Zustand hervorzurufen und damit die Datenwählschalter 19 und 21 auf den Wähl kontakt a_ umzuschalten. Hierdurch wet— den die Bits BQ bis B, des Eingangsdatenwortes COO) von dem Datenregister 17 über den Wählschalter 21 dem 8-Bit-Addierglied 22 zugeführt. Das Anfangsdatenwort COO) und das von dem Serien-Parallel-Umsetzer 26 gelieferte Eingangsdatenwort "1101" werden in dem 8-Bit-Addierg!ied 22 miteinander addiert, um eine Sprungadresse <0D> zu erzeugen. Der Wählschalter 20 wird nach dem Umschalten der Wählschalter 19 und 21, d.h., nach Ausgabe der Sprungadresse <0D>,von der Impulsdehnungsschaltung 39 auf seinen Wähl kontakt £ umgeschaltet.
Die Sprungadresse <0D> wird dem Speicheradressenregister 15 zugeführt. Der Speicher 16 wird durch das Lesesignal auf einer Signal1 eitung 28 abgefragt, um das der Sprungadresse <0D> zugeordnete Datenwort C34) an das Datenregister 17 auszulesen. Die Bits B. und B„ des ausgelesenen Datenwortes C3^) sind gleich "0".Da das geringstwertige Bit B. = "0" ist, handelt es sich bei diesem Datenwort nicht um Enddaten, sondern um Zwischendaten. Dement-
sprechend werden die Datenwählschalter 19 bis 21 von der Erfassungsschaltung 12 für den Abschluß der Decodierung auf ihrem jeweiligen Wähl kontakt a_ gehalten. Das Bit B„ = wird als Adresse für einen Datenspeicher 36 verwendet, um den Inhalt "1" auszulesen, welcher über den Wählschalter 20 den Eingangsdatenzähler 24 setzt. Infolge dessen wird von dem Eingangsdatenwort am Anschluß 27 das nächste eine Bit "1" in den Umsetzer 26 synchron mit dem Eingangstakt eingespeist. Das Ausgangssignal des Umsetzers 26 nimmt den Zustand "0001" an, wodurch der Eingang des 8-Bit-Addiergliedes 22 das Datenwort C01) erhält. Dem 8-Bit-Addierg 1ied 22 werden ferner von dem Datenregister 17 die Bits B„ bis B, des Datenwortes C3*O zugeführt. Das 8-Bit-Addierglied 22 addiert die Datenworte C01) und C34) zu einer Sprungadresse <35>, welche dem Speicheradressenregister 15 zugeführt wird. Von der Adresse <35> des Speichers 16 wird ein Datenwort C07) an das Datenregister 17 ausgelesen. Damit werden beide Bits B. und B„ zu einer "1".
Da das geringstwertige Bit B1 nunmehr eine "1" ist, stellt die Erfässungsschaltung 12 für den Abschluß der Decodierung fest, daß es sich um Enddaten handelt, d.h., daß nunmehr ein Endknoten erreicht worden ist. Durch das Et fassungssignal am Ausgang der Schaltung 12 werden die Datenwählschalter 19 bis 21 auf ihren jeweiligen Wählkontakt b^ umgeschaltet. Da das Bit B2 eine "1" ist, wird ein Datenwählschalter 29 auf seine Wählkontakte MC umgeschaltet, wodurch die Bits Bg bis B, im Datenregister 17 den höherwert igen 6 Bits eines Ausgangsregisters 31 für die Durchlauf 1änge zugeführt werden. Hierdurch ergibt sich
- 25 -
am Ausgang des Registers 31 die Binärkombination "OOOOO1OOOOOO", d.h., es wird die Durchlauflänge "64" ausgegeben, wodurch der Decodiervorgang abgeschlossen ist. Wenn in dem modifizierten Huffman-Codierschema eine Durchlauflänge größer als 63 ist, wird die Durchlauf 1änge durch die Kombination eines Aufbaucodesund eines Schlußcodes wiedergegeben. Beispielsweise wird eine Weißdurchlauf1änge von 80 durch eine Weißdurchlauf 1änge 64 plus einer Weißdurchlauflänge 16 repräsentiert. Dementsprechend folgt nach der Decodierung einesftuf baucodes stets ein Schlußcode der gleichen Farbe wie zuvor, was bei der vorliegenden Decodiervorrichtung dadurch erreicht wird, daß das decodierte Ergebnis des Aufbaucodes, d.h., der Enddaten, stets eine "1" an dem bezüglich des geringstwertigen Bit B. zweiten Bit B„ erzeugt, wobei das Bit B„ = 1 der Enddaten der Erfassungsschaltung 12 für den Abschluß der Decodierung zugeführt wird, um dessen Inhibitiet— glied 35 zu inhibitieren. Das geringstwertige Bit B. -wird daher dem ODER-Glied 33 zugeführt, wodurch der Decodiervorgang für den nächsten Code mit dem Weißcode beginnt. Bei dem vorstehend betrachteten Fall einer Weißdurchlauf1änge von 64 werden die Daten in Form einer Weißdurchlauf1änge von 64 plus einer Weißdurchlauflänge von 0 decodiert. Falls es sich bei den decodierten Daten um einen Schlußcode handelt, ist das Bit B der Enddaten "0", wobei das Bit B. * 1 über das Inhibitierglied 35 dem Flip-Flop 14 zugeführt wird, um diesen zu invertieren, wodurch der Auslesebetrieb des Decodiertabel1enspeichers 16 von der Weißcode-Decodiertabel1e auf die Schwarzcode-Decodiertabel 1 e und umgekehrt geändert wird. Gleichzeitig wird das Speicheradressenregister 15 rückgesetzt, um das nächste
- 26 -
.:. 31 3770A
Eingangsdatenwort in der gleichen Weise wie im Falle des Eingangsdatenwortes "11011" zu decodieren.
Fig. 8 zeigt einen Teil der Decodiertabel1e des modifizierten Huffman-Code für eine weitere Ausführungsform der erfindungsgemäßen Decodiervorrichtung. In Fig. 8 sind die mit Fig. 4 übereinstimmenden Teile mit den gleichen Bezugszeichen versehen. Im Falle von Fig. 8 beträgt die Datenwortlänge 10 Bit, während die Speicheradresse 8 Bit lang ist und die Anzahl der zu einem Zeitpunkt zu wählenden Zweige, d.h., die Anzahl der im Falle einer nicht abgeschlossenen Decodierung als nächstes einzuspeisenden Bits des Eingangsdatenwortes, auf k festgelegt ist. Auch bei diesem Beispielsfall ist X eine Ziffer einer Hexadezimalzahl. Falls die Bit-Zuordnung im Falle jeder Ziffer eines in die binäre Entsprechung umgewandelten Datenwortes CXXX) zu CB10, Bg, B8, B7, B5, B5 XX B4, B3, B2, B1) gewählt wird, gibt das Bit B1 das Ende oder die Fortsetzung des Decodiervorganges wieder; die Bits B„ und B, indizieren die Anzahl der am Ende des Decodiervorganges, d.h., wenn es sich bei den ausgelesenen Daten um Enddaten handelt, als nächste einzulesenden Anfangsdatenbits; das Bit B. indiziert, ob die decodierten Daten am Ende des Decodiervorganges einem Aufbaucode oder einem Schlußcode entsprechen, während die Bits B,- bis B10 im Falle von Zwischendaten ein Adressdatenwort und im Falle von Enddaten das decodierte Ergebnis ausweisen. "X" ist "1" oder "0", was für den Decodiervorgang nicht verwendet wird.
In Fig. 9 ist ein Ausführungsbeispiel eines Decodiervorganges veranschaulicht, bei welchem die Decodiertabel1e nach Fig. 8 verwendet wird und als Eingangsdaten das einer Weißdurchlaufsiänge von 64 entsprechende Binärwort "11011" eingespeist wird. Dieser Decodiervorgang wird nachstehend
- 27 -
9 *
313770Α
noch näher erläutert.
In Fig. 10 ist eine weitere Ausführungsform der erfindungsgemäßen Decodiervorrichtung veranschaulicht, weiche die in Fig. 8 dargestellte Decodiertabel1e des modifiziei— ten Huffman-Code verwendet. In Fig. 10 sind die mit Fig. 7 übereinstimmenden Teile mit den gleichen Bezugszeichen versehen. Bei der dargestellten Decodiervorrichtung wird mit Hilfe des Datenwählschalters 20 eine Selektion dahingehend getroffen, ob der Wert des Eingangsdatenzählers 2k auf eine festgelegte Anzahl von Eingangsdaten aus einem Setzspeicher 35 oder auf die Anzahl von Daten aus einer Setzschaltung 37 für eine Anfangsbitzahl gesetzt wird. Die Setzschaltung 37 setzt die Anzahl der Anfangseingangsdaten eines als nächsten zu decodierenden Code aufgrund der Ausgangsbits B und B, des Datenregisters 17, wobei diese Anzahl nicht fixiert ist. Dagegen wird zum Einspeisen einer festgelegten Anzahl von Eingangsdaten im Verlaufe der Decodierung der Setzspeicher 35 verwendet.
Die Funktionsweise der Decodiervorrichtung nach Fig. 10 soll nachstehend für den Fall beschrieben werden, daß ein in Fig. 9 dargestelltes Eingangsdatenwort "11011000" eingespeist wird. Für den Beginn des Decodiervorganges wird ein Decodierstartsignal über die Leitung 11 der Erfassungsschaltung 12 für den Abschluß der Decodierung zugeführt, um über die Signal1 eitung 32 den Flip-Flop 1^ rückzusetzen, wodurch der Decodiertabel1enspeicher 16 in den Weißcode-Auslesezustand versetzt wird. Gleichzeitig wird auch das Speicheradressenregister 15 rückgesetzt, um ein Datenwort COOO) von dem Speicher 16 an das Datenregister 17 auszulesen. Andererseits erzeugt
- 27 -
313770Α
die Erfassungsschaltung 12 auf den Ausgangsleitungen 18 und 32 aufgrund des Decodierstartsignals Low-Zustände, wodurch die Datenwählschalter 20 und 21 wie im Falle von Fig. auf ihren Wähl kontakt b_ umgeschaltet werden. Hierdurch wird der Datenwählschalter 20 mit der Setzschaltung 37 vet— bunden. Die Setzschaltung 37 wird durch das Decodierstartsignal rückgesetzt, worauf die Setzschaltung 37 einen Eingangsdatenzähler 2h auf einen Zählwert "4" setzt. Die ersten k Bits "1101" des Eingangsdatenwortes werden dem Serien-Paral1 el-Umsetzer 26 von einer Klemme 27 synchron mit den an einer Klemme 25 anliegenden Eingangstaktimpulsen zugeführt. Die eingespeisten Daten können durch den Ausdruck COD) im Hexadezimalsystem repräsentiert wei— den. Der Serien-Paral1 el-Umsetzer 26 gibt die Eingangsdaten "1101" in paralleler Form an das 8-Bit-Addiei— glied 22 weiter. Das geringstwertige Bit B1 = 0 des in das Datenregister 17 ausgelesenen Anfangsdatenwortes COOO) wird der Erfassungsschaltung 12 für das Decodierende zugeführt, welches über das ODER-Glied 33 auf der Ausgangsleitung 18 einen High-Zustand erzeugt, wodurch der Wählschalter 21 auf seinen Wähl kontakt a_ umgeschaltet wird. Hierdurch werden die Bfts B.- bis Βς des Anfangsdatenwortes COOO) von dem Datenregister 17 über den Datenwählschalter 21 in das 8-Bit-Addierg!ied 22 eingespeist. Das Addierglied 22 addiert das Eingangsdatenwort "1101" bzw. COD) und das Anfangsdatenwort COO), d.h., COOO) - "B. B, B Bi"> unter Erzeugung einer Sprungadresse <0D>, welche dem Speicheradressenregister 15 zugeführt wird. Im Anschluß an die Ausgabe der Sprungadresse <0D> wird zeitlich versetzt zu dem Umschalten des Datenwählschalters 21 auch der Datenwählschalter 20 durch die Impulsdehnungsschaltung
- 29 -
auf seinen Wähl kontakt a_ umgeschaltet. Durch das von dem 8-Bi t-Addiergl ied 22 auf der Signal 1 ei tung" 28 hei— vorgerufene Signal wird ein der Sprungadresse <OD> zugeordnetes Datenwort (AOO), welches die binäre Entsprechung B10 Bg B8 B7 B5 B5 XX B4 B3 B3 B1 = "101000000000"besitzt, aus dem Decodiertabel1enspeicher 16 in das Datenregister 17 ausgelesen. Diese Daten sind Zwischendaten für einen Innenknoten, da das gerΪngstwertige Bit B. eine "0"ist.nie Öatenwählschalter 20 und 21 werden von der Erfassungsschaltung 12 für den Abschluß der Decodierung auf ihrem jeweiligen Wähl kontakt a_, d.h., im Zustand "unbeendet" gehalten.
Der Eingangsdatenzähler 24 wird entsprechend der Stellung des Wähl schalters 20 durch den Setzspeicher 35 auf den Zählwert "4" gesetzt, so daß 4 Bits "1000" des nächsten Eingangsdatenwortes in den Serien-Paral1 el-Umsetzer 26 synchron mit den Eingangstaktimpulsen eingespeist werden. Hierdurch entsteht am Ausgang des Serien-Paral1 el-Umsetzers 26 der Binärzustand "1000", wodurch der Eingang des 8-Bit-Addiergliedes 22 zu "00001000 " wird Centsprechend der Zahl 08 im Hexadezimalsystem). Die Bits B5 bis B10 am Ausgang des Datenregisters 17 werden ebenfalls dem 8-Bit-Addierglied 22 als Datenwort CAO) zugeführt, wodurch dieser unter Addition der zugeführten Datenworte CO8) und CAO) eine Sprungadresse <A8> erzeugt, die dem Speicheradressenregister 15 zugeführt wird. Hierdurch wird ein der Adresse <A8> zugeordnetes Datenwort C049) Cwelches die binäre Entsprechung B1
Ί0 )0
besitzt) von dem Decodiertabel1enspeicher 16 in das
BQ BQ B-, Bc Bc XX B, B, B0 B1 = "000001001001" y ο 7 0 5 4321
- 30 -
Datenregister 17 ausgelesen. Das geringstwertige Bit B. dieses Datenwortes ist eine "1", welches indiziert, daß es sich bei diesem Datenwort um Enddaten handelt, d.h., daß ein Endknoten erreicht und damit der Decodiervorgang beendet ist. Durch die Erfassungsschaltung 12 für den Abschluß der Decodierung werden die Datenwählschalter 20 und 21 auf ihren jeweiligen Wählkontakt Jd C"Ende"> umgeschaltet. Da das Bit B^ eine "1" ist, wird der Datenwählschalter 29 auf seinen MC-Wählkontakt umgeschaltet, wodurch das Ausgangssignal des Datenwählschalters 29 als Aufbaucode in das Ausgangsregister 31 unter Erzielung des Binärwortes "000001000000" entsprechend einer Durchlauf 1änge von "64" eingespeist wird und damit der Decodiervorgang abgeschlossen ist.
Die Setzschaltung 37 wird mit einem Datenwort B^ B„ = "00" aus dem Datenregister 17 versehen, wo das Binäi— wort "00" um eine "1" inkrementiert wird, um einen Wert "1" zu erzeugen, welcher der Differenz zwischen der festgelegten Anzahl "V von Eingangsdatenbits und der Anzahl "3" von Bits des zur Decodierung des Eingangsdatenwortes "11011000" nicht verwendeten Datenwortes "000" entspricht. Der Wert "1" wird als Anfangsdatenwort dem Eingangsdatenzähler 2h zugeführt. Da bei diesem Beispielsfall das Bit B^ der ausgelesenen Enddaten eine "1" ist, setzt die Erfassungsschaltung 12 das Speicheradressenregister 15 zurück, während das Flip-Flop \h unverändert bleibt, d.h., im Weißcode-Decodierzustand verbleibt. Das Datenwort COOO) wird von dem Speicher 16 in das Datenregister 17 ausgelesen.
- 31 -
'-Ja '-%} :V-":.r .:. 31 377 0Α
Bei der anschließenden Dateneingabe in den Serien-Parallel -Umsetzer 26 erfolgt die Decodierung des nächsten Eingangsdatenwortes in gleicher Weise wie im Falle des vorstehend betrachteten Eingangsdatenwortes "11011". Falls beim Auslesen der Enddaten das Bit B. eine "0" ist, invertiert die Erfassungsschaltung 12 das Flip-Flop 14, um den Auslesebetrieb des Decodiertabel1enspeichers 16 auf die Auslesung der Schwarzcodetabelle umzuschalten; ferner setzt die Erfassungsschaltung 12 das Speicheradressenregister 15 zurück. Beim dem anhand der Fign. 8 und 10 beschriebenen Ausführungsbeispiel werden die Daten schrittweise in Gruppen aus einer festgelegten Anzahl von Bits, im betrachteten Beispielsfalle /f Bits, eingespeist, wobei die für die Decodierung nicht verwendeten Bits der eingespeisten 4-Bit-Datenworte, d.h., die 3 Bits "000" im betrachteten Beispielsfall, für die anschließende Decodierung benutzt werden. Die Decodierung wird unter Verwendung dieser 3 Bits und eines Bits des nächsten Datenwortes C d.h., wiederum mit der festgelegten Anzahl von Bits, nämlich k Bits im betrachteten Beispielsfal 1) fortgesetzt.
Der Aufbau der erfindungsgemäßen Decodiervorrichtung ist nicht auf eine verdrahtete Logikschaltung entsprechend Fign. 7 und 10 beschränkt; vielmehr kann hier— für auch eine Al 1 zweckschaltung mit einer Speicherzugriff sf unkt ion sowie einer Datenentscheidungs- und Rechenfunktion, beispielsweise ein Mikroprozessor, vorgesehen werden. Ein Ausführungsbeispiel einer-der— artigen Decodiervorrichtung, welche einen Mikroprozessor benutzt, wird für den Fall einer Verwendung einer
- 32 -
3137794
Decodiertabell e gemäß Fig. 4 anhand von Fig. 11 ei— läutert. Bei der Ausführungsform nach Fig. 11 sind an einen Bus (Sammelleitung]) 41 ein Mikroprozessor 42, ein Serien-ParalIeI-Umsetzer 43, ein Empfangs-Puffet— speicher 44, ein Programmspeicher 45, eine Ausgabeschaltung 46 und der Decodiertabel1enspeicher 16 angeschlossen. In dem Decodiertabel1enspeicher 16 ist die Decodiet— tabelle gemäß Fig. 4 gespeichert, d.h., die mit (XX) repräsentierten Datenworte sind unter jeweils einer Adresse abgelegt, die mit <XX> bezeichnet ist. Der mit einer Vielzahl von Allzweckregistern 47 versehene Mikroprozessor 42 fragt den Programmspeicher 45 sequentiell ab, um die Ausgabebefehle in ein Befehlsregister 48 einzuspeisen, decodiert diese in einem Befehlsdecoder 49 und führt zahlreiche Eingangs/Ausgangs-Steuerfunkt ionen -Operationen und -Entscheidungen aufgrund der decodierten Ergebnisse aus. Die logischen Addiervorgänge und Entscheidungen werden von einem Logikoperator 51 in Verbindung mit den Daten der Al 1 zweckregister 47 durchgeführt. Die Ergebnisse der Operationen werden in den Allzweckregistern 47 gespeichert. Der Decodiertabel1enspeicher 16 und der Programmspeicher 46 können von einem einzigen Speicher gebildet werden. In den Serien-Paral1 el-Umsetzer 43 wird über den Anschluß 27 ein Eingangscodezug einge- · speist. Bei jedem Einspeisen des Eingangscodezuges, beispielsweise von 8 Bits, wird über eine Interrupt-Leitung 52 von dem Serien-Paral1 el-Umsetzer 43 einer Interrupt:—Schaltung 53 des Mikroprozessors 42 ein Interrupt—-Signal zugeführt. Sobald der Mikroprozessor 42 das Interrupt—Signal erhält, speichert er ein von dem Serien-Paral1el-Umsetzer 43 kommendes serielles 8-Bit-Datenwort in dem Empfangs-Pufferspeicher 44.
- 33 -
0 · »β
Die Ausgabeschaltung 46 dient zur Ausgabe der decodier— ten Ergebnisse.
Die Funktionsweise der Decodiervorrichtung nach Fig. soll anhand eines in Fig. 12 dargestellten Flußdiagramms erläutert werden. Der Decodiervorgang beginnt mit einem Schritt SL, bei welchem die Anzahl der anfänglichen Eingangsbits, d.h., die Anzahl der von dem Eingangscodezug als erste einzuspeisenden Bits Om betrachteten Beispielsfalle 4 Bits),in ein Allzweckregister 47a und ein Anfangsadreßdatenwort für den Decod i ertabel 1 enspe i eher 16 Om betrachteten Beispielsfalle das Datenwort COO) ) in ein Allzweckregister 47b eingegeben werden. Beim nächsten Schritt S„ wird geprüft, ob beispielsweise sämtliche Bits des von dem Empfangs-Pufferspeicher 44 in ein Allzweckregister 47c eingespeisten 8 Bit-Eingangscodewortes verwendet wurden oder nicht. Falls der Eingangscode bereits benutzt wurde, wird der Schritt S, durchgeführt, bei welchem das nächste 8-Bit-Datenwort von dem Empfangs-Pufferspeicher 44 in das Allzweckregister 47c eingespeist wird. Beim Schritt S^ wird das Datenwort, welches der Anzahl "4" der während des Schritts S1. in das Register 47a eingespeicherten Anfangsbits entspricht, von dem Register 47c zu einem Allzweckregister 47d übertragen.
- 34 -
β ν **
Die auf diese Weise in das Allzweckregister 47d übei— tragenen Daten und das beim Schritt S1 in das Register 47b eingespeicherte Anfangsadressdatenwort COO) werden in einem Schritt S1. miteinander addiert, um eine Adresse zu erhalten. Diese Adresse wird beim Schritt Sg zum Abfragen des Decodiertabel1enspeichers 16 benutzt. In einem Schritt S7 wird geprüft, ob das geringstwertige Bit B. der aus dem Decodiertabel1enspeicher 16 ausgelesenen Daten eine "1" ist oder nicht. Falls das Bit B nicht eine "1" ist, handelt es sich bei den ausgelesenen Daten um Zwischendaten, so daß das nächste Adressdatenwort und die Anzahl der als nächste einzuspeisenden Eingangscodebits gesetzt werden. Dies bedeutet im Falle des vorstehend betrachteten Beispiels, daß im Schritt Sr geprüft wird, ob das Bit B„ der ausgelesenen Daten eine'M" ist oder nicht. Falls das Bit B„ keine "1" ist, ist die Anzahl der als nächste einzuspeisenden Eingangscodebits = "1", wobei in einem Schritt S die Bits B, bis B„ der aus dem Decodiertabel1enspeicher 16 ausgelesenen Daten als Adressdaten in dem Allzweckregister 47b gesetzt werden, während gleichzeitig die Anzahl der Eingangscodebits "1" in dem Allzweckregister 47a gesetzt wird. Falls bei einem Schritt S„ entschieden wird, daß das Bit B„ eine "1" ist, ist die Anzahl der als nächste einzuspeisenden Eingangscodebits = "2", wobei in einem
Schritt S<n die Bits B7 bis B0 der ausgelesenen Daten IU So
in das Allzweckregister 47b geladen werden, während gleichzeitig die Anzahl der als nächste einzuspeisenden Eingangscodebits, nämlich "2", in das Allzweckregister 47a eingeladen wird. Nach dem Schritt S- oder S1 kehrt die Operation auf den Schritt S2 zurück, um die beschriebene Prozedur zu wiederholen.
- 35 -
Falls beim Schritt S7 entschieden wird, daß das geringstwertige Bit B-. eine "1" ist, handelt es sich bei den aus dem Decodiertabel1enspeieher 16 ausgelesenen Daten um Enddaten, so daß die Operation auf einen Schritt S-. vorrückt, bei welchem geprüft wird, ob das Bit B„ der Daten eine "1" ist oder nicht. Falls ent-, schieden wird, daß das Bit B„ eine "1" ist, liegt bei den Daten ein Aufbaucode vor, wobei eine von den Bits B, bis B0 der Daten repräsentierte Zahl η (welche eine Dezimalzahl darstellt) mit 64 multipliziert werden muß, um die Durchlauf 1änge zu erhalten (Schritt S17). Falls bei dem Schritts.... entschieden wird, daß das ger i ngstwert i ge Bit B1 eine "0" ist und damit die ausgelesenen Daten einen Schlußcode darstellen, werden in einem Schritt S17 die Bits B, bis B0 der Daten unmittelbar als Durch-
I J 5 ο
lauflänge gewonnen. Das decodierte Ergebnis des Schritts S12 oder S.., wird als decodiertes Ausgangssignal von der Ausgabeschaltung 46 (Fig. 11) in einem Schritt S.. ausgegeben. Anschließend wird in einem Schritt S.- geprüft, ob die Decodierung vollständig abgeschlossen ist oder nicht. Dies kann aufgrund der Eingangscodedaten oder der decodierten Daten wie bei dem Stand der Technik entschieden werden. Falls entschieden wird, daß die Decodierung noch nicht abgeschlossen ist, rückt die Operation auf einen Schritt S1f-, bei welchem dann, wenn der decodierte Code als Schlußcode eingestuft wird, d.h., wenn beim Schritt S1 entschieden wird, daß das Bit B„ eine "O11 ist,___der nächste Decodi ervorgang von der Weißcode- auf die Schwarzcode-Decodierung umgeschaltet wird und umgekehrt, worauf die Operation auf den Schritt S1 zurückkehrt. Falls beim Schritt S,.,. entschieden wird, daß die Decodierung noch nicht abgeschlossen ist und das Bit B2 beim Schritts1 als "1" erkannt wird, kehrt die Operation auf den Schritt S1 ohne Durchlaufen des Schritts S1C zurück.
- 36 -
In Fig. 13 ist ein Beispiel für die Decodiertabel1e eines Schwarzcodes veranschaulicht, die in gleicher Weise wie die Decodiertabel1e nach Fig. h aufgebaut ist. Wie aus der Decodiertabelle nach Fig. 13 hervorgeht., liegt der erste Endknoten zwei Zweige von der Wurzel 1 entfernt, so daß die Anzahl der zuerst einzuspeisenden Eingangscodebits = "2" ist. Wie aus den Figuren h und 13 ersichtlich ist, enthalten die dort dargestellten Decodiertabel1 en ungenutzte Adressen Cbeispielsweise die Adressen <0A> und <0B> in Fig. 13), so daß der Decodiertabel1enspeicher in dieser Hinsicht nicht wirtschaftlich ausgenutzt wird. Durch eine Ausgestaltung des Decodiertabel1enspeichers derart, daß solche nutzlosen Adressen nicht existieren, kann die Speicherkapazität weiter verringert werden.
Da das Ausführungsbeispiel nach Fig. 7 einen Einwort-8-Bit-Speieher als Decodiertabel1enspeieher 16 und 8 Bit als Information für das decodierte Ergebnis sowie 8 Bit zur Bestimmung der als nächstes abzufragenden Adresse benutzt, ist die Anzahl der für jeden Code zuerst einzuspeisenden Eingangsbits = "4", welche in dem Speicher 23 gesetzt wird. Es ist jedoch möglich, eine solche Anordnung zu treffen, daß dann, wenn die Anzahl der zu einem Zeitpunkt einzuspeisenden Bits einschließlich der Anzahl der zuerst einzuspeisenden Bits =· "2" oder weniger ist, die Anzahl der einzuspeisenden Bits stets durch eine Information bestimmt wird, welche die Anzahl der Eingangsbits In den von dem Decodiertabel1enspeicher 16 ausgelesenen Daten festlegt. Durch Selektion der ein Wort des Decod i ertabel 1 enspe ichers 16 bildendenAnzahl von Bits auf mehr als 8 ist es möglich, daß dann, wenn die An-
- 37 -
zahl der zu einem Zeitpunkt einzuspeisenden Bits einsch!ießlich der Anzahl der zuerst einzuspeisenden Bits größer als 2 ist, die entsprechend einer maximalen Anzahl von Eingangsbits einzuspeisende Anzahl von Bits ebenfalls stets von der Information bestimmt wird, weiche die Anzahl der Eingangsbits aufgrund der aus dem Decodiertabel1enspeieher 16 ausgelesenen Daten festlegt.
Mit Hilfe der vorstehend erläuterten, erfindungsgemäßen Decodiervorrichtung Ist es möglich, die erforderliche Kapazität des Decodiertabel1enspeichers zu Verringern. In Fig. 14 sind die erforderlichen Speicherkapazitäten für verschiedene Decodierverfahren dargestellt. Auf der Abszisse des dargestellten Diagrammes sind die einzelnen Decodierverfahren aufgetragen. Das Verfahren Nr. 1 benutzt eine Codetabelle, bei welchem die Code der gespeicherten Codetabelle sequentiell zum Vergleich mit-einem Eingangscode erzeugt werden, um ein auf dem Vergleich hiermit basierendes Decodierergebnis zu erzielen. Die Beispiele Mr. 2, Nr. 3 und Nr. 4 beziehen sich jeweils auf das anhand von Fig. 7 beschriebene Decodierverfahren, wobei Nr. 2 den Fall betrifft, bei dem die Anzahl der Eingangscodebits als bevorzugter Wert jedes Knotens des Codebaums selektiert wird, Nr. 3 den FaI1 betrifft, bei dem die Anzahl der zu einem Zeitpunkt einzuspeisenden Bits = "1", "2" und "4" gewählt wird, und Nr. den Fall betrifft, bei dem die Anzahl der zu einem Zeitpunkt einzuspeisenden Bits = "1" oder "2" gewählt wird. Das Beispiel Nr. 5 zeigt das anhand von Fig. 1 erläuterte Bit-füi—Bit-Decodierverfahren. Die Beispiele Nr. bis Nr. 10 beziehen sich jeweils auf ein anhand von
Fig. 10 beschriebenes Decodierverfahren. Bei den Beispielen Nr. 6 bis Nr. 10 wird die festgelegte Anzahl der zu einem Zeitpunkt einzuspeisenden Bits = "2", "3", "4", "5" bzw. "6" gewählt. Die Beispiele Nr. 11 bis Nr. 17 beziehen sich jeweils auf ein anhand von Fig. 3 erläutertes Decodierverfahren. Bei den Beispielen Nr. 11 bis Nr. 17 wird die Anzahl der zu einem Zeitpunkt einzuspeisenden Bits = "7", "8", "9", "10", "11", "12" bzw. "13" gewählt. Auf der Ordinate des Diagramms nach Fig. 14 ist die Speicherkapazität aufgetragen. Die Kurve 63 gibt den Fall der Benutzung eines Einwort-16-Bit-Speichers an, während die Kurve 16 den Fall einer Benutzung eines Einwort-8-Bit-Speichers veranschaulicht. Aus Fig. 14 ist ersichtlich, daß die für die Vorrichtung nach Fig. 7 erforderliche Speicherkapazität gleich dem Minimum der für die bekannten Decodierverfahren erforderlichen Speicherkapazitäten ist und insbesondere etwa ein Drittel der kleinsten, bei dem Verfahren nach Fig. 3 erforderlichen Speicherkapazität beansprucht. Bei der Vorrichtung nach Fig. 10 führt eine Vergrößerung der Anzahl der zuerst einzuspeichernden Bits zwar zu einer Vergrößerung der erforderlichen Speicherkapazität, doch ist diese Speicherkapazität geringer oder im wesentlichen gleich der bei dem Verfahren nach Fig. 3 erforderlichen Speicherkapazität.
In Fig. 15 ist die Anzahl der für die verschiedenen Decodierverfahren erforderlichen Abfragezyklen veranschaulicht. Auf der Abszisse des dargestellten Diagramms sind die gleichen Verfahren wie bei dem Diagramm nach Fig. 14 aufgetragen, während auf der Ordinate des Diagramms die Anzahl der Abfragezyklen aufgetragen ist.
- 39 -
Die Kurven 65 und 65' weisen jeweils die maximale Anzahl der Abfragezyklen aus, während die Kurven 66 und 66' eine mittlere Anzahl von Abfragezyklen und die Kurven 67 und 67' eine bezüglich der Wahrscheinlichkeit des Auftretens jedes Codes gewichtete mittlere Anzahl von Abfragezyklen ausweisen. Die Kurven 65', 66' und 67' zeigen jeweils den Fall der Verwendung eines Einwort~16-Bit-Speichers, während die übrigen Kurven jeweils den Fall der Verwendung eines Einwort-8 —Bit-Speichers zeigen. Aus Fig. 15 ist ersichtlich, daß die bei der erfindungsgemäßen Decodiervorrichtung erforderliche Anzahl von Abfragezyklen wesentlich geringer ist als die bei dem Bit-für—Bit-Decodierverfahren Nr. 5 erforder 1iehe Anzahl von Abfragezyklen und nur geringfügig größer ist als im Falle der bekannten Decodiervorrichtung nach Fig. 3. Betrachtet man die Kurve für die gewichtete mittlere Anzahl der Abfragezyklen, welche die in der Praxis am häufigsten vorkommenden Fälle betrifft, so ist die erfindungsgemäße Decodiervorrichtung ziemlich gleichwertig mit der Decodiervorrichtung nach Fig. 3.
In Fig. 16 sind unter Zugrundelegung der vorstehenden Fakten die Kapazität des Decodiertabel1enspeichers und die Anzahl der Abfragezyklen jeder einzelnen Decodiervorrichtung in Form einer Tabelle veranschaulicht, wobei als Bezugsgrößen 1 der in der Tabelle angegebenen Werte die Kapazität des Decodiertabel1enspeichers und die Anzahl der Abfragezyklen der Decodiervorrichtung nach Fig. 7 herangezogen sind.
Wie aus den vorstehenden Erläuterungen hervorgeht., wird bei der erfindungsgemäßen Decodiervorrichtung die Anzahl der als nächste einzulesenden Codebits durch Auslesen des Decodiertabel1enspeichers bestimmt, während zur Festlegung der als nächste abzufragenden Adresse eine zusätzliche oder ähnliche Operation bezüglich des aus dem Decodiertabellenspeicher ausgelesenen Datenwortes und des eingespeisten Codewortes durchgeführt wird, wobei dann unter Verwendung der Adresse der gleiche Decodiertabel1enspeicher abgefragt wird. Diese Vorgehensweise verringert die Speicherkapazität und die Anzahl der Abfragezyklen bzw. Abfragevorgänge, wodurch eine hohe Decodiergeschwindig ke it bei einer geringen Baugröße der Hardware er— reicht wird. Ferner wird im Falle des Ausführungsbeispiels nach Fig. 7 bei der Decodierung eines Code das vordere Bit des Eingangscode das erste Bit des nächsten Code_, wodurch die nachfolgende Verarbeitung erleichtert wird.
Während bei den vorstehend beschriebenen Ausführungsbeispielen die als nächste abzufragende Adresse durch Addition des aus dem Decodiertabei1enspeicher ausgelesenen Datenwortes mit dem Eingangscodewort erhalten wird, ist es ebenso möglich, diese Adresse durch andere Operationen, wie beispielsweise einer Subtraktion oder eine Multiplikation, zu erhalten. Die anhand der Decodierung des modifizierten Huffman-Code, bei dem die Informationen über die Codeart, d.h., Aufbaucode oder Schlußcode, in dem Endcode enthalten ist, er— folgte Erläuterung der verschiedenen Ausführungsformen der erfindungsgemäßen Decodiervorrichtung ist
31Ί77ΠΛ
vj 1 O / / U *+
lediglich beispielhaft; im Falle eines reinen Hufmanti-Code sind die Informationen über die Codeart nicht erforderlich. Ferner läßt sich die vorliegende Erfindung auch auf die Decodierung von Code variabler Länge anwenden, die generell durch einen Codebaum gebildet werden.
Leerseite

Claims (1)

  1. PATENTANSPRÜCHE
    Vorrichtung zum Decodieren eines bandförmigen Codes variabler Länge, bei der eine Decodier— tabelle in einem Speicher eingespeichert ist und eine Einrichtung zum Auslesen von Daten aus dem Speicher Zugriff zu dem Speicher besitzt, wobei die ausgelesenen Daten von einer Entscheidungseinrichtung in Enddaten oder in Zwischendaten eingestuft werden, wobei im Falle von Enddaten eine Information über das Ergebnis der Decodierung der Enddaten von einer Ausgabeeinrichtung ausgegeben wird, während im Falle von Zwischendaten der Decodiertabel1enspeieher nach Maßgabe einer in den Zwischendaten enthaltenen Adressinformation ausgelesen wird, dadurch gekennzeichnet, daß der Decodiertabel1enspeieher C16D einen Speicherbereich zum Speichern der Enddaten (Fig. 5A) einschließlich
    .::...:.':J :?'*j .:. 313770a
    einer Information über den Abschluß der Decodierung sowie einen weiteren Speicherbereich zum Speichern der Zwischendaten CFig. 5B) einschließlich einer Information über den noch nicht erfolgten Abschluß der Decodierung, einer Information über die Anzahl der von einem Eingangscodezug einzuspeisenden Bits und einer Information zur Bestimmung der Adresse des abzufragenden Decodiertabel1enspeichers aufweist, daß eine Eingangsschaltung C24, 26, 36) vor— gesehen ist, welche im Falle von Zwischendaten aus dem Eingangscodezug Daten einspeist, wobei die in den Zwischendaten enthaltene Information über die Bitanzahl die Anzahl der einzuspeisenden Bits angibt und daß eine Adressierschaltung C22) vorgesehen ist, welche im Falle von Zwischendaten die darin enthaltene Information über die Adresse des abzufragenden Decodiertabel1enspeichers und die von der Eingangsschaltung C2*f, 26, 36) eingespeisten Daten verarbeitet, um die Adresse des nächsten abzufragenden Decodiertabel1enspeichers zu erhalten.
    Decodiervorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Information über die Anzahl der einzuspeisenden Bits als variable Zahl kleiner als die Anzahl der Zweige zwischen einer Wurzel bzw. Innenknoten und dem dazu nächstllegenden Endknoten des Codebaums gewählt ist.
    Decodiervorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Anzahl derjenigen Bits, welche von jedem Code des Eingangscodezuges zuerst einzuspeisen sind, in einem von dem Decodiertabel1enspeicher getrennten Startdatenspeicher gespeichert ist.
    ".!:Γ.:.ν':..:"::;·Ο I 313770a
    Vorrichtung zum Decodieren eines baumförmigen Codes variabler Länge, bei der eine Decodier— tabelle in einem Speicher eingespeichert ist und eine Einrichtung zum Auslesen von Daten aus dem Speicher Zugriff zu dem Speicher besitzt, wobei die ausgelesenen Daten von einer Entscheidungseinrichtung in Enddaten oder in Zwischendaten eingestuft werden, wobei im Falle von Enddaten eine Information über das Ergebnis der Decodierung der Enddaten von einer Ausgabeeinrichtung ausgegeben wird, während im Falle von Zwischendaten der Decodiertabel1enspeieher nach Maßgabe einer in den Zwischendaten enthaltenen Adressinformation ausgelesen wird, dadurch gekennzeichnet, daß der Decodier— tabel1enspeicher C163 einen Speicherbereich zum Speichern der Enddaten einschließlich einer Infor— mation über den Abschluß der Decodierung, einer Information über ein decodiertes Ergebnis und einer Information über die Anzahl der von jedem Code zuerst einzuspeisenden Bits sowie einen weiteren Speicherbereich zum Speichern der Zwischendaten einschließlich einer Information über den noch nicht erfolgten Abschluß der Decodierung und einer Infoi— mation zur Bestimmung der Adresse des abzufragenden Decodiertabel1enspeichers aufweist, daß eine Eingangsschaltung (24, 26, 35) vorgesehen ist, welche im Falle von Zwischendaten aus dem Eingangscodezug die Daten einer festgelegten Anzahl m von Bits einspeist, wobei m eine ganze Zahl gleich 2 und mehr ist, daß eine Adressierschaltung (22) vorgesehen ist, welche im Falle von Zwischendaten die Information zur Bestimmung der Adresse des abzufragenden Decodiertabellenspeichers und die von der Eingangsschaltung (24, 26, 35) eingespeisten Daten verarbeitet, um die Adresse des nächsten abzufragenden Decodier-
    tabel1enspeichers zu erhalten,
    daß eine Schaltung C12) zur wiederholten Inbetriebsetzung der Ausleseschaltung, der Eingangsschaltung, der Entscheidungseinrichtung und der Adressierschaltung bis zum Auslesen der Enddaten vorgesehen ist, und daß eine zweite Eingangsschaltung C24, 26, 37) vorgesehen ist, welche im Falle von Enddaten aus dem Eingangscodezug Daten einspeist, wobei die in den Enddaten enthaltene Information über die Bitanzahl die Anzahl der einzuspeisenden Bits angibt.
    5. Decodiervorrichtung nach Anspruch 4, dadurch gekennzeichnet, daß die Information über die Anzahl der zuerst einzuspeisenden Bits gleich L - Cn-Om ist, wobei I. d i e zu diesem Zeitpunkt decodierte Codelänge und in die Anzahl der für die Decodierung vor— genommenen Zugriffe zu dem Decodiertabel1enspeieher i st.
    6. Decodiervorrichtung nach Anspruch 4, gekennzeichnet durch eine Einrichtung zum Speichern der festgelegten Anzahl m von einzuspeisenden Bits für den Fall, daß die Entscheidungseinrichtung die ausgelesenen Daten als Zwischendaten einstuft.
    7. Decodiervorrichtung nach Anspruch 1 oder 4, dadurch gekennzeichnet, daß die Enddaten eine Infor— mat ion über die Art des decodierten Codes enthalten.
    8. Decodiervorrichtung nach Anspruch 7, dadurch gekennzeichnet, daß die Ausgangsschaltung so ausgebildet ist, daß sie für den Fall, daß die Entscheidungseinrichtung die ausgelesenen Daten als Enddaten ein-
    stuft, die Bestimmung der in den Enddaten enthaltenen Information über das decodierte Ergebnis
    in Abhängigkeit von der in den Enddaten enthaltenen Information über die Codeart ändert.
    9. Decodiervorrichtung nach Anspruch 1 oder 4-, dadurch gekennzeichnet, daß die Adressierschaltung C22) eine Schaltungseinrichtung zur Durchführung einer
    Addition ist.
    10. Decodiervorrichtung nach Anspruch 1 oder 4, dadurch gekennzeichnet, daß in den Datenformaten der End-
    und Zwischendaten dasselbe Bit der Information über den Abschluß der Decodierung und der Information
    über den noch nicht erfolgten Abschluß der Decodierung zugeordnet ist.
    11. Decodiervorrichtung nach Anspruch 1 oder 4, dadurch gekennzeichnet, daß sich in den Datenformaten der
    End- und Zwischendaten die Bitzuordnung zu der Information über das decodierte Ergebnis und die Bitzuordnung zu der Information zur Bestimmung der
    Adresse des abzufragenden Decodiertabel1enspeichers wenigstens gegenseitig überlappen.
DE19813137704 1980-09-22 1981-09-22 Vorrichtung zum Decodieren eines baumförmigen Codes variabler Länge Expired DE3137704C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP13186280A JPS5755668A (en) 1980-09-22 1980-09-22 Decoding method for run-length code

Publications (2)

Publication Number Publication Date
DE3137704A1 true DE3137704A1 (de) 1982-04-15
DE3137704C2 DE3137704C2 (de) 1986-01-09

Family

ID=15067855

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19813137704 Expired DE3137704C2 (de) 1980-09-22 1981-09-22 Vorrichtung zum Decodieren eines baumförmigen Codes variabler Länge

Country Status (5)

Country Link
JP (1) JPS5755668A (de)
DE (1) DE3137704C2 (de)
FR (1) FR2490899A1 (de)
GB (1) GB2084366B (de)
NL (1) NL190094C (de)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3330845A1 (de) * 1982-08-26 1984-03-01 Canon K.K., Tokyo Lauflaengen-code-decoder
US4800441A (en) * 1986-02-28 1989-01-24 Kabushiki Kaisha Toshiba Binary data compression and expansion processing apparatus
US4860324A (en) * 1986-07-03 1989-08-22 Canon Kabushiki Kaisha Information data recovering apparatus

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59225676A (ja) * 1983-06-06 1984-12-18 Usac Electronics Ind Co Ltd ビツト長可変符号発生回路
JPS6041883A (ja) * 1983-08-17 1985-03-05 Fujitsu Ltd 符号化デ−タの復号方式
JPS6098768A (ja) * 1983-11-04 1985-06-01 Sony Corp ランレングス符号のデコ−ド方法
JPS61139069U (de) * 1985-02-18 1986-08-28
GB2178577B (en) * 1985-07-27 1989-01-11 Plessey Co Plc A signal converter
JP3227292B2 (ja) * 1993-12-20 2001-11-12 キヤノン株式会社 符号化装置、符号化方法、復号化装置、復号化方法、符号化復号化装置及び符号化復号化方法
US6408102B1 (en) 1993-12-20 2002-06-18 Canon Kabushiki Kaisha Encoding/decoding device
KR0152038B1 (ko) * 1994-10-17 1998-10-15 김광호 상대 주소를 이용한 가변장 복호화 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3883847A (en) * 1974-03-28 1975-05-13 Bell Telephone Labor Inc Uniform decoding of minimum-redundancy codes

Family Cites Families (4)

* Cited by examiner, † Cited by third party
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
GB1332631A (en) * 1971-02-26 1973-10-03 Ibm Data processing system
US3835467A (en) * 1972-11-10 1974-09-10 Ibm Minimal redundancy decoding method and means
US3918047A (en) * 1974-03-28 1975-11-04 Bell Telephone Labor Inc Decoding circuit for variable length codes

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3883847A (en) * 1974-03-28 1975-05-13 Bell Telephone Labor Inc Uniform decoding of minimum-redundancy codes
DE2513862A1 (de) * 1974-03-28 1975-10-02 Western Electric Co Vorrichtung zum dekodieren

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Proceedings of the IEEE, 1980, Bd.68, Nr.7, S.854-867 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3330845A1 (de) * 1982-08-26 1984-03-01 Canon K.K., Tokyo Lauflaengen-code-decoder
US4800441A (en) * 1986-02-28 1989-01-24 Kabushiki Kaisha Toshiba Binary data compression and expansion processing apparatus
US4860324A (en) * 1986-07-03 1989-08-22 Canon Kabushiki Kaisha Information data recovering apparatus

Also Published As

Publication number Publication date
GB2084366B (en) 1985-07-03
JPS5755668A (en) 1982-04-02
DE3137704C2 (de) 1986-01-09
JPS6338153B2 (de) 1988-07-28
FR2490899A1 (fr) 1982-03-26
FR2490899B1 (de) 1984-12-28
GB2084366A (en) 1982-04-07
NL190094C (nl) 1993-10-18
NL190094B (nl) 1993-05-17
NL8104352A (nl) 1982-04-16

Similar Documents

Publication Publication Date Title
DE2139731C2 (de) Anordnung zur Code-Umsetzung
DE2210044C2 (de) Verfahren zum Umsetzen von Codewörtern
DE602004010922T2 (de) Speicher und stromeffizienter mechanismus für schnelles tabellennachschlagen
DE2508706C2 (de) Schaltungsanordnung zur Codierung von Datenbitfolgen
DE2264090C3 (de) Datenverdichtung
DE2205422A1 (de) Verfahren zur Verarbeitung verdichteter Daten
DE2614916C2 (de) Konverter zur Codeumwandlung
EP0230437B1 (de) Verfahren zum komprimieren und dekomprimieren mehrerer strukturverwandter datenfolgen sowie einrichtungen zur durchführung des verfahrens
DE2227148A1 (de) Verfahren zur verarbeitung digitaler daten
DE2208664A1 (de) Verfahren zur Decodierung eines vorsatzfreien Verdichtungscodes veränderlicher Länge
DE3330845C2 (de)
DE2801988A1 (de) Arithmetische codierung von symbolfolgen
DE2725395B2 (de) Einrichtung zur Echtzeittransformation von m in Zeilen angeordneten Wörtern der Bitlänge n in n in Spalten angeordnete Wörter der Bitlänge n
DE3137704A1 (de) Vorrichtung zum decodieren eines baumfoermigen codes variabler laenge
DE3711201C2 (de)
DE2652459A1 (de) Umsetz-vorrichtung
DE3121742A1 (de) Mikroprogrammsteuerverfahren und -einrichtung zu dessen durchfuehrung
DE2900586C2 (de) Anordnung zum Decodieren von Codewörtern variabler Länge
DE3303269A1 (de) Verfahren und vorrichtung zur division von bcd-zahlen
DE2525394C3 (de) Verfahren und Schaltungsanordnung zum Übertragen, Einspeichern und Ausspeichern von binärcodierten Datenblöcken
DE3341339C2 (de) Befehlsfolgegenerator
EP0427884A1 (de) Verfahren und Anordnung zum Komprimieren und Dekomprimieren von Daten
DE3417816A1 (de) Programmierbares schaltnetz
DE2063565C3 (de) Verfahren und Vorrichtung zur Umwandlung von in einem Code m aus n auftretenden Eingangssignalen in normale binär codierte Eingangssignale
DE3407831C2 (de)

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: NIPPON TELEGRAPH AND TELEPHONE CORP., TOKIO/TOKYO,

8328 Change in the person/name/address of the agent

Free format text: HOFFMANN, E., DIPL.-ING., PAT.-ANW., 82166 GRAEFELFING