DE60033184T2 - 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 Download PDF

Info

Publication number
DE60033184T2
DE60033184T2 DE60033184T DE60033184T DE60033184T2 DE 60033184 T2 DE60033184 T2 DE 60033184T2 DE 60033184 T DE60033184 T DE 60033184T DE 60033184 T DE60033184 T DE 60033184T DE 60033184 T2 DE60033184 T2 DE 60033184T2
Authority
DE
Germany
Prior art keywords
data packet
data
compression
bits
data packets
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
DE60033184T
Other languages
English (en)
Other versions
DE60033184D1 (de
Inventor
Sean Matthew Martinsville Dorward
Sean Hoboken 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 DE60033184D1 publication Critical patent/DE60033184D1/de
Publication of DE60033184T2 publication Critical patent/DE60033184T2/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

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft im Allgemeinen Datenkompression und im Besonderen die Verbesserung der Kompression von Daten in Datenpaketnetzwerken.
  • ALLGEMEINER STAND DER TECHNIK
  • Herkömmliche Datenkompressionstechniken und -systeme codieren einen Strom digitaler Daten zu einem komprimierten Codestrom und decodieren den komprimierten Codestrom wieder zu einem entsprechenden ursprünglichen Datenstrom. Der Codestrom wird als „komprimiert" bezeichnet, da der Strom typisch aus einer kleineren Anzahl von Codes besteht als Symbole in dem ursprünglichen Datenstrom enthalten sind. Solche kleineren Codes können vorteilhaft in einer entsprechend kleineren Speichermenge als die ursprünglichen Daten gespeichert werden. Außerdem kann der komprimierte Codestrom in einem Kommunikationssystem, z.B. einem verdrahteten, drahtlosen oder faseroptischen Kommunikationssystem, in einer entsprechend kürzeren Zeitspanne übermittelt werden als die unkomprimierten Originaldaten. Der Bedarf an Datenübermittlung und Speicherkapazität in heutigen Kommunikationsnetzwerken erhöht sich ständig. Daher spielt die Datenkompression eine entscheidende Rolle in den meisten modernen Datenübermittlungsprotokollen und Kommunikationsnetzwerken.
  • Bekanntermaßen sind zwei Klassen von Kompressionstechniken, die bei der Kompression von Daten verwendbar sind, die so genannte Spezialkompression und die Allgemeinkompression. Spezialkompressionstechniken sind zum Komprimieren spezieller Arten von Daten gedacht und oft relativ kostengünstig zu implementieren. Zum Beispiel umfassen bekannte Spezialkompressionstechniken die Lauflängencodierung, die Nullunterdrückungscodierung, die Nullkompressionscodierung und Pattern Substitution (Musterersetzung). Diese Techniken weisen im Allgemeinen relativ kleine Kompressionsverhältnisse auf aufgrund der Tatsache, dass sie Daten komprimieren, die typisch gemeinsame Merkmale und Redundanzen besitzen. Wie man verstehen wird, ist ein Kompressionsverhältnis das Maß der Länge der komprimierten Codes im Verhältnis zur Länge der Originaldaten. Spezialkompressionstechniken sind jedoch tendenziell unwirksam bei der Kompression von Daten eher allgemeiner Art, d.h. Daten, die kein hohes Maß an gemeinsamen Merkmalen und dergleichen aufweisen.
  • Im Gegensatz dazu sind Allgemeinkompressionstechniken nicht zum speziellen Komprimieren einer Art von Daten gedacht und sind oft für verschiedene Arten von Daten während des Kompressionsprozesses eingerichtet. Einige der am weitesten bekannten und verwendeten Allgemeinkompressionstechniken entstammen einer Familie von Algorithmen, die von J. Ziv und A. Lempel entwickelt wurden und auf dem Fachgebiet häufig als Lempel-Ziv-Codierung" bezeichnet werden. Insbesondere Ziv u.a., „A Universal Algorithm for Sequential Data Compression", IEEE Transactions on Information Theory, IT – 23 (3): 337-343, Mai 1977 (das den allgemein als „LZ1" bezeichneten Algorithmus beschreibt) und Ziv. u.a., „Compression of Individual Sequences Via Variable-Rate Coding", IEEE Transactions on Information Technology, IT – 24 (5): 530-536, September 1978 (das den allgemein als „LZ2" bezeichneten Algorithmus beschreibt). Das LZ1- und das LZ2-Datenkompressionsschema sind auf dem Fachgebiet bekannt und müssen im Vorliegenden nicht ausführlich erläutert werden.
  • Kurz gesagt basiert der LZ1-Datenkompressionsprozess (auf dem Fachgebiet auch als „LZ77" bezeichnet und bekannt) auf dem Prinzip, dass eine wiederholte Sequenz von Zeichen durch einen Verweis auf ein früheres Auftreten der Sequenz, d.h. auf übereinstimmende Sequenzen, ersetzt werden kann. Der Verweis, z.B. ein Zeiger, umfasst typisch eine Angabe zur Position des früheren Auftretens, z.B. ausgedrückt als ein Byte, das vom Beginn der wiederholten Sequenz abgesetzt ist (offset), und die Anzahl der Zeichen, d.h. die übereinstimmende Länge (Matchlänge), die wiederholt werden. Typisch werden die Verweise gemäß herkömmlicher LZ1-Codierung als „<Offset,Länge>"-Paare dargestellt. Im Gegensatz dazu analysiert die LZ2-Datenkompression (auf dem Fachgebiet auch als „LZ78" bezeichnet und bekannt) einen Strom von Eingangsdaten in codierte Werte auf der Grundlage einer adaptiv wachsenden Nachschlagetabelle oder eines Wörterbuchs, die/das während der Kompression erstellt wird. Das heißt, LZ2 findet keine Matches an einer beliebigen Byte-Grenze und mit einer beliebigen Länge wie bei der LZ1-Codierung, sondern wenn stattdessen ein Wort des Wörterbuches durch eine Quellfolge gematcht wird, so wird dem Wörterbuch ein neues Wort hinzugefügt, das aus dem gematchten Wort plus dem nachfolgenden Quellfolgenbyte besteht. Gemäß LZ2-Codierung werden Matches als Zeiger oder Indizes auf die Wörter im Wörterbuch codiert.
  • Wie oben erwähnt, ist das Fachgebiet mit Kompressionsschemata angefüllt, die von den Grundprinzipien abgeleitet sind, die der LZ1- und der LZ2-Algorithmus verkörpern. Beispielsweise verfeinerte Terry A. Welch (siehe T.A. Welch, „A Technique for High Performance Data Compression", IEEE Computer, S. 8-19, Juni 1984 und US-Patentschrift 4,558,302, erteilt für Welch am 10. Dezember 1985) später den LZ2-Codierprozess zu dem bekannten „Lempel-Ziv-Welch"-(„LZW-")Kompressionsprozess. Die LZ2- und die LZW-Kompressionstechnik basieren beide auf der Erzeugung und Verwendung einer so genannten Stringtabelle, die Folgen von Eingangszeichen in Codes mit festen Längen aufzeichnet. Genauer komprimieren diese Kompressionstechniken einen Strom von Datenzeichen in einen komprimierten Strom von Codes durch das fortlaufende Durchsuchen des Zeichenstroms und das Erzeugen von Codes auf der Grundlage von Se quenzen angetroffener Symbole, die mit den entsprechenden längstmöglichen Strings übereinstimmen, die vorher in der Tabelle, d.h. in dem Wörterbuch gespeichert wurden. Während jedes Match vollzogen wird und ein Codesymbol erzeugt wird, speichert der Prozess auch einen neuen Stringeintrag in dem Wörterbuch, der die gematchte Sequenz in dem Datenstrom plus das nächste in dem Datenstrom angetroffene Zeichensymbol umfasst.
  • Wie man verstehen wird und wie oben dargelegt, besteht das Wesentliche der Lempel-Ziv-Codierung darin, Strings und Unterstrings zu finden, die in dem originalen Datenstrom wiederholt werden, z.B. in einem Dokument, das übermittelt werden soll. Die wiederholten Phrasen in dem zu komprimierenden Dokument werden durch einen Zeiger auf eine Stelle ersetzt, an der sie in dem originalen Datenstrom, z.B. dem Dokument, früher auftraten. Daher erfordert das Decodieren von Daten, z.B. Text, die auf diese Weise codiert sind, einfach das Ersetzen der Zeiger durch den bereits decodierten Text, auf den sie zeigen. Bekanntermaßen besteht eine primäre Designüberlegung bei der Verwendung der Lempel-Ziv-Codierung darin zu bestimmen, ob eine Grenze darüber festgelegt werden soll, wie weit zurück ein Zeiger reichen kann, und wo diese Grenze liegen soll. Eine weitere Designüberlegung der Lempel-Ziv-Codierung befasst sich damit, welche Unterstrings innerhalb der gewünschten Grenze das Ziel eines Zeigers sein können. Das heißt, die Reichweite des Zeigers in einen früheren Text kann unbegrenzt sein, d.h. ein so genanntes wachsendes Fenster, oder sie kann auf ein Fenster mit fester Größer mit den vorhergehenden „N" Zeichen begrenzt sein, wobei N typisch im Bereich mehrerer Tausend Zeichen liegt, z.B. 3 Kilobyte. Gemäß dieser Codierung werden Wiederholungen von Strings nur dann entdeckt und komprimiert, wenn sie beide in dem Fenster erscheinen. Wie man verstehen wird, stellen die Überlegungen, die hinsichtlich der Lempel-Ziv-Codierung vorgenommen wurden, einen Kompromiss zwischen Geschwindigkeit, Speichererfordernissen und Kompressionsverhältnis dar.
  • Komprimierung ist eine bedeutsame Überlegung bei der Verbesserung der Effizienz von Netzwerken. Wenn beispielsweise die verfügbaren Rechenressourcen, d.h. die Datenübermittlungsanforderungen, im Vergleich zur verfügbaren Netzwerkbandbreite groß sind, ist es sehr vorteilhaft, Datenpakete vor der Übermittlung über das Netzwerk zu komprimieren. Natürlich muss das tatsächliche Kompressionsschema hinsichtlich Geschwindigkeit und Gesamtkompression sorgfältig gewählt werden. Das heißt, ein Kompressionsschema, das zu langsam ist, wird die Netzwerkleistung vermindern und ein ineffektives Kompressionsschema wird potentielle Übermittlungsgewinne beschränken.
  • Was die Netzwerkeffizienz weiter verkompliziert, ist die Tatsache, dass viele Datenpaketnetzwerke inhärent unzuverlässig sind. Das heißt, derzeit bekannte Datenpaketnetzwerke, z.B. das Internet, verlieren routinemäßig Datenpakete oder fordern Datenpakete, die über das Netzwerk übermittelt werden, neu an, wodurch Datenübermittlungsfehler verursacht werden. Wenn beispielsweise das Kompressionsschema bestimmte Abhängigkeiten zwischen den Datenpaketen einführt und das Netzwerk danach solche Datenpakete verliert oder neu anfordert, ist der Empfänger wegen der wechselseitigen Abhängigkeiten zwischen den Datenpaketen möglicherweise nicht in der Lage, ein bestimmtes Datenpaket zu dekomprimieren, wenn ein vorheriges Datenpaket verloren gegangen ist. Daher werden bestimmte bekannte Ansätze benutzt, um solche Probleme zu mildern: (1) Netzwerkzuverlässigkeit verbessern, wobei in Bezug auf das Internet ein zuverlässigerer Ende-zu-Ende-Transportschichtdienst angewendet werden kann, z.B. das bekannte Transmission Control Protocol („TCP"), um Datenpakete auf der Transportebene zu komprimieren; (2) es kann statuslose Kompression verwendet werden, wobei jedes Datenpaket unabhängig komprimiert wird, womit gewährleistet wird, dass jedes Datenpaket bei dem Empfänger dekomprimiert werden kann; und (3) geht Streamingkompression von einer zuverlässigen Zustellung aus und setzt einen Rücksetzungsmechanismus ein, wenn diese Annahme verletzt wird. Genauer legt der Empfänger, wenn ein Datenpaket verloren geht, jedes nachfolgende Datenpaket ab, bis die Kompression zurückgesetzt wird. Nach der Rücksetzung sind zukünftige Datenpakete nicht von vorherigen Datenpaketen abhängig, und die Dekompression kann wieder normal einsetzen. Zwei bekannte Kompressionstechniken des Streaming-Typs umfassen das Compression Control Protocol des Point-to-Point Protocol („PPP") und das IP-Header-Compression-Protokoll, das für Use-Datagram-Protocol-(„UDP"-)Datenpakete verwendet wird.
  • Die oben beschriebenen Datenpaketkompressionsschemata sind für die Milderung der Probleme verwendbar, die aus gegenseitigen Abhängigkeiten der Datenpakete entstehen, solche Schemata sind jedoch mit bestimmten anderen Komplikationen behaftet. Beispielsweise erfordert das Komprimieren von Datenpaketen auf der Transportebene die Verwendung von Ende zu Ende und erfordert typisch während des Transports ein bestimmtes Maß an Zusammenarbeit seitens der Anwendung. Während in ähnlicher Weise die statuslose Kompression ein gewisses Maß an Robustheit bietet, reduziert das Attribut der Datenpaketunabhängigkeit der statuslosen Kompression das realisierte Kompressionsverhältnis aufgrund der Tatsache, dass eine solche Kompression die Daten in einem einzelnen Datenpaket untersucht. So kann beispielsweise dieser Kompressionsansatz nicht die große Menge an Redundanz entfernen, die sich typisch in Netzwerkheadern benachbarter Datenpakete findet. Während außerdem die Streamingkompression größere Kompressionsverhältnisse bietet, vervielfachen diese Kompressionsschemata den Effekt des Datenpaketverlustes dadurch, dass, wenn ein Datenpaket in dem Netzwerk verloren geht, dies bewirkt, dass der Empfänger mehrere weitere Datenpakete verliert. Bei Netzwerken mit geringer Zuverlässigkeit, z.B. dem Internet, reduziert dieser Effekt der Vervielfachung des Datenpaketverlustes die Nützlichkeit des Einsatzes von Streamingkompression.
  • Daher besteht ein Bedarf an einer Kompressionstechnik, die eine größere Robustheit und erhöhte Kompressionsverhältnisse bereitstellt, und zwar ohne die beeinträchtigenden Wirkungen der bisherigen Kompressionsschemata.
  • US-A-5,831,558 offenbart ein Verfahren zum Übermitteln einer codierten Datei von einem ersten Computersystem zu einem zweiten Computersystem. Das Verfahren verwendet ein Datenwörterbuch mit einer Anzahl von Einträgen. Jeder dieser Einträge des Datenwörterbuchs enthält ein Eintragszeichenfeld, ein Eintragskompressionsfeld und einen Eintragszähler. Datenpakete werden in den Speicher eingelesen und unter Verwendung des Datenwörterbuchs zu der codierten Datei codiert. Die codierte Datei wird dann von dem ersten System zu dem zweiten System übermittelt. Das Verfahren enthält auch eine Decodierfunktion, wobei codierte Datenpakete, die von dem zweiten System empfangen werden, mit Hilfe des Datenwörterbuchs decodiert werden.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Die Erfindung ist so wie in den unabhängigen Ansprüchen dargelegt, wobei bevorzugte Formen in den abhängigen Ansprüchen dargelegt sind.
  • Ein Aspekt der Erfindung richtet sich auf ein Verfahren und eine Vorrichtung zum Komprimieren von Datenpaketen, die die paketübergreifende Kompression ermöglicht, womit eine größere Robustheit und erhöhte Kompressionsverhältnisse ohne die beeinträchtigenden Wirkungen, z.B. den Effekt der Vervielfachung des Paketverlustes, bisheriger Kompressionsschemata erzielt werden. Genauer wird gemäß einem Aspekt der Erfindung eine Codierung variabler Länge zusammen mit der Führung einer separaten Hash-Tabelle für jedes Datenpaket verwendet. Gemäß der bevorzugten Ausführungsform der Erfindung setzt das Codieren variabler Länge Matchlängen, Offsets und Literale ein. Daher beginnen alle Phrasen mit einer Matchlänge, wobei Literale mit einem Match mit Null-Länge codiert sind, gefolgt von einer Codierung des Literals. Gemäß der bevorzugten Ausführungsform beträgt das kleinste Match mit Nicht-Null-Länge beispielhaft 3 Byte und das maximale Match ist durch die spezifische Paketlänge begrenzt.
  • Ferner indiziert gemäß einem Aspekt der Erfindung die paketweise Hash-Tabelle konkrete Byte-Strings in dem Paket, indiziert jedoch keine Daten in (einem) anderen Paket(en). Das heißt, die vorliegende Erfindung erzeugt und führt eine jeweilige separate Hash-Tabelle für jedes Datenpaket, wobei eine solche Hash-Tabelle unabhängig von jedem anderen Paket erstellt wird. Beispielhaft wird gemäß einer Ausführungsform der Erfindung die jeweilige Hash-Tabelle für ein Datenpaket erstellt, wenn das konkrete Datenpaket komprimiert wird. Gemäß weiteren Ausführungsformen der Erfindung wird die jeweilige Hash-Tabelle für das Datenpaket vor der Kompression oder nach der Kompression aufgebaut. Daher wird die jeweilige Hash-Tabelle mit dem konkreten Datenpaket codiert. Gemäß einem Aspekt der Erfindung indiziert die jeweilige Hash-Tabelle für das Datenpaket die Daten in dem gesamten Datenpaket in Abhängigkeit von einzelnen Unterfolgen. Beispielhaft beträgt gemäß der bevorzugten Ausführungsform der Erfindung die Länge solcher Unterfolgen drei Byte. Somit bestimmt die Byte-Größe eines konkreten Datenpakets die Anzahl von Byte-Strings, die in der jeweiligen Hash-Tabelle für dieses Datenpaket angegeben sind. Daher stellt der Einsatz einer paketweisen Hash-Tabelle eine effiziente und robuste Gesamtkompression der Datenpakete bereit.
  • Das heißt, da die Hash-Tabelle jedes Datenpakets nur von den Daten in diesem konkreten Paket abhängt, kann mit Hilfe der entsprechenden Hash-Tabellen ein gültiger Index für eine beliebige Gruppe von Datenpaketen erstellt werden. Somit erfolgt gemäß der bevorzugten Ausführungsform die Suche nach einem String durch eine Abfrage der Hash-Tabelle für das aktuelle Datenpaket, gefolgt von den Hash-Tabellen für jedes der Datenpakete im variablen Verlaufsstatus, beginnend mit dem zuletzt gesendeten Paket. Wie man verstehen wird, führen die paketweisen Hash-Tabellen der bevorzugten Ausführungsform auch einzeln verlinkte, abgesetzte Ketten, die mit einem ungültigen Eintrag beendet werden, und Hash-Tabellen werden überarbeitet, indem der gültige Offsetbereich für die Hash-Tabelle geändert wird (nicht indem die gesamte Tabelle geleert wird). Wie man verstehen wird, wird ferner ein Kompressionsgradparameter, z.B. 8 Strings, verwendet, um die maximale Anzahl von Strings festzulegen, die während der Suche nach einem Match geprüft werden.
  • Vorteilhaft werden gemäß einem Aspekt der Erfindung mit einer großen Auswahl von Kompressionsverfahren erhöhte Robustheit und größere Kompressionsverhältnisse erzielt.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 zeigt ein Blockdiagramm eines beispielhaften Systems zum Komprimieren und Dekomprimieren von Daten;
  • 2 zeigt ein Flussdiagramm beispielhafter Operationen zum Komprimieren von Daten gemäß einer beispielhaften Ausführungsform der Erfindung, die in dem beispielhaften System der 1 verwendbar sind;
  • 3 zeigt einen beispielhaften Datenpaketstrom, der mit den beispielhaften Operationen der 2 komprimiert wurde;
  • 4 zeigt ein Flussdiagramm beispielhafter Operationen zum Dekomprimieren von Daten gemäß einer Ausführungsform der Erfindung, die in dem beispielhaften System der 1 verwendbar sind;
  • 5 zeigt ein Flussdiagramm beispielhafter Operationen zum Komprimieren von Daten gemäß den Prinzipien der Erfindung und
  • 6 zeigt Vergleichsergebnisse der Kompression von Textdateien gemäß den verschiedenen Aspekten der Erfindung.
  • In der gesamten Beschreibung werden, soweit nicht anders angegeben, gleiche Elemente, Blöcke, Komponenten oder Abschnitte in den Figuren mit den gleichen Bezugszeichen bezeichnet.
  • DETAILLIERTE BESCHREIBUNG
  • Wie in EP-A-1 134 900 (im Vorliegenden der Bequemlichkeit halber die „Anwendung mit Bestätigter Kompression" genannt) beschrieben, wurde festgestellt, dass durch den Einsatz eines Auswahlverlaufsstatus in Abhängigkeit von den in einem Netzwerk zu übermittelnden Datenpaketen die Bereitstellung eines eleganten Kompressionstools erreicht wird, mit dem eine verbesserte Datenkompression realisiert werden kann. Gemäß einem Aspekt der genannten Erfindung wird ein Auswahlverlaufsstatus verwendet, der in Abhängigkeit von einem so genannten Bestätigungsvektor bestimmt wird. Ferner enthält der Bestätigungsvektor gemäß einem Aspekt der genannten Erfindung Informationen bezüglich der Identifizierung von Datenpaketen, die in einer vorherigen Übermittlung über einen Kommunikationskanal erfolgreich empfangen wurden. Das heißt, gemäß einem Aspekt der genannten Erfindung ist der Datenpaketverlaufsstatus ein Auswahlverlaufsstatus, der zu einem entsprechenden Datenpaket gehört. Daher ist eine Seite des Kommunikationskanals, z.B. die Übermittlungs- oder Senderseite im Besitz und in Kenntnis von bestimmten Informationen darüber, welche Datenpakete von der zweiten Seite des Kommunikationskanals, z.B. der Empfangs- oder Empfängerseite, erfolgreich empfangen wurden. Der Dekompressor wiederum ist ebenfalls im Besitz und in Kenntnis eines Auswahlverlaufs, um eine effiziente Dekompression der übermittelten komprimierten Datenpakete vom Versender zu ermöglichen. Das heißt, die Dekompression erfolgt in Abhängigkeit davon, welche Datenpakete bei der Kompression solcher Pakete als Verlauf verwendet wurden, d.h. von dem Auswahlverlaufsstatus. Daher arbeiten durch die Aspekte des Auswahlverlaufsstatus und der Bestätigung der genannten Erfindung der Kompressor und der Dekompressor (auf jeder Seite des Kommunikationskanals) zusammen, um eine verbesserte Kompression über einen Kommunikationskanal zu erzielen.
  • Die Kompressionsergebnisse, z.B. Bandbreitenverhältnis, die mit dem Einsatz der verschiedenen Kompressionsaspekte der Erfindung in der Anwendung mit Bestätigter Kompression erreicht werden, sind bei kleineren Datenpaketen etwas eingeschränkt, insbesondere bei höheren Bandbreiten. Dies liegt zum Teil an dem tatsächlich verwendeten Kompressionsschema. Beispielsweise verwendet das bekannte Kompressionsschema Deflate ein relativ uneffektives Format für kleinere Datenpaketgrößen. Genauer wird nach dem Kompressionsschema Deflate, jedes Datenpaket mit der bekannten statischen oder dynamischen Huffman-Codierung komprimiert. Während diese Huffman-Codierung für die Offline-Kompression großer Dateien gut geeignet ist, ist der damit verbundene Verarbeitungs-Overhead zum Berechnen und Übermitteln des erforderlichen Huffman-Wörterbuchs in jedem Datenpaket viel zu hoch für die Echtzeitkompression kleinerer Datenpakete, z.B. typischer Datenpakete, die über das Internet übermittelt werden. Außerdem erfordert Deflate den zusätzlichen Overhead von etwa 8 Byte, um ein Datenpaket zu beenden, was seine Verwendbarkeit in Internet-artigen Kommunikationsanwendungen weiter beeinträchtigt. Wie man verstehen wird, werden andere Kompressionsschemata, die solche Huffman-Codes und/oder -Wörterbücher verwenden, z.B. LZ77, ähnlich beeinträchtigt.
  • Daher wurde festgestellt, dass die Aspekte der Erfindung in der Anwendung mit Bestätigter Kompression, wie sie nachfolgend sehr viel ausführlicher erläutert werden, und ihre gesamten Vorteile außerdem in einem neuartigen Kompressionsformat realisiert werden, das bestimmte Probleme des Verarbeitungs-Overheads bei herkömmlichen Kompressionsschemata mildert. Genauer wird gemäß einem Aspekt der vorliegenden Erfindung eine Codierung mit variabler Länge zusammen mit dem Führen einer separaten Hash-Tabelle für jedes Datenpaket verwendet. Gemäß der bevorzugten Ausführungsform der Erfindung setzt die Codierung mit variabler Länge Matchlängen, Offsets und Literale ein. Vor der ausführlicheren Erläuterung der verschiedenen Aspekte der vorliegenden Erfindung und zur Förderung eines umfassenden Verständnisses der Erfindung werden im Folgenden bestimmte Aspekte der ebenfalls anhängigen, gemeinsam übertragenen Anwendung mit Bestätigter Kompression, auf die oben verwiesen wird, dargestellt.
  • Ein Aspekt der genannten Erfindung stellt ein Verfahren und eine Vorrichtung zum Komprimieren von Datenpaketen bereit, das/die eine paketübergreifende Kompression ermöglicht, womit eine größere Robustheit und erhöhte Kompressionsverhältnisse ohne die beeinträchtigenden Wirkungen vorheriger Kompressionsschemata, z.B. des Effektes der Vervielfachung von Datenpaketverlusten, erreicht werden. Genauer wird ein so genanntes Bestätigungsschema zusammen mit einem spezifischen Kom pressionsalgorithmus solcherart eingesetzt, dass der Übermittler, d.h. der Versender, den von dem Kompressionsalgorithmus verwendeten Verlauf auf diejenigen Datenpakete beschränken kann, die erfolgreich empfangen werden. Gemäß der bevorzugten Ausführungsform gehört zu dem komprimierten Datenpaket ein Vektor, der die als Verlauf verwendeten Datenpakete identifiziert, womit der Empfänger in die Lage versetzt wird, den Datenpaketverlaufsstatus zu rekonstruieren, der zum Dekomprimieren des Datenpakets notwendig ist.
  • 1 zeigt ein Blockdiagramm eines beispielhaften Systems 100 zum Komprimieren und Dekomprimieren von Daten. Das System 100 ist u.a. zum Übermitteln und Empfangen von Informationen über ein Übermittlungsmedium, z.B. verdrahtet, drahtlos oder faseroptisch, um nur einige zu nennen, verwendbar. Ferner ist das System 100 alternativ zum Aufzeichnen von Informationen auf und Auslesen von Informationen aus beispielsweise einem magnetischen Medium wie etwa Computerlaufwerken oder aus einem optisch auslesbaren Medium wie etwa CD-ROMs verwendbar. Daher ist es möglich, erfindungsgemäß komprimierte Daten auf ein beschreibbares Medium aufzuzeichnen, u.a. auf ein magnetisches Medium, z.B. Magnetlaufwerke, und auf ein optisch beschreibbares Medium, z.B. CD-ROMs, aufzuzeichnen. In 1 wird ein Eingangsdatenstrom 105, z.B. Text, zum Eingangsdatencodierer 110 geliefert. Wie nachfolgend ausführlicher erläutert, bearbeitet der Eingangsdatencodierer 110 gemäß einem Aspekt der Erfindung den Eingangsdatenstrom vor und codiert den Eingangsdatenstrom, indem er eine paketweise Kompression mit variablem Verlaufsstatus anwendet. Die verschiedenen Aspekte der Erfindung, die sich auf diesen Codiervorgang richten, sind nachfolgend anhand der in 2 dargestellten beispielhaften Operationen beschrieben.
  • In der Erläuterung des beispielhaften Systems 100 der 1 fortfahrend wird der codierte Eingangsdatenstrom 115, der gemäß einem Aspekt der Erfindung erzeugt wurde, zum Kompressor 120 weitergeleitet. Der Kompressor 120 wendet gemäß der bevorzugten Ausführungsform der Erfindung ein Kompressionsverfahren an, z.B. Lempel-Ziv-Kompression, um den codierten Eingangsdatenstrom 115 zu den komprimierten Daten 125 zu komprimieren. Wie oben erwähnt, wird erneut angemerkt, dass jede Kompression des Typs Lempel-Ziv bei der erfindungsgemäßen Kompression des codierten Eingangsdatenstroms 115 und zur Realisierung der vorliegend beschriebenen, vorteilhaften Aspekte der Erfindung wirksam verwendet werden kann. Die komprimierten Daten 125 werden dann von dem Kanalcodierer 130 codiert, um kanalcodierte Informationen 135 zu erzeugen. Wie man verstehen wird, fügt das Kanalcodieren den komprimierten Informationen Informationen hinzu, um Fehlererkennung und/oder -korrektur bei dem Datenlesevorgang zu ermöglichen. Herkömmliche Kanalcodierungstechniken umfassen das bekannte Reed-Solomon-Codieren, das eine Sequenz von Symbolen codiert, wobei jedes Symbol durch ein oder mehrere Datenbits dargestellt wird. Diese Symbole werden dann mit dem Modulationscodierer 140 modulationscodiert, der einen modulierten Datenstrom 145 erzeugt, der eine Kanalsequenz bestimmt, welche über einen Kommunikationskanal übermittelt wird oder auf ein Medium 150 aufgezeichnet wird.
  • Während der Übermittlung oder Aufzeichnung des Datenstroms gelangen oft Rauschen und Störungen in den Kanal/das Medium 150. Daher empfangen der Modulationsdecoder 155 und der Kanaldecoder 160 den modulierten Datenstrom 145 mit dem Rauschen und kehren in bekannter Weise den Codiervorgang des Kanalcodierers 130 bzw. des Modulationscodierers 140 um. Der Datenstrom vom Kanaldecoder 160 entspricht den komprimierten Daten 125, die von dem Kompressor 120 erzeugt wurden. Dieser Datenstrom wird dann erfindungsgemäß mit dem Dekompressor 165 dekomprimiert und mit dem Datendecoder 170 decodiert, wodurch ein Ausgangsdatenstrom 175 wie nach folgend anhand 4 ausführlich beschrieben erzeugt wird.
  • Die verschiedenen Aspekte der Erfindung in der Anwendung mit Bestätigter Kompression sind darauf gerichtet, verbesserte Kompressionsrobustheit und Kompressionsverhältnisse zu realisieren. 2 zeigt ein Flussdiagramm beispielhafter Operationen 200 zum Komprimieren von Daten gemäß der genannten Erfindung, die auch in dem beispielhaften System der 1 wie oben beschrieben verwendbar sind. Genauer wird ein Eingangsdatenstrom empfangen und die erfolgreich empfangenen Datenpakete werden geprüft (siehe 2, Block 210). Die Überprüfung der erfolgreich empfangenen Datenpakete ermöglicht gemäß diesem Aspekt der Erfindung die Feststellung eines Datenpaketverlaufsstatus in Abhängigkeit von dem Bestätigungsvektor (siehe 2, Block 220). Gemäß den bevorzugten Ausführungsformen der Erfindung handelt es sich bei dem Datenpaketverlaufsstatus um eine vorherige Gruppe von Datenpaketen, nach denen die Kompression des aktuellen Datenpakets bestimmt wird. Beispielsweise ist in Bezug auf die 77er Lempel-Ziv-Kompression der Verlaufszustand ein direkter Zusammenhang mit dem so genannten Wörterbuch, das bei dieser Lempel-Ziv-Kompression verwendet wird. Interessanterweise besteht ein Hauptunterschied zwischen der oben genannten statuslosen Kompression und der Streamingkompression von Netzwerkdatenpaketen in dem konkreten Verlaufsstatus, den jedes Schema verwendet. Das heißt, die statuslose Kompression verwendet keinen Verlaufsstatus, während die Streamingkompression jedes vorherige Paket als Verlauf zulässt. Solche Unterschiede gelten umso mehr in Bezug auf die Prinzipien der Erfindung.
  • Genauer handelt es sich gemäß der bevorzugten Ausführungsform der Erfindung bei dem Datenpaketverlaufsstatus um einen Auswahlverlaufsstatus in Bezug auf bestimmte Datenpakete, die über den Kommunikationskanal z.B. von der Empfängerseite oder vom Empfänger erfolgreich empfangen wurden. Der Empfänger wiederum ist in Besitz und Kenntnis des Auswahlverlaufs, um eine erfolgreiche Dekompression der übermittelten komprimierten Datenpakete zu ermöglichen. Vorteilhaft verbessert gemäß diesem Aspekt der Erfindung die Verwendung des paketübergreifenden Auswahlverlaufsstatus die Kompressionsrobustheit und das Kompressionsverhältnis gegenüber bisherigen Streamingkompressionsschemata, die mit den ihnen inhärenten Datenpaketverlusten behaftet sind.
  • Nach der Feststellung des Datenpaketauswahlverlaufsstatus wie oben dargelegt wird dieser Verlaufsstatus verwendet, um bestimmte Informationen an die Datenpakete, die auf ihre Übermittlung vom Versender warten, zu codieren. Genauer werden gemäß der bevorzugten Ausführungsform der Erfindung die einzelnen Pakete in Abhängigkeit vom jeweiligen dazugehörigen Datenpaketverlaufsstatus codiert (siehe 2, Block 230). Gemäß einer Ausführungsform der Erfindung wird jedem Datenpaket ein Header vorangestellt, der beispielhaft einen Verlaufsvektor enthält, der den zu diesem Paket gehörigen Datenpaketverlauf identifiziert. Wenn wir uns kurz der 3 zuwenden, ist ein beispielhafter Datenpaketstrom 300 dargestellt, der gemäß den beispielhaften Operationen der 2 komprimiert ist. Gemäß der Ausführungsform der 3 umfasst der Datenpaketheader zusätzliche Positionen wie etwa eine Sequenzanzahl und den Bestätigungsvektor. Das heißt, gemäß weiteren Ausführungsformen der Erfindung kann der genannte Bestätigungsvektor als Teil des Datenpaketheaders gesendet werden. Wie der Fachmann verstehen wird, ist die Entscheidung, ob der Bestätigungsvektor separat von den codierten Datenpaketen übermittelt wird (wie oben erläutert) oder als Teil des Datenpaketheaders, eine Sache der Designfestlegung, wobei die Prinzipien der Erfindung in jedem Kontext gleichermaßen gelten. Beispielsweise kann der Bestätigungsvektor mit Hilfe einer so genannten „Huckepack"-Technik zum Versender übermittelt werden, bei der es einen Datenstrom in die entgegengesetzte Richtung vom Empfänger zum Versender gibt.
  • Beispielsweise umfasst der Datenpaketstrom 300 eine Serie von Datenpaketen (z.B. Datenpaket 1 bis Datenpaket n, in 3 als Datenpakete 305-315 dargestellt). Außerdem umfasst jedes Datenpaket einen Header (z.B. H1 bis Hn, in 3 als Header 320-330 dargestellt). Ferner ist beispielhaft der Header 320 detaillierter dargestellt, der die Sequenzanzahl 335, den Verlaufsvektor 340 und den Bestätigungsvektor 345 umfasst.
  • Gemäß der bevorzugten Ausführungsform wird die Sequenzanzahl, z.B. die Sequenzanzahl 335, sowohl vom Versender als auch vom Empfänger verwendet, um Datenpakete zu identifizieren, die gemäß den Prinzipien der Erfindung komprimiert wurden. Die Anzahl der Bits, die zum Codieren der Sequenzanzahl verwendet wird, muss ausreichen, um die bekannten beeinträchtigenden Folgen so genannten „Wrappings" während der maximalen Zeit, die zum Durchqueren des gesamten Netzwerks benötigt wird, zu vermeiden. Beispielhaft ist die Sequenzanzahl 335 mit einer Länge von 24 Bit dargestellt.
  • Außerdem beschreibt gemäß der bevorzugten Ausführungsform der Verlaufsvektor, z.B. der Verlaufsvektor 340, die Gruppe vorangegangener Datenpakete, die zur Kompression verwendet wurden, d.h. den Auswahlverlaufsstatus. In Bezug auf die bevorzugte Ausführungsform der Erfindung, die die Bestätigungsdatenpakete zur Verlaufsbestimmung verwendet, kann eine Zeitverzögerung auftreten, die mit der Netzwerkumlaufzeit zwischen der Zeit, zu der ein Datenpaket übermittelt wird, und der Zeit, zu der das Datenpaket als Verlauf verwendet wird, zusammenhängt. Daher wird gemäß der bevorzugten Ausführungsform der Erfindung der Verlaufsvektor unter Verwendung eines Offsets und einer Bit-Maske solcherart codiert, dass der Offset von der Sequenzanzahl des Datenpakets subtrahiert wird, um die Sequenzanzahl des aktuellsten Verlaufsdatenpakets zu bestimmen. Die Bit-Maske identifiziert zusätzliche Verlaufsdatenpakete, die diesem aktuellsten Verlaufsdatenpaket direkt vorausgehen. Beispielhaft umfasst in Bezug auf den Header 320 der Verlaufsvektor 340 8 Bit Offset und 8 Bit Maske, womit der Verlaufsstatus auf höchstens neun aufeinander folgende Datenpakete innerhalb der letzten 263 beschränkt wird.
  • Wie oben erwähnt, umfasst der Datenpaketheader der Ausführungsform der 3 auch den Bestätigungsvektor, z.B. den Bestätigungsvektor 345, der eine Gruppe von kürzlich empfangenen Datenpaketen beschreibt. Der Bestätigungsvektor umfasst mindestens die Sequenzanzahl des zuletzt empfangenen Datenpakets und eine Bit-Maske, die den Status der direkt vorhergehenden Datenpakete beschreibt. Beispielhaft beträgt die Länge des Bestätigungsvektors 345 32 Bit, um 24 Bit für die Sequenzanzahl und 8 Bit für die dazugehörige Maske abzudecken.
  • Wenn wir uns nun wieder der 2 zuwenden, sind nach dem Codieren der Datenpakete in Abhängigkeit von ihrem jeweiligen Datenpaketverlaufsstatus (siehe 2, Block 230) gemäß den Prinzipien der Erfindung diese Pakete bereit zur weiteren Kompression. Wie oben dargelegt, besteht ein Vorteil der vorliegenden Erfindung darin, dass sie zusammen mit vielen verschiedenen vorhandenen Kompressionstechniken angewendet werden kann. Zum Beispiel verbessern, wie nachfolgend ausführlicher beschrieben, die Prinzipien der Erfindung die Kompression eines Datenstroms, auf den die bekannte LZ77-Kompression oder das bekannte Kompressionsschema „Deflate" angewendet wird. Damit sind nach der Anwendung des ausgewählten Kompressionsschemas auf die codierten Datenpakete (siehe 2, Block 240) die komprimierten Datenpakete bereit zur Übermittlung
    (siehe 2, Block 250).
  • Gemäß einem Aspekt der Erfindung wurde festgestellt, dass mit dem Einsatz eines Auswahlverlaufsstatus in Abhängigkeit von den Datenpaketen zur Übermittlung in einem Netzwerk die Bereitstellung eines eleganten Kompressionstools erzielt wird, mit dem eine verbesserte Datenkompression realisiert werden kann. Das heißt, gemäß einem Aspekt der Erfindung handelt es sich bei dem Datenpaketverlaufsstatus, der zu einem jeweiligen Datenpaket gehört, um einen Auswahlverlaufsstatus insofern, als die Übermittlungsseite, d.h. der Versender, in Besitz und Kenntnis bestimmter Informationen darüber ist, welche Datenpakete von der Empfängerseite, d.h. dem Empfänger, erfolgreich empfangen wurden. Die Empfängerseite wiederum ist ebenfalls in Besitz und Kenntnis des Auswahlverlaufsstatus, der zu solchen Datenpaketen gehört, um die effiziente Dekompression der komprimierten Datenpakete vom Versender zu ermöglichen. Daher arbeiten mittels der Aspekte des Auswahlverlaufsstatus und der Bestätigung der Erfindung der Versender und der Empfänger zusammen, um eine verbesserte Kompression über den Kommunikationskanal zu erreichen.
  • Genauer wird gemäß einem Aspekt der Erfindung der Bestätigungsvektor zusammen mit einem spezifischen Kompressionsschema solcherart verwendet, dass der Übermittler, d.h. der Versender, den von dem Kompressionsalgorithmus verwendeten Verlauf auf solche Datenpakte beschränken kann, die erfolgreich empfangen werden. Somit ist gemäß einer Ausführungsform der Erfindung der Vektor, der die als Verlauf verwendeten Datenpakete identifiziert, in dem komprimierten Datenpaket enthalten, womit der Empfänger in die Lage versetzt wird, den Datenpaketverlaufsstatus zu rekonstruieren, der zum Dekomprimieren des Datenpakets erforderlich ist. Gemäß weiteren Ausführungsformen der Erfindung wird der Bestätigungsvektor separat von den komprimierten Datenpakten übermittelt. Außerdem versteht es sich, dass, während die vorliegenden beispielhaften Ausführungsformen der Klarheit halber eine einzige Kommunikationskanalanordnung erläutern, die Prinzipien der Erfindung gleichermaßen auf mehrere Kommunikationskanalanordnungen und -konfigurierungen anwendbar sind. Vorteilhaft verbessert gemäß diesem Aspekt der Erfindung die Verwendung des Auswahlverlaufsstatus die Kompressionsrobustheit und das Kompressionsverhältnis gegenüber bisherigen Streamingkompressionsschemata, die mit der inhärenten Anhäufung von Datenpaketverlusten behaftet sind.
  • 4 zeigt ein Flussdiagramm beispielhafter Operationen 400 zum Dekomprimieren von Daten gemäß einem weiteren Aspekt der Erfindung der Anwendung mit Bestätigter Kompression. Genauer wird aus dem empfangenen komprimierten Strom von Datenpaketen (siehe 4, Block 410) der Verlaufsvektor auf einer Paketfür-Paket-Basis extrahiert (siehe 4, Block 420). Daher wird der jeweilige, zu einem Datenpaket gehörige Datenpaketverlaufsstatus in Abhängigkeit von dem Verlaufsvektor bestimmt. Beispielhaft beschreibt der folgende Pseudocode die Extrahierung dieser Punkte gemäß einer Ausführungsform der Erfindung:
    Figure 00200001
    Figure 00210001
  • Man wird verstehen, dass der oben beschriebene Pseudocode vom Fachmann verwendet werden kann, um verschiedene Programme, z.B. ein Computerprogramm in der bekannten Programmiersprache C, zur Ausführung in einem Prozessor zur Umsetzung der Erfindung zu entwickeln. Aus der Extrahierung des Verlaufsvektors wird der jeweilige Datenpaketverlaufsstatus des zu dekomprimierenden Datenpakets festgestellt (siehe 4, Block 430). Gemäß weiteren Ausführungsformen der Erfindung kann die Extrahierung auch das Extrahieren des Bestätigungsvektors und der Sequenzanzahl aus dem Datenpaketheader umfassen. Gemäß der bevorzugten Ausführungsform der Erfindung kann die Dekompression des aktuellen Datenpakets in Abhängigkeit vom jeweiligen Verlaufsstatus fortgesetzt werden (siehe 4, Block 440). Daher wird das aktuelle unkomprimierte Datenpaket dem aktuellen Status der empfangenen Datenpakete des jeweiligen Dekompressors, z.B. des Dekompressors auf der Empfangsseite des spezifischen Kommunikationskanals, hinzugefügt (siehe 4, Block 450), wobei die Gruppe der empfangenen Datenpakete aktualisiert wird. Schließlich wird nach der Dekompression des aktuellen Datenpakets der Bestätigungsvektor erstellt und zum Versender zurück übermittelt (siehe 4, Block 460). Wie vorangehend dargelegt, beschreibt der Bestätigungsvektor die Gruppe kürzlich empfangener Datenpakete und wird von dem Versender verwendet, um zukünftige Datenpakete zusammen mit dem Auswahlverlaufsstatus gemäß einem Aspekt der Erfindung zu komprimieren.
  • Wie oben erwähnt, wurde festgestellt, dass die Aspekte der Erfindung in der Anwendung mit Bestätigter Kompression wie oben dargelegt und ihre Vorteile ferner mit einer neuartigen Codiertechnik und einem neuartigen Kompressionsformat realisiert werden. Solch ein erfinderisches Kompressionsformat und die dazugehörige Codierung sind Gegenstand der vorliegenden Erfindung.
  • Wie bei bestimmten bekannten Kompressionsschemata besteht ein wichtiges Umsetzungsmerkmal im Auffinden von Matches. Typisch werden Matches in einem Abschnitt des aktuellen Datenpakets gefunden, das komprimiert wurde, oder eines der Datenpakete, aus denen der Verlaufsstatus zusammengesetzt ist. Beispielsweise verwendet die Zlib-Implementierung von Deflate (wie oben erläutert) eine einzige Hash-Tabelle, um nach Matches zu suchen, was zu akzeptablen Ergebnissen führt, wenn sie beispielsweise zusammen mit Streamingkompression verwendet wird. Im Gegensatz dazu und vorteilhaft erzeugt und führt die jetzige Erfindung eine separate Hash-Tabelle für jedes Datenpaket. Genauer zeigt 5 ein Flussdiagramm beispielhafter Operationen 500 zum Komprimieren von Daten gemäß einem Aspekt der vorliegenden Erfindung. Aus einer Gruppe von Eingangsdaten (siehe 5, Block 510) wird eine separate Hash-Tabelle für jedes Datenpaket erzeugt und geführt (siehe 5, Block 520). Das heißt, die jetzige Erfindung erzeugt und führt eine jeweilige separate Hash-Tabelle für jedes Datenpaket, wobei eine solche Hash-Tabelle unabhängig vom Inhalt anderer Datenpakete erstellt wird. Gemäß einer bevorzugten Ausführungsform der Erfindung wird die konkrete Hash-Tabelle mit ihrem jeweiligen Paket erstellt, wenn das Paket komprimiert wird. Wie vorhergehend erwähnt, wird gemäß einer weiteren Ausführungsform der Erfindung die jeweilige Hash-Tabelle für das Paket vor der Kompression oder nach der Kompression erstellt.
  • Somit werden gemäß einer bevorzugten Ausführungsform der Erfindung einzelne Datenpakete in Bezug auf die jeweiligen Hash-Tabellen für die Datenpakete im Verlaufsstatus eines Datenpakets codiert (siehe 5, Block 530). Das heißt, das Codieren eines konkreten Datenpakets „P" verwendet eine dazugehörige Gruppe von Datenpaketen „S", die einen Datenpaketverlaufsstatus definieren. Gemäß einem Aspekt der Erfindung weist jedes Datenpaket in S eine entsprechende dazugehörige Hash-Tabelle auf. Somit erfolgt das Codieren des konkreten Datenpakets P gemäß einem Aspekt der Erfindung in Bezug auf die jeweiligen Hash-Tabellen für die Datenpakete in S. Gemäß einem Aspekt der Erfindung indiziert die jeweilige Hash-Tabelle für das Datenpaket die Daten in dem gesamten Datenpaket in Abhängigkeit von einzelnen Unterstrings. Daher umfasst das Codieren von P das Nachschlagen einer Serie von Unterstrings aus P in der Hash-Tabelle, die zu den Paketen in S gehört. Beispielhaft beträgt gemäß der bevorzugten Ausführungsform der Erfindung die Länge solcher Unterstrings drei Byte. Somit bestimmt die Gesamtbytegröße eines konkreten Datenpakets die Anzahl der Byte-Folgen, die in der entsprechenden Hash-Tabelle für dieses Datenpaket angegeben ist. Daher stellt die Verwendung einer paketweisen Hash-Tabelle in Kombination mit der paketübergreifenden Kompression nach variablem Verlaufsstatus eine effiziente und robuste Gesamtkompression der Pakete bereit.
  • Genauer wird gemäß einem Aspekt der vorliegenden Erfindung eine Codierung mit variabler Länge zusammen mit der Führung einer separaten Hash-Tabelle für jedes Datenpaket verwendet. Gemäß der bevorzugten Ausführungsform der Erfindung wird die Codierung mit variabler Länge für Matchlängen, Offsets und Literale verwendet. Die Matchlängen werden solcherart codiert (siehe 5, Block 540), dass alle Phrasen mit einer Matchlänge beginnen, wobei die Literale mit einer Matchlänge von Null codiert sind, gefolgt von einer Codierung des Literals. Gemäß der bevorzugten Ausführungsform beträgt die kleinste Matchlänge von nicht Null beispielhaft drei Byte und das maximale Match ist durch die spezifische Datenpaketgröße begrenzt. Beispielhaft zeigt Tabelle 1 unten eine Codierung konkreter Matchlängen gemäß der bevorzugten Ausführungsform:
  • Tabelle 1
    Figure 00240001
  • Außerdem werden gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung Literale mit einem Vorhersageschema codiert (siehe 5, Block 550): (a) es wird eine voreingestellte 8-Bit-Literalcodierung angewendet; es sei denn (2), vier Literale nacheinander fallen in den Bereich zwischen einschließlich 32 und 127, dann wird eine Codierung mit variabler Länge verwendet, bis ein Lateral außerhalb dieses Bereichs codiert wird. Die 7 am wenigsten signifikanten Bits werden für Werte innerhalb des angegebenen Bereichs ausgegeben; und (3) andere Literale werden codiert, indem zur Anzahl 64 Bit addiert werden, modulo 256. Die sich daraus ergebende Anzahl wird in 9 Bit codiert, wenn sie kleiner als 96 ist, oder anderenfalls in 10 Bit.
  • Gemäß der bevorzugten Ausführungsform der Erfindung werden Matchoffsets als der Abstand zwischen der übereinstimmenden Phrase und dem zuletzt codierten Eingabe-Byte definiert und codiert (siehe 5, Block 560). Ein Offset beträgt beispielhaft 14 Bit und wird in zwei Teilen codiert: (1) ein Bereich; und (2) die Position in diesem Bereich. Der Bereich bestimmt die Anzahl der Bits, die zum Codieren der Position verwendet werden, wobei weniger Bits verwendet werden, um einen nähere Offset zu codieren. Beispielhaft zeigt Tabelle 2 unten eine Codierung von Matchoffsets gemäß der bevorzugten Ausführungsform: Tabelle 2
    Figure 00250001
  • Gemäß der bevorzugten Ausführungsform der Erfindung gibt die paketweise Hash-Tabelle die Byte-Folgen in dem Datenpaket an, aber keine Daten in (einem) beliebigen anderen Datenpaket(en). Da die Hash-Tabelle jedes Datenpakets nur von den Daten in dem konkreten Datenpaket abhängt, kann somit mit Hilfe der entsprechenden Hash-Tabellen ein gültiger Index für eine beliebige Gruppe von Datenpaketen erstellt werden. Das heißt, gemäß der bevorzugten Ausführungsform erfolgt die Suche nach einem String mittels einer Abfrage der Hash-Tabelle für das aktuelle Datenpaket, gefolgt von den Hash-Tabellen für jedes der Datenpakete in dem variablen Verlaufsstatus, beginnend mit dem zuletzt gesendeten Datenpaket. Wie man verstehen wird, führen die paketweisen Hash-Tabellen der bevorzugten Ausführungsform auch einzeln verlinkte Offsetketten, die von einem ungültigen Eintrag beendet werden, und Hash-Tabellen werden erneuert, indem der gültige Offsetbereich für die Hash-Tabelle geändert wird (nicht indem die gesamte Tabelle geleert wird). Wie man verstehen wird, wird ferner ein Kompressionsgradparameter, z.B. 8 Strings, verwendet, um die maximale Anzahl von Strings zu bestimmen, die während der Suche nach einem Match geprüft werden. Wie man verstehen wird, ist der Kompressionsgradparameter ein Indikator zur Bestimmung des Grades der Gesamtrechenleistung, der während der Kompression verwendet wird, je höher der Grad, desto mehr Rechenleistung wird bei der Kompression der Daten erbracht.
  • Um die verschiedenen Aspekte der Erfindung und ihre Vorteile weiter darzustellen, wurden die Prinzipien der Erfindung im Kontext eines Vergleichs mit der bekannten zlib-Deflate-Kompression wie im Vorangegangen erläutert angewendet. Genauer zeigt 6 Ergebnisse einer Bandbreitenverhältnissimulation 600 und 610 für Datenpaketgrößen von 1600 Byte bzw. 125 Byte. Die Ergebnisse einer Bandbreitenverhältnissimulation 600 und 610 enthalten Ergebnisse in Bezug auf zwei verschiedene Kompressionsgradeinstellungen. Das heißt, die Ergebnisse 620 und 640 vergleichen die beiden Kompressionsschemata bei einem Kompressionsgradparameter von Sechs (6), und die Ergebnisse 630 und 650 vergleichen die beiden Kompressionsschemata bei einer Kompressionseinstellung von Eins. Wie man aus dem Studium der Ergebnisse der Bandbreitenverhältnissimulation 600 und 610 verstehen wird, ist die Kompression, die im Großen und Ganzen gemäß den Prinzipien der Erfindung erzielt wurde (d.h. „thwack-6", siehe Ergebnisse 640; und „thwack-1", siehe Ergebnisse 650) der Kompression mit Deflate überlegen (d.h. „zlib-6", siehe Ergebnisse 620; und „zlib-1", siehe Ergebnisse 630) und hinsichtlich der Kompression kleinerer Datenpaketgrößen deutlich überlegen.
  • Die verschiedenen Aspekte der vorliegenden Erfindung können in der Form von Verfahren und Vorrichtungen zur praktischen Umsetzung dieser Verfahren ausgeführt sein. Die Erfindung kann auch in Form von Programmcode ausgeführt sein, der in physischen Medien wie etwa Disketten, CD-ROMs, Festplatten oder beliebigen anderen maschinenlesbaren Speichermedien ausgeführt ist, wobei, wenn der Programmcode in eine Maschine wie etwa einen Computer geladen und dort ausgeführt wird, die Maschine eine Vorrichtung zur praktischen Umsetzung der Erfindung wird. Die Erfindung kann auch in Form von Programmcode beispielsweise in einem Speichermedium ausgeführt sein, der in eine Maschine geladen und/oder von einer Maschine ausgeführt wird oder über ein Über mittlungsmedium wie etwa über elektrische Verdrahtung oder Verkabelung, durch Faseroptik oder über elektromagnetische Strahlung übermittelt wird, wobei, wenn der Programmcode in eine Maschine wie etwa einen Computer geladen und dort ausgeführt wird, die Maschine eine Vorrichtung zur praktischen Umsetzung der Erfindung wird. Bei der Implementierung auf einem Allzweckprozessor schließen sich die Segmente des Programmcodes mit dem Prozessor solcherart zusammen, dass sie ein einzigartiges Gerät bereitstellen, welches analog zu spezifischen logischen Schaltkreisen operiert.
  • Das Vorangegangene stellt die Prinzipien der vorliegenden Erfindung lediglich beispielhaft dar. Man wird daher verstehen, dass der Fachmann in der Lage sein wird, verschiedene Anordnungen zu gestalten, die, obzwar im Vorliegenden nicht explizit beschrieben oder dargestellt, die Erfindung wie in den Ansprüchen definiert ausführen. Ferner sind alle im Vorliegenden angeführten Beispiele und Bedingungsbegriffe prinzipiell und ausdrücklich nur zu instruktiven Zwecken gedacht, um den Leser in seinem Verständnis der Prinzipien der Erfindung und der Konzepte zu unterstützen, die von den Anmeldern zur Weiterentwicklung des Fachgebiets beigetragen wurden, und sollen so ausgelegt werden, dass sie nicht auf solche spezifisch angeführten Beispiele und Bedingungen beschränkt sind. Außerdem sollen alle Aussagen im Vorliegenden, die sich auf Prinzipien, Aspekte und Ausführungsformen der Erfindung sowie konkrete Beispiele davon beziehen, sowohl strukturelle als auch funktionelle Äquivalente davon einschließen. Zusätzlich ist beabsichtigt, dass solche Äquivalente sowohl derzeit bekannte als auch zukünftig entwickelte Äquivalente umfassen, d.h. alle entwickelten Elemente, die unabhängig von der Struktur dieselbe Funktion erfüllen.
  • So wird beispielsweise der Fachmann verstehen, dass die vorliegend enthaltenen Blockdiagramme konzeptionelle Ansichten beispielhafter Schaltungen darstellen, die die Prinzipien der Erfindung verkörpern. Ähnlich wird man verstehen, dass Flussübersichten, Flussdiagramme, Statusübergangsdiagramme, Pseudocode, Programmcode und dergleichen verschiedene Vorgänge darstellen, die im Wesentlichen in einem computerlesbaren Medium ausgeführt sein können und so von einem Computer, einer Maschine oder einem Prozessor ausgeführt werden können, ob ein solcher Computer, eine solche Maschine oder ein solcher Prozessor explizit dargestellt ist oder nicht.

Claims (6)

  1. Verfahren zum Codieren eines Eingangsdatenstroms, wobei der Eingangsdatenstrom mehrere Bits umfasst, wobei das Verfahren umfasst: das Anordnen der mehreren Bits in mehreren Datenpaketen, wobei jedes Datenpaket eine bestimmte Folge von Bits der mehreren Bits umfasst, das Erzeugen mehrerer Hash-Tabellen, wobei jede der Hash-Tabellen zu einem bestimmten Datenpaket der mehreren Datenpaketen gehört, und das Codieren jedes Datenpakets der mehreren Datenpakete in einen Ausgangsdatenstrom, wobei jedes Datenpaket des Ausgangsdatenstroms zusammen mit der jeweiligen dazugehörigen Hash-Tabelle codiert wird.
  2. Verfahren nach Anspruch 1, wobei die zum Datenpaket gehörige Hash-Tabelle in Abhängigkeit von mindestens einem Teil der Bits in dem Datenpaket identifiziert wird.
  3. Verfahren nach Anspruch 2, wobei die zum Datenpaket gehörige Hash-Tabelle eine Folge von Byte-Unterfolgen umfasst, wobei die Folge von Byte-Unterfolgen in Abhängigkeit von dem Teil der Bits in dem Datenpaket bestimmt ist.
  4. Maschinenlesbares Medium, auf dem mehrere Anweisungen gespeichert sind, wobei die mehreren Anweisungen Anweisungen umfassen, die, wenn sie von einer Maschine ausgeführt werden, bewirken, dass die Maschine ein Signalcodierverfahren ausführt, indem sie mehrere Bits des Signals in mehreren Datenpakete anordnet, wobei jedes Datenpaket eine bestimmte Folge von Bits aus den mehreren Bits umfasst, indem sie mehrere Hash-Tabellen erzeugt, wobei jede der Hash-Tabellen zu einem be stimmten Datenpaket der mehreren Datenpakete gehört, und indem sie jedes Datenpaket der mehreren Datenpakete in einen Ausgangsdatenstrom codiert, wobei jedes Datenpaket des Ausgangsdatenstroms zusammen mit der jeweiligen dazugehörigen Hash-Tabelle codiert wird.
  5. Maschinenlesbares Medium nach Anspruch 4, das ferner Anweisungen solcherart umfasst, dass sie, wenn sie von der Maschine ausgeführt werden, bewirken, dass die Maschine das Verfahren ausführt, das ferner folgenden Schritt umfasst: das Übermitteln des Ausgangsdatenstroms über einen Kommunikationskanal.
  6. Maschinenlesbares Medium nach Anspruch 4, wobei die jeweilige Hash-Tabelle, die zu dem Datenpaket gehört, in Abhängigkeit von mindestens einem Teil der Bits in dem Datenpaket identifiziert wird, und die jeweilige Hash-Tabelle, die zu dem Datenpaket gehört, eine Folge von Byte-Unterfolgen umfasst, wobei die Folge von Byte-Unterfolgen in Abhängigkeit von dem Teil der Bits in dem Datenpaket bestimmt ist.
DE60033184T 2000-03-16 2000-10-23 Verfahren und Vorrichtung zur Datenkomprimierung von Netzwerkdatenpaketen unter Verwendung von paketweisen Hash Tabellen Expired - Lifetime DE60033184T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US526844 1983-08-26
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
DE60033184D1 DE60033184D1 (de) 2007-03-15
DE60033184T2 true DE60033184T2 (de) 2007-11-15

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 Before (1)

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

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
US6879988B2 (en) * 2000-03-09 2005-04-12 Pkware 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
US7844579B2 (en) * 2000-03-09 2010-11-30 Pkware, Inc. System and method for manipulating and managing computer archive files
US8230482B2 (en) 2000-03-09 2012-07-24 Pkware, Inc. System and method for manipulating and managing computer archive files
US20050015608A1 (en) * 2003-07-16 2005-01-20 Pkware, Inc. Method for strongly encrypting .ZIP files
US20060143253A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. 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
US20060173847A1 (en) * 2000-03-09 2006-08-03 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
US20060155788A1 (en) * 2000-03-09 2006-07-13 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
US20060143199A1 (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
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
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
US9332042B2 (en) * 2011-10-03 2016-05-03 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
EP1258998A2 (de) 2002-11-20
DE60000912T2 (de) 2003-09-04
US6236341B1 (en) 2001-05-22
EP1258998B1 (de) 2007-01-24
CA2334497C (en) 2005-06-07
DE60000912D1 (de) 2003-01-16
EP1258998A3 (de) 2005-03-09
CA2334497A1 (en) 2001-09-16
EP1134901B1 (de) 2002-12-04
EP1134901A1 (de) 2001-09-19
JP2001285075A (ja) 2001-10-12
JP3665271B2 (ja) 2005-06-29
DE60033184D1 (de) 2007-03-15

Similar Documents

Publication Publication Date Title
DE60033184T2 (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
DE4340591C2 (de) Datenkompressionsverfahren unter Verwendung kleiner Wörterbücher zur Anwendung auf Netzwerkpakete
DE69318446T2 (de) Verfahren und Vorrichtung zur Datenkompression und -dekompression für eine Übertragungsanordnung
DE69905343T2 (de) Blockweiser adaptiver statistischer datenkompressor
DE68925798T2 (de) Datenverdichtung
DE69805849T2 (de) Ein vorwärtsfehlerkorrektionssystem für packetbasierte echtzeitmedien
DE69429482T2 (de) Methode und Einrichtung zur Datenkompression
DE69833094T2 (de) Verfahren und Vorrichtung zur adaptiven Datenkompression mit höherem Kompressionsgrad
DE3789857T2 (de) System zur Komprimierung von Bildern mit mehreren Graustufen.
DE69510662T2 (de) Kompakte Quellencodierungstabellen für Codierungs-/Decodierungssystem
DE69024629T2 (de) Vorrichtung zur kompression von datenlängen und datenfolgen
US5270712A (en) Sort order preserving method for data storage compression
DE69834695T2 (de) Verfahren und Vorrichtung zur Datenkompression
EP1258085B1 (de) Verfahren zum anpassen der einem turbo-codierer zuzuführenden datenblöcke und entsprechende kommunikationsvorrichtung
DE10196890B4 (de) Verfahren zum Ausführen einer Huffman-Decodierung
EP2068448B1 (de) Verfahren und Anordnung zur arithmetischen Enkodierung und Dekodierung mit Verwendung mehrerer Tabellen
DE69026924T2 (de) Datenkomprimierungsverfahren
DE69524999T2 (de) Verfahren zum Komprimieren und Dekomprimieren von Dateien
DE69025160T2 (de) Verfahren zur Dekodierung komprimierter Daten
DE19907728A1 (de) Vorrichtung und Verfahren zum Erzeugen eines Datenstroms und Vorrichtung und Verfahren zum Lesen eines Datenstroms
DE68927939T2 (de) Monadische Kodierung vom Start-Schritt-Stop-Typ für die Datenkomprimierung
WO2008040267A1 (de) Verfahren und vorrichtung zur kompression und dekompression digitaler daten auf elektronischem wege unter verwendung einer kontextgrammatik

Legal Events

Date Code Title Description
8364 No opposition during term of opposition