DE112020007226T5 - Technologie zur nutzung von videoquellen-kontextinformationen bei dernachbearbeitung - Google Patents

Technologie zur nutzung von videoquellen-kontextinformationen bei dernachbearbeitung Download PDF

Info

Publication number
DE112020007226T5
DE112020007226T5 DE112020007226.6T DE112020007226T DE112020007226T5 DE 112020007226 T5 DE112020007226 T5 DE 112020007226T5 DE 112020007226 T DE112020007226 T DE 112020007226T DE 112020007226 T5 DE112020007226 T5 DE 112020007226T5
Authority
DE
Germany
Prior art keywords
post
video image
processing
context information
substrates
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112020007226.6T
Other languages
English (en)
Inventor
Changliang Wang
Mohammad R. Haghighat
Wei Hu
Tao Xu
Tianmi Chen
Bin Yang
Jia Bao
Raul Diaz
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE112020007226T5 publication Critical patent/DE112020007226T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing

Abstract

Systeme, Vorrichtungen und Verfahren können eine Quellengerätetechnologie bereitstellen, die eine Vielzahl von Objektbereichen in einem Videobild identifiziert, automatisch Kontextinformationen für das Videobild auf der Basis eines jeden Objektbereichs erzeugt und die Kontextinformationen in ein Signal einbettet, das das Videobild enthält. Darüber hinaus kann die Technologie des Wiedergabegerätes ein Signal dekodieren, das ein Videobild und eingebettete Kontextinformationen enthält, eine Vielzahl von Objektbereichen in dem Videobild auf der Grundlage der eingebetteten Kontextinformationen identifizieren und automatisch eine oder mehrere Nachbearbeitungskonfigurationen für das Videobild auf der Grundlage der einzelnen Objektbereiche auswählen.

Description

  • TECHNISCHES GEBIET
  • Die Ausführungsformen beziehen sich im Allgemeinen auf die Nachbearbeitung von Videos. Insbesondere beziehen sich die Ausführungsformen auf Technologien, die Videoquellen-Kontextinformationen bei Nachbearbeitungsvorgängen verwenden.
  • HINTERGRUND
  • Videos mit ultrahoher Auflösung (z. B. 4K UHD/Ultra High Definition, 8K UHD) können an Remote-Benutzer bei der Medienwiedergabe, bei Online-Spielen, in der virtuellen Realität (VR) und in anderen Bereichen übertragen werden. Obwohl die Videokomprimierung im Allgemeinen den Bandbreitenbedarf eines Videostroms vor der Übertragung reduziert, gibt es noch viel Raum für Verbesserungen. So können beispielsweise Komprimierungsstandards wie HEVC (High Efficiency Video Coding, z. B. H.265) und VP9 eine bessere Kodierungseffizienz auf Kosten einer höheren Rechenkomplexität erreichen. Darüber hinaus führt jede Stufe der Video-Pipeline in der Regel zu verschiedenen Arten von Rauschen und/oder Qualitätsverlusten, die durch Videonachbearbeitung (VPP) unmittelbar vor der Anzeige des Videos behoben werden können. In einem solchen Fall kann die hohe Rechenkomplexität, die mit der Dekomprimierung des Videos verbunden ist, VPP erschweren, insbesondere wenn es sich bei der Anzeigeplattform um ein Client-Gerät (z. B. Laptop, Tablet, Smartphone) mit begrenzten Rechenressourcen und/oder begrenzter Akkunutzungsdauer handelt.
  • Figurenliste
  • Die verschiedenen Vorteile der Ausführungsformen werden dem Fachmann durch Lesen der folgenden Beschreibung und der beigefügten Ansprüche sowie durch Bezugnahme auf die folgenden Zeichnungen deutlich, die Folgendes darstellen:
    • 1 ist ein Blockdiagramm eines Beispiels einer Video-Pipeline gemäß einer Ausführungsform;
    • 2 ist eine Darstellung eines Beispiels für ein Videobild und eine Vielzahl von Objektbereichen im Videobild gemäß einer Ausführungsform;
    • 3 ist ein Flussdiagramm eines Beispiels für ein Verfahren zum Betrieb eines Quellengeräts gemäß einer Ausführungsform;
    • 4 ist ein Flussdiagramm eines Beispiels für ein Verfahren zum Betrieb eines Wiedergabegerätes gemäß einer Ausführungsform;
    • 5 ist eine Darstellung eines Beispiels für eine Vielzahl von neuronalen Netzwerkkonfigurationen gemäß einer Ausführungsform;
    • 6 ist ein Blockdiagramm eines Beispiels einer Echtzeitabfrage nach verfügbaren Rechenressourcen gemäß einer Ausführungsform;
    • 7 ist ein Flussdiagramm eines Beispiels für ein Verfahren zur automatischen Auswahl von Nachbearbeitungskonfigurationen gemäß einer Ausführungsform;
    • 8A und 8B sind Darstellungen von Beispielen für die automatische Auswahl von Nachbearbeitungskonfigurationen gemäß den Ausführungsformen;
    • 9 ist ein Blockdiagramm eines Beispiels für ein leistungsverbessertes Computersystem gemäß einer Ausführungsform;
    • 10 ist ein Beispiel für eine Halbleitergehäusevorrichtung gemäß einer Ausführungsform;
    • 11 ist ein Blockdiagramm eines Beispiels eines Prozessors gemäß einer Ausführungsform; und
    • 12 ist ein Blockdiagramm eines Beispiels eines auf mehreren Prozessoren basierenden Informatiksystems gemäß einer Ausführungsform.
  • BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • In 1 ist eine Video-Pipeline dargestellt, bei der ein Quellengerät 20 Videoinhalte (z. B. ultrahochauflösende Videos) abruft und die Videoinhalte an ein entferntes Wiedergabegerät 22 (z. B. einen Laptop, ein Tablet, ein Smartphone oder ein anderes Client-Gerät mit begrenzten Rechenressourcen) über eine Infrastruktur zur Bereitstellung von Streams (z. B. Programmstreams, Transportstreams) liefert. Der Videoinhalt, der von einer Videoaufnahmekomponente 26 und/oder einer Grafikwiedergabekomponente (z. B. Grafikpipeline und/oder -karte, nicht dargestellt) stammen kann, kann im Allgemeinen eine Abfolge von Videobildern umfassen, die mit Medien (z. B. Fernseh- und/oder Filminhalten), Online-Spielen (z. B. Multiplayer-Spielszenen), VR, Augmented Reality (AR) usw. oder einer beliebigen Kombination davon verbunden sind. Im dargestellten Beispiel enthält das Quellengerät 20 eine ursprüngliche YUV-Stufe 28 (Luma, Farbdifferenz von Blau minus Luma, Farbdifferenz von Rot minus Luma) (z. B. Sequenz, Phase), die den Farbraum für die Videobilder bestimmt.
  • In einer Ausführungsform umfasst das Quellengerät 20 auch eine Stufe zur Erfassung des Kontextes der Videoquelle 30. Wie weiter unten noch näher erläutert wird, können die von der Stufe 30 gesammelten Kontextinformationen Objektbereichskennungen (IDs, z. B. Objektbegrenzungsfelder und/oder Koordinaten) enthalten, die angeben, wo sich Objekte (z. B. Spieler, Bälle usw.) in den Videobildern befinden. So kann die Quellinhalt-Erfassungsstufe 30 eine automatische Objekterkennung (z. B. Computer Vision/CV) und/oder eine Erkennungstechnologie umfassen, um die Objektbereichs-IDs zu generieren. In einem Beispiel umfassen die Kontextinformationen auch Fokusinformationen, Tiefeninformationen, Bewegungsvektorinformationen usw., und zwar auf der Basis der einzelnen Objektbereiche. Die Kontextinformationen können beispielsweise darauf hinweisen, dass ein erstes Objekt (z. B. ein Spieler) in einem Videobild scharf gestellt ist, sich in geringer Tiefe befindet (z. B. relativ nah am Betrachter/Benutzer) und sich relativ schnell bewegt. Die Kontextinformationen können auch anzeigen, dass ein zweites Objekt (z. B. ein Ball) im Videobild unscharf ist, sich in geringer Tiefe befindet und sich sehr schnell bewegt.
  • Das abgebildete Quellengerät 20 enthält einen Video-Encoder 32, der die Farbrauminformationen aus der ursprünglichen YUV-Stufe 28 und die Quellkontextinformationen aus der Erfassungsstufe 30 in einen Bitstream 34 (z. B. ein Signal) kodiert. Die Farbraum- und Quellkontextinformationen können in den Bitstream 34 als SEI-Nachricht (Supplemental Enhancement Information) oder eine andere geeignete Datenstruktur eingebettet werden. In einem Beispiel verwendet der Video-Encoder 32 einen Komprimierungsstandard wie z. B. AVC (Advanced Video Coding, z. B. H.264), HEVC und/oder VP9, um eine relativ hohe Kodierungseffizienz zu erreichen. Um die SEI-Codierung für AVC zu ermöglichen, könnte der Video-Encoder 32 den Typ der Netzwerkabstraktionsschicht (NAL) auf den Wert sechs setzen. Um die SEI-Codierung für HEVC zu ermöglichen, kann der Video-Encoder 32 den NAL-Typ auf einen Wert von 39 setzen, wenn er eine Präfix-Nachricht (z. B. PREFIX_SEI) codiert, und den NAL-Typ auf einen Wert von 40, wenn er eine Suffix-Nachricht (z. B. SUFFIX_SEI) codiert.
  • Das Wiedergabegerät 22 kann einen Video-Decoder 36 enthalten, um den Bitstream 34 nach dem Empfang des Bitstreams 34 von der Stream-Bereitstellungsinfrastruktur 24 zu dekodieren. In einem Beispiel verwendet der Video-Decoder 36 einen Komprimierungsstandard wie z. B. AVC, HEVC und/oder VP9, um eine relativ hohe Kodierungseffizienz zu erreichen. Die Komponenten der Video-Pipeline, wie der Video-Encoder 32, die Stream-Bereitstellungsinfrastruktur 24 und/oder der Video-Decoder 36, können jedoch verschiedene Arten von Rauschen (z. B. visuelles Rauschen, hörbares Rauschen) und/oder Qualitätsverluste (z. B. visuelle Artefakte, hörbare Artefakte) in das dekodierte Signal einbringen. Dementsprechend enthält das abgebildete Wiedergabegerät 22 ein VPP-Subsystem 38, um visuelles Rauschen in einer Ausgabe 40 des Wiedergabegerätes 22 zu reduzieren, hörbares Rauschen in der Ausgabe 40 zu reduzieren, Kompressionsartefakte aus der Ausgabe 40 zu entfernen, den Kontrast in der Ausgabe 40 zu verbessern, die Schärfe in der Ausgabe 40 zu verbessern, die Ausgabe 40 zu skalieren (z. B. die Auflösung zu modifizieren), usw., oder eine beliebige Kombination davon. Wie noch näher erläutert wird, verwendet das VPP-Subsystem 38 die in den Bitstream 34 eingebetteten Quellkontextinformationen, um die Leistung zu verbessern und/oder die Batterienutzungsdauer zu verlängern.
  • Das abgebildete VPP-Subsystem 38 umfasst insbesondere eine Farbraumrekonstruktionsstufe 42, eine Ressourcenabfragestufe 44 und eine Kontext-Extraktionsstufe 46. In einer Ausführungsform sendet die Ressourcenabfragestufe 44 Echtzeitabfragen an ein Betriebssystem (OS) 48, um die Verfügbarkeit von Rechenressourcen wie z. B. einer zentralen Verarbeitungseinheit (CPU, z. B. Host-Prozessor), einer Grafikverarbeitungseinheit (GPU, z. B. Grafikprozessor), einer anwendungsspezifischen integrierten Schaltung (ASIC) usw. zu ermitteln. Wie noch näher erläutert wird, können die Antworten auf die Echtzeitabfragen verwendet werden, um eine oder mehrere Kostenbeschränkungen für das VPP-Subsystem 38 zu ermitteln und/oder festzulegen. Die dargestellte Kontext-Extraktionsstufe 46 identifiziert die Objektbereiche in den Videobildern sowie die anderen Kontextinformationen (z. B. Fokusinformationen, Tiefeninformationen, Bewegungsvektorinformationen), die mit jedem Objektbereich verbunden sind.
  • In einer Ausführungsform verwendet ein Selektor 50 die Quellkontextinformationen aus der Extraktionsstufe 46 und die Kostenbeschränkung(en) aus der Abfragestufe 44, um automatisch eine oder mehrere Nachbearbeitungskonfigurationen 52 (z. B. Lösungen, Algorithmen usw.) für jedes Videobild auf der Basis der einzelnen Objektbereiche auszuwählen. Im gezeigten Beispiel werden die ausgewählte(n) Nachbearbeitungskonfiguration(en) 52 auf die YUV-Bilder 42 aus der Rekonstruktionsstufe 42 angewendet, um die Ausgabe 40 zu erhalten. Auf diese Weise kann die Leistung des Wiedergabegerätes 22 erheblich gesteigert werden, indem sichergestellt wird, dass jeder Objektbereich im Videobild mit einer Konfiguration 52 nachbearbeitet wird, die am besten auf den betreffenden Objektbereich zugeschnitten ist. In der Tat kann mit der dargestellten Lösung eine superauflösende Nachbearbeitung in Echtzeit (z. B. auf der Grundlage künstlicher Intelligenz/AI) erreicht werden.
  • Wenn beispielsweise die Kostenbeschränkung anzeigt, dass die Hardware-Ressourcen derzeit begrenzt sind oder der Stromverbrauch hoch ist (z. B. auf einer batteriebetriebenen Plattform), kann ein Objektbereich, der unscharf, weit vom Betrachter entfernt und/oder statisch ist, mit einer Nachbearbeitungskonfiguration 52 verarbeitet werden, die einen relativ geringen Rechenaufwand hat. Wenn hingegen die Kostenbeschränkung darauf hindeutet, dass die Hardware-Ressourcen derzeit nicht begrenzt sind oder der Stromverbrauch gering ist, kann der unscharfe, weit vom Betrachter entfernte und/oder statische Objektbereich mit einer Nachbearbeitungskonfiguration 52 verarbeitet werden, die einen etwas höheren Rechenaufwand hat (z. B. Verbesserung der Bildqualität in diesem Objektbereich).
  • 2 zeigt ein Videobild 54 (z. B. eine Fußballspielszene) und eine Vielzahl von Objektbereichen 56, die im Videobild 54 identifiziert wurden. Im gezeigten Beispiel liefert eine Kamera Kontextinformationen und fügt die Kontextinformationen zu auf Objektbereichen basierenden Arrays zusammen: R i { x 0 , y 0 , x 1 , y 1 , m v _ x , m v _ y , d e p t h , f o c u s } ,
    Figure DE112020007226T5_0001
    wobei
  • x0, y0, x1, y1:
    Bereichskoordinate
    mv_x, mv_y:
    durchschnittlicher Bewegungsvektor in x- mv_x, mv_y Richtung und y-Richtung in diesem Bereich E[0-32]
    Tiefe:
    die durchschnittliche Tiefe in diesem Bereich Tiefe ∈[0-1] auf der Grundlage der Tiefenkarte
    Fokus:
    wenn dieser Bereich zum Kamerafokus gehört Fokus ∈ {0, 1}
  • Die oben angegebenen Zahlenbereiche dienen lediglich der Erörterung und können je nach den Umständen variieren. In dem gezeigten Beispiel eines Fußballspiels werden vier menschliche Körperbereiche während der Aufnahme identifiziert, und ein Ballbereich wird entweder durch ein Auto-Tracking-Merkmal der Kamera oder durch Tiefenkartensegmentierung identifiziert. Die Kontextinformationen für die Objektbereiche sind wie folgt strukturiert:
    R0{x00, y00, x01, y01, 16, 2, 0.2, 1} Fokussiertes Objekt, geringe Tiefe, relativ schnelle Bewegung
    R1 {x10, y10, x11, y11, 32, 1, 0.1, 0} Unscharf, geringe Tiefe, sehr schnelle
    Bewegung,
    R2{x20, y20, X21, y21, 16, 4, 0.3, 0} Nicht fokussiert, relativ geringe Tiefe, mittlere Bewegung
    R3 {x20, y20, x21, y21, 16, 4, 0.4, 0} Nicht fokussiert, relativ geringe Tiefe, mittlere Bewegung
    R4 {x30, y30, x31, y31, 0, 0, 0.8, 0} Nicht fokussiert, hohe Tiefe, statisch
    R5 {-1, -1, -1, -1, 0, 0, 1, 0} Hintergrund, nicht kodiert und übertragen
  • Es kann immer einen impliziten Hintergrundbereich geben, der den Rest des Videobildes 54 darstellt und weder kodiert noch an das Wiedergabegerät übertragen wird. Schließlich können die strukturierten Daten als SEI-Nachricht gemäß der entsprechenden Nutzlastsyntax eingebettet werden.
  • 3 zeigt ein Verfahren 60 zum Betrieb eines Quellengerätes. Das Verfahren 60 kann im Allgemeinen von einem Quellengerät wie z. B. dem bereits erwähnten Quellengerät 20 (1) durchgeführt werden. Insbesondere kann das Verfahren 60 als ein oder mehrere Module in einem Satz logischer Befehle implementiert werden, die in einem maschinen- oder computerlesbaren Speichermedium gespeichert sind, z. B. in einem Direktzugriffsspeicher (RAM), einem Festwertspeicher (ROM), einem programmierbaren ROM (PROM), einer Firmware, einem Flash-Speicher usw., in konfigurierbarer Logik wie z. B. programmierbaren Logik-Arrays (PLAs), FPGAs, komplexen programmierbaren Logikbausteinen (CPLDs), in Hardware-Logik mit fester Funktionalität unter Verwendung von Schaltungstechnik wie z. B. ASIC, komplementären Metalloxid-Halbleitern (CMOS) oder Transistor-Transistor-Logik (TTL) oder einer beliebigen Kombination davon.
  • Beispielsweise kann der Computerprogrammcode zur Durchführung der im Verfahren 60 gezeigten Vorgänge in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, einschließlich einer objektorientierten Programmiersprache wie JAVA, SMALLTALK, C++ oder dergleichen und herkömmlichen prozeduralen Programmiersprachen wie der Programmiersprache „C“ oder ähnlichen Programmiersprachen. Darüber hinaus können logische Befehle Assembler-Befehle, Befehle der Befehlssatzarchitektur (ISA), Maschinenbefehle, maschinenabhängige Befehle, Mikrocode, Zustandsdaten, Konfigurationsdaten für integrierte Schaltkreise, Zustandsinformationen, die elektronische Schaltkreise personalisieren, und/oder andere strukturelle Komponenten enthalten, die der Hardware eigen sind (z. B. Host-Prozessor, zentrale Verarbeitungseinheit/CPU, Mikrocontroller usw.).
  • Der abgebildete Verarbeitungsblock 62 dient der Gewinnung eines Videobildes. In einer Ausführungsform erhält Block 62 das Videobild von einer Videoaufnahmekomponente (z. B. Kamera) und/oder einer Grafikwiedergabekomponente (z. B. Grafikpipeline). Block 64 kann eine Vielzahl von Objektbereichen im Videobild identifizieren. In einem Beispiel umfasst Block 64 die Verwendung von Objekterfassungs-, -verfolgungs- und/oder - erkennungstechnologie (z. B. Computer Vision) zur Identifizierung der Objektbereiche. Der illustrierte Block 66 generiert automatisch Kontextinformationen für das Videobild auf der Basis der einzelnen Objektbereiche. Wie bereits erwähnt, können die Kontextinformationen Fokusinformationen, Tiefeninformationen, Bewegungsvektorinformationen usw. oder eine beliebige Kombination davon auf der Basis der einzelnen Objektbereiche enthalten. In einer Ausführungsform bettet Block 68 die Kontextinformationen in ein Signal (z. B. einen Bitstream) ein, das das Videobild enthält. Wie bereits erwähnt, können die Kontextinformationen in das Signal als SEI-Nachricht eingebettet werden. In einer Ausführungsform werden bei der Videokodierung keine Overhead-Bits eingeführt. Verglichen mit der typischen Bitrate, die ein 4K-Videostream verbraucht (z. B. 30 bis 60 Mbps), verbrauchen die eingebetteten Kontextinformationen höchstens einige Kilobyte pro Sekunde, was einen vernachlässigbaren Overhead für den Bitstream darstellt. Die Strukturierung der Kontextinformationen auf der Basis der einzelnen Objektbereiche ermöglicht es dem dargestellten Verfahren 60, die Leistung durch größere Flexibilität und Effizienz im Quellengerät zu verbessern.
  • 4 zeigt ein Verfahren 70 zum Betrieb eines Wiedergabegerätes. Das Verfahren 70 kann im Allgemeinen in einem Wiedergabegerät, wie z. B. dem bereits erwähnten Wiedergabegerät 22 (1), durchgeführt werden. Insbesondere kann das Verfahren 70 als ein oder mehrere Module in einem Satz logischer Anweisungen implementiert werden, die in einem maschinen- oder computerlesbaren Speichermedium wie RAM, ROM, PROM, Firmware, Flash-Speicher usw., in konfigurierbarer Logik wie z. B. PLAs, FPGAs, CPLDs, in Hardware-Logik mit fester Funktionalität unter Verwendung von Schaltungstechnologie wie z. B. ASIC, CMOS oder TTL-Technologie oder einer beliebigen Kombination davon gespeichert sind.
  • Der abgebildete Verarbeitungsblock 72 dient der Dekodierung eines Signals, das ein Videobild und eingebettete Kontextinformationen enthält (z. B. Objektbereichs-IDs, Fokusinformationen, Tiefeninformationen, Bewegungsvektorinformationen usw.). Eine Vielzahl von Objektbereichen kann im Videobild in Block 74 auf der Grundlage der eingebetteten Kontextinformationen identifiziert werden. In einer Ausführungsform wählt Block 76 automatisch eine oder mehrere Nachbearbeitungskonfigurationen für das Videobild auf der Basis der einzelnen Objektbereiche aus. Beispielsweise könnte Block 76 automatisch eine erste Nachbearbeitungskonfiguration für einen ersten Objektbereich in einem Videobild auswählen, automatisch eine zweite Nachbearbeitungskonfiguration für einen zweiten Objektbereich in dem Videobild auswählen und automatisch eine dritte Nachbearbeitungskonfiguration für einen dritten Objektbereich in dem Videobild auswählen, wobei die erste, zweite und dritte Nachbearbeitungskonfiguration voneinander verschieden sind. Wie noch näher erläutert wird, kann die Auswahl der Nachbearbeitungskonfiguration(en) die Auswahl zwischen einer oder mehreren neuronalen Netzwerkkonfigurationen, einem oder mehreren Videoverbesserungsprozessen usw. beinhalten.
  • Block 78 wendet die ausgewählte(n) Nachbearbeitungskonfiguration(en) auf das Videobild an, um eine Ausgabe zu erhalten. In einem Beispiel reduzieren die automatisch ausgewählten Nachbearbeitungskonfigurationen eines oder mehrere der folgenden Elemente: visuelles Rauschen in der Ausgabe, hörbares Rauschen in der Ausgabe, Entfernen von Kompressionsartefakten aus der Ausgabe, Verbesserung des Kontrasts in der Ausgabe, Verbesserung der Schärfe in der Ausgabe oder Skalierung der Ausgabe. Das dargestellte Verfahren 70 verbessert die Leistung durch die automatische Auswahl von VPP-Konfigurationen auf der Basis der einzelnen Objektbereiche. So kann beispielsweise jedem Objektbereich eine auf den jeweiligen Objektbereich zugeschnittene VPP-Konfiguration zugewiesen werden. Ein solcher Ansatz verbessert die Flexibilität, reduziert den Stromverbrauch und erhöht die Effizienz des Wiedergabegerätes.
  • 5 zeigt eine skalierbare Vielzahl von neuronalen Netzwerkkonfigurationen 80 (80a-80c). Im gezeigten Beispiel umfasst eine erste Netzwerkkonfiguration 80a sechs Schichten (z. B. relativ niedrige Qualität und Rechenkomplexität) auf der Decoderseite, eine zweite Netzwerkkonfiguration 80b umfasst acht Schichten (z. B. mittlere Qualität und Rechenkomplexität), und eine dritte Netzwerkkonfiguration 80c umfasst zehn Schichten (z. B. relativ hohe Qualität und Rechenkomplexität). Andere Nachbearbeitungskonfigurationen, wie z. B. unterschiedliche Bildfilterstärken, Trainingsgewichte, Trainingsbias-Parameter und/oder Videoverbesserungsprozesse, können ebenfalls verwendet werden. Wie bereits erwähnt, können die Konfigurationen des neuronalen Netzwerks 80 für jeden einzelnen Objektbereich ausgewählt werden, wobei bei der Auswahl die Kontextinformationen der Quelle und die Verfügbarkeit von Rechenressourcen berücksichtigt werden.
  • 6 zeigt die Ausgabe einer Echtzeitabfrage 90 (z. B. in einem vordefinierten Intervall) von einem VPP-Modul 92 (z. B. einer Maschine mit logischen Anweisungen, konfigurierbarer Logik, Hardware-Logik mit fester Funktionalität usw. oder einer beliebigen Kombination davon) an ein Betriebssystem 94. In einem Beispiel ermittelt das Betriebssystem 94 die Verfügbarkeit einer CPU, eines ersten Grafikprozessors („GPU1“) und eines zweiten Grafikprozessors („GPU2“) und gibt eine Antwort auf die Anfrage 90. Das Betriebssystem 94 kann eine oder mehrere zugehörige System-APIs (Anwendungsprogrammierschnittstellen) aufrufen und als Reaktion auf die Abfrage 90 die Auslastung der Hardware (z. B. CPU, GPU, Speicher) bestimmen. In einer Ausführungsform bestimmt das VPP-Modul 92 eine Kostenbeschränkung auf der Grundlage der Antwort(en) des Betriebssystems 94, wobei die Kostenbeschränkung verwendet wird, um Nachbearbeitungskonfigurationen auf einer Basis pro Objektbereich auszuwählen. Ein solcher Ansatz kann besonders nützlich sein, wenn der Bitstream ultrahochauflösende Videos enthält, die eine relativ große Belastung für die Videowiedergabe-Hardware darstellen.
  • Die hier beschriebenen Ausführungsformen lösen das Problem der Wahl der Bereichskonfiguration (z. B. des Algorithmus) als kombinatorisches Optimierungsproblem. Das Hauptaugenmerk liegt auf der Maximierung der aggregierten Qualitätsniveaus aus allen Bereichen unter Berücksichtigung der verfügbaren Rechenressourcen, um Qualitätsniveaus zu erzeugen, die eingeschränkt sind. Ein wichtiger Beitrag ist die Nutzung der von der Videoquelle übermittelten Kontextinformationen, um die Qualitätsstufe jedes Bereichs abzuleiten und die Lösung praktikabel zu machen.
  • Es kann zum Beispiel angenommen werden, dass W die Berechnungsbeschränkung ist, n die Anzahl der Objektbereiche ist, m die Anzahl der dem VPP-Modul 92 zur Verfügung stehenden Berechnungskonfigurationen ist. Für jeden Bereich kann eine Konfiguration aus den m Kandidaten ausgewählt werden. In diesem Beispiel gibt c = (c0,..., cm-1) die Berechnungseinheitskosten der Kandidatenkonfigurationen an. Für den Bereich i kann vi = (vi,0, ... , vi,m-1) die Qualitätsstufen bezeichnen, die die Kandidatenkonfigurationen in dem Bereich erreichen. Zusätzlich kann xi ∈ {0, ..., m - 1} die Wahl der Konfiguration für den Bereich i und di die Größe des Bereichs (oder die Flächengröße des Bereichs) angeben.
  • Das VPP-Modul 92 kann automatisch die xi auf i = 0 n 1 d i c x i W
    Figure DE112020007226T5_0002
    zu unterliegen max x 1 ,..., x n i = 0 n 1   v i , x i ,
    Figure DE112020007226T5_0003
    bestimmen wobei dicxi die Rechenkosten für den Bereich i die sich aus den Rechenkosten pro Einheit und der Größe des Bereichs ergeben.
  • Die Funktion zur Bestimmung der Qualitätsstufen kann die Bewegung des Objektbereichs, den Fokus und die Tiefe als Eingabe verwenden und heuristisch die Qualitätsstufen ableiten, die verschiedene Konfigurationen für jeden Bereich erreichen. Die Konfigurationen haben unterschiedliche Qualitätsauswirkungen auf die verschiedenen Objektbereiche. So können beispielsweise Objektbereiche mit geringerer Tiefe eine höhere Qualitätsstufe erhalten, um eine feinere Nachbearbeitung zu erreichen, während dies für Objektbereiche mit größerer Tiefe nicht möglich ist (z. B. insbesondere bei begrenzten Rechenressourcen). In ähnlicher Weise können auch die in Bewegung befindlichen Objektbereiche einen Mehrwert und/oder eine feinere Konfiguration erhalten. Außerdem können fokussierte Objektbereiche bei der Bestimmung einen zusätzlichen Wert erhalten.
  • Im Beispiel der Fußballszene des Videobildes 54 (2) könnte man davon ausgehen, dass es drei Konfigurationskandidaten gibt (m = 3). Wenn Konfiguration 0 die niedrigste Komplexität darstellt (z. B. CV-basierte Videoqualitätsverbesserung), Konfiguration 1 eine geringere Komplexität (z. B. skalierbares neuronales Netzwerk), und Konfiguration 2 die höchste Komplexität (skalierbares neuronales Netzwerk)darstellt, kann das Qualitätsniveau vi wie folgt dargestellt werden:
    v 0 = (0.1, 0.8, 1) Der höchste Wert wird der komplexesten Verarbeitung zugeordnet
    v 1 = (0.1, 0.8, 1) Der höchste Wert wird der komplexesten Verarbeitung zugeordnet
    v 2 = (0.1, 0.5, 0.6) Geringerer Mehrwert gegenüber komplexerer Verarbeitung
    v 3 = (0.1, 0.5, 0.6) Geringerer Mehrwert gegenüber komplexerer Verarbeitung
    v 4 = (0.1, 0. 2, 0.3) Kein großer zusätzlicher Nutzen für eine komplexere Verarbeitung
    v 5 = (0.1, 0.11, 0.12) Geringer zusätzlicher Nutzen für komplexere Verarbeitung
  • 7 zeigt ein Verfahren 100 zur automatischen Auswahl von Nachbearbeitungskonfigurationen. Das Verfahren 100 kann im Allgemeinen in einem Wiedergabegerät, wie z. B. dem bereits erwähnten Wiedergabegerät 22 (1) und/oder dem VPP-Modul 92 (6), durchgeführt werden. Außerdem kann das Verfahren 100 in den bereits erwähnten Block 76 (4) integriert werden. Insbesondere kann das Verfahren 100 als ein oder mehrere Module in einem Satz logischer Anweisungen implementiert werden, die in einem maschinen- oder computerlesbaren Speichermedium wie RAM, ROM, PROM, Firmware, Flash-Speicher usw., in konfigurierbarer Logik wie z. B. PLAs, FPGAs, CPLDs, in Hardware-Logik mit fester Funktionalität unter Verwendung von Schaltungstechnologie wie z. B. ASIC, CMOS oder TTL-Technologie oder einer beliebigen Kombination davon gespeichert sind.
  • Der illustrierte Verarbeitungsblock 102 generiert eine Echtzeitabfrage nach verfügbaren Rechenressourcen. Eine Kostenbeschränkung kann in Block 104 auf der Grundlage einer oder mehrerer Antworten auf die Echtzeitabfrage bestimmt werden. Zusätzlich bestimmt Block 106 eine aggregierte Nachbearbeitungsqualitätsstufe über die Vielzahl der Objektbereiche. In einer Ausführungsform wird in Block 108 ein Gesamtberechnungsaufwand für die Vielzahl von Objektbereichen bestimmt, wobei die Nachbearbeitungskonfiguration(en) automatisch auf der Grundlage des Gesamtnachbearbeitungsqualitätsniveaus, des Gesamtberechnungsaufwands und der Kostenbeschränkung ausgewählt werden. Dementsprechend verbessert das Verfahren 100 die Leistung weiter, indem es die Verfügbarkeit von Rechenressourcen bei der Auswahl von Nachbearbeitungskonfigurationen auf der Basis eines einzelnen Objektbereichs berücksichtigt.
  • Nun Bezug nehmend auf die 8A und 8B, werden die automatische Auswahl von Nachbearbeitungskonfigurationen für 1) eine Plattform mit ausreichenden Rechenressourcen bzw. 2) eine Plattform ohne ausreichende Rechenressourcen gezeigt.
  • Wenn man davon ausgeht, dass die Dimensionen der Bereiche in der Szene jeweils 10, 1, 10, 6, 4, 30 sind, könnten drei Konfigurationen die folgenden Kosten pro Recheneinheit haben c = (1, 3, 9) . Auf der Grundlage der zuvor beschriebenen Qualitätsstufen und unter Berücksichtigung der Berechnungsbeschränkungen W in verschiedenen Endgerätesituationen:
    • Wie in einem ersten Ergebnis 110 von 8A gezeigt, ist W=500 für jeden Bereich ausreichend, um den Verarbeitungsalgorithmus mit der höchsten Komplexität auszuwählen, d. h.,
    x = ( x 0 , x 1 ,..., x 5 ) = ( 2 ,2 ,2 ,2 ,2 ,2 )
    Figure DE112020007226T5_0004
  • Wie in einem zweiten Ergebnis 112 von 8B gezeigt, führt ein Low-End-Wiedergabegerät die Einschränkung W=250 ein, was zu der unten stehenden Auswahl führt: x = ( 2 ,2 ,2 ,1 ,1 ,0 ) ,   V m a x = 1 + 1 + 0,6 + 0,5 + 0,2 + 0,1 = 3,4, s u m   o f   w e i g h t = 10 9 + 1 9 + 10 9 + 6 3 + 4 3 + 1 30 = 249 < = W
    Figure DE112020007226T5_0005
  • Andere Zuordnungen können entweder den Wert nicht maximieren, oder sie überschreiten die W-Beschränkungen, wie z. B: i f   x = ( 2,2,2,2,1,0 ) , V = 1 + 1 + 0,6 + 0,6 + 0,2 + 0,1 = 3,5   s u m   o f  w e i g h t = 9 10 + 9 1 + 9 10 + 9 6 + 3 4 + 1 30 = 285   > W ( o v e r w e i g h t e d ) i f   x = ( 2,2,0,1,1,1 ) , V = 2,91,   s u m   o f  w e i g h t = 229 < W
    Figure DE112020007226T5_0006
  • In 9 ist ein leistungsfähiges Informatiksystem 120 dargestellt. Das System 120 kann im Allgemeinen Teil eines elektronischen Geräts/einer elektronischen Plattform sein, das/die Computerfunktionalität (z. B. persönlicher digitaler Assistent/PDA, Notebook-Computer, Tablet-Computer, konvertierbares Tablet, Server), Kommunikationsfunktionalität (z. B. Smartphone), Bildgebungsfunktionalität (z. B., Kamera, Camcorder), Medienwiedergabefunktionalität (z. B. intelligentes Fernsehen/TV), tragbare Funktionalität (z. B. Uhr, Brille, Kopfbedeckung, Schuhwerk, Schmuck), Fahrzeugfunktionalität (z. B. Auto, Lkw, Motorrad), Roboterfunktionalität (z. B. autonomer Roboter), Internet-of-Things-Funktionalität (IoT) usw. oder eine beliebige Kombination davon.
  • Im gezeigten Beispiel umfasst das System 120 einen Host-Prozessor 122 (z. B. eine CPU) mit einem integrierten Speicher-Controller (IMC) 124, der mit einem Systemspeicher 126 verbunden ist. In einer Ausführungsform ist ein IO-Modul 128 mit dem Host-Prozessor 122 verbunden. Das abgebildete IO-Modul 128 kommuniziert beispielsweise mit einem Display 130 (z. B. Touchscreen, Flüssigkristallanzeige/LCD, Leuchtdiode/LED-Display), einem Netzwerk-Controller 132 (z. B. verdrahtet und/oder drahtlos) und einem Massenspeicher 134 (z. B. Festplattenlaufwerk/HDD, optische Disk, Solid-State-Drive/SSD, Flash-Speicher usw.). Der Host-Prozessor 122 kann mit dem IO-Modul 128 und einem Grafikprozessor 136 (z. B. GPU) zu einem System on Chip (SoC) 138 kombiniert werden.
  • In einer Ausführungsform arbeitet das Computersystem 120 als Quellengerät. In einem solchen Fall führt der Host-Prozessor 122, das IO-Modul 128 und/oder der Grafikprozessor 136 einen Satz ausführbarer Quellenanweisungen 140 aus, die aus dem Systemspeicher 126 und/oder dem Massenspeicher 134 abgerufen wurden, um einen oder mehrere Aspekte des bereits erörterten Verfahrens 60 (3) durchzuführen. So kann die Ausführung der Quellenanweisungen 140 das Informatiksystem 120 veranlassen, eine Vielzahl von Objektbereichen in einem Videobild zu identifizieren, automatisch Kontextinformationen für das Videobild auf einer Basis pro Objektbereich zu erzeugen, die Kontextinformationen in ein Signal einzubetten, das das Videobild enthält, und das Signal über den Netzwerk-Controller 132 an ein Wiedergabegerät zu senden. Das dargestellte Computersystem 120 wird daher als leistungsfähigeres Quellengerät betrachtet, zumindest insofern, als die Strukturierung der Kontextinformationen auf der Basis der einzelnen Objektbereiche eine größere Flexibilität und Effizienz im Quellengerät ermöglicht.
  • In einer anderen Ausführungsform arbeitet das Computersystem 120 als Wiedergabegerät. In einem solchen Fall führt der Host-Prozessor 122, das IO-Modul 128 und/oder der Grafikprozessor 136 einen Satz ausführbarer Wiedergabeanweisungen 142 aus, die aus dem Systemspeicher 126 und/oder dem Massenspeicher 134 abgerufen wurden, um einen oder mehrere Aspekte des bereits erörterten Verfahrens 70 (4) und/oder des Verfahrens 100 (7) durchzuführen. So kann die Ausführung der Wiedergabeanweisungen 142 das Informatiksystem 120 dazu veranlassen, ein Signal über den Netzwerk-Controller 132 zu empfangen, wobei das Signal ein Videobild und eingebettete Kontextinformationen enthält, das Signal zu dekodieren, eine Vielzahl von Objektbereichen in dem Videobild auf der Grundlage der eingebetteten Kontextinformationen zu identifizieren und automatisch eine oder mehrere Nachbearbeitungskonfigurationen für das Videobild auf einer Basis pro Objektbereich auszuwählen. Das dargestellte Informatiksystem 120 wird daher als leistungsfähiges Wiedergabegerät zumindest insoweit betrachtet, als die automatische Auswahl von VPP-Konfigurationen auf der Grundlage der einzelnen Objektbereiche die Flexibilität verbessert, den Stromverbrauch verringert und die Effizienz des Wiedergabegerätes erhöht.
  • 10 zeigt eine Halbleitervorrichtung 150 (z. B. Chip, Würfel, Gehäuse). Die abgebildete Vorrichtung 150 umfasst ein oder mehrere Substrate 152 (z. B. Silizium, Saphir, Galliumarsenid) und eine Logik 154 (z. B. eine Transistoranordnung und andere integrierte Schaltungen/IC-Komponenten), die mit dem/den Substrat(en) 152 verbunden sind. In einer Ausführungsform implementiert die Logik 154 einen oder mehrere Aspekte des Verfahrens 60 (3), des Verfahrens 70 (4) und/oder des Verfahrens 100 (7), die bereits diskutiert wurden. So kann die Logik 154 die Leistung in einem Quellengerät verbessern, indem sie eine Vielzahl von Objektbereichen in einem Videobild identifiziert, automatisch Kontextinformationen für das Videobild auf der Basis eines jeden Objektbereichs erzeugt und die Kontextinformationen in ein Signal einbettet, das das Videobild enthält. Die Logik 154 kann auch die Leistung in einem Wiedergabegerät verbessern, indem sie ein Signal dekodiert, das ein Videobild und eingebettete Kontextinformationen enthält, eine Vielzahl von Objektbereichen in dem Videobild auf der Grundlage der eingebetteten Kontextinformationen identifiziert und automatisch eine oder mehrere Nachbearbeitungskonfigurationen für das Videobild auf der Grundlage der einzelnen Objektbereiche auswählt.
  • Die Logik 154 kann zumindest teilweise in konfigurierbarer Logik oder Hardware-Logik mit fester Funktionalität implementiert sein. In einem Beispiel umfasst die Logik 154 Transistorkanalbereiche, die in dem/den Substrat(en) 152 positioniert (z. B. eingebettet) sind. Die Schnittstelle zwischen der Logik 154 und dem/den Substrat(en) 152 muss also nicht unbedingt ein abrupter Übergang sein. Die Logik 154 kann auch eine Epitaxieschicht umfassen, die auf einem ersten Wafer des/der Substrats/Substrate 152 gewachsen ist.
  • 11 zeigt einen Prozessorkern 200 gemäß einer Ausführungsform. Der Prozessorkern 200 kann der Kern eines beliebigen Prozessortyps sein, z. B. eines Mikroprozessors, eines eingebetteten Prozessors, eines digitalen Signalprozessors (DSP), eines Netzwerkprozessors oder einer anderen Vorrichtung zur Ausführung von Code. Obwohl in 11 nur ein Prozessorkern 200 dargestellt ist, kann ein Verarbeitungselement alternativ auch mehr als einen der in 11 dargestellten Prozessorkerne 200 enthalten. Der Prozessorkern 200 kann ein Single-Thread-Kern sein, oder, bei mindestens einer Ausführungsform kann der Prozessorkern 200 multithreaded sein, d. h. er kann mehr als einen Hardware-Thread-Kontext (oder „logischen Prozessor“) pro Kern enthalten.
  • 11 zeigt auch einen Speicher 270, der mit dem Prozessorkern 200 verbunden ist. Bei dem Speicher 270 kann es sich um eine Vielzahl von Speichern (einschließlich verschiedener Ebenen der Speicherhierarchie) handeln, die dem Fachmann bekannt oder anderweitig verfügbar sind. Der Speicher 270 kann einen oder mehrere Code-Anweisung(en) 213 enthalten, der/die vom Prozessorkern 200 auszuführen ist/sind, wobei der Code 213 das Verfahren 60 (3), das Verfahren 70 (4) und/oder das Verfahren 100 (7), die bereits erörtert wurden, implementieren kann. Der Prozessorkern 200 folgt einer Programmsequenz von Anweisungen, die durch den Code 213 gekennzeichnet sind. Jede Anweisung kann in einen Front-End-Teil 210 gelangen und von einem oder mehreren Decodern 220 verarbeitet werden. Der Decoder 220 kann als Ausgabe eine Mikrooperation, z. B. eine Mikrooperation mit fester Breite in einem vordefinierten Format, oder andere Anweisungen, Mikroanweisungen oder Steuersignale generieren, die die ursprüngliche Code-Anweisung wiedergeben. Der abgebildete Front-End-Teil 210 umfasst auch eine Logik zur Registerumbenennung 225 und eine Planungslogik 230, die im Allgemeinen Ressourcen zuweisen und die Operation, die dem Konvertierungsanweisung entspricht, zur Ausführung in eine Warteschlange stellen.
  • Der Prozessorkern 200 ist mit einer Ausführungslogik 250 dargestellt, die eine Reihe von Ausführungseinheiten 255-1 bis 255-N umfasst. Einige Ausführungsformen können eine Reihe von Ausführungseinheiten umfassen, die für bestimmte Funktionen oder Funktionsgruppen zuständig sind. Andere Ausführungsformen können nur eine Ausführungseinheit oder eine Ausführungseinheit enthalten, die eine bestimmte Funktion ausführen kann. Die dargestellte Ausführungslogik 250 führt die durch Code-Anweisungen festgelegten Operationen aus.
  • Nach Abschluss der Ausführung der durch die Code-Anweisungen spezifizierten Operationen hebt die Back-End-Logik 260 die Anweisungen des Codes 213 auf. In einer Ausführungsform erlaubt der Prozessorkern 200 die Ausführung von Anweisungen außerhalb der Reihenfolge, verlangt aber, dass die Anweisungen in der richtigen Reihenfolge ausgeführt werden. Die Rückzugslogik 265 kann eine Vielzahl von Formen annehmen, die dem Fachmann bekannt sind (z. B. Nachordnungspuffer oder dergleichen). Auf diese Weise wird der Prozessorkern 200 während der Ausführung des Codes 213 umgewandelt, zumindest in Bezug auf die vom Decoder erzeugte Ausgabe, die von der Registerumbenennungslogik 225 verwendeten Hardware-Register und -Tabellen und alle von der Ausführungslogik 250 modifizierten Register (nicht dargestellt).
  • Obwohl in 11 nicht dargestellt, kann ein Verarbeitungselement andere Elemente auf dem Chip mit dem Prozessorkern 200 umfassen. Ein Verarbeitungselement kann zum Beispiel neben dem Prozessorkern 200 auch eine Speichersteuerlogik enthalten. Das Verarbeitungselement kann eine E/A-Steuerlogik enthalten und/oder eine in die Speichersteuerlogik integrierte E/A-Steuerlogik. Das Verarbeitungselement kann auch einen oder mehrere Caches enthalten.
  • In 12 ist ein Blockdiagramm eines Informatiksystems 1000 gemäß einer Ausführungsform dargestellt. In 12 ist ein Multiprozessorsystem 1000 dargestellt, das ein erstes Verarbeitungselement 1070 und ein zweites Verarbeitungselement 1080 umfasst. Obwohl zwei Verarbeitungselemente 1070 und 1080 dargestellt sind, kann eine Ausführungsform des Systems 1000 natürlich auch nur ein solches Verarbeitungselement enthalten.
  • Das System 1000 ist als Punkt-zu-Punkt-Verbindungssystem dargestellt, wobei das erste Verarbeitungselement 1070 und das zweite Verarbeitungselement 1080 über eine Punkt-zu-Punkt-Verbindung 1050 gekoppelt sind. Es versteht sich von selbst, dass jede oder alle der in 12 dargestellten Verbindungen als Multi-Drop-Bus und nicht als Punkt-zu-Punkt-Verbindung implementiert werden kann.
  • Wie in 12 gezeigt, kann jedes der Verarbeitungselemente 1070 und 1080 ein Multicore-Prozessor sein, der einen ersten und einen zweiten Prozessorkern umfasst (d. h. Prozessorkerne 1074a und 1074b und Prozessorkerne 1084a und 1084b). Solche Kerne 1074a, 1074b, 1084a, 1084b können so konfiguriert werden, dass sie Anweisungscode in ähnlicher Weise ausführen, wie dies oben im Zusammenhang mit 11 beschrieben wurde.
  • Jedes Verarbeitungselement 1070, 1080 kann mindestens einen gemeinsamen Cache 1896a, 1896b enthalten. Der gemeinsam genutzte Cache 1896a, 1896b kann Daten (z. B. Anweisungen) speichern, die von einer oder mehreren Komponenten des Prozessors, wie den Kernen 1074a, 1074b bzw. 1084a, 1084b, verwendet werden. Zum Beispiel kann der gemeinsame Cache 1896a, 1896b Daten, die in einem Speicher 1032, 1034 gespeichert sind, lokal zwischenspeichern, um einen schnelleren Zugriff durch Komponenten des Prozessors zu ermöglichen. In einer oder mehreren Ausführungsformen kann der gemeinsam genutzte Cache 1896a, 1896b einen oder mehrere Caches der mittleren Ebene, wie Ebene 2 (L2), Ebene 3 (L3), Ebene 4 (L4) oder andere Cache-Ebenen, einen Cache der letzten Ebene (LLC) und/oder Kombinationen davon umfassen.
  • Obwohl nur zwei Verarbeitungselemente 1070, 1080 gezeigt werden, ist der Umfang der Ausführungsformen nicht so begrenzt. In anderen Ausführungsformen können ein oder mehrere zusätzliche Verarbeitungselemente in einem bestimmten Prozessor vorhanden sein. Alternativ kann es sich bei einem oder mehreren der Verarbeitungselemente 1070, 1080 um ein anderes Element als einen Prozessor handeln, z. B. um einen Beschleuniger oder ein feldprogrammierbares Gate-Array. Zu den zusätzlichen Verarbeitungselementen können beispielsweise zusätzliche Prozessoren gehören, die mit dem ersten Prozessor 1070 identisch sind, zusätzliche Prozessoren, die heterogen oder asymmetrisch zum ersten Prozessor 1070 sind, Beschleuniger (wie z. B. Grafikbeschleuniger oder digitale Signalverarbeitungseinheiten (DSP)), feldprogrammierbare Gate-Arrays oder jedes andere Verarbeitungselement. Es kann eine Vielzahl von Unterschieden zwischen den Verarbeitungselementen 1070, 1080 hinsichtlich eines Spektrums von Leistungsmerkmalen geben, einschließlich architektonischer, mikroarchitektonischer, thermischer, stromverbrauchsbezogener Merkmale und dergleichen. Diese Unterschiede können sich effektiv als Asymmetrie und Heterogenität zwischen den Verarbeitungselementen 1070, 1080 manifestieren. Bei mindestens einer Ausführungsform können sich die verschiedenen Verarbeitungselemente 1070, 1080 in demselben Chipgehäuse befinden.
  • Das erste Verarbeitungselement 1070 kann außerdem Speichersteuerlogik (MC) 1072 und Punkt-zu-Punkt-Schnittstellen (P-P) 1076 und 1078 umfassen. In ähnlicher Weise kann das zweite Verarbeitungselement 1080 einen MC 1082 und P-P-Schnittstellen 1086 und 1088 umfassen. Wie in 12 dargestellt, koppeln die MCs 1072 und 1082 die Prozessoren mit den jeweiligen Speichern, nämlich einem Speicher 1032 und einem Speicher 1034, die Teile des Hauptspeichers sein können, der lokal mit den jeweiligen Prozessoren verbunden ist. Während der MC 1072 und 1082 als in die Verarbeitungselemente 1070, 1080 integriert dargestellt ist, kann die MC-Logik bei alternativen Ausführungsformen auch als diskrete Logik außerhalb der Verarbeitungselemente 1070, 1080 und nicht darin integriert sein.
  • Das erste Verarbeitungselement 1070 und das zweite Verarbeitungselement 1080 können über P-P-Verbindungen 1076 bzw. 1086 mit einem E/A-Subsystem 1090 verbunden sein. Wie in 12 dargestellt, umfasst das E/A-Subsystem 1090 die P-P-Schnittstellen 1094 und 1098. Darüber hinaus enthält das E/A-Subsystem 1090 eine Schnittstelle 1092 zur Kopplung des E/A-Subsystems 1090 mit einer Hochleistungs-Grafik-Engine 1038. In einer Ausführungsform kann der Bus 1049 verwendet werden, um das Grafikmodul 1038 mit dem E/A-Subsystem 1090 zu verbinden. Alternativ kann auch eine Punkt-zu-Punkt-Verbindung diese Komponenten koppeln.
  • Das E/A-Subsystem 1090 wiederum kann über eine Schnittstelle 1096 mit einem ersten Bus 1016 verbunden sein. In einer Ausführungsform kann der erste Bus 1016 ein Peripheral Component Interconnect (PCI)-Bus oder ein Bus wie ein PCI-Express-Bus oder ein anderer E/A-Verbindungsbus der dritten Generation sein, obwohl der Umfang der Ausführungsformen nicht so beschränkt ist.
  • Wie in 12 dargestellt, können verschiedene E/A-Geräte 1014 (z. B. biometrische Scanner, Lautsprecher, Kameras, Sensoren) mit dem ersten Bus 1016 verbunden werden, zusammen mit einer Busbrücke 1018, die den ersten Bus 1016 mit einem zweiten Bus 1020 verbinden kann. In einer Ausführungsform kann der zweite Bus 1020 ein Low-Pin-Count-Bus (LPC) sein. An den zweiten Bus 1020 können verschiedene Geräte angeschlossen werden, z. B. eine Tastatur/Maus 1012, ein oder mehrere Kommunikationsgeräte 1026 und eine Datenspeichereinheit 1019, wie z. B. ein Plattenlaufwerk oder ein anderes Massenspeichergerät, das in einer Ausführungsform einen Code 1030 enthalten kann. Der dargestellte Code 1030 kann das bereits besprochene Verfahren 60 (3), das Verfahren 70 (4) und/oder das Verfahren 100 (7) implementieren und kann dem bereits besprochenen Code 213 (11) ähnlich sein. Außerdem kann ein Audio-E/A 1024 mit dem zweiten Bus 1020 verbunden sein und eine Batterie 1010 kann das Informatiksystem 1000 mit Strom versorgen.
  • Es sind auch andere Ausführungsformen denkbar. Anstelle der Punkt-zu-Punkt-Architektur von 12 kann ein System beispielsweise einen Multi-Drop-Bus oder eine andere solche Kommunikationstopologie implementieren. Außerdem können die Elemente von 12 alternativ mit mehr oder weniger integrierten Chips als in 12 dargestellt aufgeteilt werden.
  • Zusätzliche Hinweise und Beispiele:
    • Beispiel 1 beinhaltet eine Quellen-Halbleitervorrichtung, die ein oder mehrere Substrate und eine mit dem einen oder den mehreren Substraten gekoppelte Logik umfasst, wobei die Logik zumindest teilweise in einer oder mehreren von konfigurierbarer Logik oder Hardware-Logik mit fester Funktionalität implementiert ist, wobei die Logik mit dem einen oder den mehreren Substraten gekoppelt ist, um eine Vielzahl von Objektbereichen in einem Videobild zu identifizieren, automatisch Kontextinformationen für das Videobild auf einer Basis pro Objektbereich zu erzeugen und die Kontextinformationen in ein Signal einzubetten, das das Videobild enthält.
    • Beispiel 2 beinhaltet die Vorrichtung von Beispiel 1, wobei die Kontextinformationen eine Vielzahl von Objektbereichskennungen und eine oder mehrere von Fokusinformationen, Tiefeninformationen oder Bewegungsvektorinformationen auf der Basis des einzelnen Objektbereichs enthalten.
    • Beispiel 3 beinhaltet die Vorrichtung aus Beispiel 1, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik dazu dient, das Videobild von einer Videoaufnahmekomponente zu erhalten.
    • Beispiel 4 beinhaltet die Vorrichtung aus Beispiel 1, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik dazu dient, das Videobild von einer Grafikwiedergabekomponente zu erhalten.
    • Beispiel 5 beinhaltet die Vorrichtung aus einem der Beispiele 1 bis 3, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik Transistorkanalbereiche umfasst, die innerhalb des einen oder der mehreren Substrate angeordnet sind.
    • Beispiel 6 beinhaltet mindestens ein computerlesbares Speichermedium, das einen Satz von ausführbaren Quellenanweisungen enthält, die, wenn sie von einem Informatiksystem ausgeführt werden, das Informatiksystem veranlassen, eine Vielzahl von Objektbereichen in einem Videobild zu identifizieren, automatisch Kontextinformationen für das Videobild auf einer Basis pro Objektbereich zu erzeugen und die Kontextinformationen in ein Signal einzubetten, das das Videobild enthält.
    • Beispiel 7 beinhaltet das mindestens eine computerlesbare Speichermedium von Beispiel 6, wobei die Kontextinformationen eine Vielzahl von Objektbereichskennungen und eine oder mehrere von Fokusinformationen, Tiefeninformationen oder Bewegungsvektorinformationen auf der Basis des einzelnen Objektbereichs enthalten sollen.
    • Beispiel 8 beinhaltet das mindestens eine computerlesbare Speichermedium von Beispiel 6, wobei die Anweisungen, wenn sie ausgeführt werden, das Informatiksystem außerdem veranlassen, das Videobild von einer Videoaufnahmekomponente zu erhalten.
    • Beispiel 9 beinhaltet das mindestens eine computerlesbare Speichermedium von Beispiel 6, wobei die Anweisungen, wenn sie ausgeführt werden, ferner das Informatiksystem veranlassen, das Videobild von einer Grafikwiedergabekomponente zu erhalten.
    • Beispiel 10 beinhaltet das mindestens eine computerlesbare Speichermedium aus einem der Beispiele 6 bis 9, wobei die Kontextinformationen in das Signal als eine zusätzliche Erweiterungsinformationsnachricht eingebettet sind.
    • Beispiel 11 beinhaltet eine Wiedergabe-Halbleitervorrichtung, die ein oder mehrere Substrate und eine mit dem einen oder den mehreren Substraten gekoppelte Logik umfasst, wobei die Logik zumindest teilweise in einer oder mehreren von konfigurierbarer Logik oder Hardware-Logik mit fester Funktionalität implementiert ist, wobei die Logik mit dem einen oder den mehreren Substraten gekoppelt ist, um ein Signal zu dekodieren, das ein Videobild und eingebettete Kontextinformationen enthält, eine Vielzahl von Objektbereichen in dem Videobild auf der Grundlage der eingebetteten Kontextinformationen zu identifizieren und automatisch eine oder mehrere Nachbearbeitungskonfigurationen für das Videobild auf einer Basis pro Objektbereich auszuwählen.
    • Beispiel 12 beinhaltet die Vorrichtung von Beispiel 11, wobei die eingebetteten Kontextinformationen eine Vielzahl von Objektbereichskennungen und eine oder mehrere von Fokusinformationen, Tiefeninformationen oder Bewegungsvektorinformationen auf der Basis des einzelnen Objektbereichs enthalten.
    • Beispiel 13 beinhaltet die Vorrichtung aus Beispiel 11, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik dazu dient, ein aggregiertes Nachbearbeitungsqualitätsniveau über die Mehrzahl von Objektbereichen zu bestimmen und aggregierte Rechenkosten über die Mehrzahl von Objektbereichen zu bestimmen, wobei die eine oder die mehreren Nachbearbeitungskonfigurationen automatisch auf der Grundlage des aggregierten Nachbearbeitungsqualitätsniveaus, der aggregierten Rechenkosten und einer Kostenbeschränkung ausgewählt werden.
    • Beispiel 14 beinhaltet die Vorrichtung aus Beispiel 13, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik dazu dient, eine Echtzeitabfrage nach verfügbaren Rechenressourcen zu erzeugen und die Kostenbeschränkung basierend auf einer oder mehreren Antworten auf die Echtzeitabfrage zu bestimmen.
    • Beispiel 15 beinhaltet die Vorrichtung aus Beispiel 11, wobei zur automatischen Auswahl der einen oder mehreren Nachbearbeitungskonfigurationen die mit dem einen oder den mehreren Substraten gekoppelte Logik zwischen einer oder mehreren neuronalen Netzwerkkonfigurationen und einem oder mehreren Videoverbesserungsprozessen wählen soll.
    • Beispiel 16 beinhaltet die Vorrichtung aus Beispiel 11, wobei zur automatischen Auswahl der einen oder mehreren Nachbearbeitungskonfigurationen die mit dem einen oder den mehreren Substraten gekoppelte Logik dazu dient, automatisch eine erste Nachbearbeitungskonfiguration für einen ersten Objektbereich in dem Videobild auszuwählen, automatisch eine zweite Nachbearbeitungskonfiguration für einen zweiten Objektbereich in dem Videobild auszuwählen und automatisch eine dritte Nachbearbeitungskonfiguration für einen dritten Objektbereich in dem Videobild auszuwählen, wobei die erste Nachbearbeitungskonfiguration, die zweite Nachbearbeitungskonfiguration und die dritte Nachbearbeitungskonfiguration voneinander verschieden sein sollen.
    • Beispiel 17 beinhaltet die Vorrichtung eines der Beispiele 11 bis 16, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik dazu dient, die automatisch ausgewählte(n) eine oder mehrere Nachbearbeitungskonfiguration(en) auf das Videobild anzuwenden, um eine Ausgabe zu erhalten, und wobei die automatisch ausgewählte(n) eine oder mehrere Nachbearbeitungskonfiguration(en) eines oder mehrere der folgenden Merkmale aufweist (aufweisen): Verringerung des visuellen Rauschens in der Ausgabe, Verringerung des hörbaren Rauschens in der Ausgabe, Entfernung von Kompressionsartefakten aus der Ausgabe, Verbesserung des Kontrasts in der Ausgabe, Verbesserung der Schärfe in der Ausgabe oder Skalierung der Ausgabe.
    • Beispiel 18 beinhaltet die Vorrichtung aus einem der Beispiele 11 bis 16, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik Transistorkanalbereiche umfasst, die innerhalb des einen oder der mehreren Substrate angeordnet sind.
    • Beispiel 19 beinhaltet mindestens ein computerlesbares Speichermedium, das einen Satz von ausführbaren Wiedergabeanweisungen umfasst, die, wenn sie von einem Informatiksystem ausgeführt werden, das Informatiksystem veranlassen, ein Signal zu dekodieren, das ein Videobild und eingebettete Kontextinformationen enthält, eine Vielzahl von Objektbereichen in dem Videobild auf der Grundlage der eingebetteten Kontextinformationen zu identifizieren und automatisch eine oder mehrere Nachbearbeitungskonfigurationen für das Videobild auf einer Basis pro Objektbereich auszuwählen.
    • Beispiel 20 beinhaltet das mindestens eine computerlesbare Speichermedium von Beispiel 19, wobei die eingebetteten Kontextinformationen eine Vielzahl von Objektbereichskennungen und eine oder mehrere von Fokusinformationen, Tiefeninformationen oder Bewegungsvektorinformationen auf der Basis der einzelnen Objektbereiche enthalten.
    • Beispiel 21 beinhaltet das mindestens eine computerlesbare Speichermedium von Beispiel 19, wobei die Wiedergabeanweisungen, wenn sie ausgeführt werden, ferner das Informatiksystem veranlassen, ein aggregiertes Nachbearbeitungsqualitätsniveau über die Mehrzahl von Objektbereichen zu bestimmen und aggregierte Rechenkosten über die Mehrzahl von Objektbereichen zu bestimmen, wobei die eine oder mehreren Nachbearbeitungskonfigurationen automatisch auf der Grundlage des aggregierten Nachbearbeitungsqualitätsniveaus, der aggregierten Rechenkosten und einer Kostenbeschränkung ausgewählt werden.
    • Beispiel 22 beinhaltet das mindestens eine computerlesbare Speichermedium von Beispiel 21, wobei die Wiedergabeainweisungen, wenn sie ausgeführt werden, ferner das Informatiksystem veranlassen, eine Echtzeit-Abfrage nach verfügbaren Rechenressourcen zu erzeugen und die Kostenbeschränkung auf der Grundlage einer oder mehrerer Antworten auf die Echtzeit-Abfrage zu bestimmen.
    • Beispiel 23 beinhaltet das mindestens eine computerlesbare Speichermedium von Beispiel 19, wobei zur automatischen Auswahl der einen oder mehreren Nachbearbeitungskonfigurationen die Wiedergabeanweisungen, wenn sie ausgeführt werden, zwischen einer oder mehreren neuronalen Netzwerkkonfigurationen und einem oder mehreren Videoverbesserungsprozessen auswählen sollen.
    • Beispiel 24 beinhaltet das mindestens eine computerlesbare Speichermedium 19, wobei zum automatischen Auswählen der einen oder mehreren Nachbearbeitungskonfigurationen die Wiedergabeanweisungen, wenn sie ausgeführt werden, das Informatiksystem veranlassen, automatisch eine erste Nachbearbeitungskonfiguration für einen ersten Objektbereich in dem Videobild auszuwählen, automatisch eine zweite Nachbearbeitungskonfiguration für einen zweiten Objektbereich in dem Videobild auszuwählen, und automatisch eine dritte Nachbearbeitungskonfiguration für einen dritten Objektbereich in dem Videobild auszuwählen, wobei die erste Nachbearbeitungskonfiguration, die zweite Nachbearbeitungskonfiguration und die dritte Nachbearbeitungskonfiguration voneinander verschieden sein sollen.
    • Beispiel 25 beinhaltet das mindestens eine computerlesbare Speichermedium aus einem der Beispiele 19 bis 24, wobei die Wiedergabeanweisungen, wenn sie ausgeführt werden, ferner das Informatiksystem veranlassen, die automatisch ausgewählte(n) eine oder mehrere Nachbearbeitungskonfiguration(en) auf das Videobild anzuwenden, um eine Ausgabe zu erhalten, und wobei die automatisch ausgewählte(n) eine oder mehrere Nachbearbeitungskonfiguration(en) eines oder mehrere der folgenden Merkmale aufweist (aufweisen): Reduzieren des visuellen Rauschens in der Ausgabe, Reduzieren des hörbaren Rauschens in der Ausgabe, Entfernen von Kompressionsartefakten aus der Ausgabe, Verbessern des Kontrasts in der Ausgabe, Verbessern der Schärfe in der Ausgabe oder Skalieren der Ausgabe.
    • Beispiel 26 beinhaltet ein Verfahren zum Betreiben eines Quellengerätes, wobei das Verfahren das Identifizieren einer Vielzahl von Objektbereichen in einem Videobild, das automatische Erzeugen von Kontextinformationen für das Videobild auf einer Basis pro Objektbereich und das Einbetten der Kontextinformationen in ein Signal, das das Videobild enthält, umfasst.
    • Beispiel 27 beinhaltet das Verfahren von Beispiel 26, wobei die Kontextinformationen eine Vielzahl von Objektbereichskennungen und eine oder mehrere von Fokusinformationen, Tiefeninformationen oder Bewegungsvektorinformationen auf der Basis der einzelnen Objektbereiche enthalten.
    • Beispiel 28 beinhaltet das Verfahren aus Beispiel 26, wobei das Videobild von einer Videoaufnahmekomponente erhalten wird.
    • Beispiel 29 beinhaltet das Verfahren aus Beispiel 26, wobei das Videobild von einer Grafikwiedergabekomponente erhalten wird.
    • Beispiel 30 beinhaltet das Verfahren nach einem der Beispiele 26 bis 29, wobei die Kontextinformationen in das Signal als zusätzliche Erweiterungsinformationsnachricht eingebettet sind.
    • Beispiel 31 beinhaltet ein Quellengerät mit einem Netzwerk-Controller, einem Prozessor und einem Speicher, der einen Satz ausführbarer Quellenanweisungen enthält, die, wenn sie von dem Prozessor ausgeführt werden, den Prozessor veranlassen, das Verfahren nach einem der Beispiele 26 bis 30 durchzuführen.
    • Beispiel 32 beinhaltet Mittel zur Durchführung des Verfahrens nach einem der Beispiele 26 bis 30.
    • Beispiel 33 beinhaltet ein Verfahren zum Betreiben eines Wiedergabegerätes, wobei das Verfahren das Dekodieren eines Signals, das ein Videobild und eingebettete Kontextinformationen enthält, das Identifizieren einer Vielzahl von Objektbereichen in dem Videobild auf der Grundlage der eingebetteten Kontextinformationen und das automatische Auswählen einer oder mehrerer Nachbearbeitungskonfigurationen für das Videobild auf der Grundlage eines jeden Objektbereichs umfasst.
    • Beispiel 34 beinhaltet das Verfahren von Beispiel 33, wobei die eingebetteten Kontextinformationen eine Vielzahl von Objektbereichskennungen und eine oder mehrere von Fokusinformationen, Tiefeninformationen oder Bewegungsvektorinformationen auf der Basis der einzelnen Objektbereiche enthalten.
    • Beispiel 35 beinhaltet das Verfahren von Beispiel 33, das ferner die Bestimmung eines aggregierten Nachbearbeitungsqualitätsniveaus über die Vielzahl von Objektbereichen und die Bestimmung eines aggregierten Rechenaufwands über die Vielzahl von Objektbereichen umfasst, wobei die eine oder mehreren Nachbearbeitungskonfigurationen automatisch auf der Grundlage des aggregierten Nachbearbeitungsqualitätsniveaus, des aggregierten Rechenaufwands und einer Kostenbeschränkung ausgewählt werden.
    • Beispiel 36 beinhaltet das Verfahren aus Beispiel 35, ferner die Erzeugung einer Echtzeit-Abfrage nach verfügbaren Rechenressourcen und die Bestimmung der Kostenbeschränkung auf der Grundlage einer oder mehrerer Antworten auf die Echtzeit-Abfrage.
    • Beispiel 37 beinhaltet das Verfahren aus Beispiel 33, wobei die automatische Auswahl der einen oder mehreren Nachbearbeitungskonfigurationen die Auswahl zwischen einer oder mehreren neuronalen Netzwerkkonfigurationen und einem oder mehreren Videoverbesserungsprozessen beinhaltet.
    • Beispiel 38 beinhaltet das Verfahren von Beispiel 33, wobei die automatische Auswahl der einen oder mehreren Nachbearbeitungskonfigurationen die automatische Auswahl einer ersten Nachbearbeitungskonfiguration für einen ersten Objektbereich in dem Videobild, die automatische Auswahl einer zweiten Nachbearbeitungskonfiguration für einen zweiten Objektbereich in dem Videobild und die automatische Auswahl einer dritten Nachbearbeitungskonfiguration für einen dritten Objektbereich in dem Videobild umfasst, wobei die erste Nachbearbeitungskonfiguration, die zweite Nachbearbeitungskonfiguration und die dritte Nachbearbeitungskonfiguration voneinander verschieden sein sollen.
    • Beispiel 39 beinhaltet das Verfahren aus einem der Beispiele 33 bis 38, das ferner die Anwendung der automatisch ausgewählten einen oder mehreren Nachbearbeitungskonfigurationen auf das Videobild umfasst, um eine Ausgabe zu erhalten, wobei die automatisch ausgewählte eine oder mehrere Nachbearbeitungskonfigurationen eines oder mehrere der folgenden Merkmale aufweist: Verringerung des visuellen Rauschens in der Ausgabe, Verringerung des hörbaren Rauschens in der Ausgabe, Entfernung von Kompressionsartefakten aus der Ausgabe, Verbesserung des Kontrasts in der Ausgabe, Verbesserung der Schärfe in der Ausgabe oder Skalierung der Ausgabe.
    • Beispiel 40 beinhaltet ein Wiedergabegerät mit einem Netzwerk-Controller, einem Prozessor und einem Speicher, der einen Satz ausführbarer Wiedergabeanweisungen enthält, die, wenn sie von dem Prozessor ausgeführt werden, den Prozessor veranlassen, das Verfahren nach einem der Beispiele 33 bis 39 durchzuführen.
    • Beispiel 41 beinhaltet Mittel zur Durchführung des Verfahrens nach einem der Beispiele 33 bis 39.
  • So kann die hier beschriebene Technologie das Rendern von Videobildern mit extrem hoher Auflösung (z. B. 4K/8K) auf ressourcenbeschränkter Hardware unterstützen und gleichzeitig ein hervorragendes Benutzererlebnis gewährleisten. Darüber hinaus kann in der Phase der Videonachbearbeitung eine flexible Strategie entsprechend den verfügbaren dynamischen Rechenressourcen auf High-End- und Low-End-Hardwaregeräten eingesetzt werden. Dementsprechend können die Komplexität der Berechnungen und der Stromverbrauch reduziert werden. Bei dieser Technologie werden keine Overhead-Bits für die Videokodierung verwendet.
  • Die Ausführungsformen können für alle Arten von integrierten Halbleiterschaltungen („IC“) verwendet werden. Beispiele für diese IC-Chips sind u. a. Prozessoren, Controller, Chipsatzkomponenten, programmierbare Logik-Arrays (PLAs), Speicherchips, Netzwerkchips, Systems on Chip (SoCs), SSD/NAND-Controller-ASICs und dergleichen. Darüber hinaus sind in einigen Zeichnungen Signalleitungen mit Linien dargestellt. Einige können unterschiedlich sein, um mehrere Signalpfade zu kennzeichnen, sie können mit einer Nummer versehen sein, um die Anzahl der Signalpfade anzugeben, und/oder sie können an einem oder mehreren Enden Pfeile haben, um die Richtung des primären Informationsflusses anzuzeigen. Dies sollte jedoch nicht einschränkend ausgelegt werden. Vielmehr können solche zusätzlichen Details in Verbindung mit einer oder mehreren beispielhaften Ausführungsformen verwendet werden, um das Verständnis für eine Schaltung zu erleichtern. Alle dargestellten Signalleitungen können, unabhängig davon, ob sie zusätzliche Informationen enthalten oder nicht, ein oder mehrere Signale umfassen, die sich in mehrere Richtungen ausbreiten können, und können mit jeder geeigneten Art von Signalschema implementiert werden, z. B. digitale oder analoge Leitungen, die mit differentiellen Paaren, Glasfaserleitungen und/oder unsymmetrischen Leitungen implementiert werden.
  • Es können Beispielgrößen/Modelle/Werte/Bereiche angegeben sein, obwohl die Ausführungsformen nicht auf diese beschränkt sind. Da die Herstellungstechniken (z. B. Fotolithografie) im Laufe der Zeit immer ausgereifter werden, ist damit zu rechnen, dass Geräte mit geringerer Größe hergestellt werden können. Darüber hinaus können bekannte Stromversorgungs-/Masseanschlüsse an IC-Chips und andere Komponenten in den Abbildungen dargestellt sein oder auch nicht, um die Darstellung und Diskussion zu vereinfachen und bestimmte Aspekte der Ausführungsformen nicht zu verdecken. Ferner können Anordnungen in Form von Blockdiagrammen dargestellt werden, um zu vermeiden, dass Ausführungsformen unkenntlich gemacht werden, und auch im Hinblick auf die Tatsache, dass die Einzelheiten der Umsetzung solcher Blockdiagramm-Anordnungen in hohem Maße von der Plattform abhängen, auf der die Ausführungsform umgesetzt werden soll, d. h., solche Einzelheiten sollten für einen Fachmann durchaus nachvollziehbar sein. Wo spezifische Details (z. B. Schaltungen) zur Beschreibung von Ausführungsbeispielen aufgeführt sind, sollte es für einen Fachmann offensichtlich sein, dass Ausführungsbeispiele auch ohne oder mit Variationen dieser spezifischen Details praktiziert werden können. Die Beschreibung ist daher als illustrativ und nicht als einschränkend zu betrachten.
  • Der Begriff „gekoppelt“ kann sich hier auf jede Art von direkter oder indirekter Beziehung zwischen den betreffenden Bauteilen beziehen und kann sich auf elektrische, mechanische, flüssige, optische, elektromagnetische, elektromechanische oder andere Verbindungen beziehen. Darüber hinaus werden die Begriffe „erster“, „zweiter“ usw. hier nur zur Erleichterung der Diskussion verwendet und haben keine besondere zeitliche oder chronologische Bedeutung, sofern nicht anders angegeben.
  • Wie in dieser Anmeldung und in den Ansprüchen verwendet, kann eine Liste von Gegenständen, die durch den Begriff „eines oder mehrere von“ verbunden sind, jede Kombination der aufgeführten Begriffe bedeuten. So können beispielsweise die Ausdrücke „eines oder mehrere von A, B oder C“ A, B, C; A und B; A und C; B und C; oder A, B und C bedeuten.
  • Diejenigen, die auf dem Gebiet der Technik erfahren sind, werden aus der vorstehenden Beschreibung ersehen, dass die umfassenden Techniken der Ausführungsformen in einer Vielzahl von Formen umgesetzt werden können. Obwohl die Ausführungsformen in Verbindung mit bestimmten Beispielen beschrieben wurden, sollte der wahre Umfang der Ausführungsformen nicht so eingeschränkt werden, da andere Modifikationen für den erfahrenen Praktiker beim Studium der Zeichnungen, der Beschreibung und der folgenden Ansprüche offensichtlich werden.

Claims (25)

  1. Quellen-Halbleitervorrichtung, die Folgendes umfasst: ein oder mehrere Substrate; und Logik, die mit dem einen oder den mehreren Substraten gekoppelt ist, wobei die Logik zumindest teilweise in einer oder mehreren von konfigurierbarer Logik oder Hardware-Logik mit fester Funktionalität implementiert ist, wobei die Logik mit dem einen oder den mehreren Substraten für Folgendes gekoppelt ist: Identifizieren einer Vielzahl von Objektbereichen in einem Videobild; automatische Generierung von Kontextinformationen für das Videobild auf der Basis eines Objektbereichs; und Einbetten der Kontextinformationen in ein Signal, das das Videobild enthält.
  2. Vorrichtung nach Anspruch 1, wobei die Kontextinformationen eine Vielzahl von Objektbereichskennungen und eine oder mehrere von Fokusinformationen, Tiefeninformationen oder Bewegungsvektorinformationen auf der Basis der einzelnen Objektbereiche enthalten.
  3. Vorrichtung nach Anspruch 1, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik dazu dient, das Videobild von einer Videoaufnahmekomponente zu erhalten.
  4. Vorrichtung nach Anspruch 1, wobei die mit dem einen oder mehreren Substraten gekoppelte Logik dazu dient, das Videobild von einer Grafikwiedergabekomponente zu erhalten.
  5. Vorrichtung nach einem der Ansprüche 1 bis 3, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik Transistorkanalbereiche enthält, die innerhalb des einen oder der mehreren Substrate angeordnet sind.
  6. Mindestens ein computerlesbares Speichermedium, das einen Satz von ausführbaren Quellenanweisungen enthält, die, wenn sie von einem Informatiksystem ausgeführt werden, das Informatiksystem zu Folgendem veranlassen: Identifizieren einer Vielzahl von Objektbereichen in einem Videobild; automatische Generierung von Kontextinformationen für das Videobild auf der Basis eines Objektbereichs; und Einbetten der Kontextinformationen in ein Signal, das das Videobild enthält.
  7. Mindestens ein computerlesbares Speichermedium nach Anspruch 6, wobei die Kontextinformationen eine Vielzahl von Objektbereichskennungen und eine oder mehrere von Fokusinformationen, Tiefeninformationen oder Bewegungsvektorinformationen auf der Basis der einzelnen Objektbereiche enthalten sollen.
  8. Mindestens ein computerlesbares Speichermedium nach Anspruch 6, wobei die Anweisungen, wenn sie ausgeführt werden, das Informatiksystem außerdem veranlassen, das Videobild von einer Videoaufnahmekomponente zu erhalten.
  9. Mindestens ein computerlesbares Speichermedium nach Anspruch 6, wobei die Anweisungen, wenn sie ausgeführt werden, das Informatiksystem außerdem veranlassen, das Videobild von einer Grafikwiedergabekomponente zu erhalten.
  10. Mindestens ein computerlesbares Speichermedium nach einem der Ansprüche 6 bis 9, wobei die Kontextinformationen als eine zusätzliche Erweiterungsinformationsnachricht in das Signal eingebettet sind.
  11. Wiedergabe-Halbleitervorrichtung, die Folgendes umfasst: ein oder mehrere Substrate; und Logik, die mit dem einen oder den mehreren Substraten gekoppelt ist, wobei die Logik zumindest teilweise in einer oder mehreren von konfigurierbarer Logik oder Hardware-Logik mit fester Funktionalität implementiert ist, wobei die Logik mit dem einen oder den mehreren Substraten für Folgendes gekoppelt ist: Dekodieren eines Signals, das ein Videobild und eingebettete Kontextinformationen enthält; Identifizieren einer Vielzahl von Objektbereichen in dem Videobild auf der Grundlage der eingebetteten Kontextinformationen; und automatisches Auswählen einer oder mehrerer Nachbearbeitungskonfigurationen für das Videobild auf der Basis der einzelnen Objektbereiche.
  12. Vorrichtung nach Anspruch 11, wobei die eingebetteten Kontextinformationen eine Vielzahl von Objektbereichskennungen und eine oder mehrere von Fokusinformationen, Tiefeninformationen oder Bewegungsvektorinformationen auf der Basis der einzelnen Objektbereiche enthalten.
  13. Vorrichtung nach Anspruch 11, wobei die mit dem einen oder mehreren Substraten gekoppelte Logik zu Folgendem dient: Bestimmen eines aggregierten Nachbearbeitungsqualitätsniveaus über die Vielzahl von Objektbereichen; und Bestimmen der Gesamtberechnungskosten für die Vielzahl von Objektbereichen, wobei die eine oder mehreren Nachbearbeitungskonfigurationen automatisch auf der Grundlage der Gesamtnachbearbeitungsqualitätsstufe, der Gesamtberechnungskosten und einer Kostenbeschränkung ausgewählt werden.
  14. Vorrichtung nach Anspruch 13, wobei die mit dem einen oder mehreren Substraten gekoppelte Logik zu Folgendem dient: Erzeugen einer Echtzeitabfrage nach verfügbaren Rechenressourcen; und Bestimmen der Kostenbeschränkung auf der Grundlage einer oder mehrerer Antworten auf die Echtzeitabfrage.
  15. Vorrichtung nach Anspruch 11, wobei zur automatischen Auswahl der einen oder mehreren Nachbearbeitungskonfigurationen die mit dem einen oder den mehreren Substraten gekoppelte Logik zwischen einer oder mehreren neuronalen Netzwerkkonfigurationen und einem oder mehreren Videoverbesserungsprozessen wählen soll.
  16. Vorrichtung nach Anspruch 11, wobei zur automatischen Auswahl der einen oder mehreren Nachbearbeitungskonfigurationen die mit dem einen oder den mehreren Substraten gekoppelte Logik zu Folgendem dient: automatisches Auswählen einer ersten Nachbearbeitungskonfiguration für einen ersten Objektbereich im Videobild; automatisches Auswählen einer zweiten Nachbearbeitungskonfiguration für einen zweiten Objektbereich in dem Videobild; und automatisches Auswählen einer dritten Nachbearbeitungskonfiguration für einen dritten Objektbereich in dem Videobild, wobei die erste Nachbearbeitungskonfiguration, die zweite Nachbearbeitungskonfiguration und die dritte Nachbearbeitungskonfiguration voneinander verschieden sein sollen.
  17. Vorrichtung nach einem der Ansprüche 11 bis 16, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik dazu dient, die automatisch ausgewählte(n) eine oder mehrere Nachbearbeitungskonfiguration(en) auf das Videobild anzuwenden, um eine Ausgabe zu erhalten, und wobei die automatisch ausgewählte(n) eine oder mehrere Nachbearbeitungskonfiguration(en) eines oder mehrere der folgenden Merkmale aufweist (aufweisen): Reduzieren des visuellen Rauschens in der Ausgabe, Reduzieren des hörbaren Rauschens in der Ausgabe, Entfernen von Kompressionsartefakten aus der Ausgabe, Verbessern des Kontrasts in der Ausgabe, Verbessern der Schärfe in der Ausgabe oder Skalieren der Ausgabe.
  18. Vorrichtung nach einem der Ansprüche 11 bis 16, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik Transistorkanalbereiche enthält, die innerhalb des einen oder der mehreren Substrate angeordnet sind.
  19. Mindestens ein computerlesbares Speichermedium, das einen Satz von ausführbaren Wiedergabeanweisungen enthält, die, wenn sie von einem Informatiksystem ausgeführt werden, das Informatiksystem zu Folgendem veranlassen: Dekodieren eines Signals, das ein Videobild und eingebettete Kontextinformationen enthält; Identifizieren einer Vielzahl von Objektbereichen in dem Videobild auf der Grundlage der eingebetteten Kontextinformationen; und automatisches Auswählen einer oder mehrerer Nachbearbeitungskonfigurationen für das Videobild auf der Basis der einzelnen Objektbereiche.
  20. Mindestens ein computerlesbares Speichermedium nach Anspruch 19, wobei die eingebetteten Kontextinformationen eine Vielzahl von Objektbereichskennungen und eine oder mehrere von Fokusinformationen, Tiefeninformationen oder Bewegungsvektorinformationen auf der Basis der einzelnen Objektbereiche enthalten.
  21. Mindestens ein computerlesbares Speichermedium nach Anspruch 19, wobei die Wiedergabeanweisungen, wenn sie ausgeführt werden, das Informatiksystem außerdem zu Folgendem veranlassen: Bestimmen eines aggregierten Nachbearbeitungsqualitätsniveaus über die Vielzahl von Objektbereichen; und Bestimmen der Gesamtberechnungskosten für die Vielzahl von Objektbereichen, wobei die eine oder mehreren Nachbearbeitungskonfigurationen automatisch auf der Grundlage der Gesamtnachbearbeitungsqualitätsstufe, der Gesamtberechnungskosten und einer Kostenbeschränkung ausgewählt werden.
  22. Mindestens ein computerlesbares Speichermedium nach Anspruch 21, wobei die Wiedergabeanweisungen, wenn sie ausgeführt werden, das Informatiksystem außerdem zu Folgendem veranlassen: Erzeugen einer Echtzeitabfrage nach verfügbaren Rechenressourcen; und Bestimmen der Kostenbeschränkung auf der Grundlage einer oder mehrerer Antworten auf die Echtzeitabfrage.
  23. Mindestens ein computerlesbares Speichermedium nach Anspruch 19, wobei zur automatischen Auswahl der einen oder mehreren Nachbearbeitungskonfigurationen die Wiedergabeanweisungen, wenn sie ausgeführt werden, zwischen einer oder mehreren neuronalen Netzwerkkonfigurationen und einem oder mehreren Videoverbesserungsprozessen auswählen sollen.
  24. Mindestens ein computerlesbares Speichermedium 19, wobei zum automatischen Auswählen der einen oder mehreren Nachbearbeitungskonfigurationen die Wiedergabeanweisungen, wenn sie ausgeführt werden, das Informatiksystem zu Folgendem veranlassen: automatisches Auswählen einer ersten Nachbearbeitungskonfiguration für einen ersten Objektbereich im Videobild; automatisches Auswählen einer zweiten Nachbearbeitungskonfiguration für einen zweiten Objektbereich in dem Videobild; und automatisches Auswählen einer dritten Nachbearbeitungskonfiguration für einen dritten Objektbereich in dem Videobild, wobei die erste Nachbearbeitungskonfiguration, die zweite Nachbearbeitungskonfiguration und die dritte Nachbearbeitungskonfiguration voneinander verschieden sein sollen.
  25. Mindestens ein computerlesbares Speichermedium nach einem der Ansprüche 19 bis 24, wobei die Wiedergabeanweisungen, wenn sie ausgeführt werden, ferner das Informatiksystem veranlassen, die automatisch ausgewählte(n) eine oder mehrere Nachbearbeitungskonfiguration(en) auf das Videobild anzuwenden, um eine Ausgabe zu erhalten, und wobei die automatisch ausgewählte(n) eine oder mehrere Nachbearbeitungskonfiguration(en) eines oder mehrere der folgenden Merkmale aufweist (aufweisen): Reduzieren des visuellen Rauschens in der Ausgabe, Reduzieren des hörbaren Rauschens in der Ausgabe, Entfernen von Kompressionsartefakten aus der Ausgabe, Verbessern des Kontrasts in der Ausgabe, Verbessern der Schärfe in der Ausgabe oder Skalieren der Ausgabe.
DE112020007226.6T 2020-05-22 2020-05-22 Technologie zur nutzung von videoquellen-kontextinformationen bei dernachbearbeitung Pending DE112020007226T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/091715 WO2021232392A1 (en) 2020-05-22 2020-05-22 Technology to use video source context information in post-processing operations

Publications (1)

Publication Number Publication Date
DE112020007226T5 true DE112020007226T5 (de) 2023-04-13

Family

ID=78708990

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020007226.6T Pending DE112020007226T5 (de) 2020-05-22 2020-05-22 Technologie zur nutzung von videoquellen-kontextinformationen bei dernachbearbeitung

Country Status (4)

Country Link
US (1) US20230171420A1 (de)
CN (1) CN115428465A (de)
DE (1) DE112020007226T5 (de)
WO (1) WO2021232392A1 (de)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8315466B2 (en) * 2006-12-22 2012-11-20 Qualcomm Incorporated Decoder-side region of interest video processing
CN102450010A (zh) * 2009-04-20 2012-05-09 杜比实验室特许公司 定向内插和数据后处理
US9386319B2 (en) * 2013-09-05 2016-07-05 Microsoft Technology Licensing, Llc Post-process filter for decompressed screen content
EP3226561A1 (de) * 2016-03-31 2017-10-04 Thomson Licensing Verfahren und vorrichtung zur codierung eines videos in einen bitstrom mit regionsbasierten nachbearbeitungsparametern in eine sei-nesting-nachricht
US10244167B2 (en) * 2016-06-17 2019-03-26 Gopro, Inc. Apparatus and methods for image encoding using spatially weighted encoding quality parameters
GB2560720B (en) * 2017-03-20 2021-08-25 Canon Kk Method and apparatus for encoding and transmitting at least a spatial part of a video sequence
KR102599947B1 (ko) * 2017-10-27 2023-11-09 삼성전자주식회사 관련 이미지를 검색하기 위한 전자 장치 및 이의 제어 방법
CN109257600B (zh) * 2018-11-28 2020-11-17 福建帝视信息科技有限公司 一种基于深度学习的视频压缩伪影自适应去除方法
US11113959B2 (en) * 2018-12-28 2021-09-07 Intel Corporation Crowdsourced detection, identification and sharing of hazardous road objects in HD maps
EP3767543A1 (de) * 2019-07-17 2021-01-20 Robert Bosch GmbH Vorrichtung und verfahren zum betrieb eines neuronalen netzes

Also Published As

Publication number Publication date
WO2021232392A1 (en) 2021-11-25
US20230171420A1 (en) 2023-06-01
CN115428465A (zh) 2022-12-02

Similar Documents

Publication Publication Date Title
DE102017100609A1 (de) Online-Erfassung und Klassifizierung von dynamischen Gesten mit rekurrenten faltenden neuronalen Netzwerken
DE102018130924A1 (de) Systeme und Verfahren zur dynamischen Gesichtsanalyse mittels eines rekurrenten neuronalen Netzes
DE102019117514A1 (de) Punktwolkenblickwinkel und skalierbare komprimierung/dekomprimierung
DE102018108324A1 (de) System und Verfahren zur Schätzung eines optischen Flusses
DE102020124932A1 (de) Vorrichtung und Verfahren zur Echtzeit-Grafikverarbeitung mittels lokaler und cloudbasierter Grafikverarbeitungsbetriebsmittel
DE102019133028A1 (de) Für neuronale netzwerke geeignetes effizientes matrixformat
DE102020132716A1 (de) System zum analysieren und verbessern von software auf der basis von graph attention netzen
DE102020132557A1 (de) Vorrichtung und verfahren für asynchrones raytracing
DE102020131901A1 (de) Vorrichtung und verfahren zum durchführen nicht lokaler mittelwertfilterung unter verwendung eines bewegungsschätzschaltkreises eines grafikprozessors
DE102019135639A1 (de) Auf Echtzeit-Strahlverfolgung (RTRT) basierende adaptive Mehrfrequenzschattierung (AMFS)
DE112016005809T5 (de) Lichtfeld-Rendering eines Bildes unter Verwendung variabler Rechenkomplexität
DE102021105249A1 (de) Mikrotraining zur iterativen verfeinerung eines neuronalen netzes mit wenigen anpassungen
WO2024002211A1 (zh) 一种图像处理方法及相关装置
Song et al. Wsamf-net: Wavelet spatial attention-based multistream feedback network for single image dehazing
DE102021109050A1 (de) Durch ein neuronales generative adversarial netzwerk unterstützte videokompression und -übertragung
CN115514976A (zh) 图像编码方法、解码方法、装置、可读介质及电子设备
DE112021006157T5 (de) Videocodieren durch nicht-salienz-komprimierung für live-streaming von hochauflösenden videos in einer übertragung niedriger bandbreite
CN114972313A (zh) 图像分割网络预训练方法及装置
DE102021128286A1 (de) Adaptives abtasten mit einer zielabtastrate
DE102021125897A1 (de) History-blockieren zum entrauschen dynamischer raytracing-szenen unter verwendung zeitlicher anhäufung
DE102021113178A1 (de) Techniken für zugriff auf komprimierte daten und ihre statusinformationen sowie nutzung der daten und statusinformationen
DE102021119882A1 (de) Videohintergrundschätzung unter verwendung von räumlich-zeitlichen modellen
DE102021120604A1 (de) Dynamische bildglättung basierend auf netzwerkbedingungen
DE102020133663A1 (de) Asset-caching in rechenarchitekturen für cloud-rendering
DE112020007226T5 (de) Technologie zur nutzung von videoquellen-kontextinformationen bei dernachbearbeitung