DE3137704A1 - Vorrichtung zum decodieren eines baumfoermigen codes variabler laenge - Google Patents
Vorrichtung zum decodieren eines baumfoermigen codes variabler laengeInfo
- 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
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
-
- 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/4025—Conversion 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)
- PATENTANSPRÜCHEVorrichtung 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 .:. 313770aeiner 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 313770aVorrichtung 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.
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)
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)
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)
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)
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 |
-
1980
- 1980-09-22 JP JP13186280A patent/JPS5755668A/ja active Granted
-
1981
- 1981-09-15 GB GB8127757A patent/GB2084366B/en not_active Expired
- 1981-09-21 FR FR8117756A patent/FR2490899A1/fr active Granted
- 1981-09-22 NL NL8104352A patent/NL190094C/xx not_active IP Right Cessation
- 1981-09-22 DE DE19813137704 patent/DE3137704C2/de not_active Expired
Patent Citations (2)
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)
Title |
---|
Proceedings of the IEEE, 1980, Bd.68, Nr.7, S.854-867 * |
Cited By (3)
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 |
FR2490899B1 (de) | 1984-12-28 |
GB2084366A (en) | 1982-04-07 |
JPS6338153B2 (de) | 1988-07-28 |
NL8104352A (nl) | 1982-04-16 |
FR2490899A1 (fr) | 1982-03-26 |
DE3137704C2 (de) | 1986-01-09 |
NL190094B (nl) | 1993-05-17 |
NL190094C (nl) | 1993-10-18 |
JPS5755668A (en) | 1982-04-02 |
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 | |
DE69025033T2 (de) | Vorrichtung zur Dekodierung von Kode variabler Länge und geeignetes Adresssteuerungsverfahren | |
DE2264090C3 (de) | Datenverdichtung | |
DE2205422A1 (de) | Verfahren zur Verarbeitung verdichteter Daten | |
DE2614916C2 (de) | Konverter zur Codeumwandlung | |
DE2227148A1 (de) | Verfahren zur verarbeitung digitaler daten | |
DE2208664A1 (de) | Verfahren zur Decodierung eines vorsatzfreien Verdichtungscodes veränderlicher Länge | |
DE69329092T2 (de) | Huffman-Kode-Decodierungsschaltung | |
DE3330845C2 (de) | ||
DE2652459C2 (de) | Umsetzvorrichtung für Binärsignale variabler Länge | |
DE69125424T2 (de) | Vorrichtung zur variablen Längenkodierung und Vorrichtung zur variablen Längendekodierung | |
DE3137704A1 (de) | Vorrichtung zum decodieren eines baumfoermigen codes variabler laenge | |
DE68923012T2 (de) | Kodierungs- und Dekodierungsverfahren variabler Länge, Kodierungs- und Dekodierungsvorrichtung zur Ausführung dieses Verfahrens. | |
DE3121742A1 (de) | Mikroprogrammsteuerverfahren und -einrichtung zu dessen durchfuehrung | |
DE2900586C2 (de) | Anordnung zum Decodieren von Codewörtern variabler Länge | |
DE2727627C2 (de) | Dekoder zur Parallelumsetzung von binären Zeichendaten in ein Punktmatrixformat | |
DE69428662T2 (de) | System mit geringem Speicherbedarf zur Kodierung und Dekodierung von Zweipegelsymbolen und zugehöriges Verfahren | |
DE68926597T2 (de) | Mikrorechner | |
DE3303269A1 (de) | Verfahren und vorrichtung zur division von bcd-zahlen | |
DE69320147T2 (de) | Vorrichtung zur Bildkodierung | |
DE2525394C3 (de) | Verfahren und Schaltungsanordnung zum Übertragen, Einspeichern und Ausspeichern von binärcodierten Datenblöcken | |
EP0427884B1 (de) | Verfahren und Anordnung zum Komprimieren und Dekomprimieren von Daten |
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 |