DE2204766A1 - Codewandler fur Datenverarbeitungs systeme - Google Patents
Codewandler fur Datenverarbeitungs systemeInfo
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 5
- 230000000295 complement effect Effects 0.000 claims description 25
- 238000006243 chemical reaction Methods 0.000 claims description 20
- 230000003111 delayed effect Effects 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 15
- 230000004048 modification Effects 0.000 description 14
- 238000012986 modification Methods 0.000 description 14
- 230000008901 benefit Effects 0.000 description 8
- 230000015572 biosynthetic process Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 5
- 238000000034 method Methods 0.000 description 5
- 230000009897 systematic effect Effects 0.000 description 5
- 239000003550 marker Substances 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000006837 decompression Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008707 rearrangement Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000010830 demodification reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4025—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code constant length to or from Morse code conversion
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/42—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
WESTERN ELECTRIC COMPANY Incorpotated P. G. Neumann^
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-
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
Λ. | \ | 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:
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.
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
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,
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 (χ , χ ,
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
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)
- PATENTANSPRÜCHEflJ 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 unddaß 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. 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. 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. 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/1082Leerseite
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)
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)
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)
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)
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 |
-
1971
- 1971-02-09 US US00113905A patent/US3716851A/en not_active Expired - Lifetime
- 1971-09-14 CA CA122,801A patent/CA948317A/en not_active Expired
-
1972
- 1972-02-01 GB GB454572A patent/GB1380167A/en not_active Expired
- 1972-02-02 DE DE2204766A patent/DE2204766C2/de not_active Expired
- 1972-02-08 FR FR7204145A patent/FR2124562B1/fr not_active Expired
- 1972-02-09 JP JP1366472A patent/JPS5517972B1/ja active Pending
Patent Citations (2)
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)
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 |