DE10196847B4 - Ein Verfahren zum Erzeugen von Huffman-Code-Längeninformationen - Google Patents

Ein Verfahren zum Erzeugen von Huffman-Code-Längeninformationen Download PDF

Info

Publication number
DE10196847B4
DE10196847B4 DE10196847T DE10196847T DE10196847B4 DE 10196847 B4 DE10196847 B4 DE 10196847B4 DE 10196847 T DE10196847 T DE 10196847T DE 10196847 T DE10196847 T DE 10196847T DE 10196847 B4 DE10196847 B4 DE 10196847B4
Authority
DE
Germany
Prior art keywords
symbols
section
group
entries
code length
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE10196847T
Other languages
English (en)
Other versions
DE10196847T1 (de
Inventor
Tinku Chandler ACHARYA
Ping-Sing Gilbert Tsai
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE10196847T1 publication Critical patent/DE10196847T1/de
Application granted granted Critical
Publication of DE10196847B4 publication Critical patent/DE10196847B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code

Abstract

Verfahren zum Erzeugen von Codelängen für eine Anzahl von zu codierenden Symbolen, wobei:
a) eine Datenstruktur mit einem ersten und einem zweiten Abschnitt erzeugt wird,
wobei der erste Abschnitt für jedes auftretende Symbol einen Eintrag mit einem Symbolindex und einem zugeordneten Codelängenwert enthält,
wobei der zweite Abschnitt Gruppeneinträge für Gruppen von Symbolen enthält, wobei jeder Gruppeneintrag eine Symbolhäufigkeit für die Gruppe von Symbolen und ein zugeordnetes Bit-Flag-Feld enthält, wobei das Bit-Flag-Feld für jeden Eintrag des ersten Abschnitts ein anderes Bit-Flag enthält, wobei die Bit-Flags anzeigen, welche Einträge des ersten Abschnitts zu der Gruppe von Symbolen gehören,
wobei die Datenstruktur initialisiert wird, indem alle Codelängenwerte auf Null gesetzt werden und für jeden Eintrag des ersten Abschnitts ein Gruppeneintrag im zweiten Abschnitt erzeugt wird,
wobei die Einträge des ersten und des zweiten Abschnitts nach der Symbolhäufigkeit sortiert werden,
b) zwei Gruppeneinträge mit den geringsten Symbolhäufigkeiten zu...

Description

  • Die Erfindung betrifft ein Verfahren zum Erzeugen von Codelängen für eine Anzahl von zu codierenden Symbolen. Ferner betrifft die Erfindung ein Computerprogramm zur Durchführung eines solchen Verfahrens sowie ein Verfahren zum Codieren von Symbolen und ein Verfahren zum Decodieren von Symbolen.
  • Wie es gut bekannt ist, werden Huffman-Codes eines Satzes von Symbolen zumindest zum Teil auf der Grundlage der Wahrscheinlichkeit des Auftretens der Quellensymbole erzeugt. Es wird ein üblicherweise als „Huffman-Baum” bezeichneter binärer Baum erzeugt, um den binären Code und die Codelänge zu extrahieren. Siehe beispielsweise D. A. Huffman, „A Method for the Construction of Minimum-Redundancy Codes”, Proceedings der IRE, Band 40, Nummer 9, Seiten 1098 bis 1101, 1952. D. A. Huffman beschreibt in dem erwähnten Papier den Prozeß auf folgende Weise:
    • • Liste sämtliche möglichen Symbole mit ihren Wahrscheinlichkeiten auf;
    • • Finde die beiden Symbole mit den geringsten Wahrscheinlichkeiten;
    • • Ersetze diese durch einen einzigen Satz, der beide Symbole enthält, und dessen Wahrscheinlichkeit die Summe der Einzelwahrscheinlichkeiten ist;
    • • Wiederhole dies, bis die Liste nur noch ein Mitglied enthält.
  • Diese Prozedur erzeugt einen rekursiv strukturierten Satz von Sätzen, von denen jeder exakt zwei Mitglieder enthält. Er kann folglich als binärer Baum („Huffman-Baum”) mit den Symbolen als „Blätter” dargestellt werden. Um dann den Code („Huff man-Code”) für irgendein bestimmtes Symbole zu bilden, wird wie folgt vorgegangen: Durchlaufe den binären Baum ausgehend von der Wurzel bis zu diesem Symbol, wobei eine „0” für eine linke Verzweigung und eine „1” für eine rechte Verzweigung aufgezeichnet wird. Ein Problem bei dieser Prozedur ist jedoch, daß der sich ergebende Huffman-Baum nicht einzigartig bzw. eindeutig ist. Ein Beispiel einer Anwendung eines solchen Codes ist die Textkompression, wie beispielsweise GZIP. GZIP ist ein Textkompressionswerkzeug, das unter dem GNU(Gnu's Not UNIX)-Projekt entwickelt worden ist, einem Projekt mit dem Ziel der Entwicklung eines „freien” oder frei verfügbaren
    Unix-ähnlichen Betriebssystems, um das „compress”-Textkompressionswerkzeug auf einem UNIX-Betriebssystem zu ersetzen. Siehe beispielsweise Gailly, J. L. und Adler, M., GZIP Documentation and Sources, erhältlich als gzip-1.2.4.tar auf der Website „http://www.gzip.orh/”. Bei GZIP werden Huffman-Baum-Informationen aus dem Codierer an den Decodierer in Form eines Satzes von Codelängen zusammen mit dem komprimierten Text weitergeleitet. Sowohl der Codierer als auch der Decodierer erzeugen folglich einen speziellen Huffman-Code auf der Grundlage dieser Code-Längeninformationen. Jedoch ist das Erzeugen von Längeninformationen für die Huffman-Codes durch Konstruieren des zugehörigen Huffman-Baums ineffizient. Insbesondere werden die sich ergebenden Huffman-Codes aus dem Huffman-Baum üblicherweise aufgegeben, da der Codierer und der Decodierer dieselben Huffman-Codes aus der Codelängeninformation erzeugt. Es wäre folglich wünschenswert, wenn eine andere Lösung zum Erzeugen der Codelängeninformationen verfügbar wäre.
  • Auch aus dem Artikel von E. S. Schwartz und B. Kallick, ”Generating a Canonical Prefix Encoding”, Communications of the ACM, Band 7, Nummer 3, März 1964, Seiten 166 bis 169, ist ein Verfahren zum Erzeugen eines Codes bekannt.
  • Aufgabe der Erfindung ist es, bei der Erzeugung eines Huffman-Codes möglichst wenige Daten im Sender und Empfänger zu speichern bzw. wenig Daten vom Sender zum Empfänger zu übertragen.
  • Diese Aufgabe wird erfindungsgemäß durch ein Verfahren mit den Merkmalen des Anspruchs 1 bzw. ein Computerprogramm mit den Merkmalen des Anspruchs 6, ein Codierverfahren mit den Merkmalen des Anspruchs 7 bzw. ein Decodierverfahren mit den Merkmalen des Anspruchs 8 gelöst. Vorteilhafte und/oder bevorzugte Weiterbildungen der Erfindung sind in den Unteransprüchen gekennzeichnet.
  • Im Folgenden wir die Erfindung anhand von in der Zeichnung dargestellten bevorzugten Ausführungsbeispielen näher beschrieben, wobei in den Zeichnungen:
  • 1 eine Tabelle ist, die einen Satz von Symbolen mit ihren zugehörigen Häufigkeiten veranschaulicht, auf welchen eine Ausführungsbeispiel gemäß der vorliegenden Erfindung angewendet werden kann;
  • 2 eine Tabelle ist, die einen ersten Teil eines Ausführungsbeispiels gemäß der vorliegenden Erfindung veranschaulicht, nach der Initialisierung für die in 1 gezeigten Daten.
  • 3 eine Tabelle ist, die einen zweiten Teil eines Ausführungsbeispiels der vorliegenden Erfindung veranschaulicht, nach der Initialisierung für die in 2 gezeigten Daten;
  • 4 die Tabelle gemäß 2 ist, nachdem eine erste Verschmelzungsoperation angewendet worden ist;
  • 5 die Tabelle gemäß 3 ist, nachdem eine erste Verschmelzungsoperation angewendet worden ist;
  • 6 die Tabelle gemäß 5 ist, nachdem die Verschmelzungsoperationen abgeschlossen worden sind; und
  • 7 die Tabelle gemäß 4 ist, nachdem die Verschmelzungsoperationen abgeschlossen worden sind.
  • DETAILLIERTE BESCHREIBUNG
  • In der folgenden detaillierten Beschreibung werden zahlreiche spezielle Details angegeben, um ein besseres Verständnis der Erfindung zu erreichen. Für Fachleute ist es jedoch klar, daß die vorliegende Erfindung auch ohne diese speziellen Details ausgeführt werden kann. An anderen Stellen werden gut bekannten Verfahren, Prozeduren, Komponenten und Schaltungen nicht im Detail beschrieben, um die vorliegende Erfindung nicht zu verdecken.
  • Wie zuvor beschrieben wurde, werden Huffman-Codes für einen Satz von Symbolen zumindest zum Teil auf der Grundlage der Wahrscheinlichkeit des Auftretens der Quellensymbole erzeugt. Dementsprechend wird ein üblicherweise als Huffman-Baum bezeichneter binärer Baum erzeugt, um den binären Code und die Codelänge zu extrahieren. Beispielsweise wird bei einer Anwendung für Textkompressionsstandards, wie beispielsweise GZIP, die Huffman-Baum-Information aus dem Codierer an den Decodierer in Form eines Satzes von Codelängen mit den komprimierten Textdaten weitergeleitet, obwohl die Erfindung in ihrem Umfang nicht auf diese spezielle Anwendung beschränkt ist. Sowohl der Codierer als auch der Decodierer erzeugen einen eindeutigen Huffman-Code auf der Grundlage der Codelängeninformationen. Jedoch ist das Erzeugen der Längeninformation für die Huffman-Codes durch Konstruieren des zugehörigen Huffman-Baums ineffizient und häufig redundant. Nachdem die Huffman-Codes aus dem Huffman-Baum erzeugt worden sind, werden die Codes abgebrochen (abandoned), da der Codierer und der Decodierer die Huffman-Codes auf der Grundlage der Längeninformationen erzeugen. Folglich wäre es wünschenswert, wenn die Längeninformationen bestimmt werden könnten, ohne einen Huffman-Baum zu erzeugen.
  • Es wird ein Ausführungsbeispiel gemäß der Erfindung eines Verfahrens zum Erzeugen von Codelängen für zu codierende Codes zur Verfügung gestellt, daß eine Datenstruktur verwendet. Bei diesem speziellen Ausführungsbeispiel wird die Da tenstruktur sortiert, Symbole in der Datenstruktur werden kombiniert und Symbollängen werden aktualisiert, wenigstens zum Teil auf der Grundlage der Häufigkeit der codierten Symbole. Bei diesem speziellen Ausführungsbeispiel unterstützt die Datenstruktur die Extraktion der Längen von Huffman-Codes aus einer Gruppe von Symbolen, ohne einen Huffman-Baum zu erzeugen, wo die Wahrscheinlichkeit des Auftretens der Symbole bekannt ist. Obwohl die Erfindung in ihrem Umfang nicht auf dieses spezielle Ausführungsbeispiel beschränkt ist, zeigen experimentelle Ergebnisse eine Effizienz sowohl bezüglich der Berechnung als auch der Speicherverwendung, die sowohl für Software als auch Hardware-Implementierungen geeignet ist.
  • 1 ist eine Tabelle, die einen Satz von Symbolen mit ihren zugehörigen Häufigkeiten veranschaulicht, obwohl selbstverständlich dies nur einfach als ein alternatives Beispiel angegeben ist. Ein Ausführungsbeispiel eines Verfahrens zum Erzeugen von Codelängen gemäß der vorliegenden Erfindung kann auf diesen Satz von Symbolen angewendet werden. 1 veranschaulicht einen Satz von achtzehn Symbolen, obwohl selbstverständlich die Erfindung in ihrem Umfang diesbezüglich nicht eingeschränkt ist. Bei diesem Beispiel ergibt die Inspektion der Häufigkeitsinformationen zwei Symbole mit dem Index Nummer 7 und dem Index Nummer 13 der schattierten Gebiete in 1, die in diesem Symbolsatz nicht auftreten, obwohl wiederum die Erfindung in ihrem Umfang diesbezüglich nicht eingeschränkt ist. Folglich brauchen diese Symbole nicht bei der Huffman-Codierung berücksichtigt zu werden. Bei diesem speziellen Beispiel werden Symbole mit der Häufigkeit Null fortgelassen, obwohl die Erfindung in ihrem Umfang diesbezüglich nicht eingeschränkt ist.
  • Bei diesem speziellen Beispiel hat die zu benutzende Datenstruktur wenigstens zwei Abschnitte, obwohl wiederum die Erfindung diesbezüglich nicht eingeschränkt ist. Wie zuvor angezeigt worden ist, sei angemerkt, daß die Erfindung in ihrem Umfang nicht auf diese spezielle Datenstruktur beschränkt ist. Es ist klar, daß viele Modifikationen an dieser speziellen Datenstruktur vorgenommen werden können und noch im Geist und Umfang dessen bleiben, was beschrieben worden ist. Bei diesem Ausführungsbeispiel jedoch ist ein Abschnitt in 2 veranschaulicht. Dieser Abschnitt der Datenstruktur verfolgt oder speichert die Index- und Längeninformationen für jedes Symbol mit einer Häufigkeit größer als Null. Wie es in 2 veranschaulicht ist, wird dieser Abschnitt mit einer Länge von Null in absteigender Reihenfolge bezüglich der Häufigkeit und dem Symbolindex initialisiert. Selbstverständlich sind andere Ausführungsformen anwendbar, wie beispielsweise die Verwendung einer aufsteigenden Reihenfolge. 2 veranschaulicht den ersten Teil einer auf die Symbole gemäß 1 angewendeten Ausführungsform.
  • Wie es veranschaulicht ist, enthält 2 sechzehn Einträge, Eintrag 0 bis 15, die den sechzehn Symbolen mit einer Häufigkeit größer als Null entsprechen. Bei dieser speziellen Datenstruktur zeigt das erste Feld beziehungsweise die erste Spalte die zugeordneten Symbolindizes nach der zuvor beschriebenen Sortieroperation, obwohl die Erfindung diesbezüglich nicht eingeschränkt ist. Die in 2 veranschaulichte Symbolhäufigkeitsinformation ist nicht Teil der Datenstruktur, sondern wird hier nur zu Veranschaulichungszwecken angegeben. Sie veranschaulicht die absteigende Reihenfolge der Symbole bezüglich der Häufigkeit. Das zweite Feld beziehungsweise die zweite Spalte der Datenstruktur enthält die Längeninformation für jedes Symbol und wird auf Null initialisiert, obwohl wiederum die Erfindung diesbezüglich nicht eingeschränkt ist.
  • Der zweite Teil oder Abschnitt der Datenstruktur für dieses spezielle Ausführungsbeispiel nach der Initialisierung unter Verwendung der Daten oder Symbole der 2 ist in 3 gezeigt oder veranschaulicht. Bei diesem speziellen Ausführungsbeispiel enthält das erste Feld dieses Teils der Datenstruktur, das heißt des in 3 veranschaulichten Teils, die Häufigkeit für die Gruppe. Das zweite Feld dieses speziellen Ausführungsbeispiels enthält Bit-Flags. Die Bit-Flags entsprechen der Eintragsnummer der Symbole, die zu der Gruppe gehören, oder kennzeichnen diese. Wie es beispielsweise in 3 veranschaulicht ist, enthält der schattierte Bereich ein Symbol mit dem Eintrag Nummer 3. Für dieses bestimmte Symbol ist die Gruppenhäufigkeit 3 und die Bit-Flags sind gesetzt auf:
    Figure 00070001
  • Das heißt, Bit-Nummer 3 wird in diesem Beispiel auf „1” gesetzt, während die übrigen Bits auf „0” gesetzt werden.
  • Wie zuvor beschrieben, wird anfänglich dem zu codierenden Symbol jeweils ein verschiedenes Bit-Flag für jedes Symbol zugewiesen. Wiederum enthält bei diesem speziellen Ausführungsbeispiel die Codelänge anfänglich eine 0 für jedes Symbol, obwohl wiederum die Erfindung in ihrem Umfang diesbezüglich nicht eingeschränkt ist. Wie detaillierter nachfolgend beschrieben werden soll, werden bei diesem speziellen Ausführungsbeispiel, nachdem die Datenstruktur initialisiert ist, Symbol-Flags beginnend mit den Symbolen der geringsten Häufigkeit kombiniert. Diese Symbole werden dann umsortiert und die Häufigkeitsinformation wird aktualisiert, um die Kombination wiederzugeben. Diese Operationen des Kombinierens von Signal-Flags und des Umsortierens werden dann wiederholt, bis keine weiteren zu kombinierenden Symbole verbleiben.
  • Wie zuvor beschrieben wurde, beginnt der Prozeß, indem die Datenstruktur initialisiert wird, wie bei dem zuvor beschriebenen Ausführungsbeispiel, und indem ein „Zähler”, der hier als „no_of_group” bezeichnet wird, auf die Anzahl der Symbole mit einer Häufigkeit größer als Null, hier 16, gesetzt wird. Als nächstes werden, während dieser „Zähler”, das heißt no_of_group, größer als Eins ist, die folgenden Operationen ausgeführt.
  • Figure 00080001
  • Figure 00090001
  • Wie es in 5 veranschaulicht ist, werden beispielsweise die letzten beiden ”Gruppen” oder ”Zeilen” in dem zweiten Teil oder Abschnitt der Datenstruktur kombiniert oder verschmolzen und, wie es in 5 veranschaulicht ist, wird dieser Abschnitt der Datenstruktur umsortiert, das heißt, die kombinierten Symbole werden in der Datenstruktur in geeigneter Weise auf der Grundlage der Gruppenhäufigkeit – bei diesem speziellen Ausführungsbeispiel – sortiert.
  • Es sei ebenso angemerkt, daß, obwohl die Erfindung diesbezüglich in ihrem Umfang nicht beschränkt ist, die Verschmelzungs- oder Kombinationsoperation für die Gruppenhäufigkeit bei diesem speziellen Ausführungsbeispiel implementiert werden kann, indem einfach die Häufigkeiten miteinander addiert werden, und eine Verschmelzungs/Kombinations-Operation für das zweite Feld der Datenstruktur bei diesem speziellen Ausführungsbeispiel als „bit-weise” logische ODER-Operation implementiert werden kann. Dies schafft Vorteile bezüglich der Implementierung in Software und/oder Hardware. Ein anderer Vorteil dieses speziellen Ausführungsbeispiels ist die effiziente Verwendung des Speichers zusätzlich zur einfachen Implementierung der Operationen, wie beispielsweise der Summier- und logischen ODER-Operationen.
  • Wie zuvor beschrieben wurde, führt eine Kombinier- oder Verschmelzungsoperation dazu, daß zwei „Gruppen” oder „Zeilen” zu einer kombiniert werden. Folglich kann der Speicher, der zugewiesen worden ist, neu verwendet werden, und die dynamische Zuteilung neuen Speichers nach der Initialisierung wird entweder reduziert oder vermieden.
  • Als nächstes werden die Längeninformationen im ersten Abschnitt oder Teil der Datenstruktur für dieses spezielle Ausführungsbeispiel aktualisiert, um die vorhergehende Verschmelzungs- oder Kombinieroperation wiederzugeben. Dies ist für dieses spezielle Ausführungsbeispiel beispielhaft in 4 veranschaulicht. Ein Weg zum Implementieren dieser Operation besteht darin, die „1”-Bits der verschmolzenen Bit-Flags zu durchsuchen, obwohl die Erfindung diesbezüglich in ihrem Umfang nicht eingeschränkt ist. Das heißt, bei diesem speziellen Ausführungsbeispiel wird das zweite Feld im zweiten Teil der Datenstruktur durchsucht und die Längeninformationen werden erhöht oder um Eins erweitert in den entsprechenden Einträgen in dem ersten Abschnitt oder Teil der Datenstruktur.
  • Als nächstes wird der „Zähler”, das ist hier no_of_group, um Eins verringert. Bei diesem speziellen Ausführungsbeispiel werden die vorgenannten Operationen wiederholt, bis der Zähler den Wert 1 erreicht. Es sei angemerkt, daß bei diesem bestimmten Ausführungsbeispiel, sobald der „Zähler” Eins erreicht, wie es in 6 veranschaulicht ist, es nur noch eine Gruppe oder Zeile im zweiten Abschnitt der Datenstruktur geben sollte, der eine Gruppenhäufigkeit aufweist, die gleich der Gesamtgruppenhäufigkeit ist, und sämtliche Bits bei den Bit-Flags auf Eins gesetzt sein sollten. Jedoch zeigt in gleicher Weise 7 die Endergebnisse der Codelängeninformationen, wenn dies aufgetreten ist. Folglich werden, wie es in 7 veranschaulicht ist, die gewünschten Codelängeninformationen gewonnen.
  • Wie zuvor beschrieben, existieren für dieses spezielle Ausführungsbeispiel eines Verfahrens zum Erzeugen von Codelängeninformationen verschiedene Vorteile. Wie zuvor erörtert, wird im Vergleich zu beispielsweise der Erzeugung des Huffman-Baums die Speicherbenutzung verringert, und die dynamische Zuteilung des Speichers kann vermieden oder die Speichermenge, die dynamisch zuzuteilen ist, reduziert werden. Ebenso wird die Berechnungskomplexität verringert.
  • Ebenso sind, wie zuvor beschrieben wurde, die Operationen, die zum Implementieren des zuvor beschriebenen Ausfüh rungsbeispiels verwendet werden, relativ einfach in Hardware oder Software zu implementieren, obwohl die Erfindung in ihrem Umfang nicht auf diese Ausführungsbeispiele in diesen speziellen Operationen beschränkt ist. So können die Huffman-Codelängeninformationen extrahiert oder erzeugt werden, ohne einen Huffman-Baum zu erzeugen.
  • Bei einem alternativen Ausführungsbeispiel gemäß der vorliegenden Erfindung kann ein Verfahren zum Codieren von Symbolen ein Codieren von Symbolen unter Verwendung von Codelängeninformationen und ein Erzeugen der Codelängeninformationen ohne Verwendung eines Huffman-Baums umfassen, so wie beispielsweise die Verwendung des zuvor beschriebenen Ausführungsbeispiels zum Erzeugen von Codelängeninformationen, obwohl die Erfindung selbstverständlich in ihrem Umfang nicht auf das vorstehende Ausführungsbeispiel beschränkt ist. Es ist selbstverständlich in diesem Kontext klar, daß die Längeninformation benutzt wird, um Symbole zu codieren, wo die Längeninformation aus einem Huffman-Code erzeugt ist. Ebenso kann bei einem anderen alternativen Ausführungsbeispiel gemäß der vorliegenden Erfindung ein Verfahren zum Decodieren von Symbolen ein Decodieren von Symbolen umfassen, bei dem die Symbole unter Verwendung von Codelängeninformationen codiert worden sind und Codelängeninformationen ohne die Verwendung eines Huffman-Baums erzeugt worden sind. Es ist wiederum in diesem Kontext klar, daß die zum Codieren der Symbole benutzten Längeninformationen aus einem Huffman-Code erzeugt sind. Wiederum umfaßt eine Lösung zum Erzeugen der Codelängeninformationen das zuvor beschriebene Ausführungsbeispiel.
  • Es ist selbstverständlich klar, daß, obwohl spezielle Ausführungsbeispiele soeben beschrieben worden sind, die Erfindung in ihrem Umfang nicht auf ein spezielles Ausführungsbeispiel oder eine Implementierung beschränkt ist. Beispielsweise könnte ein Ausführungsbeispiel in Hardware ausgeführt sein, während ein anderes Ausführungsbeispiel in Software ausgeführt ist. In gleicher Weise könnte ein Aus führungsbeispiel beispielsweise in Firmware oder einer beliebigen Kombination von Hardware, Software oder Firmware implementiert sein. Ebenso könnte ein Ausführungsbeispiel einen Gegenstand umfassen, wie beispielsweise ein Speichermedium, obwohl die Erfindung in ihrem Umfang diesbezüglich nicht eingeschränkt ist. Ein derartiges Speichermedium, wie beispielsweise eine CDROM oder ein Platte, könnte Befehle speichern, welche, wenn sie von einem System, wie beispielsweise einem Computersystem oder einer Computerplattform oder einem Bildverarbeitungssystem, ausgeführt werden, dazu führen können, daß ein Ausführungsbeispiel eines Verfahrens gemäß der vorliegenden Erfindung ausgeführt wird, wie beispielsweise ein Verfahren zum Erzeugen von Huffman-Codelängeninformationen, wie es zuvor beschrieben wurde. Ebenso könnten Ausführungsbeispiele eines Verfahrens zum Initialisieren einer Datenstruktur, Codieren von Symbolen und/oder Decodieren von Symbolen gemäß der vorliegenden Erfindung ausgeführt werden.
  • Während bestimmte Merkmale der Erfindung hier veranschaulicht und beschrieben worden sind, kommen an dieser Stelle Fachleuten vielen Modifikationen, Ersetzungen, Änderungen und Äquivalente in den Sinn. Es ist folglich klar, daß die beigefügten Ansprüche sämtliche derartigen Modifikationen und Änderungen abdecken sollen, soweit sie im wahren Geist der Erfindung liegen.

Claims (8)

  1. Verfahren zum Erzeugen von Codelängen für eine Anzahl von zu codierenden Symbolen, wobei: a) eine Datenstruktur mit einem ersten und einem zweiten Abschnitt erzeugt wird, wobei der erste Abschnitt für jedes auftretende Symbol einen Eintrag mit einem Symbolindex und einem zugeordneten Codelängenwert enthält, wobei der zweite Abschnitt Gruppeneinträge für Gruppen von Symbolen enthält, wobei jeder Gruppeneintrag eine Symbolhäufigkeit für die Gruppe von Symbolen und ein zugeordnetes Bit-Flag-Feld enthält, wobei das Bit-Flag-Feld für jeden Eintrag des ersten Abschnitts ein anderes Bit-Flag enthält, wobei die Bit-Flags anzeigen, welche Einträge des ersten Abschnitts zu der Gruppe von Symbolen gehören, wobei die Datenstruktur initialisiert wird, indem alle Codelängenwerte auf Null gesetzt werden und für jeden Eintrag des ersten Abschnitts ein Gruppeneintrag im zweiten Abschnitt erzeugt wird, wobei die Einträge des ersten und des zweiten Abschnitts nach der Symbolhäufigkeit sortiert werden, b) zwei Gruppeneinträge mit den geringsten Symbolhäufigkeiten zu einem neuen Gruppeneintrag kombiniert werden, indem die Symbolhäufigkeiten addiert werden und die Bit-Flag-Felder derart kombiniert werden, dass das Bit-Flag-Feld des neuen Gruppeneintrags anzeigt, dass der neue Gruppeneintrag denjenigen Einträgen des ersten Abschnitts zugeordnet ist, denen die beiden kombinierten Gruppeneinträge zugeordnet waren, und c) die Codelängenwerte derjenigen Einträge des ersten Abschnitts um Eins inkrementiert werden, denen der neue Gruppeneintrag zugeordnet ist, und d) die Schritte b) und c) solange wiederholt werden, bis keine Gruppeneinträge mehr kombiniert werden können.
  2. Verfahren nach Anspruch 1, wobei die Symbole in der Datenstruktur auf der Grundlage der Symbolhäufigkeit in abfallender Reihenfolge sortiert werden.
  3. Verfahren nach Anspruch 2, wobei nach den Schritten b) und c) die Einträge des zweiten Abschnitts auf der Grundlage der Symbolhäufigkeit in abfallender Reihenfolge neu sortiert werden.
  4. Verfahren nach Anspruch 1, wobei die Symbole in der Datenstruktur auf der Grundlage der Symbolhäufigkeit in ansteigender Reihenfolge sortiert werden.
  5. Verfahren nach Anspruch 4, wobei nach den Schritten b) und c) die Einträge des zweiten Abschnitts auf der Grundlage der Symbolhäufigkeit in ansteigender Reihenfolge neu sortiert werden.
  6. Computerprogramm mit Programmcode, der auf einem maschinenlesbaren Träger gespeichert ist, zur Durchführung eines Verfahrens nach einem der Ansprüche 1 bis 5, wenn das Programm auf einem Computer ausgeführt wird.
  7. Verfahren zum Codieren von Symbolen, umfassend: Codieren von Symbolen unter Verwendung von Codelängeninformationen, wobei die Codelängeninformationen nach einem Verfahren nach einem der Ansprüche 1 bis 5 erzeugt werden.
  8. Verfahren zum Decodieren von Symbolen, umfassend: Decodieren von Symbolen, wobei die Symbole unter Verwendung von Codelängeninformationen codiert worden sind und die Codelängeninformationen nach einem Verfahren nach einem der Ansprüche 1 bis 5 erzeugt worden sind.
DE10196847T 2000-10-31 2001-10-09 Ein Verfahren zum Erzeugen von Huffman-Code-Längeninformationen Expired - Fee Related DE10196847B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/704,392 2000-10-31
US09/704,392 US6636167B1 (en) 2000-10-31 2000-10-31 Method of generating Huffman code length information
PCT/US2001/031440 WO2002037690A2 (en) 2000-10-31 2001-10-09 A method of generating huffman code length information

Publications (2)

Publication Number Publication Date
DE10196847T1 DE10196847T1 (de) 2003-12-04
DE10196847B4 true DE10196847B4 (de) 2009-10-01

Family

ID=24829276

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10196847T Expired - Fee Related DE10196847B4 (de) 2000-10-31 2001-10-09 Ein Verfahren zum Erzeugen von Huffman-Code-Längeninformationen

Country Status (9)

Country Link
US (3) US6636167B1 (de)
JP (1) JP4012065B2 (de)
KR (2) KR100708370B1 (de)
CN (1) CN1531781A (de)
AU (1) AU2002215320A1 (de)
DE (1) DE10196847B4 (de)
GB (1) GB2385758B (de)
TW (1) TW538601B (de)
WO (1) WO2002037690A2 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6563439B1 (en) * 2000-10-31 2003-05-13 Intel Corporation Method of performing Huffman decoding
US6636167B1 (en) * 2000-10-31 2003-10-21 Intel Corporation Method of generating Huffman code length information
US7274671B2 (en) * 2001-02-09 2007-09-25 Boly Media Communications, Inc. Bitwise adaptive encoding using prefix prediction
WO2003036500A1 (en) * 2001-10-24 2003-05-01 Bea Systems, Inc. System and method for application flow integration in a portal framework
KR100484137B1 (ko) * 2002-02-28 2005-04-18 삼성전자주식회사 개선된 허프만 디코딩 방법 및 장치
KR20050053996A (ko) 2003-12-03 2005-06-10 삼성전자주식회사 허프만 코드를 효율적으로 복호화하는 방법 및 장치
US20050228816A1 (en) * 2004-04-13 2005-10-13 Bea Systems, Inc. System and method for content type versions
TWI324736B (en) * 2006-11-01 2010-05-11 Sunplus Technology Co Ltd Searial transmission controller, searial transmission decoder and searial transmission method thereof
TWI330473B (en) * 2006-11-24 2010-09-11 Primax Electronics Ltd Huffman decoding method
US8321326B2 (en) 2009-09-15 2012-11-27 Auerbach Group Llc Method and system for enhancing the efficiency of a digitally communicated data exchange
KR101725223B1 (ko) * 2011-03-25 2017-04-11 삼성전자 주식회사 저장 장치에서의 데이터 압축 방법
US9059731B2 (en) * 2013-10-21 2015-06-16 International Business Machines Corporation Boosting decompression in the presence of reoccurring Huffman trees
US9766888B2 (en) * 2014-03-28 2017-09-19 Intel Corporation Processor instruction to store indexes of source data elements in positions representing a sorted order of the source data elements
US10027346B2 (en) * 2015-05-11 2018-07-17 Via Alliance Semiconductor Co., Ltd. Hardware data compressor that maintains sorted symbol list concurrently with input block scanning
US10693495B2 (en) 2017-10-10 2020-06-23 The Boeing Company Data collection device with efficient data compression
KR102488129B1 (ko) 2018-02-05 2023-01-12 에스케이하이닉스 주식회사 고속으로 데이터를 인코딩하는 장치
CN112332854A (zh) * 2020-11-27 2021-02-05 平安普惠企业管理有限公司 霍夫曼编码的硬件实现方法、装置及存储介质
CN112737596A (zh) * 2021-01-07 2021-04-30 苏州浪潮智能科技有限公司 一种基于排序网络的动态霍夫曼编码方法、装置及设备

Family Cites Families (115)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4899149A (en) * 1986-02-28 1990-02-06 Gary Kahan Method of and apparatus for decoding Huffman or variable-length coees
US4813056A (en) 1987-12-08 1989-03-14 General Electric Company Modified statistical coding of digital signals
DE69329092T2 (de) 1992-10-13 2001-03-22 Nec Corp Huffman-Kode-Decodierungsschaltung
US5778371A (en) 1994-09-13 1998-07-07 Kabushiki Kaisha Toshiba Code string processing system and method using intervals
KR0139162B1 (ko) * 1994-11-30 1998-05-15 김광호 부호어재배정을 이용한 가변장부호화장치 및 복호화장치
US5875122A (en) 1996-12-17 1999-02-23 Intel Corporation Integrated systolic architecture for decomposition and reconstruction of signals using wavelet transforms
JP3346204B2 (ja) * 1996-12-26 2002-11-18 富士ゼロックス株式会社 可変長符号復号装置
GB2367223B (en) * 1997-01-21 2002-05-15 Fujitsu Ltd Data encoding method and apparatus and data decoding method and apparatus
US6009201A (en) 1997-06-30 1999-12-28 Intel Corporation Efficient table-lookup based visually-lossless image compression scheme
US6694061B1 (en) 1997-06-30 2004-02-17 Intel Corporation Memory based VLSI architecture for image compression
US5973627A (en) 1997-08-28 1999-10-26 Philips Electronics North America Corporation Variable length decoder with adaptive acceleration optimized by sub-grouping and cross-grouping the symbols having the highest probability of occurrence
US6009206A (en) 1997-09-30 1999-12-28 Intel Corporation Companding algorithm to transform an image to a lower bit resolution
US6160918A (en) 1997-10-02 2000-12-12 At&T Corp. Method and apparatus for fast image compression
US6091851A (en) 1997-11-03 2000-07-18 Intel Corporation Efficient algorithm for color recovery from 8-bit to 24-bit color pixels
US6130960A (en) 1997-11-03 2000-10-10 Intel Corporation Block-matching algorithm for color interpolation
US6151069A (en) 1997-11-03 2000-11-21 Intel Corporation Dual mode digital camera for video and still operation
US6285796B1 (en) 1997-11-03 2001-09-04 Intel Corporation Pseudo-fixed length image compression scheme
US6351555B1 (en) 1997-11-26 2002-02-26 Intel Corporation Efficient companding algorithm suitable for color imaging
US6094508A (en) 1997-12-08 2000-07-25 Intel Corporation Perceptual thresholding for gradient-based local edge detection
US6229578B1 (en) 1997-12-08 2001-05-08 Intel Corporation Edge-detection based noise removal algorithm
US6348929B1 (en) 1998-01-16 2002-02-19 Intel Corporation Scaling algorithm and architecture for integer scaling in video
US6215916B1 (en) 1998-02-04 2001-04-10 Intel Corporation Efficient algorithm and architecture for image scaling using discrete wavelet transforms
US6075470A (en) 1998-02-26 2000-06-13 Research In Motion Limited Block-wise adaptive statistical data compressor
US6392699B1 (en) 1998-03-04 2002-05-21 Intel Corporation Integrated color interpolation and color space conversion algorithm from 8-bit bayer pattern RGB color space to 12-bit YCrCb color space
US6211521B1 (en) 1998-03-13 2001-04-03 Intel Corporation Infrared pixel sensor and infrared signal correction
US6356276B1 (en) 1998-03-18 2002-03-12 Intel Corporation Median computation-based integrated color interpolation and color space conversion methodology from 8-bit bayer pattern RGB color space to 12-bit YCrCb color space
US6366694B1 (en) 1998-03-26 2002-04-02 Intel Corporation Integrated color interpolation and color space conversion algorithm from 8-bit Bayer pattern RGB color space to 24-bit CIE XYZ color space
US6366692B1 (en) 1998-03-30 2002-04-02 Intel Corporation Median computation-based integrated color interpolation and color space conversion methodology from 8-bit bayer pattern RGB color space to 24-bit CIE XYZ color space
US6154493A (en) 1998-05-21 2000-11-28 Intel Corporation Compression of color images based on a 2-dimensional discrete wavelet transform yielding a perceptually lossless image
US6040790A (en) * 1998-05-29 2000-03-21 Xerox Corporation Method of building an adaptive huffman codeword tree
US6124811A (en) 1998-07-02 2000-09-26 Intel Corporation Real time algorithms and architectures for coding images compressed by DWT-based techniques
US6233358B1 (en) 1998-07-13 2001-05-15 Intel Corporation Image compression using directional predictive coding of the wavelet coefficients
US6236765B1 (en) 1998-08-05 2001-05-22 Intel Corporation DWT-based up-sampling algorithm suitable for image display in an LCD panel
US5995210A (en) 1998-08-06 1999-11-30 Intel Corporation Integrated architecture for computing a forward and inverse discrete wavelet transforms
US6047303A (en) 1998-08-06 2000-04-04 Intel Corporation Systolic architecture for computing an inverse discrete wavelet transforms
US6178269B1 (en) 1998-08-06 2001-01-23 Intel Corporation Architecture for computing a two-dimensional discrete wavelet transform
US6166664A (en) 1998-08-26 2000-12-26 Intel Corporation Efficient data structure for entropy encoding used in a DWT-based high performance image compression
US6301392B1 (en) 1998-09-03 2001-10-09 Intel Corporation Efficient methodology to select the quantization threshold parameters in a DWT-based image compression scheme in order to score a predefined minimum number of images into a fixed size secondary storage
US6731807B1 (en) * 1998-09-11 2004-05-04 Intel Corporation Method of compressing and/or decompressing a data set using significance mapping
US6195026B1 (en) 1998-09-14 2001-02-27 Intel Corporation MMX optimized data packing methodology for zero run length and variable length entropy encoding
US6108453A (en) 1998-09-16 2000-08-22 Intel Corporation General image enhancement framework
US6236433B1 (en) 1998-09-29 2001-05-22 Intel Corporation Scaling algorithm for efficient color representation/recovery in video
US6625318B1 (en) 1998-11-13 2003-09-23 Yap-Peng Tan Robust sequential approach in detecting defective pixels within an image sensor
US6759646B1 (en) 1998-11-24 2004-07-06 Intel Corporation Color interpolation for a four color mosaic pattern
US6535648B1 (en) 1998-12-08 2003-03-18 Intel Corporation Mathematical model for gray scale and contrast enhancement of a digital image
US6151415A (en) 1998-12-14 2000-11-21 Intel Corporation Auto-focusing algorithm using discrete wavelet transform
US6215908B1 (en) 1999-02-24 2001-04-10 Intel Corporation Symmetric filtering based VLSI architecture for image compression
US6381357B1 (en) 1999-02-26 2002-04-30 Intel Corporation Hi-speed deterministic approach in detecting defective pixels within an image sensor
US6275206B1 (en) 1999-03-17 2001-08-14 Intel Corporation Block mapping based up-sampling method and apparatus for converting color images
US6377280B1 (en) 1999-04-14 2002-04-23 Intel Corporation Edge enhanced image up-sampling algorithm using discrete wavelet transform
US6574374B1 (en) 1999-04-14 2003-06-03 Intel Corporation Enhancing image compression performance by morphological processing
US6563948B2 (en) 1999-04-29 2003-05-13 Intel Corporation Using an electronic camera to build a file containing text
US6640017B1 (en) 1999-05-26 2003-10-28 Intel Corporation Method and apparatus for adaptively sharpening an image
US6697534B1 (en) 1999-06-09 2004-02-24 Intel Corporation Method and apparatus for adaptively sharpening local image content of an image
US6292114B1 (en) * 1999-06-10 2001-09-18 Intel Corporation Efficient memory mapping of a huffman coded list suitable for bit-serial decoding
US6628716B1 (en) 1999-06-29 2003-09-30 Intel Corporation Hardware efficient wavelet-based video compression scheme
US6600833B1 (en) 1999-07-23 2003-07-29 Intel Corporation Methodology for color correction with noise regulation
US6373481B1 (en) 1999-08-25 2002-04-16 Intel Corporation Method and apparatus for automatic focusing in an image capture system using symmetric FIR filters
US7065253B2 (en) 1999-09-03 2006-06-20 Intel Corporation Wavelet zerotree coding of ordered bits
US6658399B1 (en) 1999-09-10 2003-12-02 Intel Corporation Fuzzy based thresholding technique for image segmentation
US6625308B1 (en) 1999-09-10 2003-09-23 Intel Corporation Fuzzy distinction based thresholding technique for image segmentation
US6633610B2 (en) 1999-09-27 2003-10-14 Intel Corporation Video motion estimation
US6834123B2 (en) 2001-05-29 2004-12-21 Intel Corporation Method and apparatus for coding of wavelet transformed coefficients
US7106910B2 (en) * 1999-10-01 2006-09-12 Intel Corporation Color video coding scheme
US6956903B2 (en) 2001-05-29 2005-10-18 Intel Corporation Method and apparatus for three-dimensional wavelet transform
US6798901B1 (en) 1999-10-01 2004-09-28 Intel Corporation Method of compressing a color image
US6292144B1 (en) 1999-10-15 2001-09-18 Northwestern University Elongate radiator conformal antenna for portable communication devices
US6731706B1 (en) * 1999-10-29 2004-05-04 Intel Corporation Square root raised cosine symmetric filter for mobile telecommunications
US6813384B1 (en) 1999-11-10 2004-11-02 Intel Corporation Indexing wavelet compressed video for efficient data handling
US6628827B1 (en) 1999-12-14 2003-09-30 Intel Corporation Method of upscaling a color image
US6650688B1 (en) 1999-12-20 2003-11-18 Intel Corporation Chip rate selectable square root raised cosine filter for mobile telecommunications
US6757430B2 (en) 1999-12-28 2004-06-29 Intel Corporation Image processing architecture
US6748118B1 (en) 2000-02-18 2004-06-08 Intel Corporation Method of quantizing signal samples of an image during same
US6654501B1 (en) 2000-03-06 2003-11-25 Intel Corporation Method of integrating a watermark into an image
US6449380B1 (en) 2000-03-06 2002-09-10 Intel Corporation Method of integrating a watermark into a compressed image
US6738520B1 (en) * 2000-06-19 2004-05-18 Intel Corporation Method of compressing an image
US6775413B1 (en) 2000-09-18 2004-08-10 Intel Corporation Techniques to implement one-dimensional compression
JP3683252B2 (ja) * 2000-10-09 2005-08-17 サムスン エレクトロニクス カンパニー リミテッド 分割モードによる送信フレーム情報ビットの符号化装置及び方法
US6636167B1 (en) 2000-10-31 2003-10-21 Intel Corporation Method of generating Huffman code length information
US6563439B1 (en) 2000-10-31 2003-05-13 Intel Corporation Method of performing Huffman decoding
US6690306B1 (en) 2000-11-03 2004-02-10 Intel Corporation Method of generating a length-constrained huffman code
US6678708B1 (en) 2000-11-15 2004-01-13 Intel Corporation Method and apparatus for two-dimensional separable symmetric filtering
US6751640B1 (en) 2000-11-20 2004-06-15 Intel Corporation Method and apparatus for multiply-accumulate two-dimensional separable symmetric filtering
US6842181B2 (en) * 2000-11-27 2005-01-11 Intel Corporation Euler vector for color images
US6707928B2 (en) 2000-11-29 2004-03-16 Intel Corporation Method for block-based digital image watermarking
US20020063899A1 (en) 2000-11-29 2002-05-30 Tinku Acharya Imaging device connected to processor-based system using high-bandwidth bus
US6917381B2 (en) 2000-11-30 2005-07-12 Intel Corporation Color filter array and color interpolation algorithm
US20020118746A1 (en) 2001-01-03 2002-08-29 Kim Hyun Mun Method of performing video encoding rate control using motion estimation
US20020122482A1 (en) 2001-01-03 2002-09-05 Kim Hyun Mun Method of performing video encoding rate control using bit budget
US6662200B2 (en) 2001-01-03 2003-12-09 Intel Corporation Multiplierless pyramid filter
US6681060B2 (en) 2001-03-23 2004-01-20 Intel Corporation Image retrieval using distance measure
US20020174154A1 (en) 2001-03-26 2002-11-21 Tinku Acharya Two-dimensional pyramid filter architecture
US6766286B2 (en) 2001-03-28 2004-07-20 Intel Corporation Pyramid filter
US6889237B2 (en) 2001-03-30 2005-05-03 Intel Corporation Two-dimensional pyramid filter architecture
US6725247B2 (en) 2001-04-30 2004-04-20 Intel Corporation Two-dimensional pyramid filter architecture
KR20030008455A (ko) * 2001-07-18 2003-01-29 학교법인 포항공과대학교 질량분석기를 위한 시료 전처리 장치
US20030021486A1 (en) 2001-07-27 2003-01-30 Tinku Acharya Method and apparatus for image scaling
GB2378361B (en) * 2001-08-01 2004-10-13 Roke Manor Research Method for compression of data
US6653953B2 (en) 2001-08-22 2003-11-25 Intel Corporation Variable length coding packing architecture
US6891889B2 (en) 2001-09-05 2005-05-10 Intel Corporation Signal to noise ratio optimization for video compression bit-rate control
US6996180B2 (en) 2001-09-05 2006-02-07 Intel Corporation Fast half-pixel motion estimation using steepest descent
US20030063782A1 (en) 2001-09-13 2003-04-03 Tinku Acharya Method and apparatus to reduce false minutiae in a binary fingerprint image
US7136515B2 (en) 2001-09-13 2006-11-14 Intel Corporation Method and apparatus for providing a binary fingerprint image
US6795592B2 (en) 2001-09-13 2004-09-21 Intel Corporation Architecture for processing fingerprint images
US20030123539A1 (en) 2001-12-28 2003-07-03 Hyung-Suk Kim Method and apparatus for video bit-rate control
US6944640B2 (en) * 2001-12-28 2005-09-13 Intel Corporation Progressive two-dimensional (2D) pyramid filter
US20030194008A1 (en) * 2002-04-11 2003-10-16 Tinku Acharya Computationally fast and efficient DV to DVD transcoding
US7133555B2 (en) * 2002-08-02 2006-11-07 Intel Corporation Image color matching scheme
US20040042551A1 (en) * 2002-09-04 2004-03-04 Tinku Acharya Motion estimation
US7266151B2 (en) * 2002-09-04 2007-09-04 Intel Corporation Method and system for performing motion estimation using logarithmic search
US20040057626A1 (en) * 2002-09-23 2004-03-25 Tinku Acharya Motion estimation using a context adaptive search
US7075987B2 (en) * 2002-09-23 2006-07-11 Intel Corporation Adaptive video bit-rate control
US7274393B2 (en) * 2003-02-28 2007-09-25 Intel Corporation Four-color mosaic pattern for depth and image capture
US20040169748A1 (en) * 2003-02-28 2004-09-02 Tinku Acharya Sub-sampled infrared sensor for use in a digital image capture device
US20040174446A1 (en) * 2003-02-28 2004-09-09 Tinku Acharya Four-color mosaic pattern for depth and image capture

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
HUFFMAN,D.A.: A Method for the Construction of Minimum-Redundancy Codes. In: Proceedings of the IRE, Band 40, Nummer 9, S.1098-1101, 1952 *
HUFFMAN,D.A.: A Method for the Construction of Minimum-Redundancy Codes. In: Proceedings of the IRE, Band 40, Nummer 9, S.1098-1101, 1952 SCHWARTZ,E., KALLICK,B.: Generating a Canonical Prefix Encoding. In: Communication of the ACM, vol.7, number 3, March 1964, p.166-169
SCHWARTZ,E., KALLICK,B.: Generating a Canonical Prefix Encoding. In: Communication of the ACM, vol.7, number 3, March 1964, p.166-169 *

Also Published As

Publication number Publication date
DE10196847T1 (de) 2003-12-04
US20030210164A1 (en) 2003-11-13
GB0311325D0 (en) 2003-06-25
AU2002215320A1 (en) 2002-05-15
US6987469B2 (en) 2006-01-17
WO2002037690A2 (en) 2002-05-10
KR100708370B1 (ko) 2007-04-18
US7190287B2 (en) 2007-03-13
US20060087460A1 (en) 2006-04-27
TW538601B (en) 2003-06-21
GB2385758A (en) 2003-08-27
WO2002037690A3 (en) 2002-08-22
JP2004525537A (ja) 2004-08-19
JP4012065B2 (ja) 2007-11-21
GB2385758B (en) 2004-06-23
KR20030044066A (ko) 2003-06-02
KR100667293B1 (ko) 2007-01-10
US6636167B1 (en) 2003-10-21
CN1531781A (zh) 2004-09-22
KR20060064032A (ko) 2006-06-12

Similar Documents

Publication Publication Date Title
DE10196847B4 (de) Ein Verfahren zum Erzeugen von Huffman-Code-Längeninformationen
DE10196890B4 (de) Verfahren zum Ausführen einer Huffman-Decodierung
DE10120644B4 (de) Bilddatenverdichtungsverfahren und -vorrichtung, welche Bilddaten separat durch Modifizieren der Farbe verdichten
DE69725215T2 (de) Verfahren und Vorrichtung zur Komprimierung und Dekomprimierung von Schrifttypen
EP0393526B2 (de) Digitales Codierverfahren
DE2208664A1 (de) Verfahren zur Decodierung eines vorsatzfreien Verdichtungscodes veränderlicher Länge
DE3030255A1 (de) Verfahren zur uebermittlung von woertern und nachrichtenuebertragungssystem zu seiner durchfuehrung
DE60225785T2 (de) Verfahren zur codierung und decodierung eines pfades in der baumstruktur eines strukturierten dokuments
EP2197213A2 (de) Verfahren zur Verbesserung der Funktionalität der binären Repräsentation von MPEG-7 und anderen XML basierten Inhaltsbeschreibungen
EP1561281B1 (de) Verfahren zur erzeugung eines bitstroms aus einem indizierungsbaum
EP1323313B1 (de) Verfahren und anordnung zum übertragen eines vektors
DE10131801B4 (de) Verfahren zur Datenkompression und Navigationssystem
EP2823568B1 (de) Verfahren zur codierung eines datenstroms
DE3219892A1 (de) Verfahren zum komprimieren eines digitalisierten bildes
EP0427884B1 (de) Verfahren und Anordnung zum Komprimieren und Dekomprimieren von Daten
DE19653133C2 (de) System und Verfahren zur pre-entropischen Codierung
EP1186175B1 (de) Verfahren und vorrichtung zur komprimierung und dekomprimierung von daten
EP0417854B1 (de) Verfahren zur Erkennung von N unterschiedlichen Wortketten in einem Sprachsignal
DE10231970B3 (de) Verfahren zur Codierung von Positionen von Datenelementen in einer Datenstruktur sowie Vorrichtungen zur entsprechenden Codierung und/oder Decodierung
DE3113189A1 (de) "verfahren und vorrichtung zur umwandlung von digitalen zeichencodes, die von einem datenverarbeitungssystem empfangen oder geliefert werden"
EP1153481B1 (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
DE2259702A1 (de) Verfahren und schaltung zur codierung von zeichen variabler laenge mit minimaler redundanz unter verwendung bekannter binaerer codebaumstrukturen
WO2014114506A1 (de) Verfahren zur kompression von quelldaten unter nutzung von symmetrien und einrichtung zur durchführung des verfahrens
DE4432436C2 (de) Datenkompressionsverfahren und Vorrichtung zum Komprimieren von Daten
DE3904831C2 (de) Ein universelles homophones Codierverfahren

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law

Ref document number: 10196847

Country of ref document: DE

Date of ref document: 20031204

Kind code of ref document: P

8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20110502