-
Datenkompressions- und Datenexpandiereinrichtung
-
zum Ubertragen bzw. Speichern von Daten BESCHREIBUNG Die Erfindung
betrifft eine Datenkompressionseinrichtung zum Ubertragen von Daten mit einem Register
zur Aufnahme von einer Informationseinheit von Eingangsdaten, einer Wandlereinrichtung
zum Umformen der Daten und einem Ausgang für die umgeformten Daten, und einer Steuerung.
Ferner betrifft die Erfindung eine zugehörige Datenexpandiereinrichtung zum Ubertragen
von über einen Eingang eingegebener Daten mit einem Register zur Aufnahme von einer
Informationseinheit von Daten, einer Wandlereinrichtung zum Umformen der Daten und
einem Ausgang für die umgeformten Daten, und einer Steuerung. Schließlich bezieht
sich die Anmeldung auf ein Datenübertragungssystem mit einem eingangsseitig angeordneten
Datenwandler, einem empfangsseitigen Datenwandler und einer Ubertragungsstrecke
dazwischen bzw.
-
ein Datenübertragungssystem mit einem einen Eingang und einen Ausgang
aufweisenden Datenspeicher.
-
Aus der europäischen Offenlegungsschrift A 1-0012173 ist eine Datenkompressionseinrichtung
der eingangs beschriebenen Art bekannt, bei der zum Reduzieren von Speicher- bzw.
-
Übertragungskosten die Auflösung eines zu übertragenden Bildes vermindert
wird. Dadurch wird auch die dieses veränderte
Bild beschreibende
Informationsmenge verkleinert, so daß die Speicher- bzw. die Ubertragungskosten
aufgrund der kleineren Datenmenge vermindert werden. Dabei ist es aber nicht möglich,
empfangsseitig bzw. am Ausgang des Speichers das Bild mit seiner ursprünglichen
Auflösung zu reproduzieren.
-
Aufgabe den Erfindung ist es, eine Datenkompressionseinrichtung bzw.
eine zugehörige Datenexpandiereinrichtung sowie ein zugehöriges Datenübertragungssystem
zu schaffen, mit denen es möglich wird, nicht nur die zu übertragende Datenmenge
zum Einsparen von Speicher- bzw. Ubertragungskosten zu verkleinern, sondern diese
so zu verändern, daß auch aus der verkleinerten Datenmenge am Ausgang die vollständige
Datenmenge mit ihrem ursprünglichen Informationsgehalt wiederherstellbar ist.
-
Diese Aufgabe wird durch ein Datenkompressionsgerät der eingangs beschriebenen
Art gelöst, welches gemäß der Erfindung dadurch gekennzeichnet ist, daß ein mit
dem Ausgang des Registers verbundener Komparator und ein von diesem angesteuerter
Zähler vorgesehen sind, daß der Komparator auf Gleichheit aller Daten der Informationseinheit
prüft, und die Steuerung so ausgebildet ist, daß bei Nichtgleichheit der Inhalt
des Registers dem Ausgang zugeführt und bei Gleichheit ein Kennbit erzeugt und der
Zähler um Eins weitergeschaltet wird, und der Zählerstand zusammen mit dem Kennbit
dem Ausgang zugeführt wird, wenn zwei aufeinanderfolgende Informationseinheiten
nicht übereinstimmen.
-
Die Datenkomprimierung erfolgt dadurch, daß immer dann, wenn eine
Informationseinheit bzw. eine Mehrzahl von Informationseinheiten mit gleichen Daten
festgestellt wird, anstelle
dieser Informationseinheit bzw. Informationseinheiten
ein Zählwert ausgegeben wird, der die Anzahl der Informationseinheiten mit gleichen
Daten angibt. Dadurch wird im Fall einer Abspeicherung der Daten der Speicherplatz
wesentlich vermindert. Im Fall der Ubertragung der Ausgangsdaten der Datenkompressionseinrichtung
wird es möglich, über sich dadurch ergebende Zwischenpausen zusätzliche Daten zu
übertragen. Die abgehende Information kann zweckmäßig in einem Zeilenspeicher gesammelt
werden, bevor sie als Paket mit Ersparnis verwendet oder versandt wird.
-
Die Datenexpandiereinrichtung ist gemäß der Erfindung dadurch gekennzeichnet,
daß ein mit dem Eingang verbundener Zähler vorgesehen ist und die Steuerung so ausgebildet
ist, daß eine über den Eingang eingegebene Informationseinheit die kein entsprechendes
Kennbit aufweist, dem Ausgang zugeführt wird, und bei Auftreten eines entsprechenden
Kennbits die Informationseinheit in den Zähler gegeben, und so oft dem Ausgang unter
gleichzeitigem Weiterschalten des Zählers um jeweils Eins eine Informationseinheit,
deren Daten untereinander alle gleich sind und einen vorbestimmten Wert haben, zugeführt
wird, bis der Zählerstand einen vorbestimmten Zählwert aufweist. Dadurch wird erreicht,
daß die komprimierten Daten wieder so umgewandelt werden, daß der ursprüngliche
Informationsgehalt wiederhergestellt wird.
-
Ein Datenübertragungssystem mit einem eingangsseitig angeordneten
Datenwandler, einem empfangsseitigen Datenwandler und einer Ubertragungsstrecke
dazwischen ist dadurch gekennzeichnet, daß der eingangsseitige Wandler eine Datenkompressionseinrichtung
der oben beschriebenen Art und der
Datenwandler eine Datenexpandiereinrichtung
der oben beschriebenen Art ist.
-
Das Datenübertragungssystem mit einem einen Eingang und einen Ausgang
aufweisenden Datenspeicher ist dadurch gekennzeichnet, daß eingangsseitig eine Datenkompressionseinrichtung
der oben beschriebenen Art und ausgangsseitig eine Datenexpandiereinrichtung der
oben beschriebenen Art vorgesehen ist.
-
Weitere Merkmale und Zweckmäßigkeiten der Erfindung ergeben sich aus
der Beschreibung von Ausführungsbeispielen anhand der Figuren. Von den Figuren zeigen:
Fig. 1 ein Blockschaltbild einer erfindungsgemäßen Datenkompressionseinrichtung;
Fig. 2 ein Blockschaltbild einer erfindungsgemäßen Datenexpandiereinrichtung; Fig.
3 ein Ausführungsbeispiel einer Schaltung der erfindungsgemäßen Datenkompressionseinrichtung;
Fig. 4 ein Ausführungsbeispiel einer Schaltung der erfindungsgemäßen DatenexpandiereinricJung;
Fig. 5 eine schematische Darstellung des Datenkompressions-und Datenexpansionsvorganges
anhand eines Beispieles; Fig. 6 eine schematische Darstellung eines Anfangszustandes
der erfindungsgemäßen Datenkomprimiereinrichtung nach Fig. 3; Fig. 7 eine schematische
Darstellung des Zustandes der erfindungsgemäßen Datenkomprimiereinrlchtung nach
Fig. 3 in der ersten Periode nach Fig. 5;
Fig. 8 eine schematische
Darstellung des Zustandes der erfindungsgemäßen Datenkomprimiereinrichtung nach
Fig. 3 zu Beginn der zweiten Periode nach Fig. 5; Fig. 9 eine schematische Darstellung
des Zustandes der erfindungsgemäßen Datenkomprimiereinrichtung nach Fig. 3 zu Beginn
der dritten Periode nach Fig. 5; Fig.10 eine schematische Darstellung des Zustandes
der erfindungsgemäßen Datenkomprimiereinrichtung nach Fig. 3 zu Beginn der vierten
Periode in Fig. 5; Fig.ll eine schematische Darstellung des Zustandes der erfindungsgemäßen
Datenkomprimiereinrichtung nach Fig. 3 zu Beginn der fünften Periode nach Fig. 5;
Fig.12 eine schematische Darstellung des Zustandes der erfindungsgemäßen Datenkomprimiereinrichtung
nach Fig. 3 zu Beginn der fünften Periode nach Fig. 5; Fig.13 eine schematische
Darstellung des Zustandes der erfindungsgemäßen Datenkomprimiereinrichtung nach
Fig. 3 zu Beginn der (5 + 126)ten Periode nach Fig. 5; Fig.14 eine schematische
Darstellung des Zustandes der erfindungsgemäßen Datenkomprimiereinrichtung nach
Fig. 3 zu Beginn der (5 + 126 + l)ten Periode nach Fig. 5; Fig.15 eine schematische
Darstellung des Zustandes der erfindungsgemäßen Datenkomprimiereinrichtung nach
Fig. 3 zu Beginn der (5 + 126 + 2)ten Periode nach Fig. 5; und Fig.16 eine schematische
Darstellung des Zustandes der erfindungsgemäßen Datenkomprimiereinrichtung nach
Fig. 3 zu Beginn der (5 + 126 + 3)ten Periode des Beispieles nach Fig. 5.
-
In Fig. 1 ist ein Blockschaltbild des erfindungsgemäßen Datenkompressors
1 und in Fig. 2 ein Blockschaltbild des erfindungsgemäßen Datenexpanders 2 dargestellt.
Der Datenkompressor 1 weist vier Schaltungsblöcke auf, nämlich einen Wandler 3,
eine Ablaufsteuerung 4, ein Steuereingangsteil 5 und einen Speicher 6. Der Datenexpander
2 weist einen vergleichbaren Aufbau mit ebenfalls vier Schaltungsblöcken auf, nämlich
einen Wandler 7, eine Ablaufsteuerung 8, ein Steuereingangsteil 9 und einen Speicher
10. Der Speicher 10 kann als ein vom Speicher 6 verschiedener Speicher oder auch
als derselbe Speicher wie der Speicher 6 ausgebildet sein. Der Datenkompressor 1
besitzt einen ersten Eingang 11 für die zu komprimierenden Daten und einen zweiten
Eingang 12 für das Einschaltsignal. Der Datenexpander 2 besitzt einen Eingang 13
für das Einschaltsignal und einen Ausgang 14 für die auszugebenden Daten. Die Verbindung
der einzelnen Schaltungsblöcke 3, 4, 5, 6 und 7, 8, 9, 10 untereinander ist in den
Fig. 1 und 2 schematisch dargestellt und soll in Verbindung mit der detaillierten
Beschreibung des Aufbaues der einzelnen Blöcke im folgenden im Zusammenhang mit
der Beschreibung der Fig. 3 und 4 dargestellt werden.
-
Fig. 3 zeigt die Schaltung eines erfindungsgemäßen Datenkompressors
1. Der Wandler 3 weist ein Schieberegister 15, einen Zähler 16 und einen Vergleicher
17 auf. Das Schieberegister 15 wird durch zwei Register 74LS 598 gebildet und besitzt
acht Registerplätze mit acht parallelen Ausgängen 18, die hochohmig gemacht werden
können. Zu diesem Zweck besitzt das Register einen ersten Eingang 19. Zusätzlich
erhält das Schieberegister 15 eine Pullup- und Pull-down-Möglichkeit. Das Register
15 weist ferner einen zweiten Eingang 20 auf, der den seriellen Dateneingang des
Schieberegisters 15 bildet und einen mit dem ersten EIngang 11 des Datenkompressors
1 verbundenen Eingang zum ersten Registerplatz 21 bildet. Das Schieberegister 15
weist ferner noch einen Takteingang 22 auf. Anstelle über den seriellen Dateneingang
20 können die Eingangsdaten selbstverständlich auch über einen parallelen Dateneingang
des Registers 15 zugeführt werden.
-
Der Zähler 16 wird durch ein Bauteil 74 AS 869 gebildet und besitzt
acht parallel ladbare Speicherplätze. Dazu besitzt der Zähler 16 acht parallele
Eingänge 23, von denen die ersten sieben jeweils mit entsprechenden Registerplätzen
des Schieberegisters 15 über die Ausgänge 18 derart verbunden sind, daß der erste
Registerplatz 21 mit einem ersten Speicherplatz 24 des Zählers 16, der auf den ersten
Registerplatz 21 folgende zweite Registerplatz mit dem auf den ersten Speicherplatz
24 folgenden nächsten Speicherplatz verbunden ist usw.. Der achte Speicherplatz
wird auf Null gesetzt. Die ersten sieben Speicherplätze des Zählers 16 sind parallel
nach außen geführt und bilden einen Datenausgang 25 des Wandlers 3. Der Zähler 16
weist ferner einen jeweils nach außen geführten Ladeeingang 26, Zähleingang 27 und
Takteingang 28 sowie einen ebenfalls nach außen geführten Ausgang 29 zum Anzeigen
des Zählminimums, in diesem Falle des Zählwertes Null, auf.
-
Der Vergleicher 17 wird durch ein Bauteil 74 AS 866 gebildet und besitzt
neun Vergleichereingänge 30 sowie einen Ausgang 31 für das Vergleichsergebnis. Die
ersten acht der Eingänge 30 sind jeweils mit einem entsprechenden Ausgang der acht
parallelen Ausgänge 18 des Schieberegisters 15 verbunden. Der übrige Eingang der
Vergleichereingänge 30 ist mit dem Ausgang eines EXNOR-Gliedes 32 verbunden, dessen
einer Eingang mit dem Ausgang des auf den ersten Registerplatz 21 folgenden zweiten
Registerplatzes des Schieberegisters 15 verbunden ist und dessen anderer Eingang
in einer später beschriebenen Weise mit der Ablaufsteuerung 4 verbunden ist. Der
Ausgang 31 ist ebenfalls nach außen geführt.
-
Der Ausgang des ersten Registerplatzes 21 ist ferner mit dem Ausgang
eines open-collector-NAND-Gliedes 33 verbunden, dessen erster Eingang 34 mit dem
ersten Eingang 19 des Schieberegisters
15 verbunden und nach außen
geführt ist und dessen zweiter Eingang 35 in einer später zu beschreibenden Weise
mit der Ablaufsteuerung 4 verbunden ist.
-
Der Speicher 6 besitzt acht parallele Dateneingänge 36, von denen
die ersten sieben jeweils mit einem der sieben Datenausgänge 25 des Zählers 16 verbunden
sind. Der achte Dateneingang ist mit der Ablaufsteuerung in später zu beschreibender
Weise verbunden. Der Speicher 6 weist ferner einen Schreib-/Leseeingang 37 und einen
Adresseneingang 38 für das Adressentriggersignal auf. Der Speicher besitzt eine
Mehrzahl von Adressen, in denen jeweils eine Informationseinheit z.B. in Form eines
Bytes abspeicherbar ist, das von den Daten an den Dateneingängen 36 gebildet ist.
-
Das Steuereingangsteil 5 weist einen Taktgeber 39 und ein Schieberegister
40 auf. Der Eingang 41 des Taktgebers 39 ist mit dem Ausgang eines OR-Gliedes 42
verbunden, dessen einer Eingang mit dem zweiten Eingang 12 des Datenkompressors
1 und dessen anderer Eingang mit der Ablaufsteuerung 4 in eier später zu beschreibenden
Weise verbunden ist. Der Ausgang 43 des Taktgebers 39 ist mit dem Takteingang 22
des Schieberegisters 15, dem Takteingang 28 des Zählers 16 sowie einem Takteingang
44 des Schieberegisters 40 verbunden. Der Taktgeber 39 wird durch ein Bauteil 74
S 132 gebildet und ist so ausgebildet, daß er bei Anlegen eines Signales mit hohem
Pegel am Eingang 12 Takte einer vorbestimmten regelbaren Frequenz, vorzugsweise
zwischen 7 und 100 MHz und insbesondere etwa 20 MHz an seinem Ausgang 43 abgibt.
-
Das Schieberegister 40 wird durch zwei Register 74 95 gebildet und
besitzt sieben aufeinanderfolgende Registerplätze mit jeweils einem Ausgang. Der
Ausgang des siebten Registerplatzes ist über eine Rückleitung 45 mit einem Dateneingang
46 zum ersten Registerplatz verbunden, so daß das Schieberegister 40 als Ringzähler
geschaltet ist. Der Ausgang 47 des ersten Registerplatzes,
der
Ausgang 48 des zweiten Registerplatzes und der Ausgang 49 des dritten Registerplatzes
sind mit der Ablaufsteuerung 4 in später zu beschreibender Weise verbunden. Die
Ausgänge des vierten bis siebten Registerplatzes sind jeweils mit Eingängen eines
NOR-Gliedes 50 verbunden, dessen Ausgang über eine Leitung 51 mit dem Schreib-/Leseeingang
37 des Speichers 6 verbunden ist. Das NOR-Glied wird von einem Bauteil 7425 gebildet.
Ferner sind die Ausgänge 48 und 49 jeweils mit Eingängen eines OR-Gliedes 52 verbunden,
dessen Ausgang über eine Leitung 53 mit dem Eingang 19 des Schieberegisters 15 und
dem ersten Eingang 34 des NAND-Gliedes 33 verbunden ist. Das Schieberegister 40
ist ferner mit einem Setzeingang 54 verbunden, durch den das Schieberegister 40
parallel oder seriell auf 1000000 gesetzt werden kann.
-
Die Ablaufsteuerung weist ein Start-Stop-Register 55, ein Nullwertregister
56 und ein Kennwertregister 57 auf. Das Start-Stop-Register 55 wird durch drei D-Flip-Flops
E, E' und E" gebildet, die durch Verbinden des Q-Ausganges des Flip-Flops E mit
dem D-Eingang des Flip-Flops E' sowie des Q-Ausganges des Flip-Flops E' mit dem
D-Eingang des Flip-Flops E" zusammengeschaltet sind. In ähnlicher Weise wird das
Kennwertregister 57 durch zwei D-Flip-Flops K' und K" gebildet, wobei der Q-Ausgang
des K'-Flip-Flops mit dem D-Eingang des K"-Flip-Flops verbunden ist. Das Nullwertregister
56 wird durch ein einfaches D-Flip-Flop gebildet.
-
Die Register 55, 56, 57 weisen jeweils Rücksetzeingänge CP, Dateneingänge
D, Preset-Eingänge pr und Ausgänge Q.und Q auf und sind folgendermaßen geschaltet:
Der D-Eingang 58 des Start-Stop-Registers 55 ist mit dem zweiten Eingang 12 des
Datenkompressors 1 und der CP-Eingang 59 der E-Flip-Flops sowie der CP-Eingang 60
des Nullwertregisters
56 mit dem Ausgang des fünften Registerplatzes
des Schieberegisters 40 verbunden. Die CP-Eingänge 61, 62 des K'- und K"-Flip-Flops
sind beide mit dem Ausgang des ersten Registerplatzes des Schieberegisters 40 verbunden.
Der D-Eingang 63 des Nullwertregisters 56 ist mit dem Ausgang 29 des Zählers 16
und der D-Eingang 64 des K'-Flip-Flops des Kennwertregisters 57 zusammen mit dem
pr-Eingang des Nullwertregisters 56 mit dem Ausgang eines NAND-Gliedes 66 verbunden.
Das NAND-Glied 66 besitzt zwei Eingänge 67, 68, von denen der eine Eingang 67 mit
dem Ausgang 31 des Vergleichers 17 verbunden ist. Der andere Eingang 68 ist über
einen Inverter 69 mit dem Ausgang eines AND-Gliedes 70 mit zwei Eingängen verbunden,
dessen einer Eingang mit dem Q-Ausgang 71 unter Zwischenschalten eines Inverters
72 und dessen anderer Eingang mit dem Q-Ausgang des E'-Flip-Flops verbunden ist.
Der Ausgang des AND-Gliedes 70 ist ferner mit einem Eingang eines weiteren AND-Gliedes
73 verbunden, dessen anderer Eingang mit dem Ausgang 49 des dritten Registerplatzes
des Schieberegisters 40 und dessen Ausgang mit einem ersten Eingang eines OR-Gliedes
74 mit drei Eingängen verbunden ist. Der zweite Eingang des OR-Gliedes 74 ist mit
dem Ausgang eines AND-Gliedes 75 verbunden, dessen einer Eingang mit dem Ausgang
31 des Vergleichers 17 bzw. dem Eingang 67 des NAND-Gliedes 56 und dessen anderer
Eingang mit dem Ausgang 47 des ersten Registerplatzes des Schieberegisters 40 verbunden
ist. Der dritte Eingang des OR-Gliedes 74 ist mit dem Ausgang eines AND-Gliedes
76 mit drei Eingängen verbunden, dessen einer Eingang mit dem Ausgang 49 des dritten
Registerplatzes des Schieberegisters 40, dessen zweiter Eingang mit dem Q-Ausgang
des K'-Flip-Flops des Kennwertregisters 57 und dessen dritter Eingang unter Zwischenschaltung
eines Inverters 77 mit dem Ausgang eines AND-Gliedes 78 mit zwei Eingängen verbunden
ist, dessen erster Eingang mit dem Q-Ausgang des "-Flip-Flops des Kennwertregisters
57 und dessen zweiter Eingang mit dem Q-Ausgang des Nullwertregisters
56
verbunden ist. Der Ausgang 79 des OR-Gliedes 74 ist mit dem Ladeeingang 26 des Zählers
16 verbunden.
-
Ferner ist ein AND-Glied 80 mit vier Eingängen vorgesehen, dessen
erster Eingang mit dem Q-Ausgang des K'-Flip-Flops des Kennwertregisters 57, dessen
zweiter Eingang mit dem Ausgang des AND-Gliedes 78, dessen dritter Eingang mit dem
Ausgang eines NAND-Gliedes 81 und dessen vierter Eingang mit dem Ausgang 49 des
dritten Registerplatzes des Schieberegisters 40 verbunden ist. Der Ausgang 82 des
AND-Gliedes 80 ist mit dem Zähleingang 27 des Schieberegisters 16 verbunden.
-
Das NAND-Glied 81 besitzt drei Eingänge, von denen der eine mit dem
Q-Ausgang des E'-Flip-Flops, der zweite mit dem Ausgang des Inverters 71 und der
dritte mit dem Q-Ausgang des K''-Flip-Flops des Kennwertregisters 57 unter Zwischenschalten
eines Inverters 83 verbunden ist. Der Ausgang des NAND-Gliedes 81 ist mit einem
von vier Eingängen eines NAND-Gliedes 84 verbunden, dessen weitere Eingänge mit
dem Ausgang des AND-Gliedes 78 bzw. dem Q-Ausgang des K'-Flip-Flops und dem Ausgang
eines NAND-Gliedes 85 mit zwei Eingängen verbunden sind, dessen einer Eingang mit
dem Q-Ausgang des E"-Flip-Flops und dessen anderer Ausgang mit dem Q-Ausgang des
E'-Flip-Flops unter Zwischenschalten eines Inverters 86 verbunden ist. Der Ausgang
des NAND-Gliedes 84 ist mit einem Eingang eines AND-Gliedes 87 mit drei Eingängen
verbunden, dessen weitere Eingänge mit dem Ausgang 48 des zweiten Registerplatzes
des Schieberegisters 40 bzw.
-
mit dem Ausgang eines OR-Gliedes 88 mit zwei Eingängen verbunden ist,
dessen einer Eingang mit dem Q-Ausgang des E"-Flip-Flops und dessen anderer Eingang
mit dem Q-Ausgang des E'-Flip-Flops verbunden ist. Der Ausgang 89 des AND-Gliedes
87 ist mit dem Adresseneingang 38 des Speichers 6 verbunden.
-
Ferner ist eine Leitung 90 vorgesehen, die den zweiten Eingang
des
EXNOR-Gliedes 32 mit dem Ausgang des NAND-Gliedes 88 verbindet, sowie eine Leitung
91, die den zweiten Eingang des open-collector-NAND-Gliedes 33 mit dem Ausgang des
NAND-Gliedes 81 verbindet. Eine weitere Leitung 92 verbindet den zweiten Eingang
des OR-Gliedes 42 mit dem Q-Ausgang des E"-Flip-Flops.
-
Das Start-Stop-Register 55 sowie das Kennwertregister 57 besitzen
ferner jeweils clear-Eingänge 93, 94, die jeweils mit dem Ausgang des OR-Gliedes
42 verbunden sind.
-
Schließlich ist eine Leitung 92' vorgesehen, die den Q-Ausgang des
K'-Flip-Flops des Kennwertregisters 57 mit dem achten Eingang der Dateneingänge
36 des Speichers 6 verbindet.
-
Die OR-Glieder 42, 52 und 88 sind vorzugsweise jeweils durch ein Bauteil
74 S 32, die Inverter 69, 71, 77, 83 und 86 jeweils durch ein Bauteil 74 S 04 und
die AND-Glieder 70, 73 und 78 durch jeweils ein Bauteil 74 S 08 realisiert. Für
die beiden NAND-Glieder 66 und 85 findet vorzugsweise jeweils ein Bauteil 74 S 10,
für das NAND-Glied 81 ein Bauteil 74 S 10, für das NAND-Glied 84 das Bauteil 74
S 20, für das AND-Glied 87 ein Bauteil 74 LS 21 und für das AND-Glied 80 ein Bauteil
74 ALS 21 Verwendung. Das OR-Giied 74 in Verbindung mit den AND-Gliedern 75 und
76 wird vorzugsweise durch ein Bauteil 74 S 64 realisiert.
-
Der Aufbau eines erfindungsgemäßen Datenexpanders 2 soll im folgenden
anhand des in Fig. 4 gezeigten Ausführungsbeispieles im Detail erläutert werden.
Dabei werden Teile, die mit entsprechenden Teilen des Datenkompressors 1 identisch
sind, mit den identischen Bezugszeichen versehen und es wird zur Beschreibung dieser
Teile auf die entsprechende Beschreibung beim Datenkompressor verwiesen.
-
Der Speicher 10, bei dem es sich um einen von mehreren Kompressoren
und Expandern und anderen Systemen gemeinsam benutzten Speicher handeln kann, besitzt
acht parallel geschaltete Datenausgänge 95. Die ersten sieben dieser acht Ausgänge
95 sind
jeweils mit entsprechenden Registerplätzen 1 bis 7 des
Schieberegisters 15 und mit entsprechenden Speicherplätzen 1 bis 7 des Zählers 16
verbunden. Der achte Ausgang ist in einer später zu beschreibenden Weise mit der
Ablaufsteuerung 8 verbunden.
-
Der achte Speicherplatz des Zählers 16 wird auf den Wert i gesetzt.
Der Zähler 16 wird als Aufwärts-Zähler verwendet und besitzt einen Ausgang 96 zur
Anzeige des maximalen Zählerstandes. Der zweite Eingang 20 des Schieberegisters
15 ist auf Null gesetzt. Ferner besitzt das Schieberegister 15 zwei weitere Eingänge,
nämlich einen Schiebeeingang 97 zum seriellen Schieben und einen Ladeeingang 98
zum parallelen Laden.
-
Schließlich besitzt das Schieberegister 15 einen Ausgang 99 zum Ausgeben
der Daten in serieller Form.
-
Das Steuereingangsteil 9 unterscheidet sich vom Steuereingangsteil
5 des Datenkompressors 1 dadurch, daß der Ausgang 47 des ersten Registerplatzes
des Schieberegisters 40 nicht benötigt wird. Die Ausgänge 48, 49 des zweiten und
dritten Registerplatzes sind in später zu beschreibender Weise mit der Ablaufsteuerung
8 verbunden. Die Registerplätze 4 bis 7 sind wiederum über das NOR-Glied 50 und
die Leitung 51 mit dem Leseeingang 37 des Speichers 10 verbunden. rerner ist das
OR-Glied 52 nicht vorgesehen.
-
Die Ablaufsteuerung 8 weist vier Register auf, die jeweils durch ein
einfaches D-Flip-Flop gebildet sind: ein Nachladeregister 100, ein Kennwertregister
101, ein Ladesperreregister 102 und ein Adressensteuerregister 103. Jedes dieser
Register 100, 102 und 103 besitzt einen CP-Eingang, einen Preset-Eingang pr, einen
D-Eingang sowie einen Q- und einen Q-Ausgang.
-
Das Register 101 besitzt einen clear-Eingang cl, einen CP-Eingang,
einen D-Eingang sowie einen Q- und Q-Ausgang.
-
Der CP-Eingang des Nachladeregisters 100 ist mit dem Ausgang 48 des
zweiten Registerplatzes des Schieberegisters 40 und der CP-Eingang des Ladesperreregisters
102 mit dem Ausgang 49 des
dritten Registerplatzes des Schieberegisters
40 verbunden. Der CP-Eingang des Kennwertregisters 101 ist über einen Inverter 104
mit dem Ausgang eines AND-Gliedes 105 mit zwei Eingängen verbunden, dessen erster
Eingang mit dem Q-Ausgang des Ladesperregisters 102 und dessen anderer Ausgang mit
dem Ausgang des siebten Registerplatzes des Schieberegisters 40 verbunden ist.
-
Der pr-Eingang des Registers 100 und der cl-Eingang des Registers
101 ist jeweils mit dem Eingang 13 des Datenexpanders verbunden. Der pr-Eingang
des Ladesperreregisters 102 ist mit dem Ausgang eines AND-Gliedes 106 mit zwei Eingängen
verbunden, dessen einer Eingang mit dem Eingang 13 des Datenexpanders 2 und dessen
anderer Eingang mit dem Ausgang eines NAND-Gliedes 107 mit zwei Eingängen verbunden
ist. Ein Eingang des NAND-Gliedes 107 ist mit dem Ausgang des fünften Registerplatzes
des Schieberegisters 15 und der andere Eingang über einen Inverter 108 mit dem Ausgang
96 des Zählers 16 verbunden Der D-Eingang des Nachladeregisters 100 ist ebenfalls
mit dem Ausgang 96 des Zählers 16, der D-Eingang des Kennwertregisters 101 mit dem
achten, freien Ausgang der Datenausgänge 95 des Speichers 10 und der D-Eingang des
Ladesperreregisters 102 mit dem Q-Ausgang des Kennwertregisters 101 verbunden.
-
Der Ausgang des Kennwertregisters 101 ist mit einem ersten Eingang
eines AND-Gliedes 109 mit zwei Eingängen verbunden, dessen anderer Eingang mit dem
Q-Ausgang des Nachladeregisters 100 und dessen Ausgang mit dem Schiebeeingang 97
des Schieberegisters 15 verbunden ist. Ferner sind zwei AND-Glieder 110, 111 mit
jeweils drei Eingängen vorgesehen, deren erster Eingang jeweils mit dem Ausgang
des AND-Gliedes 105 und deren dritter Eingang jeweils mit dem Q-Ausgang des Nachladeregisters
100
verbunden ist. Der zweite Eingang des AND-Gliedes 110 ist über einen Inverter 112
und der zweite Eingang des AND-Gliedes 111 direkt mit dem achten Datenausgang der
Datenausgänge 95 des Speichers 10 verbunden. Der Ausgang des AND-Gliedes 110 ist
mit dem Ladeeingann 98 des Schieberegisters 15 und der Ausgang des AND-Gliedes 111
mit dem Ladeeingang 26 des Zählers 16 verbunden. Ein weiteres AND-Glied 113 mit
zwei Eingängen ist an seinem ersten Eingang mit dem Q-Ausgang des Nachladeregisters
100, an seinem zweiten Eingang mit dem Ausgang 49 des dritten Registerplatzes des
Schieberegisters 40 und an seinem Ausgang mit dem Zähleingang 27 des Zähleres 16
verbunden.
-
Das Adressensteuerregister 103 besitzt einen clear-Eingang, einen
Preset-Eingang pr und einen Q-Ausgang. Der clear-Eingang des Registers 103 ist mit
dem Ausgang eines NOR-Gliedes 114 mit zwei Eingängen verbunden, dessen einer Eingang
mit dem Ausgang 48 des zweiten Registerplatzes des Schieberegisters 40 und dessen
anderer Eingang mit dem Eingang 13 des Datenexpanders über einen Inverter 115 verbunden
ist. Der pr-Eingang des Registers 103 ist mit dem Ausgang eines weiteren NOR-Gliedes
116 mit zwei Eingängen verbunden, dessen erster Eingang mit dem Ausgang des AND-Gliedes
110 und dessen zweiter Eingang mit dem Ausgang des AND-Gliedes 111 verbunden ist.
Der Q-Ausgang des Registers 103 ist mit dem Adresseneingang 38 des Speichers 10
verbunden.
-
Für die einzelnen Schaltungsteile der Ablaufsteuerung 8 werden vorzugsweise
folgende Bauteile verwendet: für die Register 100, 101, 102 und 103 jeweils das
Bauteil 74 S 74, für die Inverter 104, 108, 112 und 115 das Bauteil 74 S 04, für
die AND-Glieder 105 und 106 das Bauteil 74 S 08, für das NAND-Glied 107 das Bauteil
74 S 00 und für die NOR-Glieder 114 und 116 das Bauteil
74 S 02.
Die NAND-Glieder 109 und 110 sowie 111 und 113 werden jeweils zusammen durch ein
Bauteil 74 S 15 realisiert. Für die übrigen Schaltungsteile des Datenexpanders 2
werden die gleichen Bauteile wie für die entsprechenden Schaltungsteile des Datenkompressors
1 verwendet.
-
Der Betrieb des Datenkompressors 1 und des Datenexpanders 2 soll anhand
eines Bit-Musters für die zu komprimierenden Daten gezeigt werden, wie es in Fig.
5 dargestellt ist. Dabei sind die aufeinanderfolgenden Daten als Streifen mit schwarzen
und weißen Abschnitten dargestellt, von denen eine Einheitslänge des schwarzen Abschnittes
eine binäre Null und eine Einheitslänge des weißen Abschnittes eine binäre Eins
darstellen soll.
-
Die oberste Zeile I stellt den dem Eingang 11 des Datenkompressors
1 zugeführten zu komprimierenden Datenstrom, die mittlere Zeile II den im Speicher
6 bzw. 10 abgelegten bzw. zu übertragenden komprimierten Datensatz und die unterste
Zeile III den nach der Expansion den Datenexpander 2 am Ausgang 14 verlassenden
expandierten Datenstrom dar. Der zu komprimierende Datenstrom in Zeile I ist in
Übereinstimmung mit der im folgenden erläuterten Funktion des Kompressors in Perioden
1, 2 ... mit jeweils sieben Dateneinheiten aufgeteilt, auf die im folgenden Bezug
genommen werden soll. Der Datenstrom in Zeile I in Fig.
-
5 wird dem Datenkompressor 1 derart zugeführt, daß die Dateneinheiten
vom linken Rand der Zeile I aus nacheinander zum Eingang 11 des Datenkompressors
1 gelangen.
-
Die Zustände des Datenkompressors 1 in den in Fig. 5 gezeigten einzelnen
Perioden sind in den Fig. 6 bis 17 dargestellt, wobei ein Registerinhalt Null in
den Registern 15, 16, 55, 56 und 57 jeweils durch einen schwarzen Kreis gekennzeichnet
ist.
-
Der Anfangszustand des Datenkompressors 1, in dem am Eingang
12
ein "Aus"-Signal anliegt, ist in Fig. 6 gezeigt. Durch das "Aus"-Signal wird in
das Start-Stop-Register 55 und in das Kennwertregister 57 der Inhalt Null und über
den Setzeingang 54 in den ersten Registerplatz des Schieberegisters 40 eine logische
Eins und in die übrigen Registerplätze des Schieberegisters 40 jeweils eine logische
Null gesetzt. Der Inhalt des Schieberegisters 15 und des Zählers 16 ist noch beliebig.
-
Trifft nun am Eingang 12 ein "Ein"-Signal ein, so wird der Taktgeber
39 über das OR-Glied 42 eingeschaltet und liefert über die Takteingänge 22, 28 und
44 jeweils synchrone Taktimpulse an das Schieberegister 15, den Zähler 16 und das
Schieberegister 40. Im Schieberegister 15 bewirken diese Taktsignale, daß bei jedem
Taktsignal ein weiteres Bit des am Eingang 11 anliegenden Datenstroms in das Schieberegister
15 übernommen bzw. im Schieberegister 15 in üblicher Weise jedes Bit um einen Registerplatz
in Fig. 6 nach rechts verschoben wird. Im Schieberegister 40 bewirkt dieser Takt,
daß die logische Eins bei jedem Taktsignal um eine Stelle zu den höheren Registerplätzen
hin, d.h. also in Fig. 6 nach rechts, verschoben wird, wobei die übrigen Registerplätze
logische Nullen aufweisen, da der Inhalt des Registerplatzes 7 im darauffolgenden
Takt jeweils über die Leitung 45 den Inhalt des Registerplatzes 1 bestimmt.
-
Der Zustand nach fünf Taktsignalen des Taktgebers 39 ist in Fig. 7
gezeigt. Die logische Eins vom Registerplatz 1 ist auf den Registerplatz 5 des Schieberegisters
40 gewandert. Dadurch wird über die Verbindung des CP-Eingangs 59 des Start-Stop-Registers
55 mit dem Registerplatz 5 der Inhalt des E-Flip-Flops auf 1 gesetzt. Gleichzeitig
ist der am Eingang 11 anliegende Datenstrom gemäß Zeile I in Fig. 5 um fünf Plätze
in das Schieberegister 15 vorgedrungen. Über das OR-Glied 50 und die Leitung 51
erfolgt zwar ein Schreibbefehl an den Speicher
6 und es wird der
momentane Inhalt des Zählers 16 in den Speicher 6 übernommen. Dieser Inhalt wird
jedoch zu einem späteren Zeitpunkt überschrieben, da am Adresseneingang 38 noch
kein Signal zum Ändern der Adresse anliegt.
-
In Fig. 8 ist der Zustand des Datenkompressors 1 nach der ersten Periode
mit sieben Takten, also am Anfang der zweiten Periode nach Fig. 5 gezeigt. Die ersten
sieben Bit des anliegenden Datenstromes li-egen im Schieberegister 15 vor. Unabhängig
davon, ob es sich dabei um gleiche oder verschiedene Bit handelt, soll diese erste
Datenfolge im Schieberegister 15 unverändert in den Speicher gelangen. Dies wird
dadurch erreicht, daß dem neunten Eingang 30 des Vergleichers 17 das Ergebnis des
EXNOR-Gliedes 32 zugeführt wird. Da sowohl im E'-als auch im E"-Flip-Flop des Start-Stop-Registers
55 eine Null vorliegt, ist der eine Eingang des EXNOR-Gliedes 32 über das OR-Glied
88 auf Null gesetzt. Das bedeutet, daß der Ausgang des EXNOR-Gliedes jeweils den
entgegengesetzten Wert des Pegels am anderen Eingang, der mit dem zweiten Registerplatz
des Schieberegisters 15 verbunden ist, annimmt. Damit wird also auf jeden Fall im
Vergleicher 17 festgestellt, daß nicht alle neun Eingänge den gleichen Pegel aufweisen.
Damit erzeugt der Vergleicher 17 am Ausgang 31 einen Wert K mit Pegel 1, der über
das AND-Glied 75 und das OR-Glied 74 im Takt 1 ein Signal mit Pegel 1 dem Ladeeingang
26 des Zählers 16 zuführt, so daß der Inhalt der ersten sieben Registerplätze des
Schieberegisters 15 den ersten sieben Speicherplätzen des Zählers 16 zugeführt wird.
Dieser Inhalt erscheint auch an den Datenausgängen 25 des Zählers 16. Da der Inhalt
der Speicherplätze E' und E" jeweils Null ist und damit auch der Ausgang des OR-Gliedes
88 auf Null liegt, erscheint im folgenden Takt 2 kein Signal am Ausgang 89, so daß
die Adresse im Speicher nicht geändert wird.
-
Da der Wert K = 1 ebenfalls dem NAND-Glied 66 zugeführt wird
und
damit im Takt 1 der Inhalt des K'-Speichers auf Null gesetzt wurde, gelangt im Takt
3 kein Signal zum Ausgang 82, wodurch kein Zählvorgang begonnen wird. Im Takt 5
wandert der Inhalt des E-Speichers nach E', so daß nunmehr E E' = 1 1. In den Takten
4 bis 7 wird über das NOR-Glied 50 und der Leitung 51 ein Signal an den Schreibeingang
37 des Speichers 6 gegeben, so daß der an den Dateneingängen 36 anliegende Inhalt
in die erste Speicheradresse geschrieben wird. Da K' = 0, wird über die Leitung
92' in den achten Speicherplatz dieser ersten Adresse ein Null-Bit als Kennbit eingeschrieben.
-
In Fig. 9 ist der Zustand des Datenkompressors 1 nach den zwei ersten
in Fig. 5 dargestellten Perioden, also am Anfang der dritten Periode dargestellt.
Während der Takte der vorangehenden zweiten Periode sind die nächsten sieben Bit
des ankommenden Datenstroms, nämlich sieben Nullen, auf die Plätze 1 bis 7 des Schieberegisters
15 gelangt. Auf Platz 8 befindet sich noch die Null des letzten Bits aus der Sieben-Bit-Folge
davor, das ebenfalls eine Null war. Da alle Bits im Schieberegister untereinander
gleich sind, handelt es sich bei der neu eingelaufenen Sieben-Bit-Folge um "Grund".
Damit befinden sich im Schieberegister 15 zum Takt 1 der dritten Periode nur Nullen.
Damit liegen an den ersten acht Eingängen 30 des Vergleichers 17 jeweils gleiche
Werte an. Da nunmehr wegen E' E" = 1 0 liegt am ersten Eingang des EXNOR-Gliedes
32 ein Signal mit Pegel 1 an, so daß am Ausgang des EXNOR-Gliedes stets ein Signal
mit gleichem Pegel wie das am zweiten Eingang anliegende erzeugt wird. Damit liegt
also der Ausgang des EXNOR-Gliedes 32 ebenfalls auf Null, so daß alle neun Eingänge
des Vergleichers 17 gleiche Werte anzeigen und der Vergleicher am Ausgang K ein
Signal mit Pegel Null abgibt. Damit bleibt der Ausgang 79 auf Null, so daß der Inhalt
des Speichers 15 nicht in den Zähler 16 geladen wird. Ferner erscheint mit K = O
am Ausgang des NAND-Gliedes 66 ein Signal mit Pegel 1, so daß Uber die Verbindung
des
CP-Eingangs 61 mit dem Ausgang 47 im Takt 1 der Inhalt des K'-Speichers und im Takt
5 über die Verbindung des CP-Eingangs 60 des Nullwertregisters 56 mit dem fünften
Registerplatz des Schieberegisters 40 der Inhalt des Nullwertregisters 56 zu Eins
gemacht wird. Da der Ausgang des NAND-Gliedes 84 wegen K' K" = 1 0 auf Pegel 1 und
der Ausgang des OR-Gliedes 88 wegen E' E" = 1 0 auf Pegel 1 liegt, erscheint im
Takt 2 ein Signal mit Pegel 1 am Ausgang 89, so daß die Speicheradresse zur Abspeicherung
der an den Eingängen 36 anliegenden Daten geändert wird. Damit werden die bereits
in der zweiten Periode gespeicherten Daten erhalten.
-
Im Takt 2 und 3 der dritten Periode werden über das OR-Glied 52 und
die Leitung 53 die Ausgänge des Schieberegisters hochohmig gemacht. Gleichzeitig
wird der Ausgang des ersten Registerplatzes 21 über das~open-collector-Glied 33
auf Null gesetzt. Damit wird im Takt 3 über das AND-Glied 76 und das OR-Glied 79
ein Ladebefehl an den Ladeeingang 26 des Zählers 16 gegeben, wodurch der Wert 0111111
in die ersten sieben Speicherplätze des Zählers 16 geladen wird. Der achte Speicherplatz
enthält weiterhin den Wert Null. Diese Daten liegen damit ebenfalls an den Dateneingängen
36 des Speichers 6 zusammen mit dem Kennbit, das wegen K' = 1 den Wert 1 besitzt,
an und werden gemeinsam in den Takten 4 bis 7 in die zweite Speicheradresse eingeschrieben.
Im Takt 5 wird über den CP-Eingang 59 der Inhalt des Speichers E' nach E" geschoben,
so daß nunmehr E E' E" = 1 1 1.
-
In Fig. 10 ist der Zustand des Datenkompressors 1 nach Beendigung
der dritten Periode, also am Anfang der vierten Periode, dargestellt. Während der
dritten Periode sind gemäß Fig. 5 weitere sieben Bit mit Wert Null, also wiederum
"Grund", in das Schieberegister 15
eingelaufen. In gleicher Weise
wie in der vorigen Periode erfolgt kein Laden in den Zähler 16 im Takt 1, dafür
wird über die Verbindung der CP-Ausgänge 61 und 62 des Kennwertregisters 57 mit
dem Ausgang 47 des Schieberegisters 40 K" = 1, so daß K' K" = 1 1. Dies zeigt an,
daß in zwei aufeinanderfolgenden Perioden jeweils übereinstimmende Bit festgestellt
wurden.
-
Damit liegt der Ausgang des NAND-Gliedes 84 auf Pegel Null, so daß
im Takt 2 kein Signal am Ausgang 89 erscheint und damit die Adresse des Speichers
nicht geändert wird. Da im Takt 3 alle Eingänge des AND-Gliedes 80 auf dem Pegel
1 liegen, erfolgt im Takt 3 ein Signal am Ausgang 82 und damit dem Zähleingang 27,
so daß der in der vorigen Periode geladene Wert 01111110 um 1 auf 10111110 abwärts
gezählt wird. Bei den Takten 4 bis 7 wird wiederum ein Schreibbefehl an den Schreibeingang
37 des Speichers 6 gegeben, so daß die ersten sieben Bit 1011111 des Zählers 16
zusammen mit dem dem im Speicher K' gespeicherten Wert entsprechenden Kennbit anstelle
der vorher gespeicherten Werte in der zweiten Adresse des Speichers 6 gespeichert
werden.
-
Fig. 11 zeigt den Zustand des Datenkompressors 1 nach Ablauf der in
Fig. 5 dargestellten vierten Periode, also am Anfang der fünften Periode. Während
der vierten Periode sind sieben Bit auf die Registerplätze 1 bis 7 des Schieberegisters
15 eingelaufen, die nicht alle untereinander gleich sind. Die neu eingelaufene Sieben-Bit-Folge
wird damit als "Figur" bezeichnet. Damit stellt der Vergleicher 17 Ungleichheit
fest und liefert ein Signal K = 1 am Ausgang 31. Damit wird im Takt 1 über das AND-Glied
75 und das OR-Glied 74 ein Ladesignal an den Ladeeingang 26 gegeben, so daß der
Inhalt der ersten sieben Registerplätze des Schieberegisters 15 im Takt 1 auf die
ersten sieben Speicherplätze des Zählers 16 geladen wird und daraufhin die nächsten
ankommenden Daten in das Schieberegister 15 einlaufen können. Ferner wird über das
NAND-Glied 66 der Inhalt des
Speichers K' auf Null gesetzt, so
daß K' K'! = 0 1. Damit wird der Ausgang des NAND-Gliedes 84 1 und im Takt 2 erscheint
ein Signal mit Pegel 1 am Ausgang 89, so daß die Adresse des Speichers 6 geändert
wird und der in der vierten Periode in der zweiten Adresse des Speichers gespeicherte
Zählwert 10111111 nicht mehr überschrieben werden kann und damit gespeichert bleibt.
Im Takt 3 erscheint weder ein Ladesignal am Ausgang 79 noch ein Zählsignal am Ausgang
82, so daß der im Takt 1 vom Schieberegister 15 in den Zähler 16 geladene Inhalt
erhalten bleibt und in den Takten 4 bis 7 in die Adresse 3 des Speichers 6 geschrieben
werden kann.
-
Fig. 12 zeigt den Zustand des Datenkompressors 1 nach Ablauf der in
Fig. 5 dargestellten fünften Periode, also zu Beginn der sechsten Periode. Während
der vorangehenden fünften Periode sind sieben Bits mit Wert Eins in die ersten sieben
Registerplätze des Schieberegisters 15 eingelaufen. Das letzte Bit der vorangehenden
Sieben-Bit-Folge, das ebenfalls eine Eins darstellte, befindet sich noch auf dem
achten Registerplatz. Damit stellt der Vergleicher 17 Gleichheit aller Bits im Register
15 und damit "Grund" fest und erzeugt sofort, also innerhalb des ersten Taktes,
K = O am Ausgang 31. Damit erscheint am Ausgang 79 ein Signal mit Pegel 0 und es
kann im Takt 1 der Wert vom Register 15 nicht in den Zähler 16 geladen werden. Gleichzeitig
wandert jedoch im Takt 1 wegen der Zusammenschaltung der Speicher K' und K " der
Wert Null vom Speicher K' in den Speicher K'', so daß K' K" = 1 O. Damit erhält
der Ausgang des NAND-Gliedes 84 einen hohen Pegel, so daß im Takt 2 am Ausgang 89
ein Signal zum Ändern der Adresse des Speichers 6 erscheint. Damit kann die in der
vorigen Periode abgespeicherte Bit-Folge nicht mehr überschrieben werden und bleibt
gespeichert. Im Takt 3 wird in gleicher Weise wie in der oben beschriebenen dritten
Periode der Zähler 16 mit dem
Wert 01111110 geladen und im Takt
4 bis 7 zusammen mit dem Kennbit als Wert 01111111 in die vierte Adresse des Speichers
6 geladen. Y Fig. 13 zeigt den Zustand des Datenkompressors 1 nach Ablauf von (4
+ 126) Perioden, also am Anfang der (5 + 126)ten Periode.
-
Während der vorangehenden 7-2 = 126 Perioden liefen, wie in Fig. 5
dargestellt ist, jeweils Sieben-Bit-Folgen in das Schieberegister 15 ein, deren
Bits alle gleich waren. Daher wurde in jeder Periode in der oben im Zusammenhang
mit der dritten Periode beschriebenen Weise der Zählerstand des Zählers 16 um 1
reduziert, so daß der Zähler 16 nunmehr den Inhalt 00000000 besitzt. Der Zähler
16 hat daher am Ende der vorangehenden Periode am Ausgang 29 ein Signal abgegeben,
das den Nullstand anliegt. Dieser Zählerstand wird nun zusammen mit dem Kennbit
1 in den Speicher 6 übernommen, um ein Weiterzählen zum Anfangswert 11111111 und
damit eine Verfälschung des Zählerergebnisses zu verhindern. Zu diesem Zweck wird
das Signal vom Ausgang 29 dem D-Eingang 63 des Nullwertregisters 56 zugeführt und
setzt den Inhalt dieses Registers auf Null. Dadurch wird über das AND-Glied 78 der
Wert K" = 0 simuliert und der Ausgang des NAND-Gliedes 84 erhält den Pegel 1, so
daß im Takt 2 ein Signal mit Pegel 1 am Ausgang 89 erscheint und die Adresse des
Speichers 6 geändert wird. Damit kann der in den Speicher geschriebene Zählwert
00000001 nicht mehr überschrieben werden. Da die in der vorangehenden Periode in
das Schieberegister 15 eingelaufenen Bits ebenfalls untereinander und mit dem letzten
Bit der vorhergehenden Sieben-Bit-Folge gleich sind, stellt der Vergleicher 17 weiterhin
Gleichheit fest, so daß über das NAND-Glied 66 weiterhin K'K'' = 1 1 vorliegt.
-
Damit liegt der Ausgang des AND-Gliedes 78 auf niedrigem Pegel, der
über den Inverter 77 auf Pegel 1 angehoben wird. Daher kann im Takt 3 in gleicher
Weise wie in der oben beschriebenen dritten Periode ein neuer Anfangszählerstand
01111110 in den Zähler 16 geladen werden, der zusammen mit dem Inhalt des Speichers
K'
= 1 während der Takte 4 bis 7 in der nächsten Adresse des Speichers 6 abgespeichert
wird.
-
Den Zustand des Datenkompressors 1 zu Beginn der folgenden, (5 + 126
+ l)ten Periode zeigt Fig. 14. Zu Beginn dieser Periode wurde, wie aus Fig. 5 ersichtlich
ist, am Eingang 12 das "Aus"-Signal erhalten. Damit laufen keine weiteren Bits mehr
in das Schieberegister 15 ein und der Stand des Zählers 16 ist gegenüber der vorangehenden
Periode unverändert. Der Taktgeber 39 läuft jedoch trotz des "Aus"-Signals weiter,
da der zweite Eingang des OR-Gliedes 42 wegen E" = 1 noch auf Pegel 1 liegt.
-
Damit läuft auch der vom Schieberegister 40 gebildete Ringzähler weiter
und setzt im Takt 5 den Inhalt des Speichers E des Start-Stop-Registers 55 auf Null.
-
Zur Anzeige des Endes des Datenstromes muß nun im Speicher eine Marke
gesetzt werden. Diese Marke besteht aus einem Stopbyte mit der Bit-Folge 11111111.
Diese Bit-Folge tritt sonst im Speicher nicht auf, da bei Abspeichern einer Sieben-Bit-Folge
ungleicher Bits das Kenn-Bit 0 abgespeichert wird und bei Abspeichern von aufeinanderfolgenden
Sieben-Bit-Folgen gleicher Bits ein Zählerstand abgespeichert wird, der mindestens
eine Null aufweist. Daher ist das Stopbyte eindeutig als Stopmarke erkennbar.
-
Das Erzeugen des Stopbytes erfolgt in der folgenden Weise: Wie in
Fig. 15 gezeigt, wird im Takt 1 der nächsten, (5 + 126 + 2)ten Periode wegen E E'
= 0 1 der Ausgang des AND-Gliedes 70 zu Null und damit der Pegel am ersten Eingang
68 des NAND-Gliedes 66 wegen des Inverters 69 auf 1 gesetzt. Der zweite Eingang
67 des NAND-Gliedes 66 liegt wegen K = O am Ausgang 31 des Vergleichers 17 auf Null.
Damit liegt der Ausgang des NAND-Gliedes
66 auf Pegel 1 und im
Takt 1 wird im Speicher K' der Wert 1 gespeichert, so daß am Q-Ausgang des Speichers
K' und an dem für das Kenn-Bit reservierten achten Dateneingang 36 des Speichers
6 ein Signal mit Pegel 1 anliegt. Gleichzeitig wird wegen E E' = 0 1 das open-collector-NAND-Glied
33 über das NAND-Glied 81 so gesteuert, daß der Ausgang des ersten Registerplatzes
21 und damit der Wert des ersten Speicherplatzes 24 des Speichers 16 während der
Takte 2 und 3 auf Pegel 1 gesetzt wird.
-
Mit dem im Takt 3 erzeugten Ladesignal am Ladeeingang 26 wird damit
in den Speicher 16 der Inhalt 11111110 geladen. Die ersten sieben Bit dieses Speicherinhalts
werden während der Takte 4 bis 7 auf die ersten sieben Speicherplätze der vorliegenden
Adresse des Speichers 6 zusammen mit dem Kenn-Bit 1 auf dem achten Speicherplatz
eingeschrieben, so daß dort nunmehr das Stopbyte 11111111 gespeichert ist. Im Takt
5 wird ferner die Null vom Speicher E zum Speicher E' transportiert, so daß dann
E E' = 0 0.
-
Das Ausschalten des Taktgebers 39 erfolgt in der nächsten Periode
des Ringzählers 40. Der Zustand des Datenkompressors 1 zu Beginn dieser Periode
ist in Fig. 16 dargestellt. Da im Takt 1 E' E" = 0 1 vorliegt, wird im Takt 2 am
Ausgang 89 ein Signal mit hohem Pegel erzeugt und damit die Adresse des Speichers
geändert, so daß die Dateneingänge 36 mit einer neuen Adresse verbunden werden und
damit das Stopbyte nicht mehr überschrieben werden kann. Die mit Takt 3 in den Zähler
16 gelangende und während der Takte 4 bis 7 im Speicher 6 abgespeicherte Information
wird durch neue Information, die nach dem nächsten "Ein"-Signal eintrifft, überschrieben
werden. Im Takt 5 wird der Inhalt Null vom Speicher E' in den Speicher E" übertragen,
so daß am Q-Ausgang des Speichers E" ein Signal mit Pegel O erscheint und auch der
zweite Eingang des OR-Gliedes 42 auf Null gesetzt wird. Damit fällt der Ausgang
des OR-Gliedes auf
Null und der Taktgeber 39 wird ausgeschaltet.
-
Wie anhand des in Fig. 16 gezeigten Inhalts des Speichers 6 ersichtlich
ist, ist die gesamte, innerhalb der (5 + 126)ten Perioden à 7 Bit einlaufenden Information
in fünf Adressen à 8 Bit des Speichers 6 gespeichert. Damit sind 917 Bits des einlaufenden
Datenstroms in 40 Speicherplätzen abgespeichert, was etwa eine Reduktionsrate von
23:1 ergibt. Dies wird dadurch erreicht, daß immer dann, wenn die einzelnen Bits
eine Anzahl aufeinanderfolgender Sieben-Bit-Folgen alle untereinander und mit dem
letzten Bit einer vorangehenden Bit-Folge gleich sind (sogenannter "Grund"), nicht
die einzelnen Bits dieser Bit-Folgen, sondern der am Ende dieser Bit-Folgen erhaltene
Zählerstand abgespeichert wird. Sind die Bits einer Bit-Folge untereinander verschieden
(eine sogenannte "Figur"), so werden diese Bits in üblicher Weise abgespeichert.
Zur Unterscheidung der "Grundbytes" von den "Figurbytes" im Speicher ist es lediglich
erforderlich, zu jeder Sieben-Bit-Folge zusätzlich ein weiteres Bit (das sogenannte
"Kenn-Bit") abzuspeichern, das angibt, ob es sich um "Grund" oder "Figur" handelt.
-
Der für dieses zusätzliche Bit benötigte Speicherplatz ist jedoch
dann ohne Bedeutung, wenn eine größere Anzahl von "Grund" auftritt, so daß die Speicherplatzersparnis
aufgrund dieses "Grunds" den wegen der "Kenn-Bits" zusätzlich benötigten Speicherplatz
bei weitem übertrifft.
-
Die Funktionsweise des Datenexpanders 2 soll anhand des Schaltbildes
in Fig. 4 und der schematischen Informationsdarstellung von Fig. 5 erläutert werden.
Dabei liegt im Speicher die in Fig. 16 dargestellte Information vor.
-
Vor Anliegen des "Ein"-Signals am Eingang 13 ist im ersten Speicherplatz
des Schieberegisters bzw. Ringzählers 40 der Wert 1
und in den
ütrigen Speicherplätzen jeweils der Wert 0 gespeichert. Die Register 100 und 102
sind ebenfalls auf Wert 1. Das Register 101 und das Adressensteuerregister 103 befinden
sich auf Wert 0.
-
Nach Anliegen des "Ein"-Signals am Eingang 13 wird der Taktgeber 39
eingeschaltet, der in gleicher Weise wie beim Datenkompressor das Schieberegister
15, den Zähler 16 und den Ringzähler 40 taktet. Im Takt 2 fällt der Ausgang des
NOR-Gliedes 114 auf Null und damit bleibt das Signal am Adresseneingang 38 des Speichers
10 auf hohem Pegel, so daß die Adresse noch nicht geändert wird. In den Takten 4
bis 7 der ersten Periode wird der Inhalt von Adresse 1 des Speichers 10 aus dem
Speicher 10 gelesen und an den Datenausgängen 95 zur Verfügung gestellt.
-
In der zweiten Periode ist zu Beginn von Takt 1 der am Ende von Takt
7 aus dem Speicher gelesene Inhalt wegen der Gatterlaufzeiten gerade noch verfügbar.
Das Bit an der achten Stelle der Datenausgänge 95, das dem achten Bit der ersten
Adresse entspricht, beträgt Null und setzt damit über den D-Eingang des Registers
101 dieses auf K' = O. Durch Kenn-Bit = 0 wird der Ladeeingang 98 des Schieberegisters
15 auf hohen Pegel gesetzt und die ersten sieben Bit an den ersten sieben Stellen
der Datenausgänge 95 parallel in das Schieberegister 15 geladen.
-
Wegen K' = 0 werden ab dem nächsten Takt der clock (die bisher Nullen
schob) diese sieben geladenen Bits seriell zum Ausgang 99 und über diesen zum Ausgang
14 des Expanders geschoben. Während des Ladevorgangs wird über das NOR-Glied 116
der Preset-Eingang des Adressensteuerregisters 103 auf Null gesetzt und damit die
erste Adressenänderung von Adresse 1 auf Adresse 2 vorbereitet. Bei Takt 2 wird
über das NOR-Glied 114 ein clear-Signal am Adressensteuerregister 103 angelegt und
damit der Ausgang 5 von A wieder auf 1 gesetzt.
-
Durch die Flanke von Q = O zu Q = 1 am Q-Ausgang des Adressensteuerregisters
103 erfolgt die Adressenänderung im Speicher 10. Im Takt 4 bis 7 wird daraufhin
der Inhalt von Adresse 2 gelesen und an den Datenausgängen 95 zur Verfügung gestellt.
-
Damit erscheint zu Beginn der dritten Periode am D-Eingang des Kennwertregisters
101 das Kenn-Bit 1 der zweiten Adresse. Damit folgt K' = 1. Damit bleibt das letzte
Bit der aus dem Schieberegister 15 geschobenen ersten sieben Bit am siebten Registerplatz
des Schieberegisters 15 stehen. Der Ausgang des AND-Gliedes 111 geht auf hohen Pegel
und bewirkt das Laden der ersten sieben Bit der an den Datenausgängen 95 stehenden
Daten der zweiten Adresse in den Zähler 16. Über das NOR-Glied 116 wird dadurch
wiederum im Adressensteuerregister 103 die nächste Adressenänderung vorbereitet,
die im Takt 2 in gleicher Weise wie in der zweiten Periode durchgeführt wird. Im
Takt 3 geht der Ausgang des AND-Gliedes 113 auf hohen Pegel und bewirkt ein Aufwärtszählen
des Zählers vom vorher geladenen Inhalt 10111111 zum Inhalt 01111111. Gleichzeitig
wird über den Ausgang 49 zum CP-Eingang des Ladesperreregisters 102 ein Wert Null
in das Ladesperreregister 102 geladen, wodurch der Ausgang Q des Ladesperreregisters
102 zu Null wird und damit über das AND-Glied 105 der Ausgang des AND-Gliedes 111
auf niedrigem Pegel gehalten wird und das weitere Laden verhindert wird, bis in
einer späteren Periode bei Takt 3 der maximale Zählerstand des Zählers 16 erreicht
wird. In den Takten 4 bis 7 wird wiederum der Inhalt der nächsten Adresse 3 an den
Datenausgängen 95 zur Verfügung gestellt.
-
Zu Beginn der vierten Periode ist K' = 1 und der Ausgang Q des Ladesperreregisters
102 liegt auf Null. Damit wird bei Takt 1 weder parallel in das Schieberegister
15 noch in den Zähler 16 geladen. Ohne ein Signal mit Pegel 1 am Ausgang des AND-
Gliedes
110 oder des AND-Gliedes 111 kann jedoch die Adressenänderung des Speichers 10 über
das Adressensteuerregister 103 nicht vorbereitet und damit die Adresse des Speichers
10 auch nicht geändert werden. Im Takt 3 wird der Zähleingang des Zählers 16 auf
hohen Pegel gesetzt und der Zähler 16 zählt damit um 1 aufwärts auf den neuen Zählerstand
11111111. Damit ist der maximale Zählerstand erreicht und am Ausgang 96 wird ein
Signal ausgegeben, das im Takt 5 über das NAND-Glied 107 und das AND-Glied 106 das
Ladesperreregister 102 rücksetzt und damit die Ladesperre aufhebt. In den Takten
4 bis 7 wird in gleicher Weise wie in den vorangehenden Takten der Inhalt der vorliegenden
Adresse, also wiederum der Adresse 3, an den Datenausgängen 95 zur Verfügung gestellt.
-
Während der dritten und vierten Periode ist der Ausgang des AND-Gliedes
109 stets auf niedrigem Pegel, so daß die Daten im Schieberegister 15 nicht geschoben
werden und bei jedem Taktsignal des Taktgebers 39 vom Schieberegister 15 ein Bit
ausgegeben wird, das dem am siebten Registerplatz des Schieberegisters 15 stehenden
Bit entspricht. Dieses Bit ist das letzte des in der zweiten Periode aus dem Register
15 geschobenen Figurbytes, nämlich ein Null-Bit.
-
Zu Beginn der fünften Periode wurde beim Übergang von Takt 7 der vierten
Periode zum Takt 1 der fünften Periode der Inhalt der ersten sieben Bit der Adresse
3 parallel in das Schieberegister 15 geladen. Da das Bit an der achten Stelle der
Adresse 3 (Kenn-Bit) Null ist, wird K' = 0 und die im Register 15 befindliche Bit-Folge
wird seriell zum Datenausgang 99 geschoben, wobei auch das letzte Bit der vorhergehenden
sieben Bit seinen Warteplatz an der letzten Stelle des Schieberegisters 15 verläßt.
Mit dem Laden wird über das NOR-Glied 116 die Adressenänderung vorbereitet, die
im Takt 2 wie oben durchgeführt
wird. Im Takt 3 wird der Zähler
16 eingeschaltet und zählt um 1 aufwärts von 11111111 auf 00000000. Im Takt 5 erfolgt
keine Setzung der Ladesperre 102, da das Zählerausgangssignal nicht mehr auf 11111111
bzw. 255 steht. In den Takten 4 bis 7 wird wie oben der Inhalt der neuen Adresse,
d.h. nunmehr der Adresse 4, an den Datenausgängen 95 zur Verfügung gestellt.
-
Zu Beginn der sechsten Periode wird der Inhalt der ersten siebhen
Bit der Adresse 4 in den Zähler 16 geladen, da das Kenn-Bit an der achten Stelle
der Adresse 4 = 1 ist. Dadurch wird K' = 1 und damit das serielle Schieben des Schieberegisters
15 unterbrochen, so daß das letzte Bit des vorangehenden Figurbytes auf der siebten
Stelle des Schieberegisters 15 stehen bleibt und jeweils bei den folgenden Taktsignalen
des Taktgebers 39 ausgegeben wird. Über den Eingang 20 wurden Nullen nachgeschoben.
Mit dem Laden wird wie oben die Adressenänderung vorbhereitet, die im Takt 2 in
gleicher Weise wie. oben beschrieben durchgeführt wird. Im Takt 3 wird der Zähler
.16 vom zu Beginn der sechsten Periode geladenen Zählerstand 00000001 aufwärts zum
Zählerstand 10000001 erhöht. Im Takt 5 wird wegen K' = 1 das Ladesperreregister
102 eingeschaltet und in den Takten 4 bis 7 wird wie oben beschrieben der Inhalt
der nachfolgenden fünften Adresse an den Datenausgängen 95 des Speichers 10 zur
Verfügung gestellt.
-
In den nachfolgenden 125 Perioden wird vom Schieberegister 15 bei
jedem Takt des Taktgebers 39 ein Bit ausgegeben, das dem auf dem siebten Registerplatz
des Schieberegisters 15 stehenden letzten Figur-Bit des letzten vorangehenden Figurbytes
entsprechen. Bei jeder Periode wird der Zählerstand des Zählers 16 um 1 erhöht.
Da nicht mehr geladen wird, wird auch die Adresse im Takt 2 nicht geändert.
-
In der nachfolgenden (6 + 126)ten Periode wird im Takt 3 der Zählerstand
11111111 erreicht. Damit wird am Ausgang 96 des Zählers 16 ein Signal erzeugt und
bei Takt 5 die Ladesperre 102 abgeschaltet. Da jedoch dieser Zählerstand erst im
Takt 3 erreicht wird, war der Zählerstand beim Takt 2 noch ungleich 11111111 bzw.
255. In der darauffolgenden (6 + 127)ten Periode wird zu Beginn wegen des Kenn-Bits
= 1 in Adresse 5 und der vorher aufgehobenen Ladesperre der Inhalt der Adresse 5,
nämlich 11111111, in den Zähler geladen, wodurch erstmals bereits zum Takt 2 vom
Zähler 16 das Zählermaximalsignal 255 am Ausgang 96 abgegeben wird. Dadurch wird
das Nachladeregister 100 umgeschaltet und der Q-Ausgang (STOP) wird zu Null. Damit
werden die Ausgänge der AND-Glieder 109, 110, 111 und 113 auf Null gesetzt und damit
das serielle Schieben und parallele Laden des Schieberegisters 15 sowie das Laden
und Zählen des Zählers 16 abgeschaltet. Als Folge davon kann auch die Adressenänderung
nicht mehr durchgeführt werden. Der Taktgeber 39 und der Ringzähler 40 werden nicht
abgeschaltet, falls sie für eine Mehrzahl von Datenexpandern 2 oder auch Datenkompressoren
1 gemeinsam verwendet werden.
-
Das Prinzip des Datenexpanders 2 besteht also darin, daß bei Erfassen
eines Kenn-Bits mit dem Wert 0 auf dem achten Platz der Datenausgänge 95 des Speichers
10 die Information von den ersten sieben Plätzen der Ausgänge 95 parallel zu einem
Register (Schieberegister 15) geladen werden, das diese Daten seriell zum Datenausgang
14 liefert, und daß bei Erfassen eines Kenn-Bits mit dem Wert 1 der Inhalt der ersten
sieben Plätze der Datenausgänge 95 des Speichers 10 als Zählerstand interpretiert
und in einen Zähler (Zähler 16) geladen wird, von dem die Daten nicht zum Datenausgang
14 geliefert werden. Vielmehr wird der Zähler für jede Periode um 1 weitergezählt
und dabei vom Register (Schieberegister 15) sieben Bit ausgegeben,
die
jeweils gleich dem Bit sind, das beim letzten vorangehenden parallelen Laden der
Daten vom Speicher 10 zum Register (Schieberegister 15) auf den ersten Registerplatz
21 gelangte.
-
Bei Erfassen eines "Stop"-Bits (= 11111111) wird der Datenexpander
2 abgeschaltet. Der Expander besitzt also eine "Weiche", die die Daten von den Datenausgängen
95 des Speichers 10 in Abhängigkeit vom Kenn-Bit entweder zum Register und davon
zum Ausgang oder zum Zähler leitet. Die Kenn-Bits werden ab der Weiche nicht mehr
benötigt und aus dem Informationsfluß entfernt. Ebenso enthält der Datenkompressor
1 im Prinzip eine Ausgangsweiche,die in Abhängigkeit vom Ausgangssignal des Vergleichers
17 entweder das "Figurbyte" mit Kenn-Bit oder den Zählerstand + Kenn-Bit weitergibt.
-
Die Länge der"Bytes"bzw. Bit-Folgen in einer Periode kann selbstverständlich
jeden beliebigen Wert annehmen. In diesem Fall ist lediglich die Größe des Registers
15, des Zählers 16 und des Speichers 6 bzw. 10 der gewählten Länge der Bit-Folge
anzupassen. Ebenfalls kann eine beliebige Zahl von Kenn-Bits gewählt werden. Mit
mehr Kenn-Bits können beispielsweise auch "Farben" der durch die "Grundbytes" gebildeten
Zwischenräume dargestellt werden, beispielsweise mit zwei Kenn-Bits vier "Farbtöne".
In einem anderen Fall können zwei Kenn-Bits auch ein ergänzendes Byte kennzeichnen,
das mit f-Bits eine von 2'verschiedenen Farben eines Bildteiles kennzeichnet.
-
Ferner kann das Verfahren grundsätzlich nicht nur eindimensional,
sondern nach einer Drehung des im Speicher 6 bzw. 10 enthaltenen Datenfeldes um
90° ebenfalls auf die Spalten angewendet werden. Damit ist durch eine derartige
n-dimensionale Anwendung eine weitere Datenverdichtung möglich.
-
Die so erzielte Verringerung der Datenmenge kann bei der Abspeicherung
der
Daten eine erhebliche Einsparung an Speicherplatz, beispielsweise beim Abspeichern
von Matrizen mit unbesetzten Feldern auf Magnetplatten, erzielt werden, was auch
die Zugriffsgeschwindigkeit entsprechend erhöht. Praktisch wird dabei eine Reduzierung
der Daten bzw. Erhöhung der Zugriffsgeschwindigkeit um mindestens den Faktor 10
erreicht.
-
Bei der Übertragung der verdichteten Daten entsteht darüber hinaus
eine Einsparung an Übertragungszeit. Dabei können in den eingesparten "Lücken" zwischen
den zu übertragenden Daten beispielsweise Duplikate der Daten zur Erhöhung der Übertragungssicherheit,
Teile anderer Sendungen im Multiplexverfahren zur besseren Kanal ausnützung oder
in Ergänzung beispielsweise auch Farbinformation übertragen werden.