DE69635055T2 - Kodierung von zerotree-informationen in einem bildkodierungssystem mit wavelettransformation - Google Patents

Kodierung von zerotree-informationen in einem bildkodierungssystem mit wavelettransformation Download PDF

Info

Publication number
DE69635055T2
DE69635055T2 DE69635055T DE69635055T DE69635055T2 DE 69635055 T2 DE69635055 T2 DE 69635055T2 DE 69635055 T DE69635055 T DE 69635055T DE 69635055 T DE69635055 T DE 69635055T DE 69635055 T2 DE69635055 T2 DE 69635055T2
Authority
DE
Germany
Prior art keywords
node
wavelet
nodes
predecessor
coefficients
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
DE69635055T
Other languages
English (en)
Other versions
DE69635055D1 (de
Inventor
Anthony Stephen MARTUCCI
Iraj Sodagar
Ya-Qin Zhang
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.)
Sharp Corp
MediaTek Inc
Original Assignee
Sharp Corp
MediaTek Inc
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 Sharp Corp, MediaTek Inc filed Critical Sharp Corp
Application granted granted Critical
Publication of DE69635055D1 publication Critical patent/DE69635055D1/de
Publication of DE69635055T2 publication Critical patent/DE69635055T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/96Tree coding, e.g. quad-tree coding
    • 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/94Vector quantisation
    • 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
    • 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/645Methods 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 by grouping of coefficients into blocks after the transform
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Processing (AREA)

Description

  • Die Erfindung betrifft Bildverarbeitungssysteme und insbesondere Bildverarbeitungssysteme, welche waveletbasierte Kodierungstechniken verwenden.
  • HINTERGRUND DER OFFENBARUNG
  • Datenkompressionssysteme sind nützlich zur Darstellung von Information mit einer minimalen Anzahl von Bits so genau wie möglich und daher zum Minimieren der Menge an Daten, welche in einem Informationsspeicher oder einem Übertragungssystem gespeichert oder übertragen werden müssen. Eines der primären Kompressionsmittel, welches im Stand der Technik verwendet wird, entfernt redundante Information aus den Originaldaten ohne die Qualität der dekomprimierten Daten verglichen mit den Originaldaten signifikant zu beeinflussen.
  • Eine solche Kompressionstechnik erscheint in den Proceedings of the International Conference on Acoustics, Speech and Signal Processing, San Francisco, Cal., März 1992, Band IV, Seiten 657–660, wo ein Signalkompressionssystem offenbart wird, welches eine hierarchische Subbandzerlegung oder Wavelettransformation gefolgt von der hierarchisch sukzessiven Approximations-entropiekodierten Quantisierung, welche Zerotrees bzw. Null-Bäume verwendet. Die Darstellung von Signaldaten, welche eine mehrfach aufgelöste hierarchische Subbanddarstellung verwendet, wurde von Burt et al. in IEEE Trans. on Commun., Band Com-31, Nummer 4, April 1983, Seite 533 offenbart. Eine Waveletpyramide, auch als kritisch abgetastete Quadraturspiegelfilter-(quadrature-mirror-filter, QMF-)Subbanddarstellung bekannt, ist ein bestimmter Typ von mehrfach aufgelöster hierarchischer Subbanddarstellung eines Bildes. Eine Waveletpyramide wurde von Pentland et al. in Proc. Data Compression Conference 8. bis 11. April, 1991, Snowbird, Utah offenbart. Eine QMF-Subbandpyramide wurde in „Subband Image Coding", J. W. Woods, Herausgeber, Kluwer Academic Publishers, 1999 und I. Daubechies, Ten Lectures on Wavelets, Society for Industrial and Applied Mathematics (SIAM): Philadelphia, Pa., 1992 beschrieben.
  • Wavelettransformationen, ansonsten bekannt als hierarchische Subbandzerlegung wurden kürzlich für Niedrigbitraten-Bildkompression verwendet, da eine solche Zerlegung zu einer hierarchischen Mehrfachskalendarstellung des Quellenbildes führt. Wavelettransformationen werden auf einen wichtigen Aspekt der Niedrigbitraten-Bildkodierung angewandt: Die Kodierung einer binären Karte (einem Waveletbaum), welcher die Orte der von null verschiedenen Werte anzeigt, welche ansonsten als die Signifikanzkarte der Transformationskoeffizienten bekannt ist. Wenn eine skalare Quantisierung gefolgt von einer Entropiekodierung verwendet wird, um sehr niedrige Bitraten zu erreichen, d.h. weniger als 1 Bit pro pel, muss die Wahrscheinlichkeit des wahrscheinlichsten Symbols nach der Quantisierung – das Nullsymbol – extrem hoch sein. Typischerweise muss ein großer Anteil der Bitvorgabe zum Kodieren der Signifikanzkarte verwendet werden. Es folgt daraus, daß eine signifikante Verbesserung beim Kodieren der Signifikanzkarte sich in eine signifikante Verbesserung bei der zum Speichern oder Übertragen vorbereitenden Kompression von Information übersetzt.
  • Um diese Aufgabe zu erreichen wurde eine neue Struktur, Zerotree genannt, entwickelt. Ein Waveletkoeffizient wird als signifikant in Bezug auf einen gegebenen Schwellenwert T bezeichnet, wenn der Koeffizient einen Wert von weniger als oder gleich T aufweist. Der Zerotree basiert auf der Annahme, daß dann wenn ein Waveletkoeffizient auf einer groben Skala nicht signifikant in Bezug auf einen gegebenen Schwellenwert T ist, alle Waveletkoeffizienten der gleichen Orientierung an dem gleichen räumlichen Ort bei feineren Skalen wahrscheinlich nicht signifikant in Bezug auf T sind. Empirische Anzeichen legen nahe, daß diese Annahme oft richtig ist.
  • Insbesondere kann in einem hierarchischen Subbandsystem, mit der Ausnahme der Subbänder mit höchster Frequenz, jeder Koeffizient auf einer gegebenen Skala gemäß einer Struktur, die ein Waveletbaum genannt wird, in Beziehung zu einem Satz von Koeffizienten bei der nächst feineren Skala der gleichen Orientierung gesetzt werden. Die Koeffizienten auf der gröberen Skala werden die Vorgängerknoten genannt und alle Koeffizienten, welche dem gleichen räumlichen oder zeitlichen Ort auf der nächst feineren Skala gleicher Orientierung entsprechen, werden Nachfolgeknoten genannt. Für einen gegebenen Vorgängerknoten wird der Satz aller Koeffizienten bei allen feineren Skalen gleicher Orientierung, welche dem gleichen Ort entsprechen, Nachkommen genannt. Ähnlich wird für einen gegebenen Nachfolgerknoten der Satz von Koeffizienten bei allen gröberen Skalen gleicher Orientierung, welche dem gleichen Ort entsprechen, Vorfahren genannt. Mit der Ausnahme des Subbands mit der niedrigsten Frequenz haben alle Vorgängerknoten vier Nachfolgerknoten. Für das Subband mit der niedrigsten Frequenz ist das Vorgänger-Nachfolger-Verhältnis so definiert, daß jeder Vorgängerknoten drei Nachfolgerknoten hat.
  • Knoten werden in der Reihenfolge der Skalen der Zerlegung von dem gröbsten Niveau zu dem feinsten abgetastet. Dies bedeutet, daß kein Nachfolgerknoten abgetastet wird, bevor nicht sein Vorgänger und alle anderen Vorgänger in allen Subbändern auf der gleichen Skala wie dieser Vorgänger gerastert wurden. Dies ist ein Typ eines modifizierten breitenorientierten, Subband für Subband-Durchlaufs, welcher über alle Waveletbäume ausgeführt wird, die durch die Koeffizienten der Wavelettransformation des zweidimensionalen Datensatzes definiert sind.
  • Ist ein Schwellenwertniveau gegebenen, um zu bestimmen, ob ein Koeffizient signifikant ist oder nicht, wird ein Knoten eine Zerotreewurzel (ZERTROREE ROOT) wenn 1) der Koeffizient bei einem Knoten ist, welcher einen nicht signifikanten Wert hat, 2) der Knoten nicht der Nachkomme einer Wurzel ist, d.h. er nicht vollständig von einer gröberen Skala vorhersehbar ist, und 3) alle seiner Nachkommen nicht signifikant sind. Eine Zerotreewurzel wird mit einem speziellen Symbol kodiert, welches anzeigt, daß die Nicht-Signifikanz der Koeffizienten bei feineren Skalen vollständig vorhersehbar ist. Um die binäre Signifikanzkarte effizient zu kodieren, werden vier Symbole entropiekodiert: Zerotree-Wurzel (ZEROTREE ROOT), isolierte Null (ISO-LATED ZERO) und zwei Nicht-Null-Symbole, positiv signifikant (POSITIVE SIGNIFICANT) und negativ signifikant (NEGATIVE SIGNIFICANT).
  • US-Patent 5,412,741, veröffentlicht am 2. Mai 1995, offenbart eine Vorrichtung und ein Verfahren zum Kodieren von Information mit einem hohen Grad an Kompression. Die Vorrichtung verwendet eine Zerotreekodierung von Waveletkoeffizienten auf eine viel effizientere Weise als alle vorherigen Techniken. Der Schlüssel zu dieser Vorrichtung ist die dynamische Erzeugung der Liste von abzutastenden Koeffizientenindizes, wobei die dynamisch erzeugte Liste nur Koeffizientenindizes enthält, für welche ein Symbol kodiert werden muss. Dies ist eine dramatische Verbesserung gegenüber dem Stand der Technik, in welchem eine statische Liste von Koeffizientenindizes verwendet wird und jeder Koeffizient individuell geprüft werden muss, um zu sehen ob a) ein Symbol kodiert werden muss oder ob b) er vollständig vorhersehbar ist.
  • Die in dem '741-Patent offenbarte Vorrichtung verwendet ein Verfahren zum Kodieren von Information, welches die Schritte aufweist, Bilden einer Wavelettransformation des Bildes, Bilden, eine Zerotreekarte der Waveletkoeffizienten, Kodieren der signifikanten Koeffizienten auf einer anfänglichen, dominanten Liste aus dem gröbsten Niveau der Transformation und der Nachfolger dieser Koeffizienten, deren Indizes an die dominanten Liste angehängt werden, wenn gefunden wird, daß der Koeffizient des Vorgängers signifikant ist, Reduzieren des Schwellenwertes, Verfeinern der Abschätzung des Werts der signifikanten Koeffizienten, so daß die Genauigkeit der kodierten Koeffizienten erhöht wird und Zurückschleifen, so daß die dominante Liste erneut bei dem neuen reduzierten Schwellenwert abgetastet wird.
  • Um den iterativen Prozess auszuführen wird das Verfahren des '741-Patents durch Abtasten des Waveletbaums Subband für Subband ausgeführt, d.h. alle Vorgängerknoten werden kodiert, dann alle Nachfolger, dann alle Nach-Nachfolger usw. und sie werden Bit-Ebene für Bit- Ebene kodiert. Da der Prozess durch die Waveletbaumdarstellung des Bildes iteriert, kodiert diese Vorrichtung eines von vier Symbolen innerhalb der Zerotreekarte. Jede Verbesserung in der Geschwindigkeit bei welcher ein Waveletbaum verarbeitet wird, wäre vorteilhaft.
  • Daher besteht im Stand der Technik ein Bedürfnis nach einem verbesserten Verfahren zum Klassifizieren und Kodieren der Knoten eines Waveletbaums, welches zu effizienterer Kodierung und schnellerer Verarbeitung führt.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Gemäß einem ersten Aspekt stellt die Erfindung ein Verfahren zum Kodieren eines Eingabebildes bereit, wobei eine Wavelettransformation verwendet wird, so daß ein Waveletbaum erzeugt wird, welcher eine Mehrzahl von Knoten aufweist, die in einer Vorgänger-Nachfolger-Beziehung organisiert sind, wobei grob skalierte Knoten als Vorgängerknoten identifiziert werden und fein skalierte Knoten, welche mindestens einem gleichen räumlichen oder zeitlichen Ort eines entsprechenden Vorgängerknotens entsprechen, werden als Nachfolgerknoten identifiziert, wobei dieses Verfahren die Schritte aufweist:
    Erzeugen eines Waveletbaums für das Eingangsbild, wobei der Waveletbaum eine Mehrzahl von Koeffizienten hat, wobei jeder der Mehrzahl von Koeffizienten einem Knoten des Waveletbaums entspricht,
    Quantisieren der Mehrzahl von Koeffizienten in einem tiefenorientierten oder Depth-First-Muster, wobei das tiefenorientierte Muster aufweist:
    ein von-oben-nach-unten-Abtastmuster, das von einem Vorgängermuster startet und nach unten geht zu einem Nachfolgerknoten und zu jedem nachfolgenden Knoten des Nachfolgers bevor zu einem benachbarten Vorgängerknoten übergegangen wird, wobei die auf den Nachfolgerknoten nachfolgenden Knoten in Ihrem Ort dem Nachfolgerknoten entsprechen und eine feinere Skalierung als die Skalierung des Nachfolgerknotens haben, oder
    ein von-unten-nach-oben-Abtastmuster, das von einem Nachfolgerknoten startet und nach oben zu einem Vorgängerknoten verläuft und durch jeden Vorläufer- bzw. Vorgängerknoten des besagten Vorgängerknotens verläuft bevor zu einem benachbarten Nachfolgerknoten übergegangen wird, wobei die dem Vorgängerknoten vorhergehenden Knoten Knoten sind, die zumindest entweder dem räumlichen oder zeitlichen Ort des Vorgängerknotens entsprechen und eine gröbere Skalierung als der Vorgängerknoten haben und wobei der benachbarte Nachfolgerknoten ein Knoten mit demselben Vorgängerknoten wie der besagte Nachfolgerknoten ist und dieselbe Skalierung wie der Nachfolgerknoten hat und
    Kodieren der Mehrzahl von Koeffizienten.
  • Gemäß einem zweiten Aspekt liefert die Erfindung eine Vorrichtung für das Kodieren eines Eingangsbildes unter Verwendung einer Wavelettransformation, um einen Waveletbaum zu erzeugen mit einer Mehrzahl von Knoten, die in einer Vorgänger-Nachfolger-Beziehung angeordnet sind, wobei grob skalierte Knoten als Vorgängerknoten identifiziert werden und fein skalierte Knoten, die zumindest demselben räumlichen oder zeitlichen Ort eines entsprechenden Vorgängerknotens entsprechen, als Nachfolgerknoten identifiziert werden, wobei die Vorrichtung aufweist:
    einen Waveletbaumgenerator für das Erzeugen eines Waveletbaums für das Eingangsbild, wobei der Waveletbaum eine Mehrzahl von Koeffizienten hat, wobei jeder der Mehrzahl von Koeffizienten einem Knoten des Waveletbaums entspricht,
    einen Quantisierer, der mit dem Waveletbaumgenerator verbunden ist, für das Quantisieren der Mehrzahl von Koeffizienten in einem tiefenorientierten Muster, wobei das tiefenorientierte Muster aufweist:
    ein von-oben-nach-unten-Abtastmuster beginnend von einem Vorgängerknoten bis hinunter zu einem Nachfolgerknoten und zu einem der nachfolgenden Knoten des Nachfolgerknotens, bevor ein benachbarter Vorgängerknoten durchlaufen wird, wobei die nachfolgenden Knoten des Nachfolgers im Ort dem Nachfolgerknoten entsprechen und eine feinere Skalierung als die Skalierung des Nachfolgerknotens haben, oder
    ein von-unten-nach-oben-Abtastmuster, das von einem Nachfolgerknoten startet und nach oben durch einen Vorgängerknoten und alle Vorgängerknoten des Vorgängers verläuft, bevor ein benachbarter Nachfolgerknoten durchlaufen wird, wobei die Vorgängerknoten des Vorgängers Knoten sind, die zumindest demselben räumlichen oder zeitlichen Ort wie der Vorgängerknoten entsprechen und eine gröbere Skalierung als der Vorgängerknoten haben, und wobei der benachbarte Nachfolgerknoten ein Knoten mit demselben Vorgängerknoten wie der besagte Nachfolgerknoten ist und dieselbe Skalierung hat wie der besagte Nachfolgerknoten, und
    einen Kodierer, der mit einem Symbolzuweiser verbunden ist, für das Kodieren der Mehrzahl von Koeffizientensymbolen.
  • Zusätzlich weisen Ausführungsformen der Erfindung jedem Knoten eines der drei Symbole zu: Zerotree-Wurzel (ZEROTREE ROOT), gewertete Zerotree-Wurzel (VALUED ZEROTREE ROOT) und Wert (VALUE). Durch Verwenden von drei Symbolen und das effiziente Baumdurchlaufmuster ist die Erfindung wesentlich effizienter zum Kodieren eines Zerotrees als der Stand der Technik.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die Lehren der vorliegenden Erfindung können leicht durch Betrachten der folgenden detaillierten Beschreibung in Verbindung mit den beiliegenden Zeichnungen verstanden werden, in denen:
  • 1 ein Blockdiagramm eines Bildkodierers der vorliegenden Erfindung ist,
  • 2 ein Flussdiagramm ist, welches das Kodierverfahren des in 1 gezeigten Kodierers darstellt,
  • 3 eine schematische Darstellung der Vorgänger-Nachfolger-Abhängigkeiten von Subbändern in einem Bild ist, welches auf drei Skalen innerhalb eines Waveletbaums gelegt ist,
  • 4 ein Vorgänger-Nachfolger-Verhältnis für drei Generationen eines unterabgetasteten Bildes zeigt,
  • 5 eine schematische Darstellung der Wechselbeziehung verschiedener Knoten innerhalb eines Waveletbaums zeigt,
  • 6 eine Waveletblockdarstellung eines Waveletbaums zeigt,
  • 7 ein Flussdiagramm einer Quantisierungsroutine zeigt, welche von der vorliegenden Erfindung ausgeführt wird,
  • 8 ein Flussdiagramm einer Symbolzuordnungsroutine zeigt, die von der vorliegenden Erfindung ausgeführt wird,
  • 9 ein Blockdiagramm einer Ausführungsform einer Vektorwavelettransformation zeigt,
  • 10 ein Blockdiagramm einer anderen Ausführungsform einer Vektor-Wavelettransformation zeigt,
  • 11 ein Blockdiagramm einer Ausführungsform einer skalaren Wavelettransformation zeigt, die von einer Vektor- oder Objektgruppierung gefolgt wird,
  • 12 ein Blockdiagramm einer anderen Ausführungsform einer skalaren Wavelettransformation zeigt, die von einer Vektor- oder Objektgruppierung gefolgt wird,
  • 13 ein Beispiel eines Vektorwavelets zeigt,
  • 14 ein Vektor-Vorgänger-Nachfolger-Verhältnis zeigt,
  • 15 ein Objekt Vorgänger-Nachfolger-Verhältnis zeigt, und
  • 16 die Reorganisation der Koeffizientenvektoren jedes Waveletbaums, so daß ein „Waveletblock" gebildet wird, zeigt.
  • Um das Verständnis zu erleichtern wurden möglichst identische Bezugszeichen verwendet, um identische Elemente zu bezeichnen, welche den Figuren gemeinsam sind.
  • DETAILLIERTE BESCHREIBUNG
  • 1 zeigt ein Blockdiagramm eines Kodierers 100 der vorliegenden Erfindung und 2 zeigt eine Flussdiagrammdarstellung des Betriebs des Kodierers 100 aus 1. Um die Erfindung am besten zu verstehen, sollte der Leser gleichzeitig sowohl 1 als auch 2 betrachten, während er die folgende Beschreibung der Erfindung liest.
  • Der Kodierer 100 weist einen Waveletbaumgenerator 104, einen optionalen Waveletbaumreorganisierer 108, einen Quantisierer 110, einen Symbolzuweiser 112 und einen Entropiekodierer 114. Jede dieser Komponenten ist in Serie verbunden, so daß ein Bild bei Anschluss 102 zu einem kodierten Ausgangsbild bei Anschluss 116 verarbeitet wird. Das Eingangsbild ist typischerweise ein gepixeltes (digitalisiertes) photographisches Bild, wie es von einem Bildscanner oder einem Computergrafiksystem erzeugt werden kann. Jedoch kann das Eingangsbild auch ein Frame innerhalb einer Serie von Videobildframes oder ein bewegungskompensierter Rest-Frame, welcher von einem Videokodiersystem erzeugt wird, sein. Im allgemeinen verarbeitet die Erfindung jede Form des digitalisierten Bilds oder eines Teils davon. Daher beginnt das Arbeitsverfahren im allgemeinen bei Schritt 202 mit dem Eingang eines „Bildes", d.h. jeder Form von zweidimensionalen Daten.
  • Der Waveletbaumgenerator 104 führt (bei Schritt 204) eine Wavelet-hierarchische Subbandzerlegung aus, so daß eine konventionelle Waveletbaumdarstellung des Eingangsbildes erzeugt wird. Um eine solche Bildzerlegung zu erreichen, wird das Bild zerlegt, wobei eine zweifach Unter- bzw. Subabtastung in jeder von zwei Dimensionen in hoch horizontal-hoch vertikal (HH), hoch horizontal-niedrig vertikal (HL), niedrig horizontal-hoch vertikal (LH) und niedrig horizontal-niedrig vertikal (LL) Frequenzsubbänder verwendet wird. Das LL-Subband wird dann weiter zweifach in jeder der zwei Dimensionen unterabgetastet, so daß ein Satz von HH-, HL-, LH- und LL-Subbändern erzeugt wird. Dieses Unterabtasten wird rekursiv ausgeführt, so daß ein Array von Subbändern, so wie das in 3, in dem drei Unterabtastungen verwendet wurden, erzeugt wird. Vorzugsweise werden in der Praxis vier oder mehr Unterabtastungen verwendet. Die Vorgänger-Nachfolger-Abhängigkeiten zwischen Subbändern sind als Pfeile dargestellt, welche von dem Subband der Vorgängerknoten zu den Subbändern der Nachfolgerknoten zeigen. Das Subband mit der niedrigsten Frequenz ist das linke oberer LL3 und das Subband mit der höchsten Frequenz ist das rechte untere HH1. In diesem Beispiel haben alle Nachfolgerknoten einen Vorgänger. Eine detaillierte Diskussion der Subbandzerlegung ist in J. M. Sharpiro, „Embedded Image Coding Using Zerotrees of Wavelet Coefficients", IEEE Trans. on Signal Processing, Band 41, Nummer 12, Seiten 3445–62, Dezember 1993 dargestellt.
  • 4 zeigt die Vorgänger-Nachfolger-Beziehung für drei Generationen eines unterabgetasteten Bildes. Ein einziger Vorgängerknoten 400 hat vier Nachfolgerknoten 402, welche dem gleichen Bereich in dem Bild entsprechen mit vierfacher Unterabtastung, d.h. zweimaliger Unterabtastung in jeder der zwei Dimensionen. Jeder Nachfolgerknoten 402 hat vier entsprechende Nachfolgerknoten 404 der nächsten Generation mit einer weiteren viermaligen Unterabtastung. Die Beziehung oder Datenstruktur, welche einen Vorgängerknoten mit seinen Nachfolgern und Nach-Nachfolgern in Beziehung setzt, ist ein Waveletbaum. Es ist zu beachten, daß jedes pel oder Pixel in dem niedrig-niedrig Subband einen ihm zugeordneten Baum aufweist. Jedoch wird die Mehrzahl von Bäumen, die sich von dem niedrig-niedrig Subband aus erstrecken zusammen genommen und sie werden im allgemeinen im Stand der Technik als „der" Waveletbaum des Bilds diskutiert. Diese Offenbarung folgt auch dieser Nomenklatur.
  • Wie in 1 und 2 gezeigt, quantisiert der Quantisierer 110 (bei Schritt 210) die Koeffizienten des Waveletbaums in einem tiefenorientierten Muster. Ein tiefenorientiertes Muster ist den Kodiersystemen aus dem Stand der Technik sehr unähnlich darin, daß die Kodiersysteme aus dem Stand der Technik den Waveletbaum in einem modifizierten breitenorientierten Muster über alle Subbänder durchlaufen, d.h. alle Vorgängerknoten quantisieren, dann alle Nachfolger, dann alle Nach-Nachfolger usw. Im Gegenteil dazu durchläuft das erfindungsgemäße Verfahren jeden Baum in tiefenorientierter Weise, d.h. von der Wurzel in dem niedrig-niedrig Subband (LL3) durch die Nachfolger. 5 zeigt das tiefenorientierte Muster, welches so verwendet wird, daß jeder Baum durchlaufen wird. Zum Beispiel schreitet der erfindungsgemäße tiefenorientierte Prozess beginnend bei Knoten 500 in LL3 und dem fetten Pfand folgend zu Knoten 502 in dem Subband LH3 fort und dann zu Knoten 504 in dem Subband LH2. Von Knoten 504 fährt der tiefenorientierte Durchlaufprozess nachfolgend zu Knoten 506, 508, 510 und 512 innerhalb des Subbands LH1 fort, d.h. zu allen Nachfolgern des Knotens 504, dann fährt er mit den Geschwistern von 504 (514, 524, 534) fort, wobei die vier Nachfolger jedes Geschwisters vor dem nächsten Geschwister und seinen Nachfolgern durchlaufen werden. Nachdem dieser gesamte Ast des Baums durchlaufen ist, schreitet der Durchlaufprozess zu einem anderen Nachfolgerknoten des Knotens 500 voran, z. B. Knoten 544. Von diesem Knoten aus schreitet der Depth-First-Durchlaufprozess zu den Knoten 546, 548, 550, 552 und 554 voran, bevor er zu Knoten 556 usw. übergeht.
  • Wenn jeder Ast durchlaufen ist, werden die Koeffizienten in diskrete Werte quantisiert. Jeder Quantisierungsansatz kann mit der vorliegenden Erfindung verwendet werden. Der Quantisierungsprozess bildet einen kontinuierlichen Koeffizientenwert in einen diskreten Wert ab, welcher entweder einen positiven Wert, einen negativen Wert oder einen Nullwert aufweist. In der Summe werden in einem tiefenorientierten Abtastmuster die Nachfolger 506, 508, 510 und 512 nach ihrem Vorgänger 504 und vor jedem der benachbarten Vorgänger 514, 524 und 534 abgetastet. Auf diese Weise werden alle Koeffizienten, welche einen gegebenen räumlichen Ort darstellen, in aufsteigender Frequenzreihenfolge von dem Vorgänger 500 zu dem Nachfolger 502 zu dem Nach-Nachfolger 504 usw., abgetastet, bevor die Koeffizienten des nächsten benachbarten räumlichen Orts abgetastet werden.
  • Obwohl die vorhergehende Beschreibung des tiefenorientierten Abtastmusters als ein „von oben nach unten"-Muster diskutiert wurde, weist ein tiefenorientiertes Abtastmuster auch ein Abtasten von unten nach oben auf. Daher kann die Quantisierung auch durch Beginnen bei den „Blättern" des Baums (die untersten Knoten) und Folgen den Baum hinauf, ausgeführt werden. Das Beispiel aus 5 verwendend würden in einem „von unten nach oben"-Muster die Knoten 506, 508, 510 und 512 zuerst quantisiert, dann der Knoten 504 usw. den Baum hinauf zu 500 am Schluss. Nachdem dieser Baum vollständig wäre, würde der Quantisierungsprozess einen anderen Baum quantisieren und einen anderen usw. bis alle Knoten in allen Bäumen quantisiert wären. Wie unten diskutiert wird, arbeitet die Erfindung effizienter, wenn ein „von unten nach oben"-Muster verwendet wird als das von „oben nach unten"-Muster.
  • Um dieses tiefenorientierte Abtastmuster zu vereinfachen, reorganisiert die Erfindung die quantisierten Koeffizienten jedes Waveletbaums, so daß ein „Waveletblock" gebildet wird. Wie in 1 und 2 gezeigt, wird die Reorganisation (bei Schritt 206) in dem Waveletbaumreorganisierer 108 vor der Quantisierung ausgeführt.
  • 6 zeigt schematisch einen Waveletblock 604, welcher von der Erfindung erzeugt wird. Die Erfindung bildet einen Baum 602, welcher sich von einem Pixel 600 in dem niedrig-niedrig Band 606 (LL3) in dem Waveletbaum 602 aus erstreckt in einen Waveletblock 604 ab. jeder Waveletblock 604 eines Bildframes 608 weist diese Koeffizienten auf allen Skalen und Orientierungen auf, welche den Frame an dem räumlichen Ort des Blocks innerhalb des Frames darstellen. Die Reorganisation wird durch physikalisches Neuabbilden der Speicherorte der Koeffizienten auf neue Speicherorte erreichet, welche die Waveletblocks bilden. Daher werden alle Koeffizienten eines gegebenen Waveletblocks an sequenziellen Adressorten gespeichert. Alternativ werden die Koeffizienten nicht physikalisch neu angeordnet, sondern stattdessen in einen virtuellen Speicher neu abgebildet. Daher wird ein Index auf den physikalischen Speicher erzeugt, wobei der Index (virtueller Speicher) Speicherorte aufweist, welche in zwei Waveletblocks angeordnet sind. Für jeden Zugriff auf den Index wird die Adresse in dem Index auf einen physikalischen Speicherort abgebildet, an dem der Koeffizient gespeichert ist. Daher werden durch einen virtuellen Speicheransatz die Vorteile von Waveletblocks zugänglich ohne physikalische Neuanordnung der Koeffizienten im Speicher.
  • Durch Verwenden eines tiefenorientierten Abtastmusters wird jeder Waveletblock vollständig abgetastet, um seine Koeffizienten zu quantifizieren bevor der nächste Block abgetastet wird, usw. Zum Beispiel wird in einem Rasterabtastmuster durch den Frame des Waveletblocks Block 610 vollständig abgetastet, dann Block 612, dann Block 614 usw.. Die Anordnung von Blöcken muss nicht in einem Rasterabtastmuster erfolgen, sondern kann in jeder von der Anwendung erwünschten Reihenfolge erfolgen. Dies schließt Objektorientierung ein, wobei Blöcke, welche bestimmten Objekten entsprechen vor anderen Objekten abgetastet und kodiert werden. Da ein ganzer Block bei aufeinanderfolgenden Speicheradressen angeordnet ist, kann der Block leicht durch Auswählen entweder des ersten oder des letzten Speichereintrags für einen gegebenen Block und durch Zugreifen auf alle anderen Adressen in aufsteigender oder absteigender Reihenfolge in einem „von oben nach unten" oder „von unten nach oben"-Muster abgetastet werden.
  • Es ist wichtig, daß mit solcher Reorganisation jedem Waveletblock, basierend auf seinem räumlichen Ort in dem Frame, eine andere Quantisierungsskala zugeordnet werden kann. Dies ermöglicht es, daß der Quantisierer 110 speziell einem räumlichen Ort der Koeffizienten und/oder gemäß dem Frequenzband, welches durch den Koeffizienten dargestellt wird, zugeordnet ist. Daher kann die Skala des Quantisierers über ein Bild verschieden sein, so daß das Zentrum des Bilds oder bestimmte Objekte innerhalb des Bildes genauer quantisiert sein können als die Kanten. Ähnlich könnte die Quantisiererskala frequenzabhängig sein, so daß höhere Frequenzen (oder für diesen Zweck niedrigere Frequenzen, mittlere Frequenzen, verschiedene Frequenzbänder und ähnliches) quantisiert werden können, wobei eine Skala verwendet wird, welche von anderen Frequenzen verschieden ist.
  • In einer bestimmten Anwendung, wie z. B. einem Videotelefon, werden die Vordergrundobjekte, z. B. der Kopf und die Schultern eines Anrufers, zur Quantisierung mit höherer Genauigkeit als die Hintergrundobjekte ausgewählt. Folglich wird die wichtige Information genau kodiert und übertragen während Hintergrundinformation weniger genau kodiert wird. Die Verwendung von Waveletblocks erlaubt eine einfache verzweigte Kodierung von Vordergrund- und Hintergrundinformation. Nachdem ein Bereich zur genauen Kodierung ausgewählt ist, kann die Erfindung die Blöcke, welche eine genaue Kodierung erfordern, markieren. Daher quantisiert der Quantisierer diese Blöcke, wobei ein feinerer Quantisierungsschritt verwendet wird wie er für die nicht markierten Blöcke verwendet wird.
  • Obwohl Waveletblöcke eine intuitive Datenstruktur zum Implementieren der Erfindung bilden, ist die Verwendung von Waveletblöcken nicht für die Realisierung des erfindungsgemäßen Kodierers 100 notwendig. Wie unten diskutiert, kann eine konventionelle Baumstruktur in Verbindung mit dem verbesserten Baumdurchlaufprozess der verbesserten Kodiertechnik der vorliegenden Erfindung verwendet werden. Daher zeigen die 1 und 2 die optionale Natur des Reorganisators als Pfad 106 und Pfad 208, welche den Reorganisator bzw. seine zugeordnete Funktion umgehen.
  • Nach der Quantisierung hat an jedem Knoten des Baums der quantisierte Koeffizient entweder einen Nullwert oder einen von null verschiedenen Wert. „Zerotrees" existieren, wo immer der Koeffizient bei einem Knoten null ist und alle seine Nachkommen Zerotrees bilden, d.h. alle nachfolgenden Knoten haben einen Nullwert. Die quantisierten Koeffizienten des Waveletbaums werden durch nochmaliges Abtasten jedes Baums in einer tiefenorientierten Weise effizient kodiert. Daher arbeitet der Symbolzuordner 112 (bei Schritt 212) durch Durchlaufen des Baums und Zuordnen bestimmter Symbole zu jedem Knoten in Abhängigkeit von dem quantisierten Wert des Knotens sowie von den quantisierten Werten der Nachfolger des Knotens.
  • Insbesondere ordnet das erfindungsgemäße Verfahren jedem Knoten eines der drei Symbole zu: Zerotree-Wurzel (ZEROTREE ROOT), gewertete Zerotree-Wurzel (VALUED ZEROTREE ROOT) and Wert (VALUE). Ein ZEROTREE ROOT bezeichnet einen Koeffizienten, welcher die Wurzel eines Zerotrees ist. Nach dem Abtasten, bei welchem Symbole zugeordnet werden, muss der Zerotree nicht mehr weiter abgetastet werden, da es bekannt ist, daß alle Koeffizienten in dem Baum den Wert null haben. Ein VALUED ZEROTREE ROOT ist ein Knoten, an dem der Koeffizient einen von null verschiedenen Wert hat und alle vier Nachfolger ZEROTREE ROOTS sind. Das Kodierabtasten dieses Baums wird niemals unter diesem Knoten fortgesetzt. Ein VALUE-Symbol identifiziert einen Koeffizienten mit einem Wert, entweder null oder von null verschieden, aber auch mit irgendeinem Nachkommen irgendwo weiter entlang dem Baum, welcher einen von null verschiedenen Wert hat.
  • Um die Bäume am effizientesten abzutasten, so daß die Knoten quantifiziert und ihnen Symbole zugeordnet werden, arbeitet der Quantisierer in Verbindung mit dem Symbolzuordner. 7 zeigt ein detailliertes Flussdiagramm einer Quantisierungsroutine 700, welche so verwendet wird, daß die Koeffizienten eines Zerotrees quantisiert werden und 8 zeigt ein detailliertes Flussdiagramm einer Symbolzuordnungsroutine 800 zum Zuordnen von Symbolwerten, so daß die quantisierten Koeffizientenwerte dargestellt werden.
  • Die Routine 700 beginnt bei Block 702 und wird fortgesetzt zu Schritt 704, wo ein Koeffizientenwert aus einem Knoten in einem Waveletbaum abgerufen wird. Wie unten diskutiert wird, tastet die Quantisierungsroutine den Waveletbaum in einem tiefenorientierten „von unten nach oben"-Muster ab. Daher liegt die erste Adresse immer in dem höchsten Frequenzsubband und mit jeder Iteration durch die Routine folgt die Routine den Baum hinauf zu niedrigeren und niedrigeren Frequenzsubbändern. Wenn die quantisierten Werte erzeugt sind, folgt die Routine den quantisierten Werten der Nachfolgerknoten, d.h. sind die Nachfolger mit Werten behaftet oder null. Bei Schritt 706 quantisiert die Routine den erhaltenen Koeffizientenwert in einen positiven Wert, negativen Wert oder einen Nullwert. Bei Schritt 708 wird eine Markierungskarte mit einem vorläufigen Symbolwert für den Knoten, welcher dem gerade quantisierten Koeffizientenwert zugeordnet ist, aktualisiert. Das Markierungskartensymbol hängt von dem Wert der Nachfolgerknoten sowie dem Wert des derzeitigen Knotens ab. Es ist zu beachten, dass, da das Abtasten von unten nach oben erfolgt, die Markierungskarte nicht in der Lage ist, endgültig anzuzeigen, ob ein Knoten ein ZEROTREE ROOT ist oder nicht. Folglich wird nachdem allen Knoten ein vorläufiger Symbolwert zugewiesen ist, der Baum erneut in einem Muster von oben nach unten abgetastet, um endgültig Symbolwerte zuzuweisen. Die Markierungskarte ist ein Index der Waveletbaumknoten, welcher der durch die Quantisierungsroutine 700 gefüllt wird. Bei jeder Adresse in der Markierungskarte speichert die Routine ein vorläufiges Symbol: Möglicher Wert (VALUE), mögliche gewertete Zerotree-Wurzel (VALUED ZEROTREE ROOT) oder mögliche Zerotree-Wurzel (ZEROTREE ROOT). Wenn der quantisierte Koeffizientenwert einen Wert hat, wird der Markierungskartenort für diesen Koeffizienten mit einem möglichen VALUE-Symbol markiert. Wenn der quantisierte Koeffizientenwert ein Nullwert ist und alle Nachfolger des Knotens Nullwerte sind, dann wird der Markierungskartenort mit einem möglichen ZEROTREE BOOT markiert. Zuletzt wird, dann wenn der quantisierte Wert einen Wert hat und seine Nachfolger alle Nullwerte sind, der Markierungskartenort mit einem möglichen VALUED ZEROTREE ROOT markiert.
  • Bei Schritt 710 fragt die Routine ab, ob alle Knoten in dem Baum quantisiert wurden. Wenn die Anfrage negativ beantwortet wird, fährt die Routine bei Schritt 712 fort, wo ein neuer (nächster) Knoten in dem Baum zur Quantisierung ausgewählt wird. Die Routine kehrt dann zu Schritt 704 zurück. Wenn die Abfrage bei Schritt 710 beantwortet wird, fährt die Routine bei Schritt 714 fort. Die Routine fragt bei Schritt 714 ab, ob alle Bäume quantisiert wurden. Wenn die Abfrage negativ beantwortet wird, wählt die Routine bei Schritt 716 einen neuen (nächsten) Baum zur Quantisierung aus. Wenn die Abfrage bei Schritt 714 bestätigend beantwortet wird, fährt die Routine zu Schritt 718 fort. An diesem Punkt in Routine 700 sind alle Knoten in den Bäumen quantisiert und einem vorläufigen Symbol zugeordnet. Bei Schritt 718 ruft die Routine 700 die Symbolzuordnungsroutine 800 aus 8 auf. Nachdem die Symbole zugeordnet sind, endet Routine 700 bei Block 720.
  • Routine 800 tastet die Bäume in einem „von oben nach unten"-Muster ab, d.h. von der Wurzel zu den Blättern. Jedoch muss die Routine nicht auf jeden Knoten zugreifen, da die Bäume bei jedem Auftreten eines ZEROTREE ROOT oder eines VALUED ZEROTREE ROOT beschnitten werden. Speziell wird bei Schritt 802 in die Routine 800 eingetreten und diese fährt mit Schritt 804 fort. Bei Schritt 804 erhält die Routine einen quantisierten Koeffizienten von dem Baum der quantisierten Koeffizienten. Bei Schritt 806 erhält die Routine das vorläufige Symbol in der Markierungskarte, welches dem erhaltenen Koeffizienten entspricht. Die Routine fragt bei Schritt 808 ab, ob das vorläufige Symbol ein mögliches ZEROTREE ROOT ist. Wenn die Abfrage bestätigend beantwortet wird, ordnet die Routine bei Schritt 810 das ZEROTREE ROOT-Symbol dem Knoten zu. Dann beschneidet bei Schritt 812 die Routine den Baum, d.h. die Routine ignoriert alle Knoten unterhalb dieses ZEROTREE ROOT-Knotens, da per Definition, alle Knoten einen Nullwert haben.
  • Die Routine fragt bei Schritt 820 ab, ob alle Knoten ausgewählt wurden. Wenn die Anfrage bei Schritt 820 negativ beantwortet wird, fährt die Routine entlang dem NEIN-Pfad zu Schritt 814 fort. Bei Schritt 814 wählt die Routine den nächsten Knoten aus nachdem alle abgeschnittenen Äste übersprungen wurden, so daß ein tiefenorientiertes „von oben nach unten"-Abtasten ausgeführt wird.
  • Wenn die Abfrage bei Schritt 808 negativ beantwortet wird, fährt die Routine entlang dem NEIN-Pfad zu Schritt 816 fort. Bei Schritt 816 fragt die Routine ab, ob die Markierungskarte ein mögliches Symbol eines möglichen VALUED ZEROTREE enthält. Wenn die Anfrage bei Schritt 816 bestätigend beantwortet wird, ordnet die Routine bei Schritt 822 dem Knoten ein VALUED ZEROTREE ROOT-Symbol zu, setzt den Wert auf eine Liste von Werten ungleich null und beschneidet den Baum bei Schritt 824. Die Routine fragt bei Schritt 820 an, ob alle Knoten ausgewählt wurden. Wenn die Anfrage bei Schritt 820 negativ beantwortet wird, fährt die Routine zu Schritt 814 fort. Dann wählt die Routine bei Schritt 814 den nächsten Knoten zur Symbolzuordnung, wobei die beschnittenen Äste übersprungen werden.
  • Wenn die Anfrage bei Schritt 816 negativ beantwortet wird, ordnet die Routine bei Schritt 818 dem Knoten ein VALUE-Symbol zu und setzt einen Wert auf die Liste der Werte, welche den Wert null enthalten. Die Routine fragt bei Schritt 820 ab, ob alle Knoten ausgewählt wurden. Wenn die Abfrage bei Schritt 820 negativ beantwortet wird, fährt die Routine zu Schritt 814 fort. Dann wählt die Routine bei Schritt 814 den nächsten Knoten zur Symbolzuordnung aus.
  • Die Zuordnungsroutine fährt fort bis allen Knoten Symbole zugeordnet wurden. Daher fährt, wenn die Abfrage bei Schritt 820 bestätigend beantwortet wird, die Routine zu Schritt 826 fort, wo die Routine 800 endet oder sie kehrt zur Routine 700 zurück.
  • Die Symbole und Werte werden (bei Schritt 214) kodiert, wobei ein Entropiekodierer 114 wie z. B. ein konventioneller arithmetischer Kodierer, verwendet wird. Ein möglicher Weg, eine Kodierung zu erreichen, ist wie folgt. Die Symbole werden kodiert, wobei ein Dreisymbolalphabet verwendet wird. Die Liste von Werten ungleich null, welche eins zu eins den VALUED ZEROTREE ROOT-Symbolen entsprechen, wird kodiert, wobei ein Alphabet verwendet wird, welches den Wert null nicht aufweist. Die verbleibenden Koeffizienten, welche eins zu eins den VALUE-Symbolen entsprechen, werden kodiert, wobei ein Alphabet verwendet wird, das den Wert null nicht aufweist. Die verbleibenden Koeffizienten, welche eins zu eins den VALUE-Symbolen entsprechen, werden kodiert, wobei ein Alphabet verwendet wird, welches nicht den Wert null aufweist. Für jeden Knoten, welcher in einer Abtastung erreicht wird und der ein Blatt ohne Nachfolger ist, wäre kein Wurzelsymbol anwendbar. Daher können einige Bits durch Nicht-Kodieren irgendeines Symbols für diesen Knoten und Kodieren des Koeffizienten gespart werden, wobei das Alphabet verwendet wird, welches den Wert null aufweist. Ein anschaulicher Kodierer, welcher ein Dreisymbolkodieralphabet für die Symbole und ein Mehrsymbolalphabet für die Werte verwendet, würde dem in Witten at al., „Arithmetic Coding for Data Compression", Comm. of the ACM, Band 30, Nummer 6, Seiten 520–540, Juni 1987 offenbarten folgen. In der Tat werden Fachleute erkennen, daß die vorliegende Erfindung durch einfaches Kodieren nur der Werte (oder Darstellungen dieser Werte) der Koeffizienten gemäß den zugeordneten Symbolen modifiziert werden kann. Es werden nämlich nur die Werte der Koeffizienten kodiert ohne daß die Symbole, welche die Wichtigkeit der Koeffizienten anzeigen, kodiert werden müssen.
  • Der Kodierer 100 erzeugt (bei Schritt 216) das kodierte Ausgangsbild am Anschluss 116. Durch Verwenden der vorliegenden Erfindung wird ein Bild schnell und effizient kodiert, wobei eines von drei Symbolen bei jedem Knoten eines Waveletbaums verwendet wird zuzüglich Bits, um die Koeffizientenwerte zu kodieren.
  • Eine Mehrzahl von alternativen Ausführungsformen der vorliegenden Erfindung verwendet das vorliegende Kodierschema zur Vektor- oder Objektzerotreekodierung für Bilder und Video. Und zwar wird das vorliegende Kodierschema, wobei eine Wavelettransformation verwendet wird, auf das Konzept der Vektor- (oder Objekt)-Zerotreekodierung angewandt, welche eine Quantisierung und Zerotreeentropiekodierung der quantisierten Waveletkoeffizienten verursacht. Jede der Vektor- oder Objektzerotreekodierungsausführungsformen der vorliegenden Erfindung stellt einen Vektor- oder Objetktansatz dar, so daß Zerotrees verwendet werden, um Waveletkoeffizienten für Bilder oder Videoreste zu kodieren. Jedem Knoten jedes Waveletbaums ist eine Liste von Koeffizienten (ein Vektor) statt einem einzigen Koeffizienten zugeordnet. Baumknoten werden abgetastet, Koeffizienten quantisiert und Symbole entropiekodiert, wobei bei allem ein Verfahren verwendet wird, das Vektorzerotreeentropiekodierung genannt wird. Die verschiedenen Vektor- oder Objektzerotreekodierungsausführungsformen fallen in zwei Kategorien, skalare Wavelettransformation gefolgt von Vektor- (oder Objekt-) Gruppierung oder Vektor- (oder Objekt-) Gruppierung gefolgt von Vektorwavelettransformation. Und zwar wird zunächst ein Bild, ein Videoframe oder ein Frame von bewegungskompensierten Videoresten entweder skalar wavelettransformiert oder vektorwavelettransformiert. 11 bis 12 stellen die erste Kategorie dar, wobei das skalare Wavelet zuerst berechnet wird und dann werden die Waveletkoeffizienten nach der Transformation in Vektoren oder Objekte gruppiert. Im Gegensatz dazu stellen 9 bis 10 die zweite Kategorie dar, wobei die Eingänge als Vektoren gruppiert und dann durch eine Vektorwavelettransformation geleitet werden, so daß die Ausgänge als Vektoren erzeugt werden. In beiden Fällen kann das Ergebnis als ein Frame von Vektoren oder Objekten von Waveletkoeffizienten betrachtet werden.
  • Kurzgefasst werden in zwei Ausführungsformen der Erfindung (9 und 10) Vektoren durch eine festgelegte Kachelung der 2D-Matrix von Bild- oder Videopixeln oder -resten definiert und die Wavelettransformation, welche berechnet wird, ist eine Vektorwavelettransformation. Dann wird entweder eine Vektorquantisierung oder eine skalare Quantisierung mit der Vektorzerotreeentropiekodierung kombiniert, um ein kodiertes Ausgangsbild zu erhalten.
  • In weiteren vier Ausführungsformen der Erfindung (11 und 12) wird eine skalare Wavelettransformation berechnet und dann werden entweder Vektoren durch eine festgelegte Kachelung der 2D-Matrix von Waveletkoeffizienten auf der gröbsten Skala definiert oder es werden Objekte willkürlicher Größe und Form durch einen Segmentierungsalgorithmus bestimmt (d.h. Erzeugen zweier Ausführungsformen). Die Vektoren oder Objekte wiederum sind entweder vektorquantisiert oder skalar quantisiert in Kombination mit einer Vektorzerotreeentropiekodierung, so daß ein kodiertes Ausgangsbild erhalten wird (d.h. Erzeugen zwei weiterer Ausführungsformen für insgesamt vier Ausführungsformen). Eine Form eines Vektorwavelets wird von W. Li und Y.–Q. Zhang, „Vector-Based Signal Processing and Quantization for Image and Video Compression", Proceedings of the IEEE, Band 83, Seiten 317–335, Februar 1995 offenbart.
  • 13 stellen ein Beispiel eines Vektorwavelets dar. Ein Vektorwavelet eines Bild- oder Videorestes ist eine Transformation, wobei benachbarte Abtastungen des Bildes- oder Videorestes so zusammengruppiert werden, so daß sie Vektoren bilden und dann wird die Wavelettransformation auf diese Vektoren angewandt. Eine Vektorwavelettransformation wird durch die folgenden Schritte berechnet: Unterabtasten des Frames, so daß eine Anzahl von unterabgetasteten Frames von räumlich beabstandeten, für den Frame repräsentativen Signalen erhalten wird, Transformieren jedes der unterabgetasteten Frames durch eine diskrete Wa velettransformation, so daß eine entsprechenden Anzahl von Frames von Waveletsignalen, die für die Wavelettransformation repräsentativ sind, erhalten wird und Bilden von Signalen, die für den Vektor repräsentativ sind, aus entsprechenden nur für die Koeffizienten repräsentativen Signalen der entsprechenden Frames von für die Koeffizienten repräsentativen Signalen.
  • Und zwar wird der Frame (Eingangsbild) 1302 in seine 2-D-Polyphasenkomponenten zerlegt. Jede Polyphasenkomponente ist ein räumlich versetzter Frame des Originalframes dargestellt durch die vier (4) Deltafunktionen 13041 13044 . Jeder räumlich versetzte Frame wird dann mit Vierfach-Unterabtastung unterabgetastet, d.h. zweifaches Unterabtasten in jeder der zwei Dimensionen durch den Unterabtaster 1306, so daß die Polyphasenkomponente erzeugt wird. Eine Wavelettransformation 1308 wird wiederum auf jede Polyphasenkomponente angewandt und dann werden Vektoren durch Zusammengruppieren der Transformationskoeffizienten gebildet, einer aus jeder wavelettransformierten Komponente, mit den gleichen Indizes. Auf diese Weise werden Vektoren von m × n Pixeln in Vektoren von m × n Koeffizienten 1310 transformiert.
  • Eine Vektorwaveletransformation kann auch als eine Anzahl von überlagernden Frames betrachtet werden und jeder Vektor oder jedes Objekt weisen einen Koeffizienten aus jedem Frame auf, in welchem diese Koeffizienten den gleichen Index tragen. Die Anzahl von Frames ist gleich der Dimension des Vektors oder der Größe des Objekts.
  • Die verschiedenen Ausführungsformen werden nun detailliert gemäß 9 bis 12 diskutiert. Insbesondere stellen die 11 bis 12 vier Ausführungsformen dar, die eine skalare Wavelettransformation gefolgt von Vektoren- (oder Objekt-) Gruppierung anwenden. Da die Kodierer aus 11 und 12 viele Ähnlichkeiten teilen, werden unten die verschiedenen Ausführungsformen gleichzeitig durch die Verwendung von numerischen Bezeichnungen diskutiert. Der Kodierer 1100 (1200) enthält einen Waveletbaumgenerator 1103 (1203), einen Vektor- oder Objektorganisator 1104 (1204), einen optionalen Vektor-/Objekt-Waveletbaumreorganisator 1108 (1208), einen Vektorquantisierer 1110 (einen skalaren Quantisierer 1210 mit einem Nachquantisierungsprozessor 1211), einen Symbolzuweiser 1112 (1212) und einen Entropiekodierer 1114 (einen Vektorentropiekodierer 1214). Jede dieser Komponenten ist in Serie verbunden, so daß ein Bild am Anschluss 1102 (1202) in ein kodiertes Ausgangsbild am Anschluss 1116 (1216) verarbeitet wird.
  • Der Waveletbaumgenerator 1103 (1203) führt eine hierarchische Wavelet-Subbandzerlegung so durch, daß eine konventionelle Waveletbaumdarstellung des Eingangsbildes 1102 (1202), wie oben diskutiert, erzeugt wird. Der Vektoren- oder Objektorganisator 1104 (1204) definiert wiederum Vektoren durch eine festgelegte Gruppierung von benachbarten Koeffizienten in dem niedrig-niedrig Band der Waveletransformation. Objekte werden durch Anwenden eines Segmentierungsalgorithmus auf die Waveletkoeffizienten des niedrig-niedrig Bandes definiert. Die Segmentierung wird als vollständig und nicht überlappend angenommen. Daher ist jeder Koeffizient in dem niedrig-niedrig Band ein Element in einem und nur einem Vektor oder Objekt. Verschiedene Segmentierungsalgorithmen können auf die vorliegende Erfindung angewandt werden, wie von Patrick Campbell McLean, in „Structured Video Coding", Diplomarbeit eingereicht im Bereich Medienwissenschaften, Massachusetts Institute of Technology, Juni 1991 oder in Internationalanmeldung WO 96/15508, veröffentlicht am 23.05.1996, offenbart.
  • Gemäß 14 bis 15 wird der Vektor 1402 oder das Objekt 1502 durch Hochabtasten in höhere Bänder weitergeleitet, so daß ein Entwurf 1404 (1504) bei der nächst feineren Skala definiert wird. Um die Vektoren und/oder Objekte in der gleichen Größe wie auf der gröberen Skala zu erhalten, werden die Koeffizienten jedes Vektors oder Objekts in dem Entwurf in vier Vektoren 1406 oder Objekten 1506, wie in 14 bis 15 dargestellt, neu gruppiert. Der Vektor oder das Objekt auf der gröberen Skala wird der Vektor- oder Objektvorgänger genannt und die vier Vektoren oder Objekte auf der nächst feineren Skala werden die Vektor- oder Objektnachfolger genannt. Die vier Vektor-/Objektnachfolger werden, durch Entnehmen der vier Polyphasenkomponenten 1408 (1508) aus dem Entwurf extrahiert. Dies ist äquivalent zu einer verschobenen Unterabtastung des Entwurfs. Beispiele des Vektor-Vorgänger-Nachfolger-Verhältnisses und des Objekt-Vorgänger-Nachfolger-Verhältnisses sind in 14 bzw. 15 gezeigt. Diese Verhältnisse definieren Vektor- oder Objektwaveletbäume.
  • Vektor- oder Objektwaveletbäume sind ähnlich den Waveletbäumen der Skalaren-ZTE-Kodierung, außer daß es bei jedem Knoten dieser Vektor- oder Objektwaveletbäume einen Vektor von Waveletkoeffizienten anstelle eines einzigen Werts gibt. Bei der oben beschriebenen Skalaren-ZTE-Kodierung wird jeder Baum tiefenorientiert von der Wurzel in dem niedrig-niedrig Band aus durch die Nachfolger und Nach-Nachfolger durchlaufen. Wenn Knoten durchlaufen werden, werden Koeffizienten gemäß der derzeitigen Quantisierungsspezifikation quantisiert. Diese Quantisierung kann als ein Vektor aus skalaren Quantisierungen durch den Quantisierer 1210 erfolgen oder als eine einzelne Vektorquantisierung durch den Vektorquantisierer 1110. Verschiedene Vektorquantisierungstechniken können wie von Allen Gersho et al. in „Vector Quantization and Signal Compression", Kluwer Academic Publishers (1992), offenbart, verwendet werden.
  • Ähnlich der oben beschriebenen skalaren ZTE-Kodierung, ist es vorteilhaft, die Koeffizientenvektoren jedes Waveletbaums zu reorganisieren, so daß ein „Waveletblock" wie in 16 gezeigt, gebildet wird. Um das tiefenorientierte Abtastmuster zu vereinfachen, kann die Erfindung optional die quantisierten Koeffizienten jedes Waveletbaums reorganisieren, so daß ein „Waveletblock" 1604 gebildet wird. Wie in 11 und 12 gezeigt, wird die Reorganisation in dem Vektoren-Objekt-Waveletbaumreorganisator 1108 (1208) vor der Quantisierung erreicht. Da die Reorganisation optional ist, zeigen beiden 11 und 12 den optionalen Charakter des Reorganisators als einen Pfad 1106 bzw. einen Pfad 1206, welche den Reorganisator und seine zugeordnete Funktion umgehen.
  • 16 stellt schematisch einen Waveletblock 1604 dar, welcher durch die Erfindung erzeugt wird. Jeder Waveletblock 1604 eines Frames weist solche Koeffizientenvektoren auf allen Skalen und in allen Orientierungen auf, welche den Frame an dem räumlichen Ort dieses Blocks darstellen, welcher in aufsteigender Frequenzreihenfolge vom Vorgänger zu den Nachfolgern zu den Nach-Nachfolgern organisiert ist. Und zwar bildet die Erfindung den Baum 1602, welcher sich von einem Vektor 1600 in dem niedrig-niedrig Band 1606 (LL3) in dem Waveletbaum 1602 erstreckt, in einen Waveletblock 1604 ab. Solch eine Struktur erlaubt es, im Fall einer skalaren Quantisierung dem Quanitisierungsfaktor oder im Fall einer Vektorquantisierung dem Kodierungsbuch, sich an jeden Block in Abhängigkeit davon anzupassen, wo der Block räumlich angeordnet ist und daher was er in dem Frame darstellt.
  • Durch Verwendung eines tiefenorientierten Abtastmusters wird jeder Waveletblock vollständig abgetastet, um seine Koeffizientenvektoren zu quantisieren bevor der nächste Block abgetastet wird, usw. Z. B. wird der Block 1610 vollständig abgetastet, dann der Block 1612, dann der Block 1614, usw. in einem Rasterabtastmuster durch den Frame von Waveletblöcken. Die Reihenfolge der Blöcke muss nicht in einem Rasterabtastmuster erfolgen, sondern sie kann in jeder Reihenfolge, wie von der Anwendung gefordert, erfolgen.
  • Darüber hinaus stellt diese Erfindung zwei verschiedene Verfahren zum Ausführen der Quantisierung der Vektoren von Waveletkoeffizienten dar. Die Quantisierung kann als eine skalare Quantisierung auf jedem Element eines jeden Vektors ausgeführt werden oder sie kann als eine Vektorquantisierung an jedem Vektor ausgeführt werden. Bei jedem Knoten eines jeden Baums ordnet ein Symbolzuordner 1112 (1212) ein Symbol zu, so daß der quantisierte Vektor an diesem Knoten charakterisiert wird. Die Symbole und die quantisierten Koeffizientenwerte werden alle kodiert, wobei ein Entropiekodierer 1114 (1214) wie z. B. ein arithmetischer Kodierer, verwendet wird.
  • Nach jedem Typ von Quantisierung existieren Zerotrees, wo immer der Koeffizientenvektor an einem Knoten der Nullvektor ist und alle Nachkommen Zerotrees sind. Der Waveletbaum wird durch Zuordnen von Symbolen, um die Knoten darzustellen und durch Beschneiden der Bäume bei Zerotrees effizient dargestellt und kodiert. Ein arithmetischer Kodierer wird so verwendet, daß die minimale Anzahl von Bits nur solchen Symbolen und Werten zugeordnet wird, welche von dem Dekodierer benötigt werden, um zuverlässig die Bäume von Waveletkoeffizientenvektoren zu rekonstruieren.
  • Eine Ausführungsform dieser Erfindung (wie in 12 gezeigt) verwendet eine skalare Quantisierung der Elemente der Vektoren von Waveletkoeffizienten. Nach der Quantisierung erhält jeder Vektor entweder nur Nullen oder einen oder mehrere von null verschiedene Werte. Ein Vektorzerotree existiert, wenn es einen Nullvektor an jedem Knoten des Baums gibt. Eine Vektorzerotreewurzel ist die Wurzel eines Vektorzerotrees. Der Koeffizientenvektor bei einer Vektorzerotreewurzel ist der Nullvektor und alle Nachkommen der Vektorzerotreewurzel sind selbst Vektorzerotreewurzeln.
  • Zerotreewurzeln sind wichtig, da Waveletbäume bei Zerotreewurzeln beschnitten werden können und daher keine Bits benötigt werden, um die Koeffizienten zu kodieren, welche weggeschnitten wurden. Daher ist es, um die Kodierungseffizienz zu erhöhen, wünschenswert, nach einer Quantisierung so viele Zerotrees wie möglich zu haben. Ein Verfahren ist es, einen „Post-Quantisierungsprozessor" 1211 (1011) so zu verwenden, daß irgendeine Post-Quantisierungsverarbeitung (wie in 10 und 12 dargestellt) eines jeden Vektors ausgeführt wird, in einem Bemühen, ihn in den Nullvektor zu verändern, wenn dies nur eine vernachlässigbare zusätzliche Verzerrung des letztlich rekonstruierten Frames verursachen würde. Ein Maß für jeden Vektor kann berechnet werden und wenn es unter einem Schwellenwert liegt, würde der Vektor auf null gesetzt.
  • Nach skalarer Quantisierung der Vektorelemente und Post-Quantisierungsverarbeitung, um die Vektoren zu den Nullvektoren zu zwingen, werden, wo erforderlich, eine Abtastung und eine Klassifikation der Baumkonten in einer Weise ähnlich zu der in der skalaren ZTE-Kodierung, ausgeführt. Jedem Knoten wird eines von drei Symbolen „Zerotreewurzel", „bewertete Zerotreewurzel" und „Wert" zugewiesen. Diese Symbole haben die gleiche Bedeutung wie in der skalaren ZTE-Kodierung, außer daß die Knoten Vektoren sind und die Klassifikation von Nullen und Nicht-Nullen sich auf den gesamten Vektor bezieht. Ein Entropiekodierer wird so verwendet, daß die Symbole und die Wertetabellen kodiert werden. Wertetabellen sind wie in der skalaren ZTE-Kodierung konstruiert. Die Entropiekodierung der Werte benötigt die Verwendung einer Vektorentropiekodierung anstatt einer skalaren Entropiekodierung.
  • Eine Ausführungsform dieser Erfindung (wie in 11 gezeigt) verwendet eine Vektorquantisierung des Waveletkoeffizientenvektors. Vektorquantisierung (VQ) ist ein ausgereiftes Gebiet und verschiedene gewünschte Formen von VQ können verwendet werden. Wie oben diskutiert, ist es wünschenswert, die Anzahl von Zerotreewurzeln zu erhöhen, wenn dies die Verzerrung des rekonstruierten Frames nicht signifikant erhöht. Um dieses Ergebnis zu erreichen kann die VQ so angepasst werden, daß sie eine Form einer toten Zone verwendet, wobei Vektoren mit einem Maß unter dem Schwellenwert auf dem Index abgebildet werden, welcher als der Nullvektor rekonstruiert wird.
  • Vektorquantisierung ersetzt den Vektor an jedem Knoten des Baums mit einem Index durch ein Kodierbuch von Vektoren, welches den besten Rekonstruktionsvektor für diesen Knoten auswählt. Nachdem eine Vektorquantisierung, eine Abtastung und eine Klassifikation der Baumknoten auf eine Weise ähnlich der in einer skalaren ZTE-Kodierung ausgeführt wurde, wird jedem Knoten eines der drei Symbole zugeordnet: „Zerotreewurzel", „bewertete Zerotreewurzel" und „Wert". Diese Symbole haben die gleiche Bedeutung wie in einer skalaren ZTE-Kodierung, außer daß die Knoten nun Indizes in einem Kodierbuch sind und sich null oder nicht null auf den Kodierbucheintrag für jeden Index bezieht. Ein Entropiekodierer wird so verwendet, daß die Symbole und die Indizetabellen kodiert werden. Die Indizetabellen werden wie in der skalaren ZTE-Kodierung konstruiert.
  • 9 und 10 stellen alternative Ausführungsformen der vorliegenden Erfindung dar, welche die Vektorwavelettransformation verwenden. Wieder werden, da die Kodierer 900 und 1000 aus 9 und 20 gleich den Kodierern aus 11 bzw. 12 sind, die Vorrichtungen 908 bis 914 und 1008 bis 10014 nicht diskutiert. Da diese Vorrichtungen die gleichen Funktionen wie dies von 1108 bis 1114 bzw. 1208 bis 1214 ausführen, sind die Beschreibungen für diese Vorrichtungen identisch mit der obigen Diskussion.
  • Jedoch verwenden die Kodierer 900 und 1000 anders als die Kodierer 1100 und 1200 einen Vektororganisator 903 (1003) in Verbindung mit einem Vektorwaveletbaumgenerator 904 (1104), wie oben gemäß 13 diskutiert. Nachdem die Vektorwaveletbäume erzeugt sind, verhalten sich die Kodierer 900 und 1000 ähnlich den Kodierern 1100 bzw. 1200.
  • Für Fachleute ist offensichtlich, daß obwohl die Vektor- oder Objektwaveletkodierung das Zerotree-Entropie-(ZTE-)Kodierungsverfahren verwendet, sie auch mit anderen Kodierverfahren, wie z. B. dem Embedded-Zerotree-Wavelet-(EZW-)Algorithmus implementiert werden kann.
  • Obwohl verschiedene Ausführungsformen, welche die Lehren der vorliegenden Erfindung verwenden gezeigt und hierin im Detail beschrieben wurden, können Fachleute leicht viele andere veränderte Ausführungsformen konstruieren, welche immer noch diese Lehren verwenden.

Claims (8)

  1. Verfahren für das Codieren eines Eingangsbildes unter Verwendung einer Wavelettransformation, um einen Waveletbaum mit einer Mehrzahl von Knoten, die in einer Vorgänger-Nachfolger-Beziehung angeordnet sind, zu erzeugen, wobei Knoten gröberer Skalierung als Vorgängerknoten identifiziert werden und Knoten feinerer Skalierung, die zumindest dem räumlichen oder zeitlichen Ort eines entsprechenden Vorgängerknotens entsprechen, als Nachfolgerknoten identifiziert werden, wobei das Verfahren die Schritte aufweist Erzeugen eines Waveletbaums für das Eingangsbild, wobei der Waveletbaum eine Mehrzahl von Koeffizienten hat, wobei jeder der Mehrzahl von Koeffizienten einem Knoten des Waveletbaums entspricht, Quantisieren der Mehrzahl von Koeffizienten in einem Depth-First-Muster, wobei das Depth-First-Muster aufweist: ein von-oben-nach-unten-Abtastmuster, das von einem Vorgängerknoten startet und nach unten geht zu einem Nachfolgerknoten und zu jedem nachfolgenden Knoten des Nachfolgers bevor zu einem benachbarten Vorgängerknoten übergegangen wird, wobei die auf den Nachfolgerknoten nachfolgenden Knoten in ihrem Ort dem Nachfolgerknoten entsprechen und eine feinere Skalierung als die Skalierung des Nachfolgerknotens haben, oder ein von-unten-nach-oben-Abtastmuster, das von einem Nachfolgerknoten startet und nach oben zu einem Vorgängerknoten verläuft und durch jeden Vorläufer- bzw. Vorgängerknoten des besagten Vorgängerknotens verläuft bevor zu einem benachbarten Nachfolgerknoten übergegangen wird, wobei die dem Vorgängerknoten vorhergehenden Knoten Knoten sind, die zumindest entweder dem räumlichen oder zeitlichen Ort des Vorgängerknotens entsprechen und eine gröbere Skalierung als der Vorgängerknoten haben und wobei der benachbarte Nachfolgerknoten ein Knoten mit demselben Vorgängerknoten wie der besagte Nachfolgerknoten ist und dieselbe Skalierung wie der Nachfolgerknoten hat, und Codieren der Mehrzahl von Koeffizienten.
  2. Verfahren nach Anspruch 1, das den Schritt aufweist: Zuweisen eines Symbols zu jedem der Mehrzahl von quantisierten Koeffizienten vor dem Codierschritt.
  3. Verfahren nach Anspruch 2, bei dem der symbolzuweisende Schritt jedem quantisierten Koeffizienten entweder ein Zerotree-Wurzelsymbol, ein bewertetes Zerotree-Wurzelsymbol oder ein Wertsymbol zuweist, wobei das Zerotree-Wurzelsymbol einen Koeffizienten eines Knotens, der eine Wurzel eines Zerotrees ist, bezeichnet, wobei das bewertete Zerotree-Wurzelsymbol einen Koeffizienten eines Knotens mit einem Wert ungleich Null und mit Nachfolgern, die alle Zerotree-Wurzeln sind, bezeichnet, und wobei das bewertete Symbol einen Koeffizienten eines Knotens mit einem Wert und mit zumindest einem Nachfolger, der einen Wert ungleich Null hat, bezeichnet.
  4. Verfahren nach Anspruch 3, das weiterhin aufweist den Schritt des Beschneidens des Waveletbaums durch Durchlaufen in einem von-oben-nach-unten-Muster, wobei jeder Knoten mit dem Zerotree-Wurzelsymbol oder dem bewerteten Zerotree-Wurzelsymbol abgeschnitten wird.
  5. Verfahren nach Anspruch 1 oder Anspruch 2, bei dem die Wavelettransformation eine Vektorwavelettransformation ist, um einen Vektorwaveletbaum zu erzeugen, wobei jeder der Mehrzahl von Koeffizienten ein Satz von Koeffizienten ist, der einem Knoten des Vektorwaveletbaums entspricht.
  6. Verfahren nach Anspruch 1 oder Anspruch 2, das weiterhin den Schritt aufweist: Ordnen benachbarter Koeffizienten in eine Mehrzahl von Vektoren nach dem waveletbaumerzeugenden Schritt.
  7. Vorrichtung (100) für das Codieren eines Eingangsbildes unter Verwendung einer Wavelettransformation, um einen Waveletbaum zu erzeugen mit einer Mehrzahl von Knoten, die in einer Vorgänger-Nachfolger-Beziehung angeordnet sind, wobei grob skalierte Knoten als Vorgängerknoten identifiziert werden und fein skalierte Knoten, die zumindest demselben räumlichen oder zeitlichen Ort eines entsprechenden Vorgängerknotens entsprechen, als Nachfolgerknoten identifiziert werden, wobei die Vorrichtung (100) aufweist: einen Waveletbaumgenerator (104) für das Erzeugen eines Waveletbaums für das Eingangsbild, wobei der Waveletbaum eine Mehrzahl von Koeffizienten hat, wobei jeder der Mehrzahl von Koeffizienten einem Knoten des Waveletbaums entspricht, einen Quantisierer (110), der mit dem Waveletbaumgenerator (104) verbunden ist, für das Quantisieren der Mehrzahl von Koeffizienten in einem Depth-First-Muster, wobei das Depth-First-Muster aufweist: ein von-oben-nach-unten-Abtastmuster beginnend von einem Vorgängerknoten bis hinunter zu einem Nachfolgerknoten und zu jedem der nachfolgenden Knoten des Nachfolgerknotens, bevor ein benachbarter Vorgängerknoten durchlaufen wird, wobei die nachfolgenden Knoten des Nachfolgers im Ort dem Nachfolgerknoten entsprechen und eine feinere Skalierung als die Skalierung des Nachfolgerknotens haben, oder ein von-unten-nach-oben-Abtastmuster, das von einem Nachfolgerknoten startet und nach oben durch einen Vorgängerknoten und alle Vorgängerknoten des Vorgängers verläuft, bevor ein benachbarter Nachfolgerknoten durchlaufen wird, wobei die Vorgängerknoten des Vorgängers Knoten sind, die zumindest demselben räumlichen oder zeitlichen Ort wie der Vorgängerknoten entsprechen und eine gröbere Skalierung als der Vorgängerknoten haben, und wobei der benachbarte Nachfolgerknoten ein Knoten mit demselben Vorgängerknoten wie der besagte Nachfolgerknoten ist und dieselbe Skalierung hat wie der besagte Nachfolgerknoten, und einen Codierer (114), der mit einem Symbolzuweiser (112) verbunden ist, für das Codieren der Mehrzahl von Koeffizientensymbolen.
  8. Vorrichtung nach Anspruch 7, die einen Symbolzuweiser (112) aufweist, der mit dem Quantisierer (110) verbunden ist für das Zuweisen eines Symbols zu jedem der Mehrzahl von quantisierten Koeffizienten.
DE69635055T 1995-10-25 1996-10-25 Kodierung von zerotree-informationen in einem bildkodierungssystem mit wavelettransformation Expired - Lifetime DE69635055T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US701295P 1995-10-25 1995-10-25
US7012P 1995-10-25
US2085296P 1996-06-28 1996-06-28
US20852P 1996-06-28
PCT/US1996/016817 WO1997016021A1 (en) 1995-10-25 1996-10-25 Apparatus and method for encoding zerotrees generated by a wavelet-based coding technique

Publications (2)

Publication Number Publication Date
DE69635055D1 DE69635055D1 (de) 2005-09-15
DE69635055T2 true DE69635055T2 (de) 2006-06-01

Family

ID=26676354

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69635055T Expired - Lifetime DE69635055T2 (de) 1995-10-25 1996-10-25 Kodierung von zerotree-informationen in einem bildkodierungssystem mit wavelettransformation

Country Status (6)

Country Link
US (2) US6483946B1 (de)
EP (1) EP0857389B8 (de)
JP (2) JP3563740B2 (de)
KR (1) KR100296066B1 (de)
DE (1) DE69635055T2 (de)
WO (1) WO1997016021A1 (de)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6549666B1 (en) 1994-09-21 2003-04-15 Ricoh Company, Ltd Reversible embedded wavelet system implementation
US6757437B1 (en) * 1994-09-21 2004-06-29 Ricoh Co., Ltd. Compression/decompression using reversible embedded wavelets
JP3213561B2 (ja) 1997-02-05 2001-10-02 シャープ株式会社 画像符号化装置及び画像復号装置
WO1998054675A1 (en) * 1997-05-30 1998-12-03 Interval Research Corporation Method and apparatus for wavelet based data compression
WO1998056184A1 (en) * 1997-06-05 1998-12-10 Wisconsin Alumni Research Foundation Image compression system using block transforms and tree-type coefficient truncation
EP0892557A1 (de) * 1997-07-18 1999-01-20 Texas Instruments Inc. Bildkompression
EP0899960A3 (de) 1997-08-29 1999-06-09 Canon Kabushiki Kaisha Codierung und Decodierung digitaler Signale
JPH11191153A (ja) 1997-12-26 1999-07-13 Ricoh Co Ltd ウェーブレット変換係数の符号化方法
US7181073B1 (en) * 1999-03-08 2007-02-20 Texas Instruments Incorporated Image coding using embedded zerotree patterns and bitplanes
US6778709B1 (en) * 1999-03-12 2004-08-17 Hewlett-Packard Development Company, L.P. Embedded block coding with optimized truncation
US6546143B1 (en) * 1999-03-12 2003-04-08 Hewlett-Packard Development Company Efficient wavelet-based compression of large images
US6678419B1 (en) * 1999-03-26 2004-01-13 Microsoft Corporation Reordering wavelet coefficients for improved encoding
FR2792433A1 (fr) * 1999-04-15 2000-10-20 Canon Kk Dispositif et procede de transformation de signal numerique
KR100561391B1 (ko) * 1999-10-07 2006-03-16 삼성전자주식회사 제로트리 부호화장치 및 방법
US6944350B2 (en) * 1999-12-17 2005-09-13 Utah State University Method for image coding by rate-distortion adaptive zerotree-based residual vector quantization and system for effecting same
US7016351B1 (en) * 2000-02-29 2006-03-21 Cisco Technology, Inc. Small group multicast in a computer network
KR100361804B1 (ko) 2001-01-09 2002-11-23 이화트론 주식회사 웨이브렛 이론을 이용한 동영상 압축/복원 장치 및 그 방법
KR100366638B1 (ko) * 2001-02-07 2003-01-09 삼성전자 주식회사 웨이블릿 변환을 기본으로하여 트리-구조의 벡터 양자화기법을 이용한 영상 부호화 장치 및 부호화 방법
KR100366382B1 (ko) * 2001-02-12 2002-12-31 (주) 멀티비아 동영상 부호화 장치 및 방법
US7512277B2 (en) 2002-04-19 2009-03-31 Qinetio Limited Data compression for colour images using wavelet transform
EP1487113B1 (de) * 2002-05-02 2006-10-18 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Kodierung und Dekodierung von Transformationskoeffizienten in Bild- oder Videokodierern
KR100480600B1 (ko) * 2002-06-12 2005-04-06 삼성전자주식회사 그룹화된 제로트리 웨이블릿 영상부호화 방법 및 장치
US6757434B2 (en) * 2002-11-12 2004-06-29 Nokia Corporation Region-of-interest tracking method and device for wavelet-based video coding
US8085850B2 (en) * 2003-04-24 2011-12-27 Zador Andrew M Methods and apparatus for efficient encoding of image edges, motion, velocity, and detail
US20050129322A1 (en) * 2003-10-06 2005-06-16 Mark Olin Method and system for compressing, storing, and retrieving image data
KR100643269B1 (ko) * 2004-01-13 2006-11-10 삼성전자주식회사 Roi를 지원하는 영상 코딩 방법 및 장치
US7689051B2 (en) * 2004-04-15 2010-03-30 Microsoft Corporation Predictive lossless coding of images and video
US10803126B1 (en) 2005-01-13 2020-10-13 Robert T. and Virginia T. Jenkins Method and/or system for sorting digital signal information
US7196641B2 (en) * 2005-04-26 2007-03-27 Gen Dow Huang System and method for audio data compression and decompression using discrete wavelet transform (DWT)
KR100764245B1 (ko) 2005-12-30 2007-10-08 고려대학교 산학협력단 워터마킹 방법 및 그 장치
US8331708B2 (en) * 2006-01-18 2012-12-11 Numeri Ltd. Method and apparatus for a multidimensional discrete multiwavelet transform
JP4789192B2 (ja) * 2006-04-12 2011-10-12 株式会社リコー 符号処理装置、プログラム及び情報記録媒体
US20070253642A1 (en) * 2006-04-27 2007-11-01 Mapinfo Corporation Method and apparatus for indexing, storing and retrieving raster (GRID) data in a combined raster vector system
US8452111B2 (en) * 2008-06-05 2013-05-28 Microsoft Corporation Real-time compression and decompression of wavelet-compressed images
JPWO2010070897A1 (ja) * 2008-12-16 2012-05-24 パナソニック株式会社 動画像符号化方法、動画像復号方法、動画像符号化装置、動画像復号装置、プログラム、及び集積回路
US8406546B2 (en) 2009-06-09 2013-03-26 Sony Corporation Adaptive entropy coding for images and videos using set partitioning in generalized hierarchical trees
CN102484699B (zh) * 2009-06-23 2015-11-25 法国电信 对图像进行编码和解码的方法、用于编码和解码的对应装置
JP2011091575A (ja) * 2009-10-21 2011-05-06 Sony Corp 符号化装置および方法
WO2014013647A1 (ja) * 2012-07-19 2014-01-23 日本電気株式会社 ウェーブレット変換符号化/復号方法および装置
US10462490B2 (en) * 2015-11-06 2019-10-29 Raytheon Company Efficient video data representation and content based video retrieval framework
US10818083B1 (en) * 2019-04-30 2020-10-27 International Business Machines Corporation Pyramid generation via depth-first walk

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5384725A (en) 1990-05-18 1995-01-24 Yale University Method and apparatus for encoding and decoding using wavelet-packets
JP3158458B2 (ja) * 1991-01-31 2001-04-23 日本電気株式会社 階層表現された信号の符号化方式
US5315670A (en) * 1991-11-12 1994-05-24 General Electric Company Digital data compression system including zerotree coefficient coding
US5321776A (en) * 1992-02-26 1994-06-14 General Electric Company Data compression system including successive approximation quantizer
US5412741A (en) 1993-01-22 1995-05-02 David Sarnoff Research Center, Inc. Apparatus and method for compressing information
US5563960A (en) 1993-01-22 1996-10-08 David Sarnoff Research Center, Inc. Apparatus and method for emphasizing a selected region in the compressed representation of an image
US5546477A (en) 1993-03-30 1996-08-13 Klics, Inc. Data compression and decompression
US5440346A (en) 1993-06-16 1995-08-08 Intel Corporation Mode selection for method and system for encoding images
US5448297A (en) 1993-06-16 1995-09-05 Intel Corporation Method and system for encoding images using skip blocks
US5509089A (en) 1993-09-09 1996-04-16 Intel Corporation Method and system for encoding images using temporal filtering
JP2914549B2 (ja) * 1993-09-17 1999-07-05 富士ゼロックス株式会社 画像符号化方法
US5982938A (en) * 1997-03-31 1999-11-09 Iterated Systems, Inc. System and method for compressing data using differential coding of coefficient addresses

Also Published As

Publication number Publication date
WO1997016021A1 (en) 1997-05-01
EP0857389A4 (de) 1998-12-30
JP2004032760A (ja) 2004-01-29
EP0857389B8 (de) 2005-10-19
KR100296066B1 (ko) 2001-08-07
JP3563740B2 (ja) 2004-09-08
US6298167B1 (en) 2001-10-02
JP3853758B2 (ja) 2006-12-06
JPH11513874A (ja) 1999-11-24
DE69635055D1 (de) 2005-09-15
EP0857389B1 (de) 2005-08-10
US6483946B1 (en) 2002-11-19
EP0857389A1 (de) 1998-08-12
KR19990067703A (ko) 1999-08-25

Similar Documents

Publication Publication Date Title
DE69635055T2 (de) Kodierung von zerotree-informationen in einem bildkodierungssystem mit wavelettransformation
DE69829700T2 (de) Bildkompression mit Diskreter-Wavelet-Transformation DWT
DE19861377B4 (de) Ein verbessertes Kompressions- und Dekompressionssystem mit reversiblen Wavelets und verlustbehafteter Rekonstruktion
DE69633129T2 (de) Waveletbaum-bildcoder mit überlappenden bildblöcken
DE19534943B4 (de) Vorrichtung zur Komprimierung unter Verwendung von eingebetteten Kleinwellen
DE19626615C2 (de) Verfahren und Apparat zur Kompression, das bzw. der reversible Wavelet-Transformationen und einen eingebetteten Kodestrom verwendet
DE69736329T2 (de) Verschachtelte verteilte kodierung von spärlich bestückten datensätzen
DE19626600C2 (de) Kodierer und Verfahren zum Kodieren
KR100487776B1 (ko) 웨이브렛 코딩 방법에 의해 발생된 웨이브렛 트리들을 인코딩하기 위한 장치 및 방법
DE69628760T2 (de) Speicherung und wiedergewinnung von grossen digitalen bildern
DE69722601T2 (de) Datenkompression mit hybrider verlustloser entropiekodierung von run-length codes
DE19534730B4 (de) Verfahren zum Codieren und Decodieren von Daten
DE602004002525T2 (de) Verfahren zum Umcodieren eines nach JPEG2000 komprimierten Bildes
DE69933461T2 (de) Fehlerverdeckung für hierarchische subband kodierung und dekodierung
DE4440838A1 (de) System zum Kompaktieren und Rekonstruieren von Wellendaten
DE19903605B4 (de) Verfahren zum Neuanordnen von Signalverlaufspacket-Koeffizienten
DE69823011T2 (de) Bildkodierungs- und dekodierungsvorrichtung
DE69936304T2 (de) Bereichsbasierte skalierbare bildkodierung
DE19734542C2 (de) Verfahren zur Wavelet-basierten Bildkompression
DE69828019T2 (de) Verfahren und Vorrichtung zur iterativen Bildtransformation und -dekodierung
AU719749B2 (en) A method for digital data compression
DE10038400C2 (de) Vorrichtung und Verfahren zum Codieren von Wavelet-transformierten Video- und Bilddaten sowie Verfahren und Vorrichtung zum Decodieren von codierten Wavelet-transformierten Video- und Bilddaten
Reddy et al. A Novel Image Coding Algorithm Using DTT and SPIHT

Legal Events

Date Code Title Description
8364 No opposition during term of opposition