DE202017007520U1 - Bewegungskompensation durch maschinelles Lernen - Google Patents

Bewegungskompensation durch maschinelles Lernen Download PDF

Info

Publication number
DE202017007520U1
DE202017007520U1 DE202017007520.2U DE202017007520U DE202017007520U1 DE 202017007520 U1 DE202017007520 U1 DE 202017007520U1 DE 202017007520 U DE202017007520 U DE 202017007520U DE 202017007520 U1 DE202017007520 U1 DE 202017007520U1
Authority
DE
Germany
Prior art keywords
video data
blocks
data
neural networks
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.)
Active
Application number
DE202017007520.2U
Other languages
English (en)
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.)
Magic Pony Technology Ltd
Original Assignee
Magic Pony Technology Ltd
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 Magic Pony Technology Ltd filed Critical Magic Pony Technology Ltd
Publication of DE202017007520U1 publication Critical patent/DE202017007520U1/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/002Image coding using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/004Predictors, e.g. intraframe, interframe 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/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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Vorrichtung, die einen oder mehrere Computer aufweist, wobei der eine oder die mehreren Computer ein oder mehrere neuronale Netzwerke speichern und so konfiguriert sind, dass sie Operationen durchführen, die Folgendes aufweisen:
Empfangen eines oder mehrerer Eingangsblöcke (207) von Videodaten aus einem Eingangsbild (209) von Videodaten und einer Vielzahl von Referenzblöcken (201) von Videodaten, die aus einem oder mehreren Referenzbildern (203) von Videodaten ausgewählt sind;
Transformieren der Vielzahl von Referenzblöcken (207) in einen vorhergesagten Block (205) visueller Daten durch das eine oder die mehreren neuronalen Netzwerke (501); und
Berechnen eines oder mehrerer Restblöcke (211) von Videodaten aus dem vorhergesagten Block (205) von visuellen Daten und dem einen oder den mehreren Eingangsblöcken (207) von Videodaten.

Description

  • Nach den Bestimmungen des Gebrauchsmustergesetzes sind nur Vorrichtungen, wie sie in den beigefügten Schutzansprüchen definiert sind, schutzfähig und Gegenstand des Gebrauchsmusters, nicht aber Verfahren. Soweit in der nachfolgenden Beschreibung gegebenenfalls auf Verfahren Bezug genommen wird, dienen diese Bezugnahmen nur der beispielhaften Erläuterung der in den beigefügten Schutzansprüchen geschützten Vorrichtung(en).
  • Gebiet
  • Die vorliegende Erfindung bezieht sich auf die Bewegungskompensation bei der Videokodierung. Insbesondere bezieht sich die vorliegende Erfindung auf die Verwendung von maschinellem Lernen zur Verbesserung der Bewegungskompensation bei der Videokodierung.
  • Hintergrund - Videokompression
  • 1 veranschaulicht die allgemeinen Teile eines typischen Videokodierungsprozesses.
  • Videokompressionstechnologien reduzieren die Informationen in Bildern, indem sie die in den Videodaten vorhandenen Redundanzen identifizieren und verringern. Dies kann erreicht werden, indem das Bild (oder Teile davon) aus benachbarten Daten innerhalb desselben Frames (Intraprädiktion) oder aus Daten, die zuvor in anderen Frames signalisiert wurden (Interprädiktion), vorhergesagt wird. Bei Interprädiktionstechniken werden Ähnlichkeiten zwischen Bildern in einer zeitlichen Dimension ausgenutzt. Beispiele für solche Videotechnologien sind unter anderem MPEG2, H.264, HEVC, VP8, VP9, Thor und Daala.
  • Im Allgemeinen umfassen Videokompressionstechniken die Verwendung verschiedener Module. Um die Menge von Daten in einem Video zu reduzieren, wird ein Restsignal auf der Grundlage der vorhergesagten Abtastungen erstellt. Die Intraprädiktion 121 verwendet zuvor dekodierte Abtastwerte benachbarter Abtastwerte, um die Vorhersage der aktuellen Abtastwerte zu unterstützen. Das Restsignal wird von einem Transformationsmodul 103 transformiert (in der Regel werden die diskrete Cosinus-Transformation oder die schnelle Fourier-Transformation verwendet). Diese Transformation ermöglicht es dem Codierer, Daten in hohen Frequenzbändern, in denen Menschen Artefakte weniger leicht wahrnehmen, durch Quantisierung 105 zu entfernen. Die resultierenden Daten und alle syntaktischen Daten werden entropiekodiert 125, was einen verlustfreien Datenkomprimierungsschritt darstellt. Die quantisierten Daten werden durch einen Schritt der inversen Quantisierung 107 und inversen Transformation 109 rekonstruiert. Durch Hinzufügen des vorhergesagten Signals werden die visuellen Eingangsdaten 101 rekonstruiert 113. Zur Verbesserung der visuellen Qualität können Filter wie ein Deblocking-Filter 111 und ein abtastadaptiver Offset-Filter 127 verwendet werden. Das rekonstruierte Bild 113 wird für spätere Referenzzwecke in einem Referenzbildpuffer 115 gespeichert, damit die statischen Ähnlichkeiten zwischen zwei Bildern genutzt werden können. Der Bewegungsschätzungsprozess 117 wertet einen oder mehrere Kandidatenblöcke aus, indem er die Verzerrung im Vergleich zum aktuellen Block minimiert. Ein oder mehrere Blöcke aus einem oder mehreren Referenzbildern werden ausgewählt. Die Verschiebung zwischen dem aktuellen und dem/den optimalen Block/Blöcken wird von der Bewegungskompensation 119 verwendet, die auf der Grundlage des Vektors eine Vorhersage für den aktuellen Block erstellt. Bei interprädizierten Bildern können die Blöcke entweder intra- oder interprädiziert oder beides sein.
  • Bei der Interprädiktion werden Redundanzen zwischen Frames visueller Daten ausgenutzt. Mit Hilfe von Referenzframes werden die anzuzeigenden Frames rekonstruiert, was zu einer Verringerung der zu übertragenden oder zu speichernden Datenmenge führt. Die Referenzframes werden im Allgemeinen vor den anzuzeigenden Frames des Bildes übertragen. Es ist jedoch nicht erforderlich, dass die Frames in der Reihenfolge der Anzeige übertragen werden. Daher können die Referenzframes in der Anzeigereihenfolge vor oder nach dem aktuellen Bild liegen oder sogar nie angezeigt werden (d. h. ein Bild, das nur zu Referenzzwecken codiert und übertragen wird). Darüber hinaus ermöglicht die Interprädiktion die Verwendung mehrerer Frames für eine einzige Vorhersage, wobei eine gewichtete Vorhersage, z. B. eine Mittelwertbildung, zur Erstellung eines vorhergesagten Blocks verwendet wird.
  • 2 zeigt einen schematischen Überblick über den Prozess der Bewegungskompensation (MC) als Teil der Interprädiktion.
  • Bewegungskompensation ist ein wesentlicher Bestandteil der Videokompression. Bei der Bewegungskompensation werden Referenzblöcke 201 aus Referenzframes 203 kombiniert, um einen vorhergesagten Block 205 visueller Daten zu erzeugen. Dieser vorhergesagte Block 205 visueller Daten wird von dem entsprechenden Eingangsblock 207 visueller Daten in dem Bild, das gerade kodiert wird, subtrahiert 209, um einen Restblock 211 visueller Daten zu erzeugen. Der Restblock 211 der visuellen Daten wird zusammen mit den Identitäten der Referenzblöcke 201 der visuellen Daten von einem Decoder verwendet, um den codierten Block 207 der visuellen Daten zu rekonstruieren. Auf diese Weise wird die Menge der an den Decoder zu übertragenden Daten reduziert.
  • Der Bewegungskompensationsprozess hat als Eingabe eine Anzahl von Pixeln des Originalbildes, die als Block bezeichnet werden, und einen oder mehrere Bereiche, die aus Pixeln (oder Subpixeln) innerhalb der Referenzbilder bestehen, die eine gute Ähnlichkeit mit dem Originalbild haben. Die BK subtrahiert den ausgewählten Block des Referenzbildes vom Originalblock. Zur Vorhersage eines Blocks kann die BK mehrere Blöcke aus mehreren Referenzframes verwenden. Durch eine gewichtete Durchschnittsfunktion ergibt der BK-Prozess einen einzelnen Block, der den Block des aktuellen Frames vorhersagt. Es ist wichtig zu beachten, dass die vor dem aktuellen Frame übertragenen Frames in der Anzeigereihenfolge vor und/oder nach dem aktuellen Frame liegen können.
  • Je näher der vorhergesagte Block 205 am entsprechenden Eingangsblock 207 im zu kodierenden Bild 209 liegt, desto besser ist die Komprimierungseffizienz, da der Restblock 211 nicht so viele Daten enthalten muss. Daher ist es für eine gute Kodierungsleistung unerlässlich, den vorhergesagten Block 205 so genau wie möglich an das aktuelle Bild anzupassen. Folglich ist es erforderlich, die optimalsten oder am besten passenden Referenzblöcke 201 in den Referenzbildern 203 zu finden. Das Verfahren zum Auffinden der optimalen Referenzblöcke, besser bekannt als Bewegungsschätzung, ist jedoch in der MPEG-Norm nicht definiert oder festgelegt.
  • 3 zeigt eine Visualisierung des Bewegungsschätzungsprozesses.
  • Ein Bereich 301 eines Referenzframes 303 wird nach einem Datenblock 305 durchsucht, der dem aktuell codierten Block 307 am ehesten entspricht, und es wird ein Bewegungsvektor 309 ermittelt, der die Position dieses Referenzblocks 305 mit dem aktuell codierten Block 307 in Beziehung setzt. Bei der Bewegungsabschätzung wird eine Reihe von Blöcken im Referenzframe ausgewertet. Durch Anwendung einer Translation zwischen dem aktuell kodierten Bild 3011 und dem Referenzframe 303 kann jeder beliebige Block im Referenzbild bewertet werden. Im Prinzip kann jeder Pixelblock im Referenzbild ausgewertet werden, um den optimalsten Referenzblock zu finden. Dies ist jedoch sehr rechenintensiv, und aktuelle Implementierungen optimieren diese Suche, indem sie die Anzahl der auszuwertenden Blöcke des Referenzbildes begrenzen. Daher kann es vorkommen, dass der optimalste Referenzblock nicht gefunden wird.
  • Wenn der optimale Block gefunden ist oder zumindest ein Block, der dem aktuellen Block hinreichend nahe kommt, erzeugt die Bewegungskompensation den Restblock, der zur Transformation und Quantisierung verwendet wird. Der Positionsunterschied zwischen dem aktuellen Block und dem optimalen Block im Referenzbild wird in Form eines Bewegungsvektors signalisiert, der auch die Identität des Referenzbildes angibt, das als Referenz verwendet wird.
  • Bewegungsabschätzung und -kompensation sind entscheidende Vorgänge bei der Videokodierung. Um einen einzelnen Frame zu kodieren, muss ein Bewegungsfeld geschätzt werden, das die Verschiebung beschreibt, die der räumliche Inhalt dieses Frames relativ zu einem oder mehreren Referenzframes erfahren hat. Im Idealfall ist dieses Bewegungsfeld dicht, so dass jedes Pixel des Bildes eine individuelle Entsprechung in einem oder mehreren Referenzframes hat. Die Kodierung dichter Bewegungsfelder wird in der Regel als optischer Fluss bezeichnet, und es wurden viele verschiedene Methoden zu dessen Schätzung vorgeschlagen. Die Ermittlung genauer pixelweiser Bewegungsfelder ist jedoch rechnerisch anspruchsvoll und teuer, so dass die Kodierer in der Praxis auf Block-Matching-Algorithmen zurückgreifen, die stattdessen nach Korrespondenzen für Pixelblöcke suchen. Dies wiederum schränkt die Kompressionsleistung des Encoders ein.
  • In 4 ist ein allgemeiner Decoder dargestellt.
  • Ein kodierter Bitstrom 401, der kodierte Restblöcke von Videodaten enthält, wird vom Decoder empfangen, nachdem er möglicherweise über ein Netzwerk übertragen wurde. Der kodierte Bitstrom 401 wird einer Entropie-Dekodierung 403 unterzogen, gefolgt von einer inversen Quantisierung 405 und einer inversen Transformation 407, um einen Restblock von Videodaten zu erzeugen. Der Decoder rekonstruiert die Prädiktion auf der Grundlage des signalisierten Inter- oder Intra-Prädiktionsmodus 409. Dazu muss entweder der zuvor dekodierte und rekonstruierte Referenzframe zur Verfügung stehen (Interprädiktion) oder die Pixelwerte der benachbarten Pixel. Für intraprädizierte Blöcke in interprädizierten Frames bedeutet dies, dass die Bewegungskompensation 411 für die interprädizierten Regionen durchgeführt werden muss, bevor der aktuelle intraprädizierte Block dekodiert werden kann.
  • Der Prozess der Bewegungskompensation 411 im Decoder ist im Wesentlichen die Umkehrung des Bewegungskompensationsprozesses im Encoder. Aus den Referenzframes, die dem Decoder im kodierten Bitstrom 401 identifiziert wurden, wird mittels eines gewichteten Durchschnitts ein vorhergesagter Block visueller Daten erzeugt. Dieser vorhergesagte Block visueller Daten wird dann zu dem dekodierten Restblock visueller Daten hinzugefügt, um den ursprünglichen Block von Videodaten zu rekonstruieren, der im Encoder kodiert wurde. Dieser Vorgang wird so lange wiederholt, bis alle vorhergesagten Blöcke des kodierten Bildes rekonstruiert sind.
  • Nachdem das Originalbild rekonstruiert wurde, wird es in einen Deblocking-Filter 413 und, in einigen Codierungsstandards, in einen Sample Adaptive Offset-Filter 415 eingegeben. Diese glätten Blocking- und Ringing-Artefakte, die durch die blockweisen Interprediction- und Intraprediction-Prozesse entstehen.
  • Das endgültige rekonstruierte Bild 417 wird dann ausgegeben.
  • Hintergrund - Techniken des maschinellen Lernens
  • Das maschinelle Lernen ist ein Studienbereich, in dem ein Computer oder Computer lernen, Klassen von Aufgaben auszuführen, indem sie das Feedback nutzen, das aus der Erfahrung oder den gesammelten Daten generiert wird, die der maschinelle Lernprozess während der Ausführung dieser Aufgaben durch den Computer sammelt.
  • Typischerweise kann maschinelles Lernen grob in überwachte und nicht überwachte Ansätze eingeteilt werden, obwohl es spezielle Ansätze wie Reinforcement Learning und Semi-überwachtes Learning gibt, die spezielle Regeln, Techniken und/oder Ansätze haben.
  • Beim überwachten maschinellen Lernen geht es darum, dass ein Computer eine oder mehrere Regeln oder Funktionen erlernt, um die von einem Bediener oder Programmierer vorgegebenen Beispieleingaben auf die gewünschten Ausgaben abzubilden, wobei in der Regel ein Datensatz, der die Eingaben enthält, gekennzeichnet wird.
  • Beim unüberwachten Lernen geht es darum, eine Struktur für die Eingabedaten zu bestimmen, zum Beispiel bei der Mustererkennung, und es werden in der Regel unmarkierte Datensätze verwendet.
  • Beim Verstärkungslernen geht es darum, einen oder mehrere Computer in die Lage zu versetzen, mit einer dynamischen Umgebung zu interagieren, z. B. beim Spielen eines Spiels oder beim Fahren eines Fahrzeugs.
  • Es sind verschiedene Mischformen dieser Kategorien möglich, wie z. B. das „semi-überwachte“ maschinelle Lernen, bei dem ein Trainingsdatensatz nur teilweise etikettiert wurde.
  • Für unüberwachtes maschinelles Lernen gibt es eine Reihe von Anwendungsmöglichkeiten, wie z. B. die Anwendung von Computer-Vision-Techniken bei der Bildverarbeitung oder Videoverbesserung. Unüberwachtes maschinelles Lernen wird in der Regel zur Lösung von Problemen eingesetzt, bei denen eine unbekannte Datenstruktur in den Daten vorhanden sein könnte. Da die Daten nicht etikettiert sind, muss der maschinelle Lernprozess implizite Beziehungen zwischen den Daten erkennen, indem er beispielsweise eine Clustermetrik auf der Grundlage intern abgeleiteter Informationen ableitet. Beispielsweise kann ein unüberwachtes Lernverfahren verwendet werden, um die Dimensionalität eines Datensatzes zu reduzieren und zu versuchen, Beziehungen zwischen Clustern im Datensatz zu identifizieren und zu modellieren, und kann beispielsweise Maße für die Clustermitgliedschaft generieren oder Knotenpunkte in oder zwischen Clustern identifizieren (beispielsweise unter Verwendung einer Technik, die als gewichtete Korrelationsnetzwerkanalyse bezeichnet wird und auf hochdimensionale Datensätze angewandt werden kann, oder unter Verwendung von k-means clustering, um Daten durch ein Maß für den euklidischen Abstand zwischen den einzelnen Daten zu clustern).
  • Semi-überwachtes Lernen wird in der Regel zur Lösung von Problemen eingesetzt, bei denen ein teilweise etikettierter Datensatz vorliegt, z. B. wenn nur eine Teilmenge der Daten etikettiert ist. Beim teilüberwachten maschinellen Lernen werden extern bereitgestellte Kennzeichnungen und Zielfunktionen sowie alle impliziten Datenbeziehungen verwendet.
  • Bei der anfänglichen Konfiguration eines maschinellen Lernsystems, insbesondere bei Verwendung eines überwachten maschinellen Lernansatzes, kann der maschinelle Lernalgorithmus mit einigen Trainingsdaten oder einem Satz von Trainingsbeispielen versehen werden, wobei jedes Beispiel typischerweise ein Paar aus einem Eingangssignal/-vektor und einem gewünschten Ausgangswert, Etikett (oder einer Klassifizierung) oder Signal ist. Der Algorithmus für maschinelles Lernen analysiert die Trainingsdaten und erzeugt eine verallgemeinerte Funktion, die mit ungesehenen Datensätzen verwendet werden kann, um gewünschte Ausgabewerte oder Signale für die ungesehenen Eingangsvektoren/-signale zu erzeugen. Der Benutzer muss entscheiden, welche Art von Daten als Trainingsdaten verwendet werden sollen, und einen repräsentativen Datensatz aus der realen Welt vorbereiten. Der Nutzer muss jedoch darauf achten, dass die Trainingsdaten genügend Informationen enthalten, um die gewünschten Ausgabewerte genau vorherzusagen, ohne zu viele Merkmale zu liefern (was dazu führen kann, dass zu viele Dimensionen vom maschinellen Lernprozess während des Trainings berücksichtigt werden, und auch bedeuten könnte, dass der maschinelle Lernprozess nicht zu guten Lösungen für alle oder bestimmte Beispiele konvergiert). Der Benutzer muss auch die gewünschte Struktur der erlernten oder verallgemeinerten Funktion festlegen, z. B. ob er Support-Vektor-Maschinen oder Entscheidungsbäume verwenden möchte.
  • Unüberwachte oder semi-überwachte Ansätze des maschinellen Lernens werden manchmal verwendet, wenn gekennzeichnete Daten nicht ohne weiteres verfügbar sind oder wenn das System aus unbekannten Daten neue gekennzeichnete Daten generiert, wenn einige anfängliche Kennzeichnungen vorhanden sind.
  • Zusammenfassung der Erfindung
  • Aspekte und/oder Ausführungsformen zielen darauf ab, ein Verfahren zur Bewegungskompensation bereitzustellen, das hierarchische Algorithmen verwendet, um die Erzeugung eines vorhergesagten Blocks visueller Daten zu verbessern.
  • Gemäß einem ersten Aspekt wird ein Verfahren zur Bewegungskompensation in Videodaten unter Verwendung hierarchischer Algorithmen bereitgestellt, wobei das Verfahren die folgenden Schritte aufweist: Empfangen eines oder mehrerer Originalblöcke von Videodaten und eines oder mehrerer Referenzblöcke von Videodaten; Bestimmen eines oder mehrerer vorhergesagter Blöcke von Videodaten aus dem einen oder mehreren Referenzblöcken von Videodaten unter Verwendung eines oder mehrerer hierarchischer Algorithmen; und Berechnen eines oder mehrerer Restblöcke von Videodaten aus dem einen oder mehreren vorhergesagten Blöcken von Videodaten und dem einen oder mehreren Originalblöcken von Videodaten.
  • Gemäß einem zweiten Aspekt der vorliegenden Erfindung wird ein Verfahren zur Bewegungskompensation in Videodaten unter Verwendung hierarchischer Algorithmen bereitgestellt, wobei das Verfahren die folgenden Schritte aufweist: Empfangen eines oder mehrerer Restblöcke von Videodaten und eines, eines oder mehrerer Referenzblöcke von Videodaten; Bestimmen eines oder mehrerer vorhergesagter Blöcke von Videodaten aus den zwei oder mehreren Referenzblöcken von Videodaten unter Verwendung eines oder mehrerer hierarchischer Algorithmen; und Berechnen eines oder mehrerer Originalblöcke von Videodaten aus dem einen oder mehreren vorhergesagten Blöcken von Videodaten und dem einen oder mehreren Restblöcken von Videodaten.
  • In einer Ausführungsform kann die Verwendung eines hierarchischen Algorithmus zur Bestimmung eines vorhergesagten Blocks von Videodaten aus einem oder mehreren Referenzblöcken einen vorhergesagten Block von Videodaten liefern, der einem orignalen, zu kodierenden Eingangsblock ähnlicher ist als ein vorhergesagter Block, der nur durch einen gewichteten Durchschnitt bestimmt wird. Der verbleibende Datenblock, der zur Rekonstruktion des Eingangsframes aus den Referenzframes erforderlich ist, kann dann kleiner sein, was die resultierende Bitrate des kodierten Bitstroms verringert. Bei der Rekonstruktion der ursprünglichen Videodaten kann die Kenntnis der in der Kodierungsphase verwendeten hierarchischen Algorithmen zur Bestimmung eines vorhergesagten Blocks verwendet werden, zu dem der berechnete Restblock hinzugefügt werden kann, um das Originalframe zu rekonstruieren.
  • Optional umfasst das Verfahren ferner den zusätzlichen Schritt des Empfangs von Metadaten, die den einen oder die mehreren zu verwendenden hierarchischen Algorithmen identifizieren.
  • Durch die Übermittlung von Metadaten an den Decoder, die es ermöglichen, den oder die erforderlichen hierarchischen Algorithmen zu ermitteln, muss der Decoder diese nicht selbst ermitteln, was zu einer Steigerung der Recheneffizienz führt.
  • Optional werden der eine oder die mehreren hierarchischen Algorithmen aus einer Bibliothek hierarchischer Algorithmen auf der Grundlage von Eigenschaften des einen oder der mehreren Referenzblöcke von Videodaten ausgewählt.
  • Durch die Auswahl eines inhaltsspezifischen hierarchischen Algorithmus aus einer Bibliothek vortrainierter hierarchischer Algorithmen auf der Grundlage der Eigenschaften der Referenzblöcke kann die Effizienz des Bewegungsschätzungsprozesses im Vergleich zur Verwendung eines allgemeinen hierarchischen Algorithmus für alle Arten eines Referenzblocks erhöht werden. Außerdem können verschiedene hierarchische Algorithmen für verschiedene Blöcke im selben Referenzbild verwendet werden.
  • Optional werden die ein oder mehreren Referenzblöcke von Videodaten aus einem oder mehreren Referenzframes von Videodaten ermittelt.
  • Die Bestimmung der Referenzblöcke von Videodaten aus bekannten Referenzframes von Videodaten reduziert die Menge der zu kodierenden Daten, da nur ein Verweis auf den bekannten Referenzframe und die Position des Referenzblocks darin kodiert werden müssen.
  • Optional wird ein Bewegungsvektor verwendet, um die ein oder mehreren Referenzblöcke von Videodaten aus dem einen oder den mehreren Referenzframes von Videodaten zu bestimmen.
  • Ein Bewegungsvektor kann in einem Bewegungsschätzungsprozess geschätzt werden, der die Position des Referenzblocks im Referenzframe mit der Position des ursprünglichen Eingangsblocks in einem Eingangsframe in Beziehung setzt.
  • Optional werden die ein oder mehreren Referenzblöcke der Videodaten unter Verwendung von mindestens einem der folgenden Verfahren ausgewählt: translatorische Bewegungsschätzung, affine Bewegungsschätzung, Stiltransformation oder Verzerrung.
  • Durch die Möglichkeit, den Referenzblock mit einer Vielzahl von Methoden auszuwählen, kann die Flexibilität der Bewegungskompensation erhöht werden. Der Referenzblock kann dann nicht nur durch eine Verschiebung, sondern auch durch eine Skalierung oder Drehung auf den ursprünglichen Block bezogen werden.
  • Optional umfasst der eine oder mehrere Referenzblöcke von Videodaten eine Vielzahl von Referenzblöcken von visuellen Daten.
  • Optional umfasst der Schritt der Bestimmung des einen oder der mehreren vorhergesagten Blöcke visueller Daten das Kombinieren von mindestens zwei der mehreren Referenzblöcke von Videodaten unter Verwendung des einen oder der mehreren hierarchischen Algorithmen.
  • Die Verwendung von mehr als einem Referenzblock zur Erzeugung eines vorhergesagten Blocks visueller Daten kann die Übereinstimmung zwischen dem ursprünglichen Eingangsblock und dem erzeugten vorhergesagten Block erhöhen.
  • Optional werden mindestens zwei der mehreren Referenzblöcke von Videodaten jeweils aus einem anderen Referenzbild von Videodaten ausgewählt.
  • Durch die Auswahl von Referenzblöcken aus mehreren verschiedenen Frames von Videodaten können die hierarchischen Algorithmen vorausgesagte Blöcke mit Referenzblöcken erstellen, die unterschiedliche Inhalte enthalten, die möglicherweise nicht in einem einzigen Referenzframe vorhanden sind.
  • Optional umfassen die ein oder mehreren hierarchischen Algorithmen zwei oder mehr separate hierarchische Algorithmen, die auf jeden der mehreren Referenzblöcke von Videodaten angewendet werden, um den einen oder die mehreren Referenzblöcke von Videodaten in den einen oder die mehreren vorhergesagten Blöcke von Videodaten zu transformieren.
  • Durch die Anwendung separater Algorithmen auf jeden der Referenzblöcke kann die Größe der jeweiligen Algorithmen verringert und ihre Effizienz erhöht werden, da sie nicht mehrere Referenzblöcke gleichzeitig verarbeiten müssen. Dies ermöglicht auch eine modulare Bewegungskompensation.
  • Optional sind mindestens zwei der separaten hierarchischen Algorithmen, die auf jeden der mehreren Referenzblöcke von Videodaten angewendet werden, identisch.
  • Die Verwendung desselben hierarchischen Algorithmus auf einigen Referenzblöcken verringert die Gesamtzahl der hierarchischen Algorithmen, die im Encoder oder Decoder gespeichert werden müssen.
  • Optional sind mindestens zwei der separaten hierarchischen Algorithmen, die auf jeden der mehreren Referenzblöcke von Videodaten angewendet werden, unterschiedlich.
  • Im Allgemeinen haben verschiedene Referenzblöcke von visuellen Daten verschiedene optimale hierarchische Algorithmen für den Bewegungskompensationsprozess. Durch die Verwendung verschiedener hierarchischer Algorithmen für Referenzblöcke kann die Effizienz des Prozesses erhöht werden, da für jeden Block ein optimaler hierarchischer Algorithmus verwendet werden kann.
  • Optional werden die ein oder mehreren separaten hierarchischen Algorithmen jeweils aus einer Bibliothek von hierarchischen Algorithmen auf der Grundlage von Eigenschaften der mehreren Referenzblöcke von Videodaten ausgewählt.
  • Die Auswahl der hierarchischen Algorithmen aus einer Bibliothek von vortrainierten hierarchischen Algorithmen auf der Grundlage von Eigenschaften der Vielzahl von Referenzblöcken ermöglicht die Verwendung von inhaltsspezifischen hierarchischen Algorithmen, die im Wesentlichen für die Verwendung mit Referenzblöcken mit diesen Eigenschaften optimiert wurden. Diese Eigenschaften können den Inhaltstyp, die Position des Referenzblocks innerhalb des Referenzframes, aus dem er entnommen wurde, und die Auflösung des Frames, aus dem er entnommen wurde, umfassen. Es ermöglicht eine adaptive Transformation der Referenzblöcke, um die Vorhersagegenauigkeit zu verbessern, und die Verwendung verschiedener hierarchischer Algorithmen für verschiedene Blöcke in ein und demselben Referenzbild. Darüber hinaus kann die Auswahl des hierarchischen Algorithmus auf der zeitlichen Position des Referenzframes basieren, aus dem die Referenzblöcke ausgewählt wurden.
  • Optional wird mindestens ein weiterer hierarchischer Algorithmus auf eine Ausgabe des einen oder mehrerer separater hierarchischer Algorithmen angewendet, um den vorhergesagten Block visueller Daten zu bestimmen.
  • Ein weiterer hierarchischer Algorithmus kann auf die Ergebnisse der separaten hierarchischen Algorithmen angewendet werden, entweder nachdem ein gewichteter Durchschnitt der Ergebnisse gebildet wurde oder nicht, um die Genauigkeit des vorhergesagten Blocks visueller Daten weiter zu verbessern. Dieser weitere hierarchische Algorithmus kann die relative Einfachheit der separaten hierarchischen Algorithmen, die auf die einzelnen Referenzblöcke angewendet werden, ausgleichen.
  • Optional umfasst der Schritt der Bestimmung des einen oder der mehreren vorhergesagten Blöcke von Videodaten einen Schritt der Transformation des einen oder der mehreren Referenzblöcke von Videodaten in einen oder mehrere transformierte Blöcke von Videodaten unter Verwendung des einen oder der mehreren hierarchischen Algorithmen.
  • Optional wird der vorhergesagte Block von Videodaten aus dem transformierten Block von Videodaten ermittelt.
  • Optional werden ein oder mehrere zusätzliche hierarchische Algorithmen verwendet, um den vorhergesagten Block von Videodaten aus dem transformierten Block von Videodaten zu bestimmen.
  • Die Umwandlung der Referenzblöcke in einen Zwischenblock vor der Erzeugung des vorhergesagten Blocks kann den Prozess vereinfachen, insbesondere wenn mehrere Referenzblöcke verwendet werden.
  • Optional wurden die ein oder mehreren hierarchischen Algorithmen mit Hilfe eines erlernten Ansatzes entwickelt.
  • Optional umfasst der erlernte Ansatz das Trainieren des hierarchischen Algorithmus auf einem oder mehreren bekannten vorhergesagten Blöcken von Videodaten und einem oder mehreren bekannten Referenzblöcken von Videodaten, um eine Differenz zwischen den Ausgaben des hierarchischen Algorithmus und den bekannten ursprünglichen Blöcken von Videodaten zu minimieren.
  • Durch das Trainieren des hierarchischen Algorithmus anhand von Sätzen bekannter Referenz- und vorhergesagter Blöcke kann der hierarchische Algorithmus für den Bewegungskompensationsprozess wesentlich optimiert werden. Die Verwendung von maschinellem Lernen zum Trainieren der hierarchischen Algorithmen kann zu effizienteren und schnelleren hierarchischen Algorithmen führen als sonst.
  • Optional umfassen der eine oder die mehreren hierarchischen Algorithmen mindestens einen der folgenden Algorithmen: einen nichtlinearen hierarchischen Algorithmus, ein neuronales Netz, ein neuronales Faltungsnetz, einen geschichteten Algorithmus, ein rekurrentes neuronales Netz, ein Netz mit Langzeitgedächtnis, ein mehrdimensionales Faltungsnetz, ein Speichernetz oder ein rekurrentes Gated-Netzwerk.
  • Die Verwendung eines nichtlinearen hierarchischen Algorithmus, eines neuronalen Netzes, eines neuronalen Faltungsnetzes, eines rekurrenten neuronalen Netzes, eines mehrdimensionalen Faltungsnetzes, eines Speichernetzes oder eines rekurrenten Gated-Netzwerks ermöglicht einen flexiblen Ansatz bei der Erzeugung des vorhergesagten Blocks visueller Daten. Die Verwendung eines Algorithmus mit einer Speichereinheit, wie z. B. eines Netzes mit langem Kurzzeitspeicher (LSTM), eines Speichernetzes oder eines rekurrenten Gated-Netzwerks, kann den Zustand der vorhergesagten Blöcke aus Bewegungskompensationsprozessen beibehalten, die an demselben ursprünglichen Eingangsbild durchgeführt wurden. Die Verwendung dieser Netze kann die Berechnungseffizienz und die zeitliche Konsistenz der Bewegungskompensation über eine Reihe von Frames hinweg verbessern, da der Algorithmus eine Art Zustand oder Speicher der Bewegungsänderungen beibehält. Dies kann zusätzlich zu einer Verringerung der Fehlerquoten führen.
  • Optional wird das Verfahren an einem Knotenpunkt innerhalb eines Netzes durchgeführt.
  • Optional wird das Verfahren als Teil eines Videocodierungs- oder - decodierungsprozesses durchgeführt.
  • Optional ist der eine oder mehrere vorhergesagte Blöcke visueller Daten ein einzelner vorhergesagter Block visueller Daten.
  • Gemäß einem dritten Aspekt der vorliegenden Erfindung wird ein Verfahren zur Verbesserung von Referenzframes von Videodaten zur Verwendung bei der Bewegungskompensation unter Verwendung hierarchischer Algorithmen bereitgestellt, wobei das Verfahren die folgenden Schritte umfasst: Empfangen eines oder mehrerer Referenzframes von Videodaten von einem Referenzpuffer; Transformieren eines oder mehrerer Referenzblöcke von Videodaten in dem einen oder den mehreren Referenzframes von Videodaten unter Verwendung eines oder mehrerer hierarchischer Algorithmen, um einen oder mehrere transformierte Frames von Videodaten zu erzeugen, so dass die transformierten Frames von Videodaten zur Bewegungskompensation verbessert werden; und Ausgeben des einen oder der mehreren transformierten Frames von Videodaten.
  • Die Umwandlung von Referenzframes von Videodaten vor dem Bewegungskompensationsprozess kann es ermöglichen, die Referenzframes für die Erzeugung von vorhergesagten Blöcken visueller Daten oder für einen Bewegungsschätzungsprozess wesentlich zu optimieren oder zu verbessern. Dies kann zu einer engeren Übereinstimmung zwischen dem vorhergesagten Block visueller Daten und dem ursprünglichen Eingangsblock visueller Daten führen, was bedeutet, dass der im Bewegungskompensationsprozess berechnete Restblock visueller Daten kleiner sein wird.
  • Optional wird eine Vielzahl von hierarchischen Algorithmen auf einen oder mehrere Referenzframes von Videodaten angewendet.
  • Optional werden durch die Anwendung mehrerer hierarchischer Algorithmen auf den Referenzframe mehrere verbesserte Referenzframes für die Bewegungskompensation erzeugt.
  • Optional teilen sich zwei oder mehr hierarchische Algorithmen aus der Vielzahl der hierarchischen Algorithmen eine oder mehrere Schichten.
  • Durch die Ausführung gemeinsamer Funktionen zwischen den mehreren hierarchischen Algorithmen in gemeinsam genutzten Schichten kann die Recheneffizienz des Prozesses verbessert werden.
  • Optional werden die transformierten Videodaten in einem Bewegungsschätzungsprozess verwendet.
  • Durch die Verwendung der verbesserten Frames im Bewegungsschätzungsprozess kann die für die Bestimmung eines Bewegungsschätzungsvektors erforderliche Rechenleistung verringert werden.
  • Optional werden die transformierten Videodaten in einem Bewegungskompensationsprozess verwendet.
  • Die Verwendung der verbesserten Frames im Bewegungskompensationsprozess kann die für die Bestimmung eines vorhergesagten Blocks visueller Daten erforderliche Rechenleistung verringern.
  • Optional umfassen der eine oder die mehreren hierarchischen Algorithmen mindestens einen der folgenden Algorithmen: einen nichtlinearen hierarchischen Algorithmus, ein neuronales Netz, ein neuronales Faltungsnetz, einen geschichteten Algorithmus, ein rekurrentes neuronales Netz, ein Netz mit Langzeitgedächtnis, ein mehrdimensionales Faltungsnetz, ein Speichernetz oder ein rekurrentes Gated-Netzwerk.
  • Die Verwendung irgendeines nichtlinearen hierarchischen Algorithmus, eines neuronalen Netzes, eines neuronalen Faltungsnetzes, eines rekurrenten neuronalen Netzes, eines mehrdimensionalen Faltungsnetzes, eines Speichernetzes oder eines rekurrenten Gated-Netzwerks ermöglicht einen flexiblen Ansatz bei der Erzeugung des vorhergesagten Blocks visueller Daten. Die Verwendung eines Algorithmus mit einer Speichereinheit, wie z. B. einem LSTM-Netzwerk (Long Short Memory Network), einem Speichernetzwerk oder einem rekurrenten Gated-Netzwerk, kann den Zustand der zuvor verbesserten Videodaten behalten, um die Verbesserung des aktuellen Referenzframes zu unterstützen. Die Verwendung dieser Netzwerke kann die Recheneffizienz und die zeitliche Konsistenz der Bewegungskompensation über mehrere Frames hinweg verbessern, da der Algorithmus eine Art Zustand oder Gedächtnis der Bewegungsänderungen beibehält. Dies kann zusätzlich zu einer Verringerung der Fehlerquoten führen.
  • Optional wird das Verfahren als Teil eines Videocodierungsprozesses durchgeführt.
  • Optional wird das Verfahren an einem Netzknoten innerhalb eines Netzes durchgeführt.
  • Optional wurden die ein oder mehreren hierarchischen Algorithmen mit Hilfe eines erlernten Ansatzes entwickelt.
  • Optional wird der hierarchische Algorithmus an einem oder mehreren suboptimalen Referenzframes und entsprechenden bekannten Referenzframes trainiert, um ein mathematisch optimiertes Referenzbild zu erzeugen.
  • Durch das Trainieren des hierarchischen Algorithmus anhand von Sätzen bekannter optimaler und suboptimaler Referenzframes kann der hierarchische Algorithmus zur Verbesserung der Referenzframes erheblich optimiert werden. Die Verwendung von maschinellem Lernen zum Trainieren der hierarchischen Algorithmen kann zu effizienteren und schnelleren hierarchischen Algorithmen führen als sonst.
  • Hierin wird das Wort Bild vorzugsweise verwendet, um eine Reihe von Bildelementen (Pixeln) zu bezeichnen, die visuelle Daten darstellen, wie z. B.: ein Bild (z. B. eine Reihe von Luma-Abtastwerten im Monochromformat oder eine Reihe von Luma-Abtastwerten und zwei entsprechende Reihen von Chroma-Abtastwerten, z. B. im 4:2:0-, 4:2:2- und 4:4:4-Farbformat); ein Halbbild oder Halbbilder (z. B. verschachtelte Darstellung eines Halbbildes: oberes Halbbild und/oder unteres Halbbild); oder Frames (z. B. Kombinationen aus zwei oder mehr Halbbildern).
  • Das Wort Block wird hierin vorzugsweise verwendet, um eine Gruppe von Pixeln, einen aus Pixeln bestehenden Bildausschnitt oder ein Segment eines Bildes zu bezeichnen. Dieser Block kann rechteckig sein oder eine beliebige Form haben, zum Beispiel ein unregelmäßiges oder regelmäßiges Merkmal innerhalb des Bildes umfassen. Der Block kann möglicherweise Pixel umfassen, die nicht benachbart sind.
  • Figurenliste
  • Es werden nun Ausführungsformen beschrieben, nur als Beispiel und unter Bezugnahme auf die beigefügten Zeichnungen mit gleichen Bezugsnummern, in denen:
    • 1 zeigt ein Beispiel für einen generischen Encoder;
    • 2 zeigt ein Beispiel für einen generischen Decoder;
    • 3 zeigt ein Beispiel für einen generischen Bewegungskompensationsprozess;
    • 4 zeigt ein Beispiel für einen Bewegungsschätzungsprozess;
    • 5 veranschaulicht eine Ausführungsform eines Bewegungskompensationsprozesses unter Verwendung eines hierarchischen Algorithmus;
    • 6 veranschaulicht eine Ausführungsform eines Bewegungskompensationsprozesses unter Verwendung von zwei hierarchischer Algorithmen
    • 7 veranschaulicht eine Ausführungsform eines Bewegungskompensationsprozesses unter Verwendung von drei hierarchischen Algorithmen;
    • 8 veranschaulicht eine Ausführungsform eines Bewegungskompensationsprozesses, der in einem Decoder verwendet wird, der hierarchische Algorithmen einsetzt;
    • 9 veranschaulicht eine Ausführungsform eines Bewegungskompensationsprozesses, bei dem mehrere hierarchische Algorithmen vor dem Interprädiktionsprozess verwendet werden; und
    • 10 zeigt eine Vorrichtung mit einer Verarbeitungsvorrichtung und einem Speicher gemäß einer beispielhaften Ausführungsform
  • Spezifische Beschreibung
  • Unter Bezugnahme auf die 5 wird nun eine beispielhafte Ausführungsform beschrieben.
  • 5 veranschaulicht eine Ausführungsform eines Bewegungskompensationsprozesses unter Verwendung eines hierarchischen Algorithmus. Ein Eingangsblock 207 von Videodaten aus einem Eingangsframe 209 wird ausgewählt, und ein oder mehrere Referenzblöcke 201 von Videodaten aus einem oder mehreren Referenzframes 203 werden auf der Grundlage ihrer Ähnlichkeit mit dem Eingangsblock 207 ausgewählt. In der gezeigten Ausführungsform werden zwei Referenzframes 203 verwendet, es ist jedoch auch möglich, dass nur ein einziger Referenzframe oder mehr als zwei verwendet werden. Im Falle der Verwendung eines einzigen Referenzframes können mehrere Referenzblöcke aus demselben Frame ausgewählt werden, oder es kann nur ein einziger Referenzblock ausgewählt werden. Der Referenzblock oder die Referenzblöcke 201 werden mit Hilfe eines Bewegungsschätzungsprozesses ausgewählt, der die Referenzblöcke 201 mit dem Eingangsblock 207 durch eine einfache Translation, eine affine Transformation oder eine Verzerrung in Beziehung setzen kann. Der oder die ausgewählten Referenzblöcke 201 werden als Eingaben in einen hierarchischen Algorithmus 501 verwendet, der aus ihnen einen vorhergesagten Block 205 visueller Daten erzeugt. Dieser vorhergesagte Block 205 wird vom Eingangsblock 207 subtrahiert, um einen Restblock visueller Daten 211 zu ermitteln.
  • Der hierarchische Algorithmus 501 wirkt auf die ausgewählten Referenzblöcke 201 ein, um sie in einen vorhergesagten Block 205 visueller Daten umzuwandeln, der im Wesentlichen so optimiert ist, dass die Ähnlichkeit zwischen dem ursprünglichen Eingangsblock 207 und dem vorhergesagten Block 205 im Vergleich zu einem gewichteten Durchschnitt der ausgewählten Referenzblöcke 201 (wenn zwei oder mehr Referenzblöcke verwendet werden) oder einem nicht umgewandelten einzelnen Referenzblock verringert wird.
  • Der hierarchische Algorithmus 501 kann aus einer Bibliothek hierarchischer Algorithmen ausgewählt werden, die auf der Grundlage metrischer Daten oder Metadaten, die sich auf das Eingangsbild oder den Eingangsblock beziehen, für bekannte Referenzblöcke visueller Daten trainiert wurden. Die hierarchischen Algorithmen werden in der Bibliothek gespeichert, nachdem sie zusammen mit metrischen Daten oder Metadaten, die sich auf die Art der Referenzblöcke beziehen, an denen sie trainiert wurden, trainiert wurden. Bei den metrischen Daten kann es sich z. B. um die Auflösung des Bildes oder der Blöcke, den Inhalt der Blöcke oder des Bildes, dem sie entnommen wurden, oder die Position des Blocks innerhalb des Bildes, dem er entnommen wurde, handeln. Darüber hinaus kann die Auswahl des hierarchischen Algorithmus von der zeitlichen Position des Referenzbildes oder der Referenzbilder relativ zum Eingangsbild abhängen.
  • Für den Trainingsprozess werden ein Originalblock von Videodaten und ein oder mehrere Referenzblöcke von Videodaten eingegeben, die als optimal angenommen werden. Für das Training kann der optimalste Block mit Hilfe eines erschöpfenden Blockabgleichsalgorithmus gefunden werden, der alle möglichen Positionen für den aktuellen Block innerhalb des Referenzbildes auswertet. Der Algorithmus wird dann so optimiert, dass die Differenz zwischen seiner Ausgabe und dem ursprünglichen Videodatenblock minimiert wird. Je nach der Leistung des Bewegungsschätzungsprozesses kann ein neues Netzwerk trainiert werden. Da unterschiedliche Bewegungsschätzungsprozesse unterschiedliche Referenzblöcke ergeben können, kann das Netzwerk für jede Implementierung unabhängig optimiert werden.
  • Wenn in der Bibliothek kein geeigneter hierarchischer Algorithmus 501 vorhanden ist, kann stattdessen ein generischer, vortrainierter hierarchischer Algorithmus verwendet werden. Ist kein solcher generischer Algorithmus verfügbar, kann stattdessen die Standardmethode des gewichteten Durchschnitts verwendet werden.
  • Der Vorgang wird für jeden Block im Eingangsbild wiederholt, bis alle Restblöcke 211 für das gesamte Bild ermittelt sind. Es ist nicht erforderlich, dass alle Restblöcke 211 der Videodaten mit Hilfe des Bewegungskompensationsverfahrens als Teil der Interprediction berechnet werden. Einige der Restblöcke 211 können stattdessen mit Hilfe der Intraprädiktion oder anderer Techniken wie dem Palettenmodus berechnet werden.
  • Nach der Bestimmung können die Restblöcke 211 für die Eingabe kodiert und über ein Netzwerk an ein Dekodiergerät mit einem Dekoder übertragen werden, zusammen mit Daten, die die Referenzframes, aus denen die Referenzblöcke 201 ausgewählt wurden, und die Position der Referenzblöcke innerhalb dieser Frames 203 identifizieren. Die Position der Referenzblöcke 201 innerhalb der Referenzframes 203 wird in der Regel als Bewegungsvektor, der während des Bewegungsschätzungsprozesses berechnet wurde, über das Netz signalisiert. Die Referenzframes 203, aus denen die entsprechenden Referenzblöcke 201 entnommen wurden, werden vor der Übertragung des nun kodierten Eingangsframes über das Netzwerk an den Decoder übertragen und in einem Referenzpuffer im Decoder gespeichert.
  • Der Decoder empfängt den kodierten Bitstrom, der die Restblöcke 211 und Metadaten zur Identifizierung der Referenzblöcke 201 enthält, wie z. B. einen Bewegungsvektor und einen Verweis auf die entsprechenden Referenzframes 203. Die Identität der hierarchischen Algorithmen 501, die verwendet werden, um die vorhergesagten Blöcke 205 aus den Referenzblöcken 201 zu erzeugen, werden ebenfalls vom Decoder bestimmt, z. B. aus metrischen Daten, die den Referenzblöcken 201 zugeordnet sind, oder durch den Empfang von Metadaten im kodierten Bitstrom, die die zu verwendenden hierarchischen Algorithmen 501 identifizieren, oder durch den Empfang von Metadaten im kodierten Bitstrom, die die Werte eines neuen hierarchischen Algorithmus definieren.
  • Der ermittelte hierarchische Algorithmus 501 wird dann auf den identifizierten Referenzblock oder die Blöcke visueller Daten angewendet, um einen vorhergesagten Block 205 von Videodaten zu bestimmen. Der empfangene Restblock 211 der Videodaten wird zu diesem vorhergesagten Block 205 der visuellen Daten hinzugefügt, um den ursprünglichen Block der visuellen Daten 207 wiederherzustellen.
  • Eine alternative Ausführungsform des Bewegungskompensationsprozesses ist in 6 dargestellt. In dieser Ausführungsform werden die während des Bewegungsschätzungsprozesses ausgewählten Referenzblöcke 201 jeweils in einen separaten, vorab trainierten hierarchischen Algorithmus 601 eingegeben. Die Ausgänge dieser hierarchischen Algorithmen 601 sind transformierte Blöcke visueller Daten, die dann kombiniert werden, um einen vorhergesagten Block 205 zu erzeugen, indem z. B. ein gewichteter Durchschnitt 603 verwendet wird. Der vorhergesagte Block 205 wird dann vom Eingangsblock 207 subtrahiert, um einen Restblock 211 zu erzeugen. Der Vorgang wird so lange wiederholt, bis alle Eingangsblöcke eines Eingangsbildes 209 verarbeitet worden sind.
  • In einigen Ausführungsformen sind die separaten hierarchischen Algorithmen 601 identisch und können auf der Grundlage von Eigenschaften des Eingangsblocks 207 der visuellen Daten ausgewählt werden, wie z. B. Inhalt, Auflösung und/oder Position im Eingangsframe 209. In alternativen Ausführungsformen können die separaten hierarchischen Algorithmen 601 generische vortrainierte hierarchische Algorithmen sein.
  • Alternativ können sich die einzelnen hierarchischen Algorithmen 601 voneinander unterscheiden und aus einer Bibliothek von hierarchischen Algorithmen auf der Grundlage von Eigenschaften der ausgewählten Referenzblöcke 201 ausgewählt werden. Dies können zum Beispiel der Inhalt des Referenzframes 203, die Auflösung des Referenzframes 203, die Position des Referenzblocks 201 mit dem Referenzframe 203 und/oder der zeitliche Abstand im Videostrom zwischen den Referenzframes 203 und dem Eingangsframe 209 sein.
  • Eine weitere Ausführungsform des Bewegungskompensationsverfahrens ist in 7 dargestellt. In dieser Ausführungsform werden die während des Bewegungsschätzungsprozesses ausgewählten Referenzblöcke 201 jeweils in einen separaten vortrainierten hierarchischen Algorithmus 701 eingegeben, wie in Bezug auf 6 beschrieben. Die Ausgänge dieser hierarchischen Algorithmen 701 sind transformierte Blöcke visueller Daten, die dann kombiniert werden, um einen kombinierten Block zu erzeugen, z. B. mit Hilfe eines gewichteten Durchschnitts 703. Der kombinierte Block wird dann als Eingabe für einen weiteren hierarchischen Algorithmus 705 verwendet, der einen vorhergesagten Block 205 ausgibt. Der vorhergesagte Block 205 wird dann vom Eingangsblock 207 subtrahiert, um einen Restblock 211 zu erzeugen. Der Vorgang wird so lange wiederholt, bis alle Eingangsblöcke eines Eingangsframes 209 verarbeitet worden sind.
  • Die in den 5 bis 7 beschriebenen Ausführungsformen können auch für die Dekodierbewegungskompensation angewandt werden, allerdings mit umgekehrten Schritten. 8 zeigt ein Beispiel für eine Dekodierbewegungskompensation, die der in 5 beschriebenen Kodierbewegungskompensation entspricht. Bei der Dekodierung des Bewegungskompensationsverfahrens bleiben die Schritte zur Erzeugung des vorhergesagten Datenblocks dieselben wie in den Ausführungen zu den 5 bis 7. Der Dekodierer erhält jedoch einen kodierten Restblock 801 visueller Daten, den er zu dem vorhergesagten Block 205 visueller Daten hinzufügt, um den ursprünglichen Block 803 visueller Daten zu rekonstruieren, der im Kodierungsverfahren verwendet wurde. Dieser Vorgang wird für alle interprädizierten Blöcke wiederholt, die für diesen Prozess im kodierten Bitstrom zu einem bestimmten Bild 805 identifiziert wurden, bis die interprädizierten Teile dieses Bildes rekonstruiert sind. Dieses Diagramm zeigt die Erzeugung eines vorhergesagten Blocks 205 unter Verwendung des in Bezug auf 5 beschriebenen Verfahrens, doch kann jedes der in Bezug auf die 5 bis 7 beschriebenen Verfahren zur Erzeugung des vorhergesagten Blocks verwendet werden.
  • Die hierarchischen Algorithmen 807, die bei der Erzeugung des vorhergesagten Blocks visueller Daten im Decoder verwendet werden, werden im Decoder in einer Bibliothek zusammen mit entsprechenden Daten, wie einer Referenznummer oder Metadaten, die sich auf die hierarchischen Algorithmen beziehen, gespeichert. Der kodierte Bitstrom kann Daten enthalten, die angeben, welche der hierarchischen Algorithmen 807 erforderlich sind, um den vorhergesagten Block 205 zu erzeugen, beispielsweise die Referenznummer des hierarchischen Algorithmus in der Bibliothek. Alternativ kann dies in einem Seitenband signalisiert werden, z. B. als Metadaten in einer App.
  • 9 veranschaulicht einen Kodierungsprozess, bei dem hierarchische Algorithmen zur Vorverarbeitung von Bildern aus einem Referenzpuffer vor der Interprädiktion verwendet werden. Bei diesem Verfahren werden in einem Referenzbildpuffer 115 gespeicherte Referenzbilder in einen oder mehrere vortrainierte hierarchische Algorithmen 901 eingegeben, von denen jeder das Referenzbild oder einen Teil des Referenzbildes in ein transformiertes Referenzbild umwandelt, das für die Verwendung in den Verfahren zur Bewegungskompensation 119 und/oder zur Bewegungsschätzung 117 verbessert wird. Das nicht transformierte Bild kann auch in den Verfahren zur Bewegungsschätzung 117 und zur Bewegungskompensation 119 verwendet werden. Die transformierten Bilder werden in die Prozesse der Bewegungsabschätzung 117 und der Bewegungskompensation 119 eingegeben, was diese rechnerisch effizienter machen kann. Der Encoder kann signalisieren, ob und welcher hierarchische Algorithmus 901 zur Transformation des Referenzbildes verwendet wurde.
  • Die in diesem Prozess verwendeten hierarchischen Algorithmen 901 können aus einer Bibliothek von vortrainierten hierarchischen Algorithmen ausgewählt werden, die in einer Bibliothek gespeichert sind. Die hierarchischen Algorithmen werden an Paaren von bekannten Eingangsbildern und Referenzbildern trainiert, um ein mathematisch optimiertes Referenzbild zu erzeugen, das sich im Allgemeinen von dem visuell optimierten Bild unterscheidet. Die hierarchischen Algorithmen können aus der Bibliothek ausgewählt werden, indem metrische Daten, die sich auf das aktuell kodierte Eingangsbild 101 beziehen, mit metrischen Daten verglichen werden, die sich auf die Bilder beziehen, für die die hierarchischen Algorithmen trainiert wurden.
  • In jeder der oben beschriebenen Ausführungsformen ist es möglich, einen vorhergesagten Block oder einen transformierten Referenzbildblock auszugeben, der in einem anderen Raum, z. B. einem anderen Merkmalsraum, als die visuellen Daten liegt. Der Block kann dann mit Hilfe eines weiteren hierarchischen Algorithmus in einen Block visueller Daten umgewandelt werden. Alternativ dazu können die Referenzbilder und die visuellen Eingangsdaten in diesen anderen Merkmalsraum transformiert werden, um die Bewegungskompensation durchzuführen.
  • Jedes hier beschriebene Systemmerkmal kann auch als Verfahrensmerkmal bereitgestellt werden und umgekehrt. Wie hierin verwendet, können Mittel- und Funktionsmerkmale alternativ in Form ihrer entsprechenden Struktur ausgedrückt werden.
  • Jedes Merkmal eines Aspekts der Erfindung kann auf andere Aspekte der Erfindung angewendet werden, und zwar in jeder geeigneten Kombination. Insbesondere können Verfahrensaspekte auf Systemaspekte angewandt werden, und umgekehrt. Darüber hinaus können beliebige, einige und/oder alle Merkmale eines Aspekts auf beliebige, einige und/oder alle Merkmale eines anderen Aspekts in jeder geeigneten Kombination angewandt werden.
  • Es sollte auch gewürdigt werden, dass bestimmte Kombinationen der verschiedenen Merkmale, die in jedem Aspekt der Erfindung beschrieben und definiert sind, unabhängig voneinander implementiert und/oder bereitgestellt und/oder verwendet werden können.
  • Einige der Ausführungsbeispiele werden als Prozesse oder Methoden beschrieben, die als Diagramme dargestellt sind. Obwohl die Diagramme die Vorgänge als sequenzielle Prozesse beschreiben, können die Vorgänge parallel, gleichzeitig oder simultan durchgeführt werden. Darüber hinaus kann die Reihenfolge der Vorgänge geändert werden. Die Prozesse können beendet werden, wenn ihre Operationen abgeschlossen sind, sie können aber auch zusätzliche Schritte enthalten, die in den Figuren nicht dargestellt sind. Die Prozesse können Methoden, Funktionen, Prozeduren, Unterprogrammen, Unterprogrammen usw. entsprechen.
  • Die oben beschriebenen Methoden, von denen einige in den Diagrammen dargestellt sind, können durch Hardware, Software, Firmware, Middleware, Mikrocode, Hardwarebeschreibungssprachen oder eine beliebige Kombination davon implementiert werden. Bei der Implementierung in Software, Firmware, Middleware oder Mikrocode kann der Programmcode oder können die Codesegmente zur Durchführung der betreffenden Aufgaben in einem maschinen- oder computerlesbaren Medium wie einem Speichermedium gespeichert werden. Ein Verarbeitungsgerät kann die entsprechenden Aufgaben ausführen.
  • 10 zeigt eine Vorrichtung 1000 mit einer Verarbeitungsvorrichtung 1002 und einem Speicher 1004 gemäß einer beispielhaften Ausführungsform. Der computerlesbare Code 1006 kann im Speicher 1004 gespeichert werden und kann, wenn er von der Verarbeitungsvorrichtung 1002 ausgeführt wird, bewirken, dass die Vorrichtung 1000 die hier beschriebenen Verfahren durchführt, beispielsweise ein Verfahren mit Bezug auf die 5 bis 9.
  • Die Verarbeitungsvorrichtung 1002 kann beliebig zusammengesetzt sein und einen oder mehrere Prozessoren eines geeigneten Typs oder einer geeigneten Kombination von Typen enthalten. Der Begriff „ Verarbeitungsvorrichtung“ sollte so verstanden werden, dass er Computer mit unterschiedlichen Architekturen wie Einzel-/Multiprozessorarchitekturen und Sequenzer/Parallelarchitekturen einschließt. So kann die Verarbeitungsvorrichtung beispielsweise ein programmierbarer Prozessor sein, der Computerprogrammanweisungen interpretiert und Daten verarbeitet. Die Verarbeitungsvorrichtung kann mehrere programmierbare Prozessoren umfassen. Alternativ kann es sich bei der Verarbeitungsvorrichtung z. B. um programmierbare Hardware mit eingebetteter Firmware handeln. Die Verarbeitungsvorrichtung kann alternativ oder zusätzlich Grafikverarbeitungseinheiten (GPUs) oder eine oder mehrere spezialisierte Schaltungen wie feldprogrammierbare Gate-Arrays (FPGA), anwendungsspezifische integrierte Schaltungen (ASICs), Signalverarbeitungsgeräte usw. umfassen. In einigen Fällen kann die Verarbeitungsvorrichtung auch als Computervorrichtung oder Verarbeitungsmittel bezeichnet werden.
  • Die Verarbeitungsvorrichtung 1002 ist mit dem Speicher 1004 gekoppelt und kann Daten in den/aus dem Speicher 1004 lesen/schreiben. Der Speicher 1004 kann eine einzelne Speichereinheit oder eine Vielzahl von Speichereinheiten umfassen, in denen die computerlesbaren Anweisungen (oder der Code) gespeichert sind. Der Speicher kann beispielsweise sowohl einen flüchtigen als auch einen nichtflüchtigen Speicher umfassen. In solchen Beispielen können die computerlesbaren Anweisungen/Programmcode im nichtflüchtigen Speicher gespeichert werden und können von der Verarbeitungsvorrichtung unter Verwendung des flüchtigen Speichers zur vorübergehenden Speicherung von Daten oder Daten und Anweisungen ausgeführt werden. Beispiele für flüchtige Speicher sind RAM, DRAM, SDRAM usw. Beispiele für nichtflüchtige Speicher sind ROM, PROM, EEPROM, Flash-Speicher, optische Speicher, magnetische Speicher usw.
  • Ein Algorithmus, wie er hier und allgemein verwendet wird, ist eine in sich konsistente Folge von Schritten, die zu einem gewünschten Ergebnis führen. Die Schritte sind solche, die physikalische Manipulationen von physikalischen Größen erfordern. Normalerweise, wenn auch nicht notwendigerweise, haben diese Größen die Form von optischen, elektrischen oder magnetischen Signalen, die gespeichert, übertragen, kombiniert, verglichen und anderweitig manipuliert werden können. Zuweilen hat es sich als zweckmäßig erwiesen, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Begriffe, Zahlen oder Ähnliches zu bezeichnen, hauptsächlich aus Gründen des allgemeinen Sprachgebrauchs.
  • Die in den dargestellten Ausführungsformen beschriebenen Methoden können als Programmmodule oder funktionale Prozesse einschließlich Routinen, Programmen, Objekten, Komponenten, Datenstrukturen usw. implementiert werden, die bestimmte Aufgaben ausführen oder bestimmte Funktionen implementieren, und können mit vorhandener Hardware implementiert werden. Solche vorhandene Hardware kann einen oder mehrere Prozessoren (z. B. eine oder mehrere Zentraleinheiten), digitale Signalprozessoren (DSPs), anwendungsspezifische integrierte Schaltungen, feldprogrammierbare Gate-Arrays (FPGAs), Computer oder Ähnliches umfassen.
  • Sofern nicht ausdrücklich anders angegeben oder aus der Diskussion ersichtlich, beziehen sich Begriffe wie Verarbeiten oder Computing oder Berechnen oder Bestimmen oder ähnliches auf die Aktionen und Prozesse eines Computersystems oder einer ähnlichen elektronischen Computervorrichtung. Es ist auch zu beachten, dass softwareimplementierte Aspekte der Ausführungsbeispiele auf einer Art nichttransitorischem Programmspeichermedium kodiert oder über eine Art von Übertragungsmedium implementiert sein können. Das Programmspeichermedium kann magnetisch (z. B. eine Diskette oder ein Festplattenlaufwerk) oder optisch (z. B. ein Nur-Lese-Speicher auf einer Compact Disk oder eine CD-ROM) sein und kann einen Nur-Lese- oder Direktzugriff haben. Ebenso kann das Übertragungsmedium eine verdrillte Zweidrahtleitung, ein Koaxialkabel, eine optische Faser oder ein anderes geeignetes, in der Technik bekanntes Übertragungsmedium sein. Die Ausführungsbeispiele sind durch diese Aspekte in keiner Weise eingeschränkt.

Claims (48)

  1. Vorrichtung, die einen oder mehrere Computer aufweist, wobei der eine oder die mehreren Computer ein oder mehrere neuronale Netzwerke speichern und so konfiguriert sind, dass sie Operationen durchführen, die Folgendes aufweisen: Empfangen eines oder mehrerer Eingangsblöcke (207) von Videodaten aus einem Eingangsbild (209) von Videodaten und einer Vielzahl von Referenzblöcken (201) von Videodaten, die aus einem oder mehreren Referenzbildern (203) von Videodaten ausgewählt sind; Transformieren der Vielzahl von Referenzblöcken (207) in einen vorhergesagten Block (205) visueller Daten durch das eine oder die mehreren neuronalen Netzwerke (501); und Berechnen eines oder mehrerer Restblöcke (211) von Videodaten aus dem vorhergesagten Block (205) von visuellen Daten und dem einen oder den mehreren Eingangsblöcken (207) von Videodaten.
  2. Vorrichtung nach Anspruch 1, wobei die Operationen ferner das Auswählen des einen oder der mehreren neuronalen Netze (501, 807) aus einer Bibliothek von vortrainierten neuronalen Netzen, auf die der eine oder die mehreren Computer zugreifen können, auf der Grundlage von Eigenschaften der Vielzahl von Referenzblöcken von Videodaten aufweisen.
  3. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei die Vielzahl von Referenzblöcken (201) von Videodaten auf der Grundlage ihrer Ähnlichkeit mit dem einen oder den mehreren Eingangsblöcken (207) von Videodaten ausgewählt wird.
  4. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei die Operationen ferner das Auswählen der Vielzahl von Referenzblöcken (201) von Videodaten unter Verwendung eines Bewegungsvektors aufweisen, der aus einem Bewegungsschätzungsprozess abgeleitet wird.
  5. Vorrichtung nach Anspruch 4, wobei der Bewegungsschätzungsprozess mindestens eines der folgenden aufweist: Translationsbewegungsschätzung; affine Bewegungsschätzung; Stiltransformation; oder Verzerrung.
  6. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei mindestens zwei der Vielzahl von Referenzblöcken (201) von Videodaten jeweils aus einem anderen Referenzbild (203) von Videodaten ausgewählt werden als die anderen.
  7. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei das Transformieren der Vielzahl von Referenzblöcken (207) in den vorhergesagten Block (205) visueller Daten durch das eine oder die mehreren neuronalen Netze (501) aufweist: Eingeben jedes Referenzblocks von Videodaten in ein jeweiliges separates neuronales Netzwerk (601), das konfiguriert ist, um diesen Referenzblock von Videodaten in einen jeweiligen transformierten Block von Videodaten zu transformieren; Erhalten des jeweiligen transformierten Blocks von visuellen Daten von jedem der neuronalen Netzwerke; und Kombinieren der Vielzahl von transformierten Blöcken von visuellen Daten, um den vorhergesagten Block von visuellen Daten zu erzeugen.
  8. Vorrichtung nach Anspruch 7, wobei die Operationen ferner das Auswählen der separaten neuronalen Netze aus einer Bibliothek neuronaler Netze, auf die der eine oder die mehreren Computer zugreifen können, auf der Grundlage von Eigenschaften der Vielzahl von Referenzblöcken (201) von Videodaten aufweisen.
  9. Vorrichtung nach einem der Ansprüche 7 oder 8, wobei das Kombinieren der mehreren transformierten Blöcke von visuellen Daten zum Erzeugen des vorhergesagten Blocks von visuellen Daten folgendes aufweist: Eingeben der Vielzahl von transformierten Blöcken visueller Daten in ein weiteres neuronales Netzwerk, das so konfiguriert ist, dass es die transformierten Blöcke visueller Daten kombiniert, um den vorhergesagten Block visueller Daten zu erzeugen; und Erhalten des vorhergesagten Blocks von visuellen Daten von dem weiteren neuronalen Netzwerk.
  10. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei das eine oder die mehreren neuronalen Netze unter Verwendung eines gelernten Ansatzes entwickelt wurden und wobei der gelernte Ansatz das Trainieren der neuronalen Netze auf einem oder mehreren bekannten vorhergesagten Blöcken von Videodaten und einem oder mehreren bekannten Referenzblöcken von Videodaten aufweist, um eine Differenz zwischen den Ausgaben der Netze und den bekannten ursprünglichen Blöcken von Videodaten zu minimieren.
  11. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei das eine oder die mehreren neuronalen Netze mindestens eines der folgenden aufweisen: ein neuronales Faltungsnetz, ein rekurrentes neuronales Netz, ein Netz mit Langzeit-Kurzzeitgedächtnis, ein mehrdimensionales Faltungsnetz, ein Speichernetz oder ein rekurrentes Gated-Netzwerk.
  12. Vorrichtung nach einem der Ansprüche 2 oder 8, wobei die Eigenschaften der Vielzahl von Referenzblöcken (201) von Videodaten eines oder mehrere der folgenden Merkmale aufweisen: Inhalt des einen oder der mehreren Referenzbilder (203); eine Auflösung des einen oder der mehreren Referenzbilder (203); Positionen des einen oder der mehreren Referenzblöcke (201) innerhalb des einen oder der mehreren Referenzbilder (203); zeitliche Abstände in einem Videostrom zwischen dem einen oder den mehreren Referenzbildern (203) und dem Eingangsbild (209).
  13. Vorrichtung, die einen oder mehrere Computer aufweist, wobei der eine oder die mehreren Computer ein oder mehrere neuronale Netzwerke speichern und so konfiguriert sind, dass sie Operationen durchführen, die Folgendes aufweisen: Empfangen eines oder mehrerer Restblöcke (801) von Videodaten und einer Vielzahl von Referenzblöcken (201) von Videodaten, wobei die Referenzblöcke (207) von Videodaten aus einem oder mehreren Referenzbild (203) von Videodaten ausgewählt werden; Transformieren der Vielzahl von Referenzblöcken (207) in einen vorhergesagten Block (205) visueller Daten durch das eine oder die mehreren neuronalen Netzwerke (501); und Berechnen eines oder mehrerer rekonstruierter Blöcke (805) von Videodaten aus dem einen oder mehreren vorhergesagten Blöcken (205) von Videodaten und dem einen oder mehreren Restblöcken (801) von Videodaten.
  14. Vorrichtung nach Anspruch 13, wobei die Operationen ferner das Empfangen von Metadaten aufweisen, die das eine oder die mehreren neuronalen Netze (807) identifizieren, die für die Umwandlung der Vielzahl von Referenzblöcken (207) in einen vorhergesagten Block (205) visueller Daten zu verwenden sind.
  15. Vorrichtung nach einem der Ansprüche 13 oder 14, wobei die Operationen ferner das Auswählen des einen oder der mehreren neuronalen Netze (501, 807) aus einer Bibliothek von vortrainierten neuronalen Netzen auf der Grundlage von Eigenschaften der mehreren Referenzblöcke von Videodaten aufweisen.
  16. Vorrichtung nach einem der Ansprüche 13 bis 15, wobei die Operationen ferner das Auswählen der Vielzahl von Referenzblöcken (201) von Videodaten aus dem einen oder den mehreren Referenzbildern (203) von Videodaten unter Verwendung eines Bewegungsvektors aufweisen, der aus einem Bewegungsschätzungsprozess abgeleitet wird.
  17. Vorrichtung nach einem der Ansprüche 13 bis 16, wobei die mehreren Referenzblöcke (201) von Videodaten unter Verwendung von mindestens einem der folgenden bestimmt werden: Translationsbewegungsschätzung; affine Bewegungsschätzung; Stiltransformation; oder Verzerrung.
  18. Vorrichtung nach einem der Ansprüche 13 bis 17, wobei mindestens zwei der Vielzahl von Referenzblöcken (201) von Videodaten jeweils aus einem anderen Referenzbild (203) von Videodaten ausgewählt werden.
  19. Vorrichtung nach einem der Ansprüche 13 bis 18, wobei das Transformieren der Vielzahl von Referenzblöcken (207) in den vorhergesagten Block (205) visueller Daten durch das eine oder die mehreren neuronalen Netze (501) aufweist: Eingeben jedes Referenzblocks von Videodaten in ein separates neuronales Netzwerk (601), das so konfiguriert ist, dass es diesen Referenzblock von Videodaten in einen entsprechenden transformierten Block von Videodaten transformiert; Erhalten des jeweiligen transformierten Blocks von visuellen Daten von jedem der neuronalen Netzwerke; und Kombinieren der Vielzahl von transformierten Blöcken von visuellen Daten, um den vorhergesagten Block von visuellen Daten zu erzeugen.
  20. Vorrichtung nach Anspruch 19, wobei die Operationen ferner das Auswählen der separaten neuronalen Netze aus einer Bibliothek neuronaler Netze, auf die der eine oder die mehreren Computer zugreifen können, auf der Grundlage von Eigenschaften der Vielzahl von Referenzblöcken (201) von Videodaten aufweisen.
  21. Vorrichtung nach einem der Ansprüche 19 oder 20, wobei das Kombinieren der mehreren transformierten Blöcke von visuellen Daten zum Erzeugen des vorhergesagten Blocks von visuellen Daten aufweist: Eingeben der Vielzahl von transformierten Blöcken visueller Daten in ein weiteres neuronales Netzwerk, das so konfiguriert ist, dass es die transformierten Blöcke visueller Daten kombiniert, um den vorhergesagten Block visueller Daten zu erzeugen; und Erhalten des vorhergesagten Blocks von visuellen Daten von dem weiteren neuronalen Netzwerk.
  22. Vorrichtung nach einem der Ansprüche 13 bis 21, wobei das eine oder die mehreren neuronalen Netze unter Verwendung eines gelernten Ansatzes entwickelt wurden und wobei der gelernte Ansatz das Trainieren der neuronalen Netze auf einem oder mehreren bekannten vorhergesagten Blöcken von Videodaten und einem oder mehreren bekannten Referenzblöcken von Videodaten aufweist, um eine Differenz zwischen den Ausgaben der Netze und den bekannten ursprünglichen Blöcken von Videodaten zu minimieren.
  23. Vorrichtung nach einem der Ansprüche 13 bis 22, wobei das eine oder die mehreren neuronalen Netze mindestens eines der folgenden aufweisen: ein neuronales Faltungsnetz, ein rekurrentes neuronales Netz, ein Netz mit Langzeit-Kurzzeitgedächtnis, ein mehrdimensionales Faltungsnetz, ein Speichernetz oder ein rekurrentes Gated-Netzwerk.
  24. Vorrichtung nach einem der Ansprüche 14 oder 20, wobei die Eigenschaften der Vielzahl von Referenzblöcken (201) von Videodaten eines oder mehrere der folgenden Merkmale aufweisen: Inhalt des einen oder der mehreren Referenzbilder (203); eine Auflösung des einen oder der mehreren Referenzbilder (203); Positionen des einen oder der mehreren Referenzblöcke (201) innerhalb des einen oder der mehreren Referenzbilder (203); zeitliche Abstände in einem Videostrom zwischen dem einen oder den mehreren Referenzbildern (203) und dem Eingangsbild (209).
  25. Nicht-transitorisches computerlesbares Medium, das computerlesbare Anweisungen speichert, die, wenn sie von einem System mit einem oder mehreren Computern ausgeführt werden, das System veranlassen, Operationen durchzuführen, die Folgendes aufweisen: Empfangen eines oder mehrerer Eingangsblöcke (207) von Videodaten aus einem Eingangsbild (209) von Videodaten und einer Vielzahl von Referenzblöcken (201) von Videodaten, die aus einem oder mehreren Referenzbildern (203) von Videodaten ausgewählt sind; Transformieren der Vielzahl von Referenzblöcken (207) in einen vorhergesagten Block (205) visueller Daten durch das eine oder die mehreren neuronalen Netzwerke (501); und Berechnen eines oder mehrerer Restblöcke (211) von Videodaten aus dem vorhergesagten Block (205) von visuellen Daten und dem einen oder den mehreren Eingangsblöcken (207) von Videodaten.
  26. Das computerlesbare Medium nach Anspruch 25, wobei die Operationen ferner das Auswählen des einen oder der mehreren neuronalen Netze (501, 807) aus einer Bibliothek von vortrainierten neuronalen Netzen, auf die der eine oder die mehreren Computer zugreifen können, auf der Grundlage von Eigenschaften der Vielzahl von Referenzblöcken von Videodaten aufweisen.
  27. Das computerlesbare Medium nach einem der Ansprüche 25 oder 26, wobei die Vielzahl von Referenzblöcken (201) von Videodaten auf der Grundlage ihrer Ähnlichkeit mit dem einen oder den mehreren Eingangsblöcken (207) von Videodaten ausgewählt wird.
  28. Das computerlesbare Medium nach einem der Ansprüche 25 bis 27, wobei die Operationen ferner das Auswählen der Vielzahl von Referenzblöcken (201) von Videodaten unter Verwendung eines Bewegungsvektors aufweisen, der aus einem Bewegungsschätzungsprozess abgeleitet wird.
  29. Das computerlesbare Medium nach Anspruch 28, wobei der Bewegungsschätzungsprozess mindestens eines der folgenden aufweist: Translationsbewegungsschätzung; affine Bewegungsschätzung; Stiltransformation; oder Verzerrung.
  30. Das computerlesbare Medium nach einem der Ansprüche 25 bis 29, wobei mindestens zwei der Vielzahl von Referenzblöcken (201) von Videodaten jeweils aus einem voneinander verschiedenen Referenzbild (203) von Videodaten ausgewählt werden.
  31. Das computerlesbare Medium nach einem der Ansprüche 25 bis 30, wobei das Transformieren der Vielzahl von Referenzblöcken (207) in den vorhergesagten Block (205) visueller Daten durch das eine oder die mehreren neuronalen Netze (501) aufweist: Eingeben jedes Referenzblocks von Videodaten in ein separates neuronales Netzwerk (601), das so konfiguriert ist, dass es diesen Referenzblock von Videodaten in einen entsprechenden transformierten Block von Videodaten transformiert; Erhalten des jeweiligen transformierten Blocks von visuellen Daten von jedem der neuronalen Netzwerke; und Kombinieren der Vielzahl von transformierten Blöcken von visuellen Daten, um den vorhergesagten Block von visuellen Daten zu erzeugen.
  32. Das computerlesbare Medium nach Anspruch 31, wobei die Operationen ferner das Auswählen der separaten neuronalen Netze aus einer Bibliothek neuronaler Netze, auf die der eine oder die mehreren Computer zugreifen können, auf der Grundlage von Eigenschaften der Vielzahl von Referenzblöcken (201) von Videodaten aufweisen.
  33. Das computerlesbare Medium nach einem der Ansprüche 31 oder 32, wobei das Kombinieren der mehreren transformierten Blöcke von visuellen Daten zum Erzeugen des vorhergesagten Blocks von visuellen Daten aufweist: Eingeben der mehreren transformierten Blöcke visueller Daten in ein weiteres neuronales Netzwerk, das dafür konfiguriert ist, die transformierten Blöcke visueller Daten zu kombinieren, um den vorhergesagten Block visueller Daten zu erzeugen; und Erhalten des vorhergesagten Blocks von visuellen Daten von dem weiteren neuronalen Netzwerk.
  34. Das computerlesbare Medium nach einem der Ansprüche 25 bis 33, wobei das eine oder die mehreren neuronalen Netzwerke unter Verwendung eines gelernten Ansatzes entwickelt wurden und wobei der gelernte Ansatz das Trainieren der neuronalen Netzwerke auf einem oder mehreren bekannten vorhergesagten Blöcken von Videodaten und einem oder mehreren bekannten Referenzblöcken von Videodaten aufweist, um eine Differenz zwischen den Ausgaben der Netzwerke und den bekannten ursprünglichen Blöcken von Videodaten zu minimieren.
  35. Das computerlesbare Medium nach einem der Ansprüche 25 bis 34, wobei das eine oder die mehreren neuronalen Netzwerke mindestens eines der folgenden aufweisen: ein neuronales Faltungsnetzwerk; ein rekurrentes neuronales Netzwerk; ein Netzwerk mit Langzeit-Kurzzeitgedächtnis; ein mehrdimensionales Faltungsnetzwerk; ein Speichernetzwerk; oder ein rekurrentes Gated-Netzwerk.
  36. Das computerlesbare Medium nach einem der Ansprüche 27 oder 32, wobei die Eigenschaften der Vielzahl von Referenzblöcken (201) von Videodaten eines oder mehrere des folgenden aufweisen: Inhalt des einen oder der mehreren Referenzbilder (203); eine Auflösung des einen oder der mehreren Referenzbilder (203); Positionen des einen oder der mehreren Referenzblöcke (201) innerhalb des einen oder der mehreren Referenzbilder (203); zeitliche Abstände in einem Videostrom zwischen dem einen oder den mehreren Referenzbildern (203) und dem Eingangsbild (209).
  37. Nicht-transitorisches computerlesbares Medium, das computerlesbare Anweisungen speichert, die, wenn sie von einem System mit einem oder mehreren Computern ausgeführt werden, das System veranlassen, Operationen durchzuführen, die Folgendes aufweisen: Empfangen eines oder mehrerer Restblöcke (801) von Videodaten und einer Vielzahl von Referenzblöcken (201) von Videodaten, wobei die Referenzblöcke (207) von Videodaten aus einem oder mehreren Referenzbild (203) von Videodaten ausgewählt sind; Transformieren der Vielzahl von Referenzblöcken (207) in einen vorhergesagten Block (205) visueller Daten durch das eine oder die mehreren neuronalen Netzwerke (501); und Berechnen eines oder mehrerer rekonstruierter Blöcke (805) von Videodaten aus dem einen oder mehreren vorhergesagten Blöcken (205) von Videodaten und dem einen oder mehreren Restblöcken (801) von Videodaten.
  38. Das computerlesbare Medium nach Anspruch 37, wobei die Operationen ferner das Empfangen von Metadaten aufweisen, die das eine oder die mehreren neuronalen Netze (807) identifizieren, die für die Umwandlung der Vielzahl von Referenzblöcken (207) in einen vorhergesagten Block (205) visueller Daten zu verwenden sind.
  39. Das computerlesbare Medium nach einem der Ansprüche 37 oder 38, wobei die Operationen ferner das Auswählen des einen oder der mehreren neuronalen Netze (501, 807) aus einer Bibliothek von vortrainierten neuronalen Netzen aufweisen, auf die auf der Grundlage von Eigenschaften der mehreren Referenzblöcke von Videodaten zugegriffen werden kann.
  40. Das computerlesbare Medium nach einem der Ansprüche 37 bis 39, wobei die Operationen ferner das Auswählen der mehreren Referenzblöcke (201) von Videodaten aus dem einen oder den mehreren Referenzbildern (203) von Videodaten unter Verwendung eines Bewegungsvektors aufweisen, der aus einem Bewegungsschätzungsprozess abgeleitet wird.
  41. Das computerlesbare Medium nach einem der Ansprüche 37 bis 40, wobei die mehreren Referenzblöcke (201) von Videodaten unter Verwendung von mindestens einem der folgenden bestimmt werden: Translationsbewegungsschätzung; affine Bewegungsschätzung; Stiltransformation; oder Verzerrung.
  42. Das computerlesbare Medium nach einem der Ansprüche 37 bis 41, wobei mindestens zwei der Vielzahl von Referenzblöcken (201) von Videodaten jeweils aus einem voneinander verschiedenen Referenzbild (203) von Videodaten ausgewählt werden.
  43. Das computerlesbare Medium nach einem der Ansprüche 37 bis 42, wobei das Transformieren der Vielzahl von Referenzblöcken (207) in den vorhergesagten Block (205) visueller Daten durch das eine oder die mehreren neuronalen Netze (501) aufweist: Eingeben jedes Referenzblocks von Videodaten in ein separates neuronales Netzwerk (601), das so konfiguriert ist, dass es diesen Referenzblock von Videodaten in einen entsprechenden transformierten Block von Videodaten transformiert; Erhalten des jeweiligen transformierten Blocks von visuellen Daten von jedem der neuronalen Netzwerke; und Kombinieren der mehreren transformierten Blöcke von visuellen Daten, um den vorhergesagten Block von visuellen Daten zu erzeugen.
  44. Das computerlesbare Medium nach Anspruch 43, wobei die Operationen ferner das Auswählen der separaten neuronalen Netze aus einer Bibliothek neuronaler Netze, auf die der eine oder die mehreren Computer zugreifen können, auf der Grundlage von Eigenschaften der Vielzahl von Referenzblöcken (201) von Videodaten aufweisen.
  45. Das computerlesbare Medium nach einem der Ansprüche 43 oder 44, wobei das Kombinieren der mehreren transformierten Blöcke von visuellen Daten zum Erzeugen des vorhergesagten Blocks von visuellen Daten aufweist: Eingeben der mehreren transformierten Blöcke visueller Daten in ein weiteres neuronales Netzwerk, das konfiguriert ist, um die transformierten Blöcke visueller Daten zu kombinieren, um den vorhergesagten Block visueller Daten zu erzeugen; und Erhalten des vorhergesagten Blocks von visuellen Daten von dem weiteren neuronalen Netzwerk.
  46. Das computerlesbare Medium nach einem der Ansprüche 37 bis 45, wobei das eine oder die mehreren neuronalen Netzwerke unter Verwendung eines gelernten Ansatzes entwickelt wurden und wobei der gelernte Ansatz das Trainieren der neuronalen Netzwerke auf einem oder mehreren bekannten vorhergesagten Blöcken von Videodaten und einem oder mehreren bekannten Referenzblöcken von Videodaten aufweist, um eine Differenz zwischen den Ausgaben der Netzwerke und den bekannten ursprünglichen Blöcken von Videodaten zu minimieren.
  47. Das computerlesbare Medium nach einem der Ansprüche 37 bis 46, wobei das eine oder die mehreren neuronalen Netzwerke mindestens eines der folgenden aufweisen: ein neuronales Faltungsnetzwerk; ein rekurrentes neuronales Netzwerk; ein Netzwerk mit Langzeit-Kurzzeitgedächtnis; ein mehrdimensionales Faltungsnetzwerk; ein Speichernetzwerk; oder ein rekurrentes Gated-Netzwerk.
  48. Das computerlesbare Medium nach einem der Ansprüche 37 oder 44, wobei die Eigenschaften der Vielzahl von Referenzblöcken (201) von Videodaten eines oder mehrere der folgenden Merkmale aufweisen: Inhalt des einen oder der mehreren Referenzbilder (203); eine Auflösung des einen oder der mehreren Referenzbilder (203); Positionen des einen oder der mehreren Referenzblöcke (201) innerhalb des einen oder der mehreren Referenzbilder (203); zeitliche Abstände in einem Videostrom zwischen dem einen oder den mehreren Referenzbildern (203) und dem Eingangsbild (209).
DE202017007520.2U 2016-04-15 2017-04-13 Bewegungskompensation durch maschinelles Lernen Active DE202017007520U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB201606681 2016-04-15
GB201606681 2016-04-15

Publications (1)

Publication Number Publication Date
DE202017007520U1 true DE202017007520U1 (de) 2022-05-12

Family

ID=58709487

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202017007520.2U Active DE202017007520U1 (de) 2016-04-15 2017-04-13 Bewegungskompensation durch maschinelles Lernen

Country Status (4)

Country Link
US (1) US20180124418A1 (de)
EP (1) EP3298782B1 (de)
DE (1) DE202017007520U1 (de)
WO (1) WO2017178783A1 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11252464B2 (en) 2017-06-14 2022-02-15 Mellanox Technologies, Ltd. Regrouping of video data in host memory
US20200014945A1 (en) * 2018-07-08 2020-01-09 Mellanox Technologies, Ltd. Application acceleration
US20200014918A1 (en) * 2018-07-08 2020-01-09 Mellanox Technologies, Ltd. Application accelerator
WO2019093268A1 (ja) * 2017-11-08 2019-05-16 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 画像処理装置及び画像処理方法
CN108289224B (zh) * 2017-12-12 2019-10-29 北京大学 一种视频帧预测方法、装置及自动补偿神经网络
US11019355B2 (en) * 2018-04-03 2021-05-25 Electronics And Telecommunications Research Institute Inter-prediction method and apparatus using reference frame generated based on deep learning
US11240492B2 (en) * 2019-01-22 2022-02-01 Apple Inc. Neural network based residual coding and prediction for predictive coding
CN111294604B (zh) * 2020-02-13 2022-03-22 山东新一代信息产业技术研究院有限公司 一种基于深度学习的视频压缩方法
WO2023163635A1 (en) * 2022-02-25 2023-08-31 Telefonaktiebolaget Lm Ericsson (Publ) Computational complexity indicator

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060043051A (ko) * 2004-09-23 2006-05-15 엘지전자 주식회사 영상 신호의 인코딩 및 디코딩 방법

Also Published As

Publication number Publication date
WO2017178783A1 (en) 2017-10-19
US20180124418A1 (en) 2018-05-03
EP3298782A1 (de) 2018-03-28
EP3298782B1 (de) 2022-12-21

Similar Documents

Publication Publication Date Title
DE202017007520U1 (de) Bewegungskompensation durch maschinelles Lernen
DE202017007512U1 (de) Bewegungsschätzung durch maschinelles Lernen
DE102016125117B4 (de) Bewegungsvektorkodierung mit dynamischen Referenzbewegungsvektoren
EP0368139B1 (de) Verfahren zur Codierung von Restfehlerbildern
EP1635578B1 (de) Verfahren und Anordnung zur Videocodierung, wobei die Videocodierung Texturanalyse und Textursynthese sowie Texturverzerrung umfasst, sowie ein entsprechendes Computerprogramm und ein entsprechendes computerlesbares Speichermedium
DE69634962T2 (de) Extrapolation von Pixelwerten eines in einem Block enthaltenen Videoobjektes
DE112020000471T5 (de) Prädiktionscodierung mit neuronalen netzwerken
DE202017007529U1 (de) Differenzmetrik für auf maschinellem Lernen basierende Verarbeitungssysteme
DE112007002493T5 (de) Verfahren zum Zerlegen eines Videosequenzrahmens
DE112016005905T5 (de) Verfahren und System zum Verschmelzen erfasster Messungen
DE102014006442A1 (de) Codierung eines Bildes
DE102016125094A1 (de) Auswahl des Referenz-Bewegungsvektors über Referenzeinzelbild Puffer-Nachverfolgung
WO2008034715A2 (de) Verfahren zur datenkompression in einer videosequenz
DE602004001993T2 (de) Transformations basiertes restbewegungsrahmen kodierungsverfahren mit übervollständiger basis und zugehörige vorrichtung zur videokompression
DE102020215942A1 (de) System und verfahren für unüberwachte domänenanpassung mit mischungstraining
DE202016008178U1 (de) Bewegungsvektorvorhersage mittels eines vorhergehenden Einzelbildresiduums
DE202016008164U1 (de) Intelligente Sortierung der rekursiven Blockaufteilung für die erweiterte Intra-Prädiktion bei der Videocodierung
DE102020108428A1 (de) Codieren von Video unter Verwendung zweistufiger Intra-Suche
DE202016008210U1 (de) Adaptiver direktionaler Schleifenfilter
DE102011006036B4 (de) Verfahren und Vorrichtungen zur Bildung eines Prädiktionswertes
EP3685352B1 (de) Verfahren und vorrichtung zum bewerten von bildern, betriebsassistenzverfahren und betriebsvorrichtung
DE102016125593B4 (de) Dynamischer Kodiermodus für Referenz-Bewegungsvektoren
EP0981910B1 (de) Verfahren und vorrichtung zur codierung eines digitalisierten bildes
DE3733038A1 (de) Verfahren und schaltungsanordnung zur bilddatenreduktion fuer digitale fernsehsignale
DE102020207711B3 (de) Verfahren und vorrichtungen zur codierung von bilddaten

Legal Events

Date Code Title Description
R150 Utility model maintained after payment of first maintenance fee after three years
R207 Utility model specification
R151 Utility model maintained after payment of second maintenance fee after six years