-
Querverweis auf entsprechende Anwendungen
-
Die vorliegende Erfindung beansprucht die Priorität der vorläufigen U.S. Patentanmeldung Nr. 62/014,976, eingereicht am 20. Juni 2014. Die vorläufige U.S. Patentanmeldung ist hiermit durch Bezugnahme in ihrer Gesamtheit eingeschlossen.
-
Technisches Gebiet
-
Die vorliegende Erfindung bezieht sich auf dreidimensionale (3D-) oder Multiview-Videocodierung. Insbesondere bezieht sich die vorliegende Erfindung auf eine Codierung für die tiefenbasierte Blockpartitionierungs-(DBBP-)Partitionsart zum Vereinfachen einer Decodierer-Komplexität oder einer Codierungsleistungsfähigkeit.
-
Hintergrund
-
Dreidimensionales (3D-)Fernsehen ist in den letzten Jahren ein Technologietrend gewesen, der beabsichtigt, Betrachtern eine sensationelle Betrachtungserfahrung zu bieten. Verschiedene Technologien sind entwickelt worden, um 3D-Betrachtung zu ermöglichen. Unter ihnen ist unter anderem das Multiview-Video eine Schlüsseltechnologie für 3DTV Anwendungen. Das traditionelle Video ist ein zweidimensionales (2D-)Medium, das Betrachtern nur eine einzelne Ansicht einer Szene aus der Perspektive der Kamera bietet. Das 3D-Video ist jedoch in der Lage, beliebige Ansichten von beweglichen Szenen anzubieten und bietet Betrachtern den Eindruck von Realismus.
-
Um eine Redundanz zwischen Ansichten zu reduzieren, ist eine disparitätskompensierte Vorhersage (DCP) als eine Alternative zu bewegungskompensierter Vorhersage (MOP) verwendet worden. MOP bezieht sich auf eine Vorhersage von Bild zu Bild, die bereits codierte Bilder der gleichen Ansicht in einer unterschiedlichen Zugriffseinheit verwendet, während sich DCP auf eine Vorhersage von Bild zu Bild bezieht, die bereits codierte Bilder von anderen Ansichten in der gleichen Zugriffseinheit verwendet, wie in 1 dargestellt. Die dreidimensionalen/Multiview-Daten bestehen aus Texturbildern (110) und Tiefenzuordnungen (120). Die bewegungskompensierte Vorhersage wird auf die Texturbilder oder Tiefenzuordnungen in der zeitlichen Richtung (d. h. die horizontale Richtung in 1) angewendet. Die disparitätskompensierte Vorhersage wird auf Texturbilder oder Tiefenzuordnungen in der Bewegungsrichtung (d. h. die vertikale Richtung in 1) angewendet. Der für die DCP verwendete Vektor wird Disparitätsvektor (DV) genannt, was analog zu dem in der MOP verwendeten Bewegungsvektor (MV) ist.
-
3D-HEVC (3D-Videocodierung basierend auf dem hocheffizienten Videocodierungs-(HEVC-)Standard) ist eine Erweiterung der HEVC (hocheffiziente Videocodierung), die zum Codieren/Decodieren von 3D-Video entwickelt wird. Eine der Ansichten wird als die Basisansicht oder die unabhängige Ansicht bezeichnet. Die Basisansicht wird unabhängig sowohl von den anderen Ansichten als auch von den Tiefendaten codiert. Weiter wird die Basisansicht unter Verwendung eines konventionellen HEVC-Videocodierers codiert.
-
In 3D-HEVC wird noch eine hybride blockbasierte bewegungskompensierte DCT-ähnliche Transformations-Codierungsarchitektur verwendet. Die Basiseinheit für eine Kompression, Codiereinheit (CU) genannt, ist ein 2Nx2N quadratischer Block, und jede CU kann rekursiv in vier kleinere CUs geteilt werden, bis die vordefinierte minimale Größe erreicht ist. Jede CU enthält eine oder mehrere Vorhersageeinheiten (PUs). Die PU-Größe kann 2Nx2N, 2NxN, Nx2N oder NxN sein. Wenn asymmetrische Bewegungspartition (AMP) unterstützt wird, kann die PU-Größe auch 2NxnU, 2NxnD, nLx2N und nRx2N sein.
-
Das 3D-Video wird typischerweise durch Erfassen einer Szene unter Verwendung einer Videokamera mit einer dazugehörigen Vorrichtung zum Erfassen von Tiefeninformationen oder unter gleichzeitiger Verwendung von mehreren Kameras erzeugt, wobei die mehreren Kameras geeignet positioniert sind, sodass jede Kamera die Szene von einem Ansichtspunkt erfasst. Die zu einer Szene korrespondierenden Texturdaten und Tiefendaten weisen normalerweise eine substantielle Korrelation auf. Deshalb kann die Tiefeninformation verwendet werden, um eine Kodierungseffizienz zu verbessern oder um eine Verarbeitungskomplexität für Texturdaten zu reduzieren, und umgekehrt. Zum Beispiel offenbart der korrespondierende Tiefenblock eines Texturblocks ähnliche Informationen, die zu der pixelweisen Objektzerlegung korrespondieren. Deshalb kann die Tiefeninformation helfen, eine pixelweise segmentbasierte Bewegungskompensation zu realisieren. Entsprechend ist eine tiefenbasierte Blockpartitionierung (DBBP) für die Texturvideocodierung in dem aktuellen 3D-HEVC eingesetzt worden.
-
In der tiefenbasierten Blockpartitionierungs-(DBBP-)Betriebsart wird eine beliebig geformte Blockpartitionierung für den Texturblock einer gleichen Position basierend auf einer binären Segmentierungsmaske, die von der korrespondierenden Tiefenzuordnung berechnet ist, hergeleitet. Jede der zwei Partitionen (an einen Vordergrund und einen Hintergrund erinnernd) wird bewegungskompensiert und danach basierend auf der tiefenbasierten Segmentierungsmaske zusammengefasst.
-
Ein einzelnes Flag wird zu der Codierungssyntax hinzugefügt, um dem Decodierer anzuzeigen, dass der zugrundeliegende Block die DBBP für die Vorhersage verwendet. Wenn die aktuelle Codiereinheit mit der DBBP-Betriebsart codiert ist, ist die korrespondierende Partitionsgröße auf SIZE_2Nx2N eingestellt und eine Bi-Prediction wird übernommen.
-
Ein Disparitätsvektor, der von dem DoNBDV-(tiefenorientierten Nachbarblock-Disparitätsvektor-)Prozess hergeleitet ist, wird angewendet, um einen korrespondierenden Tiefenblock in einer Referenzansicht zu identifizieren, wie in 2 gezeigt. In 2 ist ein korrespondierender Tiefenblock 220 in einer Referenzansicht für den aktuellen Texturblock 210 in einer abhängigen Ansicht basierend auf dem Ort des aktuellen Texturblocks und dem hergeleiteten DV 212, welcher unter Verwendung von DoNBDV gemäß des 3D-HEVC-Standards hergeleitet wurde, angeordnet. Der korrespondierende Tiefenblock weist die gleiche Größe auf wie der aktuelle Texturblock. Wenn der Tiefenblock gefunden ist, wird basierend auf dem Durchschnitt aller Tiefenpixel innerhalb des korrespondierenden Tiefenblocks ein Schwellenwert berechnet. Danach wird eine binäre Segmentierungsmaske m_D(x, y) basierend auf Tiefenwerten und dem Schwellenwert generiert. Wenn der Tiefenwert, der sich an der relativen Koordinate (x, y) befindet, größer ist als der Schwellenwert, wird die binäre m_D(x, y) auf 1 gesetzt. Andernfalls wird m_D(x, y) auf 0 gesetzt. Ein Beispiel ist in 3 gezeigt. Der Mittelwert des virtuellen Blocks (310) wird in Schritt 320 bestimmt. Die Werte der virtuellen Tiefenabtastwerte werden in Schritt 330 mit dem mittleren Tiefenwert verglichen, um die Segmentierungsmaske 340 zu generieren. Die Segmentierungsmaske wird in binären Daten repräsentiert, um anzuzeigen, ob ein zugrundeliegendes Pixel zum Segment 1 oder Segment 2 gehört, wie durch zwei unterschiedliche Linienmuster in 3 angezeigt.
-
Der DoNBDV-Prozess verbessert den NBDV durch Extrahieren eines genaueren Disparitätsvektors von der Tiefenzuordnung. Der NBDV wird basierend auf dem Disparitätsvektor von benachbarten Blöcken hergeleitet. Der von dem NBDV-Prozess hergeleitete Disparitätsvektor wird verwendet, um auf Tiefendaten in einer Referenzansicht zuzugreifen. Ein endgültiger Disparitätsvektor wird dann von den Tiefendaten hergeleitet.
-
Der DBBP-Prozess partitioniert den 2Nx2N-Block in zwei partitionierte Blöcke. Ein Bewegungsvektor wird für jeden Partitionsblock bestimmt. In dem Decodierungsprozess wird jeder der zwei decodierten Bewegungsparameter für eine Bewegungskompression verwendet, die auf einen gesamten 2Nx2N-Block ausgeführt wird. Die resultierenden Vorhersagesignale, d. h. p_T0(x, y) und p_T1(x, y) werden unter Verwendung der DBBP-Maske m_D(x, y) kombiniert, wie in
4 dargestellt. Der Kombinationsprozess ist wie folgt definiert
-
Durch ein Zusammenfassen der zwei Vorhersagesignale ermöglichen Forminformationen von der Tiefenzuordnung, Vordergrund- und Hintergrundobjekte in dem gleichen Texturcodierungsbaumblock (CTB) unabhängig zu kompensieren. Gleichzeitig benötigt die DBBP keine pixelweise Bewegungs-/Disparitätskompensation. Ein Speicherzugriff auf die Referenzpuffer ist für DBBP-codierte Blöcke immer regelmäßig (blockbasiert) im Gegensatz zu anderen unregelmäßigen Pufferzugriffsansätzen wie VSP. Weiter verwendet die DBBP immer Blöcke voller Größe für eine Kompensation. Dies ist in Bezug auf eine Komplexität wegen der höheren Wahrscheinlichkeit eines Auffindens der Daten in dem Speicher-Cache bevorzugt.
-
In 4 werden die zwei Vorhersageblöcke auf einer Basis Pixel für Pixel gemäß der Segmentierungsmaske zu einem zusammengefasst, und dieser Prozess wird als Zwei-Segment-Kompensation bezeichnet. In diesem Beispiel ist die Nx2N-Block-Partitionsart ausgewählt, und zwei korrespondierende Bewegungsvektoren (MV1 und MV2) werden jeweils für zwei partitionierte Blöcke hergeleitet. Jeder der Bewegungsvektoren wird verwendet, um einen gesamten Texturblock (410) zu kompensieren. Entsprechend wird der Bewegungsvektor MV1 auf den Texturblock 420 angewendet, um den Vorhersageblock 430 gemäß dem Bewegungsvektor MV1 zu generieren, und der Bewegungsvektor MV2 wird auch auf den Texturblock 420 angewendet, um den Vorhersageblock 432 gemäß dem Bewegungsvektor MV2 zu generieren. Die zwei Vorhersageblöcke werden durch Anwenden jeweiliger Segmentierungsmasken (440 und 442) zusammengefasst, um den endgültigen Vorhersageblock (450) zu generieren.
-
Ob die DBBP-Betriebsart verwendet wird, wird in der Codiereinheit, wie in Tabelle 1 gezeigt, angezeigt. In 3D-HEVC wird eine Vorhersagebetriebsartsyntax (d. h. pat_mode) für einen nicht intra-codierten Block angezeigt. Außerdem wird ein DBBP-Flag auf CU-Ebene angezeigt, um anzuzeigen, ob die aktuelle CU die DBBP-Vorhersage anwendet. Wenn es die DBBP-Betriebsart ist, wird die übertragene Partitionsart weiter durch die modifizierte Partitionsart ersetzt, welche von der Segmentierungsmaske hergeleitet wurde. 5 stellt ein Beispiel des Herleitens der modifizierten Partitionsart gemäß dem existierenden 3D-HEVC-Standard dar.
-
Ein gleich positionierter Tiefenblock 502 wird als eine Eingabe in den Prozess verwendet. Eine Mittelwertberechnung auf einer unterabgetasteten Ebene wird auf den eingegebenen Tiefenblock angewendet, um den mittleren Tiefenwert von Unterabtasttiefendaten zu bestimmen, wie in Schritt 510 gezeigt. Die Kontur des Tiefenblocks wird durch Vergleichen der Tiefenwerte mit dem mittleren Tiefenwert bestimmt, wie in Schritt 520 gezeigt. Eine Segmentierungsmaske 504 wird entsprechend gewonnen. Zwei potentiell geeignete Partitionen 506 werden in diesem Beispiel zum Zählen von passenden Abtastwerten zwischen der Segmentierungsmaske und den Zwei-Segment-Partitionen verwendet, wie in Schritt 530 gezeigt. Nachdem die Anzahlen von passenden Abtastwerten für die potentiell geeigneten Zwei-Segment-Partitionen gezählt sind, wird die Zwei-Segment-Partition mit den meisten passenden Abtastwerten als die modifizierte Partitionsart ausgewählt.
-
-
In der DBBP muss die tiefenbezogene Segmentierungsmaske einer der verfügbaren rechteckigen Partitionierungsarten zugeordnet werden. Die Zuordnung der binären Segmentierungsmaske zu einer der Zwei-Segment-Partitionierungsarten wird durch eine Korrelationsanalyse durchgeführt. Die am besten passende Partitionierungsart wird zum Speichern von Bewegungsinformationen und zur MVP-Herleitung ausgewählt. Der Algorithmus, um die am besten passende Partitionierungsart herzuleiten, ist nachfolgend dargestellt.
-
Nachdem der Codierer die optimalen Bewegungs-/Disparitätsinformationen für jedes DBBP-Segment hergeleitet hat, wird diese Information zu einer der verfügbaren rechteckigen, nicht quadratischen Partitionierungsarten der HEVC zugeordnet. Dies schließt asymmetrische Bewegungspartitionierungsarten ein, die von der HEVC verwendet wird. Die Zuordnung der binären Segmentierungsmaske zu einer der 6 verfügbaren Zwei-Segment-Partitionierungsarten wird durch eine Korrelationsanalyse durchgeführt. Für jede der verfügbaren Partitionierungsarten i, mit i ∊ [0, 5], werden 2 binäre Masken m_2i(x, y) und m_(2i + 1)(x, y) generiert, wobei m_(2i + 1)(x, y) die Negation von m_2i(x, y) ist. Entsprechend gibt es 12 mögliche Kombinationen der Segmentierungsmaske/Negation der Segmentierungsmaske und der 6 verfügbaren Zwei-Segment-Partitionen. Um die am besten passende Partitionierungsart iopt für die aktuelle tiefenbasierte Segmentierungsmaske m_D(x, y) zu finden, werden die folgenden Berechnungen durchgeführt:
-
Die Boolesche Variable binv definiert, ob die hergeleitete Segmentierungsmaske mD(x, y) invertiert werden muss oder nicht. Dies kann in einigen Fällen notwendig sein, in welchen die Indizierung des konventionellen Partitionierungsschemas komplementär zu der Indizierung in der Segmentierungsmaske ist. In den konventionellen Partitionierungsarten korrespondiert der Index 0 immer zu der Partition in der oberen linken Ecke des aktuellen Blocks, während der gleiche Index in der Segmentierungsmaske zu dem Segment mit den niedrigeren Tiefenwerten (Hintergrundobjekte) korrespondiert. Um die Positionierung der korrespondierenden Sätze von Bewegungsinformationen zwischen mD(x, y) und iopt auszurichten, wird die Indizierung in mD(x, y) invertiert, wenn binv gesetzt ist.
-
Wie vorstehend beschrieben gibt es 12 Sätze von passenden zu zählenden Pixeln, welche zu den Kombinationen von 2 komplementären Segmentierungsmasken und 6 Blockpartitionsarten korrespondieren. Der Blockpartitionsprozess wählt die potentiell geeigneten Kandidaten aus, welche die größte Anzahl an passenden Pixeln aufweisen. 6 stellt ein Beispiel des Blockpartitionsauswahlprozesses dar. In 6 sind die 6 nicht quadratischen Blockpartitionsarten auf der Segmentierungsmaske und der korrespondierenden invertierten Segmentierungsmaske überlagert. Eine am besten passende Partition zwischen einer Blockpartitionsart und einer Segmentierungsmaske wird als die Blockpartition für den DBBP-Prozess ausgewählt.
-
In dem aktuellen Standard muss der Decodierer die modifizierte Partitionsart, wie in den Gleichungen (2)–(4) dargestellt herleiten. Der Prozess schließt ziemlich komplexe Berechnungen ein. Deshalb ist es wünschenswert, Verfahren zu entwickeln, um den Prozess auf der Decodiererseite zu vereinfachen.
-
Zusammenfassung
-
Ein Verfahren der Videocodierung, das Codierungsarten verwendet, welche tiefenbasierte Blockpartitionierung (DBBP) aufweisen, in einem Multiview- oder dreidimensionalen (3D-)Videocodierungssystem wird offenbart. Gemäß der vorliegenden Erfindung wird, wenn die DBBP (tiefenbasierte Blockpartitionierung) verwendet wird, um eine aktuelle Texturcodierungseinheit zu codieren, die DBBP-Partitionsart angezeigt, sodass der Decodierer nicht komplexe Berechnungen durchführen muss, um die DBBP-Partitionsart herzuleiten.
-
In einer Ausführungsform bestimmt der Codierer eine Segmentierungsmaske für die aktuelle Texturcodierungseinheit basierend auf Tiefeninformationen der gleichen Position und wählt eine DBBP-(tiefenbasierte Blockpartitions-)Partitionsart für die aktuelle Texturcodierungseinheit aus. Der Codierer generiert dann zwei Vorhersageblöcke für die aktuelle Texturcodierungseinheit von Referenzbilddaten unter Verwendung von zwei Bewegungsvektoren, die zu den partitionierten Blöcken gehören, die zu der DBBP-Partitionsart korrespondieren. Ein DBBP-Vorhersageblock wird durch Zusammenfassen der zwei Vorhersageblöcke basierend auf der Segmentierungsmaske generiert. Die aktuelle Texturcodierungseinheit wird dann unter Verwendung eines oder mehrerer Prädiktoren, die den DBBP-Vorhersageblock aufweisen, codiert. Wenn die aktuelle Texturcodierungseinheit unter Verwendung der DBBP codiert ist, wird eine übertragene Partitionsart, welche die ausgewählte DBBP-Partitionsart repräsentiert, in dem Bitstrom übertragen.
-
Ein Aspekt der vorliegenden Erfindung befasst sich mit der Herleitung der übertragenen Partitionsart. In einer Ausführungsform wird die DBBP-Partitionsart dadurch ausgewählt, dass zuerst eine beste PU-(Vorhersageeinheits-)Partitionsart aus 2NxN- und Nx2N-Partitionsarten in Inter-/Merge-Modi gemäß RDO-(Rate-Distortion-Optimierungs-)Ergebnissen bestimmt wird, dann das RDO-Ergebnis, dass zu der DBBP-Partitionsart gehört, basierend auf der besten PU-Partitionsart bestimmt wird, und die DBBP-Partitionsart ausgewählt wird, wenn das zu der DBBP-Partitionsart gehörende RDO-Ergebnis besser ist als die RDO-Ergebnisse, die zu einem Intra-Modus und den 2NxN- und Nx2N-Partitionsarten in den Inter-/Merge-Modi gehören. Anstelle des Auswählens der besten PU-Partitionsart aus den 2NxN- und Nx2N-Partitonsarten in den Inter-/Merge-Modi kann die beste PU-Partitionsart auch aus den 2NxN-, Nx2N- und asymmetrischen Bewegungspartitions-(AMP-)Partitionsarten in den Inter-/Merge-Modi ausgewählt werden.
-
In einer anderen Ausführungsform wird die DBBP-Partitionsart dadurch ausgewählt, dass RDO-Ergebnissen für potentiell geeignete DBBP-Partitionsarten bestimmt werden, die zu 2NxN- und Nx2N-Partitionsarten korrespondieren, dann eine beste potentiell geeignete DBBP-Partitionsart bestimmt wird, die ein bestes RDO-Ergebnis zwischen den 2NxN- und Nx2N-Partitionsarten aufweist, und die beste potentiell geeignete DBBP-Partitionsart als die DBBP-Partitionsart ausgewählt wird, wenn das zu der besten potentiell geeigneten DBBP-Partitionsart gehörende RDO-Ergebnis besser ist als die RDO-Ergebnisse, die zu dem Intra-Modus und den 2NxN- und Nx2N-Partitionsarten in den Inter-/Merge-Modi gehören. Anstelle der 2NxN- und Nx2N-Partitionsarten, die zum Bestimmen der besten potentiell geeigneten DBBP-Partitionsart verwendet werden, können auch AMP-Partitionsarten eingeschlossen sein.
-
In noch einer anderen Ausführungsform kann auch der Herleitungsprozess verwendet werden, der in dem existierenden 3D-HEVC-Standard verwendet wird. In diesem Fall werden die maximalen Anzahlen von passenden Abtastwerten zwischen der Segmentierungsmaske/Negation der Segmentierungsmaske und den 6 Zwei-Segment-Partitionsarten gezählt. Die Zwei-Segment-Partitionsart, welche die maximale Anzahl von passenden Abtastwerten aufweist, wird als die übertragene Partitionsart ausgewählt.
-
Die übertragene Partitionsart kann auch ausgelassen werden, d. h. in dem Bitstrom nicht übertragen werden. In diesem Fall kann eine vorgegebene übertragene Partitionsart wie die 2NxN-Partitionsart verwendet werden.
-
Ein korrespondierendes Verfahren für die Decodiererseite wird ebenso offenbart, wobei der Decodierer die übertragene Partitionsart für die DBBP-Decodierung anstelle des Herleitens der DBBP-Partitionsart verwendet.
-
Kurze Beschreibung der Zeichnungen
-
1 stellt ein Beispiel von dreidimensionaler/Multiview-Codierung dar, wobei eine bewegungskompensierte Vorhersage (MOP) und eine disparitätskompensierte Vorhersage (DOP) verwendet werden.
-
2 stellt einen beispielhaften Herleitungsprozess dar, um einen korrespondierenden Tiefenblock in einer Referenzansicht für einen aktuellen Texturblock in einer abhängigen Ansicht herzuleiten.
-
3 stellt einen beispielhaften Herleitungsprozess dar, um die Segmentierungsmaske basierend auf dem korrespondierenden Tiefenblock in einer Referenzansicht für einen aktuellen Texturblock in einer abhängigen Ansicht zu generieren.
-
4 stellt einen beispielhaften Verarbeitungsablauf für eine 3D- oder Multiview-Codierung unter Verwendung von tiefenbasierter Blockpartitionierung (DBBP) dar.
-
5 stellt ein Beispiel eines Herleitungsprozesses zum Bestimmen der modifizierten Partitionsart dar, wie er in dem existierenden 3D-HEVC-Standard verwendet wird.
-
6 stellt ein Beispiel einer passenden Segmentierungsmaske/Negation der Segmentierungsmaske zu einer von 6 potentiell geeigneten Zwei-Segment-Partitionsarten dar.
-
7 stellt ein Flussdiagramm eines beispielhaften Codierungssystems dar, das eine Ausführungsform der vorliegenden Erfindung zum Codieren der tiefenbasierten Blockpartitionierungs-(DBBP-)Partitionsart enthält.
-
8 stellt ein Flussdiagramm eines beispielhaften Decodierungssystems dar, das eine Ausführungsform der vorliegenden Erfindung zum Decodieren der tiefenbasierten Blockpartitionierungs-(DBBP-)Partitionsart enthält.
-
Detaillierte Beschreibung
-
Es wird leicht verstanden, dass die Komponenten der vorliegenden Erfindung, wie sie hier in den Figuren allgemein beschrieben und dargestellt sind, in einer weiten Vielfalt von verschiedenen Konfigurationen angeordnet sein können. Somit ist die folgende detailliertere Beschreibung der Ausführungsformen der Systeme und Verfahren der vorliegenden Erfindung, wie in den Figuren repräsentiert, nicht dazu gedacht, den Gültigkeitsumfang der Erfindung wie beansprucht zu beschränken, sondern ist lediglich repräsentativ für ausgewählte Ausführungsformen der Erfindung.
-
Eine Bezugnahme auf ”eine einzelne Ausführungsform”, ”eine Ausführungsform” oder ähnliche Wortwahl in dieser Beschreibung bedeutet, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft, die in Verbindung mit der Ausführungsform beschrieben sind, in mindestens einer Ausführungsform der vorliegenden Erfindung enthalten sind. Somit bezieht sich das Auftreten der Formulierungen ”in einer einzelnen Ausführungsform” oder ”in einer Ausführungsform” an verschiedenen Stellen in dieser Beschreibung nicht notwendigerweise auf die gleiche Ausführungsform.
-
Weiter können die beschriebenen Merkmale, Strukturen oder Eigenschaften in jeder geeigneten Weise in einer oder in mehreren Ausführungsformen kombiniert werden. Fachleute auf dem Gebiet werden jedoch erkennen, dass die Erfindung ohne ein oder mehrere der spezifischen Details oder mit anderen Verfahren, Komponenten, usw. ausgeführt werden kann. In anderen Beispielen sind gut bekannte Strukturen oder Operationen nicht gezeigt oder detailliert beschrieben, um zu verhindern, dass Aspekte der Erfindung unklar werden.
-
Die dargestellten Ausführungsformen der Erfindung werden am besten durch Bezugnahme auf die Zeichnungen verstanden, wobei darin gleiche Teile durch gleiche Bezugszeichen gekennzeichnet sind. Die nachfolgende Beschreibung ist nur als Beispiel gedacht und stellt einfach bestimmte ausgewählte Ausführungsformen von Vorrichtungen und Verfahren dar, die mit der hier beanspruchten Erfindung konsistent sind.
-
Die vorliegende Erfindung offenbart ein Verfahren, um die DBBP-Vorhersageeinheits-(PU-)Partitionsentscheidung in einer 3D-Videocodierung zu verbessern. Wenn die DBBP-Art aktiviert ist, kann die übertragene Partitionsart direkt als die DBBP-Partitionsart zum Speichern der Bewegungsinformationen und MVP-Herleitung verwendet werden. Wenn die DBBP aktiviert ist, muss die übertragene Partition eine der rechteckigen Partitionsarten (nicht quadratische, rechteckige Partitionsarten) sein. Um den berechnungsintensiven Prozess zum Herleiten der DBBP-Partitionsart auf der Decodiererseite zu vermeiden, erfordert die vorliegende Erfindung, dass der Codierer die DBBP-Partitionsart überträgt, wenn die DBBP für die aktuelle Codiereinheit (CU) verwendet wird. In der konventionellen DBBP-Art wird die Partitionsart (d. h. part_mod in Tabelle 1) für die Codiereinheit angezeigt. Die DBBP-Partitionsart muss jedoch durch Ausführen eines recht komplexen Prozesses bestimmt werden, wie in den Gleichungen (2)–(4) gezeigt. Deshalb wird die übertragene Partitionsart (d. h. part_mod in Tabelle 1) nicht zum Bestimmen der endgültigen DBBP-Partitionsart verwendet. Deshalb kann das Syntaxelement für die Partitionsart verwendet werden, um die DBBP-Partitionsart gemäß einer Ausführungsform der vorliegenden Erfindung anzuzeigen. Dennoch kann auch eine neue Syntax verwendet werden, um die DBBP-Partitionsart anzuzeigen. Deshalb ist der decodiererseitige DBBP-Partitionsherleitungsprozess nicht notwendig.
-
Gemäß der vorliegenden Erfindung braucht der Codierer nur die PU-Partition für die DBBP-Art festzulegen und sie dann an den Decodierer zu übertragen. Verschiedene Ausführungsformen der vorliegenden Erfindung bezüglich der DBBP-Partitionsartbestimmung auf der Codiererseite werden nachfolgend dargestellt.
-
In einer Ausführungsform wird, wenn die DBBP-Partition aktiviert ist, die übertragene PU-Partition auf der Codiererseite gemäß der PU-Partition festgelegt, welche die besten RDO-Ergebnisse aus 2NxN- und Nx2N-Inter- und/oder Merge-Modi erzielt. Entsprechend bestimmt der Codierer eine beste PU-(Vorhersageeinheits-)Partition zwischen den konventionellen 2NxN- und Nx2N-Partitionsarten in den Inter-/Merge-Modi. Die beste PU-Partition wird dann als die potentiell geeignete DBBP-Partition verwendet, und das korrespondierende RDO-Ergebnis wird berechnet. Das zu der potentiell geeigneten DBBP-Partitionsart gehörende RDO-Ergebnis wird mit den RDO-Ergebnissen der Intra-Modi und der 2NxN- und Nx2N-Partitionsarten in den Inter-/Merge-Modi verglichen. Wenn das zu der potentiell geeigneten DBBP-Partitionsart gehörende RDO-Ergebnis das Beste ist, wird die potentiell geeignete DBBP-Partitionsart (d. h. die beste PU-Partition) als die DBBP-Partitionsart verwendet und wird als die übertragene Partitionsart übertragen. Die RDO bezieht sich auf den weithin verwendeten Rate-Distortion-Optimierungsprozess in Videocodierung, um eine beste Art oder einen besten Parameter gemäß einer Rate-Distortion-Leistungsfähigkeit auszuwählen.
-
In einer anderen Ausführungsform wird, wenn die DBBP-Partition aktiviert ist, die übertragene PU-Partition auf der Codiererseite gemäß der PU-Partition festgelegt, welche die beste RDO-Leistungsfähigkeit aus der 2NxN-, Nx2N- und AMP-(asymmetrische Bewegungspartitions-)Partitionsart in den inter- und/oder Merge-Modi erzielt. In diesem Fall wird die beste PU-Partition aus 2NxN-, Nx2N- und AMP-Partitionsarten anstelle von 2NxN- und Nx2N-Partitionsarten bestimmt. Das zu der potentiell geeigneten DBBP-Partitionsart (d. h. der besten PU-Partition) gehörende RDO-Ergebnis wird mit den RDO-Ergebnissen der Intra-Modi und der 2NxN-, Nx2N- und AMP-Partitionsarten in den Inter-/Merge-Modi verglichen. Wenn das Ergebnis des Vergleichs zeigt, dass das zu der potentiell geeigneten DBBP-Partitionsart gehörende RDO-Ergebnis das Beste ist, wird die potentiell geeignete DBBP-Partitionsart als die DBBP-Partitionsart verwendet und wird als die übertragene Partitionsart übertragen.
-
In einer anderen Ausführungsform testet der Codierer DBBP-Arten mit einer PU-Partition, die gleich einer 2NxN- oder Nx2N-Partition ist, und wählt eine endgültige PU-Partition aus 2NxN und Nx2N gemäß den RDO-Ergebnissen aus. Mit anderen Worten wählt der Codierer die DBBP-Partitionsart durch Bestimmen von RDO-Ergebnissen für potentiell geeignete DBBP-Partitionsarten, die zu 2NxN- und Nx2N-Partitionsarten korrespondieren. Dann bestimmt der Codierer eine beste, potentiell geeignete DBBP-Partitionsart, welche das beste RDO-Ergebnis unter den 2NxN- und Nx2N-Partitionsarten aufweist. Der Codierer wählt die beste potentiell geeignete DBBP-Partitionsart als die DBBP-Partitionsart, wenn das zu der besten potentiell geeigneten DBBP-Partitionsart gehörende RDO-Ergebnis besser ist als die RDO-Ergebnisse, die zu dem Intra-Modus und den 2NxN- und Nx2N-Partitionsarten in den Inter-/Merge-Modi gehören.
-
In einer anderen Ausführungsform testet der Codierer DBBP-Arten mit PU-Partitionen, die gleich 2NxN, Nx2N oder einer der AMP-Partitionen sind, und wählt eine endgültige PU-Partition aus diesen Partitionen gemäß den RDO-Ergebnissen. In diesem Fall wählt der Codierer die DBBP-Partitionsart durch Bestimmen der RDO-Ergebnisse für potentiell geeignete DBBP-Partitionsarten aus, die zu 2NxN-, Nx2N- oder AMP-Partitionsarten korrespondieren. Der Codierer wählt die beste potentiell geeignete DBBP-Partitionsart als die DBBP-Partitionsart aus, wenn das zu der besten potentiell geeigneten DBBP-Partitionsart gehörende RDO-Ergebnis besser ist als die RDO-Ergebnisse, die zu dem Intra-Modus und den 2NxN-, Nx2N- und AMP-Partitionsarten in den Inter-/Merge-Modi gehören.
-
In einer anderen Ausführungsform leitet der Codierer eine PU-Partition von einem korrespondierenden Tiefenblock und der tiefenbezogenen Segmentierungsmaske her. Zum Beispiel bestimmt der Codierer eine am besten passende Partitionsart für die aktuelle tiefenbasierte Segmentierungsmaske mD(x, y) gemäß den Gleichungen (2)–(4). Die am besten passende Partitionsart wird unter Verwendung der originalen Partitionsartsyntax (d. h. part_mode) an den Decodierer übertragen. In diesem Beispiel wird die am besten passende Partition von den Zwei-Segment-Partitionierungsarten oder verfügbaren, nicht quadratischen, rechteckigen Partitionierungsarten ausgewählt. Die asymmetrischen Bewegungspartitionierungs-(AMP-)Arten können eingeschlossen oder von den möglichen Partitionsarten ausgeschlossen sein.
-
In einer anderen Ausführungsform kann, wenn die Partitionsart für eine DBBP-codierte CU angezeigt wird, die Syntax für die Partitionsart gemäß den bestimmten Partitionsarten, die für DBBP-CUs verwendet werden, angepasst sein, um die Leistungsfähigkeit der Codierung zu optimieren. Zum Beispiel wird, wenn nur 2NxN- und Nx2N-Partitionen für eine DBBP-codierte CU erlaubt sind, nur ein Bit benötigt, um 2NxN oder Nx2N für die aktuelle DBBP-CU anzuzeigen.
-
In einer anderen Ausführungsform wird die Partitionsart nicht für eine DBBP-codierte CU angezeigt. Die Partitionsart für eine DBBP-CU ist auf eine bestimmte Partitionsart (d. h. eine vorgegebene Partitionsart) festgelegt. Zum Beispiel wird immer die 2NxN-Partitionsart für eine DBBP-CU zum Speichern der Bewegungsinformationen und MVP-Herleitung verwendet.
-
Die Leistungsfähigkeit der Videocodierung, die Codierungsarten verwendet, welche tiefenbasierte Blockpartitionierung (DBBP) in einem Multiview- oder dreidimensionalen (3D-)-Videocodierungssystem aufweisen, das eine Ausführungsform der vorliegenden Erfindung enthält, wird mit der Leistungsfähigkeit eines konventionellen auf HTM-11.0 (3D-HEVC Test Model Version 11.0) basierenden Systems verglichen. Das System, welches eine Ausführungsform der vorliegenden Erfindung enthält, erreicht eine etwas bessere Leistungsfähigkeit im Sinne einer BD-Rate als das konventionelle System. Mit anderen Worten vermeidet die Ausführungsform gemäß der vorliegenden Erfindung nicht nur den Herleitungsprozess für die DBBP-Partitionsart auf der Decodiererseite sondern erreicht auch eine leichte Leistungsfähigkeitsverbesserung.
-
7 stellt ein Flussdiagramm eines beispielhaften Codierungssystems dar, welches eine Ausführungsform der vorliegenden Erfindung zum Codieren der tiefenbasierten Blockpartitionierungs-(DBBP-)Partitionsart enthält. Eingangsdaten, die zu einer aktuellen Texturcodierungseinheit in einem Texturbild gehören, werden in Schritt 710 empfangen. Die Eingangsdaten können von einem Speicher (z. B. Computer-Speicher, Puffer (RAM oder DRAM) oder andere Medien) oder von einem Prozessor abgerufen werden. Eine Segmentierungsmaske für die aktuelle Texturcodierungseinheit wird basierend auf Tiefeninformationen der gleichen Position bestimmt, wie in Schritt 720 gezeigt. Eine DBBP-(tiefenbasierte Blockpartitions-)Partitionsart für die aktuelle Texturcodierungseinheit wird in Schritt 730 ausgewählt. Zwei Vorhersageblöcke für die aktuelle Texturcodierungseinheit werden in Schritt 740 von Referenzbilddaten generiert, wobei zwei Bewegungsvektoren verwendet werden, die zu partitionierten Blöcken gehören, die zu der DBBP-Partitionsart korrespondieren. Ein DBBP-Vorhersageblock wird in Schritt 750 durch Zusammenfassen der zwei Vorhersageblöcke basierend auf der Segmentierungsmaske generiert. Die aktuelle Texturcodierungseinheit wird in Schritt 760 unter Verwendung eines oder mehrerer Prädiktoren, die den DBBP-Vorhersageblock aufweisen, generiert. Eine übertragene Partitionsart, welche die ausgewählte DBBP-Partitionsart repräsentiert, wird in Schritt 770 angezeigt, wenn die aktuelle Texturcodierungseinheit unter Verwendung der DBBP codiert worden ist.
-
8 stellt ein Flussdiagramm eines beispielhaften Decodiersystems dar, welches eine Ausführungsform der vorliegenden Erfindung zum Decodieren der tiefenbasierten Blockpartitionierungs-(DBBP-)Partitionsart enthält. Das System empfängt einen Bitstrom, der codierte Daten einer aktuellen Texturcodierungseinheit in einem Texturbild aufweist, wie in Schritt 810 gezeigt. Der Bitstrom kann von einem Speicher (z. B. Computer-Speicher, Puffer (RAM oder DRAM) oder andere Medien) oder von einem Prozessor abgerufen werden. Ein DBBP-Flag aus dem Bitstrom wird in Schritt 820 analysiert. Ob das DBBP-Flag anzeigt, dass die aktuelle Texturcodierungseinheit in der DBBP-Art codiert ist, wird in Schritt 830 geprüft. Wenn das Ergebnis ”Ja” ist, werden die Schritte 840 bis 890 ausgeführt. Wenn das Ergebnis ”Nein” ist, werden die Schritte 840 bis 890 übersprungen. In Schritt 840 wird eine DBBP-(tiefenbasierte Blockpartitions-)Partitionsart für die aktuelle Texturcodierungseinheit basierend auf der in dem Bitstrom übertragenen Partitionsart bestimmt, wenn die übertragene Partitionsart in dem Bitstrom angezeigt ist. In Schritt 850 werden zwei Bewegungsvektoren, die zu den partitionierten Blöcken gehören, die zu der DBBP-Partitionsart korrespondieren, für die aktuelle Texturcodierungseinheit bestimmt. Die zwei Bewegungsvektoren werden zum Beispiel basierend auf einer oder mehreren Informationen (z. B. ein Index für eine potentielle Zusammenfassung) hergeleitet, die in dem Bitstrom enthalten sind. In einer anderen Ausführungsform werden die zwei Bewegungsvektoren implizit ohne eine übertragene Information in dem Bitstrom hergeleitet. In Schritt 860 wird basierend auf Tiefeninformationen der gleichen Position eine Segmentierungsmaske für die aktuelle Texturcodierungseinheit bestimmt. In Schritt 870 werden unter Verwendung der zwei Bewegungsvektoren zwei Vorhersageblöcke für die aktuelle Texturcodierungseinheit aus Referenzbilddaten generiert. In Schritt 880 wird ein DBBP-Vorhersageblock durch Zusammenfassen der zwei Vorhersageblöcke basierend auf der Segmentierungsmaske generiert. In Schritt 890 wird die aktuelle Texturcodierungseinheit unter Verwendung eines oder mehrerer Prädiktoren, welche den DBBP-Vorhersageblock aufweisen, decodiert.
-
Die vorstehend gezeigten Flussdiagramme sind dazu gedacht, Beispiele eines Codierens der tiefenbasierten Blockpartitionierungs-(DBBP-)Partitionsart gemäß der vorliegenden Erfindung darzustellen. Ein Fachmann auf dem Gebiet kann jeden Schritt modifizieren, die Schritte neu anordnen, einen Schritt aufteilen oder Schritte kombinieren, um die vorliegende Erfindung zu praktizieren, ohne von der Idee der vorliegenden Erfindung abzuweichen.
-
Die vorstehende Beschreibung wird präsentiert, um einer Person mit gewöhnlichen Kenntnissen auf dem Gebiet zu ermöglichen, die vorliegende Erfindung, wie sie in dem Zusammenhang einer bestimmten Anwendung und ihrer Anforderungen bereitgestellt wird, zu praktizieren. Verschiedene Modifikationen an den beschriebenen Ausführungsformen werden für Fachleute auf dem Gebiet offensichtlich, und die allgemeinen, hier definierten Grundsätze können auf andere Ausführungsformen angewendet werden. Deshalb ist die vorliegende Erfindung nicht dazu gedacht, auf die speziellen gezeigten und beschriebenen Ausführungsformen beschränkt zu sein, sondern soll mit dem weitesten Gültigkeitsumfang übereinstimmen, der mit den hier offenbarten Grundsätzen und neuartigen Merkmalen konsistent ist. In der vorstehenden detaillierten Beschreibung sind verschiedene spezifische Details dargestellt, um ein genaues Verständnis der vorliegenden Erfindung bereitzustellen. Dennoch wird von Fachleuten auf dem Gebiet verstanden, dass die vorliegende Erfindung praktiziert werden kann.
-
Eine Ausführungsform der vorliegenden Erfindung wie vorstehend beschrieben kann in verschiedener Hardware, Software-Codes oder einer Kombination aus beiden implementiert werden. Zum Beispiel kann eine Ausführungsform der vorliegenden Erfindung eine oder mehrere elektronische Schaltungen, die in einen Videokompressions-Chip integriert sind, oder ein Programm-Code sein, der in eine Videokompressions-Software integriert ist, um die hier beschriebene Verarbeitung durchzuführen. Eine Ausführungsform der vorliegenden Erfindung kann auch ein Programm-Code sein, der auf einem digitalen Signalprozessor (DSP) auszuführen ist, um die hier beschriebene Verarbeitung durchzuführen. Die Erfindung kann auch eine Anzahl von Funktionen einschließen, die durch einen Computer-Prozessor, einen digitalen Signalprozessor, einen Mikroprozessor oder ein Field-Programmable-Gate-Array (FPGA) auszuführen sind. Diese Prozessoren können eingerichtet sein, bestimmte Aufgaben gemäß der Erfindung durch Ausführen von maschinenlesbarem Software-Code oder Firmware-Code durchzuführen, welche die bestimmten durch die Erfindung ausgeführten Verfahren definiert. Der Software-Code oder Firmware-Code kann in unterschiedlichen Programmiersprachen und unterschiedlichen Formaten und Stilen entwickelt sein. Der Software-Code kann auch für unterschiedliche Zielplattformen übersetzt sein. Unterschiedliche Code-Formate, -Stile und -Sprachen von Software-Codes und andere Mittel zum Konfigurieren von Code, um die Aufgaben in Übereinstimmung mit der Erfindung auszuführen, werden nicht von der Idee und dem Gültigkeitsumfang der Erfindung abweichen.
-
Die Erfindung kann in anderen speziellen Formen ausgeführt sein, ohne von ihrer Idee oder essentiellen Eigenschaften abzuweichen. Die beschriebenen Beispiele sollen in jeder Hinsicht nur als darstellend und nicht einschränkend angesehen werden. Der Gültigkeitsumfang der Erfindung wird deshalb durch die angehängten Ansprüche angegeben und nicht durch die vorstehende Beschreibung. Alle Änderungen, die innerhalb der Bedeutung und des Umfangs einer Gleichwertigkeit der Ansprüche erfolgen, sind in ihrem Gültigkeitsumfang einzuschließen.