DE102006028469B4 - Adaptives Quantisiertes Codierungsverfahren - Google Patents
Adaptives Quantisiertes Codierungsverfahren Download PDFInfo
- Publication number
- DE102006028469B4 DE102006028469B4 DE200610028469 DE102006028469A DE102006028469B4 DE 102006028469 B4 DE102006028469 B4 DE 102006028469B4 DE 200610028469 DE200610028469 DE 200610028469 DE 102006028469 A DE102006028469 A DE 102006028469A DE 102006028469 B4 DE102006028469 B4 DE 102006028469B4
- Authority
- DE
- Germany
- Prior art keywords
- length
- codeword
- symbol
- symbols
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000003044 adaptive effect Effects 0.000 title claims abstract description 13
- 230000003068 static effect Effects 0.000 description 6
- 238000007906 compression Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000013139 quantization Methods 0.000 description 3
Classifications
-
- 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/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Verfahren für die adaptive präfix-freie Codierung eines Datenstroms über einem Alphabet aus n Elementen mit zwei Parameter p und q, wobei p größer als q ist, gekennzeichnet dadurch, dass die Codewortlängen aufgrund von der Länge des bereits codierten Teils des Textes geteilt durch Parameter q und aufgerundet, weiterhin quantisierte Textlänge genannt, sowie der Häufigkeit des Symbols im bereits codierten Teil des Textes geteilt durch Parameter q und abgerundet, weiterhin quantisierte Häufigkeit genannt, bestimmt werden, und weist auf:
– eine Liste R von bereits codierten Symbolen
– ein Verfahren A für die Aktualisierung der Länge des codierten Symbols
– ein Verfahren B, das den Code modifiziert, nachdem die Länge eines Symbols geändert wurde.
– eine Liste R von bereits codierten Symbolen
– ein Verfahren A für die Aktualisierung der Länge des codierten Symbols
– ein Verfahren B, das den Code modifiziert, nachdem die Länge eines Symbols geändert wurde.
Description
- Unsere Erfindung ist ein adaptives Verfahren für die präfixfreie Codierung. Die präfixfreie Codierung ist eine der am weitesten verbreiteten Kompressionsmethoden und findet in vielen Kompressionsprogrammen und Dateiformaten (z. B. gzip, JPEG, PNG usw.) ihre Anwendung.
- Das Problem der statischen präfixfreien Codierung kann wie folgt formuliert werden: Gegeben ist ein Datenstrom S = s1...sm über dem Alphabet a1, a2, ..., an. Jedem Symbol ai ∈ A wird ein Codewort ci zugewiesen, so dass die Gesamtcodierungslänge möglichst klein ist. Man unterscheidet zwischen der statischen und der adaptiven präfixfreien Codierung. Bei der statischen Codierung wird der Datenstrom zweimal gelesen. Beim ersten Durchlauf durch die Daten werden die Häufigkeiten von Symbolen ermittelt. Wenn die Symbolhäufigkeiten bekannt sind, wird ein Code erzeugt. Beim zweiten Durchlauf werden die Symbole codiert. Ein optimaler statischer präfixfreier Code kann mit dem klassischen Huffman-Algorithmus erzeugt werden. Um den statischen Code zu erzeugen, benötigen die statische Verfahren die Häufigkeiten von allen Symbolen. Dies bedeutet, dass der Text S zweimal gelesen werden muss. Außerdem muss die Information über den Code mit dem codierten Datenstrom gespeichert werden.
- Bei der adaptiven Codierung benutzt man den (optimalen) Code für den Datenstrom s1s2...si-1, um das Symbol si zu codieren. Der Vorteil von adaptiven Verfahren ist, dass die Datei nur einmal gelesen wird. Die Algorithmen für adaptive Huffman Codierung wurden z. B. von Faller, Gallager und Knuth sowie vom Vitter entwickelt. Die Laufzeit von diesen Algorithmen ist proportional zu M, wobei M die Anzahl der Bits in dem codierten Datenstrom ist.
- Dieses Patent beschreibt ein Verfahren mit einer Laufzeit, die linear in m ist, wobei m die Anzahl der Symbole im Datenstrom S ist. Das vorgestellte Verfahren garantiert außerdem eine gute obere Schranke für die Länge des codierten Datenstroms.
- Im folgenden Abschnitt beschreiben wir die allgemeine Struktur von adaptiven Kompressionsverfahren. Im Abschnitt 3 beschreiben wir kanonische Codes. Unsere Erfindung wird in den Abschnitten 4 und 5 erklärt.
- 1 Adaptive Verfahren
- Wir bezeichnen mit m die Länge des zu codierenden Datenstroms S = s1s2...sm und M bezeichnet die Codierungslänge, d. h. M ist die Anzahl der Bits, die wir benötigen, um den Datenstrom S zu codieren. Wir bezeichnen mit occ(a, i) die Häufigkeit des Symbol a in s1s2...si. Wir bezeichnen mit occ(a) = occ(a, m) die Häufigkeit des Symbols a in S. Mit (NYT) bezeichnen wir ein spezielles Symbol, das sich von allen Symbolen in S unterscheidet. Ein adaptives Codierungsverfahren besteht aus folgenden Schritten:
- 1. Wir erzeugen einen präfixfreien Code für (NYT)s1s2...si-1. Der Code für (NYT)s1s2...si-1 wird in der Regel dadurch erzeugt, dass man den Code für (NYT)s1s2...si-2 modifiziert. Dazu kann man z. B. den Algorithmus von Gallager, Faller und Knuth (siehe [1]–[3]) verwenden, oder das hier beschriebene Verfahren.
- 2. Falls das Symbol si bereits in s1s2...si-1 wenigstens einmal aufgetreten ist, wird das Codewort für si verwendet, um das Symbol si zu codieren.
- 3. Falls si zum ersten mal in S1...si vorkommt, wird das Codewort für das spezielle Symbol (NYT) ausgegeben, gefolgt von einer Binärdarstellung des Indizes von si. Das Symbol (NYT) wird verwendet, um anzugeben, dass das nächste Symbol ein ”neues” Symbol ist.
- Die Schritte 2 und 3 sind leicht zu implementieren. Unsere Erfindung beschäftigt sich hauptsächlich mit dem Schritt 1.
- 2 Vorherige Verfahren
- In diesem Abschnitt befassen wir uns mit anderen adaptiven Codierungsverfahren, die vor unserer Arbeit entwickelt wurden. Der so genannte FGK Algorithmus wurde unabhängig von Faller und Gallager entwickelt und von Knuth wesentlich verbessert. Dieser Algorithmus wird in den Arbeiten [1], [2] und [3] beschrieben. Der FGK Algorithmus ermöglicht uns, den optimalen Code für den bereits codierten Teil des Datenstroms (NYT)s1...si-1 aufrechtzuerhalten. Das Verfahren von Vitter [5] basiert ebenfalls darauf, dass man den optimalen Code für den (NYT)s1...si-1 aufrechterhält. Dadurch, dass man einen speziellen optimalen Code verwendet, wird in dem Verfahren von Vitter [5] eine bessere obere Schranke für die Länge des codierten Datenstroms erreicht. Beide Algorithmen ermitteln die Codewortlänge des nächsten zu codierenden Symbols anhand von Häufigkeiten von allen Symbolen in dem bereits codierten Teil des Textes.
- Ein weiteres relevantes Verfahren wurde von Turpin und Moffat entwickelt und wird in der Arbeit [4] beschrieben. Das Verfahren basiert darauf dass man den optimalen Code anhand von approximierten Häufigkeiten der Symbole ermittelt. Da in dem Verfahren von Turpin und Moffat ebenfalls ein optimaler Code benutzt wird, wird die Länge des nächsten zu codierenden Symbols anhand von approximierten Häufigkeiten von allen Symbolen ermittelt.
- In unserem Verfahren hängt die Länge des nächsten zu codierenden Symbols nur von der approximierten Häufigkeit dieses Symbols in dem bereits codierten Teil des Datenstroms und von der approximierten Länge des bereits codierten Teils des Datenstroms ab. Dies unterscheidet unseren Algorithmus von den Algorithmen, die in [1, 2, 3, 5, 4] beschrieben werden.
- Ein weiteres wichtiges Merkmal unseres Verfahrens besteht darin, dass in unserem Verfahren die Codewortlänge des nächsten zu codierenden Symbols anhand approximierten Häufigkeit und approximierten Länge des Textes ermittelt wird. Die Idee, approximierte Häufigkeiten anstatt exakten Häufigkeiten zu verwenden, wurde vorher nur in der Arbeit von Turpin und Moffat [4] verwendet. In ihrem Verfahren wird aber eine andere Approximationsformel verwendet: anstatt Symbolhäufigkeit f wird die größte Zahl f' < f verwendet, so dass f' = 2r/k für ein Parameter k und r eine beliebige ganze Zahl ist. In unserem Verfahren werden die Häufigkeit des Symbols und die Länge des Textes einfach durch Parameter q geteilt und abgerundet (quantisiert).
- 3 Kanonische Codes
- Kanonische Codes sind eine Klasse von präfix-freien Codes. Ein kanonischer Code hat die sog. numerical sequence property; Codewörter mit der gleichen Länge sind Binärdarstellungen von aufeinanderfolgenden ganzen Zahlen. Ein Beispiel von einem kanonischen Code kann man in der
1 sehen. - Sei lmax die maximale Codewortlänge, und sei ni, i = 1, ..., lmax, die Anzahl der Codewörter mit Länge i. Mit base[i] bezeichnen wir das erste (kleinste) Codewort der Länge i. Man kann base[i] nach der folgenden rekursiven Formel erzeugen: base[0] = 0, base[i] = (base[i – 1] + ni-1) × 2. Das j-te Codewort der Länge i ist die Binärdarstellung der Zahl base[i] + j – 1. Daher, falls die Länge l des Codewortes für das Symbol a und der Index von a unter allen Codewörtern der Länge l bekannt sind, kann man das Codewort für das Symbol a in konstante Zeit finden. Z. B. für den Code in
1 ist n1 = n2 = 0, n3 = 2, n4 = 6, und n5 = 8. Dann ist base[1] = base[2] = 0, base[3] = 0, base[4] = 4 und base[5] = 20. Das Codewort für das Symbol a6 ist das 4-te Codewort der Länge 4. Für a6 ist das Codewort also base[4] + (4 – 1) = 4 + 3 = 7 oder (0111)2 in Binärdarstellung. Somit ist der kanonische Code durch Parameter ni, i = 1, ..., lmax, eindeutig definiert. - 4 Codierung mit Quantisierung
- In unserem Verfahren werden die Codewortlängen (und Parameter ni) aufgrund der quantisierten Häufigkeiten der Symbole festgestellt. Sei occq(a, i) = ⌊occ(a, i)/q⌋ und Pq(i) = ⌈i/q⌉. Das Parameter q > 1 wird im folgenden Quantisierungsparameter genannt. Angenommen, dass der Datenstrom S1s2...si-1 bereits codiert wurde. Die Codewortlänge für das nächste Symbol si erfüllt die folgende Bedingung:
- Betrachten wir den Fall occ(si, i – 1 > q. Der Zähler des Bruchswird inkrementiert nachdem q neue Symbole codiert wurden. Wenn occq(si, i – 1) inkrementiert wurde, wird die Codewortlänge für das Symbol si eventuell geändert. Wenn dies der Fall ist, wird der Code modifiziert. Man kann das Quantisierungparameter q so wählen, dass der Code in konstanter amortisierter Zeit modifiziert werden kann. Der Nenner des Bruchswird inkrementiert, nachdem q beliebige Symbole codiert wurden. Falls aber Pq(i) inkrementiert wurde, können sich die Codewortlängen von mehreren Symbolen ändern. Um die Invariantezu erhalten, werden alle Symbole si in einer Liste R gespeichert. Nachdem q Symbole codiert wurden, werden die ersten q Symbole aus der Liste R entfernt. Für jedes entfernte Symbol ar wird seine Codewortlänge aktualisiert. Danach werden die q entfernten Symbole am Ende der Liste R eingefügt und der Code C wird entsprechend modifiziert. Man kann das Parameter q so wählen, dass der Code C in Zeit, die linear in q ist, aktualisiert werden kann (also in konstanter amortisierter Zeit).
- 5 Adaptives Quantisiertes Codierungsverfahren
- In diesem Abschnitt geben wir eine detaillierte Beschreibung des Verfahrens, mit dem man den quantisierten Code aktualisieren kann.
- Für jedes Symbol a speichern wir die Länge len(a) des Codewortes für a und den Index ind(a) des Codewortes für a unter allen Codewörtern mit der Länge len(a). Alle Symbole a mit occ(a, i) > 0 (alle Symbole, die in dem bereits codierten Teil des Textes wenigstens einmal vorkommen) werden in der Liste R gespeichert. Alle Symbole, deren Codewörter die Länge l haben, werden in einer Liste C[l] gespeichert.
- Falls die Codewortlänge von einem Symbol a von l1 auf l2 geändert wird, werden die folgenden Operationen durchgeführt. Sei ind(a) = i, sei a' das letzte Codewort der Länge l1. Der Index von a' wird von auf i geändert. Wir entfernen a' aus C[l1] und ersetzen a mit a' in C[l1], wird um 1 gesenkt. Somit wird a' zum i-ten Codewort mit der Länge l1 (d. h. das neue Codewort für a' ist nun das alte Codewort für a). Das neue Codewort für a ist das letzte Codewort mit der Länge l2. Wir setzen ind(a) auf inkrementieren und fügen a am Ende von C[l2] ein. Alle diese Operationen können schnell implementiert werden. Wenn die Werte von aktualisiert wurden, kann man das Array base[] aktualisieren. Zum Beispiel, betrachten wir den Code in der
1 und nehmen an, dass die Länge des Codewortes für das Symbol a6 auf 5 geändert wurde. Wir dekrementieren n4 und ersetzen a6 durch a8. Der Index von a8 wird auf 4 gesetzt (das neue Codewort für a8 ist (0111)2). Das neue Codewort für a6 ist das letzte Codewort der Länge 5: ind[a6] = 9, len[a6] = 5 und n5 = 9. Das Array base[] wird entsprechend geändert: base[5] = 18 = (10010)2. Das neue Codewort für a6 ist also base[5] + ind[a6] – 1 = (11010)2. - Der Algorithmus codiert den Datenstrom s1s2...sm. Nachdem das Symbol si codiert wurde, wird der Code wie folgt modifiziert:
- 1. Falls das Symbol si zum ersten Mal vorkommt, wird die Länge von si auf ⌈log(i + n + 1)⌉ gesetzt und si wird am Ende der Liste R eingefügt.
- 2. Falls occ(si, i – 1) > 0 und occ(si, i) ≡ 0 (mod q) (falls si mehr als einmal im s1...si vorkommt und die Häufigkeit von si durch q teilbar ist), wird das Symbol si aus der Liste R entfernt und die Länge von si aufgesetzt. Der Code wird wie oben beschrieben aktualisiert.
- 3. Sei p ein Parameter. Falls i > 0 und i ≡ 0 (mod q), werden die erste p Elemente aus der Liste R entfernt. Die Codewortlängen für die entfernten Symbole werden aktualisiert. Falls wird die Länge des Codewortes für das Symbol aufgesetzt. Falls wird die Länge des Codewortes für das Symbol auf ⌈log(i + n + 1)⌉ gesetzt. Zum Schluss werden die entfernten Symbole am Ende der Liste R eingefügt.
-
- Der beschriebene Algorithmus kann auch in der Praxis effizient eingesetzt werden.
- Literatur
-
- [1] N. Faller, ”An adaptive system for data compression”, in Record of the 7th Asilomar. Conference on Circuits, Systems, and Computers (1973), 593–597.
- [2] R. G. Gallager, ”Variations on a Theme by Huffman”, IEEE Trans. on Information Theory 24(1978), 668–674.
- [3] D. E. Knuth, ”Dynamic Huffman Coding”, J. Algorithms 6(1985), 163–180.
- [4] A. Turpin, A. Moffat, ”On-line Adaptive Canonical Prefix Coding with Bounded Compression Loss”, IEEE Trans. on Information Theory, 47(2001), 88–98.
- [5] J. S. Vitter, ”Design and Analysis of Dynamic Huffman Codes”, J. ACM 34(1987), 825–845.
Claims (14)
- Verfahren für die adaptive präfix-freie Codierung eines Datenstroms über einem Alphabet aus n Elementen mit zwei Parameter p und q, wobei p größer als q ist, gekennzeichnet dadurch, dass die Codewortlängen aufgrund von der Länge des bereits codierten Teils des Textes geteilt durch Parameter q und aufgerundet, weiterhin quantisierte Textlänge genannt, sowie der Häufigkeit des Symbols im bereits codierten Teil des Textes geteilt durch Parameter q und abgerundet, weiterhin quantisierte Häufigkeit genannt, bestimmt werden, und weist auf: – eine Liste R von bereits codierten Symbolen – ein Verfahren A für die Aktualisierung der Länge des codierten Symbols – ein Verfahren B, das den Code modifiziert, nachdem die Länge eines Symbols geändert wurde.
- Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass für jedes mindestens einmal codiertes Element des Eingabealphabets seine Codewortlänge und sein Index unter allen Codewörtern mit der gleichen Länge bekannt sind, wobei die Indizes der Symbole mit der gleichen Codewortlänge eine mit Eins anfangende Folge von aufeinanderfolgenden ganzen Zahlen bilden.
- Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass jedes neues Codewort mit der Länge l, das in den Code eingefügt wird, zum letzten Codewort mit der Länge l wird, d. h. das neue Codewort hat den größten Index unter allen Codewörtern mit der Länge l.
- Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das erste Codewort mit der Länge 1 den Wert 0 hat und das erste Codewort mit der Länge l als das Doppelte der Summe von dem ersten Codewort mit der Länge l – 1 und der Anzahl der Codewörter mit der Länge l – 1 bestimmt wird.
- Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Liste R von bereits codierten Elementen des Eingabealphabets wie folgt regelmäßig aktualisiert wird: nachdem eine Folge von q Eingabesymbolen codiert wurde, werden die erste p Elementen aus der Liste R entfernt und die Codewortlängen der entfernten Symbole werden aktualisiert; die Codewortlänge eines jeden entfernten Symbols a wird wie folgt geändert: – Falls die Häufigkeit von a kleiner oder gleich q ist und i Eingabesymbolen bereits codiert wurden, wird die Codewortlänge von a auf die kleinste ganze Zahl k gesetzt, so dass die k-te Zweierpotenz mindestens so groß wie die Summe von i und n um eins inkrementiert ist. – Falls die Häufigkeit von a größer als q ist, wird die Codewortlänge von a auf die kleinste ganze Zahl k gesetzt, so dass die k-te Zweierpotenz mindestens so groß wie das Verhältnis von der Summe der quantisierten Textlänge und n zur quantisierten Häufigkeit ist. Abschließend werden die Symbole am Ende der Liste R wieder eingefügt.
- Verfahren B entsprechend Anspruch 1, dadurch gekennzeichnet, dass bei Veränderung der Länge des Codewortes für ein Symbol a von l1 auf l2 die folgende Operationen durchführt werden: – dem Symbol mit dem größten Codewort der Länge l1 wird der Index des alten Codewortes für a zugewiesen – das neue Codewort des Symbols a wird zum letzten Codewort mit der Länge l2 – die Anzahl der Codewörter mit Längen l1 und l2 wird entsprechend geändert.
- Verfahren A entsprechend Anspruch 1, gekennzeichnet dadurch, dass nach der Codierung des i-ten Symbols in dem Datenstrom, weiterhin s genannt, die folgende Operationen durchführt werden: – falls s zum ersten Mal in dem Datenstrom vorkommt, wird die Codewortlänge für s auf die kleinste ganze Zahl k gesetzt, so dass die k-te Zweierpotenz mindestens so groß wie die Summe von i und n um eins inkrementiert ist. – falls die Häufigkeit von s ein mehrfaches von q ist, wird die Codewortlänge von s auf die kleinste ganze Zahl k gesetzt, so dass die k-te Zweierpotenz mindestens so groß wie das Verhältnis von der Summe der quantisierten Textlänge und n zur quantisierten Häufigkeit ist.
- Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Code vor dem Anfang der Codierung leer ist und keine Codewörter enthält.
- Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass ein neues Codewort mit der Länge l, das in den Code hingefügt wird, zum letzten Codewort mit der Länge l wird.
- Verfahren nach Anspruch 1, wobei das allererste Symbol in dem Datenstrom als eine Binärdarstellung des Indexes von diesem Symbol im Eingabealphabet codiert wird.
- Verfahren nach Anspruch 10, wobei nachdem das allererste Symbol s codiert wurde, werden die Codewörter für Symbole (NYT) und das Symbol s in den Code eingefügt.
- Verfahren nach Anspruch 1, bei dem ein Symbol a das zum ersten mal codiert wird, aber nicht das allererste Symbol in dem Datenstrom ist, als ein spezielles Symbol (NYT) gefolgt von dem Index von a in dem Eingabealphabet codiert wird.
- Verfahren entsprechend Anspruch 1, bei dem ein nächstes zu codierendes Symbol a, das im bereits codierten Teil des Datenstroms wenigstens einmal vorkam, mit dem Codewort, das dem Symbol a entspricht, codiert wird.
- Verfahren nach Anspruch 13, bei dem das Codewort für ein Symbol mit der Länge l und dem Index i als die Binärdarstellung der Summe von dem ersten Codewort mit der Länge l und des Indexes i um 1 decrementiert bestimmt wird.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE200610028469 DE102006028469B4 (de) | 2006-06-21 | 2006-06-21 | Adaptives Quantisiertes Codierungsverfahren |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE200610028469 DE102006028469B4 (de) | 2006-06-21 | 2006-06-21 | Adaptives Quantisiertes Codierungsverfahren |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE102006028469A1 DE102006028469A1 (de) | 2007-12-27 |
| DE102006028469B4 true DE102006028469B4 (de) | 2010-12-02 |
Family
ID=38721040
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE200610028469 Expired - Fee Related DE102006028469B4 (de) | 2006-06-21 | 2006-06-21 | Adaptives Quantisiertes Codierungsverfahren |
Country Status (1)
| Country | Link |
|---|---|
| DE (1) | DE102006028469B4 (de) |
-
2006
- 2006-06-21 DE DE200610028469 patent/DE102006028469B4/de not_active Expired - Fee Related
Non-Patent Citations (6)
| Title |
|---|
| FALLER, N. 1973. An adaptive system for data compression. In Record of the 7th Asilomar Conference on Circuits, Systems and Computers (Pacific Grove, Calif., Nov.). Naval Postgraduate School, Monterey, Calif., pp. 593-597 * |
| GALLAGER, R.: Variations on a Theme y Huffman. In: IEEE transaction on information theory, Vol. It-24, No. 6, November 1978, pp. 668-674 * |
| KNUTH, D.E.: Dynamic Huffman Coding. In: J. Algorithms 6, 1985, pp. 163-180 * |
| TURPIN, A., MOFFAT, A.: On-Line Adaptive Canonical Prefix Coding with Bounded Compression Loss. In: IEEE transaction on information theory, Vol. 47, No. 1, January 2001, pp. 88-98 * |
| TURPIN, A., MOFFAT, A.: On-Line Adaptive Canonical Prefix Coding with Bounded Compression Loss. In: IEEE transaction on information theory, Vol. 47, No. 1, January 2001, pp. 88-98 GALLAGER, R.: Variations on a Theme y Huffman. In: IEEE transaction on information theory, Vol. It-24, No. 6, November 1978, pp. 668-674 VITTER, J.S.: Design and analysis of dynamic Huffman coding. Proceedings of the 26th Annual IEEE Symposium on Foundations of Computer Science, 1985, IEEE, New York, pp. 293-302 KNUTH, D.E.: Dynamic Huffman Coding. In: J. Algorithms 6, 1985, pp. 163-180 FALLER, N. 1973. An adaptive system for data compression. In Record of the 7th Asilomar Conference on Circuits, Systems and Computers (Pacific Grove, Calif., Nov.). Naval Postgraduate School, Monterey, Calif., pp. 593-597 |
| VITTER, J.S.: Design and analysis of dynamic Huffman coding. Proceedings of the 26th Annual IEEE Symposium on Foundations of Computer Science, 1985, IEEE, New York, pp. 293-302 * |
Also Published As
| Publication number | Publication date |
|---|---|
| DE102006028469A1 (de) | 2007-12-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE69833094T2 (de) | Verfahren und Vorrichtung zur adaptiven Datenkompression mit höherem Kompressionsgrad | |
| DE69527679T2 (de) | Verfahren zur Datenkomprimierung und -Dekomprimierung | |
| DE60129643T2 (de) | Verfahren und Gerät für die Ermittlung vom längsten Prefixzusammenbringen in einem Kommunikationsnetz | |
| DE10196890B4 (de) | Verfahren zum Ausführen einer Huffman-Decodierung | |
| EP1467491B1 (de) | Arithmetische Codierung von Transformationskoeffizienten | |
| DE69425769T2 (de) | Kodierung von digitalen Signalen | |
| EP0260748B1 (de) | Verfahren und Schaltungsanordung zur Bitratenreduktion | |
| DE19506164C2 (de) | Verfahren zum Komprimieren eingegebener Symbole in Codeworte | |
| DE4340591C2 (de) | Datenkompressionsverfahren unter Verwendung kleiner Wörterbücher zur Anwendung auf Netzwerkpakete | |
| DE69802520T2 (de) | Verfahren und vorrichtung zur verlustfreien datenkompression | |
| DE69522497T2 (de) | System und Verfahren zur Datenkompression | |
| DE69026292T2 (de) | Methode zur Bilddatenkodierung | |
| EP1550219B1 (de) | Verfahren und anordnung zur arithmetischen enkodierung und dekodierung von binären zuständen sowie ein entsprechendes computerprogramm und ein entsprechendes computerlesbares speichermedium | |
| DE2614916A1 (de) | Konverter zur codeumwandlung | |
| DE68926676T2 (de) | Verfahren und gerät zur statistischen kodierung von digitalen daten | |
| DE68918590T2 (de) | Gerät zur dekodierung von mit variabler länge kodierten daten. | |
| DE10049571C1 (de) | Verfahren und Anordnung zum Übertragen eines Vektors | |
| DE60012717T2 (de) | Bildcodierung unter verwendung einer umordnung von wavelet-koeffizienten | |
| DE102006028469B4 (de) | Adaptives Quantisiertes Codierungsverfahren | |
| DE69530470T2 (de) | Verfahren und vorrichtung für einen speziellen und effizienten gebrauch einer datenstruktur zur datenkompression | |
| DE19653133C2 (de) | System und Verfahren zur pre-entropischen Codierung | |
| DE10131801A1 (de) | Verfahren zur Datenkompression und Navigationssystem | |
| 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 | |
| EP2076964A1 (de) | Verfahren und vorrichtung zur kompression und dekompression digitaler daten auf elektronischem wege unter verwendung einer kontextgrammatik | |
| DE4432436C2 (de) | Datenkompressionsverfahren und Vorrichtung zum Komprimieren von Daten |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8110 | Request for examination paragraph 44 | ||
| 8364 | No opposition during term of opposition | ||
| R020 | Patent grant now final |
Effective date: 20110302 |
|
| R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |
Effective date: 20120103 |