DE112020000471T5 - Prädiktionscodierung mit neuronalen netzwerken - Google Patents

Prädiktionscodierung mit neuronalen netzwerken Download PDF

Info

Publication number
DE112020000471T5
DE112020000471T5 DE112020000471.6T DE112020000471T DE112020000471T5 DE 112020000471 T5 DE112020000471 T5 DE 112020000471T5 DE 112020000471 T DE112020000471 T DE 112020000471T DE 112020000471 T5 DE112020000471 T5 DE 112020000471T5
Authority
DE
Germany
Prior art keywords
neural network
prediction
block
network based
pixel block
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
DE112020000471.6T
Other languages
English (en)
Inventor
Jiefu Zhai
Xingyu Zhang
Xiaosong ZHOU
Jun Xin
Hsi-Jung Wu
Yeping Su
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.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of DE112020000471T5 publication Critical patent/DE112020000471T5/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • 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/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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame 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/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/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Discrete Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Offenbarte Systeme und Verfahren zur Videokompression unter Verwendung neuronaler Netzwerke zur prognostizierenden Videocodierung. Verwendete Prozesse kombinieren mehrere Bänke neuronaler Netzwerke mit Codec-Systemkomponenten, um die Codierung und Decodierung von Videodaten durchzuführen.

Description

  • STAND DER TECHNIK
  • Die vorliegende Offenbarung nimmt Bezug auf Videokompressionstechniken. Neuronale Netzwerke wurden auf eine Vielzahl von Anwendungen in verschiedenen Bereichen angewendet, einschließlich Medizin, Finanzen, Technik und Physik. Im Allgemeinen werden neuronale Netzwerke trainiert, um Informationen von Interesse basierend auf Beobachtungen zu prognostizieren. Das Training kann durch einen überwachten Lernprozess erreicht werden, wobei Korrelationen zwischen beispielhaften Paaren von Eingangsdaten (den Beobachtungen) und Ausgangsdaten (den Informationen von Interesse) gelernt werden. Je größer das neuronale Netzwerk ist, desto besser kann das neuronale Netzwerk komplexe Beziehungen zwischen den Eingangs- und Ausgangsdaten modellieren; aber je größer das Netzwerk ist, desto größer ist auch der trainierende Rechenaufwand. Neuere Erhöhungen der Rechenleistung von Endbenutzer-Computern haben das Training großer neuronaler Netzwerke praktikabel gemacht, wodurch neuronale Netzwerke eine plausible Lösung zur Analyse komplexer Daten darstellen. Gleichzeitig ermöglichen neuere Entwicklungen in Maschinenlerntechnologien nun eine bessere Anwendung neuronaler Netzwerke auf den Bereich der Bild- und Videokompression, die ein wachsendes Interesse an Streaming High Definition- (HD), High Dynamic Range- (HDR) und Wide Color Gamut- (WCG) Inhalt adressieren.
  • Im Allgemeinen umfasst ein neuronales Netzwerk ein System von Knoten („Neuronen“), die in einer gegebenen Architektur räumlich verbunden sind, in der Regel Schichten - die Knoten in einer Schicht speisen die Knoten in der nächsten damit verbundenen Schicht. Das Training des neuronalen Netzwerkes führt zu „Wissen“, das durch die Stärke von knotenübergreifenden Verbindungen repräsentiert wird („synaptische Gewichtungen“). Eingangsdaten eines neuronalen Netzwerkes werden in jeden Knoten der ersten Schicht des Netzwerkes als gewichtete Kombination eingespeist. Als Nächstes wird die eingegebene gewichtete Kombination jedes Knotens gemäß einer Aktivierungsfunktion übersetzt, was zu den Ausgangsdaten des Knotens führt. Die Ausgangsdaten der ersten Schicht werden dann in den anderen Zwischenschichten des Netzwerkwerks verbreitet und ähnlich verarbeitet, wobei die letzte Schicht die Ausgangsdaten bereitstellt. Ein neuronales Netzwerk kennzeichnet sich somit durch die Struktur seiner Knoten und deren Aktivierungsfunktionen aus. Die Gewichtungen, die den Eingängen jedes Knotens zugeordnet sind (d. h. die Verbindungsstärken jedes Knotens), werden durch einen iterativen Trainingsprozess, z. B. einen Backpropagation-Algorithmus, gemäß Trainingsparametern (Lernrate und Kostenfunktion) und basierend auf Beispielen entsprechender Eingangs- und Ausgangsdaten gelernt.
  • Figurenliste
    • 1 ist ein Funktionsblockdiagramm eines Codiersystems gemäß einem Gesichtspunkt der vorliegenden Offenbarung.
    • 2 ist ein Funktionsblockdiagramm eines Decodiersystems gemäß einem Gesichtspunkt der vorliegenden Offenbarung.
    • 3 ist ein Blockdiagramm einer einzelnen Bank eines neuronal-netzwerkbasierten Prädiktors gemäß einem Gesichtspunkt der vorliegenden Offenbarung.
    • 4 ist ein Blockdiagramm einer mehrfachen Bank eines neuronal-netzwerkbasierten Prädiktors gemäß einem Gesichtspunkt der vorliegenden Offenbarung.
    • 5 ist ein Blockdiagramm einer mehrfachen Bank eines neuronal-netzwerkbasierten Codierers und Decodierers gemäß einem Gesichtspunkt der vorliegenden Offenbarung.
    • 6 ist ein Blockdiagramm eines Autoencoders gemäß einem Gesichtspunkt der vorliegenden Offenbarung.
    • 7 ist ein Flussdiagramm eines Codierers und Decodierers gemäß einem Gesichtspunkt der vorliegenden Offenbarung.
  • DETAILLIERTE BESCHREIBUNG
  • In der vorliegenden Offenbarung werden maschinelle Lerntechniken in ein prädiktives Videocodierungssystem integriert, wobei Bänke neuronaler Netzwerke mit Codec-Systemkomponenten kombiniert werden, um die Codierung und Decodierung von Videodaten durchzuführen.
  • Es wird nun ausführlich auf Gesichtspunkte der vorliegenden Offenbarung Bezug genommen, von denen Beispiele in den beigefügten Zeichnungen veranschaulicht sind. In der folgenden ausführlichen Beschreibung werden zahlreiche spezifische Details aufgeführt, um für ein umfassendes Verständnis der vorliegenden Erfindung zu sorgen. Es ist jedoch für den Durchschnittsfachmann ersichtlich, dass die vorliegende Erfindung ohne diese spezifischen Details ausgeführt werden kann. In anderen Fällen wurden bekannte Verfahren, Vorgehensweisen, Komponenten, Schaltungen und Netzwerke nicht ausführlich beschrieben, um Aspekte der Ausführungsformen nicht unnötig unklar zu machen.
  • Systeme und Verfahren, die in der vorliegenden Offenbarung beschrieben sind, umfassen Techniken zum Codieren eines Videostroms unter Verwendung von neuronaler Netzwerk- (NN) basierter Codierung sowie transformationsbasierter Codierung. Unter einem Gesichtspunkt kann für einen Pixelblock eines zu codierenden Eingabe-Einzelbildes eine Pixelblock-Prädiktion unter Verwendung einer Nn-basierten Prädiktion oder einer intra-/interbasierten Prädiktion erzeugt werden; die Pixelblock-Prädiktion kann basierend auf Eingangsdaten durchgeführt werden, die von Referenzdaten zuvor codierter Daten des Videostroms abgeleitet sind. Ein Restblock kann aus einer Differenz zwischen dem Pixelblock und der Pixelblock-Prädiktion erzeugt und codiert werden, was zu einem codierten Restblock führt. Dann kann der Restblock codiert und zusammen mit zugehörigen Codierungsparametern in einem codierten Videostrom verpackt werden. Der Restblock kann gemäß einem NN-basierten Codierverfahren codiert werden. Alternativ kann das Codieren des Restblocks basierend auf einer transformationsbasierten Codierung durchgeführt werden, wenn ein der NN-basierten Codierung zugeordneter Konfidenzwert unter einem bestimmten Schwellenwert liegt.
  • Gesichtspunkte der vorliegenden Offenbarung beschreiben auch Systeme und Verfahren zum Decodieren eines codierten Videostroms. Unter einem Gesichtspunkt können für einen codierten Restblock, der decodiert werden soll, der codierte Restblock und zugehörige Codierungsparameter aus dem codierten Videostrom extrahiert werden. Der codierte Restblock kann basierend auf den Codierungsparametern unter Verwendung von NN-basierter Decodierung oder transformationsbasierter Decodierung decodiert werden, was zu einem decodierten Restblock führt. Dann kann eine Pixelblock-Prädiktion basierend auf Referenzdaten zuvor decodierter Daten des codierten Videostroms erzeugt werden. Und ein rekonstruierter Pixelblock kann dann als die Summe des decodierten Restblocks und der Pixelblock-Prädiktion erhalten werden. Ähnlich der Prädiktion, die durch den Codierer durchgeführt wird, kann die Pixelblock-Prädiktion in dem Decodierer durch eine NN-basierte Prädiktion oder eine intra-/interbasierte Prädiktion durchgeführt werden.
  • 1 ist ein Funktionsblockdiagramm eines Codierungssystems 100 gemäß einem Gesichtspunkt der vorliegenden Offenbarung. Das Codierungssystem 100 kann eine Codierer 110, einen Decodierer 120, einen In-Loop-Filter 130, einen Referenzbildspeicher 140, einen Prädiktor 150, eine Steuerung 160, einen Entropiecodierer 170 und eine Syntaxeinheit 180 einschließen. Der Prädiktor 150 kann Bilddaten zur Verwendung während der Codierung eines neu präsentierten Eingabe-Einzelbildes 105 prognostizieren; er kann eine Schätzung für ein Eingabe-Einzelbild 105 basierend auf Referenzdaten liefern, die aus dem Referenzbildpuffer 140 abgerufen werden. Der Codierer 110 kann dann die Differenz zwischen jedem Eingabe-Einzelbild und seiner prognostizierten Version - nämlich das Rest-Einzelbild - unter Anwendung von NN-basierter Codierung, transformationsbasierter Codierung oder einer Kombination beider Techniken codieren. Als Nächstes kann der Codierer 110 das codierte Rest-Einzelbild dem Entropiecodierer 170 bereitstellen. In der Regel ist eine Entropiecodierung ein verlustloser Prozess, d. h. die codierten Daten an einem Eingang eines Entropiecodierers können perfekt aus den entropiecodierten Daten an dem Ausgang des Entropiecodierers wiederhergestellt werden. Der Entropiecodierer 170 kann die Bandbreite des durch den Codierer 110 erzeugten Codes weiter reduzieren, wobei Entropiecodierverfahren wie Lauflängencodierung, Huffman-Codierung, Golomb-Codierung, kontextadaptive binäre arithmetische Codierung oder beliebige andere geeignete Codierverfahren implementiert werden. Nach der Entropiecodierung wird das entropiecodierte Einzelbild der Syntaxeinheit 180 präsentiert. Die Syntaxeinheit 180 kann das entropiecodierten Einzelbild zusammen mit den entsprechenden Codierungsparametern in einen codierten Videostrom verpacken, der einem regelnden Codierungsprotokoll entspricht. Der Codierer 110 kann dem Decodierer 120 auch das codierte Einzelbild bereitstellen. Der Decodierer 120 kann das codierten Einzelbild decodieren, wodurch ein decodiertes Einzelbild, d. h. ein rekonstruiertes Einzelbild, erzeugt wird. Als Nächstes kann der In-Loop-Filter 130 eine oder mehrere Filtervorgänge an dem rekonstruierten Einzelbild durchführen, die Artefakte adressieren können, die durch die Verarbeitung eingeführt werden, die durch den Codierer 110 und den Decodierer 120 ausgeführt werden. Der Referenzbildpuffer 140 kann die gefilterten rekonstruierten Einzelbilder speichern. Diese gespeicherten Referenz-Einzelbilder können dann vom Prädiktor 150 bei der Prädiktion später empfangener Einzelbilder verwendet werden.
  • Die hierin in Bezug auf Einzelbilder beschriebenen Codierverfahren können mit geringerer Granularität in Bezug auf Teilbereiche der Einzelbilder durchgeführt werden. Zum Beispiel können der Codierer 110, der Decodierer 120 und der Prädiktor 150 unabhängig auf jedem Pixelblock, Slice, der größten Codiereinheit („LCU“) oder der Codierbaumeinheit („CTU“) der Einzelbilder arbeiten, unabhängig davon, ob dieser Vorgang ein Einzelbild oder mehrere Einzelbilder umfasst.
  • Der Codierer 110 kann einen Subtrahierer 112, einen transformationsbasierten Codierer 114, einen NN-basierten Codierer 116 und einen Codeselektor 118 einschließen. Der transformationsbasierte Codierer 114 umfasst in der Regel einen Transformator und einen Quantisierer. Der Codierer 110 kann ein Eingabe-Einzelbild 105 am Eingang 112 des Subtrahierers empfangen. Der Subtrahierer 112 kann das empfangene Einzelbild von seinem entsprechenden prognostizierten Einzelbild subtrahieren, das vom Prädiktor 150 bereitgestellt wird, oder umgekehrt. Diese Subtraktion kann zu einem Restbild führen. Der Codierer 110 kann dann entscheiden, welche Codiertechnik auf das Rest-Einzelbild (oder auf jeden Pixelblock innerhalb dieses Rest-Einzelbildes) anzuwenden ist, indem er entweder eine NN-basierte Codierung 116 oder transformationsbasierte Codierung 114 verwendet. Zum Beispiel kann der Codeselektor 118 einen Konfidenzwert von dem NN-basierten Codierer 116 empfangen. Wenn dieser Konfidenzwert unter einem bestimmten Schwellenwert liegt, kann der Codeselektor 118 den Code auswählen, der von dem transformbasierten Codierer 118 bereitgestellt wird; andernfalls kann er den vom NN-basierten Codierer 116 bereitgestellten Code auswählen. Alternativ kann der Codierer 110 zum Beispiel basierend auf Codierungsparametern (z. B. Prädiktionsmetadaten) bestimmen, ob für ein bestimmtes Einzelbild oder Block eine transformationsbasierte Codierung 114 oder eine NN-basierte Codierung 116 angewendet werden kann.
  • Wenn eine transformationsbasierte Codierung angewendet wird, kann der transformationsbasierte Codierer 114 das empfangene Rest-Einzelbild oder den Pixelblock transformieren - das Rest-Einzelbild oder den Pixelblock von seiner ursprünglichen Pixeldomäne in eine Transformationsdomäne abbilden, was zu einem Transformations-Einzelbild oder Block führt, das/der aus Transformationskoeffizienten besteht. Nach dieser Transformation kann ein Quantisierer die Transformationskoeffizienten quantisieren. Alternativ kann, wenn eine NN-basierte Codierung angewendet wird, der NN-basierte Codierer 116 das empfangenen Rest-Einzelbild oder den Pixelblock codieren, wie nachstehend ausführlich erläutert wird. Wie erörtert, können sowohl der transformbasierte Codierer 114 als auch der NN-basierte Codierer 116 parallel verwendet werden, und der Codeselektor 118 kann die Ausgabe von einem von beiden auswählen, zum Beispiel basierend auf einem Konfidenzwert.
  • Der transformationsbasierte Codierer 114 kann eine Vielfalt von Transformationsmodi, M, verwenden, wie von der Steuerung 160 bestimmt werden kann. Im Allgemeinen reduziert die transformationsbasierte Codierung die räumliche Redundanz innerhalb eines Pixelblocks, indem die Energie der Pixel in weniger Transformationskoeffizienten innerhalb des Transformationsblocks verdichtet wird, was das Verbringen von mehr Bits auf Hochenergiekoeffizienten ermöglicht, während weniger oder gar keine Bits auf Niedrigenergiekoeffizienten verbracht werden. Zum Beispiel kann der transformationsbasierte Codierer 114 Transformationsmodi, wie etwa eine diskrete Kosinustransformation (DCT), eine diskrete Sinustransformation (DST), eine Walsh-Hadamard-Transformation, eine Haar-Transformation, eine Daubechies-Wavelet-Transformation anwenden. Unter einem Gesichtspunkt kann die Steuerung 160: einen anzuwendenden Transformationsmodus M auswählen; den Transformator des transformatorbasierten Codierers 114 entsprechend konfigurieren; und entweder ausdrücklich oder implizit den Codiermodus M in dem Codierungsparametersatz speichern. Nach dem Betrieb des Transformators kann der Quantisierer des transformatorbasierten Codierers 114 gemäß einem oder mehreren Quantisierungsparametern QP arbeiten und gleichmäßige oder ungleichmäßige Quantisierungstechniken gemäß einer Einstellung anwenden, die durch die Steuerung 160 bestimmt werden kann. Unter einem Gesichtspunkt kann der Quantisierungsparameter QP ein Vektor sein. In einem solchen Fall kann der Quantisierungsvorgang einen anderen Quantisierungsparameter für jeden Transformationsblock und jeden Koeffizienten oder jede Gruppe von Koeffizienten innerhalb jedes Transformationsblocks verwenden.
  • Wie oben beschrieben, kann die Steuerung 160 Codierungsparameter einstellen, die verwendet werden können, um den Codierer 110 zu konfigurieren, einschließlich Parameter des transformatorbasierten Codierers 114 (z. B. Parameter des Transformators und des Quantisierers) und des NN-basierten Codierers 116. Darüber hinaus können solche Codierungsparameter Parameter einschließen, welche die Logik des Bestimmens steuern, welcher Codierer, transformationsbasiert oder NN-basiert, für die Codierung eines bestimmten Einzelbildes oder Pixelblocks verwendet werden soll. Die Steuerung 160 kann Codierungsparameter einstellen, die verwendet werden können, um auch den Entropiecodierer 170 und die Syntaxeinheit 180 zu konfigurieren. Die Codierungsparameter können zusammen mit den codierten Resten in einen codierten Videostrom 190 verpackt werden, um für ein Decodierungssystem 200 (2) verfügbar zu sein. Relevante Codierungsparameter können auch dem Decodierer 120 zur Verfügung gestellt werden - was sie einem transformatorischen Decodierer 124 und einem NN-basierten Decodierer 126 zur Verfügung stellt.
  • Ein Videocodierungssystem, das auf prädiktiven Codierungstechniken beruht, schließt in der Regel eine Decodierfunktionalität ein. Unter einem Gesichtspunkt umfasst die Videocodierung 100 von 1 den Decodierer 120, der Bilddaten von Einzelbildern wiederherstellt, die als „Referenz-Einzelbilder“ bezeichnet werden, die auf Einzelbilder Bezug nehmen, die für eine Prädiktion durch den Prädiktor 150 verwendet werden. Ohne Übertragungsfehler oder andere Betriebsanomalien sollte der Decodierer 120 wiederhergestellte Einzelbilder erzeugen, welche die gleichen sind wie die wiederhergestellten Referenz-Einzelbilder, die von einem System zur Videodekodierung im Fernbereich 200 von 2 erzeugt werden. Im Allgemeinen invertiert der Decodierer 120 Codiervorgänge, die vom Codierer 110 angewendet werden. Zum Beispiel kann der Decodierer 120 einen transformationsbasierten Decodierer 124, einen NN-basierten Decodierer 126 und einen Addierer 122 einschließen. Der transformationsbasierte Decodierer 124 kann einen inversen Quantisierer und einen inversen Transformator einschließen. Der inverse Quantisierer kann Vorgänge des Quantisierers des transformationsbasierten Codierers 114 invertieren, wodurch eine gleichmäßige oder eine ungleichmäßige Dequantisierung durchgeführt wird, wie durch QP spezifiziert. In ähnlicher Weise kann der inverse Transformator Transformatorvorgänge des transformatorbasierten Codierers 114 unter Verwendung eines Transformationsmodus, wie durch M spezifiziert, invertieren. Um somit den Codiervorgang des transformationsbasierten Codierers 114 zu invertieren, können der inverse Quantisierer und der inverse Transformator die gleichen Quantisierungsparameter QP und den Transformationsmodus M wie ihre Gegenstücke verwenden. Es ist zu beachten, dass die Quantisierung ein verlustbehafteter Vorgang ist, da die Transformationskoeffizienten durch den Quantisierer (gemäß QP) verkürzt werden, und daher können die ursprünglichen Werte dieser Koeffizienten nicht durch den inversen Quantisierer wiederhergestellt werden, was zu einem Codierungsfehler führt.
  • Der Addierer 122 kann die vom Subtrahierer 112 ausgeführten Vorgänge invertieren. Somit kann die Ausgabe des transformationsbasierten Decodierers 124 oder des NN-basierten Decodierers 126 eine codierte/decodierte Version des von dem Subtrahierer 112 ausgegebenen Rest-Einzelbildes sein, nämlich ein rekonstruiertes Rest-Einzelbild. Der Addierer 122 kann das rekonstruierte Rest-Einzelbild zu dem prognostizierten Einzelbild addieren, das von dem Prädiktor 150 bereitgestellt wird (in der Regel ist dies dasselbe prognostizierte Einzelbild, das der Prädiktor 150 für die Erzeugung des Rest-Einzelbildes am Ausgang des Subtrahierers 112 bereitgestellt hat). So kann am Ausgang des Addierers 122 eine codierte/decodierte Version des Eingabe-Einzelbildes 105, d.h. ein rekonstruiertes Eingabe-Einzelbild, erhalten werden.
  • Der In-Loop-Filter 130 kann das rekonstruierte Eingabe-Einzelbild von dem Addierer 122 erhalten und verschiedene Filtervorgänge an dem rekonstruierten Eingabe-Einzelbild durchführen, unter anderem, um Artefakte abzuschwächen, die durch unabhängiges Verarbeiten von Daten von verschiedenen Pixelblöcken erzeugt werden, wie sie durch den Codierer 110 und den Decodierer 120 ausgeführt werden können. So kann beispielsweise der In-Loop-Filter 130 einen Deblocking-Filter 132 und einen Sample-Adaptive-Offset- („SAO“) Filter 134 einschließen. Andere Filter, die adaptive Loop-Filterung („ALF“), Maximum-Likelihood-Filterschemata („ML“), Deringing-Filterschemata, Debanding-Filterschemata, Schärfungsfilterschemata, Auflösungsskalierungen und andere solche Vorgänge durchführen, können auch vom Loop-Filter 130 verwendet werden. Nach der Filterung können gefilterte rekonstruierte Eingabe-Einzelbilder im Referenzbildpuffer 140 gespeichert werden.
  • Der Prädiktor 150 kann einen Modusselektor 152, einen intrabasierten Prädiktor 154, einen interbasierten Prädiktor 156 und einen NN-basierten Prädiktor 158 einschließen. Der Prädiktor 150 kann eine Einzelbild- oder Pixelblock-Prädiktion auf zuvor codierten/decodierten Einzelbildern oder Pixelblöcken aufbauen, auf die von den im Referenzbildpuffer 140 gespeicherten Referenzdaten zugegriffen werden kann. Die Prädiktion kann gemäß einem von mehreren Prädiktionsmodi erreicht werden, die durch den Modusselektor 152 bestimmt werden können. Zum Beispiel kann der Prädiktor in einem intrabasierten Prädiktionsmodus zuvor codierte/decodierte Pixelblöcke aus demselben aktuell codierten Eingabe-Einzelbild verwenden, um eine Schätzung für einen Pixelblock aus diesem aktuell codierten Eingabe-Einzelbild zu erzeugen. Somit kann der Referenzbildpuffer 140 codierte/decodierte Pixelblöcke eines Eingabe-Einzelbildes speichern, das er aktuell codiert. Im Gegensatz dazu kann der Prädiktor in einem interbasierten Prädiktionsmodus zuvor codierte/decodierte Pixelblöcke aus entweder vorherigen Einzelbildern oder aktuellen und vorherigen Einzelbildern verwenden, um eine Schätzung für einen Pixelblock aus einem aktuell codierten Eingabe-Einzelbild zu erzeugen. Der Referenzbildspeicher 140 kann diese codierten/decodierten Referenz-Einzelbilder speichern. Alternativ kann der Modusselektor 152 den NN-basierten Prädiktionsmodus auswählen, um den Schätzwert für ein aktuell codiertes Eingabe-Einzelbild oder den Schätzwert für einen Pixelblock aus dem aktuell codierten Eingabe-Einzelbild zu erzeugen.
  • Somit kann der interbasierte Prädiktor 156 einen Eingangspixelblock eines neuen Eingabe-Einzelbildes 105, das codiert werden soll, empfangen. Zu diesem Zweck kann der interbasierte Prädiktor den Referenzbildpuffer 140 nach übereinstimmenden Pixelblöcken durchsuchen, die bei der Prädiktion dieses Eingangspixelblocks verwendet werden sollen. Andererseits kann der intrabasierte Prädiktor 154 den Referenzbildpuffer 140 durchsuchen, wodurch seine Suche auf übereinstimmende Referenzblöcke beschränkt wird, die zu demselben Eingabe-Einzelbild 105 gehören. Und der NN-basierte Prädiktor 158 kann Informationen aus demselben Eingabe-Einzelbild und/oder aus vorherigen Einzelbilder verwenden, um eine Prädiktion durchzuführen. Alle diese Prädiktoren können Prädiktionsmetadaten (PM) erzeugen, die Parameter aufzeichnen, die für die Prädiktion verwendet werden, zum Beispiel Kennungen des einen oder der mehreren verwendeten Referenz-Einzelbilder, die Positionen der verwendeten Referenzblöcke (z. B. Bewegungsvektor(en)) oder Indizes und/oder Parameter der verwendeten neuronalen Netzwerkbänke.
  • Der Modusselektor 152 kann einen Prädiktionsmodus bestimmen oder einen endgültigen Prädiktionsmodus auswählen. Beispielsweise kann der Modusselektor 152 basierend auf Prädiktionsleistungen des intrabasierten Prädiktors 154, des interbasierten Prädiktors 156 und/oder des NN-basierten Prädiktors 158 den Prädiktionsmodus auswählen, der zu einer genaueren Prädiktion führt. Die prognostizierten Einzelbilder oder Pixelblöcke, die dem ausgewählten Prädiktionsmodus entsprechen, können dann dem Subtrahierer 112 bereitgestellt werden und darauf basierend, kann der Subtrahierer 112 das restliche Einzelbild oder den restlichen Block erzeugen. In der Regel wählt der Modusselektor 152 einen Modus aus, der bei einem Zielbitratenbudget die geringste Codierungsverzerrung erreicht. Ausnahmen können auftreten, wenn Codierungsmodi ausgewählt werden, um andere Richtlinien zu erfüllen, an die sich das Codierungssystem 100 halten soll, wie etwa die Erfüllung eines bestimmten Kanalverhaltens oder die Unterstützung von Richtlinien für Direktzugriff oder Datenaktualisierung. Unter einem Gesichtspunkt kann ein Multihypothese-Prädiktionsmodus verwendet werden, in welchem Fall Vorgänge des intrabasierten Prädiktors 154, des interbasierten Prädiktors 156 und/oder des NN-basierten Prädiktors 158 für jede einer Vielzahl von Prädiktionshypothesen repliziert werden können.
  • Die Steuerung 160 kann den gesamten Vorgang des Codierungssystems 100 steuern. Die Steuerung 160 kann Betriebsparameter für den Codierer 110 und den Prädiktor 150 auswählen, die auf Analysen von Eingangspixelblöcken und auch auf externen Einschränkungen, wie etwa Soll-Codierbitraten und anderen Betriebsparametern, basieren. Zum Beispiel kann der Modusselektor 152 Prädiktionsmetadaten, PM, einschließlich Prädiktionsmodi und entsprechender Parameter, an die Steuerung 160 ausgeben. Die Steuerung 160 kann dann diese Prädiktionsmetadaten zu dem Datensatz aller anderen Codierungsparameter (z. B. Mund QP) hinzufügen und diese Codierungsparameter an die Syntaxeinheit 180 liefern, um mit den codierten Resten verpackt zu werden.
  • Wie oben erwähnt, kann die Steuerung 160 während des Vorgangs Betriebsparameter des Codierers 110 auf unterschiedliche Granularitäten eines Video-Einzelbildes einstellen, entweder auf einer pixelweisen Blockbasis oder auf einem größeren Granularitätsniveau (zum Beispiel pro Einzelbild, pro Slice, pro LCU oder pro CTU). Beispielsweise können die Quantisierungsparameter des Quantisierers des transformationsbasierten Codierers 114 pixelweise innerhalb eines codierten Einzelbildes revidiert werden. Zusätzlich kann, wie erörtert, die Steuerung 160 Vorgänge des Decodierers 120, des In-Loop-Filters 130, des Prädiktors 150, des Entropiecodierers 170 und der Syntaxeinheit 180 steuern. Zum Beispiel kann der Prädiktor 150 Steuerdaten in Bezug auf die Modusauswahl, z. B. bestimmte zu verwendende Modi und die Größen von Suchfenstern innerhalb der Referenzdaten, empfangen. Der In-Loop-Filter 130 kann Steuerdaten in Bezug auf die Filterauswahl und ihre Parameter empfangen.
  • 2 ist ein Funktionsblockdiagramm eines Decodiersystems 200 gemäß einem Gesichtspunkt der vorliegenden Offenbarung. Das Decodiersystem 200 kann einen Decodierer 210, einen In-Loop-Filter 230, einen Referenzbildpuffer 240, einen Prädiktor 250, eine Steuerung 260, einen Entropiedecodierer 270 und eine Syntaxeinheit 280 einschließen.
  • Die Syntaxeinheit 280 kann den codierten Videostrom 190 von 1 empfangen und diesen Datenstrom in seine Bestandteile zerlegen, einschließlich Daten, welche die Codierungsparameter und die entropiecodierten Reste darstellen. Daten, die Codierungsparameter darstellen, können an die Steuerung 260 geliefert werden, während Daten, welche die entropiecodierten Reste darstellen, an den Entropiedecodierer 270 geliefert werden können. Der Entropiedecodierer 270 kann eine Entropiedecodierung durchführen, um durch den Entropiecodierer 170 durchgeführte Prozesse zu invertieren, und kann dem Decodierer 210 die codierten Reste präsentieren (erzeugt durch den Codierer 110 von 1). Der Prädiktor 250 kann aktuell decodierte Einzelbilder oder Blöcke basierend auf Referenz-Einzelbildern prognostizieren, die in dem Referenzbildpuffer 240 verfügbar sind, unter Verwendung dieser Referenz-Einzelbilder oder Pixelblöcke, die durch die Prädiktionsmetadaten, PM, spezifiziert werden, die in den Codierungsparametern bereitgestellt werden. Dann können die prognostizierten Einzelbilder oder Blöcke dem Decodierer 210 bereitgestellt werden. Der Decodierer 210 kann rekonstruierte Video-Einzelbilder erzeugen, im Allgemeinen durch Invertieren der Codiervorgänge, die durch den Codierer 110 angewendet werden. Der In-Loop-Filter 230 kann die rekonstruierten Video-Einzelbilder filtern. Die gefilterten rekonstruierten Video-Einzelbilder können dann vom Decodiersystem ausgegeben werden, d. h. Ausgabe-Video 290. Wenn die gefilterten rekonstruierten Video-Einzelbilder bestimmt sind, die als Referenz-Einzelbilder dienen sollen, können sie dann in dem Referenzbildpuffer 240 gespeichert werden.
  • Zusammenwirkend mit dem Codierer 110 und in umgekehrter Reihenfolge kann der Decodierer 210 einen transformationsbasierten Decodierer 214, einen NN-basierten Decodierer 216 und einen Addierer 212 einschließen. In ähnlicher Weise können der transformationsbasierte Decodierer 214 und der NN-basierte Decodierer 216 die Prozesse invertieren, die durch den transformationsbasierten Codierer 114 und den NN-basierten Codierer 216 durchgeführt werden. Zum Beispiel kann für diejenigen Einzelbilder oder Pixelblöcke, die durch den transformationsbasierten Codierer 114 codiert wurden, ein inverser Quantisierer Quantisierungsvorgänge invertieren und ein inverser Transformator kann Transformationsvorgänge invertieren, die durch den transformationsbasierten Codierer 114 ausgeführt werden können. Dementsprechend kann der inverse Quantisierer die Quantisierungsparameter QP verwenden, die durch die aus dem codierten Videostrom analysierten Codierungsparameter bereitgestellt werden. In ähnlicher Weise kann der inverse Transformator die Transformationsmodi M verwenden, die durch die aus dem codierten Videostrom analysierten Codierungsparameter bereitgestellt werden. Wie erörtert, ist in einer transformationsbasierten Codierung in der Regel der Quantisierungsvorgang der Hauptbeitrag zu Codierungsverzerrungen: ein Quantisierer kürzt die Daten, die er quantisiert, und somit die Ausgabe des inversen Quantisierers, und, wiederum weisen die rekonstruierten Rest-Einzelbild am Ausgang des inversen Transformators Codierfehler im Vergleich zu dem Eingang auf, der dem Quantisierer bzw. dem Transformator des transformationsbasierten Codierers 114 zugeführt wird.
  • Der Addierer 212 kann den vom Subtrahierer 112 in 1 ausgeführten Vorgang invertieren. Beim Empfangen prognostizierter Einzelbilder oder Pixelblöcke von dem Prädiktor 250, kann der Addierer 212 diese prognostizierten Daten zu den entsprechenden rekonstruierten Rest-Einzelbildern oder Pixelblöcken addieren, die von dem transformationsbasierten Decodierer 214 oder dem NN-basierten Decodierer 216 bereitgestellt werden. Somit kann der Addierer 212 rekonstruierte Video-Einzelbilder an den In-Loop-Filter 230 ausgeben.
  • Der In-Loop-Filter 230 kann verschiedene Filtervorgänge an dem empfangenen rekonstruierten Video-Einzelbild durchführen, wie durch die aus dem codierten Videostrom 190 analysierten Codierungsparameter spezifiziert. Zum Beispiel kann der In-Loop-Filter 230 einen Deblocking-Filter 232 und einen SAO-Filter 234 einschließen. Andere Filter können ALF, ML-basierte Filterschemata, Deringing-, Debanding-, Schärfungsfilterschemata oder Auflösungsskalierungen durchführen. Andere ähnliche Vorgänge können auch von dem In-Loop-Filter 230 verwendet werden. Auf diese Weise kann der Betrieb des In-Loop-Filters 230 den Betrieb seines Gegenstück-In-Loop-Filters 130 des Codiersystems 100 nachahmen. Somit kann der In-Loop-Filter 230 ein gefiltertes rekonstruiertes Video-Einzelbild ausgeben, d. h. das Ausgabe-Video 290. Das Ausgabe-Video 290 kann vom Hostingsystem verbraucht (z. B. angezeigt, gespeichert und/oder verarbeitet) werden und/oder kann weiter an ein anderes System übertragen werden.
  • Der Referenzbildpuffer 240 kann Referenzvideo-Einzelbilder speichern, wie etwa die gefilterten rekonstruierten Video-Einzelbilder, die von dem In-Loop-Filter 230 bereitgestellt werden. Diese Referenzvideo-Einzelbilder können in späteren Prädiktionen anderer Einzelbilder oder Pixelblöcke verwendet werden. Somit kann der Prädiktor 250 auf Referenz-Einzelbilder oder Pixelblöcke zugreifen, die in dem Referenzbildpuffer 240 gespeichert sind, und kann diese Referenz-Einzelbilder oder Pixelblöcke abrufen, die in den Prädiktionsmetadaten PM spezifiziert sind. Ebenso kann der Prädiktor 250 ein Prädiktionsverfahren und seine verwandten Parameter verwenden, wie in den Prädiktionsmetadaten PM spezifiziert. Die Prädiktionsmetadaten können Teil der Codierungsparameter sein, die aus dem codierten Videostrom 190 analysiert werden. Der Prädiktor 250 kann dann eine Prädiktion durchführen und die prognostizierten Einzelbilder oder Pixelblöcke dem Decodierer 210 liefern.
  • Die Steuerung 260 kann die gesamten Vorgänge des Codierungssystems 200 steuern. Dementsprechend kann die Steuerung 260 Betriebsparameter für den Decodierer 210, den In-Loop-Filter 230, den Prädiktor 250 und den Entropiedecodierer 270 basierend auf den Codierungsparametern einstellen, die aus dem codierten Videostrom 190 analysiert wurden. Diese Codierungsparameter können auf verschiedene Granularitäten eines Video-Einzelbildes eingestellt werden, z. B. auf einer Pro-Pixelblock-Basis, Pro-Einzelbild-Basis, Pro-Slice-Basis, Pro-LCU-Basis oder auf Basis anderer Arten von Bereichen, die für das Eingangsbild definiert sind. Diese Betriebsparameter können Quantisierungsparameter QP, Transformationsmodi M und Prädiktionsmetadaten PM einschließen. Die Codierungsparameter können auch NN-basierte Codierungsparameter einschließen, die von dem NN-basierten Decodierer 216 und dem NN-basierten Prädiktor 250 zu verwenden sind. Parameter, die neuronalen Netzwerkbänken zugeordnet sind, können Indizes von Bänken, die in Bezug auf einen bestimmten Pixelblock verwendet werden, und die Gewichtungen, die jeder Bank zugeordnet sind, einschließen. Zum Beispiel können die Codierungsparameter Parameter der neuronalen Netzwerkbänke einschließen, die bei der Prädiktion eines bestimmten Einzelbildes oder Blocks verwendet wurden, und können dem Prädiktor 250 bereitgestellt werden. Die Gewichtungen der neuronalen Netzwerkbänke, die bei der Prädiktion eines bestimmten Einzelbildes oder Blocks verwendet wurden, können von einem Server aus zugänglich sein oder Teil der Codierungsparameter sein.
  • Der NN-basierte Prädiktor 158 kann ein oder mehrere neuronale Netzwerke verwenden, um eine Prädiktion durchzuführen. 3 zeigt einen NN-basierten Prädiktor mit einer Einzelbank. Zum Beispiel kann ein neuronales Netzwerk 310 als Eingabe zuvor codierte Pixelblöcke (Referenzdaten) empfangen, die aus einem aktuell codierten Einzelbild und/oder zuvor codierten Einzelbildern extrahiert wurden, auf die vom Referenzbildpuffer 140 zugegriffen werden kann. Alternativ oder zusätzlich kann das neuronale Netzwerk 310 als Eingabe eine verarbeitete Version der zuvor codierten Pixelblöcke empfangen. Dann kann das Netzwerk basierend auf Gewichtungen 320, WPRÄDIKTOR, Prädiktionsdaten, z. B. eine Pixelblock-Prädiktion erzeugen, die einen aktuell codierten Pixelblock prognostiziert. In der Regel wird WPRÄDIKTOR durch einen Trainingsprozess erhalten, bei dem das neuronale Netzwerk die Korrelationen zwischen Paaren von Eingangsdaten (Beobachtungen) und Ausgangsdaten (Informationen von Interesse) „lernt“. Somit prognostiziert eine Bank, wenn ihr eine neue Beobachtung präsentiert wird, basierend auf ihren gelernten Gewichtungen die interessierenden Informationen. Wie durch einen hierin offenbarten Gesichtspunkt angewendet, kann das neuronale Netzwerk 310 trainiert werden, um einen aktuell codierten Pixelblock basierend auf zuvor codierten Pixelblöcken (in der Regel innerhalb der räumlich-zeitlichen Nachbarschaft dieses aktuell codierten Pixelblocks) oder basierend auf einer Darstellung dieser zuvor codierten Pixelblöcke, prognostizieren. Solche Darstellungen können zum Beispiel Transformationskoeffizienten einschließen, die durch Transformieren der Referenzdaten von einer Pixeldomäne in eine Transformationsdomäne oder durch Extrahieren von Merkmalsvektoren aus den Referenzdaten, bereitgestellt werden. Wie erörtert, kann der Prädiktor 250, um eine bestimmte Pixelblock-Prädiktion in dem Decodierer wiederzugeben, Zugriff auf Daten erhalten, die sich auf dieselbe Bank beziehen, die in dem Codierer bei der Prädiktion dieses bestimmten Pixelblocks verwendet wurde - z. B. den Bankindex, den Gewichtungen der Bank und den für die Prädiktion verwendeten Referenzdaten (z. B. zuvor codierte Pixelblöcke in einer vorbestimmten Nachbarschaft des zu prognostizierenden Pixelblocks).
  • Unter einem Gesichtspunkt kann mehr als eine Bank verwendet werden, um eine Prädiktion für einen Pixelblock zu erzeugen. 4 zeigt einen NN-basierten Prädiktor, der einen Präprozessor 410, mehrere Banken neuronaler Netzwerke - Banken 420, 430 und 440 - und einen Mischer 450 umfassen kann. Die Eingabe in den Präprozessor 410 können Referenzdaten sein, auf die vom Referenzbildpuffer 140 zugegriffen werden kann. Solche Referenzdaten können zuvor codierte Bildinformationen einschließen, wie etwa zuvor codierte Pixelblöcke aus entweder dem aktuell codierten Einzelbild oder anderen zuvor codierten Einzelbildern. Die Referenzdaten können vom Präprozessor 410 weiterverarbeitet werden, um mehrere Versionen InBn zu erzeugen. Zum Beispiel kann der Präprozessor 410 die Referenzdaten aus ihrer Pixeldomäne in andere Datendomänen transformieren und/oder Merkmalsvektoren aus den Referenzdaten extrahieren. Alternativ oder zusätzlich kann der Präprozessor 410 die Referenzdaten an die Banken 420, 430 und 440 liefern, wie sie sind. Unter einem Gesichtspunkt kann der Präprozessor 410 Daten aus den Referenzdaten innerhalb verschiedener Nachbarschaften des aktuell codierten Blocks extrahieren, wobei die räumlich-zeitliche Größe und Bildauflösung dieser Nachbarschaften variieren können. Zum Beispiel können die Referenzdaten unterabgetastet werden, um eine Pyramide von Bildern mit unterschiedlichen Auflösungen zu erzeugen, die hierarchisch verarbeitet werden können, um die Prädiktionsdaten zu erzeugen. Somit kann ein Prädiktor (entweder NN-basiert oder inter/intrabasiert) eine anfängliche Prädiktion basierend auf einer Version der Referenzdaten mit niedriger Auflösung durchführen und dann diese anfängliche Prädiktion basierend auf einer höheren Auflösung der Referenzdaten verfeinern. Eine solche hierarchische Verarbeitung sorgt für stabilere und genauere Prädiktionen, insbesondere bei der Verarbeitung von High-Motion-Videoinhalten.
  • Die Anzahl der Bänke, die den NN-basierten Prädiktor 158 bilden, sowie die Art und Weise, wie ihre Prädiktionen kombiniert werden können, können von den neuronalen Netzwerken erlernt werden. Somit kann zum Beispiel die Bank n trainiert werden, um einen Pixelblock zu prognostizieren, was zur Prädiktion PBn führt, sowie um eine Wahrscheinlichkeit dieser Prädiktion zu prognostizieren, die mit Pn bezeichnet wird. Dann kann der Mischer 450 die verschiedenen Pixelblock-Prädiktion PPB1, PB2, ..., PBN, jeweils basierend auf ihren Wahrscheinlichkeiten P1, P2,..., PN, kombinieren. Zum Beispiel kann der Mischer 450 die Prädiktion basierend auf einer linearen Kombination kombinieren: P B = n = 1 N P B n P n
    Figure DE112020000471T5_0001
    oder allgemeiner über eine beliebige nichtlineare Funktion PB = f(PBn, Pn) : n = [1, N]. Die Anzahl von Bänken, die bei der Prädiktion eines bestimmten Pixelblocks verwendet werden sollen, kann durch Auswählen einer Teilmenge der Prädiktoren mit den höchsten Wahrscheinlichkeiten bestimmt werden - wobei eine höhere Wahrscheinlichkeit einem niedrigeren Prädiktionsfehler entsprechen kann.
  • Unter einem Gesichtspunkt der vorliegenden Offenbarung können neuronale Netzwerke verwendet werden, um auch die Rest-Einzelbilder zu codieren und zu decodieren. Dementsprechend kann der NN-basierte Codierer 116 trainiert werden, um ein codiertes Rest-Einzelbild zu erzeugen, wenn ihm ein Rest-Einzelbild präsentiert wird, und der NN-basierte Decodierer 216 kann trainiert werden, um ein decodiertes Rest-Einzelbild zu erzeugen, wenn ihm ein codierter Rest-Einzelbild präsentiert wird. Unter einem Gesichtspunkt können prädiktionsbezogene Daten auch in den NN-basierten Codierer 116 und den NN-basierten Decodierer 216 eingespeist werden. Die prädiktionsbezogenen Daten können Block-Prädiktionen und entsprechende Prädiktionsparameter einschließen. Zum Beispiel können Prädiktionsparameter die Art des verwendeten Prädiktors (NN-basierter, interbasierter oder intrabasierter Prädiktor) einschließen. Wenn ein NN-basierter Prädiktor verwendet wird, können die Prädiktionsparameter auch den Index der verwendeten Bänke und deren Wahrscheinlichkeiten Pn einschließen.
  • Ähnlich wie der NN-basierte Prädiktor können der NN-basierte Codierer 116 und der NN-basierte Decodierer 216 eine oder mehrere neuronale Netzwerkbänke umfassen. 5 zeigt einen NN-basierten Codierer 510 und einen NN-basierten Decodierer 550. Der NN-basierte Codierer 510 kann einen Vorprozessor 520, Banken 530, 532 und 534 und einen Mischer 540 umfassen. Ebenso kann der NN-basierte Decodierer 550 einen Vorprozessor 560, Banken 570, 572 und 574 und einen Mischer 580 umfassen. Der NN-basierte Codierer 510 kann Eingangsdaten 515 empfangen, die Restdaten, prädiktionsbezogene Daten oder eine Kombination davon umfassen. Die Eingangsdaten 515 können sich an einer Granularität von Einzelbild-Teilbereichen befinden, wie beispielsweise Pixelblöcken, Slices, LCUs oder CTUs. Wenn zum Beispiel das Codieren in Bezug auf Pixelblöcke erfolgt, können Eingangsdaten 515 Restblöcke und entsprechende prädiktionsbezogene Daten (Block-Prädiktionen und/oder ihre Prädiktionsparameter) umfassen. Der NN-basierte Codierer 510 kann codierte Restdaten 545 erzeugen. Wenn zum Beispiel das Codieren in Bezug auf Pixelblöcke erfolgt, können codierte Restdaten 545 codierte Restblöcke umfassen. In ähnlicher Weise kann der NN-basierte Decodierer 550 Eingangsdaten 555 empfangen, die codierte Restdaten, prädiktionsbezogene Daten oder eine Kombination davon umfassen. Die Eingangsdaten 555 können sich an einer Granularität von Einzelbild-Teilbereichen befinden, wie beispielsweise Pixelblöcken, Slices, LCUs oder CTUs. Wenn zum Beispiel das Decodieren in Bezug auf Pixelblöcke erfolgt, können Eingangsdaten 555 codierte Restblöcke und entsprechende prädiktionsbezogene Daten (Block-Prädiktionen und/oder ihre Prädiktionsparameter) umfassen. Der NN-basierte Decodierer 550 kann decodierte Restdaten 585 erzeugen. Wenn zum Beispiel das Codieren in Bezug auf Pixelblöcke erfolgt, können decodierte Restdaten 585 decodierte Restblöcke umfassen.
  • Der Präprozessor 520 kann Eingangsdaten 515 verarbeiten und mehrere Versionen dieser Daten - InB1, InB2 und InBN - erstellen, die den Banken 530, 532 und 534 präsentiert werden sollen. Zum Beispiel kann der Präprozessor 520 Eingangsdaten 515 von einer Domäne (z. B. Pixeldomäne) in eine andere Domäne (z. B. Frequenzdomäne) transformieren und/oder kann Merkmalsvektoren aus Eingangsdaten 515 extrahieren. Alternativ oder zusätzlich kann der Präprozessor 520 die Eingangsdaten, wie sie sind, an Banken 530, 532 und 534 liefern. In ähnlicher Weise kann der Vorprozessor 560 Eingangsdaten 555 verarbeiten, wodurch mehrere Versionen dieser Daten - InB1, InB2 und InBN - erzeugt werden, die den Banken 570, 572 und 574 präsentiert werden sollen. Zum Beispiel kann der Vorprozessor 560 Eingangsdaten 555 von einer Codedomäne in eine Transformationsdomäne transformieren und/oder Merkmalsvektoren aus Eingangsdaten 555 extrahieren. Alternativ oder zusätzlich kann der Präprozessor 560 die Eingangsdaten 555, wie sie sind, den Banken 570, 572 und 574 liefern.
  • Der Mischer 540 des Codierers und der Mischer 580 des Decodierers können die von ihren jeweiligen Bänken erzeugten Ausgaben kombinieren. Die Anzahl der Bänke, die den NN-basierten Codierer 510 und den NN-basierten Decodierer 550 bilden, sowie die Art und Weise, wie ihre Ausgaben kombiniert werden können, können durch die neuronalen Netzwerke erlernt werden. So kann beispielsweise die Bank n des Codierers 510 trainiert werden, codierte Restblöcke zu erzeugen, was zu CRBn führt, sowie eine Wahrscheinlichkeit dieses Codes, der mit Pn bezeichnet wird, prognostizieren. Dann kann der Mischer 540 die verschiedenen codierten Restblöcke CRB1, CRB2, ..., CRBN, basierend auf ihren jeweiligen Wahrscheinlichkeiten P1, P2,..., PN, kombinieren. Zum Beispiel kann der Mischer 540 die codierten Restblöcke basierend auf einer linearen Kombination C R B = n = 1 N C R B n P n
    Figure DE112020000471T5_0002
    oder allgemeiner über eine beliebige nichtlineare Funktion kombinieren: CRB = f( CRBn, Pn) : n = [1, N]. Die Anzahl von Bänken, die bei der Codierung eines bestimmten Restblocks verwendet werden sollen, kann durch Auswählen einer Teilmenge von CRB1, CRB2,..., CRBN mit den höchsten Wahrscheinlichkeiten bestimmt werden - wobei eine höhere Wahrscheinlichkeit einem niedrigeren Codierfehler entsprechen kann. Gleichermaßen kann die Bank n des Decodierers 550 trainiert werden, decodierte Restblöcke zu erzeugen, was zu RBn führt, sowie eine Wahrscheinlichkeit dieses decodierten Restblocks prognostizieren, der als Pn bezeichnet wird. Dann kann der Mischer 580 die verschiedenen decodierten Restblöcke RB1, RB2,..., RBN basierend auf ihren jeweiligen Wahrscheinlichkeiten P1, P2,..., PN, kombinieren. Zum Beispiel kann der Mischer 580 die decodierten Restblöcke basierend auf einer linearen Kombination R B = n = 1 N R B n P n
    Figure DE112020000471T5_0003
    oder allgemeiner über eine beliebige nichtlineare Funktion RB = f(RBn, Pn) : n = [1, N] kombinieren. Die Anzahl der Bänke, die bei der Decodierung verwendet werden sollen, kann durch Auswählen einer Teilmenge von RB1, RB2,..., RBN mit den höchsten Wahrscheinlichkeiten bestimmt werden - wobei eine höhere Wahrscheinlichkeit einem niedrigeren Codierfehler entsprechen kann. Es ist zu beachten, dass, wenn der NN-basierte Codierer 510 und der NN-basierte Decodierer 550 trainiert werden, die Ausgabe des NN-basierten Codierers 510 in dem Trainingsprozess des NN-basierten Decodierers 550 verwendet werden kann.
  • Unter einem Gesichtspunkt können Codieren und Decodieren eines Restblocks unter Verwendung eines Autocodierers erreicht werden. 6 veranschaulicht das Training eines Autocodierers in Bezug auf ein Bankpaar des NN-basierten Codierers 116 und des NN-basierten Decodierers 216. Im Allgemeinen ist ein Autocodierer ein neuronales Netzwerk, das trainiert ist, eine Kopie seiner Eingangs auszugeben. Dementsprechend kann das neuronale Netzwerk des Autocodierers in zwei Netzwerke (Bänke) unterteilt werden - eine Codierbank 610 und eine Decodierbank 620. Unter einem Gesichtspunkt kann die Eingabe in den Autocodierer 600 Eingangsdaten X (z. B. ein Restblock) sein, und die Ausgabe vom Autocodierer 600 kann rekonstruierte Eingangsdaten XR (z. B. ein rekonstruierter Restblock) sein. Während Ausgangsdaten einer verborgenen Schicht, die mit h bezeichnet werden, die Ausgabe der Codierbank 610 und die Eingabe der Decodierbank 620 bilden können. Somit kann der Autocodierer durch eine Codierfunktion h = f(X), die ausgelegt ist, um eine kondensierte Darstellung der Eingangsdaten X bereitzustellen, und eine Rekonstruktionsfunktion XR = g(h) = g(f(X) dargestellt werden. Um rekonstruierte Eingangsdaten XR zu erhalten, die ausreichend nahe an den Eingangsdaten X liegen, wird der Autocodierer durch einen Lernprozess trainiert, der den Abstand zwischen X und XR minimiert, d. h. der Lernprozess minimiert eine Abstandsfunktion D(X, g(f(X)). Der Lernprozess kann zu Gewichtungen 615 der Codierbank und Gewichtungen 625 der Decodierbank führen, die später (im Echtzeitbetrieb) beim Codieren und Decodieren der Restblöcke verwendet werden können.
  • Unter einem Gesichtspunkt kann der Autocodierer 600 Hilfsdaten XA zusätzlich zu den Eingangsdaten X verwenden, um XR zu erzeugen. Zum Beispiel kann die Codierbank 610 als Eingabe Restblöcke sowie prädiktionsbezogene Daten (z. B. Block-Prädiktionen und/oder deren Prädiktionsparameter) empfangen, die vom Prädiktor 150 erzeugt werden. Die Hilfsdaten können die Nutzung jeder Korrelation ermöglichen, die zwischen den Restblöcken und ihren entsprechenden prädiktionsbezogenen Daten bestehen kann. In diesem Fall kann die Codierfunktion h = f(X, XA) sein. Dementsprechend kann, um rekonstruierte Eingangsdaten XR zu erhalten, die ausreichend nahe an den Eingangsdaten X liegen, der Autocodierer so trainiert werden, dass eine Abstandsfunktion D(X, g(f(X, XA)) minimiert wird.
  • Unter einem Gesichtspunkt der vorliegenden Offenbarung können die Bänke 420, 430 und 440 von 4 und die Bänke 530, 532, 534, 570, 572 und 574 von 5 von unterschiedlichen Typen sein, die zum Beispiel durch ihre Netzwerkarchitekturen, Aktivierungsfunktionen (z. B. unipolare sigmoide, bipolare sigmoide, tan hyperbolische oder radiale Basisfunktionen), Hyperparameter, Trainingskostenfunktionen und Trainingsdatenkategorie gekennzeichnet sind. Typische Hyperparameter können Lernrate, Impuls, Chargengröße oder Gewichtsabnahmerate sein. Zum Beispiel können verschiedene Bänke des NN-basierten Prädiktors 158, des NN-basierten Codierers 116 und des NN-basierten Decodierers 126 trainiert werden, mit verschiedenen Bitraten oder mit verschiedenen Gesamt-Kostenfunktionen zu arbeiten. In ähnlicher Weise können verschiedene Bänke basierend auf Daten aus verschiedenen Kategorien trainiert werden, da Video-Einzelbilder nichtstationäre Daten enthalten können, bei denen sich die statistischen Eigenschaften des Videos über ein Einzelbild (räumlich) und über Einzelbilder (zeitlich) ändern. Somit können Gesichtspunkte der vorliegenden Offenbarung solche diversen Eigenschaften modellieren, indem jede Bank für eine bestimmte Kategorie von Videoeigenschaften trainiert wird.
  • Das Unterstützen mehrerer Bänke kann die Komplexität des Betriebs des Decodierers erhöhen, insbesondere in Bezug auf die Speicherbandbreite, die beim Decodieren der Restblöcke 216 oder beim Durchführen einer NN-basierten Prädiktion 250 zum Umschalten von einer Bank auf eine andere verwendet würde. Andererseits kann ein großer Satz von Bänken verwendet werden, um unterschiedliche Videoinhaltseigenschaften zu erfüllen. Daher kann es vorteilhaft sein, Ähnlichkeiten zwischen den Parametern der Bänke, d. h. Eigenschaften und Gewichtungen der Bänke, zu nutzen, um die Gesamtzahl der Bänke, die in dem Decodierungsprozess verwendet werden, zu reduzieren. Obwohl die Parameter der Bänke vordefiniert sein können (z. B. von einem Server zugänglich), können sie auch codiert und in den codierten Videostrom verpackt werden. In einem solchen Fall kann das Verwenden von Ähnlichkeiten zwischen Bänken, die benachbarten Pixelblöcken zugeordnet sind, eine effizientere Codierung der Parameter dieser Bänke in den codierten Videostrom ermöglichen. Zum Beispiel kann der Decodierer 200, wenn er einen bestimmten Pixelblock unter Verwendung eines NN-basierten Prädiktors prognostiziert, eine neuronale Netzwerkbank, die bereits bei der Prädiktion eines benachbarten Pixelblocks verwendet wurde, unter Verwendung derselben Bank (oder unter Verwendung einer Variation davon) nutzen. Dementsprechend kann der Codierer 100 in Bezug auf einen bestimmten Block die Parameter der Bank des Decodierers 200 (als Teil der Prädiktionsparameter, die dem bestimmten Block zugeordnet sind) bereitstellen, die für die Prädiktion dieses bestimmten Blocks verwendet werden sollen, oder stattdessen kann der Codierer eine Angabe bereitstellen, die den Decodierer anweist, neue Parameter der Bank basierend auf den Parametern der Bank abzuleiten, die einem zuvor prognostizierten Block zugeordnet sind. Somit können, unter einem Gesichtspunkt, Parameter der Bänke, die von dem Decodierer für die Prädiktion eines bestimmten Pixelblocks benötigt werden können, von Parametern der Bänke abgeleitet werden, die bereits für die Prädiktion eines benachbarten Pixelblocks verwendet werden. In ähnlicher Weise können unter einem anderen Gesichtspunkt Parameter der Bank, die von dem Decodierer für die Decodierung eines bestimmten Restblocks benötigt werden können, von Parametern der Bank abgeleitet werden, die bereits für die Decodierung eines benachbarten Restblocks verwendet werden.
  • In einem hierin offenbarten Gesichtspunkt können die Gewichtungen der Bank unter Verwendung von einem spontanen Training unter Verwendung von Online - Maschinenlerntechniken verfeinert werden. Zum Beispiel kann der NN-basierte Prädiktor 158 Vorgänge umfassen, bei denen die Parameter der Bänke basierend auf neu verfügbaren Trainingsdaten aktualisiert werden. Die neu verfügbaren Trainingsdaten können Paare von Referenzdaten (der aktuell verarbeiteten Pixelblöcke) und entsprechenden Prädiktionsdaten sein. Diese entsprechenden Prädiktionsdaten können Daten sein, die durch den intrabasierten Prädiktor 154, den interbasierten Prädiktor 156 oder ein beliebiges anderes Prädiktionsverfahren erzeugt werden. In ähnlicher Weise kann der NN-basierte Codierer 116 Vorgänge umfassen, bei denen die Parameter der Bänke basierend auf neu verfügbaren Trainingsdaten aktualisiert werden. Die neu verfügbaren Trainingsdaten können aktuell verarbeitete Restblöcke, prädiktionsbezogene Daten und entsprechende codierte Restblöcke sein. Beispielsweise kann es sich bei den entsprechenden codierten Restblöcken um Daten handeln, die von dem transformatorischen Codierer 114 erzeugt werden.
  • 7 veranschaulicht einen anderen Gesichtspunkt der vorliegenden Offenbarung. Darin kann ein Videocodierer 710 einen Videostrom 715 empfangen und einen codierten Videostrom 755 erzeugen. Der codierte Videostrom 755 kann einem Video-Decodierer 750 bereitgestellt werden, der wiederum einen rekonstruierten Videostrom 790 erzeugen kann. Eine Prädiktion für einen Pixelblock kann basierend auf Referenzdaten (Kästchen 720) unter Verwendung eines NN-basierten Prädiktors, eines intrabasierten Prädiktors oder eines interbasierten Prädiktors erzeugt werden. Ein Restblock kann durch Subtrahieren des Pixelblocks von der erzeugten Pixelblock-Prädiktion erzeugt werden (Kästchen 725). Die Codierung des Restblocks kann dann entweder mit einem NN-basierten Codierer oder einem transformationsbasierten Codierer (Box 730) erfolgen. Der codierte Rest kann zusammen mit den jeweiligen Codierungsparametern in den codierten Videostrom verpackt werden (Box 735). Der codierte Videostrom kann für eine spätere Referenz gespeichert werden oder über eine Kommunikationsverbindung an ein empfangendes Endgerät übertragen werden, wo er durch den Decodierer 750 (dargestellt durch Pfeil 755) decodiert werden kann.
  • Während eines Decodiervorgangs können ein codierter Restblock und die jeweiligen Codierungsparameter extrahiert werden (Kästchen 760). Unter Verwendung eines NN-basierten Decodierers oder eines transformationsbasierten Decodierers kann der codierte Restblock decodiert werden (Kästchen 765), was zu einem rekonstruierten Restblock führt. Eine Pixelblock-Prädiktion wird basierend auf Referenzdaten erzeugt, wobei die Prädiktion, die in Kästchen 720 (Kästchen 770) veranschaulicht ist, dupliziert wird. Der Decodierer kann den rekonstruierten Restblock zu der Pixelblock-Prädiktion hinzufügen, was zu einem rekonstruierten Pixelblock führt (Kästchen 775). Der Codierer 710 und der Decodierer 750 können bei einer Granularität eines Pixelblocks arbeiten, wie in 7 gezeigt, oder, wie erörtert, auch bei anderen Granularitätsstufen arbeiten.
  • Die vorstehende Diskussion hat die Funktionsweise der Gesichtspunkte der vorliegenden Offenbarung im Zusammenhang mit Videocodierern und -decodierern beschrieben. Üblicherweise werden diese Komponenten als elektronische Vorrichtungen bereitgestellt. Videodecodierer und/oder -steuerungen können in integrierten Schaltungen, wie etwa anwendungsspezifischen integrierten Schaltungen, anwenderprogrammierbaren Gate-Arrays und/oder Digitalsignalprozessoren ausgeführt sein. Alternativ dazu können sie in Computerprogrammen ausgeführt sein, die auf Kameravorrichtungen, Personalcomputern, Notebook-Computern, Tablet-Computern, Smartphones oder Computerservern ausgeführt werden. Diese Computerprogramme werden in der Regel in physischen Speichermedien, wie etwa elektro-basierten, magneto-basierten Speichervorrichtungen und/oder optisch-basierten Speichervorrichtungen gespeichert, wo sie in einen Prozessor gelesen und ausgeführt werden. Decodierer werden üblicherweise in Vorrichtungen der Unterhaltungselektronik verpackt, wie etwa Smartphones, Tablet-Computer, Spielsysteme, DVD-Player, tragbare Mediaplayer und dergleichen. Sie können auch in Verbraucher-Softwareanwendungen wie Videospiele, Media-Player, Media-Editoren und dergleichen verpackt werden. Und natürlich können diese Komponenten als Hybridsysteme bereitgestellt werden, die Funktionalität, wie gewünscht, über speziell dafür vorgesehene Hardwarekomponenten und programmierte Universalprozessoren verteilen.
  • Videocodierer und -decodierer können ein Video über Kanäle auf verschiedene Weise austauschen. Sie können über Kommunikations- und/oder Computernetzwerke miteinander kommunizieren, wie in 1 veranschaulicht. In noch anderen Anwendungen können Videocodierer Videodaten an Speichervorrichtungen ausgeben, wie elektrische, magnetische und/oder optische Speichermedien, die Decodierern manchmal später bereitgestellt werden können. In solchen Anwendungen können die Decodierer die codierten Videodaten aus den Speichervorrichtungen abrufen und decodieren.
  • Verschiedene Ausführungsformen der Erfindung sind hierin spezifisch veranschaulicht und/oder beschrieben. Es versteht sich jedoch, dass Modifikationen und Variationen der Erfindung von den vorstehenden Lehren abgedeckt sind und innerhalb des Bereichs der beigefügten Ansprüche liegen, ohne vom Wesen und beabsichtigten Umfang der Erfindung abzuweichen.

Claims (29)

  1. Verfahren zum Codieren eines Videostroms, umfassend: für einen Pixelblock eines Eingabe-Einzelbilds, der codiert werden soll, Erzeugen einer Pixelblock-Prädiktion basierend auf Eingangsdaten, die von Referenzdaten zuvor codierter Daten des Videostroms abgeleitet sind; Erzeugen eines Restblocks, der eine Differenz zwischen dem Pixelblock und der Pixelblock-Prädiktion darstellt; Codieren des Restblocks; und Verpacken des codierten Restblocks und zugehöriger Codierungsparameter in einen codierten Videostrom, wobei mindestens eines von dem Erzeugen einer Pixelblock-Prädiktion und das Codieren des Restblocks unter Verwendung eines auf einem neuronalen Netzwerk basierenden Prozesses durchgeführt wird.
  2. Verfahren nach Anspruch 1, ferner umfassend: wenn der auf einem neuronalen Netzwerk basierende Prozess eine auf einem neuronalen Netzwerk basierende Prädiktion ist, Erzeugen einer zweiten Pixelblock-Prädiktion unter Verwendung einer von einer interbasierten Prädiktion und einer intrabasierten Prädiktion; und Verwenden der zweiten Pixelblock-Prädiktion zum Erzeugen eines Restblocks, wenn eine Schätzung der Verzerrung, die der Pixelblock-Prädiktion zugeordnet ist, höher ist als eine Schätzung der Verzerrung, die der zweiten Pixelblock-Prädiktion zugeordnet ist.
  3. Verfahren nach Anspruch 1, wobei, wenn der auf einem neuronalen Netzwerk basierende Prozess eine auf einem neuronalen Netzwerk basierende Prädiktion ist, die auf einem neuronalen Netzwerk basierende Prädiktion das Extrahieren eines Merkmalsvektors aus den Referenzdaten umfasst.
  4. Verfahren nach Anspruch 1, wobei, wenn der auf einem neuronalen Netzwerk basierende Prozess eine auf einem neuronalen Netzwerk basierende Prädiktion ist, die auf einem neuronalen Netzwerk basierende Prädiktion das Transformieren der Referenzdaten von einer Pixeldomäne in eine Transformationsdomäne umfasst.
  5. Verfahren nach Anspruch 1, wobei der auf einem neuronalen Netzwerk basierende Prozess auf einer Kombination von Ausgaben von neuronalen Netzwerkbänken und ihren entsprechenden Wahrscheinlichkeiten basiert.
  6. Verfahren nach Anspruch 1, wobei neuronale Netzwerkbänke, die in dem auf einem neuronalen Netzwerk basierenden Prozess verwendet werden, durch eine Netzwerkarchitektur, eine Aktivierungsfunktion, einen Hyperparameter, eine Trainingskostenfunktion, eine Trainingsdatenkategorie, Gewichtungen oder eine beliebige Kombination davon, gekennzeichnet sind.
  7. Verfahren nach Anspruch 1, wobei, wenn der auf einem neuronalen Netzwerk basierende Prozess eine auf einem neuronalen Netzwerk basierende Codierung ist, das Codieren des Restblocks das Durchführen einer auf Transformation basierenden Codierung umfasst, wenn ein Konfidenzwert für die auf einem neuronalen Netzwerk basierende Codierung unter einem Schwellenwert liegt.
  8. Verfahren nach Anspruch 1, wobei, wenn der auf einem neuronalen Netzwerk basierende Prozess eine auf einem neuronalen Netzwerk basierende Codierung ist, die auf einem neuronalen Netzwerk basierende Codierung eine Codierung umfasst, die auf Daten basiert, die sich auf das Erzeugen einer Pixelblock-Prädiktion beziehen.
  9. Verfahren nach Anspruch 1, wobei, wenn der auf einem neuronalen Netzwerk basierende Prozess eine auf einem neuronalen Netzwerk basierende Codierung ist, die auf einem neuronalen Netzwerk basierende Codierung das Extrahieren eines Merkmalsvektors aus dem Restblock umfasst.
  10. Verfahren nach Anspruch 1, wobei, wenn der auf einem neuronalen Netzwerk basierende Prozess eine auf einem neuronalen Netzwerk basierende Codierung ist, die auf einem neuronalen Netzwerk basierende Codierung das Transformieren des Restblocks von einer Pixeldomäne in eine Transformationsdomäne umfasst.
  11. Verfahren nach Anspruch 1, wobei eine Neuronalnetzwerkbank, die in einem auf einem neuronalen Netzwerk basierenden Prozess verwendet wird, trainiert wird, mit einer anderen Bitrate oder mit einer anderen Kostenfunktion zu arbeiten als die Bitraten oder Kostenfunktionen, die für das Training anderer Neuronalnetzwerkbänke des auf einem neuronalen Netzwerk basierenden Prozesses verwendet werden.
  12. Verfahren nach Anspruch 1, wobei das Erzeugen einer Pixelblock-Prädiktion auf Referenzdaten innerhalb einer räumlich-zeitlichen Nachbarschaft des Pixelblocks und mit einer oder mehreren Datenauflösungen basiert.
  13. Verfahren nach Anspruch 1, wobei, wenn der auf einem neuronalen Netzwerk basierende Prozess eine auf einem neuronalen Netzwerk basierende Prädiktion ist, Gewichtungen einer neuronalen Netzwerkbank, die in der auf einem neuronalen Netzwerk basierenden Prädiktion verwendet wird, basierend auf Referenzdaten und Prädiktionsdaten aktualisiert werden, wobei die Prädiktionsdaten aus den Referenzdaten während des Codierens des Videostroms erzeugt werden.
  14. Verfahren nach Anspruch 13, wobei die Prädiktionsdaten unter Verwendung der auf einem neuronalen Netzwerk basierenden Prädiktion, einer intrabasierten Prädiktion oder einer interbasierten Prädiktion erzeugt werden.
  15. Verfahren nach Anspruch 1, wobei, wenn der neuronalnetzwerkbasierte Prozess eine neuronalnetzwerkbasierte Codierung ist, Gewichtungen einer neuronalen Netzwerkbank, die in der neuronalnetzwerkbasierten Codierung verwendet wird, basierend auf Restblöcken und codierten Restblöcken aktualisiert werden, wobei die codierten Restblöcke aus den Restblöcken während des Codierens des Videostroms erzeugt werden.
  16. Verfahren nach Anspruch 15, wobei die codierten Restblöcke durch die auf einem neuronalen Netzwerk basierende Codierung oder eine transformationsbasierte Codierung erzeugt werden.
  17. Verfahren nach Anspruch 15, wobei die Gewichtungen basierend auf prädiktionsbezogenen Daten aktualisiert werden, die während des Codierens des Videostroms erzeugt werden.
  18. Verfahren zum Decodieren eines codierten Videostroms, umfassend: Extrahieren des codierten Restblocks und zugehöriger Codierungsparameter aus dem codierten Videostrom für einen codierten Restblock, der decodiert werden soll; Decodieren des codierten Restblocks, basierend auf den Codierungsparametern, Erzeugen eines decodierten Restblocks; Erzeugen einer Pixelblock-Prädiktion basierend auf Eingangsdaten, die von Referenzdaten zuvor decodierter Daten des codierten Videostroms abgeleitet sind; und Erzeugen eines rekonstruierten Pixelblocks, wobei der rekonstruierte Pixelblock die Summe des decodierten Restblocks und der Pixelblock-Prädiktion ist, wobei mindestens eines von dem Erzeugen einer Pixelblock-Prädiktion und das Decodieren des codierten Restblocks unter Verwendung eines auf einem neuronalen Netzwerk basierenden Prozesses durchgeführt wird.
  19. Verfahren nach Anspruch 18, wobei der auf einem neuronalen Netzwerk basierende Prozess auf einer Kombination von Ausgaben von neuronalen Netzwerkbänken und ihren entsprechenden Wahrscheinlichkeiten basiert.
  20. Verfahren nach Anspruch 18, wobei neuronale Netzwerkbänke, die in dem auf einem neuronalen Netzwerk basierenden Prozess verwendet werden, durch eine Netzwerkarchitektur, eine Aktivierungsfunktion, einen Hyperparameter, eine Trainingskostenfunktion, Gewichtungen oder eine beliebige Kombination davon, gekennzeichnet sind.
  21. Verfahren nach Anspruch 18, wobei, wenn der auf einem neuronalen Netzwerk basierende Prozess eine auf einem neuronalen Netzwerk basierende Decodierung ist, die auf einem neuronalen Netzwerk basierende Decodierung ein Decodieren basierend auf Daten umfasst, die sich auf das Erzeugen einer Pixelblock-Prädiktion beziehen.
  22. Verfahren nach Anspruch 18, wobei, wenn der auf einem neuronalen Netzwerk basierende Prozess eine auf einem neuronalen Netzwerk basierende Prädiktion ist, das Erzeugen einer Pixelblock-Prädiktion umfasst: Erzeugen einer Pixelblock-Prädiktion basierend auf Gewichtungen, die von den Gewichtungen einer neuronalen Netzwerkbank abgeleitet werden, die von der neuronalen netzwerkbasierten Prädiktion zum Erzeugen einer benachbarten Pixelblock-Prädiktion verwendet wird.
  23. Verfahren nach Anspruch 18, wobei, wenn der auf einem neuronalen Netzwerk basierende Prozess eine auf einem neuronalen Netzwerk basierende Decodierung ist, das Decodieren des codierten Restblocks umfasst: Erzeugen eines decodierten Restblocks basierend auf Gewichtungen, die von den Gewichtungen einer neuronalen Netzwerkbank abgeleitet sind, die von der neuronalen netzwerkbasierten Decodierung zum Decodieren eines benachbarten Restblocks verwendet wird.
  24. Computersystem umfassend: mindestens einen Prozessor mindestens einen Speicher, der Anweisungen umfasst, die konfiguriert sind, um von dem mindestens einen Prozessor ausgeführt zu werden, um ein Verfahren durchzuführen, das Folgendes umfasst: Extrahieren des codierten Restblocks und zugehöriger Codierungsparameter aus dem codierten Videostrom für einen codierten Restblock, der decodiert werden soll; Decodieren des codierten Restblocks, basierend auf den Codierungsparametern, Erzeugen eines decodierten Restblocks; Erzeugen einer Pixelblock-Prädiktion basierend auf Eingangsdaten, die von Referenzdaten zuvor decodierter Daten des codierten Videostroms abgeleitet sind; und Erzeugen eines rekonstruierten Pixelblocks, wobei der rekonstruierte Pixelblock die Summe des decodierten Restblocks und der Pixelblock-Prädiktion ist, wobei mindestens eines von dem Erzeugen einer Pixelblock-Prädiktion und das Decodieren des codierten Restblocks unter Verwendung eines auf einem neuronalen Netzwerk basierenden Prozesses durchgeführt wird.
  25. System nach Anspruch 24, wobei der auf einem neuronalen Netzwerk basierende Prozess auf einer Kombination von Ausgaben von neuronalen Netzwerkbänken und ihren entsprechenden Wahrscheinlichkeiten basiert.
  26. System nach Anspruch 24, wobei neuronale Netzwerkbänke, die in dem auf einem neuronalen Netzwerk basierenden Prozess verwendet werden, durch eine Netzwerkarchitektur, eine Aktivierungsfunktion, einen Hyperparameter, eine Trainingskostenfunktion, eine Trainingsdatenkategorie, Gewichtungen oder eine beliebige Kombination davon, gekennzeichnet sind.
  27. System nach Anspruch 24, wobei, wenn der auf einem neuronalen Netzwerk basierende Prozess eine auf einem neuronalen Netzwerk basierende Decodierung ist, die auf einem neuronalen Netzwerk basierende Decodierung eine Decodierung basierend auf Daten umfasst, die sich auf das Erzeugen einer Pixelblock-Prädiktion beziehen.
  28. System nach Anspruch 24, wobei, wenn der auf einem neuronalen Netzwerk basierende Prozess eine auf einem neuronalen Netzwerk basierende Prädiktion ist, das Erzeugen einer Pixelblock-Prädiktion umfasst: Erzeugen einer Pixelblock-Prädiktion basierend auf Gewichtungen, die von den Gewichtungen einer neuronalen Netzwerkbank abgeleitet werden, die von der neuronalen netzwerkbasierten Prädiktion zum Erzeugen einer benachbarten Pixelblock-Prädiktion verwendet wird.
  29. System nach Anspruch 24, wobei, wenn der auf einem neuronalen Netzwerk basierende Prozess eine auf einem neuronalen Netzwerk basierende Decodierung ist, das Decodieren des codierten Restblocks Folgendes umfasst: Erzeugen eines decodierten Restblocks basierend auf Gewichtungen, die von den Gewichtungen einer neuronalen Netzwerkbank abgeleitet sind, die von der neuronalen netzwerkbasierten Decodierung zum Decodieren eines benachbarten Restblocks verwendet wird.
DE112020000471.6T 2019-01-22 2020-01-13 Prädiktionscodierung mit neuronalen netzwerken Pending DE112020000471T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/254,528 US11240492B2 (en) 2019-01-22 2019-01-22 Neural network based residual coding and prediction for predictive coding
US16/254,528 2019-01-22
PCT/US2020/013279 WO2020154119A1 (en) 2019-01-22 2020-01-13 Predictive coding with neural networks

Publications (1)

Publication Number Publication Date
DE112020000471T5 true DE112020000471T5 (de) 2021-10-14

Family

ID=69500872

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020000471.6T Pending DE112020000471T5 (de) 2019-01-22 2020-01-13 Prädiktionscodierung mit neuronalen netzwerken

Country Status (4)

Country Link
US (2) US11240492B2 (de)
CN (1) CN113574888A (de)
DE (1) DE112020000471T5 (de)
WO (1) WO2020154119A1 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3695599A1 (de) * 2017-10-13 2020-08-19 Fraunhofer Gesellschaft zur Förderung der Angewand Intraprädiktionsmoduskonzept für blockweise bildcodierung
CN114731421A (zh) * 2019-09-24 2022-07-08 弗劳恩霍夫应用研究促进协会 现代混合图像和视频编码方案中的多级残差编码
US20230052774A1 (en) * 2019-12-05 2023-02-16 Electronics And Telecommunications Research Institute Method, apparatus, and recording medium for region-based differential image encoding/decoding
US11284071B2 (en) * 2019-12-12 2022-03-22 Google Llc Combination of mode-dependent and fixed transform types in video coding
US11172210B2 (en) * 2020-01-05 2021-11-09 Isize Limited Processing image data
CN114286099A (zh) * 2020-09-28 2022-04-05 华为技术有限公司 帧内预测方法及装置
CN114501031B (zh) * 2020-11-13 2023-06-02 华为技术有限公司 一种压缩编码、解压缩方法以及装置
WO2022147745A1 (zh) * 2021-01-08 2022-07-14 深圳市大疆创新科技有限公司 编码方法、解码方法和编码装置、解码装置
US11670011B2 (en) * 2021-01-11 2023-06-06 Industry-Academic Cooperation Foundation Yonsei University Image compression apparatus and learning apparatus and method for the same
EP4250729A4 (de) 2021-02-22 2024-05-01 Samsung Electronics Co Ltd Ki-basierte bildcodierungs- und -decodierungsvorrichtung und verfahren dafür
EP4262207A4 (de) 2021-02-22 2024-03-27 Samsung Electronics Co Ltd Vorrichtung zur bildcodierung und -decodierung unter verwendung von ki und verfahren zur bildcodierung und -decodierung damit
EP4289137A1 (de) * 2021-05-07 2023-12-13 Google LLC Inter/intra videokompression unter verwendung einer expertenmischung
WO2023055267A1 (en) * 2021-09-29 2023-04-06 Telefonaktiebolaget Lm Ericsson (Publ) Efficient transmission of decoding information
CN115529457B (zh) * 2022-09-05 2024-05-14 清华大学 基于深度学习的视频压缩方法和装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993003443A1 (en) 1991-08-05 1993-02-18 Kawasaki Steel Corporation Signal processor and learning method thereof
RU2492586C2 (ru) 2008-10-27 2013-09-10 Ниппон Телеграф Энд Телефон Корпорейшн Способ автоматического формирования процедуры генерации прогнозируемого значения пикселя, способ кодирования изображений, способ декодирования изображений, соответствующее устройство, соответствующие программы и носители информации, которые хранят программы
US8724701B1 (en) 2011-04-18 2014-05-13 Google Inc. Using object decomposition to improve the selection of example-based predictors
US8805104B1 (en) 2011-05-11 2014-08-12 Google Inc. Selecting example-based predictors based on spatial continuity
GB2491391B (en) 2011-06-02 2014-09-03 Canon Kk Encoding mode values representing prediction modes
EP2979447B1 (de) * 2013-03-28 2018-01-03 Huawei Technologies Co., Ltd. Verfahren zur bestimmung von prädiktorblöcken für räumlich skalierbare video-codecs
CN107736027B (zh) * 2015-06-12 2021-06-01 松下知识产权经营株式会社 图像编码方法、图像解码方法、图像编码装置及图像解码装置
CA2997193C (en) * 2015-09-03 2021-04-06 Mediatek Inc. Method and apparatus of neural network based processing in video coding
EP3298782B1 (de) * 2016-04-15 2022-12-21 Pony Technology Limited Magic Bewegungskompensation unter verwendung von maschinellem lernen
KR102252298B1 (ko) * 2016-10-21 2021-05-14 삼성전자주식회사 표정 인식 방법 및 장치
WO2018199051A1 (ja) 2017-04-25 2018-11-01 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法および復号方法
CN110892723B (zh) * 2017-07-06 2024-04-12 三星电子株式会社 用于编码或解码图像的方法和装置
WO2019009452A1 (ko) 2017-07-06 2019-01-10 삼성전자 주식회사 영상을 부호화 또는 복호화하는 방법 및 장치
CN107396124B (zh) * 2017-08-29 2019-09-20 南京大学 基于深度神经网络的视频压缩方法
KR102535361B1 (ko) * 2017-10-19 2023-05-24 삼성전자주식회사 머신 러닝을 사용하는 영상 부호화기 및 그것의 데이터 처리 방법
US10841577B2 (en) * 2018-02-08 2020-11-17 Electronics And Telecommunications Research Institute Method and apparatus for video encoding and video decoding based on neural network
CN108737823B (zh) * 2018-04-04 2021-05-25 中国传媒大学 基于超分辨技术的图像编码方法和装置、解码方法和装置
US11601644B2 (en) * 2018-12-11 2023-03-07 Google Llc Image and video coding using machine learning prediction coding models

Also Published As

Publication number Publication date
WO2020154119A1 (en) 2020-07-30
US20200236349A1 (en) 2020-07-23
US11240492B2 (en) 2022-02-01
US20220191473A1 (en) 2022-06-16
CN113574888A (zh) 2021-10-29

Similar Documents

Publication Publication Date Title
DE112020000471T5 (de) Prädiktionscodierung mit neuronalen netzwerken
DE102016125117B4 (de) Bewegungsvektorkodierung mit dynamischen Referenzbewegungsvektoren
DE60027955T2 (de) Verfahren und Vorrichtung zur kontextbasierten Inter/Intra Kodierungsmodeauswahl
DE102019218837A1 (de) VERFAHREN UND SYSTE M ZUR NEURONALNETZ WERK-SCHLEIFENFILTERUNG ZUR VlDEOCODIERUNG
DE69815922T2 (de) Verfahren und Vorrichtung zur prädiktiven Bildkodierung und -dekodierung
DE19825042C2 (de) Verfahren zur Bewegungsvektorcodierung bei MPEG-4
Lombardo et al. Deep generative video compression
DE69635369T2 (de) Videokodierungsvorrichtung
DE202017007520U1 (de) Bewegungskompensation durch maschinelles Lernen
DE202017007512U1 (de) Bewegungsschätzung durch maschinelles Lernen
DE602004001993T2 (de) Transformations basiertes restbewegungsrahmen kodierungsverfahren mit übervollständiger basis und zugehörige vorrichtung zur videokompression
CN110740319B (zh) 视频编解码方法、装置、电子设备及存储介质
DE112018005899T5 (de) System und Verfahren zum Konstruieren einer Ebene für planare Prädiktion
KR20200109904A (ko) Dnn 기반 이미지 또는 비디오 코딩을 위한 시스템 및 방법
EP1472888B1 (de) Kontextsensitive kodierung und dekodierung eines videodatenstroms
DE102020108428A1 (de) Codieren von Video unter Verwendung zweistufiger Intra-Suche
DE60309039T2 (de) Verfahren und vorrichtung zur optimierung der bildschärfe während der kodierung
KR20200005402A (ko) 도구 단위의 dnn 기반 이미지 또는 비디오 코딩을 위한 시스템 및 방법
CN111699686A (zh) 用于视频编解码的分组神经网络的方法以及装置
Han et al. Deep generative video compression
CN111901595B (zh) 一种基于深度神经网络的视频编码方法及装置、介质
KR20240050435A (ko) 조건부 이미지 압축
DE102004029086B4 (de) Verfahren zum Entblocken und Umcodieren eines Medienstroms
DE102011002325A1 (de) Einrichtung mit vertikalem und/oder horizontalem Cachespeicher und in einem Kodierer und/oder Dekodierer verwendete Verfahren
Choi et al. Frequency-aware learned image compression for quality scalability

Legal Events

Date Code Title Description
R012 Request for examination validly filed