[go: up one dir, main page]

DE102017009121A1 - Prioritizing tile-based virtual reality video streaming using adaptive rate allocation - Google Patents

Prioritizing tile-based virtual reality video streaming using adaptive rate allocation Download PDF

Info

Publication number
DE102017009121A1
DE102017009121A1 DE102017009121.8A DE102017009121A DE102017009121A1 DE 102017009121 A1 DE102017009121 A1 DE 102017009121A1 DE 102017009121 A DE102017009121 A DE 102017009121A DE 102017009121 A1 DE102017009121 A1 DE 102017009121A1
Authority
DE
Germany
Prior art keywords
tiles
video
tile
rate allocation
allocation system
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
DE102017009121.8A
Other languages
German (de)
Inventor
Viswanathan Swaminathan
Mohammad Hosseini
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.)
Adobe Inc
Original Assignee
Adobe Systems 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
Priority claimed from US15/593,050 external-priority patent/US10595069B2/en
Application filed by Adobe Systems Inc filed Critical Adobe Systems Inc
Publication of DE102017009121A1 publication Critical patent/DE102017009121A1/en
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/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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/805QOS or priority aware
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/752Media network packet handling adapting media to network capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/194Transmission of image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/37Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability with arrangements for assigning different transmission priorities to video input data or to video coded data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • 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/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/21805Source of audio or video content, e.g. local disk arrays enabling multiple viewpoints, e.g. using a plurality of cameras
    • 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 or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4621Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/4728End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for selecting a Region Of Interest [ROI], e.g. for requesting a higher resolution version of a selected region
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection
    • 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/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Die vorliegende Offenbarung umfasst Verfahren und Systeme zum Streamen eines virtuelle Realität-Hochleistungsvideos unter Verwendung einer adaptiven Ratenzuweisung. Insbesondere teilt ein adaptives Ratenzuweisungssystem ein Panoramavideo in Segmente oder Kacheln auf und ordnet jeder Kachel oder jedem Segment eine Priorität auf der Basis einer Eingabe (z.B. eines Ansichtsbereichs eines Sichtfelds) von einer Nutzer-Clientvorrichtung zu. Ferner streamt das adaptive Ratenzuweisungssystem jede Kachel oder jedes Segment zu der Nutzer-Clientvorrichtung gemäß der adaptiven Ratenzuweisung, was die Bandbreiteneffizienz und die Videoqualität maximiert. Auf diese Weise liefert das adaptive Ratenzuweisungssystem einen Inhalt mit höherer Qualität zu Bereichen in dem Panoramavideo, auf die ein Nutzer gegenwärtig blickt/am wahrscheinlichsten blicken wird.

Figure DE102017009121A1_0000
The present disclosure includes methods and systems for streaming a high performance virtual reality video using adaptive rate allocation. In particular, an adaptive rate allocation system divides a panoramic video into segments or tiles and assigns priority to each tile or segment based on an input (eg, a field of view of a field of view) from a user-client device. Further, the adaptive rate allocation system streams each tile or segment to the user-client device according to the adaptive rate allocation, which maximizes bandwidth efficiency and video quality. In this way, the adaptive rate allocation system provides higher quality content to areas in the panoramic video that a user is currently most likely / most likely to see.
Figure DE102017009121A1_0000

Description

QUERVERWEIS AUF VERWANDTE ANMELDUNGENCROSS-REFERENCE TO RELATED APPLICATIONS

Diese Anmeldung beansprucht die Priorität der US-Provisional-Patentanmeldung Nr. 62/430,313 , die am 5. Dezember 2016 eingereicht worden ist und die in ihrer Gesamtheit hierin einbezogen ist.This application claims the priority of U.S. Provisional Patent Application No. 62 / 430,313 filed on 5 December 2016, which is hereby incorporated by reference in its entirety.

HINTERGRUNDBACKGROUND

Fortschritte bei der Rechenhardware und bei Netzwerktechnologien, einschließlich die Verfügbarkeit einer hohen Bandbreite, haben die Entwicklung von netzwerkbasierten Multimediaanwendungen (Onlinevideospiele, Streamingfilme, usw.) erzwungen. In letzter Zeit gibt es ein signifikantes Interesse an der Verwendung von dreidimensionalen (3D) Medien, wie z.B. 3D-Immersions- und virtuelle Realität-Videoanwendungen. Virtuelle Realität-Videos sind eindringliche Videos, die einem Mapping zu einer 3D-Geometrie unterzogen worden sind, bei der sich ein Nutzer während des Abspielens unter Verwendung einer am Kopf angebrachten virtuelle Realität-Anzeige (HMD) umsehen kann, was dem Betrachter ein Gefühl der Tiefe in jeder Richtung verleiht.Advances in computing hardware and networking technologies, including the availability of high bandwidth, have forced the development of network-based multimedia applications (online video games, streaming movies, etc.). Recently there is a significant interest in the use of three-dimensional (3D) media, such as e.g. 3D immersion and virtual reality video applications. Virtual reality videos are haunting videos that have been subjected to mapping to a 3D geometry that allows a user to look around while playing using a head-mounted virtual reality display (HMD), giving the viewer a sense of Gives depth in every direction.

Trotz der kürzlichen Fortschritte in der virtuelle Realität-Videotechnologie gibt es bei herkömmlichen Systeme viele Herausforderungen bezüglich der Abgabe eines virtuelle Realität-Inhalts auf hochqualitativen Niveaus. Virtuelle Realität-Videos, die häu360 Grad-Videos umfassen, können extrem bandbreitenintensiv und bei akzeptablen Qualitätsniveaus schwer zu streamen sein. Demgemäß besteht bei der virtuelle Realität-Videotechnologie die Hauptherausforderung, wie die großen virtuelle Realität-Videostreams, die hohe Bitraten erfordern, effizient auf Vorrichtungen mit Bandbreitenbeschränkung, wie z.B. eine drahtlose virtuelle Realität-HMD, übertragen werden können. Beispielsweise wird eine 4K-Videoauflösung mehr und mehr als funktionale Minimumauflösung für gegenwärtige virtuelle Realität-Videosysteme angesehen, während zukünftige virtuelle Realität-Videosysteme 8K-, 12K- und höhere Auflösungen vorwegnehmen. Herkömmliche Systeme haben jedoch bereits bei den gegenwärtigen Auflösungen Schwierigkeiten, bei akzeptablen Qualitätsniveaus zu streamen.Despite the recent advances in virtual reality video technology, traditional systems have many challenges in delivering virtual reality content at high quality levels. Virtual reality videos, the frequent 360 Including grade videos can be extremely bandwidth intensive and difficult to stream at acceptable quality levels. Accordingly, with virtual reality video technology, the main challenge is how to efficiently transmit the large virtual reality video streams requiring high bit rates to bandwidth constrained devices, such as a wireless virtual reality HMD. For example, 4K video resolution is increasingly seen as the minimum functional resolution for current virtual reality video systems, while future virtual reality video systems anticipate 8K, 12K, and higher resolutions. However, even at current resolutions, conventional systems have difficulty streaming at acceptable quality levels.

Als Reaktion auf dieses Problem beschränken viele herkömmliche Systeme Streams zum Vermindern der Auflösungen verglichen mit deren zweidimensionalen (2D) Gegenstücken. Andere herkömmliche Systeme streamen ein virtuelle Realität-Video unter Verwendung eines großen Bereichs von vorgegebenen Auflösungen für verschiedene Abschnitte jedes virtuelle Realität-Videos. Dies erfordert jedoch eine große Speicherkapazität, da jeder Abschnitt in mehreren Auflösungen gespeichert werden muss, wobei es sich um eine Lösung handelt, die nicht brauchbar ist, da die Auflösungen für virtuelle Realität-Videos zunehmen. Ferner ignorieren einige herkömmliche Systeme virtuelle Realität-Videostreamingstandards, was ein Streaming über eine Mehrzahl von Typen von virtuelle Realität-Videovorrichtungen (z.B. HMDs) behindert. Diese und andere Probleme bestehen bezüglich herkömmlicher virtuelle Realität-Systeme.In response to this problem, many conventional systems limit streams for reducing resolutions as compared to their two-dimensional (2D) counterparts. Other conventional systems stream virtual reality video using a wide range of predetermined resolutions for different portions of each virtual reality video. However, this requires a large storage capacity because each section must be stored in multiple resolutions, which is a solution that is not useful as the resolutions for virtual reality videos increase. Further, some conventional systems ignore virtual reality video streaming standards, which hampers streaming across a plurality of types of virtual reality video devices (e.g., HMDs). These and other problems exist with respect to conventional virtual reality systems.

KURZE ZUSAMMENFASSUNGSHORT SUMMARY

Eine oder mehrere Ausführungsformen der vorliegenden Offenbarung stellt oder stellen einen Nutzen bereit und/oder löst oder lösen eines oder mehrere der vorstehenden oder anderer Probleme in dem Fachgebiet mit Systemen und Verfahren, die ein virtuelle Realität-Hochleistungsvideo mittels adaptiver Ratenzuweisung streamen. Insbesondere teilen die offenbarten Systeme und Verfahren in einer oder mehreren Ausführungsform(en) ein Panoramavideo in Segmente und/oder Kacheln („tiles“) auf. Diese Systeme und Verfahren ordnen dann jedem Segment und/oder jeder Kachel Prioritäten zu. Ferner streamen die Systeme und Verfahren jedes Segment und/oder jede Kachel zu der Nutzer-Clientvorrichtung auf der Basis der zugeordneten Prioritäten. Auf diese Weise übertragen die Systeme und Verfahren einen Inhalt mit höherer Qualität zu Bereichen in dem Video, die ein Nutzer gegenwärtig betrachtet/bei denen es am wahrscheinlichsten ist, dass sie ein Nutzer betrachtet, und übertragen Inhalte mit niedrigerer Qualität zu Bereichen außerhalb des Blicks des Nutzers. Dadurch stellen die Systeme und Verfahren signifikante Bandbreiteneinsparungen bereit.One or more embodiments of the present disclosure provide or provide utility and / or solves or solves one or more of the above or other problems in the art with systems and methods that stream high performance virtual reality video through adaptive rate allocation. In particular, in one or more embodiments, the disclosed systems and methods divide a panoramic video into segments and / or tiles. These systems and methods then prioritize each segment and / or tile. Further, the systems and methods stream each segment and / or tile to the user-client device based on the assigned priorities. In this way, the systems and methods transmit higher quality content to areas in the video that a user is currently viewing / most likely to view a user, and transmit lower quality content to out-of-sight areas user. As a result, the systems and methods provide significant bandwidth savings.

Ferner erhalten die offenbarten Systeme und Verfahren in einer oder mehreren Ausführungsformen ein Panoramavideo zum Streamen zu einer Nutzer-Clientvorrichtung. Die offenbarten Systeme und Verfahren teilen dann das Panoramavideo in Kacheln auf, die innerhalb des Panoramavideos geometrisch miteinander ausgerichtet sind. Als nächstes erhalten die offenbarten Systeme und Verfahren eine Angabe von einer Clientvorrichtung, die einen Ansichtsbereich („viewport“) (z.B. Ansichtsbereichinformationen oder ein Sichtfeld) angibt, der innerhalb des Panoramavideos gezeigt ist (d.h., was der Nutzer innerhalb des Panoramavideos betrachtet). Darüber hinaus ordnen die offenbarten Systeme und Verfahren jeder der Kacheln Prioritäten auf der Basis der Ansichtsbereichinformationen zu. Für jede Kachel wird darüber hinaus durch die Systeme oder Verfahren eine Bitrate bestimmt oder zugewiesen, die der Priorität entspricht, die der Kachel zugeordnet ist. Die Systeme und Verfahren streamen dann jede Kachel mittels der Bitrate, die für die gegebene Kachel zugewiesen worden ist, zu der Clientvorrichtung.Further, in one or more embodiments, the disclosed systems and methods receive a panoramic video for streaming to a user-client device. The disclosed systems and methods then divide the panoramic video into tiles that are geometrically aligned within the panoramic video. Next, the disclosed systems and methods receive an indication from a client device indicating a viewport (eg, view area information or field of view) shown within the panning video (ie, what the user views within the panning video). In addition, the disclosed systems and methods prioritize each of the tiles to the base of the view area information. In addition, for each tile, the systems or methods determine or assign a bit rate that corresponds to the priority assigned to the tile. The systems and methods then stream each tile to the client device using the bit rate assigned for the given tile.

Ferner können die offenbarten Systeme und Verfahren eine adaptive Bitratenzuweisung zum Maximieren der Bandbreiteneffizienz und der Videoqualität nutzen. Beispielsweise bestimmen die offenbarten Systeme und Verfahren in einer oder mehreren Ausführungsform(en) eine minimale Videoqualität und eine entsprechende Bitrate, die zum Streamen aller Kacheln des Panoramavideos zu der Nutzer-Clientvorrichtung erforderlich sind. Dann weisen die offenbarten Systeme und Verfahren unter Verwendung der zusätzlichen verfügbaren Bandbreite heuristisch Raten Kacheln auf der Basis von Sichtfeldprioritäten zu, bis eine Bandbreitengrenze erreicht ist und die Bandbreiteneffizienz (z.B. der Durchsatz) mit der Clientvorrichtung maximiert ist.Further, the disclosed systems and methods may utilize adaptive bit rate allocation to maximize bandwidth efficiency and video quality. For example, in one or more embodiments, the disclosed systems and methods determine a minimum video quality and bit rate necessary to stream all the tiles of the panoramic video to the user client device. Then, the disclosed systems and methods using the additional available bandwidth heuristically allocate rates based on field of view priorities until a bandwidth limit is reached and the bandwidth efficiency (e.g., throughput) with the client device is maximized.

Demgemäß erreichen die hier offenbarten Systeme und Verfahren eine Ausgewogenheit zwischen dem Bedarf für ein hochqualitatives virtuelle Realität-Video und einer begrenzten Bandbreite mit einem minimalen negativen Einfluss auf die Erfahrung eines Nutzers. Wie es nachstehend detailliert beschrieben wird, stellen die offenbarten Systeme und Verfahren eine semantische Verknüpfung zwischen dem Ansichtsbereich eines Nutzers (z.B. dem Sichtfeld „field-of-view“), der räumlichen Aufteilung des virtuelle Realität-Videos und der Streampriorisierung zum Erleichtern der Bandbreitenverwaltung und eines virtuelle Realität-Hochleistungsvideostreamings bereit.Accordingly, the systems and methods disclosed herein achieve a balance between the need for high quality virtual reality video and limited bandwidth with minimal negative impact on a user's experience. As will be described in detail below, the disclosed systems and methods provide a semantic link between a user's field of view (eg, field-of-view field of view), virtual reality video spatial partitioning, and stream prioritization to facilitate bandwidth management a virtual reality high-performance video streaming ready.

Zusätzliche Merkmale und Vorteile von einer oder mehreren Ausführungsform(en) der vorliegenden Offenbarung sind in der nachstehenden Beschreibung dargelegt und ergeben sich zum Teil aus der Beschreibung, oder sie werden durch die Durchführung solcher Beispielausführungsformen ersichtlich.Additional features and advantages of one or more embodiments of the present disclosure are set forth in the description which follows, and in part will be apparent from the description, or may be learned by practice of such example embodiments.

Figurenlistelist of figures

Die detaillierte Beschreibung bezieht sich auf die nachstehend angegebenen beigefügten Zeichnungen.

  • 1 zeigt ein schematisches Diagramm, das eine beispielhafte Umgebung zeigt, in der ein adaptives Ratenzuweisungssystem gemäß einer oder mehrerer Ausführungsform(en) implementiert werden kann.
  • 2 zeigt ein beispielhaftes sphärisches bzw. räumliches Video (sowohl 3D als auch eben) mit einem Ansichtsbereich.
  • 3A-3B zeigen ein beispielhaftes sphärisches bzw. räumliches Video, das in 3D-Netzsegmente oder Kacheln gemäß einer oder mehreren Ausführungsform(en) aufgeteilt ist.
  • 4 zeigt ein beispielhaftes sphärisches bzw. räumliches Video, das in sechs Kacheln einer Kugel mit sechs Flächen gemäß einer oder mehreren Ausführungsform(en) aufgeteilt ist.
  • 5A-5B zeigen ein beispielhaftes sphärisches bzw. räumliches Video, dem eine Priorität auf der Basis einer Nutzereingabe (z.B. eines Ansichtsbereichs) von einer Nutzer-Clientvorrichtung gemäß einer oder mehrerer Ausführungsform(en) zugeordnet ist.
  • 6 zeigt ein beispielhaftes Diagramm von verschiedenen Auflösungen, die das adaptive Ratenzuweisungssystem zum Streamen von Kacheln eines räumlichen Videos zu einer Clientvorrichtung gemäß einer oder mehrerer Ausführungsform(en) nutzt.
  • 7 zeigt ein Ablaufdiagamm des Streamens eines virtuelle Realität-Videos mittels des adaptiven Ratenzuweisungssystems gemäß einer oder mehrerer Ausführungsform(en).
  • 8 zeigt eine Beispielausführungsform des adaptiven Ratenzuweisungssystems gemäß einer oder mehrerer Ausführungsform(en).
  • 9 zeigt ein Flussdiagramm einer Reihe von Vorgängen in einem Verfahren zur Bereitstellung eines bandbreiteneffizienten virtuelle Realität-Videos gemäß einer oder mehrerer Ausführungsform(en).
  • 10 zeigt ein Blockdiagramm einer beispielhaften Rechenvorrichtung gemäß einer oder mehrerer Ausführungsform(en).
The detailed description refers to the attached drawings given below.
  • 1 FIG. 12 is a schematic diagram illustrating an exemplary environment in which an adaptive rate allocation system may be implemented according to one or more embodiments.
  • 2 shows an exemplary spherical or spatial video (both 3D and even) with a viewing area.
  • 3A - 3B show an exemplary spherical video that is divided into 3D mesh segments or tiles according to one or more embodiments.
  • 4 FIG. 12 shows an exemplary spherical video divided into six tiles of a six-surface sphere according to one or more embodiments.
  • 5A - 5B show an exemplary spherical video associated with a priority based on a user input (eg, a viewing area) of a user-client device according to one or more embodiments.
  • 6 FIG. 12 shows an exemplary diagram of various resolutions that the adaptive rate allocation system uses to stream spatial video tiles to a client device according to one or more embodiments.
  • 7 FIG. 10 shows a flowchart of streaming a virtual reality video by means of the adaptive rate allocation system according to one or more embodiments.
  • 8th FIG. 12 illustrates an example embodiment of the adaptive rate allocation system according to one or more embodiments.
  • 9 FIG. 12 is a flowchart of a series of operations in a method of providing bandwidth efficient virtual reality video according to one or more embodiments.
  • 10 FIG. 12 is a block diagram of an example computing device according to one or more embodiments. FIG.

DETAILLIERTE BESCHREIBUNG DETAILED DESCRIPTION

Eine oder mehrere Ausführungsform(en) der vorliegenden Offenbarung umfasst oder umfassen ein adaptives Ratenzuweisungssystem, das eine Bandbreitenverwaltung zum Erreichen eines virtuelle Realität-Hochleistungsvideostreamings umfasst. Insbesondere teilt das adaptive Ratenzuweisungssystem in einer oder mehreren Ausführungsform(en) ein virtuelle Realität-Panaromavideo in eine Mehrzahl von Segmenten auf, priorisiert jedes Segment auf der Basis des gegenwärtigen Sichtfelds eines Nutzers und streamt jedes Segment auf der Basis der Priorität des Segments und einer entsprechenden Ratenzuweisung. Auf diese Weise verbessert das adaptive Ratenzuweisungssystem das Streaming des virtuelle Realität-Panoramavideos über dasjenige von herkömmlichen Systemen hinaus. Ferner überträgt das adaptive Ratenzuweisungssystem einen Inhalt mit höherer Qualität zu Bereichen in dem Panoramavideo, die ein Nutzer gerade betrachtet/bei denen es am wahrscheinlichsten ist, dass sie ein Nutzer betrachtet, sowie einen Inhalt mit niedrigerer Qualität zu Bereichen außerhalb des Blicks des Nutzers.One or more embodiments of the present disclosure include or include an adaptive rate allocation system that includes bandwidth management for achieving high performance virtual reality video streaming. In particular, in one or more embodiments, the adaptive rate allocation system splits a virtual reality panaromavideo into a plurality of segments, prioritizes each segment based on a user's current field of view, and streams each segment based on the segment's priority and a corresponding one rate assignment. In this way, the adaptive rate allocation system enhances the streaming of the virtual reality panoramic video beyond that of conventional systems. Further, the adaptive rate allocation system transmits higher quality content to areas in the panoramic video that a user is currently viewing / most likely to view a user, as well as lower quality content to areas outside of the user's gaze.

Insbesondere greift das adaptive Ratenzuweisungssystem auf ein virtuelle Realität-Panoramavideo (oder einfach „Panoramavideo“) zu oder erhält ein solches, das durch Streamen zu einer Clientvorrichtung (z.B. einer virtuelle Realität-Anzeigevorrichtung) übertragen wird. Das adaptive Ratenzuweisungssystem teilt das Panoramavideo in Segmente, wie z.B. Kacheln, auf, die innerhalb des Panoramavideos geometrisch ausgerichtet sind. Als nächstes erhält das adaptive Ratenzuweisungssystem Ansichtsbereichinformationen von der Clientvorrichtung, die eine gegenwärtige Position des Ansichtsbereichs („viewport“) (z.B. des Sichtfelds) innerhalb des Panoramavideos angeben. Auf der Basis der Ansichtsbereichinformationen ordnet das adaptive Ratenzuweisungssystem jedem der Segmente Prioritäten zu. Beispielsweise ordnet das adaptive Ratenzuweisungssystem Segmenten, die mit dem Ansichtsbereich überlappen oder an den Ansichtsbereich angrenzen, eine höhere Priorität zu als Segmenten, die weiter entfernt von dem Ansichtsbereich vorliegen. Ferner bestimmt das adaptive Ratenzuweisungssystem eine Rate (z.B. eine Bitrate) für jedes Segment, die der zugeordneten Priorität entspricht. Das adaptive Ratenzuweisungssystem streamt dann jedes Segment mit der entsprechenden Rate zu der Clientvorrichtung.In particular, the adaptive rate allocation system accesses or obtains a virtual reality panoramic video (or simply "panoramic video") that is transmitted by streaming to a client device (e.g., a virtual reality display device). The adaptive rate allocation system divides the panoramic video into segments, e.g. Tiles on, which are geometrically aligned within the panorama video. Next, the adaptive rate allocation system obtains view area information from the client device indicating a current position of the viewport (e.g., field of view) within the panoramic video. Based on the view area information, the adaptive rate allocation system prioritizes each of the segments. For example, the adaptive rate allocation system assigns higher priority to segments that overlap the view area or adjoin the view area than segments farther away from the view area. Further, the adaptive rate allocation system determines a rate (e.g., a bit rate) for each segment that corresponds to the assigned priority. The adaptive rate allocation system then streams each segment at the appropriate rate to the client device.

Wie es vorstehend erwähnt worden ist, kann das adaptive Ratenzuweisungssystem eine Rate (z.B. eine Bitrate) für jedes Panoramavideosegment mit einer zugeordneten Priorität bestimmen. Die bestimmte Rate gibt dann vor, wie das Segment zu der Clientvorrichtung gestreamt wird. In einer oder mehreren Ausführungsform(en) nutzt das adaptive Ratenzuweisungssystem einen heuristischen Ratenzuweisungsalgorithmus zum Bestimmen der Rate für jedes Segment. Wie es vorstehend erwähnt worden ist, sind die Bandbreitenresourcen häufig beschränkt, insbesondere wenn die Clientvorrichtung das Panoramavideo drahtlos empfängt. Als solches nutzt das adaptive Ratenzuweisungssystem eine adaptive Ratenzuweisung zum Maximieren der Bandbreiteneffizienz und der Videoqualität.As mentioned above, the adaptive rate allocation system may determine a rate (e.g., a bit rate) for each panoramic video segment having an associated priority. The particular rate then dictates how the segment is streamed to the client device. In one or more embodiments, the adaptive rate allocation system utilizes a heuristic rate allocation algorithm to determine the rate for each segment. As mentioned above, the bandwidth resources are often limited, particularly when the client device wirelessly receives the panoramic video. As such, the adaptive rate allocation system utilizes adaptive rate allocation to maximize bandwidth efficiency and video quality.

Insbesondere bestimmt das adaptive Ratenzuweisungssystem eine minimale akzeptable Videoqualität zum Senden eines Panoramavideos an die Clientvorrichtung. Das adaptive Ratenzuweisungssystem bestimmt auch eine minimale Bitrate, die der minimalen akzeptablen Videoqualität entspricht. Das adaptive Ratenzuweisungssystem identifiziert dann das Ausmaß der Bandbreite, das zum Streamen jedes Segments bei der minimalen Bitrate erforderlich ist (z.B. bei der minimalen akzeptablen Videoqualität). Häufig steht über die minimale Bitrate hinaus eine zusätzliche Bandbreite zur Verfügung. Deshalb identifiziert das adaptive Ratenzuweisungssystem das Ausmaß der zusätzlichen Bandbreite zwischen einer Bandbreitengrenze oder einem Bandbreitenbudget und der minimalen Bitrate. Unter Verwendung der zusätzlichen Bandbreite kann das adaptive Ratenzuweisungssystem ausgewählte Segmente bei höheren Videoqualitäten zu der Clientvorrichtung streamen.In particular, the adaptive rate allocation system determines a minimum acceptable video quality for sending a panoramic video to the client device. The adaptive rate allocation system also determines a minimum bit rate that corresponds to the minimum acceptable video quality. The adaptive rate allocation system then identifies the amount of bandwidth required to stream each segment at the minimum bit rate (e.g., with the minimum acceptable video quality). Frequently, additional bandwidth is available beyond the minimum bit rate. Therefore, the adaptive rate allocation system identifies the amount of additional bandwidth between a bandwidth limit or a bandwidth budget and the minimum bit rate. Using the additional bandwidth, the adaptive rate allocation system may stream selected segments to the client device at higher video qualities.

In einigen Beispielausführungsformen bestimmt das adaptive Ratenzuweisungssystem auf der Basis der dem Segment zugeordneten Priorität, welche Segmente mit einer höheren Videoqualität zu streamen sind (z.B. bei einer höheren Bitrate). Wie es weiter unten beschrieben ist, weist das adaptive Ratenzuweisungssystem Segmenten eine Priorität auf der Basis dessen zu, was ein Nutzer betrachtet (d.h., des Ansichtsbereichs), und der Wahrscheinlichkeit, was ein Nutzer als nächstes betrachtet. Beispielsweise streamt das adaptive Ratenzuweisungssystem Segmente mit der höchsten zugeordneten Priorität bei der höchsten Bitrate, wenn ausreichend zusätzliche Bandbreite zur Verfügung steht, so dass die gegenwärtige Betrachtung des Nutzers dem Nutzer mit der höchsten Videoqualität zur Verfügung gestellt wird. Entsprechend kann das adaptive Ratenzuweisungssystem andere Segmente mit anderen zugeordneten Prioritäten bei verschiedenen Bitratenniveaus (die Videoqualitätniveaus entsprechen) auf der Basis der verfügbaren zusätzlichen Bandbreite streamen. Auf diese Weise bestimmt das adaptive Ratenzuweisungssystem, wie das Video mit der höchstmöglichen Qualität zu streamen ist, während die Bandbreiteneffizienz maximiert wird.In some example embodiments, based on the priority assigned to the segment, the adaptive rate allocation system determines which segments to stream with higher video quality (e.g., at a higher bit rate). As described below, the adaptive rate allocation system assigns priority to segments based on what a user is viewing (i.e., the viewing area) and the likelihood of what a user is considering next. For example, the adaptive rate allocation system streams segments with the highest assigned priority at the highest bitrate if sufficient additional bandwidth is available so that the current viewing of the user is provided to the user with the highest video quality. Accordingly, the adaptive rate allocation system may stream other segments with different assigned priorities at different bit rate levels (corresponding to video quality levels) based on the available additional bandwidth. In this way, the adaptive rate allocation system determines how to stream the video with the highest possible quality while maximizing bandwidth efficiency.

Wie es vorstehend erwähnt worden ist, teilt das adaptive Ratenzuweisungssystem in einigen Beispielausführungsformen ein Panoramavideo in Kacheln auf. Beispielsweise teilt das adaptive Ratenzuweisungssystem ein Panoramavideo in Räume mit sechs Flächen auf, die eine obere Kachel, eine untere Kachel und vier mittlere Körperkacheln umfassen. Wenn das Panoramavideo z.B. ein spärisches bzw. räumliches Video („sperical video“) ist (d.h., ein 360 Grad-Video), dann teilt das adaptive Ratenzuweisungssystem das Panoramavideo in eine Kugel mit sechs Flächen auf, die nachstehend unter Bezugnahme auf die 3B detaillierter gezeigt und beschrieben wird. Unter Verwendung der Kacheln in den Räumen mit sechs Flächen weist das adaptive Ratenzuweisungssystem Prioritäten auf der Basis der Kachel oder der Kacheln zu, die der Nutzer gegenwärtig betrachtet, wie es durch den Ansichtsbereich angegeben ist. Das adaptive Ratenzuweisungssystem kann dann die Bitrate bestimmen, bei der jede Kachel auf der Basis der Kombination der zugeordneten Priorität einer Kachel und der verfügbaren Bandbreite gestreamt werden soll. As mentioned above, in some example embodiments, the adaptive rate allocation system splits a panoramic video into tiles. For example, the adaptive rate allocation system splits a panoramic video into six-area rooms that include an upper tile, a lower tile, and four middle body tiles. For example, if the panning video is a "sperical video" (ie, a 360 degree video), then the adaptive rate allocation system divides the panning video into a six-area sphere, which will be described below with reference to FIGS 3B shown and described in more detail. Using the tiles in the six-area rooms, the adaptive rate allocation system allocates priorities based on the tile or tiles that the user is currently viewing, as indicated by the view area. The adaptive rate allocation system may then determine the bit rate at which each tile is to be streamed based on the combination of the assigned priority of a tile and the available bandwidth.

Wie es erwähnt worden ist, kann das adaptive Ratenzuweisungssystem Kacheln eine Priorität auf der Basis des Ansichtsbereichs („viewport“) zuordnen. Der Ansichtsbereich stellt eine Angabe über das Sichtfeld („field-of-view“) eines Nutzers sowie der Betrachtungsrichtung eines Nutzers innerhalb eines Panoramavideos bereit. Beispielsweise ordnet das adaptive Ratenzuweisungssystem in einer oder mehreren Ausführungsform(en) die höchste Priorität Segmenten zu, die mit dem Ansichtsbereich überlappen. Darüber hinaus ordnet das adaptive Ratenzuweisungssystem die zweithöchste Priorität Segmenten zu, die an den Ansichtsbereich angrenzen, und eine niedrigere Priorität Segmenten zu, die weiter entfernt von dem Ansichtsbereich vorliegen. In einigen Beispielausführungsformen ordnet das adaptive Ratenzuweisungssystem eine Priorität auf der Basis dessen zu, worauf ein Nutzer wahrscheinlich als nächstes seinen Blick richtet (z.B. eine antizipierte zukünftige Position des Ansichtsbereichs). Beispielsweise ordnet das adaptive Ratenzuweisungssystem eine niedrigere Priorität einem Segment zu, das den Himmel umfasst (z.B. die obere Kachel), bei dem es nicht wahrscheinlich ist, dass der Nutzer darauf blickt.As has been mentioned, the adaptive rate allocation system may assign tiles a priority based on the viewport. The viewport provides an indication of the field of view of a user as well as the viewing direction of a user within a panoramic video. For example, in one or more embodiments, the adaptive rate allocation system allocates the highest priority to segments that overlap the view area. In addition, the adaptive rate allocation system assigns the second highest priority to segments adjacent to the view area and lower priority to segments farther from the view area. In some example embodiments, the adaptive rate allocation system assigns a priority based on what a user is likely to focus on next (e.g., an anticipated future position of the viewing area). For example, the adaptive rate allocation system assigns a lower priority to a segment that includes the sky (e.g., the top tile), which is unlikely to be viewed by the user.

In einigen Beispielausführungsformen kann das adaptive Ratenzuweisungssystem einem Segment eine oder mehrere digitale Verbesserungen hinzufügen, bevor das Segment zu einer Clientvorrichtung gestreamt wird. Beispielsweise kann das adaptive Ratenzuweisungssystem ein interaktives 3D-Objekt in das räumliche Video einfügen. Als weiteres Beispiel verbessert das adaptive Ratenzuweisungssystem das räumliche Video mit einer Werbung, die intelligent innerhalb eines Segments oder innerhalb einer Kachel angeordnet ist.In some example embodiments, the adaptive rate allocation system may add one or more digital enhancements to a segment before the segment is streamed to a client device. For example, the adaptive rate allocation system may insert an interactive 3D object into the spatial video. As another example, the adaptive rate allocation system enhances the spatial video with an advertisement that is intelligently located within a segment or within a tile.

Wie es vorstehend kurz beschrieben worden ist, stellt das Medienzuordnungssystem eine Anzahl von Vorteilen gegenüber herkömmlichen Systemen bereit. Beispielsweise stellt das adaptive Ratenzuweisungssystem eine verbesserte Bandbreitenverwaltung bereit, während für einen Nutzer ein hochqualitatives virtuelle Realität-Video bereitgestellt wird, das die virtuelle Realität-Erfahrung eines Nutzers verbessert. Insbesondere verbessert das adaptive Ratenzuweisungssystem die Effizienz des Übertragens und Streamens eines räumlichen Videos zu einer Clientvorrichtung. In einigen Ausführungsformen führte die verbesserte Bandbreiteneffizienz verglichen mit herkömmlichen Standardfällen zu Bandbreiteneinsparungen bis zu 72 %.As briefly described above, the media allocation system provides a number of advantages over conventional systems. For example, the adaptive rate allocation system provides enhanced bandwidth management while providing a user with high quality virtual reality video that enhances a user's virtual reality experience. In particular, the adaptive rate allocation system improves the efficiency of transmitting and streaming a spatial video to a client device. In some embodiments, the improved bandwidth efficiency compared to traditional standard cases resulted in bandwidth savings of up to 72%.

Da das adaptive Ratenzuweisungssystem die Effizienzen beim Streamen eines räumlichen Videos verbessert, führt das adaptive Ratenzuweisungssystem zu einer geringeren Gesamtdatenverarbeitung und zu geringeren erforderlichen Rechenresourcen sowohl auf dem Server, der das räumliche Video sendet, als auch auf der Clientvorrichtung, die das Video empfängt. Beispielsweise sendet die Servervorrichtung Segmente und die Clientvorrichtung empfängt Segmente auf der Basis des gegenwärtigen Sichtfelds des Nutzers innerhalb des räumlichen Videos. Mit anderen Worten, das adaptive Ratenzuweisungssystem ermöglicht es der Servervorrichtung, die Segmente, die gegenwärtig für den Nutzer am signifikantesten sind, schneller zu suchen, zu lokalisieren und zu senden. Darüber hinaus empfängt und verarbeitet die Clientvorrichtung Segmente, die für den Nutzer im Moment am signifikantesten sind, was die Belastung und die Verarbeitungsresourcen vermindert, die auf der Clientvorrichtung erforderlich sind (die häufig begrenzt sind). Ferner verstärkt sich dieser Nutzen exponentiell, da das adaptive Ratenzuweisungssystem diese Aktionen während der gesamten Streamingerfahrung des Nutzers konstant wiederholt.As the adaptive rate allocation system improves the spatial video streaming efficiencies, the adaptive rate allocation system results in less overall data processing and lower computational resources required on both the server transmitting the spatial video and the client device receiving the video. For example, the server device sends segments and the client device receives segments based on the user's current field of view within the spatial video. In other words, the adaptive rate allocation system allows the server device to more quickly search, locate, and send the segments that are currently most significant to the user. In addition, the client device receives and processes segments that are most significant to the user at the moment, reducing the burden and processing resources required on the client device (which are often limited). Furthermore, this benefit increases exponentially as the adaptive rate allocation system constantly repeats these actions throughout the user's streaming experience.

Als einen weiteren Nutzen stellt das adaptive Ratenzuweisungssystem mehr Flexibilität bereit. Insbesondere arbeitet das adaptive Ratenzuweisungssystem mittels bekannter Standards, wie z.B. eines dynamischen adaptiven Streamings über HTTP (DASH). Als solches arbeitet das adaptive Ratenzuweisungssystem mit den meisten Typen von virtuelle Realität-Anzeigevorrichtungen. Auf diese Weise ermöglicht es das adaptive Ratenzuweisungssystem den nachstehend beschriebenen Systemen und Verfahren, auf den meisten Clientvorrichtungen zu arbeiten, und zwar im Gegensatz zu herkömmlichen Systemen, die es erfordern, dass der Nutzer einen speziellen Typ von Clientvorrichtung erwirbt. Zusätzliche Leistungen, Vorteile, Merkmale und Eigenschaften des adaptiven Ratenzuweisungssystems sind nachstehend in Bezug auf die Figuren beschrieben, die eine oder mehrere Ausführungsform(en) des adaptiven Ratenzuweisungssystems beschreiben.As another benefit, the adaptive rate allocation system provides more flexibility. In particular, the adaptive rate allocation system operates using known standards, such as Dynamic Adaptive Streaming over HTTP (DASH). As such, the adaptive rate allocation system works with most types of virtual reality display devices. In this way, the adaptive rate allocation system allows the systems and methods described below to operate on most client devices, unlike conventional systems that require the user to acquire a particular type of client device. Additional benefits, benefits, features and Features of the adaptive rate allocation system are described below with reference to the figures, which describe one or more embodiments of the adaptive rate allocation system.

Unter Bezugnahme auf die Figuren zeigt die 1 ein schematisches Diagramm, das eine Beispielumgebung 100 zeigt, in der ein adaptives Ratenzuweisungssystem 104 arbeiten kann. Wie es gezeigt ist, umfasst die Beispielumgebung 100 eine oder mehrere Servervorrichtung(en) 102, auf denen ein Multimediastreamingsystem 103 gehostet ist, wobei ein Teil davon das adaptive Ratenzuweisungssystem 104 sein kann, um bei einem effizienten Streamen zu unterstützen. Die Umgebung 100 kann gegebenenfalls eine oder mehrere Inhaltsprovidervorrichtung(en) 106 und eine Clientvorrichtung (d.h., eine virtuelle Realität-Anzeigevorrichtung 110) umfassen. Die eine oder mehreren Servervorrichtung(en) 102, die eine oder mehreren Inhaltsprovidervorrichtung(en) 106 und die virtuelle Realität-Anzeigevorrichtung 110 können durch ein Netzwerk 112 miteinander kommunizieren, das für jedwedes geeignete Netzwerk steht, über das die Rechenvorrichtungen kommunizieren können. Beispielnetzwerke werden nachstehend unter Bezugnahme auf die 10 detaillierter diskutiert.With reference to the figures, FIG 1 a schematic diagram showing an example environment 100 shows in which an adaptive rate allocation system 104 can work. As shown, the example environment includes 100 one or more server device (s) 102 on which a multimedia streaming system 103 part of which is the adaptive rate allocation system 104 can be to aid in efficient streaming. The environment 100 may optionally include one or more content provider device (s) 106 and a client device (ie, a virtual reality display device 110 ). The one or more server device (s) 102 containing one or more content provider device (s) 106 and the virtual reality display device 110 may be through a network 112 communicate with each other, which stands for any suitable network over which the computing devices can communicate. Example networks will be described below with reference to FIGS 10 discussed in more detail.

Wie es gerade erwähnt worden ist, umfasst die Umgebung 100 die eine oder mehreren Servervorrichtung(en) 102. Die eine oder mehreren Servervorrichtung(en) 102 kann oder können jedweden Typ von Daten, einschließlich einen virtuelle Realität-Inhalt und eine Nutzereingabe, erzeugen, speichern, empfangen und senden. Beispielsweise sendet oder senden die eine oder mehreren Servervorrichtung(en) 102 Daten zu Clientvorichtungen, wie z.B. der virtuelle Realität-Anzeigevorrichtung 110. In einer Beispielausführungsform umfasst oder umfassen die eine oder mehreren Servervorrichtung(en) 102 einen Inhaltsserver. In einigen Beispielausführungsformen umfasst oder umfassen die eine oder mehreren Servervorrichtung(en) 102 einen Kommunikationsserver oder einen Webhostingserver. Darüber hinaus kann oder können die eine oder mehreren Servervorrichtung(en) 102 eine oder mehrere der nachstehend in Bezug auf die 10 beschriebenen Rechenvorrichtungen umfassen.As it has just been mentioned, the environment includes 100 the one or more server device (s) 102 , The one or more server device (s) 102 may or may generate, store, receive, and send any type of data, including virtual reality content and user input. For example, the one or more server devices send or send 102 Data about client devices, such as the virtual reality display device 110 , In an example embodiment, the one or more server devices include or include 102 a content server. In some example embodiments, the one or more server devices include or include 102 a communication server or a web hosting server. In addition, the one or more server devices may or may not 102 one or more of the following in relation to the 10 include computing devices described.

Wie es in der 1 gezeigt ist, umfasst oder umfassen die eine oder mehreren Servervorrichtung(en) 102 ein Multimediastreamingsystem 103. Die eine oder mehreren Servervorrichtung(en) 102 können das gesamte Multimediastreamingsystem 103 oder einen Teil davon umfassen. Das Multimediastreamingsystem 103 kann eine Anwendung, die auf der einen oder den mehreren Servervorrichtung(en) 102 läuft, oder einen Teil einer Softwareanwendung, die von einer oder mehreren Servervorrichtung(en) 102 heruntergeladen werden kann, umfassen. Beispielsweise umfasst das Multimediastreamingsystem 103 eine Webhostinganwendung, die es Clientvorrichtungen ermöglicht, mit einem Inhalt zu interagieren, der auf der einen oder den mehreren Servervorrichtung(en) 102 gehostet ist. Beispielsweise greift in einer oder mehreren Ausführungsform(en) der Umgebung 100 die virtuelle Realität-Anzeigevorrichtung 110 auf eine Webseite zu, die eine virtuelle Realität-Erfahrung bereitstellt (z.B. ein räumliches Video umfasst), die von der einen oder den mehreren Servervorrichtung(en) 102 unterstützt wird. Die virtuelle Realität-Anzeigevorrichtung 110 betreibt eine Anwendung, die es einem Nutzer erlaubt, auf einen Inhalt, der auf der einen oder den mehreren Servervorrichtung(en) 102 gehostet ist, zuzugreifen, diesen zu betrachten und/oder mit diesem zu interagieren. Beispiele für Multimediastreamingsysteme 103 umfassen Videostreamingdienste, Fernsehstreamingdienste, Videospielstreamingdienste, usw.As it is in the 1 includes or includes the one or more server devices. 102 a multimedia streaming system 103 , The one or more server device (s) 102 can the entire multimedia streaming system 103 or part of it. The multimedia streaming system 103 can an application running on the one or more server device (s) 102 is running, or part of a software application that is powered by one or more server devices. 102 can be downloaded. For example, the multimedia streaming system includes 103 A web hosting application that enables client devices to interact with content that resides on one or more server devices. 102 is hosted. For example, in one or more embodiments, the environment is intervening 100 the virtual reality display device 110 to a web page providing a virtual reality experience (eg, comprising a spatial video) derived from the one or more server devices. 102 is supported. The virtual reality display device 110 operates an application that allows a user to access content stored on one or more server devices. 102 is hosted, accessed, viewed, and / or interacted with. Examples of multimedia streaming systems 103 include video streaming services, television streaming services, video game streaming services, etc.

Darüber hinaus kann das Multimediastreamingsystem 103 das adaptive Ratenzuweisungssystem 104 umfassen. Das adaptive Ratenzuweisungssystem 104 kann es dem Multimediastreamingsystem 103 erlauben, einen virtuelle Realität-Inhalt effizient zu Clientvorrichtungen zu streamen. Der Ausdruck „virtuelle Realität-Inhalt“, wie es hier verwendet wird, bezieht sich auf Informationen, die für einen Nutzer mittels einer virtuelle Realität-Anzeigevorrichtung dargestellt werden können. Insbesondere umfasst der Begriff „virtuelle Realität-Inhalt“ einen digitalen Inhalt, der in einem räumlichen Video dargestellt wird. Demgemäß bezieht sich der virtuelle Realität-Inhalt in einer oder mehreren Ausführungsform(en) auf ein Bild oder ein Video, das ein Sichtfeld umfasst, das sich über das typische Sichtfeld eines Paars menschlicher Augen hinaus erstreckt (z.B. 180°). In einigen Ausführungsformen umfasst der virtuelle Realität-Inhalt einen audiovisuellen 360 Grad-Inhalt oder, mit anderen Worten, einen Inhalt mit 360 Grad eines horizontalen Sichtfelds. Virtuelle Realität-Inhaltsgegenstände können ein digitales Bild, ein Video, eine Website, eine Webseite, eine Nutzerschnittstelle, einen Menügegenstand, ein Werkzeugmenü, ein Magazin, eine Diashow, eine Animation, einen sozialen Post, einen Kommentar, einen Blog, einen Datenfeed, Audiodaten, Werbung, eine Vektorgraphik, eine Bitmap, ein Dokument, jedwede Kombination von einem oder mehreren der Vorstehenden oder einen anderen elektronischen Inhalt umfassen.In addition, the multimedia streaming system 103 the adaptive rate allocation system 104 include. The adaptive rate allocation system 104 Can it be the multimedia streaming system 103 allow streaming virtual reality content efficiently to client devices. The term "virtual reality content" as used herein refers to information that can be presented to a user by means of a virtual reality display device. In particular, the term "virtual reality content" includes digital content presented in a spatial video. Accordingly, in one or more embodiments, the virtual reality content refers to an image or video that includes a field of view that extends beyond the typical field of view of a pair of human eyes (eg, 180 °). In some embodiments, the virtual reality content includes 360 degree audiovisual content or, in other words, 360 degree content of a horizontal field of view. Virtual reality content items may include a digital image, a video, a website, a web page, a user interface, a menu item, a tool menu, a magazine, a slideshow, an animation, a social post, a comment, a blog, a data feed, audio data , Advertising, a vector graphic, a bitmap, a document, any combination of one or more of the foregoing, or other electronic content.

Die Ausdrücke „Panoramavideo“ oder „immersives bzw. eindringliches Video“ beziehen sich allgemein auf ein Video, das ein größeres Sichtfeld aufweist (z.B. horizontal, vertikal oder diagonal) als dasjenige, das auf einmal auf einer virtuelle Realität-Anzeige angezeigt werden kann. Wie hier verwendet, zeigt ein Panoramavideo mehr als 180 Grad eines horizontalen Sichtfelds und mehr als 90 Grad eines vertikalen Sichtfelds. Beispielsweise ist ein räumliches Video oder 360-Grad-Video ein Beispiel für ein Panoramavideo. Darüber hinaus umfasst ein Panoramavideo ein Video, das durch eine oder mehr Digitalkamera(s) aufgenommen worden ist und das eine Darstellung eines Inhalts vor, hinter und neben den Digitalkameras wiedergibt. Alternativ bezieht sich ein Panoramavideo in einer oder mehreren Ausführungsform(en) auf einen Satz einer Mehrzahl von Videos (z.B. aufgenommen durch eine oder mehrere einer Mehrzahl von Digitalkameras), die kombiniert oder miteinander verbunden werden, um ein vergrößertes Sichtfeld bereitzustellen.The terms "panoramic video" or "immersive video" generally refers to a video that has a larger field of view (eg, horizontal, vertical, or diagonal) than the one that can be displayed at once on a virtual reality display. As used herein, a panoramic video shows more than 180 degrees of a horizontal field of view and more than 90 degrees of a vertical field of view. For example, a spatial video or 360-degree video is an example of a panoramic video. About that In addition, a panoramic video includes a video captured by one or more digital cameras that displays a representation of content in front of, behind, and beside the digital cameras. Alternatively, in one or more embodiments, a panoramic video refers to a set of a plurality of videos (eg, captured by one or more of a plurality of digital cameras) combined or interconnected to provide an enlarged field of view.

Das Multimediastreamingsystem 103 und das adaptive Ratenzuweisungssystem 104 können computerausführbare Anweisungen umfassen, die, wenn sie durch die eine oder die mehreren Servervorrichtung(en) 102, die Clientvorrichtung 108 und/oder die virtuelle Realität-Anzeigevorrichtung 110 ausgeführt werden, bewirken, dass die entsprechende Rechenvorrichtung eine Anzahl von Aktionen ausführt, wie es nachstehend detaillierter diskutiert wird.The multimedia streaming system 103 and the adaptive rate allocation system 104 may include computer-executable instructions that, when executed by the one or more server devices, 102 , the client device 108 and / or the virtual reality display device 110 cause the corresponding computing device to perform a number of actions, as discussed in greater detail below.

Darüber hinaus umfasst, wie es in der 1 gezeigt ist, die Umgebung 100 gegebenfalls auch eine oder mehrere Inhaltsprovidervorrichtung(en) 106. Die eine oder die mehreren Inhaltsprovidervorrichtung(en) 106 kann oder können verschiedene Rechenvorrichtungen umfassen. Insbesondere kann oder können die eine oder die mehreren Inhaltsprovidervorrichtung(en) 106 Rechenvorrichtungen umfassen, die so betrieben werden können, dass sie einen virtuelle Realität-Inhalt erzeugen. Beispielsweise umfasst oder umfassen die eine oder die mehreren Inhaltsprovidervorrichtung(en) 106 eine oder mehrere Rechenvorrichtung(en), die räumliche Videos oder einen anderen virtuelle Realität-Inhalt bereitstellt oder bereitstellen. Die eine oder die mehreren Inhaltsprovidervorrichtung(en) 106 kann oder können eine oder mehrere Rechenvorrichtung(en) umfassen, die nachstehend im Zusammenhang mit der 10 beschrieben ist oder sind. Die Inhaltsprovidervorrichtungen 106 können für das Multimediastreamingsystem 103 einen Inhalt zum Streamen zu den Clientvorrichtungen bereitstellen. Beispielsweise ist das Multimediastreamingsystem 103 in einer oder mehreren Ausführungsform(en) ein Dienst eines Dritten, der einen Inhaltsprovider beim Verteilen eines Inhalts unterstützt.It also includes, as in the 1 shown is the environment 100 optionally also one or more content provider device (s) 106 , The one or more content provider device (s) 106 may or may include various computing devices. In particular, the one or more content provider device (s) may or may not 106 Comprise computing devices operable to generate virtual reality content. For example, the one or more content provider devices include or include 106 one or more computing devices that provide or provide spatial video or other virtual reality content. The one or more content provider device (s) 106 may include one or more computing devices that are discussed below in connection with US Pat 10 is or are described. The content provider devices 106 can for the multimedia streaming system 103 provide content for streaming to the client devices. For example, the multimedia streaming system 103 in one or more embodiments, a third party service that assists a content provider in distributing a content.

Wie es in der 1 gezeigt ist, umfasst die Umgebung 100 eine virtuelle Realität-Anzeigevorrichtung 110. Die virtuelle Realität-Anzeigevorrichtung 110 ist eine Clientvorrichtung und kann verschiedene Rechenvorrichtungen umfassen. Beispielsweise umfasst die virtuelle Realität-Anzeigevorrichtung 110 in einer oder mehreren Ausführungsform(en) eine oder mehrere Rechenvorrichtung(en), die nachstehend im Zusammenhang mit der 10 beschrieben ist oder sind.As it is in the 1 shown includes the environment 100 a virtual reality display device 110 , The virtual reality display device 110 is a client device and may include various computing devices. For example, the virtual reality display device includes 110 in one or more embodiments, one or more computing devices described below in connection with U.S. Pat 10 is or are described.

Insbesondere bezieht sich der Begriff „virtuelle Realität-Anzeigevorrichtung“ auf eine Rechenvorrichtung, die eine digitale 3D-Darstellung einer virtuellen Umgebung erzeugt. Für Erläuterungszwecke bezieht sich der Begriff „virtuelle Umgebung“ auf eine Simulation einer physischen Präsenz in einem Umfeld oder einem Ort (real oder imaginär, ungeachtet der Größe). Beispielsweise kann eine virtuelle Umgebung eine Simulation einer physischen Präsenz in einem Gebäude, einer Stadt, einem Markt, einem Wald, einem Planet, im Weltall, einer Zelle oder einem Teilchen umfassen.In particular, the term "virtual reality display device" refers to a computing device that generates a digital 3D representation of a virtual environment. For purposes of illustration, the term "virtual environment" refers to a simulation of a physical presence in an environment or location (real or imaginary, regardless of size). For example, a virtual environment may include a simulation of a physical presence in a building, city, market, forest, planet, space, cell or particle.

Eine virtuelle Realität-Anzeigevorrichtung umfasst eine Rechenvorrichtung (z.B. ein Headset oder eine am Kopf angebrachte Anzeige, ein Mobiltelefon, einen Computer, ein Tablet, einen Laptop), die eine digitale 3D-Ansicht einer virtuellen Umgebung erzeugt, welche die physische Präsenz eines Nutzers durch eine erzeugte sensorische Erfahrung simuliert (z.B. eine eindringliche visuelle Anzeige, Lautsprecher, usw.). Beispielsweise kann eine virtuelle Realität-Anzeigevorrichtung eine am Kopf angebrachte Anzeige umfassen, die eine eindringliche 3D-Darstellung einer virtuellen Umgebung erzeugt, die eine Ansicht der virtuellen Umgebung auf der Basis von Nutzerbewegungen zum Simulieren der physischen Präsenz in der virtuellen Umgebung modifiziert. Darüber hinaus kann eine virtuelle Realität-Anzeigevorrichtung auch einen oder mehrere Sensor(en) umfassen, die eine Nutzerinteraktion erfassen. Beispielsweise kann eine virtuelle Realität-Anzeigevorrichtung optische Sensoren, Bekleidung, Handschuhe oder andere Sensoren zum Erfassen von Bewegungen und/oder Handgesten eines Nutzers umfassen. Entsprechend kann die virtuelle Realität-Anzeigevorrichtung eine Nutzereingabevorrichtung, wie z.B. eine Steuereinrichtung, eine Fernsteuerung, einen Joystick, eine Tastatur, eine Sprachbefehlvorrichtung, umfassen.A virtual reality display device includes a computing device (eg, a headset or head-mounted display, a mobile phone, a computer, a tablet, a laptop) that generates a digital 3D view of a virtual environment that senses the physical presence of a user simulates a generated sensory experience (eg a haunting visual display, speakers, etc.). For example, a virtual reality display device may include a head-mounted display that generates a haunting 3D representation of a virtual environment that modifies a view of the virtual environment based on user movement to simulate the physical presence in the virtual environment. In addition, a virtual reality display device may also include one or more sensors that detect user interaction. For example, a virtual reality display device may include optical sensors, clothing, gloves, or other sensors for detecting movements and / or hand gestures of a user. Accordingly, the virtual reality display device may include a user input device such as a user input device. a controller, a remote controller, a joystick, a keyboard, a voice command device.

In einigen Beispielausführungsformen umfasst die virtuelle Realität-Anzeigevorrichtung 110 eine Rechenvorrichtung (Computer, Digitalempfänger, Spielekonsole, usw.) und ein separates Headset, wie z.B. eine drahtgebundene oder drahtlose am Kopf angebrachte Anzeige. In anderen Ausführungsformen umfasst die virtuelle Realität-Anzeigevorrichtung 110 eine Vorrichtung mit einer integrierte Anzeige. Die virtuelle Realität-Anzeigevorrichtung 110 stellt eine Ansicht einer virtuellen Umgebung mittels der am Kopf angebrachten Anzeige bereit und modifiziert die Ansicht der virtuellen Umgebung auf der Basis von Nutzerbewegungen zum Simulieren der physischen Präsenz in der virtuellen Umgebung.In some example embodiments, the virtual reality display device includes 110 a computing device (computer, digital receiver, game console, etc.) and a separate headset, such as a wired or wireless head-mounted display. In other embodiments, the virtual reality display device includes 110 a device with an integrated display. The virtual reality display device 110 provides a view of a virtual environment via the head-mounted display and modifies the view of the virtual environment based on user movement to simulate the physical presence in the virtual environment.

Obwol die 1 eine bestimmte Anordnung der Vorrichtungen zeigt, sind verschiedene zusätzliche Anordnungen möglich. Beispielsweise während die 1 eine einzelne Clientvorrichtung 108 zeigt, umfasst die Umgebung 100 in einer oder mehreren Ausführungsform(en) eine Mehrzahl von Clientvorrichtungen, die jeweils eine virtuelle Realität-Anzeige aufweisen. In einem anderen Beispiel steht die Clientvorrichtung 108 direkt mit der einen oder den mehreren Servervorrichtung(en) 102 in Verbindung, wobei das Netzwerk 112 umgangen wird. Whether that 1 shows a particular arrangement of the devices, various additional arrangements are possible. For example, while the 1 a single client device 108 shows, includes the environment 100 in one or more embodiments, a plurality of client devices, each having a virtual reality display. In another example, the client device is 108 directly with the one or more server devices 102 connected, the network 112 is bypassed.

Entsprechend kann, obwohl die Umgebung 100 von 1 so gezeigt ist, dass sie verschiedene Komponenten aufweist, die Umgebung 100 zusätzliche oder alternative Komponenten aufweisen. Beispielsweise kann das adaptive Ratenzuweisungssystem 104 auf einer einzelnen Rechenvorrichtung implementiert werden. Alternativ kann das adaptive Ratenzuweisungssystem 104 über eine Mehrzahl von Vorrichtungen oder Komponenten implementiert sein. Ferner kann das adaptive Ratenzuweisungssystem 104 auf einer von dem Multimediastreamingsystem 103 getrennten Vorrichtung betrieben werden.Accordingly, although the environment 100 from 1 is shown to have different components, the environment 100 have additional or alternative components. For example, the adaptive rate allocation system 104 be implemented on a single computing device. Alternatively, the adaptive rate allocation system 104 be implemented via a plurality of devices or components. Furthermore, the adaptive rate allocation system 104 on one of the multimedia streaming system 103 operated separate device.

Beispielsweise identifiziert das Multimediastreamingsystem 103 in einer oder mehreren Ausführungsform(en) einen virtuelle Realität-Inhalt (d.h., ein Panoramavideo) zum Streamen zu der virtuelle Realität-Anzeigevorrichtung 110. Beispielsweise greift das adaptive Ratenzuweisungssystem 104 auf ein räumliches Video von dem virtuelle Realität-Inhalt zu. Das adaptive Ratenzuweisungssystem 104 teilt das räumliche Video in Segmente auf, wie z.B. eine Kugel mit sechs Flächen, der sechs Kacheln umfasst (z.B. eine obere Kachel, eine untere Kachel und vier mittlere Körperkacheln). Für jede Kachel erzeugt das adaptive Ratenzuweisungssystem 104 verschiedene Videoqualitätsniveaus, die dem Streamen der Kacheln bei verschiedenen Bitraten entsprechen. Während einige Ausführungsformen das Aufteilen eines räumlichen Videos in eine Kugel mit sechs Flächen umfasst, die sechs Kacheln aufweist, können andere Ausführungsformen andere Typen von Panoramavideos in sechs oder eine andere Anzahl von Kacheln umfassen. Ferner kann eine oder mehrere Ausführungsform(en) das Aufteilen eines räumlichen Videos in mehr oder weniger als sechs Kacheln umfassen. Entsprechend kann das adaptive Ratenzuweisungssystem in einer oder mehreren Ausführungsform(en) jeder Kachel jedwede Anzahl von Klassen und/oder Bitraten zuordnen. Beispielsweise ordnet das adaptive Ratenzuweisungssystem jeder Kachel eine von vier Prioritätsklassen zu. Alternativ nutzt das adaptive Ratenzuweisungssystem einen Satz von zwölf Prioritätsklassen oder eine andere Anzahl von Prioritätsklassen.For example, the multimedia streaming system identifies 103 in one or more embodiments, a virtual reality content (ie, a panoramic video) for streaming to the virtual reality display device 110 , For example, the adaptive rate allocation system takes effect 104 to a spatial video of the virtual reality content. The adaptive rate allocation system 104 Splits the spatial video into segments, such as a sphere with six faces that includes six tiles (eg, an upper tile, a lower tile, and four middle body tiles). For each tile generates the adaptive rate allocation system 104 different video quality levels that correspond to streaming the tiles at different bitrates. While some embodiments include dividing a spatial video into a six-surface sphere having six tiles, other embodiments may include other types of panoramic video into six or a different number of tiles. Further, one or more embodiments may include dividing a spatial video into more or less than six tiles. Accordingly, in one or more embodiments, the adaptive rate allocation system may associate each tile with any number of classes and / or bit rates. For example, the adaptive rate allocation system allocates each tile to one of four priority classes. Alternatively, the adaptive rate allocation system uses a set of twelve priority classes or a different number of priority classes.

Unter Fortsetzung des vorstehend genannten Beispiels empfängt oder empfangen die eine oder die mehreren Servervorrichtung(en) 102 eine Eingabe von der Clientvorrichtung, die den Ansichtsbereich angibt. Wie hier verwendet, bezieht sich der Begriff „Ansichtsbereich“ auf ein Sichtfeld, das einem Nutzer innerhalb einer virtuelle Realität-Anzeige angezeigt wird. Als solche zeigt eine virtuelle Realität-Anzeige sowohl einen Abschnitt des virtuelle Realität-Inhalts innerhalb eines Ansichtsbereichs (z.B. einen angezeigten Abschnitt) als auch einen virtuelle Realität-Inhalt außerhalb des Ansichtsbereichs (z.B. einen peripheren Abschnitt). Anders gesagt umfasst eine virtuelle Realität-Anzeige sowohl Abschnitte, die gegenwärtig innerhalb des Ansichtsbereichs und vor dem Nutzer sichtbar sind, als auch Abschnitte des virtuelle Realität-Inhalts neben und hinter dem Nutzer, die außerhalb des Sichtfelds vorliegen, das dem Ansichtsbereich zugeordnet ist. Ein Ansichtsbereich kann Informationen umfassen, welche die Position des Ansichtsbereichs angeben, wie z.B. die Koordinaten des Ansichtsbereichs innerhalb des räumlichen Videos. Als solche geben die Ansichtsbereichinformationen den angezeigten Abschnitt und den peripheren Abschnitt bezüglich des räumlichen Videos an.Continuing the above example, the one or more server devices receive or receive 102 an input from the client device indicating the view area. As used herein, the term "viewing area" refers to a field of view that is displayed to a user within a virtual reality display. As such, a virtual reality display shows both a portion of the virtual reality content within a viewing area (eg, a displayed portion) and a virtual reality content outside the viewing area (eg, a peripheral portion). In other words, a virtual reality display includes both sections that are currently visible within the viewing area and in front of the user, as well as portions of the virtual reality content adjacent and behind the user that are outside of the field of view associated with the viewing area. A viewport may include information indicating the position of the viewport, such as the coordinates of the viewport within the spatial video. As such, the view area information indicates the displayed portion and the peripheral portion with respect to the spatial video.

Auf der Basis des Ansichtsbereichs ordnet das adaptive Ratenzuweisungssystem 104 jeder Kachel in der Kugel mit sechs Flächen Prioritäten zu. Darüber hinaus bestimmt das adaptive Ratenzuweisungssystem 104 die Bitrate, bei der jede Kachel gestreamt werden soll, auf der Basis der Priorität, die jeder Kachel zugeordnet ist, und der verfügbaren Bandbreite. Dann streamt oder streamen die eine oder die mehreren Servervorrichtung(en) 102 jede der Kacheln zu der Clientvorrichtung 108 mit der Bitrate, die durch das adaptive Ratenzuweisungssystem 104 bestimmt worden ist. In einer Anzahl von Ausführungsformen teilt das adaptive Ratenzuweisungssystem ein räumliches Video in Segmente oder Kacheln auf, bevor es die Ansichtsbereichinformationen empfängt. Ferner kann das adaptive Ratenzuweisungssystem in einigen Beispielausführungsformen verschiedene Qualitätsniveaus für jede Kachel erzeugen und speichern. Alternativ teilt und erzeugt das adaptive Ratenzuweisungssystem 104 Segmente für ein räumliches Video in Echtzeit auf der Basis der Position des Ansichtsbereichs.Based on the viewing area, adaptive rate allocation system 104 assigns priorities to each tile in the six area sphere. In addition, the adaptive rate allocation system determines 104 the bitrate at which each tile should be streamed, based on the priority assigned to each tile and the available bandwidth. Then, the one or more server devices stream or stream 102 each of the tiles to the client device 108 with the bitrate coming through the adaptive rate allocation system 104 has been determined. In a number of embodiments, the adaptive rate allocation system splits a spatial video into segments or tiles before receiving the view area information. Further, in some example embodiments, the adaptive rate allocation system may generate and store different quality levels for each tile. Alternatively, the adaptive rate allocation system splits and generates 104 Segments for real-time spatial video based on the position of the viewport.

Es wird nun auf die 2 Bezug genommen, die zeigt, wie ein räumliches Video einem Mapping von einer 3D-Kugel zu einem ebenen 2D-Bild unterzogen wird. Insbesondere zeigt die 2 ein Beispiel eines räumlichen Videos, das sowohl als 3D-Kugel 202a als auch als gemapptes ebenes 2D-Bild 202b gezeigt ist. Darüber hinaus umfasst die 2 einen Ansichtsbereich 204a, der in der 3D-Kugel 202a gezeigt ist, und einen entsprechenden Ansichtsbereich 204b, der in dem ebenen 2D-Bild 202b gezeigt ist.It will now be on the 2 Reference is made, which shows how a spatial video is subjected to a mapping from a 3D sphere to a planar 2D image. In particular, the shows 2 an example of a spatial video shown as both 3D sphere 202a and mapped planar 2D image 202b. In addition, the includes 2 a viewport 204a which is shown in the 3D sphere 202a and a corresponding viewing area 204b which is shown in the planar 2D image 202b.

Wie es vorstehend erwähnt worden ist, ist ein räumliches Video (z.B. ein 360-Grad-Video) eine Ausführungsform eines Panoramavideos. Für eine einfache Erläuterung sind die 2 bis 7 als räumliche Videos beschrieben. Es sollte jedoch beachtet werden, dass die Techniken, Prinzipien und Aktionen, die bezüglich der räumlichen Videos beschrieben sind, gleichermaßen für andere Typen von Panoramavideos gelten. Entsprechend beschreiben die 2 bis 7 Kugeln mit sechs Flächen. Es sollte ebenfalls beachtet werden, dass die Techniken, Prinzipien und Aktionen, die bezüglich Kugeln mit sechs Flächen beschrieben sind, gleichermaßen für andere Konfigurationen von Kacheln oder sogar Formen mit sechs Flächen gelten. As mentioned above, a spatial video (eg, a 360 degree video) is an embodiment of a panoramic video. For a simple explanation, the 2 to 7 described as spatial videos. It should be noted, however, that the techniques, principles, and actions described with respect to the spatial videos apply equally to other types of panoramic video. Accordingly, the describe 2 to 7 Balls with six surfaces. It should also be noted that the techniques, principles, and actions described with respect to six-surface spheres apply equally to other configurations of tiles or even six-surface shapes.

Als kurzer Überblick stellt ein räumliches Video durch die Verwendung einer Texturierung eine eindringliche Erfahrung für einen Nutzer bereit. Das adaptive Ratenzuweisungssystem 104 nutzt Texturen zur Bereitstellung einer Oberflächenumhüllung für ein 3D-Objektnetz, wobei 3D-Texturen eine logische Erweiterung der herkömmlichen 2D-Texturen sind. Räumliche Videos werden durch Mapping eines räumlichen Video als 3D-Textur auf ein 3D-Geometrienetz, häufig eine Kugel, erzeugt, wobei sich der Nutzer in der Mitte dieser Geometrie befindet. Demgemäß zeigt die 2 die 3D-Kugel 202a eines gegebenen Frames eines räumlichen Videos, wobei ein Kasten 206 die Position des Nutzers darstellt. Es wird angemerkt, dass, während die 2 einen gegebenen Frame eines räumlichen Videos zeigt, dieselben Konzepte und Prinzipien, die hier beschrieben sind, auch für räumliche Videos gelten, die eine beliebige Anzahl von Frames aufweisen.As a brief overview, spatial video provides a haunting experience for a user through the use of texturing. The adaptive rate allocation system 104 uses textures to provide a surface wrap for a 3D object mesh, where 3D textures are a logical extension of traditional 2D textures. Spatial videos are created by mapping a spatial video as a 3D texture onto a 3D geometry mesh, often a sphere, with the user in the center of that geometry. Accordingly, the shows 2 the 3D sphere 202a of a given spatial video frame, where a box 206 represents the position of the user. It is noted that while the 2 shows a given frame of a spatial video, the same concepts and principles described herein also apply to spatial videos having any number of frames.

Wie es in der 3D-Kugel 202a gezeigt ist, stellt der Ansichtsbereich 204a einen 90-Grad-Betrachtungswinkel sowohl in der vertikalen als auch in der horizontalen Richtung dar. Beispielsweise stellt der Kasten 206 in der Mitte der 3D-Kugel 202a die Ausrichtung eines Nutzers dar und der Ansichtsbereich 204a stellt die Richtung dar, in welche der Nutzer blickt. Insbesondere stellt der Kasten 206 die Position einer virtuelle Realität-Anzeige dar, durch die der Nutzer das räumliche Video betrachtet. Da sich die Ausrichtung und/oder die Stellung des Kastens 206 ändert oder ändern (z.B. verschiebt der Nutzer die Position der virtuelle Realität-Anzeige), ändert sich auch die Position des Ansichtsbereichs 204a auf der 3D-Kugel 202a, was zu einer Veränderung dessen führt, was der Nutzer innerhalb des räumlichen Videos betrachtet.As shown in the 3D sphere 202a, the viewing area represents 204a a 90 degree viewing angle in both the vertical and horizontal directions. For example, the box represents 206 in the center of the 3D sphere 202a is the orientation of a user and the viewing area 204a represents the direction in which the user looks. In particular, the box represents 206 the position of a virtual reality display through which the user views the spatial video. Because the orientation and / or the position of the box 206 changes or changes (for example, if the user moves the position of the virtual reality display), the position of the view area also changes 204a on the 3D sphere 202a, resulting in a change in what the user is viewing within the spatial video.

Entsprechend stellt der Ansichtsbereich 204b in dem ebenen 2D-Bild 202b denselben 90-Grad-Betrachtungswinkel auf dem gemappten ebenen 2D-Bild 202b dar. Da der Ansichtsbereich 204b nur einen Teil des gesamten verfügbaren Inhalts des räumlichen Videos erfasst (z.B. 90 Grad von 360 Grad), kann sich der Nutzer frei in dem räumlichen Video bewegen, um einen zusätzlichen Inhalt zu betrachten, wenn das räumliche Video abgespielt wird. Wenn der Nutzer dessen Betrachtung innerhalb des räumlichen Videos verändert, bewegt sich die Position des Ansichtsbereichs 204b innerhalb des ebenen 2D-Bilds 202b. Beispielsweise bewegt sich der Ansichtsbereich 204b innerhalb des ebenen 2D-Bilds 202b als Reaktion auf eine Veränderung der Position der virtuelle Realität-Anzeige durch den Nutzer, durch welche der Nutzer das räumliche Video betrachtet, nach links/rechts und oben/unten.Accordingly, the view area 204b in the planar 2D image 202b, the same 90 degree viewing angle is displayed on the mapped flat 2D image 202b 204b capturing only a portion of the total available content of the spatial video (eg, 90 degrees of 360 degrees), the user can move freely within the spatial video to view additional content as the spatial video is played. As the user changes their viewing within the spatial video, the position of the view area moves 204b within the planar 2D image 202b. For example, the view area is moving 204b within the planar 2D image 202b in response to a change in the position of the virtual reality display by the user through which the user views the spatial video, left / right and up / down.

In einigen Beispielausführungsformen ist der Ansichtsbereich größer als ein 90-Grad-Betrachtungswinkel, wie z.B. ein 96-Grad-Betrachtungswinkel, oder kleiner als der 90-Grad-Betrachtungswinkel. Während der Ansichtsbereich 204b als Quadrat gezeigt ist, handelt es sich bei dem Ansichtsbereich darüber hinaus in einigen Beispielausführungsformen um ein Rechteck, ein Oval, überlappende Kreise oder eine andere Form. Ferner sollte beachtet werden, dass, während nur ein Ansichtsbereich beschrieben ist, der das volle Sichtfeld zeigt, das für einen Nutzer durch eine virtuelle Realität-Anzeige verfügbar ist, wenn der Nutzer den virtuelle Realität-Inhalt in Stereo (z.B. in 3D) betrachtet, einige Ausführungsformen einen separaten Ansichtsbereich für jeden Stereostream eines räumlichen virtuelle Realität-3D-Videos umfassen.In some example embodiments, the viewing area is greater than a 90-degree viewing angle, such as a 96-degree viewing angle, or less than the 90-degree viewing angle. During the viewing area 204b In addition, in some example embodiments, the viewport is a rectangle, an oval, overlapping circles, or another shape. Further, it should be noted that while only one viewing area is described, showing the full field of view available to a user through a virtual reality display when the user views the virtual reality content in stereo (eg, in 3D), some embodiments include a separate viewport for each stereo stream of 3D virtual reality 3D video.

Wie es vorstehend erwähnt worden ist, kann das adaptive Ratenzuweisungssystem 104 Informationen über die Position und die Ausrichtung des Ansichtsbereichs (z.B. Ansichtsbereichinformationen) innerhalb des räumlichen Videos empfangen. Als Überblick über die Ansichtsbereichverfolgung wird die Ansichtsbereichausrichtung üblicherweise mittels einer Rotation in Bezug auf die x-Achse, y-Achse und z-Achse unter Verwendung von Euler-Winkeln festgelegt. Ein weiteres Verfahren umfasst die Verwendung eines Quaternions, das eine Einheitsrotationsmatrix umfasst. Insbesondere besteht ein Quaternion aus zwei Sätzen von Werten: Erstens einem Satz, der aus einem [x, y, z]-Tupel besteht, das die Achse darstellt, um welche die Vorrichtungsrotation stattfindet, und zweitens einer w-Komponente, die das Ausmaß der Drehung darstellt, das um diese Achse stattfindet. Mittels dieser vier Werte kann das adaptive Ratenzuweisungssystem 104 die Vorrichtungsausrichtung genau beschreiben, während Probleme, wie z.B. eine kardanische Blockade, vermieden werden.As mentioned above, the adaptive rate allocation system 104 may receive information about the position and orientation of the viewing area (eg, view area information) within the spatial video. As an overview of the viewing area tracking, the viewing area orientation is usually determined by means of a rotation with respect to the x-axis, y-axis and z-axis using Euler angles. Another method involves the use of a quaternion comprising a unitary rotation matrix. In particular, a quaternion consists of two sets of values: First, a set consisting of a [x, y, z] tuple, which represents the axis about which the device rotation takes place, and secondly a w component, which determines the extent of the Rotation that takes place around this axis. By means of these four values, the adaptive rate allocation system 104 accurately describe the device orientation while avoiding problems such as gimbal blockage.

Insbesondere erzeugt das adaptive Ratenzuweisungssystem 104 zur Verfolgung eines Ansichtsbereichs gültige Beschränkungen von Einheitsquaternionen, die spezifisch für jedes der 3D-Netzsegmente der Kugel mit sechs Flächen mittels der folgenden drei Schritte eingestellt werden. Zuerst wandelt das adaptive Ratenzuweisungssystem 104 Euler-Winkel in eine Einheitsquaterniondarstellung für eine virtuelle Realität-Anzeige-Ausrichtungsverfolgung um. Als nächstes berechnet das adaptive Ratenzuweisungssystem 104 ein Array, das einem normalisierten Richtungsvektor von jedem Quaternion entspricht. Schließlich kombiniert das adaptive Ratenzuweisungssystem 104 die Werte miteinander, um die Beschränkungen von segmentspezifischen Quaterniondarstellungen innerhalb der Kugel mit sechs Flächen (d.h., Räumen mit sechs Flächen) zu berechnen. Auf diese Weise kann das adaptive Ratenzuweisungssystem 104 identifizieren, auf welches 3D-Netzsegment oder welche Kachel der Ansichtsbereich eines Nutzers gerichtet ist, und auch Bewegungen des Ansichtsbereichs identifizieren, wenn das räumliche Video abgespielt wird.In particular, the adaptive rate allocation system generates 104 unit area quaternion valid restrictions for tracking a view area set specifically for each of the six-area sphere 3D mesh segments by the following three steps. First, the adaptive transforms Rate allocation system 104 Euler angle into a unitary quaternion representation for virtual reality display alignment tracking. Next, calculate the adaptive rate allocation system 104 an array corresponding to a normalized direction vector of each quaternion. Finally, the adaptive rate allocation system combines 104 the values together to compute the constraints of segment-specific quaternion representations within the six-sphere sphere (ie, six-surface spaces). In this way, the adaptive rate allocation system 104 identify which 3D mesh segment or tile targets a user's viewport, and also identify movement of the viewport when the spatial video plays.

Unter Bezugnahme auf die 3A und 3B werden zusätzliche Details bezüglich der Erzeugung von Segmenten für ein räumliches Video gemäß einer oder mehreren Ausführungsformen bereitgestellt. Insbesondere zeigen die 3A und 3B ein Beispiel für ein räumliches Video, das in 3D-Netzsegmente oder Kacheln aufgeteilt ist. Beispielsweise zeigt die 3A ein 3D-Kugelnetz 302a, das in eine Mehrzahl von Netzsegmenten 304a-c aufgeteilt ist. Dann kann das adaptive Ratenzuweisungssystem 104 mittels der Segmente das Netz weiter in Kacheln aufteilen. Beispielsweise kann das adaptive Ratenzuweisungssystem 104 eine Kugel 302b mit sechs Flächen auf der Basis der 3D-Netzsegmente erzeugen, wie es nachstehend beschrieben ist.With reference to the 3A and 3B Additional details regarding the generation of spatial video segments are provided in accordance with one or more embodiments. In particular, the show 3A and 3B an example of a spatial video that is split into 3D mesh segments or tiles. For example, the shows 3A a 3D ball net 302a, which is divided into a plurality of mesh segments 304a-c is divided. Then the adaptive rate allocation system 104 use the segments to further divide the mesh into tiles. For example, the adaptive rate allocation system 104 create a sphere 302b with six faces based on the 3D mesh segments, as described below.

Bevor das Verfahren des adaptiven Ratenzuweisungssystems 104 beschrieben wird, das eine Kugel mit sechs Flächen erzeugt, die Kacheln umfasst, wird ein Überblick über die Erzeugung des 3D-Kugelnetzes 302a gegeben. In einer oder mehreren Ausführungsform(en) erzeugt das adaptive Ratenzuweisungssystem 104 das 3D-Kugelnetz 302a auf der Basis eines Qualitätsparameters. Der Qualitätsparameter kann zu einem Kompromiss zwischen der Glätte und der Rendergeschwindigkeit beitragen. Beispielsweise wenn der Qualitätsparameter eine erhöhte Glätte angibt, rendert das räumliche Video mehr Dreiecke, was ein räumliches Video mit einer höheren Qualität erzeugt. Wenn der Qualitätsparameter eine höhere Rendergeschwindigkeit angibt, rendert das räumliche Video weniger Dreiecke, wodurch das räumliche Video schlechter aussieht und weniger glatt ist.Before the procedure of the adaptive rate allocation system 104 describing a sphere having six surfaces comprising tiles, an outline of the generation of the 3D sphere mesh 302a will be given. In one or more embodiments, the adaptive rate allocation system generates 104 the 3D sphere mesh 302a based on a quality parameter. The quality parameter can contribute to a trade-off between smoothness and rendering speed. For example, if the quality parameter indicates increased smoothness, the spatial video renders more triangles, creating a higher quality spatial video. If the quality parameter indicates a higher rendering speed, the spatial video renders fewer triangles, making the spatial video look worse and less smooth.

Insbesondere ist der Qualitätsparameter eine Kombination von zwei Teilparametern, die zusammen die Glätte der Kugel kontrollieren. Der erste Teilparameter ist die Anzahl von Slices, welche die Anzahl von vertikalen Schnitten (z.B. vertikalen Gitterlinien) durch das räumliche Video darstellen. Der zweite Teilfaktor ist die Anzahl von Stacks, welche die Anzahl von horizontalen Schnitten (z.B. horizontalen Gitterlinien) durch das räumliche Video darstellen.In particular, the quality parameter is a combination of two subparameters that together control the smoothness of the sphere. The first subparameter is the number of slices representing the number of vertical slices (e.g., vertical grid lines) through the spatial video. The second sub-factor is the number of stacks representing the number of horizontal slices (e.g., horizontal grid lines) by the spatial video.

Die nachstehende Auflistung 1 stellt einen Pseudocode zum Erzeugen des 3D-Kugelnetzes 302a dar. Es sollte beachtet werden, dass andere Verfahren zur Erzeugung des 3D-Kugelnetzes 302a zur Verfügung stehen. Ferner kann in Ausführungsformen, bei denen das Panoramavideo kein räumliches Video ist (z.B. weist das Panoramavideo ein horizontales 180-Grad- oder 270-Grad-Sichtfeld auf), das adaptive Ratenzuweisungssystem 104 entsprechende Techniken anwenden, wie sie nachstehend bezüglich eines räumlichen Videos angegeben sind. Beispielsweise erzeugt das adaptive Ratenzuweisungssystem 104 ein vollständiges 3D-Kugelnetz und ignoriert oder beseitigt dann Abschnitte des 3D-Netzes, bei denen kein Inhalt vorliegt. In einem anderen Fall vermindert das adaptive Ratenzuweisungssystem 104 zuerst die 3D-Netzberechnungen zum Anpassen des Sichtfelds des Panoramavideos. Auflistung 1 Erzeugen eines 3D-Kugelnetzes M: Anzahl der Stacks N: Anzahl der Slices Für alle m: 0 ≤ m ≤ M und für alle n: 0 ≤ n ≤ N- 1, Berechnen und Speichern eines räumlichen Punkts P(x, y, z), so dass: PX ← Sin(π × m / M) · Cos(2 π × n / N), Py ← Sin(π × m / M) · Sin(2 π × n / N), und PZ ← Cos(π × m / M). Dann werden Liniensegmente zwischen jedem Eckpunkt gezogen, um das 3D-Kugelnetz zu erzeugen. The following listing 1 represents a pseudo-code for generating the 3D sphere mesh 302a. It should be noted that other methods of generating the 3D sphere mesh 302a are available. Further, in embodiments where the panoramic video is not spatial video (eg, the panoramic video has a horizontal 180 degree or 270 degree field of view), the adaptive rate allocation system may be used 104 Apply appropriate techniques as stated below for a spatial video. For example, the adaptive rate allocation system generates 104 a complete 3D mesh network and then ignore or eliminate sections of the 3D mesh that have no content. In another case, the adaptive rate allocation system decreases 104 first the 3D mesh calculations to adjust the field of view of the panorama video. Listing 1 Create a 3D ball net M: number of stacks N: number of slices For all m: 0 ≤ m ≤ M and for all n: 0 ≤ n ≤ N-1, calculate and store a spatial point P (x, y, z) such that: P X ← Sin (π × m / M) × Cos (2π × n / N) Py ← Sin (π × m / M) × Sin (2π × n / N), and P Z ← Cos (π × m / M). Then, line segments are drawn between each vertex to create the 3D mesh.

Wie es vorstehend erwähnt worden ist, sorgt der Qualitätsparameter für einen Kompromiss zwischen der Qualität (d.h., der Glätte) und der Rendergeschwindigkeit. Beispielsweise verschwendet die Verwendung zu vieler Stacks und Slices Hardwareresourcen, wie z.B. Speicher, der für ein Graphikverarbeitungseinheit (GPU)-unterstütztes Videorendern verwendet wird, was zu einer Verminderung des Leistungsvermögens führen kann, ohne die Qualität stark zu verbessern. Andererseits führt die Verwendung von zu wenig Stacks und Slices zu einer blockhaften und körnigen Qualität. Demgemäß wählt das adaptive Ratenzuweisungssystem 104 ursprünglich einen höheren Qualitätsparameter, kann jedoch adaptiv den Qualitätsparameter vermindern, wenn Hardwareresourcen nicht mehr zur Verfügung stehen. Auf diese Weise erreicht das adaptive Ratenzuweisungssystem 104 eine Ausgewogenheit zwischen einer Maximierung von verfügbaren Rechenresourcen zur Bereitstellung der höchstmöglichen Qualität eines räumlichen Videos, während die Rechenvorrichtung nicht überlastet wird. As mentioned above, the quality parameter provides a trade-off between quality (ie, smoothness) and rendering speed. For example, using too many stacks and slices is wasting hardware resources, such as memory used for graphics processing unit (GPU) -supported video rendering, which can lead to a reduction in performance without greatly improving quality. On the other hand, using too few stacks and slices results in a blocky and granular quality. Accordingly, the adaptive rate allocation system chooses 104 originally a higher quality parameter, but can adaptively reduce the quality parameter when hardware resources are no longer available. In this way, the adaptive rate allocation system achieves 104 a balance between maximizing available computational resources to provide the highest possible quality of spatial video while not overloading the computing device.

Unter Verwendung des 3D-Kugelnetzes 302a kann das adaptive Ratenzuweisungssystem 104 3D-Netzsegmente 304a-c erzeugen. Wie es in der 3A gezeigt ist, teilt das adaptive Ratenzuweisungssystem 104 das 3D-Kugelnetz 302a in einem zweistufigen Verfahren in eine Mehrzahl von verschiedenen 3D-Netzen auf. In einem ersten Schritt teilt das adaptive Ratenzuweisungssystem 104 die Kugel in drei Hauptteile auf: eine obere Kappe, einen mittleren Körper und eine untere Kappe. Die obere Kappe umfasst Netze von dem oberen Punkt der Kugel (d.h., dem oberen Pol) bis zu dem Stack 306 der oberen Kappe des mittleren Körpers (+β°). Der mittlere Körper umfasst Netze, die sich zwischen der unteren Netzkappe 308 und dem Stack der unteren Kappe erstrecken (-β°). Die untere Kappe umfasst Netzdreiecke von der unteren Netzkappe 308 zu dem unteren Punkt der Kugel (d.h., dem unteren Pol). Auf diese Weise erzeugt das adaptive Ratenzuweisungssystem 104 das obere Netzsegment 304a, das mittlere Körpernetzsegment 304b und das untere Netzsegment 304c.Using the 3D sphere mesh 302a, the adaptive rate allocation system 104 Create 3D mesh segments 304a-c. As it is in the 3A shown shares the adaptive rate allocation system 104 3D sphere mesh 302a in a two-stage process into a plurality of different 3D meshes. In a first step, the adaptive rate allocation system shares 104 the ball in three main parts: an upper cap, a middle body and a lower cap. The top cap includes nets from the top of the ball (ie, the top pole) to the stack 306 the upper cap of the middle body (+ β °). The middle body includes nets that extend between the lower mesh cap 308 and the lower cap stack (-β °). The lower cap includes mesh triangles from the lower mesh cap 308 to the lower point of the sphere (ie, the lower pole). In this way, the adaptive rate allocation system generates 104 the upper network segment 304a , the middle body network segment 304b and the lower network segment 304c.

In dem zweiten Schritt teilt das adaptive Ratenzuweisungssystem 104 den mittleren Körper ferner in einer Mehrzahl von 3D-Netzen. Insbesondere teilt das adaptive Ratenzuweisungssystem 104 das mittlere Körpernetzsegment 304b in zusätzliche Netzsegmente auf. Beispielsweise teilt das adaptive Ratenzuweisungssystem 104 das mittlere Körpernetzsegment 304b in zwei oder mehr identische Größen auf. Beispielsweise wenn das mittlere Körpernetzsegment 304b ein 360-Grad-Segment ist, teilt das adaptive Ratenzuweisungssystem 104 jedes zusätzliche Segment in 120-Grad-, 90-Grad-, 60-Grad- oder 30-Grad-Segmente auf. Anders gesagt teilt das adaptive Ratenzuweisungssystem 104 jedes zusätzliche Netzsegment so auf, dass es ɑ° abdeckt, wobei ɑ° ein Faktor des gesamten mittleren Körpernetzsegments 304b ist (z.B. 30°, 60°, 90° oder 120°). Alternativ teilt das adaptive Ratenzuweisungssystem 104 die zusätzlichen Netzsegmente von dem mittleren Körpernetzsegment 304b asymmetrisch.In the second step, the adaptive rate allocation system shares 104 the middle body further in a plurality of 3D networks. In particular, the adaptive rate allocation system shares 104 the middle body mesh segment 304b in additional network segments. For example, the adaptive rate allocation system shares 104 the middle body mesh segment 304b in two or more identical sizes. For example, if the middle body mesh segment 304b is a 360-degree segment, shares the adaptive rate allocation system 104 each additional segment in 120 degree, 90 degree, 60 degree or 30 degree segments. In other words, the adaptive rate allocation system shares 104 each additional mesh segment covering ɑ °, where ɑ ° is a factor of the entire central body mesh segment 304b is (eg 30 °, 60 °, 90 ° or 120 °). Alternatively, the adaptive rate allocation system shares 104 the additional network segments from the middle body network segment 304b asymmetric.

Wie es vorstehend erwähnt worden ist, erzeugt das adaptive Ratenzuweisungssystem 104 in einer oder mehreren Ausführungsform(en) eine Kugel mit sechs Flächen, die Kacheln des räumlichen Videos umfasst. Zur Veranschaulichung zeigt die 3B eine Kugel mit sechs Flächen 302b, die sechs Kacheln der Kugel mit sechs flächen 310a-c umfasst. Insbesondere zeigt die 3B eine obere Kachel 310a, viere mittlere Körperkacheln 310b und eine untere Kachel 310c.As mentioned above, the adaptive rate allocation system generates 104 in one or more embodiments, a sphere having six surfaces comprising tiles of the spatial video. To illustrate, the 3B a sphere with six surfaces 302b which includes six tiles of the six-sided sphere 310a-c. In particular, the shows 3B an upper tile 310a , four middle body tiles 310b and one bottom tile 310c ,

Zur Bildung der Kugel mit sechs Flächen 302b nutzt das adaptive Ratenzuweisungssystem 104 die folgenden Werte für ɑ° und β°, ɑ°= π/2 und β° = π/4. Es sollte jedoch beachtet werden, dass das adaptive Ratenzuweisungssystem 104 andere Werte von ɑ° und β° nutzen kann. Beispielsweise wählt das adaptive Ratenzuweisungssystem 104 ɑ° und β°auf der Basis der Einstellungen der virtuelle Realität-Anzeige aus, durch die der Nutzer das räumliche Video betrachtet. Ferner kann, da das Kachelbildungsverfahren („Tiling“-Verfahren) ein allgemeines Verfahren ist, das gleiche Verfahren auf andere geometrische Projektionen neben einer 3D-Kugel angewandt werden, wie z.B. einen 3D-Würfel, oder wenn ein Panoramavideo weniger als 360-Grad umfasst, wie es vorstehend beschrieben worden ist.To form the ball with six surfaces 302b uses the adaptive rate allocation system 104 the following values for ɑ ° and β °, ɑ ° = π / 2 and β ° = π / 4. However, it should be noted that the adaptive rate allocation system 104 can use other values of ɑ ° and β °. For example, the adaptive rate allocation system chooses 104 ɑ ° and β ° based on the settings of the virtual reality display through which the user views the spatial video. Further, since the tiling method is a general method, the same method can be applied to other geometric projections besides a 3D sphere, such as a 3D cube, or if a panoramic video is less than 360 degrees as described above.

Die 4 zeigt ein Beispiel für ein 2D-Mapping eines räumlichen Video, das in sechs Kacheln einer Kugel mit sechs Flächen aufgeteilt ist. Wie es gezeigt ist, umfasst das aufgeteilte räumliche Video 402 die sechs Kacheln einer Kugel mit sechs Flächen 310a-c, die bezüglich der 3A-3B beschrieben worden sind, räumlich zugeschnitten. Insbesondere zeigt das räumliche Video 402 in der 4 die obere Kachel 310a, die vier mittleren Körperkacheln 310b und die untere Kachel 310c. Während das aufgeteilte räumliche Video 402 nur sechs Kacheln umfasst, sollte beachtet werden, dass das adaptive Ratenzuweisungssystem 104 mehr oder weniger Kacheln erzeugen kann. Beispielsweise erzeugt das adaptive Ratenzuweisungssystem 104 zwei untere Kacheln oder zwei mittlere Körperkacheln.The 4 shows an example of a 2D mapping of a spatial video, which is divided into six tiles of a sphere with six surfaces. As shown, the split spatial video includes 402 the six tiles of a sphere with six faces 310a-c concerning the 3A - 3B have been described spatially tailored. In particular, the spatial video shows 402 in the 4 the upper tile 310a , the four middle body tiles 310b and the bottom tile 310c , While the split spatial video 402 only six tiles, it should be noted that the adaptive rate allocation system 104 may generate more or fewer tiles. For example, the adaptive rate allocation system generates 104 two bottom tiles or two middle body tiles.

In einigen Beispielausführungsformen nutzt das adaptive Ratenzuweisungssystem 104 eine räumliche Beziehungsbeschreibung, wie z.B. MPEG-DASH SRD (nachstehend beschrieben), zum Aufteilen der Segmente. Auf diese Weise kann das adaptive Ratenzuweisungssystem 104 die Kacheln in einer logischen und organisierten Weise aufteilen. Darüber hinaus ermöglicht die räumliche Beziehungsbeschreibung dem adaptiven Ratenzuweisungssystem 104 die Position jeder Kachel bezüglich jeder anderen Kachel und dem räumlichen Video als Ganzes zu identifizieren.In some example embodiments, the adaptive rate allocation system 104 utilizes a spatial relationship description such as MPEG-DASH SRD (described below) to split the Segments. In this way, the adaptive rate allocation system 104 to divide the tiles in a logical and organized way. In addition, the spatial relationship description allows the adaptive rate allocation system 104 to identify the position of each tile with respect to each other tile and the spatial video as a whole.

Unter Bezugnahme auf die 5A, 5B und 6 wird nachstehend eine zusätzliche Beschreibung bezüglich der Bestimmung einer adaptiven Ratenzuweisung zum Priorisieren eines segmentbasierten (z.B. Kachel-basierten) räumlichen Video-Streamens bereitgestellt. Insbesondere zeigen die 5A-5B ein Beispiel für ein räumliches Video 502, dem eine Priorität auf der Basis des Ansichtsbereichs des Nutzers zugeordnet ist. Die 6 zeigt ein Beispieldiagramm der Verwendung verschiedener Auflösungen für jedes Netzsegment (z.B. Kachel) des räumlichen Videos 502.With reference to the 5A . 5B and 6 In the following, an additional description will be provided regarding the determination of an adaptive rate allocation for prioritizing a segment-based (eg, tile-based) spatial video streaming. In particular, the show 5A - 5B an example of a spatial video 502 which is assigned a priority on the basis of the user's viewing area. The 6 Figure 14 shows an example diagram of the use of different resolutions for each network segment (eg, tile) of the spatial video 502 ,

Als Überblick ist in den 5A und 5B ein räumliches Video 502, das als ebenes 2D-Bild gezeigt ist, in eine Mehrzahl (d.h., zwanzig) Kacheln 506 aufgeteilt. Während das räumliche Video 502, das in den 5A-5B gezeigt ist, für eine einfache Erläuterung als ebenes 2D-Bild gezeigt ist, sollte beachtet werden, dass die hier beschriebenen Konzepte und Prinzipien auch für ein entsprechendes räumliches 3D-Video gelten. Beispielsweise teilt das adaptive Ratenzuweisungssystem 104 das 3D-Kugelnetz in zwanzig Kacheln auf. Während darüber hinaus das ebene 2D-Bild des räumlichen Videos 502 mehr Kacheln umfasst, als sie in die Kugel mit sechs Flächen einbezogen sind, sollte beachtet werden, dass die bezüglich der Kacheln in den 5-6 beschriebenen Prinzipien auf die die Kacheln in einer Kugel mit sechs Flächen oder Räumen mit sechs Flächen gelten, die jedwede Anzahl von 3D-Netzsegmenten aufweisen.As an overview is in the 5A and 5B a spatial video 502 , which is shown as a planar 2D image, into a plurality (ie, twenty) tiles 506 divided up. While the spatial video 502 that in the 5A - 5B For simplicity of illustration, it should be noted that the concepts and principles described herein also apply to a corresponding 3D spatial video. For example, the adaptive rate allocation system shares 104 the 3D ball net in twenty tiles. In addition, while the flat 2D image of the spatial video 502 If more tiles are included than they are included in the six-sided sphere, it should be noted that the tiles in the 5 - 6 described principles apply to the tiles in a sphere with six surfaces or spaces with six surfaces having any number of 3D mesh segments.

Wie es vorstehend erwähnt worden ist, zeigt die 5A das adaptive Ratenzuweisungssystem 104, das Kacheln 506 innerhalb des räumlichen Videos 502 Prioritäten zuordnet. In einer oder mehreren Ausführungsform(en) ordnet das adaptive Ratenzuweisungssystem 104 Prioritäten auf der Basis des Ansichtsbereichs 504 zu. Beispielsweise ordnet das adaptive Ratenzuweisungssystem 104 eine höhere Priorität (z.B. P1) Kacheln innerhalb des unmittelbaren Ansichtsbereichs zu und eine niedrigere Priorität (z.B. P2 und P3) den Kacheln in dem Bereich außerhalb des Ansichtsbereichs in dem räumlichen Video 502 zu.As mentioned above, shows 5A the adaptive rate allocation system 104 , the tiles 506 within the spatial video 502 Assign priorities. In one or more embodiments, the adaptive rate allocation system orders 104 Priorities based on the view area 504 to. For example, the adaptive rate allocation system orders 104 a higher priority (eg P 1 ) tiles within the immediate view area and a lower priority (eg P 2 and P 3 ) to the tiles in the area outside the view area in the spatial video 502.

Beispielsweise empfängt das adaptive Ratenzuweisungssystem 104 von einer Clientvorrichtung Ansichtsbereichinformationen, welche die Position des Ansichtsbereichs 504 innerhalb des räumlichen Videos 502 angeben. Wie es gezeigt ist, befindet sich der Ansichtsbereich 504 in der Nähe der Mitte des räumlichen Videos 502. Dabei ordnet das adaptive Ratenzuweisungssystem 104 der Kachel, die den Ansichtsbereich 504 umfasst, die höchste Priorität zu (z.B. P1). Darüber hinaus ordnet das adaptive Ratenzuweisungssystem 104 Kacheln, die an den Ansichtsbereich 504 angrenzen, die zweithöchste Priorität zu (z.B. P2), und zwar aufgrund der Nähe dieser Kacheln zu dem Ansichtsbereich 504 und der Wahrscheinlichkeit, dass der Nutzer diese Kacheln als nächstes betrachten wird. Schließlich ordnet, wie es gezeigt ist, das adaptive Ratenzuweisungssystem 104 eine niedrige Priorität (z.B. P3) Kacheln zu, die sich weiter entfernt von dem Ansichtsbereich 504 befinden, wobei es folglich weniger wahrscheinlich ist, dass ein Nutzer diese Kacheln als nächstes betrachtet. Während drei Prioritätsklassen (z.B. P1, P2 und P3) gezeigt sind, kann das adaptive Ratenzuweisungssystem 104 jedwede Anzahl von Prioritätsklassen verwenden, wenn den Kacheln 506 Prioritäten zugeordnet werden.For example, the adaptive rate allocation system receives 104 from a client device viewport information showing the position of the viewport 504 within the spatial video 502 specify. As it is shown, the view area is located 504 near the center of the spatial video 502 , Here assigns the adaptive rate allocation system 104 the tile that covers the view area 504 includes, the highest priority (eg P 1 ). It also arranges the adaptive rate allocation system 104 Tiles attached to the viewing area 504 border, the second highest priority to (eg P 2 ), due to the proximity of these tiles to the view area 504 and the likelihood that the user will look at these tiles next. Finally, as shown, assigns the adaptive rate allocation system 104 a low priority (eg P 3 ) tiles too far away from the view area 504 thus, it is less likely for a user to view these tiles next. While three priority classes (eg, P 1 , P 2, and P 3 ) are shown, the adaptive rate allocation system may 104 use any number of priority classes if the tiles 506 Assigned priorities.

Wie es vorstehend beschrieben worden ist, kann das adaptive Ratenzuweisungssystem 104 Kacheln eine Priorität auf der Basis der Nähe der Kachel zu dem Ansichtsbereich 504 zuordnen. In manchen Ausführungsformen ordnet das adaptive Ratenzuweisungssystem 104 eine Priorität auf der Basis der Position der Kachel innerhalb des räumlichen Videos 502 zu. Beispielsweise ordnet, wie es in der 5B gezeigt ist, das adaptive Ratenzuweisungssystem 104 Kacheln im oberen Bereich des räumlichen Videos 502 die niedrigste Priorität zu (z.B. P3), und zwar auf der Basis der geringen Wahrscheinlichkeit, dass der Nutzer in dem räumlichen Video 502 den Blick nach oben richtet.As described above, the adaptive rate allocation system 104 Tile a priority based on the proximity of the tile to the viewport 504 assign. In some embodiments, the adaptive rate allocation system orders 104 a priority based on the location of the tile within the spatial video 502 to. For example, as it says in the 5B shown is the adaptive rate allocation system 104 Tiles at the top of the spatial video 502 the lowest priority (eg P 3 ), based on the low probability that the user is in the spatial video 502 directed upwards.

In einigen Beispielausführungsformen ordnet das adaptive Ratenzuweisungssystem 104 Kacheln auf der Basis eines virtuelle Realität-Inhalts innerhalb der Kachel Prioritäten zu. Beispielsweise ordnet das adaptive Ratenzuweisungssystem 104 einer Kachel, die eine Werbung enthält, eine hohe Priorität zu, selbst wenn die Kachel entfernt von dem Ansichtsbereich 504 vorliegt. Als weiteres Beispiel ordnet das adaptive Ratenzuweisungssystem 104 Kacheln im oberen Bereich des räumlichen Videos 502 auf der Basis eines fehlenden Inhalts innerhalb dieser Kacheln (z.B. nur blauer/grauer Himmel) die niedrigste Priorität zu. Es sollte beachtet werden, dass das adaptive Ratenzuweisungssystem 104 einer Kachel eine Priorität auf der Basis einer Kombination von vorstehend beschriebenen Ausführungsformen zuordnen kann.In some example embodiments, adaptive rate allocation system 104 prioritizes tiles based on virtual reality content within the tile. For example, the adaptive rate allocation system orders 104 a tile that contains an advertisement, a high priority, even if the tile away from the viewing area 504 is present. As another example, the adaptive rate allocation system orders 104 Tiles at the top of the spatial video 502 on the basis of a missing content within these tiles (eg only blue / gray sky) the lowest priority too. It should be noted that the adaptive rate allocation system 104 may associate a tile with a priority based on a combination of previously described embodiments.

Wie es vorstehend beschrieben worden ist, ordnet das adaptive Ratenzuweisungssystem 104 Kacheln Prioritäten auf der Basis dessen zu, wo ein Nutzer am wahrscheinlichsten als nächstes hinblickt (z.B. eine antizipierte zukünftige Position des Ansichtsbereichs). Das Zuordnen von höheren Prioritäten im Hinblick darauf, wo der Nutzer am wahrscheinlichsten als nächstes hinblickt, kann besonders hilfreich sein, wenn die zukünftig antizipierten Kacheln nicht innerhalb des gegenwärtigen Ansichtsbereichs (d.h., Sichtfelds) des Nutzers oder angrenzend daran vorliegen. Beispielsweise folgt das adaptive Ratenzuweisungssystem 104 in einigen Ausführungsformen einem Text/Geschichte-Rahmen, der eine Angabe dahingehend bereitstellt, wo zukünftige Ereignisse (z.B. eine Aktion, eine Bewegung oder eine antizipierte Nutzerinteraktion) innerhalb des Panoramavideos stattfinden werden. Auf diese Weise ordnet das adaptive Ratenzuweisungssystem 104 Kacheln eine höhere Priorität zu, die zukünftige Ereignisse umfassen. Das Niveau, auf welches das adaptive Ratenzuweisungssystem 104 die Priorität einer Kachel anhebt, kann ferner auf einem Signifikanzwert basieren, der jedem Ereignis zugeordnet ist. As described above, the adaptive rate allocation system orders 104 Tile priorities based on where a user is most likely to look next (for example, an anticipated future position of the viewport). Mapping higher priorities as to where the user is most likely to look next may be particularly helpful if the future anticipated tiles are not within or adjacent to the user's current viewing area (ie, field of view). For example, the adaptive rate allocation system follows 104 in some embodiments, a text / story frame that provides an indication of where future events (eg, an action, a motion, or an anticipated user interaction) will take place within the panoramic video. This assigns the adaptive rate allocation system 104 Tiles give a higher priority to future events. The level to which the adaptive rate allocation system 104 Further, raising the priority of a tile may also be based on a significance value associated with each event.

Entsprechend ordnet in einer oder mehreren Ausführungsform(en) das adaptive Ratenzuweisungssystem 104 Kacheln Prioritäten auf der Basis einer Objekterfassung zu. Beispielsweise identifiziert das adaptive Ratenzuweisungssystem 104 die Position von Objekten innerhalb eines Panoramavideos (in den gegenwärtigen oder zukünftigen Frames des Videos). Auf der Basis der Objekteigenschaften (z.B. Größe, Position, Bewegung, Relevanz für ein zukünftiges Ereignis oder potenzielles Interesseniveau) kann das adaptive Ratenzuweisungssystem 104 die Priorität einer Kachel, zu der das Objekt gehört, erhöhen.Accordingly, in one or more embodiments, the adaptive rate allocation system orders 104 Tile priorities based on object recognition. For example, the adaptive rate allocation system identifies 104 the position of objects within a panorama video (in the current or future frames of the video). Based on object properties (eg, size, position, motion, relevance to a future event, or potential level of interest), the adaptive rate allocation system may 104 increase the priority of a tile to which the object belongs.

Wie es vorstehend erwähnt worden ist, führt das adaptive Ratenzuweisungssystem 104 eine Voraufteilung des räumlichen Videos 502 in Kacheln 506 durch, bevor eine Eingabe bezüglich der Position des Ansichtsbereichs 504 innerhalb des räumlichen Videos 502 empfangen wird. Dabei wird der Ansichtsbereich 504 häufig eine Mehrzahl von Kacheln überlappen. Wenn der Ansichtsbereich 504 eine Mehrzahl von Kacheln 506 überlappt, kann das adaptive Ratenzuweisungssystem 104 einer Mehrzahl von Kacheln dieselbe Priorität zuordnen. Beispielsweise zeigt die 5B, dass das adaptive Ratenzuweisungssystem 104 die höchste Priorität P1 vier Kacheln zuordnet, die mit dem Ansichtsbereich 504 überlappen.As mentioned above, the adaptive rate allocation system 104 performs a pre-allocation of the spatial video 502 in tiles 506 through before an input regarding the position of the viewing area 504 within the spatial video 502 Will be received. This will be the view area 504 often a plurality of tiles overlap. If the view area 504 a plurality of tiles 506 overlaps, the adaptive rate allocation system 104 assign the same priority to a plurality of tiles. For example, the shows 5B that the adaptive rate allocation system 104 the highest priority P 1 assigns four tiles to the viewport 504 overlap.

In einigen Beispielausführungsformen vereinigt das adaptive Ratenzuweisungssystem 104 die Kacheln, die mit dem Ansichtsbereich 504 überlappen.In some example embodiments, the adaptive rate allocation system unites 104 the tiles that line the viewing area 504 overlap.

Beispielsweise, wie es in der 5B gezeigt ist, vereinigt das adaptive Ratenzuweisungssystem 104 die vier Kacheln, die den Ansichtsbereich 504 überlappen, zu einer einzelnen Kachel. Beispielsweise behandelt das adaptive Ratenzuweisungssystem 104 die vier Kacheln als eine einzelne Kachel für den Zweck einer Ratenzuweisung, was nachstehend beschrieben ist. Auf diese Weise kann das adaptive Ratenzuweisungssystem 104 Kantenbildungsprobleme aufgrund einer Qualitätsvariation der Kacheln vermeiden, die den Ansichtsbereich 504 überlappen, und ermöglicht eine problemlose Betrachtungserfahrung.For example, as in the 5B shown unites the adaptive rate allocation system 104 the four tiles that make up the viewing area 504 overlap, into a single tile. For example, the adaptive rate allocation system treats 104 the four tiles as a single tile for the purpose of a rate allocation, which is described below. In this way, the adaptive rate allocation system 104 Edge formation problems due to a quality variation of the tiles avoid the viewing area 504 overlap, and allows a smooth viewing experience.

Unter Verwendung der zugeordneten Prioritäten für jede Kachel kann das adaptive Ratenzuweisungssystem 104 dann selektiv Raten auswählen, mit denen jede Kachel gestreamt werden soll. Insbesondere weist das adaptive Ratenzuweisungssystem 104 eine Bitrate für jede Kachel auf der Basis der der Kachel zugeordneten Priorität zu, so dass die Bandbreiteneffizienz maximiert wird. Auf diese Weise kann das adaptive Ratenzuweisungssystem 104 ein hochqualitatives räumliches Video zu virtuelle Realität-Anzeigevorrichtungen streamen, die eine begrenzte Bandbreitenverfügbarkeit aufweisen.Using the assigned priorities for each tile, the adaptive rate allocation system may be used 104 then selectively select rates to stream each tile. In particular, the adaptive rate allocation system 104 assigns a bit rate for each tile based on the priority assigned to the tile so that bandwidth efficiency is maximized. In this way, the adaptive rate allocation system 104 stream high-quality spatial video to virtual reality display devices that have limited bandwidth availability.

Nachstehend ist ein detailliertes Beispiel dahingehend angegeben, wie das adaptive Ratenzuweisungssystem 104 Raten für das Streamen eines räumlichen Videos zuweisen kann. Es sollte beachtet werden, dass das adaptive Ratenzuweisungssystem 104 andere/zusätzliche Verfahren, Techniken und Verfahren zum Zuweisen von Raten zum Streamen eines räumlichen Videos einsetzen kann. Insbesondere während das folgende Beispiel eine Ausführungsform des adaptiven Ratenzuweisungssystems 104 bereitstellt, das Raten zum Streamen eines räumlichen Videos zuweist, sollte beachtet werden, dass andere Kombinationsoptimierungslösungen verwendet werden können, um dieses Knapsack-artige Problem zu lösen. Beispielsweise kann das adaptive Ratenzuweisungssystem 104 andere Multiple choice-Knapsack-Problemalgorithmen nutzen.The following is a detailed example of how the adaptive rate allocation system 104 Can allocate rates for streaming a spatial video. It should be noted that the adaptive rate allocation system 104 may employ other / additional methods, techniques, and methods for assigning spatial video streaming rates. In particular, while the following example is an embodiment of the adaptive rate allocation system 104 It should be noted that other combination optimization solutions may be used to solve this knapsack-type problem. For example, the adaptive rate allocation system 104 use other multiple choice knapsack problem algorithms.

Um jeder Kachel innerhalb eines räumlichen Videos Raten in einer optimalen Weise zuzuweisen, nutzt das adaptive Ratenzuweisungssystem 104 ein Bandbreitenbudget (d.h., das Ausmaß der verfügbaren Bandbreite) für eine gegebene virtuelle Realität-Anzeigevorrichtung. In einer oder mehreren Ausführungsform(en), gibt die virtuelle Realität-Anzeigevorrichtung die Bandbreitenbeschränkungen der virtuelle Realität-Anzeigevorrichtung an. In anderen Ausführungsformen kommuniziert das adaptive Ratenzuweisungssystem 104 mit der virtuelle Realität-Anzeigevorrichtung zum Identifizieren von Bandbreitenbeschränkungen. Beispielsweise führt das adaptive Ratenzuweisungssystem 104 eine Reihe von Herunterladetests mit der virtuelle Realität-Anzeigevorrichtung durch, um das Ausmaß der verfügbaren Bandbreite zu identifizieren. Für Erläuterungszwecke wird das verfügbare Bandbreitenbudget für eine gegebene virtuelle Realität-Anzeigevorrichtung als WB dargestellt. Ferner aktualisiert in manchen Beispielausführungsformen das adaptive Ratenzuweisungssystem 104 Bandbreitenbeschränkungen auf einer regelmäßigen Basis, um jedwede Veränderungen des Bandbreitenbudgets zu berücksichtigen.To assign rates to each tile within a spatial video in an optimal way, uses the adaptive rate allocation system 104 a bandwidth budget (ie, the amount of available bandwidth) for a given virtual reality display device. In one or more embodiments, the virtual reality display device indicates the bandwidth limitations of the virtual reality display device. In other embodiments, the adaptive rate allocation system communicates 104 with the virtual reality display device for identifying bandwidth limitations. For example leads the adaptive rate allocation system 104 perform a series of download tests with the virtual reality display device to identify the amount of available bandwidth. For illustrative purposes, the available bandwidth budget for a given virtual reality display device is represented as W B. Further, in some example embodiments, the adaptive rate allocation system updates 104 Bandwidth restrictions on a regular basis to account for any changes in the bandwidth budget.

Nachdem das adaptive Ratenzuweisungssystem 104 das Ausmaß der verfügbaren Bandbreite für eine gegebene virtuelle Realität-Anzeigevorrichtung (z.B. WB) erhalten hat, kann das adaptive Ratenzuweisungssystem 104 dann Raten für Kacheln eines räumlichen Videos zum Maximieren der Bandbreite zuweisen. Zunächst bestimmt das adaptive Ratenzuweisungssystem 104 das Ausmaß der Bandbreite, das zum Streamen jeder Kachel des räumlichen Videos auf dem niedrigsten Qualitätsniveau erforderlich ist. Auf diese Weise stellt das adaptive Ratenzuweisungssystem 104 sicher, dass jede Kachel des räumlichen Videos zu der virtuelle Realität-Anzeigevorrichtung auf einem Qualitätsniveau übertragen wird, das minimal akzeptabel ist. Demgemäß bestimmt das adaptive Ratenzuweisungssystem 104 die minimale Bitrate, die zum Streamen aller Kacheln bei deren niedrigsten Bitraten zu der virtuelle Realität-Anzeigevorrichtung erforderlich ist, dargestellt als WMin.After the adaptive rate allocation system 104 may have received the amount of available bandwidth for a given virtual reality display device (eg, W B ) may be the adaptive rate allocation system 104 then allocate spatial video tiles to maximize bandwidth. First, the adaptive rate allocation system determines 104 the amount of bandwidth required to stream each tile of spatial video at the lowest quality level. In this way provides the adaptive rate allocation system 104 ensure that each tile of spatial video is transmitted to the virtual reality display device at a quality level that is minimally acceptable. Accordingly, the adaptive rate allocation system determines 104 the minimum bitrate required to stream all tiles at their lowest bit rates to the virtual reality display, shown as W min .

Es sei angemerkt, dass das adaptive Ratenzuweisungssystem 104 im Allgemeinen Qualität mit Bitrate assoziiert. Daher nimmt, wenn die Qualität (z.B. die Auflösung, die Anzahl von gerenderten Dreiecken, die Pixeldichte) einer Kachel zunimmt, die Bitrate, die zum Streamen der Kachel erforderlich ist, ebenfalls zu. In einigen Beispielausführungsformen kann jedoch das adaptive Ratenzuweisungssystem 104 die Bitrate einer Kachel erhöhen, ohne dass das Qualitätsniveau verändert wird.It should be noted that the adaptive rate allocation system 104 generally quality associated with bitrate. Therefore, as the quality (eg, resolution, number of rendered triangles, pixel density) of a tile increases, the bit rate required to stream the tile also increases. However, in some example embodiments, the adaptive rate allocation system may be 104 increase the bitrate of a tile without changing the quality level.

Nach dem Bestimmen der minimal erforderlichen Bitrate (d.h., WMin), identifiziert das adaptive Ratenzuweisungssystem 104 das Ausmaß der überschüssigen Bandbreite zwischen dem Bandbreitenbudget (d.h., WB) und der minimal erforderlichen Bitrate, die als WS dargestellt ist. Zur Veranschaulichung bestimmt das adaptive Ratenzuweisungssystem 104 WS als: W B W M i n = W S .

Figure DE102017009121A1_0001
After determining the minimum required bit rate (ie, W min ), the adaptive rate allocation system identifies 104 the amount of excess bandwidth between the bandwidth budget (ie, W B ) and the minimum required bit rate, represented as W s . By way of illustration, the adaptive rate allocation system determines 104 W S as: W B - W M i n = W S ,
Figure DE102017009121A1_0001

Das adaptive Ratenzuweisungssystem 104 weist dann die überschüssige Bandbreite (d.h., WS) in einer optimalen Weise auf der Basis der den Kacheln zugeordneten Priorität zu. Beispielsweise bestimmt das adaptive Ratenzuweisungssystem 104 in einer oder mehreren Ausführungsform(en), ob die überschüssige Bandbreite das Senden von Kacheln mit der höheren Priorität (z.B. Kacheln, die mit dem Ansichtsbereich überlappen) auf einem höheren Qualitätsniveau ermöglicht. Insbesondere bestimmt das adaptive Ratenzuweisungssystem 104, ob die überschüssige Bandbreite das Streamen einer oder mehrerer Kachel(n) mit höheren Bitraten zu der virtuelle Realität-Anzeigevorrichtung ermöglicht.The adaptive rate allocation system 104 then allocates the excess bandwidth (ie, W s ) in an optimal manner based on the priority assigned to the tiles. For example, the adaptive rate allocation system determines 104 in one or more embodiments, determining whether the excess bandwidth allows for sending higher priority tiles (eg, tiles that overlap the view area) at a higher quality level. In particular, the adaptive rate allocation system determines 104 whether the excess bandwidth allows for streaming one or more higher bit rate tiles to the virtual reality display device.

Beispielsweise identifiziert das adaptive Ratenzuweisungssystem 104 jede Kachel, die der höchsten Prioritätsklasse zugeordnet ist, die in der 5B mit einem P1 angegeben ist. Das adaptive Ratenzuweisungssystem 104 bestimmt auch das Ausmaß der Bandbreite, das zum Streamen der Kacheln mit höchster Priorität auf dem höchsten Qualitätsniveau unter Verwendung der höchsten Bitrate erforderlich ist, und das als WP1 bezeichnet wird. Mit diesen Informationen bestimmt das adaptive Ratenzuweisungssystem 104, ob die überschüssige Bandbreite das Streamen der Kacheln mit höchster Priorität bei der höchsten Bitrate ermöglicht, oder: Ob  W S W P 1 0.

Figure DE102017009121A1_0002
For example, the adaptive rate allocation system identifies 104 every tile that is assigned to the highest priority class in the 5B is indicated with a P 1 . The adaptive rate allocation system 104 Also determines the amount of bandwidth required to stream the highest priority tiles at the highest quality level using the highest bit rate, referred to as W P1 . This information determines the adaptive rate allocation system 104 whether the excess bandwidth allows you to stream the highest-priority tiles at the highest bitrate, or: If W S - W P 1 0th
Figure DE102017009121A1_0002

Wenn die überschüssige Bandbreite das Streamen der Kacheln mit höchster Priorität bei der höchsten Bitrate ermöglichen kann, dann weist das adaptive Ratenzuweisungssystem 104 den Kacheln mit höchster Priorität die höchste Bitrate zu. Darüber hinaus kann das adaptive Ratenzuweisungssystem 104 ferner das Ausmaß einer zusätzlichen überschüssigen Bandbreite bestimmen, das nach dem Streamen der Kacheln mit höchster Priorität verbleibt, das als WS1 dargestellt ist. Beispielsweise bestimmt das adaptive Ratenzuweisungssystem 104 WS1 als: W S W P 1 = W S 1 .

Figure DE102017009121A1_0003
If the excess bandwidth can allow the highest priority tiles to be streamed at the highest bitrate, then the adaptive rate allocation system 104 assigns the highest bitrate to the highest priority tiles. In addition, the adaptive rate allocation system 104 and determine the extent of additional excess bandwidth remaining after streaming the highest priority tiles represented as W S1 . For example, the adaptive rate allocation system determines 104 W S1 as: W S - W P 1 = W S 1 ,
Figure DE102017009121A1_0003

Unter Verwendung der zusätzlichen überschüssigen Bandbreite (z.B. WS1) bestimmt das adaptive Ratenzuweisungssystem 104, ob zusätzliche Kacheln von dem räumlichen Video ebenfalls mit der höchsten Bitrate zu der Clientvorrichtung gestreamt werden können (d.h., mit der höheren Qualität). Beispielsweise identifiziert das adaptive Ratenzuweisungssystem 104 jede Kachel, die der zweihöchsten Prioritätsklasse zugeordnet ist, die in der 5B mit einem P2 bezeichnet ist. Entsprechend der vorstehenden Beschreibung bestimmt das adaptive Ratenzuweisungssystem 104 das Ausmaß der Bandbreite, das zum Streamen der Kacheln mit der zweihöchsten Priorität auf dem höchsten Qualitätsniveau unter Verwendung der höchsten Bitrate erforderlich ist, das als WP2 bezeichnet wird. Mit diesen Informationen bestimmt das adaptive Ratenzuweisungssystem 104, ob die zusätzliche überschüssige Bandbreite das Streamen der Kacheln mit der zweithöchsten Priorität bei der höchsten Bitrate ermöglicht, oder: Ob  W S 1 W P 2 0.

Figure DE102017009121A1_0004
Using the additional excess bandwidth (eg, W S1 ) determines the adaptive rate allocation system 104 whether additional tiles from the spatial video can also be streamed at the highest bitrate to the client device (ie, with the higher quality). For example, the adaptive rate allocation system identifies 104 every tile that is assigned to the highest priority class in the 5B is designated by a P 2 . As described above, the adaptive rate allocation system determines 104 the amount of bandwidth required to stream the highest priority tiles at the highest quality level using the highest bit rate, referred to as W P2 . This information determines the adaptive rate allocation system 104 whether the extra excess bandwidth allows the second highest priority tiles to be streamed at the highest bitrate, or: If W S 1 - W P 2 0th
Figure DE102017009121A1_0004

Wenn die überschüssige Bandbreite das Streamen der Kacheln mit der zweithöchsten Priorität bei der höchsten Bitrate ermöglichen kann, dann weist das adaptive Ratenzuweisungssystem 104 den Kacheln mit der zweithöchsten Priorität die höchste Bitrate zu. Das adaptive Ratenzuweisungssystem 104 setzt das Verfahren des Bestimmens fort, ob die restliche Bandbreite das Streamen der Kacheln mit niedrigerer Priorität auf dem höchsten Qualitätsniveau bei der höchsten Bitrate ermöglichen kann. Wenn das adaptive Ratenzuweisungssystem 104 bestimmt, dass jede der Kacheln in dem räumlichen Video unter Verwendung der höchsten Bitrate gestreamt werden kann, dann weist das adaptive Ratenzuweisungssystem 104 die Kacheln als solche zu und beginnt mit dem Streamen der Kacheln zu der virtuelle Realität-Anzeigevorrichtung gemäß den Bitratenzuweisungen für jede Kachel.If the excess bandwidth allows you to stream the tiles with the second highest priority at the highest bitrate, then the adaptive rate allocation system 104 the tiles with the second highest priority the highest bit rate. The adaptive rate allocation system 104 The method of determining whether the remaining bandwidth may allow for the lower priority tiles to be streamed at the highest quality level at the highest bit rate continues. If the adaptive rate allocation system 104 determines that each of the tiles in the spatial video can be streamed using the highest bitrate, then assigns the adaptive rate allocation system 104 as such, begins to stream the tiles to the virtual reality display device according to the bit rate assignments for each tile.

In vielen Fällen bestimmt jedoch das adaptive Ratenzuweisungssystem 104 aufgrund der begrenzten Bandbreitenbudgets einer virtuelle Realität-Anzeigevorrichtung, dass das Ausmaß der restlichen Bandbreite (e.g., WS and WS1) unzureichend ist, um eine oder mehrere Kachel(n) zu streamen, die einer bestimmten Prioritätsklasse zugeordnet ist oder sind (z.B. P1 und P2, die bei den Bitraten WP1 bzw. WP2 gestreamt werden). In solchen Fällen identifiziert das adaptive Ratenzuweisungssystem 104, ob die überschüssige Bandbreite das Streamen von einer oder mehreren Kachel(n) bei dem zweihöchsten Qualitätsniveau unter Verwendung der zweithöchsten Bitrate ermöglichen kann.In many cases, however, the adaptive rate allocation system determines 104 due to the limited bandwidth budget of a virtual reality display device that the extent of the remaining bandwidth (eg, W S and W S1) is insufficient to stream one or more tile (s) that is assigned a specific priority class, or (for example P 1 and P 2 , which are streamed at the bit rates W P1 and W P2, respectively). In such cases, the adaptive rate allocation system identifies 104 whether the excess bandwidth can enable streaming of one or more tiles at the second highest quality level using the second highest bit rate.

Beispielsweise wird angenommen, dass das adaptive Ratenzuweisungssystem 104 jeder Kachel die höchste Priorität (z.B. P1) zum Streamen bei der höchsten Bitrate zugewiesen hat. Es wird ferner angenommen, dass das adaptive Ratenzuweisungssystem 104 bestimmt, dass Kacheln, denen das zweihöchste Prioritätsniveau zugewiesen worden ist (z.B. P2) bei gegebenem Bandbreitenbudget nicht mit der höchsten Bandbreite gestreamt werden können (d.h., WS1- WP2< 0). Dabei bestimmt das adaptive Ratenzuweisungssystem 104, ob die Kacheln, denen die Priorität P2 zuordnet ist, zu der virtuelle Realität-Anzeigevorrichtung auf dem zweithöchsten Qualitätsniveau unter Verwendung der zweithöchsten Bitrate gestreamt werden können. Wenn dies der Fall ist, weist das adaptive Ratenzuweisungssystem 104 den Kacheln, denen die Priorität P2 zugeordnet ist, die zweithöchste Bitrate zu. Ferner bestimmt das adaptive Ratenzuweisungssystem 104 entsprechend, ob Kacheln mit der zugeordneten Priorität P3 bei der gegebenen restlichen Bandbreite ebenfalls mit der zweithöchsten Bitrate gestreamt werden können.For example, it is assumed that the adaptive rate allocation system 104 each tile has the highest priority (eg P 1 ) assigned to stream at the highest bitrate. It is further believed that the adaptive rate allocation system 104 determined that tiles, where the two highest priority level has been assigned (for example, P 2) can not be streamed with the highest bandwidth for a given bandwidth budget (that is, S1 W - W P2 <0). The adaptive rate allocation system determines this 104 whether the tiles assigned priority P 2 can be streamed to the second highest quality virtual reality display device using the second highest bit rate. If so, the Adaptive Rate Allocation System 104 the tiles, to which the priority P 2 is assigned, the second highest bit rate. Further, the adaptive rate allocation system determines 104 correspondingly, if tiles with the assigned priority P 3 can also be streamed at the second highest bit rate for the given remaining bandwidth.

Wenn jedoch das adaptive Ratenzuweisungssystem 104 bestimmt, dass die Kacheln, denen die Priorität P2 zugeordnet ist, zu der virtuelle Realität-Anzeigevorrichtung nicht auf dem zweithöchsten Qualitätsniveau unter Verwendung der zweithöchsten Bitrate gestreamt werden können, bestimmt das adaptive Ratenzuweisungssystem 104, ob die Kacheln, denen die Priorität P2 zuordnet ist, bei gegebener restlicher verfügbarer Bandbreite auf dem dritthöchsten Qualitätsniveau unter Verwendung der dritthöchsten Bitrate gestreamt werden können. Das adaptive Ratenzuweisungssystem 104 wiederholt dieses Verfahren für jede Prioritätsklasse und jedes Bitratenniveau, bis das Ausmaß der restlichen verfügbaren Bandbreite minimiert ist oder das adaptive Ratenzuweisungssystem 104 bestimmt, dass eine oder mehrere Prioritätsklassen bei dem minimal akzeptablen Qualitätsniveau unter Verwendung der niedrigsten Bitrate gestreamt werden muss oder müssen.However, if the adaptive rate allocation system 104 determines that the tiles associated with priority P 2 can not be streamed to the virtual reality display device at the second highest quality level using the second highest bit rate determined by the adaptive rate allocation system 104 whether the tiles assigned the priority P 2 can be streamed at the third highest quality level using the third highest bit rate given the remaining available bandwidth. The adaptive rate allocation system 104 repeats this procedure for each priority class and bit rate level until the amount of remaining available bandwidth is minimized or the adaptive rate allocation system 104 determines that one or more priority classes must or must be streamed at the minimum acceptable quality level using the lowest bit rate.

Auf diese Weise stellt das adaptive Ratenzuweisungssystem 104 zuerst sicher, dass alle Kacheln in einem räumlichen Video auf einem minimal akzeptablen Qualitätsniveau gestreamt werden können. Dann füllt das adaptive Ratenzuweisungssystem 104 die restliche verfügbare Bandbreite mit höheren Qualitätsniveaus für eine oder mehrere Kachel(n) des räumlichen Videos auf der Basis der zugeordneten Prioritäten der Kacheln, bis die Bandbreiteneffizienz maximiert ist. Als solches priorisiert das adaptive Ratenzuweisungssystem 104 adaptiv die Kacheln in einem räumlichen Video zum Bereitstellen von höheren Qualitätsniveaus für die Kacheln, auf die ein Nutzer gegenwärtig blickt/bei denen es am wahrscheinlichsten ist, dass ein Nutzer darauf blickt, und zum Vermindern der Qualitätsniveaus für die Kacheln außerhalb des Ansichtsbereichs eines Nutzers.In this way provides the adaptive rate allocation system 104 First, make sure that all tiles in a spatial video can be streamed to a minimum acceptable level of quality. Then fill the adaptive rate allocation system 104 the remaining available bandwidth with higher quality levels for one or more spatial video tile (s) based on the tiles' assigned priorities until bandwidth efficiency is maximized. As such, the adaptive rate allocation system 104 adaptively prioritizes the tiles in a spatial video to provide higher quality levels for the tiles, which a user is currently looking at / most likely to have a user look at, and for decreasing the quality levels for the tiles outside of a user's viewport.

In einigen Beispielausführungsformen ordnet das adaptive Ratenzuweisungssystem 104 minimale oder maximale Qualitätsniveaus für bestimmte Kacheln in einem räumlichen Video ungeachtet der Priorität, die der Kachel zugeordnet ist. Beispielsweise bestimmt das adaptive Ratenzuweisungssystem 104, dass die oberste Reihe von Kacheln in der 5B mit nicht mehr als der zweithöchsten Bitrate gestreamt werden soll, da die oberste Reihe von Kacheln geringe Ausmaße eines virtuelle Realität-Inhalts enthält, selbst wenn eine überschüssige Bandbreite zur Verfügung steht. Entsprechend kann das adaptive Ratenzuweisungssystem 104 auch Kacheln begrenzen, die in einem vorgegebenen Abstand (z.B. über zwei Kacheln) von dem Ansichtsbereich vorliegen. Das Beschränken der Bandbreite von einer oder mehreren Kachel(n) kann es dem adaptiven Ratenzuweisungssystem 104 ermöglichen, höhere Durchsatzniveaus zu erreichen, wenn die Qualitätsniveaus zunehmen (z.B. auf 8K- und 12K-Auflösungen). Beispielsweise obwohl einer bestimmten Kachel eine spezifische Bitrate zugewiesen werden kann, weist das adaptive Ratenzuweisungssystem 104 der Kachel erneut eine begrenzte Bitrate zu, was es anderen Kacheln ermöglicht, bei höheren Bitraten gestreamt zu werden, als sie ansonsten gestreamt werden könnten.In some example embodiments, the adaptive rate allocation system 104 orders minimum or maximum quality levels for particular tiles in a spatial video, regardless of the priority assigned to the tile. For example, the adaptive rate allocation system determines 104 that the top row of tiles in the 5B streaming at no more than the second highest bitrate because the top row of tiles contains small amounts of virtual reality content, even if there is excess bandwidth available. Accordingly, the adaptive rate allocation system 104 also limit tiles that are at a given distance (eg, over two tiles) from the view area. Limiting the bandwidth of one or more tiles may be the adaptive rate allocation system 104 enable higher throughput levels as quality levels increase (eg, to 8K and 12K resolutions). For example, although a specific bit rate may be assigned to a particular tile, the Adaptive Ratings Allocation System assigns 104 the tile again has a limited bitrate, which allows other tiles to be streamed at higher bitrates than they could otherwise be streamed.

Wie es vorstehend erwähnt worden ist, kann das adaptive Ratenzuweisungssystem 104 Kacheln in einem räumlichen Video bei verschiedenen Qualitäten unter Verwendung von entsprechenden Bitraten erzeugen und streamen. Ein Qualitätsmaß ist die Auflösung einer Kachel. Beispielsweise streamt das adaptive Ratenzuweisungssystem 104 die Kacheln bei verschiedenen Auflösungen unter Verwendung von entsprechenden Bitraten auf der Basis der Priorität, die der Kachel zugeordnet ist, und des Bandbreitenbudgets.As mentioned above, the adaptive rate allocation system 104 may generate and stream tiles in a spatial video at various qualities using corresponding bit rates. A quality measure is the resolution of a tile. For example, the adaptive rate allocation system streams 104 the tiles at different resolutions using appropriate bit rates based on the priority assigned to the tile and the bandwidth budget.

Zur Veranschaulichung zeigt die 6 ein Beispieldiagramm von verschiedenen Auflösungen, die das adaptive Ratenzuweisungssystem 104 zum Streamen von Kacheln eines räumlichen Videos zu einer Clientvorrichtung als Teil eines Auflösungsverminderungsvorgangs nutzt. Insbesondere zeigt die 6 eine Auflösungshierarchie 600, die eine Mehrzahl von Auflösungen 602a-d umfasst. Wie es gezeigt ist, umfasst jede Auflösung eine Auflösungshöhe (RH) und eine Auflösungsbreite (Rw). Beispielsweise gibt RH die Anzahl von Pixeln/Zeilen in eine Segment oder einer Kachel an und RW gibt die Anzahl von Pixeln/Spalten in einem Segment oder einer Kachel an.To illustrate, the 6 an example diagram of different resolutions that the adaptive rate allocation system 104 uses to stream tiles of a spatial video to a client device as part of a resolution reduction process. In particular, the shows 6 a resolution hierarchy 600 that have a plurality of resolutions 602a-d includes. As shown, each resolution includes a resolution level (R H ) and a resolution width (Rw). For example, R H indicates the number of pixels / rows in a segment or tile, and R W indicates the number of pixels / columns in a segment or tile.

Wie es in der 6 gezeigt ist, nehmen die Auflösungen 602a-d von einer niedrigsten ersten Auflösung 602a (z.B. dem minimal akzeptablen Qualitätsniveau) zu einer höchsten vierten Auflösung 602d (z.B. dem höchsten Qualitätsniveau) zu. Beispielsweise ist die erste Auflösung 602a ein Teil der Größe der zweiten Auflösung 602b, die wiederum ein Teil der Größe der dritten Auflösung 602c ist. Entsprechend muss, wenn die Größe der Auflösungen signifikant zunimmt, die Bitratenanforderung, die zum Streamen des Segments erforderlich ist, ebenfalls signifikant zunehmen, was die Anzahl der Kacheln, die das adaptive Ratenzuweisungssystem 104 bei den gegebenen beschränkten Bandbreitenbudgets der Clientvorrichtungen streamen kann, signifikant beeinflusst. Während in der 6 vier proportionale Niveaus der Auflösung gezeigt sind, sollte beachtet werden, dass das adaptive Ratenzuweisungssystem 104 jedwede Anzahl von Auflösungen nutzen kann. Ferner können die Auflösungen bezüglich der Höhe und/oder der Breite variieren.As it is in the 6 shown, take the resolutions 602a-d from a lowest first resolution 602a (eg the minimum acceptable quality level) to a highest fourth resolution 602d (eg the highest quality level) too. For example, the first resolution 602a a part of the size of the second resolution 602b , in turn, part of the size of the third resolution 602c is. Accordingly, as the size of the resolutions increases significantly, the bit rate requirement required to stream the segment must also increase significantly, which is the number of tiles that the adaptive rate allocation system 104 at the given limited bandwidth budgets of client devices. While in the 6 four proportional levels of resolution are shown, it should be noted that the adaptive rate allocation system 104 can use any number of resolutions. Furthermore, the resolutions may vary in height and / or width.

In einer oder mehreren Ausführungsform(en) weist das adaptive Ratenzuweisungssystem 104 zunächst jeder Kachel in einem räumlichen Video einem Streamen bei der niedrigsten ersten Auflösung 602a zu. Dann weist das adaptive Ratenzuweisungssystem 104 auf der Basis der Priorität jeder Kachel und des Ausmaßes der verfügbaren Bandbreite einer oder mehreren Kachel(n) erneut ein Streamen bei höheren Auflösungen zu, wie es vorstehend beschrieben worden ist. Beispielsweise nachdem das adaptive Ratenzuweisungssystem 104 ein räumliches Video in eine Kugel mit sechs Flächen, die sechs Kacheln aufweist, aufgeteilt hat, weist das adaptive Ratenzuweisungssystem 104 der mittleren Körperkachel, die den Ansichtsbereich überlappt, ein Streamen bei der höchsten vierten Auflösung 602d zu, den zwei mittleren Körperkacheln, die an den Ansichtsbereich angrenzen, ein Streamen bei der dritten Auflösung 602c zu, der letzten mittleren Körperkachel ein Streamen bei der zweiten Auflösung 602b zu und der oberen Kachel und der unteren Kachel beiden ein Streamen bei der niedrigsten ersten Auflösung 602a (z.B. der minimal akzeptablen Auflösung) zu. Auf der Basis der Zuweisung streamt das adaptive Ratenzuweisungssystem 104 jede der Kacheln bei einer Bitrate, die der zugewiesenen Auflösung entspricht.In one or more embodiments, the adaptive rate allocation system 104 First, cast each tile in a spatial video at the lowest first resolution 602a to. Then assign the adaptive rate allocation system 104 re-streaming at higher resolutions, as described above, based on the priority of each tile and the amount of available bandwidth of one or more tiles (s). For example, after the adaptive rate allocation system 104 has divided a spatial video into a sphere with six faces, which has six tiles, has the adaptive rate allocation system 104 the middle body tile that overlaps the view area will stream at the highest fourth resolution 602d to, the two middle body tiles adjoining the viewing area, a stream at the third resolution 602c to, the last middle body tile a stream at the second resolution 602b to and the top tile and the bottom tile both stream at the lowest first resolution 602a (eg the minimum acceptable resolution) too. Based on the assignment, the adaptive rate allocation system streams 104 each of the tiles at a bit rate equal to the assigned resolution.

Wie es in der veranschaulichten Ausführungsform in der 6 gezeigt ist, kann das adaptive Ratenzuweisungssystem 104 eine von vier Auflösungen für jede Kachel auswählen. In diesem Fall kann das adaptive Ratenzuweisungssystem 104 jede der vier Auflösungen für jede Kachel erzeugen und/oder speichern. Beispielsweise führt das adaptive Ratenzuweisungssystem 104 eine Vorverarbeitung zum Erzeugen und Speichern jeder der Auflösungen für jede Kachel in einem räumlichen Video durch. Nach dem Zuweisen einer Auflösung zu einer Kachel auf der Basis der Nutzerinteraktion mit dem räumlichen Video greift das adaptive Ratenzuweisungssystem 104 dann auf die Kachel zu und streamt diese bei der zugewiesenen Auflösung. Alternativ erzeugt das adaptive Ratenzuweisungssystem 104 in Echtzeit die Auflösung, die für jede Kachel erforderlich ist, auf der Basis der Zuweisung für die Kachel.As in the illustrated embodiment in the 6 can be shown, the adaptive rate allocation system 104 select one of four resolutions for each tile. In this case, the adaptive rate allocation system 104 create and / or store each of the four resolutions for each tile. For example, the adaptive rate allocation system performs 104 a pre-processing for generating and Save each of the resolutions for each tile in a spatial video. After assigning a resolution to a tile based on the user interaction with the spatial video, the adaptive rate allocation system takes effect 104 then to the tile and streams it at the assigned resolution. Alternatively, the adaptive rate allocation system generates 104 in real time, the resolution required for each tile, based on tile allocation.

Das adaptive Ratenzuweisungssystem 104 kann verschiedene Verfahren zum Streamen der Kacheln zu der Clientvorrichtung nutzen. In einigen Beispielausführungsformen streamt das adaptive Ratenzuweisungssystem 104 jede der Kacheln parallel mittels Multithreading („Mehrstrang“)-Techniken, um sicherzustellen, dass gleichzeitig mit dem Streamen aller Kacheln begonnen wird. Mit anderen Worten, das adaptive Ratenzuweisungssystem 104 streamt jede der Kacheln ungeachtet der Priorität einer Kachel gleichzeitig zu der Clientvorrichtung. Alternativ streamt das adaptive Ratenzuweisungssystem 104 die Kacheln gemäß der Kachelpriorität. In diesen Ausführungsformen streamt das adaptive Ratenzuweisungssystem 104 Kacheln von der höchsten Priorität zur niedrigsten Priorität. Auf diese Weise streamt das adaptive Ratenzuweisungssystem 104 Kacheln zu dem Nutzer, die der Nutzer betrachtet/bei denen es am wahrscheinlichsten ist, dass sie der Nutzer betrachtet, bevor es Kacheln streamt, die außerhalb des Blicks des Nutzers liegen.The adaptive rate allocation system 104 can use various methods of streaming the tiles to the client device. In some example embodiments, the adaptive rate allocation system streams 104 each of the tiles in parallel using multithreading techniques to ensure that simultaneous streaming of all tiles begins. In other words, the adaptive rate allocation system 104 regardless of the priority of a tile, each of the tiles simultaneously streams to the client device. Alternatively, the adaptive rate allocation system streams 104 the tiles according to the tile priority. In these embodiments, the adaptive rate allocation system streams 104 Tiles from the highest priority to the lowest priority. In this way, the adaptive rate allocation system streams 104 Tiling to the user the user is looking at / most likely to view the user before streaming tiles that are out of the user's view.

In anderen Ausführungsformen streamt das adaptive Ratenzuweisungssystem 104 Kacheln auf der Basis der Auflösung der Kacheln. Beispielsweise streamt das adaptive Ratenzuweisungssystem 104 die minimal akzeptable Auflösung für alle Kacheln. Dann stellt das adaptive Ratenzuweisungssystem 104 die nächstniedrigere Auflösung für die Kacheln bereit, die der nächstniedrigen Bitrate zugewiesen sind. Das adaptive Ratenzuweisungssystem 104 wiederholt dieses Verfahren, bis alle zugewiesenen Auflösungen gesendet worden sind. Es sei angemerkt, dass dann, wenn das adaptive Ratenzuweisungssystem 104 nach dem Streamen einer niedrigeren Auflösung eine höhere Auflösung für dieselbe Kachel streamt, die höhere Auflösung die niedrigere Auflösung skaliert, aufbaut und dieser Verbesserungen hinzufügt (vgl. z.B. die Verwendung von SHVC (skalierbares HEVC) von H.265 für ein geschichtetes Streamen). Auf diese Weise sendet nicht erneut oder ersetzt das adaptive Ratenzuweisungssystem 104 nicht irgendwelche Daten, die vorher für eine Kachel gesendet worden sind, sondern fügt stattdessen den Daten, die vorher für die Kachel gesendet worden sind, etwas hinzu.In other embodiments, the adaptive rate allocation system streams 104 Tiles on the basis of the resolution of the tiles. For example, the adaptive rate allocation system streams 104 the minimum acceptable resolution for all tiles. Then put the adaptive rate allocation system 104 provide the next lower resolution for the tiles assigned to the next lower bit rate. The adaptive rate allocation system 104 Repeat this procedure until all assigned resolutions have been sent. It should be noted that if the adaptive rate allocation system 104 after streaming a lower resolution, stream a higher resolution for the same tile, the higher resolution scales, builds, and adds to the lower resolution (see, eg, the use of SHVC (Scalable HEVC) of H.265 for stratified streaming). This way does not resend or replace the adaptive rate allocation system 104 not any data previously sent for a tile, but instead adds something to the data that was previously sent for the tile.

In einigen Ausführungsformen sendet das adaptive Ratenzuweisungssystem 104 alle Kacheln bei der minimalen akzeptablen Auflösung für alle Kacheln. Für jedwede restlichen Kacheln, die eine höhere Auflösungszuweisung aufweisen, streamt das adaptive Ratenzuweisungssystem 104 von der Kachel mit der höchsten Priorität zur Kachel mit der niedrigsten Priorität. Auf diese Weise streamt dann, nachdem das adaptive Ratenzuweisungssystem 104 eine Basisauflösung für jede Kachel bereitstellt, das adaptive Ratenzuweisungssystem 104 von den Kacheln mit der höchsten Auflösung (z.B. den Kacheln mit der höchsten Priorität) zu den Kacheln mit der zweitniedrigsten Auflösung.In some embodiments, the adaptive rate allocation system transmits 104 all tiles at the minimum acceptable resolution for all tiles. For any remaining tiles that have a higher resolution allocation, the adaptive rate allocation system streams 104 from the tile with the highest priority to the tile with the lowest priority. This way, then, after the adaptive rate allocation system streams 104 provides a base resolution for each tile, the adaptive rate allocation system 104 from the highest resolution tiles (eg the highest priority tiles) to the second lowest resolution tiles.

Eine detaillierter Ausführungsform des Zuweisens von Auflösungen und/oder Bitraten zu Kacheln in einem räumlichen Video ist nachstehend angegeben. Wie es vorstehend beschrieben ist, teilt das adaptive Ratenzuweisungssystem 104 ein räumliches Video in n Kacheln, die als T = {t1, t2, ..., tn) dargestellt werden. Das höchstmögliche Qualitätsniveau für jedes ti ∈ T weist eine Bitratenanforderung sti und einen Prioritätskoeffizienten von pti auf. Wie es vorstehend erwähnt worden ist, ordnet das adaptive Ratenzuweisungssystem 104 die höchste Priorität Kacheln innerhalb des unmittelbaren Ansichtsbereichs des Nutzers zu (z.B. P1), und die niedrigste Priorität (z.B. P3) den Kacheln in dem Bereich außerhalb des Ansichtsbereichs des Nutzers in dem räumlichen Video zu.A detailed embodiment of assigning resolutions and / or bit rates to tiles in a spatial video is given below. As described above, the adaptive rate allocation system shares 104 a spatial video in n tiles, represented as T = {t 1 , t 2 , ..., t n ). The highest possible quality level for each t i ∈ T has a bit rate requirement s ti and a priority coefficient of p ti . As mentioned above, the adaptive rate allocation system orders 104 the highest priority tiles within the immediate viewport of the user (eg P 1 ), and the lowest priority (eg P 3 ) the tiles in the area outside the user's viewport in the spatial video.

Darüber hinaus ist der Qualitätsbeitrag der Kachel ti, der als qti ist, eine Funktion der Bitratenanforderung der Kachel (d.h., sti) und des Prioritätskoeffizienten (d.h., pti). Demgemäß gilt sti × pti = qti. Darüber hinaus weisen, wie es vorstehend erwähnt worden ist, Clientvorrichtungen häufig ein begrenztes Bandbreitenbudget auf (z.B. WB), das die Gesamtbitrate für alle Kacheln begrenzt, die das adaptive Ratenzuweisungssystem 104 an die Clientvorrichtung senden kann.Moreover, the quality contribution of the tile t i , which is as q ti, is a function of the bit rate request of the tile (ie, s ti ) and the priority coefficient (ie, p ti ). Accordingly, s ti × p ti = q ti . In addition, as noted above, client devices often have a limited bandwidth budget (eg, W B ) that limits the overall bit rate for all tiles that is the adaptive rate allocation system 104 to the client device.

In dieser Beispielausführungsform soll X= {x1, x2, ..., xi} einen Satz von Kacheln dargestellen, die das adaptive Ratenzuweisungssystem 104 für die Clientvorrichtung bereitstellt. Ferner entspricht Xi ∈ Xder ursprünglichen Kachel ti ∈ T. Demgemäß weist jedes xi einen Prioritätskoeffizienten pxi = pti auf, oder, mit anderen Worten, der Prioritätskoeffizient zwischen den gesendeten Kacheln und den ursprünglichen Kacheln stimmt überein.In this example embodiment, let X = {x 1 , x 2 , ..., x i } represent a set of tiles containing the adaptive rate allocation system 104 for the client device. Further, X i ∈ X corresponds to the original tile t i ∈ T. Accordingly, each x i has a priority coefficient p xi = p ti , or, in other words, the priority coefficient between the sent tiles and the original tiles is the same.

Darüber hinaus soll in der Beispielausführungsform L die Anzahl der Qualitätsniveaus (z.B. Auflösungen) darstellen, wobei jedes Qualitätsniveau mit der Bezeichnung k, das als Rk (0 ≤ k ≤ L) angegeben ist und die Bitrate der Kachel ti mit der Darstellung Rk als s t i R k

Figure DE102017009121A1_0005
angegeben ist. Ferner entspricht das niedrigste Qualitätsniveau der niedrigsten Bitrate, die durch RL dargestellt ist, und wobei es sich um die minimale Bitrate handelt, die Nutzer tolerieren können (z.B. das minimal akzeptable Qualitätsniveau). Ferner ist der Qualitätsbeitrag jeder Kachel xi gleich qxi (z.B. sxi × pxi = qth). Moreover, in the example embodiment L, the number of quality levels (eg resolutions) should be represented, with each quality level denoted by k, denoted R k ( 0 ≤ k ≤ L) and the bit rate of the tile t i with the representation R k as s t i R k
Figure DE102017009121A1_0005
is specified. Further, the lowest quality level corresponds to the lowest bit rate represented by R L , and this is the minimum bit rate that users can tolerate (eg, the minimum acceptable quality level). Further, the quality contribution of each tile x i is equal to q xi (eg, s xi x p xi = q th ).

Darüber hinaus soll S die Gesamtbitrate des Streamens von Kacheln eines räumlichen Videos sein. Dann berechnet für jede Kachel ti in T das adaptive Ratenzuweisungssystem 104 qi, wie es vorstehend beschrieben worden ist, was der Beitrag ist, den ti zu der durchschnittlichen Qualität machen würde, wenn das adaptive Ratenzuweisungssystem 104 ti bei der höchstmöglichen Bitrate streamt. Das adaptive Ratenzuweisungssystem 104 berechnet dann die minimale Bitrate, die zum Streamen aller Kacheln bei ihrer niedrigsten Bitrate erforderlich ist, die als W m i n = s t i R L

Figure DE102017009121A1_0006
dargestellt ist. Zusätzlich ist, da Wmin ≤ WB, das Ausmaß der verfügbaren Bandbreite, Ws, als Ws = WB- Wmin, dargestellt, wie es vorstehend beschrieben ist. Zusätzlich sortiert in der Beispielausführungsform das adaptive Ratenzuweisungssystem 104 zur Bestimmung der optimalen Bitrate für jede Kachel die priorisierte Liste von Kacheln durch eine globale Priorität von der größten zur kleinsten. Für eine einfache Schreibweise soll angenommen werden, dass die Kacheln neu indiziert werden, so dass die sortierte Liste von Kacheln t1, t2, ..., tn ist. Wenn s t 1 s t 1 R L W s ,
Figure DE102017009121A1_0007
dann ist die überschüssige Bandbreite (d.h., Ws) ausreichend, um ein Senden von t1 bei der höchsten Bitrate (Ro) zu ermöglichen. Die Kachel x1 hat die Bitrate sx1 = st1 und trägt q1 zu der durchschnittlichen Qualität bei. Darüber hinaus belässt dies die zusätzliche Bandbreite überschüssig (d.h., Ws1), da W s 1 = W s s t 1 R 0 s t 1 R L
Figure DE102017009121A1_0008
für die restlichen Kacheln nach x1. Der vorstehende Algorithmus wiederholt sich für t2, t3, ..., tn, bis das adaptive Ratenzuweisungssystem 104 eine oder mehrere Kachel(n) tl bei der höchsten Bitrate innerhalb des restlichen Bandbreitenbudgets Wl-1 nicht streamen kann.In addition, S should be the total bit rate of streaming spatial video tiles. Then, for each tile t i in T, calculate the adaptive rate allocation system 104 q i as described above, which is the contribution t i would make to the average quality when using the adaptive rate allocation system 104 t i streams at the highest possible bit rate. The adaptive rate allocation system 104 then calculates the minimum bitrate required to stream all tiles at their lowest bitrate, called the W m i n = Σ s t i R L
Figure DE102017009121A1_0006
is shown. In addition, since W min ≦ W B , the amount of available bandwidth, Ws, is represented as Ws = W B - W min , as described above. Additionally, in the example embodiment, the adaptive rate allocation system sorts 104 To determine the optimal bitrate for each tile, prioritize the list of tiles by a global priority from largest to smallest. For a simple notation, let us assume that the tiles are reindexed so that the sorted list of tiles t 1 , t 2 , ..., t n . If s t 1 - s t 1 R L W s .
Figure DE102017009121A1_0007
then the excess bandwidth (ie, W s ) is sufficient to allow transmission of t 1 at the highest bit rate (Ro). The tile x 1 has the bitrate s x1 = s t1 and contributes q 1 to the average quality. In addition, this leaves the additional bandwidth excess (ie, W s1 ) since W s 1 = W s - s t 1 R 0 - s t 1 R L
Figure DE102017009121A1_0008
for the remaining tiles after x 1 . The above algorithm repeats for t 2 , t 3 , ..., t n until the adaptive rate allocation system 104 one or more tile (s) t l can not stream at the highest bit rate within the remaining bandwidth budget W l-1 .

Das adaptive Ratenzuweisungssystem 104 bestimmt dann die höchstmögliche Bitrate, bei der es zu der Clientvorrichtung streamen kann, und zwar durch Berechnen des niedrigsten Qualitätsniveaus L ': L ' L ,

Figure DE102017009121A1_0009
so dass s t l R L ' W l 1 + s t l R L .
Figure DE102017009121A1_0010
Die Kachel xl weist eine Bitrate s x 1 = s t l R L '
Figure DE102017009121A1_0011
auf und trägt q’l zur durchschnittlichen Qualität bei. Dann wird das restliche Bandbreitenbudget nach dem Streamen xl gleich W l = W l 1 s t l R L '
Figure DE102017009121A1_0012
sein. Auch hier wiederholt der Beispielalgorithmus das vorstehende Verfahren zur Bestimmung der geeigneten Bitraten, der Ausmaße der überschüssigen Bandbreite und des Bandbreitenbudgets, und den Qualitätsbeitrag für jede der restlichen Kacheln xl+1, xl+2, ..., xn. Auf diese Weise maximiert das adaptive Ratenzuweisungssystem 104 die Bandbreiteneffizienz, während Kacheln eines räumlichen Videos bei gegebenem Bandbreitenbudget bei dem höchstmöglichen Qualitätsniveau gestreamt werden.The adaptive rate allocation system 104 then determines the highest possible bit rate at which it can stream to the client device by computing the lowest quality level L ': L ' L .
Figure DE102017009121A1_0009
so that s t l R L ' W l - 1 + s t l R L ,
Figure DE102017009121A1_0010
The tile x l has a bit rate s x 1 = s t l R L '
Figure DE102017009121A1_0011
and contributes q ' l to the average quality. Then, the remaining bandwidth budget becomes equal to x 1 after the streaming W l = W l - 1 - s t l R L '
Figure DE102017009121A1_0012
be. Again, the example algorithm repeats the above procedure for determining the appropriate bit rates, the amounts of excess bandwidth and the bandwidth budget, and the quality contribution for each of the remaining tiles x 1 + 1 , x 1 + 2 , ..., x n . This maximizes the adaptive rate allocation system 104 the bandwidth efficiency as spatial video tiles are streamed at the highest possible quality level given a bandwidth budget.

Es sei angemerkt, dass in einem Fall oder mehreren Fällen, wie es z.B. vorstehend in der Auflistung 2 gezeigt ist, das adaptive Ratenzuweisungssystem 104 eine einmalige Implementierung zu Beginn der Sitzung für das Hauptverfahren ablaufen lässt. Durch Durchführen der einmaligen Implementierung kann das adaptive Ratenzuweisungssystem 104 in Echtzeit ausgeführt werden und erfordert keinerlei zusätzlichen Resourcen („overhead“) während der Laufzeit. Anders gesagt, das adaptive Ratenzuweisungssystem 104 kann in O(nlogn) Zeit und O(n) Raum effizient operieren kann nahezu optimale Lösungen erzeugen. Darüber hinaus hängt der Näherungsfehler von der Differenz zwischen der Bitrate, die für die erste Kachel gewählt worden ist, die nicht bei der höchsten Bitrate empfangen werden kann (d.h. tl), und dem verbleibenden überschüssigen Bandbreitenbudget ab. Es sollte beachtet werden, dass die Auflösungsverschlechterung optional ist. In alternativen Ausführungsformen verschlechtert das adaptive Ratenzuweisungssystem 104 nur die Qualität und die Gesamtbitrate anstatt einer Veränderung von Auflösungen.It should be noted that in one or more cases, such as above in the listing 2 shown is the adaptive rate allocation system 104 Run a one-time implementation at the beginning of the session for the main procedure. By performing the one-time implementation, the adaptive rate allocation system 104 run in real time and does not require any overhead ("overhead") during runtime. In other words, the adaptive rate allocation system 104 can operate efficiently in O (nlogn) time and O (n) space can produce near optimal solutions. Moreover, the approximation error depends on the difference between the bit rate chosen for the first tile, which can not be received at the highest bit rate (ie, t l ), and the remaining excess bandwidth budget. It should be noted that the dissolution deterioration is optional. In alternative embodiments, the adaptive rate allocation system degrades 104 only the quality and the total bit rate instead of a change of resolutions.

In der 7 ist ein Ablaufdiagramm des Streamens eines virtuelle Realität-Videos unter Verwendung des adaptiven Ratenzuweisungssystems 104 gezeigt. Wie es gezeigt ist, umfasst die 7 eine Servervorrichtung 102, die das adaptive Ratenzuweisungssystem 104 umfasst, und eine virtuelle Realität-Anzeigevorrichtung 110. Das adaptive Ratenzuweisungssystem 104 erhält ein räumliches Video. Beispielsweise empfängt das adaptive Ratenzuweisungssystem 104 einen Datenstrom eines räumlichen Videos bei der höchsten Auflösung, die das adaptive Ratenzuweisungssystem 104 später gegebenenfalls vermindern kann. Alternativ empfängt das adaptive Ratenzuweisungssystem 104 eine Mehrzahl von Auflösungen des räumlichen Videos von einer Inhaltsprovidervorrichtung. In weiteren Ausführungsformen greift das adaptive Ratenzuweisungssystem 104 auf ein gespeichertes räumliches Video auf der oder den Servervorrichtung(en) 102 zu.In the 7 Fig. 10 is a flowchart of streaming a virtual reality video using the adaptive rate allocation system 104 shown. As shown, the 7 a server device 102 , which is the adaptive rate allocation system 104 includes, and a virtual reality display device 110 , The adaptive rate allocation system 104 receives a spatial video. For example, the adaptive rate allocation system receives 104 a spatial video at the highest resolution, which is the adaptive rate allocation system 104 later may possibly decrease. Alternatively, the adaptive rate allocation system receives 104 a plurality of spatial video resolutions of a content provider device. In other embodiments, the adaptive rate allocation system operates 104 to a stored spatial video on the server device (s) 102 to.

Nach dem Empfangen eines räumlichen Videos teilt das adaptive Ratenzuweisungssystem 104 räumlich 714 das räumliche Video in eine Kugel mit sechs Flächen auf (d.h., ein Panoramavideo), die ein 3D-Netzsegment umfasst. Das adaptive Ratenzuweisungssystem 104 wählt ein 3D-Templatnetz aus und wendet (z.B. führt ein Mapping durch) das 3D-Templatnetz auf das empfangene räumliche Video an. Als Teil des Mappings des räumlichen Videos zu dem 3D-Templat überführt das adaptive Ratenzuweisungssystem 104 Eckpunktpositionen und Texturkoordinaten von dem 3D-Templat zu dem räumlichen Video. Auf diese Weise erreicht das adaptive Ratenzuweisungssystem 104 ein rektangulares Mapping des räumlichen Videos (d.h., Panoramavideos).After receiving a spatial video, the adaptive rate allocation system shares 104 spatially 714 the spatial video into a sphere with six faces (ie, a panoramic video) that includes a 3D mesh segment. The adaptive rate allocation system 104 select a 3D template mesh and apply (eg, perform a mapping) the 3D template mesh to the received spatial video. As part of mapping the spatial video to the 3D template, the adaptive rate allocation system translates 104 Vertex positions and texture coordinates from the 3D template to the spatial video. In this way, the adaptive rate allocation system achieves 104 a rectangular mapping of the spatial video (ie, panoramic video).

Darüber hinaus teilt das adaptive Ratenzuweisungssystem 104 das gemappte räumliche Video vertikal und horizontal (führt z.B. ein Slicing und Stacking durch) unter Verwendung des 3D-Netzes, das von dem 3D-Templat übertragen worden ist. Dann teilt das adaptive Ratenzuweisungssystem 104 unter Verwendung der Aufteilungen die Segmente in sechs 3D-Netzsegmente (oder eine andere Anzahl von 3D-Netzsegmenten), so dass die Kugel mit sechs Flächen gebildet wird (d.h., Räume mit sechs Flächen).In addition, the adaptive rate allocation system shares 104 the mapped spatial video vertically and horizontally (eg slicing and stacking) using the 3D mesh transferred from the 3D template. Then share the adaptive rate allocation system 104 using the splits, segments into six 3D mesh segments (or another number of 3D mesh segments) so that the sphere is formed with six faces (ie, six-face spaces).

Wie es in der 7 gezeigt ist, erzeugt 716 das adaptive Ratenzuweisungssystem 104 eine Mehrzahl von Qualitätsniveaus für jedes 3D-Netzsegment. Wie es vorstehend erwähnt worden ist, streamt das adaptive Ratenzuweisungssystem 104 das räumliche Video zu einer Clientvorrichtung unter Verwendung des höchstens Qualitätsniveaus und der höchsten Bitraten, die bei den gegebenen Bandbreitenbeschränkungen möglich sind (z.B. dem Bandbreitenbudget). Als Ergebnis streamt das adaptive Ratenzuweisungssystem 104 häufig verschiedene Segmente bei verschiedenen Qualitätsniveaus (z.B. Auflösungen).As it is in the 7 716, the adaptive rate allocation system 104 generates 716 a plurality of quality levels for each 3D network segment. As mentioned above, the adaptive rate allocation system streams 104 the spatial video to a client device using the at most quality level and highest bit rates possible with the given bandwidth constraints (eg, the bandwidth budget). As a result, the adaptive rate allocation system streams 104 often different segments at different quality levels (eg resolutions).

Zum Erzeugen einer Mehrzahl von Qualitätsniveaus für jedes 3D-Netzsegment erzeugt das adaptive Ratenzuweisungssystem 104 in einer oder mehreren Ausführungsform(en) eine Kopie jedes Auflösungsniveaus für jedes 3D-Netzsegment. Wenn beispielsweise vier Auflösungen zur Verfügung stehen (vgl. z.B. die 6), dann erzeugt das adaptive Ratenzuweisungssystem 104 drei Kopien mit niedrigerer Auflösung von jedem 3D-Netzsegment auf der Kopie mit der höchsten Auflösung, die von der Inhaltsprovidervorrichtung 706 empfangen worden ist.To generate a plurality of quality levels for each 3D network segment, the adaptive rate allocation system generates 104 in one or more embodiments, a copy of each resolution level for each 3D mesh segment. If, for example, four resolutions are available (see, for example, the 6 ), then creates the adaptive rate allocation system 104 three lower-resolution copies of each 3D mesh segment on the highest-resolution copy received from content provider device 706.

In einigen Beispielausführungsformen, wie es vorstehend erwähnt worden ist, empfängt das adaptive Ratenzuweisungssystem 104 verschiedene Qualitätsniveaus für ein räumliches Video von der Inhaltsprovidervorrichtung 706. In diesen Ausführungsformen teilt das adaptive Ratenzuweisungssystem 104 jede Kopie des räumlichen Videos räumlich in entsprechende 3D-Netzsegmente auf (d.h., die Kugel mit sechs Flächen), wie es vorstehend beschrieben worden ist. Auf diese Weise hat das adaptive Ratenzuweisungssystem 104 Zugang zu den verschiedenen Qualitätsniveaus für jedes 3D-Netzsegment des räumlichen Videos (d.h., Panoramavideos).In some example embodiments, as mentioned above, the adaptive rate allocation system receives 104 different quality levels for a spatial video from the content provider device 706 , In these embodiments, the adaptive rate allocation system shares 104 spatially copy each copy of the spatial video into corresponding 3D mesh segments (ie, the six-faced sphere) as described above. In this way, the adaptive rate allocation system has 104 Access to the various quality levels for each 3D spatial video segment (ie, panoramic video).

Wie es gezeigt ist, identifiziert 718 das adaptive Ratenzuweisungssystem 104 mit der virtuelle Realität-Anzeigevorrichtung 110 ein Bandbreitenbudget. Beispielsweise senden das adaptive Ratenzuweisungssystem 104 und die virtuelle Realität-Anzeigevorrichtung 110 Testdateien oder andere Daten zwischen diesen, um das Ausmaß der verfügbaren Bandbreite und/oder eines Bandbreitenbudgets zu ermitteln. Ferner prüfen und aktualisieren das adaptive Ratenzuweisungssystem 104 und die virtuelle Realität-Anzeigevorrichtung 110 in einer oder mehreren Ausführungsform(en) periodisch das Bandbreitenbudget, wenn sich die Netzwerkbedingungen ändern.As shown, 718 identifies the adaptive rate allocation system 104 with the virtual reality display device 110 a bandwidth budget. For example, send the adaptive rate allocation system 104 and the virtual reality display device 110 Test files or other data between them to determine the amount of available bandwidth and / or a bandwidth budget. It also reviews and updates the adaptive rate allocation system 104 and the virtual reality display device 110 in one or more embodiments, the bandwidth budget periodically changes as network conditions change.

In einigen Beispielausführungsformen stellt die virtuelle Realität-Anzeigevorrichtung 110 für das adaptive Ratenzuweisungssystem 104 ein vorgegebenes Bandbreitenbudget bereit. Beispielsweise gibt die virtuelle Realität-Anzeigevorrichtung 110 deren maximales Bitraten-Empfangs- und/oder Verarbeitungsvermögen an das adaptive Ratenzuweisungssystem 104 weiter. In verschiedenen Ausführungsformen identifiziert das adaptive Ratenzuweisungssystem 104 Eigenschaften der virtuelle Realität-Anzeigevorrichtung 110 oder einer Netzwerkverbindung und bestimmt dann das Bandbreitenbudget auf der Basis der Eigenschaften. Beispielsweise bestimmt das adaptive Ratenzuweisungssystem 104 das höhere Bandbreitenbudget für eine drahtgebundene virtuelle Realität-Anzeigevorrichtung 110 und nicht für eine drahtlose virtuelle Realität-Anzeigevorrichtung 110.In some example embodiments, the virtual reality display device 110 provides for the adaptive rate allocation system 104 a given bandwidth budget. For example, the virtual reality display device 110 their maximum bit rate reception and / or processing capability to the adaptive rate allocation system 104 further. In various embodiments, the adaptive rate allocation system 104 identifies features of the virtual reality display device 110 or a network connection and then determines the bandwidth budget based on the properties. For example, the adaptive rate allocation system determines 104 the higher bandwidth budget for a wired virtual reality display device 110 and not for a wireless virtual reality display device 110 ,

Mittels des Bandbreitenbudgets empfängt 720 das adaptive Ratenzuweisungssystem 104 auch Ansichtsbereichinformationen von der virtuelle Realität-Anzeigevorrichtung 110. Wie es vorstehend beschrieben worden ist, geben Ansichtsbereichinformationen die Richtung und Ausrichtung der virtuelle Realität-Anzeigevorrichtung 110 an. Als solches nutzt das adaptive Ratenzuweisungssystem 104 die Ansichtsbereichinformationen zum Identifizieren der Koordinaten des Ansichtsbereichs des Nutzers innerhalb der räumlichen Videos, was das adaptive Ratenzuweisungssystem 104 weiter nutzt, um festzustellen, welche 3D-Netzsegmente mit dem Ansichtsbereich überlappen und an diesen angrenzen.By means of the bandwidth budget, the adaptive rate allocation system 104 also receives 720 view area information from the virtual reality display device 110 , As described above, viewport information gives the direction and orientation of the virtual reality display device 110 at. As such, the adaptive rate allocation system uses 104 the view area information for identifying the coordinates of the user's viewing area within the spatial videos, which is the adaptive rate allocation system 104 continues to use to determine which 3D mesh segments overlap and are adjacent to the viewport.

Das adaptive Ratenzuweisungssystem 104 ordnet 722 den 3D-Netzsegmenten auf der Basis der empfangenen Ansichtsbereichinformationen eine Priorität zu. Beispielsweise stellt das adaptive Ratenzuweisungssystem 104 fest, welche 3D-Netzsegmente mit dem Ansichtsbereich überlappen, und ordnet diesen 3D-Netzsegmenten die höchste Priorität zu. Darüber hinaus ordnet das adaptive Ratenzuweisungssystem 104 die höchste oder die nächsthöhere Priorität den 3D-Netzsegmenten zu, die an den Ansichtsbereich angrenzen. Ferner ordnet das adaptive Ratenzuweisungssystem 104 3D-Netzsegmenten, die sich weiter weg von dem Ansichtsbereich (z.B. außerhalb des peripheren Blicks des Nutzers innerhalb des räumlichen Videos) befinden, eine niedrigere Priorität zu. Das adaptive Ratenzuweisungssystem 104 kann alternativ 3D-Netzsegmenten Prioritäten zuordnen, wie es vorstehend beschrieben ist.The adaptive rate allocation system 104 assigns 722 a priority to the 3D mesh segments based on the received view area information. For example, the adaptive rate allocation system provides 104 determine which 3D mesh segments overlap the viewport and assign the highest priority to these 3D mesh segments. It also arranges the adaptive rate allocation system 104 the highest or next higher priority to the 3D mesh segments adjacent to the viewport. It also arranges the adaptive rate allocation system 104 3D mesh segments further away from the viewing area (eg, outside the user's peripheral view within the spatial video) are given a lower priority. The adaptive rate allocation system 104 may alternatively assign priorities to 3D network segments as described above.

Auf der Basis der zugeordneten Prioritäten jedes 3D-Netzsegments bestimmt 724 das adaptive Ratenzuweisungssystem 104 eine Bitratenzuweisung für jedes 3D-Netzsegment. Beispielsweise identifiziert das adaptive Ratenzuweisungssystem 104 eine minimale Bitrate, die der niedrigsten akzeptablen Qualität des räumlichen Videos entspricht. Mit anderen Worten, das adaptive Ratenzuweisungssystem 104 bestimmt, bei welcher Bitrate das adaptive Ratenzuweisungssystem 104 jedes 3D-Netzsegment zu der Clientvorrichtung 708 auf dem niedrigsten Qualitätsniveau streamen kann. Im Allgemeinen ist dann, wenn jedes der 3D-Netzsegmente auf dem niedrigsten Qualitätsniveau gestreamt wird, die Bitrate, die zum Streamen der 3D-Netzsegmente erforderlich ist, niedriger als das Bandbreitenbudget.Based on the assigned priorities of each 3D network segment, 724 determines the adaptive rate allocation system 104 a bit rate allocation for each 3D network segment. For example, the adaptive rate allocation system identifies 104 a minimum bit rate that corresponds to the lowest acceptable quality of the spatial video. In other words, the adaptive rate allocation system 104 determines at which bit rate the adaptive rate allocation system 104 each 3D network segment to the client device 708 at the lowest quality level. In general, when each of the 3D network segments is streamed at the lowest quality level, the bit rate required to stream the 3D network segments is lower than the bandwidth budget.

Darüber hinaus steht häufig eine zusätzliche Bandbreite zur Verfügung, die zum einmaligen oder mehrmaligen Streamen auf einem höheren Qualitätsniveau verbleibt. Beispielsweise identifiziert das adaptive Ratenzuweisungssystem 104 in einer oder mehreren Ausführungsform(en) das oder die 3D-Netzsegment(e) mit der höchsten Priorität und bestimmt, ob die überschüssige Bandbreite das Streamen des 3D-Netzsegments oder der 3D-Netzsegmente mit der höchsten Priorität bei einer entsprechenden (höheren) Bitrate ermöglicht. Wenn dies der Fall ist, dann weist das adaptive Ratenzuweisungssystem 104 dem oder den 3D-Netzsegment(en) mit der höchsten Priorität die entsprechende Bitrate zu. Wenn dies nicht der Fall ist, bestimmt das adaptive Ratenzuweisungssystem 104, ob das oder die 3D-Netzsegment(e) mit der höchsten Priorität auf dem nächsthöheren Qualitätsniveau und der entsprechenden Bitrate gestreamt werden kann. Das adaptive Ratenzuweisungssystem 104 wiederholt das Verfahren, wie es vorstehend detaillierter beschrieben worden ist, bis jedem 3D-Netzsegment in dem räumlichen Video das höchstmögliche Qualitätsniveau und die entsprechende Bitrate, die den Bandbreitendurchsatz bei gegebenem Bandbreitenbudget maximiert, zugewiesen wordenIn addition, there is often an additional bandwidth available that remains for single or multiple streaming at a higher quality level. For example, the adaptive rate allocation system identifies 104 in one or more embodiments, determine the highest priority 3D network segment (s) and determines whether the excess bandwidth is streaming the 3D network segment or the highest priority 3D network segments at a corresponding (higher) bit rate allows. If so, then assign the adaptive rate allocation system 104 the one or more highest priority 3D network segment (s) the corresponding bit rate. If not, the adaptive rate allocation system determines 104 whether the highest priority 3D mesh segment (s) can be streamed at the next highest quality level and bitrate. The adaptive rate allocation system 104 For example, as described in more detail above, the method repeats until each 3D network segment in the spatial video the highest possible quality level and bit rate that maximizes bandwidth utilization for a given bandwidth budget

Wie es gezeigt ist, streamt 726 das adaptive Ratenzuweisungssystem 104 die 3D-Netzsegmente mittels der zugewiesenen Bitraten. Das adaptive Ratenzuweisungssystem 104 streamt die 3D-Netzsegmente parallel, seriell oder kombiniert, wie es vorstehend beschrieben worden ist. Ferner kann das adaptive Ratenzuweisungssystem 104 jedes der 3D-Netzsegmente auf der Basis der zugeordneten Priorität und der zugewiesenen Bitrate eines 3D-Netzsegments intelligent streamen, wie es vorstehend beschrieben worden ist.As shown, 726 streams the adaptive rate allocation system 104 the 3D network segments by means of the allocated bit rates. The adaptive rate allocation system 104 Streams the 3D mesh segments in parallel, serially or in combination as described above. Furthermore, the adaptive rate allocation system 104 intelligently stream each of the 3D mesh segments based on the assigned priority and assigned bit rate of a 3D mesh segment, as described above.

Darüber hinaus kann das adaptive Ratenzuweisungssystem 104 das Verfahren des Empfangens 720 von Ansichtsbereichinformationen, des Zuordnens 722 einer Priorität zu den 3D-Netzsegmenten, des Bestimmens 724 einer Bitratenzuweisung und des Streamens der 3D-Netzsegmente als räumliche Videos wiederholen (z.B. wie es als Schritt 728 gezeigt ist), wenn das räumliche Video abgespielt wird. Beispielsweise wenn der Nutzer innerhalb des räumlichen Videos interagiert (z.B. die Position ändert, Gegenstände greift oder berührt, usw.), werden diese Ansichtsbereichinformationen zurück zu dem adaptiven Ratenzuweisungssystem 104 übertragen, das kontinuierlich eine erneute Priorisierung der 3D-Netzsegmente und eine erneute Zuweisung von Bitraten für die 3D-Netzsegmente durchführt, um für den Nutzer eine optimale virtuelle Realität-Erfahrung bereitzustellen. Beispielsweise empfängt das adaptive Ratenzuweisungssystem 104 in einigen Beispielausführungsformen alle ein bis zwei Sekunden Ansichtsbereichaktualisierungen und stellt den aktualisierten virtuelle Realität-Inhalt für die virtuelle Realität-Anzeigevorrichtung 110 bereit, wie es vorstehend beschrieben worden ist.In addition, the adaptive rate allocation system 104 the method of receiving 720 of viewport information, of mapping 722 a priority to the 3D mesh segments, determining 724 repeating a bit rate assignment and streaming the 3D mesh segments as spatial videos (eg as step 728 is shown) when the spatial video is played. For example, if the user interacts within the spatial video (eg, changing position, touching or touching objects, etc.), that view area information will be returned to the adaptive rate allocation system 104 continuously re-prioritizing the 3D mesh segments and reassigning bit rates for the 3D mesh segments to provide the user with an optimal virtual reality experience. For example, the adaptive rate allocation system receives 104 in some example embodiments, every one to two seconds of view area updates and provides the updated virtual reality content for the virtual reality display device 110 ready as described above.

Zusätzlich können die hier beschriebenen Schritte und Aktionen in einer anderen Reihenfolge durchgeführt werden, können wiederholt oder parallel ausgeführt werden, oder sie können parallel mit verschiedenen Instanzen derselben oder ähnlicher Schritte oder Aktionen durchgeführt werden. Obwohl die 7 einen Schritt zeigt, in dem das adaptive Ratenzuweisungssystem 104 ein räumliches Video (d.h., Panoramavideo) in eine Kugel mit sechs Flächen (d.h., einen Raum mit sechs Flächen) mit einer Anzahl von 3D-Netzsegmenten räumlich aufteilt 714, teilt das adaptive Ratenzuweisungssystem 104 in einer oder mehreren Ausführungsform(en) beispielsweise das räumliche Video in einer Mehrzahl von Kacheln auf, wie es vorstehend beschrieben worden ist.In addition, the steps and actions described herein may be performed in a different order, may be performed repetitively or in parallel, or may be performed in parallel with different instances of the same or similar steps or actions. Although the 7 shows a step in which the adaptive rate allocation system 104 a spatial video (ie, panoramic video) in a sphere with six faces (ie, a six-face space) spatially partitioned 714 with a number of 3D mesh segments, shares the adaptive rate allocation system 104 in one or more embodiments, for example, the spatial video in a plurality of tiles, as described above.

Unter Bezugnahme auf die 8 werden nachstehend zusätzliche Details bezüglich Komponenten und des Leistungsvermögens einer Ausführungsform des adaptiven Ratenzuweisungssystems 104 bereitgestellt. Insbesondere zeigt die 8 eine Beispielausführungsform des adaptiven Ratenzuweisungssystems 104. Wie es gezeigt ist, arbeitet das adaptive Ratenzuweisungssystem 104 in der 8 auf einer oder mehreren Servervorrichtung(en) 102, wie z.B. der einen oder den mehreren Servervorrichtung(en), wie sie vorstehend im Zusammenhang mit der 1 beschrieben worden ist oder sind.With reference to the 8th In the following, additional details regarding components and performance of an embodiment of the adaptive rate allocation system will become apparent 104 provided. In particular, the shows 8th an example embodiment of the adaptive rate allocation system 104 , As shown, the adaptive rate allocation system works 104 in the 8th on one or more server device (s) 102 , such as the one or more server devices as described above in connection with FIG 1 has been described or are.

Das adaptive Ratenzuweisungssystem 104 umfasst, ist jedoch nicht beschränkt auf, eine Inhaltsverwaltung 802, eine Inhaltsaufteilungseinrichtung 804, eine Prioritätszuordnungseinrichtung 806, eine Ratenzuweisungseinrichtung 808, einen Inhaltsprovider 810 und eine Inhaltsdatenbank 812. Jede dieser Komponenten wird nachstehend detaillierter beschrieben.The adaptive rate allocation system 104 includes, but is not limited to, content management 802 , a content partitioning device 804 , a priority allocator 806 , a rate allocation facility 808 , a content provider 810 and a content database 812 , Each of these components will be described in more detail below.

Wie es vorstehend erwähnt worden und in der 8 gezeigt ist, umfasst das adaptive Ratenzuweisungssystem 104 eine Inhaltsverwaltung 802. Die Inhaltsverwaltung 802 kann Panoramavideos und einen anderen virtuelle Realität-Inhalt erhalten. Beispielsweise empfängt die Inhaltsverwaltung 802 ein oder mehrere virtuelle Realität-3D-Panoramavideo(s) von einem Inhaltsprovider als Dritten. In einigen Beispielausführungsformen kann die Inhaltsverwaltung 802 einen virtuelle Realität-Inhalt, der in ein Panoramavideo einbezogen ist, erzeugen, generieren oder modifizieren.As mentioned above and in the 8th is shown includes the adaptive rate allocation system 104 a content management 802 , The content management 802 can get panoramic videos and other virtual reality content. For example, content management receives 802 one or more virtual reality 3D panoramic video (s) by a content provider as a third party. In some example embodiments, content management 802 create, generate or modify a virtual reality content that is included in a panoramic video.

Darüber hinaus umfasst, wie es in der 8 gezeigt ist, das adaptive Ratenzuweisungssystem 104 auch eine Inhaltsaufteilungseinrichtung 804. Die Inhaltsaufteilungseinrichtung 804 teilt ein Panoramavideo in eine Mehrzahl von 3D-Netzsegmenten und/oder Kacheln auf. Beispielsweise erzeugt die Inhaltsaufteilungseinrichtung 804 Räume mit sechs Flächen (beispielsweise bildet sie eine Kugel mit sechs Flächen) für ein Panoramavideo (z.B. ein räumliches Video), wie es vorstehend beschrieben worden ist. Die Inhaltsaufteilungseinrichtung 804 kann verschiedene Verfahren und Techniken zum Aufteilen eines Panoramavideos in Segmente oder Kacheln nutzen, wie es vorstehend beschrieben worden ist.It also includes, as in the 8th shown is the adaptive rate allocation system 104 also a content partitioning device 804 , The content splitter 804 Split a panoramic video into a plurality of 3D mesh segments and / or tiles. For example, content divider 804 creates six-area spaces (eg, a six-space sphere) for a panoramic video (eg, a spatial video) as described above. The content splitter 804 can utilize various methods and techniques for splitting a panoramic video into segments or tiles, as described above.

Darüber hinaus umfasst, wie es in der 8 gezeigt ist, das adaptive Ratenzuweisungssystem 104 auch die Prioritätszuordnungseinrichtung 806. Die Prioritätszuordnungseinrichtung 806 ordnet im Allgemeinen jedem Segment oder jeder Kachel in einem Panoramavideo eine Priorität zu. Die Priorität basiert häufig auf Ansichtsbereichinformationen, die von einer Nutzer-Clientvorrichtung und/oder einer virtuelle Realität-Anzeige empfangen worden sind. Wie es hier detailliert beschrieben ist, ordnet die Prioritätszuordnungseinrichtung 806 Segmenten, die ein Nutzer betrachtet (z.B. innerhalb des Ansichtsbereichs) eine höhere Priorität zu, und Segmenten außerhalb des unmittelbaren Blicks des Nutzers eine niedrigere Priorität zu.It also includes, as in the 8th shown is the adaptive rate allocation system 104 also the priority assignment device 806 , The priority assignment device 806 generally assigns priority to each segment or tile in a panoramic video. The priority is often based on view area information received from a user client device and / or a virtual reality display. As described in detail herein, the priority allocator orders 806 Segments that a user views (such as within the view area) have a higher priority, and segments have a lower priority outside the immediate view of the user.

Wie es in der 8 gezeigt ist, umfasst das adaptive Ratenzuweisungssystem 104 auch die Ratenzuweisungseinrichtung 808. Im Allgemeinen bestimmt die Ratenzuweisungseinrichtung 808, auf welchem Qualitätsniveau (z.B. Auflösung) und mit welchen Bitraten jedes Segment gestreamt werden soll. Insbesondere wägt die Ratenzuweisungseinrichtung 808 die verfügbare Bandbreite in einem Bandbreitenbudget mit Bitratenanforderungen und -beschränkungen ab. Auf diese Weise maximiert die Ratenzuweisungseinrichtung 808 die Videoqualität, während die Bandbreiteneffizienz maximiert wird, wobei die höchstmögliche Videoqualität bereitgestellt wird. Zusätzlich Details bezüglich der Bestimmung von Ratenzuweisungen sind vorstehend angegeben.As it is in the 8th is shown includes the adaptive rate allocation system 104 also the rate allocation facility 808 , In general, the rate allocation device determines 808 at which quality level (eg resolution) and with which bitrates each segment should be streamed. In particular, the rate allocation facility weighs 808 the available bandwidth in a bandwidth budget with bitrate requests and constraints. In this way, the rate allocator maximizes 808 the video quality while maximizing bandwidth efficiency while providing the highest possible video quality. Additional details regarding the determination of rate assignments are given above.

Wie es in der 8 gezeigt ist, umfasst das adaptive Ratenzuweisungssystem 104 auch den Inhaltsprovider 810. Der Inhaltsprovider 810 stellt im Allgemeinen die zugewiesenen Segmente für eine oder mehrere Clientvorrichtung(en) mit einer virtuelle Realität-Anzeige bereit. Beispielsweise streamt der Inhaltsprovider 810 parallel oder seriell jedes Segment eines Panoramavideos bei der zugewiesenen Bitrate. Eine zusätzliche Beschreibung bezüglich der bereitgestellten zugewiesenen Segmente ist vorstehend angegeben.As it is in the 8th is shown includes the adaptive rate allocation system 104 also the content provider 810 , The content provider 810 generally provides the assigned segments for one or more client devices with virtual reality display. For example, the content provider streams 810 parallel or serial each segment of a panorama video at the assigned bit rate. An additional description regarding the allocated allocated segments is given above.

In einigen Beispielausführungsformen streamt der Inhaltsprovider 810 ein Panoramavideo zu einer Clientvorrichtung, das mittels MPEG-DASH SRD (Dynamischadaptives Streaming über HTTP (DASH) Räumliche Beziehungsbeschreibung (SRD)) kodiert und gepackt worden ist, was bei der Beschreibung der räumlichen Beziehung der 3D-Netzsegmente und/oder Kacheln in dem virtuelle Realität-Raum unterstützt. DASH, das insbesondere auch als MPEG-DASH gekannt ist, ist ein ISO-Standard, der ein adaptives Bitratenstreaming zu einer Clientvorrichtung auf der Basis von beschränkten Resourcen ermöglicht, wie z.B. des Ausmaßes der Bandbreite, die bei dem Client zur Verfügung steht (z.B. das Bandbreitenbudget). Der Multimediainhalt ist auf einem HTTP-Server bereitgestellt und von einer „Media Presentation Description (MPD)“ als Verzeichnis der verfügbaren Segmente, deren verschiedenen Bitratenalternativen, deren URL-Addressen und anderen Eigenschaften begleitet.In some example embodiments, the content provider streams 810 a panoramic video to a client device that has been encoded and packaged using MPEG-DASH SRD (Dynamic Adaptive Streaming over HTTP (DASH) Spatial Relationship Description (SRD)), as described in describing the spatial relationship of the 3D mesh segments and / or tiles in the virtual Reality space supported. DASH, also known as MPEG-DASH, is an ISO standard that provides adaptive bitrate streaming to a client device based on limited resources, such as the amount of bandwidth available to the client (eg, the bandwidth budget). The multimedia content is provided on an HTTP server and accompanied by a "Media Presentation Description (MPD)" as a directory of available segments, their different bit rate alternatives, their URL addresses, and other properties.

Ferner umfasst, wie es in der 8 gezeigt ist, das adaptive Ratenzuweisungssystem 104 auch die Inhaltsdatenbank 812. Die Inhaltsdatenbank 812 speichert die empfangenen Panoramavideos und/oder Kopien von Panoramavideos auf verschiedenen Qualitätsniveaus. Darüber hinaus kann die Inhaltsdatenbank 812 aufgeteilte Segmente und/oder Kacheln auf verschiedenen Qualitätsniveaus speichern, die zu einer Nutzer-Clientvorrichtung gestreamt werden sollen.Further includes, as in the 8th shown is the adaptive rate allocation system 104 also the content database 812 , The content database 812 Saves the received panorama videos and / or copies of panorama videos at different quality levels. In addition, the content database can 812 storing split segments and / or tiles at different quality levels to be streamed to a user client device.

Jede der Komponenten 802 bis 812 des adaptiven Ratenzuweisungssystems 104 (wie es in der 8 gezeigt ist) kann Software, Hardware oder beides umfassen. Beispielsweise können die Komponenten 802 bis 812 eine oder mehrere Anweisung(en) umfassen, die auf einem computerlesbaren Speichermedium gespeichert ist oder sind und auf einer oder mehreren Rechenvorrichtung(en), wie z.B. einer Clientvorrichtung oder einer Servervorrichtung, ausgeführt werden kann oder können. Wenn sie durch den einen oder die mehreren Prozessor(en) ausgeführt wird oder werden, können die computerausführbaren Anweisungen des adaptiven Ratenzuweisungssystems 104 bewirken, dass die Rechenvorrichtung(en) die hier beschriebenen Merkmalslernverfahren durchführt. Alternativ können die Komponenten 802 bis 812 Hardware umfassen, wie z.B. eine spezielle Verarbeitungsvorrichtung zur Durchführung einer bestimmten Funktion oder Gruppe von Funktionen. Alternativ können die Komponenten 802 bis 812 des adaptiven Ratenzuweisungssystems 104 eine Kombination von computerausführbaren Anweisungen und Hardware umfassen.Each of the components 802 to 812 the adaptive rate allocation system 104 (as it is in the 8th shown) may include software, hardware or both. For example, the components 802 to 812 include one or more instructions stored on a computer-readable storage medium and executable on one or more computing devices, such as a client device or a server device. When executed by the one or more processors, the computer-executable instructions of the adaptive rate allocation system may 104 cause the computing device (s) to perform the feature learning procedures described herein. Alternatively, the components can 802 to 812 Hardware such as a special processing device for performing a particular function or group of functions. Alternatively, the components can 802 to 812 the adaptive rate allocation system 104 a combination of computer-executable instructions and hardware.

Ferner können die Komponenten 802 bis 812 z.B. als ein oder mehrere Betriebssystem(e), als eine oder mehrere eigenständige Anwendung(en), als ein oder mehrere Modul(e) einer Anwendung, als ein oder mehrere Plugin(s), als eine oder mehrere Bibliotheksfunktion(en) oder Funktionen, die durch andere Anwendungen aufgerufen werden können, und/oder als Cloudcomputingmodell implementiert werden. Folglich können die Komponenten 802 bis 812 als eigenständige Anwendung, wie z.B. als Desktopanwendung oder mobile Anwendung, implementiert werden. Ferner können die Komponenten 802 bis 812 als eine oder mehrere webbasierte Anwendung(en) implementiert werden, die auf einem Remoteserver installiert ist oder sind. Die Komponenten 802 bis 812 können auch in einem Bündel von mobilen Vorrichtungsanwendungen oder „Apps“ implementiert werden. Zur Veranschaulichung können die Komponenten 802 bis 812 in einer Anwendung implementiert werden, einschließlich, aber nicht beschränkt auf, ADOBE PRIMETIME-Software. „ADOBE“ und „PRIMETIME “ sind entweder eingetragene Marken oder Marken von Adobe Systems Incorporated in den Vereinigten Staaten und/oder anderen Ländern.Furthermore, the components can 802 to 812 for example, as one or more operating systems, as one or more standalone application (s), as one or more modules of an application, as one or more plugins, as one or more library function (s) or functions that can be invoked by other applications and / or implemented as a cloud computing model. Consequently, the components can 802 to 812 as a stand-alone application, such as a desktop application or mobile application. Furthermore, the components can 802 to 812 be implemented as one or more web-based application (s) installed on a remote server. The components 802 to 812 can also be implemented in a bundle of mobile device applications or "apps". By way of illustration, the components may be 802 to 812 to be implemented in an application, including, but not limited to, ADOBE PRIMETIME software. "ADOBE" and "PRIMETIME" are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States and / or other countries.

Zur Bewertung der Effektivität von einer oder mehreren Ausführungsform(en) nutzten die Bewerter ein Samsung Gear VR HMD, an welches das Samsung Galaxy S7 Smartphone mit 4GB RAM und Android Marshmallow 6.0.1 als virtuelle Realität-Zielanzeigevorrichtung angebracht war. Die Bewerter nutzten eine Oculus Mobile SDK 1.0.3-Verbindung mit Android SDK API 24 zur Entwicklung eines 360 VR-Videostreaming-Anwendungsprototyps auf der Basis von MPEG-DASH SRD, und nutzten diesen zum Anwenden von Anpassungen und zum Durchführen von Experimenten.To evaluate the effectiveness of one or more embodiment (s), the evaluators used a Samsung Gear VR HMD to which the Samsung Galaxy S7 smartphone with 4GB RAM and Android Marshmallow 6.0.1 was installed as a virtual reality target display device. The evaluators used an Oculus Mobile SDK 1.0.3 connection with the Android SDK API 24 to develop a 360 VR video streaming application prototype based on MPEG-DASH SRD and use it to apply customization and experimentation.

Die virtuelle Realität-Zielanzeigevorrichtung stellt eine Gesamtauflösung von 2560 × 1440 (1280 x 1440 pro Auge) mit einer maximalen Framerate von 60 FPS und einem horizontalen FoV (Sichtfeld) von 96 Grad bereit. Die Bewerter stellten das vertikale FoV des 360 VR-Videoprototyps auf 90 Grad ein. Die Bewerter erstellten fünf verschiedene 360 quasi rechteckig formatierter Probevideos als Testsequenzen zum Anwenden verschiedener Ausführungsformen öffentlich zu Verfügung. Insbesondere wiesen die fünf Probevideos die folgenden Spezifikationen auf: Probe 1: 3840 × 1920 Auflösung, 20,0 Mbps ursprüngliche Bitrate, und 30 Hz FPS; Probe 2: 3840 × 1920 Auflösung, 13,1 Mbps ursprüngliche Bitrate, und 30 Hz FPS; Probe 3: 1920 × 690 Auflösung, 4,4 Mbps ursprüngliche Bitrate, und 30 Hz FPS; Probe 4: 3840 × 2160 Auflösung, 13,0 Mbps ursprüngliche Bitrate, und 24 Hz FPS; und Probe 5: 4096 × 2048 Auflösung, 12,6 Mbps ursprüngliche Bitrate, und 24 Hz FPS.The virtual reality target display device provides a total resolution of 2560 × 1440 ( 1280 x 1440 per eye) with a maximum frame rate of 60 FPS and a horizontal FoV (field of view) of 96 degrees. The evaluators set the vertical VRV of the 360 VR video prototype to 90 degrees. The evaluators created five different 360 quasi-rectangular formatted sample videos as test sequences for applying various embodiments publicly available. In particular, the five sample videos had the following specifications: Sample 1 : 3840 × 1920 resolution, 20.0 Mbps original bitrate, and 30 Hz FPS; sample 2 : 3840 × 1920 resolution, 13.1 Mbps original bitrate, and 30 Hz FPS; sample 3 : 1920 × 690 resolution, 4.4 Mbps original bitrate, and 30 Hz FPS; sample 4 : 3840 × 2160 resolution, 13.0 Mbps original bit rate, and 24 Hz FPS; and sample 5 : 4096 × 2048 resolution, 12.6 Mbps original bitrate, and 24 Hz FPS.

Um von den Merkmalen des MPEG-DASH SRD-basierten Streamens zu profitieren und zum Texturieren des Kugelnetzes mit sechs Flächen haben die Bewerter das Video räumlich geschnitten und 6 verschiedene Kacheln bezogen auf eine Geometrie der Kugel mit sechs Flächen erzeugt. Die Bewerter haben alle Videosegmente mit einem H.264 AVC-Kodierer in L = 4 verschiedene Darstellungen unter Verwendung einer hierarchischen Auflösungsverminderung kodiert, wobei die ursprünglichen Auflösungen polynomisch mit jedem Schritt vermindert wurden, wie es in der 6 gezeigt ist. Unter der Annahme von R w(тREP i ) ist die Auflösungsbreite eines spezifischen Videos (und entsprechend ist die Auflösungshöhe Rh(тREP i)) einer spezifischen Videokachel т für die Darstellung i, dann: R ( т REP i ) = R ( т REP 1 ) ( 4 ( i 1 ) ) 4 .

Figure DE102017009121A1_0013
To capitalize on the features of the MPEG-DASH SRD-based streaming and texture the six-surface mesh, the reviewers spatially cut the video and created six different tiles based on a six-sphere sphere geometry. The evaluators encoded all video segments with a H.264 AVC coder in L = 4 different representations using hierarchical resolution reduction, the original resolutions being polynomial with every step has been diminished, as in the 6 is shown. Assuming R w (τREP i), the resolution width of a specific video (and correspondingly, the resolution height Rh (τREP i)) of a specific video tile is τ for representation i, then: R ( т REP i ) = R ( т REP 1 ) * ( 4 - ( i - 1 ) ) 4 ,
Figure DE102017009121A1_0013

Die Bewerter nutzten einen Dell XPS 8900 x64-basierten PC mit Microsoft Windows 7 Professional Version 6.1.7601 OS als HTTP-basierten Streamingserver und nutzten MPEG-DASH SRD zum Beschreiben der Kachelbildung („Tiling“). Zur quantitativen Qualitätsmessung ist die Qualität einer 360 VR-Videositzung eine Funktion von Bitraten für alle Kacheln (wobei die maximale Qualität der maximalen Auflösung für alle übertragenen Kacheln entspricht). Dieser Ansatz ist allgemein und unabhängig von dem Qualitätsmaß. In dieser anfänglichen Untersuchung haben die Bewerter die durchschnittliche Bitrate verwendet. Die Bewerter haben verschiedene Sätze von Auflösungen für verschiedene Kacheln verwendet, um experimentell zu ermitteln, wie priorisierte Anpassungen die durchschnittliche Bitrate und die wahrgenommene Qualität beeinflussen.The evaluators used a Dell XPS 8900 x64-based PC running Microsoft Windows 7 Professional version 6.1.7601 OS as an HTTP-based streaming server and using MPEG-DASH SRD to describe tiling. For quantitative quality measurement, the quality of a 360 VR video session is a function of bit rates for all tiles (where the maximum quality corresponds to the maximum resolution for all transferred tiles). This approach is general and independent of the quality measure. In this initial study, the evaluators used the average bit rate. Evaluators have used different sets of resolutions for different tiles to experimentally determine how prioritized adjustments affect the average bit rate and perceived quality.

Die Bewerter haben eine Statistik für die durchschnittliche Bitrate erstellt und die Ergebnisse mit den gegenwärtigen Praktiken 360 VR-Videospielgeräten verglichen, bei denen kein kachelbasierter Ansatz eingesetzt wird. Jeder Versuch wurde für insgesamt 30 Sekunden durchgeführt und während jedes Versuchs befindet sich jede Kachel für 5 Sekunden innerhalb des Ansichtsbereichs des Nutzers. Die Bewerter haben die Bandbreitennutzung als durchschnittliche Bitrate gemessen, wenn die maximale Auflösung für Kacheln innerhalb eines unmittelbaren FoV zugeordnet wird, und bezüglich zwei verschiedenen niedrigeren Auflösungen, eine mit der niedrigsten Auflösung (REP 1) und eine andere mit der zweithöchsten Auflösung (REP3), die den peripheren Kacheln zugewiesen worden ist.The evaluators have created a statistic for the average bitrate and the results with current practices 360 VR video game machines that do not use a tile-based approach. Each trial was run for a total of 30 seconds, and during each attempt, each tile is within the user's viewport for 5 seconds. The evaluators measured the bandwidth usage as the average bit rate when assigning the maximum resolution for tiles within an immediate FoV, and for two different lower resolutions, one with the lowest resolution (REP 1 ) and another with the second highest resolution (REP3) assigned to the peripheral tiles.

Als Basisfall wird keine Anpassung vorgenommen, das 360 VR-Video ist mit Kacheln versehen, es liegt kein Bewußtsein für den Ansichtsbereich vor und alle Kacheln werden mit der höchsten Darstellung (REP 1) gestreamt. Für die Probe 1 nutzt REP427,7 % des Basisfalls und REP 2 nutzt 74,1% des Basisfalls. Für die Probe 2 nutzt REP 4 27,8 % des Basisfalls und REP 2 nutzt 62,9 % des Basisfalls. Für die Probe 3 nutzt REP 4 von 32,6 % des Basisfalls und REP 2 nutzt 72,0 % des Basisfalls. Für die Probe 4 nutzt REP4 30,1 % des Basisfalls und REP 2 nutzt 74,4 % des Basisfalls. Für die Probe 5 nutzt REP445,3 % des Basisfalls und REP 2 nutzt 75,6 % des Basisfalls. Folglich können Ausführungsformen verglichen mit dem Basisfall eine Bandbreitennutzung bis zu 72 % signifikant einsparen.As a base case, no adjustment is made, the 360 VR video is tiled, there is no awareness of the viewport, and all tiles are rendered with the highest representation (REP 1 ) streamed. For the sample 1 uses REP427.7% of the base case and REP 2 uses 74.1% of the base case. For the sample 2 uses REP 4 27.8% of the base case and REP 2 uses 62.9% of the base case. For the sample 3 uses REP 4 of 32.6% of the base case and REP 2 uses 72.0% of the base case. For the sample 4 REP4 uses 30.1% of the base case and REP 2 uses 74.4% of the base case. For the sample 5 uses REP445.3% of the base case and REP 2 uses 75.6% of the base case. Thus, compared to the base case, embodiments can significantly save bandwidth usage up to 72%.

Ferner führte selbst die niedrigste Darstellung auf den peripheren Kacheln, die nicht unmittelbar im Ansichtsbereich vorlagen, zu geringfügigen visuellen Veränderungen von der Nutzerperspektive aus und diese waren manchmal nicht einmal wahrnehmbar, wobei sie gleichzeitig die ursprüngliche Qualität für den Hauptansichtsbereich bewahrt, so dass eine zufriedenstellende Nutzererfahrung sichergestelllt ist. Der Kachelansatz kann ferner die Gesamtqualität von 360 VR-Videos erhöhen, wobei nahezu eine 360 Grad-Videogesamtauflösung von 8K und höher in dem 360 Grad-Raum ermöglicht wird. Dies ermöglicht das Streamen von Kacheln innerhalb des Ansichtsbereichs selbst bei noch höheren Auflösungen bei oder in der Nähe der nativen Auflösung von HMD, was vorher aufgrund der beschränkten Hardwareresourcen, die einen einzigen umfangreichen Videoinhalt verarbeiten, nicht möglich war.Furthermore, even the lowest representation on the peripheral tiles, which were not directly in the viewing area, resulted in minor visual changes from the user perspective and sometimes were not even noticeable, while preserving the original quality for the main viewing area, thus providing a satisfactory user experience is sichergestelllt. The tiling approach can also increase the overall quality of 360 VR videos, allowing for nearly 360 degrees total video resolution of 8K and higher in the 360 degree space. This enables streaming of tiles within the viewing area even at even higher resolutions at or near the native resolution of HMD, which previously was not possible due to the limited hardware resources processing a single large video content.

Die 1 bis 8, der entsprechende Text und die Beispiele stellen eine Anzahl von verschiedenen Systemen und Vorrichtungen zum Streamen eines virtuelle Realität-Inhalts bereit. Zusätzlich zu dem Vorstehenden können Ausführungsformen auch als Flussdiagramme beschrieben werden, die Vorgänge und Schritte in einem Verfahren zum Erreichen eines bestimmten Ergebnisses umfassen. Beispielsweise zeigt die 9 ein Flussdiagramm eines beispielhaften Verfahrens gemäß einer oder mehreren Ausführungsform(en). Das in Bezug auf die 9 beschriebene Verfahren kann mit weniger oder mehr Aktionen durchgeführt werden oder die Aktionen können in anderen Reihenfolgen durchgeführt werden. Zusätzlich können die hier beschriebenen aktionen parallel zueinander wiederholt oder durchgeführt werden oder parallel mit verschiedenen Instanzen derselben oder ähnlichen Aktionen.The 1 to 8th , the related text and examples provide a number of different systems and apparatus for streaming virtual reality content. In addition to the foregoing, embodiments may also be described as flowcharts that include acts and steps in a method to achieve a particular result. For example, the shows 9 a flow chart of an example method according to one or more embodiments. That in terms of 9 described method may be performed with fewer or more actions or the actions may be performed in other orders. In addition, the actions described herein may be repeated or performed in parallel with each other, or in parallel with different instances of the same or similar actions.

Die 9 zeigt ein Flussdiagramm einer Reihe von Vorgängen in einem Verfahren 900 zum Bereitstellen eines Bandbreiten-effizienten virtuelle Realität-Videos gemäß einer oder mehreren Ausführungsform(en). In einer oder mehreren Ausführungsform(en) wird das Verfahren 900 in einer digitalen Medienumgebung durchgeführt, die das adaptive Ratenzuweisungssystem 104 umfasst, wie z.B. einer digitalen Medienumgebung zum Bereitstellen einer immersiven bzw. eindringlichen virtuelle Realität-Erfahrung. Das Verfahren 900 soll ein oder mehrere Verfahrens gemäß der vorliegenden Offenbarung veranschaulichen und soll potenzielle Ausführungsformen nicht beschränken. Alternative Ausführungsformen können zusätzliche, weniger oder verschiedene Vorgänge als diejenigen umfassen, die in der 9 gezeigt sind.The 9 FIG. 12 shows a flowchart of a series of operations in a method 900 for providing bandwidth-efficient virtual reality video according to one or more embodiments. In one or more embodiments, the method becomes 900 performed in a digital media environment using the adaptive rate allocation system 104 such as a digital media environment for providing an immersive virtual reality experience. The method 900 is intended to illustrate and illustrate one or more methods in accordance with the present disclosure do not limit potential embodiments. Alternative embodiments may include additional, fewer, or different processes than those described in the 9 are shown.

Wie es in der 9 gezeigt ist, umfasst das Verfahren 900 einen Vorgang 910 des Aufteilens eines Panoramavideos in Kacheln. Insbesondere kann der Vorgang 910 das Aufteilen eines Panoramavideos in eine Mehrzahl von Kacheln 310a-c umfassen. Beispielsweise kann der Vorgang 910 das Einsetzen einer räumlichen Beziehungsbeschreibung zum Aufteilen des Panoramavideos in eine Mehrzahl von Kacheln umfassen. In einigen Beispielausführungsformen umfasst das Panoramavideo ein räumliches Video oder ein 360-Grad-Video. In diesen Ausführungsformen werden die Kacheln zur Bildung eines 360-Grad-Sichtfelds kombiniert. In anderen Ausführungsformen umfasst das Panoramavideo weniger als ein 360-Grad-Sichtfeld. In mehreren Beispielausführungsformen ist das Panoramavideo ein Stereovideo, das zwei entsprechenden Videostreams umfasst. In einer oder mehreren Ausführungsform(en) umfasst der Vorgang 910 das Erzeugen von einer oder mehreren oberen Kachel(n), einer oder mehreren unteren Kachel(n) und einer Mehrzahl von mittleren Körperkacheln.As it is in the 9 is shown, the method comprises 900 a process 910 splitting a panorama video into tiles. In particular, the process can 910 splitting a panoramic video into a plurality of tiles 310a-c include. For example, the process can 910 include using a spatial relationship description to divide the panoramic video into a plurality of tiles. In some example embodiments, the panoramic video includes a spatial video or a 360-degree video. In these embodiments, the tiles are combined to form a 360 degree field of view. In other embodiments, the panoramic video includes less than a 360 degree field of view. In several example embodiments, the panoramic video is a stereo video that includes two corresponding video streams. In one or more embodiments, the process includes 910 creating one or more top tiles, one or more bottom tiles, and a plurality of center body tiles.

Wie bei dem Vorgang 910 werden in einigen Beispielausführungsformen 3D-Netzsegmente durch Ausführen eines Schritts zum räumlichen Aufteilen des Panoramavideos in dreidimensionale (3D) Räume mit sechs Flächen erzeugt. In diesen Ausführungsformen umfasst der Schritt die Vorgänge des Aufteilens des Panoramavideos in eine Mehrzahl von vertikalen Stacks und einer Mehrzahl von horizontalen Slices und des Aufteilens des Panoramavideos auf der Basis von einem oder mehreren Stacks und/oder Slices in eine Mehrzahl von 3D-Netze.As with the process 910 are used in some example embodiments 3D Network segments by performing a step of spatially dividing the panoramic video into three-dimensional ( 3D ) Creates spaces with six surfaces. In these embodiments, the step includes the operations of dividing the panoramic video into a plurality of vertical stacks and a plurality of horizontal slices and dividing the panoramic video based on one or more stacks and / or slices into a plurality of 3D meshes.

Darüber hinaus umfasst, wie es in der 9 gezeigt ist, das Verfahren 900 einen Vorgang 920 des Empfangens von Ansichtsbereichinformationen. Insbesondere kann der Vorgang 920 das Empfangen von Ansichtsbereichinformationen von einer Clientvorrichtung umfassen. Der Vorgang 920 kann einen Ansichtsbereich von den Ansichtsbereichinformationen angeben und kann auch Positionsdaten umfassen, welche die Position des Ansichtsbereichs (z.B. das Sichtfeld) innerhalb des Panoramavideos angeben. Ferner kann das Verfahren 900 einen Vorgang des Identifizierens von einer oder mehreren Kachel(n) der Mehrzahl von Kacheln umfassen, die mit dem Ansichtsbereich überlappen, und von einer oder mehreren Kachel(n) der Mehrzahl von Kacheln, die an den Ansichtsbereich angrenzen.It also includes, as in the 9 shown is the procedure 900 a process 920 Receiving view area information. In particular, the process can 920 receiving view area information from a client device. The process 920 may specify a view area of the view area information, and may also include position data indicating the position of the view area (eg, the field of view) within the panorama video. Furthermore, the method can 900 a process of identifying one or more tiles of the plurality of tiles that overlap the view area and one or more tiles of the plurality of tiles that are adjacent to the viewing area.

Darüber hinaus umfasst das Verfahren 900 auch einen Vorgang 930 des Zuordnens von Prioritäten zu jeder Kachel. Insbesondere kann der Vorgang 930 das Zuordnen, auf der Basis der Ansichtsbereichinformationen, von Prioritäten zu jeder Kachel der Mehrzahl von Kacheln 506 umfassen. In einigen Beispielausführungsformen umfasst der Vorgang 930 auch das Zuordnen eines höchstens Prioritätsniveaus zu der einen oder den mehreren Kachel(n), die mit dem Ansichtsbereich überlappt oder überlappen, das Zuordnen eines nächsthöheren Prioritätsniveaus zu der einen oder den mehreren Kachel(n), die an den Ansichtsbereich angrenzt oder angrenzen, und das Zuordnen eines niedrigeren Prioritätsniveaus zu einer restlichen der einen oder der mehreren Kachel(n) der Mehrzahl von Kacheln. In einer oder mehreren Ausführungsform(en) umfasst der Vorgang 930 das Zuordnen, auf der Basis des Ansichtsbereichs, von Prioritäten zu jeder Kachel der Mehrzahl von Kacheln durch Bestimmen einer Korrelation zwischen der gegenwärtigen Position jeder Kachel innerhalb des Panoramavideos und dem gegenwärtigen Ansichtsbereich.In addition, the procedure includes 900 also a process 930 assigning priorities to each tile. In particular, the process can 930 assigning, on the basis of the view area information, priorities to each tile of the plurality of tiles 506 include. In some example embodiments, the process includes 930 also assigning a maximum priority level to the one or more tiles that overlap or overlap the view area, assigning a next higher priority level to the one or more tiles adjacent to or adjoining the view area, and assigning a lower priority level to a remainder of the one or more tiles of the plurality of tiles. In one or more embodiments, the process includes 930 assigning, based on the view area, priorities to each tile of the plurality of tiles by determining a correlation between the current location of each tile within the panoramic video and the current viewing area.

Darüber hinaus umfasst, wie es in der 9 gezeigt ist, das Verfahren 900 einen Vorgang 940 des Bestimmens einer Rate für jede Kachel. Insbesondere kann der Vorgang 940 das Bestimmen, für jede Kachel, einer Bitrate umfassen, die der zugeordneten Priorität der Kachel entspricht. In einer oder mehreren Ausführungsform(en) kann der Vorgang 940 das Zuweisen von Bitraten zu Prioritätsniveaus von Kacheln unter Verwendung eines Multiplechoice-Knapsack- bzw. Rucksack-Problemalgorithmus umfassen. Beispielsweise kann der Vorgang 940 das Bestimmen einer minimalen Bitrate zum Streamen der Mehrzahl von Kacheln zu der Clientvorrichtung umfassen, wobei die minimale Bitrate einer niedrigsten akzeptablen Qualität des Panoramavideos entspricht, und wobei das Streamen der Mehrzahl von Kacheln zu der Clientvorrichtung bei der minimalen Bitrate nicht eine Bandbreitengrenze übersteigt. In einigen Beispielausführungsformen umfasst der Vorgang 940 das Bestimmen von einer oder mehreren höheren Bitrate(n) zum Streamen der Mehrzahl von Kacheln zu der Clientvorrichtung, wobei die eine oder die mehreren höheren Bitrate(n) einem oder mehreren höheren Qualitätsniveau(s) des Panoramavideos entspricht oder entsprechen.It also includes, as in the 9 shown is the procedure 900 a process 940 determining a rate for each tile. In particular, the process can 940 determining, for each tile, a bit rate that corresponds to the assigned priority of the tile. In one or more embodiments, the process may 940 include assigning bit rates to tile priority levels using a multiple-choice knapsack problem algorithm. For example, the process can 940 determining the minimum bit rate for streaming the plurality of tiles to the client device, wherein the minimum bit rate corresponds to a lowest acceptable quality of the panoramic video, and wherein streaming the plurality of tiles to the client device at the minimum bit rate does not exceed a bandwidth limit. In some example embodiments, the process includes 940 determining one or more higher bit rates for streaming the plurality of tiles to the client device, wherein the one or more higher bit rates correspond or correspond to one or more higher quality levels of the panoramic video.

In einer oder mehreren Ausführungsform(en) umfasst das Bestimmen der Bitrate, die der zugeordneten Priorität jeder Kachel entspricht, das Bestimmen eines ersten restlichen Bandbreitenausmaßes durch Subtrahieren der minimalen Bitrate für die Mehrzahl von Kacheln von der Bandbreitengrenze (d.h., dem Bandbreitenbudget), und das Bestimmen, dass das erste restliche Bandbreitenausmaß das Streamen von einer oder mehreren Kachel(n) mit höchster Priorität der Mehrzahl von Kacheln bei der höchsten Bitrate der höheren Bitraten ermöglicht. In zusätzlichen Ausführungsformen umfasst das Bestimmen der Bitrate, die der zugeordneten Priorität jeder Kachel entspricht, das Bestimmen eines zweiten restlichen Bandbreitenausmaßes durch Subtrahieren der höchsten Bitrate für das Streamen der einen oder der mehreren Kachel(n) mit höchster Priorität von dem ersten restlichen Bandbreitenausmaß, und das Bestimmen, dass das zweite restliche Bandbreitenausmaß das Streamen von einer oder mehreren Kachel(n) mit der nächsthöheren Priorität der Mehrzahl von Kacheln bei der nächsthöheren Bitrate der höheren Bitraten ermöglicht, wobei die nächsthöhere Bitrate unterhalb der höchsten Bitrate und oberhalb der minimalen Bitrate vorliegt.In one or more embodiments, determining the bit rate corresponding to the assigned priority of each tile comprises determining a first remaining bandwidth amount by subtracting the minimum bit rate for the plurality of tiles from the bandwidth limit (ie, the bandwidth budget) Determining that the first remaining bandwidth extent is the streaming of one or more allows multiple highest priority tile (s) of the plurality of tiles at the highest bitrate of the higher bitrates. In additional embodiments, determining the bit rate corresponding to the assigned priority of each tile comprises determining a second remaining bandwidth amount by subtracting the highest bit rate for streaming the one or more highest priority tile (s) from the first remaining bandwidth extent, and determining that the second remaining bandwidth extent allows for streaming one or more next highest priority tile (s) of the plurality of tiles at the next higher bit rate of the higher bit rates, the next higher bit rate being below the highest bit rate and above the minimum bit rate.

In einigen Ausführungsformen wird eine Bitrate durch Durchführen eines Schritts zum Bestimmen einer Bitratenzuweisung für jedes 3D-Netzsegment auf der Basis der zugeordneten Priorität von jedem 3D-Netzsegment 3D-Netzsegmenten zugewiesen. Beispielsweise umfasst der Schritt das Bestimmen einer minimalen Bitrate zum Streamen der Mehrzahl von 3D-Netzen zu der Clientvorrichtung, wobei die minimal akzeptable Bitrate einer niedrigsten akzeptablen Qualität des Panoramavideos entspricht, und wobei das Streamen der 3D-Netzsegmente zu der Clientvorrichtung bei der minimalen Bitrate nicht eine Bandbreitengrenze übersteigt; das Bestimmen eines restlichen Bandbreitenausmaßes durch Subtrahieren der minimalen Bitrate für die 3D-Netzsegmente von der Bandbreitengrenze; und das Bestimmen, dass das restliche Bandbreitenausmaß das Streamen von einem oder mehreren Netzsegment(en), dem oder denen eine höchste Priorität zugeordnet ist oder sind, bei einer höchsten Bitrate ermöglicht.In some embodiments, a bit rate is assigned by performing a step of determining bit rate allocation for each 3D network segment based on the assigned priority of each 3D network segment of 3D network segments. For example, the step includes determining a minimum bit rate for streaming the plurality of 3D networks to the client device, wherein the minimum acceptable bit rate corresponds to a lowest acceptable quality of the panoramic video, and wherein the streaming of the 3D network segments to the client device at the minimum bit rate is not exceeds a bandwidth limit; determining a remaining bandwidth amount by subtracting the minimum bit rate for the 3D network segments from the bandwidth limit; and determining that the remaining bandwidth extent enables streaming of one or more network segments that are or are assigned a highest priority at a highest bit rate.

In einer oder mehreren Ausführungsform(en) umfasst der Vorgang 940 das interative Bestimmen einer höchsten verfügbaren Bitrate zum Streamen jeder Kachel der Mehrzahl von Kacheln auf der Basis einer Einstufung der zugeordneten Priorität jeder Kachel und eines Ausmaßes der restlichen verfügbaren Bandbreite, so dass jedwede restliche Bandbreite minimiert wird, und wobei jede Kachel der Mehrzahl von Kacheln mindestens mit der minimalen Bitrate gestreamt wird. In einigen Beispielausführungsformen werden Kacheln mit derselben Priorität mit derselben Bitrate gestreamt. Alternativ werden Kacheln mit derselben Priorität bei verschiedenen Bitraten gestreamt. In wenigen Ausführungsformen umfasst das Bestimmen, für jede Kachel, einer Bitrate, die der zugeordneten Kachel entspricht, dass Kacheln mit einer höheren Priorität eine höhere Bitrate zugewiesen wird und Kacheln mit einer niedrigeren Bitrate eine niedrigere Bitrate zugewiesen wird.In one or more embodiments, the process includes 940 interactively determining a highest available bit rate to stream each tile of the plurality of tiles based on a ranking of the assigned priority of each tile and a level of the remaining available bandwidth such that any remaining bandwidth is minimized, and wherein each tile of the plurality of tiles is at least is streamed at the minimum bitrate. In some example embodiments, tiles of the same priority are streamed at the same bit rate. Alternatively, tiles of the same priority are streamed at different bitrates. In a few embodiments, determining for each tile, a bit rate corresponding to the associated tile, that higher priority tiles are assigned a higher bit rate and lower bit rate tiles are assigned a lower bit rate.

Wie es in der 9 gezeigt ist, umfasst das Verfahren 900 auch einen Vorgang 950 des Streamens jeder Kachel zu der Clientvorrichtung. Insbesondere kann der Vorgang 950 das Streamen jeder Kachel zu der Clientvorrichtung 108 unter Verwendung der entsprechenden bestimmten Bitrate umfassen. In einigen Beispielausführungsformen umfasst der Vorgang 950 das parallele Streamen der Kacheln mittels eines Multithreading, so dass mit dem Streamen aller Kacheln und/oder mit dem Abspielen aller Kacheln auf der Clientvorrichtung 108 gleichzeitig begonnen wird. Ferner umfasst die Clientvorrichtung 108 in einer oder mehreren Ausführungsform(en) eine virtuelle Realität-Anzeigevorrichtung 110, wie z.B. eine drahtlose virtuelle Realität-Anzeige.As it is in the 9 is shown, the method comprises 900 also a process 950 streaming each tile to the client device. In particular, the process can 950 streaming each tile to the client device 108 using the appropriate particular bit rate. In some example embodiments, the process includes 950 the parallel streaming of the tiles by means of a multi-threading, so that with the streaming of all tiles and / or with the playing of all tiles on the client device 108 is started at the same time. Furthermore, the client device comprises 108 in one or more embodiments, a virtual reality display device 110 such as a wireless virtual reality display.

Der Ausdruck „digitale Umgebung“, wie er hier verwendet wird, bezieht sich allgemein auf eine Umgebung, die z.B. als eine eigenständige Anwendung (z.B. ein Personalcomputer oder eine mobile Anwendung, die auf einer Rechenvorrichtung läuft), als Modul einer Anwendung, als Plug-in für eine Anwendung, als eine Bibliotheksfunktion oder Funktionen, die durch ein Netzwerkanwendungserzeugungssystem abgerufen werden können, als Servervorrichtung und/oder als Cloudcomputingsystem implementiert ist. Eine digitale Medienumgebung ermöglicht, dass das adaptive Ratenzuweisungssystem 104 bei gegebenen begrenzten Bandbreitenbeschränkungen für einen Nutzer eine eindringliche virtuelle Realität-Erfahrung bereitstellt.As used herein, the term "digital environment" refers generally to an environment that may be used, for example, as a standalone application (eg, a personal computer or a mobile application running on a computing device) as a module of an application, as a plug-in. in for an application, as a library function or functions that can be retrieved by a network application generation system, implemented as a server device and / or cloud computing system. A digital media environment enables the adaptive rate allocation system 104 given a limited bandwidth constraint, provides a haunting virtual reality experience to a user.

Ausführungsformen der vorliegenden Offenbarung können einen speziellen oder allgemeinen Computer umfassen oder nutzen, der Computerhardware umfasst, wie z.B. einen oder mehrere Prozessor(en) und einen Systemspeicher, wie es nachstehend detaillierter diskutiert wird. Ausführungsformen innerhalb des Umfangs der vorliegenden Offenbarung umfassen auch physikalische und andere computerlesbare Medien zum Beinhalten oder Speichern von computerausführbaren Anweisungen und/oder Datenstrukturen. Insbesondere kann einer oder können mehrere der hier beschriebenen Vorgänge mindestens zum Teil als Anweisungen implementiert werden, die in einem nicht-flüchtigen computerlesbaren Medium vorliegen und durch eine oder mehrere Rechenvorrichtung(en) (z.B. jedwede der hier beschriebenen Medieninhalt-Zugangsvorrichtungen) ausgeführt werden können. Im Allgemeinen erhält ein Prozessor (z.B. ein Mikroprozessor) Anweisungen von einem nicht-flüchtigen computerlesbaren Medium (z.B. einem Speicher, usw.) und führt diese Anweisungen aus, wodurch ein Vorgang oder mehrere Vorgänge, einschließlich ein Vorgang oder mehrere Vorgänge, der oder die hier beschrieben ist oder sind, ausgeführt wird oder werden.Embodiments of the present disclosure may include or utilize a special or generic computer that includes computer hardware, such as computer hardware. one or more processors and system memory, as discussed in greater detail below. Embodiments within the scope of the present disclosure also include physical and other computer-readable media for containing or storing computer-executable instructions and / or data structures. In particular, one or more of the acts described herein may be implemented, at least in part, as instructions residing in a non-transitory computer-readable medium and executable by one or more computing devices (e.g., any of the media content access devices described herein). In general, a processor (eg, a microprocessor) receives instructions from a non-transitory computer-readable medium (eg, a memory, etc.) and executes those instructions, thereby performing one or more operations, including one or more operations, here or there is or is, is or will be.

Computerlesbare Medien können jedwede verfügbare Medien sein, auf die durch einen allgemeines oder spezifisches Computersystem zugegriffen werden kann. Computerlesbare Medien, die computerausführbare Anweisungen speichern, sind nicht-flüchtige computerlesbare Speichermedien (Vorrichtungen). Computerlesbare Medien, die computerausführbare Anweisungen beinhalten, sind Übertragungsmedien. Folglich können beispielhaft und ohne Beschränkung Ausführungsformen der Offenbarung mindestens zwei deutlich verschiedene Arten von computerlesbaren Medien umfassen: nicht-flüchtige computerlesbare Speichermedien (Vorrichtungen) und Übertragungsmedien. Computer readable media can be any available media that can be accessed by a general or specific computer system. Computer-readable media storing computer-executable instructions are non-transitory computer-readable storage media (devices). Computer-readable media containing computer-executable instructions are transmission media. Thus, by way of example and not limitation, embodiments of the disclosure may include at least two distinctly different types of computer-readable media: non-transitory computer-readable storage media (devices) and transmission media.

Nicht-flüchtige computerlesbare Speichermedien (Vorrichtungen) umfassen RAM, ROM, EEPROM, CD-ROM, Halbleiterlaufwerke („SSDs“) (z.B. auf der Basis eines RAM), Flashspeicher, Phasenänderungsspeicher („PCM“), andere Speichertypen, andere optische Plattenspeicher, Magnetplattenspeicher oder andere Magnetspeichervorrichtungen, oder jedwedes andere Medium, das zum Speichern von gewünschten Programmcodemitteln in der Form von computerausführbaren Anweisungen oder Datenstrukturen geeignet ist und auf das durch einen allgemeinen oder speziellen Computer zugegriffen werden kann.Non-transitory computer-readable storage media (devices) include RAM, ROM, EEPROM, CD-ROM, SSDs (eg, based on RAM), flash memory, phase change memory ("PCM"), other types of memory, other optical disk storage, Magnetic disk storage or other magnetic storage devices, or any other medium suitable for storing desired program code means in the form of computer-executable instructions or data structures that can be accessed by a general or special computer.

Ferner können beim Erreichen von verschiedenen Computersystemkomponenten Programmcodemittel in der Form von computerausführbaren Anweisungen oder Datenstrukturen automatisch von Übertragungsmedien auf nicht-flüchtige computerlesbare Speichermedien (Vorrichtungen) übertragen werden (oder umgekehrt). Beispielsweise können computerausführbare Anweisungen oder Datenstrukturen, die über ein Netzwerk oder eine Datenverknüpfung erhalten worden sind, in einem RAM innerhalb eines Netzwerkschnittstellenmoduls (z.B. einem „NIC“) gepuffert werden und dann schließlich zu einem Computersystem-RAM und/oder weniger flüchtigen Computerspeichermedien (Vorrichtungen) in einem Computersystem übertragen werden. Folglich sollte beachtet werden, dass nicht-flüchtige computerlesbare Speichermedien (Vorrichtungen) in Computersystemkomponenten einbezogen werden können, die auch (oder sogar vorwiegend) Übertragungsmedien nutzen.Further, upon reaching various computer system components, program code means in the form of computer-executable instructions or data structures may be automatically transferred from transmission media to non-transitory computer-readable storage media (devices) (or vice versa). For example, computer-executable instructions or data structures obtained via a network or data link may be buffered in RAM within a network interface module (eg, a "NIC") and then eventually to a computer system RAM and / or less volatile computer storage media (devices). be transmitted in a computer system. Thus, it should be noted that non-transitory computer-readable storage media (devices) can be included in computer system components that also use (or even predominantly) transmission media.

Computerausführbare Anweisungen umfassen z.B. Anweisungen und Daten, die, wenn sie in einem Prozessor ausgeführt werden, bewirken, dass ein allgemeiner Computer, ein spezieller Computer oder eine spezielle Verarbeitungsvorrichtung eine bestimmte Funktion oder Gruppe von Funktionen ausübt. In einigen Ausführungsformen werden computerausführbare Anweisungen auf einem allgemeinen Computer ausgeführt, so dass der allgemeine Computer zu einem speziellen Computer wird, der Elemente der Offenbarung ausführt. Die computerausführbaren Anweisungen können z.B. binäre Anweisungen („binaries“), Zwischenformatanweisungen, wie z.B. Assembly-Sprache, oder sogar ein Quellcode sein. Obwohl der Gegenstand in einer Sprache beschrieben worden ist, die für strukturelle Merkmale und/oder Verfahrenologische Vorgänge spezifisch ist, sollte beachtet werden, dass der in den beigefügten Ansprüchen festgelegte Gegenstand nicht notwendigerweise auf die beschriebenen Merkmale oder die vorstehend beschriebenen Vorgänge beschränkt ist. Vielmehr sind die beschriebenen Merkmale und Vorgänge als Beispielformen zur Implementierung der Ansprüche offenbart.Computer-executable instructions include e.g. Instructions and data that, when executed in a processor, cause a general purpose computer, computer, or processing device to perform a particular function or set of functions. In some embodiments, computer-executable instructions are executed on a general computer so that the general computer becomes a particular computer that executes elements of the disclosure. The computer-executable instructions may be e.g. binary statements ("binaries"), intermediate format statements, such as Assembly language, or even a source code. Although the subject matter has been described in language specific to structural features and / or procedural operations, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the described features or acts described above. Rather, the features and processes described are disclosed as example forms for implementing the claims.

Einem Fachmann ist klar, dass die Offenbarung in Netzwerkrechenumgebungen mit vielen Typen von Computersystemkonfigurationen ausgeführt werden kann, einschließlich Personalcomputer, Desktopcomputer, Laptopcomputer, Nachrichtenprozessoren, handgehaltenen Vorrichtungen, Mehrprozessorsystemen, mikroprozessorbasierte oder programmierbare Haushaltselektronik bzw. Verbraucherelektronik, Netzwerk-PCs, Minicomputer, Großrechner, Mobiltelefone, PDAs, Tablets, Pager, Router, Koppler („switches“) und dergleichen. Die Offenbarung kann auch in verteilten Systemumgebungen durchgeführt werden, bei denen lokale und entfernte Computersysteme, die durch ein Netzwerk verbunden sind (entweder durch drahtgebundene Datenverbindungen, drahtlose Datenverbindungen oder eine Kombination aus drahtgebundenen und drahtlosen Datenverbindungen), beide Aufgaben ausführen. In einer verteilten Systemumgebung können sich Programmmodule sowohl in lokalen als auch entfernten Speichervorrichtungen befinden.One skilled in the art will appreciate that the disclosure can be made in network computing environments with many types of computer system configurations, including personal computers, desktop computers, laptop computers, message processors, handheld devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframes, cell phones , PDAs, tablets, pagers, routers, switches, and the like. The disclosure may also be made in distributed system environments where local and remote computer systems connected through a network (either through wired data links, wireless data links, or a combination of wired and wireless data links) perform both tasks. In a distributed system environment, program modules may reside in both local and remote storage devices.

Ausführungsformen der vorliegenden Offenbarung können auch in Cloudcomputing-Umgebungen implementiert werden. In dieser Beschreibung ist „Cloudcomputing“ als ein Modell festgelegt, das einen Netzwerkzugang zu einem gemeinsamen Pool von konfigurierbaren Rechenresourcen nach Bedarf ermöglicht. Beispielsweise kann ein Cloudcomputing auf dem Markt eingesetzt werden, um einen überall vorhandenen und bequemen Zugang nach Bedarf zu dem gemeinsamen Pool von konfigurierbaren Rechenresourcen anzubieten. Der gemeinsame Pool von konfigurierbaren Rechenresourcen kann mittels einer Virtualisierung schnell bereitgestellt werden und mit einem geringen Verwaltungsaufwand oder einer geringen Serviceproviderinteraktion freigegeben werden und dann entsprechend skaliert werden.Embodiments of the present disclosure may also be implemented in cloud computing environments. In this description, "cloud computing" is defined as a model that allows network access to a common pool of configurable computing resources as needed. For example, cloud computing may be deployed in the marketplace to provide anywhere, convenient on-demand access to the common pool of configurable computing resources. The shared pool of configurable computing resources can be quickly deployed through virtualization and released with a low overhead or service provider interaction, and then scaled accordingly.

Ein Cloudcomputingmodell kann aus verschiedenen Charakteristika zusammengesetzt sein, wie z.B. einer Selbstbedienung nach Bedarf, einem breiten Netzwerkzugang, einem Resourcenpooling, einer schnellen Elastizität, einem gemessenen Dienst, usw. Ein Cloudcomputingmodell kann auch verschiedene Dienstmodelle aufweisen, wie z.B. Software als Dienst („SaaS“), Plattform als Dienst („PaaS“) und Infrastruktur als Dienst („IaaS“). Ein Cloudcomputingmodell kann auch mittels verschiedener Verbreitungsmodelle verbreitet werden, wie z.B. einer Privatcloud, einer Communitycloud, einer öffentlichen Cloud, einer Hybridcloud, usw. In dieser Beschreibung und in den Ansprüchen ist eine „Cloudcomputing-Umgebung“ eine Umgebung, in der ein Cloudcomputing eingesetzt wird. A cloud computing model may be composed of various characteristics, such as on-demand self-service, broad network access, resource pooling, fast resilience, measured service, etc. A cloud computing model may also include various service models, such as software as a service ("SaaS"). ), Platform as service ("PaaS") and infrastructure as service ("IaaS"). A cloud computing model may also be distributed by various distribution models, such as a private cloud, a community cloud, a public cloud, a hybrid cloud, etc. In this specification and claims, a "cloud computing environment" is an environment in which cloud computing is employed ,

Die 10 zeigt in einer Blockdiagrammform eine beispielhafte Rechenvorrichtung 1000, die so ausgebildet sein kann, dass sie einen oder mehrere der vorstehend beschriebenen Vorgänge ausführt. Es ist klar, dass das adaptive Ratenzuweisungssystem 104 Implementierungen der Rechenvorrichtung 1000 umfassen kann. Wie es in der 10 gezeigt ist, kann die Rechenvorrichtung einen Prozessor 1002, einen Speicher 1004, eine Speichervorrichtung 1006, eine I/O-Schnittstellle 1008 und eine Kommunikationsschnittstelle 1010 umfassen. In bestimmten Ausführungsformen kann die Rechenvorrichtung 1000 weniger oder mehr Komponenten als diejenigen umfassen, die in der 10 gezeigt sind. Komponenten der Rechenvorrichtung 1000, die in der 10 gezeigt sind, werden nachstehend detaillierter beschrieben.The 10 FIG. 3 illustrates in block diagram form an exemplary computing device 1000 that may be configured to perform one or more of the above described operations. It is clear that the adaptive rate allocation system 104 Implementations of the computing device 1000 may include. As it is in the 10 1, the computing device may be a processor 1002 , a store 1004 , a storage device 1006 , an I / O interface 1008, and a communication interface 1010. In certain embodiments, the computing device 1000 include fewer or more components than those used in the 10 are shown. Components of the computing device 1000 in the 10 are shown below in more detail.

In bestimmten Ausführungsformen umfasst oder umfassen der oder die Prozessor(en) 1002 Hardware zum Ausführen von Anweisungen, die z.B. solchen, die ein Computerprogramm bilden. Als Beispiel und nicht beschränkend kann oder können der oder die Prozessor(en) 1002 die Anweisungen von einem internen Register, einem internen Cache, einem Speicher 1004 oder einer Speichervorrichtung 1006 abrufen (oder holen) und diese dekodieren und ausführen.In certain embodiments, the processor (s) comprise or include 1002 Hardware for executing instructions, such as those that make up a computer program. By way of example and not limitation, the processor (s) may or may not be 1002 the instructions from an internal register, an internal cache, a memory 1004 or a storage device 1006 retrieve (or fetch) and decode and execute.

Die Rechenvorrichtung 1000 umfasst einen Speicher 1004, der mit dem oder den Prozessor(en) 1002 gekoppelt ist. Der Speicher 1004 kann zum Speichern von Daten, Metadaten und Programmen zum Ausführen durch den oder die Prozessor(en) verwendet werden. Der Speicher 1004 kann einen oder mehrere von flüchtigen und nicht-flüchtigen Speichern umfassen, wie z.B. einen Direktzugriffsspeicher („RAM“), einen Festwertspeicher („ROM“), eine Halbleiterplatte („SSD“), einen Flashspeicher, einen Phasenänderungsspeicher („PCM“) oder andere Typen von Datenspeicher. Der Speicher 1004 kann ein interner oder ein verteilter oder externer Speicher sein.The computing device 1000 includes a memory 1004 that is related to the processor (s) 1002 is coupled. The memory 1004 may be used to store data, metadata and programs for execution by the processor (s). The memory 1004 may include one or more of volatile and nonvolatile memories, such as random access memory ("RAM"), read only memory ("ROM"), semiconductor disk ("SSD"), flash memory, phase change memory ("PCM"), or other types of data storage. The memory 1004 can be an internal or a distributed or external memory.

Die Rechenvorrichtung 1000 umfasst eine Speichervorrichtung 1006, die einen Speicher zum Speichern von Daten oder Anweisungen umfasst. Als ein Beispiel und nicht beschränkend kann die Speichervorrichtung 1006 ein vorstehend beschriebenes nicht-flüchtiges Speichermedium umfassen. Die Speichervorrichtung 1006 kann eine Festplatte (HDD), einen Flashspeicher, ein serielles Universalbus (USB)-Laufwerk oder eine Kombination dieser oder anderer Speichervorrichtungen umfassen.The computing device 1000 comprises a storage device 1006 which includes a memory for storing data or instructions. As an example and not by way of limitation, the memory device 1006 comprise a non-volatile storage medium as described above. The storage device 1006 may include a hard disk drive (HDD), a flash memory, a serial universal bus (USB) drive, or a combination of these or other memory devices.

Die Rechenvorrichtung 1000 umfasst auch eine oder mehrere Eingabe- oder Ausgabe („I/O“)-Vorrichtungen/Schnittstellen 1008, die bereitgestellt sind, um es einem Nutzer zu ermöglichen, eine Eingabe in (wie z.B. Nutzerberührungen) die Rechenvorrichtung 1000 durchzuführen, eine Ausgabe von der Rechenvorrichtung 1000 zu erhalten oder in sonstiger Weise Daten zu der und von der Rechenvorrichtung 1000 zu übertragen. Diese I/O-Vorrichtungen/Schnittstellen 1008 können eine Maus, ein Keypad oder eine Tastatur, einen Berührungsbildschirm, eine Kamera, einen optischen Scanner, eine Netzwerkschnittstelle, ein Modem oder andere bekannte I/O-Vorrichtungen oder eine Kombination solcher I/O-Vorrichtungen/Schnittstellen 1008 umfassen. Der Berührungsbildschirm kann mit einem Stift oder einem Finger aktiviert werden.The computing device 1000 Also includes one or more input or output ("I / O") devices / interfaces 1008 provided to enable a user input to (such as user touches) the computing device 1000 perform an output from the computing device 1000 or otherwise receive data to and from the computing device 1000 transferred to. These I / O devices / interfaces 1008 may be a mouse, keypad or keyboard, touch screen, camera, optical scanner, network interface, modem or other known I / O devices, or a combination of such I / O devices. Devices / interfaces 1008 include. The touch screen can be activated with a pen or a finger.

Die I/O-Vorrichtungen/Schnittstellen 1008 können eine oder mehrere Vorrichtung(en) zum Darstellen einer Ausgabe für einen Nutzer umfassen, einschließlich, jedoch nicht beschränkt auf, ein Graphikmodul, eine Anzeige (z.B. einen Anzeigebildschirm), einen oder mehrere Ausgabetreiber (z.B. Anzeigetreiber), einen oder mehrere Lautsprecher und einen oder mehrere Audiotreiber. In bestimmten Ausführungsformen sind die Vorrichtungen/Schnittstellen 1008 so ausgebildet, dass sie graphische Daten für eine Anzeige zur Darstellung für einen Nutzer bereitstellen. Die graphischen Daten können für eine oder mehrere graphische Nutzerschnittstellen und/oder jedweden anderen graphischen Inhalt repräsentativ sein, der als spezielle Implementierung dienen kann.The I / O devices / interfaces 1008 may include one or more devices for presenting an output to a user, including, but not limited to, a graphics module, a display (eg, a display screen), one or more output drivers (eg Display driver), one or more speakers, and one or more audio drivers. In certain embodiments, the devices / interfaces 1008 are configured to provide graphical data for a display for presentation to a user. The graphical data may be representative of one or more graphical user interfaces and / or any other graphical content that may serve as a particular implementation.

Die Rechenvorrichtung 1000 kann ferner eine Kommunikationsschnittstelle 1010 umfassen. Die Kommunikationsschnittstelle 1010 kann Hardware, Software oder beides umfassen. Die Kommunikationsschnittstelle 1010 kann eine oder mehrere Schnittstelle(n) zum Kommunizieren (wie z.B. mit einer Kommunikation auf Paketbasis) zwischen der Rechenvorrichtung und einer oder mehrerer anderer Rechenvorrichtung(en) 1000 oder einem oder mehreren Netzwerk(en) bereitstellen. Als Beispiel und nicht beschränkend kann die Kommunikationsschnittstelle 1010 einen Netzwerkschnittstellencontroller (NIC) oder einen Netzwerkadapter zum Kommunizieren mit einem Ethernet oder einem anderen drahtbasierten Netzwerk oder einem drahtlosen NIC (WNIC) oder einem drahtlosen Adapter zum Kommunizieren mit einem drahtlosen Netzwerk, wie z.B. WI-FI, umfassen. Die Rechenvorrichtung 1000 kann ferner einen Bus 1012 umfassen. Der Bus 1012 kann Hardware, Software oder beides umfassen, die Komponenten der Rechenvorrichtung 1000 miteinander koppelt.The computing device 1000 may further include a communication interface 1010 include. The communication interface 1010 may include hardware, software, or both. The communication interface 1010 may include one or more interfaces for communicating (such as with packet-based communication) between the computing device and one or more other computing devices. 1000 or one or more network (s). By way of example and not limitation, the communication interface 1010 a network interface controller (NIC) or network adapter for communicating with an Ethernet or other wire-based network or wireless NIC (WNIC) or wireless adapter for communicating with a wireless network, such as WI-FI. The computing device 1000 can also have a bus 1012 include. The bus 1012 may include hardware, software, or both, the components of the computing device 1000 coupled with each other.

In der vorstehenden Beschreibung wurde die Erfindung unter Bezugnahme auf spezifische beispielhafte Ausführungsformen davon beschrieben. Verschiedene Ausführungsformen und Aspekte der Erfindung sind unter Bezugnahme auf hier diskutierte Details beschrieben und die beigefügten Zeichnungen veranschaulichen die verschiedenen Ausführungsformen. Die vorstehende Beschreibung und die Zeichnungen dienen nur zur Veranschaulichung der Erfindung und sollen nicht so aufgefasst werden, dass sie die Erfindung beschränken. Es sind zahlreiche spezifische Details beschrieben, so dass verschiedene Ausführungsformen der vorliegenden Erfindung gut verständlich werden.In the foregoing description, the invention has been described with reference to specific exemplary embodiments thereof. Various embodiments and aspects of the invention are described with reference to details discussed herein, and the accompanying drawings illustrate the various embodiments. The foregoing description and drawings are merely illustrative of the invention and should not be construed as limiting the invention. Numerous specific details are described so that various embodiments of the present invention will be readily understood.

Die vorliegende Erfindung kann in anderen spezifischen Formen ausgeführt werden, ohne von deren Wesen oder essentiellen Eigenschaften abzuweichen. Die beschriebenen Ausführungsformen sollen in jeder Hinsicht lediglich als veranschaulichend und nicht als beschränkend aufgefasst werden. Beispielsweise können die hier beschriebenen Verfahren mit weniger oder mehr Schritten/Vorgängen ausgeführt werden oder die Schritte/Vorgänge können in einer anderen Reihenfolge ausgeführt werden. Zusätzlich können die hier beschriebenen Schritte/Vorgänge wiederholt oder parallel mit verschiedenen Instanzen derselben oder ähnlicher Schritte/Vorgänge ausgeführt werden. Der Umfang der Erfindung ist daher durch die beigefügten Ansprüche und nicht durch die vorstehende Beschreibung angegeben. Alle Änderungen innerhalb der Bedeutung und des Äquivalenzbereichs der Ansprüche sollen von dem Umfang der Erfindung umfasst sein.The present invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. The described embodiments are to be considered in all respects only as illustrative and not restrictive. For example, the methods described herein may be performed with fewer or more steps / operations, or the steps / operations may be performed in a different order. In addition, the steps / operations described herein may be repeated or performed in parallel with different instances of the same or similar steps / operations. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. Any changes within the meaning and range of equivalency of the claims are intended to be within the scope of the invention.

ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION

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.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturCited patent literature

  • US 62430313 [0001]US 62430313 [0001]

Claims (20)

Computerimplementiertes Verfahren des Streamens von Bandbreite-effizienten virtuelle Realität-Videos in einer digitalen Medienumgebung zur Bereitstellung einer virtuelle Realität-Erfahrung, wobei das Verfahren umfasst: Partitionieren bzw. Aufteilen eines Panoramavideos in eine Mehrzahl von Kacheln; Empfangen von Ansichtsbereichinformationen von einer Clientvorrichtung; Zuordnen, auf der Basis der Ansichtsbereichinformationen, von Prioritäten zu jeder Kachel der Mehrzahl von Kacheln; Bestimmen, für jede Kachel, einer Bitrate, die der zugeordneten Priorität der Kachel entspricht; und Streamen jeder Kachel zu der Clientvorrichtung unter Verwendung der entsprechenden bestimmten Bitrate.A computer-implemented method of streaming bandwidth-efficient virtual reality video in a digital media environment to provide a virtual reality experience, the method comprising: Partitioning a panoramic video into a plurality of tiles; Receiving view area information from a client device; Assigning, on the basis of the view area information, priorities to each tile of the plurality of tiles; Determining, for each tile, a bit rate that corresponds to the assigned priority of the tile; and Stream each tile to the client device using the appropriate specific bit rate. Verfahren nach Anspruch 1, das ferner das Verwenden eine Beschreibung einer räumlichen Beziehung zum Aufteilen des Panoramavideos in die Mehrzahl von Kacheln umfasst.Method according to Claim 1 further comprising using a description of a spatial relationship for dividing the panoramic video into the plurality of tiles. Verfahren nach Anspruch 2, bei dem das Panoramavideo ein sphärisches bzw. räumliches 360-Grad-Video umfasst und bei dem die Mehrzahl von Kacheln zur Bildung des sphärischen bzw. räumlichen 360-Grad-Videos kombiniert wird.Method according to Claim 2 in which the panoramic video comprises a 360 degree spherical video and in which the plurality of tiles are combined to form the 360 degree spherical video. Verfahren nach Anspruch 3, bei dem das Aufteilen des sphärischen bzw. räumlichen 360-Grad-Videos in die Mehrzahl von Kacheln das Erzeugen von einer oder mehreren oberen Kachel(n), einer oder mehreren unteren Kachel(n) und einer Mehrzahl von mittleren Körperkacheln umfasst.Method according to Claim 3 wherein dividing the 360-degree spherical video into the plurality of tiles comprises creating one or more top tiles, one or more bottom tiles, and a plurality of center body tiles. Verfahren nach einem der vorhergehenden Ansprüche, bei dem das Panoramavideo ein Stereovideo ist, das zwei entsprechende Videostreams umfasst.A method according to any one of the preceding claims, wherein the panoramic video is a stereo video comprising two respective video streams. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die Ansichtsbereichinformationen Positionsdaten umfassen, die einen Ort bzw. eine Position eines Ansichtsbereichs innerhalb des Panoramavideos angeben.A method according to any one of the preceding claims, wherein the view area information comprises position data indicating a location of a viewing area within the panoramic video. Verfahren nach Anspruch 6, das ferner das Identifizieren, auf der Basis der Ansichtsbereichinformationen, von einer oder mehreren Kachel(n) der Mehrzahl von Kacheln, die mit dem Ansichtsbereich überlappt oder überlappen, und einer oder mehrerer Kachel(n) der Mehrzahl von Kacheln, die an den Ansichtsbereich angrenzt oder angrenzen, umfasst, und wobei das Zuordnen von Prioritäten zu jeder Kachel der Mehrzahl von Kacheln auf der Basis des Ansichtsbereichs umfasst: Zuordnen einer höchsten Priorität zu der einen oder den mehreren Kachel(n), die mit dem Ansichtsbereich überlappt oder überlappen; Zuordnen einer nächsthöheren Priorität zu der einen oder den mehreren Kachel(n), die an den Ansichtsbereich angrenzt oder angrenzen; und Zuordnen einer niedrigeren Priorität zu einer restlichen der einen oder der mehreren Kachel(n)) der Mehrzahl von Kacheln.Method according to Claim 6 further comprising identifying, based on the view area information, one or more tiles of the plurality of tiles that overlap or overlap the view area and one or more tiles of the plurality of tiles that are adjacent to the view area bordering or adjoining, and wherein assigning priorities to each tile of the plurality of tiles based on the view area comprises: assigning a highest priority to the one or more tiles that overlap or overlap the view area; Assigning a next higher priority to the one or more tiles that are adjacent to or adjoin the view area; and assigning a lower priority to a remainder of the one or more tiles of the plurality of tiles. Verfahren nach Anspruch 7, das ferner das Zuordnen derselben Priorität zu jeder Kachel der Mehrzahl von Kacheln umfasst, die mit dem Ansichtsbereich überlappt.Method according to Claim 7 further comprising assigning the same priority to each tile of the plurality of tiles that overlaps the view area. Verfahren nach Anspruch 8, das ferner das Bestimmen einer minimalen Bitrate zum Streamen der Mehrzahl von Kacheln zu der Clientvorrichtung umfasst, wobei die minimale Bitrate einer niedrigsten akzeptablen Qualität des Panoramavideos entspricht und wobei das Streamen der Mehrzahl von Kacheln zu der Clientvorrichtung bei der minimalen Bitrate keine Bandbreitengrenze übersteigt.Method according to Claim 8 further comprising determining a minimum bit rate for streaming the plurality of tiles to the client device, wherein the minimum bit rate corresponds to a lowest acceptable quality of the panoramic video and wherein streaming the plurality of tiles to the client device at the minimum bit rate does not exceed a bandwidth limit. Verfahren nach Anspruch 9, das ferner das Bestimmen von höheren Bitraten zum Streamen der Mehrzahl von Kacheln zu der Clientvorrichtung umfasst, wobei eine oder mehrere höhere Bitrate(n) der höheren Bitraten einem oder mehreren höheren Qualitätsniveau(s) des Panoramavideos entspricht.Method according to Claim 9 further comprising determining higher bit rates for streaming the plurality of tiles to the client device, wherein one or more higher bit rates of the higher bit rates correspond to one or more higher quality levels (s) of the panoramic video. Verfahren nach Anspruch 10, wobei das Bestimmen der Bitrate, die der zugeordneten Priorität jeder Kachel entspricht, das Zuweisen von Bitraten zu Prioritätsniveaus von Kacheln mittels eines Multiple-Choice-Knapsack- bzw. Multiple-Choice-Rucksack-Problemalgorithmus umfasst.Method according to Claim 10 wherein determining the bit rate corresponding to the assigned priority of each tile comprises assigning bit rates to tile priority levels using a multiple-choice knapsack problem algorithm. Verfahren nach Anspruch 11, wobei das Zuweisen von Bitraten zu Prioritätsniveaus von Kacheln mittels eines Multiple-choice-Knapsack- bzw. Multiple-Choice-Rucksack-Problemalgorithmus umfasst: Bestimmen eines ersten restlichen Bandbreitenausmaßes durch Subtrahieren der minimalen Bitrate für die Mehrzahl von Kacheln von der Bandbreitengrenze; und Zuweisen der ersten restlichen Bandbreite zu Kacheln mit einem höchsten Prioritätsniveau.Method according to Claim 11 wherein assigning bit rates to tile priority levels using a multiple-choice knapsack problem algorithm is as follows: Determining a first remaining bandwidth amount by subtracting the minimum bit rate for the plurality of tiles from the bandwidth limit; and allocating the first remaining bandwidth to tiles having a highest priority level. Verfahren nach Anspruch 12, wobei das Zuweisen der ersten restlichen Bandbreite zu Kacheln mit einem höchsten Prioritätsniveau das Streamen der Kacheln mit dem höchsten Prioritätsniveau bei der höchsten Bitrate umfasst.Method according to Claim 12 wherein assigning the first remaining bandwidth to highest priority level tiles comprises streaming the highest priority level tiles at the highest bit rate. System zum Streamen von virtuelle Realität-Videos, wobei das System umfasst: einen oder mehrere computerlesbare(n) Speicher, der oder die einen virtuelle Realität-Inhalt-Repositry bzw. -Speicher umfasst oder umfassen; und mindestens eine Rechenvorrichtung, auf der Anweisungen gespeichert sind, die, wenn sie durch die mindestens eine Rechenvorrichtung ausgeführt werden, bewirken, dass das System: ein Panoramavideo durch Partitionieren bzw. Aufteilen des Panoramavideos in benachbarte bzw. angrenzende Kacheln in eine Mehrzahl von Kacheln aufteilt; Ansichtsbereichinformationen von einer Clientvorrichtung empfängt, die eine gegenwärtige Ansichtsbereichposition innerhalb des Panoramavideos angeben; auf der Basis der gegenwärtigen Ansichtsbereichposition jeder Kachel der Mehrzahl von Kacheln durch Bestimmen einer Korrelation zwischen der gegenwärtigen Ansichtsbereichposition und jeder Kachel innerhalb des Panoramavideos Prioritäten zuordnet; jeder Kachel eine Bitrate, die der zugeordneten Priorität der Kachel entspricht, durch Zuweisen einer höheren Bitrate zu Kacheln mit einer höheren Priorität und einer niedrigeren Bitrate zu Kacheln mit einer niedrigeren Priorität zuweist; und jede Kachel zu der Clientvorrichtung unter Verwendung der entsprechenden zugewiesenen Bitrate streamt.A system for streaming virtual reality video, the system comprising: one or more computer-readable storage (s) comprising or comprising a virtual reality content repository; and at least one computing device having stored thereon instructions that, when executed by the at least one computing device, cause the system to: partitioning a panoramic video into a plurality of tiles by partitioning the panoramic video into adjacent tiles; Receiving view area information from a client device indicating a current viewing area position within the panoramic video; assigning priorities to each tile of the plurality of tiles based on the current view area position by determining a correlation between the current view area position and each tile within the panoramic video; each tile assigns a bit rate corresponding to the tile's assigned priority by assigning a higher bit rate to tiles with a higher priority and a lower bit rate to tiles with a lower priority; and each tile to the client device using the corresponding allocated bitrate streams. System nach Anspruch 14, das ferner Anweisungen darauf umfasst, die, wenn sie durch die mindestens eine Rechenvorrichtung ausgeführt werden, bewirken, dass das System: eine oder mehrere Kachel(n) von der Mehrzahl von Kacheln, die mit der gegenwärtigen Ansichtsbereichposition überlappt oder überlappen, und eine oder mehrere Kachel(n) von der Mehrzahl von Kacheln identifiziert, die an die gegenwärtige Ansichtsbereichposition angrenzt oder angrenzen; und Prioritäten jeder Kachel der Mehrzahl von Kacheln auf der Basis der gegenwärtigen Ansichtsbereichposition zuordnet durch: Zuordnen einer höchsten Priorität zu der einen oder den mehreren Kachel(n), die mit der gegenwärtigen Ansichtsbereichposition überlappt oder überlappen; Zuordnen einer nächsthöheren Priorität zu der einen oder den mehreren Kachel(n), die an die gegenwärtige Ansichtsbereichposition angrenzt oder angrenzen bzw. benachbart sind; und Zuordnen einer niedrigeren Priorität zu einer restlichen der einen oder der mehreren Kachel(n) von der Mehrzahl von Kacheln.System after Claim 14 and further comprising instructions thereon that, when executed by the at least one computing device, cause the system to: one or more tiles of the plurality of tiles that overlap or overlap the current view area location, and one or more tiles identify a plurality of tiles of the plurality of tiles adjacent to or adjacent to the current view area location; and prioritize each tile of the plurality of tiles based on the current view area position by: assigning a highest priority to the one or more tiles that overlap or overlap the current view area position; Assigning a next higher priority to the one or more tiles adjacent to or adjacent to the current view area position; and assigning a lower priority to a remainder of the one or more tiles of the plurality of tiles. System nach Anspruch 14 oder 15, das ferner Anweisungen darauf umfasst, die, wenn sie durch die mindestens eine Rechenvorrichtung ausgeführt werden, bewirken, dass das System: eine minimale Bitrate zum Streamen der Mehrzahl von Kacheln zu der Clientvorrichtung bestimmt, wobei die minimale Bitrate einer niedrigsten akzeptablen Qualität des Panoramavideos entspricht; und die Mehrzahl von Kacheln zu der Clientvorrichtung bei der minimalen Bitrate streamt, die eine Bandbreitengrenze nicht übersteigt.System after Claim 14 or 15 and further comprising instructions thereon, when executed by the at least one computing device, causing the system to: determine a minimum bit rate for streaming the plurality of tiles to the client device, the minimum bit rate corresponding to a lowest acceptable quality of the panoramic video ; and streaming the plurality of tiles to the client device at the minimum bit rate that does not exceed a bandwidth limit. System nach einem der Ansprüche 14 bis 16, das ferner Anweisungen darauf umfasst, die, wenn sie durch die mindestens eine Rechenvorrichtung ausgeführt werden, bewirken, dass das System: iterativ eine verfügbare Bitrate zum Streamen jeder Kachel der Mehrzahl von Kacheln auf der Basis einer Einstufung der zugeordneten Priorität jeder Kachel bestimmt; iterativ ein Ausmaß einer restlichen verfügbaren Bandbreite bestimmt, so dass die Bandbreite minimiert wird; und jede Kachel der Mehrzahl von Kacheln mindestens bei der minimalen Bitrate streamt.System according to one of Claims 14 to 16 and further comprising instructions for, when executed by the at least one computing device, causing the system to: iteratively determine an available bit rate for streaming each tile of the plurality of tiles based on a rating of the assigned priority of each tile; iteratively determines an amount of remaining available bandwidth so that the bandwidth is minimized; and each tile of the plurality of tiles streams at least at the minimum bit rate. Computerimplementiertes Verfahren des Streamens von Bandbreite-effizienten virtuelle Realität-Videos in einer digitalen Medienumgebung zum Bereitstellen einer virtuelle Realität-Erfahrung, wobei das Verfahren umfasst: Durchführen eines Schritts zum räumlichen Partitionieren bzw. Aufteilen eines sphärischen bzw. räumlichen Videos in eine dreidimensionale (3D) Kugel mit sechs Flächen bzw. dreidimensionale (3D) Hexaface-Kugel, die 3D-Netzsegmente umfasst; Empfangen von Ansichtsbereichinformationen von einer Clientvorrichtung; Zuordnen, auf der Basis der Ansichtsbereichinformationen, von Prioritäten zu jedem der 3D-Netzsegmente; Durchführen eines Schritts zum Bestimmen einer Bitratenzuweisung für jedes der 3D-Netzsegmente auf der Basis der Priorität, die jedem der 3D-Netzsegmente zugeordnet worden ist; und Streamen von jedem der 3D-Netzsegmente zu der Clientvorrichtung unter Verwendung der Bitrate, die für jedes der 3D-Netzsegmente bestimmt worden ist.A computer-implemented method of streaming bandwidth-efficient virtual reality video in a digital media environment to provide a virtual reality experience, the method comprising: Performing a step of spatially splitting a spatial video into a three-dimensional (3D) sphere of three-dimensional (3D) hexaface sphere comprising 3D mesh segments; Receiving view area information from a client device; Assigning, based on the view area information, priorities to each of the 3D network segments; Performing a step of determining a bit rate allocation for each of the 3D network segments based on the priority assigned to each of the 3D network segments; and streaming each of the 3D mesh segments to the client device using the bit rate determined for each of the 3D mesh segments. Verfahren nach Anspruch 18, bei dem das Durchführen des Schritts zum räumlichen Aufteilen des sphärischen bzw. räumlichen Videos in die 3D-Netzsegmente umfasst: Aufteilen des sphärischen bzw.räumlichen Videos in eine Mehrzahl von vertikalen Stacks und eine Mehrzahl von horizontalen Slices; Aufteilen des sphärischen bzw.räumlichen Videos, auf der Basis von einem oder mehreren horizontalen Slice(s), in eine Mehrzahl von 3D-Netzen; und weiteres Aufteilen des 3D-Netzsegments der 3D-Netzsegmente in zusätzliche 3D-Netzsegmente auf der Basis der Mehrzahl von horizontalen Slices.Method according to Claim 18 wherein performing the step of spatially dividing the spatial video into the 3D mesh segments comprises: dividing the spherical video into a plurality of vertical stacks and a plurality of horizontal slices; Splitting the spherical video, based on one or more horizontal slice (s), into a plurality of 3D networks; and further dividing the 3D mesh segment of the 3D mesh segments into additional 3D mesh segments based on the plurality of horizontal slices. Verfahren nach Anspruch 19, bei dem das Durchführen des Schritts zum Bestimmen einer Bitratenzuweisung für jedes der 3D-Netzsegmente das Zuweisen von Bitraten zu Prioritätsnivaus von Kacheln mit einem Multiple-choice-Knapsack- bzw. Multiple-Choice-Rucksack-Problemalgorithmus umfasst.Method according to Claim 19 wherein performing the step of determining bit rate allocation for each of the 3D mesh segments comprises assigning bit rates to tile priority levels of tiles with a multiple-choice knapsack problem algorithm.
DE102017009121.8A 2016-12-05 2017-09-29 Prioritizing tile-based virtual reality video streaming using adaptive rate allocation Pending DE102017009121A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662430313P 2016-12-05 2016-12-05
US62/430,313 2016-12-05
US15/593,050 2017-05-11
US15/593,050 US10595069B2 (en) 2016-12-05 2017-05-11 Prioritizing tile-based virtual reality video streaming using adaptive rate allocation

Publications (1)

Publication Number Publication Date
DE102017009121A1 true DE102017009121A1 (en) 2018-06-07

Family

ID=60326931

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017009121.8A Pending DE102017009121A1 (en) 2016-12-05 2017-09-29 Prioritizing tile-based virtual reality video streaming using adaptive rate allocation

Country Status (3)

Country Link
CN (1) CN108156484B (en)
DE (1) DE102017009121A1 (en)
GB (1) GB2557416B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210390765A1 (en) * 2020-06-15 2021-12-16 Nokia Technologies Oy Output of virtual content

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10623736B2 (en) * 2018-06-14 2020-04-14 Telefonaktiebolaget Lm Ericsson (Publ) Tile selection and bandwidth optimization for providing 360° immersive video
US10419738B1 (en) 2018-06-14 2019-09-17 Telefonaktiebolaget Lm Ericsson (Publ) System and method for providing 360° immersive video based on gaze vector information
US10567780B2 (en) 2018-06-14 2020-02-18 Telefonaktiebolaget Lm Ericsson (Publ) System and method for encoding 360° immersive video
US10523914B1 (en) 2018-07-26 2019-12-31 Telefonaktiebolaget Lm Ericsson (Publ) System and method for providing multiple 360° immersive video sessions in a network
US10841662B2 (en) 2018-07-27 2020-11-17 Telefonaktiebolaget Lm Ericsson (Publ) System and method for inserting advertisement content in 360° immersive video
US10735778B2 (en) 2018-08-23 2020-08-04 At&T Intellectual Property I, L.P. Proxy assisted panoramic video streaming at mobile edge
CN108924629B (en) * 2018-08-28 2021-01-05 恒信东方文化股份有限公司 VR image processing method
US10757389B2 (en) 2018-10-01 2020-08-25 Telefonaktiebolaget Lm Ericsson (Publ) Client optimization for providing quality control in 360° immersive video during pause
US10939139B2 (en) 2018-11-29 2021-03-02 Apple Inc. Adaptive coding and streaming of multi-directional video
US11956295B2 (en) 2019-09-27 2024-04-09 Apple Inc. Client-end enhanced view prediction for multi-view video streaming exploiting pre-fetched data and side information
EP4074054A1 (en) * 2019-12-09 2022-10-19 Telefonaktiebolaget LM Ericsson (publ) Electronic device, server and methods for viewport prediction based on head and eye gaze
CN111586414B (en) * 2020-04-07 2022-04-15 南京师范大学 A 360° Video Stream Scheduling Method Based on SVC and DASH
CN113992996A (en) * 2020-07-10 2022-01-28 华为技术有限公司 Method and device for transmitting data
CN112584119B (en) * 2020-11-24 2022-07-22 鹏城实验室 Self-adaptive panoramic video transmission method and system based on reinforcement learning
CN113362438A (en) * 2021-06-30 2021-09-07 北京百度网讯科技有限公司 Panorama rendering method, device, electronic apparatus, medium, and program
EP4622273A1 (en) * 2024-03-21 2025-09-24 Softseed Technologies GmbH Method and system for 360° live video stream transmission

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100542298C (en) * 2007-09-29 2009-09-16 中国科学院计算技术研究所 Block Size Calculation Method and Transmission Method for Cylindrical Panoramic Video Coding
US20120293607A1 (en) * 2011-05-17 2012-11-22 Apple Inc. Panorama Processing
US9699437B2 (en) * 2014-03-03 2017-07-04 Nextvr Inc. Methods and apparatus for streaming content
US20150346812A1 (en) * 2014-05-29 2015-12-03 Nextvr Inc. Methods and apparatus for receiving content and/or playing back content
JP2017527230A (en) * 2014-05-29 2017-09-14 ネクストブイアール・インコーポレイテッド Method and apparatus for distributing and / or playing content
WO2016138043A1 (en) * 2015-02-24 2016-09-01 NextVR, Inc. Calibration for immersive content systems
CN105791882B (en) * 2016-03-22 2018-09-18 腾讯科技(深圳)有限公司 Method for video coding and device
CN106162207B (en) * 2016-08-25 2019-02-12 北京字节跳动科技有限公司 A kind of panoramic video parallel encoding method and apparatus

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210390765A1 (en) * 2020-06-15 2021-12-16 Nokia Technologies Oy Output of virtual content
US11636644B2 (en) * 2020-06-15 2023-04-25 Nokia Technologies Oy Output of virtual content

Also Published As

Publication number Publication date
GB201716286D0 (en) 2017-11-22
GB2557416B (en) 2021-08-04
CN108156484A (en) 2018-06-12
GB2557416A (en) 2018-06-20
CN108156484B (en) 2022-01-14

Similar Documents

Publication Publication Date Title
DE102017009121A1 (en) Prioritizing tile-based virtual reality video streaming using adaptive rate allocation
US11457263B2 (en) Prioritizing tile-based virtual reality video streaming using adaptive rate allocation
DE102018130037B4 (en) DYNAMIC JITTER AND LATENCY TOLERANT RENDERING
DE102019008168A1 (en) Dynamic estimation of lighting parameters for positions within reality-enhanced scenes using a neural network
DE112016004216T5 (en) General Spherical Observation Techniques
DE112016006081T5 (en) Automatic real-time vehicle camera calibration
DE112018004584T5 (en) DENSITY COORDINATE HASHING FOR VOLUMETRIC DATA
DE102017115208A1 (en) 2D video with the option for projected viewing in a modeled 3D room
DE112013005255T5 (en) If necessary, geometry and acceleration structure generation
DE102021121332A1 (en) ASSESSING QUALITATIVE STREAMING EXPERIENCE USING SESSION PERFORMANCE METADATA
DE102018128699A1 (en) Adjusting an angular sampling rate during rendering using gaze information
DE112021000108T5 (en) NOISE REDUCTION TECHNIQUES FOR RECURRENT BLURRING IN RAYTRACING APPLICATIONS
DE112016005809T5 (en) Light field rendering of an image using variable computational complexity
CN115830199B (en) XR technology-based ubiquitous training campus construction method, system and storage medium
DE202017104897U1 (en) Quadrangulated layered depth images
US12169944B2 (en) Image reconstruction for virtual 3D
DE102024135620A1 (en) FOUR-DIMENSIONAL OBJECT AND SCENE MODEL SYNTHESIS USING GENERATIVE MODELS
DE112019001702T5 (en) METHODS, SYSTEMS, OBJECTS OF MANUFACTURING AND DEVICES FOR GENERATING DIGITAL SCENES
DE102022107672A1 (en) CLOUD EXECUTION OF AUDIO/VIDEO COMPOSITING APPLICATIONS
DE112020007087T5 (en) Concurrent hash table updates
DE102013215301B4 (en) Method and computer program product for extruding a model through a two-dimensional scene
DE102021109050A1 (en) VIDEO COMPRESSION AND TRANSMISSION SUPPORTED BY A NEURONAL GENERATIVE ADVERSARIAL NETWORK
DE102022121250A1 (en) Entropy-based pre-filtering using neural networks for streaming applications
Söchting et al. Lexcube: Interactive visualization of large earth system data cubes
DE102021109501A1 (en) VIDEO CONSTRUCTION SUPPORTED BY GENERATING ADVERSARY NEURAL NETWORK

Legal Events

Date Code Title Description
R081 Change of applicant/patentee

Owner name: ADOBE INC., SAN JOSE, US

Free format text: FORMER OWNER: ADOBE SYSTEMS INCORPORATED, SAN JOSE, CALIF., US

R082 Change of representative

Representative=s name: MUELLER-BORE & PARTNER PATENTANWAELTE PARTG MB, DE

R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04N0021234300

Ipc: H04N0021266200