DE3485824T2 - Verfahren zur datenkompression. - Google Patents
Verfahren zur datenkompression.Info
- Publication number
- DE3485824T2 DE3485824T2 DE19843485824 DE3485824T DE3485824T2 DE 3485824 T2 DE3485824 T2 DE 3485824T2 DE 19843485824 DE19843485824 DE 19843485824 DE 3485824 T DE3485824 T DE 3485824T DE 3485824 T2 DE3485824 T2 DE 3485824T2
- Authority
- DE
- Germany
- Prior art keywords
- string
- dictionary
- data stream
- chain
- strings
- 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
Links
- 238000000034 method Methods 0.000 title claims description 36
- 238000013144 data compression Methods 0.000 title description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 238000003066 decision tree Methods 0.000 description 7
- 230000006835 compression Effects 0.000 description 6
- 238000007906 compression Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 208000001613 Gambling Diseases 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3088—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/005—Statistical coding, e.g. Huffman, run length 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)
- Character Discrimination (AREA)
Description
- Die Erfindung betrifft ein Verfahren zur Datenkompression und hierbei insbesondere ein Verfahren zur Kompression von Daten zwecks Übertragung und Speicherung.
- Im Stand der Technik gibt es viele Verfahren zur Datenkompression. Im folgenden sind den Stand der Technik repräsentierende Verfahren aufgezeigt.
- Ein Artikel mit dem Titel "Compression of Individual Sequences via Variable Rate Coding" von Ziv und Lempel, der in der IEEE Transactions on Information Theorie IT-24, Seiten 530-536 veröffentlicht wurde, offenbart einen Basisalgorithmus, der durch die gegenwärtige Erfindung verbessert wurde. Die Struktur, die Wirkungsweise, die Vorteile und die Nachteile des Lempel-Ziv Verfahrens werden ausführlicher in der Beschreibung einer bevorzugten, erfindungsgemäßen Ausführungsform diskutiert. Die hierin offenbarte und beanspruchte Erfindung wird durch den oben diskutierten Stand der Technik weder gelehrt noch nahegelegt.
- Daher liegt der Erfindung die Aufgabe zugrunde, Daten zur Speicherung oder Übertragung durch ein Verfahren zu komprimieren, welches eine Zeichenerweiterungs-Verbesserung, eine Zeichenfolge-Erweiterungs-Verbesserung und eine LRU-Algorithmus-Verbesserung enthält, um die Speichereffektivität zu vergrößern, um die Übertragungseffektivität zu vergrößern und um die Leitungsgebühren in Datenfernübertragungssystemen zu reduzieren.
- Eine andere Aufgabe der Erfindung ist es, Daten zur Speicherung oder zur Übertragung durch ein Verfahren zu komprimieren, welches die folgenden Schritte enthält: Initialisierung einer Gruppe von Zeichenfolgen bestehend aus n-Folgen; Bestimmung einer längsten Zeichenfolge S aus dem Satz, welche mit einer gegenwärtigen Zeichenfolge übereinstimmt; Erzeugung einer Identifizierung I für S; Übertragung von I zu einer Benutzungseinrichtung; überprüfen des Wörterbuches auf leere Schlitze; Löschung einer LRU-Zeichenfolge (am längsten nicht benutzt) in dem Wörterbuch, um einen leeren Schlitz zu erzeugen, falls kein leerer Schlitz gefunden wird; Zuordnung eines Schlitz-Identifizierers j zu dem leeren Schlitz, der durch die obigen Schritte der Überprüfung und Löschung gefunden oder geschaffen wurde; Hinzufügung einer neuen Zeichenfolge S' zu dem Satz, wobei S' eine Verknüpfung einer vorhergehenden angepaßten Zeichenfolge und der gegenwärtigen angepaßten Zeichenfolge enthält; Zuweisung eines Identifizieres k zur Zeichenfolge S'; Voranschiebung der Eingabeposition zu einem nächsten Zeichen in dem Strom; Ausgabe eines Identifizieres m, um eine Übereinstimmung anzuzeigen; und Wiederholung der obigen Schritte für eine nächste Zeichenfolge.
- Es ist eine weitere Aufgabe der gegenwärtigen Erfindung, die Datenübertragung zwischen einem Hauptrechner und einem oder mehreren fernen Datenstationen durch das oben beschriebene Verfahren zu steuern.
- Somit enthält ein erfindungsgemäßes Datenkompressions-Verfahren und ein erfindungsgemäßes Datenfernübertragungs-Steuerungsverfahren für Datenstationen die folgenden Schritte: Initialisierung eines Satzes von Zeichenfolgen bestehend aus n-Folgen; Bestimmung einer längsten Zeichenfolge S aus dem Satz, welche mit einer gegenwärtigen Zeichenfolge übereinstimmt; Erzeugung eines Identifizieres I für S; Übertragung I zu einer Benutzungseinrichtung; Überprüfung des Wörterbuches auf einen leeren Schlitz; Löschung einer LRU-Zeichenfolge (am längsten nicht benutzt) aus dem Wörterbuch, um einen leeren Schlitz zu schaffen, falls kein leerer Schlitz gefunden wurde; Zuordnung eines Schlitz-Identifizieres j zu dem leeren Schlitz, der durch die obigen Schritte der Überprüfung und Löschung gefunden oder geschaffen wurde; Hinzufügung einer neuen Zeichenfolge S' zu dem Satz, wobei S' eine Verknüpfung einer vorhergehenden angepaßten Zeichenfolge und der gegenwärtigen angepaßten Zeichenfolge enthält; Zuordnung eines Identifizieres k zur Zeichenfolge S'; Voranschiebung der Eingabeposition zu einem nächsten Zeichen in dem Strom; Ausgabe eines Identifizierers m, um eine Übereinstimmung anzuzeigen; und Wiederholung der obigen Schritte für eine nächste Zeichenfolge.
- Diese und andere Aufgaben, Merkmale und Vorteile der Erfindung werden durch die detaillierte Beschreibung einer bevorzugten, erf indungsgemäßen Ausführungsform sichtbar, wie sie in der anhängenden Zeichnung dargestellt ist.
- Fig. 1 ist ein Flußdiagramm eines Verfahrens zur Datenkompression gemäß dem Stand der Technik.
- Fig. 2 ist ein Flußdiagramm eines erfindungsgemäßen Datenkompressionsverfahrens mit allen seinen Komponenten.
- Fig. 3 ist ein Flußdiagramm einer ersten Komponente eines erfindungsgemäßen Datenkompressionsverfahrens.
- Fig. 4 ist ein Flußdiagramm einer zweiten Komponente eines erfindungsgemäßen Datenkompressionsverfahrens.
- Fig. 5 ist ein Flußdiagramm einer dritten Komponente eines erfindungsgemäßen Datenkompressionsverfahrens.
- In der Zeichnung sind vergleichbare Elemente mit ähnlichen Bezugszeichen versehen und identische Elemente in verschiedenen Ausführungsformen sind mit identischen Bezugszeichen versehen.
- Lempel und Ziv (LZ) schlagen zwei verwandte Verfahren zur Datenkompression vor, welche im Gegensatz zu den eher traditionellen auf Wahrscheinlichkeit basierenden Lösungswegen, auf der Theorie der komplexen Algorithmen basiert. Das zweite, einfachere Verfahren kann jederzeit und effektiv implementiert werden und erzeugt eine zufriedenstellende Kompression bei den meisten Daten. Jedoch hat dieses Verfahren einige Mängel, die durch die gegenwärtige Erfindung behoben werden. In der folgenden Diskussion wird der Ausdruck "Verschlüsseler" für das Kompressionsprogramm verwendet und der Ausdruck "Entschlüsseler" wird für die inverse Vorgehensweise verwendet. Der LZ-Algorithmus ist in Fig. 1 gezeigt.
- Der Algorithmus ist lernfähig. Somit kann er für eine Vielzahl von unterschiedlichen Dateitypen eingesetzt werden und weist dennoch eine akzeptable Leistung auf.
- Es kann als ein allgemeines Modell für die Kompression eingesetzt werden. Beide, der Verschlüsseler und der Entschlüsseler, enthalten ein Wörterbuch von Zeichenfolgen, und an jedem Punkt wechseln diese Wörterbücher in Sperrschritte, so daß keine Bits zur Übertragung des Wörterbuches benötigt werden. Dies ist möglich, weil die Zeichenfolgen nur zu dem Wörterbuch addiert werden, nachdem der Entschlüsseler sie gesehen haben würde und es verwendet die exakt gleiche Strategie für das Hinzufügen zum Wörterbuch wie der Verschlüsseler.
- LZ registriert wahrscheinliche Ereignisse und verschwendet keinen Platz mit Informationen über unwahrscheinliche Ereignisse. Wenn man einen Huffmann-Code haben möchte, um alle Zeichenpaare zu komprimieren, dann würde man 64k Informationsteile benötigen. Und man würde lediglich Informationen über die Diagrammfrequenz haben (Ein n-Gram ist eine Zeichenfolge von n Zeichen). Wenn ein 100-Gram gegeben ist, was sehr viel üblicher als ein einzelner Buchstabe ist, dann wird das System mit dem obigen Verfahren das 100-Gram zuerst "lernen".
- Es kann sehr wohl wichtiger sein, die Information zu speichern, daß Zeichenfolgen von 80 Leerstellen (Zeilen) bei einigen gegebenen Frequenzen öfter auftreten als der Buchstabe "z". Zeilen von Leerstellen werden wichtiger sein als der Buchstabe "z", wenn sie häufiger auftreten und genau das ist Fall, wenn LZ Informationen über sie speichert.
- Das es eine gute Repräsentation für das Wörterbuch gibt, ist ein weiteres Merkmal. Es ist möglich, eine feste Anzahl von Bits für jede Wörterbucheintragung zu halten, unabhängig davon, wie lang die Zeichenfolge der durch die Wörterbucheintragung repräsentierten Zeichen ist.
- Das erste Problem mit dem obigen Verfahren ist, daß ein Teil der Ausgabe aus unverdichteten Symbolen der Eingabe besteht. Während dieses asymptotisch nur geringe Auswirkungen hat, ist es von überragender Bedeutung für praktische Daten. Wenn z. B. eine Datei durch den obigen Algorithmus in 20.000 Folgen aufgeteilt ist, dann wird mehr als ein Drittel der Ausgabe aus unverdichteten Zeichen bestehen.
- Die hier vorgeschlagene Lösung vermeidet die Übertragung jeglicher unverdichteter Daten. Die gesamte Ausgabe besteht aus einer Folge von Identifizierungsnummern. Die Erfindung wird mit Bezug auf die Fig. 2, 3, 4 und 5 beschrieben.
- Zunächst wird das erfindungsgemäße Verfahren mit Bezug auf Fig. 2 beschrieben.
- Anstatt einer Initialisierung des Wörterbuches mit einer leeren Zeichenfolge initialisiert der erste, erfindungsgemäße Schritt das Wörterbuch für alle Zeichenfolge der Länge 1. Daher wird eine Übereinstimmung immer gefunden. Das Wörterbuch muß durch Hinzufügung der mit dem ersten Zeichen der nachfolgenden, übereinstimmenden Zeichenfolge verknüpften Zeichenfolge S vergrößert werden. Diese neue Zeichenfolge wird hinzugefügt, nachdem die nächste Übereinstimmung gefunden wurde.
- Weil das erste Zeichen einer Zeichenfolge immer bekannt ist, wird in Schritt 2 als nächstes die längste Zeichenfolge S in dem Wörterbuch gefunden, welche mit der aktuellen Zeichenfolge im Datenfluß hinter den Cursor übereinstimmt.
- Eine weitere Annahme, die von Lempel und Ziv gemacht wurde, ist daß das Wörterbuch bis auf eine unbegrenzte Größe wachsen kann. Dies ist eindeutig nicht praktikabel. Das von Lempel und Ziv vorgeschlagene Verfahren sieht vor, die Eingabe in derart kleine Blöcke zu unterteilen, daß ihre Wörterbücher gerade eben den verfügbaren Raum auffüllen, um dann jeden Block einzeln zu komprimieren.
- Es ist jedoch vorteilhafter, die einzelnen Zeichenfolgen in dem Wörterbuch zu ersetzen. Schritt 3 des erfindungsgemäßen Verfahrens sortiert die Zeichenfolgen aus, welche in irgendeiner Weise am längsten nicht benutzt wurden (vgl. Fig. 4). Eine Zeichenfolge wird definiert als "benutzt", wenn sie angepaßt wurde oder wenn sie ein Vorsatzcode einer Übereinstimmung ist. Die andere Definition weist jeder Zeichenfolge in dem Wörterbuch eine Bezugszahl zu. Die Bezugszahl einer Zeichenfolge S ist die Anzahl der Zeichenfolgen eines Wörterverzeichnisses, welche die Form S//T oder T?/S haben, für einige T (S//S wird zweimal gezählt). Unter den Zeichenfolgen mit der Bezugszahl 0 ist diejenige, deren Bezugszahl am längsten 0 gewesen ist die "am längsten nicht benutzte".
- In gewisser Weise sollte das Wörterbuch mit den natürlichen Einheiten der zu komprimierenden Datei gefüllt werden. In Englisch bedeutet dieses, daß die meisten Eintragungen in das Wörterbuch Wörter oder gar Sätze sein würden. Jedoch muß das Verfahren zur Bildung größerer Einheiten Übergänge durchlaufen, welche keine Einheiten sind. So kann es vorkommen, daß eine Einheit sich aus einem Wort plus der ersten Hälfte eines anderen Wortes zusammensetzt. Es ist weniger wahrscheinlich, den letzten Teil eines Wortes in dem Wörterbuch zu haben, als das gesamte Wort selbst. Darüber hinaus können in dem Wörterbuch gespeicherte Teile von Wörtern dieses größer machen als es sein sollte. Wenn z. B. Dreiviertel des Wörterbuches Zeichenfolgen aufweist, welche niemals oder selten benutzt werden, dann werden zwei zusätzliche Bits bei der Übertragung von jedem Bit verwendet, damit auf diese nutzlosen Eintragungen Bezug genommen werden kann. Außerdem dauert es eine lange Zeit, um lange Zeichenfolgen anzupassen. Alle diese Probleme können durch Hinzufügung von Eintragungen in das Wörterbuch eliminiert oder verbessert werden, welche eine Verknüpfung von zwei Übereinstimmungen sind, anstelle der Verknüpfung der ersten Übereinstimmung mit dem ersten Zeichen der zweiten Übereinstimmung.
- Durch die Kombination der drei Konstanten wird ein leistungsfähiger Verschlüsseler geschaffen, dessen Ausführungsform als nächstes diskutiert wird.
- Die wesentlichen Schwierigkeiten bei der Erzielung einer praktikablen Implementierung sind das Auffinden einer guten Datenstruktur für das Wörterbuch der Zeichenfolgen. Diese Struktur sollte klein sein, um ein schnelles Suchen zu ermöglichen.
- Als erstes wird eine Datenstruktur beschrieben, welche für alle Verschlüsselungen ausreichend ist und den zuletzt präsentierten Schlüssel speichert. Die Größe all dieser Strukturen ist proportional zur Anzahl der Zeichenfolgen in dem Wörterbuch und ist nicht abhängig von der Größe der Zeichenfolgen.
- In den ersten Verschlüsselungen sind alle Zeichenfolgen S des Wörterbuches entweder ein Zeichen länger als ein Vorsatzcode P von S, wobei P in dem Wörterbuch ist oder S ein Zeichen lang ist. Dabei ähnelt das Wörterbuch einem Baum. Die Wurzel des Baumes ist eine leere Zeichenfolge. Jeder Knotenpunkt (außer für die Wurzel) ist das Kind des Knotens, der die Zeichenfolge repräsentiert, wobei der Knoten nach dem zuletzt weggelassenen Symbol benannt wird. In dem Verschlüsselungsalgorithmus wird durch Erkennung eines Vorsatzcodes und anschließendes Herausfinden, ob er ein Kind hat, welches mit dem nächsten Zeichen übereinstimmt, die Erkennung erreicht. Sei n ein Knoten mit Eltern P, und C sei das letzte Zeichen einer mit n korrespondierenden Zeichenfolge (das Zeichen, welches nicht in der zu P korrespondierenden Zeichenfolge ist). Eine Hash-Tabelle kann durch eine von einer Vielzahl von Hash-Funktionen implementiert und durch das Paar (P, C) indexiert werden, wobei n zurückgegeben wird, wenn es solch ein Kind gibt. Derartige Hash-Tabellen sind aus "Universal Classes of Hash-Functions" von J. Lawrence Carter und Mark N. Wegmann, Journal of Computer and System Sciences Band 18, Nr. 2, April 1979, Seiten 143-154, bekannt. Hash-Techniken sind dem Durchschnittsfachmann gut bekannt und müssen somit hierin nicht näher beschrieben werden. Bei einem gegebenen Knoten kann man schnell feststellen, ob es eine längere Übereinstimmung gibt. Der Entschlüsselungsalgorithmus arbeitet ähnlich, jedoch reicht anstelle einer Hash-Tabelle ein einfacher Zeiger von n auf P aus.
- Die am längsten nicht benutzte Verschlüsselung birgt kleine Probleme. Das einzige erwähnenswerte ist, daß in dem Wörterbuch keine Löcher gelassen werden können. Somit kann die Zeichenfolge "abc" nicht in dem Wörterbuch verbleiben, wenn die Zeichenfolge "ab" herausgeworfen worden ist. Die einfachste Strategie ist es, nur Zeichenfolgen auf der LRU (am längsten nicht benutzt) Liste zu plazieren, wenn es Blätter von dem Baum gibt. Somit wird eine neue Zeichenfolge oder eine Zeichenfolge, deren Kinder gelöscht worden sind, ein Löschungskandidat.
- Das Verfahren zur Verknüpfung von Zeichenfolgen ist komplizierter. Zwei Datenstrukturen müssen erhalten bleiben. Eine Struktur wird der Entscheidungsbaum genannt und wird zum schnellen Auffinden von Übereinstimmungskandidaten verwendet. Diese Struktur ähnelt dem obigen Wörterbuch und ist vergleichbar mit einem Vorsatzcodebaum. Die andere Datenstruktur wird das Waldpaar genannt und erlaubt es, jemand zwischen den Kandidaten zu wählen. Das Waldpaar stellt knapp alle Zeichenfolgen dar. Ein Knoten ist entweder ein Zeichen oder zwei Zeiger zu anderen Knoten. Somit kann die Verknüpfung von zwei Zeichenfolgen in dem Wörterbuch durch einen Knoten dargestellt werden, welcher auf beide zeigt. Alle Knoten in dem Wald sind in einem Feld angeordnet, dessen I-Element auf die I-te Zeichenfolge in dem Wörterbuch zeigt.
- Der Entscheidungsbaum hat die Eigenschaft, daß die Eltern P eines Knoten n mit einem durch n dargestellten Vorsatzcode einer Zeichenfolge korrespondiert. Dieser Vorsatzcode kann jedoch mehr als ein Zeichen kleiner sein. Darüberhinaus müssen nicht alle Knoten in dem Baum notwendigerweise einer Zeichenfolge in dem Wörterbuch entsprechen; sie können auch Vorsatzcodes von Zeichenfolgen in dem Wörterbuch sein.
- Alle Zeichenfolgen in dem Wörterbuch, die keine Vorsatzcodes anderer Zeichenfolgen in dem Wörterbuch sind, entsprechen Blättern des Entscheidungsbaumes. Alle anderen Zeichenfolgen des Wörterbuches sind als interne Knoten ebenfalls in dem Baum angeordnet. Wenn S der Vorsatzcode von zwei oder mehreren Zeichenfolgen des Wörterbuches ist, S: sub./1/und S: sub./2/, und S die längste dieser Zeichenfolgen ist, dann ist ein mit S korrespondierender Knoten H in dem Baum, selbst wenn S nicht in dem Wörterbuch ist. Wenn wir S nicht effizient speichern können, dann speichern wir mit n einen Zeiger zu entweder S: sub./1/ oder S: sub./2/ in dem Waldpaar. Mit dieser Information ist es möglich, S wieder zu erzeugen.
- Mit jedem Knoten ist die Länge der Zeichenfolge gespeichert, die mit ihr übereinstimmt. Eine oben beschriebene Hash-Tabelle erlaubt es uns, das geeignete Kind von den Eltern zu finden. Wenn wir also versuchen, eine Zeichenfolge zuzuordnen, die ein Blatt in dem Baum ist, dann beginne bei der Wurzel und suche das erste Zeichen um den nächsten Knoten zu finden. Von diesem Knoten finde die Länge der Zeichenfolge mit der er übereinstimmt und das Zeichen jenseits von ihm. Suche den Knoten und dieses Zeichen, um den nächsten Knoten zu erhalten. Dieser Prozeß wird wiederholt, um eine Kandidaten-Übereinstimmung zu finden. Ein Problem taucht auf, wenn die Kandidaten-Übereinstimmung nicht mit dem Text eines Zeichens übereinstimmt, welches nicht in dem Hash-Prozeß verwendet wurde.
- An dieser Stelle muß die echte Übereinstimmung in dem Wörterbuch entweder die durch den Entscheidungsbaum gefundene Zeichenfolge oder ein Vorsatzcode davon sein. Das Waldpaar wird verwendet um den längsten Vorsatzcode der Kandidaten-Übereinstimmung zu finden, welcher mit dem zu komprimierenden Text übereinstimmt. Während dieser Prozedur wird der Entscheidungsbaum abgesucht um die längste Zeichenfolge des Wörterbuches zu finden, welche diesem Vorsatzcode entspricht. Diese Zeichenfolge ist die korrekte Übereinstimmung.
- Es sollte noch darauf hingewiesen werden, daß in dem Zeichenfolgen-Erweiterungs-Algorithmus die Möglichkeit aufkommt, daß beim Hinzufügen einer Zeichenfolge zu dem Entscheidungsbaum diese dort bereits vorhanden ist. In diesem Falle sollte der Entscheidungsbaum nicht verändert werden.
- Das hierin vorgeschlagene Verfahren kann auch dazu verwendet werden, um eine Wahrscheinlichkeitsverteilung für das nächste Zeichen in einer Zeichenfolge von Zeichen (oder Bit in einer Zeichenfolge von Bits) zu erzeugen. Dies kann für Anwendungen zur Erkennung von Daten hilfreich sein. Z.B. können optische Abtastgeräte feststellen, daß ein bestimmtes Zeichen entweder ein "n" oder "h" ist, jedoch haben sie Schwierigkeiten, zwischen diesen Zeichen zu unterscheiden. Wenn in solch einem Falle die Wahrscheinlichkeit, daß ein "h" der gegenwärtigen Zeichenfolge von Zeichen folgt, sehr gering ist, dann kann das Abtastgerät entscheiden, daß das nächste Zeichen ein "n" ist. Ein weiteres Beispiel ist die Erkennung von Phonemen oder Wörtern in der Spracherkennung.
- Eine Vielzahl von Autoren hat gezeigt, daß jedwedes Kompressionsverfahren für eine Vorhersage benutzt werden kann. Siehe beispielsweise Thomas M. Cover "Universial Gambling Schemes and the Complexity Measures of Kolmogorov and Chaitin" in Technical Report Nr. 12, 14. Oktober 1974, Dept. of Statistics, Stanford University.
Claims (8)
1. Verfahren zum Komprimieren von Daten in einzelnen Folgen in
einem Datenstrom, welches die folgenden Schritte umfaßt:
Initialisieren eines Wörterbuchs, das aus einem Satz von Ketten
mit einem Index für jede der Ketten besteht und alle möglichen
Ketten mit einer Länge 1 enthält,
Setzen einer aktuellen Eingabeposition an dem Anfang des
Datenstroms und Wiederholen der folgenden Schritte solange, bis der
Datenstrom ausgeschöpft ist, der komprimiert werden soll,
Bestimmen einer längsten Kette S in dem Wörterbuch, die zu einer
aktuellen Kette in dem Datenstrom beginnend von der aktuellen
Eingabeposition paßt,
Erzeugen einer Identifizierung I für S, die aus einer Codierung
des Index besteht, welcher der längsten angepaßten Kette S
zugeordnet ist,
Voranschieben der aktuellen Eingabeposition unmittelbar nach der
aktuellen Kette in dem Datenstrom,
Ändern des Wörterbuchs auf der Grundlage der vorangehenden
längsten angepaßten Kette S, der unmittelbar nachfolgenden Symbole
in der nächsten Kette in dem Datenstrom und der Folge
vorangehend angepaßter Ketten,
Übertragen von I zu einer Benutzungseinrichtung und
Decodieren von I bei der Benutzungseinrichtung, um die Kette S
wiederherzustellen.
2. Verfahren nach Anspruch 1, bei welchem der Schritt des
Änderns die folgenden Schritte umfaßt:
Hinzufügen einer neuen Kette S' zu dem Satz, wo S' eine
Verkettung der aktuellen Kettenanpassung und eines unmittelbar
nachfolgenden Symbols in dem Datenstrom enthält und
eine Identifizierung I' wird der Kette S' zugewiesen.
3. Verfahren nach Anspruch 2, das ferner den folgenden Schritt
umfaßt:
Prüfen eines Wörterbuchs mit fester Speichergröße, welches den
Satz von Ketten für einen leeren Schlitz zum Speichern der neuen
Kette S' enthält und, falls ein leerer Schlitz nicht gefunden
wird, Löschen einer Kette in dem Wörterbuch, um einen leeren
Schlitz zu erzeugen.
4. Verfahren nach Anspruch 3, bei welchem der Schritt das
Löschen einer LRU-Kette in dem Wörterbuch umfaßt, um einen
leeren Schlitz zu erzeugen, falls kein leerer Schlitz gefunden
wird.
5. Einrichtung zum Komprimieren von Daten in einzelnen in einem
Datenstrom gruppierten Folgen, die folgendes aufweist:
Mittel zum Initialisieren eines Wörterbuchs, das aus einem Satz
von Ketten mit einem Index für jede der Ketten besteht und alle
möglichen Ketten mit einer Länge 1 enthält,
Mittel zum Setzen einer aktuellen Eingabeposition an den Anfang
des Datenstroms,
Mittel zum Bestimmen einer längsten Kette S in dem Wörterbuch,
die zu einer aktuellen Kette in dem Datenstrom beginnend von der
aktuellen Eingabeposition paßt,
Mittel zum Erzeugen einer Identifizierung I für S, die aus einer
Codierung des Index besteht, welcher der längsten angepaßten
Kette S zugeordnet ist,
Mittel zum Voranschieben der aktuellen Eingabeposition
unmittelbar nach der aktuellen Kette in dem Datenstrom,
ein Mittel zum Ändern des Wörterbuchs auf der Grundlage der
vorangehenden längsten angepaßten Kette S, der unmittelbar
nachfolgenden Symbole in der nächsten Kette in dem Datenstrom und der
folgenden vorangehend angepaßter Ketten,
Mittel zum Übertragen von I zu einer Benutzungseinrichtung und
Mittel zum Decodieren von I bei der Benutzungseinrichtung, um
die Kette S wiederherzustellen und
Mittel zum Wiederholen der Schritte des Initialisierens, des
Setzens einer aktuellen Eingabeposition, des Bestimmens,
Erzeugens, Voranschiebens, Änderns, Übertragens und Decodierens
solange, bis der Datenstrom ausgeschöpft ist, der komprimiert
werden soll.
6. Einrichtung nach Anspruch 5, bei welcher das Mittel zum
Ändern folgendes aufweist:
Mittel zum Hinzufügen einer neuen kette S' zu dem Satz, wo S'
eine Verkettung der aktuellen Kettenanpassung und eines
unmittelbar nachfolgenden Symbols in dem Datenstrom enthält und
Mittel, um der Kette S' eine Identifizierung I' zuzuweisen.
7. Einrichtung nach Anspruch 6, die ferner folgendes aufweist:
Speicherung eines Wörterbuchs fester Größe, welches den Satz von
Ketten enthält,
Mittel zum Prüfen des Wörterbuchs auf einen leeren Schlitz hin,
um die neue Kette S' zu speichern und
ein Mittel zum Löschen einer Kette in dem Wörterbuch, um eine
solche zu erzeugen, falls ein leerer Schlitz nicht gefunden
wird.
8. Einrichtung nach Anspruch 7, bei welcher das Mittel zum
Löschen einer Kette Mittel zum Löschen einer LRU-Kette in dem
Wörterbuch zum Erzeugen eines leeren Schlitzes aufweist, falls kein
leerer Schlitz gefunden wird.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US49994383A | 1983-06-01 | 1983-06-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3485824D1 DE3485824D1 (de) | 1992-08-27 |
DE3485824T2 true DE3485824T2 (de) | 1993-03-04 |
Family
ID=23987404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19843485824 Expired - Lifetime DE3485824T2 (de) | 1983-06-01 | 1984-05-16 | Verfahren zur datenkompression. |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP0127815B1 (de) |
JP (1) | JPS59231683A (de) |
DE (1) | DE3485824T2 (de) |
HK (1) | HK7895A (de) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4558302A (en) * | 1983-06-20 | 1985-12-10 | Sperry Corporation | High speed data compression and decompression apparatus and method |
JPS63209228A (ja) * | 1987-02-25 | 1988-08-30 | Oki Electric Ind Co Ltd | デ−タ圧縮方法 |
JPS63209229A (ja) * | 1987-02-25 | 1988-08-30 | Oki Electric Ind Co Ltd | デ−タ文圧縮符号化方法 |
US4899147A (en) * | 1988-06-03 | 1990-02-06 | Unisys Corporation | Data compression/decompression apparatus with throttle, start-up and backward read controls |
GB8815978D0 (en) * | 1988-07-05 | 1988-08-10 | British Telecomm | Method & apparatus for encoding decoding & transmitting data in compressed form |
GB8828796D0 (en) * | 1988-12-09 | 1989-01-18 | British Telecomm | Data compression |
DE3914589A1 (de) * | 1989-05-03 | 1990-11-08 | Bosch Gmbh Robert | Verfahren zur datenreduktion bei strassennamen |
US5184126A (en) * | 1989-12-28 | 1993-02-02 | International Business Machines Corporation | Method of decompressing compressed data |
US5001478A (en) * | 1989-12-28 | 1991-03-19 | International Business Machines Corporation | Method of encoding compressed data |
US5010345A (en) * | 1989-12-28 | 1991-04-23 | International Business Machines Corporation | Data compression method |
US5010344A (en) * | 1989-12-28 | 1991-04-23 | International Business Machines Corporation | Method of decoding compressed data |
US5142282A (en) * | 1990-11-07 | 1992-08-25 | Hewlett-Packard Company | Data compression dictionary access minimization |
US5455577A (en) * | 1993-03-12 | 1995-10-03 | Microsoft Corporation | Method and system for data compression |
EP0718980A1 (de) * | 1994-12-20 | 1996-06-26 | International Business Machines Corporation | Verfahren zur Kompression von Daten für individuelle Folgen eines Datenstroms mit Hilfe eines Wörterbuches und Vorrichtung dafür |
JP3426385B2 (ja) * | 1995-03-09 | 2003-07-14 | 富士通株式会社 | ディスク制御装置 |
US6856651B2 (en) | 2000-07-25 | 2005-02-15 | Peribit Networks, Inc. | System and method for incremental and continuous data compression |
WO2002008920A1 (en) | 2000-07-25 | 2002-01-31 | Peribit Networks, Inc. | Network architecture and methods for transparent on-line cross-sessional encoding and transport of network communications data |
EP1895664A3 (de) * | 2000-07-25 | 2008-03-26 | Juniper Networks, Inc. | System und Verfahren für die schrittweise und kontinuierliche Datenkompression |
US10210246B2 (en) | 2014-09-26 | 2019-02-19 | Oracle International Corporation | Techniques for similarity analysis and data enrichment using knowledge sources |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2060226A (en) * | 1979-10-02 | 1981-04-29 | Ibm | Data compression-decompression |
US4386416A (en) * | 1980-06-02 | 1983-05-31 | Mostek Corporation | Data compression, encryption, and in-line transmission system |
US4558302A (en) * | 1983-06-20 | 1985-12-10 | Sperry Corporation | High speed data compression and decompression apparatus and method |
-
1984
- 1984-04-17 JP JP59075935A patent/JPS59231683A/ja active Granted
- 1984-05-16 DE DE19843485824 patent/DE3485824T2/de not_active Expired - Lifetime
- 1984-05-16 EP EP19840105546 patent/EP0127815B1/de not_active Expired
-
1995
- 1995-01-19 HK HK7895A patent/HK7895A/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
EP0127815A3 (en) | 1988-07-27 |
DE3485824D1 (de) | 1992-08-27 |
EP0127815A2 (de) | 1984-12-12 |
JPS59231683A (ja) | 1984-12-26 |
JPS6356726B2 (de) | 1988-11-09 |
EP0127815B1 (de) | 1992-07-22 |
HK7895A (en) | 1995-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3485824T2 (de) | Verfahren zur datenkompression. | |
DE69527679T2 (de) | Verfahren zur Datenkomprimierung und -Dekomprimierung | |
DE10301362B4 (de) | Blockdatenkompressionssystem, bestehend aus einer Kompressionseinrichtung und einer Dekompressionseinrichtung, und Verfahren zur schnellen Blockdatenkompression mit Multi-Byte-Suche | |
DE3852341T2 (de) | Zeichenverarbeitungssystem mit Funktion zur Prüfung von Rechtschreibung. | |
DE69704362T2 (de) | Datenkompressions-/dekompressionssystem anhand sofortiger zeichenfolgensucheverschachtelter wörterbuchaktualisierung | |
DE69737892T2 (de) | Lempel-Ziv Datenkompressionsverfahren unter Verwendung eines Wörterbuches mit häufig auftretenden Buchstabenkombinationen, Wörtern und/oder Sätzen | |
DE69905343T2 (de) | Blockweiser adaptiver statistischer datenkompressor | |
DE3882738T2 (de) | Datenkomprimierungsverfahren und -vorrichtung. | |
DE2513862C2 (de) | Vorrichtung zum Decodieren von Codes minimaler Redundanz und variabler Länge | |
DE69413347T2 (de) | Auf die Bytegrenze ausgerichtete Datenkomprimierung | |
DE68925798T2 (de) | Datenverdichtung | |
DE68907812T2 (de) | Verfahren und Vorrichtung zur Kodierung, Dekodierung und Übertragung von Daten in komprimierter Form. | |
DE19742417B4 (de) | Vorrichtung und Verfahren zur Durchführung von M-fachem Maschinenendzustands-Entropiekodieren bzw. Entropiekodieren mit einer Maschine mit finitem Zustand | |
DE69027606T2 (de) | Vorrichtung zur datenkompression | |
DE19622045C2 (de) | Datenkomprimierungs- und Datendekomprimierungsschema unter Verwendung eines Suchbaums, bei dem jeder Eintrag mit einer Zeichenkette unendlicher Länge gespeichert ist | |
DE10196890B4 (de) | Verfahren zum Ausführen einer Huffman-Decodierung | |
DE19606178C2 (de) | Verfahren zum Komprimieren einer Anordnung von Pixelwerten und zum Dekomprimieren einer Anordnung von Pixelwerten aus einem komprimierten Datensatz | |
DE69026924T2 (de) | Datenkomprimierungsverfahren | |
DE69522497T2 (de) | System und Verfahren zur Datenkompression | |
DE69916661T2 (de) | Codebuchkonstruktion für entropiekodierung von variabler zu variabler länge | |
DE2614916C2 (de) | Konverter zur Codeumwandlung | |
DE60107964T2 (de) | Vorrichtung zur kodierung und dekodierung von strukturierten dokumenten | |
DE4340591A1 (de) | Datenkompressionsverfahren unter Verwendung kleiner Wörterbücher zur Anwendung auf Netzwerkpakete | |
DE2264090B2 (de) | Datenverdichtung | |
DE69722085T2 (de) | Verfahren und Vorrichtung zur Komprimierung und Dekomprimierung von Botschaften |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |