DE3732045C2 - - Google Patents

Info

Publication number
DE3732045C2
DE3732045C2 DE19873732045 DE3732045A DE3732045C2 DE 3732045 C2 DE3732045 C2 DE 3732045C2 DE 19873732045 DE19873732045 DE 19873732045 DE 3732045 A DE3732045 A DE 3732045A DE 3732045 C2 DE3732045 C2 DE 3732045C2
Authority
DE
Germany
Prior art keywords
characters
data
binary
code words
predicted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE19873732045
Other languages
English (en)
Other versions
DE3732045A1 (de
Inventor
Yngve Oslo No Solberg
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.)
Tandberg Data AS
Original Assignee
Tandberg Data AS
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 Tandberg Data AS filed Critical Tandberg Data AS
Priority to DE19873732045 priority Critical patent/DE3732045A1/de
Publication of DE3732045A1 publication Critical patent/DE3732045A1/de
Application granted granted Critical
Publication of DE3732045C2 publication Critical patent/DE3732045C2/de
Granted legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/004Predictors, e.g. intraframe, interframe coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

Die Erfindung bezieht sich auf ein Verfahren zum Komprimieren und Dekomprimieren von Daten gemäß dem Oberbegriff des Patentanspruchs 1. Insbesondere bezieht sie sich auf ein Verfahren zum Komprimieren und Dekomprimieren von Daten, die in einem Speicher gespeichert werden oder die über einen Datenübertragungskanal übertragen werden.
Es ist allgemein bekannt, daß bei einer Speicherung oder einer Übertragung von Daten die Speicherkapazität eines vorgegebenen Speichermediums bzw. die Übertragungskapazität eines vorgegebenen Datenübertragungskanals praktisch begrenzt ist. Wenn ein Datenverarbeitungssystem an oder in der Nähe dieser Grenze arbeitet, wird der Wunsch nach einem Verfahren zum Komprimieren der Daten auftreten, der diese Grenze wirksam hinausschiebt, so daß mehr Daten in dem Speicher gespeichert werden können bzw. über den Übertragungskanal übertragen werden können. Bei einem derartigen Verfahren erfolgt die Komprimierung der Daten auf der Aufzeichnungsseite bzw. Sendeseite und die Dekomprimierung der Daten auf der Wiedergabeseite bzw. der Empfangsseite. Die Verfahren zur Komprimierung bzw. Dekomprimierung der Daten sollten reversibel sein, so daß es auf einfache Weise möglich ist, auf der Empfangsseite die auf der Sendeseite komprimierten Daten wiederzugewinnen. Zweckmäßigerweise sollte das Verfahren so allgemein ausgebildet sein, daß keine besonderen Eigenschaften der Daten vor der Komprimierung berücksichtigt werden müssen, mit der Ausnahme, daß die Daten redundante Informationen enthalten müssen, so daß sie überhaupt komprimierbar sind. Daten, die keine oder nur wenig Redundanz aufweisen, werden eine negative Komprimierung zur Folge haben, d. h. die sich ergebenden Daten werden umfangreicher sein.
Es sind grundsätzlich drei Komprimierungsverfahren bekannt, die teilweise in großem Umfang benutzt werden: Die Lauflängencodierung, die Huffmancodierung und die Anfangs-Ende-Schlüsselkomprimierung.
Bei der Lauflängencodierung werden wiederholt auftretende Zeichenfolgen durch kürzere Codewörter ersetzt, beispielsweise durch eine Folge aus drei Zeichen, nämlich einem Steuerzeichen, einem Zeichen, das wiederholt wird und einem Datenwort, das die Anzahl der Wiederholungen anzeigt.
Bei der Huffmancodierung wird zunächst eine Analyse der Daten durchgeführt, um die Häufigkeit der verschiedenen Wörter festzustellen. Die häufigsten Wörter werden dann durch die kürzesten Codewörter dargestellt.
Schließlich werden bei der Anfangs-Ende-Schlüsselkomprimierung wiederholt auftretende Zeichenfolgen am Anfang einer Aufzeichnung durch Zählwerte ersetzt, die die Anzahl der Zeichen angeben, die von dem vorhergehenden Aufzeichnungsvorgang verwendet werden können. Dieses Verfahren ist insbesondere geeignet für Daten, die eine große Anzahl von mehrfach auftretenden Wörtern haben.
Insbesondere für Lauflängencodierung geeignet ist ein Digital­ datenkompressor, der in DE 31 23 757 A1 beschrieben ist und darauf ausgerichtet ist, Digitaldaten unter Verwendung einer Vorhersagevorrichtung zu komprimieren und der sich insbesondere für die Verarbeitung von Texten wie auch Halbtonbildern eignet. Die Vorhersagevorrichtung wird dazu eingesetzt, um die Daten­ kompression bei der Datencodierung zu erhöhen. Dazu beobachtet die Vorhersagevorrichtung vorausgegangene Bitstellen einer momentan abgetasteten Dokumentenzeile sowie die unmittelbar benachbarten Bitstellen in ein bis zwei vorausgegangenen Zeilen. Daraus wird abgeleitet, welcher Bitwert für die augenblickliche Bitstelle erwartet wird. Der vorhergesagte Wert wird mit dem tatsächlichen Wert der augenblicklichen Bitstelle verglichen, bei Übereinstimmung beider Werte gibt die Vorhersagevorrichtung eine "0", andernfalls eine "1" ab. Es wird auch ein Zwei-Stu­ fen-Verfahren beschrieben, das die parallele Vorhersage mehrerer Bits ermöglicht. Eine Schaltungsanordnung zur Durchführung des Verfahrens umfaßt einen Puffer zum Speichern der Daten der vorhergehenden Zeile und der augenblicklichen Zeile, zwei Register zum Halten oder Speichern der Vorhersagedatenmuster für die vorhergehende und die augenblickliche Zeile sowie zwei pro­ grammierbare Festwertspeicher zum Durchführen einer Zwei-Stu­ fen-Vorhersage.
Aus DE 35 23 247 A1 ist weiterhin eine Einrichtung zur Datenreduktion binärer Datenströme bei stark unterschiedlichen Symbol­ wahrscheinlichkeiten bekannt. Diese Einrichtung weist einen in den Datenweg eingefügten Coder zur Codierung der Abstände des weniger häufig auftretenden Symbols auf, in dem ein Abstand in eine Anzahl Codewörter umgesetzt wird, wobei die Zahl der Codewörter pro Abstand gegebenenfalls variabel sein kann. Weiterhin ist vorgesehen, daß von den acht zu einem Byte zusammengefaßten Bits des seriellen Datenstromes sieben Bitstellen für die binäre Codierung des Abstandes verwendet werden und das achte Bit die Information für ein gegebenenfalls erforderliches weiteres Byte zur Codierung des Abstandes enthält.
Diese bekannten Verfahren arbeiten für die besonderen Arten von Daten sehr gut. Für eine allgemeine Verwendung haben sie den Nachteil, daß sie eine kleine Komprimierbarkeit, eine kleine Verarbeitungsgeschwindigkeit oder beides aufweisen. Insbesondere muß bei der Huffmancodierung die Frequenzanalyse vor der Komprimierung durchgeführt werden und die Huffmancodierung ist damit nicht geeignet für eine Realzeitkomprimierung/Dekomprimierung.
Der Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren zum Erhöhen der Speicherdichte in einem Speicher bzw. der Über­ tragungskapazität eines Übertragungskanals anzugeben, das allgemein verwendet werden kann und nur darauf beruht, daß Redundanz in den Daten vorhanden ist und kein vorausgehendes Wissen oder keine Analyse der Art der zu komprimierenden Daten erfordert.
Erfindungsgemäß wird die Aufgabe bei dem Verfahren der eingangs genannten Art durch die im kennzeichnenden Teil des Patentanspruchs 1 angegebenen Merkmale gelöst.
Das Verfahren gemäß der Erfindung hat den Vorteil, daß es sehr schnell durchführbar ist und eine Realzeitverarbeitung bei der Komprimierung der Daten mit hoher Geschwindigkeit ermöglicht.
Vorteilhafte Ausgestaltungen des Verfahrens sind in den Patentansprüchen 2 bis 15 angegeben.
Das Verfahren gemäß der Erfindung wird im folgenden anhand einer Anordnung zur Durchführung des Verfahrens näher erläutert. Es zeigt
Fig. 1 ein Blockschaltbild eines Aufzeichnungs- oder Übertragungskanals,
Fig. 2 ein Blockschaltbild einer Komprimierungsstufe und
Fig. 3 ein Blockschaltbild einer Dekomprimierungsstufe.
Bei dem in Fig. 1 dargestellten Blockschaltbild eines Aufzeichnungs- oder Übertragungskanals werden auf der Sendeseite zu übertragende oder aufzuzeichnende Daten D von einer Datenquelle DS abgegeben und einer Komprimierstufe C zugeführt, die diese Daten in komprimierte Daten umsetzt und als Codewörter CW an einen Kanal K abgibt, der als Übertragungs- oder als Aufzeichnungskanal ausgebildet ist. Auf der Empfangsseite werden die übertragenen Daten einer Dekomprimierstufe DC zugeführt, die aus den komprimierten Daten die ursprünglichen Daten D wieder zurückgewinnt und diese an einer Ausgabeeinheit T abgibt.
Weitere Einzelheiten bei der Komprimierung werden im folgenden in Zusammenhang mit der Fig. 2 beschrieben und weitere Einzelheiten der Dekomprimierung der Daten werden anschließend in Zusammenhang mit der Fig. 3 beschrieben.
Die von der Datenquelle DS zugeführten Daten werden in der in Fig. 2 dargestellten Komprimierstufe C einem Schieberegister SR 1, einem Vergleicher C 0 und einem RAM-Speicher S 1 zugeführt. In dem Schieberegister SR 1 sind jeweils N Bits speicherbar und diese N Bits dienen als Adresse für den Speicher S 1. In dem Speicher S 1 ist für jede Kombination der N Bits ein vorherzusagender Binärwert gespeichert und diese Binärwerte können beliebige Anfangswerte oder bestimmte vorgegebene Anfangswerte darstellen. Beispielsweise wird angenommen, daß alle diese Binärwerte 0 sind. Falls beispielsweise in dem Schieberegister SR 1 N = 3 Bits gespeichert werden, die die Binärwerte 001 aufweisen, sagt der Speicher S 1 als nächstes auftretendes Datenzeichen PD 1 ein Datenzeichen mit dem Binärwert 0 voraus. Falls das nächste Datenzeichen D tatsächlich den Binärwert 0 aufweist, stellt der Vergleicher C 0 die Gleichheit zwischen dem Datenzeichen D und dem vorhergesagten Datenzeichen PD fest. Über ein UND-Gatter G 1 wird ein von einer zentralen Einheit CU 1 abgegebener Taktimpuls T 1 als Taktimpuls T 2 an einen Zähler CNT abgegeben, der diesen um eine Zähleinheit, beispielsweise von 0 auf 1 erhöht.
Danach sind im Schieberegister SR 1 beispielsweise die Datenzeichen 010 gespeichert und der Speicher S 1 sagt wiederum den Binärwert 0 als Datenzeichen PD 1 voraus. Der Vergleicher C 0 gibt damit erneut ein Vergleichssignal C 1 mit dem Binärwert 0 ab, da tatsächlich beispielsweise ein Datenzeichen 1 folgen soll und sperrt das UND-Gatter G 1. Die zentrale Einheit CU 1erkennt durch das Signal C 1, daß der Vergleich negativ war und übernimmt den Zählwert 1 aus dem Zähler CNT durch ein Signal S 3 in das Register R 1. Anschließend wird der Zähler CNT durch ein Signal S 4 von der zentralen Einheit CU 1 zurückgesetzt. Da der Vergleich negativ war, gibt die zentrale Einheit CU 1 ein Steuersignal S 5 an den Speicher S 1 ab und das richtige Datenzeichen D mit dem Binärwert 1 wird unter der Adresse 010 eingespeichert, so daß bei einem erneuten Auftreten der Folge von Binärzeichen 010 der Binärwert 1 vorhergesagt werden würde.
Der nun im Register R 1 gespeicherte Zählwert wird anschließend codiert und als Codewort CW an den Übertragungs- oder Aufzeichnungskanal K abgegeben. Einzelheiten der Codierungen werden unten beschrieben.
Danach sagt der Speicher S 1 aufgrund der Binärzeichen 101 wieder einen Binärwert 0 als Datenzeichen PD 1 voraus. Dies stimmt mit dem tatsächlich folgenden Binärwert 0 des Datenzeichens D überein, so daß der Zähler CNT seinen Zählwert von 0 auf 1 erhöht. Danach wird aufgrund der im Schieberegister SR 1 gespeicherten Binärzeichen 010 nun nicht mehr der Binärwert 0, sondern der Binärwert 1 vorhergesagt, da der Eintrag in dem Speicher S 1 geändert wurde. Auch dieser Binärwert des vorhergesagten Datenzeichens PD 1 stimmt mit dem tatsächlichen Binärwert des Datenzeichens D überein, so daß der Zählwert des Zählers CNT auf 2 erhöht wird.
Anschließend wird aufgrund der im Schieberegister SR 1 gespeicherten Binärzeichen 101 als Datenzeichen PD 1 wieder der Binärwert 0 vorhergesagt und der Vergleicher C 0 stellt die Nichtübereinstimmung fest, so daß erneut durch ein Signal S 3 der Zählwert des Zählers CNT in das Register R 1 übernommen wird und der Zähler CNT anschließend durch das Signal S 4 zurückgesetzt wird. Anschließend wird dieser neue Zählwert 2 als Codewort CW übertragen. Danach treten beispielsweise wieder zwei Übereinstimmungen der vorhergesagten und der tatsächlichen Datenzeichen PD 1 bzw. D auf und anschließend stimmt beispielsweise wiederum das vorhergesagte Datenzeichen PD 1 nicht mit dem tatsächlichen Datenzeichen D überein und der Zählwert 2 wird erneut als Codewort CW übertragen. Danach sollen beispielsweise die vorhergesagten Datenzeichen PD 1 siebenmal mit den tatsächlichen Datenzeichen D übereinstimmen, so daß anschließend der Zählwert 7 in das Register R 1 übernommen wird.
Im folgenden wird eine vorteilhafte Art der Codierung der im Register R 1 gespeicherten Zählwerte beschrieben.
Wie bereits erwähnt, sind in dem Register R 1 die Zählwerte des Zählers CNT aufeinanderfolgend gespeichert, die angeben, wie oft eine korrekte Vorhersage getroffen wurde. Die Codierung dieser Zählwerte sollte mit einer minimalen Anzahl von Binärzeichen erfolgen. Die optimale Anzahl von Binärzeichen, die verwendet werden kann, um eine vorgegebene Zahl darzustellen, entspricht dem Logarithmus der Zahl mit der Basis 2. Damit erfordert die Zahl 6 beispielsweise drei Bits (110), während die Zahl 19 fünf Bits (10011) usw. erfordert. Wenn jedoch eine Kompression dieser Daten durchgeführt werden soll, besteht keine Möglichkeit, zu erkennen, wie viele Binärzeichen zu einem vorgegebenen Zählwert gehören, so daß diese Art der Darstellung nicht brauchbar ist. Andererseits stellt die Verwendung einer vorgegebenen Anzahl von Binärzeichen für die Darstellung eines Zählwertes einen zu hohen Verbrauch an Binärzeichen dar, da die vorgegebene Anzahl der Binärzeichen groß genug sein muß, um den größten erwarteten Zählwert darzustellen und diese große Anzahl muß auch benutzt werden, um kleine Zählwerte darzustellen.
Bei einem bevorzugten Codierungsschema bei dem Verfahren gemäß der vorliegenden Erfindung wird dieses Problem dadurch gelöst, daß der Zählwert durch Codewörter CW dargestellt wird. Ein anfängliches Codewort CW hat eine vorgegebene Größe und weitere Codewörter CW, die ebenfalls eine vorgegebene Größe aufweisen, werden hinzugefügt, wenn sie benötigt werden, um größere Zählwerte darzustellen. Bei der Dekomprimierung beginnt der Decodierprozeß mit einem Codewort CW derselben vorgegebenen Größe und aus charakteristischen Merkmalen dieses Codewortes CW kann erkannt werden, ob zusätzliche Codewörter CW erforderlich sind. Ein derartiges Merkmal kann typischerweise darin bestehen, daß dieses Codewort CW ausschließlich Binärzeichen 1 enthält. Die Größe des zusätzlichen Codewortes CW kann typischerweise eine Funktion der Größe des vorangehenden Codeworts CW sein, d. h. der vorangehenden Größe +1.
Die Ausgangsgröße des ersten Codeworts CW kann typischerweise eine feste Zahl sein. Diese Größe des ersten Codeworts CW kann danach eine andere bekannte Zahl sein, typischerweise die optimale Zahl des vorangehenden Zählwerts, wie er oben definiert wurde. Weiterhin kann die Anfangsgröße in besonderen Fällen die optimale Größe des dem vorangehenden Zählwert vorhergehenden Zählwerts sein.
Die Binärzeichen in jedem Codewort CW definieren eine Zahl und der Zählwert wird durch die Summe dieser Zahlen dargestellt.
Falls beispielsweise der vorangehende Zählwert 5 war und der laufende Zählwert 11 ist, ist die optimale Anzahl von Binärzeichen für den vorangegangenen Zählwert drei Binärzeichen (101) und wird beispielsweise als Anfangsgröße auch für den laufenden Zählwert 11 benutzt. Da die Zahl 11 nicht durch drei Binärzeichen ausgedrückt werden kann, ist ein zusätzliches Codewort CW erforderlich. Dies wird für die Dekomprimierung dadurch mitgeteilt, daß in dem ersten Codewort CW alle Codezeichen den Binärwert 1 aufweisen. Drei Binärzeichen 1 stellen die Zahl 7 dar, so daß das zusätzliche Codewort CW (11-7) = 4 darstellen muß. Weiterhin kann die Größe des zusätzlichen Codeworts CW typischerweise um ein Binärzeichen größer sein als das vorangehende Codewort CW, d. h. sie wird vier Binärzeichen aufweisen. Damit werden die Codewörter, die den Zählwert 11 darstellen, aus zwei Codewörtern CW 1111 und 0100 gebildet. Ein Zählwert von 39 würde in entsprechender Weise aus drei Codewörtern zusammengesetzt werden, nämlich 1111 1111 und 10001 (7 + 15 + 17). In beiden Fällen würde das Codewort 1111 nicht die Zahl 7 darstellen, da 1111 verwendet wird, um anzugeben, daß ein weiteres Codewort CW folgt. Für die Darstellung der Zahl 7 wären zwei Codewörter CW erforderlich, nämlich 1111 und 0000.
Eine Beschreibung der Codierung erfolgt nun im Zusammenhang mit der Fig. 2.
Zunächst muß die Zahl 1 übertragen werden, da zuerst das Datenzeichen PD und nur dieses richtig vorhergesagt wurde. Die Zahl 1 ist durch die Codezeichen 01 im Register R 1 gespeichert und wird durch Signale RS einer arithmetischen und logischen Einheit ALU 1 zugeführt. Es wird angenommen, daß jedes erste Codewort CW nicht, wie oben angegeben, drei, sondern nur zwei Binärzeichen aufweist. Diese zwei Binärzeichen sind in einem Register R 2 gespeichert. Die arithmetische und logische Einheit ALU 1 stellt nun fest, daß die Zahl 1 durch die beiden Binärzeichen codierbar ist, indem sie die Differenz zwischen den in den Registern R 1 und R 2 gespeicherten Zahlen bildet. Damit können als Signale S 6 die Binärwerte der beiden im Register R 1 gespeicherten Binärzeichen über einen durch die zentrale Einheit CU 1 gesteuerten Selektor SE als Codewörter CW abgegeben werden. Anschließend steuert die zentrale Einheit CU 1, wie bereits beschrieben, die Kompression der weiteren Daten und codiert in ähnlicher Weise die beiden Zählwerte 2 und überträgt diese über den Selektor SE.
Wenn festgestellt wird, daß sieben aufeinanderfolgende Datenzeichen richtig vorhergesagt wurden, ist die Differenz zwischen den Inhalten der Register R 1 und R 2 0 oder positiv, so daß mindestens ein weiteres Codewort CW erforderlich ist. Daher werden in ein Register R 3 so viele Binärzeichen mit dem Binärwert 1 eingespeichert, wie im Register R 2 angegeben ist und als Signale S 7 über den Selektor SE als erstes Codewort CW abgegeben. Anschließend wird der Inhalt des Registers R 2 um ein Binärzeichen erhöht, da das nachfolgende Codewort CW ein Binärzeichen mehr enthalten soll. Im vorliegenden Fall verbleibt noch der Binärwert 4, der mit dem nächsten Codewort CW durch die Binärzeichen 1000 codiert wird und über das Register R 1 als Signal S 6 über den Datenselektor SE ausgegeben wird. Falls das Codewort CW nicht ausgereicht hätte, hätten wieder alle Binärzeichen den Binärwert 1 angenommen und es wäre ein weiteres Codewort CW mit einer noch größeren Anzahl von Binärzeichen hinzugekommen. Dieser Vorgang wird solange wiederholt, bis das letzte Codewort CW mindestens ein von 1 verschiedenes Binärzeichen enthält.
Es wäre auch möglich, in Abänderung des oben beschriebenen Vorgangs in einem Register R 4 die Größe des jeweils vorangehenden Codeworts CW zu speichern, bevor die Größe des Codeworts CW im Register R 2 verändert wird.
Der Dekomprimierungsvorgang wird nun im folgenden in Zusammenhang mit Fig. 3 beschrieben. Die Dekomprimierung ist die Umkehrung der Komprimierung und enthält zwei Phasen, nämlich eine Decodierungsphase und eine Vorhersagephase. Die Parameter beim Dekomprimierungsvorgang müssen denjenigen beim Komprimierungsvorgang entsprechen. Die Codewörter CW, die zur Empfangsseite übertragen werden, werden durch codierte Zählwerte von erfolgreichen Vorhersagen dargestellt, wie es oben beschrieben wurde. Die erste Aufgabe beim Dekomprimierungsvorgang besteht darin, die Codewörter CW zu decodieren, um diese Zählwerte wieder zu gewinnen. Die Ausgangsgröße des ersten Codeworts CW ist in einem Register R 5 gespeichert. Folglich wird eine entsprechende Anzahl von Binärzeichen der Codewörter CW in ein Register R 6 eingespeichert. Die Einspeicherung und auch die übrige Zeitsteuerung erfolgt durch eine zentrale Einheit CU 2. Durch eine arithmetische und logische Einheit ALU 2 wird geprüft, ob die im Register R 2 gespeicherten Binärzeichen alle den Binärwert 1 aufweisen, um festzustellen, ob noch weitere Codewörter CW zu dem Zählwert gehören. Die Binärzeichen in dem Register R 6 werden zu einem weiteren Register R 7 übertragen, das den endgültigen Zählwert enthält, falls nicht alle Binärzeichen den Binärwert 1 aufweisen. Falls jedoch alle Binärzeichen den Binärwert 1 aufweisen und damit angezeigt wird, daß ein zusätzliches Codewort CW zu dem Zählwert hinzugehört, wird der Inhalt des Registers R 5 um ein Binärzeichen erhöht und eine entsprechend größere Anzahl von Binärzeichen des Codeworts CW wird in das Register R 6 eingespeichert. Die Anzahl, die durch diese Binärzeichen dargestellt wird, wird dann zu der im Register R 7 gespeicherten Zahl hinzuaddiert, um den endgültigen Zählwert zu erhalten. Wenn nicht alle Binärzeichen im Register R 6 den Binärwert 1 aufweisen, stellt die im Register R 7 gespeicherte Zahl den endgültigen Zählwert dar. Andernfalls muß der Vorgang mit einer vergrößerten Anzahl von Binärzeichen für das nächste Codewort CW solange fortgesetzt werden, bis nicht alle Binärzeichen im Register R 6 den Binärwert 1 aufweisen.
Der im Register R 7 endgültig gespeicherte Zählwert gibt die Anzahl der erfolgreichen Vorhersagen an, die erwartet werden können, wenn auf der Empfangsseite die Datenzeichen D in derselben Weise vorhergesagt werden, wie auf der Sendeseite.
Die Binärzeichen, die als Basis für die Vorhersage der nächsten Datenzeichen verwendet werden, werden in einem Schieberegister SR 2 gespeichert, das dem Schieberegister SR 1 auf der Sendeseite entspricht. Dieses Schieberegister SR 2 speichert ebenfalls N Binärzeichen und speichert anfänglich beispielsweise lauter Binärzeichen mit dem Binärwert 0. Diese Binärzeichen werden wieder als Adresse eines RAM-Speichers S 2 verwendet, der dem RAM- Speicher S 1 entspricht. Als Ausgangswerte sind in dem Speicher S 2 unter den verschiedenen Adressen beispielsweise jeweils die Binärwerte 0 gespeichert. In jedem Fall müssen es dieselben Ausgangswerte wie im Speicher S 1 sein. Die vorhergesagten Daten PD 2 werden einem Antivalenzglied A zugeführt, das als gesteuerter Inverter dient und an seinem Ausgang die zurückgewonnenen Daten D abgibt. Wenn ein Datenzeichen richtig vorhergesagt wurde, wird es unverändert durch das Antivalenzglied A durchgeschaltet und dem Schieberegister SR 2 für die nächste Vorhersage zugeführt. Dies erfolgt solange, wie die Anzahl im Register R 7 angibt. Mit jeder richtigen Vorhersage wird der Inhalt des Registers R 7 um 1 vermindert. Wenn der Inhalt des Registers R 7 0 ist, wird das nächste vorhergesagte Datenzeichen PD 2 invertiert und als Datenzeichen D ausgegeben und auch in das Schieberegister SR 2 eingespeichert. Außerdem wird das invertierte vorhergesagte Datenzeichen PD 2 an die entsprechende Stelle im Speicher S 2 eingespeichert. Das im Schieberegister SR 2 gespeicherte invertierte vorhergesagte Datenzeichen PD 2 wird dann für die nächste Vorhersage verwendet. Anschließend werden wieder so viele vorhergesagte Datenzeichen PD 2 unverändert als Datenzeichen D abgegeben, wie es im Register R 7 angegeben ist.
Sowohl auf der Sendeseite als auf der Empfangsseite müssen dieselben Vorhersagealgorithmen verwendet werden. Eine andere Möglichkeit der Vorhersage besteht beispielsweise darin, daß in den Speichern SP 1 und SP 2 jeweils zwei Zahlen in Verbindung mit einem vorhergesagten Binärzeichen gespeichert sind. Die zwei Zahlen, die ursprünglich 0 sind, können einen Zählwert darstellen, der angibt, wie oft sich herausgestellt hat, daß das nächste Binärzeichen der Daten D 0 bzw. 1 ist in Verbindung mit der zu verarbeitenden Folge von Binärzeichen. Das vorhergesagte Binärzeichen würde dann als der Wert ausgewählt werden, der den höchsten Zählwert hat. Eine weitere Möglichkeit besteht darin, daß eine Anzahl die Differenz zwischen den beiden Zählwerten darstellen könnte und die andere Anzahl könnte denjenigen Binärwert darstellen, der den höchsten Zählwert aufweist. Wenn es sich herausgestellt hat, daß das nächste Binärzeichen identisch der zweiten Zahl ist, würde die erste Zahl erhöht werden und im anderen Fall vermindert werden. Wenn die erste Anzahl negativ wird, würde sich der Wert der zweiten Anzahl invertieren. Das vorhergesagte Bit würde natürlich dann die zweite Anzahl sein. Schließlich besteht eine weitere Möglichkeit darin, daß nur eine einzige Zahl verwendet wird, die ein vorhergesagtes Binärzeichen 0 darstellt, wenn sie positiv ist und 1, wenn sie negativ ist und die Anzahl erhöht wird, wenn sich herausgestellt hat, daß das nächste Binärzeichen eine 0 ist und andernfalls vermindert wird.
Der zuletzt dargestellte Algorithmus würde ein vorhergesagtes Bit darstellen, das ein statistisches Auftreten von Bitmustern berücksichtigt. Die Anzahl der statistischen Proben könnten dadurch beschränkt werden, daß die entsprechenden Zählwerte beschränkt werden. Diese Anzahl bildet einen anderen Parameter der Erfindung. Der Algorithmus, der im Zusammenhang mit den Fig. 2 und 3 beschrieben wurde, kann als ein Spezialfall betrachtet werden, bei dem die Anzahl der Proben 1 ist.

Claims (15)

1. Verfahren zum Komprimieren und Dekomprimieren von Daten, bei dem die Daten auf der Sendeseite komprimiert und dazu auf eine vorgegebene Anzahl von Datenzeichen (D) folgende Datenzeichen (D) jeweils vorhergesagt werden, über einen Übertragungs- oder Aufzeichnungskanal übertragen werden und auf der Empfangsseite dekomprimiert werden, dadurch gekennzeichnet, daß die jeweilige Anzahl der jeweils richtig vorhergesagten Datenzeichen (PD 1) als Codewörter (CW) übertragen bzw. aufgezeichnet wird und daß auf der Empfangsseite aus der Anzahl der jeweils richtig vorhergesagten Datenzeichen (PD 1) die ursprünglichen Datenzeichen (D) wieder zurückgewonnen werden.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die jeweilige Anzahl der richtig vorhergesagten Datenzeichen (D) durch Codewörter (CW) codiert wird, wobei ein erstes Codewort (CW) eine vorgegebene minimale Anzahl von Binärzeichen aufweist und gegebenenfalls weitere Codewörter (CW) mit einer vorgegebenen Anzahl von Binärzeichen hinzugefügt werden, wobei dann die den zusätzlichen Codewörtern (CW) jeweils vorangehenden Codewörter (CW) Binärzeichen mit vorgegebenen Binärwerten enthalten.
3. Verfahren nach Anspruch 1 oder Anspruch 2, dadurch gekennzeichnet, daß die Vorhersage der Datenzeichen (PD 1, PD 2) unter Verwendung eines Speichers (S 1, S 2) erfolgt, indem jeweils einer vorgegebenen Anzahl von Datenzeichen (D) ein vorhergesagtes Datenzeichen (PD 1, PD 2) zugeordnet wird.
4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß in dem Speicher (S 1, S 2) Anfangswerte gespeichert sind, deren Binärwerte aufgrund von zuvor aufgetretenen Folgen von Datenzeichen (D) festgelegt werden.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß die Anfangswerte der vorhergesagten Datenzeichen (PD 1, PD 2) willkürliche Binärzeichen sind.
6. Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß alle Anfangswerte der vorherzusagenden Datenzeichen (PD 1, PD 2) gleich sind.
7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß jeweils eine vorgegebene Anzahl von Datenzeichen (D) als Adresse dem Speicher (S 1, S 2) zugeführt wird.
8. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß auf der Sendeseite die vorhergesagten Datenzeichen (PD 1) mit den tatsächlichen Datenzeichen (D) verglichen werden, daß bei Übereinstimmung ein Zählwert in einem Zähler (CNT) erhöht wird und daß bei Nichtübereinstimmung der Zählwert gespeichert wird, der Zähler (CNT) zurückgesetzt wird und ein richtiges Datenzeichen (D) in den Speicher (S 1) eingespeichert wird.
9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß der Zählwert geprüft wird, ob er durch eine vorgegebene Anzahl von Binärzeichen in einem Codewort (CW) codierbar ist, daß, falls dies der Fall ist, ein entsprechendes Codewort (CW) ausgegeben wird und daß andernfalls solange weitere Codewörter (CW) hinzugefügt werden, bis der Zählwert durch die Summe der Codewörter (CW) codiert werden kann, wobei die jeweils vorangehenden Codewörter (CW) vorgegebene Binärzeichen enthalten.
10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, daß die Anzahl der Binärzeichen in dem Codewort (CW) und den weiteren Codewörtern (CW) konstant ist.
11. Verfahren nach Anspruch 9, dadurch gekennzeichnet, daß die Anzahl der Binärzeichen in den weiteren Codewörtern (CW) größer ist als diejenige des ersten Codeworts (CW).
12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, daß die Anzahl der Binärzeichen in den weiteren Codewörtern (CW) jeweils um 1 größer ist.
13. Verfahren nach Anspruch 11, dadurch gekennzeichnet, daß die Anzahl der Binärzeichen in den weiteren Codewörtern (CW) jeweils um 2 größer ist.
14. Verfahren nach einem der Ansprüche 1 bis 13, dadurch gekennzeichnet, daß auf der Empfangsseite aus einem Speicher (S 2) solange vorhergesagte Datenzeichen (PD 2) ausgelesen werden, wie es der durch die Codewörter (CW) codierte Zählwert angibt und daß anschließend jeweils ein vorhergesagtes Datenzeichen (PD 2) korrigiert ausgegeben und im Speicher (S 2) korrigiert wird.
15. Verfahren nach einem der Ansprüche 1 bis 13, dadurch gekennzeichnet, daß die Sendeseite Einrichtungen (DS) zur Aufzeichnung von Daten, der Aufzeichnungskanal (K) ein magnetisches Aufzeichnungsmedium und die Empfangsseite eine Wiedergabeeinrichtung (T) für magnetisch aufgezeichnete Daten darstellt.
DE19873732045 1987-09-23 1987-09-23 Verfahren zum komprimieren und dekomprimieren von daten Granted DE3732045A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19873732045 DE3732045A1 (de) 1987-09-23 1987-09-23 Verfahren zum komprimieren und dekomprimieren von daten

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19873732045 DE3732045A1 (de) 1987-09-23 1987-09-23 Verfahren zum komprimieren und dekomprimieren von daten

Publications (2)

Publication Number Publication Date
DE3732045A1 DE3732045A1 (de) 1989-04-06
DE3732045C2 true DE3732045C2 (de) 1991-11-07

Family

ID=6336686

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19873732045 Granted DE3732045A1 (de) 1987-09-23 1987-09-23 Verfahren zum komprimieren und dekomprimieren von daten

Country Status (1)

Country Link
DE (1) DE3732045A1 (de)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5728476A (en) * 1980-06-20 1982-02-16 Xerox Corp Method of predicting input bit and forming output bit
DE3523247A1 (de) * 1985-06-28 1987-01-02 Siemens Ag Einrichtung zur datenreduktion binaerer datenstroeme

Also Published As

Publication number Publication date
DE3732045A1 (de) 1989-04-06

Similar Documents

Publication Publication Date Title
DE69925774T2 (de) Arithmetisches Kodierung- Dekodierung- sowie Warscheinlichkeitsschätzungsverfahren
DE19506164C2 (de) Verfahren zum Komprimieren eingegebener Symbole in Codeworte
DE69726661T2 (de) Verfahren und vorrichtung zur kodierung eines digitalen informationssignales
EP0260748B1 (de) Verfahren und Schaltungsanordung zur Bitratenreduktion
DE2264090C3 (de) Datenverdichtung
DE69024629T2 (de) Vorrichtung zur kompression von datenlängen und datenfolgen
DE68926876T2 (de) Vorrichtung zur Vektorquantisierung von Bildern
DE2652459C2 (de) Umsetzvorrichtung für Binärsignale variabler Länge
DE1296182C2 (de) Verfahren zur uebertragung binaerer informationssignale sowie kodierer zur abgabe solcher signale und mit diesem betreibbarer dekodierer
EP2068448B1 (de) Verfahren und Anordnung zur arithmetischen Enkodierung und Dekodierung mit Verwendung mehrerer Tabellen
DE69527883T2 (de) Decodierung eines Huffman Codes mit MSB und LSB Tabellen
DE2227148B2 (de) Schaltungsanordnung zur Umsetzung digitaler Daten
DE69413512T2 (de) Vorrichtung zur Dekodierung von Kodes mit veränderlicher Länge
DE69125424T2 (de) Vorrichtung zur variablen Längenkodierung und Vorrichtung zur variablen Längendekodierung
DE2805294C2 (de) Codierende Übertragungsanlage für Faksimile-Signale
DE2340230A1 (de) Verfahren und vorrichtung zur vorhersage des signalpegelwertes eines nachrichtenelementes
DE68923012T2 (de) Kodierungs- und Dekodierungsverfahren variabler Länge, Kodierungs- und Dekodierungsvorrichtung zur Ausführung dieses Verfahrens.
DE2500055C2 (de) Faksimile-uebertragungssystem
DE3854490T2 (de) Dynamische Bestimmung von Multi-Mode-Kodierung für Datenkomprimierung.
DE69319506T2 (de) Verfahren und Gerät zum Kodieren und Dekodieren digitaler Bilddaten
DE69607063T2 (de) Verfahren und System zur Kompression und Dekompression von digitalen Bildsignalen
DE3732045C2 (de)
EP0427884B1 (de) Verfahren und Anordnung zum Komprimieren und Dekomprimieren von Daten
DE2253378B2 (de) Verfahren und Anordnung zur Codierung von Faksimilesignalen
DE2127516A1 (de) Verfahren zur Übertragung binärcodierter Signale von Bildvorlagen oder Schriftvorlagen

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee