DE19702553C1 - Data encoding and decoding method - Google Patents
Data encoding and decoding methodInfo
- Publication number
- DE19702553C1 DE19702553C1 DE1997102553 DE19702553A DE19702553C1 DE 19702553 C1 DE19702553 C1 DE 19702553C1 DE 1997102553 DE1997102553 DE 1997102553 DE 19702553 A DE19702553 A DE 19702553A DE 19702553 C1 DE19702553 C1 DE 19702553C1
- Authority
- DE
- Germany
- Prior art keywords
- data structure
- elements
- data
- index
- indices
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/40—Tree coding, e.g. quadtree, octree
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3088—Compression; 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
Abstract
Description
Die vorliegende Erfindung betrifft ein Verfahren gemäß dem Oberbegriff des Patentanspruchs 1, d. h. ein Verfahren zum Kodieren und Dekodieren von Daten, wobei die Zuordnung von kodierten und unkodierten Daten unter Auswertung von Ein trägen in über Indizes auffindbaren Elementen einer baumartig angelegten Datenstruktur erfolgt.The present invention relates to a method according to the Preamble of claim 1, d. H. a procedure for Encoding and decoding data, with the assignment of encoded and uncoded data evaluating on in tree-like elements that can be found via indices data structure created.
Ein derartiges Verfahren ist beispielsweise aus der US 5 153 591 bekannt.Such a method is known, for example, from US Pat. No. 5,153 591 known.
Durch das Kodieren und Dekodieren gemäß der US 5 153 591 soll ein Komprimieren und Dekomprimieren von (im beschriebenen Beispiel im ASCII-Format vorliegenden) Daten erfolgen. Sowohl das Komprimieren als auch das Dekomprimieren erfolgt unter Verwendung von baumartig angelegten Datenstrukturen, deren über zugeordnete Indizes ansprechbaren Elemente jeweils vor bestimmte Daten (im beschriebenen Beispiel ASCII-Zeichen oder ASCII-Zeichenfolgen) repräsentieren.By coding and decoding according to US 5 153 591 a compression and decompression of (in the described Data in ASCII format). Either the compression as well as the decompression takes place under Use of tree-like data structures, their elements that can be addressed via assigned indices certain data (in the example described, ASCII characters or Represent ASCII strings).
Von den besagten Datenstrukturen ist eine (erste) in einer zum Kodieren von Daten vorgesehenen Kodiereinheit, und eine weitere, inhaltlich mit der ersten Datenstruktur identische zweite Datenstruktur in einer zum Dekodieren von kodierten Daten vorgesehenen Dekodiereinheit gespeichert.Of the said data structures, one (first) is in one coding unit provided for coding data, and a further, identical in content to the first data structure second data structure in one for decoding coded Data provided decoding unit stored.
Beim Kodieren werden die zu kodierenden Daten in mehr oder weniger umfangreiche, gleich oder unterschiedlich große Teile aufgespalten, und diese Datenteile werden unter Nachschlagen in der in der Kodiereinheit verfügbaren Datenstruktur durch die Indizes der die betreffenden Datenteile repräsentierenden Datenstrukturelemente ersetzt. When encoding, the data to be encoded is divided into more or less extensive parts of the same or different sizes split up, and these pieces of data are looked up in the data structure available in the coding unit the indices of the data parts concerned Data structure elements replaced.
Umgekehrt werden beim Dekodieren die kodierten Daten in die Indizes, aus denen sie zusammengesetzt wurden, aufgespalten, und diese Indizes werden unter Nachschlagen in der in der Dekodiereinheit verfügbaren Datenstruktur durch die Daten er setzt, welche durch die über die jeweiligen Indizes ansprech baren Datenstrukturelemente repräsentiert werden.Conversely, when decoding the encoded data in the Indexes from which they were composed, and these indices are looked up in the in the Decoding unit available data structure through the data he sets which appeals through the respective indices data structure elements can be represented.
Um die beim Komprimieren und Dekomprimieren ablaufenden Vor gänge und den Aufbau der dazu verwendeten Datenstrukturen besser verstehen zu können, wird das aus der US 5 153 591 be kannte Verfahren im folgenden ergänzend anhand eines prak tischen Beispiels erläutert.The pre-compression and decompression gears and the structure of the data structures used for this To better understand this is the US 5 153 591 be Known procedures in the following additionally based on a prak table example explained.
Es sei angenommen, daß die Zeichenfolge "abcababcabc" reprä sentierende ASCII-Daten unter Verwendung einer in der Fig. 3 veranschaulichten Datenstruktur komprimiert und anschließend wieder dekomprimiert werden sollen.It is assumed that the character string "abcababcabc" representing ASCII data should be compressed using a data structure illustrated in FIG. 3 and then decompressed again.
Vor der Erläuterung des eigentlichen Komprimierens und De komprimierens soll zunächst auf den Aufbau der verwendeten Datenstruktur eingegangen werden.Before explaining the actual compression and De compressing should first of all on the structure of the used Data structure to be entered.
Wie aus der Fig. 3 ersichtlich ist, ist die verwendete Datenstruktur baumartig aufgebaut; sie weist eine Vielzahl von durch Kreise dargestellten Datenstrukturelementen 1 bis 8 auf.As can be seen from FIG. 3, the data structure used is structured like a tree; it has a multiplicity of data structure elements 1 to 8 represented by circles.
Die Datenstrukturelemente 1 bis 8 enthalten eine Reihe von diese charakterisierenden Einträgen.The data structure elements 1 to 8 contain a number of entries that characterize them.
Die Einträge bestehen dabei jeweils aus einem dem betreffen den Datenstrukturelement zugeordneten Zeichen bzw. - allge meiner ausgedrückt - Symbol und einer Reihe von auf benach barte Datenstrukturelemente zeigenden Zeigern.The entries consist of one each the characters or characters assigned to the data structure element mine expressed - symbol and a series of on neighbors pointers showing bearded data structure elements.
Den Elementen der in der Fig. 3 gezeigten Datenstruktur ist entweder das Zeichen "a", das Zeichen "b", oder das Zeichen "c" zugeordnet; die Zeichen, welche den jeweiligen Daten strukturelementen zugeordnet sind, sind in die die jeweiligen Datenstrukturelemente repräsentierenden Kreise eingeschrie ben.The elements of the data structure shown in FIG. 3 are assigned either the character "a", the character "b", or the character "c"; the characters which are assigned to the respective data structure elements are written into the circles representing the respective data structure elements.
Durch die jeweiligen Datenstrukturelemente wird entweder das ihnen zugeordnete Zeichen oder eine sich aus beliebig vielen Zeichen zusammensetzende Zeichenfolge repräsentiert, wobei sich die besagte Zeichenfolge aus dem Zeichen, das dem be treffenden Datenstrukturelement zugeordnet ist, und den Zei chen, die den hierarchisch über dem betreffenden Daten strukturelement liegenden Datenstrukturelementen zugeordnet sind, zusammensetzt.Through the respective data structure elements, either characters assigned to them or one of any number Represents a character string, where the said string is made up of the character that the be relevant data structure element is assigned, and the Zei Chen, the hierarchical above the data concerned Structure element assigned to lying data structure elements are composed.
Die vorstehend bereits erwähnten, auf die benachbarten Daten strukturelemente zeigenden Zeiger lassen sich in drei Klassen einteilen, nämlich in mit "P" bezeichnete Parent-Zeiger, mit "D" bezeichnete Abwärts-Zeiger, und mit "R" bezeichnete Rechts-Zeiger.The above mentioned on the neighboring data Pointers showing structural elements can be divided into three classes divide, namely into parent pointers marked with "P", with Down pointers labeled "D" and labeled "R" Right pointer.
Jedes Datenstrukturelement kann (muß aber nicht) Einträge für einen Parent-Zeiger P, einen Abwärts-Zeiger D und einen Rechts-Zeiger R enthalten.Each data structure element can (but does not have to) entries for a parent pointer P, a down pointer D, and one Right pointer R included.
Der Parent-Zeiger P beinhaltet den Index des Datenstruktur elements, dem das betreffende Datenstrukturelement unter geordnet ist. Der Abwärts-Zeiger D beinhaltet den Index eines der Elemente, die dem betreffenden Datenstrukturelement un tergeordnet sind. Der Rechts-Zeiger R beinhaltet den Index eines der Elemente, die dem Datenstrukturelement, das dem be treffenden Datenstrukturelement übergeordnet ist, außer dem betreffenden Datenstrukturelement untergeordnet sind.The parent pointer P contains the index of the data structure elements to which the data structure element in question is located is ordered. The down pointer D contains the index one of the elements that un the data structure element in question are subordinate. The right pointer R contains the index one of the elements that the data structure element that the be parent data structure element, except that relevant data structure element are subordinate.
Jedem Datenstrukturelement ist ein Index zugeordnet, über welchen auf dieses gezielt zugegriffen werden kann; der Index möge im betrachteten Beispiel jeweils dem Bezugszeichen ent sprechen, mit dem das betreffende Datenstrukturelement be zeichnet ist.An index is assigned to each data structure element, via which can be specifically accessed; the index in the example considered, may be the reference symbol speak with which the relevant data structure element be is drawing.
Eine Zusammenstellung der Indizes der Datenstrukturelemente, der den betreffenden Datenstrukturelementen zugeordneten Zei chen, der den betreffenden Datenstrukturelementen zugeordne ten Zeiger und der durch die betreffenden Datenstrukturele mente repräsentierten Zeichenfolgen ist aus der nachfolgenden Tabelle ersichtlich:A compilation of the indexes of the data structure elements, the time assigned to the relevant data structure elements Chen that assigned to the relevant data structure elements th pointer and by the data structures concerned mentally represented strings is from the following The table shows:
Wie diese Tabelle zu lesen ist, wird beispielhaft anhand des Datenstrukturelements, dem der Index 4 zugeordnet ist, erläu tert. Dem betreffenden Datenstrukturelement ist das Zeichen "b" zugeordnet (2. Spalte zu Index 4). Es ist dem Element mit dem Index 1 untergeordnet (5. Spalte zu Index 4), welches seinerseits dem Zeichen "a" entspricht (2. Spalte zu Index 1) und keinem übergeordneten Element untergeordnet ist (5. Spal te zu Index 1), wodurch es (das Element mit dem Index 4) die Zeichenfolge "ab" repräsentiert (6. Spalte zu Index 4). Dem Element mit dem Index 4 ist das Element mit dem Index 7 (3. Spalte zu Index 4) untergeordnet, welches seinerseits dem Zeichen "a" entspricht (2. Spalte zu Index 7) und folglich die Zeichenfolge "aba" repräsentiert (6. Spalte zu Index 7). Dem Element mit dem Index 4 ist darüber hinaus das Element mit dem Index 8 untergeordnet (4. Spalte zu Index 7), welches seinerseits dem Zeichen "c" entspricht (2. Spalte zu Index 8) und folglich die Zeichenfolge "abc" repräsentiert (6. Spalte zu Index 8).How to read this table is illustrated by the example of the Data structure element to which index 4 is assigned explains tert. The character is the relevant data structure element "b" assigned (2nd column to index 4). It is with the element subordinate to index 1 (5th column to index 4), which in turn corresponds to the character "a" (2nd column for index 1) and is not subordinate to any parent element (5th column te to index 1), which makes it (the element with index 4) the String "from" represented (6th column to index 4). The Element with index 4 is the element with index 7 (3rd Subordinate column to index 4), which in turn is the Character "a" corresponds (2nd column to index 7) and consequently represents the string "aba" (6th column for index 7). The element with index 4 is also the element subordinate to index 8 (4th column to index 7), which in turn corresponds to the character "c" (2nd column to index 8) and consequently represents the string "abc" (6th column to index 8).
Will man die vorstehend bereits genannte Zeichenfolge "abcababcabc" komprimieren, so muß diese Zeichenfolge zu nächst in (Teil-)Zeichenfolgen zerlegt werden, die durch die vorhandenen Elemente der verwendeten Datenstruktur repräsen tiert werden. Die Zerlegung führt beispielsweise zu den Teil zeichenfolgen "abc", "aba", "bc" und "abc".If you want the string already mentioned above "abcababcabc" compress, this string must are next broken down into (partial) strings, which are defined by the Represent existing elements of the data structure used be animals. For example, the decomposition leads to the part strings "abc", "aba", "bc" and "abc".
Ersetzt man nun die einzelnen Teilzeichenfolgen durch die Indizes derjenigen Elemente der verwendeten Datenstruktur, durch welche die betreffenden Teilzeichenfolgen repräsentiert werden, so gelangt man zu der kodierten Zeichenfolge 8758.Now replace the individual substrings with the Indices of those elements of the data structure used, by which the relevant substrings are represented the coded string 8758 is reached.
Die ursprüngliche Zeichenfolge könnte auch in die Teil zeichenfolgen "abc", "ab", "abc" und "abc" zerlegt und als 8488 kodiert werden.The original string could also be in the part strings "abc", "ab", "abc" and "abc" decomposed and as 8488 can be encoded.
Bei der Dekodierung wird in umgekehrter Reihenfolge verfah ren. Das heißt, die kodierte Zeichenfolge wird in die Indizes zer legt, aus denen sie zusammengesetzt wurde, und diese Indizes werden durch die Teilzeichenfolgen ersetzt, welche durch die Datenstrukturelemente repräsentiert werden, denen die betref fenden Indizes zugeordnet sind.The decoding is done in reverse order ren. That is, the encoded string is broken down into the indices from which it was composed and these indices are replaced by the substrings, which are replaced by the Data structure elements to which the are concerned are represented associated indexes.
Bezüglich weiterer Einzelheiten zur Komprimierung und Dekom primierung von Daten im allgemeinen und dem vorstehend be schriebenen Verfahren im besonderen wird auf die US 5 153 591 verwiesen.For more details on compression and decom priming of data in general and the above The method described in particular is directed to US 5,153,591 referred.
Die wie beschrieben durchgeführte Komprimierung und Dekompri mierung von Daten erweist sich im Ergebnis als effektiv und anpassungsfähig. Die Erfahrung zeigt jedoch andererseits, daß die Komprimierung und/oder die Dekomprimierung bisweilen sehr zeitaufwendig sein können. Dies kann sich insbesondere dann, wenn die jeweils zu erzeugenden bzw. erzeugten Daten schnell weiterverarbeitet werden können (müssen) oder wenn sehr große Datenmengen zu komprimieren und/oder zu dekomprimieren sind, als erheblicher Nachteil erweisen.The compression and decompression carried out as described The result of data proving to be effective and adaptable. On the other hand, experience shows that compression and / or decompression sometimes very much can be time consuming. This can be especially true if the data to be generated or generated quickly can (must) be further processed or if very large Data quantities to be compressed and / or decompressed, prove to be a significant disadvantage.
Der vorliegenden Erfindung liegt daher die Aufgabe zugrunde, das Verfahren gemäß dem Oberbegriff des Patentanspruchs 1 derart weiterzubilden, daß dadurch zu bewerkstelligende Kodierungen und/oder Dekodierungen mit maximaler Geschwindig keit effizient durchführbar sind.The present invention is therefore based on the object the method according to the preamble of claim 1 to develop in such a way that thereby to be accomplished Coding and / or decoding with maximum speed can be carried out efficiently.
Diese Aufgabe wird erfindungsgemäß durch die im kennzeichnen den Teil des Patentanspruchs 1 beanspruchten Merkmale gelöst.According to the invention, this object is characterized by the solved the part of claim 1 claimed features.
Demnach ist vorgesehen, daß eine Datenstruktur verwendet wird, deren Elemente zur Speicherung der Indizes einer Viel zahl von hierarchisch tiefer liegenden Elementen ausgelegt sind.Accordingly, it is provided that a data structure is used is, whose elements for storing the indices a lot number of hierarchically lower-lying elements are.
Dadurch kann ohne Auswertung der einem momentan ausgewerteten Datenstrukturelement gegebenenfalls untergeordneten Daten strukturelemente festgestellt werden, ob und gegebenenfalls welche Datenstrukturelemente dem momentan ausgewerteten Datenstrukturelement untergeordnet sind und welche Zeichen diesen untergeordneten (hierarchisch tiefer liegenden) Daten strukturelementen zugeordnet sind. Die Existenz und der Index bzw. das Nichtvorhandensein eines Datenstrukturelements, wel ches eine vorbestimmte Zeichenfolge repräsentiert, kann folg lich in einer minimalen Anzahl von Überprüfungsschritten er mittelt werden.As a result, the one currently being evaluated can be evaluated without evaluation Data structure element possibly subordinate data structural elements are determined whether and if necessary which data structure elements the currently evaluated Data structure element are subordinate and what characters this subordinate (hierarchically lower) data are assigned to structural elements. The existence and the index or the absence of a data structure element, which ches represents a predetermined string, can follow in a minimal number of verification steps be averaged.
Insbesondere kann das beim beschriebenen Stand der Technik erforderliche und in einer vorgegebenen Reihenfolge durch zuführende Durchsuchen der untergeordneten Datenstruktur elemente entfallen. In particular, this can be the case with the prior art described required and in a predetermined order performing searches of the child data structure elements are eliminated.
Es wurde mithin ein Verfahren gefunden, durch welches Kodie rungen und/oder Dekodierungen mit maximaler Geschwindigkeit effizient durchführbar sind.A method was therefore found by which Kodie Posts and / or decodings at maximum speed can be carried out efficiently.
Vorteilhafte Weiterbildungen der Erfindung sind Gegenstand der Unteransprüche.Advantageous developments of the invention are the subject of subclaims.
Die Erfindung wird nachfolgend anhand eines Ausführungsbei spiels unter Bezugnahme auf die Zeichnung näher erläutert. Es zeigenThe invention is illustrated below with the aid of an embodiment game explained with reference to the drawing. It demonstrate
Fig. 1 den prinzipiellen Aufbau einer zur Durchführung des erfindungsgemäßen Verfahrens geeigneten Datenstruk tur, Fig. 1 tur the basic structure of an apparatus suitable for carrying out the method according to the invention structural data,
Fig. 2 den Aufbau einer zur Komprimierung und Dekomprimie rung einer gegebenen Zeichenfolge nach dem erfin dungsgemäßen Verfahren angelegten Datenstruktur, und Fig. 2 shows the structure of a compression and Dekomprimie tion of a given string after the OF INVENTION The method to the invention the applied data structure, and
Fig. 3 den Aufbau einer zur Komprimierung und Dekomprimie rung einer gegebenen Zeichenfolge nach einem herkömm lichen Verfahren angelegten Datenstruktur. Fig. 3 shows the structure of a compression and Dekomprimie tion of a given string after a herkömm supervisory procedures applied data structure.
Das im folgenden näher beschriebene Verfahren ist ein zum Kodieren und Dekodieren von Daten geeignetes Verfahren, wobei die Art und der Umfang des Kodierens und des Dekodierens, das mit dem Kodieren und/oder dem Dekodieren verfolgte Ziel (Komprimierung/Dekomprimierung, Verschlüsselung/Entschlüsse lung etc.) sowie die Art und der Umfang der zu kodierenden oder dekodierenden Daten grundsätzlich keinen Einschränkungen unterworfen sind.The method described in more detail below is a Encoding and decoding data suitable method, wherein the type and scope of coding and decoding that goal pursued with coding and / or decoding (Compression / decompression, encryption / decisions lung etc.) and the type and scope of the encoded or decoding data basically no restrictions are subject.
Das Kodieren und Dekodieren nach dem erfindungsgemäßen Ver fahren erfolgt wie beim herkömmlichen Verfahren unter Verwen dung von baumartig angelegten Datenstrukturen, deren über zu geordnete Indizes ansprechbaren Elemente jeweils vorbestimmte Daten repräsentieren.The coding and decoding according to the Ver driving takes place as in the conventional method with use formation of tree-like data structures, whose over to Ordered indexes of accessible elements each predetermined Represent data.
Bei den Daten, die durch die jeweiligen Datenstrukturelemente repräsentiert werden, kann es sich um beliebig formatierte und beliebig umfangreiche Daten beliebiger Herkunft und be liebigen Inhalts handeln.In the case of the data generated by the respective data structure elements can be represented in any formatted and any amount of data of any origin and be act content.
Von den besagten Datenstrukturen ist eine erste in einer Kodiereinheit, und eine mit der ersten Datenstruktur iden tische zweite Datenstruktur in einer Dekodiereinheit vor gesehen.A first of these data structures is in one Coding unit, and one with the first data structure table second data structure in a decoding unit seen.
Die Kodiereinheit und die Dekodiereinheit können Bestandteil beliebiger Vorrichtungen sein. Sie werden insbesondere (aber bei weitem nicht ausschließlich) in DFÜ (Datenfernübertragungs)-Einrichtungen vorgesehen sein.The coding unit and the decoding unit can be a component any devices. You will in particular (but by far not exclusively) in remote data transmission (data transmission) facilities be provided.
Beim Kodieren werden die zu kodierenden Daten in mehr oder weniger umfangreiche, gleich oder unterschiedlich große Teile aufgespalten, und diese Datenteile werden unter Nachschlagen in der in der Kodiereinheit verfügbaren Datenstruktur durch die Indizes der die betreffenden Datenteile repräsentierenden Datenstrukturelemente ersetzt.When encoding, the data to be encoded is divided into more or less extensive parts of the same or different sizes split up, and these pieces of data are looked up in the data structure available in the coding unit the indices of the data parts concerned Data structure elements replaced.
Umgekehrt werden beim Dekodieren die kodierten Daten in die Indizes, aus denen sie zusammengesetzt wurden, aufgespalten, und diese Indizes werden unter Nachschlagen in der in der Dekodiereinheit verfügbaren Datenstruktur durch die Daten er setzt, welche durch die über die jeweiligen Indizes ansprech baren Datenstrukturelemente repräsentiert werden. Hierzu wer den, wie aus einem später noch beschriebenen praktischen Bei spiel ersichtlich ist, ausgehend von dem durch einen jeweili gen Index bezeichneten Datenstrukturelement (bis zum Errei chen des hierarchisch in der obersten Ebene liegenden Wurzel elements) die dem betreffenden Datenstrukturelement unmittelbar oder mittelbar übergeordneten Datenstrukturelemente ermittelt.Conversely, when decoding the encoded data in the Indexes from which they were composed, and these indices are looked up in the in the Decoding unit available data structure through the data he sets which appeals through the respective indices data structure elements can be represented. About who the, as from a practical case described later game can be seen, starting from that by a respective Data structure element designated by index (until achievement the hierarchical root at the top level elements) the data structure element concerned directly or indirectly parent Data structure elements determined.
Die vorstehend bereits erwähnten Datenstrukturelemente ent halten wie die Datenstrukturelemente der herkömmlichen Daten strukturen eine Reihe von diese charakterisierenden Einträ gen, wobei die Einträge dabei wiederum jeweils aus einem dem betreffenden Datenstrukturelement zugeordneten Symbol und einer Reihe von auf benachbarte Datenstrukturelemente zei genden Zeigern bestehen.The data structure elements already mentioned above ent hold like the data structure elements of conventional data structure a number of these characterizing entries gene, the entries in turn each from a symbol associated with the relevant data structure element and a number of adjacent data structure elements the relevant pointers.
Zu den den jeweiligen Datenstrukturelementen zugeordneten Symbolen ist anzumerken, daß es sich dabei um beliebig forma tierte und beliebig umfangreiche Daten beliebiger Herkunft und beliebigen Inhalts handeln kann.To the assigned to the respective data structure elements It should be noted that symbols are any form tated and any amount of data of any origin and can trade any content.
Jedem der Datenstrukturelemente ist auch wiederum ein Index zugeordnet, über welchen auf dieses gezielt zugegriffen wer den kann.Each of the data structure elements is also an index assigned, via which it is specifically accessed that can.
Bis hierher besteht zwischen den herkömmlichen und den erfin dungsgemäßen Datenstrukturen weitgehend Übereinstimmung.So far there is between the conventional and the invented data structures according to the invention largely match.
Unterschiedlich ist jedoch die Verknüpfung der einzelnen Datenstrukturelemente untereinander, was sich in der Anzahl und der Bedeutung der für die jeweiligen Datenstruktur elemente eingetragenen bzw. einzutragenden Zeiger bemerkbar macht.However, the link between the individual is different Data structure elements among themselves, which is reflected in the number and the importance of that for the respective data structure noticeable elements entered or to be entered makes.
Anders als bei der herkömmlichen Datenstruktur werden nur noch mit "P" bezeichnete Parent-Zeiger und mit "C" bezeich nete Child-Zeiger verwendet, wobei jedes Datenstrukturelement einen Parent-Zeiger P und eine vorbestimmte Vielzahl von Child-Zeigern C enthält.Unlike the conventional data structure, only Parent pointers still labeled "P" and labeled "C" nete child pointer used, each data structure element a parent pointer P and a predetermined plurality of Child pointers C contains.
Der Parent-Zeiger beinhaltet wiederum den Index des Daten strukturelements, dem das betreffende Datenstrukturelement untergeordnet ist, und die Child-Zeiger beinhalten die Indi zes der Elemente, die dem betreffenden Datenstrukturelement untergeordnet sind.The parent pointer in turn contains the index of the data structure element to which the relevant data structure element is subordinate, and the child pointers contain the indi zes of the elements belonging to the data structure element concerned are subordinate.
Sämtliche Datenstrukturelemente, die hierarchisch unmittelbar unter einem betreffenden Datenstrukturelement liegen, sind mit diesem direkt über Parent- und Child-Zeiger gekoppelt. Wie später noch genauer beschrieben werden wird, kann dadurch sehr schnell ermittelt werden, ob, wieviele und welche Daten strukturelemente einem betreffenden Datenstrukturelement untergeordnet sind.All data structure elements that are hierarchically immediate are below a relevant data structure element coupled with this directly via parent and child pointers. As will be described in more detail later, this can it can be determined very quickly whether, how much and which data structure elements of a relevant data structure element are subordinate.
Der prinzipielle Aufbau einer derart veränderten Datenstruk tur ist in Fig. 1 veranschaulicht.The basic structure of such a modified data structure is illustrated in FIG. 1.
Die Datenstruktur gemäß Fig. 1 weist eine Tiefe von 3 auf. Das heißt, einem unter dem hierarchisch am höchsten stehenden Ele ment (Wurzel-Element 11) ist eine Vielzahl von bis zu y hierarchisch tiefer liegenden untergeordneten Datenstruktur elementen (Child-Elemente 21, 22 . . . 2y) eingehängt, und unter diesen Child-Elementen 21, 22 . . . 2y ist wiederum je weils eine Vielzahl von bis zu y hierarchisch noch tiefer liegenden untergeordneten Datenstrukturelementen (Child-Elemente 31, 32, . . . 3y) eingehängt bzw. einhängbar.The data structure shown in FIG. 1 has a depth of 3. This means that one of the hierarchically highest element (root element 11 ) has a large number of subordinate data structure elements (child elements 21 , 22 ... 2 y) that are up to y hierarchically lower, and below this child -Elements 21 , 22 . . . 2 y, in turn, each has a plurality of subordinate data structure elements (child elements 31 , 32 ,... 3 y) which are hierarchically even deeper than that.
Den jeweils bis zu y Child-Elementen, die unter das Wurzel-Element oder ein übergeordnetes Child-Element eingehängt sind, sind jeweils unterschiedliche Symbole zugeordnet. Datenstrukturelemente, denen unterschiedliche Symbole zu geordnet sind, werden im folgenden als Datenstrukturelemente unterschiedlichen Typs bezeichnet; Datenstrukturelementen des selben Typs sind die selben Symbole zugeordnet.The up to y child elements each, under the root element or a parent child element different symbols are assigned. Data structure elements that have different symbols are classified below as data structure elements referred to different types; Data structure elements of the the same symbols are assigned to the same type.
Anders als bei der eingangs beschriebenen herkömmlichen Datenstruktur sind die einem jeweiligen Datenstrukturelement untergeordneten Datenstrukturelemente jeweils direkt (und nicht wie bisher teilweise nur mittelbar über andere unter geordnete Datenstrukturelemente) am betreffenden Datenstruk turelement eingehängt.Unlike the conventional one described at the beginning Data structures are those of a respective data structure element subordinate data structure elements each directly (and not, as previously, only indirectly through others below ordered data structure elements) on the relevant data structure door element hung.
Zur praktischen Realisierung dieser strukturell veränderten Datenstruktur werden die jeweiligen Datenstrukturelement-Einträge wie folgt modifiziert:For the practical realization of this structurally changed Data structure are the respective data structure element entries modified as follows:
Unverändert gegenüber bisherigen Datenstrukturelement-Einträ gen umfassen die Einträge der neuartigen Datenstrukturelemen te den (auf das hierarchisch übergeordnete Datenstrukturele ment) zeigenden Parent-Zeiger P und das dem Datenstrukturele ment zugeordnete Symbol (den Typ des Datenstrukturelements).Unchanged compared to previous data structure element entries conditions include the entries of the new data structure elements te (on the hierarchically higher data structure Parent pointer P showing the data structure element icon (the type of the data structure element).
Anders als bei bisherigen Datenstrukturelement-Einträgen sind keine Rechts-Zeiger R mehr, dafür aber Platz zum Eintragen einer der Anzahl der möglichen Typen von Datenstrukturelemen ten entsprechenden Anzahl von den Abwärts-Zeigern D entspre chenden Child-Zeigern C1, C2 . . . Cy reserviert.Different from previous data structure element entries no more right hand R, but space for entry one of the number of possible types of data structure elements corresponds to the corresponding number of the downward pointers D. Child pointers C1, C2. . . Cy reserved.
Die Vielzahl der Child-Zeiger C1, C2 . . . Cy ermöglicht es, daß sämtliche Datenstrukturelemente, die einem Datenstruktur element untergeordnet sind, in dem betreffenden Datenstruk turelement aufgelistet bzw. registriert werden können.The multitude of child pointers C1, C2. . . Cy enables that all data structure elements that make up a data structure element are subordinate in the data structure concerned can be listed or registered.
Die Liste der Child-Zeiger C1, C2 . . . Cy ist vorzugsweise so angeordnet bzw. wird so beschrieben und verwaltet, daß eine feste Zuordnung zwischen dem Typ des untergeordneten Daten strukturelements und der Position des auf dieses Datenstruk turelement zeigenden Child-Zeigers innerhalb der Child-Zeiger-Liste besteht.The list of child pointers C1, C2. . . Cy is preferably like this arranged or is described and managed so that a fixed association between the type of child data structure element and the position of the data structure on this child pointer within the child pointer list consists.
Diese Zuordnung ist vorzugsweise für alle Datenstrukturele mente gleich. Das heißt, daß beispielsweise ein untergeordnetes Datenstrukturelement vom Typ in durch einen Eintrag an der n-ten Stelle in der Child-Zeiger-Liste des übergeordneten Datenstrukturelements registriert wird, wobei der Einfachheit halber in gleich n ist.This assignment is preferably for all data structures right now. This means that, for example, a subordinate Data structure element of type in by an entry on the nth position in the child pointer list of the parent Data structure element is registered, the simplicity for the sake of being equal to n.
Sind die Child-Zeiger nach dem Typ der durch diese bezeichne ten Datenstrukturelemente sortiert, so gestaltet sich die Suche und das Auffinden von bestimmten untergeordneten Daten struktureleinenten besonders einfach und schnell durchführbar.Are the child pointers after the type that they denote sorted data structure elements, so the Search and find certain subordinate data Structural elements can be carried out particularly easily and quickly.
Unabhängig davon lassen sich das Vorhandensein und der Index bzw. das Fehlen eines eine bestimmte Symbolkette repräsentie renden Datenstrukturelements jeweils von dem dem gesuchten Datenstrukturelement übergeordneten Datenstrukturelement aus ermitteln. Soll beispielsweise in Erfahrung gebracht werden, ob einem Datenstrukturelement ein Datenstrukturelement vom Typ x untergeordnet ist, so kann dies ganz einfach dadurch bewerkstelligt werden, daß an derjenigen Stelle der Child-Zeiger-Liste des übergeordneten Datenstrukturelements, welche für Child-Zeiger auf untergeordnete Datenstrukturelemente vom Typ x reserviert ist, das Vorhandensein oder Fehlen eines entsprechenden Eintrags überprüft wird.Regardless of this, the existence and the index or the absence of a certain symbol chain renden data structure element in each case from the searched for Data structure element parent data structure element determine. For example, if you want to find out whether a data structure element is a data structure element from Type x is subordinate, so this can easily be done be accomplished at that point in the child pointer list of the parent data structure element, which for child pointers to subordinate data structure elements from Type x is reserved, the presence or absence of one corresponding entry is checked.
Auf diese Weise können zu kodierende Symbolketten sehr schnell mit den Symbolketten, welche durch die Datenstruk turelemente einen vorhandenen Datenstruktur repräsentiert werden, verglichen und gegebenenfalls entsprechend kodiert werden.In this way, symbol strings to be encoded can be very quickly with the symbol chains, which through the data structure represents an existing data structure are compared and, if necessary, coded accordingly will.
Eine effiziente Möglichkeit zur Reduzierung des Speicher platzbedarfes besteht darin, daß diejenigen Datenstruktur elemente, denen keine Datenstrukturelemente mehr untergeord net sind, aus der Datenstruktur gelöscht werden; die Wurzel-Elemente der Datenstruktur dürfen dabei jedoch nicht gelöscht werden.An efficient way to reduce memory space requirement is that those data structure elements to which no more data structure elements are subordinate net are deleted from the data structure; the root elements the data structure may not be deleted will.
Um das Löschen derartiger Datenstrukturelemente aus der er zeugten Datenstruktur schnell und einfach durchführen zu kön nen, wird vorzugsweise einhergehend mit dem Erstellen der Datenstruktur eine Liste erzeugt, in welcher die Indizes der Datenstrukturelemente aufgelistet sind, denen keine weiteren Datenstrukturelemente mehr unter- bzw. nachgeordnet sind. Eine derartige Liste kann erstellt werden, indem die Indizes von neu erzeugten Child-Elementen dort eingetragen, und die Indizes der Elemente, an die ein Child-Element angehängt wird, aus der Liste gelöscht werden.To delete such data structure elements from the created data structure quickly and easily NEN, is preferably accompanied by the creation of the Data structure creates a list in which the indices of the Data structure elements are listed, which no further Data structure elements are more subordinate or subordinate. Such a list can be created by the indexes of newly created child elements entered there, and the Indexes of the elements to which a child element is attached will be deleted from the list.
Zur Verdeutlichung des Unterschiedes zwischen dem vorstehend beschriebenen erfindungsgemäßen Verfahren und dem eingangs beschriebenen herkömmlichen Verfahren wird abschließend die Kodierung der Zeichenfolge "abcababcabc" erläutert.To illustrate the difference between the above described inventive method and the introduction The conventional method described is finally the Coding of the string "abcababcabc" explained.
Die Datenstruktur, mit Hilfe welcher die Kodierung durchge führt werden soll, ist in Fig. 2 veranschaulicht. Wie aus der Fig. 2 ersichtlich ist, enthält die dort gezeigte Daten struktur Datenstrukturelemente 1 bis 8, wobei die Anzahl der Datenstrukturelemente, die den jeweiligen Datenstrukturele menten zugeordneten Indizes, die den jeweiligen Datenstruk turelementen zugeordneten Zeichen (deren Typ) und die durch die jeweiligen Datenstrukturelemente repräsentierten Zeichen folgen identisch mit den entsprechenden Parametern der zur Durchführung des herkömmlichen Verfahrens verwendeten Daten struktur gemäß Fig. 3 sind.The data structure with which the coding is to be carried out is illustrated in FIG. 2. As can be seen from FIG. 2, the data structure shown there contains data structure elements 1 to 8 , the number of data structure elements, the indices assigned to the respective data structure elements, the characters assigned to the respective data structure elements (their type) and those by the respective Characters representing data structure elements follow identical to the corresponding parameters of the data structure according to FIG. 3 used to carry out the conventional method.
Da den Datenstrukturelementen im betrachteten Beispiel "nur" entweder das Zeichen "a" (Datenstrukturelement Typ a) oder das Zeichen "b" (Datenstrukturelement Typ b) oder das Zeichen "c" (Datenstrukturelement Typ c) zugeordnet werden kann, sind die Datenstruktureleinente zum Speichern von drei Child-Zeigern (Ca, Cb und Cc) ausgelegt; mehr als drei Child-Elemente kann ein Datenstruktureleinent unter den gegebenen Umständen nicht haben.Since the data structure elements in the example considered "only" either the character "a" (data structure element type a) or the character "b" (data structure element type b) or the character "c" (data structure element type c) can be assigned the data structure elements for storing three child pointers (Ca, Cb and Cc) designed; more than three child elements can be a data structure under the given circumstances not have.
Eine Zusammenstellung der (den jeweiligen Bezugszeichen ent sprechenden) Indizes der Datenstrukturelemente, der den be treffenden Datenstrukturelementen zugeordneten Zeichen (der Typen der Datenstrukturelemente), der den betreffenden Daten strukturelementen zugeordneten Zeiger und der durch die be treffenden Datenstrukturelemente repräsentierten Zeichenfol gen ist aus der nachfolgenden Tabelle ersichtlich:A compilation of the (the respective reference numerals speaking) indexes of the data structure elements, the be characters associated with the corresponding data structure elements (the Types of data structure elements), the data concerned pointers assigned to structural elements and by the be corresponding data structure elements represented character string is shown in the table below:
Das Lesen und Auswerten dieser Tabelle erfolgt vorzugsweise wie nachfolgend anhand des Datenstrukturelements, dem der Index 4 zugeordnet ist, erläutert wird. Dem betreffenden Datenstrukturelement ist das Zeichen "b" zugeordnet (2. Spal te zu Index 4). Es ist dem Element mit dem Index 1 unter geordnet (3. Spalte zu Index 4), welches seinerseits dem Zei chen "a" entspricht (2. Spalte zu Index 1) und keinem überge ordneten Element untergeordnet ist, also ein sogenanntes Wurzelelement darstellt (3. Spalte zu Index 1), wodurch es (das Element mit dem Index 4) die Zeichenfolge "ab" repräsen tiert (7. Spalte zu Index 4). Dem Element mit dem Index 4 sind die Elemente mit dem Index 7 (4. Spalte zu Index 4) und mit dem Index 8 (6. Spalte zu Index 4) untergeordnet, wobei das Element mit dem Index 7 dem Zeichen "a" entspricht (weil der Child-Zeiger auf dem für Ca reservierten Listenplatz steht) und folglich die Zeichenfolge "aba" repräsentiert und wobei das Element mit dem Index 8 dem Zeichen "c" entspricht (weil der Child-Zeiger auf dem für Cc reservierten Listen platz steht) und folglich die Zeichenfolge "abc" repräsen tiert.This table is preferably read and evaluated as follows based on the data structure element to which the Index 4 is assigned is explained. The one in question The character "b" is assigned to the data structure element (2nd column to index 4). It is the element with the index 1 below ordered (3rd column to index 4), which in turn belongs to the Zei Chen "a" corresponds (2nd column to index 1) and none subordinate element, i.e. a so-called Represents root element (3rd column to index 1), making it (the element with index 4) represent the string "ab" (7th column to index 4). The element with index 4 are the elements with index 7 (4th column to index 4) and subordinate to index 8 (6th column to index 4), whereby the element with index 7 corresponds to the character "a" (because the child pointer on the list place reserved for Ca. stands) and consequently represents the string "aba" and where the element with index 8 corresponds to the character "c" (because the child pointer on the list reserved for Cc space) and therefore represent the string "abc" animals.
Will man die vorstehend bereits genannte Zeichenfolge "abcababcabc" komprimieren, so muß diese Zeichenfolge wie beim herkömmlichen Verfahren zunächst in (Teil-)Zeichenfolgen zerlegt werden, die durch die vorhandenen Elemente der ver wendeten Datenstruktur repräsentiert werden. Die Zerlegung führt beispielsweise zu den Teilzeichenfolgen "abc", "aba", "bc" und "abc".If you want the string already mentioned above To compress "abcababcabc", this string must be like in the conventional method, first in (partial) strings be broken down by the existing elements of ver used data structure are represented. The disassembly leads to the substrings "abc", "aba", "bc" and "abc".
Ersetzt man nun die einzelnen Teilzeichenfolgen durch die Indizes derjenigen Elemente der verwendeten Datenstruktur, durch welche die betreffenden Teilzeichenfolgen repräsentiert werden, so gelangt man zu der kodierten Zeichenfolge 8758.Now replace the individual substrings with the Indices of those elements of the data structure used, by which the relevant substrings are represented the coded string 8758 is reached.
Die ursprüngliche Zeichenfolge könnte auch in die Teil zeichenfolgen "abc", "ab", "abc" und "abc" zerlegt und als 8488 kodiert werden.The original string could also be in the part strings "abc", "ab", "abc" and "abc" decomposed and as 8488 can be encoded.
Um anhand der in der Fig. 2 gezeigten Datenstruktur fest stellen zu können, ob die bei der Zerlegung entstehenden Teilzeichenfolgen durch eines der Datenstruktureleinente re präsentiert wird und welcher Index dem betreffenden Daten strukturelement zugeordnet ist, muß nicht zu dem betreffende Datenstrukturelement selbst gesprungen werden; die begehrten Informationen können bereits durch Auswertung der Einträge in dem dem betreffenden Datenstrukturelement übergeordneten Datenstrukturelement gewonnen werden.In order to be able to determine on the basis of the data structure shown in FIG. 2 whether the substrings resulting from the decomposition is presented by one of the data structure elements and which index is assigned to the relevant data structure element, it is not necessary to jump to the relevant data structure element itself; the desired information can already be obtained by evaluating the entries in the data structure element superordinate to the data structure element in question.
Die dadurch gegenüber dem herkömmlichen Verfahren erzielbaren Vorteile treten bei der Kodierung der Teilzeichenfolge "abc" besonders deutlich hervor. Während beim erfindungsgemäßen Verfahren schon bei der Auswertung des Datenstrukturelements mit dem Index 4 zu dem Ergebnis kommen kann, daß die Zeichen folge "abc" durch das Datenstrukturelement mit dem Index 8 repräsentiert wird, muß beim herkömmlichen Verfahren zuerst noch über das Datenstrukturelement mit dem Index 7 zum Daten strukturelement mit dem Index 8 gesprungen werden, um schließlich unter Auswertung der dortigen Einträge zu dem selben Ergebnis kommen zu können.The achievable compared to the conventional method Advantages occur when encoding the substring "abc" particularly clear. While in the invention Procedure already when evaluating the data structure element with the index 4 can come to the conclusion that the characters follow "abc" through the data structure element with index 8 is represented must first in the conventional method via the data structure element with index 7 for data structure element with the index 8 can be jumped to finally, evaluating the entries there for the the same result.
Es wurde mithin ein Verfahren gefunden, durch welches zu be werkstelligende Kodierungen und/oder Dekodierungen mit maxi maler Geschwindigkeit effizient durchführbar sind.A method has therefore been found by which to be factory coding and / or decoding with maxi speed can be carried out efficiently.
Claims (7)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE1997102553 DE19702553C1 (en) | 1997-01-24 | 1997-01-24 | Data encoding and decoding method |
TW86119582A TW381375B (en) | 1997-01-24 | 1997-12-23 | Method to the coding and decoding of data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE1997102553 DE19702553C1 (en) | 1997-01-24 | 1997-01-24 | Data encoding and decoding method |
Publications (1)
Publication Number | Publication Date |
---|---|
DE19702553C1 true DE19702553C1 (en) | 1997-11-13 |
Family
ID=7818273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE1997102553 Expired - Lifetime DE19702553C1 (en) | 1997-01-24 | 1997-01-24 | Data encoding and decoding method |
Country Status (2)
Country | Link |
---|---|
DE (1) | DE19702553C1 (en) |
TW (1) | TW381375B (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1227419A1 (en) * | 2001-01-29 | 2002-07-31 | Vista, New Media GmbH | Simulating intelligent communication reactions |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5153591A (en) * | 1988-07-05 | 1992-10-06 | British Telecommunications Public Limited Company | Method and apparatus for encoding, decoding and transmitting data in compressed form |
-
1997
- 1997-01-24 DE DE1997102553 patent/DE19702553C1/en not_active Expired - Lifetime
- 1997-12-23 TW TW86119582A patent/TW381375B/en active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5153591A (en) * | 1988-07-05 | 1992-10-06 | British Telecommunications Public Limited Company | Method and apparatus for encoding, decoding and transmitting data in compressed form |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1227419A1 (en) * | 2001-01-29 | 2002-07-31 | Vista, New Media GmbH | Simulating intelligent communication reactions |
Also Published As
Publication number | Publication date |
---|---|
TW381375B (en) | 2000-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1472819B1 (en) | Message analysis device and method for displaying messages | |
DE2264090C3 (en) | Data compression | |
DE2614916C2 (en) | Code conversion converter | |
DE3911465C2 (en) | Process for the automatic configuration of technical systems from components | |
DE60118973T2 (en) | METHOD FOR INQUIRING A STRUCTURE OF COMPRESSED DATA | |
DE10196890B4 (en) | Method for performing Huffman decoding | |
DE60107964T2 (en) | DEVICE FOR CODING AND DECODING STRUCTURED DOCUMENTS | |
DE3545125C2 (en) | ||
EP1587244A1 (en) | Method of configuring a filter device for a data stream comprising frames, and protocol tester | |
DE19625157A1 (en) | Data compression and expansion method | |
DE102012216321A1 (en) | Method for designing protocol i.e. HTTP protocol, for executing network data exchange, involves determining protocol format of positions of notifications with respect to field pairs and semantic features of semantic association | |
DE19702553C1 (en) | Data encoding and decoding method | |
DE10048478C2 (en) | Method of accessing a storage unit when searching for substrings | |
EP4095697A1 (en) | Method for characterizing the operating state of a computer system | |
EP0856176A1 (en) | Database management system and data transmission process | |
EP0945705B1 (en) | Recognition system | |
WO1998033280A1 (en) | Method for coding and decoding data | |
EP0838773A1 (en) | Method and apparatus for handling the serial numbers of multiple components of a product | |
EP0417854B1 (en) | Method for recognition of N different successions of words in a speech signal | |
DE4435457C2 (en) | Process for archiving process data | |
DE10313910A1 (en) | Method for determining deviations of an end system message from a reference message | |
EP0395906A2 (en) | Data compression method for street names | |
DE4119717A1 (en) | DOCUMENT LAYOUT PROCESSING METHOD AND DEVICE FOR IMPLEMENTING IT | |
EP0972259A1 (en) | Method for reducing required memory capacity and creation of a database | |
EP0572749A1 (en) | Database in an electronic data processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8100 | Publication of the examined application without publication of unexamined application | ||
D1 | Grant (no unexamined application published) patent law 81 | ||
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: INFINEON TECHNOLOGIES AG, 85579 NEUBIBERG, DE |
|
8327 | Change in the person/name/address of the patent owner |
Owner name: LANTIQ DEUTSCHLAND GMBH, 85579 NEUBIBERG, DE |
|
R081 | Change of applicant/patentee |
Owner name: LANTIQ DEUTSCHLAND GMBH, DE Free format text: FORMER OWNER: INFINEON TECHNOLOGIES AG, 85579 NEUBIBERG, DE Effective date: 20110325 |
|
R071 | Expiry of right |