DE10196847B4 - Ein Verfahren zum Erzeugen von Huffman-Code-Längeninformationen - Google Patents
Ein Verfahren zum Erzeugen von Huffman-Code-Längeninformationen Download PDFInfo
- 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
Links
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
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...
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 in1 gezeigten Daten. -
3 eine Tabelle ist, die einen zweiten Teil eines Ausführungsbeispiels der vorliegenden Erfindung veranschaulicht, nach der Initialisierung für die in2 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 in1 , 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 in2 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 in2 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 in3 gezeigt oder veranschaulicht. Bei diesem speziellen Ausführungsbeispiel enthält das erste Feld dieses Teils der Datenstruktur, das heißt des in3 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 in3 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: - 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.
- 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 in5 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 Weise7 die Endergebnisse der Codelängeninformationen, wenn dies aufgetreten ist. Folglich werden, wie es in7 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)
- 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.
- Verfahren nach Anspruch 1, wobei die Symbole in der Datenstruktur auf der Grundlage der Symbolhäufigkeit in abfallender Reihenfolge sortiert werden.
- 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.
- Verfahren nach Anspruch 1, wobei die Symbole in der Datenstruktur auf der Grundlage der Symbolhäufigkeit in ansteigender Reihenfolge sortiert werden.
- 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.
- 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.
- 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.
- 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.
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)
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)
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 |
-
2000
- 2000-10-31 US US09/704,392 patent/US6636167B1/en not_active Expired - Lifetime
-
2001
- 2001-10-09 KR KR1020067010255A patent/KR100708370B1/ko not_active IP Right Cessation
- 2001-10-09 DE DE10196847T patent/DE10196847B4/de not_active Expired - Fee Related
- 2001-10-09 CN CNA018182151A patent/CN1531781A/zh active Pending
- 2001-10-09 WO PCT/US2001/031440 patent/WO2002037690A2/en not_active Application Discontinuation
- 2001-10-09 AU AU2002215320A patent/AU2002215320A1/en not_active Abandoned
- 2001-10-09 KR KR1020037006043A patent/KR100667293B1/ko not_active IP Right Cessation
- 2001-10-09 JP JP2002540320A patent/JP4012065B2/ja not_active Expired - Fee Related
- 2001-10-09 GB GB0311325A patent/GB2385758B/en not_active Expired - Fee Related
- 2001-10-29 TW TW090126740A patent/TW538601B/zh not_active IP Right Cessation
-
2003
- 2003-06-03 US US10/454,553 patent/US6987469B2/en not_active Expired - Fee Related
-
2005
- 2005-12-06 US US11/296,016 patent/US7190287B2/en not_active Expired - Fee Related
Non-Patent Citations (3)
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 |