DE112017006657B4 - Adaptive planare Prädiktion mit ungleichen Gewichten - Google Patents

Adaptive planare Prädiktion mit ungleichen Gewichten Download PDF

Info

Publication number
DE112017006657B4
DE112017006657B4 DE112017006657.3T DE112017006657T DE112017006657B4 DE 112017006657 B4 DE112017006657 B4 DE 112017006657B4 DE 112017006657 T DE112017006657 T DE 112017006657T DE 112017006657 B4 DE112017006657 B4 DE 112017006657B4
Authority
DE
Germany
Prior art keywords
coding block
prediction
pixel
block size
coding
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.)
Active
Application number
DE112017006657.3T
Other languages
English (en)
Other versions
DE112017006657T5 (de
Inventor
Krit Panusopone
Yue Yu
Seungwook Hong
Limin Wang
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.)
Arris Enterprises LLC
Original Assignee
Arris Enterprises LLC
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 Arris Enterprises LLC filed Critical Arris Enterprises LLC
Publication of DE112017006657T5 publication Critical patent/DE112017006657T5/de
Application granted granted Critical
Publication of DE112017006657B4 publication Critical patent/DE112017006657B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Abstract

Verfahren zum Berechnen einer endgültigen planaren Prädiktion in einem planaren Modus, um Pixelwerte für einen aktuellen Kodierblock mit einer Höhe H und einer Breite W zu prädizieren, wobei ein oberes linkes (TL) Pixel in dem Kodierblock durch die Koordinaten x = 0 und y = 0 definiert wird, wobei das Verfahren umfasst:das Empfangen eines Videobitstroms mit kodierten Videodaten;das Interpolieren eines horizontalen Prädiktors und eines vertikalen Prädiktors für ein Pixel in dem aktuellen Kodierblock aus den kodierten Daten;das Identifizieren einer Kodierblockgröße, um zu bestimmen, ob ein gleiches Gewicht oder ungleiche Gewichte auf den jeweiligen horizontalen und vertikalen Prädiktor anzuwenden sind, um durch den Vergleich der Kodierblockgröße mit einem Schwellenwert der Kodierblockgröße einen endgültigen planaren Prädiktionswert P(x,y) nach der Maßgabe zu berechnen:dass, wenn die Kodierblockgröße größer ist als der Schwellenwert der Kodierblockgröße, der endgültige planare Prädiktionswert P(x,y) mit ungleichen Gewichten berechnet wird, die gemäß P(x, y) = (A(x, y) * Ph(x, y) + B(x, y) * Pv(x, y) + c(x, y))/(D(x, y)) auf den jeweiligen horizontalen und vertikalen Prädiktor angewendet werden,wobei A(x, y) und B(x, y) jeweils positionsabhängige Gewichtungsfaktoren für den horizontalen und vertikalen Prädiktor sind und wobei c(x, y) ein positionsabhängiger Rundungsfaktor und D(x, y) ein positionsabhängiger Skalierfaktor ist, und dass,wenn die Kodierblockgröße kleiner als der Schwellenwert der Kodierblockgröße ist, der endgültige planare Prädiktionswert P(x,y) mit gleichen Gewichten berechnet wird, die gemäß P(x, y) = (H * Ph(x,y) + W * Pv(x, y))/(2 * H * W) auf den jeweiligen horizontalen und vertikalen Prädiktor angewendet werden, wobei W die Blockbreite und H die Blockhöhe ist.

Description

  • INANSPRUCHNAHME DER PRIORITÄT
  • Für vorliegende Anmeldung wird gemäß 35 U.S.C. §119(e) die Priorität der früher eingereichten vorläufigen US-Anmeldungen Nr. 62/439724 vom 28. Dezember 2016, Nr. 62/440379 vom 29. Dezember 2016, Nr. 62/459,797 vom 16. Februar 2017, Nr. 62/522420 vom 20. Juni 2017, Nr. 62/482178 vom 5. April 2017, Nr. 62/566117 vom 29. September 2017 und Nr. 62/528732 vom 5. Juli 2017 in Anspruch genommen, auf deren gesamten Inhalt hiermit ausdrücklich verwiesen wird.
  • HINTERGRUND
  • Die technischen Verbesserungen bei der Entwicklung von Videokodierungsstandards zeigen die Tendenz zu einer Steigerung der Kodierungseffizienz, um höhere Bitraten, höhere Auflösungen und eine bessere Videoqualität zu ermöglichen. Das Joint Video Exploration Team entwickelt ein neues Videokodierungsschema, das als JVET bezeichnet wird. Ähnlich wie andere Videokodierungsschemata, zum Beispiel HEVC (High Efficiency Video Coding), ist JVET ein block-basiertes räumliches und zeitliches Prädiktionskodierschema. Im Verhältnis zu HEVC enthält JVET jedoch viele Modifikationen der Bitstromstruktur, der Syntax, der Abhängigkeiten und der Abbildung für die Generierung der dekodierten Bilder. JVET wurde in Joint Exploration Model (JEM)-Kodierern und Dekodierern implementiert. Eine Beschreibung eines Beispielalgorithmus gemäß JEM ist aus CHEN, Jianle [et al.]: Algorithm description of joint exploration test model 4. In: 116. MPEG meeting: Chengdu, CN, 15-21 October 2016, 36 S. bekannt.
  • EP 2 890 130 A1 offenbart Intraprädiktions-Kodierungs- und Dekodierungsverfahren.
  • Durch vorliegende Erfindung wird ein Verfahren zum Berechnen einer endgültigen planaren Prädiktion im Planarmodus bereitgestellt. Das Verfahren umfasst das Empfangen eines Video-Bitstroms mit kodierten Videodaten. Aus den kodierten Daten können ein horizontaler Prädiktor und ein vertikaler Prädiktor für ein Pixel in dem aktuellen Kodierblock interpoliert werden. Eine Kodierblockgröße kann identifiziert werden, um zu bestimmen, ob ein gleiches Gewicht oder ungleiches Gewichte auf den jeweiligen horizontalen und vertikalen Prädiktor anzuwenden ist, um einen endgültigen planaren Prädiktionswert P(x,y) zu berechnen, indem die Kodierblockgröße mit einem Schwellenwert der Kodierblockgrößen verglichen wird. Wenn die Kodierblockgröße größer ist als der Schwellenwert der Kodierblockgröße, erfolgt die Berechnung des endgültigen planaren Prädiktionswerts P(x,y) mit ungleichen Gewichten, die auf den jeweiligen horizontalen und vertikalen Prädiktor angewendet werden, gemäß P(x,y) = (A(x,y) * Ph(x,y) + B(x,y) * Pυ(x,y) + c(x, y))/(D(x, y)), wobei A(x,y) und B(x,y) jeweils positionsabhängige Gewichtungsfaktoren für den horizontalen und vertikalen Prädiktor sind, c(x, y) ein positionsabhängiger Rundungsfaktor ist und D(x, y) ein positionsabhängiger Skalierfaktor ist. Wenn die Kodierblockgröße kleiner ist als der Schwellenwert der Kodierblockgröße, erfolgt die Berechnung des endgültigen planaren Prädiktionswerts P(x,y) mit gleichen Gewichten, die auf den jeweiligen horizontalen und vertikalen Prädiktor angewendet werden, gemäß P(x,y) = (H * Ph(x,y) + W * Pυ(x, y))/(2 * H * W), wobei W die Blockbreite und H die Blockhöhe ist.
  • Durch vorliegende Erfindung wird auch eine Vorrichtung zum Berechnen einer endgültigen planaren Prädiktion im Planarmodus mittels der hierin beschriebenen Verfahren angegeben.
  • Figurenliste
  • Die Erfindung wird nachstehend im Detail erläutert, wobei auf die anliegenden Zeichnungen Bezug genommen wird. In den Zeichnungen zeigt:
    • 1 die Aufteilung eines Frame in eine Vielzahl von Kodierbaumeinheiten (CUTs = Coding Tree Units);
    • 2 eine beispielhafte Partitionierung einer CTU in Kodiereinheiten (CUs = Coding Units);
    • 3 eine Quadbaum- plus Binärbaum- (QTBT = Quadtree plus Binaray Tree)-Darstellung der CU-Partitionierung von 2;
    • 4 ein vereinfachtes Blockdiagramm für die CU-Kodierung in einem JVET-Kodierer;
    • 5 mögliche Intraprädiktionsmoden für Luma-Komponenten in JEVT;
    • 6 ein vereinfachtes Blockdiagramm für die CU-Kodierung in einem JVET-Dekodierer;
    • 7A die Berechnung des horizontalen Prädiktors;
    • 7B die Berechnung eines vertikalen Prädiktors;
    • 8 ein Beispiel einer planaren Prädiktionsebene bei dem JVET-Verfahren, die von der flachen Ebene abweicht;
    • 9 den basierend auf Gleichung (5) erzeugten planaren Prädiktionsblock mit Eck-Intensitätswerten, die identisch sind mit einem Beispiel in 8;
    • 10 ein Beispiel von S[n], wobei die Summe von Breite und Höhe 256 ist und ShiftDenom = 10 ist;
    • 11 ein weiteres Beispiel von S[n], wobei die Summe von Breite und Höhe 512 ist und ShiftDenom = 10 ist;
    • 12 ein weiteres Beispiel von S[n], wobei die Summe von Breite und Höhe 128 ist und ShiftDenom = 10 ist;
    • 13 ein weiteres Beispiel von S[n], wobei die Summe von Breite und Höhe 128 ist und ShiftDenom = 9 ist;
    • 14 eine Ausführungsform eines Computersystems, das für die Verarbeitung eines CU-Kodierverfahrens angepasst und/oder konfiguriert ist;
    • 15 ein Flussdiagramm zur Darstellung eines Verfahrens zum Ausführen der beschriebenen Techniken;
    • 16 eine übergeordnete Ansicht eines Quellgeräts und Zielgeräts, in welchem Merkmale der vorliegend beschriebenen Systeme und Geräte enthalten sein können.
  • DETAILBESCHREIBUNG
  • Digitales Video bedeutet eine große Menge an Daten, die jeden einzelnen Frame einer digitalen Videosequenz oder eine Serie von Frames unkomprimiert darstellen. Die Übertragung von unkomprimiertem digitalen Video über Computernetzwerke ist normalerweise durch Brandbreiteneinschränkungen begrenzt und erfordert große Mengen an Speicherplatz. Die Kodierung von digitalem Video kann die Anforderungen sowohl an den Speicher als auch an die Bandbreite reduzieren.
  • Frames einer Videosequenz oder, genauer gesagt, die Kodierbaumeinheiten innerhalb jedes Frame können mit JVET kodiert und dekodiert werden. JVET ist ein Videokodierschema, das von dem Joint Video Exploration Team entwickelt wird. Versionen von JVET wurden in JEM- (Joint Exploration Model)-Kodierern und Dekodierern implementiert. Ähnlich wie andere Videokodierschemata, z.B. HEVC (High Efficiency Coding), ist JVET ein blockbasiertes hybrides räumliches und zeitliches Prädiktionskodierschema.
  • Bei der Kodierung mit JVET wird ein Frame zunächst in quadratische Blöcke aufgeteilt, die als Kodierbaumeinheiten (CTUs = Coding Tree Units) bezeichnet werden und in 1 dargestellt sind. 1 zeigt die Aufteilung eines Frame in eine Mehrzahl von CTUs. Zum Beispiel können CTUs 100 Blöcke von 128x128 Pixeln sein. Ein Frame kann ein Bild in einer Videosequenz sein, die eine Mehrzahl von Frames enthalten kann. Ein Frame kann eine Matrix oder Reihe von Matrizen umfassen, wobei Pixelwerte Intensitätsmessungen in dem Bild repräsentieren. Die Pixelwerte können so definiert werden, dass sie Farbe und Helligkeit bei der Farbvideokodierung repräsentieren, bei welcher die Pixel in drei Kanäle unterteilt sind. In einem YCbCr-Farbraum zum Beispiel können Pixel einen Lumawert, Y, aufweisen, der die Graustufenintensität in dem Bild repräsentiert, und zwei Chrominanzwerte, Cb und Cr, die das Maß angeben, in welchem sich die Farbe von grau zu blau und rot unterscheidet. In anderen Ausführungsformen können Pixelwerte mit Werten in unterschiedlichen Farbräumen oder -modellen dargestellt werden. Die Auflösung des Videos kann die Anzahl von Pixeln in einem Frame bestimmen. Eine höhere Auflösung kann mehr Pixel und eine bessere Schärfe des Bildes bedeuten, kann aber auch zu höheren Anforderungen bezüglich Bandbreite, Speicher, und Übertragung führen.
  • 2 zeigt eine beispielhafte Partitionierung einer CTU 100 in CUs 102, welche die Prädiktions-Basiseinheiten bei der Kodierung sind. Jede CTU 100 in dem Frame kann in eine oder mehrere Kodiereinheiten oder CUs (Coding Units) 102 aufgeteilt werden. Die CUs 102 können für die Prädiktion und Transformation verwendet werden, wie nachstehend beschrieben. Anders als bei HEVC können bei JVET die CUs 102 rechteckig oder quadratisch sein und können ohne weitere Partitionierung in Prädiktionseinheiten oder Transformationseinheiten kodiert werden. Die CUs 102 können genauso groß wie ihre Stamm-CTUs 100 sein oder können kleinere Unterteilungen einer Stamm-CTU 100 sein, die so klein sind wie 4x4 Blöcke.
  • In JVET kann eine CTU 100 gemäß einem Quadbaum-plus-Binärbaum- (QTBT = Quadtree plus Binaray Tree)-Schema partitioniert werden, in welchem die CTU 100 entsprechend einem Quadbaum rekursiv in quadratische Blöcke und diese dann Binärbäumen entsprechend rekursiv horizontal oder vertikal unterteilt werden können. Die Parameter können derart festgelegt werden, dass die Unterteilung gemäß QTBT erfolgt, zum Beispiel nach CTU-Größe, nach der minimalen Größe für die Quadbaum- und Binärbaumblattknoten, nach der maximalen Größe für den Binärbaumwurzelknoten und nach der maximalen Tiefe für die Binärbäume.
  • 2 zeigt anhand eines nicht einschränkenden Beispiels eine CTU 100, die in CUs 102 aufgeteilt ist, wobei die durchgezogenen Linien die Quadbaumteilung und die gestrichelten Linien die Binärbaumteilung angeben. Wie dargestellt ermöglicht die binäre Teilung eine horizontale Teilung und eine vertikale Teilung, um die Struktur der CTU und deren Unterteilung in CUs zu definieren.
  • 3 zeigt eine QTBT-Blockstruktur-Darstellung der Partitionierung von 2. Um eine kodierte Darstellung eines Bildes oder einer Abbildung zu erzeugen, kann der Videokodierer eine Gruppe von CTUs generieren. In 3 repräsentiert der Quadbaumwurzelknoten die CTU 100. Um eine kodierte CTU zu erzeugen, kann der Videokodierer rekursiv eine Quadbaum-Partitionierung an den Kodierbaumblöcken einer CTU durchführen, um die Kodierbaumblöcke in Kodierblöcke (CB)s zu unterteilen. Damit kann vorliegend ein Video-Slice (z.B. ein Videoframe oder ein Abschnitt eines Videoframe) in Kodierblöcke aufgeteilt werden, die auch als Kodiereinheiten bezeichnet werden können, wobei jede solche Kodiereinheit Blöcke wie beispielsweise Lumablöcke und Chromablöcke enthalten kann, die unabhängig kodiert werden. Da JEM die Flexibilität unterstützt, damit CU-Partitionsformen besser an lokale Gegebenheiten von Videodaten angepasst werden können, können CUs daher nichtquadratische Formen haben und kann die Kodierung auf CU-Ebene oder auf der Ebene des Luma- oder Chromablocks innerhalb der CU stattfinden. Es wird hier auf die Kodierung und Dekodierung eines Kodierblocks Bezug genommen, wobei ein Kodierblock einen Block von Pixeln repräsentiert, aus dem eine CU besteht, oder Kodierblöcke innerhalb der CU.
  • Wie 3 zeigt, repräsentiert jeder Kindknoten in einer CTU 100 in dem Quadbaumabschnitt einen von vier quadratischen Blöcken, die von einem übergeordneten quadratischen Block abgeteilt sind. Die quadratischen Blöcke, die durch die Quadbaumblattknoten dargestellt sind, können dann Null mal oder mehrere Male mit Binärbäumen unterteilt sein, wobei die Quadbaumblattknoten Wurzelknoten der Binärbäume sind, die die Vater-Kodiereinheit darstellen, die in zwei Kind-Kodiereinheiten aufgeteilt ist. Auf jeder Ebene des Binärbaumabschnitts kann ein Block vertikal oder horizontal und symmetrisch oder unsymmetrisch unterteilt sein. Zum Beispiel kann ein auf „0“ gesetztes Flag darauf hinweisen, dass der Block horizontal symmetrisch geteilt ist, während ein auf „1“ gesetztes Flag darauf hinweisen kann, dass der Block vertikal symmetrisch geteilt ist.
  • Nach der Quadbaumteilung und der Binärbaumteilung stellen die durch die Blattknoten des QTBT repräsentierten Blöcke die mit Hilfe von Inter-Prädiktion oder Intra-Prädiktion zu kodierenden finalen Cus 102 dar. Die Inter-Prädiktion nutzt zeitliche Redundanzen zwischen verschiedenen Frames. Zum Beispiel können zeitlich benachbarte Videoframes Blöcke von Pixeln enthalten, die im Wesentlichen gleich bleiben. Während der Kodierung kann ein Bewegungsvektor die Bewegung von Pixelblöcken in einem Frame mit einem Block von korrelierenden Pixeln in einem anderen Frame verknüpfen. Dadurch muss das System den Pixelblock nicht zweimal kodieren, sondern nur einmal und muss den Bewegungsvektor zum Vorhersagen der korrelierten Pixelblöcke liefern.
  • Bei der Intra-Prädiktion kann ein Frame oder ein Teil eines Frame ohne Bezugnahme auf Pixel in anderen Frames kodiert werden. Stattdessen kann die Intra-Prädiktion die räumlichen Redundanzen unter den Pixelblöcken in einem Frame nutzen. Wenn beispielsweise räumlich benachbarte Pixelblöcke ähnliche Attribute aufweisen, kann der Kodierungsprozess auf eine räumliche Korrelation zwischen benachbarten Blöcken verweisen, wobei die Korrelation durch die Vorhersage eines Zielblocks basierend auf Vorhersagemodi, die in benachbarten Blöcken verwendet werden, genutzt wird.
  • Bei Inter-Slices, Slices oder Vollformaten, die mit Inter-Prädiktion kodiert werden, können verschiedene Partitionierungsstrukturen für Luma- und Chromakomponenten verwendet werden. Für ein Inter-Slice zum Beispiel kann eine CU 102 Kodierblöcke für verschiedene Farbkomponenten aufweisen, wie zuj Beispiel einen Luma-CB und zwei Chroma-CBs. Für Intra-Slices oder Slices oder Vollformate, die mit Intra-Prädiktion kodiert werden, kann die Partitionierungstruktur für Luma- und Chromakomponenten die gleiche sein. Daher kann jede der CTUs 100 einen Kodierbaumblock von Luma-Samples, entsprechende Kodierbaumblöcke von Chroma-Samples und Syntaxstrukturen, die zum Kodieren der Samples der Kodierbaumblöcke verwendet werden, umfassen. Eine CTU kann einen einzigen Kodierbaumblock und die zum Kodieren der Samples verwendeten Syntaxstrukturen umfassen. In beiden Fällen kann die CTU mit den Kodierblöcken in einer oder in mehreren Kodiereinheiten enthalten sein, wie in 2 und 3 gezeigt ist.
  • 4 zeigt ein vereinfachtes Blockdiagramm für CU-Kodierung in einem JVET-Kodierer. Die wichtigsten Stufen der Videokodierung sind die Partitionierung, um CUs 102 wie vorstehend beschrieben zu identifizieren, gefolgt von der Kodierung der CUs 102 mittels Prädiktion bei 404 und 406, die Generierung einer Rest-CU 410 bei 408, die Transformation bei 412, die Quantisierung bei 416 und die Entropiekodierung bei 420. Der Kodierer und der in 4 dargestellte Kodierprozess umfassen auch einen Dekodierprozess, der nachstehend im Detail erläutert wird.
  • Bei einer aktuellen CU 102 (z.B. eine CU vor der Kodierung; z.B. die Original-CU, die zur Übertragung in dem Bitstrom durch die Generierung einer Prädiktions-CU zu kodieren ist), kann der Kodierer eine Prädiktions-CU 402 entweder räumlich mittels Intra-Prädiktion bei 404 oder zeitlich mittels Inter-Prädiktion bei 406 erhalten. Die Grundidee der Prädiktionskodierung bzw. Vorhersagekodierung ist die Übertragung eines Differenz- oder Restsignals zwischen dem ursprünglichen Signals und einer Prädiktion für das ursprüngliche Signal. Auf der Empfängerseite kann das ursprüngliche Signal rekonstruiert werden, indem der Rest und die Prädiktion addiert werden, wie das nachstehend erläutert wird. Da das Restsignal eine geringere Korrelation aufweist als das Originalsignal, werden für seine Übertragung weniger Bits benötigt.
  • Eine Folge von Kodiereinheiten kann ein Slice bilden, und ein oder mehrere Slices können ein Bild bilden. Ein Slice kann ein oder mehrere Slice-Segmente umfassen, und zwar jeweils in seiner eigenen NAL-Einheit. Ein Slice oder ein Slice-Segment kann Header-Informationen bzw. Kopfdaten für das Slice oder den Bitstrom enthalten.
  • Ein Slice wie beispielsweise ein Gesamtbild oder ein Teil eines Bildes, das komplett mit intra-prädizierten CUs kodiert wird, kann ein I-Slice sein, das ohne Referenz auf andere Slices dekodiert werden kann und daher ein möglicher Punkt sein kann, an dem die Dekodierung beginnen kann. Ein Slice, das zumindest mit einigen inter-prädizierten CUs kodiert wird, kann ein differenzkodiertes, d.h. predictive (P)-Slice oder bi-predictive (B)-Slice sein, das basierend auf einem oder mehreren Referenzbildern dekodiert wird. Bei P-Slices können eine Intra-Prädiktion und eine Inter-Prädiktion mit vorher kodierten Slices angewendet werden. Zum Beispiel können P-Slices durch Inter-Prädiktion stärker komprimiert werden als I-Slices, benötigen aber für ihre Kodierung die Kodierung einer vorher kodierten Slice. B-Slices können Daten von vorangegangenen und/oder folgenden Slices für ihre Kodierung nutzen, indem eine Intra-Prädiktion oder Inter-Prädiktion mit einer interpolierten Prädiktion aus zwei verschiedenen Frames angewendet wird, wodurch die Genauigkeit des Bewegungsschätzungsprozesses vergrößert wird. In einigen Fällen können P-Slices und B-Slices auch oder alternativ mittels Intrablockkopie kodiert werden, wobei hier Daten von anderen Teilen derselben Slice verwendet werden.
  • Wie nachstehend erläutert wird, können die Intra-Prädiktion oder die Inter-Prädiktion basierend auf rekonstruierten CUs 434 von vorher kodierten CUs 102 wie beispielsweise benachbarten CUs 102 oder CUs 102 in Referenzbildern durchgeführt werden.
  • Wenn eine CU 102 bei 404 mit Intra-Prädiktion räumlich kodiert wird, kann auf der Basis von Samples von benachbarten CUs 102 in dem Bild ein Intra-Prädiktionsmodus gefunden werden, der die Pixelwerte der CU 102 am besten vorhersagt.
  • Wenn Luma- oder Chroma-Blockkomponenten einer CU kodiert werden, kann der Kodierer eine Liste von Kandidaten-Intraprädiktionsmodi generieren. Während HEVC fünfunddreißig (35) mögliche Intra-Prädiktionsmodi für Luma-Komponenten hatte, hat JVET siebenundsechzig (67) mögliche Intra-Prädiktionsmodi für Luma-Komponenten. Diese umfassen einen Planarmodus, der eine dreidimensionale Ebene von Werten nutzt, die von benachbarten Pixeln generiert wurden, einen DC-Modus, der die durchschnittlichen Werte von benachbarten Pixeln nutzt, und die fünfundsechzig (65) Richtungsmodi, die in 5 gezeigt sind und die Werte nutzen, die von benachbarten Pixeln entlang der angegebenen Richtungen kopiert werden.
  • Bei der Generierung der Liste von Kandidaten-Intraprädiktionsmodi für eine Luma-Blockkomponente einer CU kann die Anzahl von Kandidatenmodi auf der Liste von der Größe der CU abhängen. Die Kandidatenliste kann enthalten: eine Untergruppe der fünfunddreißig (35) Modi von HEVC mit dem niedrigsten SATD-Aufwand (SATD = Sum of Absolute Transform Differenz = Summe der absoluten Transformationsdifferenz); neue Richtungsmodi, die für JVET hinzugefügt wurden und die Nachbarn der Kandidaten sind, die in den HEVC-Modi gefunden wurden; und eine Gruppe von sechs wahrscheinlichsten Modi (MPMs = most probable modes) für die CU 102, die basierend auf Intra-Prädiktionsmodi ermittelt werden, die für vorher kodierte benachbarte Blöcke verwendet wurden, sowie eine Liste von Standardmodi.
  • Beim Kodieren von Chroma-Blockkomponenten einer CU kann ebenfalls eine Liste von Kandidaten-Intraprädiktionsmodi generiert werden. Die Liste von Kandidatenmodi kann Modi umfassen, die mit einer komponentenübergreifenden linearen Modellprojektion von Luma-Samples, mit Intra-Prädiktionsmodi, die für Luma-CBs in bestimmten nebeneinanderstehenden Positionen in dem Chroma-Block gefunden wurden, und mit Chroma-Prädiktionsmodi, die vorher für benachbarte Blöcke gefunden wurden, generiert werden. Der Kodierer kann die Kandidatenmodi auf den Listen mit den niedrigsten Rate-Verzerrungs-Kosten finden und diese Intra-Prädiktionsmodi beim Kodieren der CUs Luma- und Chroma-Komponenten anwenden. Syntax kann in den Bitstrom kodiert werden, der den für die Kodierung jeder CU 102 verwendeten Intra-Prädiktionsmodus angibt.
  • Nachdem die besten Intra-Prädiktionsmodi für eine CU 102 gewählt wurden, kann der Kodierer durch die Anwendung dieser Modi eine Prädiktions-CU 402 generieren. Wenn die gewählten Modi Richtungsmodi sind, kann ein 4-Tap-Filter verwendet werden, um die Richtungsgenauigkeit zu verbessern. Spalten oder Reihen am oberen Ende oder auf der linken Seite des Prädiktionsblocks können mit Grenzprädiktionsfiltern wie 2-Tap- oder 3-Tap-Filtern angepasst werden.
  • Die Prädiktions-CU 402 kann mit einem positionsabhängigen IntraPrädiktions-Kombinationsprozess (PDPC = Position Dependent Intra-Prediction Combination Process), der eine basierend auf gefilterten Samples von benachbarten Blöcken generierte CU 402 unter Verwendung von ungefilterten Samples von benachbarten Blöcken anpasst, oder mit einer adaptiven Referenz-Sample-Glättung mit 3-Tap- oder 5-Tap-Tiefpassfiltern zur Verarbeitung von Referenz-Samples weiter geglättet werden.
  • Wenn eine CU 102 bei 406 mit Inter-Prädiktion zeitlich kodiert wird, kann eine Gruppe von Bewegungsvektoren (MVs) gefunden werden, die auf Samples in Referenzbildern zeigt, die Pixelwert der CU 102 am besten vorhersagen. Die Inter-Prädiktion nutzt eine zeitliche Redundanz zwischen Slices, indem sie eine Verschiebung eines Pixelblocks in einem Slice darstellt. Die Verschiebung wird entsprechend dem Pixelwert in vorangehenden oder folgenden Slices durch einen als Bewegungskompensation bezeichneten Prozess bestimmt. Bewegungsvektoren und zugeordnete Referenz-Indizes, die auf eine Pixelverschiebung relativ zu einem bestimmten Referenzbild hinweisen, können in dem Bitstrom zu einem Dekodierer bereitgestellt werden, zusammen mit dem Rest zwischen den Originalpixeln und den bewegungskompensierten Pixeln. Der Dekoder kann die restlichen und angezeigten Bewegungsvektoren und Referenz-Indizes nutzen, um einen Pixelblock in einem rekonstruierten Slice zu rekonstruieren.
  • In JVET kann die Bewegungsvektorgenauigkeit mit 1/16 pel gespeichert werden, und die Differenz zwischen einem Bewegungsvektor und einem vorhergesagten Bewegungsvektor einer CU kann entweder mit einer Viertel-pel-Auflösung oder mit einer Integer-pel-Auflösung kodiert werden.
  • In JVET können Bewegungsvektoren für mehrere Unter-CUs in einer CU 102 gefunden werden, und zwar mit Hilfe von Verfahren wie Advanced Temporal Motion Vector Prediction (ATMVP), Spatial-Temporal Motion Vector Prediction (STMVP), Affine Motion Compensation Prediction, Pattern Matched Motion Vector Derivation (PMMVD) und/oder Bi-Directional Optical Flow (BIO).
  • Wird ATMVP benutzt, kann der Kodierer einen zeitlichen Vektor für die CU 102 finden, der auf einen entsprechenden Block in einem Referenzbild zeigt. Der zeitliche Vektor kann basierend auf Bewegungsvektoren und Referenzbildern gefunden werden, die für vorher kodierte benachbarte CUs 102 gefunden wurden. Wird ein Referenzblock, auf den ein zeitlicher Vektor zeigt, für die gesamte CU 102 benutzt, kann ein Bewegungsvektor für jede Unter-CU in der CU 102 gefunden werden.
  • STMVP kann Bewegungsvektoren für Unter-CUs durch eine Skalierung und Mittelwertbildung von Bewegungsvektoren, die für vorher mit Inter-Prädiktion kodierte benachbarte Blöcke gefunden wurden, zusammen mit einem zeitlichen Vektor finden.
  • Affine Motion Compensation Prediction kann benutzt werden, um ein Feld von Bewegungsvektoren für jede Sub-CU in einem Block vorherzusagen, basierend auf zwei Steuerungsbewegungsvektoren, die für die oberen Ecken des Blocks gefunden wurden. Zum Beispiel können Bewegungsvektoren für Sub-CUs basierend auf Bewegungsvektoren der oberen Ecken, die für jeden 4x4-Block in der CU 102 gefunden wurden, hergeleitet werden.
  • PMMVD kann einen initialen Bewegungsvektor für die aktuelle CU 102 mittels Bilateral Matching oder Template Matching finden. Bilateral Matching kann die aktuelle CU 102 und die Referenzblöcke in zwei verschiedenen Referenzbildern entlang einer Bewegungsbahn ansehen, während Template Matching entsprechende Blöcke in der aktuellen CU 102 und ein Referenzbild, das durch ein Template (eine Schablone) identifiziert wird, ansehen kann. Der initiale Bewegungsvektor, der für die CU 102 gefunden wurde, kann dann für jede Sub-CU individuell verfeinert werden.
  • BIO kann benutzt werden, wenn eine Inter-Prädiktion mit Bi-Prädiktion basierend auf früheren und späteren Referenzbildern durchgeführt wird, und ermöglicht, dass basierend auf dem Gradienten der Differenz zwischen zwei Referenzbildern Bewegungsvektoren für die Sub-CUs gefunden werden.
  • In einigen Situationen kann eine lokale Beleuchtungskompensation (LIC = Local Illumination Compensation) auf der CU-Ebene angewendet werden, um Werte für einen Skalierfaktorparameter und einen Versatzparameter zu finden, basierend auf der aktuellen CU 102 benachbarten Samples und entsprechenden Samples, die einem Referenzblock benachbart sind und durch einen Kandidaten-Bewegungsvektor identifiziert werden. Bei JVET können die LIC-Parameter veränderlich sein und auf der CU-Ebene mitgeteilt werden.
  • Bei einigen der zuvor beschriebenen Verfahren können die für jede Unter-CU einer CU gefundenen Bewegungsvektoren den Dekodern auf der CU-Ebene mitgeteilt werden. Bei anderen Verfahren, wie etwa PMMVD und BIO, wird die Bewegungsinformation in dem Bitstrom nicht mitgeteilt, um Überhang zu sparen, und die Dekoder können die Bewegungsvektoren durch die gleichen Vorgänge ableiten.
  • Nachdem die Bewegungsvektoren für eine CU 102 gefunden wurden, kann der Kodierer mittels dieser Bewegungsvektoren eine Prädiktions-CU 402 generieren. In einigen Fällen kann, wenn Bewegungsvektoren für individuelle Sub-CUs gefunden wurden, kann bei der Generierung eine Prädiktions-CU 402 Overlapped Block Motion Compensation (OBMC) angewendet werden, indem diese Bewegungsvektoren mit Bewegungsvektoren kombiniert werden, die vorher für eine oder mehrere benachbarte Sub-CUs gefunden wurden.
  • Wird die Bi-Prädiktion benutzt, kann JVET eine dekodiererseitige Bewegungsvektor-Verfeinerung (DMVR = Decoder-Side Motion Vector Refinement) nutzen, um Bewegungsvektoren zu finden. DMVR ermöglicht das Auffinden eines Bewegungsvektors auf der Basis von zwei Bewegungsvektoren, die für die Bi-Prädiktion gefunden wurden, mittels eines Bilateral Template Matching-Verfahrens. Bei DMVR kann eine gewichtete Kombination von Prädiktions-CUs 402, die mit jedem der beiden Bewegungsvektoren generiert wurden, gefunden werden, und die beiden Bewegungsvektoren können verfeinert werden, indem sie durch Bewegungsvektoren ersetzt werden, die am besten auf die kombinierte Prädiktions-CU 402 zeigen. Die beiden verfeinerten Bewegungsvektoren können verwendet werden, um die endgültige Prädiktions-CU 402 zu generieren.
  • Sobald bei 404 mittels Intra-Prädiktion oder bei 406 mittels Inter-Prädiktion eine Prädiktions-CU 402 gefunden wurde, wie vorstehend beschrieben, kann der Kodierer bei 408 die Prädiktions-CU 402 von der aktuellen CU 102 subtrahieren und eine Rest-CU 410 finden.
  • Bei 412 kann der Kodierer eine oder mehrere Transformationsoperation verwenden, um die Rest-CU 410 in Transformationskoeffizienten 414 zu konvertieren, die die Rest-CU 410 in einer Transformationsdomäne ausdrücken, wie zum Beispiel eine diskrete Cosinus-Blocktransformation (DCT-Transformation) zum Konvertieren von Daten in die Transformationsdomäne. JEVT erlaubt mehr Arten von Transformationsoperationen als HEVC, unter anderem DCT-II, DST-VII, DST-VII, DCT-VIII, DST-I und DCT-V-Operation. Die erlaubten Transformationsoperationen können in Untergruppen gruppiert werden, und ein Hinweis, welche Untergruppen und welche speziellen Operationen in diesen Untergruppen verwendet wurden, kann durch den Kodierer signalisiert werden. In einigen Fällen können große Blockgrößen-Transformationen verwendet werden, um Hochfrequenz-Transformationskoeffizienten in CUs 102, die größer sind als eine bestimmte Größe, zu eliminieren, so dass für solche CUs 102 nur Transformationskoeffizienten mit einer niedrigeren Frequenz beibehalten werden.
  • In einigen Fällen kann nach einer Vorwärts-Kerntransformation eine modusabhängige nicht-separierbare sekundäre Transformation (MDNSST = Mode Dependent Non-Separable Secondary Transform) auf niederfrequente Transformationskoeffizienten 414 angewendet werden. Die MDNNSST-Operation kann eine Hypercube-Givens-Transformation (HyGT) basierend auf Rotationsdaten benutzen. Wenn diese benutzt wird, kann ein Indexwert, der eine bestimmte MDNSST-Operation identifiziert, durch den Kodierer signalisiert werden.
  • Bei 416 kann der Kodierer die Transformationskoeffizienten 414 in quantisierte Transformationskoeffizienten 416 quantisieren. Die Quantisierung jedes Koeffizienten lässt sich berechnen, indem ein Wert des Koeffizienten durch einen Quantisierungsschritt geteilt wird, der von einem Quantisierungsparameter (QP) abgeleitet wird. In einigen Ausführungsformen wird der Qschritt definiert als 2(QP-4)/6. Da Hochpräzisions-Transformationskoeffizienten 414 in quantisierte Transformationskoeffizienten 416 mit einer finiten Anzahl von möglichen Werten konvertiert werden können, kann die Quantisierung bei der Datenkompression helfen. Solchermaßen kann die Quantisierung der Transformationskoeffizienten eine Anzahl von Bits, die durch den Transformationsprozess generiert und gesendet werden, begrenzen. Während die Quantisierung eine verlustbehaftete Operation ist und der Verlust aufgrund der Quantisierung nicht wieder aufgeholt werden kann, bietet sie dennoch einen Kompromiss zwischen der Qualität der wiederhergestellten Sequenz und einer Informationsmenge, die für die Darstellung der Sequenz benötigt wird. Ein niedriger QP-Wert kann zu einem mit besserer Qualität dekodierten Video führen, wenngleich dies gegebenenfalls eine größere Datenmenge für die Darstellung und Übertragung erfordert. Ein hoher QP-Wert hingegen kann zu Videosequenzen führen, die mit einer schlechteren Qualität dekodiert werden, jedoch geringere Datenmengen und Bandbreiten benötigen.
  • JEVT kann varianzbasierte adaptive Quantisierungstechniken verwenden, wodurch jede CU 102 für ihren Kodierungsvorgang einen anderen Quantisierungsparameter benutzen kann (anstelle der Benutzung desselben Frame-QP bei der Kodierung jeder CU 102 in dem Frame). Die varianzbasierten adaptiven Quantisierungstechniken verringern den Quantisierungsparameter bestimmter Blöcke und vergrößern diesen in anderen Blöcken. Für die Wahl eines bestimmten QP für eine CU 102 wird die Varianz der CU berechnet. Kurzgefasst: Wenn die Varianz einer CU größer ist als eine durchschnittliche Varianz des Frame, kann für die CU 102 ein größerer QP festgelegt werden. Ist die Varianz der CU 102 geringer als die durchschnittliche Varianz des Frame, kann ein kleinerer QP zugewiesen werden.
  • Bei 420 kann der Kodierer durch Entropiekodierung der quantisierten Transformationskoeffizienten 418 endgültige Komprimierungsbits 422 finden. Das Ziel einer Entropiekodierung ist die Beseitigung von statistischen Redundanzen der zu übertragenden Informationen. In JVET kann CABAC (Context Adaptive Binary Arithmetic Coding) benutzt werden, um die quantisierten Transformationskoeffizienten 418 zu kodieren, wobei ein Wahrscheinlichkeitsmaß benutzt wird, um statistische Redundanzen zu beseitigen. Bei Cus 102 mit transformierten Koeffizienten 418 von nicht Null können die transformierten Koeffizienten 418 in binäre konvertiert werden. Jedes Bit („bin“) der binären Darstellung kann dann durch die Benutzung eines Kontextmodells kodiert werden. Eine CU 102 kann in drei Regionen aufgeteilt werden, jede mit ihrer eigenen Gruppe von Kontextmodellen zur Benutzung für Pixel in dieser Region.
  • Es können mehrere Scandurchläufe zum Kodieren der bins durchgeführt werden. Während Durchläufen zum Kodieren der ersten drei Bins (bin0, bin1 und bin2) kann ein Indexwert, der angibt, welches Kontextmodell für das bin zu benutzen ist, gefunden werden durch Auffinden der Summe dieser bin-Position in bis zu fünf vorher kodierten benachbarten quantisierten Transformationskoeffizienten 418, die durch ein Template identifiziert werden.
  • Ein Kontextmodell kann auf Wahrscheinlichkeiten basieren, dass ein Wert eines bin gleich ‚0‘ oder ‚1‘ ist. Während Werte kodiert werden, können die Wahrscheinlichkeiten in dem Kontextmodell basierend auf der aktuellen Anzahl von vorgefundenen ‚0‘- und ‚1‘-Werten aktualisiert werden. Während HEVC zum Neuinitialisieren von Kontextmodellen für jedes neue Bild feste Tabellen benutzt hat, können in JVET die Wahrscheinlichkeiten von Kontextmodellen für neue inter-prädizierte Bilder basierend auf Kontextmodellen initialisiert werden, die für vorher kodierte inter-prädizierte Bilder entwickelt wurden.
  • Der Kodierer kann einen Bitstrom erzeugen, der entropiekodierte Bits 422 von Rest-CUs 410, Vorhersageinformationen wie ausgewählte Intra-Prädiktionsmodi oder Bewegungsvektoren, Indikatoren, die angeben, wie die CUs 102 von einer CTU 100 gemäß QTBT-Struktur partitioniert wurden, und/oder weitere Informationen über das kodierte Video enthalten kann. Der Bitstrom kann durch einen Dekodierer dekodiert werden, wie das nachstehend erläutert wird. In einigen Ausführungsformen kann der Kodierer Overhead im Bitstrom sparen, indem Informationen, die angeben, welche Intra-Prädiktionsmodi für die Kodierung der CUs 102 benutzt wurden, aus dem Bitstrom wegfallen, und der Dekodierer kann Template Matching benutzen, wenn die mit Intra-Prädiktion kodierten CUs 102 dekodiert werden.
  • Zusätzlich zur Benutzung von quantisierten Transformationskoeffizienten 418 zum Auffinden der endgültigen Komprimierungsbits 422 kann der Kodierer auch die quantisierten Transformationskoeffizienten 418 zum Generieren der rekonstruierten CUs 434 benutzen, indem er demselben Dekodierungsprozess folgt, den ein Dekodierer anwenden würde, um rekonstruierte CUs 434 zu generieren. Daher können die quantisierten Transformationskoeffizienten 418 an die Dekodierungsschleife in dem Kodierer gesendet werden, sobald die Transformationskoeffizienten von dem Kodierer berechnet und quantisiert worden sind. Nach der Quantisierung von Transformationskoeffizienten einer CU, ermöglicht die Dekodierungsschleife, dass der Kodierer eine rekonstruierte CU 434 generiert, die mit der einen identisch ist, die der Dekodierer beim Dekodierungsprozess generiert. Dementsprechend kann der Kodierer dieselben rekonstruierten CUs 434 benutzen, die ein Dekodierer für benachbarte CUs 102 oder für Referenzbilder benutzen würde, wenn eine Intra-Prädiktion oder eine Inter-Prädiktion für eine neue CU 102 durchgeführt wird. Rekonstruierte CUs 102, rekonstruierte Slices oder voll rekonstruierte Bilder können als Referenz für weitere Prädiktionsstufen dienen.
  • An der Dekodierungsschleife des Kodierers (siehe unten für die gleichen Operation im Dekodierer) kann zum Erhalten von Pixelwerten für das rekonstruierte Bild ein Dequantisierungsprozess durchgeführt werden. Um beispielsweise ein Frame zu dequantisieren, wird ein quantisierter Wert für jedes Pixel des Frame mit dem Quantisierungsschritt, z.B. dem vorstehend beschriebenen (Qstep), multipliziert, um rekonstruierte dequantisierte Transformationskoeffizienten 426 zu erhalten. In dem in 4 gezeigten Dekodierungsprozess in dem Kodierer zum Beispiel können die quantisierten Transformationskoeffizienten 418 einer restlichen CU 410 bei 424 dequantisiert werden, um dequantisierte Transformationskoeffzienten 426 zu finden. Wenn während der Kodierung eine MDNSST-Operation durchgeführt wurde, kann diese Operation nach der Dequantisierung umgekehrt werden.
  • Bei 428 können die dequantisierten Transformationskoeffizienten 426 invers transformiert werden, um eine rekonstruierte Rest-CU 430 zu finden, indem beispielweise ein DCT auf die Werte angewendet wird, um das rekonstruierte Bild zu erhalten. Bei 432 kann die rekonstruierte Rest-CU 430 zu einer entsprechenden Prädiktions-CU 402 addiert werden, die mit Intra-Prädiktion bei 404 oder mit Inter-Prädiktion bei 406 gefunden wurde, um eine rekonstruierte CU 434 zu finden. Während der Kodierer in einigen Ausführungsformen bei 404 eine Intra-Prädiktion durchführen kann, wie oben beschrieben, kann der Kodierer in anderen Ausführungsformen ein IntraPrädiktions-Template-Matching durchführen, um eine Prädiktions-CU 402 zu generieren, und zwar in der gleichen Weise wie der Dekodierer ein Template Matching für Intra-Prädiktion durchführen würde, wenn Informationen, die den für die CU 102 benutzten Intra-Prädiktionsmodus aus dem Bitstrom weggelassen werden.
  • Bei 436 können während des Dekodierungsprozesses (in dem Kodierer oder, wie vorstehend beschrieben, in dem Dekodierer) ein oder mehrere Filter auf die rekonstruierten Daten entweder auf Bildebene oder auf CU-Ebene angewendet werden. Zum Beispiel kann der Kodierer ein Entblockierungsfilter, ein Sample Adaptive Offset (SAO)-Filter und oder ein Adaptive Loop Filter (ALF) anwenden. Der Dekodierungsprozess des Kodierers kann Filter implementieren zum Schätzen und Senden der optimalen Filterparameter, die potenzielle Artefakte in dem rekonstruierten Bild behandeln können, an einen Dekodierer. Solche Verbesserungen erhöhen die objektive und subjektive Qualität des rekonstruierten Videos. In Entblockierungsfiltern können Pixel in der Nähe einer Sub-CU-Grenze modifiziert werden, wohingegen in SAO Pixel in einer CTU 100 entweder durch die Benutzung einer Kantenversatz- oder eine Bandversatz-Klassifizierung modifiziert werden können. ALF bei JVET kann für jeden 2x2-Block Filter benutzen, die kreissymmetrische Formen aufweisen. Ein Hinweis auf die Größe und Identität des für jeden 2x2-Block benutzten Filters kann signalisiert werden.
  • Wenn die rekonstruierten Bilder Referenzbilder sind, können diese bei 406 in einem Referenzpuffer 438 für die Inter-Prädiktion von künftigen CUs 102 gespeichert werden.
  • Während der vorgenannten Schritte erlaubt JEVT die Durchführung von contentadaptiven Clipping-Operationen, um die Farbwerte einzustellen bzw. anzupassen, so dass diese zwischen die Clipping-Obergrenzen und Untergrenzen passen. Die Clipping-Grenzen können sich für jedes Slice ändern, und die Parameter, die die Grenzen angeben, können in dem Bitstrom signalisiert werden.
  • 6 zeigt ein vereinfachtes Blockdiagramm für eine CU-Kodierung in einem JVET-Dekodierer. Ein JVET-Dekodierer kann einen Bitstrom oder Bits 602 empfangen, die Informationen über kodierte Videodaten enthalten. Die kodierten Videodaten können partitionierte Luma-Blöcke und partitionierte Chroma-Blöcke repräsentieren, wobei die Chroma-Blöcke unabhängig von den Luma-Blöcken partitioniert und kodiert werden können. Der Dekodierer kann den jeweiligen Dekodierungsmodus bezüglich der Blöcke in jeder CU 102 bestimmen.
  • Der Bitstrom kann angeben, wie CUs 102 von einer CTU 100 gemäß einer QTBT partitioniert wurden. Der Dekodierer kann die Baumstruktur als Teil des Erhaltens von Syntaxelementen aus dem Bitstrom bestimmen. Die Baumstruktur kann angeben, wie der initiale Videoblock, wie beispielsweise ein CTB, in kleinere Videoblöcke, wie beispielweise Kodiereinheiten, aufgeteilt ist.
  • Wie vorliegend beschrieben, gibt es für jeden betreffenden Nichtblattknoten der Baumstruktur auf jeder Tiefenebene der Baumstruktur verschiedene Aufteilungsmuster für die jeweiligen Nichtblattknoten. Gemäß einem nicht einschränkenden Beispiel kann der Bitstrom signalisieren, wie CUs 102 von jeder CTU 100 in einem QTBT mittels Quadbaum-Partitionierung, symmetrischer binärer Partitionierung und/oder asymmetrischer binärer Partitionierung aufgeteilt wurden. Der Videoblock, der einem solchen jeweiligen Nichtblattknoten entspricht, kann in Videoblöcke aufgeteilt sein, die den Kindknoten des jeweiligen Nichtplattknotens entsprechen.
  • Der Bitstrom kann auch Prädiktionsinformationen für die CUs 102 angeben, zum Beispiel Intra-Prädiktionsmodi oder Bewegungsvektoren. Bits 602 repräsentieren entropiekodierte Rest-CUs. In einigen Ausführungsformen kann die Syntax in den Bitstrom kodiert werden, der Intra-Prädiktionsmodi angibt, die für die Kodierung jeder CU 102 angewendet wurden. In einigen Ausführungsformen kann der Kodierer über ausgelassene Informationen in dem Bistrom über Intra-Prädiktionsmodi verfügen, die zum Kodieren einiger oder aller CUs 102, die mittels Intra-Prädiktion kodiert wurden, verwendet wurden, und also solcher kann der Dekodierer Template Matching für die Intra-Prädiktion benutzen.
  • Bei 604 kann der Dekodierer die entropiekodierten Bits 602 mittels CABAC-Kontextmodellen, die in dem Bitstrom von dem Kodierer signalisiert werden, dekodieren. Der Dekodierer kann von dem Kodierer signalisierte Parameter verwenden, um die Wahrscheinlichkeiten der Kontextmodelle in der gleichen Weise zu aktualisieren, wie diese bei der Kodierung aktualisiert wurden.
  • Nach dem Umkehren der Entropiekodierung bei 604 zum Auffinden von quantisierten Transformationskoeffizienten 606 kann der Dekodierer diese bei 608 dequantisieren, um dequantisierte Transformationskoeffizienten 610 zu finden. Wenn während der Kodierung eine MDNSST-Operation durchgeführt wurde, kann diese Operation nach der Dequantisierung von dem Dekodierer umgekehrt werden.
  • Bei 612 können die dequantisierten Transformationskoeffizienten 610 invers transformiert werden, um eine rekonstruierte Rest-CU 614 zu finden. Bei 616 kann die rekonstruierte Rest-CU 614 der entsprechenden Prädiktions-CU 626, die mit Intra-Prädiktion bei 622 oder mit Inter-Prädiktion bei 624 gefunden wurde, hinzugefügt werden, um eine rekonstruierte CU 618 zu finden. In einigen Ausführungsformen kann der Dekodierer die Prädiktions-CU 626 durch Template Matching für Intra-Prädiktion finden.
  • Bei 620 können ein oder mehrere Filter auf die rekonstruierten Daten angewendet werden, zum Beispiel auf Bildebene oder auf CU-Ebene. Der Dekodierer kann ein Entblockierungsfilter, ein Sample Adaptive Offset (SAO)-Filter und/oder ein Adaptive Loop Filter (ALF) anwenden. Wie vorstehend ausgeführt wurde, können die Schleifenfilter in der Dekodierungsschleife des Kodierers verwendet werden, um optimale Filterparameter zum Erhöhen der objektiven und subjektiven Qualität eines Frame zu schätzen. Diese Parameter werden an den Dekodierer übermittelt, damit dieser bei 620 das rekonstruierte Frame filtert, so dass dieses mit dem gefilterten rekonstruierten Frame in dem Kodierer übereinstimmt.
  • Nachdem durch das Auffinden von rekonstruierten CUs 618 und das Anwenden von signalisierten Filtern rekonstruierte Bilder generiert wurden, kann der Dekodierer die rekonstruierten Bilder als Ausgabevideo 628 ausgeben. Wenn rekonstruierte Bilder als Referenzbilder zu verwenden sind, können sie bei 624 in einem Referenzpuffer 630 für die Inter-Prädiktion von künftigen CUs 102 gespeichert werden.
  • In einigen Ausführungsformen kann der Bitstrom, der von einem JVET-Dekodierer empfangen wird, Syntax enthalten, die angibt, welcher Intra-Prädiktionsmodus zum Kodieren einer CU 102 mit Intra-Prädiktion angewendet wurde, so dass der Dekodierer den signalisierten Intra-Prädiktionsmodus bei 622 direkt anwenden kann, um eine Prädiktions-CU 626 zu generieren. In einigen Ausführungsformen kann eine solche Syntax weggelassen werden, um durch die Verringerung der Anzahl von Bits in dem Bitstrom Overhead zu sparen. Wenn in diesen Ausführungsformen der Dekodierer nicht mit einem Hinweis darauf versehen ist, welcher Intra-Prädiktionsmodus zum Kodieren einer CU 102 angewendet wurde, kann der Dekodierer bei 622 Template Matching für Intra-Prädiktion benutzen, um den Intra-Prädiktionsmodus abzuleiten, den er für die Generierung einer Prädiktions-CU 626 anwenden sollte. In einigen Ausführungsformen kann ein Kodierer ähnlich bei 404 Template Matching für Intra-Prädiktion benutzen, wenn eine Prädiktions-CU 402 generiert wird, die bei 432 in seiner Dekodierungsschleife mit einer rekonstruierten Rest-CU 430 kombiniert wird.
  • Wie vorliegend beschrieben, ist die Intra-Kodierung ein wichtiges Tool für die Videokomprimierung. Sie nutzt die räumlichen Nachbarn eines Pixels zum Erstellen eines Prädiktors, anhand dessen ein Prädiktionsrest zwischen dem Pixel und seinem Prädiktor bestimmt wird. Anschließend komprimiert der Videokodierer diesen Rest, und das Ergebnis ist der Kodierungs-Bitstrom. Der entwickelte Video-Kodierungsstandard JVET erlaubt siebenundsechzig (67) mögliche Prädiktions-Modi, unter anderem einen planaren Modus, einen DC-Modus und fünfundsechzig (65) Winkelrichtungsmodi, wie in 5 gezeigt. Jeder Intra-Prädiktionsmodus hat eine einmalige Prädiktions-Generierungsmethode, entweder basierend auf dem Nachbarn links oder auf dem Nachbarn oben. Jede Intra-Kodiereinheit (CU) wählt mindestens einen anzuwendenden Prädiktionsmodus, der als Overhead in dem Bitstrom signalisiert werden muss. Wenn beispielsweise eine einzige CU einen Luma-Kodierungsblock und zwei Chroma-Kodierungsblöcke enthält, können der Luma-Kodierungsblock und die Chroma-Kodierungsblöcke ihren eigenen Intra-Prädiktionsmodus aufweisen. Dadurch können bei Signalisierung in dem Bitstrom mehrere Intra-Prädiktionsmodi angegeben werden.
  • Vorliegend werden verschiedene Verfahren für die Implementierung eines planaren Prädiktionsmodus mit ungleichem Gewicht (UW-Planar) beschrieben. In Ausführungsformen nähert der Prädiktionsmodus einen Prädiktor und Prädiktionsreste an, wodurch prädizierte Pixel generiert werden, die näher an den tatsächlichen Pixeln liegen, wodurch sich eine bessere Kodierungseffizienz ergibt.
  • Der planare Modus ist oftmals der am häufigsten angewendete Intra-Kodierungsmodus in HEVC und JVET. Der planare Modus ist oftmals für Blöcke mit einer gleichmäßigen Abbildung geeignet, deren Pixelwerte sich mit einem kleinen planaren Gradienten allmählich ändern. 7A und 7B zeigen den planaren Prädiktor-Generierungsprozess in HEVC und JVET für eine Kodiereinheit (einen Block) 702 mit einer Höhe H = 8 und einer Breite W = 8, wobei die (0,0) Koordinaten der oberen linken Position (TL) 704 in der Kodiereinheit CU entsprechen, wobei die Position TL 718 ein oberes linkes benachbartes Eckpixel ist. TR 706 bezeichnet die Position rechts oben und BL 708 die Position links unten. Die gestrichelte Linie 710 zeigt eine Interpolation an und die gestrichelte Linie 712 eine Replikation. 7A zeigt die Berechnung des horizontalen Prädiktors und 7B die Berechnung eines vertikalen Prädiktors.
  • Der planare Modus in HEVC und JVET (HEVC Planar) erzeugt eine Annäherung ersten Grades der Prädiktion für eine aktuelle Kodiereinheit (CU) durch das Bilden einer Ebene basierend auf Intensitätswerten der benachbarten Pixel. Aufgrund einer Rasterabtastungs-Kodierreihenfolge sind die rekonstruierten benachbarten Pixel 714 der linken Spalte und die rekonstruierten benachbarten Pixel 716 der oberen Reihe für einen aktuellen Kodierblock 702 verfügbar, nicht aber benachbarten Pixel der rechten Spalte und die benachbarten Pixel der unteren Reihe. Der planare Prädiktor-Generierungsprozess setzt die Intensitätswerte aller Nachbarpixel in der rechten Spalte mit dem Intensitätswert des oberen rechten Nachbarpixels 706 gleich und setzt die Intensitätswerte aller Pixel der unteren Reihe mit dem Intensitätswert des Nachbarpixels 708 unten links gleich.
  • Sobald die benachbarten Pixel, die einen aktuellen Kodierblock umgeben, definiert sind, werden die horizontalen und die vertikalen Prädiktoren (Ph(x,y) bzw. Pυ(x,y)) für jedes Pixel in dem aktuellen Kodierblock 702 gemäß den nachstehenden Gleichungen (1) und (2) bestimmt. P h ( x , y ) = ( W 1 x ) R ( 1, y ) + ( x + 1 ) R ( W , 1 )
    Figure DE112017006657B4_0001
    P v ( x , y ) = ( H 1 y ) R ( x , 1 ) + ( y + 1 ) R ( 1, H )
    Figure DE112017006657B4_0002
  • Darin bezeichnet:
    • R (x, y) den Intensitätswert des rekonstruierten Nachbarpixels
    • an der (x, y) Koordinate,
    • W die Blockbreite und
    • H die Blockhöhe.
  • Wie in 7A gezeigt ist, wird ein horizontaler Prädiktor interpoliert aus der Referenzierung eines rekonstruierten Referenz-Sample Ly 722, einem Pixel in den benachbarten Pixeln 714 in der linken Spalte, das an derselben y-Koordinate wie das aktuelle Sample C 724 liegt, und der Referenzierung des Sample Ty 726, welches eine Kopie des vorher rekonstruierten Sample TR 718 ist, das an das obere rechte Pixel der Kodiereinheit angrenzt. Solchermaßen wird der horizontale Prädiktor durch eine lineare Interpolation zwischen einem Wert eines jeweiligen horizontalen Grenzpixels und einem Wert eines vertikalen Grenzpixels berechnet.
  • Wie in 7B gezeigt ist, wird ein vertikaler Prädiktor interpoliert aus dem rekonstruierten Sample Tx 728 aus den benachbarten Pixeln in der oberen Reihe, das an derselben x-Koordinate liegt wie das aktuelle Prädiktions-Pixel C, und durch Referenzieren von Sample Lx 730, welches eine Kopie des vorher rekonstruierten Sample BL 708, einem benachbarten linken Pixel, das an das untere linke Sample der Kodiereinheit angrenzt, ist. Solchermaßen wird der vertikale Prädiktor durch eine lineare Interpolation zwischen einem Wert eines jeweiligen vertikalen Grenzpixels und einem Wert eines vertikalen Grenzpixels berechnet.
  • Sobald der horizontale und der vertikale Prädiktor für ein Pixel der Kodiereinheit bestimmt wurden, kann der endgültige Prädiktor bestimmt werden. Für jedes Pixel in einem Kodierblock ist der endgültige planare Prädiktor P(x, y) der Intensitätswert, der durch eine Durchschnittsermittlung des horizontalen und des vertikalen Prädiktors gemäß Gleichung (3) berechnet werden kann, mit bestimmten Anpassungen in Ausführungsformen, in denen der aktuelle CU- oder Kodierblock nichtquadratisch ist. P ( x , y ) = ( H P h ( x , y ) + W P v ( x , y ) ) / ( 2 H W )
    Figure DE112017006657B4_0003
  • Der Kodierer kann auch einen Rest zwischen der Prädiktions-Kodiereinheit und der aktuellen Kodiereinheit in dem Bitstrom an den Dekodierer signalisieren.
  • Gewisse Einschränkungen bei dem aktuellen planaren Modus in JVET können Kodierungs-Ineffizienzen verursachen. Wie vorstehend ausgeführt, sind zum Beispiel alle benachbarten Pixel der rechten Spalte auf denselben Intensitätswert festgelegt, welcher der Wert des oberen rechten benachbarten Pixels ist. Ähnlich sind alle benachbarten Pixel der unteren Reihe auf den denselben Intensitätswert festgelegt, welcher der Wert des unteren linken benachbarten Pixels ist. Das Festlegen aller Pixel in der rechten Spalte auf denselben Wert und aller Pixel in der unteren Reihe auf denselben Wert steht im Konflikt mit der Übernahme der Ebenen-Prädiktion. Daher bewirken diese Einschränkungen, dass der planare Prädiktions-Block von der idealen flachen Ebene abweicht. 8 zeigt ein Beispiel einer planaren Prädiktionsebene mit der JVET-Methode, die von der flachen Ebene abweicht (TR bezeichnet die obere rechte Position und BL die untere linke Position).
  • Eine weitere Einschränkung des aktuellen JVET-Planarmodus rührt von der Berechnung des endgültigen Prädiktors gemäß Formel (3), in der gleiche Gewichte sowohl dem horizontalen als auch dem vertikalen Prädiktor zugewiesen sind. Eine Zuweisung von gleichen Gewichten ist in Anbetracht Einrichtung des aktuellen Generierungsprozesses gegebenenfalls suboptimal. Insbesondere sind die benachbarten Pixel in der oberen Reihe und in der linken Spalte die rekonstruierten Pixel und sind im Vergleich zu den entsprechenden Original- oder tatsächlichen Pixeln in der oberen Reihe und in der linken Spalte genauer als die abgeleiteten benachbarten Pixel in der unteren Reihe und in der rechten Spalte im Vergleich zu den Original- oder tatsächlichen Pixeln in der unteren Reihe und in der rechten Spalte. Die benachbarten Pixel in der unteren Reihe und in der rechten Spalte sind nicht-kausal, und ihre Intensitätswerte sind geschätzt. Daher variiert die Genauigkeit des horizontalen und/oder vertikalen Prädiktors abhängig von einer Pixelposition innerhalb einer CU basierend auf der Nähe zu einem zuverlässigeren benachbarten Pixel, das bei der Berechnung des Prädiktors verwendet wird.
  • Vorliegend werden Ausführungsformen für die Herleitung eines Intensitätswerts eines unteren rechten benachbarten Pixels P(W,H) für einen aktuellen Kodierblock beschrieben. In den Ausführungsformen kann eine Kodiereinheit der kleinste Kodierblock (die kleinsten Kodierblöcke) innerhalb einer CTU sein, die kodiert wird. In Ausführungsformen kann eine Kodiereinheit Luma- und Chroma-Kodierblöcke enthalten, die unabhängig voneinander kodiert werden. Die vorgeschlagenen Verfahren umfassen das Berechnen eines Intensitätswerts der unteren rechten benachbarten Pixel (Liftung) und dann die Berechnung der Intensitätswerte der benachbarten Pixel der unteren Reihe und der rechten Spalte mittels des hergeleiteten Intensitätswerts des unteren rechten benachbarten Pixels zusammen mit den Intensitätswerten von anderen benachbarten Pixeln in der Ecke, wie zum Beispiel das obere rechte und das untere linke benachbarte Pixel. Es sei erwähnt, dass sich ein Eckpixel an den Koordinaten x=0, y=0 in dem Kodierblock von benachbarten Pixeln in der Ecke (z.B. P(W,H)) außerhalb des Kodierblocks unterscheidet.
  • Ein Beispiel eines Liftungsprozesses ist ein gewichtetes Mittel des oberen rechten und unteren linken benachbarten Pixels, wie in Gleichung (4) definiert. P ( W , H ) = ( W R ( W , 1 ) + H R ( 1, H ) ) / ( H + W )
    Figure DE112017006657B4_0004
  • Ein weiteres Beispiel eines Liftungsprozesses ist die Beibehaltung einer flachen Ebene basierend auf dem Intensitätswert des oberen linken, oberen rechten und unteren linken benachbarten Pixels, wie in Gleichung (5) definiert. P ( W , H ) = R ( W , 1 ) + R ( 1, H ) R ( 1, 1 )
    Figure DE112017006657B4_0005
  • 9 zeigt einen planaren Prädiktionsblock, der basierend auf Gleichung (5) erzeugt wird, wobei die Eckintensitätswerte identisch sind mit einem Beispiel in 8. Wie gezeigt ist, ergibt sich eine flache planare Prädiktionsebene aus der Anwendung von Gleichung (5) mit denselben drei Eckpunkten wie in 8 (TR bezeichnet die obere rechte Position, TL bezeichnet die obere linke Position, und BL bezeichnet die untere linke Position).
  • Mit dem abgeleiteten Intensitätswert des unteren rechten benachbarten Pixels von P(W, H) können die Intensitätswerte der benachbarten Pixel der unteren Reihe, Pb(x,H), und der benachbarten Pixel der rechten Spalte, Pr(W, y), entsprechend berechnet werden. Ein Beispiel einer solchen Berechnung folgt einer linearen Interpolation gemäß den Gleichungen (6) und (7). P b ( x , H ) = ( W 1 x ) R ( 1, H ) + ( x + 1 ) P ( W , H ) W
    Figure DE112017006657B4_0006
    P r ( W , y ) = ( H 1 y ) R ( W , 1 ) + ( y + 1 ) P ( W , H ) H
    Figure DE112017006657B4_0007
  • Sobald die eine aktuelle CU umgebenden benachbarten Pixel definiert sind, werden der horizontale und der vertikale Prädiktor (Ph(x,y) bzw. Pυ(x,y)) für jedes Pixel in der CU gemäß den nachstehenden Gleichungen (8) und (9) bestimmt. P h ( x , y ) = ( W 1 x ) R ( 1, y ) + ( x + 1 ) P r ( W , y )
    Figure DE112017006657B4_0008
    P v ( x , y ) = ( H 1 y ) R ( x , 1 ) + ( y + 1 ) P b ( x , H )
    Figure DE112017006657B4_0009
  • Es ist zu beachten, dass Ph(x, y) und Pυ(x,y) in den Gleichungen (8) und (9) als skalierte Version von horizontalen und vertikalen Prädiktoren dargestellt sind. Diese Faktoren werden in dem Berechnungsschritt für die Berechnung des endgültigen Prädiktors kompensiert.
  • Es kann auch vorteilhaft sein, eine gefilterte Version der Intensität benachbarter Pixel anstelle der eigentlichen Intensität benachbarter Pixel für den Liftungsteil der Einstellung der unteren rechten Position zu verwenden. Dies gilt insbesondere dann, wenn der Kodierungsinhalt verrauscht ist. Ein Beispiel einer solchen Filterung ist in den Gleichungen (10) und (11) beschrieben. R ' ( 1, H ) = ( R ( 1, H 3 ) + 3 R ( 1, H 2 ) + 5 R ( 1, H 1 ) + 7 R ( 1, H ) ) 16
    Figure DE112017006657B4_0010
    R ' ( W , 1 ) = ( R ( W 3, 1 ) + 3 R ( W 2, 1 ) + 5 R ( W 1, 1 ) + 7 R ( W , 1 ) ) 16
    Figure DE112017006657B4_0011
  • Ein weiteres Beispiel einer Filterung ist in den Gleichungen (10a) und (11a) beschrieben. R ' ( 1, H ) = ( R ( 1, H 2 ) + 2 R ( 1, H 1 ) + 5 R ( 1, H 1 ) ) 8
    Figure DE112017006657B4_0012
    R ' ( W , 1 ) = ( R ( W 2, 1 ) + 2 R ( W 1, 1 ) + 5 R ( W , 1 ) ) 8
    Figure DE112017006657B4_0013
  • Die Filterung kann selektiv angewendet werden, basierend darauf, ob benachbarte Pixel bereits mittels anderer, vorausgehender Verfahren (wie beispielsweise eine modusabhängige Intra-Glättung in HEVC) gefiltert wurden. In Ausführungsformen wird die Filterung durchgeführt, wenn benachbarte Pixel nicht durch eine vorherige Aufgabe gefiltert wurden. Anderenfalls wird die Filterung nicht angewendet.
  • Alternativ kann es vorteilhaft sein, die obere rechte und untere linke Eckposition so festzulegen, dass diese jeweils R(W - 1, -1) und R(-1, H - 1) entspricht. In dieser Situation kann die Interpolation für Zwischenprädiktoren als ein Beispiel durch die Gleichungen (12) - (16) beschrieben werden. P ( W 1, H 1 ) = ( W R ( W 1, 1 ) + H R ( 1, H 1 ) ) / ( H + W )
    Figure DE112017006657B4_0014
    P b ( x , H 1 ) = ( W 1 x ) R ( 1, H 1 ) + ( x + 1 ) P ( W 1, H 1 ) w
    Figure DE112017006657B4_0015
    R r ( W 1, y ) = ( H 1 y ) R ( W 1, 1 ) + ( y + 1 ) P ( W 1, H 1 ) H
    Figure DE112017006657B4_0016
    P h ( x , y ) = ( W 1 x ) R ( 1, y ) + ( x + 1 ) P r ( W 1, y )
    Figure DE112017006657B4_0017
    P v ( x , y ) = ( H 1 y ) R ( x , 1 ) + ( y + 1 ) P b ( x , H 1 )
    Figure DE112017006657B4_0018
  • Es wird ferner vorgeschlagen, für die endgültige planare Prädiktorberechnung ungleiche Gewichte zu benutzen. In Ausführungsformen, in denen ein ungleiches Gewicht benutzt wird, kann sich durch die Genauigkeit der eingegebenen Intensität beim endgültigen Interpolationsprozess eine Verbesserung ergeben. In Ausführungsformen können zum Beispiel höhere Gewichte auf die Positionen angewendet werden, die näher zu zuverlässigeren Nachbarpositionen liegen.
  • In JVET folgt die Verarbeitungsreihenfolge einer Rasterabtastung auf CTU-Ebene und einer Z-Abtastung für eine CU innerhalb einer CTU. Daher sind die benachbarten Pixel der oberen Reihe und der linken Spalte die tatsächlich rekonstruierten Pixel und sind daher zuverlässiger als die benachbarten Pixel der unteren Reihe und der rechten Spalte (die geschätzte Pixel sind). Ein Beispiel eines ungleichen Gewichts, das bei der Berechnung des endgültigen Prädiktors angewendet wird, ist in Gleichung (17) beschrieben. P ( x , y ) = ( ( H P h ( x , y ) ( y + 1 ) + W P v ( x + 1 ) ) ) / ( ( H W ( x + y + 2 ) ) )
    Figure DE112017006657B4_0019
  • Ein Beispiel einer in Gleichung (17) dargestellten Zuweisung eines ungleichen Gewichts kann zu einer generischen Gleichung verallgemeinert werden, wie in Gleichung (18) dargestellt. P ( x , y ) = ( A ( X , y ) P h ( x , y ) + B ( x , y ) + c ( x , y ) ) / ( D ( x , y ) )
    Figure DE112017006657B4_0020
  • In der Gleichung
    sind A(x, y) und B(x, y) jeweils die positionsabhängigen Gewichtungsfaktoren für horizontale und vertikale Prädiktoren, c(x, y) ist ein positionsabhängiger Rundungsfaktor und D(x, y) ist ein positionsabhängiger Skalierfaktor.
  • Im Gegensatz zu den Gewichten, die den horizontalen und vertikalen Prädiktoren zugewiesen und in dem Berechnungsschritt für die Berechnung des endgültigen Prädiktors gleich sind, werden horizontalen und vertikalen Prädiktoren also ungleiche Gewichte zugewiesen. In Ausführungsformen erfolgt die Zuweisung der den horizontalen und vertikalen Prädiktoren zugewiesenen ungleichen Gewichte für jedes Prädiktorpixel in der Kodiereinheit. In Ausführungsformen werden die ungleichen Gewichte entsprechend einem Abstandsverhältnis zu einem zuverlässigen benachbarten Pixel jeweils für den horizontalen Prädiktor und den vertikalen Prädiktor zugewiesen.
  • Wie vorliegend beschrieben, erlaubt ein adaptiver Ansatz für eine planare Prädiktion mit ungleichem Gewicht verschiedene Methoden für die Anwendung der ungleichen Gewichte.
  • In Ausführungsformen kann die planare Prädiktion planare Prädiktionsschemata umfassen, die von der planaren Prädiktion gemäß dem HEVC-Standard übernommen wurden, mit gleichen Gewichten wie in Gleichung (3), oder das planare Prädiktionsschema kann eine planare Prädiktion mit ungleichen Gewichten anwenden, wie in Gleichung (7). In Ausführungsformen wird Gleichung 3 (gleiche Gewichte) bei kleinen Kodierblockgrößen und die planare Prädiktion mit ungleichen Gewichten bei größeren Kodierblockgrößen angewendet. Der CU-Größen-Schwellenwert, der definiert wird, um zu bestimmen, ob ein gleiches oder ein ungleiches Gewicht anzuwenden ist, kann vordefiniert sein.
  • In Ausführungsformen kann eine unterschiedliche Liftung angewendet werden, um den Wert des unteren rechten benachbarten Pixels zu bestimmen. In Ausführungsformen kann die Liftung eine dimensionsbasierte Gewichtung wie in Gleichung (4) gezeigt als Alternative zur Anwendung eines gleichen Gewichts umfassen. In Ausführungsformen benutzt eine adaptive planare Prädiktion mit ungleichem Gewicht verschiedene Liftungsprozesse, zum Beispiel eine gleiche Gewichtung für kleine CU-Größen und eine dimensionsbasierte Gewichtung für größere CU-Größen. Der CU-Größen-Schwellenwert, der definiert wird, um zu bestimmen, ob ein gleiches oder ungleiches Gewicht und/oder ein gleiche Gewichtung oder eine dimensionsbasierte Gewichtung anzuwenden sind, kann vordefiniert sein.
  • In Ausführungsformen wird ein adaptives planares Prädiktionsschema mit ungleichem Gewicht angewendet, um das untere rechte Pixel in einem Liftungsprozess zu berechnen (siehe Gleichung 4), jedoch mit anderen Nachbarpositionen, nach Blockgröße und/oder Blockkodierungsart, gemäß: P ( W , H ) = ( W R ( W n , 1 ) + H R ( 1, H m ) ) / ( H + W )
    Figure DE112017006657B4_0021
    wobei die Variablen n und m basierend auf der Blockdimension (Breite, Höhe) oder basierend auf Blockkodierungsart (Luma, Chroma) bestimmt werden.
  • Bei vorstehendem Beispiel kann n gleich 0 sein, wenn die Blockbreite einen vorgegebenen Schwellwert unterschreitet, anderenfalls kann n auf 1 gesetzt werden. m kann 0 sein, wenn die Blockhöhe einen vorgegebenen Schwellenwert unterschreitet, anderenfalls kann m auf 1 gesetzt werden. In einer weiteren Ausführungsform können n, m auf 0 gesetzt werden, wenn der Block vom Luma-Typ ist, und auf 1, wenn der Block vom Chroma-Typ ist.
  • Die Art der angewendeten planaren Prädiktion kann durch eine Signalisierung im Bitstrom angezeigt werden. Zum Beispiel kann der adaptive Ansatz für jeden der drei Schritte der vorstehend beschriebenen planaren Prädiktion mit ungleichem Gewicht entweder durch explizite oder implizite Mittel oder durch eine Kombination von expliziten und impliziten Mitteln angezeigt werden. Für die explizite Signalisierung kann beispielweise ein Flag benutzt werden, während der Slice-Typ, die CU-Größe oder die Anzahl von quantifizierten Koeffizienten, die nicht Null sind, als implizite Indikatoren benutzt werden können. In Ausführungsformen kann die Funktionalität der planaren Prädiktion in Abhängigkeit von der CU-Größe in einem Sequenzparameterset (SPS), einem Bildparameterset (PPS), auf Slice-Kopfdatenebene oder einer Kombination dieser Ebenen aktiviert und deaktiviert werden.
  • Es ist anzumerken, dass die Zuweisung eines ungleichen Gewichts ebenso in der Phase der Berechnung des horizontalen Prädiktors und des vertikalen Prädiktors angewendet werden kann. Die Komponenten der vorliegend beschriebenen Verfahren für die Einstellung der unteren rechten Position und der Zuweisung eines ungleichen Gewichts können zusammen oder einzeln benutzt werden, abhängig von Überlegungen betreffend das Codec-Bauweise.
  • Für eine optimale Kodierungsleistung können die Gewichtungsfaktoren und die Liftung entsprechend dem Bildtyp (I, P, B etc.), der zeitlichen Schicht, der Farbkomponente (Y, Cb, Cr etc.) modifiziert werden. Ebenso ist es möglich, sowohl eine gewichtete als auch eine planare Prädiktion gemäß HEVC für bestimmte Situationen innerhalb einer Sequenz zu verwenden; z.B. eine gewichte planare Prädiktion für ein I-Slice und eine planare Prädiktion gemäß HEVC für P- und B-Slices.
  • Viele Gleichungen, z.B. (4), (6), (7) und (17) für die Einstellung der unteren rechten Position und für die Zuweisung eines ungleichen Gewichts enthalten jeweils Divisionsoperationen, die bezüglich ihrer Komplexität aufwändig sein können. Diese Divisionsoperationen können kaum in Skalieroperationen konvertiert werden, um sie implementierungsfreundlich zu machen, wie in den Gleichungen (19), (20), (21) und (22) beschrieben. P ( W , H ) = ( ( W R ( W , 1 ) + R ( 1, H ) ) S [ W + H ] ) S h i f t D e n o m
    Figure DE112017006657B4_0022
    P b ( x , H ) = ( ( ( W 1 x ) R ( 1, H ) ) + ( x + 1 ) P ( W , H ) S [ W ] ) S h i f t D e n o m
    Figure DE112017006657B4_0023
    P r ( W , y ) = ( ( ( H 1 y ) R ( W , 1 ) ) + ( y + 1 ) P ( W , H ) S [ H ] ) S h i f t D e n o m
    Figure DE112017006657B4_0024
    P ( x , y ) = ( ( H P h ( x , y ) ( y + 1 ) + W P v ( x , y ) ( x + 1 ) ) S [ x + y + 2 ] ) ( S h i f t D e n o m + log 2 W + log 2 H )
    Figure DE112017006657B4_0025
    wobei:
    • S[n] ein Gewicht eines Parameters ist und
    • » eine Bit-Verschiebung nach rechts bezeichnet
    • ShiftDenom ein Faktor für die nach unten verschobene Operation ist.
  • Insbesondere kann S[n] eine Annäherung eines Faktors 1 n
    Figure DE112017006657B4_0026
    sein und n kann wie nachstehend in Gleichung (4) gezeigt beschrieben werden. S [ n ] = R o u n d ( 1 S h i f t D e n o m n )
    Figure DE112017006657B4_0027
  • 10 ist ein Beispiel von S[n], wobei die Summe von Breite und Höhe 256 ist und ShiftDenom = 10 ist.
  • 11 zeigt ein weiteres Beispiel von S[n], wobei die Summe der Breite und Höhe 512 ist und ShiftDenom = 10 ist.
  • In den beiden Beispielen oben ist eine Speichergröße von 2570 Bit (257 Einträge mit jeweils 10 Bit) und von 5130 Bit (513 Einträge mit jeweils 10 Bit) für die Speicherung der Gewichtstabellen notwendig. Diese Speichergröße kann exzessiv sein, und es kann unter Umständen vorteilhaft sein, diesen Speicherbedarf zu verringern. Zwei Beispiele, die nachstehend angeführt sind, stellen zwei mögliche Weg dar, um dies zu bewerkstelligen.
  • 12 zeigt ein weiteres Beispiel von S[n], wobei die Summe von Breite und Höhe 128 ist und ShiftDenom = 10 ist.
  • 13 zeigt ein weiteres Beispiel von S[n], wobei die Summe von Breite und Höhe 128 ist und ShiftDenom = 9 ist.
  • In dem dritten und in dem vierten Beispiel müssen von 129 Einträgen nur 126 gespeichert werden, da die ersten beiden Einträge (1/0 und 1/1) in dem vorgeschlagenen Verfahren nicht benötigt werden. Der dritte Eintrag der ½ repräsentiert, hat jeweils einen Wert von 512 und 256 in dem dritten und in dem vierten Beispiel und wird während der Gewichtsberechnung separat behandelt. Die Berechnungen des Gewichtsmittels, die in den Gleichungen 20 und 21 dargestellt sind, werden wie in den nachstehenden Gleichungen 24 und 25 gezeigt modifiziert. P b ( x , H ) = ( ( ( W 1 x ) R ( 1, H ) + ( x + 1 ) P ( W , H ) ) S [ W 3 ] ) S h i f t D e n o m
    Figure DE112017006657B4_0028
    P r ( W , y ) = ( ( ( H 1 y ) R ( W , 1 ) + ( y + 1 ) P ( W , H ) ) S [ H 3 ] ) S h i f t D e n o m
    Figure DE112017006657B4_0029
  • Eine einfache Shift-Konvertierung, die in Gleichung (22) benutzt wird, liefert keine genauen Ausgaben, was zu einer schlechten Kodierungseffizienz führt. Die Ineffizienz ist der Konvertierung geschuldet, die zulässt, dass mit dem Abstand ein Fehler linear akkumuliert. Eine Möglichkeit zum Verringern dieses Fehlers ist die Nutzung der Tatsache, dass das Gewicht für den horizontalen und den vertikalen Prädiktor in (17) komplementär ist und das reale Gewicht daher basierend auf dem des horizontalen oder vertikalen Prädiktors berechnet werden kann, je nachdem, was genauer ist.
  • Ein Beispiel dieses Ansatzes wird nunmehr beschrieben. Zunächst werden die Parameter horWeight und verWeight eingeführt, und (22) kann nun als (26) beschrieben werden. P ( x , y ) = ( ( H P h ( x , y ) h o r W e i g h t + W P v ( x , y ) v e r W e i g h t ) )                             ( S h i f t D e n o m + l o g 2 W + l o g 2 H )
    Figure DE112017006657B4_0030
    h o r W e i g h t = { ( 1 S h i f t D e n o m ) v e r W e i g h t w h e n   x < y ( x + 1 ) S [ x + y + 2 ] o t h e r w i s e
    Figure DE112017006657B4_0031
    v e r W e i g h t = { ( x + 1 ) S [ x + y + 2 ] w h e n   x < y ( 1 S h i f t D e n o m ) h o r W e i g h t o t h e r w i s e
    Figure DE112017006657B4_0032
  • Ein ähnliches Beispiel wird auch für die Handhabung von Gewichtstabellen in den Beispielen 3 und 4 gegeben. P ( x , y ) = ( ( H P h ( x , y ) h o r W e i g h t + W P v ( x , y ) v e r W e i g h t ) )                 ( S h i f t D e n o m + l o g 2 W + l o g 2 H )
    Figure DE112017006657B4_0033
    h o r W e i g h t = { ( 1 S h i f t D e n o m ) v e r W e i g h t w h e n   x < y ( x + 1 ) S [ x + y 1 ] w h e n   x y
    Figure DE112017006657B4_0034
    v e r W e i g h t = { ( x + 1 ) S [ x + y 1 ] w h e n   x < y ( 1 S h i f t D e n o m ) v e r W e i g h t o t h e r w i s e
    Figure DE112017006657B4_0035
    h o r W e i g h t = v e r W e i g h t = ( 1 ( S h i f t D e n o m 1 ) w h e n   x = y = 0
    Figure DE112017006657B4_0036
  • Gemäß (6) und (7) oben werden die aktuellen benachbarten Zeilen eines aktuellen Blocks in der unteren Reihe und in der rechten Spalte gebildet. Die Pixelwerte dieser beiden Zeilen werden weiter zum Berechnen der Prädiktion des aktuellen Blocks benutzt. Idealerweise sind die Pixel in diesen beiden Zeilen zuverlässiger, wenn sie nahe an R(W,-1) und R(-1,H) liegen, während diejenigen Pixel, die nahe an dem unteren rechten benachbarten Pixel of P(W,H) liegen, weniger zuverlässig sind.
  • Die Ausführung der für die praktische Umsetzung der Ausführungsformen notwendigen Befehlsfolgen kann durch ein Computersystem 1400 wie in 14 dargestellt erfolgen. In einer Ausführungsform wird die Ausführung der Befehlsfolgen von einem einzigen Computersystem 1400 bewerkstelligt. In anderen Ausführungsformen können zwei oder mehr Computersysteme 1400, die durch eine Kommunikationsverbindung 1415 verbunden sind, die Befehlsfolgen miteinander koordiniert ausführen. Während in der vorliegenden Beschreibung nur ein Computersystem 1400 angegeben ist, kann selbstverständlich eine beliebige Anzahl von Computersystemen 1400 verwendet werden, um Ausführungsformen praktisch umzusetzen.
  • Ein Computersystem 1400 gemäß einer Ausführungsform wird nachstehend mit Bezug auf 14 beschrieben, in der die Funktionskomponenten eines Computersystems 1400 als Blockdiagramm dargestellt sind. Der in der vorliegenden Beschreibung verwendete Begriff „Computersystem“ 1400 wird in einer breit gefassten Form benutzt, um ein beliebiges Computergerät zu beschreiben, auf dem ein oder mehrere Programme unabhängig voneinander laufen können und gespeichert werden können.
  • Jedes Computersystem 1400 kann eine Kommunikationsschnittstelle 1414 umfassen, die mit dem Bus 1406 verbunden ist. Die Kommunikationsschnittstelle sorgt für eine Zweiweigekommunikation zwischen Computersystemen 1400. Die Kommunikationsschnittstelle 1414 eines jeweiligen Computersystems 1400 überträgt und empfängt elektrische, elektromagnetische oder optische Signale, die Datenströme enthalten, die die verschiedenen Arten von Signalinformationen repräsentieren, z.B. Befehle oder Anweisungen, Mitteilungen und Daten. Eine Kommunikationsverbindung 1415 verbindet ein Computersystem 1400 mit einem weiteren Computersystem 1400. Die Kommunikationsverbindung 1415 kann zum Beispiel ein LAN sein, wobei die Kommunikationsschnittstelle 1414 in diesem Fall eine LAN-Karte ist, oder die Kommunikationsverbindung 1415 kann ein PSTN sein, wobei die Kommunikationsschnittstelle 1414 in diesem Fall eine Integrated Services Digital Network (ISDN)-Karte oder ein Modem ist, oder die Kommunikationsverbindung 1415 kann das Internet sein, wobei die Kommunikationsverbindung 1414 in diesem Fall ein Einwahl-, Kabel- oder Drahtlosmodem ist.
  • Ein Computersystem 1400 kann Mitteilungen, Daten und Befehle, u.a. einen Programm-, d.h. Anwendungscode, über seine jeweilige Kommunikationsverbindung 1415 und seine Kommunikationsschnittstelle 1414 senden und empfangen. Der empfangene Programmcode kann durch den(die) jeweiligen Prozessor(en) 1407 ausgeführt werden, wenn er empfangen wird, und/oder in der Speichervorrichtung 1410 oder in einem zugeordneten nichtflüchtigen Medium zur späteren Ausführung gespeichert werden.
  • In einer Ausführungsform arbeitet das Computersystem 1400 in Verbindung mit einem Datenspeichersystem 1431, z.B. ein Datenspeichersystem 1431, das eine Datenbank 1432 enthält, auf die das Computersystem 1400 ohne weiteres zugreifen kann. Das Computersystem 1400 kommuniziert über eine Datenschnittstelle 1433 mit dem Datenspeichersystem 1431. Eine Datenschnittstelle 1433, die mit dem Bus 1406 verbunden ist, überträgt und empfängt elektrische, elektromagnetische oder optische Signale, die Datenströme enthalten, die verschiedene Arten von Signalinformationen repräsentieren, z.B. Befehle oder Anweisungen, Mitteilungen und Daten. In Ausführungsformen können die Funktionen der Datenschnittstelle 1433 von der Kommunikationsschnittstelle 1414 ausgeführt werden.
  • Das Computersystem 1400 enthält einen Bus 1406 oder andere Kommunikationsmechanismen zum kollektiven Kommunizieren von Mitteilungen und Daten und von Informationen, wobei ein oder mehrere Prozessoren 1407 für die Informationsverarbeitung mit dem Bus 1406 verbunden sind. Das Computersystem 1400 enthält auch einen Hauptspeicher 1408 wie beispielsweise einen Random Access Memory (RAM) oder eine andere dynamische Speichereinrichtung, die zum Speichern von dynamischen Daten und von Befehlen, die von dem(den) Prozessor(en) 1407 auszuführen sind, mit dem Bus 1406 verbunden ist. Der Hauptspeicher 1408 kann auch für die Speicherung von temporären Daten, d.h. Variablen, oder anderen Zwischeninformationen während der Ausführung der Befehle durch den(die) Prozessor(en) 1407 verwendet werden.
  • Das Computersystem 1400 kann ferner einen Read Only Memory (ROM) 1409 oder eine andere strategische Speichereinrichtung umfassen, die zum Speichern von statistischen Daten und Befehlen oder Anweisungen für den(die) Prozessor(en) mit dem Bus 1406 verbunden ist. Eine Speichereinrichtung 1410, zum Beispiel eine Magnetplatte oder eine Bildplatte, kann ebenfalls vorgesehen sein und mit dem Bus 1406 verbunden sein, um Daten und Befehle oder Anweisungen für den(die) Prozessor(en) 1407 zu speichern.
  • Ein Computersystem 1400 kann über den Bus 1406 mit einer Anzeigevorrichtung 1411 verbunden sein, unter anderem zum Beispiel mit einer Kathodenstrahlröhre (CRT) oder einem Flüssigkristallanzeigemonitor (LCD-Monitor), ohne Beschränkung hierauf, um Informationen für einen Benutzer anzuzeigen. Eine Eingabevorrichtung 1412, z.B. alphanumerische oder andere Tasten, ist mit dem Bus 1406 verbunden, um gewählte Informationen und Befehle an den(die) Prozessor(en) 1407 zu übermitteln.
  • Gemäß einer Ausführungsform führt ein individuelles Computersystem 1400 durch seinen(seine) jeweiligen Prozessor(en) 1407, die eine oder mehrere Folgen eines oder mehrerer in dem Hauptspeicher 1408 enthaltener Befehle ausführen, spezifische Operationen durch. Solche Befehle können von einem anderen computernutzbaren Medium, z.B. aus dem ROM 1409 oder der Speichereinrichtung 1410, in den Hauptspeicher 1408 gelesen werden. Die Ausführung der in dem Hauptspeicher 1408 enthaltenen Befehlsfolgen veranlasst den(die) Prozessor(en) 1407 zur Durchführung der hier beschriebenen Prozesse. In alternativen Ausführungsformen können verdrahtete Schaltungen anstelle von oder in Kombination mit Softwarebefehlen verwendet werden. Solchermaßen sind die Ausführungsformen nicht auf eine bestimmte Kombination von Schaltung und/oder Software beschränkt.
  • Der in vorliegender Beschreibung verwendete Begriff „computernutzbares Medium“ bezieht sich auf jedes Medium, das Informationen bereitstellt oder das von dem(den) Prozessor(en) 1407 genutzt werden kann. Ein solches Medium kann viele Formen annehmen, unter anderem die Form eines nichtflüchtigen, flüchtigen und Übertragungsmediums, ohne Beschränkung hierauf. Nichtflüchtige Medien, d.h. Medien, die bei fehlender Stromversorgung die Informationen behalten, sind u.a. das ROM 1409, ein CD ROM, ein Magnetband und Magnetplatten, ohne Beschränkung hierauf. Flüchtige Medien, d.h. Medien, die Information bei fehlender Stromversorgung nicht behalten können, sind u.a. der Hauptspeicher 1408. Übertragungsmedien umfassen Koaxialkabel, Kupferdraht und Glasfaser, einschließlich der Leitungen, die den Bus 1406 enthalten. Übertragungsmedien können auch in Form von Trägerwellen vorgesehen sein, d.h. in Form von elektromagnetischen Wellen, die frequenzmoduliert, amplitudenmoduliert oder phasenmoduliert werden können, um Informationssignale zu senden. Ferner können Übertragungsmedien in Form von akustischen oder Lichtwellen wie jene, die bei der Funkwellen- und Infrarotdatenkommunikation erzeugt werden, vorgesehen sein. Vorstehend wurden Ausführungsformen mit Bezug auf deren spezielle Elemente beschrieben. Es versteht sich jedoch, dass innerhalb des breiteren Rahmens der Ausführungsformen verschiedene Modifikationen und Änderungen möglich sind. Wie der Leser erkennen wird, ist die bestimmte Reihenfolge und Kombination von Prozessen in den beschriebenen Flussdiagrammen lediglich illustrativ, und es können andere oder zusätzliche Prozessaktionen oder eine andere Kombination oder Reihenfolge von Prozessaktionen verwendet werden, um die Ausführungsformen umzusetzen. Die Beschreibung und die Zeichnungen dienen daher lediglich der Darstellung und Erläuterung und stellen keine Einschränkung der Erfindung dar.
  • Es sollte auch beachtet werden, dass vorliegende Erfindung in einer Vielfalt von Computersystemen implementierbar ist. Die hier beschriebenen verschiedenen Verfahren können in Hardware oder Software oder in einer Kombination von Hardware und Software implementiert sein. Vorzugsweise sind die Verfahren in Computerprogrammen implementiert, die auf programmierbaren Computern laufen, die jeweils einen Prozessor, ein von dem Prozessor lesbares Speichermedium (einschließlich eines flüchtigen und nichtflüchtigen Speichers und/oder solcher Speicherelemente), mindestens eine Eingabevorrichtung und mindestens eine Ausgabevorrichtung umfassen. Der Programmcode wird auf Daten angewendet, die mittels der Eingabevorrichtung eingegeben werden, um die vorstehend beschriebenen Funktionen auszuführen und Ausgabeinformationen zu erzeugen. Die Ausgabeinformationen werden bei einem oder mehreren Ausgabegeräten verwendet. Jedes Programm ist vorzugsweise in einer höheren verfahrens- oder objektorientierten Programmiersprache implementiert, um mit einem Computersystem zu kommunizieren. Die Programme sind jedoch auch in einer Assembler- oder Maschinensprache implementierbar, sofern dies gewünscht wird. In jedem Fall kann die Sprache eine kompilierte oder interpretierte Sprache sein. Jedes derartige Computerprogramm ist vorzugsweise auf einem Speichermedium oder in einer Speichervorrichtung (z.B. ROM oder Magnetplatte) gespeichert, die von einem Universalcomputer oder einem Spezialcomputer, der programmierbar ist, für die Konfiguration und den Betrieb des Computers gelesen werden kann, wenn das Speichermedium oder die Speichervorrichtung ausgelesen werden, um die vorstehend beschrieben Verfahren durchzuführen. Das System kann auch als eines betrachtet werden, das als computerlesbares Speichermedium ausgeführt ist, mit einem Computerprogramm konfiguriert ist, wobei das Speichermedium derart konfiguriert ist, dass dieses den Betrieb eines Computers in einer bestimmten und vordefinierten Weise bewirkt. Ferner können die Speicherelemente der beispielhaften Computing-Anwendungen relationale oder sequenzielle (flache) Computerdatenbanken sein, die Daten in verschiedenen Kombinationen und Konfigurationen speichern können.
  • 15 ist ein Flussdiagramm, das ein Verfahren zur Durchführung der beschriebenen Techniken darstellt. Es versteht sich jedoch, dass die vorliegend mit Bezug auf die verbleibenden Zeichnungsfiguren beschriebenen Techniken ähnlich Verfahren aufgreifen, die die beschriebenen Techniken anwenden. Wie in 15 dargestellt ist, umfasst das Verfahren bei 1502 das Empfangen eines Videobitstroms, der kodierte Videodaten enthält. Aus den kodierten Daten können bei 1504 ein horizontaler Prädiktor und ein vertikaler Prädiktor für ein Pixel in dem aktuellen Kodierblock interpoliert werden. Bei 1506 kann eine Kodierblockgröße identifiziert und bei 1508 mit einem Schwellenwert verglichen werden, um zu bestimmen, ob zur Berechnung eines endgültigen planaren Prädiktionswerts P(x,y) ein gleiches Gewicht oder ungleiche Gewichte auf den jeweiligen horizontalen und vertikalen Prädiktor anzuwenden sind.
  • Wenn bei 1510 die Kodierblockgröße größer ist als der Schwellenwert der Kodierblockgröße, erfolgt die Berechnung des endgültigen planaren Prädiktionswerts P(x,y) mit ungleichen Gewichten, die auf den jeweiligen horizontalen und vertikalen Prädiktor angewendet werden, gemäß P(x, y) = (A(x, y) * Ph (x, y)+ B(x, y) * Pυ(x, y) + c(x, y))/(D(x, y)), wobei A(x, y) und B(x, y) jeweils positionsabhängige Gewichtungsfaktoren für die horizontalen und vertikalen Prädiktoren sind, c(x, y) ein positionsabhängiger Rundungsfaktor und D(x, y) ein positionsabhängiger Skalierfaktor ist. Wenn bei 1512 die Kodierblockgröße kleiner ist als der Schwellenwert der Kodierblockgröße, erfolgt die Berechnung des endgültigen planaren Prädiktionswerts P(x,y) mit gleichen Gewichten, die auf den jeweiligen horizontalen und vertikalen Prädiktor angewendet werden, gemäß P(x, y) = (H * Ph(x,y) + W *Pυ(x, y))/(2 * H * W), wobei W die Blockbreite und H die Blockhöhe ist.
  • 16 ist eine übergeordnete Ansicht eines Quellgeräts 12 und eines Zielgeräts 10 mit Merkmalen des hier beschriebenen Systems und der hier beschriebenen Vorrichtung. Wie 16 zeigt, enthält ein beispielhaftes Videokodiersystem 10 ein Quellgerät 12 und ein Zielgerät 14, wobei in diesem Beispiel das Quellgerät 12 kodierte Videodaten generiert. Dementsprechend kann das Quellgerät 12 als Videokodiergerät bezeichnet werden. Das Zielgerät 14 kann die von dem Quellgerät 12 generierten kodierten Videodaten dekodieren. Dementsprechend kann das Zielgerät 14 als Video-Dekodiergerät 12 bezeichnet werden. Das Quellgerät 12 und das Zielgerät 14 können Beispiel von Videokodiervorrichtungen sein.
  • Das Zielgerät 14 kann über einen Kanal 16 kodierte Videodaten von dem Quellgerät 12 empfangen. Der Kanal 16 kann eine Art Medium oder Vorrichtung sein, das bzw. die die kodierten Videodaten von dem Quellgerät 12 zu dem Zielgerät 14 bewegen kann. In einem Beispiel kann der Kanal 16 ein Kommunikationsmedium umfassen, das ermöglicht, dass das Quellgerät 12 kodierte Videodaten in Echtzeit zu dem Zielgerät 14 überträgt.
  • In diesem Beispiel kann das Quellgerät 12 die kodierten Videodaten gemäß einem Kommunikationsstandard wie ein drahtloses Kommunikationsprotokoll modulieren und kann die modulierten Videodaten zu dem Zielgerät 14 übertragen. Das Kommunikationsmedium kann ein drahtgebundenes oder drahtloses Medium umfassen, zum Beispiel ein Funkfrequenzspektrum (RF-Spektrum) oder eine oder mehrere physische Übertragungsleitungen. Das Kommunikationsmedium kann Teil eines paketbasierten Netzwerks sein, zum Beispiel eines Local Area Network, eines Wide Area Network oder eines Global Network wie das Internet. Das Kommunikationsmedium kann Router, Schalter, Basisstationen oder anderes Equipment umfassen, das die Kommunikation von dem Quellgerät 12 zu dem Zielgerät 14 ermöglicht. In einem anderen Beispiel kann der Kanal 16 einem Speichermedium entsprechen das die von dem Quellgerät 12 erzeugten Videodaten speichert.
  • In dem Beispiel von 16, hat das Quellgerät 12 eine Videoquelle 18, einen Videokodierer 20 und eine Ausgabeschnittstelle 22. In einigen Fällen kann die Ausgabeschnittstelle 38 einen Modulator/Demodulator und/oder Sender umfassen. In dem Quellgerät 12 kann die Videoquelle 18 eine Quelle wie ein Videoaufnahmegerät, z.B. eine Videokamera, ein Videoarchiv, das früher aufgenommene Videodaten enthält, eine Video-Feed-Schnittstelle für den Empfang von Videodaten von einem Videocontent-Provider und/oder ein Computergraphiksystem zum Generieren von Videodaten oder eine Kombination solcher Quellen umfassen.
  • Der Videokodierer 20 kann die aufgenommen, voraufgenommenen oder computergenerierten Videodaten kodieren. Ein Eingangsbild kann von dem Videokodierer 20 empfangen und in dem Eingangs-Frame-Speicher 21 gespeichert werden. Der Universalprozessor 23 kann von hier Informationen laden und kann die Kodierung durchführen. Das Programm zum Ansteuern des Universalprozessors kann aus der Speichervorrichtung geladen werden, zum Beispiel aus den Speichermodulen, die in 16 gezeigt sind. Der Universalprozessor kann einen Verarbeitungsspeicher 22 nutzen, um die Kodierung durchzuführen, und die Ausgabe der Kodierungsinformationen durch Universalprozessor können in einem Puffer gespeichert werden, zum Beispiel in einem Ausgabepuffer 26.
  • Der Videokodierer 20 kann ein Resampling-Modul 25 umfassen, das konfiguriert sein kann für das Kodieren (z.B. Enkodieren) von Videodaten in einem skalierbaren Videodaten-Kodierschema, das mindestens eine Basisschicht und mindestens eine Anreicherungsschicht definiert. Das Resampling-Modul 25 kann mindestens einige Videodaten als Teil eines Kodiervorgangs neu abtasten, wobei die Neuabtastung bzw. das Resampling mit Hilfe von Resamplingfiltern adaptiv erfolgen kann.
  • Die kodierten Videodaten, z.B. ein kodierter Bitstrom, können über eine Ausgabeschnittstelle 28 des Quellgeräts 12 direkt zu dem Zielgerät 14 übertragen werden. In dem Beispiel von 16 hat das Zielgerät 14 eine Eingabeschnittstelle 38, einen Video-Dekodierer 30 und eine Anzeigevorrichtung 32. In einigen Fällen kann die Eingabeschnittstelle 28 einen Empfänger und/oder ein Modem aufweisen. Die Eingabeschnittstelle 38 des Zielgeräts 14 empfängt kodierte Videodaten über den Kanal 16. Die kodierten Videodaten können eine Vielfalt von Syntaxelementen enthalten, die durch den Videokodierer 20 generiert werden und die die Videodaten repräsentieren. Solche Syntaxelemente können in den kodierten Videodaten enthalten sein, die auf einem Kommunikationsmedium übertragen, auf einem Speichermedium gespeichert oder in einem Dateiserver gespeichert werden.
  • Die kodierten Videodaten können auch für den späteren Zugriff durch das Zielgerät 14 zwecks Kodierung und/oder Wiedergabe auf einem Speichermedium oder in einem Dateispeicher gespeichert werden. Zum Beispiel kann der Bitstrom vorübergehend in dem Pufferspeicher 31 gespeichert und dann in den Universalprozessor 33 geladen werden. Das Programm zum Ansteuern des Universalprozessors kann aus einer Speichervorrichtung oder einem Speicher geladen werden. Der Universalprozessor kann zur Durchführung der Dekodierung einen Verarbeitungsspeicher 32 nutzen.
  • 16 zeigt ein Resampling-Modul 35 getrennt von dem Universalprozessor 33, wobei ein Fachmann erkennen wird, dass die Neuabtastungs- bzw. Resamplingfunktion von einem Programm durchgeführt werden kann, das von dem Universalprozessor ausgeführt wird, wobei die Verarbeitung in dem Videokodierer mittels eines oder mehrerer Prozessoren bewerkstelligt werden kann. Das(die) dekodierten Bild(er) können in dem Ausgangs-Frame-Puffer 36 gespeichert und dann an die Eingabeschnittstelle 38 gesendet werden.
  • Die Anzeigevorrichtung 38 kann in dem Zielgerät 14 integriert oder außerhalb desselben vorgesehen sein. In einigen Beispielen kann das Zielgerät 14 eine integrierte Anzeigevorrichtung enthalten und kann auch derart konfiguriert sein, dass es mit der externen Anzeigevorrichtung eine Schnittstelle bildet. In anderen Beispielen kann das Zielgerät 14 ein Anzeigegerät sein. Im Allgemeinen zeigt die Anzeigevorrichtung 38 die dekodierten Videodaten für einen Benutzer an.
  • Der Videokodierer 20 und der Video-Dekodierer 30 können gemäß einem Videokomprimierungsstand arbeiten. ITU-T VCEG (Q6/16) und ISO/IEC MPEG (JTC 1/SC 29/WG 11) untersuchen die potenzielle Notwendigkeit einer Standardisierung einer künftigen Videokodiertechnologie mit einer Komprimierungskapazität, die jene des aktuellen High Efficiency Video Coding HEVC Standards (einschließlich seiner aktuellen Erweiterungen und kurzfristigen Erweiterungen für Bildschirminhalt-Kodierung und eine Kodierung mit hohem Dynamikumfang) übersteigt. Die Gruppen arbeiten zusammen an dieser Untersuchung und sind bekannt als Joint Video Exploration Team (JVET), das von Experten in diesem Bereich vorgeschlagene Komprimierungstechnologie-Designs auswertet. Eine aktuelle Erfassung der JVET-Entwicklung ist beschrieben in „Algorithm Description of Joint Exploration Test Model 5 (JEM 5)“, JVET-E1001-V2, verfasst von J. Chen, E. Alshina, G. Sullivan, J. Ohm, J. Boyce.
  • Zusätzlich oder alternativ können die Videokodierer 20 und der Video-Dekodierer 30 mit anderen proprietären oder Industriestandards arbeiten, die mit den beschriebenen JVET-Merkmalen funktionieren, zum Beispiel ITU-T H.264, alternativ bezeichnet als MPEG-4, Part 10, Advanced Video Coding (AVC) oder Erweiterungen solcher Standards. Wenngleich die Techniken in dieser Beschreibung für JVET neu entwickelt wurden, sind diese nicht auf einen bestimmten Kodierstandard oder ein bestimmtes Kodierverfahren beschränkt. Andere Beispiele von Videokompressionsstandards und -verfahren sind unter anderem MPEG-2, ITU-T H.263 und proprietäre oder Open-Source-Kompressionsformate und verwandte Formate.
  • Der Videokodierer 20 und Video-Dekodierer 30 können in Hardware, Software, Firmware oder in einer beliebigen Kombination derselben ausgeführt sein. Zum Beispiel können der Videokodierer 20 der Video-Dekodierer 30 einen oder mehrere Prozessoren, digitale Signalprozessoren (DSPs), anwendungsspezifische integrierte Schaltungen (ASICS), feldprogrammierbare Gate Arrays (FPGAs), diskrete Logik oder Kombinationen derselben verwenden. Wenn der Videokodierer 20 und der Dekodierer 30 zum Teil in Software ausgeführt sind, kann ein Gerät Befehle für die Software in einem geeigneten, nichttransitorischen computerlesbaren Speichermedium speichern und kann die Befehle in Hardware ausführen durch die Verwendung eines oder mehrerer Prozessoren, um die erfindungsgemäßen Verfahren durchzuführen. Der jeweilige Videokodierer 20 und Video-Dekodierer 30 können in einem oder mehreren Kodierern und Dekodierern enthalten sein, wobei jeder davon als Teil eines kombinierten Kodierers/Dekodierers (CODEC) in einem jeweiligen Gerät integriert sein kann.
  • Aspekte der vorliegend beschriebenen Gegenstands können in dem allgemeinen Kontext von computerausführbaren Befehlen wie beispielsweise Programm-Modulen beschrieben sein, die von einem Computer wie beispielsweise die vorstehend beschriebenen Universalprozessoren 23 und 33 ausgeführt werden. Allgemein enthalten Programm-Module Routinen, Programme, Objekte, Komponenten, Datenstrukturen usw., die bestimmte Aufgaben ausführen oder bestimmte abstrakte Datentypen implementieren. Aspekte des vorliegend beschriebenen Gegenstands können auch in verteilten Computing-Umgebungen praktisch umgesetzt werden, in denen Aufgaben von entfernten Verarbeitungsgeräten ausgeführt werden können, die über ein Kommunikationsnetz miteinander verbunden sind. In einer verteilten Computing-Umgebung können sich Programm-Module sowohl in lokalen als auch entfernten Computerspeichermedien befinden, einschließlich Datenspeicher.
  • Speicherbeispiele sind unter anderem ein Random Access Memory (RAM), ein Read Only Memory (ROM) oder beide. Speicher können Befehle wie beispielsweise einen Quellcode oder einen Binärcode für die Durchführung der vorstehend beschriebenen Verfahren speichern. Speicher können auch verwendet werden zum Speichern von Variablen oder anderen Zwischeninformationen während der Ausführung der Befehle, die von einem Prozessor wie beispielsweise der Prozessor 22 und 33 auszuführen sind.
  • Eine Speichervorrichtung kann auch Befehle wie einen Quellcode oder Binärcode für die Durchführung der vorstehend beschriebenen Verfahren speichern. Eine Speichervorrichtung kann zusätzlich Daten speichern, die von dem Computerprozessor genutzt und gehandhabt werden. Zum Beispiel kann eine Speichervorrichtung in einem Videokodierer 20 oder Video-Dekodierer 30 eine Datenbank sein, auf die das Computersystem 23 oder 33 zugreift. Weitere Beispiele von Speichervorrichtungen sind unter anderem ein Random Access Memory (RAM), ein Read Only Memory (ROM), eine Festplatte, eine Magnetplatte, eine optische Platte, eine CD-ROM, eine DVD, ein Flash-Speicher, eine USB-Speicherkarte oder ein anderes Medium, das der Computer auslesen kann.
  • Ein Datenspeicher oder eine Speichervorrichtung können ein Beispiel eines nichttransitorischen computerlesbaren Speichermediums zur Nutzung durch oder in Verbindung mit einem Videokodierer und/oder Dekodierer sein. Das nichttransitorische computerlesbare Speichermedium enthält Befehle zum Steuern eines Computersystems, das für die Ausführung von bestimmten, durch bestimmte Ausführungsformen beschriebene Funktionen konfiguriert ist. Die Befehle können so konfiguriert sein, dass sie bei Ausführung durch einen oder mehrere Computerprozessoren das durchführen, was in bestimmten Ausführungsformen beschrieben ist.
  • Ebenfalls ist anzumerken, dass manche Ausführungsformen als Prozess beschrieben wurden, der sich als Flussdiagramm oder Blockdiagramm darstellen lässt. Wenngleich jedes dieser Diagramme die Operationen als einen sequenziellen Prozess beschreiben, können viele dieser Operation parallel oder zeitgleich ausgeführt werden. Außerdem kann die Reihenfolge der Operation neu geordnet werden. Ein Prozess kann zusätzliche Schritte enthalten, die in den Figuren nicht dargestellt sind.
  • Bestimmte Ausführungsformen können in einem nichttransitorischen computerlesbaren Speichermedium implementiert sein, zur Verwendung durch oder in Verbindung mit dem Befehlsausführungssystem, eine Vorrichtung, ein System oder eine Maschine. Das computerlesbare Speichermedium enthält Befehle zum Steuern eines Computersystems, so dass dieses ein durch bestimmte Ausführungsformen beschriebenes Verfahren durchführt. Das Computersystem kann ein oder mehrere Computing-Geräte umfassen. Die Befehle können derart konfiguriert sein, dass sie bei Ausführung durch einen oder mehrere Computerprozessoren das durchführen, was in bestimmten Ausführungsformen beschrieben ist.
  • Wenn in der vorliegenden Beschreibung und in den anliegenden Ansprüchen der unbestimmte Artikel „ein“ und der bestimmte Artikel „der, die, das“ verwendet werden, sind damit auch Pluralformen eingeschlossen, sofern der Kontext nicht ausdrücklich etwas anderes vorschreibt. Die Bedeutung von „in“ in der Beschreibung und in den anliegenden Ansprüchen umfasst „in“ sowie „bei“, „auf“, „an“, sofern der Kontext nicht ausdrücklich etwas anderes vorschreibt.
  • Der Gegenstand wurde vorliegend in der für die baulichen Merkmale und/oder und das methodische Vorgehen spezifischen Sprache beschrieben. Gleichwohl versteht es sich, dass der in den anliegenden Ansprüchen definierte Gegenstand nicht notwendigerweise auf die spezifischen Merkmale oder Vorgehensweisen beschränkt ist.
  • Ausführungsformen wurden vorliegend im Detail und in der vorrichtungs- und verfahrensspezifischen Sprache beschrieben. Der Fachmann wird erkennen, dass innerhalb des Rahmens der Ausführungsformen weitere Modifikationen möglich sind, ohne die Lehren der Erfindung zu verlassen und von den Vorteilen der Erfindung abzuweichen. Ferner versteht es sich, dass der in den anliegenden Ansprüchen definierte Gegenstand nicht notwendigerweise auf die beschriebenen speziellen Merkmale oder Vorgehensweisen beschränkt ist. Daher fallen diese Modifikationen sämtlich in den Schutzbereich der vorliegenden Erfindung, der durch die anliegenden Ansprüche definiert ist.

Claims (9)

  1. Verfahren zum Berechnen einer endgültigen planaren Prädiktion in einem planaren Modus, um Pixelwerte für einen aktuellen Kodierblock mit einer Höhe H und einer Breite W zu prädizieren, wobei ein oberes linkes (TL) Pixel in dem Kodierblock durch die Koordinaten x = 0 und y = 0 definiert wird, wobei das Verfahren umfasst: das Empfangen eines Videobitstroms mit kodierten Videodaten; das Interpolieren eines horizontalen Prädiktors und eines vertikalen Prädiktors für ein Pixel in dem aktuellen Kodierblock aus den kodierten Daten; das Identifizieren einer Kodierblockgröße, um zu bestimmen, ob ein gleiches Gewicht oder ungleiche Gewichte auf den jeweiligen horizontalen und vertikalen Prädiktor anzuwenden sind, um durch den Vergleich der Kodierblockgröße mit einem Schwellenwert der Kodierblockgröße einen endgültigen planaren Prädiktionswert P(x,y) nach der Maßgabe zu berechnen: dass, wenn die Kodierblockgröße größer ist als der Schwellenwert der Kodierblockgröße, der endgültige planare Prädiktionswert P(x,y) mit ungleichen Gewichten berechnet wird, die gemäß P(x, y) = (A(x, y) * Ph(x, y) + B(x, y) * Pv(x, y) + c(x, y))/(D(x, y)) auf den jeweiligen horizontalen und vertikalen Prädiktor angewendet werden, wobei A(x, y) und B(x, y) jeweils positionsabhängige Gewichtungsfaktoren für den horizontalen und vertikalen Prädiktor sind und wobei c(x, y) ein positionsabhängiger Rundungsfaktor und D(x, y) ein positionsabhängiger Skalierfaktor ist, und dass, wenn die Kodierblockgröße kleiner als der Schwellenwert der Kodierblockgröße ist, der endgültige planare Prädiktionswert P(x,y) mit gleichen Gewichten berechnet wird, die gemäß P(x, y) = (H * Ph(x,y) + W * Pv(x, y))/(2 * H * W) auf den jeweiligen horizontalen und vertikalen Prädiktor angewendet werden, wobei W die Blockbreite und H die Blockhöhe ist.
  2. Verfahren nach Anspruch 1, wobei, wenn der Kodierblock größer als der Schwellenwert der Kodierblockgröße ist, ungleiche Gewichte A(x,y) und B(x,y) für die Prädiktion jedes Pixels in dem Kodierblock zugewiesen werden.
  3. Verfahren nach Anspruch 1, wobei ungleiche Gewichte A(x,y) und B(x,y) jeweils entsprechend einem Abstandsverhältnis zu einem zuverlässigen benachbarten Pixel für den jeweiligen horizontalen Prädiktor und vertikalen Prädiktor zugewiesen werden.
  4. Verfahren nach Anspruch 1, umfassend das Berechnen eines Intensitätswertes des unteren rechten benachbarten Pixels P(W, H) für einen aktuellen Kodierblock gemäß P(W, H) = W R ( W , 1 ) + H R ( 1, H ) H + W
    Figure DE112017006657B4_0037
    , wobei R(x, y) den Intensitätswert des rekonstruierten benachbarten Pixels an der (x,y) Koordinate angibt.
  5. Verfahren nach Anspruch 1, wobei die Kodierblockgröße durch Informationen in dem Bitstrom angezeigt wird.
  6. Verfahren nach Anspruch 5, wobei die Informationen in dem Bitstrom enthalten: zumindest die Kodierblockgröße oder zumindest einen der Kodierblockgröße zugeordneten Slice-Typ und/oder zumindest eine Anzahl von quantisierten Koeffizienten, die nicht Null sind und die der Kodierblockgröße zugeordnet sind.
  7. Verfahren nach Anspruch 6, wobei die Informationen in dem Bitstrom über ein Flag signalisiert werden.
  8. Verfahren nach Anspruch 7, wobei die Informationen in dem Bitstrom zumindest in einem Sequenzparameterset (SPS) oder zumindest in einem Bildparameterset (PPS) und/oder zumindest in einem Slice-Header signalisiert werden.
  9. Verfahren nach Anspruch 1, ferner umfassend das Berechnen eines Intensitätswerts eines unteren rechten benachbarten Pixels des aktuellen Kodierblocks zur Nutzung bei der Interpolation des horizontalen und vertikalen Prädiktors, wobei konstruierte oder rekonstruierte benachbarte Pixel Reihen von horizontalen Grenzpixeln an einer Oberseite des aktuellen Kodierblocks und konstruierte oder rekonstruierte benachbarte Pixel eine Spalte von vertikalen Grenzpixeln auf einer linken Seite des aktuellen Kodierblocks bilden, wobei das Verfahren ferner umfasst: das Verwenden des berechneten unteren rechten Pixelwerts, das Berechnen von Intensitätswerten für die benachbarten Pixel in einer Reihe entlang der Unterseite des aktuellen Kodierblocks und in einer Spalte entlang der rechten Seite des aktuellen Kodierblocks; das Berechnen des horizontalen Prädiktors Ph(x, y) und des vertikalen Prädiktors Pv(x, y) für ein Pixel an der Koordinate (x, y) in dem aktuellen Kodierblock jeweils durch Interpolieren zwischen entsprechenden Pixeln in benachbarten Reihen und durch Interpolieren zwischen entsprechenden Pixeln in benachbarten Spalten.
DE112017006657.3T 2016-12-28 2017-12-28 Adaptive planare Prädiktion mit ungleichen Gewichten Active DE112017006657B4 (de)

Applications Claiming Priority (17)

Application Number Priority Date Filing Date Title
US201662439724P 2016-12-28 2016-12-28
US62/439,724 2016-12-28
US201662440379P 2016-12-29 2016-12-29
US62/440,379 2016-12-29
US201762459797P 2017-02-16 2017-02-16
US62/459,797 2017-02-16
US201762482178P 2017-04-05 2017-04-05
US62/482,178 2017-04-05
US201762522420P 2017-06-20 2017-06-20
US62/522,420 2017-06-20
US201762528732P 2017-07-05 2017-07-05
US62/528,732 2017-07-05
US201762566117P 2017-09-29 2017-09-29
US62/566,117 2017-09-29
US15/856,393 US10277895B2 (en) 2016-12-28 2017-12-28 Adaptive unequal weight planar prediction
US15/856,393 2017-12-28
PCT/US2017/068654 WO2018125972A1 (en) 2016-12-28 2017-12-28 Adaptive unequal weight planar prediction

Publications (2)

Publication Number Publication Date
DE112017006657T5 DE112017006657T5 (de) 2019-12-19
DE112017006657B4 true DE112017006657B4 (de) 2021-03-11

Family

ID=62625616

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017006657.3T Active DE112017006657B4 (de) 2016-12-28 2017-12-28 Adaptive planare Prädiktion mit ungleichen Gewichten

Country Status (5)

Country Link
US (5) US10277895B2 (de)
CA (1) CA3048426C (de)
DE (1) DE112017006657B4 (de)
GB (1) GB2573443B (de)
WO (1) WO2018125972A1 (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2562041B (en) * 2017-04-28 2020-11-25 Imagination Tech Ltd Multi-output decoder for texture decompression
US11019339B2 (en) * 2017-07-12 2021-05-25 Futurewei Technologies, Inc. Fractional quantization parameter offset in video compression
WO2019091292A1 (en) * 2017-11-13 2019-05-16 Mediatek Singapore Pte. Ltd. Method and apparatus for intra prediction fusion in image and video coding
EP3518543A1 (de) * 2018-01-26 2019-07-31 Thomson Licensing Beleuchtungskompensationsflagge in bildfrequenz-aufwärtswandlung mit vorlagenabgleich
US10645381B2 (en) * 2018-04-30 2020-05-05 Google Llc Intra-prediction for smooth blocks in image/video
EP4319158A3 (de) * 2018-05-10 2024-04-03 Samsung Electronics Co., Ltd. Bildsegmentierungsverfahren und vorrichtung zur bildcodierung und -decodierung
CN112672161A (zh) 2018-06-27 2021-04-16 株式会社Kt 用于处理视频信号的方法和设备
WO2020007187A1 (zh) * 2018-07-02 2020-01-09 华为技术有限公司 图像块解码方法及装置
WO2020034247A1 (en) * 2018-08-24 2020-02-20 Zte Corporation Planar prediction mode for visual media encoding and decoding
EP3861736A4 (de) 2018-11-06 2022-03-30 Beijing Bytedance Network Technology Co., Ltd. Positionsabhängige intraprädiktion
WO2020108591A1 (en) 2018-12-01 2020-06-04 Beijing Bytedance Network Technology Co., Ltd. Parameter derivation for intra prediction
US10917636B2 (en) * 2018-12-03 2021-02-09 Tencent America LLC Method and apparatus for video coding
WO2020114445A1 (en) 2018-12-07 2020-06-11 Beijing Bytedance Network Technology Co., Ltd. Context-based intra prediction
KR20210093891A (ko) * 2018-12-18 2021-07-28 엘지전자 주식회사 이차 변환에 기반한 영상 코딩 방법 및 그 장치
WO2020125794A1 (en) * 2018-12-22 2020-06-25 Beijing Bytedance Network Technology Co., Ltd. Two step cross-component prediction mode
KR20210097803A (ko) * 2019-01-14 2021-08-09 삼성전자주식회사 부호화 방법 및 그 장치, 복호화 방법 및 그 장치
AU2020226565C1 (en) * 2019-02-22 2024-01-11 Beijing Bytedance Network Technology Co., Ltd. Neighbouring sample selection for intra prediction
CN115967810A (zh) 2019-02-24 2023-04-14 抖音视界有限公司 对视频数据进行编解码的方法、设备及计算机可读介质
JP2022068379A (ja) * 2019-03-08 2022-05-10 シャープ株式会社 画像復号装置
WO2020192642A1 (en) 2019-03-24 2020-10-01 Beijing Bytedance Network Technology Co., Ltd. Conditions in parameter derivation for intra prediction
US11962796B2 (en) * 2019-04-01 2024-04-16 Qualcomm Incorporated Gradient-based prediction refinement for video coding
US11317088B2 (en) * 2019-05-17 2022-04-26 Qualcomm Incorporated Gradient-based prediction refinement for video coding
CN113906738B (zh) * 2019-05-21 2024-01-12 北京字节跳动网络技术有限公司 仿射模式的自适应运动矢量差分辨率
CN114631321B (zh) 2019-10-18 2024-04-12 北京字节跳动网络技术有限公司 子图片与环路滤波之间的相互影响
WO2021145673A1 (ko) * 2020-01-13 2021-07-22 엘지전자 주식회사 영상/비디오 코딩을 위한 가중된 예측 방법 및 장치
US20230291905A1 (en) * 2022-03-10 2023-09-14 Tencent America LLC Method and apparatus for adaptive multi-hypothesis probability model for arithmetic coding
CN117579833B (zh) * 2024-01-12 2024-04-05 合肥六角形半导体有限公司 一种视频压缩电路及芯片

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2890130A1 (de) * 2012-09-28 2015-07-01 Nippon Telegraph and Telephone Corporation Intraprädiktionscodierungsverfahren, intraprädiktionsdecodierungsverfahren, intraprädiktionscodiervorrichtung, intraprädiktionsdecodiervorrichtung, programme dafür und aufzeichnungsmedien mit darauf gespeicherten programmen

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110249741A1 (en) * 2010-04-09 2011-10-13 Jie Zhao Methods and Systems for Intra Prediction
WO2012115420A2 (ko) * 2011-02-23 2012-08-30 엘지전자 주식회사 필터링을 이용한 화면 내 예측 방법 및 이러한 방법을 사용하는 장치
AU2012276407B2 (en) 2011-06-28 2016-02-18 Samsung Electronics Co., Ltd. Method and apparatus for image encoding and decoding using intra prediction
KR20180008797A (ko) * 2015-06-15 2018-01-24 엘지전자 주식회사 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
US10491922B2 (en) * 2015-09-29 2019-11-26 Qualcomm Incorporated Non-separable secondary transform for video coding
US10455228B2 (en) * 2016-03-21 2019-10-22 Qualcomm Incorporated Determining prediction parameters for non-square blocks in video coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2890130A1 (de) * 2012-09-28 2015-07-01 Nippon Telegraph and Telephone Corporation Intraprädiktionscodierungsverfahren, intraprädiktionsdecodierungsverfahren, intraprädiktionscodiervorrichtung, intraprädiktionsdecodiervorrichtung, programme dafür und aufzeichnungsmedien mit darauf gespeicherten programmen

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CHEN, Jianle [et al.]: Algorithm description of joint exploration test model 4. In: 116. MPEG meeting: Chengdu, CN, 15-21 October 2016, 36 S. *

Also Published As

Publication number Publication date
US20180184083A1 (en) 2018-06-28
US11936854B2 (en) 2024-03-19
US10757404B2 (en) 2020-08-25
GB2573443A (en) 2019-11-06
US20220030221A1 (en) 2022-01-27
WO2018125972A1 (en) 2018-07-05
DE112017006657T5 (de) 2019-12-19
US20210051318A1 (en) 2021-02-18
CA3048426C (en) 2024-01-02
CA3048426A1 (en) 2018-07-05
GB201909841D0 (en) 2019-08-21
GB2573443B (en) 2020-04-01
US11159786B2 (en) 2021-10-26
US20190222835A1 (en) 2019-07-18
US20230224456A1 (en) 2023-07-13
US11785206B2 (en) 2023-10-10
US10277895B2 (en) 2019-04-30

Similar Documents

Publication Publication Date Title
DE112017006657B4 (de) Adaptive planare Prädiktion mit ungleichen Gewichten
DE112017006638B4 (de) Verbesserte Videobitstromkodierung
US20210409776A1 (en) Jvet coding block structure with asymmetrical partitioning
CN110959290B (zh) 帧内模式jvet编译方法
US20220417531A1 (en) System and method of implementing multiple prediction models for local illumination compensation
DE112018005899T5 (de) System und Verfahren zum Konstruieren einer Ebene für planare Prädiktion
DE112011100420B4 (de) Verfahren und Vorrichtung zum adaptiven Loopfiltern
EP3443746B1 (de) Vorlagenabgleich für jvet-intraprädiktion
JP2021514145A (ja) テンプレートマッチングのための可変テンプレートサイズ
DE102020207711B3 (de) Verfahren und vorrichtungen zur codierung von bilddaten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final