DE2204766A1 - Codewandler fur Datenverarbeitungs systeme - Google Patents

Codewandler fur Datenverarbeitungs systeme

Info

Publication number
DE2204766A1
DE2204766A1 DE19722204766 DE2204766A DE2204766A1 DE 2204766 A1 DE2204766 A1 DE 2204766A1 DE 19722204766 DE19722204766 DE 19722204766 DE 2204766 A DE2204766 A DE 2204766A DE 2204766 A1 DE2204766 A1 DE 2204766A1
Authority
DE
Germany
Prior art keywords
code
input
circuit
variable length
synchronization
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19722204766
Other languages
English (en)
Other versions
DE2204766C2 (de
Inventor
Peter Gabriel Rye N Y Neumann (V St A)
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

WESTERN ELECTRIC COMPANY Incorpotated P. G. Neumann^
Codewandler für Dat. enverarbeitungs syst erne
Die Erfindung betrifft einen Codewandler für Datenverarbeitungssysteme mit einer sequentiellen Umsetzungsschaltung zur Umsetzung der Eingangs signale in Ausgangs Symbole auf der Grundlage der augenblicklichen und früheren Eingangs signale und mit einer variablen Länge-Umsetzungsschaltung zur Umsetzung der Eingangs symbole der sequentiellen Umsetzungs schaltung in Ausgangs signale mit codierter variabler 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 wurde von der Anmelderin auch schon angegeben, daß nicht ganz optimale Klassen derartiger Codes (im folgenden mit "systematischen Codes" bezeichnet) gegenüber den optimalen (Huffman) Codes die Fähigkeit zur Selbst synchronisation besitzen. Diese Eigenschaft wurde von der Aranelderin in dem Aufsatz "Efficient
209834/1082
Error-Limiting Variable-Length Codes", IRE Trans. IT-8, Seite 292, Juli 1962, angegeben.
Ferner ist bekannt und auch dieses wurde von der Anmelderin bereits angegeben, daß sequentielle Codes, wenn man informationsverlustfreie sequentielle Maschinen verwendet, wie beispielsweise Codierer und Decodierer, ebenfalls beträchtliche Selbstsynchronisationseigenschaften besitzen; vgl. "Error-Limiting Coding Using Information-Lossless Sequential Machines", IEEE Trans. IT-IO, Seite 108, April 1964. In diesem Zusammenhang beinhaltet ein sequentieller Code einen Code, dessen Elemente sowohl von dem früheren, als auch von dem gegenwärtigen Eingangssignal abhängen. Diese Art von historischer Abhängigkeit findet man im allgemeinen in einfachen Differential code s, die die Differenz zwischen dem augenblicklichen oder gegenwärtigen und den früheren Eingangs Signalen darstellen. Diese differentielle Codierungen sind insbesondere für solche Information anwendbar, die hohe Redundanzbeträge beinhalten, wie beispielsweise Videosignale. Die differentiale Codierung führt jedoch zu dem Verlust von Nachrichteninformationsinhalt in den übertragenen Daten, da getrennte Synchronisationsinformation einbezogen ist.
209834/1002
Die Aufgabe der Erfindung besteht nun darin, diesen vorstehend genannten Nachteil zu vermeiden.
Für einen Codewandler für Datenverarbeitungssysteme mit einer sequentiellen Umsetzungs schaltung zur Umsetzung der Eingangssignale in Ausgangs Symbole auf der Grundlage der augenblicklichen früheren Ausgangs signale und mit einer variablen Länge-Umsetzungsschaltung zur Umsetzung der Eingangs Symbole der sequentiellen Umsetzungs schaltung in Ausgangs signale mit codierter variabler Lange besteht die Erfindung darin, daß ferner die variable Länge-Umsetzungsschaltung zur Umsetzung der Eingangs Symbole in eine vorgegebene Untergruppe von Vorsatzcodewörtern variabler Länge, daß weiter eine Modifizier-Logikschaltung, die auf frühere Eingang- ignaie anspricht, um ausgewählte Werte von Ausgangs Symbolen der sequentiellen Umsetzungsschaltung durch Änderung der Reihenfolge der genannten Ausgangssymbole zu modifizieren und daß schließlich eine Komplement-Logikschaltung, die auf verzögerte Eingangs signale anspricht, um von der Untergruppe der Vorsatzeodeworter variabler Länge selektiv deren Komplement zu bilden und um diese zu verdrehen, vorgesehen sind.
Im Zusammenhang mit der Erfindung werden sequentielle Co-
209834/1082
dierer mit variabler Länge entworfen, in dem grundlegende Vorsatzcodekerne mit variabler Länge verwendet werden. Diese Kerne sind eine Gruppe oder Untergruppe von Vorsatzcodewörtern, wobei ein Vorsatzcode ein solcher ist, bei dem keins seher Codewörter am Anfang eines anderen Codewortes auftritt.
Die Aufstellung solcher Kerncodewörter in die sequentielle Ein-/ Ausgangsmatrix zeigt bestimmte Eigenschaften, die dazu neigen, die Selbstsynchronisation zu einem Maximum werden zu lassen.
Insbesondere werden derartige Aufstellungen und die entsprechenden Codierer und Decodierer so entworfen, daß sie insofern symmetrisch sind, daß die gesamte Aufstellung einfacher Komplementbildungen und Umstellungen der Codewörter eines einzigen oder einer kleinen Anzahl von Codekernen enthält. Darüber hinaus sind alle Codewörter, die einem gegebenen Eingangswert entsprechen, so angeordnet, daß sie in der gleichen Stelle endigen, unabhängig von dem entsprechenden Ausgang. Diese Eigenschaft dient zur Erkennung des Endes jedes Codewortes und reduziert auf diese Weise die für eine Resynchronisation nach dem Auftreten von Fehlern notwendige Zeit. Schließlich müssen die Codewörter auch so ausgewählt werden, daß sie nur für eine r-?lativ kleine Anzahl von verschiedenen Symbolen auftreten,
209834/1082
wodurch sie verhindern, daß jedes Auftreten einem anderen Symbol entspricht.
Wenn die Codes mit allen diesen Eigenschaften entworfen werden, dann ergibt sich ein sehr wirkungsvoller sequentieller Code für eine nahezu optimale Kompression mit guten Eigensynchronisationsfähigkeiten und einer sehr kleinen Codierungs- und Decodierungskomplexität. Da die Codes durch einfache Transformationen (Komplementbildungenund Umstellungen) der Codewörter des gleichen grundlegenden Codekernes gekennzeichnet sind, können die Codierer und Decodierer durch einfache logische UND- und Exklusiv-ODER-Schaltungen realisiert werden, die mit herkömmlichen sequentiellen Codierern in Kaskade geschaltet werden. Diese Codes erweisen sich als
sehr nützlich für redundante Signalgabe, wie beispielsweise bei Videosignale für Fernsehen oder Bildtelefonie.
Die Erfindung kombiniert daher in vorteilhafter Weise die Kompressionsfähigkeit der Differentialcodierung mit der Eigensynchronisationsfähigkeit der sequentiellen Codierungen. Insbesondere aber besitzt die Erfindung den Vorteil, die Redundanz sehr gering zu halten, während gleichzeitig die Eigensynchronisation bei Vorsatzcodewandlern mit variabler Länge einen
209834/1082
Maximalwert erreicht.
Im folgenden wird die Erfindung anhand eines durch Zeichnungen erläuterten Ausführungsbeispieles näher beschrieben. Es zeigen:
Fig. 1 das Bockschaltbild eines bekannten Diffe-
rentialcodierers,
Fig. 2 das Blockschaltbild eines Differentialdeco-
dierers, der für eine Zusammenarbeit mit dem Codierer nach Fig. 1 geeignet ist, Fig. 3 das Blockschaltbild eines modifizierten
Differentialcodierers gemäß der Erfindung, einschließlich einer Modifizierungs- und Komplementbildungslogikschaltung für die • Erzeugung der Eigensynchronisation, Fig. 4 ein Blockschaltbild eines modifizierten Diffe-
rentialdecodierers, der für eine Zusammenarbeit mit dem Codierer nach Fig. 3 geeignet ist,
Fig. 5 ein ausführlicheres Blockschaltbild des Vor-
satzcodierers 121 in Fig. 3,
Fig. 6 ein ausführlicheres Blockdiagramm des Vorsatz·
decodierers 15* in Fig. 4,
209834/1082
Fig. 7 ein ausführlicheres Blockdiagramm eines
einfachen zweistelligen Codierers der in Fig. 3 dargestellten Bauart,
Fig. 8 ein ausführlicheres Blockschaltbild eines ein
fachen zweistelligen Decodierers nach der in Fig. 4 dargestellten Bauart,
Fig. 9 ein Blockschaltbild einer Codierungsschaltung,
in der die Subtraktions schaltung in die Modifizierungslogikschaltung eingebaut ist,
Fig. 10 das Blockschaltbild eines Codierers nach der in Fig. 4 dargestellten Bauart, bei dem die Additions schaltung in die Modifizierungslogikschaltung eingebaut ist,
Fig. 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 Komplement bildungslogikschaltung, die für eine Verwendung in den Schaltungen nach Fig. 3, 4, 9 und 10 geeignet ist,
209834/1082
Fig. 13 eine ausführliche Darstellung der kombinierten Modifizierungslogikschaltung und Subtraktionslogikschaltung für den Codierer nach Fig. 9, unter Benutzung des Vorsatzcodes nach Fig. 11, und
Fig. 14 eine Tabelle alternativer Vorsatzcodes mit
variabler Länge, die auch dazu benutzt werden können, um Codierer und Decodierer nach den in den Fig. 3 und 4 jeweils dargestellten Bauarten zu realisieren.
Vor einer ausführlichen Beschreibung der Figuren 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 Stellenfolgen (Codestellen), wobei jede Folge als Codewort bezeichnet wird. Ein Codetext wird durch eine Verkettung von Codewörtern erreicht und die Codierung ist eine Darstellung von Quellen Symbolen S(i) bezüglich der Codewörter V7(i). Ein Code ist ein Vorsatzcode nur dann, wenn kein Codewort am Anfang (Vorsatz) eines anderen Codewortes erscheint. Daher kann in einem Vorsatzcodetext
209834/1082
ein Codewort sobald es empfangen wurde, decodiert werden, sogar dann, wenn keine explizierten Zwischenwortmarkierer vorliegen.
Ein Code ist erschöpfend nur dann, wenn jede Folge von Codestellen der Vorsatz eines Codetextes ist (d, h. einer Folge von Codewörtern). Daher muß ein einzigartig decodierbarer Code ein Vorsatzcode sein, wenn erschöpfend ist.
Eine Folge von Codestellen ist eine synchronisierende Folge für einen gegebenen Code, wenn das Auftreten des Endes dieser Folge im (korrekten) Codetext dem Ende eines Codewortes entsprechen muß (obwohl nicht notwendigerweise einem besonderen Codewort), ohne Rücksicht darauf, was dieser Folge vorherging.
Es ist bekannt und von Schützenberger und anderen, vgl. "On an Application of Semi-Group Methods to Some Problems in Coding", IRE Trans., IT-2, Seite 47, September 1956, beschrieben, daß die meisten erschöpfenden Vorsatzcodes dazu neigen, sich selbst zu resynchronisieren nach einem Verlust der Synchronisation (z. B. nach beliebigen Fehlern oder beim Start). Diese Resynchronisation, sowohl in der genannten Literartur,
209834/1082
als auch bei der vorliegenden Erfindung, ist eine dem Code innewohnende Eigenschaft, so daß keine externe Synchronisation angelegt werden muß. Die Synchronisation, die einer Mehrdeutigkeit folgt, erscheint direkt als das Ergebnis einer
in
Synchronisierungsfolge, die in natürlicher Weise idem Codetext auftritt.
Die Synchronisationsnacheilung I eines Vorsatzcodes ist als eine mittlere Anzahl von Codestellen 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 für jedes Codewort angenommen werden, wobei d die Länge des Codewortes in Stellen bedeutet, dann ist die Synchronisationsnacheilung tatsächlich die mittlere Länge der Synchronisationsfolgen. Diese Synchronisation bis zum Ende eines nicht näher angegebenen Codewortes wird als Erste Stufe-Synchronisation bezeichnet. Die Zweite Stufe-Synchronisation findet statt, wenn der Codetext mit dem Ende eines bestimmten bekannten Codewortes synchronisiert ist. Die sequentielle Synchronisationsnacheilung J ist die mittlere Zahl von Codestellen, bis das Ende eines bekannten Codewortes in einem bekannten Zustand des Codes erreicht ist. Dieses ist gleich der
209334/1082
2204768
mittleren Länge der Synchronisationsfolgen für sequentielle Codes.
Eine sequentielle Codierung ist eine Aufstellung von Symbolen S(i) bezüglich der Codeworte W(i/j), wobei das ausgewählte Codewort von dem vorherf codierten Symbol S(j) genauso abhängt, wie das augenblicklich codierte Symbol S(i). Wenn die Gruppe von Codewörtern 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 Codestellen, 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 anfängliche 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 1 dargestellte Beispiel beitragen.
209834/1082
ί2
Tabelle 1
Λ. \ S(i) i=00 01 10 11
ί
J=OO
\ A B C D
J=Ol A W(O) W(I) W(2) W(3)
J=IO B W(3) W(O) W(I) W(2)
J=H C W(2) W(3) W(O) W(I)
D W(I) W(2) W(3) W(O)
Wie der Tabelle 1 zu entnehmen ist, repräsentieren A, B, C und D vier Quellensymbole S(i), i = 00, 01, 10, 11, wobei i die Höhe 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 Diiferenzcodierung. Es ist zu bemerken, daß unabhängig von der Wahl des Code (W(k)) stets Mehrdeutigkeit bei der De codierung gibt, sobald ein Fehler gemacht wird. Wenn beispielsweise S(IO) anstelle von S(Ol) decodiert wird, als Ergebnis eines Übertragungsfehlers, dann erzeugt die nachfolgende Decodierung stets S(i+1) anstelle von S (i), wobei i + 1 mod 4, also
2098 34/1082
1<-s Ü
Modulo 4 ist, solange wie weitere Fehler die ursprünglichen Fehler nicht kompensieren.
Ein Differential codier er, der für die Codierung des in Tabelle 1 angegebenen Codes geeignet ist, zeigt nun die Fig. 1. Dieser Codierer besteht aus einer Verzögerungsschaltung 10., die zur Verzögerung des Eingangs symbols i für die Dauer eines Symbolintervalls dient, um ein Symbol j zu erzeugen. Sowohl i als auch j werden einer Subtrahierschaltung 11 zugeführt, die die Differenz i - j = k bildet. Die Gruppe von Differenz Symbolen k kann dann in einem Kompressionscodierer 12 codiert werden, der sich die Vorteile der Differenz codierung 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 Code stellen beziehen, entsprechend kleinen Werten von k. Dieses folgt natürlich aus der R edundanz der Eingangsdaten i, da sich die Eingangsymbole relativ langsamverändern und die Differenz k klein bleibt. Vorzugsweise ist jedoch der Codierer 12 ein Codierer mit variabler Länge, der die optimalen Huffman-Codes oder nahe optimale Codes mit variabler Länge benutzt.
V ■
In Fig. 2 ist das Blockschaltbild eines Decodierers für den
20983471082
Codierer nach Fig. 1 dargestellt. Die codierten Daten auf der Leitung 13 in Fig. 1 werden über ein geeignetes Übertragungsmedium zu dem Kompressionsdecodierer 15 über die Leitung übertragen. Der Decodierer 15 ist die Umkehrung des Kompressionscodierers 12 und in Abwesenheit eines Fehlers stellt er die Differenz codes k auf der Leitung 16 wieder her. Diese Differenzcodes werden zu einer Addier schaltung 17 übertragen, deren Ausgangsdaten i über eine Verzögerungsschaltung 18 mit der Verzögerungszeit, die der Breite eines Symbols entspricht, zu dem anderen Eingang der Addier schaltung 17 übertragen wird. Die Addier schaltung 17, auch kurz Addierer genannt, erzeugt auf der Ausgangsleitung 19 die Summe der j- und k-Signale, die dem Informationssignal i entspricht, das ursprünglich im Codierer nach Fig. 1 zugeführt wurde.
In Übereinstimmung mit der Erfindung zeigt Fig. 3 eine Abwandlung des in Fig. 1 dargestellten Codierers, bei dem eine Modifizierungslogikschaltung 21 und eine Komplement-Logikschaltung 22, also eine Schaltung die das Komplement einer Eingangsinformation erzeugt, eingebaut wurden. Die Komponenten, die den gleichen in Fig. 1 entsprechen wurden mit den gleichen Bezugszahlen bezeichnet, sie erhielten jedoch zur Unterscheidung einen Strich. So ist die Modifizierungs-Logikschaltung 21 in den Daten-
209834/1082
weg zwischen der Subtrahier schaltung IX1, die auch kurz Subtraktor genannt wird, dem Codierer 12· eingeschaltet, Sie wird gesteuert von den Ausgangssignalen der Verzögerungs schaltung IG', Die Komplement-Logikschaltung 22 ist zwischen dem Codierer 12' und der Ausgangsleitung 13' eingeschaltet und wird ebenfalls von dem Ausgangssignal der Verzögerungsschaltun*g 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 Fig. 3 gezeigt, in einen Differentialcodierer eingebaut werden, einen Code erzeugen, der hochgradig selbst synchronisierend ist. Diese Selbst- oder Eigen synchroni sation ist eine dem Code innewohnende Eigenschaft, so daß keine externe Synchronisation erforderlich ist. Die Synchronisation ergibt sich direkt aus den natürlich 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 Fig. 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
209834/1082
IR
gekennzeichnet. Eine Dekomplement-Logikschaltung 23 ist hier zwischen der Eingangsleitung 14' und dem Vorsatzdecodierer 15' eingeschaltet und wird von den verzögerten Ausgangs-Signalen 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 Ausgangs Signalen der Verzögerungs schaltung 18' gesteuert.
In Übereinstimmung mit der Erfindung ergeben sich alle Vorteile der Selbstsynchronisation mit sehr geringer Syn chroni sat ion snach eilung aus der Verwendung der Codierer und Decodierer, die den in den Fig. 3 und 4 jeweils gezeigten Aufbau besitzen. Darüberhinaus sind die Bestandteile der logischen Schaltung der zu sätzlichen Logikschaltungen 21, 22, 23 und 24 einfache UND, ODER und Exklusiv-ODER-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 Selbstsynchronisationseigenschaften maximal zu gestalten, wobei gleichzeitig eine einfache und unaufwendige Codierungsschaltung gewählt wurde.
209834/108 2
1?
Bevor nun mit einer ausführlichen Beschreibung des Codewandlers gemäß der vorliegenden Erfindung begonnen wird, wird zunächst eine kurze Beschreibung eines geeigneten Typs eines grundlegenden sequentiellen Codierers und Decodierers anhand der Fig. 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 ü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 seriell 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 Vorsatz code mit variabler Länge und überträgt die sich ergebenden Binärsignale auf die Ausgangsleitungen 40. Darüber hinaus wird ein "I11-Markierimpuls an das Ende jeder Codegruppe angehängt, wenn sie in das Ausgangsschieberegister 42 eingegeben wird. Dieses Markierbit dient zur Steuerung der lokalen Codierungsschaltung und wird nicht zu dem Empfänger übertragen. Dieses "1"-Markiersignal
209834/1082
wird sofort an das Code wort angehängt und es dient als Endmarkierung, um das Ende eines Codewortes mit variabler Länge anzugeben.
Die Erkennungs schaltung 50 stellt das Vorliegen einer "1" in jeder außer der äußersten rechten Position des Ausgangsschieberegisters 42 fest. Diese Erkennungs schaltung 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 erzeugt ein aktives Signal, um das Tor 58 zu öffnen und 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 Ausgangs signal dazu dient, die nächste Eingangscodegruppe in das Schieberegister 32 hineinzuschieben.
209834/1082
Der Codierer nach Fig. 5 enthält ferner einen verallgemeinerten Umsetzer für die Umsetzen von Festlängen in variable Länge, der für die Umsetzung von Eingangs Signalen fester Länge geeignet ist, die möglicherweise Differentialcodes repräsentieren in Codes mit variabler Länge, die minimale Redundanzeigenschaften aufweisen dürfen. Es sei ferner noch erwähnt, daß die "1"-Markierungsimpulse niemals das Ausgangsschieberegister 42 verlassen und daß sie nur zur Markierung des Ende eines Codes mit variabler Länge im Register 42 dienen.
Fig. 6 zeigt einen Decodierer, der die umgekehrte Operation durchführt, wie der Codierer nach Fig. 5, In Fig. 6 kommen die codierten Signale mit variabler Länge auf der Eingangsleitung 69-an und werden zudem Eingangsschieberegister 70 übertragen. Die Ausgangsleitungen 71 vom Eingangs schieberegister 70 sind mit der kombinatorischen Umsetzerschaltung 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 kombinatorischen Umsetzungsschaltung 64 festgestellt wird, wird ein
20 9834/10 82
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 Fortschalt eimpul se zu dem Ausgangs schieberegister 66 ein, um diesen neuen Code auf die Übertragungsleitung 68 hinaus zu schieben.
Die Umsetzungsschaltungen 36 und 64 in den Fig. 5 und 6 bestehen jede aus einer Kombination logischer Torschaltungen, die von den Eingangs Signalen gegeben werden und wenn sie so geöffnet wurden, Binärsignale auf den entsprechenden Ausgangsleitungen 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 den Fig. 5 und 6 dargestellte
209834/1082
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 3 016 527 erläutert.
Ein spezielles Beispiel eines Codierungsschemas, das in allgemeiner Form in Tabelle 1 angegeben ist, konnte verwendet werden. Für die Zwecke dieser Darstellung wurde ein einfaches zweistelliges System ausgewählt, das in der nun folgenden Tabelle 2 gezeigt ist:
Tabelle 2
S(i) i=00 01 10 11
3<j> pq ^^ A B C D
J = 00 A 0 11 100 101
J = 01 B QLO 1 00 011
3 = 10 C 100 11 0 101
3 = 11 D 010 011 00 1
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 i ab, die jedem einzelnen Wert von j folgt.
209834/1082
Es kann leicht gezeigt werden, daß die Folge "0011" eine synchronisierende Folge ist, die mit einem Wert von i endet, der gleich "01" ist. Daher synchronisiert die Folge "0011" den Decoder zum Ende eines bestimmten Codewortes und zwar unabhängig davon, was der Synchronisierungsfolge vorausging. Auf ähnlicheweise synchronisiert die Folge "00101" den Decoder auf i = "11"; die Folge "1100}1 synchronisiert auf i = "10" und die Folge "11010" synchronisiert auf i = "00". Wenn angenommen wird, daß die Codewörter mit Huffman-Eigenschaften, dann kann leicht gezeigt werden, daß die Synchronisation aus der totalen Mehrdeutigkeit nach einem Durchschnitt von nur 7, Binärstellen (J = 7, 67) herrührt. Diese sequentielle Synchronisationsnacheilung J 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 J diemittlere Länge aller Synchronisierungsfolgen.
Die Wahl des Codes von Tabelle 2 ist der nach Tabelle 1 bezüglich der Selbst synchronisation unendlich überlegen. Wenn die gleiche Folge (0,. 11, 100, 101) verwendet wird, besitzt die Codierung nach Tab. 1 keine Selbstsynchronisationsfähigkeiten. Die Codierung nach Tab. 2 besitzt andererseits eine estrem straffe Selbstsynchronisation, die garantiert, daß Synchronisa-
209834/1082
tiörisfehler im Mittel nur für die Länge von etwa 8 Bits an-
dauern. Diese beiden Codes jedoch sind bezüglich ihrer Kompressiorisfähigkeiteh, das sind ihre Fähigkeiten, die Eingangsdaten durch Währscheinliehkeitseödierung 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.
Fig. 7 zeigt nun das Blockschaltbild eines Codierers, der für eine Codierung der Signale gemäß Tab. 2 geeignet ist. Es ist aus dieser Tabelle zu sehen, daß, wenn die erste Stelle (p) von j eine "1" ist, der reflektierte Code verwendet wird. Dieses wird in Fig. 7 mit Hilfe des UND-Tores 100 und des Exklusiv-ODER-
209834/1082
ORIGINAL INSPECTED
Tores 101 durchgeführt. In Fig. 7 sind die Elemente, die denjenigen in Fig. 3 entsprechen, durch die gleichen Bezugszahlen gekennzeichnet. Daher wird das Ausgangs signal ρ 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 Subtrahierechaltung 11' verbunden. Das Ausgangs signal des UND-Tores 100 wird zu einem Eingang des Exklusiv-ODER-Tores 101 übertragen. Der verbleibende Ausgang der Subtrahier schaltung II1 ist mit dem noch übrigen 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 Differenz code dient, der von der Subtrahier schaltung II1 geliefert wird. Diese modifizierten Codes werden zu dem Vorsatz codierer 12' übertragen, der beispielsweise den in Fig. 5 dargestellten Aufbau haben mag. Die in Fig. 7 gezeigten Tore können einen bekannten konventionellen Aufbau haben, vorzugsweise bestehen sie jedoch aus geeigneten integrierten Halbleiter-Schaltu ngsanordnungen.
Eine Betrachtung der Codes in Tabelle 2 zeigt, daß, wenn zweite Stelle (q) eine "1 " ist, von der Codegruppe aus der normalen Codegruppierung das Komplement gebildet wird. In Fig. 7
Ί '■: 'Λ Ί
wird das q-Ausgangs signal auf der Leitung 103 daher zu den Exklusiv-ODER-Toren 104 und 105 übertragen, die, wenn sie geöffnet sind, das Ausgangs signal des Codierers 12' für die Abgabe an die Ausgangsleitungen 13' 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 ergänzt werden. Diese Logikschaltungen stellen nur sehr geringe Randkosten des gesamten Codierers dar und bringen trotzdem beträchtliche Synchronisationsvorteile mit sich.
In'Fig. 8 ist das Blockschaltbild einer Decodierschaltung dargestellt, die für die Decodierung der in Tabelle 2 zusammengestellten Codes geeignet ist; Die Elemente, die denjenigen in Fig. entsprechen, wurden mit den gleichen Bezugszahlen versehen. Die q-Ausgangs signale 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 von q "1" ist. Die p-Ausgangs signale der Verzögerungsschaltung 18' werden zu dem UND-Tor 109 über-
209834/1082
tragen, dessen Ausgangs signal zu dem Exklusiv-ODER-Tor 110 übertragen wird. Die Tore 109 und 110 bilden zusammen die Modifizierungslogikschaltung 24 und dienen zur Gewinnung der reflektierten Darstellung des Ausgangs signals des Codierers 15', das zu dem Addierer 17' übertragen wird. Auch hier sind die Randkosten für die Selbst Synchronisationsmöglichkeit en, die von den Logikschaltungen 23 und 24 stammen, im Vergleich zu den Gesamtkosten desDecodierers sehr klein.
Aus der Tabelle 2 und den entsprechenden Schaltungen in Fig. 7 und 8 ist zu sehen, daß die sequentiellen Code eine beträchtliche Struktur haben müßten, um den Codierungs- und De codierungsprozeß 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, eins oder höchstens zwei. Dieses trifft deshalb zu, weil getrennte unabhängige Codierer
209834/1082
und Decodierer im allgemeinen für jeden unabhängigen Codekern benötigt werden. Die Eigenschaft, die Zahl der Codekerne klein zu halten, wurde als Symmetrierungseigenschaft bezeichnet, da sie zu Codierungsmatrizen führt, die eine kleine Zahl von Codekernen aufweisen, verschiedene Komplemente, Drehungen und Re flektionen dieser Grundkerne.
Es sei bemerkt, daß der Codierung von Tabelle 2 alle Codewörter für einen gegebenen Wert von i in.der gleichen Stelle endigen, unabhängig von dem Wert von j. Diese Eigenschaft, die als Kolonnenbil dungs-Eigenschaft bezeichnet wird, verbessert die Selbstsynchronisation erheblich dadurch, daß sie gleichförmige Endungen für Werte von i liefert.
Ei'ne 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 SCi) entspricht. Diese Assoziationseigenschaft verbessert die zweite Stufensynchronisation wesentlich.
20983^/108
Die nachstehende Tabelle 3 zeigt ein Beispiel eines Zweikerncodes, der die Kolonnenbildungs- und Assoziationseigenschaften erfüllt und der eine sequentielle Synchronisationsnacheilung J besitzt, die gleich 8. 9 ist.
Tabelle 3
S(j) S(X)=A B C D E
A 0 11 100 1011 1010
B 010 1 00 Olli 0110
C 1010 11 0 1011 100
D 010 Olli 00 1 0110
E 1010 11 100 1011 0
Im folgenden werden einige Eigenschaften des Codes von Tabelle und deren Auswirkungen erläutert. Bei einem kolonnenbildenden Code, wie beispielsweise dem in Tabelle 3, wird eine Gruppe von Symbolen S(i), 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 1-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,
209834/1082
wobei i ein gerader Wert ist. In ähnlicherweise garantiert die Folge "111" das Ende eines Codewortes, das einer 1-Gruppe B oder-D entspricht, wobei i ein ungerader Wert ist. Wenn einmal die Mehrdeutigkeit auf ein 0-Gruppensymbol oder ein 1-Gruppensymbol reduziert wurde, dann ist die Assoziationseigenschaft innerhalb dieser Gruppen eine große Hilfe für das Erreichen einer Zweite-Stufen-Synchronisation. Die Assoziationseigenschaft ist im wesentlichen hilfreich bei der Zweite-Stufensynchronisation, wenn der Vorsatzcode für jedes Symbol S(j) in der O-Gruppe und ähnlich für die 1-Gruppe, der. gleiche ist. Diese spezielle Assoziationseigenschaft von Kblonnencodes 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 Anzahl von Codewörtern besitzen, die mit 0 enden und die gleiche Anzahl, die mit 1 aufhören. Daher muß der Vorsatz code und sein Komplement so sein, daß die Hälfte seiner Codewörter in jeder Stelle 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
209834/1082
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 Be ispiel 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.
209834/1082
Tabelle 4
Ein-/Ausgangs-Matrix für einen symmetrischen, kolonnenbildenden, gegabelten, abgeglichenen Code mit einem beliebigen Vorsatzcodekern W(k)

fgerade
i=0 W(I) i=2 • · · i=n-3 L=n-2 i=n-l j ungerade
j=0 W(O) W(I) W(2) W(n-3) W(n-« W(n-l) n-1
2 W(2) W(I) W(O) W(n-3) W(n-2) W(n-l) 1-3
4 W(4) W(I) W(2) W(n-3) W (n-2) W(n-l) 1-5
6 W(6) W(I) W(2) • ■ · W(n-3) W (n-2) W(n-l) 1-7
*
*
n-8
W(n-8) W(I) W(2) W(n-3) W(n-2) W(n-l) 7
n-6 W(n-6) W(I) W(2) W(n-3) W (n-2) W(n-l) 5
n-4 W(n-4) W(I) W(2) W(n-3) W(n-2) W(n-l) 3
n-2 W (n-2) W(2) W(n-3) W(O) W(D-I) 3=1
Der Code in Tabelle 4 weist Spaltenbildung, Komplementierung, Gabelung und maximale Assoziation auf, ohne jedoch trivial zu sein. Es ist eine sehr hohe Wahrscheinlichkeit dafür angenommen, da i = j für Kompressions zwecke ist. Es sei erwähnt, daß
209834/1082
wenn j ungerade ist, das komplementäre Codewort verwendet wird und die Tabelle 4 von unten nach oben gelesen wird. Die Codegruppe besitzt daher eine komplementär reflektierte Symmetrie.
Aus dem Muster von Tabelle 4 kann man folgendes sehen: für jedengeraden Wert von j , mit Ausnahme von 0, ist der Wert des Kerncodes W(k) gleich dem für k = 0, wenn i = j ist. Für i = 0 ist der Wert k.= j und k = i zu allen anderen Zeitpunkten. Die Codewörter für ungerade Werte von j werden durch die komplementärreflektive Symmetrie spezifiziert.
Obwohl die optimalen Huffman-Vorsatzcodes abgestumpft und als Kerncode verwendet werden können, wird die Synchronisation, wenn systematische Vorsatzcodes verwendet werden, wesentlich verbessert. Ein systematischer 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 abgestumpfter systematischer Vorsatzcode, der für die Verwendung als Kern für das Codierungsschema nach Tabelle 4 geeignet
209834/1082
MT
ist, ist in Fig. 11 dargestellt.
In Fig. 11 entsprechen die Codegruppen mit fester Länge χ , χ , χ , χ den Werten von k, während y bis y den Bits der
£λ ό τ: A X O
Codegruppen mit variabler Länge entsprechen. Die mittlere Codewortlänge L, vorausgesetzt daß jedes Wort mit seinen charakteristischen Huffman-Eigen schaft en auftritt, ist 2. Die Synchronisationsnacheilung ist gleich 4.
Oben in Fig. 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 "1 "-Codezeichen einer Bewegung nach rechts oben entspricht. Ein Endknoten ohne einen Pfeil gibt das Ende eines Codewortes an. Ein Endknoten mit einem Pfeil zeigt einen Übergang zu einem anderen Knoten im Diagramm. Wenn der Pfeil nicht explizied auf den Wiedereintrittsknoten 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.
209834/1082
Es sei ferner bemerkt, daß der Code nach Fig. 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überhinaus repräsentiert der besondere Codekern nach Fig. 11 eine Klasse von Codes in der Differentialschaltungen nicht notwendig sind. Wegen dieses Codeaufbaues ist es leichter direkt von den Eingangscodegruppen i zu codieren und konkret die Differenzschaltung mit der Modifizierungslogikschaltung zu kombinieren. Ein Codierer, der diese Gesamt struktur verwendet, ist in Fig. 9 dargestellt.
Der Decoder in dieser Fig. 9 entspricht demjenigen in Fig. 3, mit der Ausnahme, daß der Modifizierungslogikschaltung nicht ein Subtraktor vorgeschaltet ist, der einem Subtraktör iif Fig. 3 ä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 eingebaut wurde, so daß kein Addierer, entsprechend dem Addierer 17' in Fig. 4, erforderlich ist.
209834/1082
Die Komplementierungs- und Dekomplementierungs-Logikschaltung in den Fig. 9 und 10 kann am einfachsten durch eine Schaltung realisiert werden, die der in Fig. 12 dargestellten ähnlich ist. Eine Anzahl von Eingangsbits, deren Komplement gebildet werden soll, werden zu den Eingangsleitungen 210, 211 ... übertragen. Jeder Eingang der Leitungen 210, 211 ... 212 ist mit einem entsprechen 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 Eingangs signale, wenn, und zwar nur dann, wenn die Tore 213 bis 215 von einem Signal auf der Leitung 216 erregt sind. Andernfalls sind die Ausgangs signale auf den Leitungen 217 bis 219 mit den Eingangssignalen auf den Leitungen 210 bis 212 identisch.
Fig. 13 zeigt eine Modifizierungslogikschaltung, die als Modifizierungslogikschaltung 200 in Fig. 9 geeignet ist. Sie ist gleichfalls als Demodifizierungs logiks ehalt ung 201 in Fig. 10 den in Fig. 11 dargestellten Code geeignet. Gemäß der Beschreibung der Tabelle 4 herrschen, wenn j gerade ist, die folgenden Beziehungen:
209834/1082
k = j für i = 0,
k = O für i = j, und
k= i.
Wenn j ungerade ist, dann ergibt sich folgendes:" k= 15 - j für i = 15,
k = 0 für i = j
k= 15 - i .
i und j können binäre Zahlen sein, i beispielsweise (χ , χ ,
X Ct
χ , χ ) und j beispielsweise (x' x' x' x'). Bei Verwen-
ο 4 X c\ ο ~t
dung dieser Schreibweise gibt ein Balken über einer Binärzahl das binäre Komplement an. Daher ist i = 15 - i = (χ , χ , χ , χ
X Cl O ^t/
u sei = "1" wenn, und nur wenn
Xl = X2 = X3 = X4 = °-
Dieses bedeutet, daß u = χ . χ . χ . χ ist (Boole1 sches
X Cm O τ:
Produkt). Ferner sei t = 1 wenn, und nur wenn i = j ist. Dieses bedeutet, daß
t = (Xl+xp . (x2+xy . (X3 +Xg) · (X4 +X^-
Daher ist t das Boole'sehe produkt von vier Modulo zwei (Exklusiv-ODER)-Summen. Wenn dann k von einer 4-Bit-Binärzahl k = (P. q> r, s) repräsentiert wird, ergibt sich folgendes :
209834/1082
P = t . X + U . Χ* q = t . X2 + U . X^
r = t . x3 + u . χ«
S =t .X. + U . X' .
4 4
Fig. 13 zeigt nun, daß der Wert u von j erhalten wird, in dem jede der Leitungen 250, 251, 252 und 253 mit einem entsprechenden Inverter 254 bis 257 verbunden wird. Die Ausgänge dieser Inverter sind mit dem UND-Tor 258 zusammengeschaltet·, dessen Ausgangs signal den Binärwert u repräsentiert. Dieses Signal u wird zu einem Eingang jedes der UND-Tore 259 bis 262 übertragen, deren anderer Eingang jeweils mit den Leitungen 250 bis 253 verbunden ist.
Der Binärwert 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 χ bis χ verbunden. Die Ausgangs signale 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
209834/1082
mit den Leitungen 267 bis 270, entsprechend χ bis χ verbunden sind.
Die Ausgangs signale der UND-Tore 259 bis 262 werden zu entsprechenden Eingängen der ODER-Tore 276 bis 279 übertragen. Die Ausgangs signale 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 erscheinen. Diese Ausgangs signale bestehen aus den Binärwerten p, q, r und s, so daß der Codierer nach Fig. 9 direkt auf einen Vorsatzcodierer 12' angewendet werden kann.
Die Logikschaltung nach Fig. 13 kann direkt als die Modifizierungslogikschaltung 201 in Fig. 10 verwendet werden, in dem einfach der Wert k* auf die Eingangsleitungen 267 bis 270 übertragen wird. Die Ausgangs signale der ODER-Tore 280 bis 283 führen dann die Binärzahl i.
Die Komplementbildungslogikschaltung . 12 wird, wenn sie in dem Codierer nach Fig. 9 für die Codes nach Tab. 4 verwednet
209834/1082
wird, von dem Bit x' gesteuert, wodurch angegeben wird, ob j ungerade ist. Ein Signal, das den Wert x' repräsentiert, wird dann auf die Steuerleitung 216 in Fig. 12 übertragen.
Obwohl der in Fig. 11 gezeigte Kerncode Vorteile bezüglich des Codierers nach Fig. 9 aufweist, ist er keinesfalls der einzige Code, der verwendet werden kann. In Fig. 14 sind in den Spalten I - VI sechs weitere Kerncodes angegeben. Jeder dieser Codes hat eine etwas andere Längen verteilung und Synchronisationsnacheilung. Jeder kann als Kerncode in dem Codierungsschema benutzt werden, das in Tabelle 4 angegeben ist. Um eine Selbst synchronisierung 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 Codeskö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 konditioneilen Wahrscheinlichkeiten von S(i), wobei S(j) gegeben ist. Dieses kann dadurch bewirkt werden, daß der Huffman-Algorithmus so verwendet
209834/1082
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 bis 1101, September 1952, beschrieben ist. Die Durchsicht der Matrixlängen, die so erhalten wurden, zeigt die Symmetrien die der Code haben sollte und und ob eine reflektierte Symmetrie notwendig ist und ob ferner der Code ein Einkerncode sein kann. Der nächste Schritt besteht darin, den Ke rncode zu wählen, dessen Längen am dichtesten an den gewünschten Längen liegen. Die Codierungen werden dann so angeordnet, daß sie die Kolonnen bildungs- und Assoziationseigenschaften optimal werden lassen. Der beste Selbstsynchronisationscode entspricht natürlich einem Code, der erwünschte Symmetrien, Kolonnenbildung und Assoziation aufweist.
209834/1082

Claims (4)

  1. PATENTANSPRÜCHE
    flJ Codewandler für Datenverarbeitungssysteme mit einer sequentiellen Umsetzungsschaltung zur Umsetzung der Eingangssignale in Ausgangs Symbole auf der Grundlage der augenblicklichen und früheren Eingangs signale und mit einer variablen Länge-Umsetzungsschaltung zur Umsetzung der Eingangssymbole der sequentiellen Ums et zungs schaltung in Ausgangssignale mit codierter variabler Länge, dadurch gekennzeichnet,
    daß die variable Länge-Umsetzungsschaltung (12'; Fig. 3), die Umsetzung der Eingangs Symbole in eine vorgegebene Untergruppe von Vorsatzcodewörtern variabler Länge vornimmt, daß weiter eine Modifizier-Logikschaltung (21), die auf frühere Eingangs signale .anspricht, um ausgewählte Werte von Ausgangssymbole der sequentiellen Umset zungs schaltung (II1) durch Änderung der Reihenfolge der genannten Ausgangs Symbole zu modifizieren und
    daß schließlich eine Komplement-Logikschaltung (22), die auf verzögerte Eingangs signale anspricht, um von der Untergruppe der Vorsatzcodewörter variabler Länge, selektiv derem Komplement zu bilden und um diese zu verdrehen, vorgesehen sind.
    209834/1Ö8 2
  2. 2. Codewandler nach Anspruch 1, dadurch gekennzeichnet, daß die Modifizier-Logikschaltung (21; Fig. 7) ein Exklusiv-ODER-Tor (101) und ein UND-Tor (100) aufweist, welch letzteres von dem verzögerten Eingangssignal gesteuert wird.
  3. 3. Codewandler nach Anspruch 1, dadurch gekennzeichnet, daß die Komplement-Logikschaltung (22; Fig. 3, Fig. 12) aus einer Anzahl von Exklusiv-ODER-Tor en (213 bis 215) besteht, die über einen gemeinsamen Eingang (216) von den verzögerten Eingangs Signalen gesteuert werden.
  4. 4. Codewandler nach Anspruch 1, dadurch gekennzeichnet, daß die Modifizier-Logikschaltung (21; Fig. 3) die ausgewählten Werte der sequentiellen Umsetzungsschaltung (H') modifiziert, in dem sie die Ausgangs signale in ihrer Reihenfolge umdreht und verschiebt.
    209834/1082
    Leerseite
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 true DE2204766A1 (de) 1972-08-17
DE2204766C2 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2508706A1 (de) * 1974-05-02 1975-11-20 Ibm Codieren und decodieren mit einem code variierbarer wortlaenge und gegebenem bitzahlverhaeltnis

Families Citing this family (23)

* 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
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
US7263127B1 (en) 1998-04-02 2007-08-28 Intel Corporation Method and apparatus for simplifying frame-based motion estimation
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
US8295343B2 (en) * 2005-11-18 2012-10-23 Apple Inc. Video bit rate control method
US20070116117A1 (en) * 2005-11-18 2007-05-24 Apple Computer, Inc. Controlling buffer states in video compression coding to enable editing and distributed encoding
US8233535B2 (en) 2005-11-18 2012-07-31 Apple Inc. Region-based processing of predicted pixels
US8031777B2 (en) 2005-11-18 2011-10-04 Apple Inc. Multipass video encoding and rate control using subsampling of frames
US8780997B2 (en) 2005-11-18 2014-07-15 Apple Inc. Regulation of decode-side processing based on perceptual masking
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

Citations (2)

* 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

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1162399B (de) * 1961-10-24 1964-02-06 Ibm Verdichter fuer Daten, deren statistische Verteilung sehr stark schwankt
US3185824A (en) * 1961-10-24 1965-05-25 Ibm Adaptive data compactor

Patent Citations (2)

* 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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2508706A1 (de) * 1974-05-02 1975-11-20 Ibm Codieren und decodieren mit einem code variierbarer wortlaenge und gegebenem bitzahlverhaeltnis

Also Published As

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

Similar Documents

Publication Publication Date Title
DE2204766A1 (de) Codewandler fur Datenverarbeitungs systeme
DE4217009C1 (de) Hochgeschwindigkeitsdekodierer für Codes veränderlicher Länge
DE2227148C3 (de) Schaltungsanordnung zur Umsetzung digitaler Daten
DE2540472C3 (de) Verfahren und Schaltungsanordnungen zur Codierung binärer Daten unter Anwendung eines abgewandelten Null-Modulationscodes
DE2513862A1 (de) Vorrichtung zum dekodieren
DE2801988A1 (de) Arithmetische codierung von symbolfolgen
DE3039726A1 (de) Verfahren und vorrichtung zum codieren eines digitalsignals mit niedriger gleichkomponente
DE1487785A1 (de) Selbstsynchrone Signalverzerrvorrichtung
DE4217008C2 (de) HDTV-Dekodierer
DE2925663A1 (de) Vorrichtung zur kompression binaerer signale fuer ein system zur kodierten uebertragung von faksimiles
DE2500055C2 (de) Faksimile-uebertragungssystem
DE1537549C3 (de) Übertragungssystem für bipolare Impulse
DE1437367B2 (de) Schaltungsanordnung zum umwandeln binaerer impulssignale in solche mit zumindest dreimoeglichen pegeln derart dass der gleichstrompegel des resultierenden signales null ist
DE2324538A1 (de) Digitale nachrichtenuebertragungsanordnung
DE69737304T2 (de) Dekoder für Kodes variabler Länge
DE2828761C2 (de) Anordnung zum Kodieren von Datenbits
DE2440768B2 (de) Verfahren und Vorrichtung zur Datenkompression für die Faksimile-Übertragung graphischer Information
DE2057256A1 (de) Verfahren und Schaltungsanordnung zur Datensicherung bei der UEbertragung binaerer Daten
DE2431519B2 (de) Schaltung zur Wiedergewinnung von mittels Pulsfrequenzmodulation aufgezeichneter Daten
DE112004001830B4 (de) Datenübertragungssystem mit reduziertem Leistungsverbrauch, Verfahren und Übertragungsschaltung
DE2365957A1 (de) Uebertragungssystem fuer umkodierte nachrichten
DE3104762A1 (de) System zur binaeren datenuebertragung
DE2625527A1 (de) Verfahren zur kompression redundanter digitaler quellsignale
DE1907937A1 (de) Decoder fuer die Mehrkanal-Pulscodemodulation
EP1261137B1 (de) Verfahren zum Kodieren und Dekodieren von Datenströmen

Legal Events

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