DE2204766C2 - Codeumsetzer für Datenverarbeitungssysteme - Google Patents

Codeumsetzer für Datenverarbeitungssysteme

Info

Publication number
DE2204766C2
DE2204766C2 DE2204766A DE2204766A DE2204766C2 DE 2204766 C2 DE2204766 C2 DE 2204766C2 DE 2204766 A DE2204766 A DE 2204766A DE 2204766 A DE2204766 A DE 2204766A DE 2204766 C2 DE2204766 C2 DE 2204766C2
Authority
DE
Germany
Prior art keywords
code
signals
synchronization
codes
circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
DE2204766A
Other languages
English (en)
Other versions
DE2204766A1 (de
Inventor
Peter Gabriel Rye N.Y. Neumann
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.)
AT&T Corp
Original Assignee
Western Electric Co Inc
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 Western Electric Co Inc filed Critical Western Electric Co Inc
Publication of DE2204766A1 publication Critical patent/DE2204766A1/de
Application granted granted Critical
Publication of DE2204766C2 publication Critical patent/DE2204766C2/de
Expired legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • 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

Die Erfindung betrifft einen Codeumsetzer für sequentielle Codes fester Länge in selbstsynchronisierende Codes variabler Länge mit einer Verzögerungs- schaltung zur Verzögerung der Eingangssignale für die Dauer eines Symbolintervalls, mit einer Subtrahierschaltung zur Bildung der Differenz zwischen den Eingangssignalen und den verzögerten Signalen und mit einem Codierer zum Codieren von in der Subtrahierschaltung gebildeten Signalen mit fester codierter Länge in Ausgangssignale mit variabler codierter Länge.
Es ist bekannt Vorsatzcodes mit variabler Länge zu verwenden, um die Redundanz in digitalcodierter Information möglichst gering zu halten. Diese Technik wurde von D. A. Huffman in »A Method for the Construction of Minimum Redundancy Codes«, 40 Proc. IRE 1098. September 1952. beschrieben. Es ist auch ichon bekannt, daß nicht ganz optimale Klassen derartiger Codes (im folgenden mit »systematische Codes« bezeichnet) gegenüber den optimalen Huffman-Codes die Fähigkeit zur Selbstsynchronisation besitzen. Diese Eigenschaft wurde in dem Aufsatz »Efficient Error-Limiting Variable-Length Codes«. IRE Trans. IT-S. Seite 292, Juli 1962, angegeben.
Ferner ist bekannt, daß sequentielle Codes dann, wenn man informationsverlustfreie sequentielle Maschinen verwendet, wie beispielsweise Codierer und Decodierer, ebenfalls gute Selbstsynchronisationseigenschäften besitzen; vgl. »Error-Limiting Coding Using Information-Lossless Sequential Machines«, IEEE Trans. IT-10. Seite 108. AdHI 1964. In diesem Zusammenhang ist ein sequentieller Code ein Code, dessen Elemente sowohl vom früheren als auch vom gegenwärtigen Eingangssignal abhängen. Diese Art von Abhängigkeit findet man allgemein in einfachen Differentialcodes, die die Differenz zwischen dem augenblicklichen und den früheren Eingangssignalen darstellen. Diese differentielle Codierungen sind insbesondere für solche Informationen anwendbar, die hohe Redundanz besitzen, wie beispielsweise Video signale. Die differentielle Codierung führt jedoch zu einem Verlust von Informationsgehalt bei den übertragenen Daten, da getrennte Synchronisationsinformationen einbezogen sind.
Spezielle Codes variabler Länge, die eine einfache .Sortierung der codierten Informationen ermöglichen, sind aus der US-PS 30 16 527 bekannt Bekannt ist auch die Verwendung zusätzlicher Markierimpulse in den Schieberegistern des Codierers und Decodierers für Codes variabler Länge (US-PS 30 51 940)·).
Der Erfindung liegt nun die Aufgabe zugrunde, einen Codeumsetzer der eingangs genannten Art zu schaffen, der ohne zusätzliche Synchronisationsinformationen auskommt, also selbstsynchronisierend ist
Zur Lösung dieser Aufgabe geht die Erfindung aus von dem Codeumsetzer der eingangs genannten Art und ist gekennzeichnet durch eine auf die verzögerten Eingangssignale ansprechende Modifizier-Logikschaltung zum Modifizieren der in der Subtrahierschaltung gebildeten Signale, bevor diese in den Codierer eingespeist werden, und durch eine Komplement-Logikschaltung, welche auf die verzögerten Eingangssignale ansprichtum das Komplement der Signale mit variabler codierter Länge zu bilden.
Weiterbildungen der Erfindung sind Gegenstand der Unteransprüche. So kann die Modifizier-Logikschaltung ein Exklusiv-ODER-Tor und ein von dem verzögerten Eingangssignal gesteuertes UND-Tor aufweisen. Die Komplement-Logikschaltung läßt sich aus einer Anzahl von Exklusiv-ODf 1-Toren aufbauen, die über einen gemeinsamen Eingang von den verzögerten Eingangssignalen gesteuert werden.
Durch die Modifizier-Logikschaltung und die Komplement-Logikschaltung, die, wie die Weiterbildungen der Erfindung zeigen, einfache logische Schaltungen sein können, wird ein hochgradig selbstsynchronisierender Code erzeugt. Die Selbstsynchronisation ist dabei eine dem Code innewohnende Eigenschaft, so daß keine zusätzliche externe Synchronisation erforderlich ist. Mit der Erfindung werden in vorteilhafter Weise die Kompressionsfähigkeit der differentiellen Codierung mit der Selbstsynchronisationsfähigkeit der sequentiellen Codierungen kombiniert. Die Redundanz kann sehr gering gehalten werden, während gleichzeitig die Selbstsynchronisation einen Maximalwert erreicht.
In Verbindung mit der Erfindung werden sequentielle Codierer für Codes variabler Länge geschaffen, bei denen sogenannte Vorsatzcodekerne variabler Länge verwendet werden. Ein Vorsatzcode ist dabei ein Code, bei dem keines seiner Codewörter am Anfang eines anderen Codewortes auftritt. Die Vorsatzcodekerne sind dann eine Gruppe oder Untergruppe der Vorsatzcodewörter. Wie noch erläutert werden soll, zeigt eine Einordnung solcher Codekernwörter in eine sequentielle Eingangs-Ausgangsmatrix bestimmte Eigenschaften, die die SelbsfSynchronisation zu einem
*) In beiden Fällen sind die jeweils verwendeten Codes keine differentiellen Codes.
Maximum werden lassen, im einzelnen werden eine solche Einordnung und die zugehörigen Codierer und Decodierer so ausgebildet, daß sie symmetrisch sind, derart, daß die gesamte Zuordnung einfache Komplementbildungen und Umstellungen der Codewörter eine:, einzigen Codekerns oder einer kleinen Anzahl von Codekernen sind. Darüber hinaus sind alle Codewörter, die einem gegebenen Eingangswert entsprechen, so angeordnet, dJi sie unabhängig von dem jeweiligen A'i^gsr.gswert mit der gleichen Ziffer enden. Diese Eigenschart dient zur Erkennung des Endes jedes Codewortes und verringert dadurch die für eine Neusynchronisation nach dem Auftreten von Fehlern erforderliche Zeit
Wenn die Codes mit allen diesen Eigenschaften entworfen werden, dann ergibt iich ein sehr wirkungsvoller sequentieller Code für eine nahezu optimale Kompression mit guten Selbstsynchronisationseigenschäften und sehr kleiner Codierungs- und Decodierungskomplexität Diese Codes erweisen sich als sehr zweckmäßig für eine redundante Signalübertragung, beispielsweise bei Videosignalen für Femsehiniwendungen.
Im folgenden wird die Erfindung anhand eines durch Zeichnungen erläuterten Ausführungsbeispiels näher beschrieben. Es zeigt
Fig. 1 das Blockschaltbild eines bekannten Differentialcodierers.
F i g. 2 das Blockschaltbild eines Differentialdecodierers, der für eine Zusammenarbeit mit dem Codierer nach F i g. 1 geeignet ist,
F i g. 3 das Blockschaltbild eines modifizierten Differentialcodierers gemäß der Erfindung, einschließlich einer Modifizierungs- und Komplementbildungslogikschaltung für die Erzeugung der Eigensynchronisation,
F i g. 4 ein Blockschaltbild eines modifizierten Differentialdecodierers. der für eine Zusammenarbeit mit dem Codierer nach F i g. 3 geeignet ist,
Fi g. 5 ein ausführlicheres Blockschaltbild des Vorsatzcodiereisiyin Fig.3.
F i g. 6 ein ausführlicheres Blockdiagramm des Vorsatzdecodierers 15' in F i g. 4,
F i g. 7 ein ausführlicheres Blockdiagramm eines einfachen zweistelligen Codierers der in F i g. 3 dargestellten Bauart.
Fig.8 ein ausführlicheres Blockschaltbild eines einfachen zweistelligen Decodierers nach der in F i g. 4 dargestellten Bauart.
F i g. 9 ein Blockschaltbild einer Codierungsschaltung, in der die Subtraktionsscnaltung in die Modifizierungslogikschaltung eingebaut ist.
F i g. 10 das Blockschaltbild eines Codierers nach der in F i g. 4 dargestellten Bauart, bei dem die Additionsschaltung in die Modifizierungslogikschaltung eingebaut ist.
F i g. 11 eine Tabelle, die die Codeäquivalente zwischen binär codierten Symbolen fester Länge und Codegruppen variabler Länge eines bestimmten Vorsatzcodes zeigt, der bessere Synchronisationseigenschaften aufweist,
Fig. 12 eine ausführliche Darstellung der Komplementbildungslogikschaltung, die für eine Verwendung in den Schallungen nach Fig. 3,4,9 und 10 geeignet ist,
Fig. 13 eine ausführliche Darstellung der kombinierten Modifizierungslogikschaltung und Subtraktionslofikschaltung für den Codierer nach Fig.9. unter Benutzung des Vorsatzcudes nach Fig. 1 !,und
Fig. 14 eine Tabelle alternativer Vorsatzcodes mit variabler Länge, die auch da?" benutzt werden können, um Codierer und Deeodk- r nach (W u, den F i g. 3 und 4 jeweils dargestellten Bauarten zu realisieren.
Vor einer ausführlichen Beschreibung der Figuren
-5 wird im folgenden eine Übersicht über die Definitionen bestimmter Terme gegeben, die bei der Beschreibung der vorliegenden Erfindung nützlich sind.
Ein Code ist eine Sammlung von Ziffernfolgen (Codeziffern), wobei jede Folge als Codewort bezeich-
net wird. Ein Codetext wird durch eine Verkettung von Codewörtern erreicht und die Codierung ist eine Darstellung von Quellensymbolen S(i) durch Codewörter W(i). Ein Code ist ein Vorsatzcode nur dann, wenn kein Codewort am Anfang (als Vorsatz) eines anderen Codewortes erscheint Daher kann in einem Vorsatzcodetext ein Codewort sobald es empfangen wurde, decodiert werden, obwohl keine explizierten Zwischenwortmarkierer vorliegen.
Ein Code ist erschöpfend dann und nur dann, wenn
Μ jede Folge von Codeziffern d" Vorsatz eines Codetextes ist (d. h. einer Folge v-n Codewörtern). Daher muß ein eindeutig decodierbarer Code ein Vorsatzcode sein, wenn er erschöpfend ist
Eine Folge von Codeziffern ist eine synchronisierende Folge f'ir einen gegebenen Code, wenn das Auftreten des Endes dieser Folge im (korrekten) Codetext dem Ende eines Codewortes entsprechen muß (sowohl nicht notwendigerweise einem besonderen Codewort), ohns Rücksicht darauf, was dieser Folge vorherging.
Es ist bekannt (Schützenberger und anderen »On an Application of Semi-Group Methods to Some Problems in Coding«. IRE Trans, IT-2, Seite 47, September 1956), daß die meisten erschöpfenden Vorsatzcodes dazu neigen, sich nach einem Verlust der Synchronisation
(z. B. nach beliebigen Fehlern oder beim Start) selbst zu synchronisieren. Diese Selbstsynchronisation ist, sowohl beim Stand der Technik nach der genannten Literaturstelle als auch bei der vorliegenden Erfindung eine dem Code innewohnende Eigenschaft, so daß keine externe Synchronisation vorgenommen werden muß. Die Sy- chronisation. die einer Mehrdeutigkeit folgt, erscheint direkt als das Ergebnis einer Synchronisierungsfolge, die in natürlicher Weise in dem Codetext auftritt. Die Synchronisationsnacheilung I eines Vorsatzcodes ist als eine mittlere Anzahl von Codesteüen definiert, die auftreten bis eine Synchronisation bis zum Ende eines (nicht notwendigerweise bekannten) Codewortes garantiert werden kann, dem eine totale Mehrdeutigkeit folgt. Wenn Huffman-charakteristische Wahrscheinlichkeiten 2~rf für jedes Codewort angenommen werden, wobei d die Länge des Codev/ortes in Ziffern bedeutet, dann ist Synchronisationsnacheilung die mittlere Länge der Synchronisationsfolgen. Diese Synchronisation bis zum Ende eines nicht näher angegebenen Codewortes wird als Erste-Stufe-Syrchronisation bezeichne!. Die Zweite-Stufe-Synchronisation findet statt, wenn der Codetext mit dem Ende eines bestimmten bekannten Codewortes synchronisiert ist. Die sequentielle Synchronisationsnacheilung / ist c.e mittlere Zahl von Codeziffern, bis das Ende eines bekannten Codewortes in einem bekannten Zustand des Codes erreicht ist. Dieses ist gleich der mittleren Länge der Synchronisationsfolgen für sequentielle Codes.
Eine sequentielle Codierung ist eine Zusammenstelli'Tig von Symbolen 3(i) zu Codewörtern W(i,'j), wobei das ausgewählte Codewort von dem vorher codierten Symbol S(J) sowie von dem augenblicklich codierten Symbol S(i) abhängt. Wenn die Gruppe von Codewör-
tern W für jedes j ein Vorsatzcode ist, dann ist die Gruppe von Codewörtern ein sequentieller Vorsatzcode. Für diese Codes ist eine Synchronisierfolge eine Folge von Codeziffern, deren Ende dem Ende eines Codewortes (möglicherweise unbekannt) entspricht, das von einem bekannten Symbol S(i) stammt, unabhängig davon, was dieser Folge vorausging. Danach ist eine nachfolgende Decodierung korrekt, ohne Rücksicht auf die anfangliche Mehrdeutigkeit. Die vorliegende Erfindung schließt Codierer und Decodierer für besondere Klassen von sequentiellen Vorsatzcodes ein, die eine starke Kompression in ihrer Codierung und Decodierung aufweisen und hervorragende Selbst- oder Eigensynchronisationseigenschaften aufweisen.
Zum besseren Verständnis der sequentiellen Codierung soll das in Tabelle I dargestellte Beispiel beitragen.
20
J = 00 A W(O) W(I) W(I) WQ)
j = 01 B WO) W(O) W(I) W(I)
Tabelle 1 S(D 01 10 11
SO) / = 00 B C D
A
11 D
W(2)
W(I)
wo) W(D
W(O)
WO)
W(X) W(O)
30
Wie der Tabelle 1 zu entnehmen ist, repräsentieren A, B, C und D vier Quellensymbole 5(7Jt /=00, 01, 10, 11, wobei /die Höhe oder der Pegel des Symbols ist. Dies ist das Beispiel einer Codierung, bei dem ein Codewort W(i/j) das übertragen werden soll, eine Funktion der zyklischen Differenz zwischen der Höhe des Symbols S(i), das codiert werden soll (Spaltenüberschriften) und der Höhe des Symbols S(J) das gerade zuvor codiert wurde (Zeilenangabe) ist: W(i/j)~ W(k) wobei k=i-j (mod 4) ist. Diese Codierung ist daher eine Differenzcodierung. Es ist zu bemerken, daß sich unabhängig von der Wahl des Code (W(k)) stets Mehrdeutigkeit bei der Decodierung ergibt, sobald ein Fehler gemacht wird. Wenn beispielsweise 5(10) anstelle von 5(10) decodiert wird, als Ergebnis eines Übertragungsfehlers, dann erzeugt die nachfolgende Decodierung stets 5(7+1) anstelle von S(i), wobei /'+1 mod 4, also Modulo 4 ist, solange weitere Fehler die ursprünglichen Fehler nicht kompensieren.
Ein Differentialcodierer, der für die Codierung des in Tabelle 1 angegebenen Codes geeignet ist, zeigt die Fig. 1. Dieser Codierer besteht aus einer Verzögerungssehaitung 10, die zur Verzögerung des Eingangssymbols /für die Dauer eines Symbolintervalls dient um ein Symbol j zu erzeugen. Sowohl / als auch j werden einer Subtrahierschaltung 11 zugeführt, die die Differenz i—j=k bildet Die Gruppe von Differenzsymbolen k kann dann in einem Kompressionscodierer 12 codiert werden, der sich die Vorteile der Differenzcodierung zunutze macht, um die Ausgangsdatenfolge auf der Leitung 13 zu komprimieren. Bei einer typischen Anwendung könnte sich beispielsweise der Codierer 12 auf eine verringerte Anzahl von Codestellen beziehen, entsprechend kleinen Werten von k. Dieses folgt natürlich aus der Redundanz der Eingangsdaten i, da sich die Eingangsymbole relativ langsam verändern und die Differenz Ar klein bleibt Vorzugsweise ist jedoch der Codierer 12 ein Codierer mit variabler Länge, der die optimalen Huffman-Codes oder nahezu optimale Codes mit variabler Länge benutzt.
In F i g. 2 ist das Blockschaltbild eines Decodieren für den Codierer nach Fig. I dargestellt. Die codierten Daten auf der Leitung 13 in Fig. 1 werden über ein geeignetes Übertragungsmedium zu dem Kompressionsdecodierer IS über die Leitung 14 übertragen. Der Decodierer 15 ist die Umkehrung des Kompressionscodierers 12 und in Abwesenheit eines Fehlers stellt er die Differenzcodes k auf der Leitung 16 wieder her. Diese Differenzcodes werden zu einer Addierschaltung 17 übertragen, deren Ausgangsdaten / über eine Verzögerungsschaltung 18 mit der Verzögerungszeit, die einem Symbolintervall entspricht, zu dem anderen Eingang der Addierschaltung 17 übertragen wird. Der Addierer 17 erzeugt auf der Ausgangsleitung 19 die Summe der j- und Ar-Signale, die dem Informationssignal /entspricht, das ursprünglich dem Codierer nach Fig. 1 zugeführt wurde.
Als Ausführungsbeispiel der Erfindung zeigt Fig.3 eine Abwandlung des in F i g. 1 dargestellten Codierers, bei dem eine Modifizierungslogikschaltung 21 und eine Komplemcnt-Logikschaltung 22, also eine Schaltung die das Komplement einer Eingangsinformation erzeugt, eingebaut wurden. Die Komponenten, die den gleichen in Fig. I entsprechen wurden mit den gleichen Bezugsnahlen bezeichnet, sie erhielten jedoch zur Unterscheidung einen Strich. So ist die Modifizierungs-Logikschaltung 21 in den Datenweg zwischen der Subtrahierschaltung 11'. die auch kurz Subtraktor genannt wird, dem Codierer 12' eingeschaltet. Sie wird gesteuert von den Ausgangssigna.'cn der Verzögerungsschaltung 10'. Die Komplement-Logikschaltung 22 ist zwischen dem Codierer 12' und der Ausgangsleitung 13' eingeschaltet und wird ebenfalls von dem Ausgangssignal der Verzögerungsschaltij.ig 10' gesteuert.
Wie später noch ausführlich erläutert werden wird, sind die Modifizierungs-Logikschaltung 21 und die Komplement-Logikschaltung 22 einfache digitale logische Schaltungen, die, wenn sie, wie in F i g. 3 gezeigt, in einen Differentialcodierer eingebaut werden, einen Code erzeugen, der hochgradig selbstsynchronisierend ist. Diese Selbst- oder Eigensynchronisation ist eine dem Code innewohnende Eigenschaft, so daß keine externe Synchronisation erforderlich ist. Die Synchronisation ergibt sich direkt aus den natürlichen auftretenden Folgen im Codetext.
Fig.4 zeigt einen abgewandelten Differential-Decodierer, der für die Decodierung der Signale geeignet ist. die von dem Codierer nach F i g. 3 erzeugt wurden. Hier sind wieder die entsprechenden Elemente, die sich direkt auf die Komponenten in Fig.2 beziehen, durch die gleiche Bezugszahl mit einem Strich gekennzeichnet Eine Dekomplement-Logikschaltung 23 ist hier zwischen der Eingangsleitung 14' und dem Vorsatzdecodierer 15' eingeschaltet und wird von den verzögerten Ausgangssignalen der Verzögerungsschaltung 18' gesteuert Ferner ist eine Demodifizierungs-Logikschaltung 24 zwischen dem Vorsatzdecodierer 15' und einem Eingang des Addierers 17' eingeschaltet und wird ebenfalls von den verzögerten Ausgangssignalen der Verzögerungsschaltung 18' gesteuert
In Übereinstimmung mit der Erfindung ergeben sich alle Vorteile der Selbstsynchronisation mit sehr geringer Synchronisationsnacheilung aus der Verwendung der Codierer und Decodierer, die den in den F i g. 3 und 4 jeweils gezeigten Aufbau besitzen. Darüber hinaus sind die Bestandteile der logischen Schaltung der
zusätzlichen Logikschallungen 21, 22, 23 und 24 einfache UND-ODER- und Exklusiv-ODF.R-Tore, die zu relativ einfachen Anordnungen zusammengefaßt sind. Diese Vorteile ergeben sich z.T. aus der Wahl und Anordnung der Codierungsmatrix. Diese Matrix wurde besonders ausgewählt, um die Selbstsynchronisationseigjensch-ften optimal zu gestalten, wobei gleichzeitig eine einfache Codierungsschaltung gewählt wurde.
Bevor mit einer ausführlichen Beschreibung des Codeumsetzers gemäß der vorliegenden Erfindung begonnen wird, wird zunächst eine kurze Beschreibung eines geeigneten Typs eines grundlegenden sequentiellen Codierers und Decodieren anhand der F i g. 5 und 6 gegeben. In Fig. 5 ist somit eine Eingangsleitung 34 dargestellt, über die binärcodierter Codetext mit fester Länge eintrifft, der nun zu einem Schieberegister 32 übertragen wird. Die Eingangsleitung 34 kann ein elektrisches Übertragungsmedium oder ein Magnetband- oder Papierstreifenspeicher sein. Diese gewöhnlichen binären Codewörter werden in das Schieberegister «,eriell eingegeben, bis dieses voll ist und ein vollständiges Codewort auf der Ausgangsleitung 38 erscheint.
Eine kombinatorische Umsetzungsschaltung 36 wandelt die binären Codegruppen mit fester Länge, die auf den Leitungen 38 erscheinen, in einen Vorsatzcode mit variabler Länge und übertragt die sich ergebenden Binärsignale auf die Ausgangsleitungen 40. Darüber hinaus wird ein »!«-Markierimpuls an das Ende jeder CodeTruppe angehängt, wenn sie in das Ausgangsschieberegister 42 eingegeben wird. Dieses Markierbit dient ;!ur Steuerung der lokalen Codierungsschaltung und wird nicht zu dem Empfänger übertragen. Dieses »!«-Markiersignal wird sofort an das Codewort angehängt und es dient als Endmarkierung, um das Ende eines Codewortes mit variabler Länge anzugeben.
Die Erkennungsschallung 50 stellt das Vorliegen einer »1« in jeder außer der äußersten rechten Position des Ausgangsschieberegisters 42 fest. Diese Erkennungsschaltung 50 erzeugt daher eine Ausgangsinformation auf der Leitung 52, bis der Markierungsimpuls in der letzten Speicherstelle des Schieberegisters 42 ankommt. Wenn der Markierungsimpuls diese letzte Stufe des Schieberegisters 42 erreicht, ist bereits die vollständige Codegruppe mit variabler Länge auf die Ausgangsleitung 48 übertragen worden. Nun verschwinden alle Signale von der Ausgangsleitung 52, wobei dieses Fehlen eines Signals nach der Invertierung in dem Inverter 54 ein Signal erzeugt, um das Tor 58 zu öffnen ijnd die nächste Codegruppe mit variabler Länge im Ausgangsregister 42 zu speichern. Die neuen Codes überschreiben den Inhalt des Registers 42 und zerstören das vorhergehende Markierungssignal. Die Ausgangsinformation des Inverters 54 wird auch zur Verzögerungsschaltung 60 übertragen, deren Ausgangssignal dazu dient, die nächste Eingangscodegruppe in das Schieberegister 32 hineinzuschieben.
Der Codierer nach Fig.5 enthält ferner einen verallgemeinerten Umsetzer für die Umsetzung von Eingangssignalen fester Länge, die gegebenenfalls Differentialcodes repräsentieren, in Codes mit variabler Länge, die minimale Redundanzeigenschaften aufweisen können. Es sei ferner noch erwähnt, daß die »1 «-Markierungsimpulse niemals das Ausgangsschieberegister 42 verlassen und daß sie nur rur Markierung des Ende eines Codes mit variabler Länge im Register 42 dienen.
F i g. 6 zeigt einen Decodierer, der die umgekehrte Operation durchführt, wie der Codierer nach F i g. 5. In Fig. 6 kommen die codierten Signale mit variabler Länge auf der Eingangslcitung 69 an und werden zu dem Eingangsschieberegister 70 übertragen. Die Ausgangsleitungen 71 vom Eingangsschieberegister 70 sind mit der I Imsetzerschaltung 64 verbunden, in der die Signale in eine Codegruppe 80 mit fester Länge umgesetzt werden, die dann schließlich im Schieberegister 66 gespeichert und über die Ausgangsleitung 68 übertragen
ίο werden.
Jedesmal, wenn eine gültige Codegruppe von der Umsetzungsschaltung 64 festgestellt wird, wird ein Signal »Gültiger Code« auf die Steuerleitung 76 übertragen, um die Stufen des Eingangsschieberegisters 70 zurückzustellen. Das gleiche Signal »Gültiger Code« leitet die Übertragung der Fotschaltimpulse zu dem Ausgangsschieberegister 66 ein, um diesen neuen Code
auf die Übertragungsleitung 68 hinaus zu schieben.
Die Ümsctzungsschaitungen 36 unii 64 iii ucii F i g. 3 und 6 bestehen jede aus einer Kombination logischer Torschaltungen, die von den Eingangssignalen beaufschlagt werden, und wenn sie auf diese Weise geöffnet wurden. Binärsignale auf den entsprechenden \usgangsleitungen bereitstellen. Im Falle der Umsetzungsschaltung 36 wird zusätzlich zur gewöhnlichen Codegruppe mit variabler Länge ein Markierungsimpuls erzeugt, der jede Gruppe abschließt. Solche Markierungsimpulse werden in der Umsetzerschaltung 64 nicht benötigt. Eine Erkennungsschaltung für einen »Gültigen Code« kann dafür vorgesehen werden, der beispielsweise aus einem ODER-Tor mit vielen Eingängen besteht, von denen jeder Eingang einem gültigen Code zugeordnet ist.
Andere Formen von Codierern mit variabler Länge und Decodierern können im Übertragungssystem der vorliegenden Erfindung verwendet werden. Der in F i g. 5 und 6 dargestellte Codierer und Decodierer dient nur zur Erläuterung, weil die Erfindung keineswegs auf diese Ausführungsbeispiele beschränkt ist. Ein weiteres Beispiel solcher Schaltungen ist in der US-Patentschrift 30 16 527 erläutert.
Ein spezielles Beispiel eines Codierungsschemas, das in allgemeiner Form in Tabelle 1 angegeben ist, dürfte zweckmäßig sein. Für die Zwecke dieser Darstellung wurde ein einfaches zweistelliges System ausgewählt, das in der nun folgenden Tabelle 2 gezeigt ist:
Bei diesem Beispiel werden vier verschiedene Vorsatzcodierungen verwendet und zwar eine für jeden Wert von j. Die besondere Codierung, die hier verwendet wird, hängt von dem Wert / ab, die jedem einzelnen Wert von j folgt.
Es kann !eicht gezeigt werden, daß die Folge »0011« eine synchronisierende Folge ist die mit einem Wert von / endet, der gleich »01«ist. Daher synchronisiert die Folge »00 i 1« den Decoder zum Ende eines bestimmten
Tabelle 2 S(D 0 01 11 10 U
SQ)PQ / = 00 010 B 1 C D
A 100 11 100 101
010 011 00 011
J= 00 A 0 101
j = 01 B 00 1
j = 10 C
/=11 D
Codewortes, und zwar unabhängig davon, was de Synchronisierungsfolge vorausging. Auf ähnliche Weise synchronisiert die Folge »00101« den Decoder auf /=»11«; die Folge »1100«; synchronisiert auf /=»10« und die Folge »11010« synchronisiert auf /=»00«. Wenn angenommen wird, daß die Codewörter mit Huffman-Wahrscheinlichkeit auftreten, dann kann leicht gezeigt werden, daß die Synchronisation aus der totalen Mehrdeutigkeit nach einem Durchschnitt von nur 7,67 Binärstellen (/=7,67) herrührt. Diese sequentielle Synchronisationsnacheilung / ist. wie bereits bemerkt wurde, die mittlere Zahl von Codebits, bis das Ende eines Codeworts erreicht wird, das einem bekannten Symbol entspricht. Mit anderen Worten ist /die mittlere Länge aller Synchronisierungsfolgen.
Die Wahl des Codes von Tabelle 2 ist der nach Tabelle 1 bezüglich der Selbstsynchronisation weit überlegen. Wenn die gleiche Folge (0, 11, 100, 101)
VPrwpnHpt wirr^ hp?it7t Hip Codi^rUH17 HECh Tab. ! kcifiS
Selbstsynchronisationsfähigkeiten. Die Codierung nach Tab. 2 besitzt andererseits eine extrem gute Selbstsynchronisation, die garantiert, daß Synchronisationsfehler im Mittel nur für die Länge von etwa 8 Bits andauern. Diese beiden Codes jedoch sind bezüglich ihrer Kompressionsfähigkeiten, das sind ihre Fähigkeiten, die 2s Eingangsdaten durch Wahrscheinlichkeitscodierung zu verdichten, identisch.
Eine nähere Prüfung der Codierung nach Tab. 2 zeigt auf, daß der Code für Zeile B dem binären Komplement des Codes für die Zeile A entspricht, nur daß dieser um ein Wort zyklisch verschoben ist. Der Code für die Zeile C ist eine Spiegelung des Codes A, verschoben um zwei Worte. Schließlich ist der Code für die Zeile D die zyklische Verschiebung des Komplements (oder das Komplement der Verschiebung) des Codes für Zeile A. Daher sind alle Codes in Tabelle 2 eng miteinander verwandt. Diese Eigenschaften gewähren besondere Codierungs- und Decodierungsvorteile. die im folgenden ausführlicher erläutert werden.
F i g. 7 zeigt nun das Blockschaltbild eines Codierers. der für eine Codierung der Signale gemäß Tab. 2 geeignet ist. Es ist aus dievsr Tabelle zu sehen, daß, wenn die erste Ziffer (p) von j eine »1« ist, der reflektierte Code verwendet wird. Dieses wird in F i g. 7 mit Hilfe des UND-Tores 100 und des Exklusiv-ODER-Tores 101 durchgeführt. In Fig.7 sind die Elemente, die denjenigen in Fig.3 entsprechen, durch die gleichen Bezugszahlen gekennzeichnet. Daher wird das Ausgangssignal ρ der Verzögerungsschaltung 10', das auf der Leitung 102 auftritt, zu einem Eingang des UND-Tores 100 übertragen. Der andere Eingang des UND-Tores 100 ist mit dem Ausgang der Subtrahierschaltung W verbunden. Das Ausgangssignal des UN D-Tores 100 wird zu einem Eingang des Exklusiv-ODER-Tores 101 übertragen. Der verbleibende Ausgang der Subtrahierschaltung 11' ist mit dem noch freien Eingang des Exklusiv-ODER-Tores 101 verbunden. Die Tore 100 und 101 stellen zusammen die Modifikations-Logikschaltung 21 dar, die zur Erzeugung der reflektierten Codes aus dem normalen Differenzcode dient, der von der Subtrahierschaltung 1Γ geliefert wird. Diese modifizierten Codes werden zu dem Vorsatzcodierer 12' übertragen, der beispielsweise den in Fig.5 dargestellten Aufbau haben kann. Die in F i g. 7 gezeigten Tore können einen bekannten konventionellen Aufbau haben, vorzugsweise bestehen sie jedoch aus geeigneten integrierten Halbleiter-Schaitungsanordnungen.
Eine Betrachtung der Codes in Tabelle 2 zeigt, daß, wenn zweite Ziffer (q)e\ne »1« ist, von der Codegruppe aus der normalen Codegruppierung das Komplement gebildet wird. In Fig. 7 wird das q-Ausgangssignal auf der Leitung 103 daher zu den Exklusiv-ODER-Toren 104 und 105 übertragen, die, wenn sie geöffnet sind, das Ausgangssignal des Codierers 12' für die Abgabe an die Ausgangsleitungen 4V komplementieren, d.h. aus diesen das Komplement bilden.
Es ist so zu sehen, daß ein grundlegender Differentialcodierer, wie beispielsweise der in Fig. 1 dargestellte, so modifiziert werden kann, daß er extrem gute Selbstsynchronisationseigenschaften besitzt, in dem nur einfache Logikschaltungen 21 und 22 ergänzt werden. Diese Logikschaltungen stellen nur sehr geringe Zusatzkosten des gesamten Codierers dar und bring.ti trotzdem beträchtliche Synchronisationsvorteile mit sich.
Ir. F i g. 8 ist das Blockschaltbild einer Dccodicrscha!- tung dargestellt, die für die Decodierung der in Tabelle 2 zusammengestellten Codes geeignet ist. Die Elemente, die denjenigen in Fig.4 entsprechen, wurden mit den gleichen Bezugszahlen versehen. Die (7-Ausgangssigna-Ie der Verzögerungsschaltung 18' werden über die Leitung 106 zu den Exklusiv-ODER-Schaltungen 107 und 108 übertragen, um das Komplement der Eingangscodes zu bilden, wenn der Wert q »1« ist. Die />Ausgangssignale der Verzögerungsschaltung 18' werden zu dem UND-Tor 109 übertragen, dessen Ausgangssignal zu dem Exklusiv-ODER-Tor UO übertragen wird. Die Tore 109 und 110 bilden zusammen die Modifizierungslogikschaltung 24 und dienen zur Gewinnung der reflektierten Darstellung des Ausgangssignals des Codierers 15', das zu dem Addierer 17' übertragen wird. Auch hier sind die Zusatzkosten für die Selbstsynchronisationsmöglichkeiten, die von den Logikschaltungen 23 und 24 stammen, im Vergleich zu den Gesamtkosten des Decodierers sehr klein.
Aus der Tabelle 2 und den entsprechenden Schaltungen in F i g. 7 und 8 ist zu sehen daß sequentiellen Codes eine beträchtliche Struktur haben müßten, um den Codierungs- und Decodierungsprozeß zu vereinfachen und auch um den Aufbau großer Codierungen zu ermöglichen. Als Ergebnis einer ausgedehnten Untersuchung wurde entdeckt, daß die folgenden Eigenschaften von beträchtlicher Bedeutung für die Gewinnung der gewünschten Strukturen sind.
An erster Stelle sollten, um die Codierungs- und Decodierungseigenschaften zu vereinfachen, die Zahl der unterschiedlichen Vorsatzcodekerne, die verschiedene nicht abgeleitete Codegruppen bilden, sehr klein sein, eines oder höchstens zwei. Dieses trifft deshalb zu, weil getrennte unabhängige Codierer und Decodierer im allgemeinen für jeden unabhängigen Codekern benötigt werden. Die Eigenschaft die Zahl der Codekerne klein zu halten, wurde als Symmetrierungseigenschaften bezeichnet, da sie zu Codierungsmatrizen führt, die eine kleine Zahl von Codekernen aufweisen, verschiedene Komplemente, Drehungen und Reflektionen dieser Grundkerne.
Es sei bemerkt, daß die Codierung von Tabelle 2 alle Codewörter für einen gegebenen Wert von / in der gleichen Stelle endigen, unabhängig von dem Wert von j. Diese Eigenschaft, die als Kolonnenbildungs-Eigenschaft bezeichnet wird, verbessert die Selbstsynchronisation erheblich dadurch, daß sie gleichförmige Endungen für die Werte von /liefert.
Eine dritte Eigenschaft der Codierung von Tabelle 2
wurde mit Assoziationseigenschaft bezeichnet und sie betrifft die Zahl der unterschiedlichen Symbole, der ein gegebenes Codewort entspricht. Die Assoziationseigenschaft erfordert, daß diese Zahl von unterschiedlichen Symbolen, die einem gegebenen Codewort entsprechen können, so klein wie möglich gehalten wird und daß trotzdem jedes Auftreten einem anderen Symbol 5ft) entspricht. Diese Assosiationseigenschaft verbessert die Zweite-Stufen-Synchronisation wesentlich.
Die nachstehende Tabelle 3 zeigt ein Beispiel eines \o Zweikerncodes, der die Kolonnenbildungs- und Assoziationseigenschaften erfüllt und der eine sequentielle Synchronisationsnacheilung /besitzt, die gleich 8.9 ist.
Tabelle 3 = A B 11
1
C D E 15
S(J) Sd) 0
Γ
lOO
00
iöii
Olli
iOiö
0110
A
B
01 20
1010
010
1010
Olli 11
00 100
1011
1011
100
0110
25
Im folgenden werden einige Eigenschaften des Codes von Tabelle 3 und deren Auswirkungen erläutert. Bei einem kolonnenbildenden Code, wie beispielsweise dem in Tabelle 3, wird eine Gruppe ν ->n Symbolen S(i), für die alle Codewörter mit »0« endigen, mit 0-Gruppe und die Gruppe von Symbolen S(i), für die alle Codewörter mit einer »1« endigen, mit I-Gruppe bezeichnet. Im Beispiel der Tabelle 3 garantiert die Folge »00« (u. a.) das Ende eines Codewortes, das einer 0-Gruppe A, C oder E entspricht, wobei /' ein gerader Wert ist. In ähnlicher
Weise garantiert die Folge »111« das Ende eines Codeworles, das einer I-Gruppe B oder D entspricht, wobei / rin ungered-r W«rt is» Wenn einmal ö'\p. Mehrdeutigkeit auf ein O-Gruppensymbol oder ein 1-Giüppensymbol reduziert wurde, dann ist die Assoziationseigenschaft innerhalb dieser Gruppen eine eroße Hilfe für das Erreichen einer Zweite-Stufen-SyncHronisation. Die Assoziationseigenschaft »si »ti wesentlichen hilfreich bei der Zweite-Stuien Synchronisation, wenn der Vorsatzcode für jedes Symbol S(i) in der 0-Gruppe und ähnlich für die I-Gruppe, der gleiche ist. Diese spezielle Assoziationseigenscliaft von Kolonnencodes wird als Gabeleigenschaft bezeichnet. Per Definition müssen gegabelte Codes in Kolonnen angeordnet sein.
Wenn bei einem komplementierten sequentiellen Code die Kolonnenbildungseigenschaften erreicht werden sollen, dann muß jeder Kernvorsatzcode und sein Komplement die gleiche A.p??hl von Codewörtern besitzen, die mit 0 enden und und db gleiche Anzahl, die mit I aufhören. Daher muß der Vorsatzcode und sein Komplement so sein, daß die Hälfte seiner Codewörter in jeder Ziffer endigt. Ein solcher Vorsatzcode wird als ausgeglichener Code bezeichnet und er muß natürlich eine gerade Anzahl von Codewörtern besitzen. Der Code von Tabelle 2 ist das Beispiel eines ausgeglichenen Vorsatzcodes, der einen komplementierten Einkerncode verwendet. Es kann gezeigt werden, daß für jede Gruppe von Codewortlängen, bei der η gerade ist und für die ein erschöpfender Vorsatzcode besteht, es auch mindestens einen ausgeglichenen Vorsatzcode gibt.
Das Beispiel einer Codierung, die alle vorstehend beschriebenen gewünschten Eigenschaften aufweist und die auf sehr große Codegruppen ausgedehnt werden kann, ist in Tabelle 4 dargestellt.
Tabelle 4 Ein-/Ausgangs-Matrix für einen symmetrischen, kolonnenbildenden, gegabelten, abgeglichenen Code mit einem
beliebigen Vorsatzcodekern W(k)
-/gerade
I= 1
I =/1-3 i = n-2
n-\
./ungersde
J=O W(O) W(\) W(2) W(n-3) W(n-2) W(«-l) n- 1
2 W(2) W(\) W(O) W(Ti-I) W(n-2) W(n-\) Λ-3
4 W(A) W(I) W(T) W(n-3) W(n-2) W(n-\) n-5
6 W(S) W(I) W(I) W(n-l) W(n-2) W(Ii-I) n-7
n-S W(n-%) W(I) W(2) W(b-3) W(Ii-D W(B-I) 7
n-6 W(n-6) W(I) W(2) WiB-3) W(n-2) W(B-I) 5
n-4 W(n-4) W(I) W(I) W(n-1) V/(n-2) W(B-I) 3
n-2 W(n-2) W(I) W(I) W(n-3) W(O) W(B-I) J=I
Der Code in Tabelle 4 weist Spaltenbildung, Komplementiening. Gabelung und maximale Assoziation auf. ohne jedoch trivisi ?m sei» Es ist esne sehr hohe Wahrscheinlichkeil dafür abgenommen, da i=j für Kompressionszwecke ist E? sei erwähnt, daß wenn j ungerade ist, das komplementäre Codewort verwendet wird und die Tabelle 4 von unten nach oben getesen wird. Die Codegruppe besitzt daher eine komplementär reflektierte Symmetrie.
Aus dem Muster vofc Ta-belie 4 kann mar, 7· iec?-iüt
f,j sehen: für jeden geraden Wert von y, mit Ausnahme von 0, ist der Wert des Kerncodes W(k)gleich dem für k-Q, wenn i—jist Für /=0 ist der We~ k-./und k —/zu allen anderen Zeitpunkten. Die Codewörter für ungerade Werte von j werden durch die komplementär reflektive Symmetrie spezifiziert
Obwohl die opmr-aien \ jaft'-nan-Vorsatzcodcs abgekürzt lind air. kerncode vervend-Ή werden köi.nen, wird die ίγ'-'Άτνί·^^?^ we-Λπ systematische Yorsatzcodes vei wendet wc 1 oen, wesent'-ich verbessert. Ein systemati-
scher Code ist ein Code, bei dem aufeinanderfolgende Codewörter gemäß einer festen Regel oder einem Algorithmus erzeugt werden, wodurch sie diese systematischen Eigenschaften erhalten. Auf diese Weise kann die Erste-Stufe-Synchronisationsnacheilung klein gehalten werden, obwohl die Größe der Codewörter ansteigt Ein solcher abgekürzter systematischer Vorsatzcode, der für die Verwendung als Kern für das Codierungsschema nach Tabelle 4 geeignet ist, ist in F i g. 11 dargestellt.
In F i g. 11 entsprechen die Codegruppen mit fester Länge x\, X2, *s, xa den Werten von k, während y\ bis yn den Bits der Codegruppen mit variabler Länge entsprechen. Die mittlere Codewortlänge L, vorausgesetzt daß jedes Wort mit seinen charakteristischen Huffman-Eigenschaften auftritt, ist 2. Die Synchronisationsnacheiiung ist gleich 4.
Oben in F i g. 7 befindet sich eine grafische Darstellung in der Form eines binären Baumes des Codeerzeugungsalgorithmus. Ein »0«-Codezeichen entspricht einer Bewegung nach links unten, während ein »!«-Codezeichen einer Bewegung nach rechts oben entspricht Ein Endknoten ohne einen Pfeil gib» das Ende eines Codewortes an. Ein Endknoten mit einem Pfeil zeigt einen Übergang zu einem anderen Knoten im Diagramm. Wenn der Pfeil nicht expliziert auf den Widereintrittsknoten zeigt dann wird angenommen, daß dieser Wiedereintrittsknoten sich an der Spitze oder am Fuß des Diagramms befindet Die Codegruppe wird generiert in dem an der Spitze oder am Fuß begonnen und zu dem Endknoten ohne Pfeil weitergegangen wird. Verschiedene Wortlängen erhält man dadurch, daß wiedereintretende Pfeile erschöpfend in allen möglichen Kombinationen verwendet werden.
Es sei bemerkt daß der Code nach F i g. 11 für jede Länge nur eine Codegruppe enthält und daher am besten für ein Signal geeignet ist das eine entsprechende Wahrscheinlichkeitsverteilung besitzt Darüber hinaus repräsentiert der besondere Codekem nach F i g. 11 eine Klasse von Codes, in der Differentialschaltungen nicht notwendig sind. Wegen dieses Codeaufbaues ist es leichter direkt von den Eingangscodegruppen /' zu codieren und konkret die Differenzschaltung mit der Modifizierungslogikschaitung zu kombinieren. Ein Codierer, der diese Gesamtstruktur verwendet ist in Fig. 9 dargestellt
Der Decoder in dieser F i g. 9 entspricht demjenigen in F i g. 3. mit der Ausnahme, daß der Modifizierungslogikschaltung 200 nicht ein Subtraktor vorgeschaltet ist der einem Subtraktor 11' in Fig.i ähnlich ist. Diese Codes haben daher den weiteren Vorteil, daß sie den Codierer und Decodierer noch weiter vereinfachen und trotzdem eine extrem gute Selbstsynchronisation aufweisen.
Fig. 10 zeigt einen entsprechenden Decodierer, in dem die Additionsfunktion in die Demodifizierungs-Logikschaltung 201 eingebaut wurde, so daß kein Addierer, entsprechend dem Addierer 17' in Fig.4. erforderlich ist.
Die Komplementierungs- und Dekomplementierungs-Logiksehaltung in den Fig.9 und 10 kann am einfachsten durch eine Schaltung realisiert werden, die der in F i g. 12 dargestellten ähnlich ist. Eine Anzahl von Eingangsbits, derem Komplement gebildet werden soll, werden zu den Eingangsleitungen 210, 211 ... 212 übertragen. Jeder Eingang der Leitungen 210, 211 ... 212 ist mit einem entsprechenden Exklusiv-ODER-Tor 213, 214 ... 215 verbunden. Der übrige Eingang aller dieser Exklusiv-ODER-Tore ist mit der Steuerleitung 216 verbunden. Die Ausgangssignale, die auf den Ausgangsleitungen 217, 218 ... 219 erscheinen, sind Komplemente der Eingangssignale, wenn, und zwar nur dann, wenn die Tore 213 bis 215 von einem Signal auf der Leitung 216 erregt sind. Andernfalls sind die Ausgangssignale auf den Leitungen 217 bis 219 mit den Eingangssignalen auf den Leitungen 210 bis 212 identisch.
to Fig. 13 zeigt eine Modifizierungslogikschaltung, die als Modifizierungslogikschaitung 200 in F i g. 9 geeignet ist Sie ist gleichfalls als Demodifizierungslogikschaltung 201 in Fig. 10 den in Fig. 11 dargestellten Code geeignet Gemäß der Beschreibung der Tabelle 4
is herrschen, wenn j gerade ist die folgenden Beziehungen:
A=yfür/=O, A=O für/ =j, und
Wenn y ungerade ist dann ergibt sich folgendes:
*=15-yfür/=15.
A=OfOW=./
A=15-Ä
/ und j können binäre Zahlen sein, /beispielsweise (x(, »2. Xi. X4) und j beispielsweise (x\, *?'. *i\ x*\ Bei Cerwendung dieser Schreibweise gibt ein Balken über einer Binärzahl das binäre Komplement an. Daher ist
J= 15- Z=(JTi. J
u sei - »1« wenn, und nur wenn
Dieses bedeutet, daß u-x, ■ X2 ■ Xj ■ X4 ist (Boolesches Produkt). Ferner sei /= 1 wenn, und nur wenn /=y ist. Dieses bedeutet, daß
r-(xi + *i') · {X7+X1')
(X4+X4').
Daher ist t das Boolesche Produkt von vier Modulo zwei (Exklusiv-ODER)-Summen. Wenn dann A von einer 4-Bit-Binärzahl A«(p, q, r, s) repräsentiert wird, ergibt sich folgendes:
P" t ■ Xi+ U ■ X\
q—t ■ xj + u ■ Xi r= t ■ X) + u ■ Xi s—ί · X4 +u ■ X4.
F i g. 13 zeigt nun. daß der Wert u von j erhalten wird, in dem jede der Leitungen 250, 251, 252 und 253 mit einem entsprechenden lnverr?r 254 bis 257 verbunden wird. Die Ausgange dieser Inverter sind mit dem UND-Tor 258 zusammengeschaltet dessen Ausgangs* signal den Binärwert u repräsentiert. Dies« Signal u wird zu einem Eingang jedes der UN D-Tore 259 bis 262 übertragen, deren anderer Eingang jeweils mit den Leitungen 250 bis 253 verbunden ist.
Der Binlrwert t wird dadurch abgeleitet, daß jede der Eingangsleitungen 250 bis 253 mit einem entsprechenden Eingang eines der Exklusiv-ODER-Tore 263 bis 266 verbunden ist. Die anderen Eingänge dieser Exklusiv-ODER-Tore 263 bis 266 sind jeweils mit den entsprechenden Leitungen 267 bis 270, entsprechend den Werten x\ bis x4 verbunden. Die Ausgangssignale dieser Exklusiv-ODER-Tore 263 bis 266 werden zu dem
UND-Tor 271 übertragen. Dieses UND-Tor 271 öffnet, wenn es selbst geöffnet ist, die UND-Tore 272 bis 275 deren andere Eingänge mit den Leitungen 267 bis 270, entsprechend X\ bis x* verbunden sind.
Die Ausgangssignale der UND-Tore 259 bis 262 werden zu entsprechenden Eingängen der ODER-Tore 276 bis 279 übertragen. Die Ausgangssignale der Tore 272 bis 275 werden zu den verbleibenden Eingängen der ODER-Tore 276 bis 279 übertragen, deren Ausgangssignale auf den Leitungen 280 bis 283 ei scheinen. Diese Ausgangssignale bestehen aus den Binärwerten p, q, r und s, so daß der Codierer nach F i g. 9 direkt auf einen Vorsatzcodierer 12* angewendet werden kann.
Die Logikschaltung nach Fig. 13 kann direkt als die Modifizierungslogikschaltung201 in Fig. 10 verwendet werden, in dem einfach der Wert A:* auf die Eingangsleitungen 267 bis 270 übertragen wird. Die Ausgangssignale der ODER-Tore 280 bis 283 führen dann die Binärzahl /.
Die Komplementbildungslogikschaitung 12 wird, wenn sie in dem Codierer nach Fig.9 für die^Codes nach Tab. 4 verwendet wird, von dem Bit */ gesteuert, wodurch angegeben wird, ob j ungerade ist Ein Signal, das den Wert X4' repräsentiert, wird dann auf die Steuerleitung 216 in Fi g. 12 übertragen. ■
Obwohl der in F i g. 11 gezeigte Kerncode Vorteile bezüglich des Codierers nach Fig.9 aufweist, ist er keinesfalls der einzige Code, der verwendet werden kann. In F i g. 14 sind in den Spalten I - Vl sechs weitere Kerncodes angegeben. Jeder dieser Codes hat eine etwas andere Längenverteilung und Synchronisationsnacheilung. jeder kann als Kerncode in dem Codie rungsschema benutzt werden, das in Tabelle 4 angegeben ist Um eine Selbstsynchronisierung zu erzielen, können auch andere Kerncode und andere Codierungsschemata verwendet werden. Die hier gegebenen Beispiele sollen nur die wünschenswerten Codierungseigenschaften erläutern. Einige andere Codes können auch in dem eingangs erwähnten Aufsatz »Efficient Error-Limiting Variable-Length Codes« gefunden werden.
Der erste Schritt bei der Auswahl einer sequentiellen Codierung besteht darin, die optimale Codewortlänge für jeden Wert von j festzusetzen, basierend auf den konditionellen Wahrscheinlichkeiten von S(i), wobei SQ) gegeben ist Dieses kann dadurch bewirkt werden, daß der Huffman-Algorithmus so verwendet wird, wie es in dem ebenfalls eingangs erwähnten Aufsatz »A Method for the Construction of Minimum Redundancy Codes« Proceedings of the IRE, Vol. 40, Seiten 1098 1* 1101, September 1952, beschrieben ist Die Durchsicht der Matrixlängen, die so erhalten wurden, zeigt die Symmetrien die der Code haben sollte und ob eine reflektierte Symmetrie notwendig ist und ob ferner der Code ein Einkerncode sein kann. Der nächste Schritt besteht darin, den Kerncode zu wählen, dessen Längen am dichtesten an den gewünschten Längen liegen. Die Codierungen werden dann so angeordnet, daß sie die Kolonnenbildungs- und Assoziationseigenschaften optimal werden lassen. Der beste Selbstsynchronisationscode entspricht natürlich einem Code, der erwünschte Symmetrien, Kolonnenbildung und Assoziation aufweist.
Hierzu 6 Blatt Zeichnungen

Claims (3)

Patentansprüche:
1. Codeumsetzer für sequentielle Codes fester Länge in selbstsynchronisierende Codes variabler Länge mit einer Verzögerungsschaltung zur Verzögerung der Eingangssignale für die Dauer eines Symbolintervalls, mit einer Subtrahierschaltung zur Bildung der Differenz zwischen den Eingangssignalen und den verzögerten Signalen und mit einem Codierer zum Codieren von in der Substrahierschaltung gebildeten Signalen mit fester codierter Länge in Ausgangssignale mit variabler codierter Länge, gekennzeichnet durch eine auf die verzögerten Eingangssignale ansprechende Modifizier- Logikschaltung (21) zum Modifizieren der in der Subtrahierschaltung (W) gebildeten Signale, bevor diese in den Codierer (121) eingespeist werden, und durch eine Komplement-Logikschaltung (22), welche auf die verzögerten Eingangssignale anspricht, um das Komplement der Signale mit variabler codierter Länge zu bilden.
2. Codeumsetzer nach Anspruch 1. dadurch gekennzeichnet, daß die Modifizier-Logikschaltung (21) ein Exklusiv-ODER-Tor (101) und ein von dem verzögerten Eingangssignal gesteuertes UND-Tor (100) aufweist.
3. Codeumsetzer nach Anspruch 1, dadurch gekennzeichnet, daß die Komplement-Logikschaltung (22) aus einer Anzahl von Exklusiv-ODER-To- ren (213 bis "M5) besteht die über einen gemeinsamen Eingang (216) von den verzögerten Eingangssignalen gesteuert werden.
DE2204766A 1971-02-09 1972-02-02 Codeumsetzer für Datenverarbeitungssysteme Expired DE2204766C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11390571A 1971-02-09 1971-02-09

Publications (2)

Publication Number Publication Date
DE2204766A1 DE2204766A1 (de) 1972-08-17
DE2204766C2 true DE2204766C2 (de) 1982-11-11

Family

ID=22352234

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2204766A Expired DE2204766C2 (de) 1971-02-09 1972-02-02 Codeumsetzer für Datenverarbeitungssysteme

Country Status (6)

Country Link
US (1) US3716851A (de)
JP (1) JPS5517972B1 (de)
CA (1) CA948317A (de)
DE (1) DE2204766C2 (de)
FR (1) FR2124562B1 (de)
GB (1) GB1380167A (de)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3835467A (en) * 1972-11-10 1974-09-10 Ibm Minimal redundancy decoding method and means
US3906485A (en) * 1973-06-13 1975-09-16 Ibm Data coding circuits for encoded waveform with constrained charge accumulation
DE2508706C2 (de) * 1974-05-02 1984-10-11 International Business Machines Corp., Armonk, N.Y. Schaltungsanordnung zur Codierung von Datenbitfolgen
AT351610B (de) * 1975-11-14 1979-08-10 Siemens Ag Schaltungsanordnung zur empfangsseitigen regelung der phase eines taktsignals bei einer datenuebertragung mit teilinformationsimpulsen
US4152697A (en) * 1976-08-11 1979-05-01 Xerox Corporation Parallel run-length decoder
US4177455A (en) * 1978-01-09 1979-12-04 Ncr Corporation Electrically configurable high-low decoder
US4414536A (en) * 1980-07-25 1983-11-08 Tokyo Shibaura Denki Kabushiki Kaisha Data compressing system
US4670890A (en) * 1983-03-04 1987-06-02 Research Corporation Method of and/or apparatus for encoding and decoding sequential information in data handling systems
US5184125A (en) * 1989-06-28 1993-02-02 Digital Equipment Corporation Data encoding and demodulation system
FR2653954A1 (fr) * 1989-10-27 1991-05-03 Trt Telecom Radio Electr Procede pour transmettre une suite de m mots binaires de "p" elements binaires et dispositif de transmission mettant en óoeuvre ce procede.
US5034741A (en) * 1990-03-22 1991-07-23 United Technologies Corporation Variable length bit patterns for data representation
US5351047A (en) * 1992-09-21 1994-09-27 Laboratory Automation, Inc. Data decoding method and apparatus
US6609189B1 (en) * 1998-03-12 2003-08-19 Yale University Cycle segmented prefix circuits
US6408029B1 (en) 1998-04-02 2002-06-18 Intel Corporation Method and apparatus for simplifying real-time data encoding
US6904174B1 (en) * 1998-12-11 2005-06-07 Intel Corporation Simplified predictive video encoder
US7274671B2 (en) * 2001-02-09 2007-09-25 Boly Media Communications, Inc. Bitwise adaptive encoding using prefix prediction
US6864812B1 (en) * 2004-02-05 2005-03-08 Broadcom Corporation Hardware efficient implementation of finite impulse response filters with limited range input signals
US20070116117A1 (en) * 2005-11-18 2007-05-24 Apple Computer, Inc. Controlling buffer states in video compression coding to enable editing and distributed encoding
US8780997B2 (en) 2005-11-18 2014-07-15 Apple Inc. Regulation of decode-side processing based on perceptual masking
US8295343B2 (en) * 2005-11-18 2012-10-23 Apple Inc. Video bit rate control method
US8031777B2 (en) 2005-11-18 2011-10-04 Apple Inc. Multipass video encoding and rate control using subsampling of frames
US8233535B2 (en) 2005-11-18 2012-07-31 Apple Inc. Region-based processing of predicted pixels
WO2007145622A1 (en) * 2006-06-12 2007-12-21 Thomson Licensing Method and apparatus for embedding second code into optical disc data by data modulation rule variation
WO2010053287A2 (en) * 2008-11-04 2010-05-14 Lg Electronics Inc. An apparatus for processing an audio signal and method thereof

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3016527A (en) * 1958-09-04 1962-01-09 Bell Telephone Labor Inc Apparatus for utilizing variable length alphabetized codes
US3051940A (en) * 1958-09-04 1962-08-28 Bell Telephone Labor Inc Variable length code group circuits
US3185824A (en) * 1961-10-24 1965-05-25 Ibm Adaptive data compactor
DE1162399B (de) * 1961-10-24 1964-02-06 Ibm Verdichter fuer Daten, deren statistische Verteilung sehr stark schwankt

Also Published As

Publication number Publication date
JPS5517972B1 (de) 1980-05-15
CA948317A (en) 1974-05-28
US3716851A (en) 1973-02-13
GB1380167A (en) 1975-01-08
FR2124562A1 (de) 1972-09-22
DE2204766A1 (de) 1972-08-17
FR2124562B1 (de) 1974-12-13

Similar Documents

Publication Publication Date Title
DE2204766C2 (de) Codeumsetzer für Datenverarbeitungssysteme
DE2540472C3 (de) Verfahren und Schaltungsanordnungen zur Codierung binärer Daten unter Anwendung eines abgewandelten Null-Modulationscodes
DE4217009C1 (de) Hochgeschwindigkeitsdekodierer für Codes veränderlicher Länge
DE2508706C2 (de) Schaltungsanordnung zur Codierung von Datenbitfolgen
DE2227148C3 (de) Schaltungsanordnung zur Umsetzung digitaler Daten
DE2513862C2 (de) Vorrichtung zum Decodieren von Codes minimaler Redundanz und variabler Länge
DE10196890B4 (de) Verfahren zum Ausführen einer Huffman-Decodierung
DE2640414A1 (de) Schaltungsanordnung fuer die kompressionscodierung unter verwendung einer korrelation zwischen zweidimensionalen, aus zweiwertigen digitalen bildern abgeleiteten matrizen
DE2801988A1 (de) Arithmetische codierung von symbolfolgen
CH656760A5 (de) Verfahren und anordnung zur sicherstellung der start-synchronisation eines aus bit-impulsfolgen bestehenden telegramms innerhalb eines empfaengers.
DE2614916A1 (de) Konverter zur codeumwandlung
DE4217008C2 (de) HDTV-Dekodierer
DE2320422A1 (de) Verfahren zur fehlererkennung
DE2445926B2 (de) System zur uebertragung mehrstufiger daten
DE2925663A1 (de) Vorrichtung zur kompression binaerer signale fuer ein system zur kodierten uebertragung von faksimiles
DE2324538A1 (de) Digitale nachrichtenuebertragungsanordnung
DE2340250A1 (de) Verfahren zum codieren eines eine bestimmte redundanz aufweisenden nachrichtenstromes
DE19633353A1 (de) Decodierungsverfahren für Matrixcodes mit großen freien Entfernungen
DE69737304T2 (de) Dekoder für Kodes variabler Länge
DE2355786A1 (de) Verfahren und anordnung zur decodierung von codes mit minimaler redundanz
DE2057256A1 (de) Verfahren und Schaltungsanordnung zur Datensicherung bei der UEbertragung binaerer Daten
DE2828761C2 (de) Anordnung zum Kodieren von Datenbits
DE2838228A1 (de) Verfahren und anordnung zur synchronisation von datenbitfolgen
DE2440768B2 (de) Verfahren und Vorrichtung zur Datenkompression für die Faksimile-Übertragung graphischer Information
DE2365957B2 (de) Übertragungsverfahren für umkodierte Nachrichten

Legal Events

Date Code Title Description
OD Request for examination
D2 Grant after examination
8339 Ceased/non-payment of the annual fee