DE69517852T2 - Datenkompressionsverfahren und System - Google Patents

Datenkompressionsverfahren und System

Info

Publication number
DE69517852T2
DE69517852T2 DE69517852T DE69517852T DE69517852T2 DE 69517852 T2 DE69517852 T2 DE 69517852T2 DE 69517852 T DE69517852 T DE 69517852T DE 69517852 T DE69517852 T DE 69517852T DE 69517852 T2 DE69517852 T2 DE 69517852T2
Authority
DE
Germany
Prior art keywords
data
compression
strings
dictionary
data stream
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 - Fee Related
Application number
DE69517852T
Other languages
English (en)
Other versions
DE69517852D1 (de
Inventor
Hiroyuki Watanabe
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.)
Seta Corp
Original Assignee
Seta Corp
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 Seta Corp filed Critical Seta Corp
Application granted granted Critical
Publication of DE69517852D1 publication Critical patent/DE69517852D1/de
Publication of DE69517852T2 publication Critical patent/DE69517852T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • 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
    • H03M7/3088Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
    • 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/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind

Landscapes

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

Description

  • Die vorliegende Erfindung bezieht sich im allgemeinen auf ein Datenkompressionsverfahren und -system. Spezieller bezieht sich die Erfindung auf ein verlustloses Datenkompressionsverfahren, das ein Lexikonsystem verwendet, geeignet für einen Zeichengenerator für ein Spielgerät und so weiter.
  • Herkömmlicherweise wurden verschiedene Datenkompressionsverfahren entwickelt für eine Reduzierung der notwendigen Kapazität der Speichereinrichtung in Datenverarbeitungssystemen und zur Verbesserung einer Datenübertragungseffizienz. Das Datenkompressionsverfahren kann im allgemeinen aufgeteilt werden in einen verlustbehafteten Typ und einen verlustlosen Typ von dem Standpunkt der Fähigkeit der bidirektionalen Kodierung.
  • Das verlustbehaftete Datenkompressionsverfahren ist ein nicht reversibles Kodierungssystem. JPEG (vereinigte photographische Kodierungsexpertengruppe), MPEG (Filmbildkodierungsexpertengruppe), H.261 für PMS (Bildtelefonkonferenzservice) oder Bildtelefon usw. sind international standardisierte Systeme dieser verlustbehafteten Datenkompression. Die verlustbehaftete Datenkompression ist vorteilhaft für eine hohe Kompressionsrate, d. h. ungefähr 1/50 bis 1/100, während ein Verlust einer Informationsmenge bedingt wird.
  • Andererseits ist das verlustlose Datenkompressionsverfahren ein reversibles Datenkodierungssystem. Dieser Typ des Datenkompressionssystems erreicht im allgemeinen eine Datenkompressionsrate von ungefähr 1/2 und kann somit nicht eine hohe Kompressionsrate erreichen, wie sie durch das verlustbehaftete Datenkompressionsverfahren erreicht wird. Jedoch ist das verlustlose Datenkompressionsverfahren vorteilhaft für die Fähigkeit des Kodierens und Dekodierens ohne Verlust von ursprünglichen Daten. Ei ne Lauflängenkodierung, eine Huffmann-Kodierung, eine arithmetische Kodierung, ein LZ-System (Lemple-Ziv-System) und so weiter sind typische standardisierte Systeme bei verlustlosen Datenkompressionsverfahren.
  • Das Lauflängenkodierungssystem ist das einfachste verlustlose Kodierungssystem. Das System verwendet die Tatsache, daß die Wahrscheinlichkeit des Erscheinens unterschieden wird in Abhängigkeit von dem Wert der Lauflänge. Daher wird durch Zuordnen eines kürzeren Kodes für die Lauflänge mit einer höheren Wahrscheinlichkeit eine Datenkompression erreicht. Dieses Kodierungssystem wurde bei CD-I (Kompaktscheibe-Schnittstelle), Video for Windows (Marke: Microsoft) und so weiter verwendet.
  • Das Huffmann-Kodierungssystem ist ein Datenkompressionssystem, das hauptsächlich im Bereich der Bildverarbeitung verwendet wird. Eine MH (modifizierte Huffmann)-Kodierung des Faksimile- G3-Standards und so weiter sind Anwendungen der Huffmann- Kodierung.
  • Es sollte angemerkt werden, daß JPEG, MPEG oder H.261 auch Huffmann-Kodierung verwenden. Da jedoch diese Verfahren DCT (diskrete Kosinusübertragung) in einem vorbereitenden Vorgang verwenden, sind sie als verlustbehafteter Typ klassifiziert.
  • Das arithmetische Kodierungssystem wird verwendet bei JBIG (vereinigte Bipegelbildkodierungsexpertengruppe), das das Kodierungssystem der nächsten Generation beim Faksimile ist. Das JBIEG kann redundante Datenströme, die durch ein Huffmann- Kodierungssystem nicht verarbeitet werden können, durch eine einheitliche Kompression basierend auf einer Wahrscheinlichkeit des Auftretens von Strings verarbeiten. Somit realisiert das JBIEG eine optimale Datenkompression im Hinblick auf eine Informationsentropie.
  • Im allgemeinen ist das LZ-System ein Datenkompressionssystem, das eine Datenkompression durchführt, die eine Wiederholung von Strings erfaßt. Das LZ-System wird als ein Datenkompressionshilfsmittel für Personalcomputer oder für ein Datensicherungsbandkassettenaufzeichnungsgerät und andere Produkte angewendet.
  • Das LZ-System enthält im allgemeinen ein LZ77-System, Ziv J. und Lempel, A. "A Universal Algorithm for Sequential Data Compression", IEEE Transaction on Information Theory, Band IT-23, Nr. 3, S. 337-343, September 1977, und ein LZ78-System, Ziv, J. und Lempel, A. "Compression of Individual Sequences via Variable Rate Coding" IEEE Translation on Information Theory, Band IT-24, Nr. 5, S. 530 bis 536, September 1978. Das erstgenannte LZ77-System ist auch offenbart in US-Patenten 5,003,307 und 5,016,009. Das letztgenannte LZ78-System ist offenbar in US- Patenten 4,558, 302 und 4,814,746. Algorithmen von LZ77- und LZ78-Systemen sind gleich bei dem Punkt, bei dem der aktuelle Zielstring und verarbeitete Strings verglichen werden und der längste übereinstimmende String durch den Vergleich erhalten wird. Das LZ77 speichert jedoch die verarbeiteten Strings in einem Puffer und ergreift Maßnahmen, um den verarbeiteten Datenwert so zu behandeln, als ob der verarbeitete Datenwert in dem Puffer auf dem Eingangsdatenstrom verschoben wird. Andererseits verwendet das LZ78-System ein Mittel zum Zuweisen von zugeordneten Kodes für verarbeitete Strings und zum Registrieren der Kodes in Art eines Lexikons.
  • Als Ergebnis ist bei einem Vergleich des LZ77-Systems und des LZ78-Systems im Hinblick auf die Funktion das LZ77-System dem LZ78-System überlegen im Hinblick auf eine Kompressionsrate und ist das LZ78-System dem LZ77-System überlegen im Hinblick auf eine Datenverarbeitungsgeschwindigkeit.
  • Andererseits wächst im Bereich der Spielmaschinen eine Anforderung für eine Bilddarstellung hoher Qualität ansteigend an. In kommerziellen Spielmaschinen wurde eine Bilddarstellung, die dreidimensionale CG (Computergrafiken) verwendet, verwirklicht. Der Trend dehnt sich aus auf daheim verwendete Fernsehspielmaschinen und Multimediasysteme. Somit wird die Entwicklung für Datenverarbeitungssysteme, die für eine solche Bilddarstellung hoher Qualität in der Lage sind, vorangetrieben.
  • Eine Schwierigkeit der Bilddarstellung verursacht der Anstieg der Datenmenge. Daher wächst eine Anforderung für ein verlustloses Datenkompressionsverfahren mit einer hohen Kompressionsrate, das eine Hochgeschwindigkeitskodierung und -dekodierung durchführen kann.
  • Speziell im Fall der Spielmaschine wird das Spiel weniger interessant werden, wenn nicht der Anzeigebildschirm auf die Betätigung eines Knopfes auf einem Steuerpad durch einen Benutzer innerhalb 1/60 bis 1/30 Sekunde reagiert (das entspricht einer Anzeigeperiode von einem oder zwei Halbbilder eines Farbfernsehsignals). Daher ist es inhärent, sowohl die hohe Kompressionsrate als auch Hochgeschwindigkeitskodierung und -dekodierung zu erreichen.
  • In diesem Sinn kann das oben erwähnte. LZ-System (speziell LZ78) und LHA-System, bei dem das LZ-System und ein Huffmann- Kodierungssystem kombiniert sind, genannt werden, als ein geeignetes Datenkompressionsverfahren.
  • Da entsprechende der individuellen Strings als Ziel zur Kompression variabel sind und der Algorithmus zur Kompression und Dekompression kompliziert ist, kann jedoch im Fall des LZ- Systems die Datenverarbeitungsprozedur eine große Zahl von Schritten aufweisen und die Hardwarekonstruktion kann kompliziert werden.
  • Andererseits wird in dem Zeichengenerator in der Spielmaschine ein relativ kleiner Datenblock verarbeitet. Bei dem herkömmlichen Datenkompressionsverfahren wird eine Kompression unmöglich oder zumindest bei der Kompression ungenügend.
  • Auch weist der Datenblock des Zeichengenerators in der Spielmaschine eine Tendenz auf, eine hohe Wahrscheinlichkeit des Auf tretens des gleichen Strings aufzuweisen und nicht eine signifikante Variation der Zahl der Datenblöcke, die dem Variationsmodus der Zeichen entsprechen, zu verursachen.
  • US 4,876,541 A offenbart ein Datenkompressionsverfahren und ein Datenkompressionssystem, die die Datenkompression durchführen unter Verwendung eines Lexikons, das Lexikonwörter oder Lexikonzahlen enthält, die Strings darstellen, die wiederholt in dem Datenstrom auftauchen, und durch Ersetzen der Strings in dem Datenstrom durch die Lexikonwörter oder Lexikonzahlen, wobei Strings variabler Länge verwendet werden.
  • Es ist daher eine Aufgabe der vorliegenden Erfindung, ein verlustloses Datenkompressionsverfahren und -system vorzusehen, die eine Hochgeschwindigkeitskompression und -dekompression ermöglichen und eine hohe Kompressionsrate realisieren unabhängig von der Größe von Datenblöcken.
  • Dies wird erreicht durch das Verfahren gemäß Anspruch 1 und einem System nach Anspruch 3.
  • Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen angegeben.
  • In der Alternative, wenn R = 1, wird der zweite Verfahrensschritt durchgeführt ohne Hinzufügen des Kompressionsbezeichnerbits, um den Arbeitsdatenstrom zu verwirklichen, der die Originalstrings als die Arbeitsstrings nimmt, und der vierte Verfahrensschritt wird durchgeführt mit Formulieren des Kompressionslexikondatenwertes nur mit der S-Bit-Lexikonzahl.
  • Bei der vorhergehenden Konstruktion wird die Anzahl der Wiederholungszyklen des dritten bis fünften Schritts in dem ersten Verfahrensschritt bestimmt. Die bestimmte Zahl der Wiederholungszyklen kann beliebig bestimmt werden, geeignet zum Erhalten eines gewünschten Kompressionsverhältnisses innerhalb des Bereiches von weniger als oder gleich der maximalen Register zahl D der direkt erzeugten durch den zweiten Verfahrensschritt.
  • Der zweite Verfahrensschritt ist ein vorbereitender Vorgang zum Erzeugen des Arbeitsdatenstroms, der aus Arbeitsstrings einer Länge (S+1) Bits durch Hinzufügen eines Kompressionsbezeichnerbits (1 Bit) für entsprechende der Originalstrings (S Bits) in dem Originaldatenstrom derart besteht, daß die Arbeitsstrings in einem Nichtkompressionszustand identifiziert werden können.
  • Ein Erzeugen des Lexikons und ein Datenkompressionsverfahren werden durch den dritten bis fünften Verfahrensschritt durchgeführt. Ein Erzeugen des Lexikons wird durchgeführt pro [2·(S+1)Bits] durch Kombinieren von zwei sequentiellen Arbeitsstrings in dem Arbeitsdatenstrom.
  • Zuerst wird der kombinierte String mit einer Auftrittsfrequenz höher als drei in dem dritten Verfahrensschritt erfaßt. Dann wird in dem vierten Verfahrensschritt entsprechend dem erfaßten kombinierten String der Kompressionslexikondatenwert in dem zweiten Speichermittel registriert. Hier besteht der Kompressionslexikondatenwert aus der Lexikonzahl und dem Kompressionsbezeichnerbit derart, daß er eine Bitlänge von (S+1) aufweist, die gleich ist wie die Bitlänge des Arbeitsstrings.
  • In dem fünften Verfahrensschritt wird eine Datenkompression, die das Lexikon verwendet, durchgeführt. Die kombinierten Strings, die mit kombinierten Strings übereinstimmen, die in dem Lexikon registriert sind, werden nämlich ersetzt mit einem entsprechenden Kompressionslexikondatenwert.
  • Als Ergebnis wird in Bezug zu dem kombinierten String in dem Arbeitsdatenstrom als Ziel zur Ersetzung 2·(S+1) ersetzt mit (S+1). Da die kombinierten Strings, die in dem Lexikon registriert sind, zumindest 3 der Auftrittsfrequenz aufweisen, können 3·(S+1) oder mehr Daten gelöscht werden in Bezug zu einem Register in dem Lexikon.
  • Andererseits wird in Bezug zu der Datenkompression in dem Arbeitsdatenstrom die Datenmenge erhöht für 3·(S+1) Bits oder mehr pro einem Register.
  • Folglich wird die Datenmenge unverändert beibehalten beim Löschen von vermehrten Daten und verringerten Daten, wenn die Auftrittsfrequenz des kombinierten Strings 3 beträgt. Die Datenkompression wird effektiv, wenn die Auftrittsfrequenz größer als oder gleich 4 ist.
  • Der dritte bis fünfte Verfahrensschritt werden wiederholt, bis das bestimmte R abgelaufen ist, das in dem ersten Verfahrensschritt bestimmt ist. In jedem Zyklus wird der ersetzte Datenstrom in dem fünften Schritt als Arbeitsdatenstrom in dem dritten Verfahrensschritt in dem nächsten Datenkompressionszyklus behandelt.
  • Folglich werden in dem zweiten und nachfolgenden Lexikonerzeugungs- und Datenkompressionsverfahrensschritten die nichtkomprimierten Arbeitsstrings und die Kompressionslexikondaten gemischt dargestellt. In dem dritten bis vierten Verfahrensschritt kann in Bezug zu den Arbeitsstrings als Ziel der kombinierte String mit der Auftrittsfrequenz größer als 3 neu registriert werden in dem Kompressionslexikon. Dann werden in dem fünften Verfahrensschritt von kombinierten Strings in dem Arbeitsdatenstrom die kombinierten Strings, die neu registrierten kombinierten Registern entsprechen, ersetzt mit dem neu erzeugten Kompressionslexikondatenwert.
  • Als Ergebnis kann durch Wiederholen des dritten bis fünften Vorgangs ein höheres Kompressionsverhältnis erreicht werden.
  • Es sollte angemerkt werden, daß in Bezug zu den kombinierten Strings mit der Auftrittsfrequenz höher als oder gleich zu 3 der Kompressionsvorgang keinen Effekt aufweist zu dieser Zeit. Jedoch wird er in der nachfolgenden Lexikonerzeugungs- und Kom pressionsprozedur in dem wiederholten Zyklus einen Beitrag leisten.
  • Andererseits kann bei dem Dekompressionsvorgang der komprimierten Daten mit dem Datenstrom und den in dem Lexikon registrierten Daten der Originaldatenstrom wieder hergestellt werden durch einen umgekehrten Algorithmus, der das Lexikon verwendet.
  • Nämlich sind mit Erfassen des Kompressions-/Nichtkompressionsbezeichners die komprimierten Bits vorhanden, wird der Arbeitsstring mit dem kombinierten String in dem Lexikon, der dem Bezeichner entspricht, ersetzt. Andererseits, wenn der kombinierte String ein Nichtkompressionssignal hält, wird der kombinierte String so beibehalten wie er ist und ein nächster Arbeitsstring wird erfaßt und verarbeitet. Schließlich kann durch Entfernen des Nichtkompressionsbezeichners von dem Arbeitsstrom der Originaldatenstrom erhalten werden.
  • Außerdem weist in dem dritten Verfahrensschritt die angewendete Beschränkung auf, daß "eine Auftrittsfrequenz bis zu einem gegebenen Wert (D/R)-te beträgt", um eine obere Grenze für die Zahl der zu erfassenden kombinierten Strings vorzusehen.
  • Dies ist deshalb, da in dem dritten bis fünften Verfahrensschritt in den Wiederholungszyklen es möglich ist, daß die Zahl der gespeicherten kombinierten Strings die maximale Registerzahl übersteigt. Durch die oben angegebene Beschränkung werden die bestimmten Wiederholungszyklen auf die bestimmte Zahl von Zyklen R bestimmt.
  • Alternativ ist es möglich, R = 1 einzustellen, was die spezielle Einstellung ist, nicht den dritten bis fünften Schritt zu wiederholen.
  • In diesem Fall kann durch Bereitstellen einer Entsprechung zwischen den zwei Originalstrings als das Ziel zur Kompression und der Lexikonzahl die Dekompression ermöglicht werden.
  • Daher wird in dem Lexikonerzeugungs- und Kompressionsverfahrensschritten das Nichtkompressionsbezeichnerbit nicht zu dem Originalstring in dem zweiten Verfahrensschritt hinzugefügt, um den Arbeitsdatenstrom zu bilden, wodurch der Originalstring als S Bits Arbeitsstring genommen wird, so wie er ist. Auch in dem vierten Verfahrensschritt besteht der Kompressionslexikondatenwert nur aus der Bitlänge S der Lexikonzahl.
  • In einem gewissen Originaldatenstrom wird eine höhere Geschwindigkeit der Kompression und Dekompression eher gefordert als das Kompressionsverhältnis. Die vorhergehende Alternative ist in einem solchen Fall geeignet.
  • Die Vorliegende Erfindung wird vollständiger verstanden von der detaillierten Beschreibung, die im folgenden angegeben wird, und von den begleitenden Zeichnungen der bevorzugten Ausführungsform der Erfindung, die jedoch nicht als beschränkend für die vorliegende Erfindung angenommen werden sollen, sondern nur zur Erläuterung und zum Verständnis sind.
  • In den Zeichnungen:
  • Fig. 1 ist ein Blockschaltbild, das ein Datenkompressionssystem gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung zeigt;
  • Fig. 2 ist ein Flußdiagramm, das eine Prozedur des Erzeugens eines Arbeitsdatenstroms zeigt;
  • Fig. 3 ist ein Flußdiagramm, das eine Prozedur des Erzeugens eines Lexikons zeigt;
  • Fig. 4 ist ein Flußdiagramm, das eine Kompressionsprozedur zeigt;
  • Fig. 5 ist eine Darstellung, die ein Beispiel des von einem Originaldatenstrom zu erzeugenden Arbeitsdatenstrom zeigt;
  • Fig. 6 ist eine Darstellung, die einen Registerdatenwert eines in dem ersten Zyklus der Lexikonerzeugungsprozedur erzeugten Lexikons zeigt;
  • Fig. 7 ist eine Darstellung, die einen in dem ersten Zyklus der Kompressionsprozedur erzeugten Arbeitsdatenstrom zeigt;
  • Fig. 8 ist eine Darstellung, die ein Registerdatenwert eines in dem zweiten Zyklus der Lexikonerzeugungsprozedur erzeugten Lexikons zeigt;
  • Fig. 9 ist eine Darstellung, die einen in dem zweiten Zyklus einer Kompressionsprozedur erzeugten Arbeitsdatenstrom zeigt;
  • Fig. 10 ist eine Darstellung, die einen Registerdatenwert eines in dem dritten Zyklus einer Lexikonerzeugungsprozedur erzeugten Lexikons zeigt;
  • Fig. 11 ist eine Darstellung, die einen in dem dritten Zyklus einer Kompressionsprozedur erzeugten Arbeitsdatenstrom zeigt;
  • Fig. 12 ist eine Darstellung, die einen Registerdatenwert eines in dem vierten Zyklus einer Lexikonerzeugungsprozedur erzeugten Lexikons zeigt; und
  • Fig. 13 ist eine Darstellung, die einen in dem vierten Zyklus einer Kompressionsprozedur erzeugten Arbeitsdatenstrom zeigt.
  • Das Datenkompressionsverfahren gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung wird im folgenden im Detail mit Bezug zu den begleitenden Zeichnungen diskutiert. In der folgenden Beschreibung werden zahlreiche spezifische Details angegeben, um ein umfassendes Verständnis der vorliegenden Erfindung bereitzustellen. In einem anderen Fall sind wohlbekannte Strukturen nicht im Detail gezeigt, um die vorliegende Erfindung nicht unnötig unklar zu machen.
  • Fig. 1 ist ein Blockschaltbild, das eine Systemkonstruktion eines Datenkompressionssystems 100 zur Verwirklichung einer Datenkompression zeigt. In Fig. 1 bezeichnet das Bezugszeichen 1 einen RAM zum Speichern eines Datenstromes, bezeichnet 2 einen RAM zum Speichern von Lexikonregisterdaten, bezeichnet 3 einen ROM, der ein Datenkompressionsprogramm speichert, bezeichnete 4 eine CPU. Wie zu sehen ist, ist das Datenkompressionssystem mit einem Hauptsystem 200 verbunden. Das Hauptsystem 200 ist derart entworfen, daß ein Originaldatenstrom und eine Bestimmung für eine Zahl von Zyklen, um eine Datenkompression zu wiederholen, dem Datenkompressionssystem geliefert werden, wobei diese Bezeichnung im folgenden als "Wiederholungszahlanweisung" bezeichnet wird, und daß komprimierte Daten von dem Datenkompressionssystem empfangen werden. Der Originaldatenstrom, der von dem Hauptsystem 200 zu dem Datenkompressionssystem 100 übertragen ist, wird durch die CPU 4 empfangen. Dann führt die CPU 4 eine Datenkompression mittels Software gemäß einem Datenkompressionsprogramm, das in dem ROM 3 gespeichert ist, unter Verwendung der RAM 1 und 2 durch. Es sollte angemerkt werden, daß obwohl RAM 1 und 2 in Fig. 1 dargestellt sind, es natürlich möglich ist, einen Datenstromspeicherbereich und eine Lexikonregisterdatenspeicherbereich in einem einzelnen RAM zu definieren.
  • Als nächstes wird das Datenkompressionsverfahren der bevorzugten Ausführungsform der Erfindung unter Bezugnahme auf die Flußdiagramme von Fig. 2 bis 4 und die Datentabellen, die in Fig. 5 bis 13 dargestellt sind und den Inhalt des aktuellen Datenstromes und des Lexikonregisterdatenwertes zeigen, diskutiert.
  • Zuerst speichert, wenn die Wiederholungszahlanweisung R von dem Hauptsystem 200 eingegeben wird, die CPU 4 den Wert davon in einem internen Puffer. Danach speichert, wenn der Originaldatenstrom empfangen wird, die CPU 4 den empfangenen Originaldatenstrom in dem RAM 1 (Schritte P1 und P2 in Fig. 2).
  • Unter der Annahme, daß der Originaldatenstrom aus einer Zahl N von Originaldatenströmen, die jeweils eine Datenlänge von S Bits aufweisen, besteht, trennt die CPU 4 den in dem RAM 1 gespeicherten Origianldatenstrom alle S Bits derart, daß entsprechende Originalstrings definiert werden. Dann wird ein Nichtkompressionsbezeichnerbit "0" an dem führenden Ende von jedem Originalstring hinzugefügt, um ihn in einen Arbeitsstring umzuwandeln. Somit wird ein Arbeitsdatenstrom, der aus einer Zahl N von Arbeitsstrings besteht, die die Datenlänge von (S+1) Bits aufweisen, gebildet (Schritt P3 in Fig. 2) Die gezeigte Ausführungsform des Arbeitsdatenstroms wird mit Bezug zu Fig. 5 diskutiert.
  • Der Arbeitsdatenstrom von Fig. 5 ist aus dem Originaldatenstrom gebildet, der aus einer Zahl von 512 Originalstrings mit der Datenlänge von 7 Bits besteht. Daher ist in Fig. 5 eine Zahl von 512 8 Bit Arbeitsstrings in Form einer Hexadezimalzahl dargestellt.
  • Jeder Arbeitsstring wird in einem Bereich der Werte 00 bis 3d in einer Hexadezimalzahl dargestellt und weist das auf "0" gesetzte höchstwertige Bit (MSB) als Nichtkompressionsbezeichnerbit auf. Es sollte angemerkt werden, daß in der gezeigten Ausführungsform alle Originalstrings des Originaldatenstroms einen Dateninhalt aufweisen, der durch 6 Bits in einer Binärzahl "000000" bis "111101" dargestellt werden kann. Daher kann jeder Arbeitsstrings des Arbeitsdatenstroms in einem Bereich von 00 bis 3d dargestellt werden. Jedoch wird, selbst wenn der Originalstring einen Datenwert enthält, der durch 7 Bits darzustellen ist, kein Problem auftreten.
  • Als nächstes liest die CPU 1 zwei aufeinanderfolgende Arbeitsstring (kombinierter String) von den indem RAM 1 gespeicherten Arbeitsdatenstrom aus in der Reihenfolge von der führenden Adresse. Bei jedem Auftreten des Auslesens des kombinierten Strings überprüft die CPU 1, ob der ausgelesene kombinierte String einer von den in der Vergangenheit ausgelesenen Strings ist auf der Basis des Registerinhalts des RAM 2. Wenn der ausgelesene aktuelle kombinierte String neu ist, ein Auftrittsfrequenzdatenwert "1" und der aktuelle kombinierte String in dem RAM 2. Andererseits, wenn der aktuelle kombinierte String der String ist, der schon in dem RAM 2 registriert ist, wird der dazu entsprechende Auftrittsfrequenzdatenwert um 1 erhöht (Schritte P4 bis P10 in Fig. 3).
  • Wenn die vorhergehende Prozedur für den gesamten Arbeitsdatenstrom, der in dem RAM 1 gespeichert ist, stattfindet, werden folglich ein Dateninhalt und Auftrittsfrequenzdatenwert aller kombinierten Strings in dem Arbeitsdatenstrom registriert mit Verwirklichung einer Beziehung.
  • Dann prüft die CPU 4 entsprechende der registrierten kombinierten Strings im Hinblick auf die folgenden zwei Bedingungen:
  • (1) ob die Reihenfolge des fraglichen kombinierten Strings einen Auftrittsfrequenzdatenwert aufweist, der in einer höheren Ordnung als D/R-te (wobei D 25 beträgt) geordnet ist, wie es in absteigender Reihenfolge geordnet ist von einem, der den höchsten Auftrittsfrequenzdatenwert aufweist; und
  • (2) ob der Auftrittsfrequenzdatenwert größer als oder gleich 3 ist.
  • Wenn der fragliche kombinierte String beide Bedingungen erfüllt, wird ein solcher kombinierter String bestimmt, beibehalten zu werden, und andernfalls wird der kombinierte String entfernt. Dann wird für jedem der verbliebenen kombinierten Daten ein Kompressionslexikondatenwert zugeordnet und fest registriert, der aus einem Kompressionsbezeichnerbit "1" und einer Lexikonzahl besteht.
  • Es sollte angemerkt werden, daß der vorhergehende Ausdruck (1) auf D/R als ein Mittelwert einer oberen Grenze der Registrierzahl in entsprechenden Zyklen einer Kompressionsprozedur unter der Bedingung gesetzt ist, bei der die maximale Registrierzahl des Lexikons D beträgt und die bestimmte Zahl der Wiederholungszyklen, wie später diskutiert wird, R beträgt. Dies ist deshalb, obwohl es von dem Inhalt des Arbeitsdatenstroms abhängt, da in den meisten Fällen die Zahl der kombinierten Strings, die den Ausdruck (2) erfüllen, sehr groß wird in den Anfangswiederholungszyklen der Kompressionsprozedur, was einen Überlauf der vorbestimmten Registrierkapazität des Lexikons verursacht und was unmöglich macht, eine Kompressionsprozedur für die angeforderte Zahl von Zyklen durchzuführen. Daher wird durch Dünnen von kombinierten Strings mit einer geringeren Auftrittsfrequenz die Fähigkeit der Wiederholung der Kompressionsprozedur für die geforderte Zahl von Zyklen sichergestellt.
  • Die Notwendigkeit des zweiten Ausdrucks (2) wird später in der Diskussion für die Datenkompressionsprozedur diskutiert.
  • Hier ist der Lexikonregisterdatenwert, der durch die vorhergehende Lexikonerzeugungsprozedur in Bezug zu dem Arbeitsdatenstrom von Fig. 5 erzeugt ist, in Fig. 6 gezeigt.
  • In Fig. 6 sind die Daten, die durch eine Hexadezimalzahl von 80 bis 9a beschrieben sind, Kompressionslexikondaten. Daten, die entsprechenden Kompressionslexikondaten zugeordnet sind, entsprechen Daten, die die vorhergehenden Ausdrücke (1) und (2) erfüllten. In dem gezeigten Beispiel sind 27 kombinierte Strings registriert.
  • Da der Kompressionslexikondatenwert von der Hexadezimalzahl 80 beginnt, wird das MSB aller Datenwerte "1". Dieses Bit (MSB) dient als Kompressionsbezeichnerbit. Mit nachfolgenden 7 Bits werden 128 (= D: maximale Registerzahl des Lexikons) der Lexikonzahlen dargestellt.
  • In dem gezeigten Beispiel ist die bestimmte Wiederholungszahl auf "4" (R = 4) gesetzt und somit D/R = 32. Daher erfüllen alle kombinierten Strings den vorhergehenden Ausdruck (1).
  • Als nächstes bewegt die CPU 14 den Kompressionsvorgang für den Datenarbeitsstrom unter Verwendung der Lexikonregisterdaten.
  • Bei dem Kompressionsvorgang werden zuerst die kombinierten Strings des in dem RAM 1 gespeicherten Arbeitsdatenstroms nacheinander von der führenden Adresse ausgelesen. Dann werden die ausgelesenen kombinierten Strings verglichen mit entsprechenden kombinierten Strings, die in dem RAM 2 registriert sind (Schritte P12 und P13 in Fig. 4).
  • Wenn der übereinstimmende kombinierte String in dem RAM 2 vorhanden ist, wird der übereinstimmende kombinierte String in dem RAM 1 ersetzt mit dem Kompressionslexikondatenwert, der in dem RAM 2 gespeichert ist und dem registrierten kombinierten String entspricht, der mit dem ausgelesenen kombinierten String übereinstimmt (Schritte P14 und P15). Nämlich werden bei dieser Stufe 2·(S+1) Bits des kombinierten Strings ersetzt mit (S+1) Bits des Kompressionslexikondatenwertes.
  • Wenn die vorhergehende Ersetzung durchgeführt wird, verschiebt die CPU 4 auch die Daten des Arbeitsdatenstromes, die dem kombinierten String folgen, der das Ziel der Ersetzung ist, in der Reihenfolge derart, daß das führende Ende des verschobenen Teiles des Arbeitsdatenstromes an der Adresse direkt folgend dem hinteren Ende des ersetzten Datenwertes angeordnet ist (Schritt P16 in Fig. 4). Da die Datenlänge durch die Kompression für (S+1) Bits verringert ist, wird nämlich der nachfolgende Teil der Daten für den entsprechenden verschoben, um die Kontinuität des Arbeitsdatenstromes beizubehalten.
  • Andererseits, wenn der übereinstimmende kombinierte String nicht in dem RAM 2 vorhanden ist (Schritte P13, P14 in Fig. 4), wird der ausgelesene RAM 1 so beibehalten wie er ist, und der Vorgang wird zu dem Vergleich für den nächsten kombinierten String bewegt.
  • Wenn der kombinierte String des RAM 1 mit dem Kompressionslexikondatenwert ersetzt ist, wird der nächste kombinierte String ausgelesen durch Erhöhen der Ausleseadresse um (S+1), und wenn der kombinierte String des RAM 1 nicht ersetzt ist, wird der nächste kombinierte String ausgelesen durch Erhöhen der Ausleseadresse um 2·(S+1) (Schritt P18 in Fig. 4).
  • Der vorhergehende Kompressionsvorgang für jeden individuellen kombinierten String (Schritte P13 bis P18 in Fig. 4) wird durchgeführt für alle kombinierten Strings in dem Arbeitsdaten strom in dem RAM 1 (Schritt P19 in Fig. 4). Dann ist der erste Zyklus der Lexikonerzeugungs- und Kompressionsprozedur abgeschlossen.
  • Hier in der vorhergehenden Kompressionsprozedur, da der kombinierte String in dem RAM 1 als Ziel für eine Ersetzung, die den vorhergehenden Ausdruck (2) erfüllen sollte. Daher sind zumindest drei gleiche kombinierte Strings in dem Arbeitsdatenstrom vorhanden. Daher kann durch Beobachten des Arbeitsdatenstromes mit einem Lexikonregisterdatenwert zumindest eine 3·(S+1) Bit- Datenkompression erzielt werden.
  • Andererseits besteht ein Lexikonregisterdatenwert aus (S+1) Bits des Kompressionsdatenwerts und zwei 2·(S+1) des kombinierten Strings. Daher belegt ein Lexikonregisterdatenwert 3·(S+1) Bits.
  • Daher trägt im Hinblick auf eine gesamte Datenkapazität der Lexikonregisterdaten und des Arbeitsdatenstroms der kombinierte String mit einer Auftrittsfrequenz von F = 3 nicht bei zur Datenkompression in dem ersten Zyklus der Lexikonerzeugungs- und Kompressionsprozedur. Jedoch können die kombinierten Strings mit einer Auftrittsfrequenz F größer als oder gleich 4 eine Datenkompression für (F-3)·(S+1) Bits realisieren.
  • Es sollte gewürdigt werden, daß sogar der kombinierte String, der die Auftrittsfrequenz F = 3 aufweist, zum Ersetzen von 2·(S+1) der kombinierten Strings mit (S+1) Bits des Kompressionslexikondatenwertes dient. Daher trägt ein solcher kombinierter String zur Verbesserung der Datenkompressionseffizienz in dem zweiten und nachfolgenden Zyklen der Lexikonerzeugungs- und Kompressionsprozeduren bei.
  • Wenn der erste Zyklus der Lexikonerzeugungs- und Kompressionsprozedur (Schritte P12 bis P19 in Fig. 3 und 4) durchgeführt wird für den Arbeitsdatenstrom von Fig. 5 mit entsprechenden Lexikonregisterdaten von Fig. 6, kann ein Arbeitsdatenstrom (im folgenden als einmal komprimierter Datenstrom bezeichnet), wie in Fig. 7 dargestellt ist, erhalten werden.
  • In dem ersten Zyklus der Lexikonerzeugungs- und Kompressionsprozedur beträgt die Gesamtkapazität des Originaldatenstromes 448 Bits. Andererseits beträgt die Gesamtkapazität der Lexikonregisterdaten von Fig. 6 und des einmal komprimierten Arbeitsdatenstromes von Fig. 7 408 Bits (= 81 Bits + 327 Bits). Daher kann ungefähr 91,1% der Datenkompression erzielt werden.
  • Nachfolgend wird, wobei der Arbeitsdatenstrom, der durch den ersten Zyklus der Datenkompressionsprozedur erhalten wurde, als neues Ziel zur Kompression genommen wird, die Lexikonerzeugungs- und Kompressionsprozedur (Schritte P4 bis P19), die in Fig. 3 und 4 gezeigt sind, wiederholt für die angeforderte Wiederholungszahl R (Schritt P20 in Fig. 4 - Schritt P4 in Fig. 3).
  • Es sollte angemerkt werden, daß bei der wiederholt durchgeführten Lexikonerzeugungs- und Kompressionsprozedur der als das Ziel zur Kompression zu nehmende Datenstrom das Ergebnis der unmittelbar vorhergehenden Datenkompressionsprozedur ist. Natürlich sind in dem Arbeitsdatenstrom der nichtkomprimierte Arbeitsstring und Kompressionsregisterdaten gemischt vorhanden, wie in Fig. 8 gezeigt ist.
  • Wie von Fig. 8 klar sein kann, sind die Kompressionslexikondaten 9b bis 9f zusätzlich registriert, entsprechend zu jedem der Arbeitsstrings. Der Arbeitsdatenstrom, der durch die Datenkompression erhalten ist, die die zusätzlich registrierten Lexikonregisterdaten verwendet, ist in Fig. 9 dargestellt.
  • In dem zweiten Zyklus der Lexikonerzeugungs- und Kompressionsprozedur kann das Datenkompressionsverhältnis von ungefähr 80,8% erreicht werden, da die Gesamtkapazität der Lexikonregisterdaten von Fig. 8 und des Arbeitsdatenstroms von Fig. 9 362 Bits beträgt (= 96 Bits + 266 Bits).
  • Ähnlich werden in dem dritten Zyklus der Lexikonerzeugungs- und Kompressionsprozedur die Lexikonregisterdaten von Fig. 10 und der Arbeitsdatenstrom von Fig. 11 erhalten. Die Gesamtkapazität der Lexikonregisterdaten und des Arbeitsdatenstromes von Fig. 10 und 11 wird 353 Bits. Daher wird das Kompressionsverhältnis ungefähr 78,8%. Auch in dem vierten Zyklus der Lexikonerzeugungs- und Kompressionsprozedur werden die Lexikonregisterdaten von Fig. 12 und der Arbeitsdatenstrom von Fig. 13 erhalten. Die Gesamtkapazität der Lexikonregisterdaten und des Arbeitsdatenstroms von Fig. 13 werden 352 Bits. Daher wird das Kompressionsverhältnis ungefähr 78,6% werden.
  • Wenn die bestimmte Zahl von Zyklen der Lexikonerzeugungs- und Kompressionsprozedur abgeschlossen ist, liest die CPU 4 alle Lexikonregisterdaten in dem RAM 2 und den komprimierten Arbeitsdatenstrom in dem RAM 1 aus und überträgt sie zu dem Hauptsystem 200 (Schritt P21 in Fig. 4)
  • Andererseits werden die übertragenen komprimierten Daten dekomprimiert und wiedergewonnen in der folgenden Weise.
  • Zuerst wird der Arbeitsstring pro (S+1) von dem führenden Ende des komprimierten Arbeitsdatenstroms erfaßt. Wenn das MSB der ausgelesenen (S+1) Bits "1" beträgt, kann eine Beurteilung durchgeführt werden, daß der Zielarbeitsstring mit dem Kompressionslexikondatenwert ersetzt wurde. Daher wird unter Verwendung des Kompressionslexikondatenwertes der kombinierte String, der dem relevanten Kompressionslexikondatenwert entspricht, ersetzt. Andererseits, wenn das MSB der ausgelesenen (S+1) Bits "0" beträgt, wurde der kombinierte String beibehalten, ohne ersetzt zu sein. Daher wird der Vorgang zu dem nächsten kombinierten String bewegt. Dann wird durch Ausführen der vorhergehenden Prozedur für den gesamten Arbeitsdatenstrom ein dekomprimierter Arbeitsdatenstrom eines ersten Zyklus erhalten. Die gleiche Prozedur wird R mal wiederholt, um schließlich den Arbeitsdatenstrom vor der Kompression wieder herzustellen.
  • Es sollte angemerkt werden, da das Nichtkompressionsbezeichnerbit von "0" bei MSB von jedem Arbeitsstring des schließlich erhaltenen Arbeitsdatenstromes hinzugefügt ist, der Originaldatenstrom erhalten wird durch Entfernen des MSB des entsprechenden Arbeitsstrings.
  • Es sollte angemerkt werden, daß die gezeigte Ausführungsform, die Kompressionslexikondaten registriert, die aus dem Kompressionsbezeichnerbit "1" und der Lexikonzahl bestehten, daß es möglich ist, einen Strom von Kompressions-/Nichtkompressionsbezeichnerbits in einem separaten Speicherbereich zu speichern, wie es für Hardware- oder Softwarekonstruktion benötigt wird.
  • Es sollte weiter angemerkt werden, daß obwohl die gezeigte Ausführungsform sich auf die Lexikonerzeugungs- und Kompressionsprozedur auf eine Mehrzahl von Malen in Abhängigkeit der bestimmten Wiederholungszahl R bezieht, die Durchführung der Lexikonerzeugung und Kompression für nur einmal (R = 1) in einem gewissen Fall zweckmäßiger sein kann.
  • Beispielsweise kann in einem gewissen Typ eines Datenstrominhalts eine einmalige Kompressionsprozedur ein relativ hohes Kompressionsverhältnis erreichen und kann eine Hochgeschwindigkeitsdatendekompression und -wiedergabe erfordern.
  • Daher wird, wenn die CPU 4 erfaßt, daß die bestimmte Wiederholungszahl R "1" beträgt, das Nichtkompressionsbezeichnerbit von "0" nicht zu dem Originalstring in der Arbeitsdatenstromerzeugungsprozedur hinzugefügt. In einem solchen Fall wird eine nur 5 Bit Lexikonzahl gespeichert als der Kompressionslexikondatenwert in der Lexikonerzeugungsprozedur von Fig. 3. Dann wird in der Kompressionsprozedur von Fig. 4 der Arbeitsstring als 5 Bit Datenwert verarbeitet.
  • In diesem Fall kann die Gesamtkapazität des schließlich erhaltenen Lexikonregisterdatenwertes und des komprimierten Daten stromes reduziert sein. Da die Kompressionsprozedur nur einmal ausgeführt wird, kann auch eine Kompression und eine Nichtkompression unterschieden werden von dem kombinierten String, der an sich in den RAM 2 gespeichert ist, beim Dekomprimieren und Wiedergeben.
  • Folglich kann eine Datenübertragungsperiode und eine Dekompressions- und -wiedergabeperiode signifikant verkürzt sein, so daß eine Hochgeschwindigkeitsbildanzeige in dem Fall eines Bilddatenwertes und so weiter ermöglicht wird.
  • Es sollte angemerkt werden, daß ein hohes Kompressionsverhältnis nicht erwartet werden kann, da die Kompressionsprozedur nur einmal durchgeführt wird. Durch Kombinieren des vorhergehenden Verfahrens mit einem bekannten Algorithmus, wie zum Beispiel ein Lauflängenverfahren und so weiter, kann jedoch dieser Nachteil gelöst werden.
  • Das Datenkompressionsverfahren gemäß der vorliegenden Erfindung, das so konstruiert ist, wie es oben erwähnt ist, kann die folgenden Vorteile erzielen.
  • Die vorliegende Erfindung verwendet ein Verfahren zum Durchführen einer Datenkompression durch Ersetzen einer festen Länge von sequentiell oder diskret vorhandenen kombinierten Strings mit einer festen Länge von Strings mit halber Länge mit Hinzufügen des Kompressions-/Nichtkompressionsbezeichnerbits. Daher wird durch eine Einfachheit des Algorithmus der Kompression und Dekompression ein Hochgeschwindigkeitskompressions- und -dekompressionsverfahren ermöglicht.
  • Da die vorliegende Erfindung alleine durch den Softwarevorgang realisiert werden kann, kann sie auch realisiert werden durch ein einfaches System, das aus einem RAM, einer CPU und so weiter gebildet ist.
  • Unter der Annahme, daß der Arbeitsstring ein Byte beträgt und der kombinierte String als Einheit für den Vorgang in dem Arbeitsdatenstrom und dem Lexikonregisterdatenwert 2 Bits beträgt, wird es im speziellen möglich, effektiv sogar einen kleinen Datenblock zu komprimieren, wie zum Beispiel 64 Bytes, der in dem herkömmlichen Verfahren nicht komprimiert werden kann.
  • Während ein hohes Kompressionsverhältnis nicht erwartet werden kann, kann auch eine Datenübertragungsperiode und eine Periode, die zum Komprimieren oder Dekomprimieren benötigt wird, verkürzt werden. Daher wird es möglich, ein Datenkompressionsverfahren bereitzustellen, das angepaßt verwendet werden kann in dem Fall, bei dem eine Hochgeschwindigkeitsbilddarstellung benötigt wird, wie zum Beispiel für eine Spielmaschine und so weiter.

Claims (5)

1. Datenkompressionsverfahren, bei dem eine Datenkompression eines Originaldatenstroms durchgeführt wird, wobei der Originaldatenstrom aus N Originalstrings mit jeweils einer Länge von S Bits besteht, wobei S eine ganze Zahl größer als oder gleich 2 ist und N eine ganze Zahl größer als oder gleich 3 ist, wobei das Verfahren die folgende Schrittsequenz aufweist:
- Durchführen eines ersten Verfahrensschritts des Empfangens des Originaldatenstroms und einer Wiederholungszahl R (P1), wobei R eine ganze Zahl kleiner als oder gleich D ist, wobei D gleich 25 ist, und des Speicherns des gesamten S · N Bit Originaldatenstroms (P2) in einem ersten Speichermittel (1),
- Durchführen eines zweiten Verfahrensschritts des Trennens des in dem ersten Speichermittel gespeicherten Originaldatenstroms (P3) alle S Bits in die Originalstrings, des Erzeugens von Arbeitsstrings von jedem der Originalstrings durch Hinzufügen eines Kompressionszustandsbezeichnerbits zu jedem Originalstring, wobei die N resultierenden S+1 Bit Arbeitsstrings einen Arbeitsdatenstrom bilden;
- Durchführen eines dritten Verfahrensschritts des Erfassens der Zahl des Auftretens von kombinierten Strings in dem Arbeitsdatenstrom (P4-P9), wobei kombinierte Strings aus zwei oder mehreren sequentiell auftretenden Arbeitsstrings in dem Arbeitsdatenstrom bestehen,
- Durchführen eines vierten Verarbeitungsschritts des Speicherns in einem Kompressionslexikon, das in einem zweiten Speichermittel (2) ist, der D/R kombinierten Strings, die die höchste Zahl des Auftretens in dem Arbeitsdatenstrom aufweisen, wie es in dem dritten Verfahrensschritt (P11) erfaßt ist, und des Speicherns für jeden der kombinierten Strings eines entsprechenden S+1 Bit Kompressionslexikondatenwertes, der aus einer Lexikonzahl und einem Kompressionszustandsbezeichnerbit besteht, wobei D die maximale Lexikonzahl darstellt;
- Durchführen eines fünften Verfahrensschritts des Ersetzens in dem ersten Speichermittel von den in dem zweiten Speichermittel (2) gespeicherten kombinierten Strings von den kombinierten Strings in dem Arbeitsdatenstrom durch den Kompressionslexikondatenwert, der dem kombinierten String entspricht (P12-P19);
- Wiederholen des dritten bis fünften Verfahrensschrittes R mal (P20), wobei der durch den fünften Verfahrensschritt erzeugte Datenstrom als der Arbeitsdatenstrom genommen wird und
- Ausgeben des in dem ersten Speichermittel gespeicherten Datenstroms und aller in dem zweiten Speichermittel gespeicherten kombinierten Strings und Kompressionslexikondaten als komprimierte Daten (P21).
2. Datenkompressionsverfahren nach Anspruch 1, dadurch gekennzeichnet, daß, wenn R = 1, der zweite Verfahrensschritt durchgeführt wird ohne Hinzufügen des Kompressionszustandsbezeichnerbits, um den Arbeitsdatenstrom zu verwirklichen, durch Nehmen der Originalstrings als die Arbeitsstrings und daß der vierte Verfahrensschritt durchgeführt wird mit Formulieren des Kompressionslexikondatenwertes nur mit der Lexikonzahl von S Bits.
3. Datenkompressionssystem mit
einem ersten Speichermittel (1) zum Speichern von Daten,
einem zweiten Speichermittel (2) zum Speichern von Daten und
einem Verarbeitungsmittel (4, 3) mit
einem ersten Mittel zum Empfangen eines Originaldatenstromes und einer Wiederholungsanweisung, die bezeichnend ist für eine gewünschte Wiederholungszahl R von Datenkompressionsverfahrenszyklen, zum Trennen des Originaldatenstroms in eine Mehrzahl von sequentiellen Originalstrings mit S Bits, zum Hinzufügen eines Kompressionszustandsbezeichnerbits zu jedem der Originalstrings, um S+1 Bit Arbeitsstrings zu bilden, und zum Speichern der Arbeitsstrings in dem ersten Speichermittel;
einem zweiten Mittel zum Vergleichen kombinierter Strings, die aus einer gegebenen Zahl von sequentiellen Arbeitsstrings von dem Inhalt des ersten Speichermittels bestehen, mit dem Inhalt des ersten Speichermittels und zum Speichern beim ersten Auftreten eines kombinierten Strings in dem ersten Speichermittel des kombinierten Strings und einer entsprechenden Auftrittszahl in dem zweiten Speichermittel und zum Erhöhen der Auftrittszahl, die dem kombinierten String entspricht, beim weiteren Auftreten des gleichen kombinierten Strings;
einem dritten Mittel zum Erzeugen eines Lexikons durch Speichern in dem zweiten Speichermittel von den D/R kombinierten Strings mit der höchsten Zahl des Auftretens in dem ersten Speichermittel, wobei jeder der D/R kombinierten Strings zusammen gespeichert ist mit einem entsprechenden S+1 Bit Lexikondatenwert, der eine Lexikonzahl und einen Kompressionszustandsbezeichner aufweist, wobei die maximale Lexikonzahl D beträgt, wobei D gleich zu 25 ist;
einem vierten Mittel zum Ersetzen von den kombinierten Strings in dem ersten Speichermittel, die auch in dem zweiten Speichermittel gespeichert sind, durch den entsprechenden Lexikondatenwert und
einem fünften Mittel zum Steuern des Betriebs des ersten bis vierten Mittels und zum Wiederholen der Kompressionszyklen, die durch das zweite bis vierte Mittel durchgeführt werden, R mal, wie es in der Wiederholungsanweisung bezeichnet ist, und zum Ausgeben des Datenstroms und des Lexikons als komprimierte Daten nach den R Wiederholungen.
4. Datenkompressionssystem nach Anspruch 3, dadurch gekennzeichnet, daß, wenn R = 1, das dritte Mittel die Lexikonzahl ohne den Kompressionszustandsbezeichner als den Lexikondatenwert speichert.
5. Datenkompressionssystem nach Anspruch 3 oder 4, dadurch gekennzeichnet, daß das zweite Mittel den kombinierten String mit zwei sequentiellen Arbeitsstrings bildet.
DE69517852T 1994-04-22 1995-04-21 Datenkompressionsverfahren und System Expired - Fee Related DE69517852T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10783794A JP3522331B2 (ja) 1994-04-22 1994-04-22 データ圧縮方法

Publications (2)

Publication Number Publication Date
DE69517852D1 DE69517852D1 (de) 2000-08-17
DE69517852T2 true DE69517852T2 (de) 2001-01-11

Family

ID=14469308

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69517852T Expired - Fee Related DE69517852T2 (de) 1994-04-22 1995-04-21 Datenkompressionsverfahren und System

Country Status (4)

Country Link
US (1) US5604495A (de)
EP (1) EP0678986B1 (de)
JP (1) JP3522331B2 (de)
DE (1) DE69517852T2 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000201080A (ja) * 1999-01-07 2000-07-18 Fujitsu Ltd 付加コ―ドを用いたデ―タ圧縮/復元装置および方法
US7113939B2 (en) 1999-09-21 2006-09-26 International Business Machines Corporation Architecture to enable search gateways as part of federated search
US7197491B1 (en) 1999-09-21 2007-03-27 International Business Machines Corporation Architecture and implementation of a dynamic RMI server configuration hierarchy to support federated search and update across heterogeneous datastores
US6792416B2 (en) 1999-09-21 2004-09-14 International Business Machines Corporation Managing results of federated searches across heterogeneous datastores with a federated result set cursor object
US6370541B1 (en) 1999-09-21 2002-04-09 International Business Machines Corporation Design and implementation of a client/server framework for federated multi-search and update across heterogeneous datastores
US6466933B1 (en) 1999-09-21 2002-10-15 International Business Machines Corporation Delayed delivery of query results or other data from a federated server to a federated client until such information is needed
AU2001247404A1 (en) * 2000-03-14 2001-09-24 Arc Cores, Inc. Difference engine method and apparatus
US6552672B1 (en) * 2002-03-18 2003-04-22 Hewlett-Packard Company Method, system and program storage device for providing a backup of data of a memory to at least one storage medium
US7307552B2 (en) * 2005-11-16 2007-12-11 Cisco Technology, Inc. Method and apparatus for efficient hardware based deflate
US7283072B1 (en) * 2006-03-30 2007-10-16 International Business Machines Corporation Methods of creating a dictionary for data compression
US20080001790A1 (en) * 2006-06-30 2008-01-03 Kyle Kirby Method and system for enhancing data compression
GB2456996B (en) * 2006-12-26 2011-09-21 Fujitsu Ltd Data compression apparatus and data decompression apparatus
NL2001597C2 (nl) * 2008-05-21 2009-11-24 Ipo Paulus Willem Marinus Boom Werkwijze en inrichting voor coderen en decoderen van data in unieke getalswaarden.
US9020262B2 (en) 2012-07-31 2015-04-28 Hewlett-Packard Development Company, L.P. Symbol compression using conditional entropy estimation
AU2015211043A1 (en) * 2014-01-29 2016-08-18 Relican Analytics, Inc. Optimized data condenser and method
JP6256883B2 (ja) * 2015-03-25 2018-01-10 国立大学法人 筑波大学 データ圧縮・解凍システム、データ圧縮方法及びデータ解凍方法、並びにデータ圧縮器及びデータ解凍器
US11122095B2 (en) * 2019-09-23 2021-09-14 Netapp, Inc. Methods for dictionary-based compression and devices thereof
CN115002465A (zh) * 2022-05-30 2022-09-02 深圳市吉迩科技有限公司 基于嵌入式***图片的无损压缩算法、装置、计算机设备及存储介质

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4021782A (en) * 1974-01-07 1977-05-03 Hoerning John S Data compaction system and apparatus
US4814746A (en) * 1983-06-01 1989-03-21 International Business Machines Corporation Data compression method
US4558302A (en) * 1983-06-20 1985-12-10 Sperry Corporation High speed data compression and decompression apparatus and method
US4612532A (en) * 1984-06-19 1986-09-16 Telebyte Corportion Data compression apparatus and method
US4876541A (en) 1987-10-15 1989-10-24 Data Compression Corporation Stem for dynamically compressing and decompressing electronic data
US4870415A (en) * 1987-10-19 1989-09-26 Hewlett-Packard Company Data compression system with expansion protection
US4847619A (en) * 1987-10-19 1989-07-11 Hewlett-Packard Company Performance-based reset of data compression dictionary
GB8815978D0 (en) * 1988-07-05 1988-08-10 British Telecomm Method & apparatus for encoding decoding & transmitting data in compressed form
GB8828796D0 (en) * 1988-12-09 1989-01-18 British Telecomm Data compression
US5003307A (en) * 1989-01-13 1991-03-26 Stac, Inc. Data compression apparatus with shift register search means
US5016009A (en) 1989-01-13 1991-05-14 Stac, Inc. Data compression apparatus and method
US5254990A (en) * 1990-02-26 1993-10-19 Fujitsu Limited Method and apparatus for compression and decompression of data
US5049881A (en) * 1990-06-18 1991-09-17 Intersecting Concepts, Inc. Apparatus and method for very high data rate-compression incorporating lossless data compression and expansion utilizing a hashing technique
DE69123660T2 (de) * 1990-08-13 1997-04-17 Fujitsu Ltd., Kawasaki, Kanagawa Datenkompressionsmethode und Gerät
US5142282A (en) * 1990-11-07 1992-08-25 Hewlett-Packard Company Data compression dictionary access minimization
US5140321A (en) * 1991-09-04 1992-08-18 Prime Computer, Inc. Data compression/decompression method and apparatus
US5373290A (en) * 1991-09-25 1994-12-13 Hewlett-Packard Corporation Apparatus and method for managing multiple dictionaries in content addressable memory based data compression
US5243341A (en) * 1992-06-01 1993-09-07 Hewlett Packard Company Lempel-Ziv compression scheme with enhanced adapation
US5175543A (en) * 1991-09-25 1992-12-29 Hewlett-Packard Company Dictionary reset performance enhancement for data compression applications

Also Published As

Publication number Publication date
JPH07295785A (ja) 1995-11-10
EP0678986A1 (de) 1995-10-25
US5604495A (en) 1997-02-18
JP3522331B2 (ja) 2004-04-26
DE69517852D1 (de) 2000-08-17
EP0678986B1 (de) 2000-07-12

Similar Documents

Publication Publication Date Title
DE69517852T2 (de) Datenkompressionsverfahren und System
DE69735679T2 (de) Verfahren zur Bilddecodierung
DE69024629T2 (de) Vorrichtung zur kompression von datenlängen und datenfolgen
DE69413347T2 (de) Auf die Bytegrenze ausgerichtete Datenkomprimierung
DE69725215T2 (de) Verfahren und Vorrichtung zur Komprimierung und Dekomprimierung von Schrifttypen
DE3877374T2 (de) Verfahren und vorrichtung zur herstellung transponierter bilddaten von einer "run end"- oder "run length"-bilddarstellung.
DE69833094T2 (de) Verfahren und Vorrichtung zur adaptiven Datenkompression mit höherem Kompressionsgrad
DE69122595T2 (de) Aufzeichnungs- und Abspielgerät
DE4340591C2 (de) Datenkompressionsverfahren unter Verwendung kleiner Wörterbücher zur Anwendung auf Netzwerkpakete
DE69631792T2 (de) Apparat und verfahren für die zweidimensionale datenkompression
DE69633730T2 (de) Verfahren zur kompression/dekompression von bilddateien
DE69330157T2 (de) Vorrichtung und Verfahren für die Aufzeichnung von Videosignalen
DE69802520T2 (de) Verfahren und vorrichtung zur verlustfreien datenkompression
DE19709391A1 (de) MPEG-Codier- und Decodiersystem für Multimediaanwendungen
DE69523516T2 (de) Digitale Vorrichtung zum Kodieren/Dekodieren unter Verwendung von Codes mit variablen Lauflängen
DE4339753A1 (de) Vorrichtung zum Komprimieren und Dekomprimieren von Bilddaten
DE69735835T2 (de) Dekodierer variabler Länge und Verfahren zur Dekodierung zweier Kodewörter pro Takt
DE69820148T2 (de) Verfahren zur Kompression/Dekompression von Bilddaten
DE69328698T2 (de) Verfahren und Vorrichtung zur Bildcodierung
DE69524999T2 (de) Verfahren zum Komprimieren und Dekomprimieren von Dateien
DE69228913T2 (de) Verfahren und Vorrichtung zur Kodierung eines digitalen Videosignals
EP0752788A2 (de) Videocoder und -decoder
DE69504982T2 (de) Kompressions- und expansionsalgorithmus mit verlusten für bilddarstellungsdaten
DE19944213C1 (de) Verfahren zum Komprimieren eines digitalen Bildes mit mehreren Bit-Ebenen
EP1186175B1 (de) Verfahren und vorrichtung zur komprimierung und dekomprimierung von daten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee