DE2264090B2 - Datenverdichtung - Google Patents

Datenverdichtung

Info

Publication number
DE2264090B2
DE2264090B2 DE2264090A DE2264090A DE2264090B2 DE 2264090 B2 DE2264090 B2 DE 2264090B2 DE 2264090 A DE2264090 A DE 2264090A DE 2264090 A DE2264090 A DE 2264090A DE 2264090 B2 DE2264090 B2 DE 2264090B2
Authority
DE
Germany
Prior art keywords
image
register
data
digits
error
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE2264090A
Other languages
English (en)
Other versions
DE2264090A1 (de
DE2264090C3 (de
Inventor
Ronald Barthold Stanford Calif. Arps
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2264090A1 publication Critical patent/DE2264090A1/de
Publication of DE2264090B2 publication Critical patent/DE2264090B2/de
Application granted granted Critical
Publication of DE2264090C3 publication Critical patent/DE2264090C3/de
Expired legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • H04N1/411Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures
    • H04N1/413Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information
    • H04N1/417Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information using predictive or differential encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/004Predictors, e.g. intraframe, interframe coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Image Processing (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)

Description

Die Erfindung betrifft ein Verfahren zur Datenverdichtung von in digitaler Form bei einer Bildabtastung anfallenden Daten, bei dem mittels einer Vorhersagestufe in Abhängigkeit vom Inhalt früherer Bildstellen einen Erwartungswert für die jeweils nächste Bildstelle gebildet und aus einem Vergleich der vorhergesagten sowie der tatsächlichen Bildstelleninformation ein sogenanntes Fehlerbild abgeleitet und einer Lauflängencodierung unterzogen wird.
Datenquellen, wie z. B. Videosignale, Faksimile-Übertragungssignale usw. weisen einen erheblichen Redundanzgehalt auf. Zur möglichst effektiven Codierung solcher Datenquellen werden häufig sogenannte Datenverdichtungs- bzw. -kompressiorseinrichtungen eingesetzt. Im wesentlichen können solche Datenverdichtungsmaßnahmen auf zwei Hauptanwendungsgebieten von Vorteil sein. Einmal kann bei Nachrichtenübertragungssystemen durch eine entsprechende Codierung der Datenquelle die zu übertragende Information in relativ kürzerer Zeit über einen Übertragungskanal übertragen werden. Auf der anderen Seite kann ein Übertragungokanal mit geringerer Bandbreite zur Übertragung der derart codierten Daten benutzt werden. Das zweite Hauptanwendungsgebiet sind Speichersysteme. In solchen Speichersystemen kann der verfügbare Speicherraum effektiver ausgenutzt werden, wenn die zu speichernden Daten in komprimierter Form vorliegen.
Es sind bereits verschiedene Wege bekanntgeworden, in digitaler Form vorliegende Bilddaten zu verdichten. Ein solcher Weg ist unter der Bezeichnung Codierung von Vorhersagewerten (predictive coding) bekannt. Zur Vorhersage eines Signalwertes nimmt man dabei Bezug auf die unmittelbare Vorgeschichte für den vorherzusagenden Bildstellenwert und erzeugt ein Fehlersignal entsprechend dem Unterschied zwischen der tatsächlichen und der vorhergesagten Bildstelleninformation. Bei relativ genauer Vorhersage ist diese Differenz, d. h. das Fehlersignal, in seinem Zeitverlauf von sehr kleiner Amplitude. Dies erlaubt, das Fehlersignal in einer Binärcodierung mit variabler Wortlänge auszudrücken, was sehr viel weniger Übertragungsbandbreite benötigt als die direkte Binärcodierung des ursprünglichen Bildsignals. Eine weitere bekannte Technik zur Datenverdichtung von digitalen Bilddaten ist als Lauflängencodierung (run-length encoding) bekanntgeworden. Bei dieser Technik wird mit jedem nicht redundanten Abtastmuster eine binäre Entsprechung der Anzahl der Lauflängenabschnitte der redundanten (nicht übertragenen) Stellenfolgen übertragen, die während des vorherliegenden übertragenen Stellenmusters aufgetreten sind. Die Position einer jeden Datengruppe kann aufgefunden werden, in dem man die Anzah1 der nichtredundanten und redundanten Datenstellen davor aufsummiert. Der genannte Stand der Technik wird durch die US-Patentschriften 29 05 756,34 83 317 sowie die Veröffentlichung im IBM Technical Disclosure Bulletin Vol. 14, No. 2, Juli 1971, Seiten 477/478 dargestellt.
Die genannten beiden Techniken weisen jeweils spezielle Vorteile bei der Dptenverdichtung von in digitaler Form vorliegenden Bilddaten auf. Demzufolge hat man angestrebt, diese beiden Techniken zur Datenverdichtung miteinander zu kombinieren, was in der letztgenannten Literaturstelle bereits zum Ausdruck kommt.
Die Aufgabe der Erfindung besteht in der Verbesserung der genannten Datenverdichtungsverfahren, wobei insbesondere eine hohe Verdichtungsrate als auch die Möglichkeit des Erhalts von rechnerkompatiblen Codierungen mit variabler Wortlänge angesti ebt ist
Ausgehend von einem Verfahren zur Datenverdichtung von in digitaler Form bei einer Bildabtastung anfallenden Daten, bei dem mittels einer Vorhersagestufo in Abhängigkeit vom Inhalt früherer Bildstellen ein Erwartungswert für die jeweils nächste Bildstelle gebildet und pjis einem Vergleich der vorhergesagten sowie der tatsächlichen Bildstelleninformation ein sogenanntes Federbild abgeleitet und einer Lauflängencodierung unterzogen w=rd, besteht die Erfindung darin, daß die Federbilddaten derart längencodiert werden, daß die zwischen je zwei Vorhersage-Fehlerstellen liegenden zutreffend vorhergesagten Fehlerbildabschnitte einem auf einem (p, n/Typ Zahlsystem aufgebauten Code mit der Basiseinheit von \d(p+n) Bits unterworfen werden, wobei ρ die A:,zahl der Stellen niedrigster Ordnung, π die Anzahl der Stellen der nächsthöhreren und höchsten Ordnung und 1 d den Logarithmus zur Basis 2 darstellt Die Datenverdichtung umfaßt demnach eine zweidimensionale Vorhersage sowie eine besondere Lauflängencodierung. Die Vorhersagestufe arbeitet beispielsweise mit drei Registern zur Aufnahme von drei Bits der vorhergehenden Abtastzeile sowie einem weiteren Rr ....... Aufnahme des vorhergehenden Bildstelleninhaltes in derselben Abtastzeile. Zusätzlich erfolgt in der Vorhersagestufe eine Zuordnung, wonach in Abhängigkeit von dem Inhalt der Bezugsbildstellen der jeweilige Erwartungswert (schwarz oder weiß) ermittelt wird. War die Vorhersage fehlerhaft, wird eine binäre 1 entsprechend einer Schwarzbildstelle übertragen; entsprechend wird bei zutreffender Vorhersage eine binäre 0 entsprechend einer Weißbildstelle übertragen. Die vorhergesagten und tatsächlichen Bildstellenwerte werden in einem EXKLUSIV-ODER-Glied miteinander verglichen, woraus sich ein neues, Jen digitalen Bilddaten entsprechendes sogenanntes Fehlerbild ergibt. Diese neue Fehlerbildinformation wird dann der besonderen Längencodierung unterworfen.
Mittels des erfindungsgemäßen Datenverdichtungsverfahrens wurde eine relativ hohe Verdichtungsrate erzielt, wobei zusätzlich eine Überlauf-Berücksichtigung von Vorteil ist. Ein weiterer Vorteil besteht in der Tatsache, daß die besondere Codierung entsprechend der vorliegenden Erfindung völlig kompatibel mit den heutigen Rechneranforderungen ist, so daß sich gerade bei der rechnergesteuerten Bildauswertung damit ein hoher Wirkungsgrad erzielen läßt.
Weitere vorteilhafte Ausgestaltungen der Erfindung sind in den Unteransprüchen gekennzeichnet und werden in der folgenden Beschreibung eines Ausführungsbeispiels unter Zuhilfenahme der Zeichnungen näher erläutert. Es zeigt
F i g. 1 ein schematisches Blockschaltbild eines Bildverarbeitungssystems ;
F i g. 2 ein schematisches Blockschaltbild einer Kompressionsschaltung zur Durchführung der Erfindung;
F i g. 3a ein Blockschaltbild der Vorhersagestufe, die in F i g. 2 lediglich summarisch enthalten ist;
Fig.3b eine graphische Erläuterung der Zuordnungen, aufgrund deren die Vorhersageschaltung den Erwartungswert für die nächste Bildstelle ermittelt;
Fig.4 ein Blockschaltbild einer Dekompressionsschaltung für eine Bildverarbeitung gemäß der Erfindung;
F i g. 5A eine Darstellung der ersten 5 Abstastzeilen eines typischen Bildes;
Fig.5B eine Darstellung der Bitpositionen für das sogenannte Fehlerbild, das aus der tatsächlichen Bildinformation von F i g. 5A aufgrund der Vorhersage und des Vergleichs mit der tatsächlichen Bildinformation erhalten ist;
F i g. 5C ein aus dem Fehlerbild von F i g. 5B nach der
ι ο Längencodierung erhaltenes Coderingsmuster sowie
F i g. 5D die (verdichtete) codierte Form für die ersten 5 Zeilen des auszuwertenden Bildes von F i g. 5A, wobei ein (10, 6)-Typ Zahlsystem für die Codierung zugrunde gelegt wurde.
In F i g. 1 ist ein schematisches Blockschaltbild eines Bildverarbeitungssystems dargestellt, in das die vorliegende Erfindung mit Erfolg aufgenommen werden kann. Dieses System kann zusammen mit einem Standardrechner 15, z. B. dem IBM S/370-Rechner, zusammenarbeiten, mittels dem die Speicherung der codierten alphanumerischen Information sowie der verdichteten Bildinformation durchgeführt wird Grundsätzlich weist das Bildverarbeitungssystem 11 eine Steuereinrichtung 17 auf, die über eine Druck/Abtast-Pufferstufe 23 mit einem Abtaster 19 und einem Drucker 21 gekoppelt ist. Ferner sind vorgesehen eine mit der Steuereinrichtung 17 über ein Tastatur-Puffer 27 verbundene Tastatur 25, eine weitere Pufferstufe 29, die mit dem Druck/Abtastpuffer 23 und einer eingeschalteten Anzeigevorrichtung
jo 31 in Verbindung steht, ferner ein mit der Pufferstufe 29 verbundenes Teilraster-Puffer 23 sowie ein Puffer- und Kompressions-/Dekompressionssystem 35, das zwischen das Teilrasterpuffer 33 und die Steuereinrichtung 17 eingeschaltet ist.
j) In dem dargestellten Ausführungsbeispiel enthält das Puffer- und Kompressions-/Dekompressionssystem 35 eine zwischen die Steuereinrichtung 17 und dem Teilrasterpuffer 33 eingeschaltete Quellen-Auswahlschaltung 37. Die Quellen-Auswahlschaltung 37 ist
4<i weiterhin mit dem Ausgang eines Dekompressors 39 und eines alphanumerischen Genrators 41 verbunden. Zwischen dem Teilraster-Puffer 33 und einem Paar von Puffern 43 für die komprimierte (verdichtete) Bildinfor-.mation ist ein Kompressor 42 eingeschaltet, um die digitalisierten Bildinformationsdaten vor ihrer Speicherung zu verdichten. Das Puffer- und Kompressions-/Dekompressionssystem 35 umfaßt weiterhin einen alphanumerischen Puffer 45, der zur Speicherung des Bildes in einem bestimmten Listenformat dient. Dieser besondere Puffer 45 weist vorzugsweise die Größe eines vollständigen alphanumerischen oder codierten Bildes auf. Der alphanumerische Puffer 45 ist mit seinem Ausgang an den alphanumerischen Generator 41 angeschlossen. Zusätzlich ist mit dem alphanumerischen Genrator 41 ein alphanumerisches Verzeichnis 47 verbunden, um eine Quelle von Rasterdaten bereitzustellen. Schließlich ist mit der Steuereinrichtung zur Speicherung der digitalen Daten nach ihrer Verdichtung eine Speichereinrichtung 49 gekoppelt.
Um ein Dokument in dem Bildverarbeitungssystem 11 zu speichern, werden über die Tastatur 25 in der Eingabestation (die sich aus dem Abtaster 19, der Anzeigevorrichtung 31 und der Tastatur 25 zusammensetzen kann) die Index Deskriptoren eingegeben.
fa5 Darau.'hin wird das Dokument mit der abzutastenden Oberfläche nach unten auf den Abtaster 19 aufgelegt. Das Bild wird dann elektronisch abgetastet und in die Pufferstufe 29 übertragen. Die optische Anzeige in der
Eingabestation wird direkt aus der Pufferstufe 29 wiederholt, so daß der Anwender genau erkennen kann, wie das Dokument vom System aufgenommen wurde. Wenn der Anwender mit der Positionierung und der Qualität des Bildes, wie es auf der Anzeigevorrichtung 31 erscheint, zufrieden ist, wird das Bild über den Abtaster 19 digitalisiert und es fließt ein digitaler die Bildinformation repräsentierender Datenstrom vom Abtaster durch die Pufferstufe 29 und den Teilrasterpuffer 33 zum Kompressor 4t, woe die Bildinformation verdichtet wird und im Anschluß daran unter Einfluß der Steuereinrichtung 17 auf eine Speicherplatte in der Speichervorrichtung 48 übertragen wird. Wenn nacheinander mehrere Dokumente eingegeben werden, können die verdichteten Bildinformationen in einem entsprechend größeren Massenspeicher gespeichert und vom System selbst indexiert werden. Um ein Dokument oder eine bestimmte Dokumentenmenge wieder auffinden zu können, wird über die Tastatur 25 der Anzeigestation ein entsprechender Deskriptor eingegeben. Das System setzt diese Indexbezeichnung in eine Adresse um, so daß der Zugriff zur zutreffenden Plattenkassette erfolgen und das Dokument zur Speicheranordnung 49 übertragen werden kann. Auf diese Weise kann der Anwender bei der Auswahl eines speziellen gespeicherten Bildes aus der Speichervorrichtung 49 die Sammlung durchgehen, das spezielle Bild dekomprimieren, d. h. die Datenverdichtung wieder rückgängig machen, und es zur Anzeige bringen. Während auf diese Weise eine Sammlung untersucht wird, ist es möglich, aus der Hauptsammlung die nächste Dokumentenmenge bereits zur Speichervorrichtung 49 zu übertragen, so daß diese unmittelbar anschließend zur Untersuchung bereitsteht Die angezeigte Bildinformation kann aus in codierter Form gespeicherten alphanumerischen Symbolen und aus in digitaler Form gespeicherter Bildinformation zusammengesetzt sein. Während der Bildanzeige kann der Anwender bestimmte Bereiche löschen, verschiedene Bildteile kombinieren. Linien ziehen oder über die Tastatur zusätzliche Textinformation hinzufügen. Zur Anfertigung einer Druckkopie wird das Bild von der Pufferstufe 29 zum Druckpuffer 23 überführt, so daß die Anzeigevorrichtung für die weitere Arbeit wieder frei ist. Ist bei einer anwenderseitigen Druckaufforderung der Druckpuffer 4> 23 besetzt kann das Bild zur Speichervorrichtung 49 übertragen werden, bis der Druckpuffer wieder verfügbar wird.
Zur Erläuterung der vorliegenden Erfindung, die in der Vorsehung eines neuen und verbesserten Datenverdichtungsverfahrens für Bildinformationen darstellende digitale Daten besteht wird im folgenden auf Fig.2 Bezug genommen. Der Kompressor bzw. Datenverdichter 42 enthält eine Vorhersagestufe sowie eine besondere Codierstufe (run-length encoding).
Die Vorhersagestufe
Der Datenverdichtungszyklus beginnt wenn die nächste Datenbitstelle in ein Register 51 eingelesen ist (Fig.2). Der Ausgang des Registers 51 ist mit einem w> Leitungspufferschieberegister 53 gekoppelt Der Datenstrom durch den Leitungspuffer 53 wird vom UND-Glied 55 gesteuert, dessen Eingänge von einer Schaltung 57 für den Takt A und einem mit der Vorhersagestufe gekoppelten Register 59 erhalten h5 werden. Der Leitungspuffer 53 weist eine Anzahl von Positionen entsprechend der Anzahl von Bits pro Zeile plus 2 auf. Bei dem hier beschriebenen Ausführungsbeispiel mit 1056 Bits pro Abtastzeile ergibt sich eine Anzahl von 1058 Positionen. Wie in Fig. 2 dargestellt ist, führen die Speicherpositionen 53/4, 53ß, 53C sowie 53D des Leitungspuffers 53 auf die Register 61/4, 61B, 61C bzw. 61D, die ihrerseits die Eingänge der Vorhersagelogik 63 (vgl. auch F i g. 3a) bilden.
Die Vorhersagelogik 63 ist durch die statistische Analyse der Verteilung von weißen und schwarzen Bildpunkten in einem Satz von für den jeweiligen Anwendungsbereich des Systems typischen Dokumenten bestimmt. Im nächsten Zeitzyklus errechnet die Vorhersagelogik 63 den voraussichtlichen Wert für die nächste Bitstelle P unter Berücksichtung des vom Register 61D festgehaltenen vorhergehenden Bildelementes in der momentanen Abtastzeile sowie der drei von den Registern 61A, 61B und 61C bestimmten benachbarten Bildlementen in der vorhergehenden Abtastzeile. Für das erläuterte Ausführungsbeispiel der Erfindung und für einen typischen Dokumentensatz wurde die Vorhersagelogik 63 gemäß F i g. 3a benutzt. Wie dort gezeigt ist, sind die Register 61Λ, 61S, 61 Cund 61D mit den UND-Gliedern 65, 67 und 69 verbunden, die ihrerseits mit einem ODER-Glied 71 gekoppelt sind, das an das Ausgangsregister 73 ein Ausgangssignal mit dem Erwartungswert liefert. Die Register 61/4, 61B und 61C enthalten drei benachbarten Bits aus der vorhergehenden Zeile; das Register 61D enthält das vorhergehende Bit in der gerade behandelten Zeile. Zu Beginn eines jeden Vorhersagezyklus für eine Bitstelle wird das Vorhersageregister 73 auf Null zurückgesetzt. Die UND-Glieder 65,67 und 69 führen dabei in Verbindung mit dem ODER-Glied 71 die folgende logische Verknüpfung durch:
P=B-D+Ä■D+Ä BC
Die Ausgangssignale dieser UND-Glieder werden zum ODER-Glied 71 geführt, so daß in das Register 73 eine 1 eingegeben wird, wenn eine der drei Bedingungen für eine 1 erfüllt ist. Der Wert eines Punktes P wird demnach vorhergesagt in dem die Punkte A, B, Cund D berücksichtigt werden und eine logische Zuordnungstafel für den Voraussagewert herangezogen wird. Es wurden statistische Untersuchungen von beispielhaften Datenseiten angestellt um für alle möglichen Kombinationen der Punkte A, B, C und D in Abhängigkeit von deren 0- oder 1-Wert die Bedingungen für den Wert P= 1 des vorherzusagenden Bildpunktes zu bestimmen. In der folgenden Beispielstabelle 1 ist eine solche Aufstellung angegeben, die aus einer statistischen Analyse von sechs repräsentativen technischen Zeichnungen hervorgegangen ist.
Tabelle 1 B C D Wahrscheinlicher
No. A Wert für »*«
4 2 1
8 O O O O
O O O O 1 1
1 O O 1 O O (oder 1)
2* O O 1 1 1
3 O 1 O O O
4 O 1 O 1 1
5 O 1 1 O 1
6 O 1 1 1 1
7 O O O O O
8 1 O O 1 O
9 1
Fortsetzung
β C D Wahrscheinlicher
Wert für »A'><
4 2 1
0 I 0 0
0 1 1 0
1 0 0 0
1 0 1 1 (oderO)
1 1 0 0
1 1 1 1
Für die mit * versehenen Kombinationen 2 und 13 ergab sich eine Wahrscheinlichkeit in der Nähe von 50%.
Eine graphische Darstellung der Tabelle 1 ist in Fig.3b wiedergegeben. Dabei ist für jede der 16 möglichen Kombinationen von benachbarten Bildelementen A, B, C und D die Vorhersage in Form eines schwarzen Feldes für eine binäre 1 bzw. eines weißen Feldes für eine binäre 0 angegeben.
Wie sich aus F i g. 2 ergibt, wird der vorhergesagte Wert des nächsten Bildpunktes im Register 73 im Anschluß an den Ausgang der Vorhersagelogik gespeichert. Weiterhin ist ein Register 75 mit dem tatsächlichen Wert der vom Dateneingangsregister 51 erhaltenen Dateninformation vorgesehen. Die Ausgänge der beiden Register 73 und 75 führen auf ein EXKLUSIV-ODER-Glied 77. Das EXKLUSIV-ODER-Glied 77 liefert am Ausgang eine 1, wenn ein Fehler beim Vergleich der tatsächlichen, im Register 75 gespeicherten und der vorausgesagten im Register 73 gespeicherten Dateninformation auftritt. Es liefert am Ausgang eine Null, wenn der vorausgesagte Wert zutreffend ist. Während des nächsten Zeitabschnitts wird der Ausgangswert des EXKLUSIV-ODER-Gliedes 77 weitergeleitet, wobei eine 1 über die Leitung 77a und eine 0 über die Leitung 77b ausgegeben wird.
Erscheint am Ausgang des EXKLUSIV-ODER-Gliedes eine 1, war die Vorhersage fehlerhaft und das 1-Bit wird auf das ODER-Glied 155 geführt, über das zusammen mit der Taktschaltung 155 für den Takt öder akkumulierte Inhalt der Register 78—81 in die Pufferstufe 140 übertragen wird, wie später noch im einzelnen beschrieben wird. Das Ergebnis dieses Schrittes über das EXKLUSIV-ODER-Glied 77 ist demnach ein neues Bild, in dem die 1-Bitstellen schwarze und die 0-Bitstellen weiße Bildstellen repräsentieren. Dieses Bild wird als Fehlerbild bezeichnet. Bis zu diesem Punkt (z. B. am Ausgang des EXKLUSIV-ODER-Gliedes 77) hat noch keine Datenverdichtung stattgefunden. Es ist jedoch das Fehlerbild bereits eine Transformation des ursprünglichen Bildes in eine Form, welche die anschließende Längencodierung erheblich vorteilhafter durchführen läßt
Obwohl im Rahmen dieses Ausführungsbeispiels eine spezielle Vorhersagestufe beschreiben worden ist, kann die Erfindung auch im Zusammenwirken mit anderen Typen von vollständigen und nichtlinearen Vorhersagestufen betrieben werden, welche eine bestimmte Anzahl von benachbarten Bildpunkten in der unmittelbar untersuchten oder vorhergehenden Abtastzeile zur Vorhersage des nächsten Bildpunktwertes heranziehen.
Lauflängen-Codierstufe
Gemäß einem weiteren Gesichtspunkt der vorliegenden Erfindung besorgt eine besondere Längen-Codier-
stufe (run-lenght encoder) die Codierung der Lauflängen von weißen (»0«) Stellen zwischen schwarzen (»1«) Fehlerstellen in einem (p, n)-Typ Zahlsystem mit einer Basiseinheit von Iog2 (p+ n) Bits. Ein solches System ist sowohl für Kompressions-(Datenverdichtungs-) als auch für Dekommpressionsstufen untersucht worden, wobei p= 10 und n=6 sowie eine Basiseinheit von 4 Bits gewählt wurden. Dabei bedeutet ρ die Anzahl der Ziffernstellen der niedrigsten Ordnung und η die Anzahl der Ziffernstellen der höheren und höchsten Ordnungen. Für ein solches System können die Lauflängen in 4, 8, 12 oder 16 Bit-Codegruppen codiert werden. Die am häufigsten auftretenden Längen werden in vier oder acht Bitgruppen codiert. Aus der Natur eines solchen (p, n/Typ Zahlsystems erhält man eine automatische Komma-Verfügbarkeit zur Trennung der Codegruppen mit variabler Länge, wie im folgenden näher ausgeführt wird. Ein solches Zahlsystem wird auch pseudo-hexariell genannt. Einige Beispiele von (p, n^-Typ Zahlsystemen für Lauflängencodierungen sind in den folgenden Tabellen 2,3,4 und 5 aufgeführt.
Tabelle 2
Basis-Einheit 4=000
5=256
6=512
7=768
5=000
6=135
7=270
von 3 Bits. 5=00
6=45
7=90
(9) (4, 4)-Typ
System
(3)
(15) 77773=1023 77774=404 (12) 7774=134 4=00
5=16
6=32
7=48
(6) 0=0
1 = 1
2=2
3=3
Tabelle 3 Tabelle 4 4=000
5=064
6=128
7=192
773=63 4=00
5=04
6=08
7=12
3=3
Basis-Einheit Basis-Einheit 7773=255 von 4 Bits 73=15
(15) (16) (12)
von 3 Bits (9) (5, 3)-Typ
System
(3)
(12) 5=00
6=15
7=30
(6) 0=0
1 = 1
2=2
3=3
4=4
774=44 5=00
6=05
7=10
4=4
74=14
(12, 4)-Typ System
(S) (4)
C = OOO C=OOO C = OO
Z) = 192 Z) = 048 Z) = 12
E = 384 E = 096 £" = 24
F = 576 F = 144 F = 36
FFFB=IbI FFB=19\ FB=Al
0=0
1 = 1
2=2
3=3
4=4
5=5
6=6
7=7
8=8
9=9
A = 10 B = 11
Tabelle 5
Basis-Einheit von 4 Bits
(10, 6)-Typ-System
(1010)/} = 000 A = 000 A = 00
(1011) ß = 0360 ß = 060 S = 10
(HOO)C = 0720 C = 120 C = 20
(HOl)O = 1080 D = 180 D = 30
(HlO)F. = 1440 E = 240 £ = 40
(HH)F = 1800 F = 300 F = 50
(0000)
(0001)
(0010)
(0011)
(0100)
(0101)
(0110)
(Olli)
(1000)
(1001)
O=O 1 = 1 2=2 3=3 4=4 5=5 6=6 7=7 8=8 9=9
FFF9=2159
FF9 = 359 F9 = 59
Nimmt man beispielsweise die Tabelle 2 als ein erstes Beispiel für ein (p, n)-Typ Zahlsystem zur Längencodierung, ergibt sich für dieses besondere System, daß die Ziffernstellen niedrigster Ordnung von 0 bis 3 für p=4 gezählt werden, entsprechend n=4 werden die Ziffernstellen der nächsthöheren Ordnung von 4 bis 7 gezählt und die Ziffernstellen der dazu nächsthöheren Ordnung ebenfalls von 4 bis 7 usw. Wenn die Zahl 886 codiert werden soll, ergibt sich dafür die Ziffernfolge 75752, die ihrerseits in Binärcodierungl 11101111101010 lautet. Die in den Tabellen 3 und 4 gezeigten Codierungsmöglichkeiten sind im wesentlichen ähnlich mit der vorstehend anhand vcn Tabelle 2 verdeutlichten Codierungsweise.
In F i g. 5 ist ein besonders bevorzugtes Ausführungsbeispiel der Erfindung gezeigt, bei dem p= 10 und π=6 ist. Weiterhin ist dort die Binärcodierung der Buchstaben A bis F und der Zahlen 0 bis 9 gezeigt. Ist beispielsweise die Zahl 359 anhand der Tabelle 5 zu codieren, bedeutet das 9 + 50+300. So wird zuerst der Buchstabe FaIs Codierung der Zahl 300 erhalten; dann folgt noch einmal der Buchstabe F für die zweite Spalte zur codierten Darstellung der Zahl 50; und schließlich wird die Codierung der Zahl 9 vorgenommen. Insgesamt ergibt sich in Binärdarstellung der Ausdruck
1111 1111 1001.
Ein besonderer Vorteil dieses mit p=10 und π=6 arbeitenden Längencodiersystem nach Tabelle 5 besteht in der Tatsache, daß dieses Zahlsystem leicht an das häufig benutzte Hexadezimal-System angepaßt werden kann. Ein weiterer Vorteil des (p, n)-Typ Zahlsystems zur Lauflängencodierung besteht darin, daß diese Technik nicht benutzte Codegruppen liefert, die für besondere Anwendungsfälle benutzt werden können, z. B. zur Bezeichnung einer leeren Zeile, des Zeilenendes und des Bildendes. Demzufolge sind für das (10,6) oder pseudo-hexarielle System die folgenden speziellen Codes verfügbar:
A 0 bis A 9
AA 0 bis AF9
AAA 0 bis AFF9
10 spezielle Codes
mit zwei Stellen
60 spezielle Codes
mit drei Stellen
360 spezielle Codes
mit vier Stellen
Aus der obigen Anordnung von speziellen Codes ergibt sich, daß der Buchstabe A, da er eine Null bezeichnet, dazu benutzt werden kann, einen speziellen Code für verschiedene Zahlen darzustellea Weiterhin ist festzustellen, daß die folgenden speziellen Codes bzw. Codewörter ebenfalls für das (10, 6)-Typ System zur Längencodierung, und zwar je nach den Erfordernissen eingesetzt werden können.
AO = Ende der Abtastzeile
.Al = Leere Abtastzeile oder Abtastzeile mit keinem schwarzen Bildelement (keine Fehler)
A 9 = Ende einer Seite
AA 9 = Aufheben des Seitenendes, wenn nötig, um die codierten Daten in einen einheitlichen Byte-Bereich einzugeben.
Bei der folgenden weiteren Beschreibung der Datenkompressionsschaltung nach F i g. 2 ist festzustellen, daß die vier Register 78, 79, 80 und 81 in dieser Reihenfolge in Reihe zur Leitung 776 der Vorhersage-
ir> stufe geschaltet sind, um die Lauflängenangabe für die Anzahl der fehlerfreien Vorhersagen vor dem nächsten Fehler zu speichern. Im zurückgesetzten Zustand sind die Register 78,79,80 und 81 anfänglich mit den in ihren zugeordneten Registern 7SR, 79R, SOR und 81R gezeigten Werten geladen. Wenn die Register 78-81 einen Übertrag an das Register der nächsthöheheren Ordnung abgeben, werden sie auf den jeweils in den Registern 7SR-S1R enthaltenen Wert zurückgesetzt. So wird eine 1 in das Register 78 eingegeben und eine
Übertragsleitung gepulst. Wenn dann ein Übertrag auftritt, wird eine 1 in das Register 79 eingegeben, und das Register 79Λ wird auf 1 gesetzt (um die Tatsache anzuzeigen, daß beide Register 78 und 79 gebraucht werden). In entsprechender Weise werden während
so aufeinanderfolgender Unterzyklen die Register 79, 80 und 81 auf einen Übertrag geprüft und die Register 80Λ, SiA werden nötigenfalls auf 1 gesetzt.
Von Bedeutung ist bei der Lauflängencodierung gemäß der vorliegenden Erfindung, daß ein besonderer Code dafür vorgesehen ist, daß eine gesamte 1056 Bits enthaltende Zeile für fehlerfrei befunden worden ist. Im Anschluß an jede Zählerfortschaltung werden die Inhalte der Register 78 bis 81 zu den jeweils zugeordneten logischen Schaltungen 88, 89, 90 und 91 übertragen. Die Ausgänge dieser vier logischen Schaltkreise führen auf eine logische Schaltung 100, die das Register 59 auf 0 setzt, wenn die Zählung 1056 leere Bitstellen ergibt, wodurch jegliches weitere Einlesen von Eingangsdaten unterbrochen und eine besondere Rückstellung für den Fall »Fehlerfreie Zeile« durchgeführt wird. Dadurch wird ein Zählerregister 120 gesetzt, um den komprimierten Code in den Puffer für komprimierte Daten 140 zu übertragen. Diese Pufferstufe 140 erhält das Ausgangssignal der Vorhersagestufe, das seinerseits in eine Folge von (p, n/Typ-Codierungen komprimiert ist
Beträgt der Ausgang des Registers 100 eine 1, werden die Anzeigeregister 81Λ 80/4 und 79/4 auf 0 zurückgesetzt und das Register 78 wird auf den Wert A
(1010) gestellt, indem die Inhalte der Register 78A"in das Register 78 geschoben werden.
Im Falle eines Fehlers oder des Vorliegens von 1056 fehlerfreien Vorhersagen tritt ein Übertragungszyklus für die längencodierte Stufe des in F i g. 2 dargestellten Kompressors auf. In einem solchen Fall liefert die Schaltung 151 für den Takt B Eingangssignale an das UND-Glied 153. Das UND-Glied 153 erhält «inen weiteren Eingang vom ODER-Glied 155, an das das Register 100 und die von der Vorhersagelogik führende Leitung 77a angeschlossen sind. Wenn auf das UND-Glied 153 Taktimpulse von 151 gelangen und die Leitung 77a eine binäre 1 führt oder das Register 100 eine binäre 1 enthält, beginnt das Register 120 von der
binären 100 (vier Dezimale) an herunterzuzählen, und zwar zunächst auf die binäre 011 (drei Dezimale), was im Schalter 157 der Adresse des UND-Gliedes 81C in der Gruppe entspricht. Wenn das Register 81/4 an ist, werden die Inhalte des Registers 81 durch das UND-Glied 81C zum Schalter 159 übertragen und ebenfalls zum Adreßregister 161 des Puffers 140 für die komprimierten Daten, Dann wird durch das UND-Glied 163 ein Impuls mit dem Ausgang des Registers 81A UND-mäßig verknüpft und auf den Addierer 165 zur Adressenfortschaltung des Adreßregisters 161 gegeben. Es ijt festzustellen, daß bei einer 0 im Register 81/4 während dieses Zeitzyklus nichts passiert, was der Bedingung entspricht, daß entweder die Lauflänge zu kurz war, um die Benutzung des Registers 81 zu erfordern, oder daß die Lauflänge sich über 1056 Bits erstreckte, so daß ein besonderer Code im Register 78 verwandt wird.
Beim nächsten Subtraktionszyklus des von der Taktschaltung 151 gesteuerten Zählers 120 zeigt dieser Zähler 120 eine 010, nämlich die Adresse des Registers 80. Wenn das Register 80/4 an ist, werden die Inhalte des Registers 80 zum Puffer 140 übertragen und der Adreßzähler 161 wird weitergeschaltet. Im nächsten daran anschließenden Zyklus ist die Stellung des Zählers 120 001, was der Adresse des Registers 79 entspricht, woraufhin die Inhalte des Registers 79 in den Puffer 140 für die komprimierten Daten über"" - -Jen. Im wiederum nächsten Zyklus zeigt aui Zähler 120 die Adresse 000 des Registers 79, und auch dessen Inhalte werden zum Puffer 140 übertragen. Nach jedem solchen Zyklus wird das UND-Glied 167, das mit dem Ausgang des Zählers 120 verbunden ist, geprüft, und wenn alle Nullen auftreten, wird ein Rücksetzregister 169 aktiviert, das das Zähierregister 59 auf 1 setzt, um wieder das Einlesen von Eingangsdaten zu veranlassen. Wenn das Rücksetzregister 169 an ist, werden die folgenden Register zurückgesetzt (in Fig.2 sind die entsprechenden Steuerleitungen aus Übersichtlichkeitsgründen weggelassen). Register 59 auf 1; die Register 81,80 und 79 auf 1010; Register 78 auf 0000; die Register 81 Λ, 80Λ, 79Λ auf 0, Zähler 120 auf 100 und Register 169 auf 0. Daraufhin wird im Verlaufe des Datenverdichtungsprozesses das nächste Datenbit in das Eingangsregister 51 eingelesen.
Arbeitsweise der Stufen
Zur weiteren Erläuterung der Arbeitsweise der Vorhersage- und Längencodierstufen der vorliegenden Erfindung wird nun auf die Fig.5A und 5B Bezug genommen. In Fig.5A ist das Format eines typischen Abtastbildes in digitaler Form dargestellt, auf das der Vorhersagecode von F i g. 3b angewendet werden kann. Wird dieser Vorhersagecode benutzt, ergibt sich das dabei erhaltene Fehlerbild nach Fig.5B. Es ist beispielsweise ersichtlich, daß für die Zeile 1 des tatsächlichen Bildes alle 1056 Bildpunkte Vergleichsbildpunkte A, B, C und D gleich 0 (weiß) aufweisen. Folglich ergibt sich aufgrund der Tabelle 1 und F i g. 3b ein Vorhersagewert 0. Unter der Annahme, daß die vorhergehende Zeile leer war, wurden alle Bitpositionen der Zeile 1 als 0 oder weiß vorhergesagt werden. Folglich treten in der gesamten Zeile keine Fehlerstellen auf, so daß in Fig.5b die Zeile 1 durchgehend leer ist
In der Zeile 2 des Bildes nach F i g. 5A ist in der dritten Bitposition ein schwarzer Bildpunkt Der Vorhersagecode nach F i g. 3B wendet darauf den Fall Nummer 0 an.
da die Bezugsbildpunkte A, B, C und D relativ zum vorherzubestimmenden Punkt 3 in der Zeile 2 weiß sind. Folglich wird eine 0 (weiß) vorhergesagt. Beim Vergleich mit der tatsächlichen Bildinformation in der
■"> dritten Bildstelle der Zeile 2 von F i g. 5A (schwarz) wird festgestellt, daß die Voraussage für diesen Bildpunkt fehlerhaft ist. Daher weist die dritte Bitstelle in Zeile 2 des Fehlerbilds nach F i g. 5B in dieser Position eine Schwarzstelle auf und zeigt somit einen Fehler an.
κι Betrachtet man nun die vierte Bitstelle in Zeile 2 der F i g. 5A ergibt sich, daß an dieser Bitstelle das tatsächliche Bild ebenfalls eine Schwarzstelle aufweist. Für den Vorhersagecode ergibt sich, daß A, B und C (vorhergehende Zeile) gleich 0 (weiß) sind, aber das
r> vorhergehende Bit derselben Zeile 2D gleich 1 (schwarz) ist. Auf diesen Fall findet daher der Vorhersagefall 1 nach F i g. 2b Anwendung, so daß eine
1 (schwarz) vorhergesagt wird. Ein Vergleich des tatsächlichen Bildstelleninhalts mit dem vorhergesagten
2i) Bildstelleninhalt ergibt, daß kein Fehler bei dieser Vorhersage aufgetreten ist. Das äußert sich im Fehlerbild nach F i g. 5B in einer 0 bzw. weißen Bildstelle in der Bitposition 4 der zweiten Zeile. In gleicher Weise lassen sich alle Bitpositionen des Bildes
2ri nach F i g. 5A untersuchen, so daß sich ein Fehlerbiid aufgrund der Vorhersageregeln nach F i g. 3b entsprechend F i g. 5B ergibt.
F i g. 5C zeigt eine numerische Darstellung, wie das Fehlerbild von F i g. 5B bei der Längencodierung gemäß
μ der Erfindung behandelt wird. Beispielsweise sind in Zeile 1 des Fehlerbildes alle 1056 Positionen weiß, so daß diese Codierung keinen Fehler anzeigt. In Zeile 2 der numerischen Darstellung von F i g. 5C bedeutet die erste Zahl 2 weiße Bitstellen, die (infolge des Fehlens
J5 einer folgenden 0) automatisch von einem einzelnen schwarzen Bit begrenzt werden. Durch die erste Zahl 2 sind demnach die Bitpositionen 1,2 und 3 in der zweiten Zeile des Fehlerbildes erfaßt. Die als nächste Zahl erscheinende ί stellt ein weißes Bit dar, auf das ein schwarzes Bit folgt womit die Bitpositionen 4 und 5 des Fehlerbildes berücksichtigt sind. In gleicher Weise entspricht die nächste 1 den Bitpositionen 6 und 7 des Fehlerbildes. Daran schließt sich die Zahl 4 an. Diese Zahl 4 bedeutet, daß vier weiße Bitstellen in den Bitpositionen 8 bis 11 aufeinanderfolgen und von der schwarzen Bitposition 12 abgeschlossen werden.
Die beiden auf die Zahl 4 folgenden Zahlen 2 in Zeile
2 von F i g. 5C weisen jeweils auf zwei weiße Bitpositionen hin, auf die jeweils eine schwarze Bitposition folgt Damit sind die Bitpositionen 13,14,15 bzw. 16,17,18 des Fehlerbildes berücksichtigt
Es wurde bereits ausgeführt daß jede in Fig.5C angegebene Zahl die Anzahl der (fehlerfreien oder weißen) Bitpositionen zwischen (schwarzen) Fehlerstellen angibt wobei automatisch im Anschluß an jedes Längenintervall von weißen (fehlerfreien) Bitpositionen ein schwarzes (fehlerhinweisendes) Bit folgt Da die Bitposition 19 in Zeile 2 von Fig.5B die Konstellation eines schwarzen Bits im Anschluß an ein weiteres schwarzes Bit darstellt, erscheint in F i g. 5C Zeile 2 nach den zwei aufeinanderfolgenden Zahlen 2 eine 0. Diese 0 weist darauf hin, daß neben der »automatisch« berücksichtigten Schwarzstelle am Ende eines zusammenhängenden Intervalls von weißen Bits ein zusätzliches schwarzes Bit, d. h. ein Doppelfehler, vorliegt Die nächste Zahl 3 ir. Zciie 2 von F i g. 5C bedeutet, daß drei aufeinanderfolgtiiuc Weiß-Positionen mit einem anschließenden Schwarz-Bit vorliegen, womit die Bitposi-
tionen 20, 21, 22 und 23 berücksichtigt sind. Die im Anschluß an die Zahl 3 erscheinende Zahl 1 weist wieder auf ein einziges WeiP.-Bit mit einem anschließenden Schwarz-Bit für die Bit Positionen 24 und 25 hin.
Als nächstes folgen in Zeile 2 von F i g. 5C die Ziffern 4 und 0, wodurch vier aufeinanderfolgende Weiß-Bits in den Positionen 26, 27, 28 und 29 und zwei aufeinanderfolgende Schwarz-Bits in den Positionen 30 und 31 in Zei'.e 2 des Fehlerbildes von F i g. 5B bezeichnet sind. Dann folgt die Zahl 2 als Hinweis auf 2 aufeinanderfolgende Weiß-Bits mit einem folgenden Schwarz-Bit für die Positionen 32,33 und 34.
Schließlich ist am rechten Ende der Zeile 2 von F i g. 5C die Zahl 1020 eingetragen. Dadurch werden die 1020 weißen Bitstellen für die Positionen 35 bis 1055 in Zeile 2 angedeutet, an die sich ein Schwarz-Bit in der Position 1056 anschließt.
In ähnlicher Weise, wie oben für die Lauflängen in den ersten beiden Zeilen beschrieben, werden die Laufiängenzahlen für die übrigen Zeilen 3, 4 und 5 in Fig.5C erhalten. Es ergibt sich, daß jede Zahl die Anzahl von aufeinanderfolgenden Weiß-Bits in ununterbrochener Folge mit einem zusätzlichen automatisch berücksichtigten Schwarzbit als Abschluß der Weiß-Bitfolge angibt. Wenn zwei oder mehrere Schwarzbits am Ende einer Weißbitfolge auftreten, wird eine 0 hinzugefügt, womit jedes zusätzliche folgende Schwarz-Bit nach dem automatisch berücksichtigten Schwarz-Bit erfaßt wird. Es ist weiter festzustellen, daß am Zeilenende der Zeilen 3 und 4 von F i g. 5C und am Beginn der Zeilen 4 und 5 Anmerkungen in Form eines Sternchens erscheinen. Ein solches Sternchen am Ende einer Zeile bedeutet, daß dieselbe Farbe beim Beginn der nächsten Zeile fortgesetzt wird. Diese Anmerkung ist hier nur aus Erläuterungsgründen aufgenommen, sie braucht nicht im Codierer oder Decodierer enthalten zu sein.
In Fig.5D ist das Codierformat für die Lauflängenzahlen bzw. die Intervallzahlen der Zeilen 1 bis 5 der F i g. 5C angegeben. Der zuerst erscheinende Buchstabe A weist auf eine vollkommen leere Abtastzeile hin. Etwa in der Mitte der ersten Zeile von F i g. 5D findet sich die Buchstabenkombination CFAO, womit unter der Annahme eines (p, n/Zahlsystems mit (10,6) die Codierung der Zahl 1020 ausgedrückt ist.
Im Betrieb würde die Binärcodierung der ersten Zeile mit den Lauflängenfolgen Λ-2-1-1-4-2 etc. in der Form »1010 0010 0001 0001 0100 0010« erscheinen, wobei die ersten vier Binärziffern die Codierung für eine vollkommen leere Abtastzeile bedeuten. Es ist festzustellen, daß der Verdichtungscode für separate Zeilen als zusammenhängende Folge erscheint, um den verfügbaren Speicherplatz optimal auszunutzen (vgl. F ig. 5D).
Oberlauf
Eine wichtige Eigenschaft des in der vorliegenden Erfindung benutzten (p, n^-Typ-Zahlsystems besteht darin, daß diesem System mehr Möglichkeiten innewohnen, große Mengen von Oberflußdaten zu codieren, als dies bisher der Fall war. Zum Verständnis dessen wird auf die folgende Gleichung Bezug genommen.
N = aopP+Vp1
20
J" Darin bedeuten:
N = die durch die folgenden Koeffizienten ausgedrückte Lauflänge, d. h. die Länge zusammenhängender, fehlerfrei vorhergesagter Bildstellenbereiche,·
ao = der Koeffizient des Restbetrages niederer Ordnung, nachdem alle Beträge höherer Ordnung abgezogen sind;
bo — Koeffizient der zweiten Position oder verbleibender Zählwsrt der letzten höchsten Ordnung;
b\ = Koeffizient in der dritten Stelle oder Restbetrag benachbart zur letzten höheren Ordnung;
bi = Koeffizient in der vierten Position oder Restbetrag der drittletzten höheren Reststelle;
= Koeffizient der /+ 2ten Position oder in der /-Hen von der letzten Reststelle höherer Ordnung;
ρ = Anzahl der Ziffernstellen niedrigster Ordnung;
η = Anzahl der Ziffernstellen höherer Ordnung.
Die Koeffizienten aound i/können voraussetzungsge- r> maß jede konstante Bit-Gruppenlänge darstellen und sollen eindeutig in zwei wechselseitig sich ausschließende Gruppen decodierbar sein.
Die Parameter von ρ und n(z. B. pi, n\ n2 usw.) stellen Basiswerte dar und arten zum Wert pn = K aus, wenn die Potenzen von π konstant auf dem Wert 1 bleiben.
Bei Rechnern, die schaltungsmäßig auf Datenwörter konstanter Länge basieren, besteht allgemein das Erfordernis, daß die Koeffizienten ao und f>, identische konstante Längen aufweisend, h.:
""' L = lb=\og2(p+n),
wobei die Längen L=k sowie ρ und η ganze Zahlen darstellen. In einem solchen Fall reichen die Parameter (p, n) aus, um die Codierung festzulegen.
r)0 Für einen (p, n/Code mit L = 4=4 ergibt sich.
N = α(!· 10"+V(IO1-6°)+ 6,(10'· 6') +MIO1· 62)... />,( I01 · 6') + ...
N = α» + b„ (10) + 6, (60) + b2 (360)... + b, (10 ■ 6') +
und
(10) (11) (12) (13) (14)
b, = 1010. 1011, 1100, 1101, 1110, (0) (1) (2) (3) (4)
α,, = 0000, 0001, 0010, 0011, 0100,
(15) (6) (7) (8) (9)
Uli 0, Olli, 1000, 1001
(5)
01,
Zur physikalischen Realisierung des oben abgeleiteten Zusammenhangs wird ein Binärzähler (vgl. z. B. Register 78 in F i g. 2) mit der Basis 10 benötigt, der eine Übertragsmöglichkeit zu einer Kaskade von in Reihe geschalteten Zählern (vgl. z. B. die Register 79 bis 81 in F i g. 2) aufweist, die auf der Basis 6 arbeiten. Diese letzteren Zähler benutzen die verbleibenden sechs wechselseitig sich ausschließenden verfügbaren Zustände aus den 16 möglichen Binärkombinationen der Länge 4. Obwohl solch ein Code nicht allgemein eine perfekte Anpassung liefert, approximiert er doch mit relati\ hoher Genauigkeit die optimale Wortlängenverände rung zur Codierung von Fehlerintervallen bei gleichzei tiger einfacher schaltungsmäßiger Realisierung. Eir
klassischer bekannter Code-Typ, wie z. B. der Huffman-Code, würde andererseits allgemein mehr Schaltungsaufwand zur Durchführung einer Codierung benötigen, bei der Tabellen berücksichtigt werden müssen. Schließlich ist festzustellen, daß ein erheblicher Vorteil des erfindungsgemäßen Lauflängencodierprinzips in der Tatsache besteht, daß es eine geometrisch zunehmende Überlaufkapazität lieferL
Dekompression
In Fig.4 ist als Beispiel ein in Verbindung mit der vorliegenden Erfindung einsetzbarer Dekompressor bzw. Datendehner dargestellt. Obwohl verschiedene Schaltungsteile in der Kompressor- und Dekompressorschaltung durch Umschaltung für die verschiedenen Betriebsarten gemeinsam vorgesehen werden können, ist in dem hier beschriebenen Ausführungsbeispiel jede Schaltung als separate Einheit dargestellt. Im Puffer 140 ist ein Teil der Bildinformation einer Seite in (p, n/Typ-Komprimierung enthalten. Die Taktschaltung 251 für den Takt A liefert Steuerimpulse zum Lesen der Daten aus dem Puffer 140 in die /4-Register 281 -284 und in die ß-Register291 -294.
Zuerst wird der Zähler 220 auf 0 zurückgesetzt. Dann überträgt der Schalter 259 ein halbes Byte (4 Bits) vom Puffer 140 in das Register 285 zur durch das Adreßregister 261 bestimmten Adresse. Als nächstes werden die Inhalte des Registers 285 auf Vorliegen der Bedingung (8 · 4) + (8 · 2), d. h., es muß die Negation der logischen Beziehung (8 UND 4) ODER (8 UND 2) erfüllt sein. Dadurch ist sichergestellt, daß ein Ausgangssignal 1 nur erhalten wird, wenn der Koeffizient ein a, oder ein numerischer Ausdruck ist. Wenn der Koeffizient ein numerischer Ausdruck ist, wird das Schieberegister 288 auf 1 gesetzt. Weiterhin werden die Inhalte des Registers 285 zum Register 284 übertragen. Wenn das Schieberegister 286 an ist, wird die Steuerung an das Register 288 geschaltet. Wenn der Koeffizient kein numerischer Ausdruck ist, we; den die Inhalte des Registers auf das Vorliegen des Codeworts A oder 1010 geprüft, was der Codierung für eine leere Zeile im Fehlercode entspricht. Wird das Codewort A vorgefunden, wird das Register 287 auf 1 gesetzt, welches seinerseits die Schalter 301/4 und .301B aktiviert, um die Inhalte der L-Register 280A 280ß, 280Cund 280D in die Λ-Regisler 281, 284 zu schieben. Damit wird die (p. CFDb CFIX, für 105b Bits (Zeilenlänge) in die Ä-Register übertragen.
Wenn kein numerischer oder ein 4-Koeffizicnt vorliegt, bleibt das Register 286 zur Zyklusunterbrechung auf 0 und schaltet den Zähler 220 sowie das Adreßregister 261 um eine Stelle weiter. Diese zyklusbezogene Betriebsweise bezieht sich auf das zyklische Einschreiben der Daten in die vier -4-Register jeweils in der Form eines halben Bytes. Die Verschiebe-Betriebsweise bezieht sich auf die Datenverschiebung nach rechts, um die Daten mit den in das Register 281 übertragenen numerischen Größen zu justieren. Wird ein numerischer Ausdruck vorgefunden, entsprechend der Anzeige des Endes einer Codegruppe, ist das Register 286 auf 1 gesetzt, wodurch das Register 288 den Schiebebetrieb aufnimmt, wodurch seinerseits die Schalter 30M-B aktiviert werden, um das /4-Register wieder als Schieberegister mit dem Ausgang des auf das Register 284 zurückgekoppelten Registers 281 zu verbinden.
Die y4-Registergruppe wird um vier Bitstellen verschoben und der Zähler 220 wird bis zum Oberlauf 00 fortgeschaltet Wenn der Zähler 220 00 anzeigt, wird das Kopierregister 289 auf 1 gesetzt, wodurch die Schalter 301/4 und 301 δ aktiviert werden und den Inhalt der /4-Registergruppe in die ß-Registergruppe 294—291 überträgt Nach Abschluß dieser Operation wird das Rückwärtszählregister 260 auf 1 gesetzt. Dadurch wird die Taktschaltung 251 für den Takt A abgetrennt und erlaubt so der Taktschaltung 257 für den Takt B die Abzählung der ß-Registergruppe. Im Register 290 wird eine 1 davon abgezogen. Ein Übertrag vom Register 291 wird durch das Vorliegen einer Ziffernfolge 1111 erkannt, was aus der Subtraktion einer 1 vom Ausdruck 0000 resultiert. Der Übertrag wird durch Subtraktion einer 1 vom nächsten Register 292 und durch Übertragungszurücksetzung des Registers 291 auf 1001 durchgeführt. In gleicher Weise wird das Register 292 bezüglich des Übertrages auf 1111 zurückgesetzt, wenn die Kombination 1001 vorliegt und eine 1 vom nächsten Register subtrahiert wird.
Jeweils gegen Ende eines jeden Zyklus des Taktes B wird über die logischen Schaltungen 381 —384 auf das Vorliegen von 0-Bedingungen in den angehörigen Registern aufgrund der (p, nJ-Typ-Codiening geprüft und ihre Ausgänge werden in einer UND-Verknüpfung zusammengefaßt, um das Register 206 mit der Stopinformation für den Abzählvorgang auf 1 zu setzen, wenn alle Register 0 erreicht haben. Beim Herunterzählen wird in jedem Zyklus in das Register 207 eine 0 eingegeben. Wenn das Register 206 zur Unterbrechung des Abzählvorgangs auf 1 gesetzt ist, wird ein 1 -Bit durch das UND-Glied 210 zum Register 207 übertragen. Während jedes Zyklus beim Abzählvorgang und während des daran anschließenden 1-Zyklus wird ein Schiebeimpuls über das UND-Glied 209 als Schiebeimpiils für das Schieberegister 302 übertragen. Bei jeder Verschiebeopreration des Registers 302 werden das erste Bit und die letzten drei Bits zur Vorhersagestufe 270 ausgegeben. Die Vorhersagestule gibt eine Vorhersage des nächsten Bitwertes an das Register 208 ab. Fig. 3A zeigt Einzelheiten eines solchen beispielsweisen Vorhersageschaltkreises 63. Das Fehlerbit und das vorausgesagte Bit werden miteinander in einer EX-KLUSIV-ODER-Verknüpfung ausgewertet und in ein Register eingegeben, in dem das nächste Bit gespeichert ist.
Beim Auftreten einer 1 am Ausgang des UND-Gliedes 310 wird das Register 260 auf 0 zurückgesetzt, so daß der Takt A aus der Schaltung 251 die Übertragung einer weiteren Codegruppe aus dem Puffer für die komprimierten Daten in die 4-Registergruppe steuern kann.
liier Mt S Uhill /eichmmneii

Claims (13)

22 64 09G Patentansprüche:
1. Verfahren zur Daten verdichtung von in digitaler Form bei einer Bildabtastung anfallenden Daten, bei dem mittels einer Vorhersagestufe in Abhängigkeit vom Inhalt früherer Bildstellen ein Erwartungswert für die jeweils nächste Bildstelle gebildet und aus einem Vergleich der vorhergesagten sowie der tatsächlichen Bildstelleninformation ein sogenanntes Fehlerbild abgeleitet und einer Lauflängencodierung unterzogen wird, dadurch gekennzeichnet, daß die Fehlerbilddaten derart längencodiert werden, daß die zwischen je zwei Vorhersagefehlerstellen liegenden zutreffend vorhergesagten Fehlerbildabschnitte einem auf einem (p, n}Typ Zahlsystem aufgebauten Code mit der Basiseinkeit von \d (p+n) Bits unterworfen werden, wobei ρ die Anzahl der Stellen niedrigster Ordnung, η die Anzahl der Stellen der nächsthöheren und höchsten Ordnung und 1 d den Logarithmus zur Basis 2 darstellen.
2. Verfahren nach Anspruch 1, gekennzeichnet durch die Wahl einer Basiseinheit von \d(p+n)=4 Bitstellen.
3. Verfahren nach den Ansprüchen 1 oder 2, dadurch gekennzeichnet, daß die Anzahl der Stellen niedrigster Ordnung gleich der Anzahl der Stellen höherer Ordnung gewählt ist
4. Verfahren mindestens nach Anspruch 1, jo gekennzeichnet durch die Wahl einer Basiseinheit von 3 Bitstellen.
5. Verfahren mindestens nach Anspruch 1, gekennzeichnet durch die Wah! einer Basiseinheit von 5 Bitstellen.
6. Verfahren mindestens nach Anspruch 1, dadurch gekennzeichnet, daß die Fehlerbildinformation zu Codewörtern von gegebenenfalls unterschiedlicher Wortlänge codiert einem Puffer zugeführt wird.
7. Verfahren mindestens nach Anspruch 6, gekennzeichnet durch die Wahl von p=10 und N= 6.
8. Verfahren mindestens nach Anspruch 6, gekennzeichnet durch die Wahl von P=4undA/=4. 4ri
9. Verfahren mindestens nach Anspruch 6, gekennzeichnet durch die Wahl von ρ=5 und η=3.
10. Verfahren mindestens nach Anspruch 6, gekennzeichnet durch die Wahl von p= 12 und η = 4.
11. Verfahren mindestens nach Anspruch 1 und vorzugsweise nach Anspruch 7, dadurch gekennzeichnet, daß freie Codewörter zur Bezeichnung einer leeren Abtastzeile, des Endes einer Abtastzeile sowie des Endes einer Bildseite herangezogen werden. v>
12. Verfahren mindestens nach Anspruch 1, gekennzeichnet durch eine Längencodierung vom (p, liyTyp mit einer durch eine ganze Zahl darstellbaren Basiseinheit von \d(p+n).
13. Verfahren nach Anspruch 12, dadurch gekennzeichnet, daß eine Bedeutungsvertauschung vorgenommen wird, derart, daß π die Anzahl Stellen höchster Ordnung und ρ die Anzahl Stellen aller niedrigeren Ordnungen einschließlich der niedrigsten Ordnung darstellt, wobei η als Makrokomma dienen kann.
Datenverdichtung
DE2264090A 1972-01-05 1972-12-29 Datenverdichtung Expired DE2264090C3 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US00215504A US3813485A (en) 1972-01-05 1972-01-05 System for compression of digital data

Publications (3)

Publication Number Publication Date
DE2264090A1 DE2264090A1 (de) 1973-07-19
DE2264090B2 true DE2264090B2 (de) 1981-05-27
DE2264090C3 DE2264090C3 (de) 1982-01-28

Family

ID=22803234

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2264090A Expired DE2264090C3 (de) 1972-01-05 1972-12-29 Datenverdichtung

Country Status (7)

Country Link
US (1) US3813485A (de)
JP (1) JPS5134249B2 (de)
CA (1) CA990393A (de)
DE (1) DE2264090C3 (de)
FR (1) FR2170667A5 (de)
GB (1) GB1396900A (de)
IT (1) IT971582B (de)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4100580A (en) * 1973-06-01 1978-07-11 U.S. Philips Corporation Facsimile system
US3980809A (en) * 1973-07-16 1976-09-14 International Business Machines Corporation Encoding logic for reduced bandwidth pictorial data transmission system
US3925780A (en) * 1973-12-26 1975-12-09 Ibm Apparatus for data compression encoding and decoding
DE2440768C3 (de) * 1974-08-26 1982-03-18 Philips Patentverwaltung Gmbh, 2000 Hamburg Verfahren und Vorrichtung zur Datenkompression für die Faksimile-Übertragung graphischer Information
JPS587109B2 (ja) * 1974-09-09 1983-02-08 ケイディディ株式会社 フアクシミリシンゴウ ノ ジヨウホウヘンカガソアドレスフゴウカホウシキ
US4077034A (en) * 1974-11-04 1978-02-28 Dell Harold R Data compression
US4005411A (en) * 1974-12-30 1977-01-25 International Business Machines Corporation Compression of gray scale imagery to less than one bit per picture element
CA1085044A (en) * 1975-04-03 1980-09-02 Yukihiko Iijima Composite feedback predictive code communication system for a color tv signal including a carrier chrominance signal
US4028731A (en) * 1975-09-29 1977-06-07 International Business Machines Corporation Apparatus for compression coding using cross-array correlation between two-dimensional matrices derived from two-valued digital images
JPS5816665B2 (ja) * 1975-10-30 1983-04-01 ケイディディ株式会社 フアクシミリシンゴウノフゴウカホウシキ
JPS5255313A (en) * 1975-10-30 1977-05-06 Kokusai Denshin Denwa Co Ltd Facsimile signal coding system
US4053946A (en) * 1975-11-24 1977-10-11 Hughes Aircraft Company Modular programmable digital scan converter
JPS52124824A (en) * 1976-04-12 1977-10-20 Mitsubishi Electric Corp Great capacity picture file
US4199722A (en) * 1976-06-30 1980-04-22 Israel Paz Tri-state delta modulator
JPS5816667B2 (ja) * 1976-07-21 1983-04-01 ケイディディ株式会社 フアクシミリ信号のインタ−ライン符号化方式
US4168513A (en) * 1977-09-12 1979-09-18 Xerox Corporation Regenerative decoding of binary data using minimum redundancy codes
JPS6031301B2 (ja) * 1977-12-02 1985-07-22 株式会社日立製作所 画像情報サ−ビスシステム
US4213154A (en) * 1978-08-03 1980-07-15 Mitsubishi Denki Kabushiki Kaisha Facsimile communication system
JPS5543670A (en) * 1978-09-22 1980-03-27 Toshiba Corp Information memory retrieving device
GB2030823B (en) * 1978-10-02 1982-11-03 Ibm Image data manipulation apparatus
JPS5778591A (en) * 1980-11-05 1982-05-17 Tokyo Shibaura Electric Co Image information memory searcher
US4562423A (en) * 1981-10-15 1985-12-31 Codex Corporation Data compression
US4560976A (en) * 1981-10-15 1985-12-24 Codex Corporation Data compression
US4580134A (en) * 1982-11-16 1986-04-01 Real Time Design, Inc. Color video system using data compression and decompression
US4590606A (en) * 1982-12-13 1986-05-20 International Business Machines Corporation Multi-function image processing system
US4578704A (en) * 1983-06-20 1986-03-25 At&T Bell Laboratories Image coding technique
JPS60251775A (ja) * 1984-05-28 1985-12-12 Ricoh Co Ltd デ−タ転送方式
US4613948A (en) * 1984-06-01 1986-09-23 Bell Communications Research, Inc. Conditional quantization grey level and color image coding apparatus
EP0357388B1 (de) * 1988-08-30 1997-10-22 Canon Kabushiki Kaisha Bildcodierungsverfahren
US5136396A (en) * 1988-08-30 1992-08-04 Canon Kabushiki Kaisha Image encoding method
JPH03226051A (ja) * 1990-01-31 1991-10-07 Fujitsu Ltd 変復調器の速度通知方式
CA2125788A1 (en) * 1991-12-13 1993-06-24 Eric Charles Peters Buffer and frame indexing
US5355450A (en) 1992-04-10 1994-10-11 Avid Technology, Inc. Media composer with adjustable source material compression
WO1993012613A1 (en) * 1991-12-13 1993-06-24 Avid Technology, Inc. Quantization table adjustment
US5563920A (en) * 1993-02-17 1996-10-08 Zenith Electronics Corporation Method of processing variable size blocks of data by storing numbers representing size of data blocks in a fifo
US5509088A (en) * 1993-12-06 1996-04-16 Xerox Corporation Method for converting CCITT compressed data using a balanced tree
US5991340A (en) * 1996-06-25 1999-11-23 Seiko Epson Corporation Method and system for encoding and decoding data using run prediction
US6055273A (en) * 1996-09-02 2000-04-25 Seiko Epson Corporation Data encoding and decoding method and device of a multiple-valued information source
US7076109B2 (en) * 2002-03-28 2006-07-11 International Business Machines Corporation System and method of automatically determining the dominant periodicity in sequential binary data
GB2451436B (en) * 2007-07-27 2012-09-19 Hewlett Packard Development Co An encoder and decoder and methods of encoding and decoding sequence information
EP2618309A1 (de) 2012-01-19 2013-07-24 Siemens Aktiengesellschaft Verfahren und Vorrichtungen zur Pixelvorhersage für die Kompression visueller Daten

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2732424A (en) * 1956-01-24 oliver
US2905756A (en) * 1956-11-30 1959-09-22 Bell Telephone Labor Inc Method and apparatus for reducing television bandwidth
DE1162398B (de) * 1961-10-24 1964-02-06 Ibm Verdichter fuer Daten, die aus Bits verschiedener Wertigkeit bestehen
US3185824A (en) * 1961-10-24 1965-05-25 Ibm Adaptive data compactor
US3483317A (en) * 1966-06-10 1969-12-09 Xerox Corp Selective encoding technique for band-width reduction in graphic communication systems
US3643019A (en) * 1970-04-22 1972-02-15 Rca Corp Variable length coding method and apparatus

Also Published As

Publication number Publication date
US3813485A (en) 1974-05-28
IT971582B (it) 1974-05-10
GB1396900A (en) 1975-06-11
CA990393A (en) 1976-06-01
JPS5134249B2 (de) 1976-09-25
DE2264090A1 (de) 1973-07-19
FR2170667A5 (de) 1973-09-14
JPS4880262A (de) 1973-10-27
DE2264090C3 (de) 1982-01-28

Similar Documents

Publication Publication Date Title
DE2264090C3 (de) Datenverdichtung
DE2513862C2 (de) Vorrichtung zum Decodieren von Codes minimaler Redundanz und variabler Länge
DE2725395C3 (de) Einrichtung zur Echtzeittransformation von m in Zeilen angeordneten Wörtern der Bitlänge n in n in Spalten angeordneten Wörter der Bitlänge n
DE3587107T2 (de) Drehungsverfahren und -geraet fuer binaere bilder.
DE3852341T2 (de) Zeichenverarbeitungssystem mit Funktion zur Prüfung von Rechtschreibung.
DE2706080C2 (de) Verfahren zur adaptiven Quantisierung von Transformationskoeffizienten eines Bildes und Anordnung zum Durchführen des Verfahrens
DE2457732A1 (de) Verfahren und anordnung zur codierung und decodierung von information
DE2652459C2 (de) Umsetzvorrichtung für Binärsignale variabler Länge
DE2139731A1 (de) Anordnung und Verfahren zur Code Um Setzung mit einem Assoziativ Speicher
DE1296182C2 (de) Verfahren zur uebertragung binaerer informationssignale sowie kodierer zur abgabe solcher signale und mit diesem betreibbarer dekodierer
DD256221A5 (de) Verfahren zum uebertragen von aktualisierungsinformation eines video-standbildes
DE2735319A1 (de) Schaltungsanordnung zur zusammenhaengenden codierung von zeichen und zur zeichendecodierung der ursprungszeichen
DE2208664A1 (de) Verfahren zur Decodierung eines vorsatzfreien Verdichtungscodes veränderlicher Länge
DE3485824T2 (de) Verfahren zur datenkompression.
DE2340230A1 (de) Verfahren und vorrichtung zur vorhersage des signalpegelwertes eines nachrichtenelementes
DE2805294C2 (de) Codierende Übertragungsanlage für Faksimile-Signale
DE1964570B2 (de) Verfahren zum wiederauffinden gespeicherter informationen
DE2340250C2 (de) Verfahren und Vorrichtung zur redundanzreduzierenden Codierung eines aus Blöcken zu je N Bits bestehenden Nachrichtenstromes
DE2618731A1 (de) Verfahren zur automatischen isolierung von in einem bild enthaltenen figuren und vorrichtung zur durchfuehrung des verfahrens
DE3854490T2 (de) Dynamische Bestimmung von Multi-Mode-Kodierung für Datenkomprimierung.
DE2423817A1 (de) Verfahren und schaltungsanordnungen zur codierung zweidimensionaler bildinformationen
DE2500055C2 (de) Faksimile-uebertragungssystem
DE2900586C2 (de) Anordnung zum Decodieren von Codewörtern variabler Länge
DE3406624A1 (de) Datendecodiereinrichtung
DE69210274T2 (de) Verfahren und Vorrichtung zur Kodierung von digitalen Bilddaten

Legal Events

Date Code Title Description
OD Request for examination
C3 Grant after two publication steps (3rd publication)
8339 Ceased/non-payment of the annual fee