DE112018005899T5 - System und Verfahren zum Konstruieren einer Ebene für planare Prädiktion - Google Patents

System und Verfahren zum Konstruieren einer Ebene für planare Prädiktion Download PDF

Info

Publication number
DE112018005899T5
DE112018005899T5 DE112018005899.9T DE112018005899T DE112018005899T5 DE 112018005899 T5 DE112018005899 T5 DE 112018005899T5 DE 112018005899 T DE112018005899 T DE 112018005899T DE 112018005899 T5 DE112018005899 T5 DE 112018005899T5
Authority
DE
Germany
Prior art keywords
straight line
jvet
prediction
plane
video
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.)
Pending
Application number
DE112018005899.9T
Other languages
English (en)
Inventor
Stephen P. Emeott
Andrew J. Aftelak
Anthony J. Braskich
Dwight R. Smith
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 DE112018005899T5 publication Critical patent/DE112018005899T5/de
Pending legal-status Critical Current

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/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
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/172Methods 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 picture, frame or field
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
    • 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

Abstract

Die Erfindung betrifft ein System und ein Verfahren zum Definieren einer Ebene für eine planare Codierung in JVET, wobei eine erste und eine zweite Gerade basierend auf Pixeln in links benachbarten und oben benachbarten Codiereinheiten definiert werden kann. In einigen Ausführungsformen kann zum Definieren der relevanten Geraden die Methode der kleinsten Quadrate angewendet werden. Es kann dann ein Punkt jeder Geraden identifiziert und der Mittelwert der y-Achsenabschnitte der beiden Geraden ermittelt werden, um einen dritten Punkt zu erhalten. Die drei Punkte können dann verwendet werden, um eine Ebene für eine planare Codierung in JVET zu identifizieren und zu definieren.

Description

  • PRIORITÄTSBEANSPRUCHUNG
  • Für vorliegende Anmeldung wird gemäß 35 U.S.C. § 119(e) die Priorität der früheren vorläufigen US-Anmeldung Nr. 62/599,915 vom 18. Dezember 2017 in Anspruch genommen, die hiermit durch Verweis einbezogen wird.
  • TECHNISCHES GEBIET
  • Die Erfindung betrifft das Gebiet der Videocodierung und insbesondere das Erstellen einer Ebene für planare Prädiktion.
  • HINTERGRUND
  • Die technischen Verbesserungen bei der Entwicklung von Videocodierstandards zeigen den Trend zur Steigerung der Codiereffizienz, um höhere Bitraten, höhere Auflösungen und eine bessere Videoqualität zu ermöglichen. Das Joint Video Exploration Team entwickelt ein neues Videocodierschema, das als JVET bezeichnet wird. Ähnlich wie andere Videocodierschemata, z.B. HEVC (High Efficiency Video Coding), ist JVET ein blockbasiertes hybrides räumliches und zeitliches Prädiktionscodierschema. Jedoch enthält JVET im Vergleich zu HEVC viele Änderungen an der Bitstromstruktur, der Syntax, den Randbedingungen und der Abbildung für die Erzeugung von decodierten Bildern. JVET wurde in Joint Exploration Model (JEM)-Codierern und Decodierern implementiert.
  • Intracoding ist ein wesentliches Werkzeug für Videokompression. Es nutzt räumliche Nachbarn eines Pixels, um einen Prädiktor zu erstellen, anhand dessen ein Prädiktionsresiduum zwischen dem Pixel und seinem Prädiktor bestimmt wird. Der Videocodierer komprimiert dann die Residuen, was zum Codier-Bitstrom führt. Der sich entwickelnde Videocodierstandard, JVET, lässt 67 mögliche Intra-Prädiktionsmodi zu, einschließlich eines planaren Modus, eines DC-Modus und 65 Winkelrichtungs-Modi. Jede Intra-Codiereinheit (CU) wählt einen zu verwendenden Intra-Prädiktionsmodus, der als Overhead im Bitstrom zu signalisieren ist. Was benötigt wird, sind ein System und ein Verfahren zum Konstruieren einer prädizierten Ebene für den planaren Modus.
  • KURZFASSUNG
  • Ein System aus einem oder mehreren Computern kann konfiguriert sein für die Durchführung von bestimmten Operationen oder Maßnahmen aufgrund von Software, Firmware, Hardware oder einer Kombination davon, die in dem System installiert sind und die im Betriebszustand veranlassen, dass das System die Maßnahmen durchführt. Ein oder mehrere Computerprogramme können derart konfiguriert sein, dass sie aufgrund von Instruktionen, die sie enthalten, bei Ausführung dieser Instruktionen durch Datenverarbeitungsvorrichtungen veranlassen, dass die Vorrichtungen die Maßnahmen durchführen. Ein allgemeiner Aspekt umfasst das Empfangen einer ersten Gruppe von Datenpunkten, wobei dieser Schritt auch das Empfangen einer zweiten Gruppe von Datenpunkten umfassen kann, das Bestimmen einer ersten Geraden zumindest teilweise basierend auf der ersten Gruppe von Datenpunkten, das Bestimmen einer zweiten Geraden zumindest teilweise basierend auf der zweiten Gruppe von Datenpunkten und das Bestimmen einer Ebene zumindest teilweise basierend auf einem Punkt an der ersten Gerade und einem Punkt an der zweiten Gerade. Weitere Ausführungsformen dieses Aspekts umfassen entsprechende Computersysteme, Vorrichtungen und Computerprogramme, die in einer oder mehreren Computerspeichereinrichtungen aufgezeichnet sind und die jeweils konfiguriert sind zum Durchführen der Maßnahmen des Verfahrens.
  • Alternative Ausführungsformen können eines oder mehrere der folgenden Merkmale umfassen: das Ebenendefinitionsverfahren in JVET, bei dem der Schritt des Bestimmens einer Ebene zumindest teilweise auf einem y-Achsenabschnitt einer der ersten Geraden und der zweiten Geraden basiert; das Ebenendefinitionsverfahren von JVET, bei dem der Schritt des Bestimmens einer ersten Geraden zumindest teilweise auf der Anwendung der Methode der kleinsten Quadrate auf die erste Gruppe von Datenpunkten basiert; das Ebenendefinitionsverfahren von JVET, bei dem der Schritt des Bestimmens einer zweiten Geraden zumindest teilweise auf der Anwendung der Methode der kleinsten Quadrate auf die zweite Gruppe von Datenpunkten basiert; das Ebenendefinitionsverfahren von JVET, bei welchem der Schritt des Bestimmens einer Ebene zumindest teilweise auf einem y-Achsenabschnitt der ersten Geraden besteht; das Ebenendefinitionsverfahren von JVET, bei welchem der Schritt des Bestimmens einer Ebene zumindest teilweise auf einem Mittelwert des y-Achsenabschnitts der ersten Geraden und des y-Achsenabschnitts der zweiten Geraden besteht; das Ebenendefinitionsverfahren von JVET, bei welchem der Schritt des Bestimmens einer ersten Geraden zumindest teilweise auf der Anwendung der Methode der kleinsten Quadrate auf die erste Gruppe von Datenpunkten basiert; das Ebenendefinitionsverfahren von JVET, wobei der Schritt des Bestimmens einer zweiten Geraden zumindest teilweise auf der Anwendung der Methode der kleinsten Quadrate auf die zweite Gruppe von Datenpunkten basiert; das Ebenendefinitionsverfahren von JVET, ferner umfassend den Schritt einer Entropiecodierung einer Codiereinheit zumindest teilweise basierend auf der besagten Ebene. Implementierungen der vorstehend genannten Techniken können Hardware, ein Verfahren oder einen Prozess oder Computer-Software auf einem rechnerverfügbaren Medium umfassen.
  • Ein allgemeiner Aspekt kann ein Ebenendefinitionssystem in JVET umfassen, welches wiederum umfasst: das Empfangen einer ersten Gruppe von Datenpunkten im Speicher, das Empfangen einer zweiten Gruppe von Datenpunkten im Speicher, das Definieren und Speichern von Charakteristiken einer ersten Geraden zumindest teilweise basierend auf der ersten Gruppe von Datenpunkten im Speicher, das Definieren und Speichern von Charakteristiken einer zweiten Geraden zumindest teilweise basierend auf der zweiten Gruppe von Datenpunkten im Speicher und das Definieren und Speichern von Charakteristiken einer Ebene zumindest teilweise basierend auf einem Punkt an der ersten Geraden und einem Punkt an der zweiten Geraden im Speicher. Weitere Ausführungsformen dieses Aspekts umfassen entsprechende Computersysteme, Vorrichtungen und Computerprogramme, die in einer oder mehreren Computerspeichereinrichtungen aufgezeichnet sind und jeweils konfiguriert sind zum Durchführen der Maßnahmen der Verfahren, und einige Ausführungsformen der beschriebenen Techniken können Hardware, ein Verfahren oder einen Prozess oder Computer-Software auf einem rechnerverfügbaren Medium umfassen.
  • Figurenliste
  • Weitere Details der vorliegenden Erfindung werden nachfolgend mit Bezug auf die anliegenden Zeichnungen näher erläutert. In den Zeichnungen zeigt:
    • 1 eine Unterteilung eines Bildes (Frame) in eine Mehrzahl von Codierbaumeinheiten (CTUs = Coding Tree Units);
    • 2 eine beispielhafte Partitionierung einer CTU in Codiereinheiten (CUs = Coding Units);
    • 3 eine Quadtree plus Binary Tree (QTBT)-Darstellung der Partitionierung der CU von 2;
    • 4 ein vereinfachtes Blockdiagramm für eine CU-Codierung in einem JVET-Codierer;
    • 5 mögliche Intraprädiktionsmodi für Lumakomponenten in JVET;
    • 6 ein vereinfachtes Blockdiagramm für eine CU-Codierung in einem JVET-Decodierer;
    • 7 und 7B eine Ausführungsform eines planaren Prädiktionsprozesses gemäß JVET;
    • 8 die Konstruktion einer Prädiktionslinie basierend auf einer Reihe von Punkten;
    • 9 die Konstruktion von zwei Prädiktionslinien basierend auf einem Pixel von Interesse;
    • 10 die Konstruktion einer Prädiktionsebene;
    • 11 ein Blockdiagramm eines Verfahrens zum Konstruieren einer Prädiktionsebene;
    • 12 ein Blockdiagramm zur Ausführung des Systems und des Verfahrens;
    • 13 ein Blockdiagramm eines Codierers/Decodierers zur Verwendung in einem JVET-System.
  • DETAILBESCHREIBUNG
  • 1 zeigt die Unterteilung eines Frame in eine Mehrzahl von Codierbaumeinheiten (CTUs = Coding Tree Units) 100. Ein Frame kann ein Bild in einer Videosequenz sein. Ein Frame kann eine Matrix oder ein Satz von Matrizen sein mit Pixelwerten, die Intensitätsmaße in dem Bild darstellen. Solchermaßen kann eine Gruppe dieser Matrizen eine Videosequenz erzeugen. Pixelwerte können so definiert sein, dass sie bei einer Vollfarb-Videocodierung, bei der Pixel in drei Kanäle unterteilt sind, Farbe und Helligkeit darstellen. Zum Beispiel können Pixel in einem YCbCr-Farbraum einen Lumawert, Y, aufweisen, der die Graustufenintensität in dem Bild darstellt, und zwei Chrominanzwerte, Cb und Cr, die das Maß darstellen, in welchem sich die Farbe von Grau über Blau bis hin zu Rot unterscheidet. In weiteren Ausführungsformen können Pixelwerte mit Werten in unterschiedlichen Farbräumen oder Farbmodellen dargestellt sein. Die Auflösung des Videos kann die Anzahl der Pixel in einem Frame bestimmen. Eine höhere Auflösung kann mehr Pixel und eine bessere Definition des Bildes bedeuten, kann aber auch zu höheren Anforderungen hinsichtlich Bandbreite, Speicherung und Übertragung führen.
  • Die Frames einer Videosequenz können mit JVET codiert und decodiert werden. JVET ist ein Video-Codierschema, das von dem Joint Video Exploration Team entwickelt wird. Versionen von JVET wurden in JEM (Joint Exploration Model)-Codierern und Decodierern implementiert. Ähnlich wie andere Video-Codierschemata, z.B. HEVC (High Efficiency Video Coding), ist JVET ein blockbasiertes hybrides räumliches und zeitliches prädiktives Codierschema. Bei der Codierung mit JVET wird ein Frame zunächst in quadratische Blöcke, CTUs genannt, 100 unterteilt, wie in 1 dargestellt. Zum Beispiel können die CTUs 100 Blöcke von 128x128 Pixeln sein.
  • 2 zeigt eine beispielhafte Partitionierung einer CTU 100 in CUs 102. Jede CTU 100 in einem Frame kann in eine oder mehrere CUs (Coding Units = Codiereinheiten) 102 partitioniert sein. Die CUs können für die Prädiktion und Transformation wie nachstehend beschrieben verwendet werden. Anders als bei HEVC können die CUs 102 bei JVET rechteckig oder quadratisch sein und können ohne weitere Partitionierung in Prädiktionseinheiten oder Transformationseinheiten codiert werden. Die CUs 102 können genauso groß sein wie ihre Wurzel-CTUs oder können kleinere Untereinheiten einer Wurzel-CTU 100 sein, die 4x4 Blöcke klein ist.
  • Bei JVET kann eine CTU 100 nach einem Quadtree plus Binary Tree (QTBT)-Schema partitioniert sein, in welchem die CTU 100 rekursiv in Quadratblöcke gemäß einem Quadtree aufgeteilt sein kann und diese Quadratblöcke wiederum rekursiv horizontal oder vertikal entsprechend Binärbäumen aufgeteilt sein können. Die Parameter können zum Steuern der Aufteilung gemäß QTBT festgelegt werden, zum Beispiel CTU-Größe, minimale Größen für die Blattknoten des Quadtree und des Binärbaums, maximale Größe für den Wurzelknoten des Binärbaums und maximale Tiefe für die Binärbäume.
  • 2 zeigt anhand eines nichteinschränkenden Beispiels eine CTU 100, die in CUs 102 partitioniert ist, wobei die durchgezogenen Linien das Quadtree-Splitting und die gestrichelten Linien das Binärbaum-Splitting zeigen. Wie dargestellt ist, ermöglicht das Binärsplitting ein horizontales Splitting und ein vertikales Splitting, um die Struktur der CTU und ihre Unterteilung in CUs zu definieren.
  • 3 zeigt eine QTBT-Darstellung der Partitionierung von 2. Ein Quadtree-Wurzelknoten stellt die CTU 100 dar, wobei jeder untergeordnete Knoten in dem Quadtree-Abschnitt einen von vier quadratischen Blöcken darstellt, die von einem übergeordneten quadratischen Block abgezweigt sind. Die durch die Blattknoten des Quadtree dargestellten quadratischen Blöcke können dann durch die Verwendung von Binärbäumen null oder mehrere Male unterteilt sein, wobei die Blattknoten des Quadtree die Wurzelknoten des Binärbaums sind. Auf jeder Ebene des Binärbaum-Abschnitts kann ein Block entweder vertikal oder horizontal unterteilt sein. Ein Flag, das auf „0“ gesetzt ist, zeigt an, dass der Block horizontal unterteilt ist, wohingegen ein Flag, das auf „1“ gesetzt ist, anzeigt, dass der Block vertikal unterteilt ist.
  • Nach dem Quadtree-Splitting und dem Binärbaum-Splitting stellen die durch die Blattknoten des QTBT dargestellten Blöcke die zu codierenden endgültigen CUs 102 dar, wobei es sich um eine Codierung mittels Interprädiktion oder Intraprädiktion handelt. Bei Slices (Scheiben) oder Full Frames (Vollbilder), die mittels Interprädiktion codiert werden, können für Luma- und Chromakomponenten unterschiedliche Partitionierungsstrukturen verwendet werden. Bei einem Inter-Slice zum Beispiel kann eine CU 102 Codierblöcke (CBs) für verschiedene Farbkomponenten aufweisen, wie zum Beispiel einen Luma-CB und zwei Chroma-CBs. Bei Slices oder Full Frames, die mit Intraprädiktion codiert werden, kann die Partitionierungsstruktur für Luma- und Chromakomponenten gleich sein.
  • 4 zeigt ein vereinfachtes Blockdiagramm für eine CU-Codierung in einem JVET-Codierer. Die wesentlichen Stufen der Videocodierung sind die Partitionierung, um CUs 102 zu identifizieren, wie vorstehend beschrieben, gefolgt von der Codierung der CUs 102 mittels Prädiktion bei 404 oder 406, der Erzeugung einer residuellen CU 410 bei 408, der Transformation bei 412, der Quantisierung bei 416 und der Entropiecodierung bei 420. Der in 4 dargestellte Codierungs- und Decodierungsvorgang umfasst auch einen Decodierungsvorgang, der nachstehend näher erläutert wird.
  • Bei einer aktuellen CU 102 kann der Codierer eine Prädiktions-CU 402 entweder räumlich mittels Intraprädiktion bei 404 oder zeitlich mittels Interprädiktion bei 406 erhalten. Die Grundidee der Prädiktionscodierung ist die Übertragung eines Differenz- oder Restsignals zwischen dem ursprünglichen Signal und einer Prädiktion für das ursprüngliche Signal. Auf Empfängerseite kann das ursprüngliche Signal wiederhergestellt werden durch Addieren des Residuums und der Prädiktion, wie das nachstehend beschrieben wird. Da das Differenzsignal eine geringere Korrelation besitzt als das ursprüngliche Signal, werden für seine Übertragung weniger Bits benötigt.
  • Ein Slice, wie zum Beispiel ein komplettes Bild oder ein Abschnitt eines Bildes, der vollständig mit intraprädizierten CUs codiert ist, kann ein I-Slice sein, der ohne Verweis auf andere Slices decodiert werden kann und als solcher ein möglicher Punkt sein kann, an dem die Decodierung beginnen kann. Ein Slice, der zumindest mit einigen interprädizierten CUs codiert ist, kann ein prädiktiver (P) oder bi-prädiktiver (B) Slice sind, der basierend auf einem oder mehreren Referenzbildern decodiert werden kann. P-Slices können bei zuvor codierten Slices die Intraprädiktion und Interprädiktion verwenden. Zum Beispiel können P-Slices durch die Verwendung der Interprädiktion weiter komprimiert werden als I-Slices, benötigen aber die Codierung eines zuvor codierten Slice, um sie zu codieren. B-Slices können für ihre Codierung Daten von vorhergehenden und/oder nachfolgenden Slices verwenden, wobei eine Intraprädiktion oder Interprädiktion mit einer interpolierten Prädiktion von zwei verschiedenen Frames verwendet wird, was die Genauigkeit des Bewegungsschätzungsprozesses erhöht. In manchen Fällen können P-Slices und B-Slices auch oder alternativ mittels Intrablockkopie codiert werden, wobei Daten von anderen Abschnitten des Slice verwendet werden.
  • Wie nachstehend erläutert wird, können die Intraprädiktion oder die Interprädiktion durchgeführt werden basierend auf CUs 434, die aus zuvor codierten CUs 102 wie beispielsweise benachbarte CUs 102 oder CUs 102 in Referenzbildern rekonstruiert werden.
  • Wenn eine CU 102 mittels Intraprädiktion bei 404 räumlich codiert wird, lässt sich basierend auf Samples (Repräsentationswerten) von benachbarten CUs 102 im Bild ein Intraprädiktionsmodus finden, der die Pixelwerte der CU 102 am besten vorhersagt.
  • Wenn die Luma-Komponente einer CU codiert wird, kann der Codierer eine Liste von Kandidaten-Interprädiktionsmodi generieren. Während es bei HEVC 35 mögliche Intraprädiktionsmodi für Luma-Komponenten gab, gibt es bei JVET 67 mögliche Intraprädiktionsmodi für Luma-Komponenten. Diese enthalten einen planaren Modus, der eine dreidimensionale Ebene aus Werten verwendet, die aus benachbarten Pixeln erzeugt werden, einen DC-Modus, der Werte verwendet, die aus benachbarten Pixeln gemittelt werden, und die in 5 gezeigten 65 Richtungsmodi, die Werte verwenden, die von Nachbarpixeln entlang der angegebenen Richtungen kopiert werden.
  • Beim Generieren einer Liste von Kandidaten-Intraprädiktionsmodi für die Luma-Komponente einer CU kann die Anzahl von Kandidatenmodi auf der Liste von der Größe der CU abhängen. Die Kandidatenliste kann enthalten: eine Untergruppe der 35 HEVC-Modi mit den niedrigsten SATD-Kosten (SATD = Sum of Absolute Transform Difference = Summe der absoluten transformierten Differenzen); für JVET hinzugefügte neue Richtungsmodi, die den aus den HEVC-Modi gefundenen Kandidaten benachbart sind; und Modi aus einer Gruppe von sechs wahrscheinlichsten Modi (MPMs = Most Probable Modes) für die CU 102, die basierend auf Intraprädiktionsmodi, die für zuvor codierte benachbarte Blöcke verwendet wurden, sowie einer Liste von Standardmodi ermittelt werden.
  • Beim Codieren von Chroma-Komponenten einer CU kann ebenfalls eine Liste von Kandidaten-Intraprädiktionsmodi erstellt werden. Die Liste von Kandidaten-Modi kann Modi enthalten, die mit Cross-Component Linear Model Projection von Luma-Samples erstellt wurden, Intraprädiktionsmodi, die für Luma-CBs an bestimmten nebeneinanderstehenden Positionen in dem Chroma-Block gefunden wurden, und Chroma-Prädiktionsmodi, die zuvor für benachbarte Blöcke gefunden wurden. Der Codierer kann auf den Listen die Kandidatenmodi mit den geringsten Rate-Verzerrungs-Kosten (Rate Distortion Costs) finden und kann diese Intraprädiktionsmodi beim Codieren der Luma- und Chroma-Komponenten der CU verwenden. Syntax kann in dem Bitstream kodiert sein, die die Intraprädiktionsmodi angibt, die zum Codieren jeder CU 102 verwendet werden.
  • Nachdem die besten Intraprädiktionsmodi für eine CU 102 ausgewählt wurden, kann der Codierer eine Prädiktions-CU 402 mittels dieser Modi erzeugen. Sind die ausgewählten Modi Richtungsmodi, kann ein Filter mit 4 Abgriffen verwendet werden, um die Richtungsgenauigkeit zu verbessern. Spalten und Reihen an der Oberseite oder auf der linken Seite des Prädiktionsblocks können mit Umgrenzungs-Prädiktionsfiltern wie Filter mit 2 oder 3 Abgriffen angepasst werden.
  • Die Prädiktions-CU 402 kann weiter geglättet werden mit einem positionsabhängigen Intraprädiktionskombinations-Verfahren (PDPC = Position Dependent Intra Predication Combination), das eine basierend auf gefilterten Samples von benachbarten Blöcken erzeugte Prädiktions-CU 402 unter Verwendung von ungefilterten Samples von benachbarten Blöcken anpasst, oder mit einer adaptiven Referenz-Sample-Glättung unter Verwendung eines Tiefpassfilters mit 3 oder 5 Abgriffen, um Referenz-Samples zu verarbeiten.
  • Wenn eine CU 102 vorübergehend mit Interprädiktion bei 406 codiert wird, kann eine Gruppe von Bewegungsvektoren (MVs) gefunden werden, die auf Samples in Referenzbildern zeigt, welche Pixelwerte der CU 102 am besten prädizieren. Die Interprädiktion nutzt die zeitliche Redundanz zwischen Slices durch die Darstellung einer Verschiebung eines Pixelblocks in einem Slice. Die Verschiebung wird entsprechend dem Wert von Pixeln in vorhergehenden oder nachfolgenden Slices durch ein als Motion Compensation (Bewegungsausgleich) bezeichnetes Verfahren bestimmt. Bewegungsvektoren und zugeordnete Referenzindizes, die eine Pixelverschiebung relativ zu einem bestimmten Referenzbild angeben, können in dem Bitstream für einen Decoder bereitgestellt werden zusammen mit dem Rest zwischen den ursprünglichen Pixeln und den Pixeln, die der Motion Compensation unterzogen wurden. Der Decoder kann die restlichen und signalisierten Bewegungsvektoren und Referenzindizes verwenden, um einen Block von Pixeln in einem rekonstruierten Slice zu rekonstruieren.
  • In JVET kann die Bewegungsvektorgenauigkeit mit 1/16 Pel gespeichert werden, und die Differenz zwischen einem Bewegungsvektor und einem prädizierten Bewegungsvektor einer CU kann entweder mit einer QPel-Auflösung oder einer Integer-Pel-Auflösung codiert werden.
  • In JVET können Bewegungsvektoren für mehrere Sub-CUs innerhalb einer CU 102 mittels Techniken wie Advanced Temporal Vector Prediction (ATMVP) (Fortgeschrittene Temporale Bewegungsvektorvorhersage), Spatial-Temporal Motion Vector Prediction (STMVP) (räumliche/zeitliche Bewegungsvektorvorhersage), Affine Motion Compensation Prediction (Affine Bewegungskompensationsvorhersage), Pattern Matches Motion Vector Derivation (PMMVD) (Bewegungsvektorderivation mit Musterabgleich) und/oder Bi-directional Optical Flow (BIO) (Bidirektionaler optischer Fluss) gefunden werden.
  • Wird ATMVP verwendet, kann der Codierer einen zeitlichen Vektor für die CU 102 finden, der auf einen entsprechenden Block in einem Referenzbild zeigt. Der zeitliche Vektor kann basierend auf Bewegungsvektoren und Referenzbildern gefunden werden, die für zuvor codierte benachbarte CUs 102 gefunden wurden. Wird der Referenzblock, auf den ein zeitlicher Vektor zeigt, für die gesamte CU 102 verwendet, so kann für jede Sub-CU in der CU 102 ein Bewegungsvektor gefunden werden.
  • STMVP kann Bewegungsvektoren für Sub-CUs finden durch Skalierung und Mittelwertbildung von Bewegungsvektoren, die für zuvor mit Interprädiktion codierte benachbarte Blöcke gefunden wurden, zusammen mit einem zeitlichen Vektor.
  • Affine Motion Compensation Prediction kann angewendet werden, um ein Feld von Bewegungsvektoren für jede Sub-CU in einem Block vorherzusagen, basierend auf zwei Steuerungsbewegungsvektoren, die für die oberen Ecken des Blocks gefunden wurden. Zum Beispiel lassen sich Bewegungsvektoren für Sub-CUs auf der Basis von Bewegungsvektoren der oberen Ecken, die für jeden 4x4 Block in der CU 102 gefunden wurden, ableiten.
  • PMMVD kann einen initialen Bewegungsvektor für die aktuelle CU 102 mittels Bilateral Matching oder Template Matching finden. Bilaterial Matching kann die aktuelle CU 102 und Referenzblöcke in zwei verschiedenen Referenzbildern entlang einer Bewegungsbahn betrachten, während Template Matching korrespondierende Blöcke in der aktuellen CU 102 und ein durch ein Template (Muster) identifiziertes Referenzbild betrachten kann. Der für die CU 102 gefundene initiale Bewegungsvektor lässt sich dann für jede Sub-CU individuell verfeinern.
  • BIO kann angewendet werden, wenn eine Interprädiktion mit Bi-Prädiktion basierend auf früheren und späteren Referenzbildern durchgeführt wird, und ermöglicht, Bewegungsvektoren für Sub-CUs 102 basierend auf dem Gradienten der Differenz zwischen zwei Referenzbildern zu finden.
  • In manchen Situationen kann Local Illumination Compensation (LIC) (lokale Beleuchtungskompensation) auf CU-Ebene angewendet werden, um Werte für einen Skalierfaktorparameter und einen Offsetparameter zu finden, basierend auf Samples, die zur aktuellen CU 102 benachbart sind, und entsprechenden Samples die zu einem Referenzblock benachbart sind, der durch einen Kandidaten-Bewegungsvektor angegeben wird. In JVET können sich die LlC-Parameter ändern und auf CU-Ebene signalisiert werden.
  • Bei einigen der vorgenannten Verfahren können die Bewegungsvektoren, die für jede Sub-CU einer CU gefunden wurden, den Decodern auf CU-Ebene signalisiert werden. Bei anderen Verfahren wie beispielsweise PMMVD und BIO wird die Bewegungsinformation nicht im Bitstrom signalisiert, um Overhead zu sparen, und die Decoder können die Bewegungsvektoren durch die gleichen Prozesse herleiten.
  • Nachdem die Bewegungsvektoren für eine CU 102 gefunden wurden, kann der Codierer mittels dieser Bewegungsvektoren eine Prädiktions-CU 402 erzeugen. In manchen Fällen kann, wenn Bewegungsvektoren für individuelle Sub-CUs gefunden wurden, Overlapped Block Motion Compensation (OBMC) (überlappte Blockbewegungskompensation) bei der Erzeugung eine Prädiktions-CU 402 angewendet werden, indem diese Bewegungsvektoren mit Bewegungsvektoren kombiniert werden, die zuvor für eine oder mehrere benachbarte Sub-CUs gefunden wurden.
  • Wenn die Bi-Prädiktion angewendet wird, kann JVET ein Decoderside Motion Vector Refinement (DMVR) (decoderseitige Bewegungsvektorverfeinerung) anwenden, um Bewegungsvektoren zu finden. DMVR ermöglicht es, einen Bewegungsvektor auf der Basis von zwei Bewegungsvektoren, die für eine Bi-Prädiktion gefunden wurden, durch Anwendung eines Bilateral Template Matching Process (bilaterales Musterabgleichsverfahren) zu finden. Bei DMVR kann eine gewichtete Kombination von Prädiktions-CUs 402, die mit jedem der beiden Bewegungsvektoren erzeugt wurden, gefunden werden, und die beiden Bewegungsvektoren können verfeinert werden, indem sich durch neue Bewegungsvektoren ersetzt werden, die am besten auf die kombinierte Prädiktions-CU 420 zeigen. Die beiden verfeinerten Bewegungsvektoren können zum Erzeugen der endgültigen Prädiktions-CU 402 verwendet werden.
  • Sobald mit Intra-Prädiktion bei 404 oder mit Inter-Prädiktion bei 406 eine Prädiktions-CU 420 gefunden wurde, wie vorstehend beschrieben, kann der Decoder bei 408 die Prädiktions-CU 402 von der aktuellen CU 102 subtrahieren und eine Rest-CU 410 finden.
  • Der Codierer kann bei 412 eine oder mehrere Transformationsoperationen verwenden, um die Rest-CU 410 in Transformationskoeffizienten 414 umzuwandeln, die die Rest-CU 410 in einem Transformationsbereich ausdrücken, wie beispielsweise bei der Anwendung einer diskreten Cosinus-Blocktransformation (DCT-Transformation) zum Umwandeln von Daten in den Transformationsbereich. JVET erlaubt mehr Arten von Transformationsoperationen als HEVC, einschließlich DCT-II-, DST-VII-, DST-VII-, DST-VIII-, DST-I- und DCT-V-Operationen. Die zulässigen Transformationsoperationen können in Sub-Sets gruppiert werden, und der Codierer kann einen Hinweis signalisieren, welche Sub-Sets und welche spezifischen Operationen in diesen Sub-Sets verwendet bzw. angewendet wurden. In manchen Fällen können große Blockgrößen-Transformationen verwendet werden, um Hochfrequenz-Transformationskoeffizienten in CUs 102, die eine bestimmte Größe überschreiten, zu eliminieren, so dass nur niederfrequente Transformationskoeffizienten für diese CUs 102 beibehalten werden.
  • In manchen Fällen kann nach einer Vorwärtskerntransformation eine Mode Dependent Non-Separable Secondary Transform (MDNSST) (modusabhängige nicht separierbare Sekundärtransformation) auf niederfrequente Transformationskoeffizienten 414 angewendet werden. Die MDNSST-Operation kann eine Hypercube-Givens-Transformation (HyGT) auf der Basis von Rotationsdaten anwenden. Bei Anwendung derselben kann durch den Codierer ein Indexwert, der eine bestimmte MDNSST-Operation angibt, signalisiert werden.
  • Bei 416 kann der Codierer die Transformationskoeffizienten 414 in quantisierte Transformationskoeffizienten 416 quantisieren. Die Quantisierung jedes Koeffizienten lässt sich berechnen, indem ein Wert des Koeffizienten durch einen Quantisierungsschritt geteilt wird, der von einem Quantisierungsparameter (QP) abgeleitet wird. In einigen Ausführungsformen wird der Qstep (Quantisierungsschritt) definiert als 2(QP-4)/6. Da Hochpräzissions-Transformationskoeffizienten 414 in quantisierte Transformationskoeffizienten 416 mit einer endlichen Anzahl von möglichen Werten konvertiert werden können, kann die Quantisierung die Datenkompression unterstützen. Solchermaßen kann die Quantisierung der Transformationskoeffizienten eine Menge an Bits, die durch den Transformationsvorgang erzeugt und gesendet werden, begrenzen. Während jedoch die Quantisierung ein verlustreicher Prozess ist und der Verlust durch Quantisierung nicht wiedergutgemacht werden kann, stellt der Quantisierungsprozess einen Kompromiss zwischen der Qualität der rekonstruierten Sequenz und einer für die Darstellung der Sequenz benötigten Informationsmenge dar. Zum Beispiel kann ein geringerer QP-Wert in einem mit besserer Qualität decodierten Video resultieren, obwohl für die Darstellung und Übertragung gegebenenfalls eine größere Datenmenge benötigt wird. Dagegen kann ein hoher QP-Wert zu Videosequenzen führen, die mit geringerer Qualität rekonstruiert werden, die jedoch weniger Daten und eine geringere Bandbreite benötigen.
  • JVET kann varianzbasierte adaptive Quantisierungstechniken anwenden, wodurch es möglich ist, dass jede CU 102 für ihren Codiervorgang einen anderen Quantisierungsparameter verwendet (anstelle der Verwendung des gleichen Frame-QP bei der Codierung jeder CU 102 des Frame). Die varianzbasierten adaptiven Quantisierungstechniken verringern adaptiv den Quantisierungsparameter von bestimmten Blöcken, während sie den in anderen Blöcken vergrößern. Um einen bestimmten QP für eine CU 102 zu wählen, wird die Varianz der CU berechnet. Kurzgefasst: wenn die Varianz einer CU größer ist als die durchschnittliche Varianz des Frame, kann für die CU 102 ein QP festgelegt werden, der größer ist als der QP des Frame. Ist die Varianz der CU 102 geringer als die durchschnittliche Varianz des Frame, kann ein geringerer QP zugeordnet werden.
  • Bei 420 kann der Codierer endgültige Kompressionsbits 422 durch Entropiecodierung der quantisierten Transformationskoeffizienten 418 finden. Die Entropiecodierung zielt auf das Entfernen von statistischen Redundanzen der zu übertragenden Informationen. In JVET kann zum Codieren der quantisierten Transformationskoeffizienten 418 CABAC (Context Adaptive Binary Arithmetic Coding = kontextadaptive binäre arithmetische Codierung) angewendet werden, wobei diese Codierung Wahrscheinlichkeitsmaße verwendet, um statistische Redundanzen zu beseitigen. Für CUs mit quantisierten Transformationskoeffizienten 418, die nicht Null sind, können die quantisierten Transformationskoeffizienten 418 in binäre umgewandelt werden. Jedes Bit („Bin“) der binären Darstellung kann dann mit einem Kontextmodell codiert werden. Eine CU 102 kann in drei Regionen aufgeteilt werden, jede mit ihrer eigenen Gruppe von Kontextmodellen, die für Pixel innerhalb dieser Region zu verwenden sind.
  • Zum Codieren der Bins können mehrere Scan-Durchläufe erfolgen. Während der Durchläufe zum Codieren der ersten drei Bins (bin0, bin1 und bin 2) kann ein Indexwert, der angibt, welches Kontextmodell für den Bin zu verwenden ist, gefunden werden, indem die Summe dieser Bin-Position in bis zu fünf zuvor codierten benachbarten, durch ein Template angegebenen Quantisierungstransformationskoeffizienten 418 gefunden wird.
  • Ein Kontextmodell kann auf den Wahrscheinlichkeiten, dass der Wert eines Bin ‚0‘ oder ‚1‘ ist, basieren. Da die Werte codiert sind, können die Wahrscheinlichkeiten in dem Kontextmodell auf der Basis der tatsächlichen Anzahl von Werten ‚0‘ und ‚1‘, auf die man trifft, aktualisiert werden. Während HEVC feste Tabellen zum Neuinitialisieren von Kontextmodellen für jedes neue Bild verwendet, können in JVET die Wahrscheinlichkeiten von Kontextmodellen für neue interprädizierte Bilder auf der Basis von Kontextmodellen, die für zuvor codierte interprädizierte Bilder entwickelt wurden, initialisiert werden.
  • Der Codierer kann einen Bitstrom erzeugen, der entropiecodierte Bits 422 von Rest-CUs 410, Prädiktionsinformationen wie gewählte Intraprädiktionsmodi oder Bewegungsvektoren, Indikatoren für die Art und Weise der Verzweigung der CUs 102 von einer CTU 100 gemäß der QTBT-Struktur und/oder weitere Informationen hinsichtlich des codierten Videos enthält. Der Bitstrom kann von einem Decoder decodiert werden, wie das nachstehend erläutert wird.
  • Zusätzlich zur Verwendung von quantisierten Transformationskoeffizienten 418 zum Finden der endgültigen Kompressionsbits 422 kann der Codierer auch die quantisierten Transformationskoeffizienten 418 verwenden, um rekonstruierte CUs 434 zu erzeugen, indem er dem gleichen Decodierungsprozess folgt, den ein Decoder anwenden würde, um rekonstruierte CUs zu erzeugen. Daher können die quantisierten Transformationskoeffizienten 418 zur Decodierschleife in dem Codierer übertragen werden, sobald die Transformationskoeffizienten von dem Codierer berechnet und quantisiert worden sind. Nach der Quantisierung von Transformationskoeffizienten einer CU ermöglicht eine Decodierschleife, dass der Codierer eine rekonstruierte CU 434 erzeugt, die identisch mit jener ist, die der Decodierer beim Decodiervorgang erzeugt. Dementsprechend kann der Codierer die gleichen rekonstruierten CUs 434 verwenden, die ein Decodierer für benachbarte CUs 102 oder Referenzbilder verwenden würde, wenn für eine neue CU 102 eine Intraprädiktion oder Interprädiktion durchgeführt wird. Rekonstruierte CUs 102, rekonstruierte Slices oder vollständig rekonstruierte Frames können als Referenz für weitere Prädiktionsstufen dienen.
  • Zum Erhalten von Pixelwerten für das rekonstruierte Bild kann an der Decodierschleife des Codierers (und siehe unten für die gleichen Vorgänge im Decodierer) ein Dequantisierungsprozess durchgeführt werden. Zum Dequantisieren eines Frame wird zum Beispiel ein quantisierter Wert für jedes Pixel eines Frame mit der Quantisierungsstufe, z.B. (Qstep), wie vorangehend beschrieben, multipliziert, um die rekonstruierten dequantisierten Transformationskoeffizienten 426 zu erhalten. Zum Beispiel können bei dem in 4 gezeigten Decodierungsprozess in dem Codierer die quantisierten Transformationskoeffizienten 418 einer Rest-CU 410 bei 424 dequantisiert werden, um dequantisierte Transformationskoeffizienten 426 zu finden. Wenn bei der Codierung eine MDNSST-Operation durchgeführt wurde, kann diese Operation nach der Quantisierung reversiert werden.
  • Bei 428 können die dequantisierten Transformationskoeffizienten 426 inverse Transformierte sein, um eine rekonstruierte Rest-CU 430 zu finden, beispielsweise durch Anwenden einer DTC auf die Werte, um das rekonstruierte Bild zu erhalten. Bei 432 kann die rekonstruierte Rest-CU 430 zu einer korrespondierenden Prädiktions-CU 402 addiert werden, die mit Intra-Prädiktion bei 404 oder Inter-Prädiktion bei 406 gefunden wurde, um eine rekonstruierte CU 434 zu finden.
  • Bei 436 können beim Decodierprozess (in dem Codierer oder - wie nachstehend beschrieben - in dem Decodierer) ein oder mehrere Filter an den rekonstruierten Daten angewendet werden, und zwar entweder auf Bildebene oder auf CU-Ebene. Zum Beispiel kann der Codierer ein Deblockierfilter, ein Sample Adaptive Offset (SAO)-Filter und/oder ein Adaptive Loop Filter (ALF) anwenden. Der Decodierprozess des Codierers kann Filter implementieren, um die optimalen Filterparameter, die potenzielle Artefakte in dem rekonstruierten Bild ansprechen können, zu schätzen und zu einem Decoder zu übertragen. Solche Verbesserungen steigern die objektive und subjektive Qualität des rekonstruierten Videos. Bei der Deblockierfilterung können Pixel in der Nähe einer Sub-CU-Grenze modifiziert werden, während in SAO Pixel in einer CTU 100 entweder mit einer Kantenversatz- oder Bandversatz-Klassifizierung modifiziert werden können. ALF von JVET kann für jeden 2x2 Block Filter mit kreissymmetrischen Formen verwenden. Eine Angabe der Größe und Identität des für jeden 2x2 Block verwendeten Filters kann signalisiert werden.
  • Wenn rekonstruierte Bilder Referenzbilder sind, können sie für eine Inter-Prädiktion von künftigen CUs 102 bei 406 in einem Referenzpuffer 438 gespeichert werden.
  • Während der vorgenannten Schritte ermöglicht JVET die Verwendung von inhaltsadaptiven Clipping-Vorgängen, um die Farbwerte so anzupassen, dass sie zwischen untere und obere Clipping-Grenzen passen. Die Clipping-Grenzen können sich für jeden Slice ändern, und Parameter, die die Grenzen angeben, können in dem Bitstrom signalisiert werden.
  • 6 zeigt ein vereinfachtes Blockdiagramm für CU-Codierung in einem JVET-Decodierer. Ein JVET-Decodierer kann einen Bitstrom empfangen, der Informationen über codierte CUs 102 enthält. Der Bitstrom kann angeben, wie CUs 102 eines Bildes von einer CTU 100 gemäß einer QTBT-Struktur verzweigt wurden, kann Prädiktionsinformationen für die CUs 102 wie beispielsweise Intra-Prädiktionsmodi oder Bewegungsvektoren und Bits 602, die entropiecodierte Rest-CUs darstellen, angeben.
  • Bei 604 kann der Decoder die entropiecodierten Bits 602 unter Verwendung von CABAC-Kontextmodellen, die von dem Decoder im Bitstrom signalisiert werden, decodieren. Der Decoder kann von dem Codierer signalisierte Parameter verwenden, um die Wahrscheinlichkeiten des Kontextmodells in der gleichen Weise zu aktualisieren, wie diese bei der Codierung aktualisiert wurden.
  • Nach der Umkehrung der Entropiecodierung bei 604, um quantisierte Transformationskoeffizienten 606 zu finden, kann der Decoder sie bei 608 dequantisieren, um dequantisierte Transformationskoeffizienten 610 zu finden. Wenn während der Codierung eine MDNSST-Operation durchgeführt wurde, so kann diese Operation nach der Dequantisierung von dem Decoder reversiert werden.
  • Bei 612 können die dequantisierten Transformationskoeffizienten 610 inverse Transformierte sein, um eine rekonstruierte Rest-CU 614 zu finden. Bei 616 kann die rekonstruierte Rest-CU 614 zu einer korrespondierenden Prädiktions-CU 626 addiert werden, die mit Intra-Prädiktion bei 622 oder mit Inter-Prädiktion bei 624 gefunden wurde, um eine rekonstruierte CU 618 zu finden.
  • Bei 620 können ein oder mehrere Filter an den rekonstruierten Daten angewendet werden, entweder auf einer Bildebene oder auf einer CU-Ebene. Zum Beispiel kann der Decodierer ein Deblockierfilter, ein Sample Adaptive Offset (SAO)-Filter und/oder ein Adaptive Loop Filter (ALF) anwenden. Wie vorstehend beschrieben können die In-Loop-Filter, die sich in der Decodierschleife des Codierers befinden, verwendet werden, um optimale Filterparameter zu schätzen, um die objektive und subjektive Qualität eines Frame zu erhöhen. Diese Parameter werden zu dem Decoder übertragen, um das rekonstruierte Frame bei 620 zu filtern, um das gefilterte rekonstruierte Frame in dem Decoder anzupassen.
  • Nachdem rekonstruierte Bilder erzeugt wurden, indem rekonstruierte CUs 618 gefunden und signalisierte Filter angewendet wurden, kann der Decoder die rekonstruierten Bilder als Ausgangsvideo 628 ausgeben. Wenn rekonstruierte Bilder als Referenzbilder zu verwenden sind, können diese für eine Inter-Prädiktion von künftigen CUs 102 bei 624 in einem Referenzpuffer 630 gespeichert werden.
  • 7A und 7B zeigen Ausführungsformen eines planaren Prädiktionsprozesses 700 gemäß JVET. Der planare Modus ist oftmals der am meisten verwendete Intra-Codierungsmodus in JVET. 7A und 7B zeigen den Erzeugungsprozess des planaren Prädiktors in JVET für eine Codiereinheit (einen Block) 702 mit einer Höhe 704 H = 8 und einer Breite 706 W = 8, wobei die (0,0)-Koordinate der oberen linken Position 708 in der Codier-CU 702 entspricht.
  • Der planare Modus in JVET erzeugt eine Annäherung ersten Grades der Prädiktion für eine aktuelle Codiereinheit (CU) 702, indem auf der Basis der Intensitätswerte der benachbarten Pixel eine Ebene erstellt wird. Wegen der Rasterscan-Codierreihenfolge sind die rekonstruierten benachbarten Pixel 704 der linken Spalte und die rekonstruierten benachbarten Pixel 706 der oberen Reihe für eine aktuelle CU 702 verfügbar. Die benachbarten Pixel der rechten Spalte und die benachbarten Pixel der unteren Reihe sind jedoch nicht verfügbar. Der planare Prädiktor-Erzeugungsprozess legt die Intensitätswerte sämtlicher benachbarter Pixel 704 in der rechten Spalte derart fest, dass sie die gleichen sind wie der Intensitätswert des oberen rechten benachbarten Pixels, und legt die Intensitätswerte sämtlicher Pixel in der unteren Reihe derart fest, dass sie die gleichen sind wie der Intensitätswert des unteren linken benachbarten Pixels. Sobald die einen Prädiktionsblock umgebenden benachbarten Pixel definiert sind, können der horizontale und der vertikale Prädiktor für jedes Pixel 710 innerhalb der CU 702 ermittelt werden. Der endgültige planare Prädiktor kann durch eine Mittelwertbildung der horizontalen und vertikalen Prädiktoren berechnet werden, mit einer gewissen Anpassung, wenn die aktuelle CR 702 anders als quadratisch ist. In 7A und 7B ist ein Prozess zur Erzeugung eines planaren Prädiktors zur Veranschaulichung in einem Überblick dargestellt. Jedoch stellt sich bei der Anwendung des in den 7A und 7B dargestellten Prozesses zumindest insoweit ein Problem bei dem Vorgang zur Erzeugung eines planaren Prädiktors, als der endgültige planare Prädiktor nicht wirklich eine Ebene ist.
  • Vorliegend werden neue Wege offenbart, um eine Ebene über einer aktuellen CU 702 unter Verwendung der rekonstruierten benachbarten Pixel 704 in der linken Spalte und 706 in der oberen Reihe zu erstellen, wobei die Pixelintensitätswerte der Ebene als Prädiktoren für die korrespondierenden Pixel über der aktuellen CU 702 verwendet werden können.
  • 8 zeigt eine gegebene Gruppe von Abtastpunkten 802 in einer x-y-Ebene, aus denen unter Anwendung der Methode der kleinsten Quadrate, die die Summe der quadrierten Residuen zwischen der Linie und den Abtastpunkten minimiert, eine Gerade von y= ax+ b konstruiert oder definiert werden kann. 8 zeigt das Gesamtkonzept der Methode der kleinsten Quadrate.
  • Um die Methode der kleinsten Quadrate anzuwenden, sei E(a, b) die Summe der quadratischen Fehler zwischen der Ausgleichsgeraden 804 und den gegebenen Abtastpunkten, wobei a die Steigung und b der y-Achsenabschnitt der Ausgleichsgerade ist, definiert als: E ( a , b ) = ( y n ( a x n + b ) ) 2
    Figure DE112018005899T5_0001
  • Lässt man die partiellen Ableitungen der Funktion E in Bezug auf a und b gleich 0 sein, kann E(a, b) minimiert werden. Dies wird dargestellt als: E a = 0, E b = 0
    Figure DE112018005899T5_0002
    E a = 2 ( y n ( a x n + b ) ) ( x n ) = 0
    Figure DE112018005899T5_0003
    E b = 2 ( y n ( a x n + b ) ) ( 1 ) = 0
    Figure DE112018005899T5_0004
    a x n 2 + b x n = x n y n
    Figure DE112018005899T5_0005
    a x n + b 1 = y n
    Figure DE112018005899T5_0006
    [ x n 2 x n x n 1 ] [ a b ] = [ x n y n y n ]
    Figure DE112018005899T5_0007
    [ a b ] = [ x n 2 x n x n 1 ] 1 [ x n y n y n ]
    Figure DE112018005899T5_0008
  • Durch Lösen der obenstehenden Gleichung erhält man die Steigung, a, und den y-Achsenabschnitt, b. Die Gerade 804 mit der Steigung (a) und dem y-Achsenabschnitt (b) minimiert die Funktion E(a, b) zwischen der Ausgleichsgeraden von y = ax+ b und den Abtastpunkten 802, wobei die Endpunkte der Ausgleichsgeraden 804 A' 806 und B' 808 sind.
  • Bei einer aktuellen CU 702 sind zwei Gruppen der rekonstruierten benachbarten Pixel 704, 706 vorhanden. Die eine ist die Gruppe der benachbarten Pixel 704 der linken Spalte, und die andere ist die Gruppe der benachbarten Pixel 706 der oberen Reihe.
  • Wie in 9 gezeigt ist, können in einigen Ausführungsformen die benachbarten Pixel 704 in der linken Spalte als Abtastpunkte 802 zum Bilden einer Ausgleichsgeraden 902 von y= a1x+ b1 und die benachbarten Pixel 706 in der oberen Reihe als Abtastpunkte 802 zum Bilden einer weiteren Ausgleichsgeraden 904 von y= a2x+ b2 verwendet werden, wie in 9 gezeigt. Daher gilt: wenn (0,0) der obere linke Koordinator einer aktuellen CU 702 einer Dimension von Nx × Ny ist, lässt sich eine Ebene aus drei Punkten aufstellen.
  • In der in 9 gezeigten Ausführungsform können die Intensitätswerte A' 806 und B' 808 an den Punkten (-1, -1) und (Nx, -1) von der Ausgleichsgeraden 804 y= a1x+ b1 bestimmt werden, und die Intensitätswerte von A" 904 und B" 906 an den Punkten (-1, -1) und (-1, Ny) von der Ausgleichsgeraden 908 y= a2x+ b2 können ebenfalls bestimmt werden.
  • In manchen Fällen sind die Intensitätswerte A' 806 und A" 904 an demselben Punkt (-1, -1) gegebenenfalls nicht gleich, da sie aus unterschiedlichen Gruppen von Abtastpunkten 802 berechnet werden. Daher können in einigen Ausführungsformen die Werte von A' 806 und A" 904 gemittelt werden, um einen Mittelwert M 910 zu bestimmen als: M = ( A ' + A ' ' ) / 2
    Figure DE112018005899T5_0009
  • Mit den drei Intensitätswerten M 910, A' 806 und A" 904 an den drei Punkten (-1, -1), (Nx,-1) und (-1, Ny) lässt sich eine Ebene zur Verwendung als Prädiktorebene für die aktuelle CU 702 konstruieren. Die Prädiktorebene für die CU 702 der Form z= ax+ by+c aus den rekonstruierten benachbarten Pixeln 802 kann durch Anwendung der Methode der kleinsten Quadrate wie folgt konstruiert werden:
  • (xn, yn) sei der Koordinator eines rekonstruierten benachbarten Pixels und zn der entsprechende Intensitätswert (xn, yn, zn). Dieser Punkt kann dann als Abtastpunkt in einem dreidimensionalen Raum {x, y, z} betrachtet werden. Die rekonstruierten benachbarten Pixel für eine aktuelle CU 702 bilden eine Gruppe von Abtastpunkten, wie in 10 gezeigt. Wendet man die Methode der kleinsten Quadrate an, kann eine Ebene 1000 der Form z= ax+ by+c konstruiert werden, die die Summe der quadratischen Fehler zwischen der Ebene 1000 und den Abtastpunkten 1002, 1004 minimiert.
  • E(a, b, c) sei die Summe von quadratischen Fehlern zwischen der Ebene 1000 von z= ax+ by+c und den Abtastpunkten, definiert als E ( a , b , c ) = ( z n ( a x n + b y n + c ) ) 2
    Figure DE112018005899T5_0010
  • Indem man die partiellen Ableitungen der Funktion E in Bezug auf a und b gleich 0 sein lässt, kann die Funktion E(a, b, c) wie folgt minimiert werden. E a = 0, E b = 0, E c = 0
    Figure DE112018005899T5_0011
    E a = 2 ( z n ( a x n + b y n + c ) ) ( x n ) = 0
    Figure DE112018005899T5_0012
    E b = 2 ( z n ( a x n + b y n + c ) ) ( y n ) = 0
    Figure DE112018005899T5_0013
    E c = 2 ( z n ( a x n + b y n + c ) ) ( 1 ) = 0
    Figure DE112018005899T5_0014
  • Die Gleichungen können dann wie nachstehend angegeben umgeschrieben und in Matrixform wie folgt dargestellt werden: a x n 2 + b x n y n + c x n = z n x n
    Figure DE112018005899T5_0015
    a x n y n + b y n 2 + c y n = z n y n
    Figure DE112018005899T5_0016
    a x n + b y n + c 1 = z n
    Figure DE112018005899T5_0017
    [ x n 2 x n y n x n x n y n y n 2 y n x n y n n ] [ a b c ] = [ z n x n z n y n z n ]
    Figure DE112018005899T5_0018
    [ a b c ] = [ x n 2 x n y n x n x n y n y n 2 y n x n y n n ] 1 [ z n x n z n y n z n ]
    Figure DE112018005899T5_0019
  • Löst man die obenstehende Gleichung, können die Ebenenkonstanten a, b und c bestimmt werden. Mit a, b und c lässt sich eine Ebene 1000 von z= ax+ by+c konstruieren, die dann als Prädiktorebene für die aktuelle CU 702 verwendet werden kann.
  • In einigen Ausführungsformen können die verwendeten Abtastpunkte 1002, 1004 eine oder mehr als eine rekonstruierte linke Spalte von benachbarten Pixeln 704 und eine oder mehr als eine rekonstruierte obere Reihe von benachbarten Pixeln 706 sein.
  • Da die rekonstruierten Pixel 704, 706 an dem Decoderende verfügbar sind, kann ein Decoder ferner durch Anwendung der Methode der kleinsten Quadrate für eine aktuelle CU 702 die gleiche Ebene konstruieren. Es muss daher kein zusätzlicher Overhead für die Information bezüglich der Ebene 1000 zu dem Decoder übertragen werden.
  • In einigen alternativen Ausführungsformen können die ursprünglichen Pixel einer aktuellen CU 702 zum Bilden einer Prädiktorebene 1000 von z= ax+ by+c für die aktuelle CU verwendet werden, wobei die Methode der kleinsten Quadrate angewendet wird. Jedoch können die Ebenenkonstanten a, b und c als Teil der Übertragung übertragen werden, wenn der Decoder nicht anderweitig Zugriff auf solche Ebenenkonstanten hat.
  • 11 zeigt ein Blockdiagramm eines Verfahrens zum Konstruieren einer Prädiktionsebene 1100. In Schritt 1102 wird eine erste Gruppe von Datenpunkten von einer ersten Geraden und in Schritt 1104 eine zweite Gruppe von Datenpunkten von einer zweiten Geraden erhalten. Dann kann in Schritt 1106 eine erste Gerade auf der Basis der ersten Gruppe von Datenpunkten und in Schritt 1108 und eine zweite Gerade auf der Basis der zweiten Gruppe von Datenpunkten definiert werden. In einigen Ausführungsformen können die erste und die zweite Gerade basierend auf der Methode der kleinsten Quadrate definiert werden. In alternativen Ausführungsformen kann jedoch jede bekannte vorteilhafte und/oder gewünschte Methode zum Definieren einer Geraden basierend auf einer Sammlung von Datenpunkten angewendet werden.
  • In Schritt 1110 kann eine Bestimmung dahingehend erfolgen, ob die y-Achsenabschnitte der ersten und der zweiten Geraden zusammenfallen. Wenn in Schritt 1110 bestimmt wird, dass die y-Achsenabschnitte der ersten und der zweiten Geraden nicht zusammenfallen, kann in Schritt 1112 der Durchschnittswert der y-Achsenabschnitte der ersten und der zweiten Geraden ermittelt werden.
  • In den Schritten 1114 und 1116 können Werte entlang der ersten und der zweiten Geraden ermittelt werden, und dann kann in Schritt 1118 eine Ebene der Form z= ax+ by+c definiert werden. In einigen Ausführungsformen kann der Mittelwert der y-Achsenabschnitte zum Konstruieren/Definieren der Ebene verwendet werden. In alternativen Ausführungsformen jedoch kann einer der beiden y-Achsenabschnitte von der ersten und von der zweiten Geraden zum Konstruieren/Definieren der Ebene verwendet werden. Darüber hinaus kann in einigen Ausführungsformen die Methode der kleinsten Quadrate zum Konstruieren/Definieren der Ebene angewendet werden. In einigen alternativen Ausführungsformen kann jedoch jede bekannte vorteilhafte und/oder gewünschte Methode zum Konstruieren einer Ebene aus Datenpunkten angewendet werden.
  • Die Abarbeitung der Befehlssequenzen, die für die praktische Umsetzung der Ausführungsformen notwendig sind, kann von einem Computersystem 1200 wie in 12 gezeigt bewerkstelligt werden. In einer Ausführungsform erfolgt die Abarbeitung der Befehlssequenzen durch ein einziges Computersystem 1200. Gemäß weiteren Ausführungsformen können zwei oder mehr Computersysteme 1200, die durch eine Kommunikationsverbindung 1215 verbunden sind, die Befehlsfolge in miteinander koordinierter Weise ausführen. Während in der nachstehenden Beschreibung nur ein Computersystem 1200 angegeben ist, versteht es sich, dass für die praktische Umsetzung der Ausführungsformen Computersysteme 1200 in beliebiger Anzahl verwendet werden können.
  • Ein Computersystem 1200 gemäß einer Ausführungsform wird nunmehr unter Bezugnahme auf 12 erläutert, die ein Blockdiagramm der Funktionskomponenten eines Computersystems 1200 zeigt. Der in vorliegender Beschreibung verwendete Begriff Computersystem 1200 soll allgemein eine Computervorrichtung beschreiben, die unabhängig ein oder mehrere Programme speichern und ausführen kann.
  • Jedes Computersystem 1200 kann eine Kommunikationsschnittstelle 1214 aufweisen, die mit dem Bus 1206 verbunden ist. Die Kommunikationsschnittstelle 1214 sorgt für eine beidseitige Kommunikation zwischen den Computersystemen 1200. Die Kommunikationsschnittstelle 1214 eines jeweiligen Computersystems 1200 überträgt und empfängt elektrische, elektromagnetische oder optische Signale, die Datenströme enthalten, die verschiedene Arten von Signalinformationen, zum Beispiel Befehle, Mitteilungen und Daten, darstellen. Eine Kommunikationsverbindung 1215 verbindet ein Computersystem 1200 mit einem weiteren Computersystem 1200. Zum Beispiel kann die Kommunikationsverbindung 1215 ein LAN sein, wobei die Kommunikationsschnittstelle 1214 in diesem Fall eine LAN-Karte sein kann, oder die Kommunikationsverbindung 1215 kann ein PSTN sein, wobei die Kommunikationsschnittstelle 1214 in diesem Fall eine Integrated Services Digital Network (ISDN)-Karte oder ein Modem ist, oder die Kommunikationsverbindung 1215 kann das Internet sein, wobei die Kommunikationsschnittstelle 1214 in diesem Fall ein Einwählmodem, ein Kabelmodem oder ein drahtloses Modem sein kann.
  • Ein Computersystem 1200 kann Mitteilungen, Daten und Befehle einschließlich eines Programm-, d.h. Anwendungscodes, über seine jeweilige Kommunikationsverbindung 1215 und Kommunikationsschnittstelle 1214 übertragen und empfangen. Ein empfangener Programmcode kann bei Empfang von dem(den) jeweiligen Prozessor(en) 1217 ausgeführt werden und/oder kann für eine spätere Ausführung in der Speichereinrichtung 1210 oder in anderen zugeordneten nichtflüchtigen Medien gespeichert werden.
  • In einer Ausführungsform arbeitet das Computersystem 1200 in Verbindung mit einem Datenspeichersystem 1231, z.B. einem Datenspeichersystem 1231, das eine Datenbank 1232 enthält, auf die das Computersystem 1200 ohne weiteres zugreifen kann. Das Computersystem 1200 kommuniziert über eine Datenschnittstelle 1233 mit dem Datenspeichersystem 1231. Eine Datenschnittstelle 1233, die mit dem Bus 1206 verbunden ist, überträgt und empfängt elektrische, elektromagnetische oder optische Signale, die Datenströme enthalten, die verschiedene Arten von Signalinformationen darstellen, zum Beispiel Befehle, Mitteilungen und Daten. In Ausführungsformen können die Funktionen der Datenschnittstelle 1233 von der Kommunikationsschnittstelle 1214 ausgeführt werden.
  • Das Computersystem 1200 umfasst einen Bus 1206 oder einen anderen Kommunikationsmechanismus zum Kommunizieren von Befehlen bzw. Instruktionen, Mitteilungen und Daten - zusammenfassend als Daten bezeichnet - und einen oder mehrere Prozessoren 1207, die zum Verarbeiten von Informationen mit dem Bus 1206 verbunden sind. Das Computersystem 1200 hat auch einen Hauptspeicher 1208 wie beispielsweise einen Speicher mit wahlfreiem Zugriff (RAM) oder eine andere dynamische Speichereinrichtung, der/die zum Speichern von dynamischen Daten und Befehlen, die von dem(den) Prozessor(en) 1207 auszuführen sind, mit dem Bus 1206 verbunden ist. Der Hauptspeicher 1208 kann auch zum Speichern von vorübergehenden Daten, d.h. Variablen, oder von anderen Zwischeninformationen während der Ausführung von Befehlen durch den(die) Prozessor(en) verwendet werden.
  • Das Computersystem 1200 kann ferner einen Nur-Lese-Speicher (ROM) 1209 oder andere statische Speichereinrichtung umfassen, die mit dem Bus 1206 verbunden ist, um statische Daten und oder Befehle für den(die) Prozessor(en) 1207 zu speichern. Eine Speichereinrichtung 1210 wie eine Magnetplatte oder eine optische Platte kann ebenfalls vorgesehen sein und kann mit dem Bus 1206 verbunden sein, um Daten und Befehle für den(die) Prozessor(en) 1207 zu speichern.
  • Ein Computersystem 1200 kann über den Bus 1206 mit einer Anzeigevorrichtung 1211 verbunden sein, zum Beispiel mit einer Kathodenstrahlröhre (CRT) oder einem Flüssigkristall-(LCD)-Anzeigemonitor (ohne Beschränkung hierauf), um Informationen für einen Nutzer anzuzeigen. Eine Eingabeeinrichtung 1212, z.B. alphanumerische oder andere Tasten, ist mit dem Bus 1206 verbunden, um Informations- und Befehlsauswahlen an den(die) Prozessor(en) 1207 zu übermitteln.
  • Gemäß einer Ausführungsform führt ein individuelles Computersystem 1200 bestimmte Operationen durch seinen bzw. seine jeweiligen Prozessor(en) 1207 durch, die eine oder mehrere Folgen von einem oder mehreren Befehlen, die in dem Hauptspeicher 1208 enthalten sind, abarbeiten. Solche Befehle oder Instruktionen können von einem anderen computernutzbaren Medium, z.B. dem ROM 1209 oder der Speichereinrichtung 1210, in den Hauptspeicher 1208 eingelesen werden. Die Abarbeitung der in dem Hauptspeicher 1208 gespeicherten Befehlsfolgen veranlasst den(die) Prozessor(en) 1207 zur Durchführung der vorliegend beschriebenen Prozesse. In alternativen Ausführungsformen können anstelle von Softwarebefehlen oder in Kombination mit diesen festverdrahtete Schaltungen verwendet werden. Somit sind Ausführungsformen nicht auf eine bestimmte Kombination von Hardware-Schaltungen und/oder Software beschränkt.
  • Der in vorliegender Beschreibung verwendete Begriff „computernutzbares Medium“ bezieht sich auf jedes Medium, das Informationen bereitstellt oder von dem(den) Prozessor(en) 1207 nutzbar ist. Die Form eines solchen Mediums ist vielfältig. Es kann sich um flüchtige, nichtflüchtige und Übertragungsmedien handeln, ohne Beschränkung hierauf. Nichtflüchtige Medien, d.h. Medien, die Informationen auch bei fehlender elektrischer Energie behalten können, sind unter anderem das ROM 1209, eine CD ROM, ein Magnetband und Magnetplatten. Flüchtige Medien, d.h. Medien, die bei fehlender elektrischer Energie Informationen nicht behalten können, umfassen den Hauptspeicher 1208. Übertragungsmedien sind unter anderem Koaxialkabel, Kupferdraht und optische Fasern, einschließlich der Drähte, die den Bus 1206 umfassen. Übertragungsmedien können in Form von Trägerwellen vorgesehen sein, d.h. in Form von elektromagnetischen Wellen, die in ihrer Frequenz, Amplitude oder Phase moduliert werden können, um Informationssignale zu übertragen. Weiterhin können Übertragungsmedien in Form von akustischen oder Lichtwellen vorgesehen sein, wie beispielsweise solche, die während Funkwellen- und Infrarotdatenkommunikationen erzeugt werden.
  • In der vorangehenden Beschreibung wurden die Ausführungsformen mit Bezug auf deren spezifische Elemente beschrieben. Es ist jedoch offensichtlich, dass verschiedene Modifikationen und Änderungen möglich sind, ohne von dem breiteren Erfindungsgedanken abzuweichen oder den Rahmen der Ausführungsformen zu verlassen. Es versteht sich somit, dass die spezielle Reihenfolge und Kombination von Aktionen in dem Prozess, der in Flussdiagrammen dargestellt ist, rein Darstellungszwecken dient und dass zur Umsetzung der Ausführungsformen andere oder zusätzliche Prozessaktionen oder eine andere Kombination oder Reihenfolge von Prozessaktionen verwendet werden können. Daher dienen die Beschreibung und die anliegenden Zeichnungen lediglich der Veranschaulichung und sind nicht im Sinne einer Einschränkung zu verstehen.
  • Ferner ist anzumerken, dass vorliegende Erfindung in einer Vielfalt von Computersystemen implementiert werden kann. Die verschiedenen Techniken, die vorliegend beschrieben sind, können in Hardware oder Software oder einer Kombination von Hardware und Software implementiert werden. Bevorzugt sind die Techniken in Computerprogrammen implementiert, die auf programmierbaren Computern laufen, die jeweils einen Prozessor, ein von dem Prozessor lesbares Speichermedium (einschließlich flüchtiger und nichtflüchtiger Speicherelemente), zumindest eine Eingabeeinrichtung und zumindest eine Ausgabeeinrichtung aufweisen. Der Programmcode wird auf Daten angewendet, die mittels der Eingabeeinrichtung eingegeben werden, um die vorstehend beschriebenen Funktionen auszuführen und Ausgabeinformationen zu erzeugen. Die Ausgabeinformationen werden einer oder mehreren Ausgabeeinrichtungen zugeführt. Jedes Programm ist vorzugsweise in einer höheren Verfahrens- oder objektorientierten Programmiersprache implementiert, um mit einem Computersystem zu kommunizieren. Jedoch können die Programme auch in Assemblersprache oder Maschinensprache implementiert sein, falls gewünscht. In jedem Fall kann die Sprache eine kompilierte oder interpretierte Sprache sein. Jedes derartige Computerprogramm ist vorzugsweise auf einem Speichermedium oder einer Speichereinrichtung (z.B. ROM oder Magnetplatte) gespeichert, das/die von einem programmierbaren Universalcomputer oder Spezialcomputer gelesen werden kann, um den Computer zu konfigurieren und für den Betrieb des Computers, wenn das Speichermedium oder die Speichereinrichtung von dem Computer gelesen wird, um die vorstehend beschriebenen Abläufe durchzuführen. Das System kann auch als eines betrachtet werden, das als computerlesbares Speichermedium implementiert und mit einem Computerprogramm konfiguriert ist, wobei das Speichermedium derart implementiert ist, dass dieses einen Computer veranlasst, in einer bestimmten und vorgegebenen Weise zu arbeiten. Ferner können die Speicherelemente der beispielhaften Computeranwendungen relationale oder sequenzielle (Flachdatei)-Computing-Datenbanken sein, die geeignet sind zum Speichern von Daten in verschiedenen Kombinationen und Konfigurationen.
  • 13 zeigt einen allgemeinen Überblick einer Quelleinrichtung 1312 und einer Zieleinrichtung 1310, in die Merkmale der vorliegenden beschriebenen Systeme und Vorrichtungen integriert sein können. Wie in 13 dargestellt ist, umfasst ein Beispiel-Videocodiersystem 1310 eine Quelleinrichtung 1312 und eine Zieleinrichtung 1314, wobei in diesem Beispiel die Quelleinrichtung 1312 codierte Videodaten erzeugt. Dementsprechend kann die Quelleinrichtung 1312 als Videocodiereinrichtung bezeichnet werden. Die Zieleinrichtung 1314 kann die von der Quelleinrichtung 1312 erzeugten codierten Videodaten decodieren, so dass die Zieleinrichtung 1314 dementsprechend als Videodecodiereinrichtung bezeichnet werden kann. Die Quelleinrichtung 1312 und die Zieleinrichtung 1314 können Beispiele von Videocodiereinrichtungen sein.
  • Die Zieleinrichtung 1314 kann über einen Kanal 1316 codierte Videodaten von der Quelleinrichtung 1312 empfangen. Der Kanal 1316 kann ein Medium oder eine Einrichtung eines Typs umfassen, der geeignet ist zum Verschieben von codierten Videodaten von der Quelleinrichtung 1312 zur Zieleinrichtung 1314. In einem Beispiel kann der Kanal 1316 ein Kommunikationsmedium umfassen, das ermöglicht, dass die Quelleinrichtung 1312 codierte Videodaten direkt und in Echtzeit zur Zieleinrichtung 1314 überträgt.
  • In diesem Beispiel kann die Quelleinrichtung 1312 die codierten Videodaten gemäß einem Kommunikationsstandard wie beispielsweise ein Drahtlos-Kommunikations-Protokoll modulieren und kann die modulierten Videodaten zur Zieleinrichtung 1314 übertragen. Das Kommunikationsmedium kann ein drahtloses oder ein drahtgebundenes Kommunikationsmedium umfassen, zum Beispiel ein Radiofrequenz-Spektrum (RF-Spektrum) oder eine oder mehrere physische Übertragungsleitungen. Das Kommunikationsmedium kann Teil eines paketbasierten Netzwerks sein, z.B. eines Local Area Network, eines Wide-Area Network oder eines Global Network wie das Internet. Das Kommunikationsmedium kann Router, Schalter, Basisstationen oder weiteres Equipment umfassen, das die Kommunikation von der Quelleinrichtung 1312 zur Zieleinrichtung 1314 ermöglicht. In einem anderen Beispiel kann der Kanal 1316 einem Speichermedium entsprechen, das die von der Quelleinrichtung 1312 erzeugten codierten Videodaten speichert.
  • In dem Beispiel von 13 umfasst die Quelleinrichtung 1312 eine Videoquelle 1318, einen Videocodierer 1320 und eine Ausgabeschnittstelle 1322. In manchen Fällen kann die Ausgabeschnittstelle 1328 einen Modulator/Demodulator (Modem) und/oder einen Sender umfassen. In der Quelleinrichtung 1312 kann die Videoquelle 1318 eine Quelle wie beispielsweise ein Videoaufnahmegerät, z.B. eine Videokamera, ein zuvor aufgenommene Videodaten enthaltendes Videoarchiv, eine Video-Feed-Schnittstelle für den Empfang von Videodaten von einem Provider für Videoinhalte und/oder ein Computergrafiksystem zum Erzeugen von Videodaten oder eine Kombination solcher Quellen umfassen.
  • Der Videocodierer 1320 kann die erfassten, vorerfassten oder computergenerierten Videodaten codieren. Ein Eingangsbild kann von dem Videocodierer 1320 empfangen und in dem Eingangsbildspeicher 1321 gespeichert werden. Der Universalprozessor 1323 kann von hier Informationen laden und eine Codierung vornehmen. Das Programm zum Treiben des Universalprozessors kann aus der Speichereinrichtung geladen werden, zum Beispiel aus den Beispiel-Speichermodulen, die in 13 dargestellt sind. Der Universalprozessor kann zum Codieren einen Verarbeitungsspeicher 1322 nutzen, und die Ausgabe der Codierinformationen von dem Universalprozessor kann in einem Puffer gespeichert werden, zum Beispiel in dem Ausgabepuffer 1326.
  • Der Videocodierer 1320 kann ein Resampling- bzw. Neuabtastungsmodul 1325 enthalten, das konfiguriert sein kann für das Codieren (z.B. Encodieren) von Videodaten in einem skalierbaren Videocodierschema, das zumindest eine Basisschicht und zumindest eine Verbesserungsschicht definiert. Das Resampling-Modul 1325 kann als Teil eines Encodiervorgangs zumindest einige Videodaten neu abtasten, wobei das Resampling adaptiv mittels Resampling-Filtern erfolgt.
  • Die codierten Videodaten, z.B. ein codierter Bitstrom, kann über eine Ausgabeschnittstelle 1328 der Quelleinrichtung 1312 direkt zur Zieleinrichtung 1314 übertragen werden. In dem Beispiel von 13 enthält die Zieleinrichtung 1314 eine Eingabeschnittstelle 1338, einen Videodecoder 1330 und eine Anzeigeeinrichtung 1332. In einigen Fällen kann die Eingabeschnittstelle 1328 einen Receiver und/oder ein Modem umfassen. Die Eingabeschnittstelle 1338 der Zieleinrichtung 1314 empfängt codierte Videodaten über den Kanal 1316. Die codierten Videodaten können eine Vielfalt von Syntaxelementen enthalten, die von dem Videocodierer 1320 erzeugt werden und die die Videodaten darstellen. Solche Syntaxelemente können in den codierten Videodaten enthalten sein, die auf einem Kommunikationsmedium übertragen werden, können in einem Speichermedium gespeichert sein oder in einem Dateiserver.
  • Die codierten Videodaten können auch auf einem Speichermedium oder einem Dateiserver gespeichert werden, für den späteren Zugriff durch die Zieleinrichtung 1314 zur Decodierung und/oder Wiedergabe. Zum Beispiel kann der codierte Bitstrom vorübergehend in dem Eingabepuffer 1331 gespeichert werden und dann in den Universalprozessor 1333 geladen werden. Das Programm zum Treiben des Universalprozessors kann aus einer Speichereinrichtung oder einem Arbeitsspeicher geladen werden. Der Universalprozessor kann einen Prozessspeicher 1332 nutzen, um die Decodierung vorzunehmen. Der Videodecoder 1330 kann auch ein Resampling-Modul 1335 enthalten, ähnlich wie das Resampling-Modul 1325, das in dem Videocodierer 1320 verwendet wird.
  • 13 zeigt das Resampling-Modul 1335 getrennt von dem Universalprozessor 1333, jedoch wird der Fachmann erkennen, dass die Resamplingfunktion auch von einem Programm ausgeführt werden könnte, das von dem Universalprozessor ausgeführt wird, und dass die Verarbeitung in dem Videocodierer durch einen oder mehrere Prozessoren bewerkstelligt werden könnte. Das(die) decodierte(n) Bild(er) können in dem Ausgangsbildpuffer 1336 gespeichert und an die Eingabeschnittstelle 1338 gesendet werden.
  • Die Anzeigeeinrichtung 1338 kann in der Zieleinrichtung 1314 integriert oder extern zu dieser vorgesehen sein. In einigen Beispielen kann die Zieleinrichtung 1314 eine integrierte Anzeigeeinrichtung enthalten und kann auch derart konfiguriert sein, dass sie eine Schnittstelle mit einer externen Anzeigevorrichtung bildet. In anderen Beispielen kann die Zieleinrichtung 1314 eine Anzeigeeinrichtung sein. Im Allgemeinen zeigt die Anzeigeeinrichtung 1338 die decodierten Videodaten für den Nutzer an.
  • Der Videocodierer 1320 und der Videodecodierer 1330 können gemäß einem Videokompressionsstandard arbeiten. ITU-T VCEG (Q6/16) und ISO/IEC MPEG (JTC 1/SC 29/WG 11) untersuchen die potenzielle Notwendigkeit einer Standardisierung der künftigen Videocodierungstechnologie mit einer Komprimierungsfunktion, die jene des aktuellen High Efficiency Video Coding HEVC-Standards (einschließlich dessen aktueller Erweiterungen und kurzfristiger Erweiterungen für die Codierung von Bildschirminhalt und die Codierung mit einem hohen Dynamikumfang) deutlich übersteigt. Die Gruppen arbeiten bei dieser Explorationsaktivität zusammen. Diese Kooperation ist auch als Joint Video Exploration Team (JVET) bekannt, das von seinen Experten auf diesem Gebiet vorgeschlagene Kompressionstechnologie-Entwürfe auswertet. Eine kürzliche Abhandlung von JVET Development ist beschrieben in „Algorithm Description of Joint Exploration Test Model 5 (JEM 5)“, JVET-E1001-V2, verfasst von J. Chen, E. Alshina, G. Sullivan, J. Ohm, J. Boyce.
  • Zusätzlich oder alternativ können der Videocodierer 1320 und der Videodecodierer 1330 gemäß anderen proprietären Standards oder Industriestandards arbeiten, die mit den offenbarten JVET-Merkmalen funktionieren, also gemäß anderen Standards wie der ITU-T H.264-Standard, alternativ als MPEG-4/Part 10 bezeichnet, Advanced Video Coding (AVC) oder Erweiterungen solcher Standards. Obwohl für JVET neu entwickelt, sind Techniken der vorliegenden Offenbarung nicht auf einen bestimmten Codierstandard oder eine bestimmte Codiertechnik beschränkt. Weitere Beispiele von Videokompressionsstandards und Videokompressionstechniken sind unter anderem MPEG-2, ITU-T H.263 und proprietäre oder Open-Source-Kompressionsformate und verwandte Formate.
  • Der Videocodierer 1320 und der Videodecoder 1330 können in Hardware, Software, Firmware oder einer Kombination davon implementiert sein. Zum Beispiel können der Videocodierer 1320 und der Decodierer 1330 einen oder mehrere Prozessoren, Digitalsignalprozessoren (DSPs), anwendungsspezifische integrierte Schaltungen (ASICs), feldprogrammierbare Gate Arrays (FPGAs), diskrete Logik oder Kombination davon verwenden. Wenn der Videocodierer 1320 und der Decodierer 1330 zum Teil in Software implementiert sind, kann eine Einrichtung Befehle für die Software in einem geeigneten, nichttransitorischen computerlesbaren Speichermedium speichern und kann die Befehle in Hardware ausführen, wobei ein oder mehrere Prozessoren verwendet werden, um die Verfahren der vorliegenden Erfindung durchzuführen. Der Videocodierer 1320 und der Videodecodierer 1330 können jeweils in einem oder in mehreren Codierern oder Decodierern enthalten sein, deren jeder als Teil einer Codierer/Decodierer-Kombination (CODEC) in einem jeweiligen Gerät integriert sein kann.
  • Aspekte des vorliegend beschriebenen Gegenstands können in dem allgemeinen Kontext von computerausführbaren Befehlen beschrieben sein, wie zum Beispiel Programmmodule, die von einem Computer ausgeführt werden, wie zum Beispiel die vorstehend beschriebenen Universalprozessoren 1323 und 1333. Generell enthalten Programmmodule Routinen, Programme, Objekte, Komponenten, Datenstrukturen usw., die bestimmte Aufgaben ausführen oder bestimmte abstrakte Datenarten implementieren. Aspekte des vorliegend beschriebenen Gegenstands können auch in verteilten Computing-Umgebungen praktisch umgesetzt werden, wobei Aufgaben von entfernten Verarbeitungseinrichtungen ausgeführt werden, die über ein Kommunikationsnetz verbunden sind. In einer verteilten Computing-Umgebung können sich Programmmodule sowohl in lokalen als auch in entfernten Computerspeichermedien einschließlich Speichergeräten befinden.
  • Beispiele von Speichern sind Speicher mit wahlfreiem Zugriff (RAM), Nur-Lese-Speicher (ROM) oder beide. Speicher können Instruktionen wie beispielsweise einen Quellcode oder Binärcode für die Durchführung der vorstehend beschriebenen Verfahren speichern. Speicher können auch zum Speichern von Variablen oder Zwischeninformationen während der Abarbeitung von Befehlen speichern, die von einem Prozessor wie beispielsweise die Prozessoren 1323 und 1333 auszuführen sind.
  • Eine Speichereinrichtung kann auch Instruktionen wie beispielsweise einen Quellcode oder Binärcode für die Durchführung der vorstehend beschriebenen Verfahren speichern. Eine Speichereinrichtung kann zusätzlich Daten speichern, die von dem Computerprozessor verwendet und gehandhabt werden. Eine Speichereinrichtung in einem Videocodierer 1320 oder einem Videodecodierer 1330 kann eine Datenbank sein, auf die das Computersystem 1323 oder 1333 zugreift. Weitere Beispiele von Speichereinrichtungen sind unter anderem Speicher mit wahlfreiem Zugriff (RAM), Nur-Lese-Speicher (ROM), eine Festplatte, eine Magnetplatte, eine optische Platte, eine CD-ROM, eine DVD, ein Flash-Speicher, eine USB-Speicherkarte oder jedes andere Medium, das von einem Computer gelesen werden kann.
  • Ein Speicher oder ein Speichereinrichtung können ein Beispiel eines nichttransitorischen computerlesbaren Speichermediums zur Verwendung durch den oder in Verbindung mit dem Videocodierer/Decodierer sein. Das nichttransitorische computerlesbare Speichermedium enthält Instruktionen bzw. Befehle zum Steuern eines Computersystems, das für die Ausführung der durch bestimmte Ausführungsformen beschriebenen Funktionen zu konfigurieren ist. Die Instruktionen bzw. Befehle können derart konfiguriert sein, dass sie bei Ausführung durch einen oder mehrere Prozessoren das durchführen, was in bestimmten Ausführungsformen beschrieben ist.
  • Es sei auch darauf hingewiesen, dass einige Ausführungsformen als Prozess beschrieben sind, der sich als Flussdiagramm oder Blockdiagramm darstellen lässt. Wenngleich jedes dieser Diagramme die Operationen als sequenziellen Prozess darstellt, können viele dieser Operation parallel oder gleichzeitig durchgeführt werden. Außerdem kann die Reihenfolge der Operation umgeordnet werden. Ein Prozess kann auch zusätzliche Schritte enthalten, die in den Figuren nicht dargestellt sind.
  • Bestimmte Ausführungsformen können in einem nichttransitorischen computerlesbaren Speichermedium zur Verwendung durch das oder in Verbindung mit dem Befehlsausführungssystem, der Vorrichtung, dem System oder der Maschine implementiert sein. Das computerlesbare Speichermedium enthält Instruktionen bzw. Befehle zum Steuern eines Computersystems, damit dieses ein durch bestimmte Ausführungsformen beschriebenes Verfahren durchführt. Das Computersystem kann eine oder mehrere Recheneinrichtungen umfassen. Die Instruktionen bzw. Befehle können derart konfiguriert sein, dass sie bei Ausführung durch einen oder mehrere Computerprozessoren das ausführen, was in bestimmten Ausführungsformen beschrieben ist.
  • In der Beschreibung und in den anliegenden Ansprüchen ist mit dem unbestimmten Artikel „ein“ und mit dem bestimmten Artikel „der/die/das“ auch die Pluralform umfasst, sofern der Kontext nicht ausdrücklich das Gegenteil vorschreibt. Die Bedeutung von „in“ in der Beschreibung und in den Ansprüchen schließt ebenfalls „bei, auf, an ...“ ein, sofern der Kontext nicht ausdrücklich das Gegenteil vorschreibt.
  • Vorstehend wurden beispielhafte Ausführungsformen der Erfindung in der für die vorrichtungs- und/oder verfahrenstechnischen Merkmale spezifischen Sprache beschrieben. Gleichwohl wird der Fachmann ohne weiteres erkennen, dass in den beispielhaften Ausführungsformen zahlreiche Modifikationen möglich sind, ohne von den neuen Lehren und Vorteilen der Erfindung abzuweichen. Es versteht sich ferner, dass der in den Ansprüchen angegebene Gegenstand nicht notwendigerweise auf die vorstehend beschriebenen speziellen Merkmale oder Handlungen beschränkt ist. Dementsprechend fallen diese sowie alle derartigen Modifikationen in den Geltungsbereich der vorliegenden Erfindung, dessen Breite und Umfang in den anliegenden Ansprüchen angegeben sind.
  • Wenngleich die Erfindung in Verbindung mit bestimmten Ausführungsformen beschrieben wurde, ist es offensichtlich, dass der Fachmann zahlreiche mögliche Alternativen, Modifikationen und Variationen erkennen wird. Daher fallen all diese Alternativen, Modifikationen und Variationen in den Schutzbereich der anliegenden Ansprüche.
  • 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 62599915 [0001]

Claims (20)

  1. Ebenendefinitionsverfahren in JVET, umfassend: das Empfangen einer ersten Gruppe von Datenpunkten; das Empfangen einer zweiten Gruppe von Datenpunkten; das Bestimmen einer ersten Geraden zumindest teilweise basierend auf der ersten Gruppe von Datenpunkten; das Bestimmen einer zweiten Geraden zumindest teilweise basierend auf der zweiten Gruppe von Datenpunkten; und das Bestimmen einer Ebene zumindest teilweise basierend auf einem Punkt an der ersten Geraden und einem Punkt an der zweiten Geraden.
  2. Ebenendefinitionsverfahren in JVET nach Anspruch 1, wobei der Schritt des Bestimmens einer Ebene zumindest teilweise auf einem y-Achsenabschnitt einer der ersten Geraden und zweiten Geraden basiert.
  3. Ebenendefinitionsverfahren von JVET nach Anspruch 2, wobei der Schritt des Bestimmens einer ersten Geraden zumindest teilweise auf der Anwendung der Methode der kleinsten Quadrate auf die erste Gruppe von Datenpunkten basiert.
  4. Ebenendefinitionsverfahren von JVET nach Anspruch 3, wobei der Schritt des Bestimmens einer zweiten Geraden zumindest teilweise auf der Anwendung der Methode der kleinsten Quadrate auf die zweite Gruppe von Datenpunkten basiert.
  5. Ebenendefinitionsverfahren von JVET nach Anspruch 4, wobei der Schritt des Bestimmens einer Ebene zumindest teilweise auf einem y-Achsenabschnitt der ersten Geraden basiert.
  6. Ebenendefinitionsverfahren von JVET nach Anspruch 4, wobei der Schritt des Bestimmens einer Ebene zumindest teilweise auf einem y-Achsenabschnitt der zweiten Geraden basiert.
  7. Ebenendefinitionsverfahren von JVET nach Anspruch 1, wobei der Schritt des Bestimmens einer Ebene zumindest teilweise auf einem Mittelwert des y-Achsenabschnitts der ersten Geraden und des y-Achsenabschnitts der zweiten Geraden basiert.
  8. Ebenendefinitionsverfahren von JVET nach Anspruch 7, wobei der Schritt des Bestimmens einer ersten Geraden zumindest teilweise auf der Anwendung der Methode der kleinsten Quadrate auf die erste Gruppe von Datenpunkten basiert.
  9. Ebenendefinitionsverfahren von JVET nach Anspruch 8, wobei der Schritt des Bestimmens einer zweiten Geraden zumindest teilweise auf der Anwendung der Methode der kleinsten Quadrate auf die zweite Gruppe von Datenpunkten basiert.
  10. Ebenendefinitionsverfahren von JVET nach Anspruch 9, ferner umfassend den Schritt einer Entropiecodierung einer Codiereinheit zumindest teilweise basierend auf der besagten Ebene.
  11. Ebenendefinitionssytem in JVET, umfassend: das Empfangen einer ersten Gruppe von Datenpunkten in einem Speicher; das Empfangen einer zweiten Gruppe von Datenpunkten in dem Speicher; das Definieren und Speichern von Charakteristiken einer ersten Geraden, die zumindest teilweise auf der ersten Gruppe von Datenpunkten basiert, in dem Speicher; das Definieren und Speichern von Charakteristiken einer zweiten Geraden, die zumindest teilweise auf der zweiten Gruppe von Datenpunkten basiert, in dem Speicher; und das Definieren und Speichern von Charakteristiken einer Ebene, die zumindest teilweise auf einem Punkt an der ersten Geraden und auf einem Punkt an der zweiten Geraden basiert, in dem Speicher.
  12. Ebenendefinitionssystem in JVET nach Anspruch 11, wobei der Schritt des Definierens und Speicherns von Charakteristiken einer Ebene in dem Speicher zumindest teilweise auf einem y-Achsenabschnitt der Charakteristiken einer ersten Geraden oder der Charakteristiken einer zweiten Geraden basiert.
  13. Ebenendefinitionssystem von JVET nach Anspruch 12, wobei der Schritt des Definierens und Speicherns von Charakteristiken einer ersten Geraden in dem Speicher zumindest teilweise auf der Anwendung der Methode der kleinsten Quadrate auf die erste Gruppe von Datenpunkten basiert.
  14. Ebenendefinitionssystem von JVET nach Anspruch 13, wobei der Schritt des Definierens und Speicherns von Charakteristiken einer zweiten Geraden in dem Speicher zumindest teilweise auf der Anwendung der Methode der kleinsten Quadrate auf die zweite Gruppen von Datenpunkten basiert.
  15. Ebenendefinitionssystem von JVET nach Anspruch 14, wobei der Schritt des Definierens und Speicherns von Charakteristiken einer Ebene in dem Speicher zumindest teilweise auf einem y-Achsenabschnitt der ersten Geraden basiert.
  16. Ebenendefinitionssystem von JVET nach Anspruch 14, wobei der Schritt des Definierens und Speicherns von Charakteristiken einer Ebene in dem Speicher zumindest teilweise auf einem y-Achsenabschnitt der zweiten Geraden basiert.
  17. Ebenendefinitionssystem von JVET nach Anspruch 11, wobei der Schritt des Definierens und Speicherns von Charakteristiken einer Ebene in dem Speicher zumindest teilweise auf einem Mittelwert des y-Achsenabschnitts der ersten Geraden und des y-Achsenabschnitts der zweiten Geraden basiert.
  18. Ebenendefinitionssystem von JVET nach Anspruch 17, wobei der Schritt des Definierens und Speicherns von Charakteristiken einer ersten Geraden zumindest teilweise auf der Anwendung der Methode der kleinsten Quadrate auf die erste Gruppe von Datenpunkten basiert.
  19. Ebenendefinitionssystem von JVET nach Anspruch 18, wobei der Schritt des Definierens und Speicherns von Charakteristiken einer zweiten Geraden zumindest teilweise auf der Anwendung der Methode der kleinsten Quadrate auf die zweite Gruppe von Datenpunkten basiert.
  20. Ebenendefinitionssystem von JVET nach Anspruch 19, ferner umfassend den Schritt einer Entropiecodierung einer Codiereinheit zumindest teilweise basierend auf den Charakteristiken der besagten Ebene.
DE112018005899.9T 2017-12-18 2018-12-18 System und Verfahren zum Konstruieren einer Ebene für planare Prädiktion Pending DE112018005899T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762599915P 2017-12-18 2017-12-18
US62/599,915 2017-12-18
US16/223,932 US10694188B2 (en) 2017-12-18 2018-12-18 System and method for constructing a plane for planar prediction
PCT/US2018/066225 WO2019126163A1 (en) 2017-12-18 2018-12-18 System and method for constructing a plane for planar prediction
US16/223,932 2018-12-18

Publications (1)

Publication Number Publication Date
DE112018005899T5 true DE112018005899T5 (de) 2020-08-13

Family

ID=65003592

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018005899.9T Pending DE112018005899T5 (de) 2017-12-18 2018-12-18 System und Verfahren zum Konstruieren einer Ebene für planare Prädiktion

Country Status (4)

Country Link
US (4) US10694188B2 (de)
DE (1) DE112018005899T5 (de)
GB (1) GB2580268B (de)
WO (1) WO2019126163A1 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019126163A1 (en) * 2017-12-18 2019-06-27 Arris Enterprises, Inc. System and method for constructing a plane for planar prediction
EP3861736A4 (de) 2018-11-06 2022-03-30 Beijing Bytedance Network Technology Co., Ltd. Positionsabhängige intraprädiktion
WO2020108591A1 (en) 2018-12-01 2020-06-04 Beijing Bytedance Network Technology Co., Ltd. Parameter derivation for intra prediction
WO2020114445A1 (en) 2018-12-07 2020-06-11 Beijing Bytedance Network Technology Co., Ltd. Context-based intra prediction
JP7231659B2 (ja) * 2019-02-08 2023-03-01 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置および復号装置
AU2020226565C1 (en) * 2019-02-22 2024-01-11 Beijing Bytedance Network Technology Co., Ltd. Neighbouring sample selection for intra prediction
CN115967810A (zh) 2019-02-24 2023-04-14 抖音视界有限公司 对视频数据进行编解码的方法、设备及计算机可读介质
WO2020192642A1 (en) 2019-03-24 2020-10-01 Beijing Bytedance Network Technology Co., Ltd. Conditions in parameter derivation for intra prediction

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011166326A (ja) * 2010-02-05 2011-08-25 Sony Corp 画像処理装置および方法
WO2011121938A1 (ja) * 2010-03-31 2011-10-06 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法及び画像符号化プログラム、ならびに画像復号装置、画像復号方法及び画像復号プログラム
KR101503269B1 (ko) * 2010-04-05 2015-03-17 삼성전자주식회사 영상 부호화 단위에 대한 인트라 예측 모드 결정 방법 및 장치, 및 영상 복호화 단위에 대한 인트라 예측 모드 결정 방법 및 장치
EP2375751A1 (de) * 2010-04-12 2011-10-12 Panasonic Corporation Komplexitätsverringerung von auf Randerkennung basierter räumlicher Interpolation
US8768082B2 (en) * 2011-06-22 2014-07-01 Blackberry Limited Compressing image data
AU2012276407B2 (en) 2011-06-28 2016-02-18 Samsung Electronics Co., Ltd. Method and apparatus for image encoding and decoding using intra prediction
KR20130050406A (ko) * 2011-11-07 2013-05-16 오수미 머지 모드에서의 움직임 정보 생성 방법
RU2679984C2 (ru) * 2012-05-25 2019-02-14 Вилос Медиа Интернэшнл Лимитед Способ кодирования изображений, устройство кодирования изображений, способ декодирования изображений, устройство декодирования изображений и устройство кодирования и декодирования изображений
US9813709B2 (en) 2012-09-28 2017-11-07 Nippon Telegraph And Telephone Corporation Intra-prediction encoding method, intra-prediction decoding method, intra-prediction encoding apparatus, intra-prediction decoding apparatus, program therefor and recording medium having program recorded thereon
GB2531004A (en) * 2014-10-06 2016-04-13 Canon Kk Residual colour transform signalled at sequence level for specific coding modes
US10491922B2 (en) * 2015-09-29 2019-11-26 Qualcomm Incorporated Non-separable secondary transform for video coding
EP3349451A1 (de) * 2017-01-11 2018-07-18 Thomson Licensing Verfahren und vorrichtung zur auswahl eines codierungsmodus zur verwendung bei der codierung/decodierung eines restblocks
WO2019126163A1 (en) * 2017-12-18 2019-06-27 Arris Enterprises, Inc. System and method for constructing a plane for planar prediction

Also Published As

Publication number Publication date
GB2580268A (en) 2020-07-15
US10694188B2 (en) 2020-06-23
GB2580268B (en) 2023-03-08
US20240146935A1 (en) 2024-05-02
US20190230359A1 (en) 2019-07-25
US20220141470A1 (en) 2022-05-05
US11259027B2 (en) 2022-02-22
WO2019126163A1 (en) 2019-06-27
US20200296384A1 (en) 2020-09-17
GB202004261D0 (en) 2020-05-06

Similar Documents

Publication Publication Date Title
DE112017006657B4 (de) Adaptive planare Prädiktion mit ungleichen Gewichten
DE112017006638B4 (de) Verbesserte Videobitstromkodierung
DE112018005899T5 (de) System und Verfahren zum Konstruieren einer Ebene für planare Prädiktion
US11659168B2 (en) Template matching for JVET intra prediction
CN110959290B (zh) 帧内模式jvet编译方法
EP2614647B1 (de) Kompression und dekompression von referenzbildern in einem videokoder
DE112011100420B4 (de) Verfahren und Vorrichtung zum adaptiven Loopfiltern
DE112012001609B4 (de) Intra-Prädiktionsverfahren, Kodierer und Dekodierer zur Benutzung desselben
DE60027955T2 (de) Verfahren und Vorrichtung zur kontextbasierten Inter/Intra Kodierungsmodeauswahl
DE112012001635T5 (de) Verfahren zur Verwaltung einer Referenzbildliste und Vorrichtung zu dessen Ausführung
DE102016125461A1 (de) Adaptive gerichtete intra-prädiktion mit blockgrösse
EP3443746B1 (de) Vorlagenabgleich für jvet-intraprädiktion
KR20200118861A (ko) 템플릿 매칭을 위한 가변 템플릿 크기
DE112020002032T5 (de) Bildkodierung/-Dekodierung-Verfahren und -Vorrichtung zur Signalisierung von Filterinformationen auf Grundlage eines Chroma-Format, und Verfahren zur Übertragung eines Bitstroms
EP1941744B1 (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
CN111955009A (zh) 不等权重平面运动矢量导出
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
R081 Change of applicant/patentee

Owner name: ARRIS ENTERPRISES LLC, SUWANEE, US

Free format text: FORMER OWNER: ARRIS ENTERPRISES, INC., SUWANEE, GA, US

R082 Change of representative

Representative=s name: KASTEL PATENTANWAELTE PARTG MBB, DE