DE202017007512U1 - Bewegungsschätzung durch maschinelles Lernen - Google Patents

Bewegungsschätzung durch maschinelles Lernen Download PDF

Info

Publication number
DE202017007512U1
DE202017007512U1 DE202017007512.1U DE202017007512U DE202017007512U1 DE 202017007512 U1 DE202017007512 U1 DE 202017007512U1 DE 202017007512 U DE202017007512 U DE 202017007512U DE 202017007512 U1 DE202017007512 U1 DE 202017007512U1
Authority
DE
Germany
Prior art keywords
input
video data
neural network
frames
convolutional neural
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
DE202017007512.1U
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 DE202017007512U1 publication Critical patent/DE202017007512U1/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
    • H04N19/53Multi-resolution motion estimation; Hierarchical motion estimation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4046Scaling of whole images or parts thereof, e.g. expanding or contracting using neural networks
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors

Landscapes

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

Abstract

Vorrichtung, die einen oder mehrere Computer umfasst, wobei der eine oder die mehreren Computer ein neuronales Faltungsnetzwerk speichern und so konfiguriert sind, dass sie Operationen durchführen, die Folgendes aufweisen:
Empfangen von einem oder mehreren Eingangsbildern (401) von Videodaten, wobei jedes Eingangsbild mindestens einem Teil eines entsprechenden Bildes von Videodaten entspricht;
Identifizieren, unter Verwendung des neuronalen Faltungsnetzwerks (405), eines oder mehrerer Referenzelemente (411) in einem oder mehreren Referenzbildern (403) von Videodaten, die einem oder mehreren Eingangselementen (409) in dem einen oder den mehreren Eingangsbildern von Videodaten ähnlich sind;
Bestimmen, unter Verwendung des neuronalen Faltungsnetzwerks, eines oder mehrerer geschätzter Bewegungsvektoren (407), die das identifizierte eine oder die mehreren Referenzelemente mit dem einen oder den mehreren Eingangselementen in Beziehung setzen; und
Ausgeben des einen oder der mehreren geschätzten Bewegungsvektoren von dem neuronalen Faltungsnetzwerk,
wobei das neuronale Faltungsnetzwerk eine oder mehrere dichte Schichten aufweist.

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 Bewegungsschätzung bei der Videokodierung. Insbesondere bezieht sich die vorliegende Erfindung auf die Verwendung von maschinellem Lernen zur Verbesserung der Bewegungsschätzung bei der Videokodierung.
  • Hintergrund - Videokompression
  • 1 veranschaulicht die allgemeinen Bestandteile eines Video-Encoders. Videokompressionstechnologien reduzieren die Informationen in Bildern, indem sie die in den Videodaten vorhandenen Redundanzen verringern. Dies kann erreicht werden, indem das Bild (oder Teile davon) aus benachbarten Daten innerhalb desselben Bildes (Intraprädiktion) oder aus Daten, die zuvor in anderen Bildern signalisiert wurden (Interprädiktion), vorhergesagt wird. Bei der Interprädiktion 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 umfasst die Videokompressionstechnologie die Verwendung verschiedener Module. Um die Daten zu reduzieren, wird ein Restsignal auf der Grundlage der vorhergesagten Samples 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 CosinusTransformation 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 Bildern visueller Daten ausgenutzt. Mit Hilfe von Referenzbildern werden die anzuzeigenden Bilder rekonstruiert, was zu einer Verringerung der zu übertragenden oder zu speichernden Datenmenge führt. Die Referenzbilder werden im Allgemeinen vor dem anzuzeigenden Bild übertragen. Es ist jedoch nicht erforderlich, dass die Bilder in der Reihenfolge der Anzeige übertragen werden. Daher können die Referenzbilder 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 Bilder 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. Bei diesem Verfahren werden Referenzblöcke 201 visueller Daten aus Referenzbildern 203 mit Hilfe eines gewichteten Mittelwerts 205 kombiniert, um einen vorhergesagten Block visueller Daten 207 zu erzeugen. Dieser vorhergesagte Block 207 visueller Daten wird von dem entsprechenden Eingangsblock 209 visueller Daten in dem gerade kodierten Eingangsbild 211 subtrahiert, um einen Restblock 213 visueller Daten zu erzeugen. Der Restblock 213 der visuellen Daten wird zusammen mit den Identitäten der Referenzblöcke 201 der visuellen Daten von einem Decoder verwendet, um den codierten Block der visuellen Daten zu rekonstruieren. Auf diese Weise wird die Menge der an den Decoder zu übertragenden Daten reduziert.
  • Je näher der vorhergesagte Block 207 dem entsprechenden Eingangsblock 209 im zu kodierenden Bild 211 ist, desto besser ist die Komprimierungseffizienz, da der Restblock 213 nicht so viele Daten enthalten muss. Daher ist es für eine gute Kodierungsleistung wichtig, dass der vorhergesagte Block 207 dem aktuellen Eingangsblock 209 so nahe wie möglich kommt. Folglich ist es erforderlich, die optimalen Referenzblöcke 201 in den Referenzbildern 203 zu finden. Das Verfahren zur Ermittlung der optimalen Referenzblöcke 201, besser bekannt als Bewegungsschätzung, ist jedoch nicht durch eine Videokomprimierungsnorm definiert oder festgelegt.
  • 3 zeigt eine Visualisierung des Bewegungsschätzungsprozesses. Ein Bereich, der eine Reihe von Blöcken 301 eines Referenzbildes 303 umfasst, 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 Bewegungsschätzung wird eine Reihe von Blöcken im Referenzbild 301 ausgewertet. Durch Anwendung einer Translation zwischen dem aktuell kodierten Bild 311 und dem Referenzbild 303 kann jeder beliebige Block im Referenzbild bewertet werden. Im Prinzip kann jeder Pixelblock im Referenzbild 303 ausgewertet werden, um den optimalen Referenzblock 305 zu finden. Dies ist jedoch sehr rechenintensiv, und aktuelle Implementierungen optimieren diese Suche, indem sie die Anzahl der auszuwertenden Blöcke des Referenzbildes 303 beschränken. Daher kann es sein, dass der optimale Referenzblock 305 nicht gefunden wird.
  • Wenn der optimale Block 305 gefunden ist, erzeugt die Bewegungskompensation den Restblock, der für die Transformation und Quantisierung verwendet wird. Der Positionsunterschied zwischen dem aktuellen Block 307 und dem optimalen Block 305 im Referenzbild 303 wird in Form eines Bewegungsvektors 309 signalisiert, der auch die Identität des Referenzbildes 303 angibt, das als Referenz verwendet wird.
  • Bewegungsschätzung und -kompensation sind entscheidende Vorgänge bei der Videokodierung. Um ein einzelnes Bild zu kodieren, muss ein Bewegungsfeld geschätzt werden, das die Verschiebung beschreibt, die der räumliche Inhalt dieses Bildes relativ zu einem oder mehreren Referenzbildern erfährt. Im Idealfall ist dieses Bewegungsfeld dicht, so dass jedes Pixel des Bildes eine individuelle Entsprechung in einem oder mehreren Referenzbildern hat. Die Kodierung dichter Bewegungsfelder wird in der Regel als optischer Fluss bezeichnet, und es wurden viele verschiedene Verfahren zu dessen Schätzung vorgeschlagen. Die Ermittlung genauer pixelweiser Bewegungsfelder ist jedoch rechnerisch anspruchsvoll und teuer, so dass Encoder in der Praxis auf Blockabgleichsalgorithmen zurückgreifen, die stattdessen nach Korrespondenzen für Pixelblöcke suchen. Dies wiederum schränkt die Kompressionsleistung des Encoders ein.
  • Hintergrund - Techniken des maschinellen Lernens
  • Maschinelles 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 Verstärkungslernen und Teilüberwachtes Lernen 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, etikettiert wird.
  • Beim unüberwachten Lernen geht es darum, eine Struktur für die Eingangsdaten 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 „teilü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 jedem Datum zu clustern).
  • Teilü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 Etiketten 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 versorgt 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 halbü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 Saat-Etiketten vorhanden sind.
  • Zusammenfassung der Erfindung
  • Aspekte und/oder Ausführungsformen sind in den beigefügten Ansprüchen dargelegt.
  • Aspekte und/oder Ausführungsformen zielen darauf ab, ein Verfahren zur Bewegungsschätzung bei der Videokodierung bereitzustellen, das hierarchische Algorithmen zur Verbesserung des Bewegungsschätzungsprozesses einsetzt.
  • Gemäß einem ersten Aspekt wird ein Verfahren zum Schätzen der Bewegung zwischen Bildern von Videodaten unter Verwendung eines hierarchischen Algorithmus bereitgestellt, wobei das Verfahren die folgenden Schritte umfasst: Empfangen eines oder mehrerer Eingangsbilder von Videodaten; Identifizieren, unter Verwendung eines hierarchischen Algorithmus, eines oder mehrerer Referenzelemente in einem oder mehreren Referenzbildern von Videodaten, die einem oder mehreren Eingangselementen in dem einen oder mehreren Eingangsbildern von Videodaten ähnlich sind; Bestimmen eines geschätzten Bewegungsvektors, der das identifizierte eine oder die mehreren Referenzelemente mit dem einen oder den mehreren Eingangselementen in Beziehung setzt; und Ausgeben eines geschätzten Bewegungsvektors.
  • In einer Ausführungsform kann die Verwendung eines hierarchischen Algorithmus zum Durchsuchen eines Referenzbildes, um Elemente zu identifizieren, die denen eines Eingangsbildes ähnlich sind, und zum Bestimmen des geschätzten Bewegungsvektors ein verbessertes Verfahren der Bewegungsschätzung bereitstellen, die einen genauen geschätzten Bewegungsvektor liefert, ohne dass das Referenzbild Block für Block durchsucht werden muss. Die Rückgabe eines genauen geschätzten Bewegungsvektors kann die Größe des Restblocks reduzieren, der für den Bewegungskompensationsprozess erforderlich ist, so dass dieser effizienter berechnet und übertragen werden kann.
  • Optional ist der hierarchische Algorithmus einer der folgenden: ein nichtlinearer hierarchischer Algorithmus, ein neuronales Netz, ein neuronales Faltungsnetz, ein rekurrentes neuronales Netz, ein Netz mit Langzeitgedächtnis, ein 3D-Faltungsnetz, ein Speichernetz oder ein rekurrentes Gated-Netz.
  • Die Verwendung eines nichtlinearen hierarchischen Algorithmus, eines neuronalen Netzes, eines neuronalen Faltungsnetzes, eines rekurrenten neuronalen Netzes, eines Netzes mit Langzeitspeicher, eines 3D-Faltungsnetzes, eines Speichernetzes oder eines rekurrenten Gated-Netzes ermöglicht einen flexiblen Ansatz bei der Bestimmung des geschätzten Bewegungsvektors. Die Verwendung eines Algorithmus mit einer Speichereinheit, wie z. B. eines LSTM (Long Short Memory Network), eines Speichernetzwerks oder eines rekurrenten Gated-Netzes, kann den Zustand der Bewegungsfelder aus früheren Bildern beibehalten, um die Bewegungsfelder jedes Mal mit einem neuen Bild zu aktualisieren, anstatt den hierarchischen Algorithmus auf mehrere Bilder anwenden zu müssen, wobei mindestens ein Bild der vorherige Bild ist. Die Verwendung dieser Netze kann die Recheneffizienz und die zeitliche Konsistenz der Bewegungsschätzung über mehrere Bilder 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 umfasst der hierarchische Algorithmus einen oder mehrere dichte Schichten.
  • Die Verwendung dichter Schichten innerhalb des hierarchischen Algorithmus ermöglicht die Verwendung globaler räumlicher Informationen bei der Bestimmung des geschätzten Bewegungsvektors, so dass eine größere Anzahl möglicher Blöcke oder Pixel im Referenzbild oder einem Bild berücksichtigt werden kann.
  • Optional umfasst der Schritt der Identifizierung des einen oder der mehreren Referenzelemente in dem einen oder den mehreren Referenzbildern die Durchführung einer oder mehrerer Faltungen an lokalen Abschnitten des einen oder der mehreren Eingangsbilder der Videodaten.
  • Die Verwendung von Faltungen ermöglicht es dem hierarchischen Algorithmus, sich auf räumlich-zeitliche Redundanzen zu konzentrieren, die in lokalen Abschnitten der Eingangsbilder gefunden werden.
  • Optional umfasst der Schritt der Identifizierung des einen oder der mehreren Referenzelemente in dem einen oder den mehreren Referenzbildern die Durchführung einer oder mehrerer schrittweisen Faltungen an dem einen oder den mehreren Eingangsbildern von Videodaten.
  • Die Verwendung von schrittweisen Faltungen ermöglicht die Erfassung großer Bewegungsabläufe.
  • Optional wurde der hierarchische Algorithmus mit Hilfe eines erlernten Ansatzes entwickelt.
  • Optional umfasst der erlernte Ansatz das Trainieren des hierarchischen Algorithmus auf einem oder mehreren Paaren bekannter Referenzbilder.
  • Optional sind die ein oder mehreren Paare bekannter Referenzbilder durch einen bekannten Bewegungsvektor miteinander verbunden.
  • Durch das Trainieren des hierarchischen Algorithmus auf Gruppen von Referenzbildern, die durch einen bekannten Bewegungsvektor miteinander verbunden sind, kann der hierarchische Algorithmus für den Bewegungsschätzungsprozess wesentlich optimiert werden.
  • Optional wird die Ähnlichkeit des einen oder der mehreren Referenzelemente mit dem einen oder den mehreren Originalelementen unter Verewnedung einer Metrik bestimmt.
  • Optional umfasst die Metrik mindestens eine der folgenden Größen: eine subjektive Metrik, eine Summe der absoluten Unterschiede oder eine Summe der quadrierten Fehler.
  • Optional wird die Metrik aus einer Vielzahl von Metriken ausgewählt, die auf den Eigenschaften des Eingangsbildes basieren.
  • Die Verwendung verschiedener Metriken zur Bestimmung der Ähnlichkeit von Elementen im Eingangsbild mit Elementen im Referenzbild ermöglicht einen flexiblen Ansatz zur Bestimmung der Elementähnlichkeit, der von der Art der verarbeiteten Videodaten abhängen kann.
  • Optional beschreibt der geschätzte Bewegungsvektor ein dichtes Bewegungsfeld.
  • Dichte Bewegungsfelder bilden die Pixel eines Referenzbildes auf die Pixel des Eingangsbildes ab, so dass eine genaue Darstellung des Eingangsbildes erstellt werden kann und folglich ein kleineres Restbild für den Bewegungsausgleich erforderlich ist.
  • Optional beschreibt der geschätzte Bewegungsvektor ein blockweises Verschiebungsfeld.
  • Blockweise Verschiebungsfelder bilden Blöcke visueller Daten in einem Referenzbild auf Blöcke visueller Daten in einem Eingangsbild ab. Durch die Zuordnung von Blöcken visueller Daten in einem Eingangsbild zu denen in einem Referenzbild kann der erforderliche Rechenaufwand im Vergleich zur Zuordnung einzelner Pixel verringert werden.
  • Optional setzt das blockweise Verschiebungsfeld Referenzblöcke visueller Daten im Referenzbild der Videodaten mit Eingangsdatenblöcken im Eingangsbild durch mindestens eines der folgenden Verfahren in Beziehung: eine Translation, eine affine Transformation oder eine Verzerrung.
  • Optional beschreibt der geschätzte Bewegungsvektor eine Vielzahl von möglichen blockweisen Verschiebungsfeldern.
  • Durch die Bereitstellung einer Vielzahl möglicher blockweiser Verschiebungsfelder während des Bewegungsschätzungsprozesses kann die Wahl eines optimalen Bewegungsvektors bis nach der weiteren Verarbeitung verzögert werden, beispielsweise während einer zweiten (Verfeinerungs-)Phase des Bewegungsschätzungsprozesses. Die Kenntnis der möglichen Restblöcke kann im Bewegungsschätzungsprozess verwendet werden, um zu bestimmen, welche der Möglichkeiten die optimale ist.
  • Optional umfasst das eine oder mehrere Referenzbild(er) von Videodaten eine Vielzahl von Referenzbildern von Videodaten.
  • Durch die parallele Suche nach ähnlichen Elementen in mehreren Referenzbildern oder durch die Ausnutzung bekannter Ähnlichkeiten zwischen den Referenzbildern kann die Effizienz des Verfahrens erhöht werden.
  • Optional umfasst die Vielzahl von Referenzbildern aus Videodaten zwei oder mehr Referenzbilder mit unterschiedlichen Auflösungen.
  • Durch das Durchsuchen mehrerer Kopien eines Referenzbildes mit unterschiedlichen Auflösungen können Referenzelemente, die den Eingangselementen ähnlich sind, parallel in mehreren räumlichen Maßstäben durchsucht werden, was die Effizienz des Bewegungsschätzungsprozesses erhöhen kann.
  • Optional umfasst das eine oder die mehreren Eingangsbilder von Videodaten eine Vielzahl von Eingangsbildern von Videodaten.
  • Durch die im Wesentlichen parallele Durchführung des Bewegungsschätzungsprozesses an mehreren Eingangsbildern von Videodaten können Redundanzen und Ähnlichkeiten zwischen den Eingangsbildern ausgenutzt werden, wodurch sich die Effizienz des Bewegungsschätzungsprozesses bei der Durchführung an Sequenzen ähnlicher Eingangsbilder potenziell erhöht.
  • Optional umfasst die Vielzahl der Eingangsbilder von Videodaten zwei oder mehr Eingangsbilder von Videodaten mit unterschiedlichen Auflösungen.
  • Die Verwendung mehrerer Kopien eines Eingangsbildes mit unterschiedlichen Auflösungen ermöglicht die parallele Suche nach Referenzelementen, die den Eingangselementen ähnlich sind, in verschiedenen räumlichen Maßstäben, was die Effizienz des Bewegungsschätzungsprozesses erhöhen kann.
  • Optional wird das Verfahren an einem Netzknoten innerhalb eines Netzes durchgeführt.
  • Optional wird das Verfahren als ein Schritt in einem Videocodierungsprozess durchgeführt.
  • Das Verfahren kann zur Verbesserung der Kodierung eines Videodatenabschnitts vor der Übertragung über ein Netzwerk verwendet werden. Durch die Schätzung eines optimalen oder nahezu optimalen Bewegungsvektors kann die Größe eines Restblocks, der über das Netzwerk übertragen werden muss, reduziert werden.
  • Optional kann der hierarchische Algorithmus inhaltsspezifisch sein.
  • Optional wird der hierarchische Algorithmus aus einer Bibliothek von hierarchischen Algorithmen ausgewählt, die auf einem Inhaltstyp des einen oder der mehreren Bilder der Eingangsvideodaten basiert.
  • Inhaltsspezifische hierarchische Algorithmen können so trainiert werden, dass sie sich auf die Bestimmung eines geschätzten Bewegungsvektors für bestimmte Arten von Videodaten spezialisieren, z. B. fließendes Wasser oder sich bewegende Fahrzeuge, wodurch die Geschwindigkeit, mit der Bewegungsvektoren für diese bestimmte Art von Inhalt geschätzt werden, im Vergleich zu einem allgemeinen hierarchischen Algorithmus erhöht werden kann.
  • Hier 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 Rahmen (z. B. Kombinationen aus zwei oder mehr Halbbildern).
  • Figurenliste
  • Es werden nun Ausführungsformen beschrieben, nur als Beispiel und unter Bezugnahme auf die beigefügten Zeichnungen mit gleichen Bezugsnummern, in denen:
    • 1 veranschaulicht die allgemeinen Bestandteile eines Video-Encoders;
    • 2 zeigt einen schematischen Überblick über den Prozess der Bewegungskompensation (MC) als Teil der Interprädiktion;
    • 3 zeigt eine Visualisierung des Bewegungsschätzungsprozesses;
    • 4 veranschaulicht eine Ausführungsform des Bewegungsschätzungsprozesses;
    • 5 veranschaulicht eine weitere Ausführungsform des Bewegungsschätzungsprozesses; und
    • 6 zeigt eine Vorrichtung mit einer Verarbeitungsvorrichtung und einem Speicher gemäß einer beispielhaften Ausführungsform.
  • Spezifische Beschreibung
  • Unter Bezugnahme auf die 4 bis 6 werden nun beispielhafte Ausführungsformen des Bewegungsschätzungsprozesses beschrieben.
  • 4 veranschaulicht eine Ausführungsform des Bewegungsschätzungsprozesses. Das Verfahren optimiert den Bewegungsschätzungsprozess durch maschinelle Lerntechniken. Die Eingabe ist das aktuelle Bild 401 und ein oder mehrere Referenzbilder 403, die in einem Referenzpuffer gespeichert sind. Die Ausgabe des Algorithmus 405 ist das zutreffende Referenzbild 403 und ein oder mehrere geschätzte Bewegungsvektoren 407, die verwendet werden können, um die optimale Position im Referenzbild 403 zu ermitteln, die als Prädiktion für jedes Element (z. B. einen Block oder ein Pixel) des aktuellen Bildes 401 verwenden ist.
  • Der Algorithmus 405 ist ein hierarchischer Algorithmus, z. B. ein nichtlinearer hierarchischer Algorithmus, ein neuronales Netz, ein neuronales Faltungsnetz, ein rekurrentes neuronales Netz, ein Netz mit Langzeit-Kurzzeitgedächtnis, ein 3D-Faltungsnetz, ein Speichernetz oder ein rekurrentes Gated-Netz, das vor dem Kodierungsprozess auf visuelle Daten trainiert wird. Paare von Trainingsbildern, von denen eines ein Referenzbild und das andere ein Beispiel für ein Eingangsbild ist (das seinerseits ein weiteres Referenzbild sein kann), entweder mit einem bekannten Bewegungsfeld dazwischen oder ohne, werden verwendet, um den Algorithmus mit Hilfe von maschinellen Lerntechniken zu trainineren, der dann in einer Bibliothek trainierter Algorithmen gespeichert wird.
  • Verschiedene Algorithmen können auf Paaren von Trainingsbildern mit unterschiedlichen Inhalten trainiert werden, um die Bibliothek mit inhaltsspezifischen Algorithmen zu bestücken. Bei den Inhaltstypen kann es sich z. B. um das Thema der visuellen Daten in den Bildern oder die Auflösung der Bilder handeln. Diese Algorithmen können in der Bibliothek mit metrischen Daten gespeichert werden, die sich auf den Inhaltstyp beziehen, für den sie trainiert wurden.
  • Die Eingabe für den Bewegungsschätzungsprozess (ME) ist eine Anzahl von Pixeln, die einem Bereich 409 des aktuellen Originalbildes 401 entsprechen, und ein oder mehrere zuvor übertragene Referenzbilder 403, die dekodiert und in einem Puffer (oder Speicher) gespeichert werden. Das Ziel des ME-Prozesses ist es, einen Teil 411 des zwischengespeicherten Referenzbildes 403 zu finden, der die größte Ähnlichkeit mit dem Bereich 409 des Originalbildes 401 aufweist. Der identifizierte Teil 411 des Referenzbildes kann eine Subpixelgenauigkeit aufweisen, d. h. Positionen zwischen Pixeln können für die Vorhersage verwendet werden, indem diese Werte aus benachbarten Pixeln interpoliert werden. Je ähnlicher das aktuelle Bild 401 und das Referenzbild 411 sind, desto weniger Daten enthält der Restblock, und desto besser ist die Komprimierungseffizienz. Daher wird die optimale Position gefunden, indem alle Blöcke (oder einzelnen Pixel) ausgewertet werden und der Block (oder Pixel) verwendet wird, der die Differenz zwischen dem aktuellen Block (oder Pixel) und einer Position im Referenzbild minimiert. Es kann eine beliebige Metrik verwendet werden, z. B. die Summe der absoluten Differenzen (SAD), die Summe der quadrierten Fehler (SSE) oder eine subjektive Metrik. In einigen Ausführungsformen kann die Art der zu verwendenden Metrik durch den Inhalt des Eingangsbildes bestimmt werden und aus einer Reihe von mehr als einer möglichen Metrik ausgewählt werden.
  • In der gezeigten Ausführungsform ist die Eingabe für das Verarbeitungsmodul ein einzelnes zu kodierendes aktuelles Bild 401 und ein einzelnes Referenzbild 403.
  • Alternativ könnte die Eingabe aus dem zu kodierenden Einzelbild und mehreren Referenzbildern bestehen. Durch die Bereitstellung von mehr als einem Referenzbild können die Fähigkeiten der Bewegungsschätzung verbessert werden, da der Raum, der bei der Suche nach geeigneten Verschiebungsübereinstimmungen untersucht wird, größer wäre.
  • Ebenso kann mehr als ein einzelnes Bild zur Kodierung eingegeben werden, so dass mehrere Bilder gemeinsam kodiert werden können. Bei Bildern, die ähnliche Bewegungsverschiebungen aufweisen, z. B. eine Abfolge ähnlicher Bilder in einer Videoszene, kann dies die Gesamteffizienz der Bildcodierung verbessern.
  • 5 zeigt eine weitere Ausführungsform, bei der mehrere Originalbilder 501 mit unterschiedlichen Auflösungen, die von einem einzigen Originalbild abgeleitet sind, und mehrere Referenzbilder 503 mit unterschiedlichen Auflösungen, die von einem einzigen Referenzbild abgeleitet sind, als Eingabe dienen. Auf diese Weise kann das vom Verarbeitungsmodul gesuchte rezeptive Feld erweitert werden. Jedes Bildpaar, ein Originalbild und ein Referenzbild mit derselben Auflösung, kann in einen separaten hierarchischen Algorithmus 505 eingegeben werden, um einen optimalen Block zu suchen. Alternativ dazu können die Bilder mit unterschiedlichen Auflösungen in einen einzigen hierarchischen Algorithmus eingegeben werden. Das Ergebnis der hierarchischen Algorithmen sind ein oder mehrere geschätzte Bewegungsvektoren 507, die verwendet werden können, um die optimale Position in den Referenzbildern 503 zu ermitteln und als Vorhersage für jeden Block der aktuellen Bilder 501 zu verwenden.
  • Auf der Grundlage des Inhaltstyps des Eingangsbildes, der anhand der mit dem Eingangsbild verknüpften metrischen Daten bestimmt werden kann, kann ein vorab trainierter, inhaltsspezifischer hierarchischer Algorithmus aus einer Bibliothek hierarchischer Algorithmen ausgewählt werden, um den Bewegungsschätzungsprozess durchzuführen. Steht kein geeigneter inhaltsspezifischer hierarchischer Algorithmus zur Verfügung oder ist keine Bibliothek vorhanden, so kann stattdessen ein allgemeiner, vorab trainierter hierarchischer Algorithmus verwendet werden.
  • Die Modellierung, die zum Erfassen der Bewegung im Eingangsbild relativ zum Referenzbild verwendet wird, ist ein Netzwerk, das die Eingangsbilder auf hierarchische Weise durch eine Verkettung von Schichten verarbeitet, z. B. mit einem neuronalen Netzwerk, einem neuronalen Faltungsnetz oder einem nichtlinearen hierarchischen Algorithmus. Die Parameter, welche die Operationen dieser Schichten definieren, sind trainierbar und werden anhand früherer Beispiele von Paaren von Referenzbildern und den bekannten optimalen Verschiebungsvektoren, die sie zueinander in Beziehung setzen, optimiert. In seiner einfachsten Form wird eine Abfolge von Schichten verwendet, wobei sich jede auf die Darstellung von räumlich-zeitlichen Redundanzen konzentriert, die in vordefinierten lokalen Abschnitten der Eingangsbilder gefunden werden. Dies kann als eine Reihe von Faltungen mit vorher trainierten Filtern auf dem Eingangsbild durchgeführt werden.
  • Eine Abwandlung dieser Schichten kann die Einführung mindestens einer dichten Verarbeitungsschicht sein, bei der die Darstellungen der Bilder eher aus globalen räumlichen Informationen als aus lokalen Ausschnitten gewonnen werden.
  • Eine andere Möglichkeit ist die Verwendung von schrittweisen Faltungen, bei denen zusätzlich zu der einzigen Verarbeitungsspur, die alle lokalen Regionen des Bildes bearbeitet, weitere Spuren eingebaut werden, die Faltungen an räumlich geschichteten Bereichen der Eingangsbilder durchführen. Diese Idee entspricht dem Konzept der Multiauflösungsverarbeitung und würde große Bewegungsverschiebungen erfassen, die andernfalls bei voller Bildauflösung schwer zu erfassen wären, aber gefunden werden könnten, wenn das Bild auf niedrigere Auflösungen heruntergetastet wird.
  • Darüber hinaus muss sich die Eingabe für das Bewegungsschätzungsmodul nicht auf Informationen zur Pixelintensität beschränken. Ebenso könnte der Lernprozess auch Beschreibungen der Referenz- und Zielbilder auf höherer Ebene nutzen, z. B. Salienzkarten, Wavelet- oder Histogramm-Gradienten-Merkmale oder Metadaten, die den Videoinhalt beschreiben.
  • Eine weitere Alternative ist die Verwendung von räumlich transformierten Ebenen. Ausgehend von einer Reihe von Kontrollpunkten in aktuellen Bildern und Referenzbildern erzeugen diese die räumliche Transformation, die diese Punkte erfahren haben. Diese Netze wurden ursprünglich für eine verbesserte Bildklassifizierung vorgeschlagen, da die Registrierung von Bildern in einem gemeinsamen Raum die Variabilität zwischen Bildern, die derselben Klasse angehören, erheblich verringert. Sie können jedoch auch sehr effizient Bewegungen kodieren, da die für eine genaue Bildregistrierung erforderlichen Verschiebungsvektoren als Bewegungsfelder interpretiert werden können.
  • Der minimale Ausdruck der Ausgabe des Bewegungsschätzungsmoduls ist ein einzelner Vektor, der die X- und Y-Koordinatenverschiebung für räumliche Inhalte im Eingangsbild relativ zum Referenzbild beschreibt. Dieser Vektor könnte entweder ein dichtes Bewegungsfeld beschreiben, bei dem jedem Pixel im Eingangsbild eine Verschiebung zugewiesen wird, oder eine blockweise Verschiebung ähnlich einer Blockabgleich-Operation, bei der jedem Block von visuellen Daten im Eingangsbild eine Verschiebung zugewiesen wird. Alternativ dazu könnte die Ausgabe des Modells erweiterte Verschiebungsvektoren liefern, bei denen jedem Pixel oder Datenblock mehrere Verschiebungsmöglichkeiten zugeordnet werden. Bei der weiteren Verarbeitung könnte dann entweder eine dieser Verschiebungen ausgewählt oder eine verfeinerte Verschiebung auf der Grundlage von vordefinierten Mischungskriterien erzeugt werden.
  • In einigen Ausführungsformen ist die Verschiebung des Eingangsblocks relativ zum Referenzblock nicht nur eine Translation, sondern kann eine affine Transformation, eine Stilübertragung oder eine Verzerrung sein. Auf diese Weise kann der Referenzblock zusätzlich zu einer Verschiebung auch durch Rotation, Skalierung und/oder andere Transformationen mit dem Eingangsblock in Beziehung gesetzt werden.
  • Das vorgeschlagene Verfahren zur Bewegungsschätzung kann auf verschiedene Weise zur Verbesserung der Qualität eines Video-Encoders eingesetzt werden. In der trivialsten Form könnte das vorgeschlagene Verfahren verwendet werden, um die derzeitigen Blockabgleichsalgorithmen, die zum Finden von Bildkorrespondenzen verwendet werden, direkt zu ersetzen. Die Schätzung dichter Bewegungsfelder hat das Potenzial, Blockablgeichsalgorithmen zu übertreffen, da sie pixelweise Genauigkeit bieten, und das trainierbare Modul wäre datenadaptiv und könnte auf die in einem bestimmten Medieninhalt gefundene Bewegung abgestimmt werden. Ebenso könnte das geschätzte Bewegungsfeld als zusätzliche Eingabe für einen Blockabgleichsalgorithmus verwendet werden, um den Suchvorgang zu steuern. Dies kann die Effizienz der Algorithmen verbessern, indem der zu erforschende Suchraum reduziert wird, oder als zusätzliche Information zur Verbesserung der Genauigkeit dienen.
  • Die oben beschriebenen Verfahren können an einem Knoten innerhalb eines Netzwerks, z. B. einem Inhaltsserver mit Videodaten, als Teil des Videocodierungsprozesses vor der Übertragung der Videodaten über das Netzwerk implementiert werden.
  • 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 Verfahren 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 Verfahren, Funktionen, Prozeduren, Unterprogrammen, Unterprogrammen usw. entsprechen.
  • Die oben beschriebenen Verfahren, 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.
  • 6 zeigt eine Vorrichtung 600 mit einer Verarbeitungsvorrichtung 602 und einem Speicher 604 gemäß einer beispielhaften Ausführungsform. Computerlesbarer Code 606 kann im Speicher 604 gespeichert werden und kann, wenn er von der Verarbeitungsvorrichtung 602 ausgeführt wird, die Vorrichtung 600 veranlassen, Verfahren wie hier beschrieben durchzuführen, beispielsweise ein Verfahren mit Bezug auf die 4 und 5.
  • Die Verarbeitungsvorrichtung 602 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 umfasst. 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 Rechengerät oder Verarbeitungsmittel bezeichnet werden.
  • Die Verarbeitungsvorrichtung 602 ist mit dem Speicher 604 gekoppelt und kann Daten aus dem/in den Speicher 604 lesen/schreiben. Der Speicher 604 kann aus einer einzelnen Speichereinheit oder einer Vielzahl von Speichereinheiten bestehen, 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/der computerlesbare(n) 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 Verfahren können als Programmmodule oder funktionale Prozesse einschließlich Routinen, Programme, Objekte, Komponenten, Datenstrukturen usw. implementiert werden. die bestimmte Aufgaben erfüllen oder eine bestimmte Funktionalität implementieren, und können mit vorhandener Hardware implementiert werden. Solche vorhandene Hardware kann einen oder mehrere Prozessoren (z. B. eine oder mehrere zentrale Verarbeitungseinheiten), 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 Berechnen oder Rechnen oder Bestimmen oder ähnliches auf die Aktionen und Prozesse eines Computersystems oder einer ähnlichen elektronischen Rechenvorrichtung. 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 (24)

  1. Vorrichtung, die einen oder mehrere Computer umfasst, wobei der eine oder die mehreren Computer ein neuronales Faltungsnetzwerk speichern und so konfiguriert sind, dass sie Operationen durchführen, die Folgendes aufweisen: Empfangen von einem oder mehreren Eingangsbildern (401) von Videodaten, wobei jedes Eingangsbild mindestens einem Teil eines entsprechenden Bildes von Videodaten entspricht; Identifizieren, unter Verwendung des neuronalen Faltungsnetzwerks (405), eines oder mehrerer Referenzelemente (411) in einem oder mehreren Referenzbildern (403) von Videodaten, die einem oder mehreren Eingangselementen (409) in dem einen oder den mehreren Eingangsbildern von Videodaten ähnlich sind; Bestimmen, unter Verwendung des neuronalen Faltungsnetzwerks, eines oder mehrerer geschätzter Bewegungsvektoren (407), die das identifizierte eine oder die mehreren Referenzelemente mit dem einen oder den mehreren Eingangselementen in Beziehung setzen; und Ausgeben des einen oder der mehreren geschätzten Bewegungsvektoren von dem neuronalen Faltungsnetzwerk, wobei das neuronale Faltungsnetzwerk eine oder mehrere dichte Schichten aufweist.
  2. Vorrichtung nach Anspruch 1, wobei das neuronale Faltungsnetzwerk (405) durch Training des neuronalen Faltungsnetzwerks auf einem oder mehreren Paaren bekannter Referenzbilder entwickelt worden ist, die durch einen oder mehrere bekannte Bewegungsvektoren in Beziehung stehen.
  3. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei der eine oder die mehreren geschätzten Bewegungsvektoren (407) eine Vielzahl von Bewegungsvektoren aufweisen, die ein dichtes Bewegungsfeld beschreiben, wobei jedem Eingangselement durch den einen oder die mehreren geschätzten Bewegungsvektoren (407) eine Verschiebung relativ zu einem entsprechenden Referenzelement zugewiesen wird, und wobei jedes Eingangselement und Referenzelement ein Pixel ist.
  4. Vorrichtung nach einem der Ansprüche 1 oder 2, wobei der eine oder die mehreren geschätzten Bewegungsvektoren (407) eine Vielzahl von Bewegungsvektoren umfassen, die ein blockweises Verschiebungsfeld beschreiben, wobei die Eingangselemente in Blöcke aufgenommen werden und jedem Block (301) eine Verschiebung relativ zu einem entsprechenden Referenzblock durch den einen oder die mehreren geschätzten Bewegungsvektoren (407) zugeordnet wird.
  5. Vorrichtung nach einem der Ansprüche 3 oder 4, wobei die Referenzblöcke visueller Daten im Referenzbild (403) der Videodaten mit den Eingangsblöcken von Daten im Eingangsbild (401) der Videodaten durch mindestens eines von Folgendem in Beziehung gesetzt werden: eine Translation; eine affine Transformation; oder eine Verzerrung.
  6. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei das eine oder die mehreren Referenzbilder (403) von Videodaten zwei oder mehr Referenzbilder mit unterschiedlichen Auflösungen umfassen.
  7. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei das eine oder die mehreren Eingangsbilder (401) von Videodaten eine Vielzahl von Eingangsbildern von Videodaten umfassen.
  8. Vorrichtung nach Anspruch 7, wobei die Vielzahl der Eingangsbilder von Videodaten zwei oder mehr Eingangsbilder von Videodaten mit unterschiedlichen Auflösungen umfasst.
  9. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei die Vorrichtung so konfiguriert ist, dass sie einen Videocodierungsprozess durchführt, und wobei die Operationen als ein Schritt in dem Videocodierungsprozess durchgeführt werden.
  10. Vorrichtung nach einem der vorangehenden Ansprüche, wobei das neuronale Faltungsnetzwerk (405) ein inhaltsspezifisches neuronales Faltungsnetzwerk ist.
  11. Vorrichtung nach Anspruch 10, wobei das inhaltsspezifische neuronale Faltungsnetzwerk auf Trainingsdaten trainiert wurde, die Eingangsbilder umfassen, die Bildern von Videodaten entsprechen, die einen Inhalt desselben Inhaltstyps aufweisen.
  12. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei die Operationen ferner das Auswählen des neuronalen Faltungsnetzwerks (405) aus einer Bibliothek hierarchischer Algorithmen, auf die der eine oder die mehreren Computer zugreifen können, auf der Grundlage eines Inhaltstyps des einen oder der mehreren Eingangsbilder (401) von Videodaten aufweisen.
  13. Ein nicht-transitorisches computerlesbares Medium, das computerlesbare Anweisungen speichert, die, wenn sie von einem oder mehreren Computern ausgeführt werden, den einen oder die mehreren Computer veranlassen, Operationen durchzuführen, die Folgendes aufweisen: Empfangen eines oder mehrerer Eingangsbilder (401) von Videodaten; Identifizieren, unter Verwendung eines neuronalen Faltungsnetzwerks (405), eines oder mehrerer Referenzelemente (411) in einem oder mehreren Referenzbildern (403) von Videodaten, die einem oder mehreren Eingangselementen (409) in dem einen oder mehreren Eingangsbildern von Videodaten ähnlich sind; Bestimmen, unter Verwendung des neuronalen Faltungsnetzwerks, eines oder mehrerer geschätzter Bewegungsvektoren (407), die das identifizierte eine oder die mehreren Referenzelemente mit dem einen oder den mehreren Eingangselementen in Beziehung setzen; und Ausgeben des einen oder der mehreren geschätzten Bewegungsvektoren von dem neuronalen Faltungsnetzwerk, wobei das neuronale Faltungsnetzwerk eine oder mehrere dichte Schichten aufweist.
  14. Das computerlesbare Medium nach Anspruch 13, wobei das neuronale Faltungsnetzwerk (405) durch Trainieren des neuronalen Faltungsnetzwerks auf einem oder mehreren Paaren bekannter Referenzbilder entwickelt worden ist, die durch einen oder mehrere bekannte Bewegungsvektoren in Beziehung stehen,.
  15. Das computerlesbare Medium nach einem der Ansprüche 13 bis 14, wobei der eine oder die mehreren geschätzten Bewegungsvektoren (407) ein dichtes Bewegungsfeld beschreiben, wobei jedem Eingangselement durch den einen oder die mehreren geschätzten Bewegungsvektoren (407) eine Verschiebung relativ zu einem entsprechenden Referenzelement zugewiesen wird, und wobei jedes Eingangselement und Referenzelement ein Pixel ist.
  16. Das computerlesbare Medium nach einem der Ansprüche 13 bis 14, wobei der eine oder die mehreren geschätzten Bewegungsvektoren (407) ein blockweises Verschiebungsfeld beschreiben, wobei Eingangselemente in Blöcke aufgenommen werden und jedem Block (301) eine Verschiebung relativ zu einem entsprechenden Referenzblock durch den einen oder die mehreren geschätzten Bewegungsvektoren (407) zugeordnet wird.
  17. Das computerlesbare Medium nach einem der Ansprüche 15 oder 16, wobei die Referenzblöcke der visuellen Daten im Referenzbild (403) der Videodaten mit den Eingangsblöcken der Daten im Eingangsbild (401) der Videodaten durch mindestens eines von Folgendem in Beziehung gesetzt werden: eine Translation; eine affine Transformation; oder eine Verzerrung.
  18. Das computerlesbare Medium nach einem der Ansprüche 13-17, wobei das eine oder die mehreren Referenzbilder (403) von Videodaten zwei oder mehr Referenzbilder mit unterschiedlichen Auflösungen umfassen.
  19. Das computerlesbare Medium nach einem der Ansprüche 13-18, wobei das eine oder die mehreren Eingangsbilder (401) von Videodaten eine Vielzahl von Eingangsbildern von Videodaten umfassen.
  20. Das computerlesbare Medium nach Anspruch 19, wobei die Vielzahl von Eingangsbildern von Videodaten zwei oder mehr Eingangsbilder von Videodaten mit unterschiedlichen Auflösungen umfasst.
  21. Das computerlesbare Medium nach einem der Ansprüche 13 bis 20, wobei die Vorrichtung so konfiguriert ist, dass sie einen Videocodierungsprozess durchführt, und wobei die Operationen als ein Schritt in dem Videocodierungsprozess durchgeführt werden.
  22. Das computerlesbare Medium nach einem der Ansprüche 13-21, wobei das neuronale Faltungsnetzwerk (407) inhaltsspezifisch ist.
  23. Das computerlesbare Medium nach Anspruch 22, wobei das inhaltsspezifische neuronale Faltungsnetzwerk auf Trainingsdaten trainiert worden ist, die Eingangsbilder umfassen, die Bilder von Videodaten entsprechen, die einen Inhalte desselben Inhaltstyps aufweisen.
  24. Das computerlesbare Medium nach einem der Ansprüche 13-23, wobei die Operationen ferner das Auswählen des neuronalen Faltungsnetzwerks (407) aus einer Bibliothek hierarchischer Algorithmen, auf die der eine oder die mehreren Computer zugreifen können, auf der Grundlage eines Inhaltstyps des einen oder der mehreren Eingangsbilder (401) von Videodaten aufweisen.
DE202017007512.1U 2016-04-11 2017-04-11 Bewegungsschätzung durch maschinelles Lernen Active DE202017007512U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB201606121 2016-04-11
GB201606121 2016-04-11

Publications (1)

Publication Number Publication Date
DE202017007512U1 true DE202017007512U1 (de) 2022-04-28

Family

ID=58549173

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202017007512.1U Active DE202017007512U1 (de) 2016-04-11 2017-04-11 Bewegungsschätzung durch maschinelles Lernen

Country Status (4)

Country Link
US (1) US20180124425A1 (de)
EP (1) EP3298784A1 (de)
DE (1) DE202017007512U1 (de)
WO (1) WO2017178806A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10783611B2 (en) * 2018-01-02 2020-09-22 Google Llc Frame-recurrent video super-resolution
CN110443363B (zh) * 2018-05-04 2022-06-07 北京市商汤科技开发有限公司 图像特征学习方法及装置
US11042992B2 (en) * 2018-08-03 2021-06-22 Logitech Europe S.A. Method and system for detecting peripheral device displacement
US10771807B1 (en) * 2019-03-28 2020-09-08 Wipro Limited System and method for compressing video using deep learning
WO2020236596A1 (en) * 2019-05-17 2020-11-26 Nvidia Corporation Motion prediction using one or more neural networks
US11367268B2 (en) * 2019-08-27 2022-06-21 Nvidia Corporation Cross-domain image processing for object re-identification
US11234017B1 (en) * 2019-12-13 2022-01-25 Meta Platforms, Inc. Hierarchical motion search processing
US20210304457A1 (en) * 2020-03-31 2021-09-30 The Regents Of The University Of California Using neural networks to estimate motion vectors for motion corrected pet image reconstruction
WO2021231320A1 (en) * 2020-05-11 2021-11-18 EchoNous, Inc. Motion learning without labels
US20230144455A1 (en) * 2021-11-09 2023-05-11 Tencent America LLC Method and apparatus for video coding for machine vision

Also Published As

Publication number Publication date
EP3298784A1 (de) 2018-03-28
US20180124425A1 (en) 2018-05-03
WO2017178806A1 (en) 2017-10-19

Similar Documents

Publication Publication Date Title
DE202017007512U1 (de) Bewegungsschätzung durch maschinelles Lernen
DE202017007520U1 (de) Bewegungskompensation durch maschinelles Lernen
Wang et al. UNFusion: A unified multi-scale densely connected network for infrared and visible image fusion
DE69634962T2 (de) Extrapolation von Pixelwerten eines in einem Block enthaltenen Videoobjektes
DE69634221T2 (de) Verfahren und Gerät zur Verarbeitung visueller Information
DE202016009102U1 (de) Verbesserung visueller Daten mittels gestufter Faltungen
DE112020000471T5 (de) Prädiktionscodierung mit neuronalen netzwerken
DE112016005905T5 (de) Verfahren und System zum Verschmelzen erfasster Messungen
DE102016125117A1 (de) Bewegungsvektorkodierung mit dynamischen Referenzbewegungsvektoren
DE202017007528U1 (de) Differenzmetrik für auf maschinellem Lernen basierende Verarbeitungssysteme
DE102019123756A1 (de) Neuronales Netzwerk zur Durchführung einer semantischen Segmentierung eines Eingabebildes
DE102020215942A1 (de) System und verfahren für unüberwachte domänenanpassung mit mischungstraining
WO2008034715A2 (de) Verfahren zur datenkompression in einer videosequenz
DE102016125094A1 (de) Auswahl des Referenz-Bewegungsvektors über Referenzeinzelbild Puffer-Nachverfolgung
DE102020133963A1 (de) Systeme und Verfahren zur Abbildrauschunterdrückung unter Verwendung von tiefen gefalteten Netzwerken
Rajput Mixed Gaussian-impulse noise robust face hallucination via noise suppressed low-and-high resolution space-based neighbor representation
DE112021005070T5 (de) Multi-hop-transformer für räumlich-zeitliches denken und lokalisierung
EP3685352B1 (de) Verfahren und vorrichtung zum bewerten von bildern, betriebsassistenzverfahren und betriebsvorrichtung
DE602004007682T2 (de) Leistungsoptimiertes colokalisiertes bewegungschätzverfahren
Ragini et al. Progressive multi-scale deraining network
DE60007131T2 (de) Optimaler mpeg-standardvideodekoder
EP0939938B1 (de) Verfahren und anordnung zur rechnergestützten bewegungsschätzung oder bewegungskompensation
DE202016008160U1 (de) Dynamischer Kodiermodus für Referenz-Bewegungsvektoren
DE102021119951A1 (de) Verfahren, System und Computerprogrammprodukt zur Erkennung der Umgebung eines Kraftfahrzeugs
DE102021133878A1 (de) Bildkomprimierung mittels künstlicher neuronaler Netzwerke

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