DE60000912T2 - Verfahren und Vorrichtung zur Datenkomprimierung von Netzwerkdatenpaketen unter Verwendung von paketweisen Hash Tabellen - Google Patents

Verfahren und Vorrichtung zur Datenkomprimierung von Netzwerkdatenpaketen unter Verwendung von paketweisen Hash Tabellen

Info

Publication number
DE60000912T2
DE60000912T2 DE60000912T DE60000912T DE60000912T2 DE 60000912 T2 DE60000912 T2 DE 60000912T2 DE 60000912 T DE60000912 T DE 60000912T DE 60000912 T DE60000912 T DE 60000912T DE 60000912 T2 DE60000912 T2 DE 60000912T2
Authority
DE
Germany
Prior art keywords
packet
packets
compression
encoded
data
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
DE60000912T
Other languages
English (en)
Other versions
DE60000912D1 (de
Inventor
Sean Matthew Dorward
Sean Quinlan
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.)
Nokia of America Corp
Original Assignee
Lucent Technologies Inc
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 Lucent Technologies Inc filed Critical Lucent Technologies Inc
Application granted granted Critical
Publication of DE60000912D1 publication Critical patent/DE60000912D1/de
Publication of DE60000912T2 publication Critical patent/DE60000912T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

    Erfindungsgebiet
  • Die vorliegende Erfindung betrifft allgemein die Datenkomprimierung und insbesondere die Verbesserung der Komprimierung von Daten in Paketnetzen.
  • Stand der Technik
  • Bei herkömmlichen Datenkomprimierungsverfahren und -systemen wird ein Strom digitaler Daten in einen komprimierten Strom codiert und der komprimierte Codestrom wieder in einen entsprechenden Original- Datenstrom decodiert. Der Codestrom wird als "komprimiert" bezeichnet, da der Strom typischerweise aus einer kleineren Anzahl von Codes als im Original- Datenstrom enthaltenen Symbolen besteht. Solche kleineren Codes können vorteilhafterweise in einem entsprechend kleineren Speicherraum als die ursprünglichen Daten gespeichert werden. Weiterhin kann der komprimierte Codestrom in einer entsprechend kürzeren Zeit als die unkomprimierten Originaldaten in einem Kommunikationssystem, z. B. einem drahtgebundenen, drahtlosen oder faseroptischen Kommunikationssystem, übertragen werden. Der Bedarf an Datenübertragungs- und Speicherungskapazität in den heutigen Kommunikationsnetzen steigt stetig. So spielt die Datenkomprimierung eine wesentliche Rolle bei den meisten modernen Übertragungsprotokollen und Kommunikationsnetzen.
  • Es ist wohlbekannt, daß zwei Klassen von Komprimierungsverfahren, die bei der Komprimierung von Daten nützlich sind, sogenannte Komprimierung für besondere Anwendungen und Komprimierung für allgemeine Anwendungen sind. Komprimierungsverfahren für besondere Anwendungen sind zum Komprimieren von besonderen Datenarten ausgelegt und sind häufig relativ kostengünstig zu realisieren. Beispielsweise gehören zu wohlbekannten Komprimierungsverfahren für besondere Anwendungen Lauflängencodierung, Nullunterdrückungscodierung, Nullkompressionscodierung und Musteraustausch. Da diese Verfahren Daten komprimieren, die typischerweise gemeinsame Eigenschaften und Redundanzen besitzen, weisen diese Verfahren im allgemeinen relativ kleine Kompressionsverhältnisse auf. Ein Kompressionsverhältnis ist bekannterweise das Maß der Länge der komprimierten Codes relativ zu der Länge der Originaldaten. Kompressionsverfahren für besondere Anwendungen neigen jedoch bei der Komprimierung von Daten einer allgemeineren Beschaffenheit, d. h. Daten, die kein hohes Maß an gemeinsamen Eigenschaften und dergleichen besitzen, dazu, unwirksam zu sein.
  • Demgegenüber sind Kompressionsverfahren für allgemeine Anwendungen nicht dafür ausgelegt, spezifisch eine Datenart zu komprimieren und werden häufig während des eigentlichen Komprimierungsvorgangs an unterschiedliche Datenarten angepaßt. Einige der am besten bekannten und nützlichsten Kompressionsverfahren für allgemeine Anwendungen stammen aus einer von J. Ziv und A. Lempel entwickelten Gruppe von Algorithmen, die in der Technik gewöhnlich als "Lempel-Ziv-Codierung" bezeichnet werden. Insbesondere Ziv et al., "A Universal Algorithm for Sequential Data Compression" (Ein Universalalgorithmus für sequentielle Datenkomprimierung), IEEE Transactions on Information Theory, IT-23(3):337-343, Mai 1977 (wo der gewöhnlich als "LZ1" bezeichnete Algorithmus beschrieben wird) und Ziv et al., "Compression of Individual Sequences Via Variable-Rate Coding" (Komprimierung einzelner Folgen über Codierung mit veränderlicher Rate), IEEE Transactions on Information Technology, IT-24(5): 530- 536, September 1978 (wo der allgemein als "LZ2" bezeichnete Algorithmus beschrieben wird). Die Datenkomprimierungsverfahren LZ1 und LZ2 sind in der Technik wohlbekannt und brauchen hier nicht ausführlich besprochen zu werden.
  • Kurz gesagt basiert der (in der Technik auch als "LZ77" bezeichnete und bekannte) Datenkompressionsvorgang LZ1 auf dem Grundsatz, daß eine wiederholte Zeichenfolge durch eine Bezugnahme auf ein früheres Auftreten der Folge, d. h. entsprechende Folgen, ersetzt werden kann. Die Bezugnahme, z. B. ein Zeiger, enthält typischerweise eine Anzeige der Position des früheren Auftretens, z. B. ausgedrückt als ein Byte-Versatz vom Anfang der wiederholten Folge, und die Anzahl von Zeichen, d. h. die gepaarte Länge, die wiederholt werden. Typischerweise werden die Bezugnahmen als Paare "[Versatz, Länge]" entsprechend der herkömmlichen LZ1- Codierung dargestellt. Demgegenüber wird durch (in der Technik auch als "LZ78" bezeichnete und bekannte) LZ2- Kompression ein Strom von Eingangsdatenzeichen in codierte Werte zerlegt, die auf einer adaptiv wachsenden Nachschlagetabelle bzw. einem adaptiv wachsenden Verzeichnis basieren, die bzw. das während der Komprimierung erzeugt wird. Das heißt, mit LZ2 werden keine Entsprechungen an irgendeiner Byte-Grenze und mit einer beliebigen Länge wie bei der LZ1-Codierung gefunden, sondern stattdessen wird, wenn eine Quellkette einem Verzeichniswort entspricht, dem Verzeichnis ein neues Wort zugefügt, das aus dem paarigen Wort zuzüglich dem nachfolgenden Quellenkettenbyte besteht. Nach der LZ2-Codierung werden Entsprechungen als Zeiger oder Indexe zu den Worten im Verzeichnis codiert.
  • Wie oben erwähnt gibt es in der Technik reichlich Kompressionsverfahren, die sich von den durch die LZ1- und LZ2-Algorithmen verkörperten Grundsätzen ableiten. Beispielsweise ist von Terry A. Welch (siehe T. A. Welch, "A Technique for High Performance Data Compression" (Ein Verfahren für Hochleistungs- Datenkomprimierung), IEEE Computer, Seiten 8-19, Juni 1984, und durch das Welch am 10. Dezember 1985 erteilte US-Patent Nr. 4,558,302 der LZ2-Codierungsvorgang später in den wohlbekannten Kompressionsvorgang "Lempel-Ziv-Welch" ("LZW") verfeinert worden. Beide Kompressionsverfahren LZ2 und LZW basieren auf der Erzeugung und Verwendung einer sogenannten Kettentabelle, die Ketten von Eingangszeichen in Codes mit fester Länge abbildet. Insbesondere wird durch diese Kompressionsverfahren ein Strom von Datenzeichen durch serielles Durchsuchen des Zeichenstroms und Erzeugen von Codes auf der Grundlage von Folgen von angetroffenen Symbolen, die entsprechenden, vorher in der Tabelle, d. h. dem Verzeichnis, gespeicherten längstmöglichen Ketten entsprechen, in einen komprimierten Strom von Codes komprimiert. Bei jeder Herstellung einer Entsprechung und Erzeugung eines Codesymbols speichert der Vorgang auch einen neuen Ketteneintrag im Verzeichnis, der die gepaarte Folge im Datenstrom zuzüglich dem nächsten im Datenstrom angetroffenen Zeichensymbol umfaßt.
  • Man kann erkennen, daß, wie oben angeführt, das Wesentliche bei der Lempel-Ziv-Codierung im Auffinden von Ketten und Teilketten besteht, die im ursprünglichen Datenstrom, z. B. in einem zu übertragenden Dokument, wiederholt werden. Die wiederholten Phrasen in dem zu komprimierenden Dokument werden durch einen Zeiger auf eine Stelle ersetzt, wo sie früher in dem ursprünglichen Datenstrom, z. B. Dokument, aufgetreten sind. Als solches erfordert die Decodierung von Daten, z. B. einem auf diese Weise komprimierten Text, einfach das Ersetzen der Zeiger durch den bereits decodierten Text, auf den er zeigt. Es ist wohlbekannt, daß ein Haupt-Auslegungsfaktor bei der Verwendung von Lempel-Ziv-Codierung darin besteht, zu bestimmen, ob man eine Grenze festlegen sollte, wie weit zurück ein Zeiger reichen kann, und was diese Grenze sein sollte. Ein weiterer Auslegungsfaktor der Lempel-Ziv-Codierung besteht darin, welche Teilketten innerhalb der gewünschten Grenze das Ziel eines Zeigers darstellen könnten. Das heißt, die Reichweite eines Zeigers im früheren Text kann uneingeschränkt sein, d. h. ein sogenanntes wachsendes Fenster, oder kann auf ein Fenster mit fester Größe der vorigen "N"-Zeichen beschränkt sein, wobei N typischerweise im Bereich von mehreren Tausend Zeichen, z. B. 3 Kilobyte, liegt. Nach dieser Codierung werden Wiederholungen von Ketten nur dann entdeckt und komprimiert, wenn beide im Fenster erscheinen. Man wird erkennen, daß die hinsichtlich derartiger Lempel-Ziv-Codierungsauslegungsentscheidungen angestellten Betrachtungen einen Kompromiß zwischen Geschwindigkeit, erforderlichem Speicherraum und Kompressionsverhältnis darstellen.
  • Kompression ist eine bedeutende Überlegung bei der Verbesserung von Netzwirkungsgraden. Wenn beispielsweise die verfügbaren Rechnerressourcen, d. h. die Datenübertragungserfordernisse im Vergleich zu der verfügbaren Netzbandbreite groß sind, ist es am vorteilhaftesten, Datenpakete vor ihrer Übertragung über das Netz zu komprimieren. Selbstverständlich muß das eigentliche Kompressionsverfahren hinsichtlich der Geschwindigkeit und Gesamtkompression sorgfältig ausgewählt werden. Das heißt, ein Kompressionsverfahren, das zu langsam ist, wird die Netzleistung verringern und ein unwirksames Kompressionsverfahren wird jegliche möglichen Übertragungsgewinne begrenzen.
  • Die Frage des Netzwirkungsgrades wird weiterhin durch die Tatsache verkompliziert, daß viele Paketnetze eigentlich unzuverlässig sind. Das heißt, gegenwärtige wohlbekannte Paketnetze, z. B. das Internet, lassen Pakete routinemäßig fallen oder ordnen durch das Netz übertragene Pakete um und verursachen damit Datenübertragungsfehler. Wenn beispielsweise das Kompressionsverfahren gewisse Abhängigkeiten zwischen Paketen einführt und das Netz danach diese Pakete fallen läßt oder umordnet, ist der Empfänger aufgrund der Wechselbeziehungen zwischen Paketen möglicherweise nicht in der Lage, ein bestimmtes Paket zu dekomprimieren, wenn ein vorheriges Paket verlorengegangen ist. Um solche Probleme zu lindern, werden daher gewisse wohlbekannte Ansätze benutzt: (1) Verbesserung der Netzzuverlässigkeit, wodurch hinsichtlich des Internets ein zuverlässigerer Ende- Ende-Transportschicht-Dienst angewandt werden kann, z. B. das wohlbekannte Übertragungssteuerungsprotokoll (TCP - Transmission Control Protocol), um Pakete auf der Transportebene zu komprimieren; (2) Benutzung zustandsloser Komprimierung, wobei jedes Paket getrennt komprimiert wird und dadurch sichergestellt wird, daß jedes Paket am Empfänger dekomprimiert werden kann; und (3) Streaming-Kompression, bei der zuverlässige Abgabe angenommen und ein Rücksetzmechanismus eingesetzt wird, wenn diese Annahme verletzt wird. Insbesondere wird, wenn ein Paket verlorengeht, vom Empfänger jedes nachfolgende Paket solange verworfen, bis die Kompression rückgesetzt ist. Nach dem Rücksetzen sind zukünftige Pakete nicht von vorhergehenden Paketen abhängig und die Dekompression kann normal weitergeführt werden. Zwei wohlbekannte Streaming- Kompressionsverfahren umfassen das Kompressionssteuerungsprotokoll PPP (Point-to-Point Protocol) und das IP-Kopfteil-Kompressionsprotokoll, das für Pakete des UDP (User Datagram Protocol) eingesetzt wird.
  • Die oben beschriebenen Paket-Kompressionsverfahren sind beim Lindern der aus Paket-Wechselbeziehungen entstehenden Probleme nützlich, stellen aber gewisse andere Komplikationen dar. Beispielsweise erfordert das Komprimieren von Paketen auf der Transportebene eine Ende-Ende-Nutzung und erfordert typischerweise eine gewisse Höhe an Mitwirkung durch die Anwendung während der Übertragung. Auf ähnliche Weise wird, während zustandsloser Kompression ein Maß an Robustheit verleiht, durch das Attribut der Paketunabhängigkeit der zustandslosen Kompression das verwirklichte Kompressionsverhältnis verringert, da bei einer derartigen Kompression die Daten in einem einzelnen Paket untersucht werden. So kann beispielsweise dieser Kompressionsansatz nicht die große Menge an Redundanz beseitigen, die typischerweise in Netzkopfteilen von benachbarten Paketen vorkommt. Während weiterhin Streamingkompression größere Kompressionsverhältnisse bereitstellt, wird durch diese Kompressionsverfahren die Wirkung des Paketverlustes vervielfacht, indem bei Verlust eines Pakets im Netz bewirkt wird, daß der Empfänger mehrere weitere Pakete verliert. Bei Netzen niedriger Zuverlässigkeit, z. B. dem Internet, wird durch diesen vervielfachenden Paketeffekt die Nützlichkeit der Verwendung von Streamingkompression verringert.
  • Es besteht daher ein Bedarf an einem Kompressionsverfahren, das größere Robustheit und erhöhte Kompressionsverhältnisse ohne die nachteiligen Wirkungen voriger Kompressionsverfahren bereitstellt.
  • In US-A-5 831 558 ist ein Verfahren zur Übertragung einer codierten Datei von einem ersten Computersystem in ein zweites Computersystem offenbart. Das Verfahren benutzt ein Datenverzeichnis mit einer Anzahl von Einträgen. Jeder der Datenverzeichniseinträge enthält eine Eintragszeichenanordnung, eine Eintragskompressionsanordung und einen Eintragszähler. Datenpakete werden in den Speicher eingelesen und durch Verwendung des Datenverzeichnisses in die codierte Datei codiert. Die codierte Datei wird dann vom ersten System zum zweiten System übertragen. Auch enthält das Verfahren eine Decodierungsfunktion, wobei durch das zweite System empfangene codierte Pakete unter Verwendung des Datenverzeichnisses decodiert werden.
  • Kurze Darstellung der Erfindung
  • Die Erfindung entspricht den unabhängigen Ansprüchen, wobei bevorzugte Ausführungsformen in den abhängigen Ansprüchen aufgeführt sind.
  • Ein Aspekt der Erfindung richtet sich auf ein Verfahren und eine Vorrichtung zum Komprimieren von Paketen, wodurch Paket-Paket-Kompression ermöglicht wird und dadurch größere Robustheit und erhöhte Kompressionsverhältnisse ohne die nachteiligen Wirkungen, z. B. den Effekt der Vervielfachung von Paketverlusten, vorheriger Kompressionsverfahren erreicht werden. Insbesondere wird nach einem Aspekt der Erfindung eine Codierung mit veränderlicher Länge zusammen mit der Unterhaltung einer getrennten Hash- Tabelle für jedes Paket benutzt. Nach der bevorzugten Ausführungsform der Erfindung benutzt die Codierung mit veränderlicher Länge Entsprechungslängen, Offsets und Direktentsprechungen. Als solches beginnen alle Phrasen mit einer Entsprechungslänge, wobei Direktentsprechungen mit einer Entsprechung von Länge Null gefolgt von einer Codierung der Direktentsprechung codiert werden. Entsprechend der bevorzugten Ausführungsform beträgt beispielsweise die kleinste Entsprechung mit einer Länge von nicht Null 3 Byte, und die Maximalentsprechung ist durch die bestimmte Paketgröße begrenzt.
  • Weiterhin werden nach einem Aspekt der Erfindung durch die paketweise Hash-Tabelle bestimmte Byteketten im Paket indexiert, aber nicht Daten in irgendeinem anderen Paket bzw. anderen Paketen indexiert. Das heißt, durch die vorliegende Erfindung wird für jedes Paket eine entsprechende getrennte Hash-Tabelle erzeugt und unterhalten, wobei diese Hash-Tabelle unabhängig von jedem anderen Paket aufgebaut wird. Beispielsweise wird nach einer Ausführungsform der Erfindung die entsprechende Hash-Tabelle für ein Paket bei Komprimierung des bestimmten Pakets aufgebaut. Nach weiteren Ausführungsformen der Erfindung wird die entsprechende Hash-Tabelle für das Paket vor der Komprimierung oder nach der Komprimierung aufgebaut. Als solches wird die entsprechende Hash-Tabelle mit dem bestimmten Paket codiert. Nach einem Aspekt der Erfindung werden durch die entsprechende Hash-Tabelle des Pakets die Daten im gesamten Paket als Funktion einzelner Teilketten indexiert. Beispielsweise sind nach der bevorzugten Ausführungsform der Erfindung derartige Teilketten 3 Byte lang. So bestimmt die Bytegröße eines bestimmten Pakets die Anzahl von Byteketten, die innerhalb der entsprechenden Hash- Tabelle für dieses Paket indexiert sind. Als solches stellt die Benutzung einer paketweisen Hash-Tabelle eine wirkungsvolle und robuste Gesamtkomprimierung der Pakete bereit.
  • Das heißt, da die Hash-Tabelle jedes Pakets nur von den Daten in diesem bestimmten Paket abhängig ist, kann ein gültiger Index für eine willkürliche Menge von Paketen unter Verwendung der entsprechenden Hash-Tabellen hergestellt werden. So wird nach der bevorzugten Ausführungsform die Suche nach Einer Kette durch eine Abfrage der Hash-Tabelle für das gegenwärtige Paket gefolgt von den Hash-Tabellen für jedes der Pakete im veränderlichen Vergangenheitszustand beginnend mit dem am letzten gesendeten Paket bewerkstelligt. Man wird erkennen, daß die paketweisen Hash-Tabellen der bevorzugten Ausführungsform auch einzeln verbundene Offset-Ketten unterhalten, die durch einen ungültigen Eintrag abgeschlossen sind, und Hash-Tabellen durch Ändern des gültigen Offset-Bereichs für die Hash- Tabelle (und nicht durch Löschen der gesamten Tabelle) wieder verfügbar machen. Weiterhin wird man erkennen, daß ein Kompressionsgradparameter, z. B. 8 Ketten, zur Bestimmung der Höchstzahl an Ketten, die während der Suche nach einer Entsprechung überprüft werden, benutzt wird.
  • Vorteilhafterweise werden nach einem Aspekt der Erfindung erhöhte Robustheit und größere Kompressionsverhältnisse mit eine Vielzahl von Kompressionsverfahren erreicht.
  • Kurze Beschreibung der Zeichnungen
  • Fig. 1 zeigt ein Blockschaltbild eines beispielhaften Systems zum Komprimieren und Dekomprimieren von Daten;
  • Fig. 2 zeigt ein Flußdiagramm von beispielhaften Operationen zum Komprimieren von Daten nach einer beispielhaften Ausführungsform der Erfindung und nützlich in dem beispielhaften System der Fig. 1;
  • Fig. 3 zeigt einen beispielhaften, nach den beispielhaften Operationen der Fig. 2 komprimierten Paketstrom;
  • Fig. 4 zeigt ein Flußdiagramm von beispielhaften Operationen zum Dekomprimieren von Daten nach einer Ausführungsform der Erfindung und nützlich im beispielhaften System der Fig. 1;
  • Fig. 5 zeigt ein Flußdiagramm beispielhafter Operationen zum Komprimieren von Daten nach den Grundsätzen der Erfindung; und
  • Fig. 6 zeigt Vergleichsergebnisse des Komprimierens von Textdateien entsprechend den verschiedenen Aspekten der Erfindung.
  • In dieser Beschreibung werden gleiche Elemente, Blöcke, Bauteile oder Abschnitte in den Figuren sofern nicht anders erwähnt mit denselben Bezugsbezeichnungen bezeichnet.
  • Ausführliche Beschreibung
  • Wie in unserer zum hiermit gegenwärtigen Datum eingereichten, gleichzeitig anhängigen gemeinsam zugewiesenen Anmeldung Serien-Nr. 09/527315, Anwaltlisten-Nr. S. M. Dorward 9-2 (alternativ hier zweckdienlicherweise als "Bestätigte Kompressionsanmeldung" bezeichnet) aufgeführt, haben wir erkannt, daß durch Verwendung eines ausgewählten Vergangenheitszustands als Funktion der Pakete zur Übertragung über ein Netz die Bereitstellung eines eleganten Kompressionswerkzeuges erzielt wird, mit dem verbesserte Datenkompression realisiert werden kann. Nach einem Aspekt dieser Erfindung wird ein ausgewählter Vergangenheitszustand eingesetzt, der als eine Funktion eines sogenannten Bestätigungsvektors bestimmt wird. Weiterhin enthält nach einem Aspekt dieser Erfindung der Bestätigungsvektor Informationen hinsichtlich der Erkennung von Paketen, die in einer vorherigen Übertragung über einen Kommunikationskanal erfolgreich empfangen worden sind. Das heißt, daß nach einem Aspekt dieser Erfindung der Paketvergangenheitszustand ein mit einem entsprechenden Paket verbundener ausgewählter Vergangenheitszustand ist. Dabei wird eine erste Seite des Kommunikationskanals, z. B. die Senderseite mit gewissen Informationen darüber, welche Pakete erfolgreich von der zweiten Seite des Kommunikationskanals, z. B. der Empfängerseite empfangen worden sind, beliefert und darüber in Kenntnis gesetzt. Der Dekomprimierer wiederum wird ebenfalls mit der ausgewählten Vergangenheit beliefert und darüber in Kenntnis gesetzt, um eine wirkungsvolle Dekomprimierung der übertragenen komprimierten Pakete vom Sender zu ermöglichen. Das heißt, Dekomprimierung findet als Funktion dessen statt, welche Pakete während der Komprimierung dieser Pakete als Vergangenheit benutzt wurden, d. h. des ausgewählten Vergangenheitszustandes. Dabei wirken durch den ausgewählten Vergangenheitszustand und die Bestätigungsaspekte der vorliegenden Erfindung der Komprimierer und Dekomprimierer (beidseitig des Kommunikationskanals) zusammen, um verbesserte Kompression über einen Kommunikationskanal zu erreichen.
  • Die Kompressionsergebnisse, z. B. das Bandbreitenverhältnis, die durch Verwendung verschiedener Aspekte der Erfindung bei der Kompression in der Bestätigten Kompressionsanmeldung erreicht worden sind, sind für kleinere Pakete besonders bei höheren Bandbreiten etwas vermindert. Dies beruht teilweise auf dem eigentlichen Kompressionsverfahren, das benutzt wird. Beispielsweise wird bei dem wohlbekannten Kompressionsverfahren Deflate (Schrumpfen) ein relativ unwirksames Format für kleinere Paketgrößen benutzt. Insbesondere wird nach dem Kompressionsverfahren Deflate jedes Paket entweder mit statischer oder dynamischer wohlbekannter Huffman- Codierung komprimiert. Während diese Huffman-Codierung sich für Off-Line-Komprimierung großer Dateien lohnt, ist der zugehörige Verarbeitungsaufwand der Berechnung und Übertragung des erforderlichen Huffman- Verzeichnisses in jedem Paket zu kostspielig für die Echtzeit-Komprimierung kleinerer Pakete, z. B. typische über das Internet übertragene Datenpakete. Zusätzlich erfordert Deflate den zusätzlichen Verarbeitungsaufwand von annähernd 8 Byte zum Abschließen eines Pakets, was weiterhin seine Nützlichkeit in Internet-ähnlichen Kommunikationsanwendungen beeinträchtigt. Man wird erkennen, daß dies auf ähnliche Weise auf andere Kompressionsverfahren zutrifft, die solche Huffman- Codes und/oder Verzeichnisse verwenden, z. B. LZ77.
  • Es ist daher erkannt worden, daß die Aspekte der Erfindung in der Bestätigten Kompressionsanmeldung, die ausführlicher unten besprochen werden, und ihre vollen Vorteile weiterhin in einem neuartigen Kompressionsformat realisiert werden, das gewisse bei herkömmlichen Kompressionsverfahren auftretende Fragen des Verarbeitungsaufwands mildert. Insbesondere wird nach einem Aspekt der vorliegenden Erfindung eine Codierung mit veränderlicher Länge in Verbindung mit der Unterhaltung einer getrennten Hash-Tabelle für jedes Paket benutzt. Nach der bevorzugten Ausführungsform der Erfindung werden bei der Codierung mit veränderlicher Länge Entsprechungslängen, Offsets oder Direktentsprechungen benutzt. Vor der ausführlicheren Besprechung der verschiedenen Aspekte der vorliegenden Erfindung und Förderung eines vollständigen Verständnisses derselben werden untenstehend gewisse Aspekte der obenerwähnten, gleichzeitig anhängigen gemeinsam zugewiesenen Bestätigten Kompressionsanmeldung dargelegt.
  • In einem Aspekt dieser Erfindung wird ein Verfahren und eine Vorrichtung zum Komprimieren von Paketen bereitgestellt, die Kompression zwischen Paketen ermöglicht und dadurch größere Robustheit und gesteigerte Kompressionsverhältnisse ohne die schädlichen Auswirkungen, zum Beispiel den Effekt der Paketvervielfältigung vorheriger Kompressionsverfahren erzielt. Insbesondere wird ein sogenanntes Bestätigungsverfahren in Verbindung mit dem spezifischen Kompressionsalgorithmus eingesetzt, so daß der Sender die vom Kompressionsalgorithmus benutzte Vergangenheit auf diejenigen Pakete begrenzen kann, die richtig empfangen werden. Nach der bevorzugten Ausführungsform wird ein die benutzten Pakete als die Vergangenheit identifizierender Vektor in das komprimierte Paket eingeschlossen und ermöglicht damit dem Empfänger, den zum Dekomprimieren des Pakets notwendigen Paketvergangenheitszustand wiederzugewinnen.
  • In Fig. 1 ist ein Blockschaltbild eines beispielhaften Systems 100 zum Komprimieren und Dekomprimieren von Daten dargestellt. Das System 100 ist unter anderem für die Übertragung und das Empfangen von Informationen über ein Übertragungsmittel, z. B. Draht, drahtlos oder Glasfaser, um nur einige zu nennen, nützlich. Weiterhin ist das System 100 als Alternative zum Aufzeichnen von Informationen auf und Ablesen von Informationen aus beispielsweise einem magnetischen Mittel wie beispielsweise Computer-Diskettenlaufwerken oder einem optisch lesbaren Medium wie beispielsweise CD-ROMs nützlich. Dabei ist es möglich, entsprechend der Erfindung komprimierte Daten auf einem beschreibbaren Mittel einschließlich eines magnetischen Mittels, z. B. Magnetplattenlaufwerken, und eines optisch beschreibbaren Mittels, z. B. CD-ROMs aufzuzeichnen. In der Fig. 1 wird ein Eingangsdatenstrom 105, z. B. Text, für den Eingangsdatencodierer 110 bereitgestellt. Wie ausführlicher unten besprochen, wird vom Eingangsdatencodierer 110 entsprechend einem Aspekt der Erfindung der Eingangsdatenstrom durch Anwenden von Paket-Paket-Kompression mit veränderlichem Vergangenheitszustand vorverarbeitet und codiert. Die verschiedenen, diesem Codierungsvorgang zugewandten Aspekte der Erfindung werden ausführlicher unten mit besonderer Bezugnahme auf die in Fig. 2 gezeigten beispielhaften Operationen beschrieben.
  • Fortfahrend mit der Besprechung des beispielhaften Systems 100 der Fig. 1 wird der entsprechend einem Aspekt der Erfindung erzeugte codierte Eingangsdatenstrom 115 zum Komprimierer 120 weitergeleitet. Vom Komprimierer 120 wird nach der bevorzugten Ausführungsform der Erfindung eine Kompressionsmethodik, z. B. Lempel-Ziv-Kompression zum Komprimieren des codierten Eingangsdatenstroms 115 auf die komprimierten Daten 125 angewandt. Wie oben erwähnt ist wiederum zu beachten, daß zum Komprimieren des codierten Eingangsdatenstroms 115 entsprechend der Erfindung und zum Realisieren der vorteilhaften Aspekte der hier beschriebenen Erfindung eine beliebige Lempel- Ziv-Kompression benutzt werden kann. Die komprimierten Daten 125 werden dann vom Kanalcodierer 130 codiert, um kanalcodierte Informationen 135 zu erzeugen. Man wird erkennen, daß Kanalcodierung der komprimierten Information Informationen hinzufügt, um Fehlererkennung und/oder -korrektur bei dem Datenablesevorgang zu ermöglichen. Zu herkömmlichen Kanalcodierungsverfahren gehören wohlbekannte Reed-Solomon-Codierung, bei der eine Folge von Symbolen codiert wird, wobei jedes Symbol durch ein oder mehrere Datenbit dargestellt wird. Diese Symbole werden dann vom Modulationscodierer 140 modulationscodiert, der den modulierten Datenstrom 145 erzeugt, der eine Kanalfolge definiert, die über einen Kommunikationskanal übertragen oder auf dem Medium 150 aufgezeichnet wird.
  • Während der Übertragung bzw. Aufzeichnung des Datenstroms werden häufig Rauschen und Störung in den Kanal/das Medium 150 eingeführt. Dabei empfangen der Modulationsdecodierer 155 und Kanaldecodierer 160 den modulierten Datenstrom 145 mit dem Rauschen und kehren auf wohlbekannte Weise die Codierungsvorgänge des Kanalcodierers 130 bzw. Modulationscodierers 140 um. Der Datenstrom vom Kanaldecodierer 160 entspricht den vom Komprimierer 120 erzeugten komprimierten Daten 125. Dieser Datenstrom wird dann erfindungsgemäß vom Dekomprimierer 165 dekomprimiert und vom Datendecodierer 170 decodiert, wodurch wie ausführlich unten anhand der Fig. 4 beschrieben der Ausgangsdatenstrom 175 entsteht.
  • Die verschiedenen Aspekte der Erfindung in der Bestätigten Kompressionsanmeldung richten sich auf die Realisierung verbesserter Kompressionsrobustheit und Kompressionsverhältnisse. Fig. 2 zeigt ein Flußdiagramm beispielhafter Operationen 200 zum Komprimieren von Daten entsprechend einem Aspekt dieser Erfindung und von Nutzen in dem beispielhaften System der Fig. 1 wie oben beschrieben. Insbesondere wird ein Eingangsdatenstrom empfangen, und die erfolgreich empfangenen Pakete werden untersucht (siehe Fig. 2, Block 210). Entsprechend diesem Aspekt der Erfindung ermöglicht die Untersuchung der erfolgreich empfangenen Pakete die Erkennung eines Paketvergangenheitszustandes als Funktion des Bestätigungsvektors (siehe Fig. 2, Block 220). Nach den bevorzugten Ausführungsformen der Erfindung ist der Paketvergangenheitszustand eine vorhergehende Menge von Paketen, aus denen die Kompression des gegenwärtigen Pakets bestimmt wird. Beispielsweise ist hinsichtlich der Lempel-Ziv 77- Kompression der Vergangenheitszustand eine direkte Korrelation mit dem in dieser Lempel-Ziv-Kompression benutzten sogenannten Verzeichnis. Interessanterweise besteht ein Hauptunterschied zwischen der obenerwähnten zustandslosen Kompression und der Streaming-Kompression von Netzpaketen in dem bestimmten, von jedem Verfahren benutzten Vergangenheitszustand. Das, heißt, bei zustandsloser Kompression wird kein Vergangenheitszustand benutzt, während bei Streaming- Kompression ein beliebiges vorhergehendes Paket als Vergangenheit zulässig ist. Diese Unterschiede gelten weiterhin hinsichtlich der Grundsätze der Erfindung.
  • Insbesondere ist nach der bevorzugten Ausführungsform der Erfindung der Paketvergangenheitszustand ein ausgewählter Vergangenheitszustand hinsichtlich bestimmter Pakete, die erfolgreich über den Kommunikationskanal, z. B. durch Empfängerseite bzw. den Empfänger, empfangen worden sind. Der Empfänger wiederum wird mit der ausgewählten Vergangenheit beliefert und darüber in Kenntnis gesetzt, um eine wirkungsvolle Dekomprimierung der übertragenen komprimierten Pakete zu ermöglichen. Vorteilhafterweise wird nach diesem Aspekt der Erfindung durch Verwendung des ausgewählten Paket-Paket-Vergangenheitszustandes die Kompressionsrobustheit und das Kompressionsverhältnis gegenüber vorherigen Streaming- Kompressionsverfahren verbessert, die an den ihnen eigenen Paketverlusten leiden.
  • Nach Identifizieren des ausgewählten Paketvergangenheitszustandes wie oben angeführt, wird dieser Vergangenheitszustand zum Codieren gewisser Informationen in die auf Übertragung vom Sender wartenden Pakete eingesetzt. Insbesondere werden entsprechend der bevorzugten Ausführungsform der Erfindung die einzelnen Pakete als Funktion des damit verbundenen entsprechenden Paketvergangenheitszustandes codiert (siehe Fig. 2, Block 230). Nach einer Ausführungsform der Erfindung wird jedem Paket ein Kopfteil vorangestellt, der beispielsweise einen Vergangenheitsvektor enthält, der die mit diesem Paket verbundene entsprechende Paketvergangenheit identifiziert. Die Aufmerksamkeit kurz der Fig. 3 zuwendend, wird ein beispielhafter Paketstrom 300 dargestellt, der entsprechend den beispielhaften Operationen der Fig. 2 komprimiert ist. Nach der Ausführungsform der Fig. 3 enthält der Paketkopf zusätzliche Posten wie beispielsweise eine Folgenummer und den Bestätigungsvektor. Das heißt, entsprechend weiteren Ausführungformen der Erfindung kann der oben erwähnte Bestätigungsvektor als Teil des Paketkopfes übertragen werden. Der Fachmann wird erkennen, daß die Bestimmung, ob der Bestätigungsvektor (wie oben beschrieben) getrennt von den codierten Paketen oder als Teil des Paketkopfes übertragen wird, eine Sache der Auslegungswahl ist, wobei die Grundsätze der Erfindung in beiden Zusammenhängen gleicherweise gelten. Beispielsweise kann der Bestätigungsvektor an den Sender unter Verwendung eines sogenannten "Huckepack"-Verfahrens übertragen werden, wenn ein Datenstrom in der entgegengesetzten Richtung vom Empfänger zum Sender besteht.
  • Beispielsweise enthält der Paketstrom 300 eine Reihe von Paketen (z. B. als Pakete 305-315 gezeigtes Paket 1 bis Paket n in der Fig. 3). Zusätzlich enthält dieses Paket einen Kopfteil (z. B. jeweils als Kopfteile 320- 330 dargestellte H&sub1; bis Hn in der Fig. 3). Weiterhin ist beispielhafterweise der Kopfteil 320 ausführlicher mit der codierten Folgenummer 335, dem Vergangenheitsvektor 340 und dem Bestätigungsvektor 345 dargestellt.
  • Entsprechend der bevorzugten Ausführungsform wird die Folgenummer, z. B. Folgenummer 335, sowohl vom Sender als auch vom Empfänger zum Identifizieren von entsprechend den Grundsätzen der Erfindung komprimierten Paketen benutzt. Die zum Codieren der Folgenummer benutzte Anzahl von Bit muß ausreichen, um die wohlbekannten nachteiligen Folgen eines sogenannten "wrapping" (Wirksprungs) während der zum Durchlaufen des gesamten Netzes benötigten maximalen Zeit zu vermeiden. Beispielhafterweise ist die Folgenummer 335 als 24 Bit lang dargestellt.
  • Weiterhin beschreibt der Vergangenheitsvektor, z. B. Vergangenheitsvektor 340, entsprechend der bevorzugten Ausführungsform die Menge vorheriger bei der Kompression benutzter Pakete, d. h. den ausgewählten Vergangenheitszustand. Hinsichtlich der bevorzugten Ausführungsform der Erfindung, die die Bestätigungspakete für die Vergangenheitsbestimmung benutzt, kann bezüglich der doppelten Laufzeit des Netzes zwischen der Übertragungszeit eines Pakets und der Zeit, wenn das Paket als Vergangenheit benutzt wird, eine zeitliche Verzögerung eintreten. Dabei wird entsprechend der bevorzugten Ausführungsform der Erfindung der Vergangenheitsvektor unter Verwendung eines Offsets und einer Bitmaske codiert, so daß der Offset von der Folgenummer des Pakets abgezogen wird, um die Folgenummer des Pakets mit der jüngsten Vergangenheit festzustellen. Durch die Bitmaske werden zusätzliche Vergangenheitspakete identifiziert, die diesem Paket mit der jüngsten Vergangenheit direkt vorangehen. Beispielhafterweise enthält hinsichtlich des Kopfteils 320 der Vergangenheitsvektor 340 8 Bit Offset und 8 Bit Maske, wodurch der Vergangenheitszustand auf höchstens 9 aufeinanderfolgende Pakete innerhalb der letzten 263 begrenzt wird.
  • Wie oben erwähnt enthält der Paketkopf der Ausführungsform der Fig. 3 auch den Bestätigungsvektor, z. B. Bestätigungsvektor 345, der eine Menge kürzlich empfangener Pakete beschreibt. Der Bestätigungsvektor enthält zumindest die Folgenummer des zuletzt empfangenen Pakets und eine Bitmaske, die den Zustand der direkt vorangegangenen Pakete beschreibt. Beispielsweise ist der Bestätigungsvektor 345 32 Bit lang, um 24 Bit für die Folgenummer und 8 Bit für die zugehörige Maske abzudecken.
  • Uns wieder der Fig. 2 zuwendend stehen nach der Codierung der Pakete als Funktion ihrer entsprechenden Paketvergangenheitszustände (siehe Fig. 2, Block 230) entsprechend den Grundsätzen der Erfindung diese Pakete zur weiteren Kompression bereit. Wie oben ausgeführt besteht ein Vorteil der vorliegenden Erfindung darin, daß sie im Zusammenhang mit einer Vielzahl bestehender Kompressionsverfahren angewandt werden kann. Wie beispielsweise ausführlicher unten beschrieben verbessern die Grundsätze der Erfindung die Kompression eines Paketstroms, auf den die wohlbekannte LZ77-Kompression angewandt wird, oder das wohlbekannte Kompressionsverfahren "Deflate". So stehen nach Anwendung des ausgewählten Kompressionsverfahrens auf die codierten Pakete (siehe Fig. 2, Block 240) die komprimierten Pakete zur Übertragung bereit (siehe Fig. 2, Block 250).
  • Nach einem Aspekt der Erfindung ist erkannt worden, daß durch Verwenden eines ausgewählten Vergangenheitszustandes als Funktion der Pakete zur Übertragung über ein Netz die Bereitstellung eines eleganten Kompressionswerkzeuges erzielt wird, mit dem verbesserte Datenkompression realisiert werden kann. Dabei ist nach einem Aspekt der Erfindung der mit einem entsprechenden Paket verbundene Paketvergangenheitszustand ein ausgewählter Vergangenheitszustand, in dem die Übertragungsseite, d. h. der Sender, mit gewissen Informationen darüber, welche Pakete von der Empfängerseite, d. h. dem Empfänger, erfolgreich empfangen worden sind, beliefert wird und darüber in Kenntnis gesetzt wird. Die Empfängerseite wiederum wird ebenfalls mit dem mit diesen Paketen verbundenen ausgewählten Vergangenheitszustand beliefert und darüber in Kenntnis gesetzt, um eine wirkungsvolle Dekomprimierung der komprimierten Pakete vom Sender zu ermöglichen. Dabei wirken der Sender und der Empfänger über Aspekte des ausgewählten Vergangenheitszustandes und der Bestätigung nach der Erfindung zusammen, um eine verbesserte Kompression über den Kommunikationskanal zu erreichen.
  • Insbesondere wird entsprechend einem Aspekt der Erfindung der Bestätigungsvektor im Zusammenhang mit dem bestimmten Kompressionsalgorithmus eingesetzt, so daß der Sender die vom Kompressionsalgorithmus benutzte Vergangenheit auf diejenigen Pakete begrenzen kann, die richtig empfangen werden. So ist entsprechend einer Ausführungsform der Erfindung der die als Vergangenheit benutzten Pakete identifizierende Vektor im komprimierten Paket enthalten und ermöglicht damit, dem Empfänger, den zum Dekomprimieren des Pakets notwendigen Paketvergangenheitszustand wiederzugewinnen. Nach weiteren Ausführungsformen der Erfindung wird der Bestätigungsvektor getrennt von den komprimierten Paketen übertragen. Während weiterhin die hier aufgeführten beispielhaften Ausführungsformen der Deutlichkeit halber eine Anordnung mit einem einzelnen Kommunikationskanal besprechen, sollte man verstehen, daß die Grundsätze der Erfindung auf gleiche Weise auf Anordnungen und Konfigurationen mit mehreren Kommunikationskanälen anwendbar sind. Vorteilhafterweise wird entsprechend diesem Aspekt der Erfindung durch Verwendung des ausgewählten Vergangenheitszustandes die Kompressionsrobustheit und das Kompressionsverhältnis gegenüber vorherigen Streaming-Kompressionsverfahren verbessert, die an der ihnen eigenen Verschlimmerung der Paketverluste leiden.
  • Fig. 4 zeigt ein Flußdiagramm beispielhafter Operationen 400 zum Dekomprimieren von Daten entsprechend einem weiteren Aspekt der Erfindung der Bestätigten Kompressionsanmeldung. Insbesondere wird aus dem empfangenen komprimierten Strom von Paketen (siehe Fig. 4, Block 410) der Vergangenheitsvektor auf paketweise Basis abgeleitet (siehe Fig. 4, Block 420). Dabei wird der mit einem Paket verbundene entsprechende Paketvergangenheitszustand als Funktion des Vergangenheitsvektors bestimmt. Beispielhafterweise beschreibt der folgende Pseudocode die Ableitung dieser Posten entsprechend einer Ausführungsform der Erfindung:
  • Wie zu erkennen ist, kann der oben beschriebene Pseudocode vom Fachmann zur Entwicklung verschiedener Programme, z. B. eines Computerprogramms in der wohlbekannten Programmierungssprache C, zur Ausführung in einem Prozessor zum Implementieren der Erfindung benutzt werden. Aus der Ableitung des Vergangenheitsvektors wird der entsprechende Paketvergangenheitszustand des der Dekomprimierung unterworfenen Pakets identifiziert (siehe Fig. 4, Block 430). Nach weiteren Ausführungsformen der Erfindung kann die Ableitung auch die Ableitung des Bestätigungsvektors und der Folgenummer aus dem Paketkopf einschließen. Entsprechend der bevorzugten Ausführungsform der Erfindung kann die Dekomprimierung des gegenwärtigen Pakets als Funktion des entsprechenden Vergangenheitszustandes fortschreiten (siehe Fig. 4, Block 440). Dabei wird das gegenwärtige unkomprimierte Paket zu dem gegenwärtig im empfangenen Paketzustand (siehe Fig. 4, Block 450) des entsprechenden Dekomprimierers, z. B. des Dekomprimierers an der Empfangsseite des bestimmten Kommunikationskanals, hinzugefügt und dadurch die Menge empfangener Pakete aktualisiert. Abschließend wird nach der Dekomprimierung des gegenwärtigen Pakets der Bestätigungsvektor aufgebaut und zurück zum Sender übertragen (siehe Fig. 4, Block 460). Wie schon aufgeführt, beschreibt der Bestätigungsvektor die Menge jüngst empfangener Pakete und wird vom Sender zum Komprimieren von zukünftigen Paketen in Verbindung mit dem ausgewählten Vergangenheitszustand entsprechend einem Aspekt der Erfindung benutzt werden.
  • Wie oben erwähnt ist erkannt worden, daß die oben aufgeführten Aspekte der Erfindung in der Bestätigten Kompressionsanmeldung und ihre Vorteile weiterhin in einem neuartigen Codierungsverfahren und Kompressionsformat realisiert werden. Dieses erfindungsgemäße Kompressionsformat und die zugehörige Codierung stellt den Gegenstand der vorliegenden Erfindung dar.
  • Wie bei gewissen wohlbekannten Kompressionsverfahren besteht eine wichtige Implementierungseigenschaft in der Feststellung von Entsprechungen. Typischerweise werden Entsprechungen in einem Teil des gegenwärtigen Pakets festgestellt, das komprimiert worden ist, oder irgendeinem der Pakete, die den Vergangenheitszustand darstellen. Beispielsweise wird bei der Zlib- Implementierung von Deflate (wie oben besprochen) eine einzige Hash-Tabelle zum Suchen nach Entsprechungen benutzt, was annehmbare Ergebnisse liefert, wenn es beispielsweise in Verbindung mit Streaming-Kompression benutzt wird. Demgegenüber, und vorteilhafterweise, wird bei der vorliegenden Erfindung eine getrennte Hash-Tabelle für jedes Paket erzeugt und unterhalten. Insbesondere zeigt Fig. 5 ein Flußdiagramm beispielhafter Operationen 5 zum Komprimieren von Daten entsprechend einem Aspekt der vorliegenden Erfindung. Aus einer Menge von Eingangsdaten (siehe Fig. 5, Block 510) wird für jedes Paket eine getrennte Hash-Tabelle erzeugt und unterhalten (siehe Fig. 5, Block 520). Das heißt, die vorliegende Erfindung erzeugt und unterhält eine entsprechende getrennte Hash-Tabelle für jedes Paket, wobei diese Hash-Tabelle unabhängig vom Inhalt anderer Pakete aufgebaut wird. Entsprechend einer bevorzugten Ausführungsform der Erfindung wird die bestimmte Hash-Tabelle mit seinem entsprechenden Paket aufgebaut, sowie das Paket komprimiert wird. Wie schon erwähnt, wird entsprechend weiteren Ausführungsformen der Erfindung die entsprechende Hash-Tabelle für das Paket vor der Komprimierung oder nach der Komprimierung aufgebaut.
  • So werden entsprechend einer bevorzugten Ausführungsform der Erfindung einzelne Pakete hinsichtlich der entsprechenden Hash-Tabellen für die Pakete in dem Vergangenheitszustand eines Pakets codiert (siehe Fig. 5, Block 530). Das heißt, zum Codieren eines bestimmten Pakets "P" wird eine zugehörige Menge von Paketen "S" eingesetzt, die einen Paketvergangenheitszustand definieren. Entsprechend einem Aspekt der Erfindung besitzt jedes Paket in S eine damit verbundene entsprechende Hash-Tabelle. So wird die Codierung des bestimmten Pakets P nach einem Aspekt der Erfindung in bezug auf die entsprechenden Hash-Tabellen für die Pakete in S bewirkt. Nach einem Aspekt der Erfindung indexiert die entsprechende Hash- Tabelle für das Paket die Daten im gesamten Paket als Funktion einzelner Teilketten. Dabei enthält die Codierung von P das Aufsuchen einer Reihe von Teilketten von P in den mit den Paketen in S verbundenen Hash-Tabellen. Beispielhafterweise sind nach der bevorzugten Ausführungsform der Erfindung diese Teilketten drei Byte lang. So bestimmt die gesamte Bytegröße eines bestimmten Pakets die Anzahl von Byteketten, die innerhalb der entsprechenden Hash- Tabelle für dieses Paket indexiert sind. Dabei bietet das Benutzen einer paketweisen Hash-Tabelle in Verbindung mit eine r Paket-Paket-Kompression mit veränderlichem Vergangenheitszustand eine wirkungsvolle und robuste Gesamtkompression der Pakete.
  • Insbesondere wird entsprechend einem Aspekt der vorliegenden Erfindung eine Codierung mit veränderlicher Länge in Verbindung mit der Unterhaltung einer getrennten Hash-Tabelle für jedes Paket benutzt. Nach der bevorzugten Ausführungsform der Erfindung benutzt die Codierung mit veränderlicher Länge Entsprechungslängen, Offsets und Direktentsprechungen. Die Entsprechungslängen werden so codiert (siehe Fig. 5, Block 540), daß alle Phrasen mit einer Entsprechungslänge beginnen, wobei Direktentsprechungen mit einer Entsprechung von Länge null gefolgt von einer Codierung der Direktentsprechung codiert werden. Entsprechend der bevorzugten Ausführungsform beträgt die kleinste Entsprechung mit einer Länge von nicht null beispielsweise drei Byte und die maximale Entsprechung ist durch die bestimmte Paketgröße begrenzt. Beispielhafterweise zeigt die Tabelle 1 unten eine Codierung von bestimmten Entsprechungslängen entsprechend der bevorzugten Ausführungsform: TABELLE 1
  • Weiterhin werden entsprechend der bevorzugten Ausführungsform der vorliegenden Erfindung Direktentsprechungen unter Verwendung eines Prädiktionsverfahrens codiert (siehe Fig. 5, Block 550): (a) es wird Codierung mit einer 8-Bit-Vorgabe- Direktentsprechung angewandt; abgesehen von (2), wenn vier Direktentsprechungen in einer Reihe in den Bereich von einschließlich 32 bis 127 fallen, wird eine Codierung mit veränderlicher Länge benutzt, bis eine Direktentsprechung außerhalb des Bereichs codiert wird. Die 7 niedrigstwertigen Bit werden für Werte innerhalb des angegebenen Bereichs weggelassen; und (3) andere Direktentsprechungen werden durch Zufügen von 64 Bit Modulo 256 zur Nummer codiert. Die resultierende Nummer wird in 9 Bit codiert, wenn sie weniger als 96 beträgt, oder sonst in 10 Bit.
  • Entsprechend der bevorzugten Ausführungsform der Erfindung werden Entsprechungs-Offsets definiert und codiert (siehe Fig. 5, Block 560) als der Abstand zwischen der entsprechenden Phrase und dem zuletzt codierten Eingangsbyte. Ein Offset beträgt beispielsweise 14 Bit und wird in zwei Stücken codiert: (1) einem Bereich und (2) der Position innerhalb des Bereichs, wobei der Bereich die zur Codierung der Position benutzte Anzahl von Bit bestimmt, wobei weniger Bit zum Codieren von näheren Offsets benutzt werden. Beispielsweise zeigt die Tabelle 2 unten eine Codierung von Entsprechungs-Offsets entsprechend der bevorzugten Ausführungsform: TABELLE 2
  • Entsprechend der bevorzugten Ausführungsform der Erfindung indexiert die paketweise Hash-Tabelle die Byteketten im Paket, indexiert jedoch nicht Daten in irgendwelchen anderen Paketen. Daher kann ein gültiger Index für eine willkürliche Menge von Paketen unter Verwendung der entsprechenden Hash-Tabellen hergestellt werden, da die Hash-Tabelle jedes Pakets nur von den Daten in diesem bestimmten Paket abhängig ist. Das heißt, entsprechend der bevorzugten Ausführungsform wird die Suche nach einer Kette durch eine Abfrage der Hash-Tabelle für das gegenwärtige Paket gefolgt von den Hash-Tabellen für jedes der Pakete in dem veränderlichen Vergangenheitszustand beginnend bei dem zuletzt gesendeten Paket bewirkt. Man wird erkennen, daß die paketweisen Hash-Tabellen der bevorzugten Ausführungsform auch einzeln verbundene, durch einen ungültigen Eintrag abgeschlossene Offsetketten unterhalten und Hash-Tabellen durch Ändern des gültigen Offsetbereichs für die Hash-Tabelle wiederherstellen (und nicht durch Löschen der gesamten Tabelle). Weiterhin wird man erkennen, daß zur Bestimmung der maximalen Anzahl von Ketten, die während der Suche nach einer Entsprechung überprüft werden, ein Kompressionsgradparameter, z. B. 6 Ketten, benutzt wird. Man wird erkennen, daß der Kompressionsgradparameter ein Anzeiger zur Bestimmung der während der Kompression benutzten Rechenintensität ist, je intensiver, desto mehr Berechnung wird bei der Komprimierung der Daten durchgeführt.
  • Zur weiteren Darstellung der verschiedenen Aspekte der Erfindung und Vorteile wurden die Grundsätze der Erfindung im Zusammenhang mit einem Vergleich auf die wohlbekannte zlib-Kompression Deflate wie schon erwähnt angewandt. Insbesondere zeigt die Fig. 6 Ergebnisse 600 und 610 für Bandbreitenverhältnissimulation für Paketgrößen von 1600 Byte bzw. 125 Byte. Bandbreitenverhältnis-Simulationsergebnisse 600 und 610 enthalten Ergebnisse in bezug auf zwei verschiedene Einstellungen des Kompressionsgrades. Das heißt, Ergebnisse 620 und 640 vergleichen die beiden Kompressionsverfahren mit einem Kompressionsgradparameter von sechs (6) und Ergebnisse 630 und 650 vergleichen die beiden Kompressionsverfahren mit einer Kompressionseinstellung von eins. Man wird aus der Untersuchung der Ergebnisse der Bandbreitenverhältnis-Simulationsergebnisse 600 und 610 verstehen, daß die insgesamt entsprechend den Grundsätzen der Erfindung erzielte Kompression (d. h. "thwack-6", siehe Ergebnisse 640; und "thwack-1", siehe Ergebnisse 650) der von Deflate überlegen ist (d. h. "zlib-6", siehe Ergebnisse 620; und "zlib-1", siehe Ergebnisse 630) und in bezug auf die Komprimierung von kleineren Paketgrößen deutlich überlegen ist.
  • Die verschiedenen Aspekte der vorliegenden Erfindung können in der Form von Verfahren und Vorrichtungen zur Ausübung dieser Verfahren verkörpert sein. Auch kann die Erfindung in der Form von in greifbaren Medien wie beispielsweise Disketten, CD-ROMs, Festplatten oder sonstigem maschinenlesbaren Speichermedium verkörpertem Programmcode verkörpert sein, wobei, wenn der Programmcode in eine Maschine wie beispielsweise einen Computer, geladen und davon ausgeführt wird, die Maschine eine Vorrichtung zur Ausübung der Erfindung wird. Auch kann die Erfindung in der Form von Programmcode beispielsweise in einem Speichermedium verkörpert sein, der in eine Maschine geladen und/oder von ihr ausgeführt wird oder über irgendein Übertragungsmedium wie beispielsweise elektrische Verdrahtung oder Verkabelung, über Glasfaser oder über elektromagnetische Abstrahlung übertragen wird, wobei, wenn der Programmcode in eine Maschine wie beispielsweise einen Computer geladen und davon ausgeführt wird, die Maschine eine Vorrichtung zur Ausübung der Erfindung wird. Bei Implementierung auf einem Universalprozessor kombinieren sich die Programmcodesegmente mit dem Prozessor, um eine einmalige Vorrichtung bereitzustellen, die analog zu bestimmten Logikschaltungen wirkt.
  • Durch das Obige werden nur die Grundsätze der vorliegenden Erfindung dargestellt. Man wird daher erkennen, daß der Fachmann in der Lage sein wird, verschiedene Anordnungen auszuarbeiten, die, obwohl hier nicht ausdrücklich beschrieben oder dargestellt, die Erfindung entsprechend den Ansprüchen verkörpern. Weiterhin sollen alle hier aufgeführten Beispiele und bedingte Sprache im Prinzip ausdrücklich nur für Lehrzwecke bestimmt sein, um dem Leser bei dem Verständnis der Grundsätze der Erfindung und der durch die Anmelderin beigetragenen Ideen zur Fortbildung der Technik behilflich zu sein, und sind so auszulegen, daß sie keine Einschränkung solcher spezifisch aufgeführten Beispiele und Bedingungen darstellen. Weiterhin sollen alle hiesigen Aufführungen von Grundsätzen, Aspekten und Ausführungsformen der Erfindung sowie spezifische Beispiele derselben sowohl strukturelle als auch funktionelle Entsprechungen derselben umfassen. Zusätzlich ist beabsichtigt, daß solche Entsprechungen sowohl gegenwärtig bekannte Entsprechungen als auch zukünftig entwickelte Entsprechungen, d. h. alle entwickelten Elemente, die ungeachtet der Struktur dieselbe Funktion durchführen, einschließen.
  • So wird der Fachmann beispielsweise erkennen, daß die vorliegenden Blockschaltbilder konzeptmäßige Ansichten beispielhafter Schaltungen darstellen, die die Grundsätze der Erfindung verkörpern. Auf ähnliche Weise wird man erkennen, daß alle Flußdiagramme, Zustandsübergangsdiagramme, Pseudocodes, Programmcodes und dergleichen verschiedene Vorgänge darstellen, die im wesentlichen in einem computerlesbaren Medium dargestellt und so durch einen Computer, eine Maschine oder einen Prozessor ausgeführt werden können, ganz gleich, ob ein derartiger Computer, eine derartige Maschine oder ein derartiger Prozessor ausdrücklich dargestellt ist oder nicht.

Claims (15)

1. Datenkommunikationsverfahren mit dem Aufteilen eines Eingangsdatenstroms in eine Mehrzahl von Paketen; gekennzeichnet durch folgendes:
Identifizieren eines jeweiligen Paketvergangenheitszustandes für bestimmte der Pakete als Funktion mindestens eines Bestätigungsvektors (220);
Erzeugen einer jeweiligen Hash-Tabelle für jedes Paket der bestimmten der Pakete (520); und
Codieren der bestimmten der Mehrzahl von Paketen als Funktion der damit verbundenen jeweiligen Paketvergangenheit, wobei jedes codierte Paket mit der damit verbundenen jeweiligen Hash-Tabelle codiert wird (530).
2. Verfahren nach Anspruch 1, wobei die mit dem Paket verbundene jeweilige Hash-Tabelle als Funktion mindestens eines Teils der Daten in dem Paket identifiziert wird.
3. Verfahren nach Anspruch 2, wobei die mit dem Paket verbundene jeweilige Hash-Tabelle eine Reihe von Byte-Teilketten enthält, wobei die Reihe von Byte- Teilketten als Funktion des Teils der Daten in dem Paket bestimmt wird.
4. Verfahren nach Anspruch 2, wobei das Codieren der Mehrzahl von Paketen weiterhin folgendes umfaßt: Codieren einer Mehrzahl von Entsprechungslängen, einer Mehrzahl von Direktentsprechungen und einer Mehrzahl von Entsprechungs-Offsets als Funktion des Teils der Daten in dem Paket (540, 550, 560).
5. Verfahren nach Anspruch 3, wobei das Codieren der Pakete weiterhin folgendes umfaßt: Identifizieren einer bestimmten Kette des Eingangsdatenstroms durch Durchsuchen der mit den Paketen verbundenen jeweiligen Hash-Tabellen.
6. Verfahren nach Anspruch 5, wobei die Suchoperation weiterhin folgendes umfaßt: Aufbauen eines Indexes als Funktion der jeweiligen Hash-Tabellen und Benutzen des Indexes während der Suche zum Identifizieren der bestimmten Byte-Teilkette.
7. Verfahren nach Anspruch 5, wobei die Suche als Funktion des jeweiligen Paketvergangenheitszustandes des Pakets durchgeführt wird.
8. Verfahren nach Anspruch 7, wobei eine Anzahl von während der Durchsuchung der entsprechenden Hash- Tabellen durchgeführten Durchsuchungen unter Verwendung eines Kompressionsgradparameters bestimmt wird.
9. Verfahren nach Anspruch 8, wobei der Kompressionsgradparameter als mindestens acht Zeichenketten definiert wird.
10. Verfahren nach einem der vorgehenden Ansprüche mit dem Schritt des Übertragens des codierten Datenstroms über einen Kommunikationskanal von einem Sendeort zu einem Empfangsort (250).
11. Vorrichtung zum Verarbeiten eines Digitalsignals mit folgendem:
einem Empfänger zum Empfangen eines codierten Digitalsignals aus einem Kommunikationskanal; und
einem Decodierer zum Decodieren des empfangenen codierten Digitalsignals und Wiedergewinnen eines Eingangsstroms von Digitaldaten aus dem decodierten Digitalsignal;
dadurch gekennzeichnet, daß
der Decodierer zum Decodieren eines Digitalsignals geeignet ist, das durch folgendes erzeugt wird:
Aufteilen eines Eingangs-Digitaldatenstroms in eine Mehrzahl von Paketen; Identifizieren eines jeweiligen Paketvergangenheitzustandes für bestimmte der Pakete als Funktion mindestens eines Bestätigungsvektors; Erzeugen einer jeweiligen Hash-Tabelle für jedes der Pakete; Codieren jedes Pakets als Funktion der damit verbundenen jeweiligen Paketvergangenheit zum Erzeugen eines codierten Digitalsignals, wobei jedes der codierten Pakete zusammen mit der jeweiligen Hash- Tabelle des Pakets codiert wird; und Anlegen des codierten Digitalsignals an den Kommunikationskanal.
12. Vorrichtung nach Anspruch 11, wobei die mit dem Paket verbundene jeweilige Hash-Tabelle als Funktion mindestens eines Teils der im Paket enthaltenen Digitaldaten identifiziert wird.
13. Vorrichtung nach Anspruch 12, wobei die mit dem Paket verbundene jeweilige Hash-Tabelle eine Reihe von Byte-Teilketten enthält, so daß bestimmte der Byte-Teilketten durch Durchsuchen der jeweiligen Hash-Tabellen der Pakete identifiziert werden, wobei die Durchsuchung als Funktion des mit dem Paket verbundenen jeweiligen Paketvergangenheitszustandes durchgeführt wird.
14. Vorrichtung nach Anspruch 13, wobei eine Höchstzahl von während der Durchsuchung durchgeführten Durchsuchungen unter Verwendung eines Kompressionsgradparameters festgelegt wird.
15. Vorrichtung nach Anspruch 14, wobei der Kommunikationskanal Teil eines Internet-Protokoll-Netzes ist.
DE60000912T 2000-03-16 2000-10-23 Verfahren und Vorrichtung zur Datenkomprimierung von Netzwerkdatenpaketen unter Verwendung von paketweisen Hash Tabellen Expired - Lifetime DE60000912T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/526,844 US6236341B1 (en) 2000-03-16 2000-03-16 Method and apparatus for data compression of network packets employing per-packet hash tables

Publications (2)

Publication Number Publication Date
DE60000912D1 DE60000912D1 (de) 2003-01-16
DE60000912T2 true DE60000912T2 (de) 2003-09-04

Family

ID=24099031

Family Applications (2)

Application Number Title Priority Date Filing Date
DE60000912T Expired - Lifetime DE60000912T2 (de) 2000-03-16 2000-10-23 Verfahren und Vorrichtung zur Datenkomprimierung von Netzwerkdatenpaketen unter Verwendung von paketweisen Hash Tabellen
DE60033184T Expired - Lifetime DE60033184T2 (de) 2000-03-16 2000-10-23 Verfahren und Vorrichtung zur Datenkomprimierung von Netzwerkdatenpaketen unter Verwendung von paketweisen Hash Tabellen

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE60033184T Expired - Lifetime DE60033184T2 (de) 2000-03-16 2000-10-23 Verfahren und Vorrichtung zur Datenkomprimierung von Netzwerkdatenpaketen unter Verwendung von paketweisen Hash Tabellen

Country Status (5)

Country Link
US (1) US6236341B1 (de)
EP (2) EP1258998B1 (de)
JP (1) JP3665271B2 (de)
CA (1) CA2334497C (de)
DE (2) DE60000912T2 (de)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6952823B2 (en) * 1998-09-01 2005-10-04 Pkware, Inc. Software patch generator using compression techniques
JP4193262B2 (ja) * 1999-01-19 2008-12-10 ソニー株式会社 復号装置およびデータ再生装置、並びに復号方法
US6601104B1 (en) 1999-03-11 2003-07-29 Realtime Data Llc System and methods for accelerated data storage and retrieval
US6318156B1 (en) * 1999-10-28 2001-11-20 Micro Motion, Inc. Multiphase flow measurement system
US6711164B1 (en) * 1999-11-05 2004-03-23 Nokia Corporation Method and apparatus for performing IP-ID regeneration to improve header compression efficiency
US20050015608A1 (en) * 2003-07-16 2005-01-20 Pkware, Inc. Method for strongly encrypting .ZIP files
US8230482B2 (en) 2000-03-09 2012-07-24 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143199A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143237A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060155788A1 (en) * 2000-03-09 2006-07-13 Pkware, Inc. System and method for manipulating and managing computer archive files
US7844579B2 (en) * 2000-03-09 2010-11-30 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143249A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060173847A1 (en) * 2000-03-09 2006-08-03 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143180A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US6879988B2 (en) * 2000-03-09 2005-04-12 Pkware System and method for manipulating and managing computer archive files
US8959582B2 (en) 2000-03-09 2015-02-17 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143253A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US6388584B1 (en) * 2000-03-16 2002-05-14 Lucent Technologies Inc. Method and apparatus for data compression of network packets
US6516035B1 (en) * 2000-04-07 2003-02-04 Actisys Corporation Intelligent encoding method for wireless data communication and control
US6501397B1 (en) * 2000-05-25 2002-12-31 Koninklijke Philips Electronics N.V. Bit-plane dependent signal compression
US6373409B1 (en) * 2000-06-19 2002-04-16 International Business Machines Corporation Method and computer program product for implementing text conversion table compression
US8692695B2 (en) 2000-10-03 2014-04-08 Realtime Data, Llc Methods for encoding and decoding data
US9143546B2 (en) 2000-10-03 2015-09-22 Realtime Data Llc System and method for data feed acceleration and encryption
US7386046B2 (en) 2001-02-13 2008-06-10 Realtime Data Llc Bandwidth sensitive data compression and decompression
ITTO20020325A1 (it) * 2002-04-12 2003-10-13 Telecom Italia Lab Spa ,,procedimento per organizzare la comunicazione fra oggetti gestori ed oggetti gestiti in una rete telematica.relativa architettura e prodot
US20050259819A1 (en) * 2002-06-24 2005-11-24 Koninklijke Philips Electronics Method for generating hashes from a compressed multimedia content
US7580429B1 (en) * 2002-09-05 2009-08-25 U.S. Robotics System and methods for improving data compression
US20050086383A1 (en) * 2003-10-17 2005-04-21 Nokia Corporation Optimizing the compression efficiency in a packet data communication
JP4363204B2 (ja) * 2004-02-04 2009-11-11 ヤマハ株式会社 通信端末
US7019674B2 (en) * 2004-02-05 2006-03-28 Nec Laboratories America, Inc. Content-based information retrieval architecture
JP2006033275A (ja) * 2004-07-14 2006-02-02 Fujitsu Ltd ループフレーム検知装置およびループフレーム検知方法
US7592935B2 (en) * 2005-03-10 2009-09-22 Nec Laboratories America, Inc. Information retrieval architecture for packet classification
JP4587312B2 (ja) * 2005-09-16 2010-11-24 株式会社リコー 符号変換装置及び符号変換方法
DE102006011022A1 (de) * 2006-03-09 2007-10-25 Netviewer Gmbh Zweidimensionales adaptives Bildkompressionsverfahren
US8391148B1 (en) * 2007-07-30 2013-03-05 Rockstar Consortion USLP Method and apparatus for Ethernet data compression
US7623047B2 (en) * 2007-10-30 2009-11-24 Hewlett-Packard Development Company, L.P. Data sequence compression
US9160611B2 (en) * 2009-04-22 2015-10-13 Webroot Inc. System and method for performing longest common prefix strings searches
US8750370B2 (en) * 2009-09-04 2014-06-10 Brocade Communications Systems, Inc. Congestion-adaptive compression
WO2013052426A1 (en) 2011-10-03 2013-04-11 Facebook, Inc. Providing user metrics for an unknown dimension to an external system
US8775776B2 (en) 2012-01-18 2014-07-08 International Business Machines Corporation Hash table using hash table banks
US9246511B2 (en) * 2012-03-20 2016-01-26 Sandisk Technologies Inc. Method and apparatus to process data based upon estimated compressibility of the data
US10019457B1 (en) 2013-01-22 2018-07-10 Amazon Technologies, Inc. Multi-level compression for storing data in a data store
US9384204B2 (en) 2013-05-22 2016-07-05 Amazon Technologies, Inc. Efficient data compression and analysis as a service
US10454498B1 (en) * 2018-10-18 2019-10-22 Pure Storage, Inc. Fully pipelined hardware engine design for fast and efficient inline lossless data compression

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4464650A (en) 1981-08-10 1984-08-07 Sperry Corporation Apparatus and method for compressing data signals and restoring the compressed data signals
US4558302A (en) 1983-06-20 1985-12-10 Sperry Corporation High speed data compression and decompression apparatus and method
US4730348A (en) * 1986-09-19 1988-03-08 Adaptive Computer Technologies Adaptive data compression system
US5146221A (en) * 1989-01-13 1992-09-08 Stac, Inc. Data compression apparatus and method
US5442350A (en) 1992-10-29 1995-08-15 International Business Machines Corporation Method and means providing static dictionary structures for compressing character data and expanding compressed data
US5550540A (en) 1992-11-12 1996-08-27 Internatioal Business Machines Corporation Distributed coding and prediction by use of contexts
US5369605A (en) 1993-07-07 1994-11-29 Dell Usa, L.P. Incremental search content addressable memory for increased data compression efficiency
US5521597A (en) * 1993-08-02 1996-05-28 Mircosoft Corporation Data compression for network transport
WO1995019662A1 (en) * 1994-01-13 1995-07-20 Telco Systems, Inc. Data compression apparatus and method
JP3397431B2 (ja) 1994-03-16 2003-04-14 富士通株式会社 データ圧縮方法および装置ならびにデータ復元方法および装置
US5701125A (en) 1994-06-15 1997-12-23 The United States Of America As Represented By The United States Department Of Energy Method for compression of data using single pass LZSS and run-length encoding
US5572206A (en) 1994-07-06 1996-11-05 Microsoft Corporation Data compression method and system
US5572209A (en) 1994-08-16 1996-11-05 International Business Machines Corporation Method and apparatus for compressing and decompressing data
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
US5608396A (en) 1995-02-28 1997-03-04 International Business Machines Corporation Efficient Ziv-Lempel LZI data compression system using variable code fields
US5663721A (en) 1995-03-20 1997-09-02 Compaq Computer Corporation Method and apparatus using code values and length fields for compressing computer data
US5659737A (en) * 1995-08-01 1997-08-19 Oracle Corporation Methods and apparatus for data compression that preserves order by using failure greater than and failure less than tokens
US5710719A (en) * 1995-10-19 1998-01-20 America Online, Inc. Apparatus and method for 2-dimensional data compression
US5933104A (en) * 1995-11-22 1999-08-03 Microsoft Corporation Method and system for compression and decompression using variable-sized offset and length fields
US5703581A (en) 1996-06-14 1997-12-30 Lucent Technologies Inc. Method and apparatus for data compression and decompression
US5831558A (en) * 1996-06-17 1998-11-03 Digital Equipment Corporation Method of compressing and decompressing data in a computer system by encoding data using a data dictionary
US6021198A (en) * 1996-12-23 2000-02-01 Schlumberger Technology Corporation Apparatus, system and method for secure, recoverable, adaptably compressed file transfer
JP3372455B2 (ja) * 1997-07-03 2003-02-04 富士通株式会社 パケット中継制御方法,パケット中継装置およびプログラム記憶媒体
US6055538A (en) * 1997-12-22 2000-04-25 Hewlett Packard Company Methods and system for using web browser to search large collections of documents
US6075470A (en) * 1998-02-26 2000-06-13 Research In Motion Limited Block-wise adaptive statistical data compressor

Also Published As

Publication number Publication date
DE60033184T2 (de) 2007-11-15
EP1258998B1 (de) 2007-01-24
EP1134901B1 (de) 2002-12-04
EP1258998A3 (de) 2005-03-09
EP1134901A1 (de) 2001-09-19
DE60033184D1 (de) 2007-03-15
EP1258998A2 (de) 2002-11-20
CA2334497A1 (en) 2001-09-16
JP2001285075A (ja) 2001-10-12
US6236341B1 (en) 2001-05-22
CA2334497C (en) 2005-06-07
JP3665271B2 (ja) 2005-06-29
DE60000912D1 (de) 2003-01-16

Similar Documents

Publication Publication Date Title
DE60000912T2 (de) Verfahren und Vorrichtung zur Datenkomprimierung von Netzwerkdatenpaketen unter Verwendung von paketweisen Hash Tabellen
DE60001210T2 (de) Verfahren und Vorrichtung zur Datenkomprimierung von Netzwerkdatenpaketen
DE10301362B4 (de) Blockdatenkompressionssystem, bestehend aus einer Kompressionseinrichtung und einer Dekompressionseinrichtung, und Verfahren zur schnellen Blockdatenkompression mit Multi-Byte-Suche
DE60000380T2 (de) Verfahren und Vorrichtung zur Datenkompression
DE68925798T2 (de) Datenverdichtung
DE69318446T2 (de) Verfahren und Vorrichtung zur Datenkompression und -dekompression für eine Übertragungsanordnung
DE4340591C2 (de) Datenkompressionsverfahren unter Verwendung kleiner Wörterbücher zur Anwendung auf Netzwerkpakete
DE69905343T2 (de) Blockweiser adaptiver statistischer datenkompressor
DE69024629T2 (de) Vorrichtung zur kompression von datenlängen und datenfolgen
DE19622045C2 (de) Datenkomprimierungs- und Datendekomprimierungsschema unter Verwendung eines Suchbaums, bei dem jeder Eintrag mit einer Zeichenkette unendlicher Länge gespeichert ist
DE69527679T2 (de) Verfahren zur Datenkomprimierung und -Dekomprimierung
DE69429482T2 (de) Methode und Einrichtung zur Datenkompression
DE68924138T2 (de) Daten-kompressions/dekompressionsanordnung.
DE69833094T2 (de) Verfahren und Vorrichtung zur adaptiven Datenkompression mit höherem Kompressionsgrad
EP1303966B1 (de) Header-kompressionsverfahren für netzwerkprotokolle
DE69834695T2 (de) Verfahren und Vorrichtung zur Datenkompression
DE69026924T2 (de) Datenkomprimierungsverfahren
US7764202B2 (en) Lossless data compression with separated index values and literal values in output stream
EP1258085B1 (de) Verfahren zum anpassen der einem turbo-codierer zuzuführenden datenblöcke und entsprechende kommunikationsvorrichtung
DE69522497T2 (de) System und Verfahren zur Datenkompression
DE3485824T2 (de) Verfahren zur datenkompression.
DE60009502T2 (de) Lzw datenkomprimierung/dekomprimierungsgerät und - verfahren mit eingebetteter lauflängenkodierung/dekodierung
DE69524999T2 (de) Verfahren zum Komprimieren und Dekomprimieren von Dateien
DE69328811T2 (de) Opcode abhängige Komprimierung für ein Window-System.
DE69025160T2 (de) Verfahren zur Dekodierung komprimierter Daten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition