DE60001210T2 - Verfahren und Vorrichtung zur Datenkomprimierung von Netzwerkdatenpaketen - Google Patents

Verfahren und Vorrichtung zur Datenkomprimierung von Netzwerkdatenpaketen

Info

Publication number
DE60001210T2
DE60001210T2 DE60001210T DE60001210T DE60001210T2 DE 60001210 T2 DE60001210 T2 DE 60001210T2 DE 60001210 T DE60001210 T DE 60001210T DE 60001210 T DE60001210 T DE 60001210T DE 60001210 T2 DE60001210 T2 DE 60001210T2
Authority
DE
Germany
Prior art keywords
packets
packet
history
vector
compressed
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
DE60001210T
Other languages
English (en)
Other versions
DE60001210D1 (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 DE60001210D1 publication Critical patent/DE60001210D1/de
Publication of DE60001210T2 publication Critical patent/DE60001210T2/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)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Detection And Prevention Of Errors In Transmission (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 Datenverarbeitungserfordernisse 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 größ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 4730348 ist ein Datenkompressionssystem offenbart, bei dem Eingangsdaten unter Verwendung einer ausgewählten mehrerer von Kodierungstabellen kodiert werden, von denen jede ein Verfahren zum Kodieren von Daten unter Verwendung von Codes definiert, deren Länge sich im ungekehrten Verhältnis zur Häufigkeit von Dateneinheiten in einer vordefinierten Datenmenge verändert. Jedesmal wenn eine Auswertung der kodierten Daten anzeigt, daß die Daten nicht wirksam komprimiert werden, ruft das System einen Tabellenwechsler zum Auswählen von derjenigen unter den Kodierungstabellen auf, die die Bitlänge der kodierten Daten für eine vorgewählte Probe der Eingangsdaten minimiert. Wenn eine neue Tabelle ausgewählt wird, wird den kodierten Daten ein Tabellenwechselcode hinzugefügt, der der ausgewählten Tabelle entspricht. Weiterhin baut ein dynamischer Tabellenbauer eine in die Menge verfügbarer Kodierungstabellen einzuschließende neue Kodierungstabelle unter Verwendung eines vorgewählten Teils der vorher kodierten Eingangsdaten, bei dem eine Auswertung der kodierten Daten anzeigt, daß eine neue Kodierungstabelle die Kompression verbessern wird. Jede Datenkomprimierungseinheit enthält einen Datendekodierer zum Dekodieren von durch die andere Einheit über den Kanal gesendeten kodierten Daten. So benutzt der Datendekodierer eine den Kodierungstabellen entsprechende Menge von Dekodierungstabellen, Mittel zum Auswählen einer neuen Tabelle, wenn ein Tabellenwechselcode empfangen wird, und Mittel zum Bauen einer neuen Dekodierungstabelle, wenn sie einen Tabellenwechselcode empfängt, der anzeigt, daß die dem Tabellenwechselcode folgenden kodierten Daten unter Verwendung einer neuen Kodierungstabelle kodiert wurden.
  • 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 Kommunikationsverfahren und eine Kommunikationseinrichtung, 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 Komprimierungsverfahren erreicht werden. Nach einem Aspekt der Erfindung wird ein ausgewählter Vergangenheitszustand eingesetzt, der als Funktion eines sogenannten Bestätigungsvektors bestimmt wird. Nach einem Aspekt der Erfindung enthält der Bestätigungsvektor Informationen in bezug auf die Kennzeichnung von Paketen, die in einer vorherigen Übertragung über einen Kommunikationskanal erfolgreich empfangen worden sind. Das heißt nach einem Aspekt der Erfindung ist der Paketvergangenheitszustand ein mit einem entsprechenden Paket verbundener ausgewählter Vergangenheitszustand. Als solche ist eine erste Seite des Kommunikationskanals, z. B. die Senderseite, ausgestattet mit und in Kenntnis gewisser Informationen darüber, welche Pakete von der zweiten Seite des Kommunikationskanals, z. B. der Empfängerseite, erfolgreich empfangen worden sind. Der Dekomprimierer wiederum ist ebenfalls ausgestattet mit und in Kenntnis der ausgewählten Vergangenheit, um eine wirkungsvolle Dekomprimierung der übertragenen komprimierten Pakete vom Sender zu ermöglichen. Das heißt Dekomprimierung tritt als Funktion dessen ein, welche Pakete als Vergangenheit benutzt wurden, d. h. des ausgewählten Vergangenheitszustandes, während der Komprimierung derartiger Pakete. Als solche arbeiten der Komprimierer und Dekomprimierer (beidseitig des Kommunikationskanals) zusammenwirkend durch ausgewählte Vergangenheitszustands- und Bestätigungsaspekte der Erfindung dahingehend, verbesserte Komprimierung über einen Kommunikationskanal zu erreichen.
  • Nach der bevorzugten Ausführungsform der Erfindung werden die Pakete kodiert und ihnen ein Kopfteil vorangestellt, der mindestens einen Vergangenheitsvektor enthält, wobei dieser Vergangenheitszustand den mit einem Paket verbundenen entsprechenden Vergangenheitszustand kennzeichnet. Weiterhin wird nach einem Aspekt der Erfindung der Bestätigungsvektor hergestellt und zum Sender übermittelt, wodurch der spezifische Komprimierungsalgorithmus am Sender die vom Komprimierungsalgorithmus benutzte Vergangenheit auf die Pakete begrenzen kann, die erfolgreich empfangen wurden. So ist nach der bevorzugten Ausführungsform der als die Vergangenheit benutzte die Pakete kennzeichnende Vektor im komprimierten Paket enthalten und ermöglicht damit dem Empfänger, den zum Dekomprimieren des Pakets notwendigen Paketvergangenheitszustand wieder herzustellen.
  • Vorteilhafterweise werden nach einem Aspekt der Erfindung gesteigerte Robustheit und größere Kompressionsverhältnisse mit einer großen Vielzahl von Komprimierungsverfahren oder Kommunikationskanalanordnungen erreicht. Das heißt die Grundsätze der Erfindung sind von einem beliebigen bestimmten Komprimierungsverfahren unabhängig, und die Vorteile der Benutzung der verschiedenen Aspekte der Erfindung werden daher mit einer großen Vielzahl von Komprimierungsmethodiken und Kommunikationskanalkonfigurationen 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 einem Aspekt der Erfindung und nützlich in dem beispielhaften System der Fig. 1;
  • Fig. 3 zeigt einen beispielhaften, nach den beispielhaften erfindungsgemäßen Operationen der Fig. 2 komprimierten Paketstrom;
  • Fig. 4 zeigt ein Flußdiagramm von beispielhaften Operationen zum Dekomprimieren von Daten nach einem Aspekt der Erfindung und nützlich im beispielhaften System der Fig. 1; und
  • Fig. 5 zeigt Komprimierungsergebnisse für verschiedene Paketgrößen als Vergleich zwischen bekannten Komprimierungsverfahren und der Komprimierung 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
  • Ein Aspekt der Erfindung richtet sich auf ein Kommunikationsverfahren und eine Kommunikationseinrichtung, 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 Komprimierungsverfahren erreicht werden. Nach einem Aspekt der Erfindung wird ein ausgewählter Vergangenheitszustand eingesetzt, der als Funktion eines sogenannten Bestätigungsvektors bestimmt wird. Nach einem Aspekt der Erfindung enthält der Bestätigungsvektor Informationen in bezug auf die Kennzeichnung von Paketen, die in einer vorherigen Übertragung über einen Kommunikationskanal erfolgreich empfangen worden sind. Das heißt nach einem Aspekt der Erfindung ist der Paketvergangenheitszustand ein mit einem entsprechenden Paket verbundener ausgewählter Vergangenheitszustand. Als solche ist eine erste Seite des Kommunikationskanals, z. B. die Senderseite, ausgestattet mit und in Kenntnis gewisser Informationen darüber, welche Pakete von der zweiten Seite des Kommunikationskanals, z. B. der Empfängerseite, erfolgreich empfangen worden sind. Der Dekomprimierer wiederum ist ebenfalls ausgestattet mit und in Kenntnis der ausgewählten Vergangenheit, um eine wirkungsvolle Dekomprimierung der übertragenen komprimierten Pakete vom Sender zu ermöglichen. Das heißt Dekomprimierung tritt als Funktion dessen ein, welche Pakete als Vergangenheit benutzt wurden, d. h. des ausgewählten Vergangenheitszustandes, während der Komprimierung derartiger Pakete.
  • Die verschiedenen Aspekte der vorliegenden Erfindung können in Form von Verfahren und Einrichtungen zur Ausübung dieser Verfahren ausgeführt werden. Auch kann die Erfindung in Form von Programmcode ausgeführt sein, der in sachlichen Medien wie beispielsweise Floppydisketten, CD-ROMs, Festplatten oder einem beliebigen sonstigen maschinelesbaren Speichermedium ausgeführt ist, wobei die Maschine zu einer Einrichtung zur Ausübung der Erfindung wird, wenn der Programmcode in die Maschine wie einem Computer eingeladen und von ihr ausgeführt wird. Die Erfindung kann auch in Form von Programmcode, beispielsweise in einem Speichermedium, ausgeführt sein, der in eine Maschine eingeladen und/oder von ihr ausgeführt wird oder über irgendein Übertragungsmedium wie über elektrische Verdrahtung oder Verkabelung, über Faseroptik oder über elektromagnetische Strahlung übertragen wird, wobei, wenn der Programmcode in eine Maschine wie beispielsweise einem Computer eingeladen und von ihr ausgeführt wird, die Maschine zu einer Einrichtung zur Ausübung der Erfindung wird. Bei Implementierung auf einem Universalprozessor kombinieren sich die Programmcodesegmente mit dem Prozessor zur Bereitstellung einer einmaligen Vorrichtung, die wie spezifische Logikschaltungen arbeitet.
  • 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 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 der 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ührungsformen 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 233 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 jeweiligen 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 übertragenen 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 wiederzugewinnnen. 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.
  • Vor der Beschreibung gewisser beispielhafter Kompressionsprüfungsergebnisse, die weiter ausführlich die Vorteile verschiedener Aspekte der Erfindung darstellen, werden nunmehr die Dekomprimierungsaspekte der Erfindung wie oben aufgeführt besprochen. Fig. 4 zeigt besonders ein Flußdiagramm beispielhafter Operationen 400 zum Dekomprimieren von Daten entsprechend einem weiteren Aspekt der Erfindung. 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). 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 Vergangenheitszustand 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.
  • Zur weiteren Darstellung der verschiedenen Aspekte der Erfindung und ihrer Vorteile wurden die Grundsätze der Erfindung im Zusammenhang mit gewissen Komprimierungssimulationen angewandt, bei denen zwei wohlbekannte obenerwähnte Komprimierungsformate benutzt wurden. Insbesondere wurde das Komprimierungsformat Deflate im Zusammenhang mit einer vorbestimmten Folge von Datenpaketen benutzt. Wie wohlbekannt ist, ist Deflate ein weit verbreitetes Komprimierungsformat, das die Grundlage für viele wohlbekannte Dateiformate wie beispielsweise "gzip", "zip" und "png" bildet, um nur einige zu nennen. Bei Deflate werden LZ77- und Huffmann-Kodierungen kombiniert und es ist im Zusammenhang mit Netzprotokollen mit PPP benutzt worden. Trotz des vorliegenden Ausführungsbeispiels wurde die wohlbekannte und öffentlich über das Internet unter http:www.cdrom.com/pub/infozip/zlib. erhältliche Zlib-Implementierung von Deflate benutzt, wobei die Komprimierungshöhe auf den Vorgabewert von sechs (6) eingestellt wurde.
  • Insbesondere wurden vierzehn gewöhnlich benutzte Dateien aus dem wohlbekannten Calgary Corpus (einem vielfach benutzten Standardreferenzwerk zur Auswertung der Wirksamkeit von Komprimierungsalgorithmen, z. B. T. C. Bell et al., Modeling for text compression (Modellierung für Textkomprimierung), Computing Surveys 21(4): 557-591, Dezember 1989) zur Kennzeichnung eines Eingangsdatenstroms zur Komprimierung benutzt. Es wurde eine Bytefolge durch Verkettung der vierzehn Calgary Corpus-Dateien in alphabetischer Reihenfolge und Aufteilen des Eingangsstroms in Pakete fester Größe von 1600-Byte-Paketen bzw. 125-Byte-Paketen erstellt. Wie oben aufgeführt enthält ein Aspekt der Erfindung Bestätigungen von über Kommunikationskanäle übertragenen Paketen. Bei den Beispielen der vorliegenden Komprimierungssimulation werden die Bestätigungen als am Komprimierer über verschiedene Bestätigungs-, d. h. Paketverzögerungen ankommend modelliert.
  • In dem Ausführungsbeispiel wird die Auswirkung von Verzögerung auf die Anzahl von Ausgabebit pro Eingabebyte für die entsprechende Paketgröße von 1600 Byte und 125 Byte verglichen. Insbesondere zeigt Fig. 5 Simulationsergebnisse 500 und 510 für derartige entsprechende Paketgrößen als Vergleich zwischen einem bekannten zustandslosen Komprimierungsverfahren, siehe z. B. zustandslose Komprimierungsergebnisse 520, einem bekannten Streaming-Komprimierungsverfahren, siehe z. B. Streaming-Komprimierungsergebnisse 530, und Komprimierung nach den Grundsätzen der Erfindung, hier zweckdienlicherweise als sogenannte "bestätigte Komprimierung (Ack)" bezeichnet, siehe z. B. Ack- Ergebnisse 540. Wie aus Simulationsergebnissen 500 und 510 zu erkennen ist, liefern Ack-Ergebnisse 540 wesentlich größere Komprimierung als zustandslose Ergebnisse 520, aber nicht so große wie Streaming- Ergebnisse 530. Man wird natürlich erkennen, daß Streaming-Ergebnisse 530 die Auswirkung von Paketverlusten nicht berücksichtigen, die wie schon aufgeführt einer derartigen Komprimierung eigen sind. Demgegenüber werden die nach den Grundsätzen der Erfindung erreichten Ack-Ergebnisse 540 durch einen etwaigen derartigen Paketverlust nicht bedeutend beeinflußt.
  • 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 verwirklichen. 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 (30)

1. Datenkommunikationsverfahren mit Aufteilen des Eingangs-Datenstroms in eine Mehrzahl von Paketen und Komprimieren der Mehrzahl von Paketen in einen komprimierten Datenstrom (240); gekennzeichnet durch, vor dem Schritt des Komprimierens,
Kennzeichnen eines entsprechenden Paketvergangenheitszustandes für bestimmte der Pakete als Funktion mindestens eines Bestätigungsvektors (210); und
Codieren der bestimmten der Mehrzahl von Paketen als Funktion der damit verbundenen entsprechenden Paketvergangenheit (230).
2. Verfahren nach Anspruch 1, wobei der mit dem Paket verbundene entsprechende Paketvergangenheitszustand als Funktion einer Mehrzahl von empfangenen Paketen gekennzeichnet wird.
3. Verfahren nach Anspruch 2, wobei die Mehrzahl empfangener Pakete Pakete darstellen, die vordem von einem Empfänger ohne einen Übertragungsfehler empfangen worden sind.
4. Verfahren nach Anspruch 2, wobei jedes Paket einen entsprechenden Paketkopf (320) aufweist, der mindestens einen Vergangenheitsvektor (340) enthält, der den entsprechenden Paketvergangenheitszustand des Pakets kennzeichnet.
5. Verfahren nach Anspruch 3, wobei der Bestätigungsvektor durch den Empfänger erzeugt wird.
6. Verfahren nach Anspruch 3, wobei der Bestätigungsvektor eine Folgenummer des bestimmten empfangenen Pakets enthält, das zuletzt empfangen wurde.
7. Verfahren nach Anspruch 4, wobei der Paketkopf eine Folgenummer (335) enthält, die ein bestimmtes empfangenes Paket kennzeichnet.
8. Verfahren zum übertragen eines Kommunikationsstroms zwischen einer Sendestelle und einer Empfangsstelle über einen Kommunikationskanal, mit folgendem:
Ausführen des Verfahrens nach Anspruch 1 an der Sendestelle, wobei der erste Bestätigungsvektor durch die Sendestelle von der Empfangsstelle empfangen wird und mit jedem Paket ein Paketkopf verbunden ist, der mindestens einen Vergangenheitsvektor enthält, der den entsprechenden Paketvergangenheitszustand des Pakets kennzeichnet; und
Übertragen des komprimierten Datenstroms über den Kommunikationskanal von der Sendestelle zur Empfangsstelle.
9. Verfahren nach Anspruch 8, wobei der mit dem Paket verbundene entsprechende Paketvergangenheitszustand als Funktion einer Mehrzahl empfangener Pakete an der Empfängerstelle gekennzeichnet wird.
10. Verfahren nach Anspruch 9, wobei der erste Bestätigungsvektor eine Folgenummer eines bestimmten empfangenen Pakets enthält, das zuletzt von der Empfangsstelle empfangen wurde.
11. Verfahren nach Anspruch 9, wobei bei der Komprimierung der Pakete Lempel-Ziv-Codierung eingesetzt wird.
12. Verfahren nach Anspruch 8, weiterhin mit folgendem:
Empfangen des komprimierten Datenstroms an der Empfangsstelle (410),
Entnehmen des mit den bestimmten der Pakete (420) verbundenen entsprechenden Vergangenheitszustandes; und
Dekomprimieren des komprimierten Datenstroms zum Wiedergewinnen der Mehrzahl von Paketen (440), wobei die bestimmten der codierten Pakete als Funktion der damit verbundenen entnommenen Paketvergangenheit dekomprimiert werden.
13. Verfahren nach Anspruch 12, weiterhin mit Aktualisieren eines empfangenen Paketzustandes als Funktion der dekomprimierten Pakete (450).
14. Verfahren nach Anspruch 13, weiterhin mit Aufbauen eines zweiten Bestätigungsvektors (460), der einen Empfang der dekomprimierten Pakete durch die Empfangsstelle bestätigt; und
Übertragen des zweiten Bestätigungsvektors von der Empfängerstelle zu der Sendestelle.
15. Verfahren zum Wiedergewinnen von Daten aus einem komprimierten Datenstrom, mit folgendem:
Empfangen des komprimierten Datenstroms, der eine Mehrzahl codierter Pakete enthält; gekennzeichnet durch:
Kennzeichnen eines entsprechenden, mit bestimmten der codierten Pakete (430) verbundenen Vergangenheitszustandes; und
Dekomprimieren des komprimierten Datenstroms zum Wiedergewinnen der Daten (440); wobei die bestimmten, der codierten Pakete als Funktion der damit verbundenen entsprechenden Paketvergangenheit dekomprimiert werden.
16. Verfahren nach Anspruch 15, weiterhin mit Aktualisieren eines empfangenen Paketzustandes als Funktion der Pakete, die dekomprimiert werden.
17. Verfahren nach Anspruch 16, weiterhin mit Aufbauen eines Bestätigungsvektors (460); und Übertragen des Bestätigungsvektors von einem Empfänger zu einem Sender, wobei der Empfänger und der Sender den komprimierten Datenstrom über mindestens einen Kommunikationskanal austauschen.
18. Datenkommunikationseinrichtung mit folgendem:
einem Empfänger zum Empfangen eines Datenstroms zur Übertragung durch die Einrichtung, wobei der Datenstrom eine Mehrzahl von Paketen umfaßt; und
einem Komprimierer (120) zum Komprimieren der Pakete in einen komprimierten Datenstrom;
gekennzeichnet durch:
einen Codierer (110) zum Kennzeichnen einer Mehrzahl von Paketvergangenheitszuständen als Funktion mindestens eines Bestätigungsvektors, wobei jeder Paketvergangenheitszustand mit einem entsprechenden der Pakete verbunden ist, und zum Codieren der Mehrzahl von Paketen als Funktion der Mehrzahl von Vergangenheitszuständen.
19. Datenkommunikationseinrichtung nach Anspruch 18, weiterhin mit einem Sender (130, 140) zum Übertragen des komprimierten Datenstroms über einen Kommunikationskanal (150).
20. Datenkommunikationseinrichtung nach Anspruch 19, wobei der Kommunikationskanal Teil eines Internets ist.
21. Datenkommunikationseinrichtung nach Anspruch 18, weiterhin mit einem Dekomprimierer (165) zum Empfangen eines Eingangs-Datenstroms, wobei der Eingangs-Datenstrom eine Mehrzahl komprimierter Pakete enthält, Kennzeichnen eines entsprechenden mit bestimmten der komprimierten Pakete verbundenen Vergangenheitszustandes und Dekomprimieren der Mehrzahl komprimierter Pakete, wobei die bestimmten der komprimierten Pakete als Funktion der damit verbundenen entsprechenden Paketvergangenheit dekomprimiert werden.
22. Datenkommunikationseinrichtung nach Anspruch 21, wobei der Dekomprimierer mindestens einen Bestätigungsvektor zur Übertragung von der Datenkommunikationseinrichtung aufbaut.
23. Datenkommunikationseinrichtung nach Anspruch 22, wobei der Bestätigungsvektor einen Empfang der dekomprimierten Pakete durch die Datenkommunikationseinrichtung bestätigt.
24. Datenkommunikationseinrichtung nach Anspruch 18, wobei der Komprimierer zum Komprimieren der Pakete in den komprimierten Datenstrom Lempel-Ziv- Codierung benutzt.
25. Einrichtung zum Verarbeiten eines komprimierten Digitalsignals mit folgendem:
einem Empfänger (155, 160) zum Empfangen des komprimiertem Digitalsignals aus dem Kommunikationskanal; und
einem Dekomprimierer (165) zum Dekomprimieren des empfangenen komprimierten Digitalsignals und Wiedergewinnen des Eingangsstroms digitaler Daten aus dem dekomprimierten Digitalsignal; dadurch gekennzeichnet, daß
der Dekomprimierer zum Dekomprimieren eines Signals geeignet ist, das durch folgendes erzeugt wurde: Aufteilen eines Eingangsstroms von Digitaldaten in eine Mehrzahl von Paketen; Kennzeichnen eines entsprechenden Paketvergangenheitszustandes für bestimmte der Pakete als Funktion mindestens eines Bestätigungsvektors; Codieren der bestimmten der Pakete als Funktion der damit verbundenen entsprechenden Paketvergangenheit, wobei jedes Paket mit einem Paketkopf verbunden ist, der mindestens einen Vergangenheitsvektor enthält, der den entsprechenden Paketvergangenheitszustand des Pakets kennzeichnet; und Komprimieren der codierten Pakete in das komprimierte Digitalsignal.
26. Einrichtung nach Anspruch 25, wobei die bestimmten der Pakete aus dem komprimierten Digitalsignal als Funktion der entsprechenden damit verbundenen Paketvergangenheit dekomprimiert werden.
27. Einrichtung nach Anspruch 26, wobei der Dekomprimierer einen Bestätigungsvektor aufbaut und den Bestätigungsvektor von einem Empfänger zu einem Sender überträgt, wobei der Empfänger und der Sender das komprimierte Digitalsignal über den Kommunikationskanal austauschen.
28. Einrichtung nach Anspruch 27, wobei die Operation des Komprimierens der Pakete Lempel-Ziv-Codierung benutzt.
29. Einrichtung nach Anspruch 27, wobei der Dekomprimierer den entsprechenden Vergangenheitszustand des zugehörigen Pakets bei seiner Dekomprimierung aktualisiert.
30. Maschinenlesbares Medium, auf dem eine Mehrzahl von Anweisungen gespeichert sind, die Anweisungen enthalten, die bei ihrer Ausführung durch eine Maschine die Maschine zum Durchführen eines Verfahrens nach einem der Ansprüche 1 bis 17 veranlassen.
DE60001210T 2000-03-16 2000-10-23 Verfahren und Vorrichtung zur Datenkomprimierung von Netzwerkdatenpaketen Expired - Lifetime DE60001210T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/527,315 US6388584B1 (en) 2000-03-16 2000-03-16 Method and apparatus for data compression of network packets

Publications (2)

Publication Number Publication Date
DE60001210D1 DE60001210D1 (de) 2003-02-20
DE60001210T2 true DE60001210T2 (de) 2003-08-21

Family

ID=24100973

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60001210T Expired - Lifetime DE60001210T2 (de) 2000-03-16 2000-10-23 Verfahren und Vorrichtung zur Datenkomprimierung von Netzwerkdatenpaketen

Country Status (5)

Country Link
US (1) US6388584B1 (de)
EP (1) EP1134900B1 (de)
JP (1) JP3875502B2 (de)
CA (1) CA2334442C (de)
DE (1) DE60001210T2 (de)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6624761B2 (en) 1998-12-11 2003-09-23 Realtime Data, Llc Content independent data compression method and system
US6604158B1 (en) 1999-03-11 2003-08-05 Realtime Data, Llc System and methods for accelerated data storage and retrieval
US6601104B1 (en) 1999-03-11 2003-07-29 Realtime Data Llc System and methods for accelerated data storage and retrieval
AU3919300A (en) * 1999-03-25 2000-10-09 Motorola, Inc. Point to point protocol multiplexing/demultiplexing method and apparatus
SE521700C2 (sv) * 1999-05-21 2003-11-25 Ericsson Telefon Ab L M Metod för att minska mängden överförd data då ett signaleringsmeddelande skickas fler än en gång mellan två noder i ett TCP/IP-baserat nät
US6711164B1 (en) * 1999-11-05 2004-03-23 Nokia Corporation Method and apparatus for performing IP-ID regeneration to improve header compression efficiency
US7181608B2 (en) 2000-02-03 2007-02-20 Realtime Data Llc Systems and methods for accelerated loading of operating systems and application programs
KR100612003B1 (ko) * 2000-02-26 2006-08-11 삼성전자주식회사 통신망에서 비트 스트림 송수신 장치 및 그 방법
US6856651B2 (en) 2000-07-25 2005-02-15 Peribit Networks, Inc. System and method for incremental and continuous data compression
EP1895663A3 (de) * 2000-07-25 2008-06-11 Juniper Networks, Inc. System und Verfahren für die schrittweise und kontinuierliche Datenkompression
ATE397346T1 (de) 2000-07-25 2008-06-15 Juniper Networks Inc Netzwerkarchitektur und verfahren zur transparenten online-querschnittskodierung und zum transport von netzwerkkommunikationsdaten
WO2002028107A2 (en) * 2000-09-28 2002-04-04 Nokia Corporation Enhanced header compression profile
US9143546B2 (en) 2000-10-03 2015-09-22 Realtime Data Llc System and method for data feed acceleration and encryption
US8692695B2 (en) 2000-10-03 2014-04-08 Realtime Data, Llc Methods for encoding and decoding data
US7386046B2 (en) 2001-02-13 2008-06-10 Realtime Data Llc Bandwidth sensitive data compression and decompression
US7245405B2 (en) * 2001-04-11 2007-07-17 Hughes Network Systems, Llc Method and system for performing stateless compression of messages
DE10124706A1 (de) * 2001-05-18 2002-11-21 Alcatel Sa Verfahren zur Weiterleitung von Datenpaketen in Routern von Kommunikationsnetzen
DE10212656A1 (de) 2002-03-21 2003-10-02 Scm Microsystems Gmbh Selektive Verschlüsselung von Multimediadaten
US7359974B1 (en) * 2002-03-29 2008-04-15 Packeteer, Inc. System and method for dynamically controlling aggregate and individual packet flow characteristics within a compressed logical data tunnel
JP3800171B2 (ja) * 2002-12-24 2006-07-26 日本電気株式会社 ストア命令実行制御方式、および、ストア命令実行制御方法
US6750791B1 (en) 2003-02-07 2004-06-15 Nokia Corporation Method and device for text data compression
JP4887618B2 (ja) * 2004-11-19 2012-02-29 日本電気株式会社 ストレージシステムとそのレプリケーション方法並びにプログラム
US7630394B2 (en) * 2005-04-14 2009-12-08 Ramot At Tel-Aviv University Ltd. Method, apparatus and computer-readable code for data compression of network packets
US8804765B2 (en) * 2005-06-21 2014-08-12 Optis Wireless Technology, Llc Dynamic robust header compression
US7970015B2 (en) 2005-09-12 2011-06-28 Hob Gmbh & Co. Kg Method for transmitting a message by compressed data transmission between a sender and a receiver via a data network
US20070264989A1 (en) * 2005-10-03 2007-11-15 Rajesh Palakkal Rendezvous calling systems and methods therefor
US7620870B2 (en) * 2005-11-22 2009-11-17 Cisco Technology, Inc. Data compression method and system
US8254262B1 (en) * 2006-03-31 2012-08-28 Verint Americas, Inc. Passive recording and load balancing
EP2033384A2 (de) * 2006-06-14 2009-03-11 Divitas Networks, Inc. Inhaltsbasierte adaptive jitter-behandlung
US7480500B1 (en) 2006-06-14 2009-01-20 Divitas Networks, Inc. Divitas protocol proxy and methods therefor
US20090016333A1 (en) * 2006-06-14 2009-01-15 Derek Wang Content-based adaptive jitter handling
US20080317241A1 (en) * 2006-06-14 2008-12-25 Derek Wang Code-based echo cancellation
US20080140767A1 (en) * 2006-06-14 2008-06-12 Prasad Rao Divitas description protocol and methods therefor
US7565159B2 (en) * 2006-06-14 2009-07-21 Divitas Networks, Inc. Methods and arrangement for implementing an active call handover by employing a switching component
US7660793B2 (en) 2006-11-13 2010-02-09 Exegy Incorporated Method and system for high performance integration, processing and searching of structured and unstructured data using coprocessors
US20090215438A1 (en) * 2008-02-23 2009-08-27 Ajay Mittal Methods for performing transparent callback
US7953881B1 (en) * 2008-06-12 2011-05-31 Juniper Networks, Inc. Network characteristic-based compression of network traffic
US20100222053A1 (en) * 2009-02-27 2010-09-02 Girisrinivasarao Athulurutirumala Arrangement and methods for establishing a telecommunication connection based on a heuristic model
US9998749B2 (en) * 2010-10-19 2018-06-12 Otoy, Inc. Composite video streaming using stateless compression
US8897298B2 (en) * 2011-11-02 2014-11-25 Qualcomm Incorporated Systems and methods for compressing headers and payloads
US10121196B2 (en) 2012-03-27 2018-11-06 Ip Reservoir, Llc Offload processing of data packets containing financial market data
US9990393B2 (en) 2012-03-27 2018-06-05 Ip Reservoir, Llc Intelligent feed switch
US11436672B2 (en) 2012-03-27 2022-09-06 Exegy Incorporated Intelligent switch for processing financial market data
WO2015028087A1 (en) * 2013-08-30 2015-03-05 Huawei Technologies Sweden Ab Mitigation of signalling congestion in a wireless network
WO2018119035A1 (en) 2016-12-22 2018-06-28 Ip Reservoir, Llc Pipelines for hardware-accelerated machine learning
EP3970107A4 (de) 2019-05-14 2023-01-11 Exegy Incorporated Verfahren und systeme zur erzeugung und verteilung von handelssignalen aus finanzmarktdaten
CN110518917B (zh) * 2019-07-17 2023-01-03 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 基于Huffman编码的LZW数据压缩方法及***
CA3207052A1 (en) 2021-02-16 2022-08-25 Timothy GORHAM Methods and systems for low latency automated trading

Family Cites Families (24)

* 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
CA2065578C (en) 1991-04-22 1999-02-23 David W. Carr Packet-based data compression 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
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
US5815097A (en) * 1996-05-23 1998-09-29 Ricoh Co. Ltd. Method and apparatus for spatially embedded coding
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
US6121903A (en) * 1998-01-27 2000-09-19 Infit Communications Ltd. On-the-fly data re-compression
CA2260289A1 (en) 1998-01-29 1999-07-29 Steven Michael Bellovin A method of improving data compression over unreliable underlying networks
US6216175B1 (en) * 1998-06-08 2001-04-10 Microsoft Corporation Method for upgrading copies of an original file with same update data after normalizing differences between copies created during respective original installations
US6301394B1 (en) * 1998-09-25 2001-10-09 Anzus, Inc. Method and apparatus for compressing data
US6236341B1 (en) * 2000-03-16 2001-05-22 Lucent Technologies Inc. Method and apparatus for data compression of network packets employing per-packet hash tables

Also Published As

Publication number Publication date
JP3875502B2 (ja) 2007-01-31
CA2334442A1 (en) 2001-09-16
CA2334442C (en) 2005-07-26
JP2001298369A (ja) 2001-10-26
EP1134900B1 (de) 2003-01-15
DE60001210D1 (de) 2003-02-20
EP1134900A1 (de) 2001-09-19
US6388584B1 (en) 2002-05-14

Similar Documents

Publication Publication Date Title
DE60001210T2 (de) Verfahren und Vorrichtung zur Datenkomprimierung von Netzwerkdatenpaketen
DE60000912T2 (de) Verfahren und Vorrichtung zur Datenkomprimierung von Netzwerkdatenpaketen unter Verwendung von paketweisen Hash Tabellen
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
DE69024629T2 (de) Vorrichtung zur kompression von datenlängen und datenfolgen
DE3850192T2 (de) Verfahren und Vorrichtung zur Fehlerkorrektur bei gespeicherten Daten.
DE69027606T2 (de) Vorrichtung zur datenkompression
DE69527679T2 (de) Verfahren zur Datenkomprimierung und -Dekomprimierung
DE68925798T2 (de) Datenverdichtung
DE4340591C2 (de) Datenkompressionsverfahren unter Verwendung kleiner Wörterbücher zur Anwendung auf Netzwerkpakete
DE69805849T2 (de) Ein vorwärtsfehlerkorrektionssystem für packetbasierte echtzeitmedien
DE69704362T2 (de) Datenkompressions-/dekompressionssystem anhand sofortiger zeichenfolgensucheverschachtelter wörterbuchaktualisierung
EP1303966B1 (de) Header-kompressionsverfahren für netzwerkprotokolle
EP2326013B1 (de) Verfahren und Anordnung zur arithmetischen Enkodierung und Dekodierung mit Verwendung mehrerer Tabellen
DE69925151T2 (de) Effiziente normalisierung vom trelliszustandsmetrischem wert
EP1258085B1 (de) Verfahren zum anpassen der einem turbo-codierer zuzuführenden datenblöcke und entsprechende kommunikationsvorrichtung
DE69834695T2 (de) Verfahren und Vorrichtung zur Datenkompression
DE3750390T2 (de) Simultane Fehlererkennung bei der Kodierung durch arithmetische Datenkodierung.
DE69826971T2 (de) Übertragungssystem mit kodierer variabler länge
DE69524999T2 (de) Verfahren zum Komprimieren und Dekomprimieren von Dateien
DE69328811T2 (de) Opcode abhängige Komprimierung für ein Window-System.
EP1286471B1 (de) Verfahren zur Kompression von Daten
DE19539343A1 (de) Verfahren zur Fehlerbehandlung eines digitalen Bitdatenstroms, der von einem Sender zu einem Empfänger übertragen wird
DE10131801B4 (de) Verfahren zur Datenkompression und Navigationssystem
EP0958685B1 (de) Verfahren und schaltungsanordnung zur übertragung ausgewählten signalpunkten einer signalkonstellation

Legal Events

Date Code Title Description
8364 No opposition during term of opposition