DE60200377T2 - Datenkompression - Google Patents

Datenkompression Download PDF

Info

Publication number
DE60200377T2
DE60200377T2 DE60200377T DE60200377T DE60200377T2 DE 60200377 T2 DE60200377 T2 DE 60200377T2 DE 60200377 T DE60200377 T DE 60200377T DE 60200377 T DE60200377 T DE 60200377T DE 60200377 T2 DE60200377 T2 DE 60200377T2
Authority
DE
Germany
Prior art keywords
context
data
symbols
coding
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60200377T
Other languages
English (en)
Other versions
DE60200377D1 (de
Inventor
Dr. Klaus Illgner
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Application granted granted Critical
Publication of DE60200377D1 publication Critical patent/DE60200377D1/de
Publication of DE60200377T2 publication Critical patent/DE60200377T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • 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/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • H04N19/647Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission using significance based coding, e.g. Embedded Zerotrees of Wavelets [EZW] or Set Partitioning in Hierarchical Trees [SPIHT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Measurement Of Radiation (AREA)
  • Investigating Or Analysing Biological Materials (AREA)
  • Surgical Instruments (AREA)
  • Diaphragms For Electromechanical Transducers (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft ein Verfahren zur Datenkompression und insbesondere, ohne jedoch darauf beschränkt zu sein, ein Verfahren zur Quantisierung und Entropiecodierung von Transformationskoeffizienten bei der Codierung von Multimediadaten
  • Hintergrund der Erfindung
  • Gegenwärtig werden für ein breit gefächertes Spektrum von Technologien, darunter für Kabelfernsehen, Videokonferenz und interaktive Dienste für Videohandys, Videocodierungssysteme entwickelt. Da die Fähigkeit von Kommunikationsnetzen zur Übertragung großer Datenmengen zunimmt, hat der Zugang zu interaktiven Video-/Audiosystemen zunehmend Verbreitung gefunden. Systeme und Standards, die in der Lage sind, diesen zunehmenden Bedarf an Datentransfer zu unterstützen, werden ebenfalls entwickelt.
  • Die Moving Pictures Expert Group (MPEG) ist eine Arbeitsgruppe von Forschern und Entwicklern, die in Zusammenarbeit mit der Internationalen Organisation für Standardisierung (ISO/IEC) an der Entwicklung von Standards für die codierte Darstellung von digitalem Audiu und Video arbeitet. Auch andere Standardisierungsgremien sind an der Entwicklung von Standards für digitales Audio und Video beteiligt, wie zum Beispiel die Internationale Fernmeldeunion (ITU). Gegenwärtig sind diese Normungsgremien für die Schaffung und Implementierung verschiedener Audio- und Video-Standards verantwortlich, einschließlich von Komprimierungsalgorithmen, Verarbeitungsschemata und Authoring-Umgebungen.
  • Die MPEG hat entwickelt: den Standard MPEG-1 zum Speichern und Wiederauffinden von Bewegtbildern und Audio; den Standard MPEG-2 für digitales Fernsehen; und unlängst den Standard MPEG-4 für Multimedia-Anwendungen. Die MPEG entwickelt gegenwärtig MPEG-7, einen Standard zur Inhaltsdarstellung für Schnittstellen zur Multimedia-Inhaltsbeschreibung.
  • Mit MPEG-4 wird ein objektbezogener Codierungsstandard bereitgestellt, welcher Autoren, Diensteanbietern und Endbenutzern von in hohem Maße interaktiven Multimedia-Inhalten Flexibilität ermöglicht. Obwohl MPEG-4 für natürliche Audio- und Videoinhalte (aufgezeichnetes Audio und Video) nach wie vor geeignet ist, ermöglicht der Standard nunmehr auch die codierte Darstellung von synthetischen (mittels Computer erzeugten) Audio- und Videoobjekten (AVO). MPEG-4 wurde zur Bereitstellung der notwendigen Mittel entwickelt, um zu spezifizieren, wie AVO, sowohl natürliche als auch synthetische, in Raum und Zeit zusammengesetzt werden können, so dass sie eine interaktive Übertragung ermöglichen. Ein weiterer Schwerpunkt bei der Entwicklung des Standards MPEG-4 war die Ausführung der Codierung und Übertragung solcher Inhalte innerhalb vielfältiyer unterschiedlicher Szenarien. Der Standard wurde infolgedessen so gestaltet, dass er einem "universellen Zugang" zu Multimedia-Informationen Rechnung trägt, indem er mögliche bandbreitenspezifische Probleme berücksichtigt, die bei einer großen Vielfalt von Netzsituationen auftreten.
  • Strearning einzelner Objekte ist eine weitere Entwicklung innerhalb von MPEG-4. Innerhalb einer gegebenen MPEG-9-Szene können die Videoobjekte aus einer Reihe von Videoobjekten einzeln zum Computer eines Endbenutzers gestreamt werden. Jeder dieser einzelnen Streams kann mit einem Zeitstempel versehen werden, um eine Synchronisation zu ermöglichen. Da die einzelnen Elemente unabhängig voneinander gestreamt werden, können sie entsprechend den interaktiven Erfordernissen der Szene und der Beteiligung des Benutzers an dieser Szene leicht weggelassen oder hinzugefügt werden.
  • Aus dem Vorhandensein von mehreren Streams ergibt sich die Notwendigkeit von Informationen bezüglich des Netzes selbst: Zum Beispiel könnte die Synchronisation einer gesamten Szene gefährdet werden, falls eine Überlastung auftritt. Um potenzielle Probleme im Zusammenhang mit Überlastungen zu umgehen, hat MPEG-4 innerhalb eines jeden Streams eine Menge von Deskriptoren eingefügt, welche Informationen betreffs der Anforderungen im Hinblick auf die erforderliche Decodierungs-Software, die notwendigen Timing-Informationen und die erforderlichen Dienstgüte (quality of service, QoS), damit die Szene erfolgreich gestreamt werden kann, zur Verfügung stellen. Demzufolge ist der Standard MPEG-4 so beschaffen, dass er zu einer flexiblen Übertragung von Multimedia-Inhalten in vielfältigen Betriebsumgebungen und Netzsituationen in der Lage ist.
  • Der Standard MPEG-4 ist außerdem so beschaffen, dass er die Fähigkeit aufweist, Informationen betreffs der Komplexität der übertragenen Szenen, der erforderlichen QoS für die Übertragung dieser Szenen und der Synchronisation der Elemente innerhalb der Szene zur Verfügung zu stellen.
  • Ein wichtiges Merkmal der Datenspeicherung und des Datentransfers ist der Komprimierungsgrad der Daten. Durch Datenkompression verringert sich die Bandbreite, die zum Übertragen und Speichern von Daten erforderlich ist. Eine Kompression ist ein reversibler Vorgang, bei welchem Daten aus einem nicht komprimierten ursprünglichen Datenformat in ein komprimiertes Format, welches weniger Bits benötigt, umgewandelt werden. Daten, welche komprimiert worden sind, können effizienter gespeichert oder übertragen werden. Wenn es erforderlich ist, kann der Vorgang rückgängig gemacht werden, und die ursprünglichen, nicht komprimierten Daten können wiederhergestellt werden. Bei der Wiederherstellung oder Rekonstruktion der ursprünglichen Daten kann man zwischen verlustfreier und verlustbehafteter Rekonstruktion unterscheiden. In einem verlustbehafteten Kumprimierungssystem können die Quelldaten nicht perfekt rekonstruiert werden; in einem verlustfreien System ist dies möglich. Zweifellos ist eine verlustfreie Kompression dort am besten geeignet, wo eine vollkommene Rekonstruktion wünschenswert ist, wie zum Beispiel bei der Kompression von Textdaten oder bei der Kompression von medizinischen oder künstlerischen Bildern. Dagegen kann in anderen Fällen ein gewisser Grad an Informationsverlust durchaus hinnehmbar sein, wie zum Beispiel bei der Kompression der meisten Standbilder oder von Audio- oder Videodaten.
  • Ein Komprimierungsvorgang kann als aus zwei Teilschritten bestehend angesehen werden. Der erste Schritt stellt einen Codierermodell-Schritt dar, in welchem Redundanz und andere irrelevante Details minimiert werden. Der zweite Schritt ist ein Entropiecodierungs-Schritt, in welchem statistische Eigenschaften ausgenutzt werden, um eine sehr stark reduzierte Menge von Symbolen zu erzeugen, welche die aus den ursprünglichen nicht komprimierten Daten zusammengefassten Informationen repräsentieren und in welchen die Symbole selbst so entropiecodiert sind, dass eine größtmögliche Effizienz der Codierung bewirkt wird.
  • Durch eine sorgfältige Wahl des Codes können die statistischen Eigenschaften der Symbole, zum Beispiel die Verteilung der Nullen und Einsen in der binären Darstellung der Symbole, verwendet werden, um die Informationen der ursprünglichen Daten noch weiter zu komprimieren. Aus aufeinanderfolgenden Nullen bestehende Abschnitte können auf effiziente Weise kodiert werden, indem anstelle der Nullen selbst eine Zahl übertragen wird, welche die Länge des jeweiligen Abschnitts angibt. Dieses Verfahren ist als Lauflängencodierung (run-length coding, RLC) bekannt.
  • RLC wird oft als Vorcodierungs-Verfahren verwendet, um die Daten für ein Verfahren vorzubereiten, bei welchem die Häufigkeit des Auftretens bestimmter Symbole ausgenutzt wird. Bei der Codierung mit variabler Länge (Variable-Längen-Codierung, variable length coding, VLC) werden von null verschiedene Koeffizienten codiert, indem die häufiger auftretenden Symbole mit kurzen Codes (Codes, die kürzere Bitlängen aufweisen) und weniger häufig auftretende Symbole mit längeren Codes dargestellt werden. Variable-Längen-Codierungen sind nicht unbedingt statisch, und wenn sich bei den Daten, welche dargestellt werden, die die Häufigkeit betreffenden Eigenschaften ändern, kann das VLC-Verfahren so gestaltet werden, dass es ermöglicht, die Zuweisung von Codes zu Symbolen dementsprechend anzupassen. Die aktuelle Menge von Zuweisungen wird in einer VLC-Tabelle gespeichert.
  • VLC kann anhand einer Analogie zur Codierung von Text für eine Übertragung über einen Telegrafendraht unter Verwendung des Morsealphabets veranschaulicht werden. Beim Codieren umfangreicher, in englischer Sprache abgefasster Textpassagen wird ein Muster der Häufigkeitsverteilung sichtbar. Man erkennt, dass gewisse Buchstaben sehr häufig vorkommen, zum Beispiel E, T, A, O und N, und gewisse andere Buchstaben vergleichsweise selten, zum Beispiel Q und Z. Damit Telegrafistinnen weniger Zeit benötigen, um Nachrichten zu übermitteln, weist das Morsealphabet seine kürzesten Codes häufiger vorkommenden Buchstaben und wesentlich längere Codes den selteneren Buchstaben zu. Das Morsealphabet ist ein Beispiel für eine statische VLC.
  • Als Entropiecodierungs-Verfahren weist die Variable-Längen-Codierung (VLC) Vorteile und Nachteile auf. VLC-Tabellen lassen sich leicht im Offline-Betrieb erstellen, zum Beispiel mittels des Huffman-Algorithmus. Das Codieren mit Hilfe von VLC-Tabellen ist sehr einfach, da das Codieren einfach im Indizieren einer umfangreichen Tabelle mit einer Eintragung für jedes mögliche Symbol besteht. Das Decodieren ist etwas komplexer, da es die Zerlegung (Parsing) des Bitstroms und die Identifizierung von Codewörtern variabler Länge erfordert. Falls keine Einschränkungen betreffs des Speicherplatzes vorhanden sind, kann das Dekodieren ebenfalls als eine Nachschlagtabelle realisiert werden.
  • VLC-Tabellen benötigen jedoch Speicherplatz. Die statistischen Maßzahlen der Symbole, die Wahrscheinlichkeiten des Vorkommens von eingegebenen Symbolen, sind bei verschiedenen Folgen von Symbolen unterschiedlich. Im Beispiel des Morsealphabets kann die darzustellende Sprache eine andere sein, etwa Polnisch anstelle von Englisch, oder die Art der darzustellenden Informationen kann sich ändern, zum Beispiel Börsendaten anstelle von Geschäftsbriefen. Eine einzige Tabelle kann nur einen mehr oder weniger gut übereinstimmenden Durchschnitt widerspiegeln und wird folglich die Effizienz der Kompression begrenzen. Die Verwendung mehrerer Tabellen für unterschiedliche statistische Maßzahlen von Symbolen ist nicht realisierbar, da dies eine erhebliche Menge an Speicherplatz zum Speichern sämtlicher Tabellen, ungeachtet der Herangehensweise beim Codieren (oder Decodieren), erfordern würde. Die zugrundeliegenden statistischen Maßzahlen der VLC-Tabellen müssen daher online berechnet oder gemessen werden, um eine Anpassung an die zwischen Folgen von Symbolen gemessenen statistischen Änderungen vorzunehmen, in einem als "adaptive VLC" bekannten Prozess. Die Berechnung oder Messung erhöht nicht nur den Rechenaufwand dadurch, dass jedes Mal eine vollständige neue Codetabelle generiert. werden muss, sondern birgt auch das Risiko in sich, dass im Falle von Übertragungsfehlern Codierer/Decodierer-Fehlanpassungen auftreten werden. Die potenzielle Möglichkeit von Fehlanpassungen ist der Grund, weshalb diese Herangehensweise nicht mehr sehr verbreitet ist.
  • In VLC-Tabellen ist wenigstens ein Bit unveränderlich dem wahrscheinlichsten Codewort zugewiesen. Diese Zuweisung an sieh stellt eine erhebliche Quelle von Redundanz dar. Das Codieren von mehr als einem Symbol gleichzeitig würde die Leistungsfähigkeit verbessern, jedoch gleichzeitig die Größe der VLC-Tabelle beträchtlich erhöhen.
  • Bei einer anderen Herangehensweise an die Entropiecodierung wird eine kontextbezogene arithmetische Codierung verwendet. Arithmetische Codierung ist zu einem Standardverfahren der Entropiecodierung geworden und ist nunmehr als Option in der ITU-T Empfehlung II.263 enthalten.
  • Arithmetische Codierung ist ein Verfahren zur Codierung von Daten mit Hilfe einer variablen Anzahl von Bits. Die Anzahl der zum Codieren der einzelnen Symbole verwendeten Bits variiert entsprechend der dem betreffenden Symbol zugewiesenen Wahrscheinlichkeit. Für Symbole mit geringer Wahrscheinlichkeit werden viele Bits verwendet, für Symbole mit hoher Wahrscheinlichkeit weniger Bits. Im Unterschied zur Huffman-Codierung müssen arithmetische Codierer jedoch nicht unbedingt eine ganze Anzahl von Bits zur Codierung der einzelnen Symbole verwenden. Falls die optimale Anzahl von Bits für ein Symbol 2,4 beträgt, würde ein Huffman-Codierer wahrscheinlich 2 Bits pro Symbol verwenden, während der arithmetische Codierer eine Zahl verwenden kann, sie sehr nahe bei 2,4 liegt.
  • Bei der arithmetischen Codierung wird eine Folge von Symbolen X1, X2, ..., Xn als ein Vektor der Reihe nach von links nach rechts verarbeitet. Die Symbole werden nicht durch einen String von Codebits ersetzt, sondern es wird vielmehr jedem Symbol Xi ein anderes Teilintervall Ii des Einheitsintervalls [0, 1] zugewiesen.
  • Die Teilintervalle werden so gewählt, dass I1 ⊃ I2 ⊃ ... ⊃ In gilt, und so, dass Ii aus den vorher verarbeiteten Symbolen X1, X2, ..., Xn–, in Verbindung mit dem aktuellen Symbol Xi bestimmt wird. In den Fällen, in denen die Zuweisung von Teilintervallen entsprechend Änderungen der Wahrscheinlichkeiten von Symbolen in den zuvor verarbeiteten Symbolfolgen geändert wird, wird die arithmetische Codierung als adaptiv bezeichnet. Nachdem das letzte Intervall In bestimmt worden ist, wird der gesamten Folge ein Codewort (B1, B2, ..., BL) zugewiesen, derart, dass die rationale Zahl B1B2, ... BL, welche durch B1B2 ... BL, = B1/2 + B2/9 + ... + BL/2L gegeben ist, ein Punkt im Intervall In ist.
  • Zusammenfassend ist festzustellen, dass VLC (Huffman-Codes) und arithmetische Codierung, vom theoretischen Standpunkt aus betrachtet, dieselbe Effizienz liefern. Die arithmetische Codierung ist jedoch in praktischen Anwendungen effizienter. Die größere Effizienz ist darauf zurückzuführen, dass die minimale Anzahl von Bits pro Symbol bei der arithmetischen Codierung kleiner als eins sein kann. Tatsächlich werden bei der arithmetischen Codierung die Nachkommabits von aufeinanderfolgenden Symbolen kombiniert. Das bedeutet, dass ein arithmetischer Codierer eine Nachricht gewöhnlich unter Verwendung von weniger Bits codieren kann als ein Huffman-Codierer.
  • Anstatt für jedes neue statistische Verteilungsmuster neue Tabellen generieren zu müssen, kann arithmetische Codierung selbstanpassend bezüglich des ankommenden Datenstroms sein.
  • Ferner müssen bei arithmetischer Codierung keine Codetabellen gespeichert werden. Sei der Betrachtung eines Alphabets aus möglichen Eingangssymbolen müssen nur die Wahrscheinlichkeiten des Auftretens der einzelnen Symbole des Alphabets bekannt sein. Sofern das Alphabet klein bleibt, wird kein wesentlicher Speicherplatz benötigt. Wie weiter unten nachgewiesen wird, wird dieses Merkmal bei der kontextbezogenen Bitebenencodierung ausgenutzt, wo das Alphabet sehr klein ist. und für jeden Kontext eine andere statistische Maßzahl verwendet wird.
  • Die Kontextwahl ist so beschaffen, dass statistische Abhängigkeiten zwischen benachbarten Symbolen ausgenutzt werden, was wiederum zu einer Erhöhung der Wahrscheinlichkeit eines Symbols (oder einer begrenzten Anzahl von Symbolen) führt. Diesen Symbolen mit erhöhter Wahrscheinlichkeit werden dann sehr kurze theoretische Codewörter zugewiesen (weniger als ein Bit pro Symbol, wenn aufeinanderfolgende Symbole kombiniert werden). Für diese Symbole können die Nachkommabits mittels arithmetischer Codierung auf effiziente Gleise codiert werden, so dass sich sehr kurze reale Codewörter ergeben.
  • Die arithmetische Codierung weist jedoch einige erhebliche Mängel auf: insbesondere eine Komiplexität, welche im Vergleich zur Entrcpiecodierung mittels RLC/VLC hoch ist. Ferner sind arithmetische Codes sehr empfindlich gegenüber Bitfehlern. Während VLC-Funktinnen so angepasst werden können, dass sie Merkmale einer automatischen Resynchronisation besitzen oder zumindest eine Identifizierung von Decodierungsfehlern ermöglichen, ist dies bei arithmetischen Codes nicht möglich.
  • Es sind auch andere Entropiecodierungs-Verfahren bekannt. Diese Verfahren sind jedoch in den derzeit existierenden Standards nicht verankert. Allgemein gesagt, beruhen sie auf dem Abtasten der Bits des ankommenden Datenstroms in einer vordefinierten Reihenfolge vor der Huffman-Codierung.
  • In Proc. Data Compression Conf., 1998, Los Alamitos, CA, USA, 30. März – 1. April 1998, IEEE Computer Soc., Seiten 408–417, wird eine auf nach Bitebenen geschichteten Transformationskoeffizienten beruhende Kontextwahl offenbart, wobei statistische Abhängigkeiten zwischen benachbarten Pixeln ausgenutzt werden, um ausgewählte Kontext-Muster zu erzeugen. Die erzeugten Bitströme pro Bitebene werden Golomb-codiert.
  • Mit der vorliegenden Erfindung wird beabsichtigt, ein verbessertes Codierungsschema bereitzustellen. Insbesondere wird mit der vorliegenden Erfindung beabsichtigt, ein Codierungsschema bereitzustellen, welches eine verringerte Abhängigkeit von umfangreichen Tabellen aufweist, und einen einfachen und schnellen Codierungs- und Decodierungs-Mechanismus bereitzustellen. Ferner wird mit der vorliegenden Erfindung beabsichtigt, ein Codierungsschema bereitzustellen, welches eine gute Fähigkeit zur Anpassung an unterschiedliche statistische Merkmale von Signalen, die Fähigkeit zum Erkennen von Bitfehlern/Decodierungsfehlern und die Fähigkeit, durch Ausnutzung statistischer Abhängigkeiten weniger als ein Datenbit pro Symbol zuzuweisen, aufweist.
  • Zusammenfassung der Erfindung
  • Gemäß einem Aspekt der vorliegenden Erfindung wird ein Verfahren zur Codierung von Quelldaten wie in Ansprurch 1 definiert bereitgestellt, welches umfasst: Dekorrelieren der Quelldaten, um Transformationskoeffizienten-Informationen zu erzeugen; Zerlegen der besagten Transformationskoeffizienten-Informationen in eine Vielzahl. von Bitebenen, wobei die besagte Vielzahl von Bitebenen wengstens eine am wenigsten signifikante Bitebene umfasst; Wählen von Kontext aus den Bitebenen, um eine Vielzahl von Kontext-Levels zu erzeugen; und für wenigstens einige dieser vielen Kontext-Levels Anwenden von Lauflängen-Vorcodierung, um Folgen von vorcodierten Symbolen zu erzeugen, und anschließend Codieren der besagten vorcodierten Symbolfolgen mittels eines analytischen Entropiecodierungs-Schemas.
  • Das analytische Entropiecodierungs-Schema ist ein Golomb-Codierungsschema.
  • Die Symbolfolgen sind vorzugsweise binäre Symbolfolgen.
  • Das Zerlegen in Bitebenen wird vorteilhafterweise mittels der Zero-Tree-Technik durchgeführt.
  • Gemäß einem weiteren Aspekt der vorligenden Erfindung wird eine Datencodierungs-Vorrichtung wie in Anspruch 6 dargelegt bereitgestellt.
  • Der Schritt der Kontextwahl beinhaltet vorzugsweise das Messen der Häufigkeit von Nullen oder, als andere Möglichkeit, von Einsen für jeden Kontext aus einer Vielzahl von Kontexten, das Erzeugen eines Wahrscheinlichkeitsmodells und das Vergleichen der gemessenen Häufigkeit von Nullen für jeden der Kontexte mit dem Wahrscheinlichkeitsmodell. Ein ausgewählter Kontext wird vorteilhafterweise gewählt, indem festgestellt wird, welcher der verfügbaren Kontexte am besten zu dem Wahrscheinlichkeitsmodell passt, für welches ein Golomb-Code der Ordnung in optimal ist.
  • Kurze Beschreibung der Figuren
  • Die Erfindung wird beim Studium der nachfolgenden Beschreibung und der auf den beigefügten Zeichnungsblättern dargestellten Figuren besser verständlich, und verschiedene weitere Aspekte und Merkmale der Erfindung können dabei offensichtlich werden, wobei:
  • 1 ein Blockschaltbild eines Prozesses der Codierung von Quelldaten zeigt, bei dem Variable-Längen-Codierung zur Anwendung kommt;
  • 2A ein Blockschaltbild eines Prozesses der Codierung von Quelldaten zeigt, wie er zum Beispiel im Profil MPEG-4 FGS verwendet wird;
  • 2B ein Blockschaltbild eines modifizierten Prozesses der Codierung von Quelldaten mit kontext-selektiver adaptiver arithmetischer Codierung zeigt; und
  • 3 ein Blockschaltbild eines Prozesses der Codierung von Quelldaten gemäß der vorliegenden Erfindung zeigt.
  • Ausführliche Beschreibung der vorliegenden Erfindung
  • 1 zeigt schematisch ein Flussdiagramm der Schritte bei einem wohlbekannten Verfahren der Datenkompression. Im Codierermodell-Schritt wird zuerst die Redundanz so weit wie möglich verringert. Zu diesem Zweck wird eine Redundanzminderungs-Funktion, zum Beispiel eine diskrete Kosinustransformation (discrete cosine transform, DCT), auf die ursprünglichen Daten angewendet. Redundanzminderung wird in der Literatur zur Videocodierung oft als Dekorrelieren bezeichnet, da die auf die ankommenden Daten angewendeten Transformationen die räumliche Korrelation zwischen benachbarten Pixeln des ursprünglichen Bildes durcheinander bringen.
  • Die Redundanzminderungs-Funktion gibt eine reduzierte Menge von Transformationskoeffizienten aus, welche jedoch noch immer eine gewisse Menge an subjektiv irrelevanten Details enthalten. Die irrelevanten Daten werden dann durch Anwendung einer Quantisierungsfunktion entfernt. Das Entfernen irrelevanter Daten ist unumkehrbar und hat einen Gesamtverlust an Information zur Folge.
  • Der Informationsverlust ist in 1 schematisch durch die Einführung eines Merkmals dargestellt, das unter der Bezeichnung Quantisieror bekannt ist. Quantisierer haben, wie der Name vermuten lässt, die Wirkung, dass sie Werte "runden", d. h. in Wirklichken die Anzahl der Symbole, die zur Darstellung der ursprünglichen Werte der Daten verwendet werden, im Vergleich zu dem "Alphabet" möglicher Werte, die von Transformationskoeffizienten angenommen werden, verringern. Quantisierer erzeugen einen Ausgang in Form von Quantisierer-Level-Symbolen.
  • Statistische Abhängigkeiten existieren zwischen den Quantisierer-Levels nach wie vor. Mit dem anschließenden Schritt der Entropiecodierung wird versucht, diese statistischen Abhängigkeiten auszunutzen.
  • Eine Lauflängenvorcodierungs-Funktion (RLC) wird auf die Quantisierer-Level-Symbole angewendet, und durch Ausnutzung statistischer Abhangigkeiten zwischen den Level-Symbolen reduziert sie die Anzahl der Bits, die zur Darstellung der ursprünglichen Daten erforderlich sind, noch weiter. Hauptsächlich werden "Läute" (runs), d. h. aus Wiederholungen ein und desselben Quantisierer-Level-Symbols bestehende Abschnitte, als (kürzere) Laufiängen-Symbole dargestellt, die eine feste Bitlänge besitzen.
  • Die Lauflängen-Symbole werden weiter verdichtet, indem speziell entwickelte Codetabellen zur Codierung mit variabler Länge angewendet werden, zum Beispiel unter Verwendung von Huffman-Codierung. Die ungleichen Wahrscheinlichkeiten des Auftretens der einzelnen Lauflängen-Symbole ermöglichen eine Entropiecodierung durch Zuweisung des kürzesten Codes variabler Länge (VLC) zu dem am häufigsten auftretenden Lauflängen-Symbol.
  • Das oben beschriebene Komprimierungsverfahren hat zahlreiche Anwendungen, einschließlich Standbild- und Videocodierung und insbesondere einschließlich des wohlbekannten Standards JPEG.
  • Bei einer anderen Form der Codierung, welche gegenwärtig im Profil DPEG-4 FGS und im zukünftigen Standard JPEG 2000 enthalten ist, werden die reduzierten Transformationskoeffizienten vom Ausgang einer DCT-Funktion übernommen, und es und zuerst Bitebenencodierung und dann Vorcodierung für Abschnitte mit sich wiederholenden identischen Werten angewendet, und schließlich werden entsprechend der Wahrscheinlichkeit des Auftretens der Lauflängen-Symbole Codes variabler Länge zugewiesen. Diese Form der Codierung kann als eine spezifische Ausführungsform des in 1 dargestellten Schemas angesehen werden, wobei der Quantisierer ein Bitebenen-Zerleger (bit-plane slicer) ist. wie der Leser leicht einsehen wird, besteht der Effekt des Weglassens der am wenigsten signifikanten Bitebenen, die von einem Bitebenen-Zerleger erzeugt wurden, darin, die Werte der Transfomationskoeffizienten zu runden und dadurch die Anzahl der Symbole, die zur Darstellung des Datenstroms benötigt werden, zu verringern. Ein Blockschaltbild des Ablaufs des Profils MPEG-4 FGS ist in 2A dargestellt.
  • 2B zeigt ein Flussdiagramm der Schritte eines anderen wohlbekannten Verfahrens der Datenkompressicn. Hier wird die Entropiecodierung mittels kontextbezogener arithmetischer Codierung erreicht, statt mittels des RLC/VLC-Schemas von 2A. Zu diesem Zweck wird der von 1 her bekannte Quantisierer erneut durch einen Mechanismus zum Zerlegen von Transformatinnskoeffizienten in Bitebenen ersetzt.
  • Ein entscheidender Aspekt für die nachfolgende arithmetische Codierung besteht darin, ein kleines Symbolalphabet beizubehalten. Statistische Abhängigkeiten werden anschlielßend mit Hilfe eines Kontextwahl-Mittels gewählt, welches in mehreren Kontext-Levels verlaufende Wege )"Multilevel-Kontext-Wege") zu dem nachfolgenden Entropiecodierungs-Mechanismus zur Verfügung stellt. Mit der Wahl eines bestimmten Kontexts wird versucht, das aktuelle Symbol anhand seiner benachbarten Symbole vorherzusagen. Die hohe Wahrscheinlichkeit des Auftretens des aktuellen Symbols in einem spezifischen Kontext kann dann von einem nachfolgenden Entropiecodierungs-Mechanismus auf effiziente Weise ausgenutzt werden. In dem in 2B dargestellten Fall ist der nachfolgende Entropiecodierungs-Mechanismus ein Mechanismus zur adaptiven arithmetischen Codierung.
  • Es existieren Varianten von Bitebenen-Zerlegungs-Mechanismen, zum Beispiel die Zero-Tree-Technik.
  • Nunmehr wird als Beispiel die Art und Weise der Ausführung der Erfindung beschrieben, die von den Erfindern als die beste angesehen wird. In der folgenden Beschreibung werden zahlreiche spezielle Einzelheiten dargelegt, um ein umfassendes Verständnis der vorliegenden Erfindung zu ermöglichen. Für Fachleute ist jedoch offensichtlich, dass die vorliegende Erfindung mit Änderungen in den spezifischen Details in die Praxis umgesetzt werden kann.
  • Es wird nun auf 3 Bezug genommen; sie zeigt ein Blockschaltbild eines Prozesses 300 zum Codieren von Bilddaten gemäß der vorliegenden Erfindung. Auf bekannte Weise werden Pixelwert-Daten in einen Redundanzminderungs-Prozessor 302 eingegeben; in 3 ist der Redundanzminderungs-Prozessor eine DCT-Funktion. Der Redundanzminderungs-Prozessor 302 erzeugt redundanzgeminderte Koeffizienten. Ein Prozessor zur Reduktion irrelevanter Daten 304 übernimmt die redundanzgeminderten Koeffizienten als Eingang. Die Reduktion irrelevanter Daten wird günstigcrweise mittels eines Bitebenen-Zerlegers durchgeführt. Aus dem Ausgang des Prozessors zur Reduktion irrelevanter Daten 304 werden in einem Kontextwahl-Mittel 308 statistische Abhängigkeiten gewählt, um dadurch "Multilevel kontext-Wege" in einem Entropiecodierungs-Mechanismus 310 zur Verfügung zu stellen.
  • Wenn man die 2B und 3 vergleicht, bemerkt man, dass sich die beiden Codierungsverfahren hinsichtlich ihrer Entropiecodierungs-Mechanismen unterscheiden. Bei dem erfindungsgemäßen Verfahren von 3 empfängt ein Lauflängenvorcodierer 312 auf jedem Kontert-Level Eingabedaten. Danach gibt der Lauflängenvorcodierer 312 Lauflängen-Symbole aus und übermittelt. die Symbole zu einem analytischen Entropiecodierer 314. Es ist anzumerken, dass sich der Kontextwahl-Schritt in 2B grundlegend von dem in 3 unterscheidet. Bei der vorliegenden Erfindung ermöglicht die Kontextwahl eine schrittweise Codierung und Decodierung.
  • Um den Unterschied zu veranschaulichen, betrachten wir eine zweidimensionale Anordnung von Symbolen, welche das folgende Aussehen besitzt:
    Figure 00130001
  • X bezeichnet das zu codierende Pixel. Im einfachsten Fall einer binären Codierung ist der Wert an jeder Position, a, b, c usw., entweder '0' oder '1'. Ein Kontext-Muster wird gebildet, indem die Werte ausgewählter Positionen betrachtet werden. Aus Gründen der Einfachheit besteht das Kontext-Muster in diesem Beispiel nur aus den schattierten Positionen, nämlich den Positionen 'c' und 'g' (grau hinterlegt).
  • Ein "Kontext" ist in diesem Beispiel eine einzelne Permutation der Werte an den Positionen des Kontext-Musters. Indem wir alle möglichen Permutationen betrachten, erhalten wir die folgende Tabelle:
    Figure 00130002
  • Das in 3 dargestellte Verfahren der Kontextwahl ist von Natur aus an den nachfolgenden Golomb-Code-Schritt gebunden. Für jeden Kontext messen wir die Häufigkeit von X = '0' und X = '1'.
  • Ausgehend von dieser gemessenen Häufigkeit schätzen wir den Parameter m des Golomb-Codes. Das Ziel besteht darin, Kontexte so zu wählen, dass die gemessene Häufigkeit von '0' für jeden Kontext dem Wahrscheinlichkeitsmodell, für welches der Golomb-Code der Ordnung m optimal ist, möglichst nahe kommt.
  • Im Gegensatz dazu zielt der herkömmliche Schritt der Kontextwahl von 2B darauf ab, die Wahrscheinlichkeit dafür, dass X = '0' (oder '1') gefunden wird, zu maximieren.
  • Bei der in 3 dargestellten Ausführungsform verwendet der analytische Entropiecodierer 37.9 Golomb-Codes (GC). Nachdem die Entropiecodierung durchgeführt worden ist, werden die Signale in einem einzigen Bitstrom gestreamt.
  • Bei anderen Ausführungsformen der Erfindung muss die Quelle des Symbolstroms, mit welchem zuerst der Lauflängen-Prozessor und danach der analytische Entropiecodierer operiert, nicht auf die speziellen Stufen begrenzt sein, die in 3 dargestellt sind. Der Symbolstrom kann im Ergebnis der Abtastung einer binären Abbildung zur Verfügung gestellt werden oder das Ergebnis einer Zerlegung von Koeffizienten in Bitebenen, gefolgt von der Anwendung von geeignet gestaltetem Kontext, sein. Der beschriebene Symbolstrom beruht auf Transformationskoeffizienten, kann jedoch auf Daten beliebigen Typs erweitert werden, einschließlich: diskreter Kosinus, ganzzahlige Kosinus-Transformation (integer cosine transform, ICT), finite Fourier- oder Wavelet-Transformationskoeffizienten; Bildintensitätswerte; oder sogar zwei- oder dreidimensionale Verwaltungsinformatinnen, zum Beispiel MPEG-4-Deskriptoren.
  • Die beschriebene Vorgehensweise kann auf jede Art von zweidimensionaler Ebene oder dreidimensionalem Feld von binären oder sogar nichtbinären Symbolen verallgemeinert werden. Mit. diesem Verfahren kann ein Blookcodierungsmuster (coded block pattern, CBP) codiert werden.
  • Nachfolgend werden die einzelnen Prozesse, die von den Prozessoren ausgeführt werden, ausführlicher erläutert.
  • In dem Prozessor zur Reduktion irrelevanter Daten (dem Bitebenen-Zerleger [bitplane slicer]) werden die Transformatinnskoeffizienten G[] in N Bitebenen αk[] zerlegt:
    Figure 00150001
    wobei k ∊ {0, ..., N – 1}.
  • Jede Bitebene kann als ein binäres Feld oder eine binäre Abbildung Mk = (αk[i, j]|(i, j) ∊ Λ}betrachtet werden, wobei A ein zweidimensionales Gitternetz ist.
  • Im folgenden Schritt operiert der Kontextwahl-Prozessor auf jeder Bitebene, und statistische Abhängigkeiten zwischen benachbarten Pixeln werden ausgenutzt, indem Kontexte C1 gebildet werden. Es bezeichne Sp ; ein von den Pixelwerten in der Umgebung N von b[i, j] gebildetes spezielles binäres Muster Sp ={b[i – n, j – m]}|(m, n) ∊ N}.
  • Da die Anzahl von Mustern Sp, in Abhängigkeit von der Anzahl der Elemente der Umgebung, sehr groß werden kann, ist ein Kontext C1 als eine Menge definiert, welche wenigstens ein Muster Sp enthält. Der Kontext muss in Bezug auf die Reihenfolge der Abtastung kausal sein, um eine kontinuierliche Dekodierbarkeit sicherzustellen, was die Elemente in der Umgebung N einschränkt. Überdies kann der Kontext sogar auf drei Dimensionen ausgedehnt werden, indem Pixel in umgebenden Bitebenen höherer Ordnung mit einbezogen werden. Mit jedem Kontext Ck ist ein Bitpuffer Bk verknüpft, der dazu dient, die binären Werte zu speichern, die als zum Kontext Ck "gehörig" identifiziert wurden.
  • Der Kontext Ck wird definiert, um die Wahrscheinlichkeit eines der beiden möglichen binären Symbole '0' und '1' im Hinblick auf diesen Kontext zu maximieren. Anders ausgedrückt, mit der Kontextwahl wird versucht, statistische Abhängigkeiten zwischen benachbarten Symbolen auszunutzen. Die Kontextwahl erhöht folglich die Wahrscheinlichkeit einer richtigen vorhersage des aktuellen Pixelwertes. Infolgedessen weist der erzeugte Bitstrom für jeden Kontext eine hohe Wahrscheinlichkeit für ein Symbol auf. Ferner sind, in Abhängigkeit von den definierten Kontexten, die resultirenden Folgen der einzelnen Kontexte nahezu vollständig statistisch unabhängig.
  • Bei der Entropiecodierung solcher aus der Kontextwahl resultierenden Folgen profitiert die arithmetische Codierung vom Vorhandensein jener Symbole, welche hohe Wahrscheinlichkeiten des Auftretens haben und welche eine (theoretische) Codewortlänge von weniger als einem Bit besitzen.
  • Gemäß der vorliegenden Erfindung wird ein Lauflängenvorcodierer auf die aus der Kontextwahl resultierende binäre Folge angewendet. Die Lauflängen-Symbole werden dann in eine GC-Funktion eingegeben, um einen Ausgangs-Bitstrom zu erzeugen. Ein großer Vorteil dieser Ausführungsform besteht darin, dass Lauflängen-Symbole, die aus einer binären Folge von statistisch unabhängigen binären Symbolen erhalten werden, stets eine (exponentiell fallende) geometrische Verteilung besitzen: pdf(i) = pi(1 – p), wobei p < 1, unabhängig von der zugrunde liegenden Verteilung der Transformationskoeffizienten, wobei p die Wahrscheinlichkeit des Symbols '0' und i die Länge des aus aufeinanderfolgenden Nullen bestehenden Abschnitts ist. Es wurde gezeigt, dass Golomb-Codes (GCs) für geometrisch verteilte Quellen optimal sind. Diese Ausführungsform ermöglicht daher, die Codierung von binären Abbildungen dem theoretischen Optimum anzunähern.
  • Vorteilhafterweise ermöglichen GCs eine sehr einfache Anpassung an sich ändernde satistische Maßzahlen von Symbolen: In Abhängigkeit von der Wahrscheinlichkeit p wird jeweils eine andere Ordnung m des Codes verwendet.
  • Obwohl sie seit den 70er Jahren bekannt sind, erscheinen GCs nur in einer kleinen Zahl von Anwendungen; eine bekannte Anwendung erfolgt im Standard JPEG 2000.
  • GCs sind präfixfreie Codes und können daher auf enre ähnliche Weise behandele werden wie Codes variabler Länge (VLCs), wobei sie dieselben Vorteile wie diese Codes bieten. Überdies bietet diese Vorgehensweise eine hohe Effizienz der Codierung, welche die Effizienz der arithmetischen Codierung übertrifft, da die Verteilung der Quelldaten sehr gut mit der Verteilung des Codes übereinstimmt.
  • Schließich besitzt ein Code gemäß der vorliegenden Erfindung bedeutende Verteile, was die Implementierung anbelangt. Da keine Notwendigkeit besteht, irgendwelche Tabellen zu speichern, lassen sich die Codes sehr leicht generieren, sie lassen sich einfach decodieren, und die codes können an sich ändernde statistische Maßzahlen der Symbole angepasst werden, indem lediglich die Ordnung des Codes (eine einzige Zahl) geändert wird.

Claims (6)

  1. Verfahren zur Codierung von Quelldaten, welches die folgenden Schritte umfasst: Dekorrelieren (302) der Quelldaten, um Transformationskoeffizienten-Informationen zu erzeugen; Zerlegen (304) der besagten Transformationskoeffizienten-Informationen in eine Vielzahl von Bitebenen (Mk), wobei die besagte Vielzahl von Bitebenen eine am wenigsten signifikante Bitebene enthält; Wählen von Kontext (308) auf jeder Bilebene durch Ausnutzung der statistischen Abhängigkeiten zwischen benachbarten Pixeln, um eine Vielzahl von ausgewählten Kontextmustern (Sp) zu erzeugen, wobei jedes ausgewählte Kontextmuster gewählt wird, indem festgestellt wird, welches von verfügbaren Kontextmustern am besten zu dem Wahrscheinlichkeitsmodell passt, für welches ein Golomb-Code (GC) optimal ist; für wenigstens einige Kontextmuster aus der Vielzahl der ausgewählten Kontextmuster Anwenden von Lauflängen-Vorcodierung (312), um Folgen von vorcodierten Symbolen zu erzeugen, und anschließend Codieren der besagten vorcodierten Symbolfolgen mittels eines analytischen Entropiecodierungs-Schemas (314), wobei das besagte Schema ein Golomb-Codierungsschema ist.
  2. Verfahren nach Anspruch 1, wobei die Symbolfolgen binäre Symbolfolgen sind.
  3. Verfahren nach Anspruch 1 oder 2, wobei das Zerlegen in Bitebenen mittels der Yero-Tree-Technik durchgeführt wird.
  4. Verfahren nach einem der Ansprüche 1 bis 3, wobei der Schritt der Kontextwahl die folgenden Teilschritte beinhaltet: Messen der Häufigkeit eines gegebenen Symbols (0; 1) aus der Menge der Symbole, welche Pixel in einer Bitebene darstellen, für jedes Kontextmuster aus einer Vielzahl von Kontextmustern; Erzeugen eines Wahrscheinlichkeitsmodells; und vergleichen der gemessenen Häufigkeit des gegebenen Symbols für jedes der Kontextmuster aus der Vielzahl von Kontextmustern mit dem Wahrscheinlichkeitsmodell.
  5. Verfahren nach Anspruch 4, wobei das gegebene Symbol eine Null ist.
  6. Datencodieungs-Vorrichtung, welche umfasst: einen Redundanzminderungs-Prozessor (302) zum Erzeugen von Transformationskoeffizienten-Informationen; einen Prozessor zur Reduktion irrelevanter Daten (304) zum Zerlegen der besagten Transformationskoeffizienten-Informationen in eine Vielzahl von Bitebenen; einen Kontextwahl-Prozessor (308); und einen Entropiecodierungs-Prozessor (310); wobei der Kontextwahl-Prozessor (308) für die besagte Vielzahl von Bitebenen eine jeweilige Vielzahl von Kontextdaten-Ausgangsströmen erzeugt, wobei die besagte Kantextwahl auf der Ausnutzung der statistischen Abhängigkeiten zwischen benachbarten Pixeln beruht, um eine Vielzahl von ausgewählten Kontextmustern zu erzeugen, wobei jedes ausgewählte Kontextmuster gewählt wird, indem festgestellt wird, welches von verfügbaren Kontextmustern am besten zu dem Wahrscheinlichkeitsmodell passt, für welches ein Golomb-Code optimal ist; und wobei wenigstens einige Kontextdaten-Ausgangsströme aus der Vielzahl von Kontextdaten-Ausgangsströmen in den besagten Entropiecodierungs-Prozessor (310) eingegeben werden, der einen Lauflängenvorcodierer (312) zur Erzeugung von Folgen von vorcodierten Symbolen umfasst, gefolgt von einem analytischen Entropiecodierungs-Prozessor (314), der ein Golomb-Codierungsschema zum Codieren der Folgen von vorcodierten Symbolen verwendet.
DE60200377T 2002-02-05 2002-02-05 Datenkompression Expired - Lifetime DE60200377T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP02002641A EP1333679B1 (de) 2002-02-05 2002-02-05 Datenkompression

Publications (2)

Publication Number Publication Date
DE60200377D1 DE60200377D1 (de) 2004-05-19
DE60200377T2 true DE60200377T2 (de) 2004-08-12

Family

ID=8185435

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60200377T Expired - Lifetime DE60200377T2 (de) 2002-02-05 2002-02-05 Datenkompression

Country Status (6)

Country Link
EP (1) EP1333679B1 (de)
AT (1) ATE264595T1 (de)
AU (1) AU2003208795A1 (de)
DE (1) DE60200377T2 (de)
ES (1) ES2219589T3 (de)
WO (1) WO2003067763A2 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7525463B2 (en) * 2003-04-17 2009-04-28 Droplet Technology, Inc. Compression rate control system and method with variable subband processing
WO2006005182A1 (en) 2004-07-14 2006-01-19 Slipstream Data Inc. Method, system and computer program product for optimization of data compression
CN101032081B (zh) * 2004-07-14 2010-05-26 喷流数据有限公司 用于数据压缩优化的方法和系统
US7570827B2 (en) 2004-07-14 2009-08-04 Slipstream Data Inc. Method, system and computer program product for optimization of data compression with cost function
CN100428634C (zh) * 2005-03-09 2008-10-22 浙江大学 数字信号处理中联合变长编解码的方法和装置
US20070053425A1 (en) * 2005-07-21 2007-03-08 Nokia Corporation Variable length codes for scalable video coding
DK3435674T3 (da) * 2010-04-13 2023-08-21 Ge Video Compression Llc Kodning af signifikanskort og transformationskoefficientblokke
EP3350993A1 (de) 2015-09-18 2018-07-25 Koninklijke Philips N.V. Verfahren und vorrichtung für schnelle und effiziente kompression und dekompression von bildern
CN109859281B (zh) * 2019-01-25 2022-12-02 杭州国芯科技股份有限公司 一种稀疏神经网络的压缩编码方法
CN112398484B (zh) 2019-08-15 2024-04-23 华为技术有限公司 一种编码方法及相关设备
CN114205613B (zh) * 2021-12-02 2024-07-19 北京国瑞数智技术有限公司 互联网音视频数据同步压缩的方法和系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272180B1 (en) * 1997-11-21 2001-08-07 Sharp Laboratories Of America, Inc. Compression and decompression of reference frames in a video decoder
EP0940994B1 (de) * 1998-03-06 2014-04-16 Canon Kabushiki Kaisha Bildverarbeitungsvorrichtung und -verfahren, und Speichermedium mit gespeicherten Schritten für ein solches Verfahren

Also Published As

Publication number Publication date
WO2003067763A2 (en) 2003-08-14
AU2003208795A1 (en) 2003-09-02
WO2003067763A3 (en) 2003-12-18
AU2003208795A8 (en) 2003-09-02
ES2219589T3 (es) 2004-12-01
EP1333679A1 (de) 2003-08-06
DE60200377D1 (de) 2004-05-19
EP1333679B1 (de) 2004-04-14
ATE264595T1 (de) 2004-04-15

Similar Documents

Publication Publication Date Title
DE69835528T2 (de) Eingebetteter dct-basierte standbildkodierungsalgorithmus
DE69624276T2 (de) System und Verfahren zur variablen Längenkodierung von sich bewegenden Bildern
EP1467491B1 (de) Arithmetische Codierung von Transformationskoeffizienten
DE19844752B4 (de) Ein verbessertes Kompressions- und Dekompressionssystem mit reversiblen Wavelets und verlustbehafteter Rokonstruktion
DE69811394T2 (de) Adaptive entropie-kodierung im rahmen adaptiver quantisierung für videosignalkodiersysteme und -verfahren
DE69227676T2 (de) Verfahren und gerät zur datenkodierung unter verwendung von vektorquantifizierung und lauflängenkodierung und unter verwendung von adaptiver lauflängenkodierung
DE60305325T2 (de) System und verfahren zur ratenverzerrungsoptimierten datenpartitionierung zur videocodierung unter verwendung von rückwärtsadaption
DE69226749T2 (de) System zur Kompression von sich bewegenden Videobildern mit mehrfachen Auflösungsmerkmalen
DE69333288T2 (de) Verbesserte vektorquantisierung
DE69130214T2 (de) Bilddatenkompression mit adaptiver Blockgrössenauswahl
DE69523439T2 (de) Verfahren und Vorrichtung zur Bildsignalkodierung mit einer Klassifizieranlage
DE602004001993T2 (de) Transformations basiertes restbewegungsrahmen kodierungsverfahren mit übervollständiger basis und zugehörige vorrichtung zur videokompression
DE60200377T2 (de) Datenkompression
Rehna et al. Wavelet based image coding schemes: A recent survey
EP1472888B1 (de) Kontextsensitive kodierung und dekodierung eines videodatenstroms
DE60012717T2 (de) Bildcodierung unter verwendung einer umordnung von wavelet-koeffizienten
DE69707700T2 (de) Dateneffiziente quantisierungstabelle für digitalen videosignalprozessor
DE102016124917B4 (de) Anpassungsfähige Kachel-Daten-Grössenkodierung für Video- und Bildkompression
DE102016003681A1 (de) Datenkompression mittels adaptiven Unterabtastens
Singh et al. A Review on Latest Techniques of Image Compression
Saha et al. Adaptive wavelet coding of multimedia images
DE69936304T2 (de) Bereichsbasierte skalierbare bildkodierung
Gupta et al. Lossless compression based Kmp technique
Sangeetha et al. A Dynamic Image Compression Using Improved LZW Encoding Algorithm
Saha et al. Use of adaptive integer-to-integer wavelet transforms in lossless image coding

Legal Events

Date Code Title Description
8364 No opposition during term of opposition