WO1998027657A1 - System und verfahren zur pre-entropischen codierung - Google Patents

System und verfahren zur pre-entropischen codierung Download PDF

Info

Publication number
WO1998027657A1
WO1998027657A1 PCT/EP1997/007209 EP9707209W WO9827657A1 WO 1998027657 A1 WO1998027657 A1 WO 1998027657A1 EP 9707209 W EP9707209 W EP 9707209W WO 9827657 A1 WO9827657 A1 WO 9827657A1
Authority
WO
WIPO (PCT)
Prior art keywords
characters
data source
coding
character
file
Prior art date
Application number
PCT/EP1997/007209
Other languages
English (en)
French (fr)
Inventor
Daniel Blaschkowski
Original Assignee
Daniel Blaschkowski
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 Daniel Blaschkowski filed Critical Daniel Blaschkowski
Publication of WO1998027657A1 publication Critical patent/WO1998027657A1/de

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/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • 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

Definitions

  • This invention relates generally to systems and methods for lossless data compression and in particular to a combination method for characters of a data source and the structure of the electronic circuits for coding the data source.
  • Statistical methods use the uneven frequency distribution of characters from a data source and replace frequent characters with s short code characters, rare characters with long code characters. Statistical methods are also called entropy coding. These methods include Shannon-Fano coding, Huffman coding and arithmetic coding and their variations.
  • Methods of this type include the run length coding, the methods according to the pattern matching or pointer principle and table-based methods according to Lempel-Ziv (LZ78) or according to Welch and their variations. Some variations take on an intermediate role or cannot be classified in the above-mentioned basic principles. These include the Hilbert method and some character-oriented methods. In practice, different processes are often combined with one another. In such a multi-level coding, different techniques are used simultaneously or sequentially.
  • the redundancy of a data source can be determined using various methods.
  • the methods by which a data compressor incorporates the redundancy of a data source can be categorized as follows:
  • the actual redundancy is determined variably or even adaptively.
  • the data to be compressed is completely analyzed and an optimal method is selected based on the values obtained in this way.
  • the adaptive strategy (dynamic strategy) analyzes a part of the data that has already been read and uses the previous evaluation as a strategy basis for the following data.
  • the selection is also determined by how much storage space is actually available for the incoming data stream on both the compression side and on the decompression side.
  • the computing effort for the compression process limits the speed of the data compression and the computing effort for the decompression must be able to be done in the available or desired decompression time.
  • Sequences of source data are mapped to code words, classified according to whether the strings of fixed length (fixed length) or are variable length. Accordingly, there are four different allocation principles: fixed to fixed, fixed to variable, variable to fixed and variable to variable. Coding "variable to variable" arises, for example, when a referencing table method (codebook method) is linked with a recurrent entropy coding.
  • entropy coding The basic idea in entropy coding is to base the coding algorithm on the occurrence probabilities p s of different symbols of the data source. If a file contains z characters, the z characters are assigned n ⁇ z symbol classes with the same characters. A minimum achievable file length is calculated from H • z. With entropy coding, characters that appear more frequently than others are encoded by short symbols, less frequent characters by longer symbols.
  • Huffman coding Similar to the compression techniques for image and video files, which look for similarities in the data material (image), e.g. spatial and spectral redundancies, the compression techniques for files consisting of text characters will find recurring symbol sequences and / or frequencies of the individual characters will have to be used.
  • a well known Statistical coding is known under the term Huffman coding.
  • Huffman coding goes back to the principle of the Morse alphabet. There, the frequently occurring symbols or characters are assigned shorter codes than the less common ones. For example, the code for the common symbol e consists of only one Morse code Yi.
  • the Huffman algorithm initially sorts all characters in a table according to their frequency. The two rarest get a 0 and a 1 as the last code digit.
  • the frequency table therefore has one element less. Again you look for the two rarest elements and introduce a 0 and a 1 to their code.
  • the algorithm starts over. All characters are encoded if there is only one element left in the table.
  • the Huffman algorithm is often represented as a tree about the probabilities of the characters. As mentioned, the two symbols with the lowest probability of occurrence are combined to form a new symbol with a probability added from the probabilities of the two individual symbols. The output symbols are attached as a left and right subtree. The last symbol in the list corresponds to the root of the coding tree.
  • the codes for the individual characters can then be easily determined by stringing together the zeros and ones of the subtrees that lie on the path from the root to the desired character.
  • the information in the tree - preferably in the form of a translation table - must be included with the data. In practice it can be expensive to carry this information in the form of header files as an assignment between the respective Huffman code and the original byte.
  • Another known method is arithmetic coding, which operates with frequencies and intervals.
  • the sym bole first arranged in an interval from 0 to 1.
  • the probability of a symbol corresponds to the length of its associated subinterval. So if a file consists of z characters, there are z subintervals.
  • the frequency distribution of the characters is included in the scheme. than that the code word is chosen the longer, the smaller the subinterval belonging to a symbol and vice versa.
  • the coding takes place in that each symbol is assigned a binary floating point number which corresponds to the beginning of the position of the sub-interval. With the help of the subintervals, a single number series is formed from the floating point numbers, which is ultimately converted into a code.
  • a known block coding which cannot easily be categorized as a statistical method or referencing method, is the so-called byte pair encoding.
  • This block coding was first introduced in 1994, cf. Held, G. et al .: Data and Image Compression, as cited at the beginning, pages 150-157.
  • the method replaces pairs of adjacent bytes in a file with a byte that is not in the file. The pair with the highest frequency is selected for each replacement. Once the replacement is done, the frequencies of neighboring pairs are updated. If two pairs have the same greatest frequency, the first pair is taken.
  • the coding is finished when there is no unoccupied byte left in the file or when all Pair frequencies fall below a predetermined threshold of, for example, three
  • the invention is therefore based on the problem of providing a more efficient, higher-level system for data compression which, depending on the file structure and the technical application, can be combined with previous methods.
  • the object of the invention is therefore to specify a system and a method for lossless data compression which contributes to minimizing the redundancy of a data source as much as possible.
  • the main advantage of the method according to the invention is that the coding gain can be significantly increased by combining symbols.
  • the main criterion is the reduction in the file size, which is due to a reduction in the number z 'new characters.
  • the probability of occurrence p s of the individual symbols is assumed.
  • the same bit length, for example one byte, is assumed for the symbols.
  • the file contains a total of n different symbols and zn characters.
  • the equation in Fig. 1 applies to the entropy H.
  • the equation specifies how many bits are required on average per character. Under the given conditions, this determines the minimum achievable file length for Hz. Since there is not always an ideal coding, the file can in practice also be somewhat larger than the theoretical achievable value Hz. With the Huffman coding one can approach this limit; arithmetic coding can be somewhat better than Huffman coding.
  • FIG. 1 shows the file length for the pre-entropic coding according to the invention.
  • the actual entropy limit according to Shannon can be clearly undercut - with typical factors of 2-4.
  • this presupposes a larger and iteratively applicable analysis mechanism on the compression side; however, since the decomposition takes place almost as quickly as with conventional entropy methods, the time required for the analysis on the compilation side is insignificant in many cases in view of a coding gain which is 2-4 times higher.
  • FIGS. 1 and 3 The core idea of pre-entropic coding is shown in FIGS. 1 and 3. New combination characters are gradually introduced to replace a group of existing individual characters. Since the i3 initially does not cover all characters of a symbol class, the number of classes usually increases from n to n '. The average entropy of the new or second data source, which contains the combination characters on a trial basis, also generally increases from H to H '. At the same time, however, the total number of files
  • a coding gain occurs as long as the designation wall for a combination note (i.e. for the additional data for decoding, which is recorded in a header file) is smaller than the absolute difference in the designation wall of the file before and after the combination
  • a particularly important advantage of the method according to the invention is that the header file to be carried with most compression methods can be represented more compactly, so that the new designation effort in the header file converges to half of the old one.
  • the entries of the header file are exchanged and the symbol values referring to them are changed in the file to be compressed according to a predetermined method scheme. This makes it possible to dispense with individual components of the header file entries without loss of information
  • Figure 3 A flow chart of a sequence control for pre-tropical coding.
  • Figure 4 Header tables, exchange tables and coding trees that result from swapping header entries.
  • Figure 5 An example of a coding of the header tree created by swapping according to Figure 4, state 4.
  • Table 1 A calculation of the coding gain when two symbols a and b are combined.
  • Table 3 A programming example for the pre-tropical coding method.
  • the method according to the invention precedes an iterative analysis mechanism of the known entropy coding.
  • the selection of the combination characters can follow different considerations. For example, it is known that - under otherwise identical conditions - a very uneven frequency distribution of the characters results in a small entropy. Accordingly, in the pre-tropical coding presented here, the most common exit character or the most common exit characters should not be used to form combination characters. Their coding is better left to a subsequent statistical procedure. On the other hand, so that the number z of characters in the data source drops sharply, the most common combination characters should be used
  • the occurrence probabilities p s of all n symbols and the occurrence probabilities q k of all k combination characters are first determined from the first data source.
  • the combination characters result from the combination of several characters and their spacing from one another. The amount of spacing used and the number of characters to be combined can be previously tested or calculated from the file. In the simplest case, two adjacent characters a and b are used for the combination. Then a combination character is selected on a trial basis. As a result of its frequency, a corresponding number of original characters of the two classes a and b are omitted. With the resulting new one Frequency distribution (including the selected combination character), the entropy H 'is calculated and stored (memory 1 for entropy in FIG.
  • step A With the second data source, which contains the new class of characters generated according to step A, combination characters are generated and checked again according to step A. If the achievable file length for one of the combination characters is significantly smaller than the previous one, step A is tried again, otherwise the method is terminated and the previous, last successful combination character remains.
  • Step B According to the iteration of the iteration, combination characters that have already been generated can become superfluous due to subsequent processes. For this reason, one of the previously generated combination characters is gradually resolved into its original characters and the product of entropy H and number of characters z is calculated for the data source thus created. If this results in a coding gain, the combination character is actually resolved into its original characters. Then a new cycle begins with step A.
  • a particularly advantageous embodiment of the invention lies in the fact that the coding gain that results from the resolution of combination characters is also taken into account.
  • the coding gain by resolution is examined either after a combination of two characters has already been carried out, or already when checking for the combination of two symbols a and b. As shown in Figure 3, this is done at step! •> 8 examined by comparing the resulting product of entropy and number of characters for summary or resolution, so that existing summaries are deleted again and the file is updated (steps 9-12).
  • FIGS. 4 and 5 there is a significant advantage of the system according to the invention that individual entries can be represented more efficiently by exchanging the header entries.
  • the aim of the transpositions is to sort the entries according to their components. This reduces the entropy of the header.
  • the header file consists of a table with entries x, / y ,, where the index of an entry is equal to the value of the combination symbol. If two entries are now swapped, all the data referring to them must be updated accordingly become. Sorting by swapping can e.g. B. with x, as the first and y, as the second key or vice versa. The compression can then take the form of run-length and / or differential coding.
  • the first entry is the reference entry.
  • Index of the reference entry is, then sorted. 4. Now the entries sorted in 2nd and 3rd are considered as reference entries and proceed recursively with them after steps 2nd - 4th. 13 5. After there are no more matches in steps 2-4, the next entry is the reference entry and the procedure continues with steps 2-4.
  • the procedure ends when all entries are sorted.
  • the recursive procedure enables the sorted entries to be compressed in tree-like coding (FIGS. 4 and 5).
  • the entries (children) sorted in step 2 and 3 are correct in x and y. with the index of your reference entry (father). These indices no longer have to be specified in the code, it is sufficient to specify the number of children.
  • the 23 recessed indices can then be calculated by paying off from the root.
  • a further advantageous embodiment of the invention is that the user can select parameters for the specific application,
  • the system according to the invention can be optimally scaled, particularly in time-critical applications.
  • a system for lossless compression of "eg ROM data or specific image data can not do without a review of the associated Dekomp ⁇ mtechnik, it acts in this method particularly advantageous that the Dekomp ⁇ m réelle is extremely fast and needed almost no space. This is for example o particularly important for mobile or geostationary transmission.
  • the two or more origin signs that are combined can have different distances, i.e. the characters do not have to be immediately adjacent.
  • the spacing of the original characters is noted in i3 of the header file at the point at which the combination character itself was entered. When the next combination character is created, other spacings can be selected
  • the invention is therefore a system and a method for compressing and decompressing files. It consists of one or two stages, namely a new type of pre-entropic coding and, if necessary, additionally a final entropy coding of a known type (eg Huffman or Shannon-Fano coding).
  • a new type of pre-entropic coding and, if necessary, additionally a final entropy coding of a known type (eg Huffman or Shannon-Fano coding).
  • the probabilities / frequencies of symbols of the same length, for example of byte symbols, are taken into account.
  • the probabilities can be known for a given file content or the frequencies can be paid out at the beginning of the method.
  • the method of pre-entropic coding is characterized in that Symbol combinations selected according to a new 3o criterion and introduced as additional symbols.
  • the invention proposes that a combination of several characters to form a symbol combination i is chosen such that the product of entropy times the number of characters contained in the file decreases. As a rule, the symbol combination is used for which this product is minimal.
  • the shortening process is repeated iteratively until no more profit is achieved, i.e. until it is no longer possible to shorten the file as a whole by introducing a new symbol combination.
  • the increasing effort for the header is taken into account, which is carried in the compressed file for the purpose of decomposition.
  • the header plays an increasingly important role towards the end of the iteration process, since the number of combination notes continues to grow.
  • a transposition of combination notes is shown, by means of which parts of the combination notes in the header can be omitted.
  • Another way of keeping the header labeling effort within limits is to reapply the entire compression process itself to the header file.
  • the pre-entropic coding method is a lossless data compression method with the following properties:
  • the pre-entropic coding (1st layer) is part of a 2-stage compression, which is optimally matched to a subsequent entropy coding (2nd layer).
  • the compression comprises a variable n-pass procedure and can be relatively complex, so that the procedure as a whole can be classified as partially asymmetrical.
  • the process can be operated with a variable or adaptive strategy and in both block formation and sliding window technology.
  • the method is optimally scalable in time-critical applications.
  • pre-entropic coding The main areas of application of pre-entropic coding are the compression of ROM data, e.g. on CD-ROMs, in BIOS memories, in game consoles, etc., and the compression of data that is transmitted in computer networks.
  • Another preferred area of application is the lossless compression of already encoded image data that has previously been lossy compressed, e.g. through the processes MPEG I, MPEG II, DCT etc.

Landscapes

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

Abstract

Der elementare Schritt einer pre-entropischen Codierung besteht nach der Erfindung darin, aus einer ersten Datenquelle eine zweite Datenquelle zu berechnen, bei der eine Gruppe von zwei oder mehr Zeichen der ersten Datenquelle auf ein neues Zeichen abgebildet ist, und für diese zweite Datenquelle das Produkt aus der Entropie und der neuen Zeichenanzahl zu ermitteln. Danach wird für eine weitere Datenquelle mit einer weiteren Gruppe von zwei oder mehr zusammengefaßten Zeichen der ersten Datenquelle ein weiteres Produkt der Entropie und der neuen Zeichenanzahl ermittelt. Es wird diejenige Gruppe von Zeichen der ersten Datenquelle, der das kleinere Produkt aus Entropie und Zeichenanzahl zugeordnet ist, gespeichert und nach einer Iteration über noch weitere Datenquellen durch das neue Kombinationszeichen ersetzt. Nach dem Ersetzen befindet sich in der Zieldatei eine komprimierte Datenquelle. Der elementare Zyklus wird auf diese modifizierte Datenquelle erneut angewandt, und zwar so lange, bis der Codierungsgewinn durch das Ersetzen aufgewogen wird durch den zunehmenden Bezeichnungsaufwand in einer Header-Datei, in der die Ersetzungsschritte vermerkt sind. Eine Dekomprimierung anhand dieser Header-Datei ist extrem schnell und benötigt fast keinen Speicherplatz.

Description

System und Verfahren zur pre-entropischen Codierung
Diese Erfindung bezieht sich allgemein auf Systeme und Verfahren zur verlustfreien Datenkomprimierung und insbesondere auf eine Kombinationsmethode tur Zeichen einer Datenquelle sowie den Aufbau der elektronischen Schaltungen zur Codierung der Datenquelle.
Bei einer Speicherung oder Übertragung von Daten ist im allgemeinen die Speicherkapazität des vorgegebenen Speichermediums oder die Ubertragungs-
10 kapazitat des Kanals der begrenzende Faktor. Bei Verfahren, die Daten speichern oder übertragen, ist es oft wichtig, die Daten deutlich zu komprimieren, sodaß mehr Daten übertragen oder gespeichert werden können Je nach Anwendungsfall ist es wichtig, daß die Komprimierung vollständig reversibel ist, sodaß die Daten verlustfrei und vollständig wieder zuruckge- i3 wonnen werden können. Ein Verfahren zur verlustfreien Datenkompression übersetzt also eine Eingabe-Zeichenkette reversibel in eine Ausgabe-Zeichenkette, die im Mittel kurzer ist. Die Angabe "im Mittel" bezieht sich aut die Tatsache, daß jeweils die gesamten zu komprimierenden Dateien bzw Datenstrome berücksichtigt werden sollen, wobei es durchaus möglich ist
:o daß einzelne Zeichenketten (stnngs) nicht verkürzt werden, da z.B. ungunstige Häufigkeitsverteilungen der Zeichen für eine Entropiekodierung vorliegen.
Stand der Technik __. Die Verfahren der verlustfreien Datenkomprimierung zeichnen sich dadurch aus. daß ein Datum durch ein anderes Datum von kleinerem Bezeichnungsautwand, aber mit gleichem Informationsgehalt, codiert wird, vgl. Volz, H Grundlagen der Information, Akademieverlag Berlin 1991 , S. 19. Die inverse Funktion, also das Wiederherstellen der Originaldaten, wird Dekomprimierung genannt. Bei verlustfreier Datenkomprimierung wird die Ausgangsdatei wieder hergestellt. Im Gegensatz dazu werden bei verlustbehafteten Verfahren lediglich wichtige Inhalte der Originaldatei codiert; eine 5 exakte Rekonstruktion der Ausgangsdaten ist nicht möglich.
In der Literatur werden die Verfahren der verlustfreien Datenkomprimierung meist nach zwei Grundprinzipien gegliedert, vgl. z.B. Held, G. et al. : Data and Image Compression, 4th edition, Verlag John Wiley & Sons, Chichester o 1996, oder vgl. auch Völz, H. : Komprimierung von Bilddateien, Nachrichtentechnik, Elektronik, Berlin, Band 43 (1993), Hefte 2, 3 und 4.
1 ) Statistische Verfahren nutzen die ungleichmäßige Häufigkeitsverteilung von Zeichen einer Datenquelle und ersetzen häufige Zeichen durch s kurze Codezeichen, seltene Zeichen durch lange Codezeichen. Statistische Verfahren bezeichnet man auch als Entropie-Codierungen. Zu diesen Verfahren zählen die Shannon- Fano-Codierung, die Huffman- Codierung sowie die arithmetische Codierung und deren Variationen.
0 2) Bei referenzierenden Verfahren ersetzt ein einzelnes Codezeichen mehrere aufeinanderfolgende Symbole der Datenquelle. Diese Codezeichen werden mit ihrer Entsprechung (Ersatzsymbol) entweder in einer Tabelle (Codebook, Dictionary) gespeichert oder innerhalb der Kette der unco- dierten Zeichen als Abstandsverweise ausgegeben. Zu den bedeutendsten
:5 Verfahren dieser Gattung zählen die Lauflängen-Codierung, die Verfahren nach dem Pattern-Matching oder Pointer-Prinzip und tabellengestützte Verfahren nach Lempel-Ziv (LZ78) bzw. nach Welch und deren Variationen. Einige Variationen nehmen eine Zwischenrolle ein bzw. lassen sich nicht in die obengenannten Grundprinzipien einordnen. Dazu zählen das Hilbert- Verfahren und einige zeichen-orientierte Methoden. In der Praxis werden unterschiedliche Verfahren oft miteinander kombiniert. In einer solchen Mehrschicht-Codierung (multi-level-coding) kommen verschiedene Techniken gleichzeitig oder sequentiell zum Einsatz.
Jedes der eingesetzten Verfahren erzielt eine Datenreduktion durch Minderung von Redundanz. Die Redundanz einer Datenquelle kann nach verschie- denen Methoden ermittelt werden. Die Methoden, nach denen ein Datenkompressor die Redundanz einer Datenquelle einbezieht, lassen sich folgendermaßen kategorisieren:
a) Bei einer statischen Strategie wird ein fester Typ von Redundanz angenommen.
b) Bei einer nicht-statischen Strategie wird die tatsächliche Redundanz variabel oder sogar adaptiv ermittelt. Bei einer variablen Strategie werden die zu komprimierenden Daten komplett analysiert und es wird anhand der so gewonnenen Werte ein optimales Verfahren ausgewählt.
Je nachdem, wie oft die Datei komplett sequentiell gelesen wird, spricht man von einem n-Pass-Verfahren. Die adaptive Strategie (dynamische Strategie) analysiert einen bereits gelesenen Teil der Daten und nutzt die bisherige Auswertung als Strategiegrundlage für die folgenden Daten.
Viele Kompressionsverfahren existieren in unterschiedlichen Varianten der Redundanzanpassung, so z.B. die Huffman-Codierung als statisches oder adaptives Verfahren. Für die Auswahl einer der genannten Strategien ist zunächst der spezifische Inhalt der Datenquelle (Programm, Text, Bild, Ton, usw.) von Bedeutung. Darüber hinaus sind drei Kriterien entscheidend:
- Es kommt auf die Quellstruktur der zu komprimierenden Daten an. Sie läßt sich schematisch in Datenströme unbegrenzter Länge, Dateien von variabler, aber bestimmter Länge und Dateien fester Länge unterteilen.
Die Auswahl wird auch dadurch bestimmt, wieviel Speicherplatz für den einlaufenden Datenstrom sowohl auf der Komprimierungsseite als auch auf der Dekomprimierungsseite tatsächlich verfügbar ist.
Der Rechenaufwand für den Kompressionsvorgang begrenzt die Geschwindigkeit der Datenkomprimierung und der Rechenaufwand für die Dekomprimierung muß in der verfügbaren oder erwünschten Dekom- primierungszeit erledigt werden können.
In vielen praktischen Anwendungen hat sich das Prinzip der Block-Codierung bzw. der gleitenden Block-Codierung durchgesetzt. Im ersten Fall wird eine feste Anzahl von aufeinanderfolgenden Quellensymbolen zu einem Block zusammengefaßt. Jeder Block wird unabhängig von allen anderen betrachtet. Für gleitende Block-Codes wird ein Fenster definiert, unter dem möglichst viele Quellensymbole liegen. Das Fenster wird mit jedem Schritt des Codierprozesses um eine oder mehrere Positionen verschoben, wobei die Ver- Schiebung wesentlich kleiner als die Fensterlänge ist.
Eine weitere gebräuchliche Einteilung von Kompressionsverfahren betrifft die
Längen der Quell- bzw. Zieldatensequenzen. Da bei der Codierung stets
Sequenzen von Quelldaten auf Codeworte abgebildet werden, wird danach klassifiziert, ob die Zeichenketten von fester Länge (fixed length) oder variabler Länge (variable length) sind. Demnach existieren vier verschiedene Zuordnungsprinzipien: fest auf fest, fest auf variabel, variabel auf fest und variabel auf variabel. Eine Codierung "variabel auf variabel" entsteht beispielsweise bei einer Verkettung eines referenzierenden Tabellenverfahrens (Codebookverfahren) mit einer rekurrenten Entropie-Codierung.
Weitere Einzelheiten, Vorteile und Nachteile von statistischen Verfahren (Shannon-Fano-Algorithmus, Huffman-Algorithmus, arithmetische Codierung) und referenzierenden Verfahren (Lauflängen-Codierung, Pointer- Verfahren, Code-Erweiterung) sind beispielsweise in dem bereits genannten Artikel Völz, H. : Komprimierung von Bilddateien, Nachrichtentechnik, Elektronik, Berlin, Band 43 (1993), Hefte 2, 3 und 4 zusammengestellt.
Im folgenden werden zwei Entropie-Codierungen etwas genauer beleuchtet, die im Rahmen einer Mehrschicht-Codierung zusammen mit der Erfindung verwendet werden können.
Die grundsätzliche Idee bei Entropiekodierungen liegt darin, die Auftrittswahrscheinlichkeiten ps unterschiedlicher Symbole der Datenquelle dem Codierungsalgorithmus zugrunde zu legen. Enthält eine Datei z Zeichen, so sind die z Zeichen n < z -Symbolklassen mit gleichen Zeichen zugeordnet. Eine minimal erreichbare Dateilänge berechnet sich also aus H z. Bei der Entropie-Codierung werden Zeichen, die häufiger als andere auftreten, durch kurze Symbole, seltenere Zeichen durch längere Symbole kodiert.
Ähnlich den Kompressionstechniken für Bild- und Videodateien, bei denen nach Ähnlichkeiten im Datenmaterial (Bild) gesucht wird, z.B. räumliche und spektrale Redundanzen, werden bei den Kompressionstechniken für aus Textzeichen bestehenden Dateien wiederkehrende Symbolfolgen zu finden und/oder Häufigkeiten der einzelnen Zeichen auszunützen sein. Ein bekanntes Verfahren einer statistischen Codierung ist unter dem Begriff Huffman- Codierung bekannt. Die Idee der Huffman-Codierung geht auf das Prinzip des Morse-Alphabets zurück. Dort werden den häufig vorkommenden Symbolen oder Zeichen kürzere Codes zugeordnet als den seltener vorkommen- den. Der Code für das häufige Symbol e besteht z.B. nur aus einem einzigen MorsezeicheYi. Der Huffman-Algorithmus ordnet alle Zeichen zunächst nach ihrer Häufigkeit in einer Tabelle. Die beiden seltensten erhalten als letzte Codeziffer eine 0 und eine 1. Beide werden in der Tabelle mit der Summe ihrer Wahrscheinlichkeiten zusammengefaßt. Die Häufigkeits- tabelle hat damit ein Element weniger. Wieder sucht man die beiden seltensten Elemente und stellt ihrem Code eine 0 und eine 1 vor. Nach Zusammenfassen ihrer Wahrscheinlichkeiten beginnt der Algorithmus von vorn. Alle Zeichen sind kodiert, wenn nur noch ein Element in der Tabelle übrig ist. Häufig wird der Huffman-Algorithmus als Baum über die Wahrschein- lichkeiten der Zeichen dargestellt. Die beiden Symbole mit der geringsten Wahrscheinlichkeit des Auftretens werden, wie erwähnt, zusammengefaßt zu einem neuen Symbol mit einer Wahrscheinlichkeit addiert aus den Wahrscheinlichkeiten der beiden einzelnen Symbole. Die Ausgangssymbole werden als linker und rechter Teilbaum angehängt. Das letzte Symbol in der Liste entspricht der Wurzel des Kodierbaums. Die Codes für die einzelnen Zeichen können dann ganz einfach ermittelt werden, indem man die Nullen und Einsen der Teilbäume aneinander reiht, die auf dem Pfad von der Wurzel zu dem gewünschten Zeichen liegen. Die Information des Baumes - vorzugsweise in der Form einer Übersetzungstabelle - muß mit den Daten mit- geliefert werden. In der Praxis kann es aufwendig sein, diese Information in Form von Headerdateien als Zuordnung zwischen dem jeweiligen Huff- man-Code und dem Original-Byte mitzuführen.
Ein weiteres bekanntes Verfahren ist die arithmetische Codierung, die mit Häufigkeiten und Intervallen operiert. Bei diesem Schema werden die Sym- bole zunächst in einem Intervall von 0 bis 1 angeordnet. Die Wahrscheinlichkeit eines Symbols entspricht dabei der Lange seines zugehörigen Unterintervalls. Besteht also eine Datei aus z Zeichen, so gibt es z Unterintervalle Die Häufigkeitsverteilung der Zeichen fließt bei dem Schema insofern ein. als daß das Codewort umso langer gewählt wird, je kleiner das zu einem Symbol gehörige Unterintervall ist und umgekehrt. Die Codierung erfolgt dadurch, daß jedem Symbol eine binare Fließkommazahl zugeordnet wird, die dem Anfang der Position des Unteπntervalls entspricht. Aus den Fließkommazahlen wird mit Hilfe der Unterintervalle eine einzige Zahlentol- ge gebildet, die letztendlich in einen Code umgesetzt wird. Der Algorithmus dieser Intervallschachtelung benotigt allerdings unbedingt ein Sonderzeichen zum Abbruch. Da bei diesem Verfahren nicht die Wahrscheinlichkeiten einzelner Zeichen einfließen, sondern die ganze Datei gemäß der Häufigkeit der Zeichen kodiert wird, bringt die arithmetische Codierung meistens eine höhere Verdichtung als der Huffman-Code. Bezüglich des algorithmischen Aufwandes können allerdings beide Verfahren, die arithmetische Codierung meistens und die Huffman-Codierung, einfacheren Verfahren unterlegen sein.
Eine bekannte Blockcodierung, die sich nicht ohne weiteres als statistisches Verfahren oder referenzierendes Verfahren kategor lsieren laßt, ist das sogenannte Byte-Pair-Encoding. Diese Blockcodierung wurde 1994 erstmals vorgestellt, vgl. Held, G. et al.: Data and Image Compression, wie eingangs zitiert, Seiten 150-157. Das Verfahren ersetzt Paare nebeneinanderhe- gender Bytes in einer Datei durch ein Byte, das nicht in der Datei vorkommt. Für jede Ersetzung wird das Paar mit der größten Häufigkeit ausgewählt. Sobald die Ersetzung vorgenommen wurde, werden die Häufigkeiten von Nachbarpaaren aktualisiert. Haben zwei Paare die gleiche größte Häufigkeit, so wird das erste Paar genommen. Die Codierung ist beendet, wenn kein unbesetztes Byte in der Datei mehr frei ist oder wenn sämtliche Paarhaufigkeiten einen vorgegebenen Schwellenwert von z.B. drei unterschreiten
Autgabe und Losung der Erfindung i Wünschenswert ist es, eine noch größere Kompressionsrate als bei den bisher bekannten entropischen Verfahren zu erzielen. Der Erfindung liegt daher das Problem zugrunde, ein effizienteres, übergeordnetes System zur Datenkomprimierung zur Verfugung zu stellen, das abhangig von der Dateistruktur und der technischen Anwendung mit bisherigen Verfahren kombinier-
Die Aufgabe der Erfindung besteht deshalb dann, ein System und ein Verfahren zur verlustfreien Datenkomprimierung anzugeben, welches dazu beitragt, die Redundanz einer Datenquelle soweit wie möglich zu vermin- s dem.
Diese Aufgabe wird durch ein Codierungssystem mit den Merkmalen des Anspruchs 1 und durch ein Codierungsverfahren mit den Merkmalen des Anspruchs 16 gelost. Zweckmäßige Ausgestaltungen des Erfindungsgedankens o gehen aus den Unteranspruchen hervor.
Drei besonders zweckmäßige Merkmale der Erfindung, die auch für sich genommen als schutzwurdig angesehen werden, bilden den Gegenstand von
Nebenanspruchen 31 , 32 und 33. Die Verfahrensaspekte dieser Merkmale
2^ sind in den nebengeordneten Verfahrensanspruchen 34, 35 und 36 aufgeführt.
Der wesentliche Vorteil des erfindungsgemaßen Verfahren hegt dann, daß durch Zusammentassen von Symbolen der Codierungsgewinn wesentlich gesteigert werden kann. Die neue Entropie H' und die neue Dateigroße s'
3o errechnen sich nach den Formeln, die in Tabelle 1 angegeben sind. Das wesentliche Kriterium ist die Senkung der Dateigröße, die auf eine Senkung der Zahl z' neuer Zeichen zurückgeht.
Dabei bedeuten: H: alte Entropie z: alte Zeichenzahl s: alte Dateigröße s = H-z a: Anzahl des Symbols a b: Anzahl des Symbols b ab: Anzahl der möglichen Zusammenfassungen von a und b
H1 : neue Entropie z' : neue Zeichenzahl z' = z - ab
So läßt sich die komprimierte Dateigröße s ' berechnen als Produkt aus H'-z\
Bei der Erfindung wird zunächst, insoweit vergleichbar mit herkömmlichen Entropiecodierungen, von den Auftrittswahrscheinlichkeiten ps der einzelnen Symbole ausgegangen. Für die Symbole wird eine gleiche Bit-Länge, z.B. ein Byte, angenommen. Die Datei enthält insgesamt n unterschiedliche Symbole und z n Zeichen. Dann gilt für die Entropie H die Gleichung in Fig. 1. Die Gleichung gibt an, wieviel Bit im Mittel je Zeichen erforderlich sind. Daraus bestimmt sich unter den gegebenen Bedingungen die minimal erreichbare Dateilänge zu H-z. Da es nicht immer eine ideale Codierung zu geben braucht, kann die Datei in der Praxis auch etwas größer sein als der theoretische erreichbare Wert H-z. Mit der Huffman-Codierung kann man sich dieser Grenze nähern; etwas besser als die Huffman-Codierung kann die arithmetische Codierung sein. In der Figur 1 ist die Dateilänge für die erfindungsgemaße pre-entropische Codierung zusammengestellt. Nach dem Prinzip der pre-entropischen Codierung, das im folgenden erklart wird, kann die eigentliche Entropiegrenze nach Shannon deutlich - mit typischen Faktoren von 2-4 - unterschritten werden. Dies setzt erfindungsgemaß zwar einen größeren und iterativ anzuwendenden Analysemechanismus auf der Komprimierungsseite voraus; da die Dekompπmierung aber fast genauso schnell wie bei üblichen Entropiever- tahren erfolgt, ist der für die Analyse erforderliche Zeitaufwand aut der Kompπmierungsseite angesichts eines um den Faktor 2-4 höheren Codie- o rungsgewinns in vielen Fallen unwesentlich.
Der Kern-Gedanke der pre-entropischen Codierung ist in den Figuren 1 und 3 dargestellt. Es werden schrittweise neue Kombinationszeichen eingeführt, welche eine Gruppe vorhandener Einzelzeichen ersetzen. Da durch das i3 zunächst versuchsweise Ersetzen meist nicht alle Zeichen einer Symbolklasse erfaßt werden, nimmt meist die Zahl der Klassen von n auf n' zu. Auch die mittlere Entropie der neuen oder zweiten Datenquelle, welche die Kom- binationszeichen versuchsweise enthalt, nimmt in der Regel von H auf H' zu. Gleichzeitig sinkt jedoch die Zahl der insgesamt in der Datei vorhande-
20 nen Zeichen von z auf z' ≤ z. Dadurch wird häufig die Dateilange, also das Produkt aus dem Code-Aufwand (Entropie) und der Zeichenzahl kleiner als bei der Ausgangsdatei. So entsteht bei richtiger Optimierung eine kleinere Zieldatei, insbesondere dann, wenn anschließend die neue Datei mit den n' Klassen einer normalen Entropiecodierung unterworfen wird (Huffman-Codie-
2J rung, arithmetische Codierung). Ein Codierungsgewinn erfolgt so lange, wie der Bezeichnungsautwand für einen Kombinationsvermerk (also für die Zusatzdaten zur Decodierung, die in einer Header-Datei erfaßt werden) kleiner ist als die absolute Differenz des Bezeichnungsautwands der Datei vor und nach der Kombination
30 Eine besonders vorteilhafte Ausgestaltung der Erfindung ist dann zu sehen, daß nicht nur einander benachbarte Zeichen kombiniert werden können, sondern daß zusätzlich auch Einzelzeichen mit unterschiedlichen Abstanden miteinander zusammengefaßt werden können, wobei der Abstand jeweils im Header vermerkt werden muß. Es ist möglich, für das nächste Kombina- tionszeichen einen wiederum anderen Abstand zu wählen.
Im Ablauf, besonders gegen Ende des erfindungsgemaßen iterativen Verfahrens ist es möglich, daß durch Auflosung von bereits kombinierten Zeichen ein weiterer Codierungsgewinn erzielt werden kann. Dieser Codierungsgewinn durch Zeichenauflosung ist in Tabelle 2 dargestellt. Das erfin- dungsgemaße Verfahren erweist sich deshalb als besonders vorteilhaft, da eine Codierungsgewinnsteigerung erzielbar ist, indem simultan zur Prüfung aut Zusammenfassung zweier Symbole a und b eine Auflosung anderer Symbole versucht wird. Abhangig von der gunstigeren Dateigroße wird dann eine Zusammenfassung oder Auflosung der Symbole a und b ausgeführt.
Ein besonders wichtiger Vorteil des erfindungsgemaßen Verfahren liegt dann, daß die bei den meisten Komprimierungsverfahren mitzutuhrende Headerdatei kompakter darstellbar ist, sodaß der neue Bezeichnungsaufwand in der Headerdatei gegen die Hälfte des alten konvergiert. Nach einem vorgegebenen Verfahrensschema werden die Eintrage der Headerdatei vertauscht und die auf sie verweisenden Symbolwerte in der zu komprimierenden Datei verändert. Dadurch wird es möglich, auf einzelne Komponenten der Header- dateieintrage ohne Informationsverlust zu verzichten
Die Erfindung der preentropischen Codierung wird im folgenden anhand der beiliegenden Zeichnungen und Tabellen und der dargestellten Ausfuhrungsbei- spiele naher beschrieben. Es zeigt- Figur 1 : Das Prinzip der preentropischen Codierung. Figur 2: Ein Blockschaltbild wesentlicher Funktionsbausteine und Speicherbausteine zur Durchführung des Verfahrens der preentropischen Codierung.
Figur 3: Ein Flußdiagramm einer Ablaufsteuerung zur preentropischen Codierung.
Figur 4: Header-Tabellen, Tauschtafeln und Codierungsbäume, die durch Vertauschen von Header-Einträgen entstehen.
Figur 5: Ein Beispiel einer Codierung des durch Vertauschung gemäß Figur 4, Zustand 4 entstandenen Header-Baums.
Tabelle 1 Eine Berechnung des Codierungsgewinns bei Zusammenfassen zweier Symbole a und b.
Tabelle Eine Berechnung des Codierungsgewinns bei Auflösen zweier Symbole a und b. Tabelle 3: Ein Programmierbeispiel für das Verfahren zur preentropischen Codierung.
Wie in Figur 1 dargestellt, ist bei dem erfindungsgemäßen Verfahren ein iterativer Analysemechanismus der bekannten Entropiekodierung vorangestellt.
Die Auswahl der Kombinationszeichen kann unterschiedlichen Überlegungen folgen. Beispielsweise ist bekannt, daß - unter sonst gleichen Bedingungen - eine sehr ungleichmäßige Häufigkeitsverteilung der Zeichen eine kleine Entropie zur Folge hat. Demnach sollten bei der hier vorgestellten preentropischen Codierung das häufigste Ausgangszeichen oder die häufigsten Ausgangszeichen nicht zur Bildung von Kombinationszeichen herangezogen werden. Deren Codierung wird besser einem anschließenden statistischen Verfahren überlassen. Andererseits sollten, damit die Anzahl z der Zeichen in der Datenquelle stark sinkt, vor allem die häufigsten Kombinationszeichen benutzt werden
Die häufigsten Kombinationszeichen entstehen aber meist gerade aus den häufigsten Oπginalzeichen.
Diese Überlegungen zeigen, daß die beiden genannten Strategien sich zumindest teilweise widersprechen. Da außerdem noch die Zeichenzahl und der Autwand für die Header-Datei in die Dateilänge eingehen, ist eine einfache Strategie zur Auswahl der Kombinationszeichen zwar möglich, aber oft nicht effektiv Stattdessen wird gemäß den Figuren 1-3 ein komplexes iteratives Optimierungsverfahren angewandt. Die im folgenden beschriebene Strategie stellt ein bevorzugtes Ausfuhrungsbeispiel dar. Diese Strategie kann in mehreren Punkten modifiziert, vereinfacht und/oder erweitert werden. Die entstehenden Varianten werden u.a. von der Struktur der Eingangsdaten (vor allem ihrer Lange) und vom Anwendungsfall (Zeitbedingungen, verfugbarer Speicherplatz usw.) abhangen. Im folgenden wird ein besonders typisches und universelles Vorgehen bei der Auswahl der Kombinationszeichen dargestellt, das sich in der praktischen Durchfuhrung als effektiv erwiesen hat.
Schritt A
Aus der ersten Datenquelle werden zunächst die Auftπttswahrscheinhchkeiten ps aller n Symbole und die Auftπttswahrscheinlichkeiten qk aller k Kom- binationszeichen bestimmt. Die Kombinationszeichen entstehen aus der Zusammenfassung mehrerer Zeichen und ihres Abstandes zueinander. Dabei kann die Menge der verwendeten Abstände und die Anzahl zu kombinierender Zeichen vorher testgelegt oder aus der Datei berechnet sein. Im einfachsten Fall werden zwei benachbarte Zeichen a und b zur Kombination verwendet. Dann wird ein Kombinationszeichen versuchsweise ausgewählt Entsprechend seiner Häufigkeit entfallen dadurch entsprechend viele Oπginal- zeichen der beiden Klassen a und b. Mit der sich so ergebenden neuen Häufigkeitsverteilung (einschließlich des ausgewählten Kombinationszeichens) wird die Entropie H' berechnet und gespeichert (Speicher 1 für Entropie in Figur 2) und mit der Zeichenanzahl multipliziert (Speicher für Code-Aufwand und Dateigröße in Figur 2). Danach geschieht der gleiche Vorgang mit einer zweiten Zeichenkombination. Das neue Produkt aus Entropie und Zeichenzahl wird mit dem vorhergehenden Produkt verglichen. Ist es kleiner, so wird es gespeichert, andernfalls verworfen. Dieser Vergleich erfolgt nacheinander mit allen Kombinationszeichen. Abschließend ist jenes Kombinationszeichen bekannt, das die voraussichtlich größte Komprimierung bewirkt. Die zugehörigen Parameter (neue Anzahl n' der Klassen, neue Häufigkeitsverteilung, Zusatzdaten im Header) werden zwischengespeichert und die Kombinationszeichen stellen eine neue Klasse von Symbolen dar. Nun wird eine zweite Datenquelle gebildet, indem die zugehörigen Zeichen in der ersten Datenquelle durch das Kombinationszeichen ersetzt werden. Die neue Symbolzahl n' liegt jetzt zwischen n-1 und n+ 1 , und zwar je nach dem, ob 0, 1 oder 2 Ursprungssymbole durch das Kombinationssymbol vollständig ersetzt worden sind.
Iteration: Mit der zweiten Datenquelle, welche die gemäß Schritt A erzeugte neue Klasse von Zeichen enthält, werden erneut gemäß dem Schritt A Kombinationszeichen erzeugt und überprüft. Ist für eines der Kombinationszeichen die erreichbare Dateilänge signifikant kleiner als die vorhergehende, so wird Schritt A erneut versucht, andernfalls bricht das Verfahren ab und es verbleibt bei dem vorhergehenden, zuletzt erfolgreichen Kombinationszeichen.
Schritt B Im Verlaut der Iteration kann es vorkommen, daß bereits erzeugte Kom- binationszeichen durch nachfolgende Prozesse überflüssig werden. Daher wird schrittweise ]e eines der zuvor erzeugten Kombinationszeichen probeweise in seine Ursprungszeichen aufgelost und für die so entstehende Datenquelle das Produkt aus Entropie H und Zeichenzahl z berechnet. Falls sich hieraus ein Codierungsgewinn ergibt, wird das Kombinationszeichen tatsachlich in seine Ursprungszeichen aufgelost. Danach beginnt ein neuer Zyklus mit Schritt A.
Eine besonders vorteilhafte Ausgestaltung der Erfindung liegt dann, daß auch in der Codierungsgewinn, der durch Auflosung von Kombinationszeichen entsteht, berücksichtigt wird. Die Untersuchung des Codierungsgewinns durch Auflosung wird entweder nach bereits getätigter Zusammenfassung zweier Zeichen unternommen, oder bereits bei der Prüfung auf Zusammenfassung zweier Symbole a und b. Wie in Figur 3 dargestellt, wird dies bei Schritt ! •> 8 untersucht, in dem das entstehende Produkt aus Entropie und Zeichenzahl für Zusammenfassung bzw. Auflosung verglichen wird, sodaß gegebenenfalls bestehende Zusammenfassungen wieder geloscht werden und die Datei aktualisiert wird (Schritte 9 - 12).
Gemäß der Figur 4 und 5 besteht ein wesentlicher Vorteil des erfindungsgemaßen Systems dann, daß durch Vertauschen der Header-Eintrage einzelne Eintrage effizienter dargestellt werden können. Dabei ist das Ziel der Trans- positionen, die Eintrage nach ihren Komponenten zu sortieren. Dadurch sinkt die Entropie des Headers.
23
Angenommen zwei Symbole x. und y, werden zu einem Kombinationssymbol mit de Wert l zusammengefaßt. Dann besteht die Header-Datei aus einer Tabelle mit Eintragen x, / y,, wobei der Index eines Eintrags gleich dem Wert des Kombinationssymbols ist. Werden nun zwei Eintrage vertauscht, dann müssen alle aut sie verweisenden Daten entsprechend aktualisiert werden. Das Sortieren durch Vertauschung kann z. B. mit x, als erstem und y, als zweitem Schlüssel erfolgen oder umgekehrt. Die Komprimierung kann dann als Lauflangen- und/oder Differenzkodierung erfolgen.
3 Eine weitere Transposition-Strategie sortiert alternierend mit x. und y als Schlüsseln. Diese Strategie laßt sich in fünf Regeln beschreiben (Fig. 4).
1 Anfangs ist der erste Eintrag der Referenzeintrag.
2. Nun werden alle Eintrage gesucht, deren Komponente x, gleich dem I O Index des Reterenzπngtags ist und darunter einsortiert.
3 Als nächstes werden alle Eintrage, deren Komponente y. gleich dem
Index des Referenzeintrages ist, anschließend einsortiert. 4. Nun werden die in 2. und 3. einsortierten Eintrage als Referenzeintrage betrachtet und mit ihnen nach Schritt 2. - 4. rekursiv verfahren. 13 5. Nachdem es in Schritt 2. - 4. keine Übereinstimmungen mehr gibt, ist der nächste Eintrag der Referenzeintrag und es wird mit Schritt 2. - 4. weiter verfahren.
Das Verfahren endet, wenn alle Eintrage einsortiert sind. Durch die rekursi- 20 ve Vorgehensweise lassen sich die sortierten Eintrage in baumartiger Codierung komprimieren (Fig. 4 und Fig. 5). Die in Schritt 2. bzw. 3. einsortierten Eintrage (Kinder) stimmen in x, bzw. y. mit dem Index ihres Referenzeintrages (Vater) uberein. Diese Indizes müssen nun im Code nicht mehr angegeben werden, es reicht die Anzahl der Kinder anzugeben. Die 23 ausgesparten Indizes lassen sich dann durch Abzahlen von der Wurzel aus errechnen.
Eine weitere vorteilhafte Ausgestaltung der Erfindung liegt dann, daß durch den Anwender für den spezifischen Anwendugsfall Parameter wahlbar sind,
30 die z.B. angeben, ob und wenn ja, wann eine Auflosung von Zeichen versucht werden soll und daß weiterhin - wie in Figur 3 dargestellt - eine Menge der gunstigen Abstände adaptiv ermittelbar ist.
Damit ergibt sich, daß gerade in zeitkritischen Anwendungen das erfindungs- 3 gemäße System optimal skalierbar ist. Da ein System zur verlustfreien Komprimierung von "z.B. ROM-Daten oder speziellen Bilddaten nicht ohne Bewertung der zugehörigen Dekompπmierung auskommen kann, wirkt es sich bei diesem Verfahren besonders vorteilhaft aus, daß die Dekompπmierung extrem schnell ist und fast keinen Speicherplatz benotigt. Dies ist z.B. o bei der mobilen oder geostationaren Übertragung besonders wichtig.
Die zwei oder mehr Ursprungszeichen, die zusammengefaßt werden, können unterschiedliche Abstände zueinander haben, d.h. die Zeichen müssen nicht unmittelbar benachbart sein. Die Abstände der Ursprungszeichen werden in i3 der Header-Datei vermerkt an der Stelle, an der auch das Kombinationszeichen selbst eingetragen wurde Bei der Bildung des nächsten Kombinationzeichens können andere Abstände gewählt werden
Zusammenfassung der Eigenschaften und bevorzugte Anwendungsgebiete 20 Bei der Erfindung handelt es sich demzufolge um ein System und ein Verfahren zum Komprimieren und Dekomprimieren von Dateien. Es besteht aus ein oder zwei Stufen, namhch einer neuartigen pre-entropischen Codierung und gegebenenfalls zusatzlich einer abschließenden Entropie-Codierung bekannter Art (z.B Huffman- oder Shannon- Fano-Codierung). Dabei werden ι Wahrscheinlichkeiten/Häufigkeiten gleich langer Symbole, z.B von Byte-Symbolen berücksichtigt Die Wahrscheinlichkeiten können für einen gegebenen Datei-Inhalt bekannt sein oder es können die Häufigkeiten zu Beginn des Verfahrens ausgezahlt werden Das Verfahren der pre-entropischen Codierung ist dadurch gekennzeichnet, daß Symbolkombinationen nach einem neuartigen 3o Kriterium ausgewählt und als zusatzliche Symbole eingeführt werden. Zwar steigt dadurch eventuell die Anzahl auftretender Klassen von Symbolen und damit eventuell auch die Entropie; jedoch sinkt in jedem Fall die Anzahl der in der Datei insgesamt enthaltenen Zeichen. Die Erfindung schlagt vor, daß eine Zusammenfassung mehrerer Zeichen zu einer Symbolkombination i jeweils so gewählt wird, daß das Produkt aus Entropie mal die Anzahl der in der Datei enthaltenen Zeichen sinkt. In der Regel wird diejenige Symbolkombination herangezogen, bei der dieses Produkt minimal ist.
Der verkürzende Prozeß wird iterativ solange wiederholt, bis kein Gewinn o mehr erreicht wird, d.h. bis durch Einfuhrung einer neuen Symbolkombination keine Verkürzung der Datei insgesamt mehr möglich ist. Bei dieser Iteration wird der steigende Aufwand für den Header berücksichtigt, der in der komprimierten Datei zum Zwecke der Dekompπmierung mitgefuhrt wird.
i3 Bei den Erprobungen des erfindungsgemaßen Verfahrens wurde zusätzlich testgestellt, daß unter Umstanden durch Auflosen früher eingeführter Zeichen ein weiterer Codierungsgewinn zu erzielen ist. Es wird deshalb im Verlauf der iterativen Einfuhrung neuer Zeichen an geeigneter Stelle untersucht, ob durch Ruckkehr zu weniger stark zusammengefaßten Zeichen die Entropie
20 und/oder der Header-Autwand relativ stark zurückgehen.
Sowohl die Auswahl neuer Kombinationszeichen als auch die Auflosung bereits eingeführter Kombinationszeichen können mehrfach iterativ verschachtelt sein. Die Wiederholung garantiert, daß jeder Zwischenschritt zu einem 3 guten Zwischenergebnis fuhrt, nimmt aber andererseits Rechenzeit in Anspruch Im Unterschied dazu liegt es aber auch im Rahmen der Erfindung, bei der Auswahl der Kombinationszeichen geradewegs nach Erfahrungsregeln vorzugehen. Beispielsweise konnte man vorallem Symbolkombinationen zulassen, die nicht den häufigsten Einzelsymbolen entsprechen. Wenn beson-
30 ders häufige Symbole zu einem kleinen Wert der Entropie fuhren, so kann man deren Codierung in zweckmäßiger Weise der abschließenden entropischen Codierung überlassen. Ein anderes Auswahlkriterium besteht dann, daß solche Symbolkombinationen bevorzugt ausgewählt werden, welche die zugehörigen Einzelzeichen ganz oder nahezu ganz verschwinden lassen. Bei bestimmten Dateistrukturen kann die Dateilänge besonders effektiv verringert werden, wenn nicht * nur benachbarte Symbole, sondern auch Symbole mit größeren Abstanden zusammengefaßt werden. Da diese Abstände im Header zusatzlich vermerkt werden müssen, sollte die Anzahl der zu speichernden Abstände allerdings gering gehalten werden.
Überhaupt spielt der Header gegen Ende des Iterationsprozesses eine immer größere Rolle, da die Zahl der Kombinationsvermerke immer weiter anwachst. Im Rahmen der vorliegenden Erfindung ist deshalb auch eine Transposition von Kombinationsvermerken aufgezeigt, durch die Teile der Kombinationsvermerke im Header entfallen können. Eine andere Möglichkeit, den Bezeichnungsaufwand für den Header in Grenzen zu halten, besteht darin, auf die Header-Datei das gesamte Komprimierungsverfahren selbst nochmals anzuwenden.
Zusammenfassend stellt das Verfahren der pre-entropischen Codierung ein verlustfreies Datenkomprimierungsverfahren mit folgenden Eigenschaften dar:
1 Die pre-entropische Codierung (1. Schicht) ist Teil einer 2-stufigen Komprimierung, die auf eine nachfolgende Entropie-Codierung (2. Schicht) optimal abgestimmt ist.
2 Der Komprimierungsgrad dieser mehrschichtigen Codierung hegt in den meisten Fallen deutlich über dem Komprimierungsgrad einer einfachen Codierung oder anderer bekannter Mehrschichtverfahren. 3. Die Dekomprimierung geschieht extrem schnell und benötigt fast keinen Speicherplatz.
4. Die Komprimierung umfaßt ein variables n-Pass-Verfahren und kann relativ aufwendig sein, sodaß das Verfahren insgesamt als bedingt asymmetrisch einzustufen ist.
5. Das Verfahren kann mit variabler oder adaptiver Strategie und sowohl in Blockbildungs- als auch in Gleitfenstertechnik betrieben werden.
6. In zeitkritischen Anwendungen ist das Verfahren optimal skalierbar.
Die hauptsächlichen Anwendungsgebiete der pre-entropischen Codierung sind die Komprimierung von ROM-Daten, wie sie z.B. auf CD-ROMs, in BIOS- Speichern, in Spielekonsolen usw. enthalten sind, und die Komprimierung von Daten, die in Computer-Netzwerken übertragen werden. Ein weiteres bevorzugtes Anwendungsgebiet ist die verlustfreie Komprimierung von bereits codierten Bilddaten, die zuvor verlustbehaftet komprimiert wurden, z.B. durch die Verfahren MPEG I, MPEG II, DCT usw.
Es kommen auch solche Anwendungsgebiete in Frage, in denen andere Verfahren wie z.B. Lempel-Ziv, GIF-Format usw. , zu teuer sind. Bei der mobilen oder geostationären Kommunikation, bei welcher der Arbeitsspeicher sehr knapp ist, ist die starke Komprimierung von Daten ebenfalls vorteilhaft. Ferner ist die Erfindung in jeder Anwendung von Vorteil, bei der eine sehr dicht gepackte Datenmenge sehr schnell dekomprimiert werden muß. Alphabetische Liste der verwendeten Abkürzungen:
a: Anzahl des Symbols a in einer ersten Datenquelle ab: Anzahl des Symbols ab in einer zweiten Datenquelle b: Anzahl des Symbols b in einer ersten Datenquelle
H: Entropie einer ersten Datenquelle
H' : Entropie einer zweiten Datenquelle
H": Entropie einer weiteren Datenquelle i: Index in die Header-Tabelle (dies ist gleichzeitig der Symbolwert) k: Anzahl der Kombinationszeichen n: Anzahl unterschiedlicher Symbol-Klassen einer ersten Datenquelle n' : Anzahl unterschiedlicher Symbol-Klassen einer zweite Datenquelle ps: Auftrittswahrscheinlichkeit des Symbols s in einer ersten Datenquelle p's: Auftrittswahrscheinlichkeit des Symbols s in einer zweiten Datenquelle
PT: Paar-Tabelle qk: Auftrittswahrscheinlichkeit des Kombinationszeichens k s: Minimale Dateigröße einer ersten Datenquelle s': Minimale Dateigröße einer zweiten Datenquelle
S: Ein Symbol einer Datenquelle
ST: Symbol-Tabelle x,: erstes Symbol des i-ten Eintrags in der Header-Tabelle y,: zweites Symbol des i-ten Eintrags in der Header-Tabelle z: Zeichenzahl einer ersten Datenquelle z' : Zeichenzahl einer zweiten Datenquelle z" : Zeichenzahl einer weiteren Datenquelle
Z: Header-Tabelle

Claims

Patentansprüche
1. System zur Codierung einer ersten Datenquelle, mit einem Codierer, der eine Folge von Zeichen der ersten Datenquelle durch Datenkomprimierung teilweise oder vollständig auf Code-Zeichen abbildet, d a d u r c h g e k e n n z e i c h n e t, daß der Codierer a. für eine zweite Datenquelle, bei der eine Gruppe von zwei oder mehr Zeichen (a, b) der ersten Datenquelle auf ein neues Zeichen (ab) abgebildet ist, das Produkt aus der Entropie (H') der zweiten
Datenquelle und der Zeichenanzahl (z') der zweiten Datenquelle ermittelt, b. für eine weitere Datenquelle mit einer weiteren Gruppe von zwei oder mehr abgebildeten Zeichen der ersten Datenquelle ein weiteres Produkt der Entropie (H") der weiteren Datenquelle und der Zeichenanzahl (z") der weiteren Datenquelle ermittelt, c. diejenige Gruppe von Zeichen der ersten Datenquelle speichert, der von den in a. und b. ermittelten Produkten (H'- z', H"- z") das kleinere Produkt zugeordnet ist, und daß der Codierer d. eine gespeicherte Gruppe von Zeichen (a, b) der ersten Datenquelle durch ein neues Zeichen (ab) in der Folge von Zeichen der ersten Datenquelle ersetzt.
2. System nach Anspruch 1 , dadurch gekennzeichnet, daß das System eine Zieldatei umfaßt einschließlich einer Header-Datei, die aus
Einträgen der zwei oder mehr zu kombinierenden, beispielsweise benachbarten Zeichen (a,b) besteht.
3. System nach Anspruch 2, dadurch gekennzeichnet, daß zwei oder mehr nicht benachbarte Zeichen der ersten Datenquelle auf ein neues Zeichen abgebildet werden und daß zusätzlich die Information über die Abstände der nicht benachbarten Zeichen in der Header-Datei erfaßt wird.
5 4. System nach mindestens einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Codierung abhängig von einer Datenstruktur einer zu komprimierenden Ausgangsdatei, insbesondere der Dateilänge, erfolgt.
o 5. System nach mindestens einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Codierung abhängig von der Art der Anwendung, insbesondere dem Speicherplatz und dem Zeitbedarf für Komprimierung und Dekomprimierung, erfolgt.
i5 6. System nach mindestens einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Produktermittlung eine Iteration über eine Vielzahl weiterer Datenquellen mit weiteren möglichen Zeichenkombinationen umfaßt, die mit der Ermittlung eines minimalen Produkts (H' z') endet.
20
7. System nach einem der Ansprüche 2 bis 6, dadurch gekennzeichnet, daß der Schritt des Ersetzens von Zeichen (a,b) durch ein Kombinationszeichen (a,b) so lange wiederholt wird, bis eine minimale Länge der Zieldatei einschließlich der Header-Datei als
25 Abbruchkriterium erreicht ist.
8. System nach mindestens einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß gemäß einem vom Anwender gewählten Parameter bestimmbar ist, wieviel Zeichen jeweils zu einem
30 Kombinationszeichen zusammengefaßt werden.
9. System nach mindestens einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß die Produktermittlung auf eine Heuristik zurückgreift, nach der automatisch die Anzahl der zusammenfaßbaren Zeichen spezifisch für den Anwendungsfall bestimmt wird.
10. System nach mindestens einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Codierung folgenden Zusatzschritt umfaßt: nach einer erfolgten Zusammenfassung von Zeichen zu einem Kombinationszeichen wird in einer weiteren Datenquelle ein Kombinationszeichen (a,b) durch seine ursprünglichen Einzelzeichen (a,b) ersetzt und das Produkt aus Entropie (H") und Zeichenzahl (z") ermittelt und mit dem entsprechenden Produkt der zweiten Datenquelle verglichen und, falls sich für die weitere Datenquelle ein kleineres Produkt ergibt, eine Auflösung des Kombinationszeichens in Einzelzeichen einer vorhergehenden Datenquelle vorgenommen.
1 1 . System nach Anspruch 10, dadurch gekennzeichnet, daß das System einen vom Anwender bestimmbaren Parameter umfaßt, nach dem der Zusatzschritt der Zeichenauflösung wahlweise verwendet oder nicht verwendet wird.
12. System nach mindestens einem der Ansprüche 10 oder 11 , dadurch gekennzeichnet, daß das System einen vom Anwender bestimmbaren Parameter umfaßt, nach dem der Zusatzschritt der Zeichenauflösung erst ab einer durch den Parameter bestimmten Codierungstiefe zuschaltbar ist.
13. System zur Codierung einer Datenquelle durch Datenkomprimierung unter Verwendung einer Header-Datei nach Anspruch 2, dadurch gekennzeichnet, daß durch Vertauschen der Header-Einträge ohne Informationsverlust auf einzelne Headerdaten verzichtet und dadurch eine Speicherplatzreduktion in der Header-Datei erzielt wird.
14. System zur Codierung einer Datenquelle durch Datenkomprimierung unter Verwendung der Zieldatei nach Anspruch 2, dadurch gekennzeichnet, daß die in der Zieldatei enthaltene Folge von ursprünglichen Zeichen und Code-Zeichen anschließend einer Entropie-Codierung unterworfen wird.
15. System zur Dekomprimierung der Zieldatei einschließlich der Header-Datei nach Anspruch 2, dadurch gekennzeichnet, daß die Kombinationszeichen in der Zieldatei mit Hilfe der Header-Datei schrittweise in Kombinationszeichen niedrigerer Ordnung und/oder in ihre Einzelzeichen rückübersetzt werden.
16. Verfahren zur Codierung einer ersten Datenquelle, mit einem Codierer, der eine Folge von Zeichen der ersten Datenquelle durch Datenkomprimierung teilweise oder vollständig auf Code-Zeichen abbildet, d a d u r c h g e k e n n z e i c h n e t, daß der Codierer a. für eine zweite Datenquelle, bei der eine Gruppe von zwei oder mehr Zeichen (a, b) der ersten Datenquelle auf ein neues Zeichen (ab) abgebildet ist, das Produkt aus der Entropie (H') der zweiten Datenquelle und der Zeichenanzahl (z') der zweiten Datenquelle ermittelt, b. für eine weitere Datenquelle mit einer weiteren Gruppe von zwei oder mehr abgebildeten Zeichen der ersten Datenquelle ein weiteres Produkt der Entropie (H") der weiteren Daten- quelle und der Zeichenanzahl (z") der weiteren Datenquelle ermittelt, c. diejenige Gruppe von Zeichen der ersten Datenquelle speichert, der von den in a. und b. ermittelten Produkten (H' • z' , H" z") das kleinere Produkt zugeordnet ist, und daß der Codierer d. eine gespeicherte Gruppe von Zeichen (a, b) der ersten Datenquelle durch ein neues Zeichen (ab) in der Folge von Zeichen der ersten Datenquelle ersetzt.
17. Verfahren nach Anspruch 16, dadurch gekennzeichnet, daß der Codierer eine Zieldatei umfaßt einschließlich einer Header-Datei, die aus Einträgen der zwei oder mehr zu kombinierenden, beispielsweise benachbarten Zeichen (a,b) besteht.
18. Verfahren nach Anspruch 17, dadurch gekennzeichnet, daß zwei oder mehr nicht benachbarte Zeichen der ersten Datenquelle auf ein neues Zeichen abgebildet werden und daß zusätzlich die Information über die Abstände der nicht benachbarten Zeichen in der Header-Datei erfaßt wird.
19. Verfahren nach mindestens einem der Ansprüche 16-18, dadurch gekennzeichnet, daß die Codierung abhängig von einer Datenstruktur einer zu komprimierenden Ausgangsdatei, insbesondere der Dateilänge, erfolgt.
20. Verfahren nach mindestens einem der Ansprüche 16-19, dadurch gekennzeichnet, daß die Codierung abhängig von der Art der Anwendung, insbesondere dem Speicherplatz und dem Zeitbedarf für Komprimierung und Dekomprimierung, erfolgt.
21. Verfahren nach mindestens einem der Ansprüche 16-20, dadurch gekennzeichnet, daß die Produktermittlung eine Iteration über eine Vielzahl weiterer Datenquellen mit weiteren möglichen Zeichenkombinationen umfaßt, die mit der Ermittlung eines minimalen Produkts (H1 • z') endet.
22. Verfahren nach einem der Ansprüche 17-21 , dadurch gekennzeichnet, daß der Schritt des Ersetzens durch ein Kombinationszeichen so lange wiederholt wird, bis eine minimale Länge der Zieldatei einschließlich der Header-Datei als Abbruchkriterium erreicht ist.
23. Verfahren nach mindestens einem der Ansprüche 16-22, dadurch gekennzeichnet, daß gemäß einem vom Anwender gewählten Parameter bestimmbar ist, wieviel Zeichen jeweils zu einem Kombina- tionszeichen zusammengefaßt werden.
24. Verfahren nach mindestens einem der Ansprüche 16-23, dadurch gekennzeichnet, daß die Produktermittlung auf eine Heuristik zurückgreift, nach der automatisch die Anzahl der zusammenfaßbaren Zeichen spezifisch für den Anwendungsfall bestimmt wird.
25. Verfahren nach mindestens einem der Ansprüche 16-24, dadurch gekennzeichnet, daß die Codierung folgenden Zusatzschritt umfaßt: nach einer erfolgten Zusammenfassung von Zeichen zu einem Kombinationszeichen wird in einer weiteren Datenquelle ein Kombinationszeichen durch seine ursprünglichen Einzelzeichen ersetzt und das Produkt aus Entropie und Zeichenzahl ermittelt und mit dem entsprechenden Produkt der zweiten Datenquelle verglichen und. falls sich für die weitere Datenquelle ein kleineres Produkt ergibt, eine Auflösung des Kombinationszeichens in Einzelzeichen einer vorhergehenden Datenquelle vorgenommen.
26. Verfahren nach Anspruch 25, dadurch gekennzeichnet, daß das Verfahren einen vom Anwender bestimmbaren Parameter umfaßt, nach dem der Zusatzschritt der Zeichenauflösung wahlweise verwendet oder nicht verwendet wird.
27. Verfahren nach mindestens einem der Ansprüche 25 oder 26, dadurch gekennzeichnet, daß das Verfahren einen vom Anwender bestimmbaren Parameter umfaßt, nach dem der Zusatzschritt der Zeichenauflösung erst ab einer durch den Parameter bestimmten Codierungstiefe zuschaltbar ist.
28. Verfahren zur Codierung einer Datenquelle durch Datenkomprimierung unter Verwendung einer Header-Datei nach Anspruch 17, dadurch gekennzeichnet, daß durch Vertauschen der Header-Einträge ohne Informationsverlust auf einzelne Einträge verzichtet und dadurch eine Speicherplatzreduktion in der Header-Datei erzielt wird.
29. Verfahren zur Codierung einer Datenquelle durch Datenkomprimierung unter Verwendung der Zieldatei nach Anspruch 17, dadurch gekennzeichnet, daß die in der Zieldatei enthaltene Folge von ursprünglichen Zeichen und Code-Zeichen anschließend einer En- tropie-Codierung unterworfen wird.
30. Verfahren zur Dekomprimierung der Zieldatei einschließlich der Header-Datei nach Anspruch 17, dadurch gekennzeichnet, daß die Kombinationszeichen in der Zieldatei mit Hilfe der Header-Datei schrittweise in Kombinationszeichen niedrigerer Ordnung und/oder in ihre Einzelzeichen niedrigerer Ordnung rückübersetzt werden.
31. System zur Codierung einer Datenquelle, mit einem Codierer, der eine Folge von Zeichen der Datenquelle durch refererizierende Datenkomprimierung teilweise oder vollständig auf neue Codezeichen abbildet, und mit einer Zieldatei zur Speicherung einer die neuen Codezeichen enthaltenden komprimierten Datenquelle, einschließlich einer Headerdatei, die aus Einträgen von zwei oder mehr zu kombinierenden Zeichen besteht, dadurch gekennzeichnet, daß zwei oder mehr nicht benachbarte Zeichen der Datenquelle auf ein neues Codezeichen abgebildet werden, und daß in der Headerdatei zusätzlich zu den neuen Codezeichen eine Information über die Abstände der nicht benachbarten Zeichen erfaßt wird.
32. System zur Codierung einer ersten Datenquelle, mit einem Codierer, der eine Folge von Zeichen der ersten Datenquelle durch referenzierende Datenkomprimierung teilweise oder vollständig auf neue Kombinationszeichen abbildet, wobei der Codierer für eine zweite Datenquelle, bei der eine Gruppe von zwei oder mehr Einzelzeichen der ersten Datenquelle auf ein neues Kombinationszeichen abgebildet ist, nach einem vorgegebenen Kriterium ermittelt, ob ein Codierungsgewinn vorliegt, dadurch gekennzeichnet, daß die Codierung folgenden Zusatzschritt umfaßt: nach einer erfolgten Zusammenfassung von Einzelzeichen der ersten
Datenquelle zu einem Kombinationszeichen der zweiten Datenquelle wird in einer weiteren Datenquelle das Kombinationszeichen durch seine ursprünglichen Einzelzeichen ersetzt, dann wird nach dem vorgegebenen Kriterium untersucht, ob ein
Codierungsgewinn für die weitere Datenquelle vorliegt, und. falls ein Codierungsgewinn eintritt, wird eine Auflösung des
Kombinationszeichens in die Einzelzeichen der ersten Datenquelle vorgenommen.
33. System zur Codierung einer Datenquelle mit einem Codierer, der eine Folge von Zeichen der Datenquelle durch referenzierende Datenkomprimierung teilweise oder vollständig auf neue Codezeichen abbildet, und mit einer Zieldatei zur Speicherung einer die neuen Codezeichen enthaltenden komprimierten Datenquelle, einschließlich einer Headerdatei, die aus Einträgen von zwei oder mehr zu kombinierenden Zeichen besteht, dadurch gekennzeichnet, daß durch Vertauschen der Headereinträge ohne Informationsverlust auf einzelne Headerdaten verzichtet und dadurch eine Speicherplatzreduktion in der Headerdatei erzielt wird.
34. Verfahren zur Codierung einer Datenquelle, mit einem Codierer, der eine Folge von Zeichen der Datenquelle durch referenzierende Datenkomprimierung teilweise oder vollständig auf neue Codezeichen abbildet, und mit einer Zieldatei zur Speicherung einer die neuen Codezeichen enthaltenden komprimierten Datenquelle, einschließlich einer Headerdatei, die aus Eintragen von zwei oder mehr zu kombinierenden Zeichen besteht, dadurch gekennzeichnet, daß zwei oder mehr nicht benachbarte Zeichen der Datenquelle aut ein neues Codezeichen abgebildet werden, und daß in- der Headerdatei zusätzlich zu den neuen Codezeichen eine Information über die Abstände der nicht benachbarten Zeichen erfaßt wird.
Verfahren zur Codierung einer ersten Datenquelle, mit einem Codierer, der eine Folge von Zeichen der ersten Datenquelle durch referenzierende Datenkomprimierung teilweise oder vollständig auf ein neues Kombinationszeichen abbildet, wobei der Codierer für eine zweite Datenquelle, bei der eine Gruppe von zwei oder mehr Einzelzeichen der ersten Datenquelle auf das neue Kombinationszeichen abgebildet ist, nach einem vorgegebenen Kriterium ermittelt, ob ein Codierungsgewinn vorliegt, dadurch gekennzeichnet, daß die Codierung folgenden Zusatzschritt umfaßt:
nach einer erfolgten Zusammenfassung von Einzelzeichen der ersten Datenquelle zu einem Kombinationszeichen der zweiten Datenquelle wird in einer weiteren Datenquelle das Kombinationszeichen durch seine ursprünglichen Einzelzeichen ersetzt, dann wird nach dem vorgegebenen Kriterium untersucht, ob ein
Codierungsgewinn für die weitere Datenquelle vorliegt, und, falls ein Codierungsgewinn eintritt, wird eine Auflosung des Kombinationszeichens in die Einzelzeichen der ersten Datenquelle vorgenommen.
36. Verfahren zur Codierung einer Datenquelle mit einem Codierer, der eine Folge von Zeichen der Datenquelle durch referenzierende Datenkomprimierung teilweise oder vollständig auf neue Codezeichen abbildet, und mit einer Zieldatei zur Speicherung einer die neuen Codezeichen enthaltenden komprimierten Datenquelle, einschließlich einer Headerdatei, die aus Einträgen von zwei oder mehr zu kombinierenden Zeichen besteht, dadurch gekennzeichnet, daß durch Vertauschen der Headereinträge ohne Informationsverlust auf einzelne Headerdaten verzichtet und dadurch eine Speicherplatzreduktion in der Headerdatei erzielt wird.
PCT/EP1997/007209 1996-12-19 1997-12-19 System und verfahren zur pre-entropischen codierung WO1998027657A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE1996153133 DE19653133C2 (de) 1996-12-19 1996-12-19 System und Verfahren zur pre-entropischen Codierung
DE19653133.0 1996-12-19

Publications (1)

Publication Number Publication Date
WO1998027657A1 true WO1998027657A1 (de) 1998-06-25

Family

ID=7815435

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP1997/007209 WO1998027657A1 (de) 1996-12-19 1997-12-19 System und verfahren zur pre-entropischen codierung

Country Status (2)

Country Link
DE (1) DE19653133C2 (de)
WO (1) WO1998027657A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU6512500A (en) * 1999-08-02 2001-02-19 V.E. Group, LLC, The System, method and algorithm for the optimization of entropy for lossless compression
US7111094B1 (en) 1999-08-02 2006-09-19 Shin-Ping Liu System, method and algorithm for the optimization of entropy for lossless compression

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4955066A (en) * 1989-10-13 1990-09-04 Microsoft Corporation Compressing and decompressing text files
US5006849A (en) * 1989-07-26 1991-04-09 Astro, Inc. Apparatus and method for effecting data compression

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5006849A (en) * 1989-07-26 1991-04-09 Astro, Inc. Apparatus and method for effecting data compression
US4955066A (en) * 1989-10-13 1990-09-04 Microsoft Corporation Compressing and decompressing text files

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"ALGORITHM TO IDENTIFY COMMON PHRASES IN SOURCE TEXT", IBM TECHNICAL DISCLOSURE BULLETIN, vol. 33, no. 12, 1 May 1991 (1991-05-01), pages 150 - 152, XP000121616 *

Also Published As

Publication number Publication date
DE19653133C2 (de) 1998-11-05
DE19653133A1 (de) 1998-06-25

Similar Documents

Publication Publication Date Title
DE19622045C2 (de) Datenkomprimierungs- und Datendekomprimierungsschema unter Verwendung eines Suchbaums, bei dem jeder Eintrag mit einer Zeichenkette unendlicher Länge gespeichert ist
DE10301362B4 (de) Blockdatenkompressionssystem, bestehend aus einer Kompressionseinrichtung und einer Dekompressionseinrichtung, und Verfahren zur schnellen Blockdatenkompression mit Multi-Byte-Suche
DE69725215T2 (de) Verfahren und Vorrichtung zur Komprimierung und Dekomprimierung von Schrifttypen
DE10196890B4 (de) Verfahren zum Ausführen einer Huffman-Decodierung
DE4340591C2 (de) Datenkompressionsverfahren unter Verwendung kleiner Wörterbücher zur Anwendung auf Netzwerkpakete
DE69833094T2 (de) Verfahren und Vorrichtung zur adaptiven Datenkompression mit höherem Kompressionsgrad
DE69935811T3 (de) Frequenzbereichsaudiodekodierung mit Entropie-code Moduswechsel
DE60033184T2 (de) Verfahren und Vorrichtung zur Datenkomprimierung von Netzwerkdatenpaketen unter Verwendung von paketweisen Hash Tabellen
DE60107964T2 (de) Vorrichtung zur kodierung und dekodierung von strukturierten dokumenten
DE69834695T2 (de) Verfahren und Vorrichtung zur Datenkompression
EP1550219B1 (de) Verfahren und anordnung zur arithmetischen enkodierung und dekodierung von binären zuständen sowie ein entsprechendes computerprogramm und ein entsprechendes computerlesbares speichermedium
DE3485824T2 (de) Verfahren zur datenkompression.
DE102006062062B4 (de) Komprimierung von Lieddaten und Komprimierer/Dekomprimierer
DE10196847B4 (de) Ein Verfahren zum Erzeugen von Huffman-Code-Längeninformationen
DE10049571C1 (de) Verfahren und Anordnung zum Übertragen eines Vektors
DE60015755T2 (de) Verlustfreie adaptive codierung von daten eines endlichen alphabets
EP0479787B1 (de) Verfahren zur codierung einer elementfolge und einrichtung zur durchführung des verfahrens
DE19907728C2 (de) Vorrichtung und Verfahren zum Erzeugen eines Datenstroms und Vorrichtung und Verfahren zum Lesen eines Datenstroms
DE19653133C2 (de) System und Verfahren zur pre-entropischen Codierung
DE10131801B4 (de) Verfahren zur Datenkompression und Navigationssystem
DE60311886T2 (de) Verfahren und vorrichtung zum sortieren zyklischer daten in lexikographischer reihenfolge
DE102006047465A1 (de) Verfahren und Vorrichtung zur Kompression und Dekompression digitaler Daten auf elektronischem Wege unter Verwendung einer Kontextgrammatik
EP2823568A1 (de) Verfahren zur codierung eines datenstroms
DE102006028469B4 (de) Adaptives Quantisiertes Codierungsverfahren
DE19907729C2 (de) Verfahren und Vorrichtung zum Erzeugen eines Datenstroms aus Codeworten variabler Länge und Verfahren und Vorrichtung zum Lesen eines Datenstroms aus Codeworten variabler Länge

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase