DE2204766C2 - Codeumsetzer für Datenverarbeitungssysteme - Google Patents
Codeumsetzer für DatenverarbeitungssystemeInfo
- Publication number
- DE2204766C2 DE2204766C2 DE2204766A DE2204766A DE2204766C2 DE 2204766 C2 DE2204766 C2 DE 2204766C2 DE 2204766 A DE2204766 A DE 2204766A DE 2204766 A DE2204766 A DE 2204766A DE 2204766 C2 DE2204766 C2 DE 2204766C2
- Authority
- DE
- Germany
- Prior art keywords
- code
- signals
- synchronization
- codes
- circuit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
- 230000000295 complement effect Effects 0.000 claims description 26
- 230000003111 delayed effect Effects 0.000 claims description 12
- 230000004048 modification Effects 0.000 description 16
- 238000012986 modification Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 230000008901 benefit Effects 0.000 description 7
- 230000015572 biosynthetic process Effects 0.000 description 7
- 230000006835 compression Effects 0.000 description 7
- 238000007906 compression Methods 0.000 description 7
- 238000005755 formation reaction Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000000034 method Methods 0.000 description 5
- 230000009897 systematic effect Effects 0.000 description 5
- 238000010276 construction Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 239000003550 marker Substances 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000010830 demodification reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 206010012335 Dependence Diseases 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000007704 transition Effects 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
Die Erfindung betrifft einen Codeumsetzer für sequentielle Codes fester Länge in selbstsynchronisierende Codes variabler Länge mit einer Verzögerungs-
schaltung zur Verzögerung der Eingangssignale für die Dauer eines Symbolintervalls, mit einer Subtrahierschaltung zur Bildung der Differenz zwischen den
Eingangssignalen und den verzögerten Signalen und mit einem Codierer zum Codieren von in der Subtrahierschaltung gebildeten Signalen mit fester codierter
Länge in Ausgangssignale mit variabler codierter Länge.
Es ist bekannt Vorsatzcodes mit variabler Länge zu verwenden, um die Redundanz in digitalcodierter
Information möglichst gering zu halten. Diese Technik wurde von D. A. Huffman in »A Method for the
Construction of Minimum Redundancy Codes«, 40 Proc. IRE 1098. September 1952. beschrieben. Es ist auch
ichon bekannt, daß nicht ganz optimale Klassen derartiger Codes (im folgenden mit »systematische
Codes« bezeichnet) gegenüber den optimalen Huffman-Codes die Fähigkeit zur Selbstsynchronisation besitzen.
Diese Eigenschaft wurde in dem Aufsatz »Efficient Error-Limiting Variable-Length Codes«. IRE Trans.
IT-S. Seite 292, Juli 1962, angegeben.
Ferner ist bekannt, daß sequentielle Codes dann, wenn man informationsverlustfreie sequentielle Maschinen verwendet, wie beispielsweise Codierer und
Decodierer, ebenfalls gute Selbstsynchronisationseigenschäften besitzen; vgl. »Error-Limiting Coding Using
Information-Lossless Sequential Machines«, IEEE
Trans. IT-10. Seite 108. AdHI 1964. In diesem
Zusammenhang ist ein sequentieller Code ein Code, dessen Elemente sowohl vom früheren als auch vom
gegenwärtigen Eingangssignal abhängen. Diese Art von Abhängigkeit findet man allgemein in einfachen
Differentialcodes, die die Differenz zwischen dem augenblicklichen und den früheren Eingangssignalen
darstellen. Diese differentielle Codierungen sind insbesondere für solche Informationen anwendbar, die hohe
Redundanz besitzen, wie beispielsweise Video signale.
Die differentielle Codierung führt jedoch zu einem Verlust von Informationsgehalt bei den übertragenen
Daten, da getrennte Synchronisationsinformationen einbezogen sind.
Spezielle Codes variabler Länge, die eine einfache
.Sortierung der codierten Informationen ermöglichen, sind aus der US-PS 30 16 527 bekannt Bekannt ist auch
die Verwendung zusätzlicher Markierimpulse in den Schieberegistern des Codierers und Decodierers für
Codes variabler Länge (US-PS 30 51 940)·).
Der Erfindung liegt nun die Aufgabe zugrunde, einen Codeumsetzer der eingangs genannten Art zu schaffen,
der ohne zusätzliche Synchronisationsinformationen auskommt, also selbstsynchronisierend ist
Zur Lösung dieser Aufgabe geht die Erfindung aus von dem Codeumsetzer der eingangs genannten Art
und ist gekennzeichnet durch eine auf die verzögerten Eingangssignale ansprechende Modifizier-Logikschaltung zum Modifizieren der in der Subtrahierschaltung
gebildeten Signale, bevor diese in den Codierer eingespeist werden, und durch eine Komplement-Logikschaltung, welche auf die verzögerten Eingangssignale
ansprichtum das Komplement der Signale mit variabler codierter Länge zu bilden.
Weiterbildungen der Erfindung sind Gegenstand der Unteransprüche. So kann die Modifizier-Logikschaltung ein Exklusiv-ODER-Tor und ein von dem
verzögerten Eingangssignal gesteuertes UND-Tor aufweisen. Die Komplement-Logikschaltung läßt sich
aus einer Anzahl von Exklusiv-ODf 1-Toren aufbauen,
die über einen gemeinsamen Eingang von den verzögerten Eingangssignalen gesteuert werden.
Durch die Modifizier-Logikschaltung und die Komplement-Logikschaltung, die, wie die Weiterbildungen
der Erfindung zeigen, einfache logische Schaltungen sein können, wird ein hochgradig selbstsynchronisierender Code erzeugt. Die Selbstsynchronisation ist dabei
eine dem Code innewohnende Eigenschaft, so daß keine zusätzliche externe Synchronisation erforderlich ist. Mit
der Erfindung werden in vorteilhafter Weise die Kompressionsfähigkeit der differentiellen Codierung
mit der Selbstsynchronisationsfähigkeit der sequentiellen Codierungen kombiniert. Die Redundanz kann sehr
gering gehalten werden, während gleichzeitig die Selbstsynchronisation einen Maximalwert erreicht.
In Verbindung mit der Erfindung werden sequentielle
Codierer für Codes variabler Länge geschaffen, bei denen sogenannte Vorsatzcodekerne variabler Länge
verwendet werden. Ein Vorsatzcode ist dabei ein Code, bei dem keines seiner Codewörter am Anfang eines
anderen Codewortes auftritt. Die Vorsatzcodekerne sind dann eine Gruppe oder Untergruppe der
Vorsatzcodewörter. Wie noch erläutert werden soll, zeigt eine Einordnung solcher Codekernwörter in eine
sequentielle Eingangs-Ausgangsmatrix bestimmte Eigenschaften, die die SelbsfSynchronisation zu einem
*) In beiden Fällen sind die jeweils verwendeten Codes keine
differentiellen Codes.
Maximum werden lassen, im einzelnen werden eine
solche Einordnung und die zugehörigen Codierer und Decodierer so ausgebildet, daß sie symmetrisch sind,
derart, daß die gesamte Zuordnung einfache Komplementbildungen und Umstellungen der Codewörter eine:,
einzigen Codekerns oder einer kleinen Anzahl von Codekernen sind. Darüber hinaus sind alle Codewörter,
die einem gegebenen Eingangswert entsprechen, so angeordnet, dJi sie unabhängig von dem jeweiligen
A'i^gsr.gswert mit der gleichen Ziffer enden. Diese
Eigenschart dient zur Erkennung des Endes jedes Codewortes und verringert dadurch die für eine
Neusynchronisation nach dem Auftreten von Fehlern erforderliche Zeit
Wenn die Codes mit allen diesen Eigenschaften entworfen werden, dann ergibt iich ein sehr wirkungsvoller
sequentieller Code für eine nahezu optimale Kompression mit guten Selbstsynchronisationseigenschäften
und sehr kleiner Codierungs- und Decodierungskomplexität Diese Codes erweisen sich als sehr
zweckmäßig für eine redundante Signalübertragung, beispielsweise bei Videosignalen für Femsehiniwendungen.
Im folgenden wird die Erfindung anhand eines durch Zeichnungen erläuterten Ausführungsbeispiels näher
beschrieben. Es zeigt
Fig. 1 das Blockschaltbild eines bekannten Differentialcodierers.
F i g. 2 das Blockschaltbild eines Differentialdecodierers,
der für eine Zusammenarbeit mit dem Codierer nach F i g. 1 geeignet ist,
F i g. 3 das Blockschaltbild eines modifizierten Differentialcodierers
gemäß der Erfindung, einschließlich einer Modifizierungs- und Komplementbildungslogikschaltung
für die Erzeugung der Eigensynchronisation,
F i g. 4 ein Blockschaltbild eines modifizierten Differentialdecodierers.
der für eine Zusammenarbeit mit dem Codierer nach F i g. 3 geeignet ist,
Fi g. 5 ein ausführlicheres Blockschaltbild des Vorsatzcodiereisiyin
Fig.3.
F i g. 6 ein ausführlicheres Blockdiagramm des Vorsatzdecodierers 15' in F i g. 4,
F i g. 7 ein ausführlicheres Blockdiagramm eines einfachen zweistelligen Codierers der in F i g. 3
dargestellten Bauart.
Fig.8 ein ausführlicheres Blockschaltbild eines einfachen zweistelligen Decodierers nach der in F i g. 4
dargestellten Bauart.
F i g. 9 ein Blockschaltbild einer Codierungsschaltung,
in der die Subtraktionsscnaltung in die Modifizierungslogikschaltung
eingebaut ist.
F i g. 10 das Blockschaltbild eines Codierers nach der in F i g. 4 dargestellten Bauart, bei dem die Additionsschaltung in die Modifizierungslogikschaltung eingebaut
ist.
F i g. 11 eine Tabelle, die die Codeäquivalente
zwischen binär codierten Symbolen fester Länge und Codegruppen variabler Länge eines bestimmten Vorsatzcodes
zeigt, der bessere Synchronisationseigenschaften aufweist,
Fig. 12 eine ausführliche Darstellung der Komplementbildungslogikschaltung,
die für eine Verwendung in den Schallungen nach Fig. 3,4,9 und 10 geeignet ist,
Fig. 13 eine ausführliche Darstellung der kombinierten
Modifizierungslogikschaltung und Subtraktionslofikschaltung für den Codierer nach Fig.9. unter
Benutzung des Vorsatzcudes nach Fig. 1 !,und
Fig. 14 eine Tabelle alternativer Vorsatzcodes mit variabler Länge, die auch da?" benutzt werden können,
um Codierer und Deeodk- r nach (W u, den F i g. 3 und
4 jeweils dargestellten Bauarten zu realisieren.
Vor einer ausführlichen Beschreibung der Figuren
Vor einer ausführlichen Beschreibung der Figuren
-5 wird im folgenden eine Übersicht über die Definitionen
bestimmter Terme gegeben, die bei der Beschreibung der vorliegenden Erfindung nützlich sind.
Ein Code ist eine Sammlung von Ziffernfolgen (Codeziffern), wobei jede Folge als Codewort bezeich-
net wird. Ein Codetext wird durch eine Verkettung von Codewörtern erreicht und die Codierung ist eine
Darstellung von Quellensymbolen S(i) durch Codewörter W(i). Ein Code ist ein Vorsatzcode nur dann, wenn
kein Codewort am Anfang (als Vorsatz) eines anderen Codewortes erscheint Daher kann in einem Vorsatzcodetext
ein Codewort sobald es empfangen wurde, decodiert werden, obwohl keine explizierten Zwischenwortmarkierer
vorliegen.
Ein Code ist erschöpfend dann und nur dann, wenn
Μ jede Folge von Codeziffern d" Vorsatz eines
Codetextes ist (d. h. einer Folge v-n Codewörtern).
Daher muß ein eindeutig decodierbarer Code ein Vorsatzcode sein, wenn er erschöpfend ist
Eine Folge von Codeziffern ist eine synchronisierende
Folge f'ir einen gegebenen Code, wenn das Auftreten des Endes dieser Folge im (korrekten) Codetext dem
Ende eines Codewortes entsprechen muß (sowohl nicht notwendigerweise einem besonderen Codewort), ohns
Rücksicht darauf, was dieser Folge vorherging.
Es ist bekannt (Schützenberger und anderen »On an Application of Semi-Group Methods to Some Problems
in Coding«. IRE Trans, IT-2, Seite 47, September 1956),
daß die meisten erschöpfenden Vorsatzcodes dazu neigen, sich nach einem Verlust der Synchronisation
(z. B. nach beliebigen Fehlern oder beim Start) selbst zu
synchronisieren. Diese Selbstsynchronisation ist, sowohl beim Stand der Technik nach der genannten Literaturstelle
als auch bei der vorliegenden Erfindung eine dem Code innewohnende Eigenschaft, so daß keine externe
Synchronisation vorgenommen werden muß. Die Sy- chronisation. die einer Mehrdeutigkeit folgt, erscheint
direkt als das Ergebnis einer Synchronisierungsfolge, die in natürlicher Weise in dem Codetext auftritt.
Die Synchronisationsnacheilung I eines Vorsatzcodes ist als eine mittlere Anzahl von Codesteüen definiert, die
auftreten bis eine Synchronisation bis zum Ende eines (nicht notwendigerweise bekannten) Codewortes garantiert
werden kann, dem eine totale Mehrdeutigkeit folgt. Wenn Huffman-charakteristische Wahrscheinlichkeiten
2~rf für jedes Codewort angenommen werden, wobei d
die Länge des Codev/ortes in Ziffern bedeutet, dann ist Synchronisationsnacheilung die mittlere Länge der
Synchronisationsfolgen. Diese Synchronisation bis zum Ende eines nicht näher angegebenen Codewortes wird
als Erste-Stufe-Syrchronisation bezeichne!. Die Zweite-Stufe-Synchronisation findet statt, wenn der Codetext
mit dem Ende eines bestimmten bekannten Codewortes synchronisiert ist. Die sequentielle Synchronisationsnacheilung
/ ist c.e mittlere Zahl von Codeziffern, bis das Ende eines bekannten Codewortes in einem
bekannten Zustand des Codes erreicht ist. Dieses ist gleich der mittleren Länge der Synchronisationsfolgen
für sequentielle Codes.
Eine sequentielle Codierung ist eine Zusammenstelli'Tig
von Symbolen 3(i) zu Codewörtern W(i,'j), wobei
das ausgewählte Codewort von dem vorher codierten Symbol S(J) sowie von dem augenblicklich codierten
Symbol S(i) abhängt. Wenn die Gruppe von Codewör-
tern W für jedes j ein Vorsatzcode ist, dann ist die
Gruppe von Codewörtern ein sequentieller Vorsatzcode. Für diese Codes ist eine Synchronisierfolge eine
Folge von Codeziffern, deren Ende dem Ende eines Codewortes (möglicherweise unbekannt) entspricht, das
von einem bekannten Symbol S(i) stammt, unabhängig davon, was dieser Folge vorausging. Danach ist eine
nachfolgende Decodierung korrekt, ohne Rücksicht auf die anfangliche Mehrdeutigkeit. Die vorliegende Erfindung
schließt Codierer und Decodierer für besondere Klassen von sequentiellen Vorsatzcodes ein, die eine
starke Kompression in ihrer Codierung und Decodierung aufweisen und hervorragende Selbst- oder
Eigensynchronisationseigenschaften aufweisen.
Zum besseren Verständnis der sequentiellen Codierung soll das in Tabelle I dargestellte Beispiel beitragen.
20
J = 00 A W(O) W(I) W(I) WQ)
j = 01 B WO) W(O) W(I) W(I)
Tabelle 1 | S(D | 01 | 10 | 11 |
SO) | / = 00 | B | C | D |
A | ||||
11 D
W(2)
W(I)
wo)
W(D
W(O)
WO)
W(X) W(O)
30
Wie der Tabelle 1 zu entnehmen ist, repräsentieren A, B, C und D vier Quellensymbole 5(7Jt /=00, 01, 10, 11,
wobei /die Höhe oder der Pegel des Symbols ist. Dies ist das Beispiel einer Codierung, bei dem ein Codewort
W(i/j) das übertragen werden soll, eine Funktion der
zyklischen Differenz zwischen der Höhe des Symbols S(i), das codiert werden soll (Spaltenüberschriften) und
der Höhe des Symbols S(J) das gerade zuvor codiert wurde (Zeilenangabe) ist: W(i/j)~ W(k) wobei k=i-j
(mod 4) ist. Diese Codierung ist daher eine Differenzcodierung. Es ist zu bemerken, daß sich unabhängig von
der Wahl des Code (W(k)) stets Mehrdeutigkeit bei der Decodierung ergibt, sobald ein Fehler gemacht wird.
Wenn beispielsweise 5(10) anstelle von 5(10) decodiert wird, als Ergebnis eines Übertragungsfehlers, dann
erzeugt die nachfolgende Decodierung stets 5(7+1) anstelle von S(i), wobei /'+1 mod 4, also Modulo 4 ist,
solange weitere Fehler die ursprünglichen Fehler nicht kompensieren.
Ein Differentialcodierer, der für die Codierung des in
Tabelle 1 angegebenen Codes geeignet ist, zeigt die Fig. 1. Dieser Codierer besteht aus einer Verzögerungssehaitung
10, die zur Verzögerung des Eingangssymbols /für die Dauer eines Symbolintervalls dient um
ein Symbol j zu erzeugen. Sowohl / als auch j werden einer Subtrahierschaltung 11 zugeführt, die die Differenz
i—j=k bildet Die Gruppe von Differenzsymbolen k kann dann in einem Kompressionscodierer 12 codiert
werden, der sich die Vorteile der Differenzcodierung zunutze macht, um die Ausgangsdatenfolge auf der
Leitung 13 zu komprimieren. Bei einer typischen Anwendung könnte sich beispielsweise der Codierer 12
auf eine verringerte Anzahl von Codestellen beziehen, entsprechend kleinen Werten von k. Dieses folgt
natürlich aus der Redundanz der Eingangsdaten i, da sich die Eingangsymbole relativ langsam verändern und
die Differenz Ar klein bleibt Vorzugsweise ist jedoch der Codierer 12 ein Codierer mit variabler Länge, der die
optimalen Huffman-Codes oder nahezu optimale Codes mit variabler Länge benutzt.
In F i g. 2 ist das Blockschaltbild eines Decodieren für
den Codierer nach Fig. I dargestellt. Die codierten Daten auf der Leitung 13 in Fig. 1 werden über ein
geeignetes Übertragungsmedium zu dem Kompressionsdecodierer IS über die Leitung 14 übertragen. Der
Decodierer 15 ist die Umkehrung des Kompressionscodierers 12 und in Abwesenheit eines Fehlers stellt er die
Differenzcodes k auf der Leitung 16 wieder her. Diese Differenzcodes werden zu einer Addierschaltung 17
übertragen, deren Ausgangsdaten / über eine Verzögerungsschaltung 18 mit der Verzögerungszeit, die einem
Symbolintervall entspricht, zu dem anderen Eingang der Addierschaltung 17 übertragen wird. Der Addierer 17
erzeugt auf der Ausgangsleitung 19 die Summe der j- und Ar-Signale, die dem Informationssignal /entspricht,
das ursprünglich dem Codierer nach Fig. 1 zugeführt wurde.
Als Ausführungsbeispiel der Erfindung zeigt Fig.3
eine Abwandlung des in F i g. 1 dargestellten Codierers, bei dem eine Modifizierungslogikschaltung 21 und eine
Komplemcnt-Logikschaltung 22, also eine Schaltung die das Komplement einer Eingangsinformation erzeugt,
eingebaut wurden. Die Komponenten, die den gleichen in Fig. I entsprechen wurden mit den gleichen
Bezugsnahlen bezeichnet, sie erhielten jedoch zur Unterscheidung einen Strich. So ist die Modifizierungs-Logikschaltung
21 in den Datenweg zwischen der Subtrahierschaltung 11'. die auch kurz Subtraktor
genannt wird, dem Codierer 12' eingeschaltet. Sie wird gesteuert von den Ausgangssigna.'cn der Verzögerungsschaltung 10'. Die Komplement-Logikschaltung 22 ist
zwischen dem Codierer 12' und der Ausgangsleitung 13' eingeschaltet und wird ebenfalls von dem Ausgangssignal
der Verzögerungsschaltij.ig 10' gesteuert.
Wie später noch ausführlich erläutert werden wird, sind die Modifizierungs-Logikschaltung 21 und die
Komplement-Logikschaltung 22 einfache digitale logische Schaltungen, die, wenn sie, wie in F i g. 3 gezeigt, in
einen Differentialcodierer eingebaut werden, einen Code erzeugen, der hochgradig selbstsynchronisierend
ist. Diese Selbst- oder Eigensynchronisation ist eine dem Code innewohnende Eigenschaft, so daß keine externe
Synchronisation erforderlich ist. Die Synchronisation ergibt sich direkt aus den natürlichen auftretenden
Folgen im Codetext.
Fig.4 zeigt einen abgewandelten Differential-Decodierer,
der für die Decodierung der Signale geeignet ist. die von dem Codierer nach F i g. 3 erzeugt wurden. Hier
sind wieder die entsprechenden Elemente, die sich direkt auf die Komponenten in Fig.2 beziehen, durch
die gleiche Bezugszahl mit einem Strich gekennzeichnet Eine Dekomplement-Logikschaltung 23 ist hier
zwischen der Eingangsleitung 14' und dem Vorsatzdecodierer 15' eingeschaltet und wird von den verzögerten
Ausgangssignalen der Verzögerungsschaltung 18' gesteuert Ferner ist eine Demodifizierungs-Logikschaltung
24 zwischen dem Vorsatzdecodierer 15' und einem Eingang des Addierers 17' eingeschaltet und wird
ebenfalls von den verzögerten Ausgangssignalen der Verzögerungsschaltung 18' gesteuert
In Übereinstimmung mit der Erfindung ergeben sich alle Vorteile der Selbstsynchronisation mit sehr
geringer Synchronisationsnacheilung aus der Verwendung der Codierer und Decodierer, die den in den F i g. 3
und 4 jeweils gezeigten Aufbau besitzen. Darüber hinaus sind die Bestandteile der logischen Schaltung der
zusätzlichen Logikschallungen 21, 22, 23 und 24 einfache UND-ODER- und Exklusiv-ODF.R-Tore, die
zu relativ einfachen Anordnungen zusammengefaßt sind. Diese Vorteile ergeben sich z.T. aus der Wahl und
Anordnung der Codierungsmatrix. Diese Matrix wurde besonders ausgewählt, um die Selbstsynchronisationseigjensch-ften
optimal zu gestalten, wobei gleichzeitig eine einfache Codierungsschaltung gewählt wurde.
Bevor mit einer ausführlichen Beschreibung des Codeumsetzers gemäß der vorliegenden Erfindung
begonnen wird, wird zunächst eine kurze Beschreibung eines geeigneten Typs eines grundlegenden sequentiellen
Codierers und Decodieren anhand der F i g. 5 und 6 gegeben. In Fig. 5 ist somit eine Eingangsleitung 34
dargestellt, über die binärcodierter Codetext mit fester Länge eintrifft, der nun zu einem Schieberegister 32
übertragen wird. Die Eingangsleitung 34 kann ein elektrisches Übertragungsmedium oder ein Magnetband-
oder Papierstreifenspeicher sein. Diese gewöhnlichen binären Codewörter werden in das Schieberegister
«,eriell eingegeben, bis dieses voll ist und ein vollständiges Codewort auf der Ausgangsleitung 38
erscheint.
Eine kombinatorische Umsetzungsschaltung 36 wandelt die binären Codegruppen mit fester Länge, die auf
den Leitungen 38 erscheinen, in einen Vorsatzcode mit variabler Länge und übertragt die sich ergebenden
Binärsignale auf die Ausgangsleitungen 40. Darüber hinaus wird ein »!«-Markierimpuls an das Ende jeder
CodeTruppe angehängt, wenn sie in das Ausgangsschieberegister 42 eingegeben wird. Dieses Markierbit dient
;!ur Steuerung der lokalen Codierungsschaltung und wird nicht zu dem Empfänger übertragen. Dieses
»!«-Markiersignal wird sofort an das Codewort angehängt und es dient als Endmarkierung, um das Ende
eines Codewortes mit variabler Länge anzugeben.
Die Erkennungsschallung 50 stellt das Vorliegen einer »1« in jeder außer der äußersten rechten Position
des Ausgangsschieberegisters 42 fest. Diese Erkennungsschaltung 50 erzeugt daher eine Ausgangsinformation
auf der Leitung 52, bis der Markierungsimpuls in der letzten Speicherstelle des Schieberegisters 42
ankommt. Wenn der Markierungsimpuls diese letzte Stufe des Schieberegisters 42 erreicht, ist bereits die
vollständige Codegruppe mit variabler Länge auf die Ausgangsleitung 48 übertragen worden. Nun verschwinden
alle Signale von der Ausgangsleitung 52, wobei dieses Fehlen eines Signals nach der Invertierung in dem
Inverter 54 ein Signal erzeugt, um das Tor 58 zu öffnen ijnd die nächste Codegruppe mit variabler Länge im
Ausgangsregister 42 zu speichern. Die neuen Codes überschreiben den Inhalt des Registers 42 und zerstören
das vorhergehende Markierungssignal. Die Ausgangsinformation des Inverters 54 wird auch zur Verzögerungsschaltung 60 übertragen, deren Ausgangssignal dazu
dient, die nächste Eingangscodegruppe in das Schieberegister 32 hineinzuschieben.
Der Codierer nach Fig.5 enthält ferner einen
verallgemeinerten Umsetzer für die Umsetzung von Eingangssignalen fester Länge, die gegebenenfalls
Differentialcodes repräsentieren, in Codes mit variabler Länge, die minimale Redundanzeigenschaften aufweisen
können. Es sei ferner noch erwähnt, daß die »1 «-Markierungsimpulse niemals das Ausgangsschieberegister
42 verlassen und daß sie nur rur Markierung des Ende eines Codes mit variabler Länge im Register 42
dienen.
F i g. 6 zeigt einen Decodierer, der die umgekehrte Operation durchführt, wie der Codierer nach F i g. 5. In
Fig. 6 kommen die codierten Signale mit variabler Länge auf der Eingangslcitung 69 an und werden zu dem
Eingangsschieberegister 70 übertragen. Die Ausgangsleitungen 71 vom Eingangsschieberegister 70 sind mit
der I Imsetzerschaltung 64 verbunden, in der die Signale
in eine Codegruppe 80 mit fester Länge umgesetzt werden, die dann schließlich im Schieberegister 66
gespeichert und über die Ausgangsleitung 68 übertragen
ίο werden.
Jedesmal, wenn eine gültige Codegruppe von der
Umsetzungsschaltung 64 festgestellt wird, wird ein Signal »Gültiger Code« auf die Steuerleitung 76
übertragen, um die Stufen des Eingangsschieberegisters 70 zurückzustellen. Das gleiche Signal »Gültiger Code«
leitet die Übertragung der Fotschaltimpulse zu dem Ausgangsschieberegister 66 ein, um diesen neuen Code
auf die Übertragungsleitung 68 hinaus zu schieben.
Die Ümsctzungsschaitungen 36 unii 64 iii ucii F i g. 3
und 6 bestehen jede aus einer Kombination logischer Torschaltungen, die von den Eingangssignalen beaufschlagt
werden, und wenn sie auf diese Weise geöffnet wurden. Binärsignale auf den entsprechenden \usgangsleitungen
bereitstellen. Im Falle der Umsetzungsschaltung 36 wird zusätzlich zur gewöhnlichen Codegruppe
mit variabler Länge ein Markierungsimpuls erzeugt, der jede Gruppe abschließt. Solche Markierungsimpulse
werden in der Umsetzerschaltung 64 nicht benötigt. Eine Erkennungsschaltung für einen »Gültigen
Code« kann dafür vorgesehen werden, der beispielsweise aus einem ODER-Tor mit vielen Eingängen besteht,
von denen jeder Eingang einem gültigen Code zugeordnet ist.
Andere Formen von Codierern mit variabler Länge und Decodierern können im Übertragungssystem der vorliegenden Erfindung verwendet werden. Der in F i g. 5 und 6 dargestellte Codierer und Decodierer dient nur zur Erläuterung, weil die Erfindung keineswegs auf diese Ausführungsbeispiele beschränkt ist. Ein weiteres Beispiel solcher Schaltungen ist in der US-Patentschrift 30 16 527 erläutert.
Andere Formen von Codierern mit variabler Länge und Decodierern können im Übertragungssystem der vorliegenden Erfindung verwendet werden. Der in F i g. 5 und 6 dargestellte Codierer und Decodierer dient nur zur Erläuterung, weil die Erfindung keineswegs auf diese Ausführungsbeispiele beschränkt ist. Ein weiteres Beispiel solcher Schaltungen ist in der US-Patentschrift 30 16 527 erläutert.
Ein spezielles Beispiel eines Codierungsschemas, das in allgemeiner Form in Tabelle 1 angegeben ist, dürfte
zweckmäßig sein. Für die Zwecke dieser Darstellung wurde ein einfaches zweistelliges System ausgewählt,
das in der nun folgenden Tabelle 2 gezeigt ist:
Bei diesem Beispiel werden vier verschiedene Vorsatzcodierungen verwendet und zwar eine für jeden
Wert von j. Die besondere Codierung, die hier verwendet wird, hängt von dem Wert / ab, die jedem
einzelnen Wert von j folgt.
Es kann !eicht gezeigt werden, daß die Folge »0011«
eine synchronisierende Folge ist die mit einem Wert von / endet, der gleich »01«ist. Daher synchronisiert die
Folge »00 i 1« den Decoder zum Ende eines bestimmten
Tabelle 2 | S(D | 0 | 01 | 11 | 10 | U |
SQ)PQ | / = 00 | 010 | B | 1 | C | D |
A | 100 | 11 | 100 | 101 | ||
010 | 011 | 00 | 011 | |||
J= 00 A | 0 | 101 | ||||
j = 01 B | 00 | 1 | ||||
j = 10 C | ||||||
/=11 D | ||||||
Codewortes, und zwar unabhängig davon, was de
Synchronisierungsfolge vorausging. Auf ähnliche Weise synchronisiert die Folge »00101« den Decoder auf
/=»11«; die Folge »1100«; synchronisiert auf /=»10« und die Folge »11010« synchronisiert auf /=»00«. Wenn
angenommen wird, daß die Codewörter mit Huffman-Wahrscheinlichkeit auftreten, dann kann leicht gezeigt
werden, daß die Synchronisation aus der totalen Mehrdeutigkeit nach einem Durchschnitt von nur 7,67
Binärstellen (/=7,67) herrührt. Diese sequentielle Synchronisationsnacheilung / ist. wie bereits bemerkt
wurde, die mittlere Zahl von Codebits, bis das Ende eines Codeworts erreicht wird, das einem bekannten
Symbol entspricht. Mit anderen Worten ist /die mittlere Länge aller Synchronisierungsfolgen.
Die Wahl des Codes von Tabelle 2 ist der nach Tabelle 1 bezüglich der Selbstsynchronisation weit
überlegen. Wenn die gleiche Folge (0, 11, 100, 101)
Selbstsynchronisationsfähigkeiten. Die Codierung nach Tab. 2 besitzt andererseits eine extrem gute Selbstsynchronisation,
die garantiert, daß Synchronisationsfehler im Mittel nur für die Länge von etwa 8 Bits andauern.
Diese beiden Codes jedoch sind bezüglich ihrer Kompressionsfähigkeiten, das sind ihre Fähigkeiten, die 2s
Eingangsdaten durch Wahrscheinlichkeitscodierung zu verdichten, identisch.
Eine nähere Prüfung der Codierung nach Tab. 2 zeigt auf, daß der Code für Zeile B dem binären Komplement
des Codes für die Zeile A entspricht, nur daß dieser um ein Wort zyklisch verschoben ist. Der Code für die Zeile
C ist eine Spiegelung des Codes A, verschoben um zwei Worte. Schließlich ist der Code für die Zeile D die
zyklische Verschiebung des Komplements (oder das Komplement der Verschiebung) des Codes für Zeile A.
Daher sind alle Codes in Tabelle 2 eng miteinander verwandt. Diese Eigenschaften gewähren besondere
Codierungs- und Decodierungsvorteile. die im folgenden ausführlicher erläutert werden.
F i g. 7 zeigt nun das Blockschaltbild eines Codierers. der für eine Codierung der Signale gemäß Tab. 2
geeignet ist. Es ist aus dievsr Tabelle zu sehen, daß, wenn
die erste Ziffer (p) von j eine »1« ist, der reflektierte Code verwendet wird. Dieses wird in F i g. 7 mit Hilfe
des UND-Tores 100 und des Exklusiv-ODER-Tores 101
durchgeführt. In Fig.7 sind die Elemente, die denjenigen in Fig.3 entsprechen, durch die gleichen
Bezugszahlen gekennzeichnet. Daher wird das Ausgangssignal ρ der Verzögerungsschaltung 10', das auf
der Leitung 102 auftritt, zu einem Eingang des UND-Tores 100 übertragen. Der andere Eingang des
UND-Tores 100 ist mit dem Ausgang der Subtrahierschaltung W verbunden. Das Ausgangssignal des
UN D-Tores 100 wird zu einem Eingang des Exklusiv-ODER-Tores 101 übertragen. Der verbleibende Ausgang
der Subtrahierschaltung 11' ist mit dem noch freien Eingang des Exklusiv-ODER-Tores 101 verbunden. Die
Tore 100 und 101 stellen zusammen die Modifikations-Logikschaltung 21 dar, die zur Erzeugung der
reflektierten Codes aus dem normalen Differenzcode dient, der von der Subtrahierschaltung 1Γ geliefert wird.
Diese modifizierten Codes werden zu dem Vorsatzcodierer 12' übertragen, der beispielsweise den in Fig.5
dargestellten Aufbau haben kann. Die in F i g. 7 gezeigten Tore können einen bekannten konventionellen
Aufbau haben, vorzugsweise bestehen sie jedoch aus geeigneten integrierten Halbleiter-Schaitungsanordnungen.
Eine Betrachtung der Codes in Tabelle 2 zeigt, daß, wenn zweite Ziffer (q)e\ne »1« ist, von der Codegruppe
aus der normalen Codegruppierung das Komplement gebildet wird. In Fig. 7 wird das q-Ausgangssignal auf
der Leitung 103 daher zu den Exklusiv-ODER-Toren 104 und 105 übertragen, die, wenn sie geöffnet sind, das
Ausgangssignal des Codierers 12' für die Abgabe an die Ausgangsleitungen 4V komplementieren, d.h. aus
diesen das Komplement bilden.
Es ist so zu sehen, daß ein grundlegender Differentialcodierer, wie beispielsweise der in Fig. 1 dargestellte,
so modifiziert werden kann, daß er extrem gute Selbstsynchronisationseigenschaften besitzt, in dem nur
einfache Logikschaltungen 21 und 22 ergänzt werden. Diese Logikschaltungen stellen nur sehr geringe
Zusatzkosten des gesamten Codierers dar und bring.ti
trotzdem beträchtliche Synchronisationsvorteile mit sich.
Ir. F i g. 8 ist das Blockschaltbild einer Dccodicrscha!-
tung dargestellt, die für die Decodierung der in Tabelle 2 zusammengestellten Codes geeignet ist. Die Elemente,
die denjenigen in Fig.4 entsprechen, wurden mit den gleichen Bezugszahlen versehen. Die (7-Ausgangssigna-Ie
der Verzögerungsschaltung 18' werden über die Leitung 106 zu den Exklusiv-ODER-Schaltungen 107
und 108 übertragen, um das Komplement der Eingangscodes zu bilden, wenn der Wert q »1« ist. Die
/>Ausgangssignale der Verzögerungsschaltung 18' werden zu dem UND-Tor 109 übertragen, dessen
Ausgangssignal zu dem Exklusiv-ODER-Tor UO übertragen wird. Die Tore 109 und 110 bilden zusammen die
Modifizierungslogikschaltung 24 und dienen zur Gewinnung der reflektierten Darstellung des Ausgangssignals
des Codierers 15', das zu dem Addierer 17' übertragen wird. Auch hier sind die Zusatzkosten für die
Selbstsynchronisationsmöglichkeiten, die von den Logikschaltungen 23 und 24 stammen, im Vergleich zu den
Gesamtkosten des Decodierers sehr klein.
Aus der Tabelle 2 und den entsprechenden Schaltungen in F i g. 7 und 8 ist zu sehen daß sequentiellen Codes
eine beträchtliche Struktur haben müßten, um den Codierungs- und Decodierungsprozeß zu vereinfachen
und auch um den Aufbau großer Codierungen zu ermöglichen. Als Ergebnis einer ausgedehnten Untersuchung
wurde entdeckt, daß die folgenden Eigenschaften von beträchtlicher Bedeutung für die Gewinnung der
gewünschten Strukturen sind.
An erster Stelle sollten, um die Codierungs- und Decodierungseigenschaften zu vereinfachen, die Zahl
der unterschiedlichen Vorsatzcodekerne, die verschiedene nicht abgeleitete Codegruppen bilden, sehr klein
sein, eines oder höchstens zwei. Dieses trifft deshalb zu, weil getrennte unabhängige Codierer und Decodierer
im allgemeinen für jeden unabhängigen Codekern benötigt werden. Die Eigenschaft die Zahl der
Codekerne klein zu halten, wurde als Symmetrierungseigenschaften bezeichnet, da sie zu Codierungsmatrizen
führt, die eine kleine Zahl von Codekernen aufweisen, verschiedene Komplemente, Drehungen und Reflektionen
dieser Grundkerne.
Es sei bemerkt, daß die Codierung von Tabelle 2 alle
Codewörter für einen gegebenen Wert von / in der gleichen Stelle endigen, unabhängig von dem Wert von
j. Diese Eigenschaft, die als Kolonnenbildungs-Eigenschaft
bezeichnet wird, verbessert die Selbstsynchronisation erheblich dadurch, daß sie gleichförmige
Endungen für die Werte von /liefert.
Eine dritte Eigenschaft der Codierung von Tabelle 2
wurde mit Assoziationseigenschaft bezeichnet und sie betrifft die Zahl der unterschiedlichen Symbole, der ein
gegebenes Codewort entspricht. Die Assoziationseigenschaft
erfordert, daß diese Zahl von unterschiedlichen Symbolen, die einem gegebenen Codewort entsprechen
können, so klein wie möglich gehalten wird und daß trotzdem jedes Auftreten einem anderen Symbol 5ft)
entspricht. Diese Assosiationseigenschaft verbessert die Zweite-Stufen-Synchronisation wesentlich.
Die nachstehende Tabelle 3 zeigt ein Beispiel eines \o Zweikerncodes, der die Kolonnenbildungs- und Assoziationseigenschaften
erfüllt und der eine sequentielle Synchronisationsnacheilung /besitzt, die gleich 8.9 ist.
Tabelle | 3 | = A | B |
11
1 |
C | D | E | 15 |
S(J) | Sd) | 0 Γ |
lOO
00 |
iöii
Olli |
iOiö
0110 |
|||
A B |
01 | 20 | ||||||
1010
010
1010
Olli
11
00
100
1011
1011
100
0110
25
Im folgenden werden einige Eigenschaften des Codes
von Tabelle 3 und deren Auswirkungen erläutert. Bei einem kolonnenbildenden Code, wie beispielsweise dem
in Tabelle 3, wird eine Gruppe ν ->n Symbolen S(i), für die
alle Codewörter mit »0« endigen, mit 0-Gruppe und die Gruppe von Symbolen S(i), für die alle Codewörter mit
einer »1« endigen, mit I-Gruppe bezeichnet. Im Beispiel
der Tabelle 3 garantiert die Folge »00« (u. a.) das Ende eines Codewortes, das einer 0-Gruppe A, C oder E
entspricht, wobei /' ein gerader Wert ist. In ähnlicher
Weise garantiert die Folge »111« das Ende eines Codeworles, das einer I-Gruppe B oder D entspricht,
wobei / rin ungered-r W«rt is» Wenn einmal ö'\p.
Mehrdeutigkeit auf ein O-Gruppensymbol oder ein
1-Giüppensymbol reduziert wurde, dann ist die
Assoziationseigenschaft innerhalb dieser Gruppen eine eroße Hilfe für das Erreichen einer Zweite-Stufen-SyncHronisation.
Die Assoziationseigenschaft »si »ti wesentlichen hilfreich bei der Zweite-Stuien Synchronisation,
wenn der Vorsatzcode für jedes Symbol S(i) in der 0-Gruppe und ähnlich für die I-Gruppe, der gleiche ist.
Diese spezielle Assoziationseigenscliaft von Kolonnencodes wird als Gabeleigenschaft bezeichnet. Per
Definition müssen gegabelte Codes in Kolonnen angeordnet sein.
Wenn bei einem komplementierten sequentiellen Code die Kolonnenbildungseigenschaften erreicht werden
sollen, dann muß jeder Kernvorsatzcode und sein Komplement die gleiche A.p??hl von Codewörtern
besitzen, die mit 0 enden und und db gleiche Anzahl, die
mit I aufhören. Daher muß der Vorsatzcode und sein Komplement so sein, daß die Hälfte seiner Codewörter
in jeder Ziffer endigt. Ein solcher Vorsatzcode wird als ausgeglichener Code bezeichnet und er muß natürlich
eine gerade Anzahl von Codewörtern besitzen. Der Code von Tabelle 2 ist das Beispiel eines ausgeglichenen
Vorsatzcodes, der einen komplementierten Einkerncode verwendet. Es kann gezeigt werden, daß für jede
Gruppe von Codewortlängen, bei der η gerade ist und für die ein erschöpfender Vorsatzcode besteht, es auch
mindestens einen ausgeglichenen Vorsatzcode gibt.
Das Beispiel einer Codierung, die alle vorstehend beschriebenen gewünschten Eigenschaften aufweist und
die auf sehr große Codegruppen ausgedehnt werden kann, ist in Tabelle 4 dargestellt.
beliebigen Vorsatzcodekern W(k)
-/gerade
I= 1
I =/1-3 i = n-2
n-\
./ungersde
J=O | W(O) | W(\) | W(2) | W(n-3) | W(n-2) | W(«-l) | n- 1 |
2 | W(2) | W(\) | W(O) | W(Ti-I) | W(n-2) | W(n-\) | Λ-3 |
4 | W(A) | W(I) | W(T) | W(n-3) | W(n-2) | W(n-\) | n-5 |
6 | W(S) | W(I) | W(I) | W(n-l) | W(n-2) | W(Ii-I) | n-7 |
n-S | W(n-%) | W(I) | W(2) | W(b-3) | W(Ii-D | W(B-I) | 7 |
n-6 | W(n-6) | W(I) | W(2) | WiB-3) | W(n-2) | W(B-I) | 5 |
n-4 | W(n-4) | W(I) | W(I) | W(n-1) | V/(n-2) | W(B-I) | 3 |
n-2 | W(n-2) | W(I) | W(I) | W(n-3) | W(O) | W(B-I) | J=I |
Der Code in Tabelle 4 weist Spaltenbildung, Komplementiening. Gabelung und maximale Assoziation
auf. ohne jedoch trivisi ?m sei» Es ist esne sehr hohe
Wahrscheinlichkeil dafür abgenommen, da i=j für
Kompressionszwecke ist E? sei erwähnt, daß wenn j ungerade ist, das komplementäre Codewort verwendet
wird und die Tabelle 4 von unten nach oben getesen wird. Die Codegruppe besitzt daher eine komplementär
reflektierte Symmetrie.
Aus dem Muster vofc Ta-belie 4 kann mar, 7· iec?-iüt
f,j sehen: für jeden geraden Wert von y, mit Ausnahme von
0, ist der Wert des Kerncodes W(k)gleich dem für k-Q,
wenn i—jist Für /=0 ist der We~ k-./und k —/zu allen
anderen Zeitpunkten. Die Codewörter für ungerade Werte von j werden durch die komplementär reflektive
Symmetrie spezifiziert
Obwohl die opmr-aien \ jaft'-nan-Vorsatzcodcs abgekürzt
lind air. kerncode vervend-Ή werden köi.nen, wird
die ίγ'-'Άτνί·^^?^ we-Λπ systematische Yorsatzcodes
vei wendet wc 1 oen, wesent'-ich verbessert. Ein systemati-
scher Code ist ein Code, bei dem aufeinanderfolgende
Codewörter gemäß einer festen Regel oder einem Algorithmus erzeugt werden, wodurch sie diese
systematischen Eigenschaften erhalten. Auf diese Weise kann die Erste-Stufe-Synchronisationsnacheilung klein
gehalten werden, obwohl die Größe der Codewörter ansteigt Ein solcher abgekürzter systematischer Vorsatzcode, der für die Verwendung als Kern für das
Codierungsschema nach Tabelle 4 geeignet ist, ist in F i g. 11 dargestellt.
In F i g. 11 entsprechen die Codegruppen mit fester
Länge x\, X2, *s, xa den Werten von k, während y\ bis yn
den Bits der Codegruppen mit variabler Länge entsprechen. Die mittlere Codewortlänge L, vorausgesetzt daß jedes Wort mit seinen charakteristischen
Huffman-Eigenschaften auftritt, ist 2. Die Synchronisationsnacheiiung ist gleich 4.
Oben in F i g. 7 befindet sich eine grafische Darstellung in der Form eines binären Baumes des Codeerzeugungsalgorithmus. Ein »0«-Codezeichen entspricht
einer Bewegung nach links unten, während ein »!«-Codezeichen einer Bewegung nach rechts oben
entspricht Ein Endknoten ohne einen Pfeil gib» das Ende eines Codewortes an. Ein Endknoten mit einem
Pfeil zeigt einen Übergang zu einem anderen Knoten im Diagramm. Wenn der Pfeil nicht expliziert auf den
Widereintrittsknoten zeigt dann wird angenommen, daß dieser Wiedereintrittsknoten sich an der Spitze
oder am Fuß des Diagramms befindet Die Codegruppe wird generiert in dem an der Spitze oder am Fuß
begonnen und zu dem Endknoten ohne Pfeil weitergegangen wird. Verschiedene Wortlängen erhält man
dadurch, daß wiedereintretende Pfeile erschöpfend in allen möglichen Kombinationen verwendet werden.
Es sei bemerkt daß der Code nach F i g. 11 für jede
Länge nur eine Codegruppe enthält und daher am besten für ein Signal geeignet ist das eine entsprechende Wahrscheinlichkeitsverteilung besitzt Darüber hinaus repräsentiert der besondere Codekem nach F i g. 11
eine Klasse von Codes, in der Differentialschaltungen nicht notwendig sind. Wegen dieses Codeaufbaues ist es
leichter direkt von den Eingangscodegruppen /' zu codieren und konkret die Differenzschaltung mit der
Modifizierungslogikschaitung zu kombinieren. Ein Codierer, der diese Gesamtstruktur verwendet ist in
Fig. 9 dargestellt
Der Decoder in dieser F i g. 9 entspricht demjenigen in F i g. 3. mit der Ausnahme, daß der Modifizierungslogikschaltung 200 nicht ein Subtraktor vorgeschaltet ist
der einem Subtraktor 11' in Fig.i ähnlich ist. Diese
Codes haben daher den weiteren Vorteil, daß sie den Codierer und Decodierer noch weiter vereinfachen und
trotzdem eine extrem gute Selbstsynchronisation aufweisen.
Fig. 10 zeigt einen entsprechenden Decodierer, in
dem die Additionsfunktion in die Demodifizierungs-Logikschaltung 201 eingebaut wurde, so daß kein Addierer,
entsprechend dem Addierer 17' in Fig.4. erforderlich
ist.
Die Komplementierungs- und Dekomplementierungs-Logiksehaltung in den Fig.9 und 10 kann am
einfachsten durch eine Schaltung realisiert werden, die der in F i g. 12 dargestellten ähnlich ist. Eine Anzahl von
Eingangsbits, derem Komplement gebildet werden soll, werden zu den Eingangsleitungen 210, 211 ... 212
übertragen. Jeder Eingang der Leitungen 210, 211 ... 212 ist mit einem entsprechenden Exklusiv-ODER-Tor
213, 214 ... 215 verbunden. Der übrige Eingang aller
dieser Exklusiv-ODER-Tore ist mit der Steuerleitung
216 verbunden. Die Ausgangssignale, die auf den Ausgangsleitungen 217, 218 ... 219 erscheinen, sind
Komplemente der Eingangssignale, wenn, und zwar nur
dann, wenn die Tore 213 bis 215 von einem Signal auf der Leitung 216 erregt sind. Andernfalls sind die
Ausgangssignale auf den Leitungen 217 bis 219 mit den Eingangssignalen auf den Leitungen 210 bis 212
identisch.
to Fig. 13 zeigt eine Modifizierungslogikschaltung, die
als Modifizierungslogikschaitung 200 in F i g. 9 geeignet ist Sie ist gleichfalls als Demodifizierungslogikschaltung
201 in Fig. 10 den in Fig. 11 dargestellten Code geeignet Gemäß der Beschreibung der Tabelle 4
is herrschen, wenn j gerade ist die folgenden Beziehungen:
A=yfür/=O,
A=O für/ =j, und
*=15-yfür/=15.
A=OfOW=./
A=15-Ä
/ und j können binäre Zahlen sein, /beispielsweise (x(,
»2. Xi. X4) und j beispielsweise (x\, *?'. *i\ x*\ Bei
Cerwendung dieser Schreibweise gibt ein Balken über einer Binärzahl das binäre Komplement an. Daher ist
J= 15- Z=(JTi. J
u sei - »1« wenn, und nur wenn
Dieses bedeutet, daß u-x, ■ X2 ■ Xj ■ X4 ist (Boolesches Produkt). Ferner sei /= 1 wenn, und nur wenn /=y
ist. Dieses bedeutet, daß
r-(xi + *i') · {X7+X1')
■ (X4+X4').
Daher ist t das Boolesche Produkt von vier Modulo zwei (Exklusiv-ODER)-Summen. Wenn dann A von
einer 4-Bit-Binärzahl A«(p, q, r, s) repräsentiert wird,
ergibt sich folgendes:
P" t ■ Xi+ U ■ X\
q—t ■ xj + u ■ Xi
r= t ■ X) + u ■ Xi
s—ί · X4 +u ■ X4.
F i g. 13 zeigt nun. daß der Wert u von j erhalten wird,
in dem jede der Leitungen 250, 251, 252 und 253 mit einem entsprechenden lnverr?r 254 bis 257 verbunden
wird. Die Ausgange dieser Inverter sind mit dem UND-Tor 258 zusammengeschaltet dessen Ausgangs*
signal den Binärwert u repräsentiert. Dies« Signal u
wird zu einem Eingang jedes der UN D-Tore 259 bis 262 übertragen, deren anderer Eingang jeweils mit den
Leitungen 250 bis 253 verbunden ist.
Der Binlrwert t wird dadurch abgeleitet, daß jede der
Eingangsleitungen 250 bis 253 mit einem entsprechenden Eingang eines der Exklusiv-ODER-Tore 263 bis 266
verbunden ist. Die anderen Eingänge dieser Exklusiv-ODER-Tore 263 bis 266 sind jeweils mit den
entsprechenden Leitungen 267 bis 270, entsprechend den Werten x\ bis x4 verbunden. Die Ausgangssignale
dieser Exklusiv-ODER-Tore 263 bis 266 werden zu dem
UND-Tor 271 übertragen. Dieses UND-Tor 271 öffnet,
wenn es selbst geöffnet ist, die UND-Tore 272 bis 275 deren andere Eingänge mit den Leitungen 267 bis 270,
entsprechend X\ bis x* verbunden sind.
Die Ausgangssignale der UND-Tore 259 bis 262 werden zu entsprechenden Eingängen der ODER-Tore
276 bis 279 übertragen. Die Ausgangssignale der Tore 272 bis 275 werden zu den verbleibenden Eingängen der
ODER-Tore 276 bis 279 übertragen, deren Ausgangssignale auf den Leitungen 280 bis 283 ei scheinen. Diese
Ausgangssignale bestehen aus den Binärwerten p, q, r und s, so daß der Codierer nach F i g. 9 direkt auf einen
Vorsatzcodierer 12* angewendet werden kann.
Die Logikschaltung nach Fig. 13 kann direkt als die
Modifizierungslogikschaltung201 in Fig. 10 verwendet werden, in dem einfach der Wert A:* auf die
Eingangsleitungen 267 bis 270 übertragen wird. Die Ausgangssignale der ODER-Tore 280 bis 283 führen
dann die Binärzahl /.
Die Komplementbildungslogikschaitung 12 wird,
wenn sie in dem Codierer nach Fig.9 für die^Codes
nach Tab. 4 verwendet wird, von dem Bit */
gesteuert, wodurch angegeben wird, ob j ungerade ist Ein Signal, das den Wert X4' repräsentiert, wird dann auf
die Steuerleitung 216 in Fi g. 12 übertragen. ■
Obwohl der in F i g. 11 gezeigte Kerncode Vorteile
bezüglich des Codierers nach Fig.9 aufweist, ist er
keinesfalls der einzige Code, der verwendet werden kann. In F i g. 14 sind in den Spalten I - Vl sechs weitere
Kerncodes angegeben. Jeder dieser Codes hat eine etwas andere Längenverteilung und Synchronisationsnacheilung. jeder kann als Kerncode in dem Codie
rungsschema benutzt werden, das in Tabelle 4 angegeben ist Um eine Selbstsynchronisierung zu
erzielen, können auch andere Kerncode und andere Codierungsschemata verwendet werden. Die hier
gegebenen Beispiele sollen nur die wünschenswerten Codierungseigenschaften erläutern. Einige andere Codes können auch in dem eingangs erwähnten Aufsatz
»Efficient Error-Limiting Variable-Length Codes« gefunden werden.
Der erste Schritt bei der Auswahl einer sequentiellen Codierung besteht darin, die optimale Codewortlänge
für jeden Wert von j festzusetzen, basierend auf den
konditionellen Wahrscheinlichkeiten von S(i), wobei SQ)
gegeben ist Dieses kann dadurch bewirkt werden, daß der Huffman-Algorithmus so verwendet wird, wie es in
dem ebenfalls eingangs erwähnten Aufsatz »A Method for the Construction of Minimum Redundancy Codes«
Proceedings of the IRE, Vol. 40, Seiten 1098 1* 1101,
September 1952, beschrieben ist Die Durchsicht der Matrixlängen, die so erhalten wurden, zeigt die
Symmetrien die der Code haben sollte und ob eine reflektierte Symmetrie notwendig ist und ob ferner der
Code ein Einkerncode sein kann. Der nächste Schritt besteht darin, den Kerncode zu wählen, dessen Längen
am dichtesten an den gewünschten Längen liegen. Die Codierungen werden dann so angeordnet, daß sie die
Kolonnenbildungs- und Assoziationseigenschaften optimal werden lassen. Der beste Selbstsynchronisationscode entspricht natürlich einem Code, der erwünschte
Symmetrien, Kolonnenbildung und Assoziation aufweist.
Claims (3)
1. Codeumsetzer für sequentielle Codes fester Länge in selbstsynchronisierende Codes variabler
Länge mit einer Verzögerungsschaltung zur Verzögerung der Eingangssignale für die Dauer eines
Symbolintervalls, mit einer Subtrahierschaltung zur Bildung der Differenz zwischen den Eingangssignalen und den verzögerten Signalen und mit einem
Codierer zum Codieren von in der Substrahierschaltung gebildeten Signalen mit fester codierter Länge
in Ausgangssignale mit variabler codierter Länge, gekennzeichnet durch eine auf die verzögerten Eingangssignale ansprechende Modifizier-
Logikschaltung (21) zum Modifizieren der in der Subtrahierschaltung (W) gebildeten Signale, bevor
diese in den Codierer (121) eingespeist werden, und
durch eine Komplement-Logikschaltung (22), welche auf die verzögerten Eingangssignale anspricht,
um das Komplement der Signale mit variabler codierter Länge zu bilden.
2. Codeumsetzer nach Anspruch 1. dadurch
gekennzeichnet, daß die Modifizier-Logikschaltung (21) ein Exklusiv-ODER-Tor (101) und ein von dem
verzögerten Eingangssignal gesteuertes UND-Tor (100) aufweist.
3. Codeumsetzer nach Anspruch 1, dadurch gekennzeichnet, daß die Komplement-Logikschaltung (22) aus einer Anzahl von Exklusiv-ODER-To-
ren (213 bis "M5) besteht die über einen gemeinsamen Eingang (216) von den verzögerten Eingangssignalen gesteuert werden.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11390571A | 1971-02-09 | 1971-02-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2204766A1 DE2204766A1 (de) | 1972-08-17 |
DE2204766C2 true DE2204766C2 (de) | 1982-11-11 |
Family
ID=22352234
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2204766A Expired DE2204766C2 (de) | 1971-02-09 | 1972-02-02 | Codeumsetzer für Datenverarbeitungssysteme |
Country Status (6)
Country | Link |
---|---|
US (1) | US3716851A (de) |
JP (1) | JPS5517972B1 (de) |
CA (1) | CA948317A (de) |
DE (1) | DE2204766C2 (de) |
FR (1) | FR2124562B1 (de) |
GB (1) | GB1380167A (de) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3835467A (en) * | 1972-11-10 | 1974-09-10 | Ibm | Minimal redundancy decoding method and means |
US3906485A (en) * | 1973-06-13 | 1975-09-16 | Ibm | Data coding circuits for encoded waveform with constrained charge accumulation |
DE2508706C2 (de) * | 1974-05-02 | 1984-10-11 | International Business Machines Corp., Armonk, N.Y. | Schaltungsanordnung zur Codierung von Datenbitfolgen |
AT351610B (de) * | 1975-11-14 | 1979-08-10 | Siemens Ag | Schaltungsanordnung zur empfangsseitigen regelung der phase eines taktsignals bei einer datenuebertragung mit teilinformationsimpulsen |
US4152697A (en) * | 1976-08-11 | 1979-05-01 | Xerox Corporation | Parallel run-length decoder |
US4177455A (en) * | 1978-01-09 | 1979-12-04 | Ncr Corporation | Electrically configurable high-low decoder |
US4414536A (en) * | 1980-07-25 | 1983-11-08 | Tokyo Shibaura Denki Kabushiki Kaisha | Data compressing system |
US4670890A (en) * | 1983-03-04 | 1987-06-02 | Research Corporation | Method of and/or apparatus for encoding and decoding sequential information in data handling systems |
US5184125A (en) * | 1989-06-28 | 1993-02-02 | Digital Equipment Corporation | Data encoding and demodulation system |
FR2653954A1 (fr) * | 1989-10-27 | 1991-05-03 | Trt Telecom Radio Electr | Procede pour transmettre une suite de m mots binaires de "p" elements binaires et dispositif de transmission mettant en óoeuvre ce procede. |
US5034741A (en) * | 1990-03-22 | 1991-07-23 | United Technologies Corporation | Variable length bit patterns for data representation |
US5351047A (en) * | 1992-09-21 | 1994-09-27 | Laboratory Automation, Inc. | Data decoding method and apparatus |
US6609189B1 (en) * | 1998-03-12 | 2003-08-19 | Yale University | Cycle segmented prefix circuits |
US6408029B1 (en) | 1998-04-02 | 2002-06-18 | Intel Corporation | Method and apparatus for simplifying real-time data encoding |
US6904174B1 (en) * | 1998-12-11 | 2005-06-07 | Intel Corporation | Simplified predictive video encoder |
US7274671B2 (en) * | 2001-02-09 | 2007-09-25 | Boly Media Communications, Inc. | Bitwise adaptive encoding using prefix prediction |
US6864812B1 (en) * | 2004-02-05 | 2005-03-08 | Broadcom Corporation | Hardware efficient implementation of finite impulse response filters with limited range input signals |
US20070116117A1 (en) * | 2005-11-18 | 2007-05-24 | Apple Computer, Inc. | Controlling buffer states in video compression coding to enable editing and distributed encoding |
US8780997B2 (en) | 2005-11-18 | 2014-07-15 | Apple Inc. | Regulation of decode-side processing based on perceptual masking |
US8295343B2 (en) * | 2005-11-18 | 2012-10-23 | Apple Inc. | Video bit rate control method |
US8031777B2 (en) | 2005-11-18 | 2011-10-04 | Apple Inc. | Multipass video encoding and rate control using subsampling of frames |
US8233535B2 (en) | 2005-11-18 | 2012-07-31 | Apple Inc. | Region-based processing of predicted pixels |
WO2007145622A1 (en) * | 2006-06-12 | 2007-12-21 | Thomson Licensing | Method and apparatus for embedding second code into optical disc data by data modulation rule variation |
WO2010053287A2 (en) * | 2008-11-04 | 2010-05-14 | Lg Electronics Inc. | An apparatus for processing an audio signal and method thereof |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3016527A (en) * | 1958-09-04 | 1962-01-09 | Bell Telephone Labor Inc | Apparatus for utilizing variable length alphabetized codes |
US3051940A (en) * | 1958-09-04 | 1962-08-28 | Bell Telephone Labor Inc | Variable length code group circuits |
US3185824A (en) * | 1961-10-24 | 1965-05-25 | Ibm | Adaptive data compactor |
DE1162399B (de) * | 1961-10-24 | 1964-02-06 | Ibm | Verdichter fuer Daten, deren statistische Verteilung sehr stark schwankt |
-
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
Also Published As
Publication number | Publication date |
---|---|
JPS5517972B1 (de) | 1980-05-15 |
CA948317A (en) | 1974-05-28 |
US3716851A (en) | 1973-02-13 |
GB1380167A (en) | 1975-01-08 |
FR2124562A1 (de) | 1972-09-22 |
DE2204766A1 (de) | 1972-08-17 |
FR2124562B1 (de) | 1974-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2204766C2 (de) | Codeumsetzer für Datenverarbeitungssysteme | |
DE2540472C3 (de) | Verfahren und Schaltungsanordnungen zur Codierung binärer Daten unter Anwendung eines abgewandelten Null-Modulationscodes | |
DE4217009C1 (de) | Hochgeschwindigkeitsdekodierer für Codes veränderlicher Länge | |
DE2508706C2 (de) | Schaltungsanordnung zur Codierung von Datenbitfolgen | |
DE2227148C3 (de) | Schaltungsanordnung zur Umsetzung digitaler Daten | |
DE2513862C2 (de) | Vorrichtung zum Decodieren von Codes minimaler Redundanz und variabler Länge | |
DE10196890B4 (de) | Verfahren zum Ausführen einer Huffman-Decodierung | |
DE2640414A1 (de) | Schaltungsanordnung fuer die kompressionscodierung unter verwendung einer korrelation zwischen zweidimensionalen, aus zweiwertigen digitalen bildern abgeleiteten matrizen | |
DE2801988A1 (de) | Arithmetische codierung von symbolfolgen | |
CH656760A5 (de) | Verfahren und anordnung zur sicherstellung der start-synchronisation eines aus bit-impulsfolgen bestehenden telegramms innerhalb eines empfaengers. | |
DE2614916A1 (de) | Konverter zur codeumwandlung | |
DE4217008C2 (de) | HDTV-Dekodierer | |
DE2320422A1 (de) | Verfahren zur fehlererkennung | |
DE2445926B2 (de) | System zur uebertragung mehrstufiger daten | |
DE2925663A1 (de) | Vorrichtung zur kompression binaerer signale fuer ein system zur kodierten uebertragung von faksimiles | |
DE2324538A1 (de) | Digitale nachrichtenuebertragungsanordnung | |
DE2340250A1 (de) | Verfahren zum codieren eines eine bestimmte redundanz aufweisenden nachrichtenstromes | |
DE19633353A1 (de) | Decodierungsverfahren für Matrixcodes mit großen freien Entfernungen | |
DE69737304T2 (de) | Dekoder für Kodes variabler Länge | |
DE2355786A1 (de) | Verfahren und anordnung zur decodierung von codes mit minimaler redundanz | |
DE2057256A1 (de) | Verfahren und Schaltungsanordnung zur Datensicherung bei der UEbertragung binaerer Daten | |
DE2828761C2 (de) | Anordnung zum Kodieren von Datenbits | |
DE2838228A1 (de) | Verfahren und anordnung zur synchronisation von datenbitfolgen | |
DE2440768B2 (de) | Verfahren und Vorrichtung zur Datenkompression für die Faksimile-Übertragung graphischer Information | |
DE2365957B2 (de) | Übertragungsverfahren für umkodierte Nachrichten |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OD | Request for examination | ||
D2 | Grant after examination | ||
8339 | Ceased/non-payment of the annual fee |