DE69937833T2 - Verfahren und vorrichtung zur skalierbaren formkodierung - Google Patents

Verfahren und vorrichtung zur skalierbaren formkodierung Download PDF

Info

Publication number
DE69937833T2
DE69937833T2 DE69937833T DE69937833T DE69937833T2 DE 69937833 T2 DE69937833 T2 DE 69937833T2 DE 69937833 T DE69937833 T DE 69937833T DE 69937833 T DE69937833 T DE 69937833T DE 69937833 T2 DE69937833 T2 DE 69937833T2
Authority
DE
Germany
Prior art keywords
mask
context
layer
coding
encoding
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
DE69937833T
Other languages
English (en)
Other versions
DE69937833D1 (de
Inventor
Shipeng Princeton LI
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
Publication of DE69937833D1 publication Critical patent/DE69937833D1/de
Application granted granted Critical
Publication of DE69937833T2 publication Critical patent/DE69937833T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/20Contour coding, e.g. using detection of edges
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • H04N19/21Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding with binary alpha-plane coding for video objects, e.g. context-based arithmetic encoding [CAE]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

  • Diese Anwendung beansprucht den Vorteil der vorläufigen US-Anwendung mit der Seriennummer 60/090,815, eingereicht am 26. Juni 1998 und der vorläufigen US-Anwendung mit der Seriennummer 60/103,012, eingereicht am 5. Oktober 1998.
  • Die Erfindung betrifft eine Vorrichtung und ein begleitendes Verfahren zur Form- oder Objektmaskencodierung. Die Erfindung betrifft insbesondere ein Verfahren zur Effizienzsteigerung skalierbarer Formcodierung durch Korrelieren der Codierung der Objektmaske zwischen verschiedenen Maßstäben.
  • HINTERGRUND DER ERFINDUNG
  • Form- oder Objektmaskencodieren (auch bekannt als objektorientiertes Bild- und Videocodieren) hat großen Anklang gefunden und wird derzeit durch verschiedene Multimediastandards wie z. B. den internationalen MPEG-4 (Moving Picture Experts Group)-Standard begünstigt. Anders als bei traditionellen Bildcodierverfahren wird jedoch jedes Bild bzw. jede Graphik als aus einem oder mehreren flexiblen Objekten (in beliebiger Form) bestehend betrachtet, die Veränderungen wie z. B. Umwandlungen, Drehungen, Skalierungen, Helligkeits- und Farbveränderungen und Ähnliches durchlaufen. Unter Verwendung von Form- oder Objektmaskencodierungen wird die Funktionsvielfalt nicht nur bezüglich Bildern sondern auch bezüglich von Objekten bereitgestellt.
  • Eine Funktionalität ist die Skalierbarkeit, d. h. das Bereitstellen eines Bildes mit verschiedenen räumlichen Auflösungen. Im Allgemeinen beginnt das Formcodieren beim Segmentieren eines Einzelbildes in eine Vielzahl von Objekten oder Videoobjektebenen (VOPs), z. B. ist ein Redner in einem Bild ein Objekt und der Hintergrund ist ein zweites Objekt. Die daraus hervorgehende „Forminformation" kann in einer „binären Maske" dargestellt werden. Eine Maske kann grob als die Information definiert werden, die die Form eines Objekts oder von Pixeln, die mit einem Objekt verbunden sind, definiert. Da die Objektmaske verfolgt und in dem Datenstrom codiert wird, ist es möglich, verschiedene objektbasierte Funktionalitäten bereitzustellen.
  • Die Forminformation oder Objektmaske wird insbesondere verwendet, um die beliebige Form eines Bild- oder Videoobjekts und den Bereich, in dem die Struktur dieses Objekts codiert werden muss, zu bezeichnen. Die binäre Forminformation versorgt die Objektmaske mit nur zwei Werten: transparent oder opak (wobei transparent bedeutet, dass das entsprechende Pixel außerhalb eines Objekts ist und opak bedeutet, dass das Pixel in dem Objekt ist). 1(a) zeigt ein derar tig beliebig geformtes Objekt 100 und 1(b) zeigt die entsprechende binäre Objektmaske 110, die die Form und den Strukturbereich des Objekts aufzeigt. Obwohl das beliebig geformte Objekt 100 spezielle Strukturinformationen enthält, die durch die unterschiedlichen graustufigen Schattierungen angezeigt werden, werden derartig spezifische Strukturinformationen nicht von der Objektmaske erfasst. Die Objektmaske stellt nur die Forminformation bereit und die Information, ob ein Pixel in oder außerhalb eines Objekts ist.
  • Wenn Skalierbarkeit erforderlich ist, wird die Maske (d. h. die Form des Objekts) üblicherweise in eine Vielzahl von verschiedenen räumlichen Auflösungen (Auflösungsgrade) zerlegt, sodass der Codierer auch die Maske in unterschiedlichen räumlichen Auflösungen in den codierten Datenstrom codieren wird. Da jedoch zahlreiche Zerlegungsverfahren verfügbar sind, variiert die Codiereffizienz des Codierers abhängig vom angewandten Zerlegungsverfahren. Wenn das Zerlegungsverfahren verändert wird, ist es außerdem oft notwendig oder wünschenswert, auch das Maskencodierverfahren abzuändern, um dem Zerlegungsverfahren besser zu entsprechen und dadurch die Gesamtcodiereffizienz zu steigern. Leider sind derartige Veränderungen des Codierers kostenintensiv, komplex und zeitaufwändig.
  • Deshalb wird im Stand der Technik ein gewöhnliches räumlich-skalierbares Formcodierverfahren und -vorrichtung benötigt, das/die mit unterschiedlichen Zerlegungsmethoden umgehen kann, während die Codiereffizienz des Codierers maximiert wird.
  • Die Veröffentlichung „A Simple and Efficient Binary Shape Coding Technique based an Bitmap Representation" von Bossen, F. et al legt ein auf dem JBIG-Algorithmus für binäres Formcodieren sowohl bei verlustfreien als auch bei verlustbehafteten Betriebsarten basierendes Verfahren dar. Da es sich direkt auf die Bitmap bzw. Punktegrafik bezieht, die die Forminformation darstellt, umgeht es den Overhead durch Berechnen einer Zwischenkonturdarstellung und deren verbundene Konvertierungen. Dies führt zu einem einfacheren Algorithmus, der für eine größere Kategorie an Formdaten geeigneter ist. Außerdem wird eine Vorrichtung vorgeschlagen, die eine Geschwindigkeitssteuerung für eine verlustbehaftete Codierungsbetriebsart ermöglicht.
  • Die Veröffentlichung „Content-Scalable Shape Representation and Coding" von Qian, R. et al legt Verfahren für Inhalte skalierbarer Formdarstellung und -codierung dar, wo verschiedene Teile einer bestimmten Form in unterschiedlichen Qualitätslagen dargestellt und codiert werden können. Die Veröffentlichung legt einen hierarchischen Vertexselektionsalgorithmus dar und entwickelt ein vertexbasiertes inhaltlich skalierbares Konturdarstellungs- und Codierverfahren. Außerdem zeigt die Veröffentlichung, wie inhaltlich skalierbares Formcodieren durch Verändern der führenden Bitmap-basierten Formcodierungsverfahren erreicht werden kann.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Bestimmte Aspekte der Erfindung sind in den anliegenden Ansprüchen dargelegt. In der vorliegenden Erfindung wird eine Ausführungsform einer allgemein räumlich-skalierbaren Formcodierungsvorrichtung und das dazugehörige Verfahren zum Bewältigen unterschiedlicher Maskenzerlegungsverfahren beschrieben, während die Codierungseffizienz des Codierers maximiert wird. Das vorliegende allgemein räumlich-skalierbare Formcodieren wendet drei Codierungsschritte an, um die Codiereffizienz des Codierers zu maximieren, d. h. Maskenmoduscodieren, Basismaskenschichtcodieren und Erweiterungsmaskenschichtcodieren.
  • Genauer gesagt wird ein Einzelbild (oberste Ebene), das mindestens ein Objekt hat, zunächst in eine Vielzahl von Blöcken oder Bereichen unterteilt. Zum Zwecke der Maskenerzeugung wird jedem Block eine Betriebsart oder ein Symbol zugewiesen, um anzuzeigen, ob es „opak", „transparent" oder „Rand" ist. Die Betriebsart für die gesamte Maske der obersten Ebene wird dann in den Datenstrom kodiert.
  • Die Maske der obersten Ebene ist unter Verwendung beliebiger Form- oder Maskenzerlegungsverfahren wiederum in eine Vielzahl von Maskenschichten oder Maskenebenen zerlegt. Die unterste Maskenschicht, d. h. die Basismaskenschicht wird dann in den Datenstrom codiert.
  • Als nächstes werden Maskenschichten, die über der Basisschicht sind, hierarchisch und/oder kontextabhängig unter Verwendung von Informationen einer unteren Zwischenmaskenschicht codiert. Es wird nämlich jede Schicht oder „Erweiterungsmaskenschicht" unter Verwendung von Informationen, die von einer Maskenschicht stammt, die sich direkt unter der gegenwärtigen Maskenschicht von Interesse befindet, codiert. Auf diese Weise wird eine allgemeine räumlichskalierbare Formcodierungsvorrichtung und das dazugehörige Verfahren bereitgestellt, das unterschiedliche Form- oder Maskenzerlegungsverfahren verarbeiten kann, während es die Codierungseffizienz des Codierers maximiert.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die Lehren der vorliegenden Erfindung können durch Betrachten der folgenden detaillierten Beschreibung zusammen mit den beiliegenden Zeichnungen verstanden werden, in denen:
  • 1 zeigt ein Blockdiagramm der Beziehung zwischen einem beliebigförmigen Objekt und dessen entsprechender Objektmaske,
  • 2 zeigt ein Blockdiagramm der Beziehung zwischen einer höheren Maskenschicht und ihrer entsprechenden zerlegten unteren Maskenschicht über Zerlegung durch Subsampling,
  • 3 zeigt ein Blockdiagramm der Beziehung zwischen einer höheren Maskenschicht und ihrer entsprechenden zerlegten unteren Maskenschicht über Zerlegung durch Mehrheitsentscheidung,
  • 4 zeigt ein Blockdiagramm der Beziehung zwischen einer höheren Maskenschicht und ihrer entsprechenden zerlegten unteren Maskenschicht über Zerlegung durch OR-ING-Entscheidung,
  • 5 zeigt ein Blockdiagramm der Beziehung zwischen einer höheren Maskenschicht und ihrer entsprechenden zerlegten unteren Maskenschicht über Zerlegung durch ungerade symmetrische Filter,
  • 6 zeigt ein Blockdiagramm der Beziehung zwischen einer höheren Maskenschicht und ihrer entsprechenden zerlegten unteren Maskenschicht über Zerlegung durch gerade symmetrische Filter,
  • 7 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen für Blockmoduscodierungen,
  • 8 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen für Grundschichtcodierungen,
  • 9 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen für Erhöhungsschichtcodierungen,
  • 10 zeigt ein Flussdiagramm eines Verfahrens für Form- oder Maskencodierungen der vorliegenden Erfindung,
  • 11 zeigt ein Flussdiagramm eines detaillierten Verfahrens zum Form- oder Maskencodieren der vorliegenden Erfindung,
  • 12 zeigt ein Blockdiagramm eines Codierungs- und Decodierungssystems der vorliegenden Erfindung,
  • 13 zeigt ein vorhersagenbasiertes Erhöhungsschicht-Codierungsverfahren mit zwei Durchläufen,
  • 14 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen für eine erster-Durchlauf-Erhöhungs-Schicht-Codierung,
  • 15 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen bei Erhöhungsschichtcodierungen zum Codieren eines ersten Pixels in der räumlich halbhöheren Schicht,
  • 16 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen bei Erhöhungsschichtcodierungen zum Codieren eines zweiten Pixels in der räumlich halbhöheren Schicht,
  • 17 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen für eine zweite Erhöhungsschichtcodierung des zweiten Durchlaufs,
  • 18 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen bei Erhöhungsschichtcodierungen zum Codieren eines ersten Pixels in der aktuellen räumlichen Schicht,
  • 19 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen bei Erhöhungsschichtcodierungen zum Codieren eines zweiten Pixels in der aktuellen räumlichen Schicht,
  • 20 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen für Erhöhungsschichtcodierungen unter Verwendung eines binären Kontextmodells für ein erstes Pixel A(2i, 2j),
  • 21 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen für Erhöhungsschichtcodierungen unter Verwendung eines binären Kontextmodells für ein zweites Pixel A(2i, 2j + 1),
  • 22 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen für Erhöhungsschichtcodierungen unter Verwendung eines binären Kontextmodells für ein drittes Pixel A(2i + 1, 2j),
  • 23 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen für Erhöhungsschichtcodierungen unter Verwendung eines binären Kontextmodells für ein viertes Pixel A(2i + 1, 2j + 1),
  • 24 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen für Erhöhungsschichtcodierungen unter Verwendung eines zweiten binären Kontextmodells für ein erstes Pixel A(2i, 2j),
  • 25 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen für Erhöhungsschichtcodierungen unter Verwendung eines zweiten binären Kontextmodells für ein zweites Pixel A(2i, 2j + 1),
  • 26 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen für Erhöhungsschichtcodierungen unter Verwendung eines zweiten binären Kontextmodells für ein drittes Pixel A(2i + 1, 2j),
  • 27 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen für Erhöhungsschichtcodierungen unter Verwendung eines zweiten binären Kontextmodells für ein viertes Pixel A(2i + 1, 2j + 1),
  • 28 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen für Erhöhungsschichtcodierungen unter Verwendung eines dritten binären Kontextmodells für ein erstes Pixel A(2i, 2j),
  • 29 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen für Erhöhungsschichtcodierungen unter Verwendung eines dritten binären Kontextmodells für ein zweites Pixel A(2i, 2j + 1),
  • 30 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen für Erhöhungsschichtcodierungen unter Verwendung eines dritten binären Kontextmodells für ein drittes Pixel A(2i + 1, 2j), und
  • 31 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen für Erhöhungsschichtcodierungen unter Verwendung eines dritten binären Kontextmodells für ein viertes Pixel A(2i + 1, 2j + 1).
  • Um das Verständnis zu erleichtern wurden wo möglich identische Bezugszeichen verwendet, um identische Elemente, die in den Figuren häufig vorkommen, zu kennzeichnen.
  • DETAILLIERTE BESCHREIBUNG
  • Das Formcodieren ist ein wichtiger Teil des objektorientierten Bild- und Videocodierens. Die Forminformation oder Objektmaske wird verwendet, um die beliebige Form eines Bild- oder Videoobjekts und den Bereich, in dem die Textur dieses Objekts codiert werden muss, anzuzeigen. Die Forminformation (z. B. binäre Forminformation) versorgt die Objektmaske mit nur zwei Werten: transparent oder opak (wobei transparent bedeutet, dass das entsprechende Pixel außerhalb eines Objekts ist und opak bedeutet, dass das entsprechende Pixel in dem Objekt ist) wie oben in 1 beschrieben.
  • Bei Anwendungen, die keine räumliche Skalierbarkeit erfordern, ist eine nicht-skalierbare Standard-Binärformcodierung eine effektive Methode, um die Objektmaske zu codieren. Einige Standards, wie z. B. MPEG-4, haben auch die Standard-Binärformcodierung bei der objektorientierten Videocodierung eingesetzt. Da das Standard-Binärformcodierungsverfahren nicht räumlich skalierbar ist, muss der Decodierer eine unerwünschte Menge an zusätzlichen Informationen abrufen, um ungeachtet der räumlichen Ebene oder der räumlichen Auflösung eine skalierte Version des ursprünglichen vollauflösenden Rahmens richtig zu decodieren. Mit anderen Worten muss der Codierer die vollauflösende Forminformation an den Decodierer weiterleiten und der Decodierer muss die vollauflösende Forminformation decodieren, sodass er die richtige vollauflösende Objektmaske erhält. Dann muss der Decodierer zuerst die vollauflösende Objektmaske in Masken mit unterschiedlichen räumlichen Auflösungen zerlegen, bevor er die codierten Faktoren im Datenstrom für eine gewünschte skalierte Version des ursprünglichen vollauflösenden Rahmens richtig decodieren kann. Leider würde dies sowohl eine größere Übertragungsbandbreite als auch mehr Decodierzeit benötigen.
  • Des Weiteren können die Form-(oder Masken-)zerlegungssysteme, die verschiedene räumliche Maskenschichten erzeugen, von Anwendung zu Anwendung variieren. In einigen Anwendungen kann z. B. jede niedrigere Schicht erreicht werden, indem jedes andere Pixel sowohl in waagrechten als auch senkrechten Richtungen der rechteckigen Maske wie in 2 gezeigt in einer höheren Schicht subgesampelt wird. Eine höhere Maskenschicht 200 ist nämlich in eine untere Maskenschicht 210 durch Sampling in beiden Richtungen um einen Faktor 2.
  • Alternativ zeigt 3 ein Blockdiagramm einer Maskenzerlegung, die auf einer Mehrheitsentscheidung basiert. Die untere Maskenschicht wird nämlich durch Festlegen des Maskenwertes jedes Pixels auf den der Mehrheit der Pixel in dem 2×2-Bereich in einer höheren Schicht. Ein 2×2-Bereich 300 hat zum Beispiel vier transparente Pixel, wodurch er ein einzelnes transparentes Pixel 300a in der unteren Maskenschicht erzeugt. Demgegenüber hat ein 2×2-Bereich 310 zwei transparente Pixel und zwei opake Pixel, wodurch ein einzelnes opakes Pixel 310a in der unteren Maskenschicht erzeugt wird, wobei die Mehrheitsregel in diesem Beispiel ein opakes Pixel für die Lage bestimmt, wo zwei oder mehr Pixel in der entsprechenden höheren Maskenschicht opak sind.
  • Alternativ zeigt 4 ein Blockdiagramm einer Maskenzerlegung, die auf der „OR-ing"- bzw. „ODER"-Entscheidung basiert. Der Maskenwert von jedem Pixel in der unteren Schicht ist nämlich auf opak festgelegt, wann immer es mindestens ein opakes Pixel im entsprechenden 2×2- Bereich in einer höheren Schicht gibt. Zum Beispiel hat ein 2×2-Bereich 400 vier transparente Pixel, wodurch ein einzelnes transparentes Pixel 400a in der unteren Maskenschicht erzeugt wird. Im Gegensatz dazu hat ein 2×2-Bereich 410 drei transparente Pixel und ein opakes Pixel, wodurch ein einzelnes opakes Pixel 410a in der unteren Maskenschicht erzeugt wird, wobei die OR-ing-Regel in diesem Beispiel ein opakes Pixel in der unteren Maskenschicht für den Zustand, in dem mindestens ein Pixel in der entsprechenden höheren Maskenschicht opak ist, bestimmt.
  • Des Weiteren werden für das arbiträre Formwavelet-Codierungsverfahren, das im MPEG-4-Standard eingesetzt ist, zwei zusätzliche Maskenzerlegungsverfahren vorgeschlagen, die zwei unterschiedlichen Filtertypen entsprechen: „ungerade symmetrische Filter" und „gerade symmetrische Filter". Bei beiden Filtertypen wird die Maskenzerlegung durch waagrechte und senkrechte 1-D Maskenzerlegung erreicht.
  • 5 zeigt ein Blockdiagramm einer Maskenzerlegung, die auf ungeraden symmetrischen Filtern basiert. Genauer gesagt beginnt im Falle eines ungeraden symmetrischen Filters die 1-D-Zerlegung durch Subsampling jedes geraden Positionsmaskenwertes in niedrige Subbänder und jedes ungeraden Positionsmaskenwertes in hohe Subbänder. Wenn es in der ungeraden Position ein isoliertes Pixel gibt, werden die Maskenwerte bei der entsprechenden Position bei niedrigen Subbändern und hohen Subbändern ausgetauscht.
  • 6 zeigt ein Blockdiagramm einer Maskenzerlegung, die auf geraden symmetrischen Filtern basiert. Genauer gesagt beginnt im Falle eines geraden symmetrischen Filters die 1-D-Zerlegung durch Subsampling jedes geraden Positionsmaskenwertes in niedrige Subbänder und jedes ungeraden Positionsmaskenwertes in hohe Subbänder. Wenn ein Abschnitt bei einer ungeraden Position beginnt, werden die Maskenwerte bei der Startposition bei niedrigen Subbändern und hohen Subbändern ausgetauscht.
  • Da zahlreiche Zerlegungsverfahren verfügbar sind, variiert die Codierungseffizienz des Codierers wie oben beschrieben abhängig von dem Zerlegungsverfahren, das eingesetzt wird. Wenn das Zerlegungsverfahren verändert wird, ist es außerdem oft notwendig oder wünschenswert, auch das Maskencodierungsverfahren zu ändern, um besser zu dem Zerlegungsverfahren zu passen, wodurch die Gesamtcodiereffizienz gesteigert wird. Deshalb ist es wünschenswert, ein gewöhnliches, skalierbares Formmaskencodierungsverfahren zu haben, das mit jedem Zerlegungsverfahren umgehen kann; einschließlich jedoch nicht beschränkt auf alle Zerlegungsverfahren, die oben auf generische Weise genannt sind. Außerdem sollte das verwendete Maskenzerlegungsverfahren dem speziellen Zerlegungsverfahren entsprechen, das für das Strukturcodieren verwendet wird, um eine genaue Skalierung zu erhalten.
  • In der vorliegenden Erfindung ist ein neues gewöhnliches räumlich-skalierbares Formcodierungsverfahren beschrieben, das vom Maskenzerlegungssystem unabhängig ist. Es wurde festgestellt, dass das vorliegende skalierbare Formcodierungsverfahren eine bessere Gesamtcodierungseffizienz hat als das nicht-skalierbare Codierungssystem, das in dem aktuell vorgeschlagenen MPEG-4-Standard eingesetzt wird.
  • 12 zeigt ein Codierungs- und Decodierungssystem 1200 der vorliegenden Erfindung. Das vorliegende Codierungs- und Decodierungssystem 1200 weist einen Codierer 1210 und einen Decodierer 1270 auf. In der bevorzugten Ausführungsform weist der Codierer 1210 einen Formcodierer 1211 und einen Strukturcodierer 1220 auf. Der Formcodierer 1211 soll die Forminformation erzeugen und codieren; z. B. Objektmaske, wobei der Strukturcodierer 1220 die Helligkeits- und Farbvariationen der von der Objektmaske eingegrenzten Bereiche codieren soll.
  • Genauer gesagt wird das Eingangsbildsignal auf Pfad 1205 von den beiden Codierern 1211 und 1220 empfangen. Das Eingangsbildsignal kann ein Eingangsvideobild (Bildfolge) sein, das als Helligkeit und zwei Farbunterschiedssignale dargestellt ist.
  • Der Formcodierer 1211 wird betrieben, um Forminformationen aus dem Eingangsbild zu gewinnen, z. B. zum Erfassen eines oder mehrerer Objekte, zum Erzeugen von Objektmasken, zum Zerlegen von Objektmasken und/oder zum Codieren von Objektmasken. Das vorliegende, gewöhnliche räumlich-skalierbare Formcodierungsverfahren als solches wird im Formcodierer 1211 zur Anwendung gebracht. Es sollte beachtet werden, dass das Eingangsbildsignal schon „objektbasierte" Informationen enthalten kann, sodass ein oder mehrere Formverarbeitungsschritte ausgelassen werden können. Wenn das Eingangsbildsignal z. B. VOP-Informationen enthält, kann die Zerlegungsverarbeitung ausgelassen werden, da die Objekte schon für den Formcodierer 1211 bestimmt sind.
  • Der Strukturcodierer 1220 kann ein Bewegungsschätzungsmodul 1230, ein Bewegungsausgleichsmodul 1229, ein Umwandlungsmodul (getrennte Kosinustransformation (DCT) oder getrennte Wavelettransformation (DWT)) 1222, ein Quantisierungsmodul (Q) 1223, ein Entropiecodierungsmodul 1224, z. B. ein variables Längencodierungsmodul (VLC), einen Puffer 1225, ein inverses Quantisierungsmodul (Q–1) 1226, ein inverses Transformations- (DCT–1 oder DWT–1) Transformationsmodul 1227, einen Subtrahierer 1221 und einen Addierer 1234 aufweisen. Es sollte beachtet werden, dass der Strukturcodierer 1220 beispielhaft gezeigt ist und die vorliegende Erfindung nicht auf einen bestimmten Strukturcodierer beschränkt ist.
  • Im Betrieb wird das Eingangsbildsignal im Bewegungsschätzungsmodul 1230 zum Schätzen von Bewegungsvektoren aufgenommen. Das Bewegungsschätzungsmodul 1230 kann die von dem Formcodierer bei seiner Bewegungsschätzungsverarbeitung empfangene Forminformation verwenden. Die Bewegungsvektoren werden vom Bewegungsausgleichsmodul 1229 empfangen, sodass es eine Prognose erstellt, die Bewegungsvektoren verwendet, um Verschiebungen in die vergangenen und/oder zukünftigen Bezugsrahmen bereitzustellen, die vorher decodierte Musterwerte enthalten, die verwendet werden, um den vorausgesagten Fehler zu bilden.
  • Eine bewegungskompensierte Voraussage (erwartetes Bild) wird auf Pfad 1236 erzeugt und über den Subtrahierer 1221 von dem Eingangsbild auf Pfad 1205 subtrahiert, um ein Fehlersignal oder ein vorausgesagtes Restsignal auf Pfad 1231 zu bilden. Dann wird ein räumliches Transformationsmodul 1222 angewendet, um Transformationskoeffizienten zu erzeugen, die beeinflusst werden können, um räumliche Redundanz zu entfernen.
  • Die entstehenden Transformationskoeffizienten werden vom Quantisierungsmodul 1223 empfangen, wo die Transformationskoeffizienten quantisiert werden. Als nächstes werden die entstehenden quantisierten Koeffizienten vom variablen Längencodierungsmodul (VLC) 1224 über die Signalverbindung 1235 empfangen, wo die quantisierten Koeffizienten Entropie-codiert werden und von einem „First In-First Out"-Puffer (FIFO) 1225 zur Übertragung oder Speicherung aufgenommen werden.
  • Außerdem werden die entstehenden quantisierten Koeffizienten vor Quantisierungsmodul 1223 auch vom inversen Quantisierungsmodul 1226 über die Signalverbindung 1233 empfangen. Die entstehenden dequantisierten Koeffizienten werden an das inverse Transformationsmodul 1227 geleitet, wo eine inverse Transformation angewendet wird, um das decodierte Fehlersignal zu erzeugen. Dieses Fehlersignal wird zum vorhergesagten Signal des Bewegungsausgleichsmoduls über den Addierer 1234 zurückaddiert, um ein decodiertes Bezugsbild (wiederhergestelltes Bild) zu erzeugen.
  • Die codierten Datenströme der Codierer 1211 und 1220 werden dann vom Transportstrommultiplexer 1240 empfangen und gemultiplext/gebündelt, um einen Transportstrom zu erzeugen. Der Transportstrom wird über einen Kommunikationskanal 1250 übertragen, der des Weiteren einzelne kanalspezifische Codierer und Decodierer (nicht gezeigt) enthalten kann. Als nächstes wird der Transportstrom von einem Transportstromdemultiplexer 1260 demultiplexiert und decodiert, wobei die einfachen Ströme als Eingänge zum Videodecodierer 1270 dienen, deren Ausgang ein decodiertes Videosignal auf Pfad 1290 ist.
  • Es versteht sich, dass obwohl die vorliegende Erfindung unten in Bezug auf ein Codierungsverfahren und -vorrichtung beschrieben ist; ein entsprechendes und ergänzendes Decodierungsver fahren wird über eine ergänzende Anlage eines Formdecodierers 1274 und eines Strukturdecodierers 1272 durchgeführt.
  • Des Weiteren zeigt 12 den vorliegenden Codierer 1210 und Decodierer 1270 als in der Lage, in einen Mehrzweckcomputer eingebaut zu sein, der verschiedene Eingabe-/Ausgabevorrichtungen hat, z. B. eine Tastatur, eine Maus, einen Audiorecorder, eine Kamera, einen Camcorder, einen Videobildschirm, mehrere Abbildungs- oder Speichervorrichtungen, einschließlich aber nicht beschränkt auf ein Magnetbandlaufwerk, ein Diskettenlaufwerk, ein Festplattenlaufwerk oder ein CD-Laufwerk (nicht gezeigt). Der Mehrzweckcomputer kann nämlich einen Prozessor (CPU) (nicht gezeigt), einen Speicher (nicht gezeigt) und den Codierer 1210 zum Codieren eines Bildes, Videos und/oder Audiosignals in Übereinstimmung mit den unten beschriebenen Verfahren aufweisen.
  • Der Codierer 1210 kann eine physikalische Vorrichtung sein, die durch einen Kommunikationskanal mit der CPU verbunden ist. Alternativ kann der Codierer 1210 durch eine Softwareanwendung (oder eine Kombination aus Soft- und Hardware, z. B. die Verwendung von anwendungsspezifischen integrierten Schaltungen (ASIC)) dargestellt sein, wobei die Software von einem Speichermedium heruntergeladen (z. B. einem magnetischen oder optischen Laufwerk oder einem Diskettenlaufwerk) und von der CPU im Speicher des Computers betrieben wird. Der Codierer als solcher und die Verfahren, die von dem Codierer der vorliegenden Erfindung ausgeführt werden, können auf einem computerlesbaren Medium gespeichert werden.
  • Gleichermaßen kann der Decodierer 1270 auch eine physikalische Vorrichtung sein, die über einen Kommunikationskanal mit der CPU verbunden ist. Alternativ kann der Decodierer 1270 durch eine Softwareanwendung (oder eine Kombination aus Soft- und Hardware, z. B. die Verwendung von anwendungsspezifischen integrierten Schaltungen (ASIC)) dargestellt sein, wobei die Software von einem Speichermedium heruntergeladen (z. B. einem magnetischen oder optischen Laufwerk oder einem Diskettenlaufwerk) und von der CPU im Speicher des Computers betrieben wird. Der Decodierer als solcher und die Verfahren, die von dem Decodierer der vorliegenden Erfindung ausgeführt werden, können auf einem computerlesbaren Medium gespeichert werden.
  • 10 zeigt ein Flussdiagramm des obersten Level eines gewöhnlichen Form- oder Maskencodierungsverfahrens 1000 der vorliegenden Erfindung. Das Verfahren 1000 beginnt bei Schritt 1005 und fährt bei Schritt 1010 fort, wo auf die Form- oder Objektmaske eine Moduscodierung angewandt wird.
  • Genauer gesagt wird bei Schritt 1010 ein Einzelbild mit voller Auflösung, das mindestens ein Objekt hat, zunächst in eine Vielzahl von Blöcken und Bereichen segmentiert. Auch wenn die Begriffe „Block" und „Bereich" unten in verschiedenen Ausführungsformen speziell erläutert werden, sollte verständlich sein, dass diese Begriffe in dieser Beschreibung allgemein ausgelegt werden können und so klein wie ein einzelnes Pixel oder so groß wie das gesamte Eingangseinzelbild sein können. Zum Zwecke der Maskenerzeugung wird jedem Block ein Modus oder ein Symbol zugewiesen, um anzuzeigen, ob es „opak", „transparent" oder „Rand" ist. Die Modi für die gesamte Maske werden dann in den Datenstrom codiert.
  • Bei Schritt 1020 zerlegt das Verfahren 1000 unter Verwendung eines Form- oder Maskenzerlegungsverfahrens, z. B. eines der Zerlegungsverfahren wie oben in den 26 beschrieben, die „oberste Ebene" oder die Maske mit voller Auflösung in eine Vielzahl von Schichten oder Maskenebenen. Die unterste Maskenschicht, d. h. die „Basismaskenschicht" wird dann bei Schritt 1020 in den Datenstrom codiert.
  • Bei Schritt 1030 codiert das Verfahren 1000 unter Verwendung von Informationen von einer direkt darunter liegenden Maskenschicht die Maskenschichten hierarchisch und kontextabhängig, die über der Basismaskenschicht sind. Jede Schicht über der Basismaskenschicht (oder „Erweiterungsmaskenschicht) ist nämlich codiert unter Verwendung von Informationen, die aus einer Maskenschicht abgeleitet sind, die direkt unter der bisherigen Maskenschicht von Interesse ist. Auf diese Weise wird ein generisches räumlich-skalierbares Formcodierungsverfahren bereitgestellt, das verschiedene Form- oder Maskenzerlegungsverfahren bedienen kann, während es die Codiereffizienz des Codierers maximiert.
  • Die vorliegende Erfindung wird nun unten in Bezug auf die 7, 8, 9 und 11 detailliert beschrieben. 11 zeigt ein Flussdiagramm eines detaillierten Verfahrens 1100 für generisches räumlich-skalierbares Form- oder Maskencodieren, das unabhängig vom Formzerlegungsverfahren ist.
  • Das Verfahren 1100 beginnt mit Schritt 1105 und fährt mit Schritt 1110 fort, wo eine Objektmaske in Übereinstimmung mit einer Vielzahl von Blöcken oder Bereichen aufgeteilt oder festgelegt ist. Man nehme an, die „L"-Ebenen der Maskenzerlegung sollen auf der ursprünglichen Eingangs- oder vollaufgelösten Objektmaske durchgeführt werden. Dann teilt das Verfahren 1100 die Objektmaske in Blöcke von 2N × 2N Pixeln, wobei N gleich oder größer L ist.
  • Wenn die Größe der Objektmaske kein Vielfaches von 2N ist, kann bei Schritt 1120 das Verfahren 1100 die Objektmaske mit Nullen in der/den richtigen Richtung/en auffüllen, um aus der Objektgröße ein Vielfaches von 2N zu machen.
  • Bei Schritt 1130 weist das Verfahren 1100 jedem der Blöcke Maskensymbole oder -modi zu. Wenn bei jedem Block von 2N×2N Pixeln alle Pixel Maskenwerte von 1 haben, markiert das Verfahren 1100 den Block nämlich mit dem Symbol „ALLE opak" (Modus = 1). Wenn all deren Pixel Maskenwerte von 0 haben, markiert das Verfahren 1100 den Block mit dem Symbol „ALLE transparent" (Modus = 0). Andernfalls markiert das Verfahren 1100 den Block mit dem Symbol „Rand" (Modus = 2), d. h. der Block enthält sowohl 1en und 0en, die den Rand eines Objekts anzeigen.
  • Bei Schritt 1140 codiert das Verfahren 1100 dann die Maskensymbole. In der bevorzugten Ausführungsform ist jeder dieser Blockmodi oder -symbole (Mij) unter Verwendung von kontextbasiertem arithmetischem Codieren, das auf dem folgenden Kontext basiert, codiert: Kontext0 = S3·27 + S2·9 + S1·3 + S0, (1)wobei Kontext0 der Kontext für den aktuellen zu codierenden Block ist, S3 = M(i-1)(j-1), S2 = M( i-1)j, S1 = M(i-1)(j+1), S0 = Mi(j-1), und i und j jeweils der Reihen- und Spaltenindex der Blöcke ist. Es wird nämlich Kontexts wie in Gleichung (1) definiert verwendet, um eine „variable Lösungen"-Kodiertabelle zu erhalten, um den gegenwärtigen Modus zu kodieren. Wenn eines der Kontextelemente außerhalb der rechteckigen Maske ist, wird das ALLE transparent-Symbol verwendet, um es zu ersetzen. Um die Kontextelemente von der Gleichung (1) zu klären, zeigt 7 den Kontextaufbau, wobei der Block 700 mit einem Fragezeichen den Block anzeigt, dessen Modus codiert werden soll.
  • Alternativ kann bei Schritt 1140 das Verfahren 1100 den Modus für den Block (Mij) unter Verwendung des binären kontextbasierten arithmetischen Codierungsverfahrens codieren. Das 3-ary-Blockmodussymbol wird nämlich zuerst in binäre Symbole zerlegt. Binäre Variablen Klassen und Typen werden verwendet, um einen 3-ary-Blockmodus darzustellen.
  • Genauer gesagt sind die drei Modussymbole in 2 Klassen unterteilt: „einheitlich" (alle transparent und alle opak) oder „uneinheitlich" (Rand). Wenn das Symbol zu der einheitlichen Klasse gehört, wird zusätzliche Typinformation verwendet, um Alle transparent- oder Alle opak-Modi zu differenzieren. Die zusätzliche Information „Typ" hat zwei mögliche Werte: transparent (0) oder opak (1). Wenn das Symbol zu der uneinheitlichen Klasse gehört, werden keine zusätzlichen Informationen benötigt. Das Modussymbol kann dann dargestellt sein als: S = (Klasse == EINHEITLICH)? ((Typ == TRANSPARENT)? 0:1):2 (1a)
  • Die binären Variablen Klassen und Typen werden dann unter Verwendung des gleichen binären arithmetischen Codierers wie oben beschrieben mit dem Kontext wie in der Gleichung (1) beschrieben codiert. Insbesondere können jeweils zwei kontextbasierte binäre Wahrscheinlichkeitsmodelle für „Klasse" und „Typ" eingesetzt werden. Bei jedem Modussymbol wird die „Klasse" zuerst unter Verwendung eines binären arithmetischen Codierers codiert. Wenn die „Klasse" „einheitlich" ist, wird der „Typ" unter Verwendung eines binären arithmetischen Codierers mit dem entsprechenden Wahrscheinlichkeitsmodell auch codiert. Wenn die „Klasse" „uneinheitlich" ist, wird die aktuelle Modussymbolcodierung beendet und der Codierer wird mit dem nächsten Modussymbol für den nächsten Block fortfahren. Die Tabelle A-I(a) und die Tabelle A-I(b) im Anhang stellen jeweils die kontextbasierten Wahrscheinlichkeitstabellen für die Variablen „Klasse" und „Typ" bereit.
  • In 11 bei Schritt 1150 zerlegt das Verfahren 1100 die vollaufgelöste oder Eingangsobjektmaske in eine Vielzahl von Maskenschichten. Es kann nämlich jedes gewünschte Maskenzerlegungssystem verwendet werden, um die Objektmaske in L-Ebenen räumlicher Schichten zu zerlegen.
  • In einer Ausführungsform ist z. B. jede Schicht als ΛII bezeichnet, wobei 0 <= n <= L. Λ0 bezeichnet die vollaufgelöste Objektmaske und ΛL bezeichnet die Basismaskenschicht (unterste räumliche Schicht). Markiere bei jeder Schicht alle Pixel gemäß den ALLE transparent- oder ALLE opak-Blöcken als „nicht codiert", da deren Wert entsprechend des Blockmodus einfach gefüllt werden kann und markiere alle anderen Pixel in „muss codiert werden".
  • Bei Schritt 1160 codiert das Verfahren 1100 die Basismaskenschicht. Genauer gesagt wird bei der Basismaskenschicht (unterste räumliche Schicht) der Maskenwert (mL ij) von Pixeln, der als „muss codiert werden" markiert ist, unter Verwendung von kontextbasierter arithmetischer Codierung in Maskenverfahrensanordnung codiert. Der Kontext kann wie folgt erstellt sein: Kontext1 = (C9 << 9)|(C8 << 8)|(C7 << 7)|(C6 << 6)|(C5 << 5)|(C4 << 4) (C3 << 3)|(C2 << 2)|(C1 << 1)|C0 (2)wobei „<<" eine Linksverschiebungsoperation und „|" eine bitweise logische ODER-Operation ist, C9 = mL (i-2)(j-1), C8 = mL (i-2)j, C7 = mL (i-2)(j-2), C6 = mL (i-1)(j-1), C5 = mL (i-1)j, C4 = mL (i-1)(j+1), C3 = mL (i-1)(j+1), C2 = mL (i-2)(j+2), C1 = mL i(j-2), C0 = mL i(j-1), Kontext1 ist der Kontext für den aktuellen Basisschichtmaskenwert, der codiert werden muss, i und j bezeichnen die aktuellen Zeilen- und Spaltenindizes des Maskenwertes, der codiert werden muss. Im Fall wo die Position eines Kontextelements (Ck) außerhalb der rechtwinkligen Begrenzung der niedrigsten Schicht ist, ist Ck in der Kontextausführung immer auf Null festgelegt. Um die Kontextelemente von der Gleichung (2) zu klären, zeigt 8 die Kontextausführung, wobei das Pixel 800 mit einem Fragezeichen den Basismaskenschichtwert anzeigt, der codiert werden muss.
  • Bei Schritt 1165 fragt das Verfahren 1100 ab, ob eine höhere Maskenschicht codiert werden muss. Wenn die Abfrage positiv beantwortet wird, fährt das Verfahren mit Schritt 1170 fort. Wird die Abfrage negativ beantwortet, endet das Verfahren 1100 bei Schritt 1180.
  • Bei Schritt 1170 codiert das Verfahren 1100 die nächste Maskenschicht, d. h. Erhöhungsschichtcodierung. Genauer gesagt setzt das Verfahren 1100 hierarchisches und kontextuelles Codieren ein, wobei die Maske jeder räumlichen Schicht Λn in Übereinstimmung mit der vorherigen unteren räumlichen Schicht Λn+1 codiert wird, wobei 0 <= n < L.
  • Bei jedem 2×2 nicht überlappten Unterblock bildet nämlich Vn, in der räumlichen Schicht Λn, das mit „muss codiert werden" markiert ist, eine Variable, die wie folgt 16 unterschiedliche Werte hat: Vn = mn (2i)(2j)·8 + mn (2i)(2j+1)·4 + mn (2i+l)(2j)·2 + mn (2i+l)(2j+l) (3)wobei i und j Zeilen- und Spaltenindizes sind, die dieser Unterblock entsprechend wie in der vorherigen unteren räumlichen Schicht Λn+l. Vn wird dann unter Verwendung von kontextbasiertem arithmetischem Codieren codiert. Der Kontext des arithmetischen Codierers kann wie folgt erstellt wenden: Kontext2 = (T7 << 7)|(T6 << 6)|(T5 << 5)|(T4 << 4)|(T3 << 3)|(T2 << 2)|(T1 << 1)|(T0) (4)wobei „<<" eine Linksverschiebungsoperation und „|" eine bitweise logische ODER-Operation ist, T7 =mn (2i-l)(2j), T6 = mn (2i-l)(2j+l), T5 = mn (2i)(2j-l)), T4 = mn (2i+1)(2j-l), T3 = mn+1 (i)(j), T2 = mn+1(i)(j+2), T1 = mn+1 (i+1)(j), T0 = mn+1 (i+1)(j+l), mn (x)(y) bezeichnet den Maskenwert bei Position (x, y) in der räumlichen Schicht Λn, 910. Es sollte beachtet werden, dass die Maskenwerte von der unteren räumlichen Schicht Λn+1, 900 im obigen Kontext in der Kontextausführung verwendet werden. Erneut werden für die Kontextelemente, die außerhalb der Schichtbegrenzung sind, anstattdessen Nullen verwendet, um den Kontext zu bilden.
  • Um die Kontextelemente von der Gleichung (4) zu klären, zeigt 9 die Kontextausführung, wobei die Pixel 912, 914, 916 und 918 mit Fragezeichen die Pixel in der aktuellen räumlichen Schicht Λn 910 anzeigen, deren Maskenwerte codiert werden müssen. 9 zeigt nämlich die Ausführung dieses Kontexts sowohl von der unteren räumlichen Schicht Λn+1 900 und von einer aktuellen räumlichen Schicht Λn 910.
  • Alternativ werden unten nun zwei zusätzliche Ausführungsformen beschrieben, um das Erhöhungsschichtcodieren durchzuführen: ein Codierungsverfahren in zwei Durchläufen und ein binares, arithmetisches Codierungsverfahren. Vorteile des Codierungsverfahrens in zwei Durchläufen enthalten dessen Fähigkeit, unterschiedliche Waveletfilter sowohl für horizontale als auch vertikale Richtungen zu unterstützen, dessen vereinfachte Kontextmodelle und dessen Kompatibilität mit dem vorliegenden skalierbaren Formcodierungsverfahren wie im MPEG-4-Videoobjektcodierungsstandard vorgeschlagen. Im Gegensatz dazu ist das binäre arithmetische Codierungsverfahren vorteilhaft beim Vereinfachen der Durchführung des Formcodierers 1211. Somit kann die Durchführung der Erhöhungsschichtcodierung in Übereinstimmung mit den Anforderungen einer bestimmten Anwendung ausgewählt werden.
  • Erhöhungsschichtcodierung in zwei Durchläufen
  • Die Erhöhungsschichtcodierung in zwei Durchläufen kann wie in 13 gezeigt bei Schritt 1170 durchgeführt werden. Im ersten Durchlauf wird eine „halbhöhere" räumliche Schicht Λn+1/2 1310 basierend auf einer vorherigen unteren räumlichen Schicht Λn+1 codiert. Im zweiten Durchlauf wird die aktuelle räumliche Schicht Λn 1300 basierend auf der halbhöheren räumlichen Schicht Λn+1/2 1310 codiert. Die halbhöhere räumliche Schicht Λn+1/2 1310 ist nach der horizontalen Analyse der höheren Schicht Λn 1320 als untere (linke) Hälfte der Maske bestimmt. Mit anderen Worten ist die halbhöhere räumliche Schicht Λn+1/2 1310 das Ergebnis der Anwendung horizontaler Zerlegung (d. h. die Anwendung von Filtern nur in horizontaler Richtung), wobei die linke Hälfte der Ergebnisse der horizontale untere Durchlauf wäre.
  • Es sollte beachtet werden, dass aufgrunddessen, dass die vorliegende Erfindung ein auf Voraussagen basiertes Verfahren ist, es in der Lage ist, sowohl mit linearem Subsampling basierter als auch mit nicht-linearer Subsampling-basierter Maskenzerlegung umzugehen. Deshalb stellt die vorliegende Erfindung ein vereinheitlichtes und generisches skalierbares Formcodierungssystem für alle Fälle einschließlich der bei MPEG-4 benötigten Fälle bereit. Dieses alternative Verfahren in zwei Durchläufen kann als „1-2-4" (oder Eins-Zwei-Vier)-voraussagenbasiertes skalierbares Formcodieren bezeichnet werden. Außerdem ist ein Vorteil dieser Erfindung, dass sie unterschiedliche Zerlegungsfilter in horizontalen und vertikalen Richtungen unterstützt und sie ist auch bei blockbasiertem Codieren betreibbar.
  • Erster Durchlauf: Codieren der halbhöheren räumlichen Schicht Λn+1/2 von der unteren räumlichen Schicht Λn+1
  • Im ersten Durchlauf werden zwei Pixel in jedem 1×2-(ein Pixel in horizontaler Richtung und zwei Pixel in vertikaler Richtung) nicht, überlappten Unterblock in der Rasterverfahrensreihenfolge in der halbhöheren räumlichen Schicht, die mit „Muss gekennzeichnet werden" ausgezeichnet ist (z. B. entsprechend eines RAND-Blocks) getrennt codiert. Genauer gesagt werden die zwei Pixel mn+1/2 (2i)(j) und mn+1/2 (2i+1)(j), wobei i und j Zeilen- und Spaltenindizes sind, denen dieser 1×2-Unterblock in der unteren räumlichen Schicht Λn+1 entspricht, unter Verwendung der unten beschriebenen kontextbasierten arithmetischen Codierungssysteme getrennt codiert.
  • 14 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen zur Erhöhungsschichtcodierung. 14 zeigt nämlich die zugehörigen Pixel und deren Kennzeichnungen, die in der kontextbasierten arithmetischen Codierung von einer unteren räumlichen Schicht 1400 zu einer halbhöheren räumlichen Schicht 1410 verwendet werden. Die zugehörigen Pixel und deren Kennzeichnungen lauten wie folgt:
    Wo T9 = mn+1/2 (2i-1)(j), T8 = mn+1/2 (2i-1)(j+1), T7 = mn+1/2 (2i+1)(j-1), T6 = mn+1/2 (2i)(j-1) T5 = mn+1 (i)(j), T4 = mn+1 (i)(j+1), T3 = mn+1 (i+1)(j), T2 = mn+1 (i+1)(j+1), T10 = mn+1 (i+1)(j-1), T1 = mn+1/2 (2i)(j), T0 = mn+1/2 (2i+1)(j), und wo mz ( x)(y ) den Maskenwert bei Position (x, y) in der räumlichen Schicht Λz kennzeichnet. T6 bis T9 sind die entsprechenden bereits codierten/decodierten Pixel in der halbhöheren räumlichen Schicht Λn+1/2, und T5 bis T2 und T10 sind entsprechende Pixel in der unteren räumlichen Schicht Λn+1/2 (1400). T1 (1412) und T0 (1414) sind die Pixel, die in der halbhöheren räumlichen Schicht Λn+1/2 (1410) codiert werden müssen.
  • 15 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen beim Codieren der Erhöhungsschicht zum Codieren eines ersten Pixels 1412 in der halbhöheren räumlichen Schicht 1510. 15 zeigt nämlich den zur Codierung des Pixels T1 = mn+1/2 (2i)(j) verwendeten Kontext, d. h. wo das Fragezeichen das Pixel anzeigt, dessen Maskenwert wie folgt codiert werden soll: Kontext3 = (T9 << 7)|(T8 << 6)|(T7 << 5)|(T6 << 4)|(T5 << 3)|(T4 << 2)|(T3 << 1)|(T2) (5)
  • Die Tabellen A-II(a) und A-II(b) im Anhang stellen die kontextbasierten Wahrscheinlichkeitstabellen für T1 jeweils entsprechend ungerader symmetrischer Waveletfilter und gerader symmetrischer Waveletfilter bereit.
  • 16 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen beim Codieren der Erhöhungsschicht zum Codieren eines zweiten Pixels 1414 in der halbhöheren räumlichen Schicht 1610. 16 zeigt nämlich den zum Codieren des Pixels T0 = mn+1/2 (2i+1)(j) verwendeten Kontext, d. h. wo das Fragezeichen das Pixel anzeigt, dessen Maskenwert wie folgt codiert werden soll: Kontext4 = (T1 << 7)|(T10 << 6)|(T7 << 5)|(T6 << 4)|(T5 << 3)|(T4 << 2)|(T3 << 1)|(T2) (6)
  • Es sollte beachtet werden, dass in 16 das Pixel T1 nicht mehr mit einem „?" gezeigt ist, da dessen Wert nun bekannt ist. Die Tabellen A-III(a) und A-III(b) im Anhang stellen die kontextbasierten Wahrscheinlichkeitstabellen für T0 jeweils entsprechend dem ungeraden symmetrischen Waveletfilter und dem geraden symmetrischen Waveletfilter bereit.
  • Zweiter Durchlauf: Codieren der aktuellen räumlichen Schicht Λn von der halbhöheren Schicht Λn+1/2
  • Der zweite Durchlauf kann erreicht werden, indem die halbhöhere Schicht und die aktuelle Maskenschicht ausgetauscht werden und zum Codieren der aktuellen Maskenschicht das gleiche Verfahren wie im ersten Durchlauf angewandt wird. Alternativ kann das Codieren im zweiten Durchlauf ohne ein Austauschen der Maske durchgeführt werden. Die zwei Pixel in jedem 2×1-(zwei Pixel in horizontaler Richtung und ein Pixel in vertikaler Richtung) nicht überlappten Unterblock in der vertikal-zuerst Rasterverfahrensreihenfolge (das heißt, die Unterblöcke werden in vertikaler Richtung von oben nach unten gescannt) in der aktuellen räumlichen Schicht, die mit „muss codiert werden" gekennzeichnet ist (z. B. gemäß eines RAND-Blocks), werden getrennt codiert. Genauer gesagt werden die zwei Pixel mn ( i)(2j ) und mn ( i)(2j+1 ), wobei i und j Zeilen- und Spaltenindizes sind, auf die sich dieser 2×1-Unterblock in der halbhöheren räumlichen Schicht Λn+1/2 bezieht, unter Verwendung der unten beschriebenen kontextbasierten arithmetischen Codierungssystemen getrennt codiert.
  • 17 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen für eine Erhöhungsschichtcodierung im zweiten Durchlauf. 17 zeigt nämlich die zugehörigen Pixel und deren Kennzeichnungen, die bei der kontextbasierten arithmetischen Codierung von einer halbhöheren räumlichen Schicht 1700 zu einer aktuellen räumlichen Schicht 1710 verwendet werden. Die zugehörigen Pixel und deren Kennzeichnungen sind wie folgt:
    wo T9 = mn (i)(2j-1), T8 = mn (i+1)(2j-1), T7 = mn (i-2)(2j+1), T6 = mn (i-2)(2j), T5 = mn+1/2 (i)(j), T4 = mn+1/2 (i+1)(j), T3 = mn+1/2 (i)(j+1), T2 = mn+1/2 (i+1)(j+1), T10 = mn+1/2 (i-1)(j+1), T1 = mn (i)(2j+1), T0 = mn (i)(2j+1), und wo mz ( x)(y) den Maskenwert bei Position (x, y) in der räumlichen Schicht Λz bezeichnet. T6 bis T9 sind die entsprechenden bereits codierten/decodierten Pixel in einer aktuellen Schicht und T5 bis T2 und T10 sind entsprechende Pixel in der halbhöheren räumlichen Schicht Λn+1/2 (1700). T1 (1712) und T0 (1714) sind die Pixel, die in der aktuellen räumlichen Schicht Λn+1/2 (1710) codiert werden sollen.
  • 18 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen beim Codieren von Erhöhungsschichten zum Codieren eines ersten Pixels 1712 in der aktuellen räumlichen Schicht 1810. 18 zeigt nämlich den Kontext, der zum Codieren des Pixels T1 = mn ( i)(2j) verwendet wird, d. h. wo das Fragezeichen das Pixel anzeigt, dessen Maskenwert wie folgt codiert werden soll: Kontext5 = (T9 << 7)|(T8 << 6)|(T7 << 5)|(T6 << 4)|(T5 << 3)|(T4 << 2)|(T3 << 1)|(T2) (7)
  • Die Tabellen A-II(a) und A-II(b) im Anhang geben die kontextbasierten Wahrscheinlichkeitstabellen für T1 jeweils entsprechend des ungeraden symmetrischen Waveletfilters und des geraden symmetrischen Waveletfilters an.
  • 19 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen beim Codieren von Erhöhungsschichten zum Codieren eines zweiten Pixels 1714 in der aktuellen räumlichen Schicht 1910. 19 zeigt nämlich den Kontext, der zum Codieren des Pixels T0 = mn (i)(2j+1) verwendet wird, d. h. wo das Fragezeichen das Pixel anzeigt, dessen Maskenwert wie folgt codiert werden soll: Kontext6 = (T1 << 7)|(T10 << 6)|(T7 << 5)|(T6 << 4)|(T5 << 3)|(T4 << 2)|(T3 << 1)|(T2) (8)
  • Es sollte erneut beachtet werden, dass in 19 das Pixel T1 nicht mehr mit einem „?" gezeigt ist, da dessen Wert nun bekannt ist. Die Tabellen A-III(a) und A-III(b) im Anhang geben die kontextbasierten Wahrscheinlichkeitstabellen für T0 jeweils entsprechend des ungeraden symmetrischen Waveletfilters und des geraden symmetrischen Waveletfilters an.
  • Es sollte beachtet werden, dass die Maskenwerte von der unteren räumlichen Schicht Λn+1 und der halbhöheren räumlichen Schicht Λn+1/2 in der Kontextausführung im obigen Kontext verwendet werden, wo die eingeschlossene Voraussage eintritt. Für die Kontextelemente, die sich außerhalb der Begrenzung der Schicht befinden, sind stattdessen wieder Nullen verwendet, um den Kontext zu bilden.
  • Es sollte beachtet werden, dass alle Wahrscheinlichkeitstabellen im Anhang die Wahrscheinlichkeit von Nullen in gegebenen Zusammenhängen angibt. Die Wahrscheinlichkeitstabellen sind nämlich innerhalb des Bereichs normalisiert [0,65536]. Es gibt jedoch drei Sonderfälle:
    • 1) Die Wahrscheinlichkeit von Null ist in bestimmten Zusammenhängen Null. Das bedeutet, dass es in diesem Zusammenhang sicher ist, dass der codierte Wert nur Eins sein kann. Es müssen keine Binärzeichen codiert werden.
    • 2) Die Wahrscheinlichkeit von Null ist in bestimmten Zusammenhängen 65536. Das bedeutet, dass es in diesem Zusammenhang sicher ist, dass der codierte Wert nur Null sein kann. Es müssen keine Binärzeichen codiert werden.
    • 3) Die Wahrscheinlichkeit von Null ist in bestimmten Zusammenhängen 65537. Das bedeutet, dass dieser spezielle Zusammenhang niemals eintreten kann. Codierungen, die auf diesem Zusammenhang basieren, sind nämlich ein Fehler des Codierers.
  • Alternativ kann der Nutzer auch auswählen, die gesamte Form auf nicht-skalierbare Art zu codieren. In diesem Fall ist eine Eins-zu-Eins-Übereinstimmung zwischen der Form- und Strukturzerlegung nicht erforderlich. Dies ist ein besonderer Fall des obigen Verfahrens, wo das Formzerlegungslevel L auf 0 festgelegt ist und es keine erweiterte Schichtcodierung gibt.
  • Des Weiteren kann das obige Einzelbild-basierte Formcodierungssystem einfach auf blockbasiertes Codieren erweitert werden, da die verwendeten Zusammenhänge derartige blockbasierte Codierung unterstützen. Wenn Kontextelemente an Blockrändern nicht verfügbar sind, können stattdessen die Maskenwerte an den entsprechenden Positionen in den voraussagenden Schichten verwendet werden.
  • Binäre arithmetische Erhöhungsschichtcodierung
  • Zur Vereinfachung des skalierbaren Formcodierers 1211 wird typischerweise binäres arithmetisches Codieren bevorzugt. Insbesondere die 2×2-Codierungsgruppe in der Erhöhungsschicht wird in einzelne Pixel geteilt. In der vorliegenden Erfindung sind mehrere Ausführungsformen vereinfachter binärer Kontextmodelle beschrieben. Bei diesem Verfahren wenden die vier Pixel in einem 2×2-Block in der Erhöhungsschicht nach wie vor gleichzeitig gescannt. Wenn jedoch jeder 2×2-Block gescannt wird, wird jedes der vier Pixel separat unter Verwendung verschiedener Kontextmodelle codiert. Man bezeichne die 2×2-Pixel durch ihre räumliche Lage: A(2i, 2j), A(2i, 2j + 1), A(2i + 1, 2j), A(2i + 1, 2j + 1). Die folgenden kontextbasierten, binären, arithmetischen Codierungsverfahren können auch angewendet werden, um eine gleich hohe Codierungseffizienz wie oben beschrieben zu erreichen.
  • Erste binäre Ausführungsform
  • Der Unterschied in dieser binären, arithmetischen Codierungs-Ausführungsform ist, dass die obige kontextbasierte arithmetische Codierung in eine binäre Darstellung anstatt eine Mehrfachsym bol-Darstellung beim Codieren der erweiterten Schicht geändert wird. Die Kontextausführung ist der in 9 beschriebenen ähnlich, doch nun ist der 2×2-Block in der Erweiterungsmaskenschicht nicht in einem Symbol angeordnet und die Pixel im 2×2-Block werden unter Verwendung eines progressiven Zusammenhangs nacheinander codiert. Die Zusammenhänge für jedes der 2×2-Pixel sind in den 20 bis 23 gezeigt.
  • 20 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen für die Erhöhungsschichtcodierung unter Verwendung eines binären Kontextmodells für ein erstes Pixel A(2i, 2j) 2012 in der ersten binären Ausführungsform. Insbesondere 20 zeigt die Kontextausführung, wobei das Pixel 2012 mit dem Fragezeichen das Pixel in der aktuellen räumlichen Schicht Λn 2010 anzeigt, dessen Maskenwert codiert werden soll. 20 zeigt nämlich die Ausführung dieses Kontexts von der unteren räumlichen Schicht Λn+l 2000 und von einer aktuellen räumlichen Schicht Λn 2010. Die von A(2i, 2j) wie in 20 gezeigte verwendete Kontextzahl kann wie folgt gegeben sein: Kontext7 = (T7 << 7)|(T6 << 6)|(T5 << 5)|(T4 << 4)|(T3 << 3)|(T2 << 2)|(T1 << 1)|T0 (9)wobei „<<" eine Linksverschiebungsoperation und „|" eine bitweise logische ODER-Operation ist, T7 = mn (2i-l)(2j), T6 = mn (2i-l)(2j+l), T5 = mn (2i)(2j-l), T4 = mn (2i+1)(2j-l), T3 = mn+1 (i)(j), T2 = mn+1 (i)(j+l), T1 = mn+1 (i+l)(j), T0 = mn+1 (i+1)(j+l), mn (x)(y) bezeichnet den Maskenwert bei Position (x, y) in der räumlichen Schicht Λn, 2010.
  • 21 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen für Erhöhungsschichtcodierung unter Verwendung eines binären Kontextmodells für ein zweites Pixel A(2i, 2j + 1) 2112 in der ersten binären Ausführungsform. Insbesondere 21 zeigt die Kontextausführung, wo das Pixel 2112 mit dem Fragezeichen das nächste Pixel in der aktuellen räumlichen Schicht Λn 2110 anzeigt, dessen Maskenwert codiert werden soll. 21 zeigt nämlich die Ausführung dieses Kontexts sowohl von der unteren räumlichen Schicht Λn+l 2100 und von einer aktuellen räumlichen Schicht Λn 2110. Die Kontextzahl, die wie in 21 gezeigt von A(2i, 2j + 1) verwendet wird, kann wie folgt gegeben sein: Kontext8 = (T8 << 8)|(T7 << 7)|(T6 << 6)|(T5 << 5)|(T4 << 4)|(T3 << 3)|(T2 << 2)|(T1 << 1)|T0 (10)wobei „<<" eine Linksverschiebungsoperation und „|" eine bitweise logische ODER-Operation ist, T8 = mn (2i)(2j), T7 = mn (2i-l)(2j), T6 = mn (2i-l)(2j-l), T5 = mn (2i)(2j-l), T4 = mn (2i+1)(2j-l), T3 = mn+1 (i)(j), T2 = mn+1 (i)(j+l), T1 = mn+1 (i+1)(j), T0 = mn+1 (i+1)(j+l), mn (x)(y) bezeichnet den Maskenwert bei Position (x, y) in der räumlichen Schicht Λn, 2110.
  • 22 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen für die Erhöhungsschichtcodierung unter Verwendung eines binären Kontextmodells für ein drittes Pixel A(2i + 1, 2j) 2212 in der ersten binären Ausführungsform. Insbesondere zeigt 22 die Kontextausführung, wo das Pixel 2212 mit dem Fragezeichen das nächste Pixel in der aktuellen räumlichen Schicht Λn 2210 anzeigt, dessen Maskenwert codiert werden soll. 22 zeigt nämlich die Ausführung dieses Kontexts sowohl von der unteren räumlichen Schicht Λn+l 2200 und von einer aktuellen räumlichen Schicht Λn 2210. Die durch A(2i + 1, 2j) wie in 22 gezeigt verwendete Kontextnummer kann wie folgt gegeben sein: Kontext9 = (T9 << 9)|(T8 << 8)|(T7 << 7)|(T6 << 6)|(T5 << 5)|(T4 << 4)|(T3 << 3)|(T2 << 2)|(T1 << 1)|T0 (11)wobei „<<" eine Linksverschiebungsoperation und „|" eine bitweise logische ODER-Operation ist, T9 = mn (2i)(2j+1), T8 = mn (2i)(2j), T7 = mn (2i-l)(2j), T6 = mn (2i-l)(2j+l), T5 = mn (2i)(2j-l), T4 = mn (2i+1)(2j-l), T3 = mn+1 (i)(j), T2 = mn+1 (i)(j+l), T1 = mn+1 (i+1)(j), T0 = mn+1 (i+1)(j+1), mn (x)(y) bezeichnet den Maskenwert bei Position (x, y) in der räumlichen Schicht Λn, 2210.
  • 23 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen für die Erhöhungsschichtcodierung unter Verwendung eines binären Kontextmodells für ein viertes Pixel A(2i + 1, 2j + 1) 2312 in der ersten binären Ausführungsform. Insbesondere zeigt 23 die Kontextausführung, wobei das Pixel 2312 mit dem Fragezeichen das nächste Pixel in der aktuellen räumlichen Schicht Λn 2310 anzeigt, dessen Maskenwert codiert werden soll. 23 zeigt nämlich die Ausführung dieses Kontexts sowohl von der unteren räumlichen Schicht Λn+1, 2300 als auch einer aktuellen räumlichen Schicht Λn 2310. Die von A(2i + 1, 2j + 1) wie in 23 gezeigt verwendete Kontextnummer kann wie folgt gegeben sein: Kontext10 = (T10 << 10)|(T9 << 9)|(T8 << 8)|(T7 << 7)|(T6 << 6)|(T5 << 5)|(T4 << 4)|(T3 << 3)|(T2 << 2)|(T1 << 1)|T0 (12)wobei „<<" eine Linksverschiebungsoperation und „|" eine bitweise logische ODER-Operation ist, T10 = mn (2i+1)(2j), T9 = mn (2i)(2j+1), T8 = mn (2i)(2j), T7 = mn (2i-l)(2j), T6 = mn (2i-l)(2j+l), T5 = mn (2i)(2j-l), T4 = mn (2i+1)(2j-l), T3 = mn+1 (i)(j), T2 = mn+1 (i)(j+l), T1 = mn+1 (i+1)(j), T0 = mn+1 (i+1)(j+1), mn (x)(y) bezeichnet den Maskenwert bei Position (x, y) in der räumlichen Schicht Λn, 2310.
  • Zweite binäre Ausführungsform
  • Die zweite binäre Ausführungsform ist der ersten binären Ausführungsform ähnlich, außer dass die Kontexte vereinfacht sind, indem eine geringere Korrelation zwischen bestimmten Pixeln ausgenutzt wird. Insbesondere 24 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen für Erhöhungsschichtcodierung unter Verwendung eines binären Kontextmodells für ein erstes Pixel A(2i, 2j) 2412 in der zweiten binären Ausführungsform. Insbesondere 24 zeigt die Kontextausführung, wo das Pixel 2412 mit dem Fragezeichen das Pixel in der aktuellen räumlichen Schicht Λn 2410 anzeigt, dessen Maskenwert codiert werden soll. 24 zeigt nämlich die Ausführung dieses Kontexts sowohl von der unteren räumlichen Schicht Λn+l 2400 und von einer aktuellen räumlichen Schicht Λn 2410. Die von A(2i, 2j) wie in 24 gezeigt verwendete Kontextnummer kann wie folgt gegeben sein: Kontext11 = (T7 << 7)|(T6 << 6)|(T5 << 5)|(T4 << 4)|(T3 << 3)|(T2 << 2)|(T1 << 1)|T0 (13)wobei „<<" eine Linksverschiebungsoperation und „|" eine bitweise logische ODER-Operation ist, T7 = mn (2i-l)(2j), T6 = mn (2i-l)(2j+l), T5 = mn (2i)(2j-l), T4 = mn (2i+l)(2j-l), T3 = mn+1 (i)(j), T2 = mn+1 (i)(j+l), T1 = mn+1 (i+1)(j), T0 = mn+1 (i+1)(j+l), mn (x)(y) bezeichnet den Maskenwert bei Position (x, y) in der räumlichen Schicht Λn, 2410. Dieser Kontext ist mit dem der Gleichung (9) identisch.
  • 25 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen für Erhöhungsschichtcodierung unter Verwendung eines binären Kontextmodells für ein zweites Pixel A(2i, 2j + 1) 2112 in der zweiten binären Ausführungsform. Insbesondere 25 zeigt die Kontextausführung, wo das Pixel 2512 mit dem Fragezeichen das nächste Pixel in der aktuellen räumlichen Schicht Λn 2510 anzeigt, dessen Maskenwert codiert werden soll. 25 zeigt nämlich die Ausführung dieses Kontexts sowohl von der unteren räumlichen Schicht Λn+l 2500 als auch von einer aktuellen räumlichen Schicht Λn 2510. Die von A(2i, 2j + 1) wie in 25 gezeigte Kontextnummer kann wie folgt gegeben sein: Kontext12 = (T6 << 6)|(T5 << 5)|(T4 << 4)|(T3 << 3)|(T2 << 2)|(T1 << 1)|T0 (14)wobei „<<" eine Linksverschiebungsoperation und „|" eine bitweise logische ODER-Operation ist, T6 = mn (2i)(2j), T5 = mn (2i-1)(2j), T4 = mn (2i-1)(2j+l), T3 = mn+1 (i)(j), T2 = mn+1 (i)(j+l), T1 = mn+1 (i+1)(j), T0 = mn+1 (i+1)(j+l), mn (x)(y) bezeichnet den Maskenwert bei Position (x, y) in der räumlichen Schicht Λn, 2510.
  • 26 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen für Erhöhungsschichtcodierung unter Verwendung eines binären Kontextmodells für ein drittes Pixel A(2i + 1, 2j) 2612 in der zweiten binären Ausführungsform. Insbesondere zeigt 26 die Kontextausführung, wo das Pixel 2612 mit dem Fragezeichen das nächste Pixel in der aktuellen räumlichen Schicht Λn 2610 anzeigt, dessen Maskenwert codiert werden soll. 26 zeigt nämlich die Ausführung dieses Kontexts sowohl von der unteren räumlichen Schicht Λn+l 2600 und von einer aktuellen räumlichen Schicht Λn 2610. Die von A(2i + 1, 2j) wie in 26 gezeigt verwendete Kontextnummer kann wie folgt gegeben sein: Kontext13 = (T7 << 7)|(T6 << 6)|(T5 << 5)|(T4 << 4)|(T3 << 3)|(T2 << 2)|(T1 << 1)|T0 (15)wobei "<<" eine Linksverschiebungsoperation und „|" eine bitweise logische ODER-Operation ist, T7 = mn (2i)(2j), T6 = mn (2i)(2j+1), T5 = mn (2i)(2j-1), T4 = mn (2i+1)(2j-l), T3 = mn+1 (i)(j), T2 = mn+1 (i)(j+l), T1 = mn+1 (i+1)(j), T0 = mn +1 (i+1)(j+l), mn ( x)(y) bezeichnet den Maskenwert bei Position (x, y) in der räumlichen Schicht Λn, 2610.
  • 27 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen für Erhöhungsschichtcodierung unter Verwendung eines binären Kontextmodells für ein viertes Pixel A(2i + 1, 2j + 1) 2712 in der zweiten binären Ausführungsform. Insbesondere 27 zeigt die Kontextausführung, wobei das Pixel 2712 mit dem Fragezeichen das nächste Pixel in der aktuellen räumlichen Schicht Λn 2710 anzeigt, dessen Maskenwert codiert werden soll. 27 zeigt nämlich die Ausführung dieses Kontexts sowohl von der unteren räumlichen Schicht Λn+l 2700 und von einer aktuellen räumlichen Schicht Λn 2710. Die von A(2i + 1, 2j + 1) wie in 27 gezeigt verwendete Kontextnummer kann wie folgt gegeben sein: Kontext14 = (T6 << 6)|(T5 << 5)|(T4 << 4)|(T3 << 3)|(T2 << 2)|(T1 << 1)|T0 (16)wobei "<<" eine Linksverschiebungsoperation und „|" eine bitweise logische ODER-Operation ist, T6 = mn (2i)(2j), T5 = mn (2i)(2j+1), T4 = mn (2i+1)(2j), T3 = mn+1 (i)(j), T2 = mn+1 (i)(j+l), T1 = mn+1 (i+1)(j), T0 = mn+1 (i+1)(j+l), mn ( x)( y ) bezeichnet den Maskenwert bei Position (x, y) in der räumlichen Schicht Λn, 2710.
  • Dritte binäre Ausführungsform
  • Die dritte Ausführungsform ist der obigen zweiten Ausführungsform ähnlich, außer dass die Kontexte aufgrund der geringeren Korrelation zwischen bestimmten Pixeln weiter vereinfacht sind. Außerdem kann diese dritte binäre Ausführungsform das symmetrische Merkmal der Formzerlegungsverfahren in horizontaler und vertikaler Richtung ausnutzen.
  • Insbesondere 28 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen für Erhöhungsschichtcodieren unter Verwendung eines binären Kontextmodells für ein erstes Pixel A(2i, 2j) 2812 in der dritten binären Ausführungsform. Insbesondere zeigt 28 die Kontextausführung, wobei das Pixel 2812 mit dem Fragezeichen das Pixel in der aktuellen räumlichen Schicht Λn 2810 zeigt, dessen Maskenwert codiert werden soll. 28 zeigt nämlich die Ausführung dieses Kontexts sowohl von der unteren räumlichen Schicht Λn+l 2800 als auch von einer aktuellen räumlichen Schicht Λn 2810. Die von A(2i, 2j) wie in 28 gezeigt verwendete Kontextnummer kann wie folgt verwendet werden: Kontext15 = wenn (T1 > T2), dann ((T7 << 7)|(T6 << 6)|(T5 << 5)|(T4 << 4)|(T3 << 3)|(T2 << 2)|(T1 << 1)|T0); andernfalls ((T5 << 7)|(T4 << 6)|(T7 << 5)|(T6 << 4)|(T3 << 3)|(T1 << 2)|(T2 << 1)|T0) (17)wobei „<<" eine Linksverschiebungsoperation und „|" eine bitweise logische ODER-Operation ist, T7 = mn (2i-1)(2j), T6 = mn (2i-l)(2j+l), T5 = mn (2i)(2j-l), T4 = mn (2i+1)(2j-l), T3 = mn+1 (i)(j), T2 = mn+1 (i)(j+l), T1 = mn+1 (i+1)(j), T0 = mn +1 (i+1)(j+l), mn ( x)(y) bezeichnet den Maskenwert bei Position (x, y) in der räumlichen Schicht Λn, 2810. Dieser Zusammenhang ist mit dem in Gleichung (9) identisch. Es sollte beachtet werden, dass die symmetrische Eigenschaft verwendet wird, um die gesamten Kontextnummern auf 192 zu reduzieren.
  • 29 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen für Erhöhungsschichtcodierung unter Verwendung eines binären Kontextmodells für ein zweites Pixel A(2i, 2j + 1) 2912 in der dritten binären Ausführungsform. Insbesondere zeigt 29 die Kontextausführung, wo das Pixel 2912 mit dem Fragezeichen das nächste Pixel in der aktuellen räumlichen Schicht Λn 2910 anzeigt, dessen Maskenwert codiert werden soll. 29 zeigt nämlich die Ausführung dieses Kontexts sowohl von der unteren räumlichen Schicht Λn+l 2900 als auch von einer aktuellen räumlichen Schicht Λn 2910. Die von A(2i, 2j + 1) wie in 29 gezeigt verwendete Kontextnummer kann wie folgt gegeben sein: Kontext16 = (T6 << 6)|(T5 << 5)|(T4 << 4)|(T3 << 3)|(T2 << 2)|(T1 << 1)|T0 (18)wobei „<<" eine Linksverschiebungsoperation und „|" eine bitweise logische ODER-Operation ist, T6 = mn (2i)(2j), T5 = mn (2i-1)(2j), T4 = mn (2i-1)(2j+l), T3 = mn+1 (i)(j), T2 = mn+1 (i)(j+l), T1 = mn+1 (i+1)(j), T0 = mn+1 (i+1)(j+l), mn (x)(y) bezeichnet den Maskenwert bei Position (x, y) in der räumlichen Schicht Λn, 2910.
  • 30 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen für Erhöhungsschichtcodierung unter Verwendung eines binären Kontextmodells für ein drittes Pixel A(2i + 1, 2j) 3012 in der dritten binären Ausführungsform. Insbesondere zeigt 30 die Kontextausführung, wo das Pixel 3012 mit dem Fragezeichen das nächste Pixel in der aktuellen räumlichen Schicht Λn 3010 anzeigt, dessen Maskenwert codiert werden soll. 30 zeigt die Ausführung dieses Kontexts sowohl von einer der unteren räumlichen Schicht Λn+l 3000 als auch von einer aktuellen räumlichen Schicht Λn 3010. Die von A(2i + 1, 2j) wie in 30 gezeigt verwendete Kontextnummer kann wie folgt gegeben sein: Kontext17 = (T6 << 6)|(T5 << 5)|(T4 << 4)|(T3 << 3)|(T2 << 2)|(T1 << 1)|T0 (19)wobei „<<" eine Linksverschiebungsoperation und „|" eine bitweise logische ODER-Operation ist, T6 = mn (2i)(2j), T5 = mn (2i)(2j-1), T4 = mn (2i+1)(2j-l), T3 = mn+1 (i)(j), T2 = mn+1 (i+1)(j), T1 = mn+1 (i)(j+1), T0 = mn+1 (i+1)(j+l), mn (x)(y) bezeichnet den Maskenwert bei Position (x, y) in der räumlichen Schicht Λn, 3010. Es sollte beachtet werden, dass A(2i, 2j + 1) und A(2i + 1, 2j) aufgrund der symmetrischen Eigenschaften das gleiche Kontextwahrscheinlichkeitsmodell haben, die Bildung der Kontexte jedoch wie in den 29 und 30 gezeigt unterschiedlich ist.
  • 31 zeigt ein Blockdiagramm der relativen Positionen von Kontextelementen für Erhöhungsschichtcodierung unter Verwendung eines binären Kontextmodells für ein viertes Pixel A(2i + 1, 2j + 1) 2712 in der dritten binären Ausführungsform. Insbesondere zeigt 31 die Kontextausführung, wo das Pixel 3112 mit dem Fragezeichen das nächste Pixel in der aktuellen räumlichen Schicht Λn 3110 anzeigt, dessen Maskenwert codiert werden soll. 31 zeigt nämlich die Ausführung dieses Kontexts sowohl von der unteren räumlichen Schicht Λn+l 3100 als auch von der aktuellen räumlichen Schicht Λn 3110. Die von A(2i + 1, 2j + 1) wie in 31 gezeigt verwendete Kontextnummer kann wie folgt gegeben sein: Kontext18 = wenn (T1 > T2) dann ((T6 << 6)|(T5 << 5)|(T4 << 4)|(T3 << 3)|(T2 << 2)|(T1 << 1)|T0); andernfalls ((T6 << 6)|(T4 << 5)|(T5 << 4)|(T3 << 3)|(T1 << 2)|(T2 << 1)|T0) (20)wobei „<<" eine Linksverschiebungsoperation und „|" eine bitweise logische ODER-Operation ist, T6 = mn (2i)(2j), T5 = mn (2i)(2j+1), T4 = mn (2i+1)(2j), T3 = mn+1 (i)(j), T2 = mn+1 (i)(j+l), T1 = mn+1 (i+1)(j), T0 = mn+1 (i+1)(j+l), mn (x)(y) bezeichnet den Maskenwert bei Position (x, y) in der räumlichen Schicht Λn, 3110. Es sollte beachtet werden, dass die symmetrische Eigenschaft verwendet wird, um die gesamten möglichen Kontextnummern auf 96 zu reduzieren.
  • Die obigen binären arithmetischen Codierungsausführungsformen bieten Flexibilität und stellen Rückwärtskompatibilität bereit. Die Blockmoduscodierung kann nämlich die gleiche VLC (Variables Längencodierungsmodul)-Tabelle wie das binäre, wie in MPEG-4 beschriebene Formcodie rungsverfahren verwenden, um vollständige Rückwärtskompatibilität bis zur Basisschicht bereitzustellen. Das Basisschichtcodierungsverfahren verwendet das gleiche Codierungssystem wie die binäre kontextbasierte arithmetische Codierung in der aktuellen Version des MPEG-4-Standards, jedoch ohne den Blockrand (d. h. rahmenbasierte Codierung). Wenn keine Skalierbarkeits-Funktion erforderlich ist, dann ähnelt das Basisschichtformcodierungsverfahren dem binären kontextbasierten arithmetischen Codieren mit Blockrand, das für Einzelbild-basiertes Wavelet-Codieren entfernt wurde. Deshalb stellt das vorliegende Codierungsverfahren volle Rückwärtskompatibilität mit der aktuellen Version des MPEG-4-Standards bereit, während zusätzliche Funktionen und eine höhere Codiereffizienz bereitgestellt wird.
  • Wenn die VLC-Tabelle jedoch verwendet wird, um den Blockmodus zu codieren, kann die Moduscodierungseffizienz nicht so effizient sein wie die Verwendung der kontextbasierten arithmetischen Verfahren, die in der vorliegenden Erfindung vorgeschlagen werden. Deshalb kann ein einzelnes Bit im Datenstrom verwendet werden, um dem Decodierer anzuzeigen, ob die volle Rückwärtskompatibilität unter Verwendung der VLC-Tabelle gewählt wurde, um den Blockmodus zu codieren oder ob eines der kontextbasierten Codierungsverfahren wie in der vorliegenden Erfindung beschrieben eingesetzt wird. Es sollte beachtet werden, dass Kompatibilität zu einem bestimmten Grad weiterhin erhalten bleibt, auch wenn das kontextbasierte Codierungsverfahren ausgewählt wird, um den Vorteil höherer Codierungseffizienz zu erlangen. Der binäre kontextbasierte arithmetische Codierer/Decodierer und der für das Moduscodieren und Basisschichtcodieren verwendete Kontext sind nämlich weiterhin genauso wie in der aktuellen Version des MPEG-4-Standards.
  • Nachdem in 11 Schritt 1170 abgeschlossen ist, kehrt das Verfahren 1100 zu Schritt 1165 zurück und die von den Schritten 1165 und 1170 gebildete Schleife wird wiederholt, bis die höchste Maskenschicht codiert ist.
  • Die obige Beschreibung stellt das Codierungsverfahren dieses räumlich skalierbaren Formcodierers bereit. Es sollte jedoch verständlich sein, dass eine Ergänzung wie ein Decodierungsverfahren den gleichen Schritten folgen wird, außer dass nach dem Decodieren des Blockmodusses alle Blöcke, die mit „ALLE 0" markiert sind, mit Nullen (0) gefüllt werden und alle Blöcke, die mit „ALLE 1) markiert sind, mit Einsen (1) gefüllt werden, um den richtigen, oben beschriebenen Kontext zu bilden. Ein wichtiger Aspekt der vorliegenden Erfindung ist, dass der Decodierer bei jeder Schicht aufhören kann, die Maskeninformation für diese spezielle räumliche Schicht abzurufen, ohne alle Bits für die vollauflösende Maskenschicht zu erhalten. Somit stellt die vorliegende Erfindung ein flexibles, räumlich-skalierbares Formcodierungsverfahren und -vorrichtung bereit.
  • Ein zweiter Vorteil ist, dass unterschiedliche Maskenzerlegungssysteme wahrscheinlich unterschiedliche Verteilungswahrscheinlichkeiten in jedem Kontext haben werden und der aktuelle skalierbare Formcodierer kann einfach von einem Maskenzerlegungssystem in das andere umschalten, indem er die vom arithmetischen Codierer verwendeten Wahrscheinlichkeitstabellen austauscht, ohne das gesamte Codierungsverfahren zu ändern.
  • Des Weiteren sollte beachtet werden, dass in einigen Fällen Werte von Λn in bestimmten Zusammenhängen bei bestimmten Maskenzerlegungssystemen niemals vorkommen können. Dies kann auch genutzt werden, um die Codiereffizienz zu verbessern. Es werden nämlich keine Bits verschwendet, um diesen Pixelwert zu codieren, da er einmalig aus dem Kontext ersichtlich ist.
  • Auch wenn verschiedene Ausführungsformen, die die Lehren der vorliegenden Erfindung beinhalten, hier detailliert gezeigt und beschrieben wurden, kann der Fachmann einfach viele andere verschiedene Ausführungsformen entwickeln, die diese Lehren weiterhin beinhalten.
  • Anhang
  • Tabelle A-I: Die Wahrscheinlichkeitstabelle für Klassen und Typen beim Blockmoduscodieren
  • (a) Klasse
  • USInt Probclass[81] = {
    63791, 51557, 28328, 32768, 1, 51874, 32768, 4305, 32768, 32768, 32768, 52778, 32768, 65535, 38632, 32768, 32768, 48149, 32768, 1, 8606, 32768, 7842, 37282, 65535, 2146, 32768, 1, 65535, 32768, 32768, 32768, 32768, 32768, 32768, 32768, 61045, 20339, 1, 63788, 31086, 32768, 47382, 6997, 32768, 3408, 5705, 32768, 43931, 9039, 32768, 37682, 4999, 65505, 1111, 50158, 32768, 32768, 32768, 60396, 1, 14855, 32768, 65535, 18725, 1111, 63276, 33309, 1, 56969, 16602, 63411, 2601, 33559, 3569, 54228, 25358, 56719, 49771, 22819};
  • (b) Typ
  • USInt Probtype[81] = {
    65282, 1, 54161, 32768, 32768, 32768, 65535, 32768, 50972, 32768, 32768, 32768, 1, 32768, 1, 1, 32768, 32768, 65535, 32768, 32768, 15124, 32768, 1, 61950, 1, 8738, 32768, 32768, 65535, 32768, 32768, 32768, 32768, 32768, 32768, 32768, 1, 1, 32768, 1, 1, 32768, 1, 1, 32768, 1170, 64674, 32768, 1, 1, 32768, 1, 30370, 65535, 65535, 65535, 32768, 32768, 32768, 65535, 32768, 65535, 32768, 1, 1, 65535, 1, 1, 32768, 1, 1, 65535, 1, 65150, 65535, 1, 511, 65535, 1, 25362};
  • Tabelle A-II: Die Wahrscheinlichkeitstabelle für Pixel T1 beim Erhöhungsschicht-Codieren
  • (a) Ungerader symmetrischer Filter
  • USInt scal_prob0_odd[256] = {
    65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 25682, 29649, 83, 1096, 28876, 19253, 2320, 292, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 20597, 40071, 1, 1476, 6971, 9466, 4033, 314, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 34822, 58944, 1049, 888, 47296, 38677, 478, 14, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 21384, 35003, 26, 7, 9600, 13044, 44, 1, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 66, 13653, 1, 1, 25105, 19008, 285, 31, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 1057, 27888, 1, 2521, 4252, 15367, 1, 751, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 290, 17476, 1, 1, 8625, 20056, 121, 3, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 1960, 15984, 1, 1, 4747, 16480, 110, 9, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 87, 140, 1, 55, 1205, 1864, 1, 1, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 549, 2823, 1, 1, 1902, 782, 1285, 130, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 290, 6665, 1, 1, 15984, 8656, 1, 244, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 63, 2114, 1, 3, 2138, 1560, 69, 1, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 1, 3178, 1, 218, 160, 66, 1, 2, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 35, 7047, 366, 180, 34, 113, 1, 9, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 837, 15124, 1, 1, 5571, 3236, 1, 2, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 14, 1538, 1, 14, 31, 115, 1, 1};
  • (b) Gerader symmetrischer Filter
  • USInt scal_prob0_even[256] = {
    65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 25542, 38525, 48333, 53517, 26541, 23214, 61559, 59853, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 7151, 31006, 33480, 29879, 2609, 4142, 16384, 11884, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 44817, 65536, 56097, 64984, 40735, 47710, 43386, 52046, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 17545, 29626, 37308, 42263, 4196, 13552, 7199, 7230, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 1, 1, 1, 39322, 13578, 17416, 29218, 31831, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 1311, 65535, 32768, 7282, 1, 3048, 25206, 19935, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 1, 32768, 17873, 61861, 3417, 14895, 4541, 5293, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 4819, 32768, 39950, 43523, 1148, 4021, 12072, 5436, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 1, 1, 134, 1, 1, 55, 5461, 2849, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 24, 5243, 590, 1079, 86, 95, 14564, 7159, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 328, 1, 2564, 14919, 21845, 1, 9362, 15880, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 43, 362, 150, 1179, 752, 529, 683, 331, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 1, 1, 700, 862, 25, 24, 1317, 558, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 1, 1, 1, 172, 2, 4, 793, 342, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 572, 1, 1928, 43080, 3337, 1680, 1401, 2131, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 18, 1, 366, 7456, 8, 18, 40, 8};
  • Tabelle A-III: Die Wahrscheinlichkeitstabelle für Pixel T0 beim Erhöhungsschicht-Codieren
  • (a) Ungerader symmetrischer Filter
  • USInt scal_prob1_odd[256] = {
    65536, 65536, 54236, 62309, 65536, 65536, 39146, 32459, 0, 0, 0, 0, 0, 0, 0, 0, 65536, 65536, 3293, 20806, 65536, 65536, 20132, 22080, 0, 0, 0, 0, 0, 0, 0, 0, 65536, 65536, 62837, 40750, 65536, 65536, 36528, 20960, 0, 0, 0, 0, 0, 0, 0, 0, 65536, 65536, 46875, 21025, 65536, 65536, 35747, 30778, 0, 0, 0, 0, 0, 0, 0, 0, 65536, 65536, 63956, 52735, 65536, 65536, 32974, 6233, 0, 0, 0, 0, 0, 0, 0, 0, 65536, 65536, 39449, 40885, 65536, 65536, 23406, 10898, 0, 0, 0, 0, 0, 0, 0, 0, 65536, 65536, 62156, 12655, 65536, 65536, 23973, 3451, 0, 0, 0, 0, 0, 0, 0, 0, 65536, 65536, 31892, 3756, 65536, 65536, 24045, 14281, 0, 0, 0, 0, 0, 0, 0, 0, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 51966, 33057, 1, 6782, 62238, 32046, 5919, 418, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 64435, 18941, 1224, 7203, 52134, 4674, 6753, 1113, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 62703, 34133, 16705, 28007, 31477, 15453, 21558, 6073, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 61951, 29954, 4826, 6481, 12288, 2410, 4466, 228, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 1789, 23069, 726, 7470, 30386, 26721, 9811, 1446, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 45333, 28672, 21363, 26870, 41125, 9455, 25752, 12372, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 46324, 37071, 4994, 5136, 18879, 28687, 9330, 366, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 31745, 26116, 346, 397, 2900, 13830, 361, 8};
  • (b) Gerader symmetrischer Filter
  • USInt scal_prob1_even[256] = {
    65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 0, 0, 0, 0, 0, 0, 0, 0, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 0, 0, 0, 0, 0, 0, 0, 0, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 0, 0, 0, 0, 0, 0, 0, 0, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 0, 0, 0, 0, 0, 0, 0, 0, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 0, 0, 0, 0, 0, 0, 0, 0, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 0, 0, 0, 0, 0, 0, 0, 0, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 0, 0, 0, 0, 0, 0, 0, 0, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 65536, 0, 0, 0, 0, 0, 0, 0, 0, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 54018, 8704, 1, 903, 61648, 31196, 327, 575, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 64400, 36956, 1673, 9758, 52289, 4361, 659, 1433, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 56482, 65535, 1, 1, 119058, 3034, 1, 1, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 61103, 56650, 925, 8814, 11845, 2075, 828, 223, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 4161, 1, 494, 5041, 52508, 32195, 11005, 2463, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 63286, 32768, 39133, 49486, 53351, 8541, 37603, 15011, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 18805, 13107, 1039, 1214, 5060, 21845, 3830, 387, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 65537, 31654, 32951, 490, 1496, 2535, 11699, 328, 13};

Claims (10)

  1. Verfahren zum Codieren einer Eingangsobjektmaske, wobei die Eingangsobjektmaske eine Mehrzahl von Regionen hat, wobei das Verfahren die Schritte aufweist: (a) Zuweisen eines Maskenwertes zu jedem der Mehrzahl von Bereichen, wobei der Maskenwert darstellt, daß dieser Bereich nur opake Pixel, nur transparente Pixel oder eine Kombination aus sowohl opaken als auch transparenten Pixeln aufweist, (b) Codieren der zugewiesenen Maskenwerte der Eingangsobjektmaske, (c) Zerlegen der Eingangsobjektmaske in eine Mehrzahl von Objektmaskenschichten unterschiedlicher räumlicher Auflösung einschließlich zumindest einer Basisobjektschicht und einer nächsthöheren Schicht, (d) Codieren der Basisobjektschicht der Mehrzahl von Objektmaskenschichten und (e) Codieren der nächsthöheren Schicht der Mehrzahl von Objektmaskenschichten unter Verwendung der Maskenwerte von einer unteren Objektmaskenschicht.
  2. Verfahren nach Anspruch 1, bei dem der Codierschritt (b) die zugewiesenen Maskenwerte kontextabhängig in bezug auf benachbarte Bereiche codiert.
  3. Verfahren nach Anspruch 1, bei dem der Codierschritt (b) die zugewiesenen Maskenwerte kontextabhängig unter Verwendung einer binären kontextbasierten arithmetischen Codierung codiert.
  4. Verfahren nach Anspruch 3, bei dem der Codierschritt (b) die zugewiesenen Maskenwerte kontextabhängig unter Verwendung von binärer kontextbasierender arithmetischer Codierung mit zwei Klassen codiert.
  5. Verfahren nach Anspruch 1, bei dem der Codierschritt (d) Maskenwerte der Basisobjektschicht kontextabhängig in Übereinstimmung mit benachbarten Bereichen codiert.
  6. Verfahren nach Anspruch 1, bei dem der Codierschritt (e) einen Bereich Vn innerhalb der nächsthöheren Schicht der Mehrzahl von Objektmaskenschichten codiert, wobei der Bereich dargestellt wird als: Vn = mn (2i)(2j)·8 + mn (2i)(2j+1)·4 + 4mn (2i+1)(2j)·2 + mn (2i+1)(2j+1),wobei n das Niveau der nächsthöheren Schicht ist, i und j Zeilen- und Spaltenindizes sind, die Vn in der unteren Objektschicht entsprechen, und mn (x)(y ) einen Maskenwert an der Position (x, y) in der nächsthöheren Schicht bezeichnet.
  7. Verfahren nach Anspruch 1, bei dem der Codierschritt(e) einen gegenwärtigen Bereich innerhalb der nächsthöheren Schicht der Mehrzahl von Objektmaskenschichten kontextabhängig in zwei Durchlaufen unter Verwendung einer halbhöheren Ortsschicht codiert.
  8. Verfahren nach Anspruch 1, bei dem der Codierschritt(e) einen gegenwärtigen Bereich innerhalb der nächsthöheren Schicht der Mehrzahl von Objektmaskenschichten kontextabhängig unter Verwendung einer binären, kontextbasierenden arithmetischen Codierung codiert.
  9. Computerlesbares Medium, das eine Mehrzahl von gespeicherten Befehlen aufweist, wobei die Mehrzahl von Befehlen Befehle beinhaltet, die, wenn sie von einem Prozessor ausgeführt werden, veranlassen, daß der Prozessor die Schritte ausführt: (a) Zuweisen eines Maskenwertes zu jeder der Mehrzahl von Bereichen, wobei der Maskenwert darstellt, ob der Bereich nur opake Pixel, nur transparente Pixel oder eine Kombination aus sowohl opaken als auch transparenten Pixeln aufweist, (b) Codieren der zugewiesenen Maskenwerte der Eingangsobjektmaske, (c) Zerlegen der Eingangsobjektmaske in eine Mehrzahl von Objektmaskenschichten unterschiedlicher räumlicher Auflösung einschließlich zumindest einer Basisobjektschicht und einer nächsthöheren Schicht, (d) Codieren der Basisobjektschicht der Mehrzahl von Objektmaskenschichten und (e) Codieren der nächsthöheren Schicht der Mehrzahl von Objektmaskenschichten unter Verwendung der Maskenwerte von einer unteren Objektmaskenschicht.
  10. Vorrichtung (1210) für das Codieren einer Eingangsobjektmaske, wobei die Eingangsobjektmaske eine Mehrzahl von Bereichen hat, wobei die Vorrichtung aufweist: eine Einrichtung (1211) für das Zuweisen von zumindest einem Maskenwert zu jedem der Mehrzahl von Bereichen, wobei der Maskenwert darstellt, daß der Bereich nur opake Pixel, nur transparente Pixel oder eine Kombination aus sowohl opaken als auch transparenten Pixeln aufweist, eine erste Einrichtung (1211) für das Codieren der zugewiesenen Maskenwerte der Eingangsobjektmaske, eine Einrichtung (1211) für das Zerlegen der Eingangsobjektmaske in eine Mehrzahl von Objektmaskenschichten unterschiedlicher räumlicher Auflösung, eine zweite Einrichtung (1211) für das Codieren der Basisobjektschicht der Mehrzahl von Objektmaskenschichten und eine dritte Einrichtung (1211) für das Codieren der nächsthöheren Schicht der Mehrzahl von Objektmaskenschichten unter Verwendung der Maskenwerte von einer niedrigeren Objektmaskenschicht.
DE69937833T 1998-06-26 1999-06-25 Verfahren und vorrichtung zur skalierbaren formkodierung Expired - Lifetime DE69937833T2 (de)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US9081598P 1998-06-26 1998-06-26
US90815P 1998-06-26
US10301298P 1998-10-05 1998-10-05
US103012P 1998-10-05
US312797 1999-05-17
US09/312,797 US8050329B2 (en) 1998-06-26 1999-05-17 Method and apparatus for generic scalable shape coding
PCT/US1999/014509 WO2000001155A1 (en) 1998-06-26 1999-06-25 Method and apparatus for scalable shape coding

Publications (2)

Publication Number Publication Date
DE69937833D1 DE69937833D1 (de) 2008-02-07
DE69937833T2 true DE69937833T2 (de) 2008-12-11

Family

ID=27376669

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69937833T Expired - Lifetime DE69937833T2 (de) 1998-06-26 1999-06-25 Verfahren und vorrichtung zur skalierbaren formkodierung

Country Status (6)

Country Link
US (1) US8050329B2 (de)
EP (1) EP1099351B1 (de)
JP (1) JP2002519955A (de)
AU (1) AU4835799A (de)
DE (1) DE69937833T2 (de)
WO (1) WO2000001155A1 (de)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6746870B1 (en) 1999-07-23 2004-06-08 The Regents Of The University Of California DNA recombination in eukaryotic cells by the bacteriophage PHIC31 recombination system
US6639943B1 (en) * 1999-11-23 2003-10-28 Koninklijke Philips Electronics N.V. Hybrid temporal-SNR fine granular scalability video coding
US6683992B2 (en) * 1999-12-28 2004-01-27 Matsushita Electric Industrial Co., Ltd. Image decoding apparatus and image coding apparatus
FR2822330B1 (fr) * 2001-03-14 2003-05-02 Thomson Multimedia Sa Procede de codage par blocs, de type mpeg, dans lequel on affecte une resolution a chaque bloc
EP3490154B1 (de) 2001-08-31 2021-03-17 Panasonic Intellectual Property Corporation of America Bilddekodierungsverfahren und -dekodierungsvorrichtung
EP1322117A1 (de) * 2001-12-06 2003-06-25 Koninklijke Philips Electronics N.V. Arithmetischer Kodierer und Dekodierer
JP3513148B1 (ja) * 2002-10-11 2004-03-31 株式会社エヌ・ティ・ティ・ドコモ 動画像符号化方法、動画像復号方法、動画像符号化装置、動画像復号装置、動画像符号化プログラム、及び動画像復号プログラム
EP1727372A1 (de) * 2005-05-27 2006-11-29 Thomson Licensing Verfahren und Vorrichtung zur Kodierung und Dekodierung von Videodaten
JP4490351B2 (ja) * 2005-08-29 2010-06-23 日本電信電話株式会社 階層間予測処理方法,階層間予測処理装置,階層間予測処理プログラムおよびその記録媒体
KR101454208B1 (ko) * 2007-12-28 2014-10-24 삼성전자주식회사 하프톤 영상 인코딩 및 디코딩 방법 및 장치
KR101426272B1 (ko) * 2008-03-10 2014-08-07 삼성전자주식회사 영상 부호화장치 및 영상 복호화장치
WO2010017621A1 (en) * 2008-08-11 2010-02-18 Karl Martin Method and system for secure coding of arbitrarily shaped visual objects
WO2014053517A1 (en) 2012-10-01 2014-04-10 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Scalable video coding using derivation of subblock subdivision for prediction from base layer
CN105637869B (zh) * 2013-10-16 2020-09-04 华为技术有限公司 用于确定视频译码块的分区的角落视频部分的方法
US20180176559A1 (en) * 2014-03-19 2018-06-21 Samsung Electronics Co., Ltd. Method for performing filtering at partition boundary of block related to 3d image
CN107211131B (zh) 2014-11-14 2020-07-21 华为技术有限公司 对数字图像块进行基于掩码的处理的系统和方法
KR101978194B1 (ko) * 2014-11-14 2019-05-14 후아웨이 테크놀러지 컴퍼니 리미티드 디지털 이미지를 처리하는 방법 및 시스템
BR112017010007B1 (pt) * 2014-11-14 2023-04-11 Huawei Technologies Co., Ltd Aparelho adaptado para gerar um conjunto de coeficientes de transformada, método para gerar um conjunto de coeficientes de transformada, aparelho adaptado para decodificar um bloco de um quadro, e método para reconstruir um bloco de um quadro
US20180007045A1 (en) * 2016-06-30 2018-01-04 Mehdi Arashmid Akhavain Mohammadi Secure coding and modulation for optical transport
US10805629B2 (en) * 2018-02-17 2020-10-13 Google Llc Video compression through motion warping using learning-based motion segmentation

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5748786A (en) 1994-09-21 1998-05-05 Ricoh Company, Ltd. Apparatus for compression using reversible embedded wavelets
US5751859A (en) 1995-06-14 1998-05-12 Lucent Technologies Inc. Compression of text images by soft pattern matching
JP3210862B2 (ja) 1996-06-27 2001-09-25 シャープ株式会社 画像符号化装置及び画像復号装置
US5748789A (en) 1996-10-31 1998-05-05 Microsoft Corporation Transparent block skipping in object-based video coding systems

Also Published As

Publication number Publication date
DE69937833D1 (de) 2008-02-07
WO2000001155A1 (en) 2000-01-06
EP1099351B1 (de) 2007-12-26
JP2002519955A (ja) 2002-07-02
US20020051488A1 (en) 2002-05-02
AU4835799A (en) 2000-01-17
US8050329B2 (en) 2011-11-01
EP1099351A1 (de) 2001-05-16

Similar Documents

Publication Publication Date Title
DE69937833T2 (de) Verfahren und vorrichtung zur skalierbaren formkodierung
DE69634962T2 (de) Extrapolation von Pixelwerten eines in einem Block enthaltenen Videoobjektes
DE69723550T2 (de) Kodierung und dekodierung von grafischen symbolen
DE60310800T2 (de) Approximierter Kubikfilter
DE69831961T2 (de) Bildobjekterzeugungsverfahren für objektbasierte kodierungssysteme unter verwendung von masken und gerundeten mittelwerten
DE60307354T2 (de) Chrominanz-Bewegungsvektorrundung
DE69628467T2 (de) Videokodierung- und dekodierungsvorrichtung
DE60015566T2 (de) Verfahren und vorrichtung zur komprimierung eines bewegungsvektorfeldes
DE69733007T2 (de) Vorrichtung zur codierung und decodierung von bewegtbildern
DE60302602T2 (de) Sub-Pixel-Interpolation in Bewegungsschätzung und Bewegungskompensation
DE69824554T2 (de) Verfahren und anordnung zum erzeugen eines standbildes mit hoher auflösung
DE69730713T2 (de) Bildkoder und -dekoder
DE60309375T2 (de) Parametrisierung für verlauf-kompensation
DE69736852T2 (de) Codierung- und Decodierungssystem für bewegte Bilder mit beliebig geformten Objekten
DE19739266B4 (de) Verfahren und Vorrichtung zum Kodieren binärer Formen
DE202012013410U1 (de) Bildkompression mit SUB-Auflösungsbildern
DE69915843T2 (de) Teilbandkodierung/-dekodierung
EP0956539A1 (de) Verfahren und anordnung zur codierung und decodierung eines digitalisierten bildes
DE69916662T2 (de) Verfahren und vorrichtung zur bewegungskompensation in einem texturabbildungssystem
DE19907132B4 (de) Videodecoder für einen Digitalfernseher
DE10022520A1 (de) Verfahren zur örtlichen skalierbaren Bewegtbildcodierung
EP1116184B1 (de) Verfahren und anordnung zur bearbeitung eines digitalisierten bildes mit bildpunkten
DE19951341B4 (de) Verfahren zur bewegungskompensierenden Prädiktion von Bewegtbildern sowie Einrichtung hierzu
EP1110407B1 (de) Verfahren und anordnung zur codierung und decodierung eines digitalisierten bildes mit anwendung eines gesamtbewegungsvektors
EP1285537B1 (de) Verfahren und eine anordnung zur codierung bzw. decodierung einer folge von bildern

Legal Events

Date Code Title Description
8364 No opposition during term of opposition