CN108156484A - 利用自适应速率分配优先处理基于图块的虚拟现实视频流 - Google Patents

利用自适应速率分配优先处理基于图块的虚拟现实视频流 Download PDF

Info

Publication number
CN108156484A
CN108156484A CN201710890711.4A CN201710890711A CN108156484A CN 108156484 A CN108156484 A CN 108156484A CN 201710890711 A CN201710890711 A CN 201710890711A CN 108156484 A CN108156484 A CN 108156484A
Authority
CN
China
Prior art keywords
segment
distribution system
priority
viewport
video
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.)
Granted
Application number
CN201710890711.4A
Other languages
English (en)
Other versions
CN108156484B (zh
Inventor
V·斯瓦米纳森
M·霍赛尼
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 CN108156484A publication Critical patent/CN108156484A/zh
Application granted granted Critical
Publication of CN108156484B publication Critical patent/CN108156484B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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; CALCULATING OR 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; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • 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)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Computer Security & Cryptography (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开包括用于使用自适应速率分配来流式传输高性能虚拟现实视频的方法和系统。特别地,自适应速率分配系统将全景视频划分成片段或图块,并且基于来自用户客户端设备的输入(例如,视场的视口)来为每个图块或片段指派优先级。进一步地,自适应速率分配系统根据自适应速率分配向用户客户端设备流式传输每个图块或片段,其使带宽效率和视频质量最大化。以这种方式,自适应速率分配系统向用户当前正在观看/最有可能观看的全景视频中的区域递送更高质量的内容。

Description

利用自适应速率分配优先处理基于图块的虚拟现实视频流
相关申请的交叉引用
本申请要求于2016年12月5日提交的美国临时专利申请号62/430,313的优先级,其全部内容通过引用并入本文。
背景技术
计算硬件和网络技术(包括高带宽的可用性)的进步促使网络化的多媒体应用(在线视频游戏、流式传输电影等)的发展。近来,对于使用三维(3D)媒体,诸如3D沉浸和虚拟现实视频应用,已经引起了极大兴趣。虚拟现实视频是映射到3D几何中的沉浸式视频,其中用户可以使用虚拟现实头戴式显示器(HMD)在播放期间环顾四周,其给予观众在每个方向上的深度感。
尽管近来在虚拟现实视频技术方面取得了进步,但是传统的系统在以高质量水平递送虚拟现实内容方面面临许多挑战。通常包含360度视频的虚拟现实视频可能极其带宽密集,难以以可接受的质量水平进行流式传输。因而,虚拟现实视频技术的主要挑战是如何有效地向带宽受限设备(诸如无线虚拟现实HMD)传送需要高比特率的大量的虚拟现实视频流。例如,4K视频分辨率开始被视为当前虚拟现实视频系统的功能上的最小分辨率,而未来的虚拟现实视频系统预期8K、12K和更高分辨率。然而,即使在当前分辨率的情况下,传统的系统也难以以可接受的质量水平进行流式传输。
响应于这个问题,与其二维(2D)对应物相比较,许多传统的系统将流限制到较低的分辨率。其他传统系统使用针对每个虚拟现实视频的不同部分的大范围的预先确定的分辨率来流式传输虚拟现实视频。然而,因为每个部分需要以多种分辨率保存,所以这需要大的存储容量,因为虚拟现实视频的分辨率增加,所以解决方案不可行。进一步地,一些传统系统忽视了虚拟现实视频流标准,其阻止跨多种类型的虚拟现实视频设备(例如,HMD)的流式传输。关于传统的虚拟现实系统,存在这些以及其他问题。
发明内容
本公开的一个或多个实施例利用使用自适应速率分配流式传输高性能虚拟现实视频的系统和方法,来提供益处和/或解决本领域中的前述或其他问题中的一个或多个问题。特别地,在一个或多个实施例中,所公开的系统和方法将全景视频划分成片段和/或图块。然后,系统和方法向每个片段和/或图块指派优先级。进一步地,系统和方法基于所指派的优先级来向用户客户端设备流式传输每个片段和/或图块。以这种方式,系统和方法向用户当前正在观看/最有可能观看的全景视频中的区域递送更高质量的内容以及向用户视图之外的区域递送较低质量的内容。通过这样做,系统和方法提供了显著的带宽节省。
为了进一步解释,在一个或多个实施例中,所公开的系统和方法接收全景视频以流式传输到用户客户端设备。所公开的系统和方法然后将全景视频划分成在全景视频内彼此几何对准的图块。接下来,所公开的系统和方法从客户端设备接收指示在全景视频内示出的视口(viewport)(例如,视口信息或视场)的指示(即,在全景视频内用户正在观看的内容)。而且,所公开的系统和方法基于视口信息来为每个图块指派优先级。进一步地,系统和方法为每个图块确定或分配与指派给图块的优先级相对应的比特率。然后,系统和方法使用为给定图块分配的比特率向客户端设备流式传输每个图块。
此外,所公开的系统和方法可以采用自适应比特率分配来最大化带宽效率和视频质量。例如,在一个或多个实施例中,所公开的系统和方法确定向用户客户端设备流式传输全景视频的所有图块所需的最低视频质量和对应的比特率。然后,使用附加的可用带宽,所公开的系统和方法基于视场优先级来启发性地将速率分配给图块,直到达到带宽限制并且使客户端设备的带宽效率(例如,吞吐量)最大化为止。
因而,本文所公开的系统和方法在对高质量虚拟现实视频的需求和有限的带宽之间取得平衡,而对用户体验的负面影响最小。如下文详细描述的,所公开的系统和方法提供用户的视口(例如,视场)、空间虚拟现实视频划分和流优先级排序之间的语义链接,以便于带宽管理和高性能虚拟现实视频流式传输。
本公开的一个或多个实施例的附加特征和优点将在以下的描述中得以阐述,并且部分地将从描述中变得明显,或者可以通过实施这些示例实施例来了解。
附图说明
参考下文所列出的附图对具体实施方式进行描述。
图1图示了示意图,其图示了根据一个或多个实施例可以实现自适应速率分配系统的示例性环境。
图2图示了具有视口的示例球面视频(3D和平面二者)。
图3A至图3B图示了根据一个或多个实施例的划分成3D网格片段或图块的示例球面视频。
图4图示了根据一个或多个实施例的划分成六个六面球体图块的示例球面视频。
图5A至图5B图示了根据一个或多个实施例的基于来自用户客户端设备的用户输入(例如,视口)来指派优先级的示例球面视频。
图6图示了根据一个或多个实施例的自适应速率分配系统所采用的不同分辨率以向客户端设备流式传输球面视频的图块的示例图。
图7图示了根据一个或多个实施例的使用自适应速率分配系统流式传输虚拟现实视频的时序图。
图8图示了根据一个或多个实施例的自适应速率分配系统的示例实施例。
图9图示了根据一个或多个实施例的用于提供带宽高效的虚拟现实视频的方法中的一系列动作的流程图。
图10图示了根据一个或多个实施例的示例性计算设备的框图。
具体实施方式
本公开的一个或多个实施例包括自适应速率分配系统,其提供带宽管理以实现高性能虚拟现实视频流式传输。特别地,在一个或多个实施例中,自适应速率分配系统将虚拟现实全景视频拆分成多个片段,基于用户的当前视场来对每个片段进行优先级排序,以基于该片段的优先级和对应的速率分配来流式传输每个片段。以这种方式,自适应速率分配系统改善了虚拟现实全景视频的流式传输,优于常规系统的流式传输。进一步地,自适应速率分配系统向用户当前正在观看/最可能观看的全景视频中的区域递送更高质量的内容以及向用户视图之外的区域提供较低质量的内容。
为了说明,自适应速率分配系统访问或接收将被流式传输到客户端设备(例如,虚拟现实显示设备)的虚拟现实全景视频(或简称为“全景视频”)。自适应速率分配系统将全景视频划分成在全景视频内几何对准的片段,诸如图块。接下来,自适应速率分配系统从客户端设备接收指示视口(例如,视场)在全景视频内的当前位置的视口信息。基于视口信息,自适应速率分配系统为片段中的每个片段指派优先级。例如,自适应速率分配系统向与视口重叠或与视口相邻的片段而非位于远离视口的片段指派较高优先级。进一步地,自适应速率分配系统确定每个片段的速率(例如,比特率),其与所指派的优先级相对应。然后,自适应速率分配系统以对应的速率向客户端设备流式传输每个片段。
如上文所提及的,自适应速率分配系统能够为每个具有被指派优先级的全景视频片段确定一个速率(例如,比特率)。然后,所确定的速率规定了该片段如何被流式传输到客户端设备。在一个或多个实施例中,自适应速率分配系统采用速率分配启发式算法来确定每个片段的速率。如先前所提及的,带宽资源通常受到限制,特别是当客户端设备无线地接收全景视频时。如此,自适应速率分配系统利用自适应速率分配来最大化带宽效率和视频质量。
为了说明,自适应速率分配系统确定用于向客户端设备发送全景视频的最低可接受视频质量。自适应速率分配系统还确定与最低可接受视频质量相对应的最小比特率。然后,自适应速率分配系统标识以最小比特率(例如,以最低可接受视频质量)流式传输每个片段所需的带宽量。通常,存在超过最小比特率的附加带宽。如此,自适应速率分配系统标识带宽限制或预算与最小比特率之间的附加带宽的量。使用附加带宽,自适应速率分配系统可以向以更高视频质量向客户端设备流式传输选定的片段。
在一些示例实施例中,自适应速率分配系统基于片段的被指派的优先级来确定以较高视频质量(例如,较高比特率)流式传输哪些片段。如下文进一步描述的那样,自适应速率分配系统基于用户正在观看(即,视口)的位置以及用户接下来可能看到的位置来向片段指派优先级。例如,当足够的附加带宽可用时,自适应速率分配系统以最高比特率流流式传输被指派有最高优先级的片段,使得用户的当前视图以最高视频质量呈现给用户。类似地,自适应速率分配系统可以基于可用附加带宽量来以各种比特率水平(其与视频质量水平相对应)流式传输具有其他被指派的优先级的其他片段。以这种方式,自适应速率分配系统确定如何在最大化带宽效率的同时流式传输最高质量的视频。
如上文所提及的,在一些示例实施例中,自适应速率分配系统将全景视频拆分成图块。例如,自适应速率分配系统将全景视频划分成六面空间,其包括顶部图块、底部图块和四个中间主体图块。例如,如果全景视频是球面视频(例如,360度视频),则自适应速率分配系统将全景视频划分成六面球体,其在下文参考图3B进行更详细地说明和描述。使用六面空间中的图块,自适应速率分配系统基于如视口所指示的用户正在查看的图块来指派优先级。然后,自适应速率分配系统可以基于图块的所指派的优先级和可用带宽的组合来确定流式传输每个图块的比特率。
如所提及的,自适应速率分配系统可以基于视口来向图块指派优先级。视口提供了用户的视场以及用户在全景视频内的查看方向的指示。例如,在一个或多个实施例中,自适应速率分配系统向与视口重叠的片段指派最高优先级。另外,自适应速率分配系统为与视口相邻的片段指派次最高优先级,并且为远离视口的片段指派较低优先级。在一些示例性实施例中,自适应速率分配系统基于用户可能在接下来观看的位置(例如,视口的预期未来位置)来指派优先级。例如,自适应速率分配系统向用户不太可能观看的包括天空的片段(例如,顶部图块)指派较低优先级。
在一些示例实施例中,自适应速率分配系统可以在向客户端设备流式传输片段之前将一个或多个数字增强添加到片段中。例如,自适应速率分配系统可以在球面视频内引入交互式3D对象。作为另一示例,自适应速率分配系统使用被智能地放置在片段或图块内的广告来增强球面视频。
如上文简要描述的,媒体属性系统提供了优于常规系统的若干个优点。例如,自适应速率分配系统提供改进的带宽管理,同时向用户提供高质量的虚拟现实视频,其提高了用户的虚拟现实体验。特别地,自适应速率分配系统提高了向客户端设备传送和流式传输球面视频的效率。在一些实施例中,与基础的案例相比较,提高的带宽效率导致带宽节省高达72%。
因为自适应速率分配系统提高了流式传输球面视频的效率,所以自适应速率分配系统导致在传输球面视频的服务器设备和接收视频的客户端设备二者上需要较少的总体数据处理和计算资源。例如,服务器设备基于用户在球面视频内的当前视场来传送片段,并且客户端设备基于用户在球面视频内的当前视场来接收片段。换句话说,自适应速率分配系统使得服务器设备能够更快速地搜索、定位和发送当前对用户而言最重要的片段。另外,客户端设备接收和处理此刻对用户最重要的片段,其减少了客户端设备上所需的负载和处理资源(通常是有限的)。进一步地,因为自适应速率分配系统在用户的整个流式传输体验中不断地重复这些动作,这些益处以指数方式组合。
作为另一益处,自适应速率分配系统提供了更多的灵活性。特别地,自适应速率分配系统使用已知标准来起作用,诸如通过HTTP的动态自适应流式传输(DASH)。如此,自适应速率分配系统对大多数类型的虚拟现实显示设备起作用。以这种方式,与需要用户获得专有类型的客户端设备的常规系统相反,自适应速率分配系统使得下文所描述的系统和方法能够在大多数客户端设备上操作。下文参考描述自适应速率分配系统的一个或多个实施例的附图对自适应速率分配系统的附加益处、优点、特征和特性进行描述。
现在参考附图,图1图示了示意图,其图示了其中自适应速率分配系统104可以操作的示例性环境100。如所示出的,示例性环境100包括托管多媒体流式传输系统103的一个或多个服务器设备102,其中自适应速率分配系统104可以形成其一部分,以帮助高效的流式传输。环境100可以可选地包括一个或多个内容提供器设备106和客户端设备(即,虚拟现实显示设备110)。一个或多个服务器设备102、一个或多个内容提供器设备106和虚拟现实显示设备110可以通过网络112彼此通信,该网络112表示计算设备可以通过其进行通信的任何合适的网络。下文关于图10对示例网络进行更详细地讨论。
如刚刚提及的,环境100包括一个或多个服务器设备102。一个或多个服务器设备102可以生成、存储、接收和传送任何类型的数据,其包括虚拟现实内容和用户输入。例如,一个或多个服务器设备102向诸如虚拟现实显示设备110之类的客户端设备传送数据。在一个示例实施例中,一个或多个服务器设备102包括内容服务器。在一些示例实施例中,一个或多个服务器设备102包括通信服务器或网络托管服务器。另外,一个或多个服务器设备102可以包括下文关于图10描述的一个或多个计算设备。
如图1所示,一个或多个服务器设备102包括多媒体流式传输系统103。一个或多个服务器设备102可以包括多媒体流式传输系统103的全部或一部分。多媒体流式传输系统103可以包括在一个或多个服务器设备102上运行的应用或可以从一个或多个服务器设备102下载的软件应用的一部分。例如,多媒体流式传输系统103包括网络托管应用,其允许客户端设备与在一个或多个服务器设备102上托管的内容进行交互。为了说明,在环境100的一个或多个实施例中,虚拟现实显示设备110访问提供虚拟现实体验(例如,包括球面视频)的网页,虚拟现实体验由一个或多个服务器设备102支持。虚拟现实显示设备110运行应用以允许用户访问、查看和/或与托管在一个或多个服务器设备上的内容交互。示例多媒体流式传输系统103包括视频流式传输服务、电视流式传输服务、视频游戏流式传输服务等。
另外,多媒体流式传输系统103可以包括自适应速率分配系统104。自适应速率分配系统104可以允许多媒体流式传输系统103有效地向客户端设备流式传输虚拟现实内容。本文中所使用的术语“虚拟现实内容”是指能够经由虚拟现实显示设备呈现给用户的信息。特别地,术语“虚拟现实内容”包括以球面视频呈现的数字内容。因而,在一个或多个实施例中,虚拟现实内容是指包括延伸到一对人眼的典型视场(例如,180度)之外的视场的图像或视频。在一些实施例中,虚拟现实内容包括360度视听内容,或者换句话说,具有360度的水平视场的内容。虚拟现实内容项可以包括数字图像、视频、网站、网页、用户接口、菜单项目工具菜单、杂志、幻灯片、动画、社交帖子、评论、博客、数据馈送、音频、广告、矢量图形、位图、文件、前述中的一个或多个的任何组合,或其他电子内容。
术语“全景视频”或“沉浸式视频”通常是指具有放大的视场(例如,水平、垂直或对角线)的视频,其可以在虚拟现实显示器上被一次显示。如本文中所使用的,全景视频描绘大于180度的水平视场和大于90度的垂直视场。例如,球面视频或360度视频是全景视频的示例。另外,全景视频包括由一个或多个数字摄相机捕获的视频,其描绘在数字摄相机的前面、后面和两个侧面上的内容的表示。可替代地,在一个或多个实施例中,全景视频是指被组合或缝合在一起以提供放大的视场的多个视频(例如,由一个或多个数字摄相机捕获的)的集合。
多媒体流式传输系统103和自适应速率分配系统104可以包括计算机可执行指令,当由一个或多个服务器设备102、客户端设备108和/或虚拟现实显示设备110执行时,使得对应的计算设备执行若干动作,如下文更详细讨论的。
而且,如图1所示,环境100还可选地包括一个或多个内容提供器设备106。一个或多个内容提供器设备106可以包括多种计算设备。特别地,一个或多个内容提供器设备106可以包括可操作以生成虚拟现实内容的计算设备。例如,一个或多个内容提供器设备106包括提供球面视频或其他虚拟现实内容的一个或多个计算设备。一个或多个内容提供器设备106可以包括下文结合图10描述的一个或多个计算设备。内容提供器设备106可以向多媒体流式传输系统103提供内容以向客户端设备流式传输。例如,在一个或多个实施例中,多媒体流式传输系统103是协助内容提供器分发内容的第三方服务。
如图1所示,环境100包括虚拟现实显示设备110。虚拟现实显示设备110是客户端设备,并且可以包括各种计算设备。例如,在一个或多个实施例中,虚拟现实显示设备110包括下文关于图10描述的一个或多个计算设备。
更具体地,术语“虚拟现实显示设备”是指生成虚拟环境的数字3D表示的计算设备。为了说明的目的,术语“虚拟环境”是指对设置或位置(实际或想象的,而不考虑大小)中的物理存在的模拟。例如,虚拟环境可以包括对建筑物、城市、市场、森林、行星、外部空间、细胞或粒子中的物理存在的模拟。
虚拟现实显示设备包括计算设备(例如,耳机或头戴式显示器、手机、计算机、平板电脑、膝上型计算机),其生成虚拟环境的数字3D视图,该虚拟环境通过所生成的感官体验(例如,沉浸式视觉显示器、扬声器等)模拟用户的物理存在的。为了说明,虚拟现实显示设备可以包括头戴式显示器,其生成虚拟环境的沉浸式3D表示,其基于用户移动来修改虚拟环境的视图,以模拟虚拟环境中的物理存在。而且,虚拟现实显示设备还可以包括检测用户交互的一个或多个传感器。例如,虚拟现实显示设备可以包括用于检测用户的移动和/或手势的光学传感器、衣服、手套或其他传感器。类似地,虚拟现实显示设备可以包括用户输入设备,诸如控制器、遥控器、操纵杆、键盘、语音命令设备。
在一些示例实施例中,虚拟现实显示设备110包括计算设备(计算机、机顶盒、游戏控制台等)和单独的头戴设备,诸如有线或无线头戴式显示器。在其他实施例中,虚拟现实显示设备110包括具有集成显示器的设备。虚拟现实显示设备110经由头戴式显示器提供虚拟环境的视图,并且基于用户移动来修改虚拟环境的视图以模拟虚拟环境中的物理存在。
尽管图1图示了设备的特定布置,但是各种附加布置是可能的。例如,虽然图1图示了单个客户端设备108,但是在一个或多个实施例中,环境100包括每个都具有虚拟现实显示器的多个客户端设备。在另一示例中,客户端设备108绕过网络112,直接与一个或多个服务器设备102通信。
类似地,尽管图1的环境100被描绘为具有各种部件,但是环境100可以具有附加的或备选的部件。例如,自适应速率分配系统104可以在单个计算设备上实现。可替代地,自适应速率分配系统104可以跨多个设备或部件来实现。此外,自适应速率分配系统104可以在与多媒体流式传输系统103分离的设备上操作。
通过示例,在一个或多个实施例中,多媒体流式传输系统103标识虚拟现实内容(即,全景视频)以流式传输到虚拟现实显示设备110。例如,自适应速率分配系统104访问来自虚拟现实内容的球面视频。自适应速率分配系统104将球面视频划分成片段,诸如六面球体,其包括六个图块(例如,顶部图块、底部图块和四个中间主体图块)。对于每个图块,自适应速率分配系统104生成各种视频质量水平,对应于以不同的比特率流式传输图块。虽然一些实施例包括将球面视频拆分成具有六个图块的六面球体,但是其他实施例可以包括将其他类型的全景视频拆分成六个或不同数目个图块。更进一步地,一个或多个实施例可以包括将球面视频拆分成多于或少于六个图块。类似地,在一个或多个实施例中,自适应速率分配系统可以向每个图块指派任何数目个类别和/或比特率。例如,自适应速率分配系统将每个图块指派为四个优先级类别中的一个优先级类别。可替代地,自适应速率分配系统采用十二个优先级类别的集合或另一数目个优先级类别。
继续上述示例,一个或多个服务器设备102从客户端设备接收指示视口的输入。如本文中所使用的,术语“视口”是指在虚拟现实显示器内向用户显示的视场。如此,虚拟现实显示器在视口(例如,显示的部分)内显示虚拟现实内容的一部分并且显示在视口外部(例如,外围部分)的虚拟现实内容。换句话说,虚拟现实显示器包括当前在视口内和用户面前可见的部分,以及超出与视口相关联的视场的用户侧面和后面的虚拟现实内容的一部分。视口可以包括指示视口的位置的信息,诸如球面视频内的视口的坐标。如此,视口信息指示相对于球面视频的显示部分和外围部分。
基于视口,自适应速率分配系统104向六面球体中的每个图块指派优先级。另外,自适应速率分配系统104基于每个图块所指派的优先级和可用带宽来确定流式传输每个图块所使用的比特率。然后,一个或多个服务器设备102以由自适应速率分配系统104确定的比特率向客户端设备108流式传输图块中的每个图块。在若干个实施例中,自适应速率分配系统在接收视口信息之前,将球面视频拆分成片段或图块。进一步地,在一些示例实施例中,自适应速率分配系统可以为每个图块生成和存储各种质量水平。可替代地,自适应速率分配系统基于视口的位置来实时地划分并且生成用于球面视频的片段。
现在转到图2,其图示了球面视频如何从3D球体映射到2D平面图像。特别地,图2图示了被示出为3D球体202a和映射的2D平面图像202b的球面视频的示例。另外,图2包括3D球体202a中示出的视口204a和在2D平面图像202b中示出的对应视口204b。
如上文所提及的,球面视频(例如,360度视频)是全景视频的实施例。为了便于说明,图2至图7是用球面视频来描述的。然而,将领会到,关于球面视频描述的技术、原理和动作同样适用于其他类型的全景视频。同样地,图2至图7描述了六面球体。还将领会,关于六面球体描述的技术、原理和动作同样适用于其他配置的图块,或者甚至六面形状。
作为简要概述,球面视频通过采用纹理化向用户提供了沉浸式体验。自适应速率分配系统104使用纹理为3D对象网格提供表面包裹,其中3D纹理是传统2D纹理的逻辑扩展。通过将球面视频作为3D纹理映射到3D几何网格(通常是球体)上来创建球面视频,其中用户位于该几何结构的中心。因而,图2示出了球面视频的给定帧的3D球体202a,其中箱体206表示用户的位置。注意,图2图示了球面视频的给定帧,本文中所描述的相同概念和原理适用于具有任何数目个帧的球面视频。
如3D球体202a所示,视口204a在垂直方向和水平方向上都表示90度视角。例如,3D球体202a的中心处的箱体206表示用户的方位,并且视口204a表示用户面向的方向。更具体地,箱体206表示虚拟现实显示器的位置,用户通过其观看球面视频。因而,当箱体206的方位和/或姿态改变(例如,用户移位虚拟现实显示的位置)时,在3D球体202a上的视口204a的位置也改变,其导致用户正在在球面视频内查看的内容发生改变。
类似地,2D平面图像202b中的视口204b表示映射到2D平面图像202b上的相同的90度视角。因为视口204b仅捕获球面视频的总可用内容的一部分(例如,360度中的90度),当球面视频播放时,用户随着球面视频自由移动而观看附加内容。当用户在球面视频内改变其视图时,视口204b的位置在2D平面图像202b内移动。例如,响应于用户改变虚拟现实显示器的位置,视口204b在2D平面图像202b内左/右移动和上/下移动,其中用户通过该虚拟显示显示器观看球面视频。
在一些示例实施例中,视口大于90度视角,诸如96度视角、或小于90度视角。另外,当视口204b被示出为正方形时,在一些示例实施例中,视口是矩形、椭圆形、重叠圆或另一形状。进一步地,虽然仅描述了一个视口,当用户正在观看立体的(例如,3D)的虚拟现实内容时,其包括用户通过虚拟现实显示器可用的完整视场,但是将领会,一些实施例包括3D虚拟现实球面视频的每个立体流的单独视口。
如上文所提及的,自适应速率分配系统104可以接收关于球面视频内的视口的位置和方位的信息(例如,视口信息)。作为视口跟踪的概述,视口方位通常使用欧拉角度使用相对于x轴、y轴和z轴的旋转来定义。另一方法涉及使用采用单位旋转矩阵的四元组。特别地,四元组由两个值集合组成:第一,由表示设备围绕其发生旋转的轴的[x,y,z]元组组成的集合;第二,表示将围绕该轴发生的旋转量的w分量。使用这四个值,自适应速率分配系统104可以准确地描述设备方位,同时避免诸如万向节锁定之类的问题。
更具体地,为了跟踪视口,自适应速率分配系统104使用以下三个步骤创建专门为六面球体3D网格片段中的每个六面球体3D网格片段设置的单位四元组的有效范围。首先,自适应速率分配系统104将欧拉角转换成用于虚拟现实显示取向跟踪的单位四元组表示。接下来,自适应速率分配系统104计算与来自每个四元组的归一化方向向量相对应的数组。最后,自适应速率分配系统104将这些值组合在一起,以计算六面球体(即,六面空间)内部的特定于片段的四元组表示的范围。以这种方式,自适应速率分配系统104可以标识用户的视口朝向哪个3D网格片段或图块以及球面视频播放时视口的移动。
现在转到图3A和图3B,将提供根据一个或多个实施例的关于生成用于球面视频的片段的附加细节。特别地,图3A和图3B图示了被划分成3D网格片段或图块的示例球面视频。例如,图3A示出了被拆分成多个网格片段304a至304c的3D球体网格302a。然后,使用这些片段,自适应速率分配系统104可以进一步将网格划分成图块。例如,如下文所描述的,自适应速率分配系统104可以基于3D网格片段来生成六面球体302b。
在描述生成包括图块的六面球体的自适应速率分配系统104的过程之前,给出了生成3D球体网格302a的概述。在一个或多个实施例中,自适应速率分配系统104基于质量参数来生成3D球体网格302a。质量参数可以说明平滑度和渲染速度之间的折衷。例如,当质量参数指示增加的平滑度时,球面视频渲染更多的三角形,其产生更高质量的球面视频。当质量参数指示更快的渲染速度时,球面视频渲染较少的三角形,从而使得球面视频看起来更加清晰并且不太平滑。
具体地,质量参数是两个子参数的组合,这两个子参数一起控制球体的平滑度。第一子参数是切片的数目,其表示通过球面视频的垂直切割(例如,垂直网格线)的数目。第二个子因子是堆叠的数目,其表示通过球面视频的水平切割(例如,水平网格线)的数目。
下面的列表1提供了用于创建3D球体网格302a的伪代码。将领会到,其他方法可用于创建3D球体网格302a。进一步地,在其中全景视频不是球面视频(例如,全景视频具有180度或270度的水平视场)的实施例中,自适应速率分配系统104可以应用如下文所提供的关于球面视频的类似技术。例如,自适应速率分配系统104创建完整的3D球体网格,然后忽略或丢弃没有内容存在的3D网格的部分。在另一实例中,自适应速率分配系统104首先减少3D网格计算以适应全景视频的视场。
列表1
如上文所提及的,质量参数平衡了质量(即,平滑度)和渲染速度之间的折衷。例如,使用太多的堆叠和切片耗尽硬件资源,诸如用于图形处理单元(GPU)辅助视频渲染的存储器,其可以导致更低的性能而没有带来质量的大的改进。另一方面,堆叠和切片太少会导致块状和粒状质量。因而,自适应速率分配系统104最初选择较高质量的参数,但是当硬件资源变得不可用时,可以自适应地降低质量参数。以这种方式,自适应速率分配系统104实现了最大化可用计算资源之间的平衡,以在不会使计算设备负担过重的情况下提供最高质量的球面视频。
使用3D球体网格302a,自适应速率分配系统104可以生成3D网格片段304a至304c。如图3A所示,自适应速率分配系统104以两步过程将3D球体网格302a划分成多个不同的3D网格。在第一步中,自适应速率分配系统104将球体分成三个主要部分:顶盖、中间主体和底盖。顶盖包括从球体的顶点(即,顶部极点)到中间主体主体(+β°)的顶盖堆叠306的网格。中间主体包括在底部网格盖308和底部盖堆叠(-β°)之间延伸的网格。底盖包括从底部网格盖308到球体的底部点(即,底部极点)的网格三角形。以这种方式,自适应速率分配系统104创建顶部网格片段304a、中间主体网格片段304b和底部网格片段304c。
在第二步骤中,自适应速率分配系统104进一步将中间主体拆分成多个3D网格。特别地,自适应速率分配系统104将中间主体网格片段304b剖分成附加的网格片段。例如,自适应速率分配系统104将中间主体网格片段304b拆分成两个或更多个相等的大小。例如,如果中间主体网格片段304b为360度片段,则自适应速率分配系统104将每个附加片段拆分成120度片段、90度片段、60度片段或30度片段。换句话说,自适应速率分配系统104拆分每个附加网格片段以覆盖α°,其中α°是总的中间主体网格片段304b的因子(例如,30°、60°、90°或120°)。可替代地,自适应速率分配系统104将附加网格片段不对称地从中间主体网格片段304b中拆分开。
如上文所提及的,在一个或多个实施例中,自适应速率分配系统104创建包括球面视频的图块的六面球体。为了说明,图3B示出了包括六个六面球体图块310a至310c的六面球体302b。具体地,图3B示出顶部图块310a、四个中间主体图块310b和底部图块310c。
为了形成六面球体302b,自适应速率分配系统104采用α°和β°的以下值,α°=π/2和β°=π/4。然而,将理解,自适应速率分配系统104可以采用α°和β°的其他值。例如,自适应速率分配系统104基于用户通过其正在观看球面视频的虚拟现实显示器的设置来选择α°和β°。进一步地,因为平铺(tiling)过程是一般过程,所以相同的过程可以应用于除了3D球体之外的其他几何投影,诸如3D立方体,或者当全景视频小于360度时的情形,如先前所描述的。
图4图示了划分成六个六面球体图块的球面视频的示例2D映射。如所图示的,所划分的球面视频402包括关于图3A至图3B所描述的空间裁剪的六个六面球体图块310a至310c。即,图4中的所划分的球面视频402图示了顶部图块310a、四个中间主体图块310b和底部图块310c。虽然所划分的球面视频402仅包括六个图块,但是将领会,自适应速率分配系统104可以生成更多或更少的图块。例如,自适应速率分配系统104生成两个底部图块或两个中间主体图块。
在一些示例实施例中,自适应速率分配系统104采用诸如MPEG-DASH SRD(下文所描述的)之类的空间关系描述来划分片段。以这种方式,自适应速率分配系统104可以以逻辑和有组织的方式拆分图块。另外,空间关系描述使得自适应速率分配系统104能够标识每个图块相对于每个其他图块和相对于作为整体的球面视频的位置。
现在转到图5A、图5B和图6,现在将提供关于确定用于优先级排序的基于片段(例如,基于图块)的球面视频流式传输的自适应速率分配的附加描述。特别地,图5A至图5B图示了基于用户的视口被分配优先级的示例球面视频502。图6图示了对球面视频502的每个网格片段(例如,图块)使用不同分辨率的示例图。
作为概述,图5A和图5B将被示为2D平面图像的球面视频502拆分成多个(即,二十个)图块506。虽然为了便于说明,图5A至图5B被显示为2D平面图像,将领会本文中所描述的概念和原理也适用于对应的3D球面视频。例如,自适应速率分配系统104将3D球体网格拆分成二十个图块。而且,虽然球面视频502的2D平面图像包括比包括在六面球体中的更多的图块,但是将领会,关于图5和图6中的图块描述的概念和原理同样适用于具有任何数目个3D网格片段的六面球体或六面空间中的图块。
如上文所提及的,图5A图示了向球面视频502内的图块506指派优先级的自适应速率分配系统104。在一个或多个实施例中,自适应速率分配系统104基于视口504来指派优先级。例如,自适应速率分配系统104向当前视口内的图块指派更高优先级(例如,P1)并且向球面视频502中的视口外部的区域中的图块指派较低优先级(例如,P2和P3)。
为了说明,自适应速率分配系统104从客户端设备接收指示视口504在球面视频502内的位置的视口信息。如所图示的,视口504位于球面视频的中心附近。如此,自适应速率分配系统104向包括视口504的图块指派最高优先级(例如,P1)。另外,自适应速率分配系统104向与视口504相邻的图块指派次最高优先级(例如,P2),因为这些图块与视口504的接近度以及用户将在随后查看那些图块的可能性。最后,如所示出的,自适应速率分配系统104向位于更远离视口504的图块指派低优先级(例如,P3),因此,用户随后不太可能查看那些图块。虽然示出了三个优先级类别(例如,P1、P2和P3),但是当向图块506指派优先级时,自适应速率分配系统104可以采用任何数目个优先级类别。
如上文所描述的,自适应速率分配系统104可以基于图块与视口504的接近度来向图块指派优先级。在一些实施例中,自适应速率分配系统104基于图块在球面视频502内的位置来指派优先级。例如,如图5B所示,自适应速率分配系统104基于用户在球面视频502中向上看的低概率来向球面视频502的顶部上的图块指派最低优先级(例如,P3)。
在一些示例实施例中,自适应速率分配系统104基于图块内的虚拟现实内容来为图块指派优先级。例如,即使包含广告的图块远离视口504,自适应速率分配系统104也向该图块指派高优先级。作为另一示例,自适应速率分配系统104基于那些内部缺乏内容的图块(例如,只有蓝色/灰色天空)来向球面视频502的顶部的图块指派最低优先级。将领会,自适应速率分配系统104可以基于上文所描述实施例的组合来指派图块优先级。
如上文所提及的,自适应速率分配系统104基于用户随后可能看到的位置(例如,视口的预期未来位置)来为图块指派优先级。当未来预期图块不在用户的当前视口(即,视场)内或邻近用户的当前视口(即,视场)时,向用户下一次可能看到的位置指派较高的优先级可能特别有用。为了证明,在一些实施例中,自适应速率分配系统104遵循脚本/故事框架,其提供将在全景视频内发生的未来事件(例如,动作、移动或预期用户交互)的位置的指示。以这种方式,自适应速率分配系统104向涵盖未来事件的图块指派较高的优先级。自适应速率分配系统104可以进一步基于与每个事件相关联的重要性值来提升图块的优先级的水平。
类似地,在一个或多个实施例中,自适应速率分配系统104基于对象检测来向图块指派优先级。例如,自适应速率分配系统104在全景视频内(在视频的当前或未来帧中)标识对象的位置。基于对象的特性(例如,大小、位置、移动、与未来事件的相关性或潜在兴趣水平),自适应速率分配系统104可以增加对象所属的图块的优先级。
如上文所提及的,自适应速率分配系统104在接收关于视口504在球体视频502内的位置的输入之前,将球面视频502预先拆分成图块506。如此,视口504通常将重叠多个图块。当视口504与多个图块506重叠时,自适应速率分配系统104可以向多个图块指派相同的优先级。例如,图5B图示了自适应速率分配系统104向与视口504重叠的四个图块指派最高优先级P1
在一些示例实施例中,自适应速率分配系统104合并与视口504重叠的图块。例如,如图5B所示,自适应速率分配系统104将与视口504重叠的四个图块合并成单个图块。例如,为了速率分配的目的,自适应速率分配系统104将四个图块视为单个图块,其如下文所描述的。以这种方式,自适应速率分配系统104可以避免由于与视口504重叠的图块的质量变化而导致的边缘问题,并且实现平滑的观看体验。
使用为每个图块的指派的优先级,自适应速率分配系统104然后可以选择性地选择流式传输每个图块的速率。特别地,自适应速率分配系统104基于图块的指派的优先级来为每个图块分配比特率,使得带宽效率最大化。以这种方式,自适应速率分配系统104可以向具有有限带宽可用性的虚拟现实显示设备流式传输高质量的球面视频。
现在将给出自适应速率分配系统104如何分配用于流式传输球面视频的速率的详细示例。将领会到,自适应速率分配系统104可以采用其他/附加方法、技术和过程来分配用于流式传输球面视频的速率。特别地,尽管以下示例提供分配用于流式传输球面视频的速率的自适应速率分配系统104的一个实施例,但是将领会到,其他组合的优化解决方案可以用于解决这种类背包问题。例如,自适应速率分配系统104可以使用其他多选择背包问题算法。
为了向球面视频内的每个图块优化地分配速率,自适应速率分配系统104利用用于给定虚拟现实显示设备的带宽预算(即,可用带宽量)。在一个或多个实施例中,虚拟现实显示设备指示虚拟现实显示设备的带宽限制。在其他实施例中,自适应速率分配系统104与虚拟现实显示设备进行通信以标识带宽限制。例如,自适应速率分配系统104使用虚拟现实显示设备执行一系列的下载测试,以标识可用带宽量。为了说明的目的,用于给定虚拟现实显示设备的可用带宽预算被表示为WB。进一步地,在一些示例实施例中,自适应速率分配系统104定期更新带宽限制,以考虑对带宽预算的任何改变。
在自适应速率分配系统104获得用于给定虚拟现实显示设备的可用带宽量(例如,WB)时,自适应速率分配系统104然后可以分配球面视频的图块的速率以最大化带宽。最初,自适应速率分配系统104确定以最低质量水平流式传输球面视频的每个图块所需的带宽量。以这种方式,自适应速率分配系统104确保球面视频的每个图块将以最低的可接受质量水平传送到虚拟现实显示设备。因而,自适应速率分配系统104确定以最低比特率将所有图块流式传输到虚拟现实显示设备(被表示为WMin)所需的最小比特率。
注意,自适应速率分配系统104通常将质量与比特率相关联。因此,当图块的质量(例如,分辨率、渲染的三角形的数目、像素密度)增加时,流式传输图块所需的比特率随之增加。然而,在一些示例实施例中,自适应速率分配系统104可以在不改变质量水平的情况下增加图块的比特率。
在确定最小所需比特率(即,WMin)之后,自适应速率分配系统104标识带宽预算(即,WB)和被表示为WS的最小所需比特率之间的过剩带宽量。为了说明,自适应速率分配系统104将WS确定为:
WB–WMin=WS
然后,自适应速率分配系统104基于指派给图块的优先级来最佳地分配过剩带宽(即,WS)。例如,在一个或多个实施例中,自适应速率分配系统104确定过剩带宽是否使得能够以更高的质量水平发送具有较高优先级的图块(例如,与视口重叠的图块)。更具体地,自适应速率分配系统104确定过剩带宽是否能够容纳以更高比特率向虚拟现实显示设备流式传输一个或多个图块。
为了说明,自适应速率分配系统104标识被指派至最高优先级类别的每个图块,其在图5B中用P1标记。自适应速率分配系统104还确定使用最高比特率以最高质量水平流式传输最高优先级图块所需的带宽量,表示为WP1。利用该信息,自适应速率分配系统104确定过剩带宽是否可以容纳以最高比特率流式传输最高优先级图块,或者:
如果WS–WP1≥0。
如果过剩带宽可以容纳以最高比特率流式传输最高优先级图块,则自适应速率分配系统104使用最高比特率分配最高优先级图块。另外,自适应速率分配系统104还可以进一步确定被表示为WS1的、流式传输最高优先级图块之后剩余的附加过剩带宽的量。例如,自适应速率分配系统104将WS1确定为:
WS–WP1=WS1
使用该附加过剩带宽(例如,WS1),自适应速率分配系统104确定来自球面视频的附加图块是否还可以以最高比特率(即,较高质量)流式传输到客户端设备。例如,自适应速率分配系统104标识被指派给次最高优先级类别的每个图块,其在图5B中用P2标记。类似于上述描述,自适应速率分配系统104确定使用最高比特率来以最高质量水平流式传输次最高优先级图块所需的带宽量,表示为WP2。利用该信息,自适应速率分配系统104确定附加过剩带宽是否可以容纳以最高比特率流式传输次最高优先级图块,或者:
如果WS1–WP2≥0。
如果过剩带宽可以容纳以最高比特率流式传输次最高优先级图块,则自适应速率分配系统104使用最高比特率分配次最高优先级图块。自适应速率分配系统104继续确定剩余带宽是否可以容纳使用最高比特率以最高质量水平流式传输较低优先级图块的过程。如果自适应速率分配系统104确定球面视频中的图块中的每个图块可以使用最高比特率进行流式传输,则自适应速率分配系统104按原样分配图块,并且根据为每个图块分配的比特率开始向虚拟现实显示设备流式传输图块。
然而,在许多情况下,由于虚拟现实显示设备的带宽预算有限,自适应速率分配系统104确定剩余带宽的量(例如,WS和WS1)不足以流式传输指派给特定优先级类别的一个或多个图块(例如,分别以比特率WP1和WP2进行P1和P2流式传输)。在这种情况下,自适应速率分配系统104标识过剩带宽是否可以容纳使用次最高比特率以次最高质量水平流式传输一个或多个图块。
为了说明,假设自适应速率分配系统104已经分配了指派有最高优先级(例如,P1)的每个图块以最高比特率进行流式传输。进一步地,假设在给定带宽预算的情况下,自适应速率分配系统104确定指派给次最高优先级(例如,P2)的图块不能使用最高带宽进行流式传输(即,WS1-WP2<0)。如此,自适应速率分配系统104确定指派给优先级P2的图块是否可以使用第二高比特率以第二最高质量水平流式传输到虚拟现实显示设备。如果是,则自适应速率分配系统104将指派给优先级P2的图块分配给第二高比特率。进一步地,在给定剩余带宽的情况下,自适应速率分配系统104类似地确定指派有优先级P3的图块是否也可以使用第二最高比特率进行流式传输。
然而,如果自适应速率分配系统104确定指派给优先级P2的图块不能使用第二最高比特率流以第二最高质量水平被流式传输到虚拟现实显示设备,则在给定剩余可用带宽的情况下,自适应速率分配系统104确定指派给优先级P2的图块是否可以以第三高质量水平使用第三最高比特率进行流式传输。自适应速率分配系统104对于每个优先级类别和每个比特率水平重复该过程,直到剩余可用带宽的量被最小化为止。或者,自适应速率分配系统104确定一个或多个优先级类别需要使用最低比特率以最低可接受质量水平进行流式传输。
以这种方式,自适应速率分配系统104首先确保球面视频中的所有图块可以以最低可接受的质量水平进行流式传输。然后,自适应速率分配系统104基于图块的指派的优先级来使用球面视频的一个或多个图块的较高质量水平填充剩余可用带宽,直到带宽效率最大化为止。如此,自适应速率分配系统104s自适应地对球面视频中的图块进行优先级排序,以向用户当前正在观看/最有可能观看到的图块递送较高的质量水平,并且向用户视口外部的图块递送较低的质量水平。
在一些示例实施例中,自适应速率分配系统104为球面视频中的特定图块指定最小或最大质量水平,而不考虑图块的已指派的优先级。例如,因为即使有过剩带宽可用,自适应速率分配系统104指定要以不高于第二最高比特率流式传输的图5B中的最上一行的图块,因为图块的最上一行包括少量的虚拟现实内容。类似地,自适应速率分配系统104还可以限制距视口一预先确定的距离(例如,超过两个图块)的图块。限制一个或多个图块的带宽可以使得自适应速率分配系统104能够随着质量水平提高(例如,达到8K分辨率和12K分辨率)而实现较高的吞吐量水平。例如,即使可以使用特定比特率分配特定图块,自适应速率分配系统104也将图块重新分配到具有上限的比特率,从而允许其他图块以比它们否则可能被流式传输的更高比特率进行流式传输。
如先前所提及的,自适应速率分配系统104可以使用对应的比特率来以各种质量生成并且流式传输球面视频中的图块。一个质量度量是图块上的分辨率。例如,自适应速率分配系统104基于图块的所指派的优先级和带宽预算来使用对应的比特率以不同的分辨率流式传输图块。
为了说明,图6示出了作为分辨率降级过程的一部分的自适应速率分配系统104采用的不同分辨率的示例图,以其向客户端设备流式传输球面视频图块。特别地,图6图示了包括多个分辨率602a至620d的分辨率层级600。如所示出的,每个分辨率包括分辨率高度(RH)和分辨率宽度(RW)。例如,RH指示片段或图块中的像素/行的数目,而RW指示片段或图块中的像素/列的数目。
如图6所示,分辨率602a至602d从最低的第一分辨率602a(例如,最低可接受的质量水平)增加到最高的第四分辨率602d(例如,最高的质量水平)。例如,第一分辨率602a是第二分辨率602b的大小的一部分,第二分辨率本身是第三分辨率602c的大小的一部分。同样,随着分辨率的大小显著增加,流式传输片段所需的比特率要求也必须显著增加,其在客户端设备的带宽预算有限的情况下,显著影响了自适应速率分配系统104可以流式传输的图块的数目。虽然图6中示出了四个比例分辨率水平,但是将领会,自适应速率分配系统104可以采用任何数目个分辨率。进一步地,分辨率可以在高度和/或宽度上变化。
在一个或多个实施例中,自适应速率分配系统104首先分配球面视频中的每个图块来以最低的第一分辨率602a进行流式传输。然后,如上文所描述的,基于每个图块的优先级和可用带宽量,自适应速率分配系统104重新分配一个或多个图块来以更高的分辨率进行流式传输。例如,在自适应速率分配系统104将球面视频拆分成具有六个图块的六面球体时,自适应速率分配系统104分配与视口重叠的中间主体图块来以最高的第四分辨率602d进行流式传输,分配与视口相邻的两个中间主体图块来以第三分辨率602c进行流式传输,分配最后的中间主体图块来以第二分辨率602b进行流式传输,并且分配顶部图块和底部图块来以最低的第一分辨率602a(例如,最低可接受的分辨率)进行流式传输。基于分配,自适应速率分配系统104以与所分配的分辨率相对应的比特率流式传输图块中的每个图块。
如图6示出的实施例所示,自适应速率分配系统104可以为每个图块选择四个分辨率中的一个分辨率。在这种情况下,自适应速率分配系统104可以为每个图块生成和/或存储四个分辨率的每个分辨率。例如,自适应速率分配系统104执行预处理以在球面视频中为每个图块创建和存储分辨率中的每个分辨率。然后,在基于用户与球面视频的交互来向图块分配分辨率时,自适应速率分配系统104以已分配的分辨率访问和流式传输图块。可替代地,自适应速率分配系统104基于图块的分配来为每个图块实时地生成所需的分辨率。
自适应速率分配系统104可以采用多种方法来向客户端设备流式传输图块。在一些示例实施例中,自适应速率分配系统104使用多线程技术并行地流式传输图块中的每个图块,以确保所有图块同时开始流式传输。换句话说,自适应速率分配系统104向客户端设备同时流式传输图块中的每个图块,而不考虑图块的优先级。可替代地,自适应速率分配系统104根据图块优先级流式传输图块。在这些实施例中,自适应速率分配系统104从最高优先级到最低优先级流式传输图块。以这种方式,自适应速率分配系统104在向用户流式传输用户视图外部的图块之前,向用户流式传输用户正在观看/最可能观看的图块。
在其他实施例中,自适应速率分配系统104基于图块的分辨率来流式传输图块。例如,自适应速率分配系统104以最低可接受的分辨率流式传输所有图块。然后,自适应速率分配系统104为分配给次最低比特率的图块提供次最低分辨率。自适应速率分配系统104重复该过程,直到所有分配的分辨率被发送为止。注意,当自适应速率分配系统104在流式传输图块的较低分辨率之后流式传输相同图块的较高分辨率时,较高分辨率对较低分辨率进行缩放、构建和添加增强(例如,参见用于分层流式传输的H.265的SHVC(可扩展HEVC)的使用)。以这种方式,自适应速率分配系统104不重新发送或替换先前为图块发送的任何数据,而是添加到先前为图块发送的数据。
在一些实施例中,自适应速率分配系统104以所有图块的最低可接受的分辨率发送所有图块。对于具有以较高的分辨率分配的任何剩余图块,自适应速率分配系统104从最高优先级图块流式传输到最低优先级图块。以这种方式,在自适应速率分配系统104为每个图块提供基本层分辨率之后,自适应速率分配系统104然后从最高分辨率图块(例如,最高优先级图块)流式传输到第二最低分辨率图块。
现在给出了向球面视频中的图块分配分辨率和/或比特率的更详细的实施例。如上文所描述的,自适应速率分配系统104将球面视频拆分成n个图块,被表示为T={t1,t2,...,tn}。对于每个ti∈T的最高可能的质量水平具有sti的比特率要求和pti的优先级系数。如上文所提及的,自适应速率分配系统104向用户的当前视口(例如,P1)内的图块指派最高优先级并且向球面视频中的用户视口外部的区域中的图块指派最低优先级(例如,P3)。
另外,被表示为qti的图块ti的质量贡献是图块的比特率要求(即,sti)和优先级系数(即,pti)的函数。因而,sti×pti=qti。另外,如上文所提及的,客户端设备通常具有有限的带宽预算(例如,WB),其限制自适应速率分配系统104可以向客户端设备发送的所有图块的总比特率。
在该示例实施例中,令X={x1,x2,...,xi}表示自适应速率分配系统104向客户端设备提供的图块的集合。进一步地,每个xi∈X与原始图块ti∈T相对应。因而,每个xi具有优先级系数pxi=pti,或者换句话说,所发送的图块和原始图块之间的优先级系数相匹配。
另外,在该示例性实施例中,令L表示质量水平(例如,分辨率)的数目,其中每个质量水平具有标记k,其被标注为Rk(0≤k≤L)和图块ti的比特率用Rk表示,其被表示为进一步地,最低质量水平对应于最低比特率,其被表示为RL并且其是用户可以容忍的最小比特率(例如,最低可接受的质量水平)。此外,图块xi的质量贡献是qxi(例如,sxi×pxi=qth)。
而且,令S是流式传输球面视频的图块的总比特率。然后,对于T中的每个图块ti,自适应速率分配系统104如先前所描述的那样计算qi,其是如果自适应速率分配系统104以最高比特率流式传输ti时,ti可能对平均质量产生的贡献。自适应速率分配系统104然后计算以其最低比特率流式传输所有图块所需的最小比特率,其被表示为附加地,如先前所描述的,由于Wmin≤WB,所以可用带宽的数量Ws被表示为Ws=WB-Wmin。附加地,在示例实施例中,为了确定每个图块的最佳比特率,自适应速率分配系统104按从最大到最小的全局优先级对经过优先级排序的图块的列表进行排序。为了便于标注,假设图块被重新索引,使得经排序的图块列表为t1,t2,...,tn。如果则过剩带宽(即,Ws)足以容纳以最高比特率(R0)发送t1。图块x1具有比特率sx1=st1,并且对平均质量贡献q1。另外,对于x1之后的剩余图块,这留下了附加过剩带宽(即,Ws1),为对于t2,t3,...tn,重复上述算法,直到自适应速率分配系统104不能以剩余带宽预算Wl-1内的最高比特率流式传输一个或多个图块t1
然后,自适应速率分配系统104通过计算最低质量水平L':L'≤L使得来确定其可以向客户端设备流式传输的最高可能的比特率。图块x1具有比特率并且对平均质量贡献q'1。然后,流式传输x1之后的剩余带宽预算将为再次,示例算法重复上述过程以确定适当的比特率、过剩带宽和带宽预算量以及对于剩余图块xl+1,xl+2,…,xn中的每个图块的质量贡献。以这种方式,自适应速率分配系统104最大化带宽效率,同时在给定带宽预算的同时以最高质量水平流式传输球面视频的图块。
注意,在一个或多个实例中,诸如上文在列表2中所示出的,自适应速率分配系统104在主进程的会话开始时运行一次性实现方式。通过执行一次性实现方式,自适应速率分配系统104可以实时执行,并且在运行时间期间不需要任何附加的开销。换句话说,自适应速率分配系统104可以在O(nlogn)时间和O(n)空间中有效地操作,并且可以产生接近最优的解。另外,近似误差取决于在最高比特率(即,t1)下不能接收的针对第一图块选择的比特率与剩余的过剩带宽预算之间的差异。应当注意,分辨率降级是可选的。在备选实施例中,自适应速率分配系统104仅降级质量和整体比特率,而非改变分辨率。
现在转到图7,其图示了使用自适应速率分配系统104流式传输虚拟现实视频的序列图。如所示出的,图7包括服务器设备102,其包括自适应速率分配系统104;以及虚拟现实显示设备110。自适应速率分配系统104获得球面视频。例如,自适应速率分配系统104以最高分辨率接收球面视频的数据流,如果需要,则自适应速率分配系统104可以稍后对其降级。可替代地,自适应速率分配系统104从内容提供器设备接收球面视频的多个分辨率。在另外的实施例中,自适应速率分配系统104访问服务器设备102上所存储的球面视频。
在接收到球面视频时,自适应速率分配系统104将球面视频空间地划分714成包括3D网格片段的六面球体(即,全景视频)。自适应速率分配系统104选择3D模板网格并且将该3D模板网格应用(例如,映射)到所接收的球面视频。作为将球面视频映射到3D模板的一部分,自适应速率分配系统104将顶点位置和纹理坐标从3D模板传送到球面视频。以这种方式,自适应速率分配系统104实现球面视频(即,全景视频)的等距柱状投影(equirectangular)映射。
另外,自适应速率分配系统104使用从3D模板传送的3D网格来垂直和水平地(例如,切片和堆叠)划分所映射的球面视频。然后,使用该划分,自适应速率分配系统104将片段划分成六个3D网格片段(或另一数目个3D网格片段),以形成六面球体(即,六面空间)。
如图7所示,自适应速率分配系统104为每个3D网格片段生成716多个质量水平。如上文所提及的,自适应速率分配系统104使用在给定带宽约束(例如,带宽预算)的情况下可能的最高质量水平和比特率向客户端设备流式传输球面视频。结果,自适应速率分配系统104经常以不同的质量水平(例如,分辨率)流式传输各种片段。
为了生成针对每个3D网格片段的多个质量水平,在一个或多个实施例中,自适应速率分配系统104生成针对每个3D网格片段的每个分辨率水平的副本。例如,如果四个分辨率可用(例如,参见图6),则自适应速率分配系统104由从内容提供器设备706接收的最高分辨率副本生成针对每个3D网格片段的三个较低分辨率副本。
在一些示例实施例中,如上文所提及的,自适应速率分配系统104从内容提供器设备706接收用于球面视频的不同质量水平。在这些实施例中,如上文所描述的,自适应速率分配系统104将球面视频的每个副本空间划分成对应的3D网格片段(即,六面球体)。以这种方式,自适应速率分配系统104可以访问球面视频(即,全景视频)的每个3D网格片段的不同质量水平。
如所示出的,具有虚拟现实显示设备110的自适应速率分配系统104标识718带宽预算。例如,自适应速率分配系统104和虚拟现实显示设备110在彼此之间传送测试文件或其他数据,以确定可用带宽和/或带宽预算的量。进一步地,在一个或多个实施例中,当网络条件改变时,自适应速率分配系统104和虚拟现实显示设备110周期性地检查和更新带宽预算。
在一些示例实施例中,虚拟现实显示设备110向自适应速率分配系统104提供预先确定的带宽预算。例如,虚拟现实显示设备110向自适应速率分配系统104指示其最大比特率接收能力和/或处理能力。在各种实施例中,自适应速率分配系统104标识虚拟现实显示设备110或网络连接的特性,然后根据该特性来确定带宽预算。例如,自适应速率分配系统104为有线虚拟现实显示设备110确定比无线虚拟现实显示设备110更高的带宽预算。
使用带宽预算,自适应速率分配系统104还从虚拟现实显示设备110接收720视口信息。如上文所描述的,视口信息指示虚拟现实显示设备110的方向和方位。如此,自适应速率分配系统104使用视口信息来表示用户的视口在球面视频内的坐标,自适应速率分配系统104进一步使用该坐标来标识哪些3D网格片段与视口重叠以及与视口相邻。
自适应速率分配系统104基于所接收到的视口信息来向3D网格片段指派722优先级。例如,自适应速率分配系统104标识哪些3D网格片段与视口重叠,并且向那些3D网格片段指派最高优先级。另外,自适应速率分配系统104向与视口相邻的3D网格片段指派最高优先级或次最高优先级。进一步地,自适应速率分配系统104向更远离视口的3D网格片段(例如,球面视频内的用户的外围视图的外部)指派较低优先级。如上文所描述的,自适应速率分配系统104可以可替代地向3D网格片段指派优先级。
基于每个3D网格片段的所指派的优先级,自适应速率分配系统104确定724针对每个3D网格片段的比特率分配。为了演示,自适应速率分配系统104标识与球面视频的最低可接受质量相对应的最小比特率。换句话说,自适应速率分配系统104确定自适应速率分配系统104可以以什么比特速率在最低质量水平下向客户端设备708流式传输每个3D网格片段。通常,当以最低质量水平流式传输每个3D网格片段时,流式传输3D网格片段所需的比特率低于带宽预算。
另外,经常存在在较高的质量水平下流式传输一次或多次的剩余的额外带宽。为了说明,在一个或多个实施例中,自适应速率分配系统104标识最高优先级的3D网格片段,并且确定过剩带宽是否容纳以对应的(更高)比特率流式传输最高优先级的三维网格片段。如果是,则自适应速率分配系统104向对应的比特率分配最高优先级的3D网段。如果不是,则自适应速率分配系统104确定最高优先级的三维网格片段是否可以在次最高质量水平和对应的比特率下进行流式传输。如上文所描述的,自适应速率分配系统104重复该过程,直到将球面视频中的每个3D网格片段被分配给了最高可能的质量水平及其对应的比特率为止,其在给定带宽预算的情况下使带宽吞吐量最大化。
如所示出的,自适应速率分配系统104使用分配的比特率来流式传输726 3D网格片段。如上文所描述的,自适应速率分配系统104以并行、串行或组合方式流式传输3D网格片段。进一步地,如先前所描述的,自适应速率分配系统104可以基于3D网格片段的所指派的优先级和所分配的比特率来智能地流式传输每个3D网格片段。
另外,自适应速率分配系统104可以重复(例如,如步骤728所示)接收720视口信息、向3D网格片段指派722优先级、确定724比特率分配、以及当球面视频播放时,流式传输3D网格片段的过程。例如,当用户在球面视频内进行交互(例如,改变位置、与对象等接合等)时,该视口信息被传送回自适应速率分配系统104,该自适应速率分配系统104继续对3D网格片段进行重新优先级排序,并且重新分配3D网格片段的比特率,以为用户提供最佳的虚拟现实体验。例如,在一些示例实施例中,如上文所描述的,自适应速率分配系统104每隔一秒或两秒接收视口更新,并且向虚拟现实显示设备110提供更新后的虚拟现实内容。
附加地,本文中所描述的步骤和动作可以以不同的顺序执行,可以彼此并行地重复或执行,或者可以与相同或相似的步骤或动作的不同实例并行地执行。例如,如上文所描述的,尽管图7图示了自适应速率分配系统104将球面视频(即,全景视频)空间地划分714成具有若干个3D网格片段的六面球体(即,六面空间)的步骤,但是在一个或多个实施例中,自适应速率分配系统104以其他方式将球面视频拆分成多个图块。
现在转到图8,提供了关于自适应速率分配系统104的一个实施例的部件和能力的附加细节。特别地,图8图示了自适应速率分配系统104的示例实施例。如所图示的,图8中的自适应速率分配系统104在一个或多个服务器设备102(诸如上文结合图1所描述的一个或多个服务器设备)上操作。
自适应速率分配系统104包括但不限于内容管理器802、内容拆分器804、优先级指派器806、速率分配器808、内容提供器810和内容数据库812。下文对这些部件中的每个部件进行更加详细地描述。
如最近所提及的,并且如图8所示,自适应速率分配系统104包括内容管理器802。内容管理器802可以获得全景视频和其他虚拟现实内容。例如,内容管理器802从第三方内容提供器接收一个或多个3D虚拟现实全景视频。在一些示例实施例中,内容管理器802可以创建、生成或修改包括在全景视频中的虚拟现实内容。
另外,如图8所示,自适应速率分配系统104还包括内容拆分器804。内容拆分器804将全景视频划分成多个3D网格片段和/或图块。例如,如先前所描述的,内容拆分器804创建针对全景视频(例如,球面视频)的六面空间(例如,形成六面球体)。如上文所描述的,内容拆分器804可以采用各种方法和技术来将全景视频拆分成片段或图块。
而且,如图8所示,自适应速率分配系统104还包括优先级指派器806。优先级指派器806通常向全景视频中的每个片段或图块指派优先级。优先级通常基于从用户的客户端设备和/或虚拟现实显示器接收到的视口信息。如详细描述的,优先级指派器806向用户正在观看的片段(例如,视口内的)指派较高优先级并且向用户的当前视图外部的片段指派较低优先级。
如图8所示,自适应速率分配系统104还包括速率分配器808。通常,速率分配器808确定在哪个质量水平(例如,分辨率)和比特率下流式传输每个片段。更具体地,速率分配器808平衡带宽预算中的可用带宽与比特率要求和限制。以这种方式,速率分配器808最大化视频质量,同时最大化带宽效率,同时提供最高可能的视频质量。上文提供了关于确定速率分配的附加细节。
如图8所示,自适应速率分配系统104还包括内容提供器810。通常,内容提供器810向具有虚拟现实显示器的一个或多个用户的客户端设备提供所分配的片段。例如,内容提供器810以分配的比特率并行或串行地流式传输全景视频的每个片段。上文提供了关于所提供的分配的片段的附加描述。
在一些示例实施例中,内容提供器810向使用MPEG-DASH SRD(基于HTTP的动态自适应流式传输(DASH)空间关系描述(SRD))编码和封装的客户端设备流式传输全景视频,其有助于描述虚拟现实空间中的3D网格片段和/或图块的空间关系。作为概述,特别地,DASH(也被称为MPEG-DASH)是基于受约束的资源(诸如客户端处可用的带宽量(例如,带宽预算))来使得能够向客户端设备进行自适应比特率流式传输的ISO标准。多媒体内容存储在HTTP服务器上,并且附有作为可用片段及其各种比特率备选方案、其URL地址以及其他特性的清单的媒体演示描述(MPD)。
此外,如图8所示,自适应速率分配系统104还包括内容数据库812。内容数据库812以各种质量水平存储所接收的全景视频和/或全景视频的副本。另外,内容数据库812可以存储具有不同质量水平的所拆分的片段和/或图块,以向用户的客户端设备流式传输。
自适应速率分配系统104(如图8所示)的部件802至812中的每个部件可以包括软件、硬件或两者。例如,部件802至812可以包括存储在计算机可读存储介质上并且可由诸如客户端设备或服务器设备之类的一个或多个计算设备的处理器执行的一个或多个指令。当由一个或多个处理器执行时,自适应速率分配系统104的计算机可执行指令可以使得计算设备执行本文中所描述的特征学习方法。可替代地,部件802至812可以包括硬件,诸如用于执行某个功能或功能组的专用处理设备。可替代地,自适应速率分配系统104的部件802至812可以包括计算机可执行指令和硬件的组合。
此外,部件802至812可以例如被实现为一个或多个操作系统、一个或多个独立应用、应用的一个或多个模块、一个或多个插件、一个或多个库函数或可以被其他应用调用的函数、和/或云计算模型。因此,部件802至812可以被实现为诸如桌面或移动应用之类的独立应用。此外,部件802至812可以被实现为托管在远程服务器上的一个或多个基于web的应用。部件802至812还可以在一组移动设备应用或app中实现。为了说明,部件802至812可以在包括但不限于ADOBE PRIMETIME软件的应用中实现。“ADOBE”和“PRIMETIME”是AdobeSystems Incorporated在美国和/或其他国家的注册商标或商标。
为了评估一个或多个实施例的有效性,评估者使用安装有具有4GB RAM和AndroidMarshmallow 6.0.1的三星Galaxy S7智能手机的Samsung Gear VR HMD作为目标虚拟现实显示设备。评估者使用Oculus Mobile SDK 1.0.3与Android SDK API 24联合开发基于MPEG-DASH SRD的360VR视频流式传输应用原型,并且将其用于应用改编和运行实验。
目标虚拟现实显示设备提供的总分辨率为2560×1440(每只眼睛1280×1440),其中最大帧率为60FPS并且水平FoV(视场)为96度。评估者将360VR视频原型的垂直FoV设置为90度。评估者为了应用不同的实施例,准备了可以公开获得的五种不同的360度矩形格式的样本视频作为测试序列。特别地,五个样本视频具有以下规格:样本1:分辨率为3840×1920,原始比特率为20.0Mbps以及FPS为30Hz;样本2:分辨率为3840×1920,原始比特率为13.1Mbps以及FPS为30Hz;样本3:分辨率为1920×690,原始比特率为4.4Mbps以及FPS为30Hz;样本4:分辨率为3840×2160,原始比特率为13.0Mbps和FPS为24Hz;以及样本5:分辨率为4096×2048,原始比特率为12.6Mbps以及FPS为24Hz。
为了受益于基于MPEG-DASH SRD的流式传输的特征并且为了纹理化六面球体网格的目的,评估者根据六面球体几何结构空间地裁剪视频并且生成6个不同的图块。评估者使用H.264AVC编码器使用分层分辨率降级将所有视频片段编码为L=4个不同的表示,其中如图6所描绘的,原始分辨率以每个步长多项地缩小。假设Rw(TREPi)是表征为i的特定视频图块T的分辨率宽度(类似地,分辨率高度为Rh(TREPi)),则
评估者使用安装有Microsoft Windows 7Professional 6.1.7601OS的Dell XPS8900基于x64的PC作为基于HTTP的流式传输服务器,并且使用MPEG-DASH SRD来描述平铺。为了量化质量测量的目的,360VR视频会话的质量是所有图块的比特率的函数(其中最大质量与所有递送的图块的最大分辨率相对应)。这种方法是一般性的,与质量的测量无关。在这个初步研究中,评估者使用平均比特率。评估者将不同的分辨率集合应用于不同的图块,以测试经优先级排序的自适应如何影响平均比特率以及所感知的质量。
评估者收集了平均比特率的统计数据,并且将结果与没有采用基于图块的方法的360VR视频播放器中的当前实践进行比较。每个试验运行总共30秒,每次试验期间,每个图块都在用户视口内持续5秒钟。当为当前FoV内的图块指派最大分辨率并且为外围图块指派两个不同的较低分辨率(一个具有最低分辨率(REP1)),而另一具有第二最高分辨率(REP3))时,评估者在平均比特率方面测量带宽使用。
作为基线情况,没有应用自适应,360VR视频被平铺,不存在视口认知,并且以最高表示(REP1)流式传输所有图块。对于样本1,REP4使用基线情况的27.7%,REP2使用基线情况的74.1%。对于样本2,REP4使用基线情况的27.8%,REP2使用基线情况的62.9%。对于样本3,REP4使用基线情况的32.6%,REP2使用基线情况的72.0%。对于样本4,REP4使用基线情况的30.1%,REP2使用基线情况的74.4%。对于样本5,REP4使用基线情况的45.3%,REP2使用基线情况的75.6%。因此,与基线情况相比较,实施例可以显著地节省高达72%的带宽使用。
此外,在不在当前视口内的外围图块上的即使是最低的表示也导致了从用户的角度来看的微小有时甚至不可察觉的视觉改变,并且同时它维持了主视口的原始质量,以确保令人满意的用户体验。平铺方法可以进一步增加360VR视频的整体质量,从而几乎使得总的360度视角分辨率在360度空间中能够达到8K及以上。可以以甚至更高的分辨率、以HMD的固有分辨率或以接近HMD的固有分辨率流式传输视口内的图块。由于处理单个庞大的视频内容的硬件资源有限而导致这在先前是不可能的。
图1至图8、对应的文本和示例提供了用于流式传输虚拟现实内容的若干个不同系统和设备。除了前述之外,还可以根据包括用于完成特定结果的方法中的动作和步骤的流程图来描述实施例。例如,图9图示了根据一个或多个实施例的示例性方法的流程图。关于图9描述的方法可以用较少或更多的动作执行,或者可以以不同的顺序执行动作。附加地,本文中所描述的动作可以彼此并行地或与相同或类似动作的不同实例并行地重复或执行。
图9图示了根据一个或多个实施例的用于提供带宽高效的虚拟现实视频的方法900中的一系列动作的流程图。在一个或多个实施例中,方法900在包括自适应速率分配系统104的数字媒体环境(诸如用于提供沉浸式虚拟现实体验的数字媒体环境)中执行。方法900旨在说明根据本公开的一种或多种方法,并且不旨在限制潜在的实施例。备选实施例可以包括比图9中明确表达的那些动作更多的、更少的或不同的动作。
如图9所示,方法900包括将全景视频划分成图块的动作910。特别地,动作910可以包括将全景视频划分成多个图块310a至310c。例如,动作910可以包括采用空间关系描述来将全景视频划分成多个图块。在一些示例实施例中,全景视频包括球面视频或360度视频。在这些实施例中,多个图块组合以形成360度视场。在其他实施例中,全景视频包括小于360度的视场。在几个示例实施例中,全景视频是包括两个对应的视频流的立体视频。在一个或多个实施例中,动作910包括生成一个或多个顶部图块、一个或多个底部图块和多个中间主体图块。
类似于动作910,在一些示例实施例中,通过执行用于将全景视频空间地划分成三维(3D)六面空间的步骤来生成3D网格片段。在这些实施例中,该步骤包括将全景视频拆分成多个垂直堆叠和多个水平切片以及基于一个或多个堆叠和/或切片将全景视频划分成多个3D网格的动作。
另外,如图9所示,方法900包括接收视口信息的动作920。特别地,动作920可以涉及从客户端设备接收视口信息。动作920可以从视口信息指示视口,并且还可以包括指示视口(例如,视场)在全景视频内的位置的位置数据。进一步地,方法900可以包括标识与视口重叠的多个图块中的一个或多个图块以及与该视口相邻的多个图块中的一个或多个图块的动作。
而且,方法900还包括向每个图块指派优先级的动作930。特别地,动作930可以包括基于视口信息向多个图块506中的每个图块指派优先级。在一些示例实施例中,动作930还包括向与视口重叠的一个或多个图块指派最高优先级水平,向与视口相邻的一个或多个图块指派次最高优先级水平,以及向多个图块中的剩余的一个或多个图块指派较低优先级水平。在一个或多个实施例中,动作930包括通过确定每个图块在全景视频内的当前位置与当前视口之间的相关性来基于视口向多个图块中每个图块指派优先级。
另外,如图9所示,方法900包括确定用于每个图块的速率的动作940。特别地,动作940可以涉及对于每个图块,确定与图块的已指派的优先级相对应的比特率。在一个或多个实施例中,动作940可以涉及使用多选择背包问题算法向图块的优先级水平分配比特率。例如,动作940可以包括确定向客户端设备流式传输多个图块的最小比特率,其中最小比特率与全景视频的最低可接受的质量相对应,并且其中以最小比特率向客户端设备流式传输多个图块不超过带宽限制。在一些示例实施例中,动作940包括确定一个或多个更高比特率以向客户端设备流式传输多个图块,其中一个或多个更高比特率与全景视频的一个或多个较高质量水平相对应。
在一个或多个实施例中,确定与每个图块的已指派的优先级相对应的比特率包括通过从带宽限制(即,带宽预算)中减去多个图块的最小比特率来确定第一剩余带宽量,并且确定第一剩余带宽量使得能够以较高比特率中的最高比特率来流式传输多个图块中的一个或多个最高优先级图块。在附加的实施例中,确定与每个图块的已指派的优先级相对应的比特率还包括通过从第一剩余带宽量减去用于流式传输一个或多个最高优先级图块的最高比特率来确定第二剩余带宽量,并且确定第二剩余带宽量使得能够以较高比特率中的次最高比特率流式传输多个图块中的一个或多个次最高优先级图块,其中次最高比特率低于最高比特率并且高于最小比特率。
在一些实施例中,通过执行用于基于每个3D网格片段的已指派的优先级来确定针对每个3D网格片段的比特率分配的步骤,向3D网格片段分配比特率。例如,该步骤包括确定向客户端设备流式传输多个3D网格的最小比特率,其中最小可接受比特率与全景视频的最低可接受质量相对应,并且其中以最小比特率向客户端设备流式传输3D网格片段不超过带宽限制;通过从带宽限制减去3D网格片段的最小比特率来确定剩余带宽量;以及确定剩余带宽量使得能够以最高比特率流式传输流指派给最高优先级的一个或多个3D网格片段。
在一个或多个实施例中,动作940包括基于每个图块的已指派的优先级的排序和剩余可用带宽量来迭代地确定流式传输多个图块中的每个图块的最高可用比特率,使得任何剩余可用带宽被最小化,并且其中多个图块中的每个图块至少以最小比特率进行流式传输。在一些示例实施例中,具有相同优先级的图块以相同的比特率进行流式传输。可替代地,具有相同优先级的图块以不同的比特率进行流式传输。在一些实施例中,对于每个图块,确定与图块的指派的优先级相对应的比特率包括将较高比特率分配给具有较高优先级的图块,并且将较低比特率分配给具有较低优先级的图块。
如图9所示,方法900还包括向客户端设备流式传输每个图块的动作950。特别地,动作950可以涉及使用对应确定的比特率向客户端设备108流式传输每个图块。在一些示例实施例中,动作950包括使用多线程并行地流式传输图块,使得图块全部在同一时间开始流式传输和/或在客户端设备108上播放。进一步地,在一个或多个实施例中,客户端设备108包括虚拟现实显示设备110,诸如无线虚拟现实显示器。
如本文中所使用的术语“数字环境”通常是指例如作为独立应用(例如,个人计算机或在计算设备上运行的移动应用)、应用的模块、应用的插件、可以由网络应用程序创建系统调用的库函数或函数、服务器设备和/或云计算系统实现的环境。数字媒体环境允许自适应速率分配系统104在给定有限带宽约束的情况下向用户提供沉浸式虚拟现实体验。
本公开的实施例可以包括或利用专用或通用计算机,其包括计算机硬件,诸如例如,一个或多个处理器和系统存储器,如下文更详细地讨论的。在本公开范围内的实施例还包括用于携带或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。特别地,本文中所描述的过程中的一个或多个过程可以至少部分地被实现为在非暂态计算机可读介质中实现并且可由一个或多个计算设备(例如,本文中所描述的媒体内容访问设备中的任一个媒体内容访问设备)执行的指令。通常,处理器(例如,微处理器)从非暂态计算机可读介质(例如,存储器等)接收指令,并且执行这些指令,从而执行一个或多个过程,其包括本文中所描述的过程中的一个或多个过程。
计算机可读介质可以是可以由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是非暂态计算机可读存储介质(设备)。携带计算机可执行指令的计算机可读介质是传输介质。因此,作为示例而非限制,本公开的实施例可以包括至少两种明显不同种类的计算机可读介质:非暂态计算机可读存储介质(设备)和传输介质。
非暂态计算机可读存储介质(设备)包括RAM、ROM、EEPROM、CD-ROM、固态驱动器(“SSD”)(例如,基于RAM)、闪存存储器、相变存储器(“PCM”)、其他类型的存储器、其他光盘存储器、磁盘存储器或其他磁存储设备、或可以用于以计算机可执行指令或数据结构的形式存储所需程序代码器件并且可以由通用或专用计算机访问的任何其他介质。
进一步地,在到达各种计算机系统部件时,具有计算机可执行指令或数据结构形式的程序代码器件可以被自动地从传输介质传送到非暂态计算机可读存储介质(设备)(或反之亦然)。例如,通过网络或数据链路接收的计算机可执行指令或数据结构可以被缓存在网络接口模块(例如,“NIC”)内的RAM中,然后被最终传送到计算机系统RAM和/或计算机系统处的更少的易失性计算机存储介质(设备)。因此,应当理解,在还(甚至主要地)利用传输介质的计算机系统部件中可以包括非暂态计算机可读存储介质(设备)。
计算机可执行指令包括例如当在处理器处被执行时使得通用计算机、专用计算机或专用处理设备执行某一功能或功能组的指令和数据。在一些实施例中,在通用计算机上执行计算机可执行指令以将通用计算机转换成实现本公开的元素的专用计算机。计算机可执行指令可以是例如二进制文件、诸如汇编语言之类的中间格式指令、甚至是源代码。尽管主题已经以结构特征和/或方法动作特有的语言进行了描述,但是应当理解,所附权利要求中限定的主题不一定限于上文所描述的特征或动作。相反,所描述的特征和动作被公开为实现权利要求的示例形式。
本领域技术人员将领会,本公开可以在具有多种类型的计算机系统配置的网络计算环境中实践,其包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子产品、网络PC、小型计算机、大型计算机、移动电话、PDA、平板电脑、寻呼机、路由器、交换机等。本公开还可以在分布式系统环境中实施,其中通过网络链接(通过硬连线数据链路、无线数据链路或通过硬连线数据链路和无线数据链路的组合)的本地计算机系统和远程计算机系统都执行任务。在分布式系统环境中,程序模块可能位于本地存储器存储设备和远程存储器存储设备二者中。
本公开的实施例还可以在云计算环境中实现。在本说明书中,“云计算”被定义为用于使得能够对可配置计算资源的共享池进行按需网络访问的模型。例如,云计算可以在市场中使用,以向可配置计算资源的共享池提供无处不在和方便的按需访问。可以经由虚拟化快速提供可配置计算资源的共享池,并且以低管理工作量或低服务提供器交互来发布,然后相应地进行缩放。
云计算模型可以由各种特性组成,诸如例如,按需自助服务、宽带网络访问、资源池化、快速灵活性、可测量的服务等等。云计算模型还可以揭示各种服务模型,诸如例如,软件即服务(SaaS)、平台即服务(PaaS)以及基础架构即服务(“IaaS”)。还可以使用不同的部署模型(诸如私有云、社区云、公共云、混合云等)部署云计算模型。在本说明书和权利要求书中,“云计算环境”是采用云计算的环境。
图10以框图形式示出了可以被配置成执行上文所描述的过程中的一个或多个过程的示例性计算设备1000。将领会到,自适应速率分配系统104可以包括计算设备1000的实现方式。如图10所示,计算设备可以包括处理器1002、存储器1004、存储设备1006、I/O接口1008和通信接口1010。在某些实施例中,计算设备1000可以包括比在图10所示的部件少或多的部件。图10所示的计算设备1000的部件现在将更加详细地进行描述。
在特定实施例中,处理器1002包括用于执行指令的硬件,诸如构成计算机程序的指令。作为示例而非限制,为了执行指令,处理器1002可以从内部寄存器、内部高速缓存、存储器1004或存储设备1006取回(或获取)指令并且对其进行解码和执行。
计算设备1000包括耦合至处理器1002的存储器1004。存储器1004可以用于存储数据、元数据和程序以供由处理器执行。存储器1004可以包括易失性存储器和非易失性存储器中的一个或多个,诸如随机存取存储器(“RAM”)、只读存储器(“ROM”)、固态盘(“SSD”)、闪存、相变存储器(“PCM”)或其他类型的数据存储装置。存储器1004可以是内部存储器或分布式存储器。
计算设备1000包括存储设备1006,其包括用于存储数据或指令的存储装置。作为示例而非限制,存储设备1006可以包括上文所描述的非暂态存储介质。存储设备1006可以包括硬盘驱动器(HDD)、闪存、通用串行总线(USB)驱动器或这些或其他存储设备的组合。
计算设备1000还包括一个或多个输入或输出(“I/O”)设备/接口1008,其被提供以允许用户向计算设备1000提供输入(诸如用户敲击),从计算设备1000接收输入,以及以其他方式向计算设备1000传送数据并且从计算设备1000传输数据。这些I/O设备/接口1008可以包括鼠标、小键盘或键盘、触摸屏、相机、光学扫描器、网络接口、调制解调器、其他已知的I/O设备或这样的I/O设备/接口1008的组合。触摸屏可以用触控笔或手指激活。
I/O设备/接口1008可以包括用于向用户呈现输出的一个或多个设备,包括但不限于图形引擎、显示器(例如,显示屏幕)、一个或多个输出驱动器(例如,显示器驱动器)、一个或多个音频扬声器以及一个或多个音频驱动器。在某些实施例中,设备/接口1008被配置成向显示器提供图形数据以供呈现给用户。图形数据可以代表一个或多个图形用户接口和/或如可以对特定实现方式有用的任何其他图形内容。
计算设备1000还可以包括通信接口1010。通信接口1010可以包括硬件、软件或两者。通信接口1010可以提供一个或多个接口以供在计算设备与一个或多个其他计算设备1000或一个或多个网络之间进行通信(诸如例如,基于分组的通信)。作为示例而非限制,通信接口1010可以包括用于与以太网或其他有线网络通信的网络接口控制器(NIC)或用于与无线网络(诸如WI-FI)通信的无线NIC(WNIC)或无线适配器。计算设备1000还可以包括总线1012。总线1012可以包括将计算设备1000的部件彼此耦合的硬件、软件或二者。
在先前的说明书中,已经参照本发明的具体示例性实施例描述了本发明。参照本文中所讨论的细节对本发明的各种实施例和方面进行了描述,并且附图图示了各种实施例。上文的描述和附图是对本发明的说明,而不应被解释为限制本发明。描述了许多具体细节以提供对本发明的各种实施例的透彻理解。
在不背离本发明的精神或基本特性的情况下,本发明可以以其他具体形式实现。所描述的实施例在所有方面被认为仅是说明性的而非限制性的。例如,本文中所描述的方法可以用较少或较多的步骤/动作来执行,或者可以以不同的顺序执行步骤/动作。附加地,本文中所描述的步骤/动作可以被重复或彼此并行地执行,或与相同或相似的步骤/动作的不同实例并行地执行。因此,本发明的范围由所附权利要求而不是前面的说明书来指示。在权利要求的等同物的含义和范围内的所有改变将被囊括在其范围内。

Claims (20)

1.在用于提供虚拟现实体验的数字媒体环境中的一种流式传输带宽高效的虚拟现实视频的计算机实现的方法,所述方法包括:
将全景视频划分成多个图块;
从客户端设备接收视口信息;
基于所述视口信息来向所述多个图块中的每个图块指派优先级;
为每个图块确定与所述图块的所指派的优先级相对应的比特率;以及
使用对应的已确定的所述比特率向所述客户端设备流式传输每个图块。
2.根据权利要求1所述的方法,还包括:采用空间关系描述将所述全景视频划分成所述多个图块。
3.根据权利要求2所述的方法,其中所述全景视频包括360度球面视频,并且其中所述多个图块组合以形成所述360度球面视频。
4.根据权利要求3所述的方法,其中将所述360度球面视频划分成所述多个图块包括:生成一个或多个顶部图块、一个或多个底部图块和多个中间主体图块。
5.根据权利要求1所述的方法,其中所述全景视频是包括两个对应的视频流的立体视频。
6.根据权利要求1所述的方法,其中所述视口信息包括指示在所述全景视频内的视口的位置的位置数据。
7.根据权利要求6所述的方法,还包括:基于所述视口信息来标识与所述视口重叠的所述多个图块中的一个或多个图块以及与所述视口相邻的所述多个图块中的一个或多个图块,以及其中基于所述视口向所述多个图块中的每个图块指派优先级包括:
向与所述视口重叠的所述一个或多个图块指派最高优先级;
向与所述视口相邻的所述一个或多个图块指派次最高优先级;以及
向所述多个图块中的剩余的一个或多个图块指派较低优先级。
8.根据权利要求7所述的方法,还包括:向与所述视口重叠的所述多个图块中的每个图块指派相同的优先级。
9.根据权利要求8所述的方法,还包括:确定向所述客户端设备流式传输所述多个图块的最小比特率,其中所述最小比特率与所述全景视频的最低可接受质量相对应,并且其中以所述最小比特率向所述客户端设备流式传输所述多个图块不超过带宽限制。
10.根据权利要求9所述的方法,还包括:确定向所述客户端设备流式传输所述多个图块的较高比特率,其中所述较高比特率中的一个或多个较高比特率与所述全景视频中的一个或多个较高质量水平相对应。
11.根据权利要求10所述的方法,其中确定与每个图块的所指派的优先级相对应的所述比特率包括:使用多选择背包问题算法向图块的优先级水平分配比特率。
12.根据权利要求11所述的方法,其中使用多选择背包问题算法向图块的优先级水平分配比特率包括:
通过从所述带宽限制减去用于所述多个图块的所述最小比特率来确定第一剩余带宽量;以及
向具有最高优先级水平的图块分配所述第一剩余带宽。
13.根据权利要求12所述的方法,其中向具有所述最高优先级水平的图块分配所述第一剩余带宽包括:以最高比特率流式传输具有所述最高优先级水平的所述图块。
14.一种用于流式传输虚拟现实视频的系统,所述系统包括:
一个或多个计算机可读存储器,包括虚拟现实内容存储库;以及
至少一个计算设备,其上存储有指令,所述指令当由所述至少一个计算设备执行时,使得所述系统:
通过将全景视频拆分成相邻的图块来将所述全景视频划分成多个图块;
从客户端设备接收视口信息,所述视口信息指示所述全景视频内的当前视口位置;
通过确定所述当前视口位置与所述全景视频内的每个图块之间的相关性,基于所述当前视口位置来向所述多个图块中的每个图块指派优先级;
通过将较高比特率分配给具有较高优先级的图块以及将较低比特率分配给具有较低优先级的图块,为每个图块分配与所述图块的所指派的优先级相对应的比特率;以及
使用对应的已分配的所述比特率向所述客户端设备流式传输每个图块。
15.根据权利要求14所述的系统,还包括在其上的指令,所述指令当由所述至少一个计算设备执行时,使得所述系统:
标识与所述当前视口位置重叠的所述多个图块中的一个或多个图块,以及与所述当前视口位置相邻的所述多个图块中的一个或多个图块;以及
基于所述当前视口位置通过以下方式向所述多个图块中的每个图块指派优先级:
向与所述当前视口位置重叠的所述一个或多个图块指派最高优先级;
向与所述当前视口位置相邻的所述一个或多个图块指派次最高优先级;以及
向所述多个图块中的剩余的一个或多个图块指派较低优先级。
16.根据权利要求14所述的系统,还包括在其上的指令,所述指令当由所述至少一个计算设备执行时,使得所述系统:
确定向所述客户端设备流式传输所述多个图块的最小比特率,其中所述最小比特率与所述全景视频的最低可接受质量相对应;以及
以所述最小比特率向所述客户端设备流式传输所述多个图块不超过带宽限制。
17.根据权利要求14所述的系统,还包括在其上的指令,所述指令当由所述至少一个计算设备执行时,使得所述系统:
基于每个图块的所指派的优先级的等级,来迭代地确定流式传输所述多个图块中的每个图块的可用比特率;
迭代地确定剩余可用带宽的量,使得带宽被最小化;以及
至少以所述最小比特率流式传输所述多个图块中的每个图块。
18.在用于提供虚拟现实体验的数字媒体环境中的一种流式传输带宽高效的虚拟现实视频的计算机实现的方法,所述方法包括:
执行用于将球面视频空间地划分成包括三维(3D)网格片段的3D六面球体的步骤;
从客户端设备接收视口信息;
基于所述视口信息来向所述3D网格片段中的每个3D网格片段指派优先级;
基于被指派给所述3D网格片段中的每个3D网格片段的所述优先级来执行用于确定用于所述3D网格片段中的每个3D网格片段的比特率分配的步骤;以及
使用为所述3D网格片段中的每个3D网格片段确定的所述比特率,向所述客户端设备流式传输所述3D网格片段中的每个3D网格片段。
19.根据权利要求18所述的方法,其中执行用于将所述球面视频空间地划分成所述3D网格片段的所述步骤包括:
将所述球面视频拆分成多个垂直堆叠和多个水平切片;
基于一个或多个水平切片将所述球面视频划分成多个3D网格;以及
基于所述多个水平切片来进一步将所述3D网格片段中的一个3D网格片段划分成附加的3D网格片段。
20.根据权利要求19所述的方法,其中执行用于确定用于所述3D网格片段中的每个3D网格片段的比特率分配的所述步骤包括:使用多选择背包问题算法,来向图块的优先级水平分配比特率。
CN201710890711.4A 2016-12-05 2017-09-27 利用自适应速率分配优先处理基于图块的虚拟现实视频流 Active CN108156484B (zh)

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 (2)

Publication Number Publication Date
CN108156484A true CN108156484A (zh) 2018-06-12
CN108156484B CN108156484B (zh) 2022-01-14

Family

ID=60326931

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710890711.4A Active CN108156484B (zh) 2016-12-05 2017-09-27 利用自适应速率分配优先处理基于图块的虚拟现实视频流

Country Status (3)

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

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108924629A (zh) * 2018-08-28 2018-11-30 恒信东方文化股份有限公司 一种vr图像处理方法
CN111586414A (zh) * 2020-04-07 2020-08-25 南京师范大学 一种基于svc和dash的360°视频流调度方法
CN112584119A (zh) * 2020-11-24 2021-03-30 鹏城实验室 一种基于强化学习的自适应全景视频传输方法及系统
CN112740711A (zh) * 2018-07-26 2021-04-30 瑞典爱立信有限公司 用于配置为支持多个360度视频会话的网络中的带宽优化的系统和方法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10567780B2 (en) 2018-06-14 2020-02-18 Telefonaktiebolaget Lm Ericsson (Publ) System and method for encoding 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
US10623736B2 (en) 2018-06-14 2020-04-14 Telefonaktiebolaget Lm Ericsson (Publ) Tile selection and bandwidth optimization for providing 360° immersive video
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
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
EP3926441B1 (en) * 2020-06-15 2024-02-21 Nokia Technologies Oy Output of virtual content
CN113362438A (zh) * 2021-06-30 2021-09-07 北京百度网讯科技有限公司 全景渲染的方法、装置、电子设备、介质及程序

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101127911A (zh) * 2007-09-29 2008-02-20 中国科学院计算技术研究所 一种柱面全景视频编码的块尺寸计算方法和传输方法
WO2012158287A1 (en) * 2011-05-17 2012-11-22 Apple Inc. Panorama processing
US20150346832A1 (en) * 2014-05-29 2015-12-03 Nextvr Inc. Methods and apparatus for delivering content and/or playing back content
CN105791882A (zh) * 2016-03-22 2016-07-20 腾讯科技(深圳)有限公司 视频编码方法及装置
CN106162207A (zh) * 2016-08-25 2016-11-23 北京字节跳动科技有限公司 一种全景视频并行编码方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9699437B2 (en) * 2014-03-03 2017-07-04 Nextvr Inc. Methods and apparatus for streaming content
CN106416239B (zh) * 2014-05-29 2019-04-09 奈克斯特Vr股份有限公司 用于交付内容和/或回放内容的方法和装置
US9865055B2 (en) * 2015-02-24 2018-01-09 Nextvr Inc. Calibration for immersive content systems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101127911A (zh) * 2007-09-29 2008-02-20 中国科学院计算技术研究所 一种柱面全景视频编码的块尺寸计算方法和传输方法
WO2012158287A1 (en) * 2011-05-17 2012-11-22 Apple Inc. Panorama processing
US20150346832A1 (en) * 2014-05-29 2015-12-03 Nextvr Inc. Methods and apparatus for delivering content and/or playing back content
CN105791882A (zh) * 2016-03-22 2016-07-20 腾讯科技(深圳)有限公司 视频编码方法及装置
CN106162207A (zh) * 2016-08-25 2016-11-23 北京字节跳动科技有限公司 一种全景视频并行编码方法和装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112740711A (zh) * 2018-07-26 2021-04-30 瑞典爱立信有限公司 用于配置为支持多个360度视频会话的网络中的带宽优化的系统和方法
CN108924629A (zh) * 2018-08-28 2018-11-30 恒信东方文化股份有限公司 一种vr图像处理方法
CN108924629B (zh) * 2018-08-28 2021-01-05 恒信东方文化股份有限公司 一种vr图像处理方法
CN111586414A (zh) * 2020-04-07 2020-08-25 南京师范大学 一种基于svc和dash的360°视频流调度方法
CN111586414B (zh) * 2020-04-07 2022-04-15 南京师范大学 一种基于svc和dash的360°视频流调度方法
CN112584119A (zh) * 2020-11-24 2021-03-30 鹏城实验室 一种基于强化学习的自适应全景视频传输方法及系统

Also Published As

Publication number Publication date
CN108156484B (zh) 2022-01-14
DE102017009121A1 (de) 2018-06-07
GB201716286D0 (en) 2017-11-22
GB2557416A (en) 2018-06-20
GB2557416B (en) 2021-08-04

Similar Documents

Publication Publication Date Title
CN108156484A (zh) 利用自适应速率分配优先处理基于图块的虚拟现实视频流
AU2017232207B2 (en) Bandwidth efficient vr video streaming
US11290758B2 (en) Method and apparatus of point-cloud streaming
Hosseini et al. Adaptive 360 VR video streaming: Divide and conquer
WO2018126702A1 (zh) 一种应用于虚拟现实技术的流媒体的传输方法和客户端
US20230319328A1 (en) Reference of neural network model for adaptation of 2d video for streaming to heterogeneous client end-points
KR102598603B1 (ko) 이기종 클라이언트 종단점에 대한 스트리밍을 위한 2d 비디오의 적응
US11570227B2 (en) Set up and distribution of immersive media to heterogenous client end-points
US11943271B2 (en) Reference of neural network model by immersive media for adaptation of media for streaming to heterogenous client end-points
US20240179203A1 (en) Reference of neural network model by immersive media for adaptation of media for streaming to heterogenous client end-points
US20230007067A1 (en) Bidirectional presentation datastream
US20230007361A1 (en) Bidirectional presentation datastream using control and data plane channels

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant