DE112017006638T5 - Verbesserte Videobitstromkodierung - Google Patents

Verbesserte Videobitstromkodierung Download PDF

Info

Publication number
DE112017006638T5
DE112017006638T5 DE112017006638.7T DE112017006638T DE112017006638T5 DE 112017006638 T5 DE112017006638 T5 DE 112017006638T5 DE 112017006638 T DE112017006638 T DE 112017006638T DE 112017006638 T5 DE112017006638 T5 DE 112017006638T5
Authority
DE
Germany
Prior art keywords
pixel
coding block
current coding
pixels
intensity value
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.)
Granted
Application number
DE112017006638.7T
Other languages
English (en)
Other versions
DE112017006638B4 (de
Inventor
Krit Panusopone
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 DE112017006638T5 publication Critical patent/DE112017006638T5/de
Application granted granted Critical
Publication of DE112017006638B4 publication Critical patent/DE112017006638B4/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/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/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/182Methods 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 pixel
    • 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
    • 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/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

Landscapes

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

Abstract

Ein Verfahren zum Dekodieren von JVET-Video weist das Empfangen eines Bitstroms, der angibt, wie eine Kodierungsbaumeinheit in Kodierungseinheiten unterteilt wurde, sowie das Zerlegen des Bitstroms auf, um wenigstens einen Prädiktor basierend auf einem in dem Bitstrom signalisierten Intraprädiktionsmodus zu erzeugen. Der Prädiktor kann durch Interpolieren benachbarter Pixel für jedes Pixel innerhalb eines Kodierungsblocks erzeugt werden. Die Berechnung kann genauer sein, indem ein Wert für einen unten rechts benachbarten Pixel abgeleitet wird.

Description

  • Prioritätsanspruch
  • Die Anmeldung beansprucht die Priorität gemäß 35 U.S.C §119 (e) der früher angemeldeten US provisorischen Anmeldung Nr. 62/439723 , angemeldet am 28.12.2016, der früher angemeldeten US provisorischen Anmeldung Nr. 62/440379 , angemeldet am 29.12.2016, der früher angemeldeten US provisorischen Anmeldung Nr. 62/459,797 , angemeldet am 16.02.2017, der früher angemeldeten US provisorischen Anmeldung Nr. 62/522420 , angemeldet am 20.05.2017 und der früher angemeldeten US provisorischen Anmeldung Nr. 62/482178 , angemeldet am 05.04.2017, von denen jede hierin durch Verweis miteinbezogen ist.
  • Hintergrund
  • Die technischen Verbesserungen in der Weiterentwicklung von Videokodierungsstandards zeigen einen Trend zu erhöhter Kodierungseffizienz, um höhere Bitraten, höhere Auflösungen und bessere Videoqualität zu ermöglichen. Das Joint-Video Exploration Team entwickelt ein neues Videokodierungsschema, das als JVET bezeichnet wird. Andere Videokodierungsschemata, wie etwa HEVC (High Efficiency Video Coding) ist JVET ein blockbasiertes räumlich und zeitlich hybrides prädiktives Kodierungsschema. Verglichen mit HEVC jedoch enthält JVET viele Modifikationen zur Bitstromstruktur, Syntax, Beschränkungen und Abbildungen zur Erzeugung dekodierter Bilder. JVET wurde in Joint Exploration Model (JEM) Encodern und Dekodern implementiert.
  • Zusammenfassung der Erfindung
  • Die vorliegende Offenbarung schafft ein Verfahren zur Verwendung von Planer Mode zum Vorhersagen von Pixelwerten für eine momentane Kodierungseinheit (CU). Das Verfahren enthält das Berechnen eines Intensitätswerts eines unteren rechten benachbarten Pixels der momentanen CU. Der untere rechte Intensitätswert kann zusammen mit einem Intensitätswert eines benachbarten Pixels aus der Reihe von horizontalen Pixeln an der Oberseite der momentanen CU verwendet werden, um die Intensitätswerte für die benachbarten Pixel in einer Spalte entlang der rechten Seite des momentanen Blocks zu berechnen. Der untere rechte Intensitätswert kann zusammen mit einem benachbarten Pixel aus der Spalte von vertikalen Randpixeln auf der linken Seite der momentanen CU verwendet werden, um die Intensitätswerte für die benachbarten Pixel in einer Reihe entlang der Unterseite des momentanen Blocks zu berechnen. Das Verfahren umfasst ferner das Berechnen eines ersten und zweiten Prädiktors und das Ableiten eines Prädiktionspixelwerts aus dem ersten und zweiten Prädiktor, wobei eine Mehrzahl von Prädiktionspixelwerten einen Prädiktionsblock bilden.
  • Die vorliegende Offenbarung schafft ebenfalls eine Vorrichtung zum Vorhersagen von Pixelwerten für eine momentane Kodierungseinheit (CU) mittels der hierin offenbarten Maßnahmen.
  • Figurenliste
  • Weitere Details der Erfindung werden mithilfe der anhängenden Zeichnungen erläutert.
    • 1 zeigt die Unterteilung eines Bildes in eine Mehrzahl von Kodierungsbaumeinheiten (CTU).
    • 2 zeigt eine beispielhafte Partitionierung eines CTU in Modierungseinheiten (CU).
    • 3 zeigt eine Quad Tree + Binär Tree (QTBT) Darstellung der CU Partitionierung aus 2.
    • 4 zeigt ein vereinfachtes Blockdiagramm für CU Kodierung in einem JVET Encoder.
    • 5 zeigt etwaige Intra Prediction Modes für Lumakomponenten in JVET.
    • 6 zeigt ein vereinfachtes Blockdiagramm für CU Kodierung in einem JVET Decoder.
    • 7a zeigt die horizontale Prädiktorkalkulation.
    • 7b zeigt eine vertikale Prädiktorkalkulation.
    • 8 zeigt ein Beispiel einer planaren Prädiktionsebene mit dem JVET Verfahren, das von einer flachen Ebene abweicht.
    • 9 illustriert den planaren Prädiktionsblock der basierend auf Gleichung (5) erzeugt worden ist, wobei die Eckenintensitätswerte identisch zu einem Beispiel in 8 sind.
    • 10 zeigt ein Ausführungsbeispiel eines Computersystems, das angepasst und/oder konfiguriert ist, ein Verfahren zur CU Kodierung durchzuführen.
    • 11 ist ein Flussdiagramm, das ein Verfahren zum Durchführen der offenbarten Maßnahmen darstellt.
    • 12 ist eine High Level Ansicht eines Source Device und eines Destination Device, die Merkmale der hierin beschriebenen Systeme und Devices enthalten können.
  • Detaillierte Beschreibung
  • Digitales Video involviert eine riesige Menge Daten, die jedes einzelne Bild (Frame) einer digitalen Videosequenz oder Bildserie in unkomprimierter Weise darstellen. Die Übertragung unkomprimierter digitaler Videos über Computernetzwerke ist üblicherweise durch Bandbreitenbegrenzungen limitiert und erfordert üblicherweise eine riesige Menge Speicherplatz. Encodieren des digitalen Videos kann sowohl die Speicherplatzals auch die Bandbreitenanforderungen verringern.
  • Frames einer Videosequenz oder genauer gesagt Decoding Tree Units innerhalb jedes Frames können mittels JVET encodiert und decodiert werden. JVET ist ein Videokodierungsschema, das von dem Joint Video Exploration Team entwickelt wird. Versionen von JVET sind in JEM (Joint Exploration Model) Encodern und Decodern implementiert worden. Ähnlich zu anderen Videokodierungsschemata wie HEVC (High Efficiency Video Coding), ist JVET ein blockbasiertes räumlich und zeitlich hybrides prädiktives Kodierungsschema.
  • Während dem Kodieren mit JVET wird ein Frame zuerst in quadratische Blöcke, Decodings Tree Units (CTUs) 100 genannt werden unterteilt, wie in 1 dargestellt. Fig. zeigt die Unterteilung eines Frames in eine Mehrzahl von CTUs 100. Beispielsweise können die CTUs 100 Blöcke von 128 × 128 Pixeln sein. Ein Frame kann ein Bild in einer Videosequenz sein, die eine Mehrzahl von Frames enthält. Ein Frame kann eine Matrix oder eine Menge von Matrizen enthalten, in denen die Pixelwerte Intensitätswerte in dem Bild darstellen. Die Pixelwerte können definiert werden, Farbe und Helligkeit in Full Color Video Kodierung darzustellen, wobei die Pixel in drei Kanäle geteilt werden. In einem YCbCr Farbraum haben Pixel beispielsweise einen Luma-Wert, Y, der die Graustufenintensität in dem Bild repräsentiert und zwei Crominanzwerte, Cb und Cr, die das Ausmaß repräsentieren in welchem die Farbe von Grau in Richtung Blau und Rot abweicht. In anderen Ausführungsformen, können die Pixelwerte mit anderen Werten in unterschiedlichen Farbräumen oder -modellen repräsentiert werden. Die Auflösung des Videos kann durch die Anzahl der Pixel in einem Frame bestimmt sein. Eine höhere Auflösung kann eine größere Anzahl Pixel und eine bessere Definition des Bildes bedeuten, kann allerdings auch zu höheren Bandbreite-, Speicher-, und Übertragungsanforderungen führen.
  • 2 eine beispielhafte Partitionierung einer CTU 100 in CUs 102, welche die Basiseinheiten der Prädiktion bei der Kodierung sind. Jede CTU 100 in einem Frame kann in eine oder mehrere CUs (Coding Units) 102 partitioniert werden. Die CUs 102 können für die Prädiktion und Transformation wie nachfolgend beschrieben verwendet werden. Anders als 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 so groß wie ihre Wurzel CTUs 100 sein oder kleinere Unter-Unterteilungen einer Wurzel CTU 100 bis hinunter zu 4x4 Blocks.
  • Bei JVET, kann eine CTU 100 in CUs 102 entsprechend einem Quad Tree + Binary Tree (QTBT) Schema partitioniert werden, bei dem die CTU 100 rekursiv in quadratische Blöcke entsprechend einem Quad Tree gespalten werden kann und diese quadratischen Blöcke können dann rekursiv horizontal oder vertikal entsprechend Binary Trees gespalten werden. Parameter können zum Einstellen der Spaltung entsprechend dem QTBT eingestellt werden, wie etwa die CTU Größe, die Maximumgröße der Quad Tree und Binär Tree Blattknoten, der maximalen Größe für den Binär Tree Wurzelknoten und die Maximumtiefe der Binär Trees.
  • Fig. zeigt als nicht beschränkendes Beispiel eine CTU 100 die in CUs 102 partitioniert ist, wobei durchgezogene Linien die Quad Tree Spaltung anzeigen und die gestrichelten Linien die Binär Tree Spaltung anzeigen. Wie dargestellt, erlaubt die binäre Spaltung eine horizontale Spaltung und vertikale Spaltung, um die Struktur der CTU und ihrer Unter-Unterteilung in CUs zu definieren.
  • 3 zeigt eine QTBT Blockstrukturdarstellung der Partitionierung aus 2. Um eine encodierte Darstellung einer Aufnahme oder eines Bildes zu erzeugen, kann der Videoencoder eine Menge von CTUs erzeugen. In 3 repräsentiert der Quad Tree Wurzelknoten die CTU 100. Um eine kodierte CTU zu erzeugen, kann der Videoencoder rekursiv Quad Tree Partitionierung auf den Coding Tree Blocks einer CTU durchführen, um die Coding Tree Blocks in Coding Blocks (CBs) zu teilen. Daher wie hierin verwendet, kann ein Video Slice (beispielsweise ein Video Frame oder ein Bereich eines Video Frames) in Coding Blocks partitioniert werden, die auch als Coding Units bezeichnet werden können, wobei jede solche Coding Unit Blöcke enthalten kann, wie etwa Luma-Blöcke und Chroma-Blöcke, die unabhängig voneinander decodiert werden. Weil JEM Flexibilität für CU Partitionierungsformen unterstützt, um besser lokale Charakteristiken von Videodaten zuzuordnen, können die CUs nicht quadratische Formen haben und das Codieren kann auf dem CU Level oder dem Luma- oder Chroma-Blocklevel innerhalb der CU stattfinden. Es wird hierin auf das Encodieren oder Decodieren eines Coding Blocks Bezug genommen, bei dem ein Coding Block einen Blockpixel, die eine CU bilden oder Coding Blocks innerhalb der CU repräsentieren.
  • Wie in 3 dargestellt, repräsentiert jeder Kinderknoten in einer CTU 100 in dem Quad Tree Bereich einen von vier quadratischen Blöcken, die von einem quadratischen Elternblock abgespalten wurden. Die quadratischen Blöcke, die durch die Quad Tree Blattknoten repräsentiert werden können dann null oder mehrmals unter Verwendung von Binary Trees geteilt werden, wobei die Quad Tree Blattknoten die Wurzelknoten der Binär Trees sind, welche die Eltern Coding Unit repräsentieren, die in zwei Kinder Coding Units partitioniert werden. Auf jeder Stufe des Binär Tree Bereichs, kann ein Block vertikal oder horizontal und symmetrisch oder asymmetrisch geteilt werden. Beispielsweise kann ein auf „0“ gesetzter Merker (Flak) anzeigen, dass der Block symmetrisch horizontal gespalten ist, während ein auf „1“ gesetzter Merker anzeigen kann, dass der Block symmetrisch vertikal gespalten wird.
  • Nach der Quad Tree-Spaltung und der Binär Tree-Spaltung, stellen die durch die QTBT-Blattknoten repräsentierten Blöcke die endgültigen CUs 102 dar, die codiert werden sollen, etwa codieren mittels Interprädiktion oder Intraprädiktion. Interprädiktion nutzt zeitliche Redundanzen zwischen unterschiedlichen Frames. Beispielsweise können zeitlich benachbarte Frames eines Videos Blöcke von Pixeln enthalten, die im Wesentlichen gleichbleiben. Während des Encodierens, kann ein Bewegungsvektor die Bewegung von Blöcken von Pixeln in einem Frame mit einem Block korrelierender Pixel in einem anderen Frame in Verbindung setzen. Daher muss das System diese Blöcke von Pixeln nicht zweimal encodieren, sondern kann den Block von Pixeln einmal encodieren und den Bewegungsvektor bereitstellen, um den korrelierten Block von Pixeln vorherzusagen.
  • Bei Intraprädiktion kann ein Frame oder ein Bereich eines Frames ohne Referenz auf Pixel in anderen Frames encodiert werden. Stattdessen nutzt Intraprädiktion räumliche Redundanzen zwischen Blöcken von Pixeln innerhalb des Frames aus. Beispielsweise kann der Codierungsprozess eine räumliche Korrelation zwischen benachbarten Blöcken referenzieren, bei denen räumlich benachbarte Blöcke von Pixeln ähnliche Eigenschaften aufweisen, und durch Vorhersage eines Zielblocks basierend auf Prädiktionsmodes, die in benachbarten Blocks verwendet werden, diese Korrelation ausnutzen.
  • Für Inter Slices oder Slices oder Full Frames, die mittels Interprädiktion codiert sind, können unterschiedliche Partitionierungsstrukturen für Luma- und Chromakomponenten verwendet werden. Beispielsweise kann bei einem Inter Slice eine CU 102 einem Coding Block für unterschiedliche Farbkomponenten aufweisen wie beispielsweise einem Luma CB und zwei Chroma CBs. Bei Intra Slices oder Slices oder Full Frames, die mittels Intraprädiktion codiert sind, kann die Partitionierungsstruktur für Luma- und Chromakomponenten dieselbe sein. Daher kann jede der CTUs 100 einen Coding Tree Block von Luma Samples, entsprechenden Coding Tree Blocks von Chroma Samples und Syntaxstrukturen umfassen, die zum Codieren der Samples der Coding Tree Blocks verwendet werden. Ein CTU kann einen einzelnen Coding Tree Block umfassen und die Syntaxstrukturen, die zum Codieren der Samples verwendet werden. In jedem Fall kann die CTU mit Coding Blocks innerhalb einer oder mehrerer Coding Einheiten enthalten sein, wie in 2 und 3 dargestellt.
  • 4 zeigt ein vereinfachtes Blockdiagramm für CU Codierung in einem JVET Encoder. Die Hauptstufen der Videocodierung enthalten die Partitionierung, um die CUs 102 zu identifizieren, wie zuvor beschrieben, gefolgt vom Encodieren der CUs 102 unter Verwendung von Prädiktion bei 404 oder 406, das Erzeugen einer Rest-CU 410 bei 408, die Umwandlung bei 412, Quantisierung bei 416 und Entropy Coding bei 420. Der Encoder und der Encodingprozess, die in 4 illustriert sind, enthalten einen Decodierungsprozess, der nachfolgend genauer beschrieben wird.
  • Mit einer gegebenen momentanen CU 102 (beispielsweise eine CU vor der Encodierung; beispielsweise die Original CU, die encodiert werden soll für die Übertragung in den Bitstrom durch Erzeugen einer Prädiktions-CU) kann der Encoder eine Prädiktions-CU 402 entweder räumlich, durch Verwenden von Intraprädiktion bei 404, oder zeitlich, durch Verwenden von Interprädiktion bei 406 erhalten. Die grundlegende Idee von Prädiktionscodierung ist es ein Unterschieds- oder Restsignal zwischen dem ursprünglichen Signal und einer Prädiktion für das ursprüngliche Signal zu übertragen. Auf der Empfängerseite kann das ursprüngliche Signal rekonstruiert werden durch Addieren des Rests und der Prädiktion, wie nachfolgend beschrieben. Weil das Differenzsignal eine niedrigere Korrelation als das ursprüngliche Signal aufweist, werden weniger Bits für dessen Übertragung benötigt.
    Eine Folge von Codierungseinheiten kann ein Slice bilden und ein oder mehrere Slices können ein Bild bilden. Ein Slice kann ein oder mehrere Slice-Segmente enthalten, wobei jedes in seiner eigenen NAL-Einheit ist. Ein Slice oder Slice-Segment kann Header Informationen für den Slice oder Bitstrom enthalten.
  • Ein Slice, wie beispielsweise ein gesamtes Bild oder ein Bereich eines Bildes, das vollständig mit Intraprädiktions-CUs codiert ist, kann ein I-Slice sein, dass ohne Referenz zu anderen Slices decodiert werden kann und als solches ein möglicher Ausgangspunkt zum Beginnen des Decodierens darstellen. Ein Slice, das mit wenigstens einigen Interprädiktions-CUs codiert ist, kann ein prädiktives (P) oder bi-prädiktives (B) Slice sein, das basierend auf einem oder mehreren Referenzbildern decodiert werden kann. P-Slices können Intraprädiktion und Interprädiktion mit zuvor codierten Slices verwenden. Beispielsweise können P-Slices weiterkomprimiert werden als die I-Slices durch Verwenden von Interprädiktion, aber benötigen die Codierung eines vorher codierten Slice, um diese zu codieren. B-Slices können Daten aus vorherigen und/oder folgenden Slices für ihre Codierung verwenden, und Intraprädiktion oder Interprädiktion verwenden und eine interpolierte Prädiktion aus zwei unterschiedlichen Frames verwenden, und daher die Genauigkeit des Bewegungsschätzungsprozesses erhöhen. In einigen Fällen können P-Slices und B-Slices auch oder abwechselnd mittels Intrablockkopie encodiert werden, bei der Daten von anderen Bereichen desselben Slice verwendet werden.
  • Wie nachfolgend beschrieben, kann Intraprädiktion oder Interprädiktion basierend auf rekonstruierten CUs 434 aus vorher codierten CUs 102 wie benachbarten CUs 102 oder CUs 102 in Referenzbildern, durchgeführt werden.
  • Wenn eine CU räumlich mittels Intraprädiktion bei 404 codiert ist, kann ein Intraprädiktionsmodus gefunden werden, der am besten die Pixelwerte der CU 102 basierend auf Samples der benachbarten CUs in dem Bild vorhersagt.
  • Wenn die Luma- oder Chroma-Blockkomponenten eines CUs codiert werden, kann der Encoder eine Liste von Kandidaten Intraprädiktionsmodi erzeugen. Während HEVC 35 mögliche Intraprädiktionsmodi für Luma-Komponenten aufwies, gibt es in JVET 67 mögliche Intraprädiktionsmodi für Luma-Komponenten. Diese enthalten einen Planarmodus (Planer Mode) der eine dreidimensionale Ebene von Werten aus benachbarten Pixeln erzeugt, einen DC-Modus (DC Mode) der Durchschnittswerte von benachbarten Pixeln verwendet und die 65 direktionalen Modi, die in 5 gezeigt sind, die von benachbarten Pixeln entlang der angedeuteten Richtung kopierte Werte verwenden. Wenn eine Liste von Kandidaten Intraprädiktionsmodi für eine Luma-Blockkomponente eines CUs erzeugt wird, kann die Anzahl der Kandidatenmodi auf der Liste von der Größe der CU abhängen. Die Kandidatenliste kann enthalten: eine Untermenge der 35 Modi von HEVC mit den niedrigsten SATD-Kosten (Englisch: Sum of Absolute Transform Difference); neue Direktionalmodi, die für JVET hinzugefügt wurden, die den gefundenen Kandidaten der HEVC-Modi benachbart sind; und Modi aus einer Menge der sechs wahrscheinlichsten Modi (Most Probable Modes, Englisch: MPMs) für die CU 102, die identifiziert werden, basierend auf Intraprädiktionsmodi, die für zuvor codierte benachbarte Blöcke verwendet wurden, wie eine Liste von Standardmodi.
  • Beim Codieren der Chroma-Blockkomponenten einer CU kann auch eine Liste von Kandidaten Intraprädiktionsmodi erzeugt werden. Die Liste von Kandidatenmodi kann mittels Kreuzkomponenten linear Modellprojektion aus Luma Samples generierte Modi, für Luma CBs gefundenen Intraprädiktionsmodi, insbesondere kombinierte Positionen in dem Chromablock, und Chromaprädiktionsmodi, die zuvor für benachbarte Blöcke gefunden wurden, enthalten. Der Encoder kann die Kandidatenmodi auf der Liste mit den niedrigsten Ratenverzerrungskosten finden und diese Intraprädiktionsmodi beim Codieren der Luma- und Chromakomponenten der CU verwenden. Syntax kann in dem Bitstrom codiert werden, der die zum Codieren jeder CU 102 verwendeten Intraprädiktionsmodi anzeigt.
  • Nach dem die besten Intraprädiktionsmodi für eine CU 102 ausgewählt worden sind, kann der Encoder eine Prädiktions-CU 402 unter Verwendung dieser Modi erzeugen. Wenn die ausgewählten Modi Direktionalmodi sind, kann ein Vier-Tab-Filter verwendet werden um die direktionale Genauigkeit zu verbessern. Spalten oder Reihen an der oberen oder linken Seite des Prädiktionsblocks können mittels Randprädiktionsfiltern, wie etwa Zwei-Tab oder Drei-Tab-Filtern eingestellt werden.
  • Die Prädiktions-CU 402 kann mit einem positionsabhängigen Intraprädiktionskombinationsverfahren (Englisch: Intra Prediction Combination, PDPC) weiter geglättet werden, dass eine Prädiktions-CU 402 anpasst, die erzeugt worden ist, basierend auf gefilterten Samples von benachbarten Blocks unter Verwendung ungefilterter Samples benachbarter Blocks oder adaptive Reference Sample Glättung unter Verwendung von Drei-Tab oder Fünf-Tab-Tiefpassfiltern zum Verarbeiten der Reference Samples.
  • Wenn eine CU 102 zeitlich mittels Interprädiktion bei 406 codiert wird, kann eine Menge von Bewegungsvektoren (Englisch: Motion Vectors, MVs) gefunden werden, die auf Samples in Referenzbildern zeigen, die am besten die Pixelwerte der CU 102 vorhersagen. Interprädiktion nutzt die zeitliche Redundanz zwischen Slices aus, in dem eine Verschiebung eines Blocks von Pixeln in einem Slice repräsentiert werden. Die Verschiebung wird entsprechend dem Wert der Pixel in vorherigen oder folgenden Slices durch eine Bewegungskompensation genannten Prozess bestimmt. Bewegungsvektoren und damit assoziierte Referenzindizes, die die Pixelverschiebung relativ zu einem bestimmten Referenzbild anzeigen, können in dem Bitstrom zu einem Decoder bereitgestellt werden, zusammen mit dem Residuum zwischen den ursprünglichen Pixeln und den bewegungskompensierten Pixeln. Der Decoder kann die verbleibenden und signalisierten Bewegungsvektoren und Referenzindizes verwenden, um einen Block von Pixeln in einen rekonstruierten Slice zu rekonstruieren.
  • Bei JVET kann die Bewegungsvektorgenauigkeit mit 1/16 Pel gespeichert werden und der Unterschied zwischen den Bewegungsvektor und einem vorhergesagten Bewegungsvektor einer CU kann mit entweder Viertel-Pel Auflösung oder Ganzzahl-Pel Auflösung codiert werden.
  • Bei JVET, können Bewegungsvektoren für multiple Unter-CUs innerhalb einer CU 102 gefunden werden, in dem Verfahren wie Advanced-Temperal Motion Vector Prediction (ATMVP), Special-Temperal Motion Vector Prediction (STMVP), affine Bewegungskompensationsprädiktion, Pattern Matched Motion Vector Derivation (PMMVD) und/oder By-Directional Optical Flow (BIO) verwendet werden.
  • Durch Verwenden von ATMVP, kann der Encoder einen Zeitvektor für die CU 102 finden, der zu einem entsprechenden Block in einem Referenzbild zeigt. Der Zeitvektor kann basierend auf Bewegungsvektoren und Referenzbildern gefunden werden, die für vorher codierte benachbarte CUs 102 gefunden wurden. Unter Verwenden des Referenzblocks, auf den durch den Zeitvektor für die gesamte CU 102 gezeigt wird, kann ein Bewegungsvektor für jede Sub-CU innerhalb der CU 102 gefunden werden.
  • STMVP kann Bewegungsvektoren für Sub-CUs durch Skalieren und Ermitteln von Bewegungsvektoren finden, die für benachbarte Blöcke zuvor mittels Interprädiktion codiert wurden, zusammen mit einem Zeitvektor.
  • Affine Bewegungskompensationsprädiktion kann verwendet werden, um ein Feld von Bewegungsvektoren für jede Sub-CU in einem Block vorherzusagen, basierend auf zwei Kontrollbewegungsvektoren, die für die oberen Ecken des Blocks gefunden wurden. Beispielsweise können Bewegungsvektoren für Sub-CUs basierend auf den oberen Eckbewegungsvektoren, die für jeden 4x4 Block innerhalb der CU 102 gefunden wurden, abgeleitet werden.
    PMMVD kann einen Anfangsbewegungsvektor für die momentane CU 102 mittels by-lateral matching oder template matching finden. By-lateral matching kann die momentane CU 102 und Referenzblöcke in zwei unterschiedlichen Referenzbildern entlang einer Bewegungsdreiecktorie betrachten, während Template-Matching entsprechende Blöcke in der momentanen CU 102 und einem durch das Template identifizierte Referenzbild betrachtet.
  • Der Anfangsbewegungsvektor der für die CU 102 gefunden wurde, kann dann individuell für jede Sub-CU verfeinert werden.
  • BIO kann verwendet werden, wenn Interprädiktion zusammen mit Bi-Prädiktion verwendet wird, basierend auf früheren oder späteren Referenzbildern und erlaubt es Bewegungsvektoren für Sub-CUs basierend auf dem Gradienten des Unterschieds zwischen den beiden Referenzbildern zu finden.
  • In einigen Situationen, kann Local Illumination Compensation (LIC) verwendet werden auf dem CU Level um Werte für einen skalierten Faktorparameter und einen Offsetparameter zu finden, basierend auf Samples die der momentanen CU 102 benachbart sind und entsprechenden Samples, die einem durch einen Kandidatenbewegungsvektor identifizierten Referenzblock benachbart sind. Bei JVET können die LIC-Parameter sich verändern und auf dem CU Level signalisiert werden.
  • Für einige der vorgenannten Methoden, können die für jede Sub-CU einer CU gefundenen Bewegungsvektoren den Decodern auf dem CU Level mitgeteilt werden. Für andere Methoden, wie etwa PMMVD und BIO, wird keine Bewegungsinformation in dem Bitstrom mitgeteilt, um Aufwand zu sparen und die Decoder können die Bewegungsvektoren durch die selbigen Prozesse ableiten.
  • Nach dem die Bewegungsvektoren für eine CU 102 gefunden wurden, kann der Encoder eine Prädiktions-CU 402 unter Verwendung dieser Bewegungsvektoren erzeugen. In einigen Fällen, wenn die Bewegungsvektoren für individuelle CUs gefunden wurden, kann Overlapped Block Motion Compensation (OBMC) beim Erzeugen einer Prädiktions-CU 402 verwendet werden, in dem diese Bewegungsvektoren mit vorher für ein oder mehrere benachbart gefundene Sub-CUs gefundenen Bewegungsvektoren kombiniert werden.
  • Wenn Bi-Prädiktion verwendet wird, kann JVET eine decoderseitige Bewegungsvektorverfeinerung (Englisch: Decoder Side Motion Vector Refinement, DMVR) verwenden, um Bewegungsvektoren zu finden. DMVR ermöglicht es einen Bewegungsvektor basierend auf zwei Bewegungsvektoren, die für die Bi-Prädiktion unter Verwendung eines By-lateral template matching-Verfahrens gefunden wurden, zu finden. Bei DMVR kann eine gewichtete Kombination von Prädiktions-CUs 402 gefunden werden, die mit jedem der beiden Bewegungsvektoren erzeugt wurden, wobei die Bewegungsvektoren durch Ersetzen mit neuen Bewegungsvektoren, die am besten zu der kombinierten Prädiktions-CU 402 zeigen verfeinert werden können. Die beiden verfeinerten Bewegungsvektoren können verwendet werden, um die endgültige Prädiktions-CU 402 zu erzeugen.
  • Bei 408, kann der Encoder die Prädiktions-CU 402 von der momentanen CU 102 abziehen und eine Rest-CU 410 finden, nach dem eine Prädiktions-CU 402 mittels Intraprädiktion bei 404 oder Interprädiktion bei 406, wie zuvor beschrieben, gefunden worden ist.
  • Der Encoder kann eine oder mehrere Transformationen bei 412 verwenden, um die Rest-CU 410 in Transformationskoeffizienten 414 umzuwandeln, die die Rest-CU 410 in eine Transformationsdomäne ausdrücken, beispielsweise unter Verwendung einer diskreten Kosinus-Blocktransformation (Englisch: DCT-Transform) um Daten in die Transformationsdomäne umzuwandeln. JVET erlaubt mehr Arten von Transformationsoperationen als HEVC, einschließlich DCT-II, DST-VII, DCT-VIII, DST-I und DCT-V Operationen. Die erlaubten Transformationsoperationen können in Untermengen gruppiert werden und einen Hinweis darauf, welche Untermenge und welche spezifische Operation in dieser Untermenge benutzt wurde, kann dem Encoder mitgeteilt werden. In einigen Fällen, können große Blockgrößen Transformationen verwendet werden, um hochfrequente Transformationskoeffizienten in CUs 102 die größer als eine bestimmte Größe sind, Null zu stellen, so dass lediglich niederfrequente Transformationskoeffizienten für diese CUs 102 erhalten bleiben.
  • In einigen Fällen kann eine modenabhängige nicht separable Sekundärtransformation (Englisch: Mode Dependent Non-Separable Secondary Transform, MDMSST von niederfrequenten Transformationskoeffizienten 414 nach der Vorwärtskerntransformation angewandt werden. Die MDMSST Operation kann eine Hyperkubus-Gibbons Transformation (Englisch: Hyper Cube Gibbons Transform, HIT) basierend auf Rotationsdaten verwenden. Falls diese verwendet wird, kann ein die bestimmte MDMSST Operation identifizierender Indexwert dem Encoder mitgeteilt werden.
  • Bei 416 kann der Encoder die Transformationskoeffizienten 414 in quantisierte Transformationskoeffizienten 416 quantisieren. Die Quantisierung jedes Koeffizienten kann durch Teilen des Wertes des Koeffizienten durch einen Quantisierungsschritt, der durch einen Quantisierungsparameter (QP) abgeleitet wird berechnet werden. In einigen Ausführungsformen ist der Q-Step definiert als 2(QP-4)/6. Weil hochpräzise Transformationskoeffizienten 414 in quantisierte Transformationskoeffizienten 416 mit einer ähnlichen Anzahl möglicher Werte umgewandelt werden können, kann die Quantisierung bei der Datenkompression unterstützen. Daher kann die Quantisierung der Transformationskoeffizienten die Anzahl der von dem Transformationsprozess erzeugten und gesendeten Bits limitieren. Weil jedoch Quantisierung eine verlustbehaftete Operation ist, und der Verlust aufgrund von Quantisierung nicht zurückgewonnen werden kann, stellt der Quantisierungsprozess einen Trade-Off zwischen Qualität der rekonstruierten Sequenz und der zur Darstellung der Sequenz benötigten Informationsmenge dar. Beispielsweise kann ein niedrigerer QP-Wert in einer besseren Qualität des decodierten Videos resultieren, obwohl eine höhere Datenmenge zur Repräsentation der Übertragung erforderlich ist. Ein Unterschied kann ein hoher QP-Wert in niedrigerer Qualität der rekonstruierten Videosequenz resultieren, allerdings mit niedrigeren Daten- und Bandbreitenanforderungen.
  • JVET kann varianzbasierte adaptive Quantisierungsverfahren verwenden, die es jeder CU ermögliche, einen unterschiedlichen Quantisierungsparameter für dessen Codierungsprozess zu verwenden (anstelle denselben Frame QP beim Codieren jeder CU 102 des Frames zu verwenden). Die varianzbasierten adaptiven Quantisierungsverfahren senken adaptiv den Quantisierungsparameter bestimmter Blöcke, während sie ihn in anderen Blöcken erhöhen. Um einen spezifischen Coupe für eine CU 102 auszuwählen, wird die Varianz der CU berechnet. Kurz gesagt, wenn eine Varianz der CU höher ist, als die durchschnittliche Varianz des Frames, kann ein höherer Coupe als der Frame-Coupe für die CU 102 eingestellt werden. Wenn die CU 102 eine niedrigere Varianz als die Durchschnittsvarianz des Frames aufweist, kann ein niedrigerer Coupe zugeordnet werden.
  • Bei 420 kann der Encoder endgültige Komprimierungsbits 422 durch Entropie codieren der quantisierten Transformationskoeffizienten 418 finden. Entropiecodierung zielt darauf, statistische Redundanzen der zu übertragenden Information zu entfernen. Bei JVET kann CABAC (Englisch: Context Adaptive Binary Arithmatic Coding) verwendet werden, um die quantisierten Transformationskoeffizienten 418 zu codieren, wobei CABAC Wahrscheinlichkeitsmaße verwendet, um die statistischen Redundanzen zu entfernen. Für CUs 102 die quantisierte Transformationskoeffizienten 418 ungleich 0 aufweisen, können die quantisierten Transformationskoeffizienten 418 in Binär umgewandelt werden. Jedes Bit („bin“) der binären Repräsentation kann dann mit einem Context Modell encodiert werden. Eine CU 102 kann in drei Regionen gebrochen werden, die jede ihre eigene Menge von Context Modellen zur Verwendung in dieser Region befindliche Pixel aufweist.
  • Multiple Abtastvorgänge können durchgeführt werden um die Bins zu encodieren. Während der Encodierungsvorgänge der ersten drei Bins (Bin 0, Bin 1 und Bin 2), kann ein Indexwert der angibt, welches Context Modell für das Bin benutzt wird, gefunden werden, in dem die Summe der Bin Position in bis zu fünf vorher codierten benachbarten quantisierten Transformationskoeffizienten 418 durch eine Template identifiziert wird.
  • Ein Context Modell kann auf den Wahrscheinlichkeiten dafür, dass ein Binwert „0“ oder „1“ ist, gestützt werden. Während die Werte codiert werden, können die Wahrscheinlichkeiten in dem Context Modell basierend auf der eigentlich angetroffenen Anzahl von „0“ und „1“ Werten aktualisiert werden. Während HEVC feste Tabellen verwendet, um Context Modelle für jedes neue Bild zu reinitialisieren, können bei JVET die Wahrscheinlichkeiten der Context Modelle für neue interprädizierte Bilder basierend auf den für die zuvor codierten interprädizierten Bilder entwickelten Context Modelle initialisiert werden.
  • Der Encoder kann einen Bitstrom erzeugen der Entropie encodierte Bits 422 von Rest-CUs 410, Prädiktionsinformation, wie etwa ausgewählte Intraprädiktionsmodi oder Bewegungsvektoren, Indikatoren, wie die CUs 102 aus einer CTU 100 entsprechend der QTBT-Struktur partitioniert wurden, und/oder andere Informationen über das encodierte Video enthalten. Der Bitstrom kann durch einen Decoder decodiert werden, wie nachfolgend diskutiert. In einigen Ausführungsarten, kann der Encoder Aufwand in dem Bitstrom durch Weglassen von Informationen aus dem Bitstrom sparen, die angibt, welche Intraprädiktionsmodi verwendet wurden, um die CUs 102 zu encodieren, wobei der Decoder Template-Matching beim Decodieren der mittels Intraprädiktion codierten CUs 102 verwenden kann.
  • Zusätzlich zum Verwenden der quantisierten Transformationskoeffizienten 418, um die endgültigen Kompressionsbits 422 zu finden, kann der Encoder auch die quantisierten Transformationskoeffizienten 418 zum Erzeugen rekonstruierter CUs 434 verwenden, indem er denselben Dekodierungsprozess folgt, den der Decoder verwenden würde, um rekonstruierte CUs 434 zu erzeugen. Daher können die quantisierten Transformationskoeffizienten 418 zu der Dekodierungsschleife in dem Encoder übertragen werden, sobald die Transformationskoeffizienten durch den Encoder berechnet und quantisiert wurden. Nach Quantisierung der Transformationskoeffizienten einer CU, erlaubt es die Dekodierungsschleife dem Encoder, eine rekonstruierte CU 434 zu erzeugen, die identisch zu der von dem Decoder in dem Dekodierungsprozess erzeugten ist. Entsprechend kann der Encoder dieselbe rekonstruierte CU 434 verwenden, die der Decoder für benachbarte CUs 102 oder Referenzbilder beim Durchführen der Intraprädiktion oder Interprädiktion für eine neue CU 102 verwenden würde. Rekonstruierte CUs 102, rekonstruierte Slices oder rekonstruierte Bilder oder Frames können als Referenzen für weitere Prädiktionsstufen dienen.
  • In der Decoderschleife des Encoders (siehe unten für dieselben Operationen in dem Decoder), kann ein Dequantisierungsprozess durchgeführt werden, um die Pixelwerte für das rekonstruierte Bild zu erhalten. Um beispielsweise einen Frame zu dequantisieren, kann ein quantisierter Wert für jeden Pixel eines Frames mit dem Quantisierungsschritt, beispielsweise dem zuvor beschriebenen Q-Step, multipliziert werden, um rekonstruierte dequantisierte Transformationskoeffizienten 426 zu erhalten. Beispielsweise können in dem in 4 dargestellten Decodierungsprozess in dem Encoder dequantisierten Transformationskoeffizienten 418 einer Rest-CU 410 bei 424 dequantisiert werden, um dequantisierte Transformationskoeffizienten 426 zu finden. Wenn eine MDMSST-Operation während des Encodierens durchgeführt wurde, kann diese Operation nach Dequantisierung umgekehrt werden.
  • Bei 428 können die dequantisierten Transformationskoeffizienten 426 rücktransformiert werden, um eine rekonstruierte Rest-CU 430 zu erhalten, beispielsweise durch Anwenden einer DCT au die Werte zum Erhalten des rekonstruierten Bildes. Bei 432 kann die rekonstruierte Rest-CU 430 in eine entsprechende mittels Intraprädiktion bei 404 oder Interprädiktion bei 406 gefundenen Prädiktions-CU 402 hinzugefügt werden, um eine rekonstruierte CU 434 zu finden. Während in einigen Ausführungsarten der Encoder eine zuvor beschriebene Intraprädiktion bei 404 durchführen kann, kann in anderen Ausführungsarten der Encoder ein Intraprädiktions-Template Matching durchführen, um eine Prädiktions-CU 402 zu erzeugen, auf die gleiche Art wie ein Encoder das Template Matching für Intraprädiktion verwenden würde, wenn den für die CU 102 verwendete Intraprädiktionsmodus identifizierende Information aus dem Bitstrom weggelassen würde.
  • Bei 436 können ein oder mehrere Filter auf die rekonstruierten Daten während des Decodierungsprozesses angewendet werden, in dem Encoder oder wie nachfolgend beschrieben in den Decoder entweder auf dem Bitlevel oder CU-Level. Beispielsweise kann der Encoder einen Deep Logging-Filter anwenden, einen Sample Adaptive Offset (SAO)-Filter und/oder einen Adaptive Loop Filter (ALF). Der Decodierungsprozess des Encoders kann Filter implementieren um optimale Filterparameter für den Decoder zu schätzen und zu übertragen, die mögliche Artefakte in dem rekonstruierten Bild behandeln. Derartige Verbesserungen erhöhen die objektive und subjektive Qualität des rekonstruierten Videos. Beim Deblocking-Filtering, können Pixels nach einer Sub-CU-Grenze modifiziert werden, während in SAO, Pixel in einer CTU 100 unter Verwendung entweder einer Kanten Offset-oder Band-Offset Klassifikation modifiziert werden. ALF von JVET kann Filter mit zirkulär symmetrischen Formen für jeden 2x2 Block verwenden. Eine Angabe der Größe und Identität der Filter, die für jeden 2x2 Block verwendet wird kann mitgeteilt werden.
  • Wenn rekonstruierte Bilder, Referenzbilder sind können sie in einem Referenz-Puffer 438 für die Interprädiktion zukünftiger CUs 102 bei 406 gespeichert werden.
  • Während der vorherigen Schritte, erlaubt JVET inhaltsadaptive Clipping-Operationen dafür verwendet zu werden, Farbwerte zum Anpassen zwischen unteren und oberen Clipping-Grenzen einzustellen. Die Clipping-Grenzen können für jede Slice geändert werden und die Grenzen identifizierende Parameter können in dem Bitstrom mitgeteilt werden.
  • 6 zeigt ein vereinfachtes Blockdiagramm für CU-Codierung in einem JVET-Decoder. Ein JVET-Decoder kann einen Bitstrom, oder Bits, 602 empfangen, die Informationen über encodierte Videodaten enthalten.
  • Die encodierten 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 codiert werden können. Der Decoder kann den jeweiligen Coding-Modus des jeweiligen Blocks innerhalb jeder CU 102 bestimmen. Der Bitstrom kann angeben, wie die CUs 102 eines Bildes von einer CTU 100 entsprechend einer QTBT-Struktur partitioniert wurden. Der Decoder kann die Baumstruktur als Teil des Erhaltens von Syntaxelementen aus dem Bitstrom bestimmen. Die Baumstruktur kann spezifizieren, wie der anfängliche Videoblock, beispielsweise ein CTB, in kleinere Videoblocks, beispielsweise Coding Units, partitioniert wurde.
  • Wie hierin beschrieben, gibt es für jeden jeweiligen nicht-Blatt-Knoten der Baumstruktur auf jedem tiefen Level der Baumstruktur verschiedene Spaltmuster für den jeweiligen Nicht-Blatt-Knoten. Als nicht beschränkendes Beispiel kann der Bitstrom mitteilen, wie die CUs 102 von jeder CTU 100 in einer QTBT unter Verwendung von Quad Tree Partitionierung, symmetrischer Binärpartitionierung und/oder Binärpartitionierung, partitioniert wurden. Der jeweilige dem Nicht-Blatt-Knoten entsprechende Videoblock kann in Videoblocks partitioniert werden, die den Kinder-Knoten des jeweiligen Nicht-Blatt-Knotens entsprechen.
  • Der Bitstrom kann ebenso eine Prädiktionsinformation für die CUs 102 angeben, beispielsweise Intraprädiktionsmodi oder Bewegungsvektoren. Die Bits 602 repräsentieren Entropie encodierte Rest-CUs. In einigen Ausführungsformen, kann Syntax in den Bitstrom codiert werden, die die zum Codieren jeder CU 102 verwendeten Intraprädiktionsmodus angibt. In einigen Ausführungsformen kann der Encoder Informationen in den Bitstrom über Intraprädiktionsmodi, die zum Encodieren einiger oder aller CUs 102, die mittels Intraprädiktion codiert wurden, weggelassen haben und als solcher kann der Decoder Template-Matching für Intraprädiktion verwenden.
  • Bei 406 kann der Decoder die Entropie encodierten Bits 602 mittels des von dem Encoder in den Bitstrom mitgeteilte verwendeten CABAC Context Modell decodiert werden. Der Decoder kann von dem Encoder mitgeteilte Parameter verwenden, um die Wahrscheinlichkeiten des Context Modells zu aktualisieren, auf dieselbe Art, wie diese während des Encodierens aktualisiert wurden.
  • Umkehren der Entropie-Encodierung bei 604 um die quantisierten Transformationskoeffizienten 606 zu finden, kann der Decoder diese bei 608 dequantisieren, um die quantisierten Transformationskoeffizienten 610 zu finden. Wenn eine MDMSST-Operation während des Encodierens durchgeführt wurde, kann diese Operation durch den Decoder nach der Dequantisierung umgekehrt werden.
  • Bei 612 können die dequantisierten Transformationskoeffizienten 610 rücktransformiert werden, um eine rekonstruierte Rest-CU 614 zu finden. Bei 616, kann die rekonstruierte Rest-CU 614 zu einer entsprechenden Prädiktions-CU 626 hinzugefügt werden, die mittels Intraprädiktion bei 622 oder Interprädiktion bei 624 gefunden wurde, um eine rekonstruierte CU 618 zu finden. In einigen Ausführungsformen kann der Decoder die Prädiktions-CU 626 unter Verwendung von Template-Matching für Intraprädiktion finden.
  • Bei 620 kann eine oder mehrere Filter auf die rekonstruierten Daten beispielsweise auf einem Bildlevel, oder CU-Level angewendet werden. Beispielsweise kann der Decoder einen Deblocking-Filter, einen Sample Adaptive Offset Filter (SAO) und/oder einen Adaptive Loop Filter (ALF) verwenden. Wie zuvor beschrieben können die in der Decodingschleife des Encoders angeordneten in der Schleife befindlichen Filter verwendet werden, um optimale Filterparameter zu schätzen, um die objektive und subjektive Qualität eines Frames zu verbessern. Diese Parameter werden zu dem Decoder übertragen, um das rekonstruierte Frame bei 620 zu filtern, um das gefilterte rekonstruierte Frame in dem Encoder zuzuordnen.
    Nach dem rekonstruierte Bilder durch Finden rekonstruierter CUs 618 und Anwenden der mitgeteilten Filter erzeugt wurden, kann der Decoder die rekonstruierten Bilder als Ausgangsvideo 628 ausgeben. Wenn die rekonstruierten Bilder als Referenzbilder verwendet werden sollen, können diese in einem Referenzpuffer 630 für die Interprädiktion zukünftiger CUs 102 bei 624 gespeichert werden. In einigen Ausführungsformen kann der von einem JVET Decoder empfangene Bitstrom Syntax enthalten, die identifiziert, welcher Intraprädiktionsmodus zu Encodieren einer CU 102 mit Intraprädiktion verwendet wurde, so dass der Decoder direkt den mitgeteilten Intraprädiktionsmodus bei 622 zum Erzeugen einer Prädiktions-CU 626 verwenden kann. In einigen Ausführungsformen kann diese Syntax weggelassen werden, um Aufwand durch Verminderung der Anzahl von Bits in dem Bitstrom zu sparen. In diesen Ausführungsformen, bei denen der Decoder nicht mit einer Angabe darüber, welcher Prädiktionsmodus zum Encodieren einer CU 102 verwendet wurde, versorgt wird, kann der Decoder Template-Matching zur Intraprädiktion bei 622 benutzen, um den Intraprädiktionsmodus abzuleiten, den der Decoder zum Erzeugen einer Prädiktions-CU 626 verwenden soll. In einigen Ausführungsformen, kann ein Encoder ähnlich Template-Matching zur Intraprädiktion bei 404 benutzen, wenn er eine Prädiktions-CU 402 zum Kombinieren mit einer rekonstruierten Rest-CU 430 bei 432 innerhalb seiner Decodierungsschleife erzeugt.
  • Wie hierin beschrieben, ist Intracodierung das Hauptwerkzeug für Videokompression. Es verwendet die räumlichen Nachbarn eines Pixels, um einen Prädiktor zu erzeugen, aus dem ein Prädiktionsrest zwischen dem Pixel und seinem Prädiktor bestimmt wird. Der Videoencoder komprimiert dann die Reste, was in dem Codierungsbitstrom resultiert. Der sich entwickelnde Videocodierungsstandard, JVET, erlaubt 67 mögliche Intraprädiktionsmodi, einschließlich Planarmodus, DC-Modus, und 65 Winkelrichtungsmodi, wie in 5 dargestellt. Jeder Intraprädiktionsmodus hat eine einzigartige Prädiktionserzeugungsmethode, basierend auf entweder dem linksseitigen Nachbarn oder oberseitigen Nachbarn. Jede Intracodierungseinheit (CU) wählt wenigstens einen zu verwendenden Intraprädiktionsmodus aus, der als Overhead in dem Bitstrom mitgeteilt werden muss. Wo beispielsweise eine einzelne CU einen Luma-Codierungsblock und zwei Chroma-Codierungsblöcke enthält, kann jeder Luma-Codierungsblock und Chroma-Codierungsblock seinen eigenen Intraprädiktionsmodus haben. Daher können mehrere Intraprädiktionsmodi identifiziert werden, wenn diese in den Bitstrom mitgeteilt werden.
  • Hierin werden verschiedene Verfahren zur Implementierung und verbesserten Intraprädiktionscodierungstechnik unter Verwendung einer verfeinerten Planarprädiktion offenbart. In Ausführungsformen werden die bei der Intraprädiktion verwendeten benachbarten Pixel mit größerer Genauigkeit berechnet, was in einer effizienteren und genaueren Prädiktion von Pixeln innerhalb des momentanen Codierungsblocks resultiert. Der Planarmodus ist häufig der am meisten benutzte Intracodierungsmodus bei HEVC und JVET. Der Planarmodus ist häufig für Blöcke mit einem glatten Bild geeignet, dessen Pixelwerte sich graduell mit einem kleinen planaren Gradienten ändern. Die 7a und 7b zeigen den HEVC und JVET planaren Prädiktor Generationsprozess für eine Codierungseinheit (Block) 702 mit Höhe H=8 und Breite W=8, wobei die (0,0) Koordinaten der oberen linken (TL) Position 704 innerhalb der Coding-CU entspricht, wobei die TL-Position 718 ein oberer linker benachbarter Eckenpixel ist. TR 706 bezeichnet die obere rechte Position und BL 708 bezeichnet die linke untere Position. Die gestrichelte Linie 710 gibt Interpolation an und die gepunktete Linie 712 gibt Replikation an. 7a zeigt die horizontale Prädiktorberechnung und 7b zeigt eine vertikale Prädiktorberechnung.
  • Der Planarmodus in HEVC und JVET (HEVC Planar) erzeugt eine Näherung erster Ordnung der Prädiktion für eine momentane Kodierungseinheit (CH) durch Bilden einer auf den Intensitätswerten benachbarter Pixel basierenden Ebene. Aufgrund einer Raster-Scan-Kodierungsordnung sind die rekonstruierten die linke Spalte der benachbarten Pixel 714 und die rekonstruierten die obere Reihe benachbarten Pixel 716 für einen momentanen Kodierungsblock 702 verfügbar, nicht jedoch die rechts der Spalte benachbarten Pixel und die der unteren Reihe benachbarten Pixel. Der Planarprädiktorerzeugungsprozess stellt die Intensitätswerte aller rechtsspaltigen benachbarten Pixel auf denselben Intensitätswert wie die oben rechts benachbarten Pixel 706 ein und die Intensitätswerte aller Pixel der unteren Reihe auf denselben Intensitätswert der unten links benachbarten Pixel 708.
  • Sobald die benachbarten Pixel, die den Prädiktionsblock umgeben, definiert sind, werden der horizontale und der vertikale Prädiktor (Ph(x,y) bzw. Pv(x,y)) für jeden Pixel innerhalb des momentanen Kodierungsblock 702 entsprechend der nachstehenden Gleichungen (1) und (2) bestimmt. P h ( x , y ) = ( W 1 x ) R ( 1, y ) + ( x + 1 ) R ( W , 1 )
    Figure DE112017006638T5_0001
    P v ( x , y ) = ( H 1 y ) R ( x , 1 ) + ( y + 1 ) R ( 1, H )
    Figure DE112017006638T5_0002
    wobei:
    • R(x, y) den Intensitätswert des rekonstruierten benachbarten Pixels an den Koordinaten (x, y) bezeichnet,
    • W die Blockbreite bezeichnet und
    • H die Blockhöhe bezeichnet.
  • Wie in 7A dargestellt, wird ein horizontaler Prädiktor durch Bezugnahme auf das rekonstruierte Reference Sample Ly 722, einen Pixel in der linken Spalte benachbarter Pixel 714, die an derselben y-Koordinate als das momentane Sample C 724 ist und Bezugnahme auf Sample Ty 726, das eine Kopie des zuvor rekonstruierten Samples TR 718 ist, das benachbart zu dem oberen rechten Pixel der Kodierungseinheit ist, interpoliert. Daher wird der horizontale Prädiktor unter Verwendung linearer Interpolation zwischen einem Wert eines jeweiligen horizontalen Randpixels und eines Wertes eines vertikalen Randpixels berechnet.
  • Wie in 7B dargestellt, wird ein vertikaler Prädiktor aus dem rekonstruierten Sample Tx 728 aus der oberen Reihe benachbarter Pixel an derselben x-Koordinate als der momentane Prädiktionspixel C und Reference Sample Lx 730, das eine Kopie des zuvor rekonstruierten Samples BL 708 ist, ein benachbarter linker Pixel der benachbart zu dem unteren linken Sample der Kodierungseinheit ist, interpoliert. Daher wird der vertikale Prädiktor unter Verwendung linearer Interpolation zwischen einem Wert eines jeweiligen vertikalen Randpixels und einem Wert eines horizontalen Randpixels berechnet.
  • Sobald der horizontale und vertikale Prädiktor für einen Kodierungseinheitspixel bestimmt sind, kann der endgültige Prädiktor bestimmt werden. Für jeden Pixel in einem Kodingblock ist der endgültige planare Prädiktor, P(x, y), der Intensitätswert, der durch Mitteln des horizontalen und vertikalen Prädiktors entsprechend Gleichung (3) mit gewissen Einstellungen in Ausführungsformen, in denen die momentane CU oder der Kodierungsblock nicht quadratisch sind. P ( x , y ) = ( H P h ( x , y ) + W P v ( x , y ) ) / ( 2 H W )
    Figure DE112017006638T5_0003
  • Der Encoder kann ebenso einen Rest zwischen der Prädiktions-Kodierungseinheit und der momentanen Kodierungseinheit in dem Bitstrom an den Decoder mitteilen.
  • Bestimmte Randbedingungen bei dem momentanen Planarmodus bei JVET können Kodierungsineffizienzen hervorrufen. Wie zuvor beispielsweise beschrieben, werden sämtliche rechtsspaltigen benachbarten Pixel auf denselben Intensitätswert gesetzt, welches der Wert des oben rechts benachbarten Pixels ist. Ähnlich kann die gesamte untere Reihe benachbarter Pixel auf denselben Intensitätswert gesetzt werden, der der Wert des unten links benachbarten Pixels ist. Das Einstellen aller rechtsspaltigen Pixel auf denselben und aller unteren Reihe Pixel auf denselben Wert steht in Konflikt mit der planaren Prädiktionsannahme. Daher können diese Randbedingungen eine Abweichung des planaren Prädiktionsblock von einer ideal flachen Ebene verursachen. 8 zeigt ein Beispiel einer planaren Prädiktionsebene bei der JVET-Methode, die von einer flachen Ebene abweicht (TR bezeichnet die Position oben rechts und BL bezeichnet die Position unten links).
  • Ferner werden hierin Ausführungsformen zum Ableiten eines Intensitätswerts eines unteren rechten benachbarten Pixels P(W, H) für einen momentanen Kodierungsblock offenbart. In Ausführungsformen kann die Kodierungseinheit der kleinste Kodierungsblock/die kleinsten Kodierungsblöcke innerhalb einer CTU, die codiert wird, sein. In Ausführungsformen kann eine Kodierungseinheit Luma- und Chroma-Kodierungsblocks, die unabhängig codiert werden, enthalten. Die vorgeschlagenen Verfahren beinhalten das Berechnen eines Intensitätswerts des unteren rechten benachbarten Pixels (lifting) und dann das Berechnen der Intensitätswerte der unteren Reihe und der rechten Spalte benachbarter Pixel unter Verwendung des abgeleiteten Intensitätswertes des unteren rechten benachbarten Pixels zusammen mit den Intensitätswerten anderer zur Ecke benachbarter Pixel, wie dem oben rechts benachbarten Pixel und dem unten links benachbarten Pixel. Es sollte beachtet werden, dass ein Eckpixel an den Koordinaten x=0, y=0 innerhalb des Kodierungsblocks unterschiedlich von den zur Ecke benachbarten Pixeln (beispielsweise P(W, H)) ist, die außerhalb des Kodierungsblocks sind.
  • Ein Beispiel eines Lifting-Verfahrens ist ein gewichteter Durchschnitt des oberen rechten und des unteren linken benachbarten Pixels, wie in Gleichung (4) definiert. P ( W , H ) = ( W R ( W , 1 ) + H R ( 1, H ) ) / ( H + W )
    Figure DE112017006638T5_0004
  • Ein weiteres Beispiel für einen Lifting-Prozess ist das Aufrechterhalten einer flachen Ebene, basierend auf dem Intensitätswert der oben links, oben rechts und unten links benachbarten Pixel, wie in Gleichung (5) definiert. P ( W , H ) = R ( W , 1 ) + R ( 1, H ) R ( 1, 1 )
    Figure DE112017006638T5_0005
  • 9 illustriert den planaren Prädiktionsblock, der basierend auf Gleichung (5) erzeugt wurde, wobei die Eckintensitätswerte identisch zu einem Beispiel in 8 sind. Wie dargestellt, resultiert eine flache planare Prädiktionsebene aus der Verwendung von Gleichung (5), wenn dieselben drei Eckpunkte wie in 8 gegeben sind (TR bezeichnet die Position oben rechts, TL bezeichnet die Position oben links und BL bezeichnet die Position unten links).
  • Mit dem abgeleiteten Intensitätswert des unten rechts benachbarten Pixels von P(W, H) können die Intensitätswerte der unteren Reihe benachbarter Pixel,
    Pb(x, H), und die rechte Spalte benachbarter Pixel, Pr(W, y), entsprechend berechnet werden. Ein Beispiel für eine solche Berechnung folgt linearer Interpolation entsprechend der Gleichungen (6) und (7). P b ( x , H ) = ( W 1 x ) R ( 1, H ) + ( x + 1 ) P ( W , H ) W .
    Figure DE112017006638T5_0006
    P r ( W , y ) = ( H 1 y ) R ( W , 1 ) + ( y + 1 ) P ( W , H ) H
    Figure DE112017006638T5_0007
  • Sobald die benachbarten Pixel, die den momentanen Kodierungsblock umgeben, definiert sind, werden der horizontale und der vertikale Prädiktor (Ph(x, y) und Pv(x, y)) für jeden Pixel innerhalb des Kodierungsblocks entsprechend der nachfolgenden Gleichungen (8) und (9) bestimmt. P h ( x , y ) = ( W 1 x ) R ( 1, y ) + ( x + 1 ) P r ( W , y )
    Figure DE112017006638T5_0008
    P v ( x , y ) = ( H 1 y ) R ( x , 1 ) + ( y + 1 ) P b ( y , H )
    Figure DE112017006638T5_0009
  • Es sollte beachtet werden, dass in Gleichungen (8) und (9) Ph(x, y) und Pv(x, y) als hochskalierte Version der horizontalen und vertikalen Prädiktoren gezeigt sind. Diese Faktoren werden in dem letzten Prädiktorberechnungsschritt kompensiert.
  • Es kann ebenso vorteilhaft sein, gefilterte Versionen der benachbarten Pixelintensität anstelle der eigentlich benachbarten Pixelintensität zum Anheben eines Teils der Einstellung der Position unten rechts zu verwenden. Dies trifft vor allem zu, wenn der zu kodierende Inhalt rauschig ist. Ein Beispiel für eine solche Filteroperation 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 DE112017006638T5_0010
    R ' ( W , 1 ) = ( R ( W 3, 1 ) + 3 R ( W 2, 1 ) + 5 R ( W 1, 1 ) + 7 R ( W , 1 ) ) 16
    Figure DE112017006638T5_0011
  • Ein weiteres Beispiel für eine Filteroperation ist in den Gleichungen (10a) und (11 a) beschrieben. R ' ( 1, H ) = ( R ( 1, H 2 ) + 2 R ( 1, H 1 ) + 5 R ( 1, H ) ) 8
    Figure DE112017006638T5_0012
    R ' ( W , 1 ) = ( R ( W 2, 1 ) + 2 R ( W 1, 1 ) + 5 R ( W , 1 ) ) 8
    Figure DE112017006638T5_0013
  • Die Filteroperation kann wahlweise verwendet werden, basierend darauf, ob ein benachbarter Pixel bereits durch einen vorhergehenden Prozess gefiltert wurde (wie etwa mode dependent intra smoothing bei HEVC). Bei Ausführungsformen, in denen benachbarte Pixel noch nicht von einem vorherigen Prozess gefiltert wurden, wird die Filteroperation verwendet. Anderenfalls wird die Filteroperation nicht verwendet.
  • Alternativ kann es vorteilhaft sein, die obere rechte und die untere linke Eckposition jeweils auf R(W -1, -1) und R(-1, H -1) einzustellen. In dieser Situation kann die Interpolation für zwischen Prädiktoren beschrieben werden als ein Beispiel durch die Gleichungen (12) bis (16). P ( W 1, H 1 ) = ( W R ( W 1, 1 ) + H R ( 1, H 1 ) ) / ( H + W )
    Figure DE112017006638T5_0014
    P b ( x , H 1 ) = ( W 1 x ) R ( 1, H 1 ) + ( x + 1 ) P ( W 1, H 1 ) W .
    Figure DE112017006638T5_0015
    P r ( W 1, y ) = ( H 1 y ) R ( W 1, 1 ) + ( y + 1 ) P ( W 1, H 1 ) W
    Figure DE112017006638T5_0016
    P h ( x , y ) = ( W 1 x ) R ( 1, y ) + ( x + 1 ) P r ( W 1, y )
    Figure DE112017006638T5_0017
    P v ( x , y ) = ( H 1 y ) R ( x , 1 ) + ( y + 1 ) P b ( x , H 1 )
    Figure DE112017006638T5_0018
  • Die Ausführung der Folge von Instruktionen, die zur Durchführung der Ausführungsformen erforderlich sind, können durch ein Computersystem 1000, das in 10 dargestellt ist, durchgeführt werden. In einer Ausführungsform wird die Ausführung der Folge von Instruktionen durch ein einziges Computersystem 1000 durchgeführt. Entsprechend anderer Ausführungsformen können zwei oder mehr Computersysteme 10, die mittels einer Kommunikationsverbindung 1015 verbunden sind, die Folge von Instruktionen in Koordinierung miteinander durchführen. Obwohl eine Beschreibung in Bezug auf lediglich ein Computersystem 1000 nachfolgend vorgenommen wird, sollte beachtet werden, dass jede Anzahl von Computersystemen 10 zur Durchführung der Ausführungsformen verwendet werden kann.
  • Ein Computersystem 1000 entsprechend einer Ausführungsform wird nunmehr mit Bezug auf 10 beschrieben, die ein Blockdiagramm der funktionalen Komponenten eines Computersystems 1000 zeigt. Wie hierin verwendet, wird der Begriff Computersystem 1000 weit verstanden, um jegliche Computervorrichtung zu beschreiben, die ein oder mehrere Programme speichern und unabhängig voneinander ausführen kann.
  • Jedes Computersystem 1000 kann eine Kommunikationsschnittstelle 1014 enthalten, die mit dem Bus 1006 gekoppelt ist. Die Kommunikationsschnittstelle 1014 stellt eine Zwei-Wege-Kommunikation zwischen Computersystemen 1000 bereit. Die Kommunikationsschnittstelle 1014 eines jeweiligen Computersystems 1000 überträgt und empfängt elektrische, elektromagnetische oder optische Signale, die Datenströme enthalten, die unterschiedliche Arten von Signalinformation, beispielsweise Anweisungen, Nachrichten und Daten enthalten. Eine Kommunikationsverbindung 1015 verbindet ein Computersystem 1000 mit einem anderen Computersystem 1000. Beispielsweise kann die Kommunikationsverbindung 1015 ein LAN sein, wobei in diesem Fall die Kommunikationsschnittstelle 1014 eine Netzwerkkarte ist, oder die Kommunikationsverbindung 1015 kann ein PSTN sein, wobei in diesem Fall die Kommunikationsschnittstelle 1014 eine Integrated Services Digital Network (ISDN)-Karte oder -Modem sein kann, oder die Kommunikationsverbindung 1015 kann das Internet sein, wobei in diesem Fall die Kommunikationsschnittstelle 1014 ein Einwahlmodem, Kabelmodem oder drahtloses Modem sein.
  • Ein Computersystem 1000 kann Nachrichten, Daten und Anweisungen einschließlich Programme, d.h. Anwendungen, Code senden und empfangen, über seine jeweilige Kommunikationsverbindung 1015 und die Kommunikationsschnittstelle 1014. Empfangener Programmcode kann durch den jeweiligen Prozessor/die jeweiligen Prozessoren 1007 ausgeführt werden, wenn es empfangen wurde und/oder in der Speichereinrichtung 1010 oder anderen assoziierten, nicht flüchtigen Medien für die spätere Ausführung gespeichert werden.
  • In einer Ausführungsform arbeitet das Computersystem 1000 mit einem Datenspeichersystem 1031, beispielsweise einem Datenspeichersystem 1031, das eine Datenbank 1032 enthält, zusammen, die bequem durch das Computersystem 1000 zugänglich ist. Das Computersystem 1000 kommuniziert mit dem Datenspeichersystem 1031 mittels einer Datenschnittstelle 1033. Eine Datenschnittstelle 1033, die mit dem Bus 1006 gekoppelt ist, überträgt und empfängt elektrische, elektromagnetische oder optische Signale, die Datenströme enthalten, die verschiedene Arten von Signalinformation, beispielsweise Anweisungen, Nachrichten und Daten, repräsentieren. In einigen Ausführungsformen kann die Funktion der Datenschnittstelle 1033 durch die Kommunikationsschnittstelle 1014 ausgeführt werden.
  • Das Computersystem 1000 enthält einen Bus 1006 oder anderen Kommunikationsmechanismus zum Kommunizieren von Anweisungen, Nachrichten und Dateninformation, um einen oder mehrere Prozessoren 1007, die mit dem Bus 1006 zum Verarbeiten von Information gekoppelt sind. Das Computersystem 1000 enthält ebenso einen Hauptspeicher 1008, wie beispielsweise einen Arbeitsspeicher (RAM) oder andere dynamische Speichereinrichtungen, die mit dem Bus 1006 zum Speichern dynamischer Daten und Anweisungen, die durch den Prozessor/die Prozessoren 1007 ausgeführt werden sollen, gekoppelt ist. Der Hauptspeicher 1008 kann auch zum Speichern temporärer Daten, d.h. Variablen oder anderer Zwischeninformation, während der Ausführung von Anweisungen durch den Prozessor/die Prozessoren 1007 verwendet werden.
  • Das Computersystem 1000 kann ferner einen Nur-Lesespeicher (ROM) 1009 oder andere mit dem Bus 1006 gekoppelte statische Speichereinrichtungen zum Speichern statischer Daten und Anweisungen für den Prozessor/die Prozessoren 1007 enthalten. Eine Speichereinrichtung 1010, wie beispielsweise eine magnetische Diskette oder optische Diskette, kann ebenso vorgesehen und mit dem Bus 1006 zum Speichern von Daten und Instruktionen für den Prozessor/die Prozessoren 1007 vorgesehen sein.
  • Ein Computersystem 1000 kann über den Bus 1006 mit einer Display-Einrichtung 1011 gekoppelt sein, enthaltend, aber nicht beschränkt auf einen Röhrenmonitor (CRT) oder einen Flüssigkristallmonitor (LCD) zum Anzeigen von Information für den Nutzer. Eine Eingabeeinrichtung 1012, beispielsweise alphanumerische und andere Tasten, sind mit dem Bus 1006 zum Kommunizieren von Information und Befehlsauswahlen an den Prozessor/die Prozessoren 1007 vorgesehen.
  • Entsprechend einer Ausführungsform führt ein individuelles Computersystem 1000 spezifische Operationen aus, in dem sein jeweiliger Prozessor/seine jeweiligen Prozessoren 1007 ein oder mehrere Folgen von einer oder mehrerer Anweisungen, die in dem Hauptspeicher 1008 enthalten sind, ausführen. Derartige Anweisungen können in den Hauptspeicher 1008 von einem anderen Computer verwendbarem Medium, wie dem ROM 1009 oder der Speichereinrichtung 1010, eingelesen werden. Die Ausführung der Folgen von Anweisungen, die in dem Hauptspeicher 1008 enthalten sind, bewirkt, dass der Prozessor/die Prozessoren 2007 die hierin beschriebenen Verfahren durchführen. In alternativen Ausführungsformen können fest verdrahtete Schaltkreise anstelle oder in Kombination mit Software-Anweisungen verwendet werden. Daher sind die Ausführungsformen nicht auf eine spezifische Kombination aus Hardware-Schaltkreisen und/oder Software beschränkt.
  • Der Begriff „computerverwendbares Medium“, wie er hierin verwendet wird, bezieht sich auf jegliches Medium, das Information bereitstellt oder von dem Prozessor/den Prozessoren 1007 verwendbar ist. Ein solches Medium kann verschiedene Formen annehmen, einschließlich, aber nicht beschränkt auf nicht flüchtige, nicht flüchtige Medien und Übertragungsmedien. Nicht flüchtige Medien, d.h. Medien, die Informationen auch in Abwesenheit von Energie behalten können, umfassen den ROM 1009, CD-ROM, Magnetband und magnetische Disketten. Flüchtige Medien, d.h. Medien, die Information in Abwesenheit von Energie nicht behalten können, umfassen den Hauptspeicher 1008. Übertragungsmedien umfassen Koaxialkabel, Kupferdrähte und optische Fasern, einschließlich der Drähte, die den Bus 1006 bilden. Übertragungsmedien können auch die Form von Trägerwellen annehmen; d.h. elektromagnetische Wellen, die in Frequenz, Amplitude oder Phase moduliert werden können, um Informationssignale zu übertragen. Zusätzlich können Übertragungsmedien die Gestalt von Akustik- oder Lichtwellen annehmen, wie diejenigen, die während Radioübertragungen und Infrarotdatenkommunikation erzeugt werden. In der vorangegangenen Beschreibung wurden die Ausführungsformen mit Bezug auf spezifische Elemente beschrieben. Es ist jedoch ersichtlich, dass unterschiedliche Modifikationen und Veränderungen gemacht werden können, ohne vom breiteren Geist und Umfang der Ausführungsformen abzuweichen. Beispielsweise sollte der Leser verstehen, dass die spezifische Reihenfolge und Kombination der Verfahrensschritte, die in den Verfahrensflussdiagrammen gezeigt und hierin beschrieben ist, lediglich Darstellungszwecken dient und dass unterschiedliche oder zusätzliche Verfahrensschritte oder eine andere Kombination oder Reihenfolge der Verfahrensschritte verwendet werden kann, um die Ausführungsformen zu verwirklichen. Die Beschreibung und Zeichnungen sind dementsprechend darstellungsmäßig und nicht einschränkend zu verstehen.
  • Es sollte auch beachtet werden, dass die vorliegende Erfindung auf einer Reihe von Computersystemen verwirklicht werden kann. Die unterschiedlichen hierin beschriebenen Verfahren können in Hardware oder Software oder einer Kombination aus beidem implementiert werden. Vorzugsweise werden die Verfahren in Computerprogrammen implementiert, die auf programmierbaren Computern ausgeführt werden, die einen Prozessor, ein von dem Prozessor lesbares Speichermedium (einschließlich flüchtiger und nicht flüchtiger Speicher und/oder Speicherelemente), wenigstens eine Eingabeeinrichtung und wenigstens eine Ausgabeeinrichtung enthalten. Programmcode wird auf mittels der Eingabeeinrichtung eingegebene Daten angewandt, um die zuvor beschriebenen Funktionen auszuführen und Ausgabeinformation zu erzeugen. Die Ausgabeinformation wird auf eine oder mehrere Ausgabeeinrichtungen angewandt. Jedes Programm ist vorzugsweise in einer höheren prozeduralen oder objektorientierten Programmiersprache zum Kommunizieren mit einem Computersystem implementiert. Jedoch können die Programme auch in Assembly oder Maschinensprache, wenn gewünscht, implementiert sein. In jedem Fall kann die Sprache eine kompilierte oder interpretierte Sprache sein. Jedes solches Computerprogramm ist vorzugsweise auf einem Speichermedium oder Speichereinrichtung (beispielsweise ROM oder magnetische Diskette) gespeichert, die auf einem programmierbaren Universalcomputer oder Spezialcomputer lesbar ist, zum Konfigurieren und Betreiben des Computers, wenn das Speichermedium oder die Speichereinrichtung von dem Computer gelesen wird, um die zuvor beschriebenen Prozeduren auszuführen. Das System kann ebenso als computerlesbares Speichermedium implementiert werden, das mit einem Computerprogramm konfiguriert ist, wobei das derart konfigurierte Speichermedium bewirkt, dass ein Computer auf spezifische Weise und vordefinierte Weise betrieben wird. Ferner können die Speicherelemente der beispielhaften Computeranmeldung relational oder sequenziell (flat file) Computerdatenbanken sein, die in der Lage sind, Daten in unterschiedlichen Kombinationen und Konfigurationen zu speichern.
  • 11 ist ein Flussdiagramm, das ein Verfahren zum Durchführen der offenbarten Verfahren zeigt, aber es sollte beachtet werden, dass die hierin beschriebenen Verfahren mit Bezug auf die verbleibenden Figuren auf ähnliche Weise die zur Verfügung stehenden Verfahren umfassen. Wie in 11 dargestellt, umfasst das Verfahren bei 1102 das Berechnen eines Intensitätswerts eines unten rechts benachbarten Pixels des momentanen Kodierungsblocks, wie eine Kodierungseinheit oder eines Luma- oder Chromablocks. Bei 1104 kann der untere rechte Intensitätswert mit einem benachbarten Pixel aus der Spalte von vertikalen Randpixeln auf der linken Seite des momentanen Kodierungsblocks verwendet werden, um die Intensitätswerte der benachbarten Pixel in einer Reihe entlang der Unterseite des momentanen Blocks zu berechnen. Bei 1106 kann der untere rechte Intensitätswert mit einem Intensitätswert eines benachbarten Pixels aus der Reihe von horizontalen Randpixeln auf der Oberseite des momentanen Kodierungsblocks verwendet werden, um den Intensitätswert für die benachbarten Pixel in einer Spalte entlang der rechten Seite des momentanen Blocks zu berechnen. Das Verfahren umfasst bei 1108 und 1110 ferner das Berechnen eines ersten und zweiten Prädiktors und bei 1112 umfasst das Verfahren das Ableiten des Prädiktionspixelwerts aus dem ersten und zweiten Prädiktor, wobei eine Mehrzahl von Prädik-tionspixelwerten einen Prädiktionsblock bilden.
  • 12 ist eine hochlevelige Ansicht eines Source Device 12 und eines Destination Device 10, die Merkmale der hierin beschriebenen Systeme und Devices enthalten können. Wie in 12 dargestellt, enthält das beispielhafte Videokodierungssystem 10 ein Source Device 12 und ein Destination Device 14, wobei in diesem Beispiel das Source Device 12 enkodierte Videodaten erzeugt. Entsprechend kann Source Device 12 auch als Video Encoding Device bezeichnet werden. Das Destination Device 14 kann die von dem Source Device 12 erzeugten enkodierten Videodaten dekodieren. Entsprechend kann das Destination Device 14 als Video Decoding Device bezeichnet werden. Das Source Device 12 und das Destination Device 14 können Beispiele von Videokodierungsvorrichtungen sein.
  • Das Destination Device 14 kann über einen Kanal 16 enkodierte Videodaten von dem Source Device 12 empfangen. Der Kanal 16 kann eine Art von Medium oder ein Device aufweisen, das geeignet ist, die enkodierten Videodaten von dem Source Device 12 zu dem Destination Device 14 zu bewegen. In einem Beispiel kann der Kanal 16 ein Kommunikationsmedium umfassen, das es dem Source Device 12 ermöglicht, enkodierte Videodaten direkt zu dem Destination Device 14 in Echtzeit zu übertragen.
  • In diesem Beispiel kann das Source Device 12 die enkodierten Videodaten entsprechend einem Kommunikationsstandard modulieren, wie einem drahtlosen Kommunikationsprotokoll, und kann die modulierten Videodaten zum Destination Device 14 übertragen. Das Kommunikationsmedium kann ein drahtloses oder drahtgebundenes Kommunikationsmedium, wie etwa ein Radiofrequenzspektrum (RF) oder eine oder mehrere physische Übertragungsleitungen umfassen. Das Kommunikationsmedium kann Teil eines paketbasierten Netzwerks wie etwa eines lokalen Netzwerks, eines Großraumnetzwerks oder eines globalen Netzwerks, wie etwa das Internet, sein. Das Kommunikationsmedium kann Router, Switches, Basisstationen oder andere Ausrüstung enthalten, welche die Kommunikation von dem Source Device 12 zu dem Destination Device 14 erleichtern. In einem anderen Beispiel kann der Kanal 16 einem Speichermedium, welches die von dem Source Device 12 erzeugten enkodierten Videodaten speichert, entsprechen.
  • In dem Beispiel aus 12 enthält das Source Device 12 eine Videoquelle 18, einen Video-Enkoder 20 und eine Ausgabeschnittstelle 22. In einigen Fällen kann das Ausgabeinterface 28 einen Modulator/Demodulator (Modem) und/oder einen Transmitter enthalten. Im Source Device 12 kann die Videoquelle 18 eine Quelle wie etwa eine Videoaufnahmeeinrichtung, beispielsweise eine Videokamera, ein Videoarchiv, das zuvor aufgenommene Videodaten enthält, oder eine Video Feed Schnittstelle zum Empfangen von Videodaten von einem Video Content Provider und/oder Computer-Graphiksystem zum Erzeugen von Videodaten oder eine Kombination von solchen Quellen enthalten.
  • Der Video-Enkoder 20 kann die aufgenommenen, voraufgenommenen oder computergenerierten Videodaten enkodieren. Eine Eingabebild kann von dem Video-Enkoder 20 empfangen und in dem Eingangsframespeicher 21 gespeichert werden. Der Allzweckprozessor 23 kann die Information von dort laden und die Enkodierung durchführen. Das Programm zum Betreiben des Allzweckprozessors kann von einer Speichereinrichtung, wie etwa den in 12 dargestellten Speichermodulen, geladen werden.
  • Der Allzweckprozessor kann Prozessorspeicher 22 zum Durchführen des Enkodierens benutzen und die Ausgabe der enkodierten Information von dem Allzweckprozessor kann in einem Puffer, wie dem Ausgangspuffer 26, gespeichert werden.
  • Der Video-Enkoder 20 kann ein Resampling Modul 25 enthalten, das ausgebildet ist, Videodaten in einem skalierbaren Kodierungsschema zu kodieren (beispielsweise zu enkodieren), das wenigstens eine Basisschicht und wenigstens eine Verstärkungsschicht definiert. Das Resampling Modul 25 kann wenigstens einige Videodaten als Teil des Enkodierungsprozesses resamplen, wobei das Resampling auf adaptive Weise unter Verwendung von Resampling Filtern durchgeführt werden kann.
  • Die enkodierten Videodaten, beispielsweise ein kodierter Bitstrom, können direkt zu dem Destination Device 14 über die Ausgabeschnittstelle 28 des Source Devices 12 übertragen werden. In dem Beispiel aus 12 enthält das Destination Device 14 eine Eingabeschnittstelle 38, einen Video-Dekoder 30 und eine Display-Einrichtung 32. In einigen Fällen kann die Eingabeschnittstelle 28 einen Empfänger und/oder ein Modem enthalten. Die Eingabeschnittstelle 38 des Destination Device 14 empfängt die enkodierten Videodaten über den Kanal 16. Die enkodierten Videodaten können eine Variation von durch den Video-Enkoder 20 erzeugten Syntaxelementen enthalten, welche die Videodaten repräsentieren. Derartige Syntaxelemente können in den enkodierten Videodaten enthalten sein, die über ein Kommunikationsmedium übertragen, auf einem Speichermedium gespeichert oder auf einem Dateiserver gespeichert werden.
  • Die enkodierten Videodaten können auch auf einem Speichermedium oder einem Dateiserver für späteren Zugriff durch das Destination Device 14 zum Dekodieren und/oder Wiedergeben gespeichert werden. Beispielsweise kann der kodierte Bitstrom temporär in dem Eingangspuffer 31 gespeichert und anschließend in den Allzweckprozessor 33 geladen werden. Das Programm zum Betreiben des Allzweckprozessors kann von einer Speichereinrichtung oder einem Speicher geladen werden. Der Allzweckprozessor kann einen Prozessorspeicher 32 zum Durchführen des Dekodierens verwenden. Der Video-Dekoder 30 kann ebenso ein Resampling Modul 35 ähnlich zu dem von dem Video-Enkoder 20 verwendeten Resampling Modul 25 enthalten.
  • 12 zeigt das Resampling Modul 35 getrennt von dem Allzweckprozessor 33, aber der Fachmann erkennt, dass die Resampling Funktion von einem auf dem Allzweckprozessor ausgeführten Programm durchgeführt werden kann und dass das Verarbeiten in dem Video-Enkoder durch Verwenden eines oder mehrerer Prozessoren erreicht werden kann. Die dekodierten Bilder können in dem Ausgangs-Frame-Buffer 36 gespeichert und sodann an die Eingabeschnittstelle 38 ausgesendet werden.
  • Die Display-Einrichtung 38 kann in das Destination Device 14 integriert oder extern sein. In einigen Beispielen kann das Destination Device 14 eine integrierte Display-Einrichtung enthalten und kann ebenso ausgebildet sein, mit einer externen Display-Einrichtung zusammenzuarbeiten. In anderen Beispielen kann das Destination Device 14 eine Display-Einrichtung sein. Allgemein zeigt die Display-Einrichtung 38 die dekodierten Videodaten einem Nutzer an.
  • Der Video-Enkoder 20 und Video-Dekoder 30 können entsprechend einem Video-Kompressionsstandard betrieben werden. ITU-T VCEG (Q6/16) und ISO/IEC MPEG (JTC 1/SC 29/WG 11) untersuchen den möglichen Bedarf für die Standardisierung zukünftiger Video-Kodierungstechnologie mit einer Kompressionsfähigkeit, die signifikant über den momentanen High Efficiency Video Coding HEVC-Standard hinausgeht (einschließlich seiner derzeitigen Erweiterungen und kurzfristigen Erweiterungen für Bildschirminhalt-Kodierung und High Dynamic Range Kodierung). Die Gruppen arbeiten bei diesen Entdeckungsaktivitäten in einer gemeinsamen Kollaboration zusammen, die als Joint Video Exploration Team (JVET) bekannt ist, um die von ihren Experten auf diesem Gebiet vorgeschlagenen Kompressionstechnologie-Designs zu evaluieren. Ein kürzlicher Stand der JVET-Entwicklung ist 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, beschrieben.
  • Alternativ oder zusätzlich können der Video-Enkoder 20 und der Video-Dekoder 30 entsprechend anderer proprietärer oder industrieller Standards, die mit den offenbarten JVET-Merkmalen funktionieren, betrieben werden. Daher können auch andere Standards, wie etwa ITU-T H.264 Standard, auch genannt MPEG-4, Part 10, Advanced Video Coding (AVC), oder Erweiterungen solcher Standards verwendet werden. Daher sind die hierin offenbarten Verfahren nicht auf einen speziellen Kodierungsstandard oder Kodierungsverfahren beschränkt, obschon sie für den neu entwickelten JVET gedacht sind. Andere Beispiele von Video-Kompressionsstandards und -Verfahren umfassen MPEG-2, ITU-T H.263 und proprietäre oder Open Source Kompressionsformate und verwandte Formate.
  • Der Video-Enkoder 20 und der Video-Dekoder 30 können in Hardware, Software, Firmware oder irgendeiner Kombination davon verwirklicht werden. Beispielsweise können der Video-Enkoder 20 und Dekoder 30 einen oder mehrere Prozessoren, digitale Signalprozessoren (DSP), applikationsspezifische integrierte Schaltkreise (ASICs), Field Programmable Gate Arrays (FPGAs), diskrete Logik oder jegliche Kombination davon verwenden. Wenn der Video-Enkoder 20 und Dekoder 30 teilweise in Software implementiert sind, kann ein Device Anweisungen für die Software in geeignetem, nicht flüchtigem computerlesbarem Speichermedium speichern und die Anweisungen in der Hardware unter Verwendung eines oder mehrerer Prozessoren zum Durchführen der Verfahren dieser Offenbarung ausführen. Jeder Video-Enkoder 20 und jeder Video-Dekoder 30 kann in einen oder mehrere Enkoder oder Dekoder, der jeweils auch als Teil eines kombinierten Enkoders/Dekoders in einem entsprechenden Device integriert sein kann (CODEC) enthalten.
  • Aspekte des hierin beschriebenen Gegenstandes können im allgemeinen Kontext computerausführbare Anweisungen, wie Programmmodule, die von einem Computer ausgeführt werden, beschrieben werden, wie z.B. Allzweckprozessoren 23 und 33. Allgemein enthalten Programmmodule Routinen, Programme, Objekte, Komponenten, Datenstrukturen usw., welche spezifische Aufgabe durchführen oder bestimmte abstrakte Datentypen implementieren. Aspekte des hierin beschriebenen Gegenstandes können auch in verteilten Rechnerumgebungen verwirklicht werden, wobei Aufgaben durch Remote Processing Devices, die über ein Kommunikationsnetzwerk verbunden sind, durchgeführt werden. In einer verteilten Rechenumgebung können Prorammmodule sowohl in lokalen als auch Remote-Computerspeichermedien, einschließlich Memory Story Devices, untergebracht sein.
  • Beispiele des Speichers umfassen Random Access Memory (RAM), Read Only Memory (ROM), oder beides. Speicher kann Anweisungen speichern, wie etwa Quellcode oder Binärcode, zum Durchführen der hierin beschriebenen Verfahren. Der Speicher kann ebenso zum Speichern von Variablen oder anderer Zwischeninformation während des Ausführens der durch den Prozessor auszuführenden Anweisungen verwendet werden, wie etwa dem Prozessor 23 und 33.
  • Eine Speichereinrichtung kann ebenso Anweisungen speichern, Anweisungen wie etwa Quellcode oder Binärcode zum Durchführen der hierin beschriebenen Verfahren. Eine Speichereinrichtung kann zusätzlich von dem Computerprozessor verwendete und manipulierte Daten speichern. Beispielsweise kann die Speichereinrichtung in einem Video-Enkoder 20 oder einem Video-Dekoder 30 eine von dem Computersystem 23 oder 33 zugreifbare Datenbank sein. Andere Beispiele für Speichereinrichtungen umfassen Random Access Memory (RAM), Read Only Memory (ROM), eine Festplatte, eine magnetische Diskette, eine optische Diskette, eine CD-ROM, eine DVD, Flash Speicher, USB-Speicherkarten oder jedes andere Medium, von dem ein Computer lesen kann.
  • Ein Speicher oder eine Speichereinrichtung kann ein Beispiel für ein nicht flüchtiges computerlesbares Speichermedium zur Verwendung durch oder in Verbindung mit einem Video-Enkoder und/oder Dekoder sein. Das nicht flüchtige computerlesbare Speichermedium enthält Anweisungen zum Steuern eines Computersystems derart, dass es zum Durchführen der hierin beschriebenen Funktionen und speziellen Ausführungsformen konfiguriert wird. Die Anweisungen, wenn sie von einem oder mehreren Computerprozessoren ausgeführt werden, können konfiguriert sein, hierin beschriebene spezifische Ausführungsformen durchzuführen.
  • Ferner wird darauf hingewiesen, dass einige Ausführungsformen als ein Verfahren beschrieben wurden, das als Flussdiagramm oder Blockdiagramm dargestellt werden kann. Obwohl jedes Diagramm die Operationen als einen sequentiellen Prozess beschreibt, können viele der Operationen parallel oder gleichzeitig ausgeführt werden. Zusätzlich kann die Reihenfolge der Operationen geändert werden. Ein Prozess kann ferner zusätzliche Schritte, die nicht in den Figuren dargestellt sind, enthalten.
  • Einzelne Ausführungsformen können in einem nicht flüchtigen computerlesbaren Speichermedium zur Verwendung durch oder in Verbindung mit dem Anweisungsausführungssystem, -apparat, -system oder -maschine implementiert werden. Das computerlesbare Speichermedium enthält Anweisungen, ein Computersystem derart zu steuern, dass ein Verfahren entsprechend einer hier vorgestellten Ausführungsform durchgeführt wird. Das Computersystem kann ein oder mehrere Computervorrichtungen enthalten. Die Anweisungen, wenn sie von einem oder mehreren Computerprozessoren ausgeführt werden, kann konfiguriert sein, eine bestimmte beschriebene Ausführungsform auszuführen.
  • Wie hierin in der Beschreibung und auch in den Ansprüchen verwendet, enthalten die Artikel „ein/einer/eines“ und „der/die/das“ den Plural, außer aus dem Kontext ergibt sich klar etwas Anderes. Ferner, wie hier in der Beschreibung und in den Ansprüchen verwendet, enthält der Begriff „in“ die Bedeutung „in“ und „auf“, außer aus dem Kontext ergibt sich klar etwas Anderes.
  • Obwohl der Gegenstand in einer Sprache beschrieben worden ist, die sich spezifisch auf die strukturellen Merkmale und/oder Verfahrensschritte bezieht, sollte verstanden werden, dass der durch die angehängten Ansprüche definierte Gegenstand nicht notwendigerweise durch die spezifischen Merkmale oder Schritte, die zuvor beschrieben wurden, beschränkt sind.
  • Obwohl die hierin beschriebenen Ausführungsformen detailliert und in einer Sprache spezifisch für die strukturellen Merkmale und/oder Verfahrensschritte beschrieben worden sind, sollte verstanden werden, dass die Fachleute wahrnehmen, dass viele zusätzliche Modifikationen der Ausführungsbeispiele möglich sind, ohne substantiell von den neuen Lehren und Vorteilen der Erfindung abzuweichen. Überdies sollte verstanden werden, dass der durch die angehängten Ansprüche definierte Gegenstand nicht notwendigerweise auf die spezifischen Merkmale oder Schritte, die zuvor beschrieben wurden, beschränkt ist. Entsprechend können diese und alle Modifikationen, die beabsichtigterweise im Umfang dieser Erfindung enthalten sind, in Übereinstimmung mit den angehängten Ansprüchen in Breite und Umfang ausgelegt werden.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 62/439723 [0001]
    • US 62/440379 [0001]
    • US 62/459797 [0001]
    • US 62/522420 [0001]
    • US 62/482178 [0001]

Claims (22)

  1. Verfahren zum Verwenden von Planar Mode zum Vorhersagen von Pixelwerten für einen momentanen Kodierungsblock, der eine Höhe H, Breite B und einen oberen linken (TL) Pixel hat, der innerhalb des Kodierungsblocks durch die Koordinaten x = 0 und y = 0 definiert ist, wobei konstruierte oder rekonstruierte benachbarte Pixel eine Reihe horizontaler Randpixel an einer Oberseite des momentanen Kodierungsblocks bilden und konstruierte oder rekonstruierte benachbarte Pixel eine Spalte vertikaler Randpixel an einer linken Seite des momentanen Kodierungsblocks bilden, wobei die benachbarten Pixel einen oberen rechten benachbarten Pixel, einen oberen linken benachbarten Pixel und einen unteren linken benachbarten Pixel enthalten, wobei das Verfahren wie folgt konfiguriert ist: Berechnen eines Intensitätswerts eines unteren rechten benachbarten Pixels des momentanen Kodierungsblocks; Verwenden eines Intensitätswerts eines benachbarten Pixels aus der Spalte der vertikalen Randpixel an der linken Seite des momentanen Kodierungsblocks und des berechneten Intensitätswerts des unteren rechten benachbarten Pixels, und berechnen von Intensitätswerten für die benachbarten Pixel in einer Reihe entlang der Unterseite des momentanen Kodierungsblocks; Verwenden eines Intensitätswerts eines benachbarten Pixels aus der Reihe der horizontalen Randpixel an der Oberseite des momentanen Kodierungsblocks und des berechneten Intensitätswerts des unteren rechten benachbarten Pixels, und berechnen von Intensitätswerten für die benachbarten Pixel in einer Spalte entlang der rechten Seite des momentanen Kodierungsblocks; Berechnen eines ersten Prädiktors für einen Pixel mit Koordinaten (x, y) in dem momentanen Kodierungsblock mittels interpolieren zwischen einem Intensitätswert eines jeweiligen vertikal benachbarten Pixels in der Reihe von benachbarten Pixeln entlang der Oberseite des momentanen Kodierungsblocks und wenigstens einem der berechneten Intensitätswerte für die benachbarten Pixel in der Reihe entlang der Unterseite des momentanen Kodierungsblocks; Berechnen eines zweiten Prädiktors für einen Pixel mit Koordinaten (x, y) in dem momentanen Kodierungsblock mittels interpolieren zwischen einem Intensitätswert eines jeweiligen horizontal benachbarten Pixels aus der Reihe von benachbarten Pixeln entlang der linken Seite des momentanen Kodierungsblocks und wenigstens einem der berechneten Intensitätswerte für die benachbarten Pixel in der Spalte entlang der rechten Seite des momentanen Kodierungsblocks; und Ableiten eines Prädiktionspixelwerts aus dem ersten und zweiten Prädiktor, wobei eine Mehrzahl von Prädiktionspixelwerten einen Prädiktionsblock bilden.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Ableiten des Prädiktionspixelwerts das Mitteln des ersten und zweiten Prädiktors umfasst.
  3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Intensitätswert des benachbarten Pixels aus der Reihe von horizontalen Randpixeln auf der Oberseite des momentanen Kodierungsblocks, der beim Berechnen des Intensitätswerts für die benachbarten Pixel in der Spalte entlang der rechten Seite des momentanen Kodierungsblocks verwendet wird, ein oberer rechter benachbarter Eckenpixel ist.
  4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Intensitätswert des benachbarten Pixels aus der Spalte von vertikalen Randpixeln auf der linken Seite des momentanen Kodierungsblocks, der beim Berechnen des Intensitätswerts für die benachbarten Pixel in der Spalte entlang der linken Seite des momentanen Kodierungsblocks verwendet wird, ein unterer linker benachbarter Eckenpixel ist.
  5. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Berechnen des Intensitätswerts des unteren rechten benachbarten Pixels ein Berechnen eines gewichteten Durchschnitts von Intensitätswerten von zwei oder mehr rekonstruierten benachbarten Pixeln umfasst.
  6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass der Intensitätswert zumindest eines der benachbarten Pixel zur Verwendung in der Berechnung des gewichteten Durchschnitts gefiltert wird.
  7. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass R(W, -1) einen Intensitätswert eines oberen rechten benachbarten Eckenpixels an den Koordinaten W, -1 bezeichnet und R(-1, H) einen Intensitätswert eines unteren linken benachbarten Eckenpixels an den Koordinaten -1, H bezeichnet, wobei die Berechnung des gewichteten Durchschnitts für den unteren rechten benachbarten Pixel P(W, H) bestimmt ist und wenigstens einen der folgenden Ausdrücke umfasst: P ( W , H ) = ( W R ( W , 1 ) + H R ( 1, H ) ) / ( H + W ) ,
    Figure DE112017006638T5_0019
    oder P ( W , H ) = R ( W , 1 ) + R ( 1, H ) R ( 0,0 ) .
    Figure DE112017006638T5_0020
  8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass der obere rechte benachbarte Eckenpixel vor dessen Verwendung bei der Berechnung des gewichteten Durchschnitts des unteren rechten benachbarten Pixels entsprechend einem der folgenden Ausdrücke gefiltert wird: R g e f i l t e r t ( W , 1 ) = ( R ( W 3, 1 ) + 3 R ( W 2, 1 ) + 5 R ( W 1, 1 ) + 7 R ( W , 1 ) ) 16
    Figure DE112017006638T5_0021
    R g e f i l t e r t ( W , 1 ) = ( R ( W 2, 1 ) + 2 R ( W 1, 1 ) + 5 R ( W , 1 ) ) 8 .
    Figure DE112017006638T5_0022
  9. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass der obere rechte benachbarte Eckenpixel vor dessen Verwendung bei der Berechnung des gewichteten Durchschnitts des unteren rechten benachbarten Pixels entsprechend einem der folgenden Ausdrücke gefiltert wird: R g e f i l t e r t ( 1, H ) = ( R ( 1, H 3 ) + 3 R ( 1, H 2 ) + 5 R ( 1, H 1 ) + 7 R ( 1, H ) ) 16
    Figure DE112017006638T5_0023
    R g e f i l t e r t ( 1, H ) = ( R ( 1, H 2 ) + 2 R ( 1, H 1 ) + 5 R ( 1, H ) ) 8 .
    Figure DE112017006638T5_0024
  10. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der benachbarte Pixel, der in der Berechnung des Intensitätswerts der benachbarten Pixel entlang der Unterseite des momentanen Kodierungsblocks verwendet wird, ein unterer linker benachbarter Eckenpixel R(-1, H) an den Koordinaten x = -1 und y = H ist.
  11. Verfahren nach Anspruch 10, dadurch gekennzeichnet, dass die Intensitätswerte der benachbarten Pixel entlang der Unterseite des momentanen Kodierungsblocks wie folgt berechnet werden: P b ( x , H ) = ( W 1 x ) R ( 1, H ) + ( x + 1 ) P ( W , H ) W .
    Figure DE112017006638T5_0025
  12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, dass für jeden benachbarten Pixel R(m, H)...R(W-1, H) entlang der Unterseite des momentanen Kodierungsblocks, bei dem die Ganzzahl m < W ist, der jeweilige Intensitätswert für die Verwendung bei der Berechnung des zweiten Prädiktors gefiltert wird.
  13. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der benachbarte Pixel, der in der Berechnung des Intensitätswerts der benachbarten Pixel in der Spalte entlang der rechten Seite des momentanen Kodierungsblocks verwendet wird, ein oberer rechter benachbarter Eckenpixel R(W, -1) an den Koordinaten x = W und y = -1 ist.
  14. Verfahren nach Anspruch 13, dadurch gekennzeichnet, dass die Intensitätswerte der benachbarten Pixel in einer Spalte entlang der rechten Seite des momentanen Kodierungsblocks wie folgt berechnet werden: P r ( W , y ) = ( H 1 y ) R ( W , 1 ) + ( y + 1 ) P ( W , H ) H ,
    Figure DE112017006638T5_0026
    wobei R(W, -1) einen Intensitätswert des oberen rechten benachbarten Eckpixels an den Koordinaten x = W und y = -1 bezeichnet.
  15. Verfahren nach Anspruch 14, dadurch gekennzeichnet, dass für jeden benachbarten Pixel R(W, n)... R(W, H-1) in der Spalte entlang der rechten Seite des momentanen Kodierungsblocks, bei dem die Ganzzahl n < H ist, der jeweilige Intensitätswert für die Verwendung bei der Berechnung des ersten Prädiktors gefiltert wird.
  16. Verfahren nach Anspruch 14, dadurch gekennzeichnet, dass der erste Prädiktor ein Vertikalprädiktor ist und wie folgt bestimmt wird: P h ( x , y ) = ( W 1 x ) R ( 1, y ) + ( x + 1 ) P r ( W , y ) .
    Figure DE112017006638T5_0027
  17. Verfahren nach Anspruch 11, dadurch gekennzeichnet, dass der zweite Prädiktor ein Horizontalprädiktor ist und wie folgt bestimmt wird: P v ( x , y ) = ( H 1 y ) R ( x , 1 ) + ( y + 1 ) P b ( x , H ) .
    Figure DE112017006638T5_0028
  18. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der obere rechte benachbarte Pixel an den Koordinaten W-1, -1 ist und der untere linke benachbarte Pixel an den Koordinaten -1, H-1 ist, wobei das Berechnen des Intensitätswerts des unteren rechten benachbarten Pixels P(W-1, H-1) die Berechnung des gewichteten Durchschnitts der Intensitätswerte des oberen rechten benachbarten Pixels R(W-1, -1) und des unteren linken benachbarten Pixels R(-1, H-1) entsprechend P ( W 1, H 1 ) = ( W R ( W 1, 1 ) + H R ( 1, H 1 ) ) / ( H + W )
    Figure DE112017006638T5_0029
    umfasst.
  19. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der benachbarte Pixel, der beim Berechnen des Intensitätswerts für die benachbarten Pixel in der Reihe entlang der Unterseite des momentanen Kodierungsblocks verwendet wird, der untere linke benachbarte Pixel R(-1, H-1) ist, wobei der Intensitätswert eines benachbarten Pixels in der Reihe entlang der Unterseite des momentanen Kodierungsblocks wie folgt berechnet werden: P b ( x , H 1 ) = ( W 1 x ) R ( 1, H 1 ) + ( x + 1 ) P ( W 1, H 1 ) W .
    Figure DE112017006638T5_0030
    wobei R(-1, H-1) einen Intensitätswert des unteren linken benachbarten Pixels an den Koordinaten x = -1 und y = H-1 bezeichnet.
  20. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der benachbarte Pixel, der beim Berechnen des Intensitätswerts des benachbarten Pixels in der Spalte entlang der rechten Seite des momentanen Kodierungsblocks verwendet wird, der obere rechte benachbarte Pixel R(W-1, -1) an den Koordinaten x = W-1 und y = -1 ist, wobei die Intensitätswerte der benachbarten Pixel in der Spalte entlang der rechten Seite des momentanen Kodierungsblocks wie folgt berechnet werden: P r ( W 1, y ) = ( H 1 y ) R ( W 1, 1 ) + ( y + 1 ) P ( W 1, H 1 ) H .
    Figure DE112017006638T5_0031
  21. Verfahren nach Anspruch 19, dadurch gekennzeichnet, dass der erste Prädiktor ein Horizontalprädiktor ist und wie folgt bestimmt wird: P h ( x , y ) = ( W 1 x ) R ( 1, y ) + ( x + 1 ) P r ( W 1, y ) .
    Figure DE112017006638T5_0032
  22. Verfahren nach Anspruch 20, dadurch gekennzeichnet, dass der zweite Prädiktor ein Vertikalprädiktor ist und wie folgt bestimmt wird: P v ( x , y ) = ( H 1 y ) R ( x , 1 ) + ( y + 1 ) P b ( x , H 1 ) .
    Figure DE112017006638T5_0033
DE112017006638.7T 2016-12-28 2017-12-27 Verbesserte Videobitstromkodierung Active DE112017006638B4 (de)

Applications Claiming Priority (13)

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
US15/855,687 US10542275B2 (en) 2016-12-28 2017-12-27 Video bitstream coding
PCT/US2017/068605 WO2018125944A1 (en) 2016-12-28 2017-12-27 Improved video bitstream coding
US15/855,687 2017-12-27

Publications (2)

Publication Number Publication Date
DE112017006638T5 true DE112017006638T5 (de) 2019-11-28
DE112017006638B4 DE112017006638B4 (de) 2023-05-11

Family

ID=62630185

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017006638.7T Active DE112017006638B4 (de) 2016-12-28 2017-12-27 Verbesserte Videobitstromkodierung

Country Status (5)

Country Link
US (9) US10542275B2 (de)
CA (1) CA3048242C (de)
DE (1) DE112017006638B4 (de)
GB (2) GB2574733B (de)
WO (2) WO2018125944A1 (de)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA3039039C (en) * 2016-10-05 2021-07-27 Arris Enterprises Llc Offset temporal motion vector predictor (tmvp)
GB2574733B (en) * 2016-12-28 2020-05-06 Arris Entpr Llc Improved video bitstream coding
WO2018142795A1 (en) * 2017-01-31 2018-08-09 Sharp Kabushiki Kaisha Systems and methods for performing planar intra prediction video coding
US11290716B2 (en) * 2017-08-03 2022-03-29 Sharp Kabushiki Kaisha Systems and methods for partitioning video blocks in an inter prediction slice of video data
US10645381B2 (en) * 2018-04-30 2020-05-05 Google Llc Intra-prediction for smooth blocks in image/video
US11343536B2 (en) 2018-06-27 2022-05-24 Kt Corporation Method and apparatus for processing video signal
US11509919B2 (en) * 2018-10-17 2022-11-22 Tencent America Reference sample memory size restrictions for intra block copy
CN113039791B (zh) 2018-11-06 2024-02-23 北京字节跳动网络技术有限公司 帧内预测的参数推导中的复杂度降低
CN113170122B (zh) 2018-12-01 2023-06-27 北京字节跳动网络技术有限公司 帧内预测的参数推导
EP3871415A4 (de) 2018-12-07 2022-04-13 Beijing Bytedance Network Technology Co., Ltd. Kontextbasierte intraprädiktion
WO2020130577A1 (ko) * 2018-12-18 2020-06-25 엘지전자 주식회사 이차 변환에 기반한 영상 코딩 방법 및 그 장치
WO2020130714A1 (ko) * 2018-12-21 2020-06-25 주식회사 엑스리스 영상 신호 부호화/복호화 방법 및 이를 위한 장치
EP3888354A4 (de) 2018-12-31 2022-03-09 Huawei Technologies Co., Ltd. Verfahren und vorrichtung von moden- und grössenabhängigen blockebenenbeschränkung für positionsabhängige vorhersagekombination
AU2020226565C1 (en) * 2019-02-22 2024-01-11 Beijing Bytedance Network Technology Co., Ltd. Neighbouring sample selection for intra prediction
KR102472756B1 (ko) 2019-02-24 2022-12-01 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 인트라 예측을 위한 파라미터 유도
CN117880494A (zh) 2019-03-24 2024-04-12 北京字节跳动网络技术有限公司 用于帧内预测的参数推导的条件
CN113785586B (zh) * 2019-04-12 2023-12-22 寰发股份有限公司 用于视频编解码系统的简化仿射子块处理的方法及装置
WO2020251469A1 (en) * 2019-06-14 2020-12-17 Telefonaktiebolaget Lm Ericsson (Publ) Sample value clipping on mip reduced prediction
BR112021025220A2 (pt) 2019-06-14 2022-02-01 Ericsson Telefon Ab L M Método de intraprevisão de bloco, unidade de intraprevisão baseada em matriz para codificar e/ou decodificar imagens, e, fonte ou dispositivo de destino
CN113452997B (zh) * 2020-03-25 2022-07-29 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6563875B2 (en) * 1987-12-30 2003-05-13 Thomson Licensing S.A. Adaptive method of encoding and decoding a series of pictures by transformation, and devices for implementing this method
US6571016B1 (en) * 1997-05-05 2003-05-27 Microsoft Corporation Intra compression of pixel blocks using predicted mean
FI116819B (fi) * 2000-01-21 2006-02-28 Nokia Corp Menetelmä kuvien lähettämiseksi ja kuvakooderi
JP2009111691A (ja) * 2007-10-30 2009-05-21 Hitachi Ltd 画像符号化装置及び符号化方法、画像復号化装置及び復号化方法
JP4591724B2 (ja) * 2008-05-14 2010-12-01 セイコーエプソン株式会社 表示装置および表示方法
CN102972028B (zh) * 2010-05-17 2015-08-12 Lg电子株式会社 新的帧内预测模式
WO2012035640A1 (ja) 2010-09-16 2012-03-22 株式会社 東芝 動画像符号化方法及び動画像復号化方法
US9420294B2 (en) 2011-02-23 2016-08-16 Lg Electronics Inc. Intra-prediction method using filtering, and apparatus using the method
KR101383775B1 (ko) * 2011-05-20 2014-04-14 주식회사 케이티 화면 내 예측 방법 및 장치
KR101895744B1 (ko) * 2011-06-24 2018-10-04 미쓰비시덴키 가부시키가이샤 화상 복호 장치, 화상 부호화 장치, 화상 복호 방법, 화상 부호화 방법, 및 부호화 데이터의 데이터 구조를 기록한 기록 매체
TWI552583B (zh) * 2011-06-28 2016-10-01 三星電子股份有限公司 用於畫面內預測編碼的方法及裝置以及用於畫面內預測解碼的方法及裝置
WO2013057782A1 (ja) * 2011-10-17 2013-04-25 株式会社東芝 符号化方法及び復号方法
US10645398B2 (en) * 2011-10-25 2020-05-05 Texas Instruments Incorporated Sample-based angular intra-prediction in video coding
KR20130090465A (ko) * 2012-02-06 2013-08-14 삼성전자주식회사 순차 주사 기반의 디블록킹 필터링 장치 및 방법
US9445088B2 (en) * 2012-04-09 2016-09-13 Qualcomm Incorporated LCU-based adaptive loop filtering for video coding
US9063003B2 (en) 2012-06-11 2015-06-23 David M. Bergstein Radiation compensated thermometer
JP5798539B2 (ja) * 2012-09-24 2015-10-21 株式会社Nttドコモ 動画像予測符号化装置、動画像予測符号化方法、動画像予測復号装置及び動画像予測復号方法
CN104838650B (zh) * 2012-09-28 2018-03-30 日本电信电话株式会社 帧内预测编码方法、帧内预测解码方法、帧内预测编码装置、帧内预测解码装置以及记录程序的记录介质
EP2951999A4 (de) * 2013-01-30 2016-07-20 Intel Corp Inhaltsadaptive parametrische transformationen zur codierung von videos der nächsten generation
US9648330B2 (en) * 2013-07-15 2017-05-09 Qualcomm Incorporated Inter-color component residual prediction
RU2654129C2 (ru) * 2013-10-14 2018-05-16 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Функциональные возможности режима внутреннего предсказания с блочным копированием для кодирования и декодирования видео и изображений
GB2520002B (en) * 2013-11-04 2018-04-25 British Broadcasting Corp An improved compression algorithm for video compression codecs
US10264285B2 (en) * 2014-05-22 2019-04-16 Qualcomm Incorporated Coding runs in palette-based video coding
US20160105685A1 (en) * 2014-10-08 2016-04-14 Qualcomm Incorporated Boundary filtering and cross-component prediction in video coding
JPWO2017068856A1 (ja) * 2015-10-21 2018-08-09 シャープ株式会社 予測画像生成装置、画像復号装置および画像符号化装置
CA3025488A1 (en) 2016-05-25 2017-11-30 Arris Enterprises Llc Weighted angular prediction for intra coding
WO2017205703A1 (en) 2016-05-25 2017-11-30 Arris Enterprises Llc Improved weighted angular prediction coding for intra coding
CN116980592A (zh) * 2016-08-31 2023-10-31 株式会社Kt 用于处理视频信号的方法和设备
US10666937B2 (en) * 2016-12-21 2020-05-26 Qualcomm Incorporated Low-complexity sign prediction for video coding
GB2574733B (en) * 2016-12-28 2020-05-06 Arris Entpr Llc Improved video bitstream coding

Also Published As

Publication number Publication date
CA3048242C (en) 2023-10-31
DE112017006638B4 (de) 2023-05-11
US11019353B2 (en) 2021-05-25
US20200177906A1 (en) 2020-06-04
US10616596B2 (en) 2020-04-07
US10542275B2 (en) 2020-01-21
US10869054B2 (en) 2020-12-15
GB2584942B (en) 2021-09-29
US20220014771A1 (en) 2022-01-13
US20230135203A1 (en) 2023-05-04
US20210092428A1 (en) 2021-03-25
US11159813B2 (en) 2021-10-26
US11570459B2 (en) 2023-01-31
US20210227242A1 (en) 2021-07-22
WO2018125944A1 (en) 2018-07-05
CA3048242A1 (en) 2018-07-05
US11956459B2 (en) 2024-04-09
WO2018125988A1 (en) 2018-07-05
US20180184110A1 (en) 2018-06-28
US20200145686A1 (en) 2020-05-07
US20240137550A1 (en) 2024-04-25
US20180184103A1 (en) 2018-06-28
GB2574733A (en) 2019-12-18
GB2574733B (en) 2020-05-06
GB202004268D0 (en) 2020-05-06
GB201909843D0 (en) 2019-08-21
GB2584942A (en) 2020-12-23

Similar Documents

Publication Publication Date Title
DE112017006638B4 (de) Verbesserte Videobitstromkodierung
DE112017006657B4 (de) Adaptive planare Prädiktion mit ungleichen Gewichten
DE112018005899T5 (de) System und Verfahren zum Konstruieren einer Ebene für planare Prädiktion
CN110959290B (zh) 帧内模式jvet编译方法
DE112011100420B4 (de) Verfahren und Vorrichtung zum adaptiven Loopfiltern
US20220417531A1 (en) System and method of implementing multiple prediction models for local illumination compensation
DE112012001609B4 (de) Intra-Prädiktionsverfahren, Kodierer und Dekodierer zur Benutzung desselben
DE112018005250T5 (de) Punktwolkenkomprimierung
EP2614647B1 (de) Kompression und dekompression von referenzbildern in einem videokoder
CA3024900A1 (en) Template matching for jvet intra prediction
CN105532007A (zh) 在视频译码中用于非亮度分量的自适应解块滤波
DE102016125461A1 (de) Adaptive gerichtete intra-prädiktion mit blockgrösse
DE112012001635T5 (de) Verfahren zur Verwaltung einer Referenzbildliste und Vorrichtung zu dessen Ausführung
EP3443746B1 (de) Vorlagenabgleich für jvet-intraprädiktion
DE102016125604A1 (de) Intelligente Sortierung der rekursiven Blockaufteilung für die erweiterte Intra-Prädiktion bei der Videocodierung
DE112020002032B4 (de) Bilddecodierverfahren und Bilddecodiervorrichtung
JP2021514145A (ja) テンプレートマッチングのための可変テンプレートサイズ
DE112015005159B4 (de) Kodierung im alternierenden blockbeschränkten entscheidungsmodus
EP1941744A2 (de) Verfahren und vorrichtungen zur bestimmung und rekonstruktion eines prädizierten bildbereichs
DE102020207711B3 (de) Verfahren und vorrichtungen zur codierung von bilddaten
DE102004063902B4 (de) Computerprogramm mit einem Verfahren zum Verarbeiten einer Gruppe von Bildern und mit einem Verfahren zum Verarbeiten eines Basisbildes und eines oder mehrerer Erweiterungsbilder
DE102004011421B4 (de) Vorrichtung und Verfahren zum Erzeugen eines skalierten Datenstroms
DE102004011422B4 (de) Vorrichtung und Verfahren zum Verarbeiten einer Gruppe von Bildern und Vorrichtung und Verfahren zum Verarbeiten eines Basisbildes und eines oder mehrerer Erweiterungsbilder
AT16521U1 (de) Vorrichtung für versetzte Entschlüsselung, Vorrichtung für versetzte Verschlüsselung, Bildfiltervorrichtung und Datenstruktur

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