DE2735319A1 - Schaltungsanordnung zur zusammenhaengenden codierung von zeichen und zur zeichendecodierung der ursprungszeichen - Google Patents

Schaltungsanordnung zur zusammenhaengenden codierung von zeichen und zur zeichendecodierung der ursprungszeichen

Info

Publication number
DE2735319A1
DE2735319A1 DE19772735319 DE2735319A DE2735319A1 DE 2735319 A1 DE2735319 A1 DE 2735319A1 DE 19772735319 DE19772735319 DE 19772735319 DE 2735319 A DE2735319 A DE 2735319A DE 2735319 A1 DE2735319 A1 DE 2735319A1
Authority
DE
Germany
Prior art keywords
coding
characters
read
register
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.)
Withdrawn
Application number
DE19772735319
Other languages
English (en)
Inventor
Richard Fairbanks Arnold
Yitzhak Dishon
Norman Ken Ouchi
Marshall I Schor
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2735319A1 publication Critical patent/DE2735319A1/de
Withdrawn 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/4025Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code constant length to or from Morse code conversion
    • 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

Landscapes

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

Description

Anmelderin: International Business Machines Corporation, Armonk, N.Y. 10504
Schaltungsanordnung zur zusammenhängenden Codierung von Zeichen und zur Zeichendecodierung der Ursprungszeichen
Die Erfindung betrifft eine Schaltungsanordnung zur zusammenhängenden Codierung von Zeichen und zur Zeichendecodierung der Ursprungszeichen entsprechend dem Oberbegriff des Patentanspruchs 1.
Insbesondere wird dabei ein Mechanismus angesprochen zur Lösung von Doppeldeutigkeiten bei Übergängen zwischen Zeichenfolgen verschiedener Alphabete. Damit ist auch bei der Codierung die Zuordnung optimaler unterschiedlicher Wortlängen möglich. Des weiteren ermöglicht die Erfindung die Sinndeutung trennungsloser Bitfolgen von Worten mit unterschiedlicher Wortlänge und die Auflösung von Doppeldeutigkeiten bei der Decodierung zu Darstellungen mit fester Wortlänge.
Die Umcodierung fest gegebener Wortlängen zu unterschiedlichen Wortlängen besteht aus der Zuordnung je eines Codewortes c(a) unterschiedlicher Länge zu einem Codewort b(a) fester Länge. Jedes Codewort fester Länge sei ein Zeichen "a" in einem Quellalphabet "A".
Da b(a) sowohl ein Zeichen a. in A. als auch a. in A_ bedeuten kann, sind Doppeldeutigkeiten sowohl beim Codieren als auch beim Decodieren zu erwarten. Der Codierer muß bestimmen, wenn ein übergang von einem Alphabet in ein anderes stattfindet, um eine optimale Codezuordnung von c(a) bei variierender Wortlänge zu gewährleisten. Der Decodierer muß andererseits
SA 975 024 8098 10/0640
bestimmen, welches Alphabet seitens des Codierers benutzt wird, um eine kommalose Bitfolge richtig zergliedern und Codeworte b(a) gegebener Länge ordnungsgemäß den empfangenen Codeworten c(a) variierender Codelänge zuordnen zu können.
Wenn fest gegebene Längen für die Codeworte benutzt werden, ergeben sich Vorteile bezüglich Kosten und Leistungsfähigkeit beim Speichern, Übertragen und Verarbeiten von Zeichenalphabeten. Zu diesen Vorteilen gehört die Gleichartigkeit und Standardisierung der Speicherzellen und Registergrößen, die Zahl der Leiter bei Parallel-Datenkanälen und die reduzierte oder nicht bestehende Forderung nach einer Zeichenabgrenzung. Eine Wiedergabe in Form von Worten unterschiedlicher Länge ist jedoch ebenfalls sehr vorteilhaft beim Obertragen und Speichern, wenn die mittlere Wortlänge komprimierter Codeworte kürzer als die der Worte fester Länge ist.
Ein englischer Text kann mittels Worten vorgegebener Länge aus verschiedenen Alphabeten maschinengeschrieben werden. Es soll z.B. ein Alphabet mit A, B,..., Z, ein Alphabet mit Kleinbuchstaben a, b,..., ζ und ein Alphabet von Ziffern und Zeichen 1, 2, 3,..., %, + usw. verwendet werden. Es wäre möglich, einen Code mit Worten fester Länge L aufzustellen, dessen Kapazität gegeben ist durch 2 > T = Zahl der Großbuchstaben plus Zahl der Kleinbuchstaben usw. Wenn jedoch R <T ist, dann sind einige Codeworte b(a) doppeldeutig. Die Kosten-, abwägungen mögen dabei ergeben, daß die Vergrößerung der Länge L von b(a) aufwendiger ist als die Verwendung von Mechanismen zur Lösung der Doppeldeutigkeit.
Die Umcodierung von fester in variierende Wortlänge wird dann interessant, wenn die Darstellung in variierender Wortlänge eine verdichtete Wiedergabe ermöglicht. Eine Verdichtung wird erreicht unter Anwendung gewisser statistischer Regelmäßigkeiten bezüglich des Quellalphabets. Die am häufigsten ver-SA 975 024 809810/0640
wendete Regelmäßigkeit nutzt die Anordnung der Zeichen nach ihrer durchschnittlichen Häufigkeit und Zuordnung der kürzesten Codeworte zu den Zeichen, die am häufigsten vorkommen. Dies kann dazu führen, daß die am seltensten vorkommenden Zeichen sehr langen Codeworten entsprechen. Eine obere Begrenzung der Codewortlänge ist durch die verwendete Registergröße gegeben. Um lange Register zu vermeiden, werden die wenig häufigen Zeichen, deren variierende Codewortlänge mehr als die Länge eines vorgegebenen Registers benötigt, mit einem speziellen Vorsatz übertragen, auf den das Zeichen in nicht codierter Ursprungsform übertragen wird. Dies bedeutet, daß die Ausgabe des Codierers aus häufigen Codeworten mit unterschiedlicher Wortlänge und wenig häufigen Worten vorgegebener Länge mit Spezialvorsatz besteht.
Die Codiererausgabe kann als serielle, trennungslose Bitfolge mit Codeworten variierender Länge erfolgen. Die Einfügung von Kommas oder Trennungen zwischen die einzelnen variierenden Worte würde den erwarteten Vorteil andererseits scharf beschneiden.
Der Stand der entsprechenden Technik mit vielen Beispielen von Codierern mit fester und variierender Wortlänge ist sehr umfangreich. Zum Beispiel beschreibt Blasbalg in der US-PS 3 237 170 und der entsprechenden DT-PS 12 49 924 einen anpassungsfähigen Verdichter, der die Zuordnung von Codeworten variierender Länge nach der Statistik der relativen Auftretenshäufigkeit im Quellalphabet betreibt. Wernikoff führt gemäß seiner US-PS 3 394 352 jedes Wort vorgegebener Länge parallel verschiedenartig aufgebauten Codierern zu; das kürzeste dabei aus einer Vielzahl ausgelesene Codewort wird mit einer Markierung verwendet, die die Decodierung ermöglicht.
Blasbalgs Erfindung wechselt die Länge der ausgegebenen Codeworte, hält dabei aber eine 1:1-Zuordnung zwischen eingege-
SA 975 024 8098 10/0640
-· 7 —
benen und ausgegebenen Zeichen bei. Dasselbe kann schließlich auch über Wernlkoffi Erfindung gesagt werden; die Ausgäbemarkierung kennzeichnet jeweils, welcher Codlerer/Decodierer zu verwenden ist. Das verbleibende Problem ist jedoch die Lösung von doppeldeutigen Umsetzungen, einerseits im Codierer und andererseits auch im Decodierer.
Die Aufgabe der vorliegenden Erfindung ist die Angabe einer Schaltungsanordnung zur Codierung von Zeichen fester Wortlänge und zur Rückumsetzung der gewonnenen Codierungen wechselnder Wortlänge, wobei das Probelm doppeldeutiger Codierungen und Decodierungen vermieden wird.
Die Lösung dieser Aufgabe ist im Patentanspruch 1 gekennzeichnet. Vorteilhafte Ausgestaltungen sind in den Unteransprüchen beschrieben.
Die Erfindung beruht auf der Beobachtung, daß ein sogenannter Markov-Prozessor eine Gedächtniseigenschaft aufweist und daß seine von Fall zu Fall wechselnden Bedingungen entsprechend empirisch-statistischen Beziehungen zwischen Codeworten vorgegebener und veränderlicher Länge modifiziert werden. Damit wird der Sinnzusammenhang gewahrt und die entsprechenden Alphabetteile identifiziert. Zum Beispiel mag die Vorkommenshäufigkeit eines bestimmten Großbuchstabens mit gegebenem Codewort vorgegebener Länge in einer Folge von K Großbuchstaben klein sein. Ein anderer Fall mag sein, daß b(a) nach einer beliebigen Folge von Kleinbuchstaben einem Großbuchstaben entspricht. Die Wahrscheinlichkeiten für die beiden vorgenannten Fälle sind vernachlässigbar. Diese Beobachtungen lassen jedoch eine Reihe von Folgerungen ziehen für die Zuordnung doppeldeutiger Zeichen zum gleichen oder nicht zum selben Alphabet, das vorab gerade gelaufen ist. Die exakten Regeln wechseln jedoch mit den erfahrungsgemäßen Statistikwer-
SA 975 024 809810/064Q
- 8 ten und dem Wechseln des Quellalphabets.
Der Erfindungsgegenstand wird anhand einer Anordnung beschrieben zur Erzeugung eines von mehreren Codeworten c(a^) und c(a), das der Binärwiedergabe b. (a) vorgegebener Wortlänge entspricht, wobei b(a) für die entsprechenden Quellalphabetzeichen steht, nämlich a. als Zeichen im Alphabet A. und a. als Zeichen im Alphabet A2. Die betrachtete Anordnung enthält ein Zustandsregister und eine Zustandsumschaltung zum Wechsel eines gegenwärtigen Zustande G des Registers auf einen einer Vielzahl nächster Zustände entsprechend einem gegebenen Signal S. bzw. S.; des weiteren einen Speicher, der c(a) und S als Funktion des Speicherplatzes für b(a) bei G enthält. Schaltkreise zur Erkennung der einzelnen Worte b(a) vorgegebener Länge und der gegebenen Zustandsdarstellung von G, die Zuführung des ausgelesenen Codewortes c(a) variierender Länge zum Ausgang sowie die Zuleitung des gebildeten Signals S zu den Schaltkreisen für die Zustandsumschaltung.
Die Zustandsumschaltung erfolgt entsprechend einem Schema von Markov-Prozessorzuständen und Umschaltwegen. Dieses Schema genügt gewissen statischen Regelmäßigkeiten bei Folgen von Codeelementen gegebener Länge und der relativen Wahrscheinlichkeit, daß eine oder mehrere aufeinanderfolgende Doppeldeutigkeiten bei bestimmten Folgen in einem gegebenen Alphabet auftreten und empirisch zu codieren bzw. zu decodieren sind. Der Markov-Prozessor beginnt bei einem beliebigen Zufallsanfangszustand und geht gemäß der laufenden Folge von Zeichen in einer Zustandsfolge weiter. Für ein beliebiges gegebenes b(a) und den gegenwärtigen Zustand G läßt sich das Alphabet A, c(a) und der Weg durch Tabellenauslesung bestimmen. c(a) ist dabei jeweils die augenblickliche Codiererausgabe. Gleichzeitig läßt die Zustandumschaltung das Register vom gegenwärtigen Zustand zum nächsten Zustand entsprechend dem Schema
sä 975 024 8098 10/0640
273F.319
und dem tabellenausgelesenen Wert für S wechseln.
Die Erfindung macht sich dabei die Tatsache zunutze, daß die mögliche Zahl von gegenwärtigen Codiererzuständen auf eine kleinere Zahl von Zuständen einschränkent schematisiert werden kann. Dies aufgrund der Tatsache, daß eine Folge von Zeichen im gleichen Alphabet die Anordnung in einer zu erwartenden Zustandfolge laufen läßt. Damit ist der Speicher- und Verarbeitungsumfang zur Durchführung der Codierung und Decodierung reduzierbar.
Für den Empfang einer Folge von Codeworten variierender Länge in Form einer ungetrennten Bitfolge enthält der Decodierer eine Codierungslogik und einen Markov-Prozessor für die sinngemäße Trennung der Zeichen in der Folge einerseits und zur Lösung der Frage, ob ein gegebenes c(a) das Zeichen b(a.) oder b(a.) darstellt. Dabei macht der Markov-Prozessor im Decodierer dieselbe Zustandfolge mit wie der Markov-Prozessor im Codierer,
Das gewählte Ausführungsbeispiel wird nachstehend anhand der zugehörigen Zeichnungen beschrieben.
Fig. 1A zeigt einige Beispiele von Codewortfolgen mit
Codeworten vorgegebener Länge mit und ohne Doppeldeutigkeiten und anzuwendende Verfahrensregeln .
Fign. 1B und 1C zeigen als Tabelle und als Schema eine Zu-
standsumschaltung, die die Regeln gemäß Fig. 1A anwendet.
Fig. 2 zeigt ein Register zur Speicherung der Identität des jeweiligen Zustande und einen die
SA 975 °24 809810/0640
einzelnen aufeinanderfolgenden Zustände verfolgenden Mechanismus.
Fign. 3Ά und 3B stellen den tabellarischen Inhalt eines codierenden und decodierenden Festwertspeichers dar.
Fig. 4 zeigt die Zusammenschaltung des Codierers und Decodierers nach der Erfindung.
Fig. 5Ά zeigt den logischen Aufbau des Codieres und Fig. 5B ein zugehöriges Zeitdiagramm.
Fig. 6A zeigt den logischen Aufbau des entsprechenden Decodierers und Fig. 6B wiederum ein zugehöriges Zeitdiagramm.
Es ist bekannt, daß Codeworte c variierender Länge jeweils 1:1 einem Zeichen eines gegebenen Alphabets zuordenbar sind. Die Codewortlänge L sei umgekehrt proportional der relativen Auftretenshäufigkeit P des jeweiligen Zeichens im Text. Algorithmen zur Minimierung der durchschnittlichen Länge von Codeworten variierender Länge zu den einzelnen Zeichen eines Alphabeths sind durch den Stand der Technik ebenfalls voll erfaßt. Dazu wird hingewiesen auf die DT-PS 21 44 113 entsprechend US-PS 3 675 211, DT-OS 21 39 731 entsprechend US-PS 3 675 212 und DT-OS 22 05 422 entsprechend US-PS 3 701 111. Diese basieren gänzlich oder zum Teil auf der Arbeit von Huffman, "A Method for the Construction of Minimum Redundancy Codes" in Proceedings of the IRE, September 1952, Seiten 1098 bis 1101.
sä 975 024 8098 10/0640
In Tabelle I sind zwei beliebige, verschiedene Alphabete A1 und A- dargestellt. Die Zeichen a. von A. entsprechen den Zahlen 1, 2, 3,...,7. Entsprechend enthält A_ die Kleinbuchstaben t bis z. Auf die relative Häufigkeit PU1) folgt ein nach Huffman codiertes Wort c(a.) optimaler Länge. Die Länge L(a.) des Codewortes c(a.) ist in der nächsten Spalte aufgeführt. Schließlich ist für jede Eingabe das Produkt P(a.)xL(a.) gebildet. Die Huffman-Codes wurden für beide Alphabete unabhängig ermittelt. Es ist dabei zu beachten, daß das minimale durchschnittliche Huffman-Produkt PxL für das Alphabet A1 0,34, dagegen das für A_ 0,25 ist. Daraus folgt, daß bezüglich ihrer Quellalphabete optimierte Codes nicht optimal sind, wenn verkettete Folgen ablaufen. Zu beachten ist insbesondere die Länge der wenig häufig vorkommenden Zeichen.
TABELLE I
ai P(a±) c(a±) L(a±) P(a±) aj P(a.) C (a ) L(a.) PUj)
XLU1) xL(a.)
1 0,20 10 2 0,40 t 0,10 000 3 0,30
2 0,18 OOO 3 0,54 U 0,09 1010 4 0,36
3 0,10 011 3 0,30 V 0,09 1011 4 0,36
4 0,10 110 3 0,30 W 0,07 1OO1 4 0,28
5 O,1O 111 3 0,30 X 0,06 1000 4 0,24
6 0,06 0101 4 0,24 y 0,03 1 1110 5 0,15
7 0,06 00100 5 0,30 Z 0,01 111 1 1110 8 0,08
Durchschnitt = 2 ,38/7 = 0,34 Durchschnitt = 1, 77/7 ■ 0,25
In Fig. 1A sind Folgen alphabetischer Codeworte gegebener Länge dargestellt. Zur Beschreibung der vorliegenden Erfindung wird angenommen, daß diese Folgen, ihre Statistiken und ihre
SA 975 024
809810/0640
Quellalphabete völlig willkürlich sind. Jedes Zeichen a^ in der Figur ist ein Zeichen des Alphabets A. und jedes Zeichen a, ein Zeichen des Alphabets A„.
Folgen von Codeworten gegebener Länge, die Zeichen im gleichen Alphabet bedeuten, wie b(a.) , b(a.), ... b(a.) erfordern, daß die Anordnung zur Codierung und Decodierung des nächsten Zeichens im gleichen Alphabet verbleibt. Sobald eine Folge durch ein einziges doppeldeutiges Zeichen (?) unterbrochen wird, verbleibt die Anordnung noch im gleichen Alphabet. Ein doppeldeutiges Zeichen kann jedoch andeuten, daß ein Alphabetwechsel vorliegt. Bei Folgen im Alphabet A1, die durch zwei zweifelhafte Zeichen (2)@ unterbrochen sind, ist auf das andere Alphabet A_ zur Codierung und Decodierung des nächsten Zeichens überzugehen. Wenn Folgen im Alphabet A- durch vier aufeinanderfolgende zweideutige Zeichen ©©(D© unterbrochen werden, dann ist zum ersten Alphabet A1 zurückzugehen.
In den Fign. 1B und 1C ist eine Zustandsübergangstabelle und ein entsprechendes Übergangsschema dargestellt. Die Anordnung muß genügend Erinnerungskapazität für die Zustände bis zu vier aufweisen. Dies entspricht den Notwendigkeiten beim Alphabet A-, bei dem vier zweideutige Zeichen aufeinanderfolgen können. Die Zustandsübergangstabelle beruht auf der Annahme, daß die Anordnung zu Beginn in irgend einem internen Zustand steht. Dann wird für jede Kombination von Folgen ein neuer Zustand definiert, zu dem die Anordnung vom Anfangszustand aus hinlaufen kann. Für jeden Zustand, zu dem die Anordnung vom ersten Zustand aus hingegangen sein kann, wird dieser Prozeß zur Bestimmung von Folgezuständen wiederholt. Ein graphisches Schema des Tabelleninhalts ist das in Fig. 1C dargestellte. Die Tabelle und das Schema können wie folgt gelesen werden:
SA 975 024 8098 10/06AO
Angenommen, daß die Anordnung zuerst Im Zustand 1 steht und ein Zeichen b(a.) zur Codierung empfangen wird; die Anordnung geht dann in den Zustand 2 auf dem mit "1" bezeichneten Weg über. Wenn dagegen b(a.) zur Codierung zugeführt wird, verbleibt die Anordnung im gleichen Zustand 1.
Wenn beim Start im Zustand 1 eine Folge von Zeichen b(a.) b(a.), ..., b(a.) aufgenommen wird, dann geht die Anordnung durch die aufeinanderfolgenden Zustände 1, 2, 3, 4 hindurch und bleibt im Zustand 5. Wenn andererseits von irgendeinem anderen Anfangszustand ausgegangen wird und eine Folge b(a.), ..., b(a.) zu verarbeiten ist, geht die Anordnung zurück zum Zustand 1.
Die die verschiedenen aufeinanderfolgenden Zustände verbindenden Wege sind mit i bzw. j bezeichnet. Eine Folge im gleichbleibenden Alphabet läßt die Anordnung entweder zum Zustand 1 oder zum Zustand 5 hinstreben. Dies wird anhand der Beschreibung der Fig. 2 erläutert.
In Fig. 2 ist ein Register 7 zur Speicherung der Identität des gegenwärtigen Zustande und ein Zustandswechsel-Verfolgungsmechanismus dargestellt. Der Inhalt des Registers 7 gibt den internen Zustand des Codierers bzw. Decodierers an und dient zur Steuerung des Zugriffs in einem Festwertspeicher 9. Der Inhalt dieses Festwertspeichers umfaßt den Inhalt der Zustandsübergangs-Tabelle gemäß Fig. 1B einschließlich der binären Markierung des nächst zu erreichenden Zustande, wenn das zu codierende Zeichen bfa^) bzw. b(a.) ist. Wenn die Anordnung z.B. im Zustand 4 steht und das zu codierende Zeichen b(a.) ist, dann ist der nächst zu erreichende Zustand der Zustand 2 = 010. Wenn dagegen im Zustand 4 ein Zeichen b(a.) zu codieren ist, dann 1st der nächst zu erreichende Zustand der Zustand 5 = 101.
SA 975 024 8098 10/0640
Der Festwertspeicher 9 wird aufgrund des Inhalts des Registers 7 angesteuert. Die angesprochenen gespeicherten Daten werden zum Datenregister 11 übertragen. Die Information für den nächsten Zustand gelangt über Leitungen 13 und 15, wohingegen die
.gegenwärtigen binäre Darstellung des/Zustands über die Leitung 17 zum Zustandsregister 19 übertragen wird und von dort weiter über die Leitung 21. Die Binärmarkierung auf der Leitung 1, die den zu gehenden Weg auswählt, steuert, welche als nächste Zustandsadresse vom Register 11 zum Register 7 zu übertragen ist. Wenn eine 0 auf der Leitung 1 ansteht, dann wird die zugehörige linke Spalteneingabe ausgewählt. Wenn eine 1 auf der Leitung 1 erscheint, dann wird die rechte Spalteneingabe gewählt.
In Fig. 4 ist ein Blockschaltbild des Codierers 51 in Verbindung mit dem Decodierer 53 über Leitung 49 dargestellt. Der Codierer enthält einen codierenden Festwertspeicher 33 mit entsprechenden Zugriffseinrichtungen, ein Register mit Zustandsteuerung 23 zur Status-zu-Status-Verfolgung und ein Ausgangsschieberegister 47 zur Ausgabe der Codeworte c(a) unterschiedlicher Länge über die Leitung 49. Der Decodierer 53 umfaßt einen decodierenden Festwertspeicher 65, Verschiebe- und Zugriffskreise in Verbindung mit einem Auswahlnetzwerk 68 und die Codierlogik und Zustandssteuerung 51'. Jedes decodierte Zeichen b(a) fester Länge wird über das Auswahlnetzwerk 68 durchgegeben und gleichzeitig der Ausgangsleitung 25' und der Baugruppe 51' zugeführt.
Der Inhalt des codierenden Festwertspeichers 33 und des decodierenden Festwertspeichers 65 sind in den Fign. 3A und 3B dargestellt. Die Einzelheiten des Registers und der Zustandssteuerung 23 sind in Fig. 2 dargestellt, das Netzwerk 68 und die Baugruppe 51' dagegen in Fig. 6A.
975 0?4 809810/0640
273Γ)319
In Fig. 3A sind Konkordanztabellen dargestellt, in denen für jedes b(a.) ein entsprechendes c(a.), eine Länge L und ein Weg S dargestellt sind. Dasselbe gilt für alle b(a.) und c(a.), L und S. Doppeldeutigkeit ist z.B. gegeben für b(ai) = 7 und b(a.) = 3, für die beide c(a) = 110 gilt. Des weiteren haben einige der Codeworte fester Länge wie z.B. b(a.) = 4, 5, 6 und b(a.) =0, 1, 2, 4, 7 das entsprechende Wort c(a) = 111. 111 als Vorsatz bedeutet aber keine Doppeldeutigkeit; ist er doch ein Vorsatz, der ankündigt, daß ein Codewort b(a) fester Länge unmittelbar folgt und nicht umcodiert worden ist.
Eine umgekehrte Situation ist im decodierenden Festwertspeicher gemäß Fig. 3B gegeben. Die Folge 111 markiert auch hier einen folgenden Code fester Länge. Eine zusätzliche Spalte kennzeichnet, ob c(a), b(a) jeweils im Klartext (1) oder kompremierten Text (0) gegeben sind.
In den Fign. 5A zusammen mit 5B sind die Einzelheiten des Codierers 51, der von fester Länge in veränderliche Länge umcodiert, mit den zugehörigen Registern und einer Arbeitszykluserläuterung dargestellt. Beim Ausführungsbeipiel werden die Bits, die ein Wort b(a) vorgegebener Länge darstellen, seriell zugeführt. Bei der Erkennung vorderer Impulsflanken auf der Leitung 25 wird ein Signal seitens des Vorderflankendetektors 26 abgegeben, welches seinerseits die Taktgabe und Verteilung Innerhalb des Netzwerks 28 einleitet. Die im Netzwerk 28 aufgerufenen Hauptarbeitsgänge sind in Fig. 5B dargestellt. Der Zyklus (S) läßt Daten in das Adreßregister 31 und einen vorbestimmten Teil des Ausgangsregisters 47 über die Verbindung 29 und das UND-Glied 27 gelangen. Sobald die Adreßbits ins Register 31 geladen sind, beginnt der Lesezyklus des codierenden Festwertspeichers 33. Es erfolgt der Zugriff zu den Daten,
SA975024 809810/0640
die durch b(a) definiert sind; sie werden zum Datenregister während des Zyklus(b)übertragen. Das Register 35 gibt unterteilt das Feld für c(a.) veränderlicher Länge ab, die Länge L, den zu wählenden Weg S. oder S. und die entsprechenden Details auch für c(a.).
Der Codierer 51 enthält die Auswahlregister 37, 39 und 41. Das Auswahlregister 37, dem das Signal g über die Leitung 21 zugeführt wird, wählt aus, welches der beiden Codeworte variabler Länge über die Leitung 45 in das Ausgangsregister 47 zu bringen ist. Wenn g=O ist, dann wird c(a.) durchgegeben. Wenn g=1 ist, dann wird c(a.) aus dem Register 35 zum Register 47 übertragen.
Das Auswahlregister 39 bestimmt die Längenangabe L für den Verschiebesteuerzähler 43, die zum gewählten c(a) im Register gehört. Ähnliches kann für das Auswahlregister 41 bezüglich des Weges S gesagt werden. Nachdem das Datenregister 35 während des Zyklus (i)geladen worden ist und das entsprechende Wort variierender Länge mit zugehörigen Parametern ausgewählt worden ist, wird das Ausgangsregister 47 während des Zyklus(cf) geladen. Der Inhalt des Registers 47 wird dann seriell über die Leitung 49 unter wiederholter Verschiebung der Stufen des Registers und Herunterzählung des Verschiebesteuerzählers während des Zyklus (S) ausgelesen, wobei jedesmal ein Verschiebesignal über die Leitung 44 zum Register 47 gegeben wird.
Fig. 6A beschreibt die Logik des Decodierers 53 in Verbindung mit der Arbeitsgangerklärung gemäß Fig. 6B. Die Worte variabler Länge c(a) und weniger häufig die mit voranlaufendem Vorsatz 111 ankommenden Worte b(a) fester Länge laufen seriell über die Leitung 49 in das Schieberegister 55 ein. Der Inhalt einer vorzugebenden Zahl von Positionen im Register 55 wird über die Leitung 61 zum Adreßregister 6 3 geladen, während der restliche Inhalt des Schieberegisters über die
SA 975 O24 809810/0640
Leitung 59 zum Selektor 77 des Auswahlnetzwerks 68 übertragen wird. Die Anzahl der Verschiebungen während jedes Decodierzyklus wird durch den Inhalt eines Registers 39' in der Codierlogik nebst Zustandssteuerung 51' bestimmt. Das Register 39' läßt eine Zählung ablaufen, die in die Verschiebesteuerung über die Leitung 40' als L eingegeben wird. Dabei wird herabgezählt bis auf null und bei jedem Zählschritt eine Verschiebung im Register 55 von links nach rechts um eine Stelle durchgeführt. Der Inhalt des Registers 63 wird durch die entsprechenden Bitstellen gegeben, die unter Steuerung durch die Länge L aus dem Schieberegister 55 hereingeschoben werden. Der Inhalt des Registers 63 steuert dann den Zugriff im decodierenden Festwertspeicher 65. Der durch das Register 63 definierte Speicherplatz enthält bU^ mit C/C und b(a.) mit C/C. Es möge ins Gedächtnis zurückgerufen werden, daß eine Einbitmarkierung C/C zu jedem einzelnen b(a) gehört, welche angibt, ob es sich um ein klar oder komprimiert übertragenes Zeichen handelt. Siehe dazu die Spalten KLAR/KOMPR. in Fig. 3B.
Das Auswahlnetzwerk 68 besteht aus Registern und Selektoren zur Sicherstellung, daß das richtige von zwei im Register 67 enthaltenen b(a) über die Leitung 25* ausgegeben wird. Dies wiederum hängt vom Binärwert des Zustandssignals g ab, daß vom Block 51' über die Leitung 21' übermittelt wird.
Jedes gewonnene Wort b(a) fester Länge wird auch dem codierenden Festwertspeicher 33* im Block 51* zugeführt. Damit wird es dem Decodierer 53 ermöglicht, die gleichen Zustände mitzuerleben, wie der Codierer auf der Ursprungsseite. Es muß also das Zustandssignal g auf der Leitung 21' immer identisch sein mit dem Zustandssignal auf der Usprungsseite, wenn c(a) ein entsprechendes richtiges Codewort b(a) wiedergeben soll.
SA 975 O24 809810/0640
27315319
TABELLE II
CODIERUNG Ausgangszustand 1 2
b(a) 5 6 Nächster
3 O
4 1
5
O
c(a) O 10 Alphabet
Nächster Zustand 1
b(a) 5
111O00
111001
7
1
Zustand 1 1 2 1 3 4 5 5 5
Alphabet
A2 A2 A2 A2 A2 A2 A1 A1
c(a) O 10 111000 111001 111000 111001 01 01
DECODIERUNG
Ausgangszustand =
111OOO 111001 01 01
5 5
1 1
Diese vorstehende Tabelle II illustriert die Funktionen des Codierers 51 und des Decodierers 53.
Es soll nun angenommen werden, daß die Zustandssteuerung 23 den Anfangszustand 1 bei b(a)=5 aufweist. Entsprechend Fig. 3A ist der entsprechende zu gehende Weg j. Dies bedeutet andererseits, daß der nächste gemäß Fig. 1B zu erreichende Zustand der Zustand 1 ist mit einem codierten Zeichen c(a.)=0 im Alphabet A3. Für das nächste Zeichen b(a)=6 und den augenblick-
975 0:4
809810/06 40
lichen Zustand 1 mit g=1 1st der gemäß Flg. 3A zu gehende Weg durch j gegeben, was nach Flg. 1B und 2 bedeutet, daß der nächste Zustand 1 ist. Nach Fig. 3Ά folgt, daß es sich um c(a.)=10 im Alphabet A2 mit der Länge L= 2 handelt.
Das dritte Wort b(a)=O fester Länge mit g=1 bedeutet, daß gemäß Codiertabelle in Fig. 3A der zu wählende Weg zum nächsten Zustand durch 1 gekennzeichnet ist und daß der Text in klarer Form mit einem Vorsatz 111 und dahinter 000 zu übertragen ist. Entsprechend Fign. 1B und 2 wird bei einem Zustand 1 und dem Weg i der nächste Zustand 2 sein.
Unter Bezugnahme auf die Codiertabelle II soll angenommen werden, daß der Decodierer 53 über die Leitung 49 das Zeichen c(a)«0 empfangen hat. Aus dem Inhalt des decodierenden Festwertspeichers, der in Fig. 3B dargestellt ist, läßt sich erkennen, daß drei Bits zur Adressierung des Festwertspeichers verwendet werden. Für 000 kann dann b(a)-0 oder 5 sein. Diese Doppeldeutigkeit läßt sich dadurch lösen, daß die Ausgabe des Blocks 23* jetzt das Zustandesignal g=1 ist. Dabei ergibt sich b(a.)«5 und der Weg zum nächsten Zustand ist j. Unter Bezugnahme auf die Fign. 1B und 2 ist der nächste Zustand 1, das Zustandssignal g=1 und das Alphabet A2.
SA 975 O24 809810/0840

Claims (4)

  1. PATENTANSPRÜCHE
    ι 1y Schaltungsanordnung zur zusammenhängenden Codierung ; von Zeichen fest vorgegebener Länge, wobei jedes Zeichen fester Länge in ein Zeichen aus einer Vielzahl von Zeichen unterschiedlicher Länge umsetzbar ist, und zur Zeichendecodierung der Ursprungszeichen aus der gewonnen zusammenhängenden codierten Zeichenfolge, ■ dadurch gekennzeichnet, daß auf der Codierseite
    a) ein Codier-Zustandsregister mit zugehörigen Steuerkreisen zur Zustandsumschaltung (23) von einem gegenwärtigen Codierzustand (G = 1 bis 6) auf einen nachfolgenden gleichen oder abweichenden Zustand in Abhängigkeit von einem Zustandsumschaltungs-Steuersignal (S1 .) sowie
    b) ein codierender Festwertpeicher (33), der mittels der zu codierenden Ursprungszeichen (b(a)) adres- ; sierbar ist und für jedes dieser zuführbaren Ursprungszeichen fester Länge ein Zeichen (c(a)) unter-' schiedlicher Länge (L) sowie das zugehörige Zustande-; umschaltungs-Steuersignal (S4 .) auslesbar bereit- !
    l/D ι
    hält, vorgesehen sind :
    und daß auf der Decodierseite :
    c) ein decodierender Festwertspeicher (65), der mittels codierseitig abgegebener Zeichen (c(a)) unterschiedlicher Länge adressierbar ist und für jedes dieser Zeichen mindestens ein oder auch - mehrdeutig mehrere wiederzugewinnende Zeichen (bfa^), b(a.)) auslesbar bereithält,
    d) ein Markov-Prozessor (51') in Form eines Zustandsregisters mit zugehörigen Steuerkreisen zur Zustandsumschaltung (23') und eines codierenden Festwertspeichers (331), die den gleichnamigen Schaltkreisen (23, 33) der Codierseite identisch ausgeführt sind,
    sä 975 024 8098 10/0640
    OWQiNAL INSPECTED
    wobei mittels dieses Markov-Prozessors dieselben Codier- und Zustandsumschaltfunktionen wie auf der Codierseite nachvollziehbar sind, sowie e) ein Auswahlnetzwerk (68) , dem der jeweilige Codierzustand vom Markov-Prozessor (51') mitteilbar ist und welches unter Kenntnis dieses, dem auf der Codierseite gleichenden Zustandes von den gegebenenfalls pro aufgenommenes Zeichen (c(a)) mehreren im decodierenden Festwertspeicher (65) bereitstehenden Zeichen (b(a.), b(a.)) das dem codlerseitig eingegebenen Zeichen (b(a)) identische Zeichen auswählt und abnehmbar macht, vorgesehen sind.
  2. 2. Schaltungsanordnung nach Anspruch 1, dadurch gekennzeichnet ,
    daß die Zustandregister mit den zugehörigen Steuerkreisen zur Zustandsumschaltung (23, 23') jedes einen Festwertspeicher (9), in welchem eine entsprechend dem jeweils gegebenen Codierzustand auslesbare Zustandsumschalttabelle gespeichert ist, ein Datenregister (11) zur Bereithaltung des entsprechend der Auslesung aus dem vorgenannten Festwertspeicher (9) ermittelten nächsten Codierzustande und einen Selektor (3) zwischen dem Datenregisteraus-
    ι gang und dem Adreß-Eingang des Zustandregister-Festwertspeichers (9) aufweisen.
    SA 975 024 80981 0/0 6
  3. 3. Schaltungsanordnung nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet,
    daß dem codierenden Festwertspeicher (33) ein Adressregister (31), dem die zu codierenden Zeichen (b(a)) fester Länge zuführbar sind, vorgeschaltet und ein die jeweils ausgelesenen Daten (c(a), L) und Steuersignale (S) bereitstellendes Datenregister (35) nachgeschaltet ist,
    daß ein auswählendes Register (37) vorgesehen ist, dem nach Maßgabe des jeweiligen Codierzustandes das eine oder das andere der für das zugeführte Zeichen (b(a)) j fester Länge aus dem codierenden Festwertspeicher (33) auslesbare Zeichen (c(a.) , c(a.)) über das Datenregister (35) zur Weiterleitung
    zu einem Ausgangs-Schieberegister (47) zugeführt wird und
    daß diesem Schieberegister ein Verschiebe-Steuerzähler (43) zugeordnet ist, mit dessen Hilfe das Herausschieben des jeweils im Schieberegister anstehenden Zeichens (c(a.), c(a.)) unterschiedlicher Länge gemäß der aus dem codierenden Festwertspeicher (33) ausgelesenen zugehörigen Angabe der Länge (L) abzählbar ist.
  4. 4. Schaltungsanordnung nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet,
    daß am Eingang der Decodierseite ein Schieberegister (55) vorgesehen ist, über das entsprechend der aus dem mitlaufenden codierenden Festwertspeicher (33*) des Markov-Prozessors (51*) der Decodierseite ausgegebenen Angabe der jeweiligen Zeichenlänge (L)/ein komplettes Zeichen entsprechend dieser Länge zur Adressierung des decodierenden Festwertspeichers (65) weiterleitbar ist.
    SA 975 024 «09810/06A0
DE19772735319 1976-09-02 1977-08-05 Schaltungsanordnung zur zusammenhaengenden codierung von zeichen und zur zeichendecodierung der ursprungszeichen Withdrawn DE2735319A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/720,019 US4099257A (en) 1976-09-02 1976-09-02 Markov processor for context encoding from given characters and for character decoding from given contexts

Publications (1)

Publication Number Publication Date
DE2735319A1 true DE2735319A1 (de) 1978-03-09

Family

ID=24892323

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19772735319 Withdrawn DE2735319A1 (de) 1976-09-02 1977-08-05 Schaltungsanordnung zur zusammenhaengenden codierung von zeichen und zur zeichendecodierung der ursprungszeichen

Country Status (8)

Country Link
US (1) US4099257A (de)
JP (1) JPS5918735B2 (de)
AU (1) AU510455B2 (de)
CA (1) CA1106975A (de)
DE (1) DE2735319A1 (de)
FR (1) FR2363830A1 (de)
GB (1) GB1580570A (de)
IT (1) IT1114120B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0467678A2 (de) * 1990-07-18 1992-01-22 Kabushiki Kaisha Toshiba Vorrichtung zur variablen Längenkodierung und Vorrichtung zur variablen Längendekodierung

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4250548A (en) * 1979-01-02 1981-02-10 Honeywell Information Systems Inc. Computer apparatus
EP0023274A1 (de) * 1979-07-27 1981-02-04 Crypto Aktiengesellschaft Einrichtung zum Übertragen zusätzlicher Information bei gleichbleibender Grundtaktrate in einem Übertragungssystem und Verfahren zum Betrieb der Einrichtung
US4295125A (en) * 1980-04-28 1981-10-13 International Business Machines Corporation Method and means for pipeline decoding of the high to low order pairwise combined digits of a decodable set of relatively shifted finite number of strings
JPS5755669A (en) * 1980-09-05 1982-04-02 Ibm Dynamic data compressing system
US4494108A (en) * 1981-11-09 1985-01-15 International Business Machines Corporation Adaptive source modeling for data file compression within bounded memory
DE3278850D1 (en) * 1981-11-09 1988-09-01 Ibm Data translation apparatus translating between raw and compression encoded data forms
JPS59148467A (ja) * 1983-02-14 1984-08-25 Canon Inc デ−タ圧縮装置
CA1228925A (en) * 1983-02-25 1987-11-03 Yoshikazu Yokomizo Data decoding apparatus
JPS60116964A (ja) * 1983-11-28 1985-06-24 Masaaki Nagashima シ−ル装置用テ−プ
US4837634A (en) * 1984-06-05 1989-06-06 Canon Kabushik Kaisha Apparatus for decoding image codes obtained by compression process
US4741036A (en) * 1985-01-31 1988-04-26 International Business Machines Corporation Determination of phone weights for markov models in a speech recognition system
JPS645823U (de) * 1987-06-30 1989-01-13
US4881075A (en) * 1987-10-15 1989-11-14 Digital Equipment Corporation Method and apparatus for adaptive data compression
JPH01297277A (ja) * 1988-05-25 1989-11-30 Matsushita Electric Ind Co Ltd 給紙装置
USRE35781E (en) * 1989-01-31 1998-05-05 Mitsubishi Denki Kabushiki Kaisha Coding method of image information
JPH0834432B2 (ja) * 1989-01-31 1996-03-29 三菱電機株式会社 符号化装置及び符号化方法
US5173695A (en) * 1990-06-29 1992-12-22 Bell Communications Research, Inc. High-speed flexible variable-length-code decoder
GB2268666B (en) * 1992-06-24 1996-03-20 Sony Broadcast & Communication Serial data decoding
US5550540A (en) * 1992-11-12 1996-08-27 Internatioal Business Machines Corporation Distributed coding and prediction by use of contexts
US5537551A (en) * 1992-11-18 1996-07-16 Denenberg; Jeffrey N. Data compression method for use in a computerized informational and transactional network
JPH07262103A (ja) * 1994-03-24 1995-10-13 Fujitsu Ltd 符号復号化制御方式
US5838963A (en) * 1995-10-25 1998-11-17 Microsoft Corporation Apparatus and method for compressing a data file based on a dictionary file which matches segment lengths
US6973140B2 (en) 1999-03-05 2005-12-06 Ipr Licensing, Inc. Maximizing data rate by adjusting codes and code rates in CDMA system
US6785323B1 (en) 1999-11-22 2004-08-31 Ipr Licensing, Inc. Variable rate coding for forward link
US7236107B2 (en) * 2004-09-20 2007-06-26 Fujitsu Limited System and method for identifying optimal encoding for a given trace
TWI645698B (zh) * 2017-07-17 2018-12-21 財團法人工業技術研究院 資料發送裝置、資料接收裝置及其方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1238113A (de) * 1969-03-07 1971-07-07
US3675212A (en) * 1970-08-10 1972-07-04 Ibm Data compaction using variable-length coding
US3675211A (en) * 1970-09-08 1972-07-04 Ibm Data compaction using modified variable-length coding
US3701108A (en) * 1970-10-30 1972-10-24 Ibm Code processor for variable-length dependent codes
US3701111A (en) * 1971-02-08 1972-10-24 Ibm Method of and apparatus for decoding variable-length codes having length-indicating prefixes
US3883847A (en) * 1974-03-28 1975-05-13 Bell Telephone Labor Inc Uniform decoding of minimum-redundancy codes

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0467678A2 (de) * 1990-07-18 1992-01-22 Kabushiki Kaisha Toshiba Vorrichtung zur variablen Längenkodierung und Vorrichtung zur variablen Längendekodierung
EP0467678A3 (en) * 1990-07-18 1992-10-14 Kabushiki Kaisha Toshiba Variable length coding apparatus and variable length decoding apparatus
US5304995A (en) * 1990-07-18 1994-04-19 Kabushiki Kaisha Toshiba Variable lengthcoding apparatus and variable length decoding apparatus

Also Published As

Publication number Publication date
JPS5918735B2 (ja) 1984-04-28
US4099257A (en) 1978-07-04
CA1106975A (en) 1981-08-11
IT1114120B (it) 1986-01-27
FR2363830A1 (fr) 1978-03-31
AU510455B2 (en) 1980-06-26
AU2814177A (en) 1979-03-08
JPS5330211A (en) 1978-03-22
GB1580570A (en) 1980-12-03
FR2363830B1 (de) 1980-07-11

Similar Documents

Publication Publication Date Title
DE2735319A1 (de) Schaltungsanordnung zur zusammenhaengenden codierung von zeichen und zur zeichendecodierung der ursprungszeichen
DE2264090C3 (de) Datenverdichtung
DE2640414C2 (de) Schaltungsanordnung ung Verfahren für die Kompressionscodierung unter Verwendung einer Korrelation zwischen zweidimensionalen, aus zweiwertigen digitalen Bildern abgeleiteten Matrizen
DE2139731C2 (de) Anordnung zur Code-Umsetzung
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
DE2227148A1 (de) Verfahren zur verarbeitung digitaler daten
DE2340230A1 (de) Verfahren und vorrichtung zur vorhersage des signalpegelwertes eines nachrichtenelementes
DE2900586C2 (de) Anordnung zum Decodieren von Codewörtern variabler Länge
DE2500055C2 (de) Faksimile-uebertragungssystem
DE1524507A1 (de) Vorrichtung zur Anzeige von Schriftzeichen
DE2834533C2 (de) Bildübertragungssystem
DE2006672A1 (de) Vorrichtung zur Sichtbarmachung von Daten
DE2525394C3 (de) Verfahren und Schaltungsanordnung zum Übertragen, Einspeichern und Ausspeichern von binärcodierten Datenblöcken
DE3544819A1 (de) Verfahren und vorrichtung zur aufzeichnung und wiedergabe codierter digitaler signale
DE2347835A1 (de) Bilduebertragungsverfahren
DE19645057C2 (de) Vorrichtung zur Selektion von Adressenwörtern mittels Demultiplex-Decodierung
DE2253378B2 (de) Verfahren und Anordnung zur Codierung von Faksimilesignalen
DE2313016C2 (de) Strichsignal-Erzeugungsvorrichtung für ein Zeichenanzeigegerät
DE1099232B (de) Schaltanordnung fuer einen Pufferspeicher
DE1277921B (de) Codeumsetzer zur UEbertragung von Informationszeichen einer vorgegebenen ersten Codierung in gleichwertige Informationszeichen einer ausgewaehlten zweiten Codierung
DE1951681C2 (de) Einrichtung zur datenkomprimierten Codierung farbiger Dokumente
DE1474090B2 (de) Datenverarbeitungsanlage
DE2144113C3 (de) Verfahren zur Codeumsetzung und Assozjathr-Speichereinrlchtung zur Durchführung dieses Verfahrens
DE2552751C2 (de) Verfahren zur digitalen Lauflängencodierung mit Redundanzreduktion für die Übertragung von binär codierten Bildinformationen
DE2342660C3 (de) Verfahren zum Sortieren von in einem Assoziativspeicher gespeicherten Daten und Einrichtung zur Durchführung des Verfahrens

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee