DE112017005235T5 - Erhalten und signalisieren einer region oder eines viewports in streaming-medien - Google Patents

Erhalten und signalisieren einer region oder eines viewports in streaming-medien Download PDF

Info

Publication number
DE112017005235T5
DE112017005235T5 DE112017005235.1T DE112017005235T DE112017005235T5 DE 112017005235 T5 DE112017005235 T5 DE 112017005235T5 DE 112017005235 T DE112017005235 T DE 112017005235T DE 112017005235 T5 DE112017005235 T5 DE 112017005235T5
Authority
DE
Germany
Prior art keywords
media
track
component
metadata
sections
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
DE112017005235.1T
Other languages
English (en)
Inventor
Xin Wang
Wang-Lin LAI
Lulin Chen
Shan Liu
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.)
MediaTek Inc
Original Assignee
MediaTek Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by MediaTek Inc filed Critical MediaTek Inc
Publication of DE112017005235T5 publication Critical patent/DE112017005235T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2353Processing of additional data, e.g. scrambling of additional data or processing content descriptors specifically adapted to content descriptors, e.g. coding, compressing or processing of metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/388Volumetric displays, i.e. systems where the image is built up from picture elements distributed through a volume
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234318Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into objects, e.g. MPEG-4 objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2365Multiplexing of several video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format

Abstract

Ein Verfahren oder System zur Unterstützung der dynamischen Konstruktion einer vom Nutzer ausgewählten Teilregion (z.B. Viewport oder Region von Interesse) aus anderen Teilregionen einer Referenzmedienpräsentation wird vorgestellt. Die Komponenten der Referenzmedienpräsentation werden als Komponentenspuren kodiert. Ein Streaming-Decoder empfängt eine Streaming-Medien-Datei der Referenzmedienpräsentation und zeigt eine beliebig ausgewählte Teilregion der Referenzmedienpräsentation an. Die Streaming-Medien-Datei weist eine erhaltene Spur auf, die (i) eine oder mehrere der Vielzahl von Komponentenspuren referenziert und (ii) einen Satz von Operationen zum Konstruieren von Medienabschnitten basierend auf den Medienabschnitten der referenzierten Komponentenspuren spezifiziert. Der Streaming-Decoder stellt Medienabschnitte für die ausgewählte Teilregion bereit, indem er die referenzierten Komponentenspuren abruft und den durch die erhaltene Spur spezifizierten Satz von Operationen durchführt.

Description

  • Querverweis auf die zugehörige(n) Patentanmeldung(en)
  • Die vorliegende Offenbarung ist Teil einer nicht-vorläufigen Anmeldung, die die Prioritäten der am 17. Oktober 2016 bzw. 20. Oktober 2016 eingereichten vorläufigen US-Patentanmeldung Nr. 62/408,867 und 62/410,414 beansprucht. Die Inhalte der oben aufgeführten Anmeldungen werden hierin durch Verweis aufgenommen.
  • Technisches Gebiet
  • Die vorliegende Offenbarung bezieht sich im Allgemeinen auf die Lieferung von Medieninhalten. Insbesondere bezieht sich die vorliegende Offenbarung auf die Unterstützung einer Region von Interesse (ROI) oder eines Viewports für eine 360-Grad-virtuelle-Realität (360VR) -Videopräsentation.
  • Hintergrund
  • Sofern hierin nicht anders angegeben, sind die in diesem Abschnitt beschriebenen Ansätze kein Stand der Technik für die nachfolgend aufgeführten Ansprüche und werden durch die Aufnahme in diesen Abschnitt nicht als Stand der Technik anerkannt.
  • Die Videokodierung wird in einem großen Spektrum von Anwendungen eingesetzt, das sich über Multimedia-Messaging, Videotelefonie und Videokonferenzen über mobiles Fernsehen, drahtloses und Internet-Video Streaming, standard- und hochauflösende Fernsehübertragungen sowie virtuelle Realität (VR) erstreckt. Darüber hinaus werden Videoinhalte an eine Vielzahl von Dekodiergeräten mit heterogener Anzeige und Rechenleistung geliefert.
  • 360-Grad-virtuelle-Realität (360VR) ist eine audiovisuelle Simulation einer veränderten, erweiterten oder substituierten Umgebung. Das Video der virtuellen Realität umgibt den Nutzer und ermöglicht es ihm, sich in jeder Richtung oder in jeden beliebigen Blickwinkel umzusehen, genauso wie er es im wirklichen Leben kann. 360VR-Videos produzieren qualitativ hochwertige und hochauflösende Panoramavideos für den Einsatz in der Produktion von gedruckten und virtuellen Panoramatouren für eine Vielzahl von Anwendungen, wie z.B. Unterhaltung, Pilotenausbildung, Chirurgie und Erforschung von Weltraum oder Tiefsee.
  • Zusammenfassung
  • Die folgende Zusammenfassung dient nur zur Veranschaulichung und soll in keiner Weise einschränkend wirken. Das heißt, die folgende Zusammenfassung dient dazu, Konzepte, Highlights, Vorteile und Vorzüge der hierin beschriebenen neuen und nicht offensichtlichen Techniken vorzustellen. Ausgewählte und nicht alle Implementierungen werden im Folgenden in der detaillierten Beschreibung näher beschrieben. Daher soll die folgende Zusammenfassung nicht dazu dienen, wesentliche Merkmale des beanspruchten Gegenstands zu bestimmen, noch ist sie für die Bestimmung des Umfangs des beanspruchten Gegenstands bestimmt.
  • Ein Streaming-Encoder empfängt Medieninhalte für eine Referenzmedienpräsentation. Der Streaming-Encoder kodiert den empfangenen Medieninhalt als eine Vielzahl von Komponentenspuren. Jede Komponentenspur enthält Medien- oder Metadatenabschnitte (Medien- oder Metadaten-Samples) für eine Komponente der Referenzmedienpräsentation. Der Streaming-Encoder kodiert eine erhaltene Spur, die (i) eine oder mehrere der Vielzahl von Komponentenspuren referenziert und (ii) einen Satz von Operationen zum Konstruieren von Medien- und Metadatenabschnitten einer Teilregion der Referenzmedienpräsentation basierend auf den Medien- oder Metadatenabschnitten der referenzierten Komponentenspuren spezifiziert. Der Streaming-Encoder speichert die kodierten Komponentenspuren und die kodierte erhaltene Spur zum Abruf (z.B. per Streaming, Download, etc.) als Streaming-Datei.
  • Ein Streaming-Decoder empfängt eine Streaming-Medien-Datei, die die erhaltene Spur für die Referenzmedienpräsentation enthält. Der Streaming-Decoder wählt eine Teilregion (z.B. eine ROI) in der Referenzmedienpräsentation aus. Der Streaming-Decoder ruft die erhaltene Spur aus der Streaming-Medien-Datei ab. Der Streaming-Decoder empfängt die referenzierten Komponentenspuren, die von der erhaltenen Spur referenziert werden. Durch das Ausführen des durch die erhaltene Spur spezifizierten Satzes von Operationen stellt dann der Streaming-Decoder Medienabschnitte für die ausgewählte Teilregion bereit.
  • In einigen Ausführungsformen kann der spezifizierte Satz von Operationen eine Anweisung beinhalten, um eine Teilregionsspur gemäß Metadatenabschnitten, die in einer oder mehreren der referenzierten Komponentenspuren gespeichert sind, zu konstruieren. Die Anweisung kann Spurreferenzen auf eine oder mehrere Komponentenspuren beinhalten, die Medienabschnitte speichern, und auf eine oder mehrere Komponentenspuren, die Metadatenabschnitte speichern. Die Anweisung kann auch einen Konstruktor beinhalten, der die Spurreferenzen auf eine oder mehrere Komponentenspuren, die Medienabschnitte speichern, und auf eine oder mehrere Komponentenspuren, die Metadatenabschnitte speichern, aufruft. Die Anweisung kann auch Spurreferenzen auf eine oder mehrere Komponentenspuren beinhalten, die Medienabschnitte speichern, und einen Indikator für die Anzeige, dass Metadatenabschnitte in der erhaltenen Spur gespeichert sind.
  • Figurenliste
  • Die beigeleitenden Zeichnungen sind beigefügt, um ein besseres Verständnis der vorliegenden Offenbarung zu ermöglichen, und sie sind in die vorliegende Offenbarung integriert und bilden einen Teil dieser Offenbarung. Die Zeichnungen veranschaulichen Umsetzungen der vorliegenden Offenbarung und dienen zusammen mit der Beschreibung dazu, die Prinzipien der vorliegenden Offenbarung zu erklären. Es ist zu bemerken, dass die Zeichnungen nicht notwendigerweise maßstäblich sind, da einige Komponenten in anderen Proportionen als in der tatsächlichen Umsetzung gezeigt sind, um das Konzept der vorliegenden Offenbarung deutlich zu machen.
    • 1 zeigt konzeptionell die dynamische Konstruktion einer beliebig ausgewählten Teilregion für eine Referenzmedienpräsentation.
    • 2 zeigt die Kodierung, den Transport und die Dekodierung einer generierten Medien-Datei, die die dynamische Konstruktion einer beliebig ausgewählten Teilregion unterstützt.
    • 3 zeigt eine beispielhafte Implementierung des Streaming-Encoders.
    • 4 zeigt eine beispielhafte Implementierung des Streaming-Decoders.
    • 5 zeigt einen Signalisierungsmechanismus, der auf einem Spur-Konstruktor basiert.
    • 6 zeigt einen Signalisierungsmechanismus, der auf Viewport- oder ROI-Definition-Metadaten basiert.
    • 7 zeigt einen Signalisierungsmechanismus, der auf der Viewport-/ROI-Definitionsabschnitt-Beschreibung basiert.
    • 8 zeigt die beispielhafte Syntax einer Abschnitt-ROI-Transformationseigenschaft.
    • 9 zeigt die beispielhafte Syntax einer Abschnitt-Viewport-T ra nsfo rmationseigenschaft.
    • 10 zeigt eine Tabelle mit möglichen Werten für die Parameterform.
    • 11 zeigt konzeptionell einen Prozess, der zum Generieren von Komponentenspuren und mindestens einer erhaltenen Spur auf mindestens einige der Komponentenspuren referenziert.
    • 12 zeigt konzeptionell einen Prozess zum dynamischen Konstruieren einer bestimmten Teilregion (z.B. ROI oder Viewport) basierend auf einer erhaltenen Spur in einer Streami ng-Medien-Datei.
    • 13 zeigt einen beispielhaften Video-Encoder.
    • 14 zeigt einen beispielhaften Video-Decoder.
    • 15 zeigt konzeptionell ein elektronisches System, mit dem einige Ausführungsformen der vorliegenden Offenbarung implementiert sind.
  • Detaillierte Beschreibung
  • In der folgenden detaillierten Beschreibung werden zahlreiche spezifische Details mit Hilfe von Beispielen dargelegt, um ein gründliches Verständnis der relevanten Lehren zu vermitteln. Jegliche Variationen, Ableitungen und/oder Erweiterungen, die auf den hierin beschriebenen Lehren basieren, fallen in den Schutzbereich der vorliegenden Offenbarung. In einigen Fällen können bekannte Methoden, Verfahren, Komponenten und/oder Schaltungen, die sich auf eine oder mehrere hierin offenbarte Beispielimplementierungen beziehen, auf einem relativ hohen Niveau ohne Details beschrieben werden, um unnötige Verschleierungen von Aspekten der Lehren der vorliegenden Offenbarung zu vermeiden.
  • Dynamische ROI-Konstruktion auf Basis einer erhaltenen Spur
  • Für Anwendungen wie virtuelle Realität (VR), Free Viewpoint Television (FTV), Region von Interesse (ROI) und Video-Kachel-Zusammensetzung bieten einige Ausführungsformen der Offenbarung ein Verfahren und/oder System, das die dynamische Konstruktion einer vom Nutzer ausgewählten Teilregion (z.B. Viewport oder ROI) aus anderen Teilregionen einer Referenzmedienpräsentation unterstützt. Auf der Streaming-Encoder- und/oder Senderseite des Systems können verschiedene räumliche Objekte (z.B. verschiedene Teilregionen, Ansichten, Winkel, Viewports, ROIs usw.) kodiert und als verschiedene Komponentenspuren in einer Streaming-Medien-Datei übertragen werden. Auf der Decoder- und/oder Empfängerseite des Systems kann ein Nutzer dynamisch oder willkürlich eine Teilregion in der Referenzmedienpräsentation auswählen, und der Decoder konstruiert den Inhalt der dynamisch ausgewählten Teilregion aus den verschiedenen Komponentenspuren in der Streaming-Medien-Datei.
  • Eine Referenzmedienpräsentation ist eine Video-, Audio- und/oder andere Art von Medieninhalt (z.B. Bildunterschriften und zeitgesteuerter Text), die mehrere verschiedene Komponenten enthalten können. Diese Komponenten können visuelle oder akustische Komponenten sein, die unterschiedliche räumliche und/oder zeitliche Positionen der Referenzmedienpräsentation einnehmen. Beispiele für solche Komponenten können grafische Überlagerungen, Videoclips, Audioclips oder definierte Teilregionen sein. Eine definierte Teilregion kann einer/einem bestimmten Ausrichtung, Winkel, Ansicht, Region, Viewport oder ROI der größeren Referenzmedienpräsentation entsprechen. So kann beispielsweise die Referenzmedienpräsentation eine 360-Grad-VR (360VR) -Präsentation sein, die omnidirektionale Bilder in einem platonischen festen Projektionsformat (z.B. Würfelkartenprojektion, Oktaederprojektion) oder in einer anderen Art von Projektionsformat (z.B. Gleichwinkelprojektion, Gleichflächenprojektion) enthält. In diesen Fällen können die verschiedenen Komponenten zu verschiedenen Flächen oder Teilregionen der omnidirektionalen Bilder korrespondieren. Die verschiedenen Komponenten können auch zu unterschiedlichen ROIs oder Viewports (z.B. vordefiniert vom Autor der Referenzmedienpräsentation) verschiedener Abschnitte der 360VR-Präsentation korrespondieren.
  • Jede Komponente verfügt über korrespondierende Medienabschnitte und/oder Metadaten, die in korrespondierenden Komponentenspuren einer Streaming-Medien-Datei gespeichert werden können. Medienabschnitte einer Komponente können Abschnitte von komprimierten Bild- oder Tonwerten für diese Komponente beinhalten. Metadatenabschnitte einer Komponente definieren Metadaten der Komponente, einschließlich der räumlichen und zeitlichen Eigenschaften der Komponente, wie Position, Zeit-Informationen, Transformationseigenschaften oder eine ROI.
  • 1 zeigt konzeptionell den dynamischen Aufbau einer beliebig ausgewählten Teilregion für eine Referenzmedienpräsentation 110. Die Referenzmedienpräsentation 110 ist eine 360VR-Präsentation mit mehreren Komponenten 111-119. Die Figur zeigt die Komponenten 111-119 als vordefinierte ROIs oder Viewports der 360VR-Präsentation 110. In einigen Ausführungsformen können die Komponenten 111-119 auch unterschiedliche Ansichten oder Flächen der omnidirektionalen Bilder in der 360VR-Präsentation sein.
  • Die Komponenten 111-119 der Referenzmedienpräsentation werden in mehrere Komponentenspuren 121-130 kodiert. Die Komponentenspuren 121-129 enthalten Abschnitte von Medieninhalten und/oder Definitionsmetadaten für die Komponenten (ROIs oder Ansichten) 111-119. Die Komponentenspuren 130 können eine oder mehrere Spuren beinhalten, die zu anderen Komponenten der Referenzmedienpräsentation 110 korrespondieren, wie beispielsweise Audiospuren, zeitgesteuerte Textspuren, Metadatenspuren oder erhaltene Spuren. Auch wenn nicht gezeigt, beinhalten die Komponentenspuren 121-129 in einigen Ausführungsformen sowohl Medienspuren als auch Metadatenspuren, wobei die Medienspuren zum Speichern oder Erhalten der Abschnitte des Medieninhalts der ROIs verwendet werden, und die Metadatenspuren zum Speichern von Abschnitten von Definitionsmetadaten oder zeitgesteuerten Metadaten der ROIs verwendet werden.
  • Die Figur veranschaulicht auch eine erhaltene Spur 120, die Anweisungen oder Informationen zum Erhalten von Medieninhalten durch Referenzierung auf eine oder mehrere der Komponentenspuren 121-130 spezifiziert. Der erhaltene Inhalt kann verwendet werden, um dynamisch eine Echtzeit-ROI oder einen Viewport 105 zu erstellen. Die dynamisch konstruierte Echtzeit (RT) ROI 105 kann ein Teil der Referenzmedienpräsentation 110 sein, der vom Nutzer beliebig gewählt wird (spezifiziert durch Teilregion-Auswahl 222). Die Position der Echtzeit-ROI 105 in der Referenzmedienpräsentation kann beliebig bestimmt werden, wenn die Referenzmedienpräsentation 110 angezeigt wird, statt statisch bestimmt zu werden, wenn die Referenzmedienpräsentation 110 in die Komponentenspuren 121-130 kodiert wird.
  • Die durch die erhaltene Spur 120 spezifizierten Anweisungen oder Informationen ermöglichen es, den Inhalt der Teilregion 105 dynamisch oder bei Bedarf aus dem Inhalt der Komponentenspuren 121-130 zu konstruieren, statt in einer Streaming-Medien-Datei fest kodiert oder vorgeneriert zu sein. In dem in 1 dargestellten Beispiel wird die Teilregion 105 vom Nutzer so gewählt, dass sie die vordefinierte ROI 112 überlappt. Dementsprechend kann der Inhalt der Teilregion 105 basierend auf den in der erhaltenen Spur 120 angegebenen Anweisungen aus den Medienabschnitten und/oder Metadaten erhalten werden, die in korrespondierenden Komponentenspuren (z.B. der Komponentenspur 122) gespeichert sind.
  • Auch wenn es nicht gezeigt ist, können die Komponentenspuren einer Referenzmedienpräsentation mehrere erhaltene Spuren aufweisen. Darüber hinaus kann eine erhaltene Spur auf andere erhaltene Spuren in rekursiver oder verschachtelter Form referenzieren. Für einige Ausführungsformen können die Komponentenspuren 121-130 eine oder mehrere erhaltene Spuren (zusätzlich zur erhaltenen Spur 120) beinhalten.
  • In einigen Ausführungsformen generiert ein Streaming-Encoder eine Streaming-Medien-Datei basierend auf empfangenen Medieninhalten für eine Referenzmedienpräsentation. Der Streaming-Encoder kodiert den empfangenen Medieninhalt als eine Vielzahl von Komponentenspuren. Jede Komponentenspur enthält Medienabschnitte. Der Streaming-Encoder kodiert eine erhaltene Spur, die (i) eine oder mehrere der Vielzahl von Komponentenspuren referenziert und (ii) einen Satz von Operationen zum Erhalten von Medienabschnitten einer Teilregion der Referenzmedienpräsentation basierend auf den Medienabschnitten aus den referenzierten Komponentenspuren spezifiziert. Der Streaming-Encoder speichert oder sendet die kodierten Komponentenspuren und die kodierte erhaltene Spur als Teil der Streaming-Medien-Datei. In einigen Ausführungsformen werden einige der kodierten Komponentenspuren durch die Streaming-Medien-Datei referenziert, aber nicht an den Decoder übertragen.
  • Ein Streaming-Decoder empfängt die Streaming-Medien-Datei (oder ruft die erhaltene Spur und mindestens einen Teil der Vielzahl von Komponentenspuren durch z.B. Streaming, Download oder Ableitung ab). Der Streaming-Decoder wählt eine Teilregion (z.B. eine ROI) der Referenzmedienpräsentation aus und stellt durch das Ausführen des durch die erhaltene Spur spezifizierten Satzes von Operationen Medienabschnitte für die ausgewählte Teilregion bereit.
  • 2 zeigt die Kodierung, den Transport und die Dekodierung einer generierten Medien-Datei, die den dynamischen Aufbau einer ausgewählten Teilregion unterstützt. Wie dargestellt, empfängt ein Streaming-Encoder 210 den Medieninhalt der Referenzmedienpräsentation 110 von einer Medieninhalt- Quelle 215 und generiert die Komponentenspuren 121-129. Der Streaming-Encoder generiert auch eine erhaltene Spur 120, welche auf eine oder mehrere der Komponentenspuren 121-129 referenzieren kann. Der Streaming-Encoder 210 liefert die Streaming-Medien-Datei 240, die die erhaltene Spur 120 enthält, über das Übertragungsmedium 250 an einen Streaming-Decoder 220. Der Streaming-Decoder 220 empfängt die Streaming-Medien-Datei 240, ruft die von der erhaltenen Spur 120 in nachfolgenden Streaming-Medien-Dateien 245 benötigten Komponentenspuren ab und konstruiert für die Anzeige die ausgewählte Teilregion 105 gemäß den in der erhaltenen Spur 120 spezifizierten Operationen aus den abgerufenen Komponentenspuren.
  • Die Quell-Medieninhalte 215 stellen Medieninhalte bereit, die durch den Streaming-Encoder für die Referenzmedienpräsentation 110 kodiert werden. Die bereitgestellten Medieninhalte können in Form von Pixelwerten, analogen Videosignalen oder anderen Formen von Datensignalen vorliegen. Die Quell-Medieninhalte 215 stellen den Inhalt der verschiedenen Komponenten der Referenzmedienpräsentation dar. Für einige Ausführungsformen, in denen die Referenzmedienpräsentation 110 eine 360VR-Präsentation ist, können verschiedene Kameras, die in verschiedenen Winkeln positioniert sind, verschiedene Teilregionen der omnidirektionalen Bilder erfassen (z.B. Flächen, Ansichten, ROIs, Viewports).
  • Der Streaming-Encoder 210 empfängt den Inhalt der verschiedenen Komponenten der Referenzmedienpräsentation 110 von den Quell-Medieninhalten 215, um die Komponentenspuren 121-130 und die erhaltene Spur 120 zu generieren. Die erhaltene Spur 120 und die Komponentenspuren 121-130 werden selektiv in Streaming-Medien-Dateien (z.B. 240 oder 245) verpackt. In einigen Ausführungsformen befinden sich die Streaming-Medien-Dateien 240 und 245 im ISO Base Media Datei Format (ISOBMFF, definiert nach ISO/IEC 14496-12) und sind in einem Streaming-Transportformat, wie Dynamic Adaptive Streaming over HTTP (DASH) gekapselt, um den Transport durch das Übertragungsmedium 250 zu erleichtern.
  • Die Streaming-Medien-Datei 240 enthält die erhaltene Spur 120. Die Stream-Medien-Datei 240 kann eine oder mehrere der Komponentenspuren 121-130 enthalten. In einigen Ausführungsformen enthält die Streaming-Medien-Datei 240 nicht die tatsächlichen Komponentenspuren 121-130, sondern nur Referenzen auf diese Spuren. Der Streaming-Decoder 220 kann beim Empfangen der Streaming-Medien-Datei 240 die darin enthaltenen Referenzen verwenden, um die benötigten Komponentenspuren abzurufen, indem er z.B. nachfolgende Streaming-Medien-Dateien 245 vom Streaming-Encoder 210 anfordert.
  • 3 zeigt eine beispielhafte Implementierung des Streaming-Encoders 210. Wie gezeigt, beinhaltet der Streaming-Encoder 210 mehrere Video-Encoder 311-319, einen Streaming-Medien-Datei-Setzer 320, einen Encoder 325 für die erhaltene Spur und einen Streaming-Sender 330. In einigen Ausführungsformen sind die Video-Encoder 311-319, der Streaming-Medien-Datei-Setzer 320, der Encoder 325 für die erhaltene Spur und der Streaming-Sender 330 Module von Softwarebefehlen, die von einer oder mehreren Verarbeitungseinheiten (z.B. einem Prozessor) einer Rechenvorrichtung oder einer elektronischen Vorrichtung ausgeführt werden. In einigen Ausführungsformen sind diese Module Module von Hardware-Schaltungen, die durch eine oder mehrere integrierten Schaltungen (ICs) einer elektronischen Vorrichtung implementiert werden. Auch wenn die Module 311-319, 320, 325 und 330 als separate Module dargestellt sind, können einige der Module zu einem einzigen Modul kombiniert werden.
  • Jeder der Video-Encoder 311-319 empfängt einen korrespondierenden Komponenteninhalt (z.B. vordefinierte ROI, eine Ansicht, eine Fläche oder andere Arten von Teilregionen) der Referenzmedienpräsentation 110 und kodiert den jeweiligen Komponenteninhalt, um die entsprechenden Medienabschnitte und/oder Definitionsmetadaten zu generieren. Die Video-Encoder 311-319 können konfiguriert werden, um die Kodierung oder Komprimierung gemäß Videokodierstandards wie H.264, H.265, VP9, etc. durchzuführen. Die Video-Encoder 311-319 können auch die korrespondierenden Kodierungs- oder Kompressionsoperationen gemäß verschiedenen Videokodierungsstandards durchführen. Die Video-Encoder 311-319 können ihre Kodierungs- oder Kompressionsoperationen unabhängig voneinander durchführen. In einigen Ausführungsformen können die Video-Encoder 311-319 auch die Definitionsmetadaten basierend auf Erstellungseingaben bereitstellen.
  • Der Streaming-Medien-Datei-Setzer 320 empfängt den kodierten Komponenteninhalt von den Video-Encodern 311-319 (und anderen Encodern) und generiert die Komponentenspuren 120-130. Die generierten Komponentenspuren 120-130 werden in einem Speicher 100 gespeichert dargestellt, aus dem sie abgerufen und durch Streaming-Medien-Dateien bereitgestellt werden können.
  • Der kodierte Komponenteninhalt jedes Video-Encoders wird in einer korrespondierenden Komponentenspur als Medienabschnitte und/oder Metadatenabschnitte für diese Spur gespeichert. In dem gezeigten Beispiel speichert der Streaming-Medien-Datei-Setzer 320 den von den Video-Encodern 311-319 generierten kodierten Komponenteninhalt jeweils in einer der Komponentenspuren 121-129. Auch wenn es nicht gezeigt ist, beinhaltet der Streaming-Encoder 210 auch einen oder mehrere andere Arten von Medien-Encodern zur Erzeugung anderer Komponentenspuren 130. Diese anderen Medien-Encoder können Encoder für Audiospuren, zeitgesteuerte Textspuren und/oder Metadatenspuren beinhalten.
  • Der Streaming-Encoder 210 generiert auch eine erhaltene Spur 120. Ein Encoder 325 für die erhaltene Spur (der eine Komponente des Streaming-Medien-Datei-Setzers 320 sein kann) generiert die erhaltene Spur 120, indem auf mindestens einige der Komponentenspuren 121-129 referenziert wird. In einigen Ausführungsformen speichert der Encoder 325 für die erhaltene Spur in der erhaltenen Spur 120 Definitionsmetadatenabschnitte. Diese Definitionsmetadatenabschnitte spezifizieren Operationen oder Anweisungen zum Erhalten von Medienabschnitten einer Teilregion der Referenzmedienpräsentation basierend auf den Medien- und/oder Metadatenabschnitten aus den referenzierten Komponentenspuren. Der Empfänger der erhaltenen Spur 120 (z.B. der Streaming-Decoder 220) verwendet die spezifizierten Operationen, um die Medienabschnitte für die ausgewählte Teilregion 105 durch Referenzieren der Komponentenspuren 121-129 zu generieren.
  • Der Streaming-Sender 330 ruft selektiv die generierten Komponentenspuren und/oder die erhaltene Spur aus dem Speicher 100 ab und packt die abgerufenen Spuren in Streaming-Medien-Dateien 240 oder 245 gemäß einem Streaming-Transportformat, wie DASH. Es kann sein, dass die Streaming-Medien-Datei 240 nicht alle Komponentenspuren der Referenzmedienpräsentation enthält, sondern nur die erhaltene Spur 120 und/oder eine begrenzte Teilmenge der Komponentenspuren, die vom Streaming-Decoder 220 angefordert werden.
  • Der Streaming-Decoder 220 empfängt eine Teilregion-Auswahl 222 von einer Benutzeroberfläche 225, die eine durch den Nutzer in Echtzeit ausgewählte Teilregion 105 der Referenzmedienpräsentation 110 anzeigt. Der Streaming-Decoder 220 generiert aus dem Inhalt der empfangenen Streaming-Medien-Datei 240 Inhalte für die ausgewählte Teilregion 105. Eine Anzeigevorrichtung 298 empfängt den generierten Inhalt für die ausgewählte Teilregion und zeigt diesen an. In einigen Ausführungsformen sind der Streaming-Decoder 220, die Benutzeroberfläche 225 und die Anzeigevorrichtung 298 Teile einer elektronischen Vorrichtung 270. Eine solche elektronische Vorrichtung kann eine VR-Anzeigevorrichtung (z.B. eine VR-Brille oder eine mobile Vorrichtung, die zur VR-Anzeige fähig ist) sein, die es dem Nutzer ermöglicht, dynamisch eine Teilregion (Viewport) auszuwählen und den Inhalt dieser Teilregion anzuzeigen. In einigen Ausführungsformen beinhalten der Streaming-Decoder 220, die Benutzeroberfläche 225 und die Anzeigevorrichtung 298 Module von Hardware-Schaltungen, die durch eine oder mehrere integrierte Schaltungen (ICs) der elektronischen Vorrichtung 270 implementiert sind.
  • 4 veranschaulicht eine beispielhafte Implementierung des Streaming-Decoders 220. Wie gezeigt, beinhaltet der Streaming-Decoder 220 mehrere Video-Decoder 411-419, einen Medieninhalt-Extrahierer 420, einen Encoder 425 für die erhaltene Spur und einen Streaming-Empfänger 430. In einigen Ausführungsformen sind die Video-Decoder 411-419, der Medieninhalt-Extrahierer 420, der Encoder 425 für die erhaltene Spur und der Streaming-Empfänger 430 Module von Softwarebefehlen, die von einer oder mehreren Verarbeitungseinheiten (z.B. einem Prozessor) einer Rechenvorrichtung oder einer elektronischen Vorrichtung ausgeführt werden. In einigen Ausführungsformen sind diese Module Module von Hardware-Schaltungen, die durch eine oder mehrere integrierten Schaltungen (ICs) einer elektronischen Vorrichtung implementiert werden. Auch wenn die Module 411-419, 420, 425 und 430 als separate Module dargestellt sind, können einige der Module zu einem einzigen Modul kombiniert werden.
  • Der Streaming-Empfänger 430 empfängt durch Durchführung des Streaming-Protokolls (DASH) und Abstreifen der Streaming-Kapselung die Streaming-Medien-Datei 240 vom Übertragungsmedium 250. Der Medieninhalt-Extrahierer 420 extrahiert dann die erhaltene Spur 120 sowie alle Komponentenspuren (z.B. 121-130) aus der empfangenen Streaming-Medien-Datei 240. Die Video-Decoder 411-419 empfangen und dekodieren jeweils eine der Spuren 121-129 gemäß Videokodierstandards wie H.264, H.265 oder VP9. (Die Komponentenspuren 130 werden nicht durch die Video-Decoder 411-419 dekodiert).
  • Der Encoder 425 für die erhaltene Spur empfängt und dekodiert die erhaltene Spur 120. Der Encoder 425 für die erhaltene Spur empfängt auch die dekodierten Medien- und/oder Metadatenabschnitte von den Video-Decodern 411-419. Der Encoder 425 für die erhaltene Spur empfängt auch die Teilregion-Auswahl 222 vom Nutzer 225. Basierend auf der empfangenen Teilregion-Auswahl 222 und dem Inhalt der erhaltenen Spur 120 konstruiert der Encoder 425 für die erhaltene Spur den Medieninhalt der ausgewählten Teilregion 105. Insbesondere kann der Encoder 425 für die erhaltene Spur die durch die in der erhaltenen Spur 120 gespeicherten Definitionsmetadatenabschnitte spezifizierten Operationen ausführen, um die Medienabschnitte für die ausgewählte Teilregion 222 zu generieren. Die generierten Medienabschnitte werden dann als Inhalt der Teilregion 105 an die Anzeigevorrichtung 298 zur Anzeige geliefert.
  • Da es sein kann, dass die dynamisch aufgebaute Teilregion nur einen kleinen Teil der Referenzmedienpräsentation 110 abdeckt (z.B. eine Teilmenge der vordefinierten ROIs), benötigt die Generierung des Inhalts der ausgewählten Teilregion nur eine Teilmenge der Komponentenspuren. Mit anderen Worten, einige der Komponentenspuren, deren Inhalt nicht für das Erhalten des Inhalts der Teilregion 105 benötigt wird. In einigen Ausführungsformen kann der Streaming-Decoder 220 identifizieren, welche Komponentenspuren für die Generierung der ausgewählten Teilregion benötigt werden und welche nicht. Der Stream-Decoder 220 kann nur die Komponentenspuren abrufen und dekodieren, die für die Generierung der ausgewählten Teilregion benötigt werden, wobei nicht benötigten Komponentenspuren nicht abgerufen und dekodiert werden. Der Streaming-Decoder 220 kann nur die benötigten Komponentenspuren vom Streaming-Encoder 210 (oder einer anderen Streamingquelle über das Übertragungsmedium 250) anfordern, während nicht benötigte Komponentenspuren übergangen werden. Der Streaming-Encoder liefert daraufhin nur die angeforderten Komponentenspuren in der Streaming-Medien-Datei 240 (oder in nachfolgenden Streaming-Medien-Dateien 245).
  • II. Signalisierungsmechanismen für erhaltene Spuren
  • 5-7 zeigen beispielhafte Signalisierungsmechanismen für Streaming-Übertragungen und Streaming-Medien-Dateien, die eine erhaltene Spur unterstützen, die mehrere andere Komponentenspuren referenziert. Wie bereits in Bezug auf 1 oben erwähnt, erlaubt die erhaltene Spur dem Empfänger, Medieninhalte zu konstruieren, indem auf andere Komponentenspuren der Referenzmedienpräsentation 110 referenziert wird. Eine erhaltene Spur, die in der Lage ist, mehrere andere Komponentenspuren zu referenzieren, ermöglicht es einer korrespondierenden Teilregion (z.B. der beliebig gewählten Teilregion 105), ihren Inhalt basierend auf Viewport- und Regionsdefinitionen aus diesen anderen Komponentenspuren zu erhalten.
  • In einigen Ausführungsformen ist eine erhaltene Spur in ihrer Struktur ähnlich wie jede andere Medienspur in ISOBMFF. Die Signalisierungsmechanismen für den Aufbau von Viewport- oder ROI-Spuren aus anderen Viewport- oder ROI-Spuren basieren auf Kodierung unabhängiger Code-Punkte (CICP)-Definitionen in ISO/IEC/23001-8 und deren Übertragungen in ISOBMFF als zeitgesteuerte Metadaten und Abschnittsbeschreibungen. Die Definitionen der Viewports oder ROIs werden entweder als zeitgesteuerte Metadaten in Metadatenspuren oder als Abschnittsbeschreibungsinformationen in Medienspuren übertragen. Die Signalisierungsmechanismen können Spurreferenztypen im ISOBMFF verwenden, um Komponentenspuren, die als Medienspuren für Abschnitte von Medieninhalten referenziert werden, und Komponentenspuren zu identifizieren, die als Metadatenspuren für Abschnitte von Viewport-/Regionsdefinitionen referenziert werden.
  • In einigen Ausführungsformen kann der spezifizierte Satz von Operationen eine Anweisung enthalten, eine Teilregionsspur gemäß Metadatenabschnitten zu konstruieren, die in den referenzierten Komponentenspuren gespeichert sind. Die Anweisung kann Spurreferenzen auf eine oder mehrere Komponentenspuren, die Medienabschnitte speichern, und eine oder mehrere Komponentenspuren beinhalten, die Metadatenabschnitte speichern. Die Anweisung kann auch einen Konstruktor, der die Spurreferenzen auf eine oder mehrere Komponentenspuren aufruft, die Medienabschnitten speichern, und eine oder mehrere Komponentenspuren beinhalten, die Metadatenabschnitte speichern. Der Befehl kann auch Spurreferenzen auf eine oder mehrere Komponentenspuren, die Medienabschnitte speichern, und einen Indikator für die Anzeige beinhalten, dass Metadatenabschnitte in der erhaltenen Spur gespeichert sind.
  • 5 zeigt einen Signalisierungsmechanismus, der auf einem Spur-Konstruktor basiert. Ein „Konstruktor“ ist eine Struktur innerhalb des Streams, die in eine erhaltene Spur als Anweisung zum Erstellen einer Viewport/ROI-Spur, indem auf eine oder mehrere Komponentenspuren (die Viewport/ROI-Spuren sein können) referenziert wird, eingebettet werden kann. Die referenzierten Komponentenspuren werden mit der erhaltenen Spur, in der sich der Konstruktor befindet, durch Verwendung von Spurreferenzen verknüpft (angegeben z.B. durch ‚tref‘ im ISOBMFF). Eine Spurreferenz kann von verschiedenen Typen sein. So kann beispielsweise eine Spurreferenz vom Typ „cnst“ sein, welcher angibt, dass die referenzierte Spur eine Medienspur ist, die Medienabschnitte für Viewport/ROI enthält, oder vom Typ „inst“, welcher angibt, dass die referenzierte Spur eine Metadatenspur ist, die Viewport/ROI-Definition-Metadaten enthält, oder genauer, zeitgesteuerte Metadaten zur Definition von Viewport/ROI.
  • Die Figur zeigt eine Streaming-Medien-Datei 510 mit mehreren Komponentenspuren 511-518 im ISOBMFF. Unter diesen ist die Spur 511 eine erhaltene Spur, die die ‚Konstruktor‘-Struktur aufruft. Der Konstruktor nutzt Spurreferenzen vom Typ ‚cnst‘, um auf Spur 513 und Spur 517 zu referenzieren, um ihre Abschnitte als Medienabschnitte zu verwenden (mit ‚mdat‘ in den Spuren 513 und 517 gespeichert). Der Konstruktor verwendet auch eine Spurreferenz vom Typ ‚inst‘, um auf die Spur 512 zu referenzieren, um ihre Abschnitte (mit ‚mdat‘ in Spur 512 gespeichert) als Definition-Metadaten zu verwenden.
  • Die Figur zeigt auch, wie eine Streaming-Kapselung (z.B. DASH) mit den Spuren der Streaming-Medien-Datei verknüpft ist. Wie gezeigt, verwendet eine Streaming-Kapselung 520 räumliche Beziehungs-Descriptor (SRD)-Konstrukte, um auf die Spuren der Streaming-Medien-Datei 510 zu referenzieren. So ist beispielsweise SRD 521 zu der erhaltenen Spur 511 zugeordnet, SRD 523 ist zu der Komponentenspur 513 zugeordnet und SRD 524 ist zu der Komponentenspur 514 zugeordnet, etc.
  • 6 veranschaulicht einen Signalisierungsmechanismus, der auf Viewport- oder ROI-Metadaten basiert. Der Signalisierungsmechanismus verwendet die Spurreferenzen in einer erhaltenen Spur als Anweisungen zum Erstellen einer Viewport/ROI-Spur, indem auf eine oder mehrere Komponentenspuren für Viewports oder ROIs referenziert wird.
  • Die Figur zeigt eine Streaming-Medien-Datei 610 mit mehreren Komponentenspuren 611-618 im ISOBMFF. Unter diesen ist die Spur 611 eine erhaltene Spur. Die erhaltene Spur 611 verwendet ‚tref‘ Spurreferenzen vom Typ ‚cnst‘, um auf auf Spur 613 und Spur 617 zu referenzieren, um ihre Abschnitte als Medienabschnitte zu verwenden (mit ‚mdat‘ in den Spuren 613 und 617 gespeichert). Die erhaltene Spur 611 verwendet auch die Spurreferenz vom Typ ‚inst‘, um auf die Spur 612 zu referenzieren, um ihre Abschnitte (mit ‚mdat‘ in Spur 612 gespeichert) als Definition-Metadaten zu verwenden.
  • Die Figur zeigt auch, wie eine Streaming-Kapselung (z.B. DASH) mit den Spuren der Streaming-Medien-Datei verknüpft ist. Wie gezeigt, verwendet eine Streaming-Kapselung 620 räumliche Beziehungs-Descriptor (SRD)-Konstrukte, um auf die Spuren der Streaming-Medien-Datei 610 zu referenzieren. So ist beispielsweise SRD 621 zu der erhaltenen Spur 611 zugeordnet, SRD 623 ist zu der Komponentenspur 613 zugeordnet und SRD 624 ist der Komponentenspur 614 zugeordnet, etc.
  • 7 veranschaulicht einen Signalisierungsmechanismus, der auf der Viewport/ROI-Definitionsabschnitt-Beschreibung basiert. Unter diesem Signalisierungsmechanismus verfügt die erhaltene Spur über Spurreferenzen zum Referenzieren anderer Medienspuren für ihre Medienabschnitte, die erhaltene Spur verfügt auch über einen Indikator (‚stsd‘) zum Anzeigen, dass die erhaltene Spur selbst die Definitionsabschnitt-Beschreibung als Definition-Metadaten für einen Viewport/ROI speichert. Die in den referenzierten Medienspuren gespeicherten Medienabschnitte und die in der erhaltene Spur selbst gespeicherte Definitionsabschnitt-Beschreibung werden wiederum zum Aufbau einer Viewport/ROI-Spur verwendet.
  • Die Figur zeigt eine Streaming-Medien-Datei 710 mit mehreren Komponentenspuren 711-718 im ISOBMFF. Unter diesen ist die Spur 711 eine erhaltene Spur. Die erhaltene Spur 711 verwendet ‚tref‘-Spurreferenzen vom Typ ‚cnst‘, um auf Spur 713 und Spur 717 zu referenzieren, um ihre Abschnitte als Medienabschnitte zu verwenden (mit ‚mdat‘ in den Spuren 713 und 717 gespeichert). Die erhaltene Spur verwendet den Indikator ‚stsd‘, um anzugeben, dass Definitionsmetadaten für ROI/Viewport in der erhaltenen Spur 711 selbst als Definitionsabschnitt-Beschreibung gespeichert sind.
  • Die Figur zeigt auch, wie eine Streaming-Kapselung (z.B. DASH) mit den Spuren der Streaming-Medien-Datei verknüpft ist. Wie gezeigt, verwendet eine Streaming-Kapselung 720 räumliche Beziehungs-Descriptor (SRD)-Konstrukte, um auf die Spuren der Streaming-Medien-Datei 710 zu referenzieren. So ist beispielsweise SRD 721 zu der erhaltenen Spur 711 zugeordnet, SRD 723 ist zu der Komponentenspur 713 zugeordnet und SRD 724 ist zu der Komponentenspur 714 zugeordnet, etc.
  • III. Definition von Metadaten einer ROI oder eines Viewports
  • In einigen Ausführungsformen umfassen die Definition-Metadaten für eine ROI oder einen Viewport Abschnitte von Definition-Metadaten (z.B. die in den Spuren 512, 612 und 711 gespeicherten Metadatenabschnitte). Jeder Abschnitt von Metadaten umfasst eine geordnete Liste von Operationen, die an einer geordneten Liste von Eingangsbildobjekten oder -abschnitten durchzuführen sind.
  • In einigen Ausführungsformen ist jede Operation eine Transformationsoperation vom Typ ‚TransformProperty‘ gemäß ISOBMFF ISO/IEC 14496-12. Beispiele für solche Operationen oder Transformationseigenschaften beinhalten Identität (‚idtt‘, Reproduktion eines Eingangsbildeelements), saubere Blende (‚clap‘, Beschneidungs-Transformation eines Eingangsbildobjekts), Abschnitts-Rotation (‚srot‘, Abschnitts-Rotation eines Eingangsbildobjekts) und Zerfließen (‚dslv‘, weiche Verschmelzung von zwei oder mehr Eingangsbildobjekten).
  • Um die Konstruktion von ROI und/oder Viewport zu unterstützen, bieten einige Ausführungsformen der Offenbarung weiter die folgenden Operationen oder Transformationseigenschaften: Abschnitt-ROI (‚sroi‘) und Abschnitt-Viewport (‚svpt‘). Diese Operationen können die gleiche Syntax haben wie der zeitgesteuerte ROI-Metadaten-Abschnitt-Eintrag, der in ISO/IEC 23001-10 definiert ist.
  • Die Abschnitt-ROI (‚sroi‘) -Transformation-Eigenschaft (oder Operation) extrahiert eine ROI aus dem Eingangsbildobjekt oder einer Liste von Eingangsbildobjekten gemäß einer ROI-Definition. 8 zeigt die beispielhafte Syntax der Abschnitt-ROI-Transformation-Eigenschaft. Im Folgenden werden die Semantiken in der beispielhaften Syntax für die Abschnitt-ROI-Transformation-Eigenschaft erläutert:
  • Die Parameter reference_width und reference_height geben jeweils die Breite und Höhe des Referenzrechteckraums an, in dem alle ROI-Koordinaten (top_left_x, top_left_y, width und height) berechnet werden. Diese Felder erlauben es, eine ROI-Metadatenspur mit Videospuren unterschiedlicher Auflösungen, die jedoch die gleiche visuelle Quelle darstellen, zu verknüpfen.
  • Die Parameter top_left_x und top_left_y geben jeweils die horizontale und vertikale Koordinate der linken oberen Ecke des Rechteckbereichs an, der zu dem Medienabschnitt der referenzierten Spur zugeordnet ist.
  • Die Parameter width und height geben jeweils die Breite und Höhe des Rechteckbereichs an, der zu dem Medienabschnitt der referenzierten Spur zugeordnet ist.
  • Der Parameter interpolate gibt die zeitliche Kontinuität der aufeinanderfolgenden Abschnitte an. Wenn der Parameter auf true gesetzt ist, kann die Anwendung die Werte der ROI-Koordinaten zwischen dem vorherigen Abschnitt und dem aktuellen Abschnitt linear interpolieren. Wenn der Parameter auf false gesetzt ist, soll keine Interpolation der Werte zwischen dem vorherigen und dem aktuellen Abschnitt durchgeführt werden. Bei der Verwendung der Interpolation wird erwartet, dass die interpolierten Abschnitte mit der Darstellungszeit der Abschnitte in der referenzierten Spur übereinstimmen. So wird beispielsweise für jeden Video-Abschnitt einer Videospur ein interpolierter 2D-kartesischer-Koordinaten-Abschnitt berechnet.
  • Abschnitt-Viewport
  • Die Abschnitt-Viewport (‚svpt‘)-Transformations-Eigenschaft konstruiert (oder extrahiert) ein Viewport-Abschnitt-Bild aus dem Eingangsbildobjekt oder einer Liste von Eingangsbildobjekten gemäß einer Viewport-Definition. 9 zeigt die Beispielsyntax für die Abschnitt-Viewport-Transformation-Eigenschaft. Im Folgenden werden die Semantiken in der Beispielsyntax für die Abschnitt-Viewport-Transformation-Eigenschaft erläutert:
  • Der Parameter dimension gibt die Dimension des Freiraumes an, in dem sich der Viewport befindet. Er nimmt einen Wert von 1, 2 oder 3 an.
  • Die Parameter reference_x, reference_y und reference_z geben jeweils die Referenz (Versatz) -werte der x-, y- und z-Achsen-Koordinaten im Referenzsystem an, in denen Werte der Links- und Rechtsbewegung (x), der Auf- und Abbewegung (y) und der Vorwärts- und Rückwärtsbewegung (z) aller Viewports berechnet werden.
  • Die Parameter reference_pitch, reference_yaw und reference_roll geben jeweils die Referenz (Versatz) -werte der Neigungs-, Gier- und Rollwinkel im Bezugssystem an, in dem die Neigungs-, Gier- und Rollwinkel aller Viewports berechnet werden. Die maximalen Bereiche von reference_pitch, reference_yaw und reference_rol sind jeweils [0, 180], [0, 360] und [0, 360], die die maximalen Winkelbereiche [-90, 90], [-180, 180], [-180, 180] für Neigung, Gieren und Rollen darstellen. Die Maximalwertbereiche können auch so gewählt werden, dass sie die maximalen Winkelbereiche [-90, 90], [0, 360], [0, 360] für Neigung, Gieren und Rollen darstellen.
  • Die Parameter reference_2d_width und reference_2d_height geben jeweils die Breite und Höhe des planaren 2D-Rechteckraums an, in dem alle Viewport-Ansicht-Koordinaten (top_left_x, top_left_y, center_x und center_y) berechnet werden.
  • Die Parameter x, y und z geben jeweils die Werte der x-, y- und z-Achsen-Koordinaten im Bezugssystem an, in dem die Links- und Rechtsbewegung (x), die Auf- und Abbewegung (y) und die Vorwärts- und Rückwärtsbewegung (z) des Viewports berechnet werden. Diese Felder ermöglichen es, eine Viewport-Metadatenspur mit Medienspuren unterschiedlicher Qualität, die jedoch dieselbe visuelle Quelle repräsentieren, zu verbinden.
  • Die Parameter pitch, yaw und roll geben jeweils die Werte der Neigungs-, Gier- und Rollwinkel in dem Bezugssystem an, in dem die Neigungs-, Gier- und Rollwinkel des Viewports berechnet werden. Diese Felder ermöglichen es, eine Viewport-Metadatenspur mit Medienabschnitten von referenzierten Medienspuren unterschiedlicher Qualität, die jedoch die gleiche visuelle Quelle repräsentieren, zu verknüpfen.
  • Der Parameter shape zeigt eine Form der Viewport-Ansicht an. 10 zeigt eine Tabelle mit den möglichen Werten für den Parameter shape.
  • Die Parameter top_left_x und top_left_y geben jeweils die horizontalen und vertikalen Koordinaten der linken oberen Ecke der rechteckigen (Form = 1), dreieckigen (Form = 2) und quadratischen (Form = 3) Viewport-Ansicht an, die dem Medienabschnitt der referenzierten Spur zugeordnet sind.
  • Die Parameter width und height geben jeweils die Breite und Höhe der rechteckigen (Form = 1) und dreieckigen (Form = 2) Viewport-Ansicht an, die dem Medienabschnitt der referenzierten Spur zugeordnet sind.
  • Der Parameter rotation gibt die Ausrichtung der dreieckigen (Form = 2) Viewport-Ansicht an, die dem Medienabschnitt der referenzierten Spur zugeordnet ist. Die Werte 0, 1, 2 und 3 repräsentieren jeweils Oberseite oben (keine Drehung), Oberseite unten (180° Drehungen), Oberseite links (90° Drehung gegen den Uhrzeigersinn) und Oberseite rechts (90° Drehung im Uhrzeigersinn).
  • Der Parameter size gibt die Größe des Quadrats (Form = 3) der Viewport-Ansicht an, die dem Medienabschnitt der referenzierten Spur zugeordnet ist.
  • Die Parameter center_x und center_y geben jeweils die horizontalen und vertikalen Koordinaten der Mitte der kreisförmigen (Form = 3) Viewport-Ansicht an, die dem Medienabschnitt der referenzierten Spur zugeordnet ist.
  • Der Parameter radius gibt den Radius der kreisförmigen (Form = 3) Viewport-Ansicht an, die dem Medienabschnitt der referenzierten Spur zugeordnet ist.
  • Der Parameter interpolate gibt die zeitliche Kontinuität der aufeinanderfolgenden Abschnitte an. Wenn der Parameter auf true gesetzt ist, kann die Anwendung Werte der korrespondierenden Viewport-Metadatenattribute zwischen dem vorherigen Abschnitt und dem aktuellen Abschnitt linear interpolieren. Wenn der Parameter auf false gesetzt ist, soll keine Interpolation der Werte zwischen dem vorherigen und dem aktuellen Abschnitt durchgeführt werden. Bei der Verwendung der Interpolation wird erwartet, dass die interpolierten Abschnitte mit der Darstellungszeit der Abschnitte in der referenzierten Spur übereinstimmen. So wird beispielsweise für jeden Video-Abschnitt einer Videospur ein interpolierter Viewport-Definitionsabschnitt berechnet.
  • Es sollte beachtet werden, dass die in den 9-10 dargestellte Syntax die Signalisierung von Viewports verschiedener Abmessungen und Formen unterstützt. Für einige Ausführungsformen kann die Syntax vereinfacht werden, wenn die Dimension und die Form der zu signalisierenden Viewports bekannt und festgelegt sind (z.B. „Dimension = 3“ und „Form = 1“).
  • IV. Beispiel-Prozesse
  • 11 zeigt konzeptionell einen Prozess 1100, der zum Generieren von Komponentenspuren und mindestens einer erhaltenen Spur, die auf mindestens einige der Komponentenspuren referenziert. In einigen Ausführungsformen führt ein Streaming-Encoder (z.B. 210) den Prozess 1100 beim Generieren von Streaming-Medien-Dateien (z.B. die Streaming-Medien-Dateien 240, 245, 510, 610 oder 710 in ISOBMFF) aus. In einigen Ausführungsformen führen eine oder mehrere Verarbeitungseinheiten (z.B. ein Prozessor) einer den Streaming-Encoder implementierenden Rechenvorrichtung den Prozess 1100 durch, indem sie Anweisungen ausführen, die auf einem computerlesbaren Medium gespeichert sind.
  • Der Prozess 1100 beginnt, wenn der Streaming-Encoder (bei Schritt 1110) Medieninhalte für eine Referenzmedienpräsentation empfängt. Eine solche Referenzmedienpräsentation kann eine 360VR-Präsentation sein. Die Referenzmedienpräsentation kann mehrere verschiedene Komponenten, wie grafische Überlagerungen, Videoclips, Audioclips und/oder definierte Teilregionen der Präsentation, wie Viewport, ROIs oder Flächen von omnidirektionalen Bildern. beinhalten.
  • Der Streaming-Encoder kodiert (bei Schritt 1120) den empfangenen Medieninhalt als eine Vielzahl von Komponentenspuren, die jeweils Medienabschnitte oder Metadatenabschnitte beinhalten. Eine Komponentenspur kann eine Medienspur sein, die Medienabschnitte einer korrespondierenden Komponente der Referenzmedienpräsentation enthält (z.B. Videoabschnitte eines Viewports oder einer ROI). Eine Komponentenspur kann auch eine Metadatenspur sein, die Metadatenabschnitte (Definitionsmetadaten) beinhaltet, welche Definitionen und/oder Parameter für eine korrespondierende Komponente der Referenzmedienpräsentation bereitstellen (wie geometrische Definitionen oder Parameter eines Viewports oder einer ROI).
  • Der Streaming-Encoder kodiert (bei Schritt 1130) auch eine erhaltene Spur, die (i) eine oder mehrere der Komponentenspuren referenziert und (ii) einen Satz von Operationen zum Erhalten von Medienabschnitten einer Teilregion der Referenzmedienpräsentation basierend auf den Medienabschnitten und Metadatenabschnitten aus den referenzierten Komponentenspuren spezifiziert. Der Signalisierungsmechanismus der erhaltenen Spur ist in Bezug auf die 5-7 oben beschrieben. Die Operationen, die durch den referenzierten Metadatenabschnitt spezifiziert werden können, sind in Bezug auf die 8-10 oben beschrieben. Der Streaming-Encoder speichert (bei Schritt 1140) die kodierten Komponentenspuren und die kodierte erhaltene Spur zum Abrufen.
  • Der Streaming-Encoder sendet (bei 1145) eine Streaming-Medien-Datei, die die erhaltene Spur enthält. Der Streaming-Encoder kann (bei Schritt 1150) auch eine Anforderung für einige oder alle Komponentenspuren empfangen. Ein Streaming-Decoder, der die erhaltene Spur empfängt, kann diese Anforderung, basierend darauf erzeugen, welche Spur benötigt wird, um dynamisch eine Teilregion (ROI oder Viewport) entsprechend der erhaltenen Spur zu konstruieren. Der Streaming-Encoder wiederum sendet (bei Schritt 1160) die angeforderten Komponentenspuren in einer oder mehreren Streaming-Medien-Dateien. Die übertragene Streaming-Medien-Datei kann im ISOBMFF- und DASH-Format vorliegen. Der Prozess 1100 endet dann.
  • 12 zeigt konzeptionell einen Prozess 1200 zum dynamischen Konstruieren einer spezifizierten Teilregion (z.B. ROI oder Viewport) basierend auf einer erhaltenen Spur in einer Streaming-Medien-Datei. In einigen Ausführungsformen führt ein Streaming-Decoder (z.B. 220) den Prozess 1200 aus, nachdem er eine Streaming-Medien-Datei (z.B. die Streaming-Datei 240) empfangen hat. In einigen Ausführungsformen führen eine oder mehrere Verarbeitungseinheiten (z.B. ein Prozessor) einer den Streaming-Decoder implementierenden Rechenvorrichtung den Prozess 1200 durch, indem sie Anweisungen ausführen, die auf einem computerlesbaren Medium gespeichert sind.
  • Der Prozess 1200 beginnt, wenn der Streaming-Decoder (bei Schritt 1210) eine Streaming-Medien-Datei für eine Referenzmedienpräsentation empfängt. Die Streaming-Medien-Datei kann eine Streaming ISOBMFF-Medien-Datei sein, die über das DASH-Protokoll empfangen wurde. Die Streaming-Medien-Datei kann eine oder mehrere Komponentenspuren enthalten und/oder eine oder mehrere Komponentenspuren für die Referenzmedienpräsentation referenzieren. Die Streaming-Medien-Datei kann auch eine erhaltene Spur enthalten, die auf eine oder mehrere der Komponentenspuren referenziert. Eine Komponentenspur kann eine Medienspur sein, die Medienabschnitte einer korrespondierenden Komponente (z.B. eines Viewports oder einer ROI) der Referenzmedienpräsentation enthält. Eine Komponentenspur kann auch eine Metadatenspur sein, die Metadatenabschnitte enthält, die Definitionen und/oder Parameter für eine korrespondierende Komponente der Referenzmedienpräsentation liefern.
  • Der Streaming-Decoder empfängt (bei Schritt 1220) eine Auswahl einer Teilregion der Referenzmedienpräsentation. Die Auswahl kann eine Echtzeit-Auswahl des Nutzers einer 360VR-Vorrichtung über eine Benutzeroberfläche (z.B. 225) sein.
  • Der Streaming-Decoder ruft (bei Schritt 1230) eine erhaltene Spur aus der Streaming-Medien-Datei ab, die zu der Auswahl der Teilregion korrespondiert. Die erhaltene Spur (i) referenziert auf eine oder mehrere der Komponentenspuren und (ii) spezifiziert einen Satz von Operationen zum Konstruieren einer Teilregion der Referenzmedienpräsentation basierend auf Medienabschnitten und Metadatenabschnitten von den referenzierten Komponentenspuren. Der Signalisierungsmechanismus der erhaltenen Spur ist in Bezug auf 5-7 oben beschrieben. Die Operationen, die durch die referenzierten Metadatenabschnitte spezifiziert werden können, sind in Bezug auf die 8-10 oben beschrieben.
  • Der Streaming-Decoder ruft dann (bei 1240) eine oder mehrere Komponentenspuren ab, die von der erhaltenen Spur referenziert werden. Die abgerufenen Komponentenspuren enthalten Medienabschnitte oder Metadatenabschnitte, die referenziert und/oder für die Konstruktion des Inhalts der erhaltenen Spur benötigt sind. Die benötigten Komponentenspuren können zusammen mit der erhaltenen Spur bereits in der Streaming-Datei sein. Die benötigten Komponentenspuren können einige erhaltene Spuren, die erhalten werden können, beinhalten. Der Streaming-Decoder kann die benötigten Komponentenspuren auch abrufen, indem er eine nachfolgende Streaming-Medien-Datei (z.B. 245) anfordert, die die benötigten Komponentenspuren enthält. Der Streaming-Decoder kann auch die benötigten Komponentenspuren erhalten, die im rekursiven Sinn zuerst erhaltene Spuren sind.
  • Der Streaming-Decoder stellt (bei Schritt 1250) Medienabschnitte für die ausgewählte Teilregion bereit, indem er den durch die erhaltene Spur spezifizierten Satz von Operationen ausführt, der Medienabschnitte oder Metadatenabschnitte in den abgerufenen Komponentenspuren verwendet und/oder referenziert, um den Inhalt der ausgewählten Teilregion zu konstruieren. In einigen Ausführungsformen bestimmt die Auswahl der Teilregion dynamisch, welche durch die erhaltene Spur (durch die referenzierten Metadatenabschnitte) spezifizierten Operationen ausgeführt werden. Der Prozess 1200 endet dann.
  • Beispiel Video-Encoder
  • 13 zeigt einen beispielhaften Video-Encoder 1300, der mindestens einige der Video-Encoder 311 - 319 im Streaming-Encoder 210 implementiert.
  • Wie gezeigt, empfängt der Video-Encoder 1300 das Eingangsvideosignal von einer Videoquelle 1305 und kodiert das Signal in den Bitstrom 1395. Der Video-Encoder 1300 weist mehrere Komponenten oder Module zum Kodieren des Videosignals 1305 auf, einschließlich eines Transformationsmoduls 1310, eines Quantisierungsmoduls 1311, eines Invers-Quantisierung-Moduls 1314, eines Invers-Transformation-Moduls 1315, eines Intra-Bild-Abschätzmoduls 1320, eines Intra-Bild-Vorhersagemoduls 1325, eines Bewegungskompensationsmoduls 1330, eines Bewegungsabschätzmoduls 1335, eines In-Loop-Filters 1345, eines Puffers für rekonstruierte Bilder 1350, eines MV-Puffers 1365 und eines MV-Vorhersagemoduls 1375 sowie eines Entropie-Encoders 1390.
  • In einigen Ausführungsformen sind die Module 1310 - 1390 Module von Softwareanweisungen, die von einer oder mehreren Verarbeitungseinheiten (z.B. einem Prozessor) einer Computervorrichtung oder einer elektronischen Vorrichtung ausgeführt werden. In einigen Ausführungsformen sind die Module 1310 - 1390 Module von Hardware-Schaltungen, die durch eine oder mehrere integrierte Schaltungen (ICs) einer elektronischen Vorrichtung implementiert sind. Auch wenn die Module 1310 - 1390 als separate Module dargestellt sind, können einige der Module zu einem einzigen Modul kombiniert werden.
  • Die Videoquelle 1305 liefert ein Rohvideosignal, das Pixeldaten jedes Videobildes ohne Komprimierung darstellt. Ein Subtrahierer 1308 berechnet den Unterschied zwischen den Rohvideopixeldaten der Videoquelle 1305 und den vorhergesagten Pixeldaten 1313 aus der Bewegungskompensation 1330 oder der Intra-Bild-Vorhersage 1325. Die Transformation 1310 wandelt die Differenz (oder die restlichen Pixeldaten) in Transformationskoeffizienten um (z.B. durch Ausführen einer diskreten Kosinustransformation oder DCT). Der Quantisierer 1311 quantisiert die Transformationskoeffizienten in quantisierte Daten (oder quantisierte Koeffizienten) 1312, welche vom Entropie-Encoder 1390 in den Bitstrom 1395 kodiert werden.
  • Das Invers-Quantisierung-Modul 1314 de-quantisiert die quantisierten Daten (oder quantisierten Koeffizienten) 1312, um Transformationskoeffizienten zu erhalten, und das Invers-Transformation-Modul 1315 führt eine inverse Transformation der Transformationskoeffizienten durch, um rekonstruierte Pixeldaten 1317 zu erzeugen (nach dem Hinzufügen von Vorhersagepixeldaten 1313). In einigen Ausführungsformen werden die rekonstruierten Pixeldaten 1317 in einem Zeilenpuffer (nicht dargestellt) für die Intra-Bild-Vorhersage und die räumliche MV-Vorhersage zwischengespeichert. Die rekonstruierten Pixel werden durch den In-Loop-Filter 1345 gefiltert und im Puffer für rekonstruierte Bilder 1350 gespeichert. In einigen Ausführungsformen ist der Puffer für rekonstruierte Bilder 1350 ein Speicher außerhalb des Video-Encoders 1300. In einigen Ausführungsformen ist der Puffer für rekonstruierte Bilder 1350 ein Speicher innerhalb des Video-Encoders 1300.
  • Das Intra-Bild-Abschätzmodul 1320 führt eine Intra-Vorhersage basierend auf den rekonstruierten Pixeldaten 1317 durch, um Intra-Vorhersagedaten zu erzeugen. Die Intra-Vorhersagedaten werden dem Entropie-Encoder 1390 bereitgestellt, um in den Bitstrom 1395 kodiert zu werden. Die Intra-Vorhersagedaten werden auch vom Intra-Bild-Vorhersagemodul 1325 verwendet, um die vorhergesagten Pixeldaten 1313 zu erzeugen.
  • Das Bewegungsabschätzmodul 1335 führt eine Inter-Vorhersage durch, indem es MVs zu Referenzpixeldaten von zuvor dekodierten Bildern erzeugt, die im Puffer für rekonstruierte Bilder 1350 gespeichert sind. Diese MVs werden dem Bewegungskompensationsmodul 1330 zur Verfügung gestellt, um vorhergesagte Pixeldaten zu erzeugen. Diese MVs werden auch für die Rekonstruktion von Videobildern am Einkanal-Dekodierungssystem benötigt. Anstatt die kompletten aktuellen MVs im Bitstrom zu kodieren, nutzt der Video-Encoder 1300 die zeitliche MV-Vorhersage, um vorhergesagte MVs zu generieren, und die Differenz zwischen den zur Bewegungskompensation verwendeten MVs und den vorhergesagten MVs wird als verbleibende Bewegungsdaten kodiert und im Bitstrom 1395 für das Einkanal-Dekodierungssystem gespeichert.
  • Der Video-Encoder 1300 generiert die vorhergesagten MVs basierend auf Referenz-MVs, die zur Kodierung von zuvor aufgenommenen Videobildern generiert wurden, d.h. den Bewegungskompensation-MVs, die zur Bewegungskompensation verwendet wurden. Der Video-Encoder 1300 ruft Referenz-MVs von vorherigen Videobildern aus dem MV-Puffer 1365 ab. Der Video-Encoder 1300 speichert die für das aktuelle Videobild erzeugten MVs im MV-Puffer 1365 als Referenz-MVs zum Generieren vorhergesagter MVs.
  • Das MV-Vorhersagemodul 1375 verwendet die Referenz-MVs, um die vorhergesagten MVs zu erstellen. Die vorhergesagten MVs können durch räumliche MV-Vorhersage oder zeitliche MV-Vorhersage berechnet werden. Die Differenz zwischen den vorhergesagten MVs und den Bewegungskompensation-MVs (MC MVs) des aktuellen Bildes (verbleibende Bewegungsdaten) wird vom Entropie-Encoder 1390 in den Bitstrom 1395 kodiert.
  • Der Entropie-Encoder 1390 kodiert verschiedene Parameter und Daten in den Bitstrom 1395, indem er Entropie-Kodierungstechniken, wie kontextadaptive binäre arithmetische Kodierung (CABAC) oder Huffman-Kodierung, verwendet. Der Entropie-Encoder 1390 kodiert Parameter, wie quantisierte Transformationsdaten und verbleibende Bewegungsdaten, in den Bitstrom.
  • Der In-Loop-Filter 1345 führt Filter- oder Glättungsvorgänge an den rekonstruierten Pixeldaten 1317 durch, um die Artefakte der Codierung zu reduzieren, insbesondere an den Grenzen von Pixelblöcken. In einigen Ausführungsformen beinhaltet der durchgeführte Filtervorgang Sample Adaptive Offset (SAO). In einigen Ausführungsformen beinhalten die Filtervorgänge Adaptive Loop Filter (ALF).
  • VI. Beispiel Video-Decoder
  • 14 zeigt einen beispielhaften Video-Decoder 1400, der mindestens einige der Video-Decoder 411 - 419 im Streaming-Decoder 220 implementiert.
  • Wie gezeigt, ist der Video-Decoder 1400 eine Bilddekodier- oder Videodekodierschaltung, die einen Bitstrom 1495 empfängt und den Inhalt des Bitstroms in Pixeldaten von Videobildern zum Anzeigen dekodiert. Der Video-Decoder 1400 weist mehrere Komponenten oder Module zum Dekodieren des Bitstroms 1495 auf, einschließlich eines Invers-Quantisierung-Moduls 1405, eines Invers-Transformation-Moduls 1415, eines Intra-Bild-Vorhersagemoduls 1425, eines Bewegungskompensationsmoduls 1435, eines In-Loop-Filters 1445, eines Puffer für dekodierte Bilder 1450, eines MV-Puffers 1465, eines MV-Vorhersagemoduls 1475 und eines Bitstrom-Parsers 1490.
  • In einigen Ausführungsformen sind die Module 1410 - 1490 Module von Softwareanweisungen, die von einer oder mehreren Verarbeitungseinheiten (z.B. einem Prozessor) einer Computervorrichtung ausgeführt werden. In einigen Ausführungsformen sind die Module 1410 - 1490 Module von Hardware-Schaltungen, die von einem oder mehreren ICs einer elektronischen Vorrichtung implementiert werden. Obwohl die Module 1410 - 1490 als separate Module dargestellt sind, können einige der Module zu einem einzigen Modul kombiniert werden.
  • Der Parser 1490 (oder Entropie-Decoder) empfängt den Bitstrom 1495 und führt eine initiale Analyse gemäß der Syntax durch, die durch einen Videokodierungs- oder Bildkodierungsstandard definiert ist. Das analysierte Syntaxelement beinhaltet verschiedene Header-Elemente, Flags sowie quantisierte Daten (oder quantisierte Koeffizienten) 1412. Der Parser 1490 analysiert die verschiedenen Syntaxelemente durch die Verwendung von Entropie-Kodierungstechniken, wie kontextadaptive binäre arithmetische Kodierung (CABAC) oder Huffman-Kodierung.
  • Das Invers-Quantisierung-Modul 1405 de-quantisiert die quantisierten Daten (oder quantisierten Koeffizienten) 1412, um Transformationskoeffizienten zu erhalten, und das Invers-Transformation-Modul 1415 führt eine umgekehrte Transformation der Transformationskoeffizienten 1416 durch, um dekodierte Pixeldaten 1417 zu erzeugen (nach Hinzufügen von Vorhersagepixeldaten 1413 aus dem Intra-Vorhersagemodul 1425 oder dem Bewegungskompensationsmodul 1435). Die Daten der dekodierten Pixel werden durch den In-Loop-Filter 1445 gefiltert und im Puffer für dekodierte Bilder 1450 gespeichert. In einigen Ausführungsformen ist der Puffer für dekodierte Bilder 1450 ein Speicher außerhalb des Video-Decoders 1400. In einigen Ausführungsformen ist der Puffer für dekodierte Bilder 1450 ein Speicher innerhalb des Video-Decoders 1400.
  • Das Intra-Bild-Vorhersagemodul 1425 empfängt Intra-Vorhersagedaten aus dem Bitstrom 1495 und erzeugt dementsprechend die vorhergesagten Pixeldaten 1413 aus den im Puffer für dekodierte Bilder 1450 gespeicherten dekodierten Pixeldaten 1417. In einigen Ausführungsformen werden die dekodierten Pixeldaten 1417 auch in einem Zeilenpuffer (nicht dargestellt) für die Intra-Bild-Vorhersage und die räumliche MV-Vorhersage gespeichert.
  • In einigen Ausführungsformen wird der Inhalt des Puffers für dekodierte Bilder 1450 zur Anzeige verwendet. Eine Anzeigevorrichtung 1455 ruft entweder den Inhalt des Puffers für dekodierte Bilder 1450 zur direkten Anzeige ab oder ruft den Inhalt des Puffers für dekodierte Bilder in einen Anzeigepuffer ab. In einigen Ausführungsformen empfängt die Anzeigevorrichtung Pixelwerte aus dem Puffer für dekodierte Bilder 1450 über einen Pixeltransport.
  • Das Bewegungskompensationsmodul 1435 erzeugt aus den im Puffer für dekodierte Bilder 1450 gespeicherten dekodierten Pixeldaten 1417 vorhergesagte Pixeldaten 1413 gemäß Bewegungskompensations-MVs (MC MVs). Diese Bewegungskompensations-MVs werden durch Hinzufügen der vom Bitstrom 1495 empfangenen verbleibenden Bewegungsdaten zu den vom MV-Vorhersagemodul 1475 empfangenen vorhergesagten MVs dekodiert.
  • Der Video-Decoder 1400 generiert die vorhergesagten MVs basierend auf Referenz-MVs, die zur Dekodierung vorheriger Videobilder erzeugt wurden, z.B. der Bewegungskompensations-MVs, die zur Bewegungskompensation verwendet wurden. Der Video-Decoder 1400 ruft die Referenz-MVs vorhergehender Videobilder aus dem MV-Puffer 1465 ab. Der Video-Decoder 1400 speichert auch die zur Dekodierung des aktuellen Videobildes generierten Bewegungskompensations-MVs in den MV-Puffer 1465 als Referenz-MVs zum Generieren vorhergesagter MVs.
  • Der In-Loop-Filter 1445 führt Filter- oder Glättungsvorgänge an den dekodierten Pixeldaten 1417 durch, um die Artefakte der Kodierung zu reduzieren, insbesondere an den Grenzen von Pixelblöcken. In einigen Ausführungsformen beinhaltet der durchgeführte Filtervorgang Sample Adaptive Offset (SAO). In einigen Ausführungsformen beinhalten die Filtervorgänge Adaptive Loop Filter (ALF).
  • VII. Beispiel Elektronisches System
  • Viele der oben beschriebenen Funktionen und Anwendungen sind als Softwareprozesse implementiert, die als eine Satz von Anweisungen spezifiziert sind, die auf einem computerlesbaren Speichermedium (auch als computerlesbares Medium bezeichnet) aufgezeichnet sind. Wenn diese Anweisungen von einer oder mehreren Rechen- oder Verarbeitungseinheiten (z.B. einem oder mehreren Prozessoren, Prozessorkernen oder anderen Verarbeitungseinheiten) ausgeführt werden, veranlassen sie die Verarbeitungseinheit(en), die in den Anweisungen angegebenen Aktionen auszuführen. Beispiele für computerlesbare Medien beinhalten CD-ROMs, Flash-Laufwerke, RAM-Chips, Festplatten, löschbare programmierbare Nur-Lese-Speicher (EPROMs), elektrisch löschbare programmierbare Nur-Lese-Speicher (EEPROMs), etc, sind aber nicht darauf beschränkt. Die computerlesbaren Medien beinhalten keine Trägerwellen und elektronischen Signale, die drahtlos oder über drahtgebundene Verbindungen laufen.
  • In dieser Spezifikation umfasst der Begriff „Software“ Firmware, die sich im Festspeicher befindet, oder Anwendungen, die im Magnetspeicher gespeichert sind und die zur Verarbeitung durch einen Prozessor in den Speicher eingelesen werden können. Auch in einigen Ausführungsformen können mehrere Softwareerfindungen als Unterteile eines größeren Programms implementiert werden, während sie unterschiedliche Softwareerfindungen bleiben. In einigen Ausführungsformen können mehrere Softwareerfindungen auch als separate Programme implementiert werden. Schließlich fällt jede Kombination von Einzelprogrammen, die gemeinsam eine hier beschriebene Softwareerfindung umsetzen, in den Umfang der vorliegenden Offenbarung. In einigen Ausführungsformen definieren die Softwareprogramme, wenn sie zum Betrieb auf einem oder mehreren elektronischen Systemen installiert sind, eine oder mehrere spezifische Maschinenimplementierungen, die die Operationen der Softwareprogramme durchführen und ausführen.
  • 15 zeigt konzeptionell ein elektronisches System 1500, mit dem einige Ausführungsformen der vorliegenden Offenbarung implementiert werden. Das elektronische System 1500 kann ein Computer (z.B. ein Desktop-Computer, Personalcomputer, Tablet-Computer usw.), ein Telefon, ein PDA oder eine andere Art von elektronischer Vorrichtung sein. Ein solches elektronisches System beinhaltet verschiedene Arten von computerlesbaren Medien und Schnittstellen für verschiedene andere Arten von computerlesbaren Medien. Das elektronische System 1500 beinhaltet einen Bus 1505, eine oder mehrere Verarbeitungseinheiten 1510, eine Grafikverarbeitungseinheit (GPU) 1515, einen Systemspeicher 1520, ein Netzwerk 1525, einen Nur-Lese-Speicher 1530, eine permanente Speichervorrichtung 1535, Eingabevorrichtungen 1540 und Ausgabevorrichtungen 1545.
  • Der Bus 1505 repräsentiert zusammenfassend alle System-, Peripherie- und Chipsatzbusse, die die zahlreichen internen Geräte des elektronischen Systems 1500 kommunikativ verbinden. So verbindet beispielsweise der Bus 1505 die Verarbeitungseinheit(en) 1510 kommunikativ mit der GPU 1515, dem Nur-Lese-Speicher 1530, dem Systemspeicher 1520 und der permanenten Speichervorrichtung 1535.
  • Aus diesen verschiedenen Speichereinheiten ruft die eine oder die mehreren Verarbeitungseinheiten 1510 Anweisungen zur Ausführung und Daten zur Verarbeitung ab, um die Prozesse der vorliegenden Offenbarung auszuführen. Die Verarbeitungseinheit(en) können ein einzelner Prozessor oder ein Mehrkern-Prozessor in verschiedenen Ausführungsformen sein. Einige Anweisungen werden an die GPU 1515 weitergeleitet und von ihr ausgeführt. Die GPU 1515 kann verschiedene Berechnungen übernehmen oder die Bildverarbeitung der Verarbeitungseinheit(en) 1510 ergänzen.
  • Der Nur-Lese-Speicher (ROM) 1530 speichert statische Daten und Anweisungen, die von den Verarbeitungseinheit(en) 1510 und andere Modulen des elektronischen Systems benötigt werden. Die permanente Speichervorrichtung 1535 hingegen ist eine Lese- und Schreibspeichervorrichtung. Diese Vorrichtung ist eine nichtflüchtige Speichereinheit, die Anweisungen und Daten speichert, auch wenn das elektronische System 1500 ausgeschaltet ist. Einige Ausführungsformen der vorliegenden Offenbarung verwenden eine Massenspeichervorrichtung (wie eine magnetische oder optische Platte und das korrespondierende Laufwerk) als permanente Speichervorrichtung 1535.
  • Andere Ausführungsformen verwenden eine Wechselspeichervorrichtung (z.B. Diskette, Flash-Speichergerät usw. und das korrespondierende Laufwerk) als permanente Speichervorrichtung. Wie die permanente Speichervorrichtung 1535 ist der Systemspeicher 1520 eine Lese- und Schreibspeichervorrichtung. Im Gegensatz zur Speichervorrichtung 1535 ist der Systemspeicher 1520 jedoch ein flüchtiger Lese- und Schreibspeicher, wie ein Direktzugriffsspeicher. Der Systemspeicher 1520 speichert einige der Anweisungen und Daten, die der Prozessor zur Laufzeit benötigt. In einigen Ausführungsformen werden Prozesse gemäß der vorliegenden Offenbarung im Systemspeicher 1520, in der permanenten Speichervorrichtung 1535 und/oder im Nur-Lese-Speicher 1530 gespeichert. Zum Beispiel enthalten die verschiedenen Speichereinheiten Anweisungen zur Verarbeitung von Multimedia-Clips gemäß einiger Ausführungsformen. Aus diesen verschiedenen Speichereinheiten ruft die eine oder die mehreren Verarbeitungseinheiten 1510 Anweisungen zur Ausführung und Daten zur Verarbeitung ab, um die Prozesse einiger Ausführungsformen auszuführen.
  • Der Bus 1505 verbindet sich auch mit den Ein- und Ausgabegeräten 1540 und 1545. Die Eingabevorrichtungen 1540 ermöglichen es dem Nutzer, Informationen und Auswahlbefehle an das elektronische System zu übermitteln. Zu den Eingabegeräten 1540 gehören alphanumerische Tastaturen und Zeigegeräte (auch „Cursorsteuergeräte“ genannt), Kameras (z.B. Webcams), Mikrofone oder ähnliche Geräte zum Empfangen von Sprachbefehlen, etc. Die Ausgabevorrichtungen 1545 zeigen Bilder an, die von dem elektronischen System generiert werden, oder geben Daten anders aus. Zu den Ausgabegeräten 1545 gehören Drucker und Anzeigegeräte, wie Kathodenstrahlröhren (CRT) oder Flüssigkristallanzeigen (LCD), sowie Lautsprecher oder ähnliche Audioausgabegeräte. Einige Ausführungsformen beinhalten Vorrichtungen, wie beispielsweise einen Touchscreen, die sowohl als Ein- als auch als Ausgabevorrichtungen fungieren.
  • Schließlich koppelt der Bus 1505, wie in 15 gezeigt, auch das elektronische System 1500 über einen Netzwerkadapter (nicht dargestellt) an ein Netzwerk 1525. Auf diese Weise kann der Computer Teil eines Computernetzwerks (z.B. eines lokalen Netzwerks („LAN“), eines Weitverkehrsnetzwerks („WAN“) oder eines Intranets oder eines Netzwerks aus Netzwerken, wie beispielsweise das Internet, sein. Alle oder einzelne Komponenten des elektronischen Systems 1500 können in Verbindung mit der vorliegenden Offenbarung verwendet werden.
  • Einige Ausführungsformen beinhalten elektronische Komponenten, wie Mikroprozessoren, permanente Speicher und flüchtige Speicher, die Computerprogrammanweisungen auf einem maschinenlesbaren oder computerlesbaren Medium speichern (alternativ bezeichnet als computerlesbare Speichermedien, maschinenlesbare Medien oder maschinenlesbare Speichermedien). Einige Beispiele für solche computerlesbaren Medien sind RAM, ROM, schreibgeschützte CDs (CD-ROM), beschreibbare CDs (CD-R), wiederbeschreibbare CDs (CD-RW), schreibgeschützte Digital Versatile Discs (z.B. DVD-ROM, Dual-Layer-DVD-ROM), eine Vielzahl von beschreibbaren/wiederbeschreibbaren DVDs (z.B., DVD-RAM, DVD-RW, DVD+RW, etc.), Flash-Speicher (z.B. SD-Karten, Mini-SD-Karten, Micro-SD-Karten, etc.), magnetische und/oder Solid-State-Festplatten, schreibgeschützte und beschreibbare Blu-Ray®-Discs, optische Ultradichte-Discs, alle anderen optischen oder magnetischen Medien und Disketten. Das computerlesbare Medium kann ein Computerprogramm speichern, das von mindestens einer Verarbeitungseinheit ausführbar ist und Anweisungen zur Durchführung verschiedener Operationen enthält. Beispiele für Computerprogramme oder Computercode sind Maschinencode, wie er von einem Compiler erzeugt wird, und Dateien mit höherem Code, die von einem Computer, einer elektronischen Komponente oder einem Mikroprozessor unter Verwendung eines Interpreters ausgeführt werden.
  • Während sich die vorstehende Erläuterung in erster Linie auf Mikroprozessor- oder Multicore-Prozessoren bezieht, die Software ausführen, werden viele der vorstehend beschriebenen Merkmale und Anwendungen von einer oder mehreren integrierten Schaltungen ausgeführt, wie beispielsweise anwendungsspezifische integrierte Schaltungen (ASICs) oder Field Programmable Gate Arrays (FPGAs). In einigen Ausführungsformen führen solche integrierten Schaltungen Anweisungen aus, die auf der Schaltung selbst gespeichert sind. Darüber hinaus führen einige Ausführungsformen Software aus, die in programmierbaren Logikgeräten (PLDs), ROM- oder RAM-Vorrichtungen gespeichert ist.
  • Wie in dieser Beschreibung und allen Ansprüchen dieser Anmeldung verwendet, beziehen sich die Begriffe „Computer“, „Server“, „Prozessor“ und „Speicher“ alle auf elektronische oder andere technologische Geräte. Diese Begriffe schließen Personen oder Personengruppen aus. Für die Zwecke der Beschreibung bedeuten die Begriffe Anzeige oder anzeigen die Anzeige auf einer elektronischen Vorrichtung. Wie in dieser Beschreibung und allen Ansprüchen dieser Anmeldung verwendet, sind die Begriffe „computerlesbares Medium“, „computerlesbare Medien“ und „maschinenlesbares Medium“ vollständig auf materielle, physische Objekte beschränkt, die Informationen in einer für einen Computer lesbaren Form speichern. Diese Begriffe schließen alle drahtlosen Signale, drahtgebundenen Download-Signale und alle anderen kurzlebigen Signale aus.
  • Während die vorliegende Offenbarung mit Bezug auf zahlreiche spezifische Details beschrieben wurde, wird der Fachmann erkennen, dass die vorliegende Offenbarung in anderen spezifischen Formen ausgeführt werden kann, ohne vom Gedanken der vorliegenden Offenbarung abzuweichen. Darüber hinaus veranschaulichen einige der Figuren (einschließlich der 11 und 12) konzeptionell Prozesse. Die spezifischen Vorgänge dieser Prozesse müssen nicht in der genau angegebenen und beschriebenen Reihenfolge durchgeführt werden. Die spezifischen Operationen müssen nicht in einer kontinuierlichen Serie von Operationen durchgeführt werden, und verschiedene spezifische Operationen können in verschiedenen Ausführungsformen durchgeführt werden. Darüber hinaus kann der Prozess in mehreren Teilprozessen oder als Teil eines größeren Makroprozesses implementiert werden. So würde der Fachmann verstehen, dass die vorliegende Offenbarung nicht durch die vorstehenden veranschaulichenden Details beschränkt werden soll, sondern durch die beigefügten Ansprüche definiert ist.
  • Zusätzliche Hinweise
  • Der hierin beschriebene Gegenstand veranschaulicht manchmal verschiedene Komponenten, die in verschiedenen anderen Komponenten enthalten sind oder mit diesen verbunden sind. Es ist zu verstehen, dass solche dargestellten Architekturen nur Beispiele sind und dass tatsächlich viele andere Architekturen implementiert werden können, die die gleiche Funktionalität erreichen. Im konzeptionellen Sinne ist jede Anordnung von Komponenten zur Erreichung der gleichen Funktionalität effektiv „zugeordnet“, so dass die gewünschte Funktionalität erreicht wird. Daher können zwei beliebige Komponenten, die hierin kombiniert werden, um eine bestimmte Funktionalität zu erreichen, als „miteinander verbunden“ angesehen werden, so dass die gewünschte Funktionalität erreicht wird, unabhängig von Architekturen oder Zwischenkomponenten. Ebenso können zwei so zugeordnete Komponenten auch als „funktionsfähig verbunden“ oder „funktionsfähig gekoppelt“ miteinander betrachtet werden, um die gewünschte Funktionalität zu erreichen, und zwei beliebige Komponenten, die so zugeordnet werden können, können auch als „funktionsfähig koppelbar“ miteinander betrachtet werden, um die gewünschte Funktionalität zu erreichen. Konkrete Beispiele für funktionsfähige koppelbare Komponenten sind unter anderem physikalisch verknüpfbare und/oder physikalisch interagierende Komponenten und/oder drahtlos interagierbare und/oder drahtlos interagierende Komponenten und/oder logisch interagierende und/oder logisch interagierbare Komponenten.
  • Darüber hinaus kann der Fachmann, in Bezug auf die Verwendung von im Wesentlichen beliebig vielen und/oder singulären Begriffen aus dem Plural in das Singular und/oder aus dem Singular in das Plural übersetzen, wie es dem Kontext und/oder der Anwendung angemessen ist. Die verschiedenen Singular/Plural-Permutationen können hierin aus Gründen der Klarheit explizit angegeben werden.
  • Darüber hinaus wird vom Fachmann verstanden, dass im Allgemeinen die hierin verwendeten Begriffe, insbesondere in den beigefügten Ansprüchen, z.B. Körper der beigefügten Ansprüche, allgemein als „offene“ Begriffe gedacht sind, z.B. sollte der Begriff „einschließlich“ als „einschließlich, aber nicht beschränkt auf“ interpretiert werden, der Begriff „haben“ als „mindestens habend“ interpretiert werden, der Begriff „beinhaltet“ als „beinhaltet aber nicht beschränkt auf “ interpretiert werden, etc. Es wird vom Fachmann weiter verstanden, dass, wenn eine bestimmte Nummer einer eingeführten Anspruchsrezitation beabsichtigt ist, eine solche Absicht ausdrücklich in dem Anspruch rezitiert wird, und wenn eine solche Rezitation fehlt, ist eine solche Absicht nicht vorhanden ist. Zum Beispiel, als Hilfe zum Verständnis, können die folgenden angehängten Ansprüche die Verwendung der einleitenden Phrasen „mindestens einer“ und „einer oder mehrerer“ zur Einleitung von Anspruchsabhängigkeiten enthalten. Die Verwendung solcher Formulierungen sollte jedoch nicht so ausgelegt werden, dass die Einführung einer Anspruchswiedergabe durch den unbestimmten Artikel „ein(e/er/es/em/en)“ einen bestimmten Anspruch, der eine solche Anspruchswiedergabe enthält, auf Implementierungen beschränkt, die nur eine solche Abhängigkeit enthält, selbst wenn derselbe Anspruch die einleitenden Ausdrücke „ein oder mehrere“ oder „mindestens eine“ und den unbestimmten Artikel „ein(e/er/es/em/en)“ umfasst, z.B. sind „ein(e/er/es/em/en)“ so zu interpretieren, dass sie „mindestens eins“ oder „ein oder mehrere“ bedeuten; dasselbe gilt für die Verwendung bestimmter Artikel, die zur Einführung von Anspruchsabhängigkeiten verwendet werden. Zusätzlich, selbst wenn eine bestimmte Nummer einer eingeführten Anspruchsabhängigkeiten explizit wiedergegeben wird, wird der Fachmann erkennen, dass eine solche Wiedergabe so interpretiert werden sollte, dass sie mindestens die angegebene Nummer bezeichnet, z.B. bedeutet die bloße Angabe von „zwei Abhängigkeiten“ ohne andere Modifikatoren mindestens zwei Abhängigkeiten oder zwei oder mehr Anhängigkeiten. Darüber hinaus ist in den Fällen, in denen eine Klausel analog zu „mindestens einer von A, B und C usw.“ verwendet wird, im Allgemeinen eine solche Konstruktion beabsichtigt, wie sie der Fachmann verstehen würde, z.B. „ein System mit mindestens einer von A, B und C“ würde im Allgemeinen Systeme beinhalten, aber nicht darauf beschränkt sein, die A allein, B allein, C allein, A und B zusammen, A und C zusammen, B und C zusammen und/oder A, B und C zusammen usw. aufweisen. In den Fällen, in denen eine Klausel analog zu „mindestens einer von A, B oder C usw.“ verwendet wird, ist im Allgemeinen eine solche Konstruktion beabsichtigt, wie sie der Fachmann verstehen würde, z.B. „ein System mit mindestens einer von A, B oder C“ würde im Allgemeinen Systeme beinhalten, aber nicht darauf beschränkt sein, die A allein, B allein, C allein, A und B zusammen, A und C zusammen, B und C zusammen und/oder A, B und C zusammen usw. aufweisen. Es wird weiter vom Fachmann verstanden, dass praktisch jedes disjunkte Wort und/oder Phrase, das/die zwei oder mehr alternative Begriffe präsentiert, sei es in der Beschreibung, in Ansprüchen oder Zeichnungen, so verstanden werden sollte, dass die Möglichkeiten der Aufnahme entweder des Einen der Begriffe, des Anderen der Begriffe oder beider Begriffe, in Betracht gezogen werden. So wird beispielsweise unter dem Begriff „A oder B“ die Möglichkeit von „A“ oder „B“ oder „A und B“ verstanden.
  • Aus diesem Grund ist zu beachten, dass verschiedene Implementierungen der vorliegenden Offenbarung zum Zweck der Veranschaulichung hierin beschrieben wurden und dass verschiedene Änderungen vorgenommen werden können, ohne vom Umfang und Gedanken der vorliegenden Offenbarung abzuweichen. Dementsprechend sollen die verschiedenen hierin offenbarten Implementierungen nicht einschränkend sein, wobei der wahre Umfang und Gedanke durch die folgenden Ansprüche gekennzeichnet werden.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 62408867 [0001]
    • US 62/410414 [0001]
  • Zitierte Nicht-Patentliteratur
    • ISO/IEC 14496-12 [0024]
    • ISOBMFF ISO/IEC 14496-12 [0050]
    • ISO/IEC 23001-10 [0051]

Claims (24)

  1. Verfahren, umfassend: Empfangen von Medieninhalten für eine Referenzmedienpräsentation; Kodieren des empfangenen Medieninhalts als eine Vielzahl von Komponentenspuren, wobei jede Komponentenspur Medien- oder Metadatenabschnitte für eine Komponente der Referenzmedienpräsentation umfasst; Kodieren einer erhaltenen Spur, die (i) eine oder mehrere der Vielzahl von Komponentenspuren referenziert und (ii) einen Satz von Operationen zum Konstruieren von Medien- und Metadatenabschnitten einer Teilregion der Referenzmedienpräsentation, basierend auf den Medien- oder Metadatenabschnitten aus den referenzierten Komponentenspuren, spezifiziert; und Speichern der kodierten Komponentenspuren und der kodierten erhaltenen Spur zum Abrufen.
  2. Verfahren nach Anspruch 1, wobei die Teilregion zu einem Viewport oder einer Region von Interesse (ROI) korrespondiert, und wobei jede Komponentenspur der Vielzahl von Komponentenspuren eine Teilregionsspur ist, die Medienabschnitte für eine Teilregion bereitstellt.
  3. Verfahren nach Anspruch 1, weiter umfassend: Empfangen einer Anforderung für eine Teilmenge der Vielzahl von Komponentenspuren; und Senden nur der angeforderten Komponentenspuren.
  4. Verfahren nach Anspruch 1, wobei der Satz von Operationen eine Anweisung umfasst, um Medienabschnitte einer Teilregionsspur für die erhaltene Spur gemäß Metadatenabschnitten einer oder mehrerer der referenzierten Komponentenspuren zu konstruieren.
  5. Verfahren nach Anspruch 4, wobei die Anweisung Spurreferenzen auf eine oder mehrere Komponentenspuren, die Medienabschnitte speichern, und eine oder mehrere Komponentenspuren, die Metadatenabschnitte speichern, umfasst.
  6. Verfahren nach Anspruch 4, wobei die Anweisung einen Konstruktor umfasst, der die Spurreferenzen auf eine oder mehrere Komponentenspuren, die Medienabschnitte speichern, und auf eine oder mehrere Komponentenspuren, die Metadatenabschnitte speichern, aufruft.
  7. Verfahren nach Anspruch 4, wobei die Anweisung Spurreferenzen auf eine oder mehrere Komponentenspuren, die Medienabschnitte speichern, und einen Indikator zum Anzeigen, dass Metadatenabschnitte in der erhaltenen Spur gespeichert sind, umfasst.
  8. Verfahren nach Anspruch 1, wobei der durch die erhaltene Spur spezifizierte Satz von Operationen eine geordnete Liste von Operationen umfasst, die an einer geordneten Liste von Eingangsbildern oder an Abschnitten der Vielzahl von Komponentenspuren für die Referenzmedienpräsentation durchzuführen sind.
  9. Verfahren nach Anspruch 8, wobei eine oder mehrere der referenzierten Komponentenspuren Metadatenspuren sind, die Metadatenabschnitte speichern, wobei jeder Metadatenabschnitt einer referenzierten Metadatenspur zum Ausführen der geordneten Liste von Operationen eine Dimension einer Teilregion und eine Position der Teilregion in der Referenzmedienpräsentation spezifiziert.
  10. Verfahren nach Anspruch 9, wobei die Teilregion einem Viewport entspricht und die Referenzmedienpräsentation eine 360-Grad-virtuelle-Realität (360VR) -Videopräsentation ist, und wobei jeder Metadatenabschnitt zum Ausführen der geordneten Liste von Operationen weiter einen Satz von Winkeln des Viewports relativ zu der Referenzmedienpräsentation spezifiziert.
  11. Verfahren nach Anspruch 9, wobei jeder Metadatenabschnitt weiter eine Form der Teilregion spezifiziert.
  12. Verfahren, umfassend: Empfangen einer Streaming-Medien-Datei für eine Referenzmedienpräsentation, die eine Vielzahl von Komponenten umfasst, wobei jede der Komponenten eine korrespondierende Komponentenspur aufweist, und jede Komponentenspur Medien- oder Metadatenabschnitte umfasst, wobei die Medien-Streaming-Medien-Datei eine erhaltene Spur umfasst, die (i) eine oder mehrere der Vielzahl von Komponentenspuren referenziert und (ii) basierend auf den Medienabschnitten der referenzierten Komponentenspuren einen Satz von Operationen zum Konstruieren von Medienabschnitte spezifiziert; Auswählen einer Teilregion der Referenzmedienpräsentation; Abrufen der erhaltenen Spur aus der Streaming-Medien-Datei; Abrufen der referenzierten Komponentenspuren, die durch die erhaltene Spur referenziert sind; und Bereitstellen von Medienabschnitten für die ausgewählte Teilregion durch Ausführen des durch die erhaltene Spur spezifizierten Satzes von Operationen.
  13. Verfahren nach Anspruch 12, wobei das Bereitstellen der Medienabschnitte für die ausgewählte Teilregion das Auswählen einer Teilmenge der referenzierten Komponentenspuren basierend auf der Spezifikation der Teilregion und das Ausführen des Satzes von Operationen basierend auf den Medienabschnitten, die sich in der ausgewählten Teilmenge von Komponentenspuren befinden, aber nicht auf den Medienabschnitten, die sich nicht in der ausgewählten Teilmenge von Komponentenspuren befinden, umfasst.
  14. Verfahren nach Anspruch 12, wobei die ausgewählte Teilregion einem Viewport oder einer Region von Interesse (ROI) entspricht.
  15. Verfahren nach Anspruch 12, wobei jede referenzierte Komponentenspur, die Medienabschnitte speichert, eine Teilregionsspur ist, die Medienabschnitte für eine Teilregion in der Referenzmedienpräsentation bereitstellt.
  16. Verfahren nach Anspruch 12, wobei der Satz von Operationen eine Anweisung umfasst, um Medienabschnitte einer Teilregionsspur für die erhaltene Spur gemäß Metadatenabschnitten einer oder mehrerer der referenzierten Komponentenspuren zu konstruieren.
  17. Verfahren nach Anspruch 16, wobei die Anweisung Spurreferenzen auf eine oder mehrere Komponentenspuren, die Medienabschnitte speichern, und eine oder mehrere Komponentenspuren, die Metadatenabschnitte speichern, umfasst.
  18. Verfahren nach Anspruch 16, wobei die Anweisung einen Konstruktor umfasst, der die Spurreferenzen auf eine oder mehrere Komponentenspuren, die Medienabschnitte speichern, und eine oder mehrere Komponentenspuren, die Metadatenabschnitte speichern, aufruft.
  19. Verfahren nach Anspruch 16, wobei die Anweisung Spurreferenzen auf eine oder mehrere Komponentenspuren, die Medienabschnitte speichern, und einen Indikator zum Anzeigen, dass Metadatenabschnitte in der erhaltenen Spur gespeichert sind, umfasst.
  20. Verfahren nach Anspruch 12, wobei der durch die erhaltene Spur spezifizierte Satz von Operationen eine geordnete Liste von Operationen umfasst, die an einer geordneten Liste von Eingangsbildern oder Abschnitten der Vielzahl von Komponentenspuren für die Referenzmedienpräsentation durchzuführen sind.
  21. Verfahren nach Anspruch 20, wobei eine oder mehrere der referenzierten Komponentenspuren Metadatenspuren sind, die Metadatenabschnitte speichern, wobei jeder Metadatenabschnitt einer referenzierten Metadatenspur zum Ausführen der geordneten Liste von Operationen eine Dimension einer Teilregion und eine Position der Teilregion in der Referenzmedienpräsentation spezifiziert.
  22. Verfahren nach Anspruch 21, wobei die Teilregion einem Viewport entspricht und die Referenzmedienpräsentation eine 360-Grad-virtuelle-Realität (360VR) -Videopräsentation ist, wobei jeder Metadatenabschnitt zum Ausführen der geordneten Liste von Operationen weiter einen Satz von Winkeln des Viewports relativ zu der Referenzmedienpräsentation spezifiziert.
  23. Verfahren nach Anspruch 21, worin jeder Metadatenabschnitt weiter eine Form der Teilregion spezifiziert.
  24. Eine elektronische Vorrichtung, umfassend: eine Benutzerschnittstellenschaltung, eingerichtet um eine Auswahl einer Teilregion der Referenzmedienpräsentation zu empfangen; und eine Streaming-Decoderschaltung, eingerichtet um: eine Streaming-Medien-Datei für eine Referenzmedienpräsentation zu empfangen, die eine Vielzahl von Komponenten umfasst, wobei jede der Komponenten eine korrespondierende Komponentenspur aufweist, und jede Komponentenspur Medien- oder Metadatenabschnitte umfasst; eine erhaltene Spur aus der Streaming-Medien-Datei, abzurufen, wobei die erhaltene Spur (i) auf eine oder mehrere der Vielzahl von Komponentenspuren referenziert und (ii) einen Satz von Operationen zum Konstruieren von Medienabschnitten basierend auf den Medienabschnitten der referenzierten Komponentenspuren spezifiziert; Komponentenspuren, die durch die erhaltene Spur referenziert sind, zu empfangen; und Medienabschnitte für die ausgewählte Teilregion durch Ausführen der durch die erhaltene Spur spezifizierten Operationen bereitzustellen.
DE112017005235.1T 2016-10-17 2017-10-17 Erhalten und signalisieren einer region oder eines viewports in streaming-medien Pending DE112017005235T5 (de)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201662408867P 2016-10-17 2016-10-17
US62/408,867 2016-10-17
US201662410414P 2016-10-20 2016-10-20
US62/410,414 2016-10-20
US15/730,851 2017-10-12
US15/730,851 US11197040B2 (en) 2016-10-17 2017-10-12 Deriving and signaling a region or viewport in streaming media
PCT/CN2017/106535 WO2018072683A1 (en) 2016-10-17 2017-10-17 Deriving and signaling a region or viewport in streaming media

Publications (1)

Publication Number Publication Date
DE112017005235T5 true DE112017005235T5 (de) 2019-07-11

Family

ID=61902371

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017005235.1T Pending DE112017005235T5 (de) 2016-10-17 2017-10-17 Erhalten und signalisieren einer region oder eines viewports in streaming-medien

Country Status (5)

Country Link
US (1) US11197040B2 (de)
CN (1) CN109891893B (de)
DE (1) DE112017005235T5 (de)
TW (1) TWI662833B (de)
WO (1) WO2018072683A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190199921A1 (en) * 2016-08-29 2019-06-27 Lg Electronics Inc. Method for transmitting 360-degree video, method for receiving 360-degree video, 360-degree video transmitting device, and 360-degree video receiving device
GB2575288B (en) * 2018-07-04 2022-05-25 Canon Kk Method and apparatus for encapsulating images or sequences of images with proprietary information in a file
WO2019192870A1 (en) 2018-04-05 2019-10-10 Canon Kabushiki Kaisha Method and apparatus for encapsulating images or sequences of images with proprietary information in a file
GB2575074B (en) * 2018-06-27 2022-09-28 Canon Kk Encapsulating video content with an indication of whether a group of tracks collectively represents a full frame or a part of a frame
US10826964B2 (en) 2018-09-05 2020-11-03 At&T Intellectual Property I, L.P. Priority-based tile transmission system and method for panoramic video streaming
US10999583B2 (en) * 2018-09-14 2021-05-04 Apple Inc. Scalability of multi-directional video streaming
US11295541B2 (en) * 2019-02-13 2022-04-05 Tencent America LLC Method and apparatus of 360 degree camera video processing with targeted view
WO2021257690A1 (en) * 2020-06-16 2021-12-23 Dolby Laboratories Licensing Corporation Representing volumetric video in saliency video streams
US11922561B2 (en) * 2020-10-06 2024-03-05 Mediatek Singapore Pte. Ltd. Methods and systems for implementing scene descriptions using derived visual tracks
WO2023055612A1 (en) * 2021-09-30 2023-04-06 Dolby Laboratories Licensing Corporation Dynamic spatial metadata for image and video processing

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0618526A3 (de) * 1993-03-31 1995-09-27 Us West Advanced Tech Inc Verfahren und Vorrichtung für ein hierarchisches, ansteuerbares Videomilieu.
CN1689332A (zh) * 2002-10-15 2005-10-26 皇家飞利浦电子股份有限公司 用于经ip网络发送可伸缩编码视频的系统和方法
AU2003900137A0 (en) * 2003-01-14 2003-01-30 Canon Kabushiki Kaisha Process and format for reliable storage of data
WO2005027068A1 (en) * 2003-09-12 2005-03-24 Canon Kabushiki Kaisha Streaming non-continuous video data
US20070022215A1 (en) * 2005-07-19 2007-01-25 Singer David W Method and apparatus for media data transmission
US8788933B2 (en) 2005-12-01 2014-07-22 Nokia Corporation Time-shifted presentation of media streams
US20070168866A1 (en) * 2006-01-13 2007-07-19 Broadcom Corporation Method and system for constructing composite video from multiple video elements
EP2041976A4 (de) * 2006-07-12 2012-06-20 Nokia Corp Signalisierung von skalierbarkeitsinformationen der interessierenden region in mediadateien
US20090119594A1 (en) * 2007-10-29 2009-05-07 Nokia Corporation Fast and editing-friendly sample association method for multimedia file formats
KR101242472B1 (ko) 2008-07-16 2013-03-12 노키아 코포레이션 트랙 및 트랙 서브세트의 그룹화를 위한 방법 및 장치
US20100183033A1 (en) * 2009-01-20 2010-07-22 Nokia Corporation Method and apparatus for encapsulation of scalable media
CN101540947B (zh) * 2009-04-03 2011-12-07 中兴通讯股份有限公司 移动流媒体模拟直播方法及其使用的内容切换方法
GB2469563B (en) * 2009-04-14 2011-11-16 Apple Inc Method and apparatus for media data transmission
US8976871B2 (en) * 2009-09-16 2015-03-10 Qualcomm Incorporated Media extractor tracks for file format track selection
US8930562B2 (en) * 2010-07-20 2015-01-06 Qualcomm Incorporated Arranging sub-track fragments for streaming video data
EP2580738A4 (de) * 2010-08-10 2018-01-03 LG Electronics Inc. Auf eine interessierende region basierende videosynopse
CN101984619A (zh) * 2010-10-12 2011-03-09 中兴通讯股份有限公司 一种流媒体业务的实现方法及系统
US8789095B2 (en) * 2012-05-15 2014-07-22 At&T Intellectual Property I, Lp Apparatus and method for providing media content
JP6434414B2 (ja) * 2012-10-02 2018-12-05 ケアストリーム ヘルス インク X線透視撮影用のポータブル型ラジオグラフィ撮影装置
EP3657806A1 (de) * 2012-10-12 2020-05-27 Canon Kabushiki Kaisha Verfahren und entsprechende vorrichtung zum streaming von videodaten
US11290510B2 (en) * 2012-11-29 2022-03-29 Samsung Electronics Co., Ltd. Method and apparatus for encapsulation of motion picture experts group media transport assets in international organization for standardization base media files
GB2509953B (en) * 2013-01-18 2015-05-20 Canon Kk Method of displaying a region of interest in a video stream
GB2509954B (en) * 2013-01-18 2016-03-23 Canon Kk Method of displaying a region of interest in a video stream
CN109618235B (zh) * 2013-01-18 2021-03-16 佳能株式会社 生成设备和方法、处理设备和方法以及存储介质
US9027067B2 (en) * 2013-03-12 2015-05-05 The United States Of America, As Represented By The Secretary Of The Navy System and method for interactive spatio-temporal streaming data
IN2013CH03069A (de) * 2013-07-09 2015-08-28 Samsung India Software Operations Pvt Ltd
GB2516825B (en) * 2013-07-23 2015-11-25 Canon Kk Method, device, and computer program for encapsulating partitioned timed media data using a generic signaling for coding dependencies
GB2516826B (en) * 2013-07-23 2016-06-22 Canon Kk Method, device and computer program for encapsulating partitioned timed media data by creating tracks to be independently encapsulated in at least one media f
EP3562170A1 (de) * 2013-07-29 2019-10-30 Koninklijke KPN N.V. Bereitstellung von mosaikbasierten videoströmen an einen empfänger
US9648348B2 (en) * 2013-10-23 2017-05-09 Qualcomm Incorporated Multi-layer video file format designs
GB2524531B (en) * 2014-03-25 2018-02-07 Canon Kk Methods, devices, and computer programs for improving streaming of partitioned timed media data
KR101953679B1 (ko) * 2014-06-27 2019-03-04 코닌클리즈케 케이피엔 엔.브이. Hevc-타일드 비디오 스트림을 기초로 한 관심영역 결정
GB2531993B (en) * 2014-10-14 2018-04-25 Canon Kk Description of image composition with HEVC still image file format
GB2533624B (en) * 2014-12-23 2017-08-09 Canon Kk Methods, devices, and computer programs for improving coding of media presentation description data
US9922680B2 (en) * 2015-02-10 2018-03-20 Nokia Technologies Oy Method, an apparatus and a computer program product for processing image sequence tracks
US10306253B2 (en) * 2015-10-14 2019-05-28 Qualcomm Incorporated Signaling of parameter sets in files of multi-layer bitstreams
US10034010B2 (en) * 2015-10-14 2018-07-24 Qualcomm Incorporated Alignment of operation point sample group in multi-layer bitstreams file format
US9992502B2 (en) * 2016-01-29 2018-06-05 Gopro, Inc. Apparatus and methods for video compression using multi-resolution scalable coding
US10313417B2 (en) * 2016-04-18 2019-06-04 Qualcomm Incorporated Methods and systems for auto-zoom based adaptive video streaming
US10582201B2 (en) * 2016-05-19 2020-03-03 Qualcomm Incorporated Most-interested region in an image
KR102170550B1 (ko) * 2016-05-24 2020-10-29 노키아 테크놀로지스 오와이 미디어 콘텐츠를 인코딩하는 방법, 장치 및 컴퓨터 프로그램
EP3503546A4 (de) * 2016-08-25 2020-01-22 LG Electronics Inc. -1- Verfahren zum senden eines omnidirektionalen videos, verfahren zum empfangen eines omnidirektionalen videos, vorrichtung zum senden eines omnidirektionalen videos und vorrichtung zum empfangen eines omnidirektionalen videos
KR102358757B1 (ko) * 2016-08-25 2022-02-07 엘지전자 주식회사 전방향 비디오를 전송하는 방법, 전방향 비디오를 수신하는 방법, 전방향 비디오 전송 장치, 전방향 비디오 수신 장치

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ISO/IEC 14496-12
ISO/IEC 23001-10
ISOBMFF ISO/IEC 14496-12

Also Published As

Publication number Publication date
US20180109817A1 (en) 2018-04-19
TW201820869A (zh) 2018-06-01
TWI662833B (zh) 2019-06-11
CN109891893A (zh) 2019-06-14
US11197040B2 (en) 2021-12-07
WO2018072683A1 (en) 2018-04-26
CN109891893B (zh) 2022-04-12

Similar Documents

Publication Publication Date Title
DE112017005235T5 (de) Erhalten und signalisieren einer region oder eines viewports in streaming-medien
KR102107286B1 (ko) 비트스트림을 처리하기 위한 장치 및 방법
DE112016002377T5 (de) Streamen von sphärischem video
CN108063976B (zh) 一种视频处理方法及装置
DE112007000359B4 (de) Verarbeitung von Videodaten
EP4340375A2 (de) Verfahren, vorrichtung und computerprogramm zur erzeugung zeitgesteuerter mediendaten
US20180093174A1 (en) Positioning a camera video overlay on gameplay video
DE19531004C2 (de) Verfahren und Vorrichtung zur wahrnehmungsoptimierten Übertragung von Video- und Audio-Daten
DE102016120173A1 (de) Verfahren zum Codieren von Videodaten, Videocodierer, welcher dasselbe durchführt und elektronisches System mit demselben
TWI519130B (zh) 以多層連流的形式引起的一序列圖像之顯示方法及裝置
CN113557729B (zh) 视频码流解码方法、系统、装置和电子设备
EP1371229B1 (de) Verfahren zur komprimierung und dekomprimierung von videodaten
US20190222881A1 (en) Information processing apparatus and information processing method
DE102013015821B4 (de) System und Verfahren zur Verbesserung der Videokodierung unter Verwendung von Inhaltsinformation
DE10219132A1 (de) System und Verfahren zum Verbessern der Bildqualität bei verarbeiteten Bildern
CN107683607A (zh) 信息处理设备和信息处理方法
DE102017009145A1 (de) Erfassung und Wiedergabe von 360-Grad-Videos
DE102017009149A1 (de) Aufzeichnung und Wiedergabe von 360-Grad-Videos mit Objektverfolgung
DE102019201370A1 (de) Verarbeitung von multidirektionalen bildern in räumlich geordneten videokodieranwendungen
JP7332605B2 (ja) ビデオビットストリームの復号化、生成方法および装置、記憶媒体、電子機器
EP4124046A1 (de) Datenverarbeitungsverfahren, -gerät und -vorrichtung für immersive medien und computerspeichermedium
CN114745551A (zh) 处理视频帧图像的方法及电子设备
US20190342577A1 (en) Method and apparatus for encoding and decoding 360-degree image
CN113766272B (zh) 一种沉浸媒体的数据处理方法
KR20220113501A (ko) 몰입형 미디어 프로세싱의 순위 정보

Legal Events

Date Code Title Description
R012 Request for examination validly filed