CN109923867A - 流式传输虚拟现实视频 - Google Patents

流式传输虚拟现实视频 Download PDF

Info

Publication number
CN109923867A
CN109923867A CN201780070320.6A CN201780070320A CN109923867A CN 109923867 A CN109923867 A CN 109923867A CN 201780070320 A CN201780070320 A CN 201780070320A CN 109923867 A CN109923867 A CN 109923867A
Authority
CN
China
Prior art keywords
stream
subset
network
cache
rendering apparatus
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
CN201780070320.6A
Other languages
English (en)
Inventor
H.M.斯特金
O.A.尼亚穆特
S.N.B.甘克尔
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.)
Koninklijke KPN NV
Original Assignee
Koninklijke KPN NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninklijke KPN NV filed Critical Koninklijke KPN NV
Publication of CN109923867A publication Critical patent/CN109923867A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes
    • 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
    • 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
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • 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
    • 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/106Processing image signals
    • H04N13/111Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
    • H04N13/117Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation the virtual viewpoint locations being selected by the viewers or determined by viewer tracking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/366Image reproducers using viewer tracking
    • H04N13/371Image reproducers using viewer tracking for tracking viewers with different interocular distances; for tracking rotational head movements around the vertical axis
    • 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/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • 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/637Control signals issued by the client directed to the server or network components
    • H04N21/6371Control signals issued by the client directed to the server or network components directed to network
    • 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

Abstract

提供了用于在将虚拟现实[VR]视频流式传输到VR渲染设备时使用的方法和设备。VR视频可以由多个流表示,所述多个流中的每个提供场景的不同图像数据。VR渲染设备可以基于流的第一子集来渲染该场景的被选视图。例如基于空间关系数据,然后可以标识流的第二子集,其提供该场景的与流的第一子集的图像数据在空间上相邻的图像数据。在已经标识流的第二子集之后,可以在网络高速缓存中实现第二子集的缓存,该网络高速缓存被包括在网络中的一个或多个流源的下游和VR渲染设备的上游。流的第二子集可以有效地表示用于流的第一子集的图像数据的“保护带”。通过在网络高速缓存中缓存该“保护带”,可以减少在请求来自第二子集的一个或多个流与VR渲染设备接收它们之间的延迟。

Description

流式传输虚拟现实视频
技术领域
本发明涉及将虚拟现实[VR]视频流式传输到VR渲染设备的方法。本发明进一步涉及包括用于使处理器系统执行该方法的指令的计算机程序,涉及VR渲染设备,并且涉及用于在VR视频的流式传输时使用的转发节点。
背景技术
虚拟现实(VR)涉及使用计算机技术来模拟用户在虚拟环境中的物理存在。通常,VR渲染设备利用头戴式显示器(HMD)向用户渲染(render)虚拟环境,但是也可以使用其他类型的VR显示器和渲染技术,包括但不限于全息术和洞穴状自动虚拟环境。
已知使用这样的VR渲染设备来渲染VR视频,例如适合于由VR渲染设备播出的视频。VR视频可以提供场景的全景视图,其中术语“全景视图”是指例如至少180度的视图。VR视频甚至可以提供更大的视图,例如360度,从而向用户提供更加沉浸的体验。
VR视频可以被作为单个视频流而流式传输到VR渲染设备。然而,如果要以高质量并且可能以3D流式传输整个全景视图,则这可能需要大量的带宽,即使在使用现代视频编码技术时也是如此。例如,带宽要求可能容易达到数十或数百Mbps。因为VR渲染设备经由带宽受限的接入网(例如,数字订户线(DSL)或无线LAN(WLAN)连接或移动连接(例如,UMTS或LTE))频繁地流式传输视频流,所以单个视频流的流式传输可能对接入网造成很大负担,或者这样的流式传输甚至可能根本不可行。例如,由于重新缓冲,播出可能被频繁地中断,立即结束用户的任何沉浸。此外,这样的大视频流的接收、解码和处理可能导致高计算负荷和/或高功耗,这两者对于许多设备(尤其移动设备)是不利的。
已经认识到:在任何给定的时刻,VR视频的一大部分可能对用户不可见。这一点的原因是VR渲染设备的显示器的视野(FOV)通常显著小于VR视频的视野。例如,HMD可以提供100度FOV,其显著小于例如VR视频提供的360度。
照此,已经提出了仅流式传输VR视频的对VR渲染设备的用户当前可见的部分。例如,VR视频可以被在空间上分割成多个(通常)不重叠的视频流,每个视频流提供场景的不同视图。当用户例如通过旋转他/她的头部来改变视角时,VR渲染设备可以确定另一个视频流(此后也被简称为“新”视频流)被需要并通过请求来自流源的新视频流而切换到新视频流。
不利的是,在用户物理地改变视角与新视图实际由VR渲染设备渲染之间的延迟可能太大。该延迟此后也被称为“切换等待时间”,并且由于延迟的合计而相当大,其中在请求新视频流与新视频流实际到达VR渲染设备之间的延迟通常是最大的。其他通常不太大的延迟包括由于视频流的解码所造成的延迟、在头部旋转的测量中的延迟等。
已经进行了各种尝试来解决等待时间问题。例如,已知将多个视频流分割成部分重叠的视图,从而提供所谓的“保护带”,其包含恰好在当前视图之外的视频内容。保护带的大小通常取决于头部旋转的速度和切换视频流的等待时间。不利的是,考虑到特定带宽可用性,在给定一定量的可用带宽的情况下保护带的使用降低视频质量,因为较少带宽可用于对用户实际可见的视频内容。还已知(例如通过预测用户的头部旋转)预测将需要哪个视频流,并且提前请求和流式传输新视频流。然而,如在保护带的情况下,然后还分配带宽用于流式传输不可见的视频内容,从而减少可用于流式传输当前可见视频内容的带宽。
还已知在新视频流的传输中使I帧优先化。在这里,术语I帧是指图像组(GOP)中的可独立解码的帧。尽管这确实可能减少切换等待时间,但是减少的量可能不足。特别地,I帧的优先化没有解决在请求新视频流与新视频流的分组实际到达VR渲染设备之间通常相当大的延迟。
US20150346832A1描述一种生成环境的3D表示的回放设备,该3D表示例如经由头戴式显示器而被显示给客户端设备的用户。据说回放设备确定环境的哪个部分对应于用户的主视野。该设备然后从优先级角度选择以被指定的流以高速率(例如,全分辨率)接收那部分作为主要流。来自提供与环境的其他部分对应的内容的一个或多个其他流的内容也可以被接收,但是通常以较低的数据速率。
US20150346832A1的回放设备的缺点是它可能未足够减少切换等待时间。另一个缺点是回放设备可能减少可用于流式传输可见视频内容的带宽。
发明内容
获得VR视频的流式传输将是有利的,其解决了US20150346832A1的上述问题中的至少一个。
本发明的以下方面涉及VR渲染设备基于多个流的第一子集渲染或设法渲染场景的被选视图。作为响应,提供在空间上相邻的图像数据的流的第二子集可以被缓存在网络高速缓存中。因而不需要在网络高速缓存中不加区别地缓存所述多个流的全部。
根据本发明的第一方面,可以提供一种用于在将VR视频流式传输到VR渲染设备时使用的方法,其中VR视频可以由多个流表示,所述多个流中的每个提供场景的不同图像数据,其中VR渲染设备可以被配置成基于所述多个流中的一个或多个来渲染场景的被选视图。
该方法可以包括:
- 获得空间关系数据,该空间关系数据指示如由所述多个流提供的场景的不同图像数据之间的空间关系;
- 标识渲染被选视图所需的一个或多个流,从而标识流的第一子集;
- 通过使用空间关系数据来标识流的第二子集,该流的第二子集提供该场景的与流的第一子集的图像数据在空间上相邻的图像数据;
- 获得流元数据,该流元数据标识网络中的提供对流的第二子集的访问的一个或多个流源;以及
- 实现流的第二子集在网络高速缓存中的缓存,该网络高速缓存被包括在网络中的所述一个或多个流源的下游和VR渲染设备的上游。
根据本发明的另一方面,可以提供一种包括计算机程序的暂时性或非暂时性计算机可读介质。该计算机程序可以包括用于使处理器系统执行所述方法的指令。
根据本发明的另一方面,可以提供一种用于在将VR视频流式传输到VR渲染设备时使用的网络高速缓存。该网络高速缓存可以包括:
- 用于与网络通信的输入/输出接口;
- 用于缓存数据的数据贮存器;
- 高速缓存控制器,其被配置成:
- 获得空间关系数据,该空间关系数据指示如由所述多个流提供的场景的不同图像数据之间的空间关系;
- 标识渲染被选视图所需的一个或多个流,从而标识流的第一子集;
- 通过使用空间关系数据来标识流的第二子集,该流的第二子集提供该场景的与流的第一子集的图像数据在空间上相邻的图像数据;
- 获得流元数据,该流元数据标识网络中的提供对流的第二子集的访问的一个或多个流源;
- 使用输入/输出接口来请求来自所述一个或多个流源的流的第二子集的流式传输;以及
- 将流的第二子集缓存在数据贮存器中。
根据本发明的另一方面,可以提供一种VR渲染设备。该VR渲染设备可以包括:
- 用于与网络通信的网络接口;
- 显示处理器,其被配置成基于多个流中的一个或多个来渲染场景的被选视图;以及
- 控制器,其被配置成:
- 获得空间关系数据,该空间关系数据指示如由所述多个流提供的场景的不同图像数据之间的空间关系;
- 标识渲染被选视图所需的一个或多个流,从而标识流的第一子集;
- 通过使用空间关系数据来标识流的第二子集,该流的第二子集提供该场景的与流的第一子集的图像数据在空间上相邻的图像数据;以及
- 通过使用网络接口向网络高速缓存或者向网络中的提供对流的第二子集的访问的一个或多个流源发送消息,实现流的第二子集在网络高速缓存中的缓存,该网络高速缓存被包括在网络中的所述一个或多个流源的下游和VR渲染设备的上游,其中该消息包括在网络高速缓存中缓存流的第二子集的指令。
以上措施可能涉及一种渲染VR视频的VR渲染设备。VR视频可以由多个流组成,对于给定的视频帧,所述多个流中的每个可以包括场景的不同图像数据。所述多个流可以是但不需要是可独立解码的流或子流。所述多个流可能可从网络中的一个或多个流源(诸如经由互联网可访问的一个或多个媒体服务器)获得。因为用户可以在观看VR视频期间旋转和/或移动他或她的头部,所以VR渲染设备可以例如根据用户的当前视角、随着时间的过去渲染场景的不同视图。在这里,术语“视图”可以指要被显示给用户的VR视频的空间部分的渲染,其中该视图也被称为“视口”。在VR渲染设备的使用期间,因而可能需要不同的流来随着时间的过去渲染不同的视图。在此使用期间,VR渲染设备可以标识需要所述多个流中的哪个(哪些)来渲染场景的被选视图,从而标识流的子集,然后可以向所述一个或多个流源请求该流的子集。在这里,术语“子集”要被理解为是指一个或多个。此外,术语“被选视图”可以指例如响应于用户的视角的改变而要被渲染的任何视图。将领会:本段中所描述的功能性本身可以从VR和VR渲染的领域中知道。
以上措施可以进一步实现流的第二子集在网络高速缓存中的缓存。流的第二子集可以包括该场景的图像数据,所述图像数据与流的第一子集的图像数据在空间上相邻,例如由于流的这两个集合的图像数据表示共享边界或彼此部分重叠的相应像素区域。为了实现该缓存,可以利用可以指示如由所述多个流提供的场景的不同图像数据之间的空间关系的空间关系数据,以及可以标识网络中的提供对流的第二子集的访问的一个或多个流源的流元数据。一个非限制性示例是:在使用MPEG DASH或一些其他形式的HTTP自适应流式传输的情况下,可以从与VR视频相关联的清单文件获得空间关系数据和流元数据。网络高速缓存可以被包括在网络中的所述一个或多个流源的下游和VR渲染设备的上游,并且因而可以被定位成比(一个或多个)流源更靠近于VR渲染设备,例如,如在跳跃数、ping时间、表示源与目的地之间的路径的节点的数目等方面测量到的。将领会:网络高速缓存甚至可以被定位成非常接近VR渲染设备,例如,它可以是家庭网关、机顶盒或汽车网关(的一部分)。例如,机顶盒可以用作用于无线连接到家庭网络的HMD的高速缓存,其中机顶盒可以具有高带宽(通常固定的)网络连接,并且机顶盒与HMD之间的网络连接具有有限带宽。
因为流的第二子集包括在空间上相邻的图像数据,所以存在VR渲染设备可能请求第二子集的一个或多个流的相对高的可能性。即,如果VR渲染设备需要流的第一子集来渲染场景的当前视图,则VR渲染设备例如响应于用户的视角的改变在渲染场景的后续视图时可能需要流的第二子集。因为视角的每个改变通常是小的且增量的,所以后续视图可能最可能与当前视图重叠,而同时还示出先前未在当前视图中示出的附加图像数据,例如在空间上相邻的图像数据。有效地,流的第二子集因而可以表示用于流的第一子集的图像数据的相当大的“保护带”。
例如与直接向(一个或多个)流源请求和从(一个或多个)流源流式传输所述(一个或多个)流相比,通过在网络高速缓存中缓存该“保护带”,可以减少在向第二子集请求一个或多个流与VR渲染设备接收它们之间的延迟。较短的网络路径可以产生较短的端到端延迟,较小的由于由其他流引起的网络拥塞导致的延迟的概率,以及减少的抖动,其可以具有在接收器处可能较少需要缓冲的有利效果。另一效果可以是:因为在任何给定时刻可能仅需要缓存流的子集,而不是必须缓存VR视频的所有流,所以可以减少(一个或多个)流源与网络高速缓存之间的带宽分配。所述缓存因而可以是不缓存所述多个流的全部的“选择性”缓存。照此,跨网络路径的该部分的流式传输可以限于仅预计在不远的将来由VR渲染设备请求的那些流。类似地,因为在任何给定的时刻可能仅必须缓存流的子集,所以网络高速缓存可能需要分配较少的数据贮存器用于进行缓存。类似地,可能需要较少的对网络高速缓存的数据贮存器的读/写访问带宽。
注意:以上措施可以被偶然地执行,但也可以在周期性的或连续的基础上执行。以上措施的偶然使用的一个示例在VR用户多半在一个方向上观看(例如面对一个其他用户)的情况下。然后可以以流的第一集合的形式将其他用户的图像数据递送给VR渲染设备。偶尔,VR用户可能短暂地向右或向左看。网络高速缓存然后可以以流的第二子集的形式递送与流的第一子集的图像数据在空间上相邻的图像数据。
在周期性地或连续地执行以上措施的情况下,如果先前已经根据以上措施缓存流的第一子集,例如作为在缓存机制的前一迭代中的流的前一“第二”子集,则可能已经从网络高速缓存递送流的第一子集。在当前迭代中,可以标识并随后缓存可能在不久的将来由VR渲染设备请求的流的新的“第二”子集。
进一步注意:可以进一步选择性地及时缓存流的第二子集,因为可以仅缓存流的内容时间线的被预计在不久的将来由VR渲染设备请求的部分。照此,可以缓存流的第二子集的内容时间线的后续或将来部分,而不是缓存流的第二子集的所有内容时间线,或者而不是缓存如由正被递送的流的第一子集提供的内容时间线的相同部分。一个具体但非限制性的示例可以如下。在诸如MPEG DASH之类的HTTP自适应流式传输(HAS)中,流的表示可以由时间上的多个段组成。为了继续接收某个流,可以及时针对每个部分发送分离的请求。在该情况下,如果流的第一子集表示内容时间线的“当前”部分,则可以选择性地缓存流的第二子集的中间后续部分。替代地或另外地,时间上的其他部分可以被缓存,例如被进一步定位到将来,或者与当前部分部分地重叠等。缓存在时间上的哪个部分的选择可以是各种因素的函数,如关于各种实施例在详细描述中进一步阐明的。
在实施例中,该方法可以进一步包括:
- 获得VR渲染设备可能渲染场景的哪些相邻图像数据的预测;以及
- 基于该预测而标识流的第二子集。
照此,获得VR渲染设备可能请求场景的哪些相邻图像数据用于渲染的预测,其中然后基于该预测来缓存流的子集,而不是不加区别地缓存表示当前视图的预定空间邻域的流。这可以具有以下优点:缓存更有效,例如,如作为能够从高速缓存检索到的请求与所做出的总请求的高速缓存命中率、或者与被缓存的流的数目相关的高速缓存命中率所测量到的。
在实施例中,VR渲染设备可以被配置成:根据用户的头部运动和/或头部旋转来确定场景的被选视图,并且获得预测可以包括:获得指示用户的头部运动和/或头部旋转的跟踪数据。可以随着时间的过去测量(例如跟踪)用户的头部运动和/或头部旋转,以确定在任何给定时刻要渲染场景的哪个视图。还可以分析跟踪数据以预测用户的将来头部运动和/或头部旋转,从而获得VR渲染设备可能请求场景的哪些相邻图像数据用于渲染的预测。例如,如果跟踪数据包括作为时间的函数的一系列坐标,则可以在不久的将来推断该系列坐标以获得所述预测。
在实施例中,该方法可以进一步包括:基于以下中的至少一个来选择将由流的第二子集提供的场景的图像数据的空间大小:
- 用户的头部运动的测量结果或统计;
- 用户的头部旋转的测量结果或统计;
- 由VR视频表示的内容的类型;
- 在所述一个或多个流源与网络高速缓存之间的网络中的传输延迟;
- 在网络高速缓存与VR渲染设备之间的网络中的传输延迟;以及
- VR渲染设备处理流的第一子集的处理延迟。
可能希望避免在网络高速缓存中不必要地缓存流,例如,以便避免不必要的分配带宽和/或数据存储。同时,可能希望保留高的高速缓存命中率。为了获得这两个方面之间的折衷,可以基于任何数目的以上测量结果、估计量或其他类型的数据来动态地调整被缓存的图像数据的空间大小并且从而动态地调整被缓存的流的数目。即,以上数据可以指示:相对于基于流的第一子集渲染的视图,视图的改变可能有多大,并且因而指示在网络高速缓存中缓存的“保护带”可能需要有多大。这可以具有以下优点:缓存更有效,例如,如作为与被缓存的流的数目相关的高速缓存命中率和/或与带宽分配和/或被用于缓存的数据贮存器相关的高速缓存命中率所测量到的。
注意:术语“空间大小”可以指示图像数据(例如,相对于VR视频的画布)的空间范围。例如,空间大小可以指以像素为单位的图像数据的水平和垂直大小。空间大小的其他度量同样是可能的,例如,根据度数等。
在实施例中,流的第二子集可以是在所述一个或多个流源处以不同的质量等级可访问的,并且该方法可以进一步包括基于以下中的至少一个来选择将以其缓存流的第二子集的质量等级:
- 在所述一个或多个流源与网络高速缓存之间的网络中的可用带宽;
- 在网络高速缓存与VR渲染设备之间的网络中的可用带宽;以及
- 流的第二子集将提供的场景的图像数据的空间大小。
已知使得流以不同的质量等级例如从自适应比特率流式传输(包括但不限于通过HTTP的MPEG动态自适应流式传输(MPEG-DASH))可访问。质量等级可以与用于缓存流的第二子集所需的带宽和/或数据贮存器成比例。照此,可以基于任何数目的以上测量结果、估计量或其他类型的数据来动态地调整质量等级。这可以具有以下有利效果:可以更优化地分配朝向和/或来自网络高速缓存的可用带宽和/或网络高速缓存中的数据贮存器,例如,如果足够的带宽和/或数据贮存器可用,则产生较高质量。
在实施例中,该方法可以进一步包括:
- 从VR渲染设备接收对流的第一子集的流式传输的请求;
- 基于该请求而标识流的第一子集。
可能需要首先标识哪些流当前正被流式传输到VR渲染设备,或者即将被流式传输,以便能够标识流的哪个第二子集将被缓存在网络高速缓存中。可以基于来自VR渲染设备的对所述流的流式传输的请求来有效地标识流的第一子集。该请求可能被执行该方法的网络实体(例如,网络高速缓存、流源等)拦截、转发或直接从VR渲染设备接收。有利的效果可以是获得流的第一子集的准确标识。照此,可能不需要估计哪些流当前正被流式传输到VR渲染设备,或者即将被流式传输,这可能不太准确。
在实施例中,该方法可以进一步包括:响应于接收到该请求:
- 如果可获得,则实现从网络高速缓存对流的第一子集的一个或多个流的递送;以及
- 对于从网络高速缓存不可获得的流的第一子集的一个或多个其他流,
- 向所述一个或多个流源共同请求所述一个或多个其他流与流的第二子集,
- 实现所述一个或多个其他流到VR渲染设备的递送,同时实现流的第二子集在网络高速缓存中的缓存。
可以在连续的基础上执行要被缓存的流的选择。照此,对于VR渲染设备对流的第一子集的初始请求,可以向所述一个或多个流源请求流的第一子集和以流的第二子集的形式的“保护带”,其中流的第二子集被缓存在网络高速缓存中并且流的第一子集被递送到VR渲染设备以用于渲染。对于VR渲染设备的(一个或多个)后续请求,(一个或多个)被请求的流如果可获得,则然后可以被从网络高速缓存递送,并且如果不可获得,则可以与流的新的或更新的“保护带”一起被请求并且递送到VR渲染设备。
在实施例中,流元数据可以是诸如媒体呈现描述之类的清单。例如,清单可以是MPEG-DASH媒体呈现描述(MPD)或类似类型的结构化文档。
在实施例中,该方法可以由网络高速缓存或者所述一个或多个流源执行。
在实施例中,实现流的第二子集的缓存可以包括向网络高速缓存或所述一个或多个流源发送消息,该消息包括将流的第二子集缓存在网络高速缓存中的指令。例如,在实施例中,该方法可以由VR渲染设备执行,VR渲染设备然后可以通过发送所述消息来实现该缓存。
在实施例中,VR渲染设备可以是通过HTTP的MPEG动态自适应流式传输[DASH]客户端,并且所述消息可以是到DASH感知网元[DANE]的服务器和网络辅助DASH [SAND]消息,诸如但不限于“AnticipatedRequests”消息。
将领会:由VR视频表示的场景可以是实际场景,其可以由一个或多个相机记录。然而,场景也可以是经渲染的场景,例如被从模型的计算机图形渲染获得,或者包括经记录的部分和经渲染的部分两者的组合。
本领域技术人员将领会:可以以被认为有用的任何方式组合本发明的上述实施例、实现方式和/或方面中的两个或更多个。
VR渲染设备、网络高速缓存、所述一个或多个流源和/或计算机程序的修改和变化(对应于方法的所描述的修改和变化,并且反之亦然)可由本领域技术人员基于本说明书来执行。
附图说明
本发明的这些和其他方面从下文所描述的实施例中显而易见,并且将被关于在下文描述的实施例而阐明。在附图中,
图1示出表示VR视频的多个流;
图2示出表示另一个VR视频的另外的多个流;
图3图示根据本发明的一个方面的VR视频从服务器到VR渲染设备的流式传输;
图4示出VR视频的基于图块(tile)的表示,同时示出包括图块的第一子集的VR设备的当前视口;
图5示出被选择进行缓存的图块的第二子集,其中图块的第二子集为当前视口提供保护带;
图6示出在客户端、高速缓存与服务器之间的消息交换,其中缓存被预测由客户端请求的流;
图7图示在金字塔编码的VR视频的背景内的流的预测缓存,其中不同的流每个示出场景的较高质量的不同部分,同时示出较低质量的剩余部分;
图8示出在客户端、高速缓存与服务器之间的消息交换,其中在多播的背景内由高速缓存来缓存流;
图9示出MPEG DASH实施例,其中高速缓存预测并缓存为当前视口提供保护带的流;
图10示出MPEG DASH实施例,其中DASH客户端使用服务器和网络辅助DASH(SAND)来向DASH感知网元(DANE)指示其期望在将来请求哪些流;
图11示出使用SAND的另一个MPEG DASH实施例,其中DASH客户端向服务器指示其期望在将来请求哪些流;
图12图示“AcceptedAlternatives”的SAND概念;
图13图示VR视频到多个VR设备的同时基于图块的流式传输,所述多个VR设备每个具有不同但可能重叠的视口;
图14示出将为VR设备中的每个所缓存的保护带,图示了重叠的图块仅必须被缓存一次;
图15示出在分块(tiled)流式传输的背景内流的内容时间线的部分的选择性缓存的示例;
图16示出图15的示例的变体,其中客户端在前一保护带的图块被递送之前请求新图块;
图17示出图15的示例的变体,其中客户端的请求是(例如,在图块的缓存已经开始之前的)第一请求;
图18示出示例性网络高速缓存;
图19示出示例性VR渲染设备;
图20示出用于将VR视频流式传输到VR渲染设备的方法;
图21示出可以包括计算机程序或空间关系数据或流元数据的暂时性或非暂时性计算机可读介质,该计算机程序包括用于使处理器系统执行所述方法的指令;以及
图22示出示例性数据处理系统。
应当注意:在不同图中具有相同参考号码的项具有相同的结构特征和相同的功能,或者是相同的信号。在已经解释了这样的项的功能和/或结构的情况下,在详细描述中没有必要对其重复解释。
参考和缩写词的列表
参考和缩写词的以下列表被提供用于促进对附图的解释,并且不应当解释为限制权利要求。
DANE DASH感知网元
DASH 通过HTTP的动态自适应流式传输
MPD 媒体呈现描述
NAL 网络抽象层
PES 分组化的基本流
PID 分组标识
SAND 服务器和网络辅助DASH
SRD 空间关系描述
TS 输送流
VR 虚拟现实
10、20 多个流
22 流的第一子集
24 流的第二子集
30 接入网
40 核心网
100 VR渲染设备
102 “请求流B”数据通信
110 网络高速缓存
112 “递送流B”数据通信
114 “请求流A、C”数据通信
120 服务器
122 “发送流A、C”数据通信
200 VR视频的基于图块的表示
210-212 当前视口的图块
220-222 用于当前视口的保护带的图块
230-234 VR视频的金字塔编码
240-244 金字塔编码中的较高分辨率视口
300 网络高速缓存
310 网络接口
320 高速缓存控制器
330 数据贮存器
400 VR渲染设备
410 网络接口
420 显示处理器
430 控制器
500 将VR视频流式传输到VR渲染设备的方法
510 获得空间关系数据
520 标识所需的(一个或多个)流
530 标识(一个或多个)保护带流
540 获得流元数据
550 实现(一个或多个)保护带流的缓存
600 计算机可读介质
610 存储在计算机可读介质上的数据
1000 示例性数据处理系统
1002 处理器
1004 存储器元件
1006 系统总线
1008 本地存储器
1010 大容量存储设备
1012 输入设备
1014 输出设备
1016 网络适配器
1018 应用程序
具体实施方式
以下描述了将VR视频流式传输到VR渲染设备的若干实施例。VR视频可以由多个流表示,所述多个流中的每个提供场景的不同图像数据。实施例涉及VR渲染设备基于多个流的第一子集渲染或设法渲染场景的被选视图。作为响应,可以将提供在空间上相邻的图像数据的流的第二子集缓存在网络高速缓存中。
在下文中,VR渲染设备可以被简称为“接收器”或“客户端”,流源可以被简称为“服务器”或“递送节点”,并且网络高速缓存可以被简称为“高速缓存”或“递送节点”。
表示VR视频的图像数据可以是2D图像数据,因为VR视频的画布可以由2D像素区域来表示,其中每个流表示该2D区域的不同子区域或不同表示。然而,这不是限制,因为例如图像数据还可以表示3D体素体积(volume),其中每个流表示该3D体积的不同子体积或不同表示。另一个示例是:例如通过包括两个或更多个2D像素区域或者通过伴随有深度或视差图的2D区域像素,图像数据可以是立体图像数据。
如图1和2中所图示,可以使用多个不同的流10、20来流式传输VR视频,以提供来自某个视点(例如,VR环境中的用户的视点)的全景或全向球面视图。在图1和2的示例中,全景视图被示出为完整的360度视图,其在图1中被示出划分为对应于基本方向N、E、S、W的4个部分,其中每个部分由某个流表示(例如,北=流1,东=流2等)。照此,为了使VR渲染设备在朝北方向上渲染视图,可能需要流1。如果用户转向东,则VR渲染设备可能必须从流1切换到流2以在朝东方向上渲染视图。
在实践中,已经发现用户不瞬间转动其头部,例如90度。照此,可能希望流在空间上重叠,或者从多个流或段渲染视图,所述多个流或段中的每个表示整个全景视图的较小部分。例如,如图2中所示,VR渲染设备可以基于流1、2、3、4、5和6在朝北方向上渲染视图。当用户将他/她的头部转向东时,可以添加流7并且移除流1,然后可以添加流8并且可以移除流2,等等。照此,响应于头部旋转或视点的其他类型的改变,可能需要流的不同子集。在这里,术语“子集”是指“一个或多个”流。将领会:子集可以重叠,例如,如在图2的示例中那样,其中响应于用户的头部旋转,VR渲染设备可以从流的子集{1,2,3,4,5,6}切换到不同的子集{2,3,4,5,6,7}。
作为示例,上述流的第一子集22被在图2中示出包括流3和4。流的第二子集24被在图2中示出包括流2和流5,提供在空间上相邻的图像数据。
将领会:尽管未在图1和2中示出,但是VR视频可以包括示出用户上方和下方的视图的流。此外,尽管图1和2每个示出360度全景视频,但是VR视频还可以表示更有限的全景视图,例如180度。此外,流可以但不需要部分或完全重叠。前者的示例是使用小的保护带,例如具有小于单个流的图像数据的大小的一半的大小的保护带。后者的示例是每个流可以包括以低分辨率的整个360度视图,同时每个包括360度视图的以较高分辨率的不同且有限的部分,例如20度视图。较低分辨率部分可以位于较高分辨率视图左边和右边,但也可以位于所述较高分辨率视图上方和/或下方。所述不同的部分可以具有各种形状,例如矩形、三角形、圆形、六边形等。
图3图示根据本发明的一个方面的VR视频从服务器120到VR渲染设备100的流式传输。如图3中所示,VR渲染设备100可以经由数据通信“请求流B”102请求流B。该请求可以被网络高速缓存110接收。作为响应,网络高速缓存110可以经由数据通信“发送流B”112开始将流B流式传输到VR渲染设备。基本上同时,网络高速缓存110可以经由数据通信“请求流A、 C”114向服务器120请求流A和C。流A和C可以表示与由流B提供的图像数据在空间上相邻的图像数据。作为响应,服务器120可以经由数据通信“发送流A、C”122开始将流A和C流式传输到网络高速缓存110。流A和C的数据然后可以被存储在网络高速缓存110的数据贮存器中(图3中未示出)。注意:还可以向服务器120请求流B(在这里因为简洁而未示出),即能够为了VR渲染设备100或其他VR渲染设备的后续请求而从网络高速缓存110递送该流B。
如果VR渲染设备100随后请求流A和/或C,则然后可以例如以与先前递送流B类似的方式将所述流中的任一个或两者直接从网络高速缓存110递送到VR渲染设备100。
还如图3中所示,网络高速缓存110可以位于核心网40与接入网30之间的边缘处,VR渲染设备100可以经由其而连接到核心网40。核心网40可以包括互联网或由互联网组成。与核心网40相比,接入网30可能是带宽受限的。然而,这些不是限制,因为一般地,网络高速缓存110可以位于VR渲染设备100的上游和网络中的服务器120的下游,其中“网络”包括若干网络(例如接入网30和核心网40)的组合。
分块/分段流式传输
MPEG DASH和分块流式传输在本领域中是已知的,例如从Ochi、Daisuke等人.“Live streaming system for omnidirectional video”Virtual Reality(VR),2015 IEEE已知。简而言之,使用空间关系描述(SRD),在MPD(媒体呈现描述)中描述图块之间的关系是可能的。然后可以单独请求图块,并且因而客户端(例如,VR渲染设备)可以通过请求视口所需的图块来请求任何特定视口。以相同的方式,高速缓存可以请求保护带图块,这被在下文中关于图4-6进行描述。注意:关于图9描述了涉及分块流式传输的附加方面。
图4示出VR视频的基于图块的表示200,同时示出VR设备100的包括图块的第一子集的当前视口210。在VR视频的基于图块的表示200和当前视口210的描绘中,坐标系用于例如使用从A-R的水平轴和从1-6的垂直轴来指示图块之间的空间关系。注意:在该示例和以下示例中,为了解释的容易,当前视口210被示出定位成使得其例如通过与图块200的网格完美对齐而由许多完整的图块组成。然而,通常,当前视口210可以被定位成使得其例如通过相对于图块200的网格对偏而包括一个或多个部分图块。有效地,当前视口210可以表示检索到的图块的许多图像数据。然而,部分图块可能需要被作为一个整体来检索。注意:也如在本说明书中在其他地方所描述的,可以以在本领域中本身已知的方式,例如响应于头部跟踪,来执行用于当前视口的图块的选择。
图5示出针对当前视口210的保护带。即,示出一组图块220,其围绕当前视口210并且从而针对当前视口210的图块的图像数据提供在空间上相邻的图像数据。
进一步关于图6解释这样的保护带220的缓存,图6示出客户端100(例如,VR渲染设备)、高速缓存110与服务器120之间的消息交换。在这里,参考各段,其表示用于VR视频的内容时间线的一部分的图块的视频。
客户端100首先经由消息(1)请求段G2:J4。高速缓存110然后经由消息(2)请求段E1:L6,其可以表示针对段G2:J4的视口和伴随的保护带的组合。高速缓存110进一步经由消息(3)递送被请求的段G2:J4。注意:可能已经响应于前一请求而缓存了段G2:J4,这未在这里示出。接下来,客户端100例如响应于用户将他/她的头部向左转而经由消息(4)请求图块F2:I4,并且高速缓存110经由消息(5)再次请求视口和保护带D1:K6的组合,而经由消息(6)递送被请求的段F2:I4。客户端100然后例如响应于用户将他/她的头部更多地向左并且有点向下转动而经由消息(7)请求图块E1:H3。现在,高速缓存110接收来自较早的请求(1)的段E1:L6。因此,高速缓存110能够按照请求(即经由消息(9))递送段E1:H3。消息(10)-(12)表示消息交换的进一步继续。
在这方面,注意:当初始化VR视频的流式传输时,可能不会立即可从高速缓存获得客户端请求的第一段(或前几段),因为可能需要首先从媒体服务器检索这些段。为了缩小该初始化时段(其中可能在可能相当大的延迟之后接收段)与正在进行的流式传输会话(其中段可以被预先缓存并且因而从高速缓存快速递送)之间的差距,客户端可以临时跳过段的播出或者临时增加其播出速度。如果跳过段,并且如果图6的消息(1)是初始化时段中的第一请求,则消息(9)可以是可以由高速缓存110做出的第一递送。消息(3)和(6)的段可能不被快速递送,并且因而可以在播出时被客户端100跳过。注意:关于图17进一步描述初始化方面。
在以上和其他实施例中还应当领会:对视口和(一个或多个)保护带的组合的请求可以包括对分离的图块的分离的请求。例如,可以在保护带图块之前请求视口图块,例如,以增加至少视口及时在高速缓存处可获得的概率或者允许几分之一秒来用于在请求保护带图块之前计算最佳保护带。
金字塔编码
图7图示在金字塔编码的VR视频的背景内的流的预测缓存,其中不同的流每个示出场景的较高质量的不同部分,同时示出较低质量的剩余部分。这样的金字塔编码被例如在Kuzyakov等人,“Next-generation video encoding techniques for 360 video andVR”,2016年1月21日,https://code.facebook.com/posts/1126354007399553/next- generation-video-encoding-techniques-for-360-video-and-vr/处发现的网络帖子中进行描述。照此,VR视频的整个画布可以被多次编码,其中每个被编码流包括较高质量的不同部分以及较低质量的剩余部分(例如,具有较低比特率、分辨率等)。尽管在图7中被示为矩形,但是将领会:所述不同部分可以具有各种形状,例如三角形、圆形、六边形等。
例如,360度全景可以被分成30度切片并且可以被编码12次,每次以较高质量将四个30度切片编码在一起,例如表示120度视口。该120度视口可以匹配当前一代VR头戴式视图器的100到110度视野。图7中示出三个这样的编码的示例,示出具有从-60到+60度的较高质量视口240的第一编码230、具有从-30到+90度的较高质量视口242的第二编码232、以及具有从-90到+30度的较高质量视口244的第三编码234。在特定示例中,当前视口可以是[-50:50],其可以良好地落在[-60:60]编码230内。然而,当用户将他/她的头部向右或向左移动时,视口可能快速移出编码230的高质量区域。照此,作为“保护带”,[-30:90]编码232和[-90:30]编码234可以由高速缓存来缓存,从而允许客户端快速切换到另一编码。
可以使用多播将这样的编码递送给客户端。多播流可以被建立到网络的边缘,例如在密集模式中,或者可以仅在请求时被发送,例如在稀疏模式中。当客户端例如通过请求某个编码来请求某个视口时,向当前视口的右边和左边提供较高质量的编码也可以被发送到边缘。下表示出了针对该特定流/编码的示例范围和多播地址。
范围 多播地址 范围 多播地址 范围 多播地址
[-180:-60] 225.1.1.6 [-60:+60] 225.1.1.10 [+60:+180] 225.1.1.14
[-150:-30] 225.1.1.7 [-30:+90] 225.1.1.11 [+90:-30] 225.1.1.15
[-120:0] 225.1.1.8 [0:+120] 225.1.1.12 [+120:-60] 225.1.1.16
[-90:+30] 225.1.1.9 [+30:+150] 225.1.1.13 [+150:-90] 225.1.1.17
图8示出在客户端100、高速缓存110与服务器120之间的对应消息交换,其中流在多播的背景内由高速缓存110缓存。在该特定示例中,客户端100首先通过(例如,利用IGMP加入(join))经由消息(1)加入该多播来请求225.1.1.10流。高速缓存110然后不仅向服务器120请求该流,而且经由消息(2)(或者可能经由多个消息,每个多播地址一个)请求相邻的流225.1.1.9和225.1.1.10。一旦所述流由服务器120经由消息(3)递送到高速缓存110,高速缓存110就经由消息(4)仅将所请求的225.1.1.10流递送到客户端100。如果用户然后将他的头部向右转,则客户端100可以经由消息(4)加入225.1.1.11流并离开(leave)225.1.1.10流。因为225.1.1.11流在高速缓存110处可获得,所以其可以被经由消息(6)快速递送到客户端100。高速缓存110可以随后经由消息(7)离开不再相邻的流225.1.1.9并且加入现在相邻的流225.1.1.12以更新缓存。将领会:尽管加入和离开在图8中被示为单个消息,例如,如由IGMP版本3所允许的,但是这样的加入/离开消息也可以是分离的消息。
在该示例中,切换整个编码或流。为了使得这一点能够快速发生,希望每个新流以I帧开始。在本说明书中的其他地方描述和/或引用了用于这样做的技术。
基于云的FoV渲染
分块/分段流式传输和金字塔编码的替代方案是基于云的视野(FoV)渲染,例如,如在以下中所描述:Steglich等人,“360 Video Experience on TV Devices”,EBU BroadThinking 2016处的演示,2016年4月7日。而且在该背景下,可以使用所描述的缓存机制。即,代替仅将VR视频(例如,整个360度全景)剪切到当前视口,还可以剪切可能具有相对于当前视口的空间偏移的附加视口。然后可以编码附加视口并将其递送到高速缓存,同时可以编码当前视口并将其递送到客户端。在这里,可以选择空间偏移,使得其包括将来可能被请求的图像数据。照此,如果头部旋转预计受到限制,则空间偏移可能导致视口之间的重叠。
进一步关于在MPEG DASH的背景内的缓存,图9示出一般的MPEG DASH实施例,其中高速缓存110预测并缓存为当前视口提供保护带的流。照此,高速缓存110可以是媒体感知的。一般地,高速缓存110可以使用与客户端100相同的机制来请求适当的图块。例如,高速缓存110可以能够访问描述内容(例如,VR视频)的MPD,并且能够解析MPD。高速缓存100还可以配置有规则集,以基于客户端100请求的图块来导出保护带。这可以是简单的规则集,例如在所有方向上的两个图块保护带,但是也可以更高级。例如,规则集可以包括运动预测:客户端请求连续向右的图块可以是用户的右旋转的指示。因而,可以缓存更向右的防护带,同时缓存较少向左。而且,在(例如,在延长的时段内)缺乏运动的情况下,防护带可以在大小上减小,同时它们的大小可以随着显著的运动而增加。还关于“保护带大小”进一步向前描述这方面。
一般地,为了标识将缓存哪些流,可能需要空间关系数据,其指示在如由所述多个流提供的场景的不同图像数据之间的空间关系。继续关于MPEG-DASH,可以通过空间关系描述(SRD)来实现图块的概念,如在ISO/IEC 23009-1:2015/FDAM 2:2015(E)中所描述的(在提交时,仅在草稿中可获得)。这样的SRD数据可以是空间关系数据的示例。即,DASH允许不同的自适应集合承载不同的内容,例如各种相机角度,或者在VR的情况下,一起形成360度视频的各种图块。SRD可以是自适应集合的附加属性,其可以描述全部内容的宽度和高度,例如完整的画布、图块的左上角的坐标以及图块的宽度和高度。相应地,每个图块可以被支持SRD机制的DASH客户端单独地标识和分离地请求。下表提供VR视频的特定图块的SPD数据的示例:
属性名称 属性值 注释
source_id 0 内容的源的唯一标识符,以示出空间部分属于什么内容
object_x 6 图块的左上角的x坐标
object_y 2 图块的左上角的y坐标
object_width 1 图块的宽度
object_height 1 图块的高度
total_width 17 内容的总宽度
total_height 6 内容的总高度
在这方面,注意:可以在由针对内容所选择的总高度和宽度定义的(任意)规模(scale)上定义高度和宽度。
以下提供提到图块的媒体呈现描述的示例。在这里,首先描述整个VR视频,其中SRD已经被添加在逗号分离的值对中。描述整个画布,其中左上角是(0,0),图块的大小是(17,6)并且总内容的大小也是(17,6)。然后,描述前四个图块(水平地)。
将领会:还可想到以空间关系数据的形式描述VR视频的部分的各种其他方式。例如,空间关系数据可以描述视频的格式(例如,球面投影(equirectangular)、圆柱形、展开的立方体图、立方体图)、偏转(例如,地平线上的度数,从0到360)和俯仰(例如,从-90度(向下)到90度(向上))。这些坐标可以指图块的中心,并且可以用度来描述图块宽度和高度。这样的空间关系数据将允许更容易的从也被关于这些轴所定义的头部跟踪器的实际跟踪数据的转换。
服务器和网络辅助DASH
图10示出使用DASH规范服务器和网络辅助DASH(SAND)的MPEG DASH实施例,如在ISO/IEC DIS 23009-5中所描述的。该标准描述DASH客户端和DASH感知网元(DANE)(诸如DASH感知高速缓存(其中这样的高速缓存被在下文中简称为DANE))之间的信令。该标准允许以下:
1.DASH客户端可以向DANE指示它预期是将来的请求的内容。使用该机制,客户端因而可以将保护带图块指示为可能的将来的请求,允许DANE提前检索这些请求。
2.DASH客户端还可以指示相同自适应集合的可接受表示,例如,指示可接受的分辨率和内容带宽。这允许DANE做出关于实际提供哪个版本的决定。以该方式,DANE可以检索较低分辨率(并且因此检索较低带宽版本),这取决于可用带宽。客户端可以始终请求高分辨率版本,但是可能被告知:递送的图块实际是较低分辨率。
进一步关于第一方面,预期的请求的指示可以由DASH客户端100通过将状态消息AnticipatedRequests发送到DANE 110来完成,如图10中所示。该请求可以包括段URL的数组。对于每个URL,可以指定字节范围并且可以指示预计的请求时间或targetTime。该预计的请求时间可以用于确定保护带的大小:如果请求被预期较晚,则它可以进一步远离当前视口,并且因而可能需要较大的保护带。而且,如果存在缓慢的头部运动或快速的头部运动,则预计的请求时间可能分别较晚或较早。如果DASH客户端指示这些预期的请求,则DANE可以提前请求图块并且在实际请求由DASH客户端发送时使其被缓存。
注意:如果DASH客户端指示它期望在400ms内请求某个空间区域,则这可以表示DASH客户端将向那时正在播放的内容请求图块。预计的请求时间因而可以指示将缓存流的内容时间线的哪个部分,例如分段的流的哪段。以下是在HTTP头部中发送的状态消息(的此部分)的示例,示出对图块1的预期请求:
图11示出使用SAND的另一个MPEG DASH实施例,其中服务器120是DANE,而高速缓存110是常规HTTP高速缓存而不是媒体感知的“智能”高速缓存。在该示例中,客户端100可以向服务器120发送指示保护带的AnticipatedRequests消息。为了使得保护带能够被缓存,服务器120可能需要知道客户端正在使用的高速缓存。这是可能的,但取决于用于请求路由的机制,例如,如在以下中所描述的:Bartolini等人.在“A walk through content delivery networks”,Performance Tools and Applications to Networked Systems,Springer Berlin Heidelberg,2004。一般地,在内容递送网络(CDN)中,假设CDN知道哪些客户端被重定向到哪个高速缓存。而且,期望CDN具有用适当内容填充高速缓存的分发机制,这在DASH的情况下可以包括将恰当的DASH段复制到正确的高速缓存。
然而,可能仍然需要告知客户端100将其AnticipatedRequest消息发送到何处。这可以用如在SAND规范中描述的向客户端100发信号通知SAND通信信道的SAND机制来完成。该机制允许向客户端100发信号通知多个DANE地址,但是当前不允许发信号通知应当将哪个类型的请求发送到哪个DANE。关于SAND通信信道的信令可以扩展为包括参数“SupportedMessages”,其可以是支持的消息类型的数组。该附加参数将允许向客户端100发信号通知应当将哪些类型的请求发送到哪个DANE。
进一步关于SAND的第二方面,例如,当DASH客户端请求较高分辨率版本时发送较低分辨率版本,SAND提供AcceptedAlternatives消息和DeliveredAlternative,如图12中所指示的。使用前者,DASH客户端100可以在向DANE 110的段请求期间指示可接受的替代。这些替代是在MPD中描述的其他表示,并且可以被使用URL来指示。可以如何在HTTP头部中指示这一点的示例如下:
当DANE 110递送替代段时,它可以使用DeliveredAlternative消息来指示这一点。在该消息中,被请求的原始URL可以与实际递送的内容的URL一起被指示。
多用户流式传输
尽管先前已经关于单个客户端描述了在网络高速缓存处缓存保护带的概念,但是可能存在多个客户端同时流式传输相同的VR视频。在这样的情况下,一个观看者请求的内容部分(例如,图块)可以是视口图块,或者另一个观看者请求的内容部分可以是保护带图块,并且反之亦然。可以利用该事实来改进缓存机制的效率。
图13中示出示例,其中客户端A和B正在同时观看由图块200表示的VR视频。客户端A具有可以经由高速缓存递送的当前视口210。客户端B具有当前视口212,其被移位但与客户端A的视口210部分重叠,例如通过被向右和向上定位。在这里,视口212中的阴影图块指示重叠的图块,并且因而在相应视口由高速缓存递送到客户端的情况下仅必须为两个客户端递送到高速缓存一次。
图14示出将为客户端A缓存的图块220的保护带。因为许多这些图块已经是客户端B的当前视口212的一部分(参见阴影重叠),所以这些仅需要被递送到高速缓存一次。此外,用于客户端B的图块222的保护带多半与客户端A已经请求的图块重叠(参见阴影重叠)。对于客户端B,仅需要特别为客户端B递送不重叠的图块(保护带222的最右边2列)。
当更多客户端同时观看内容时,缓存效率可能甚至更高。此外,当客户端不是在完全相同的时间而是在近似相同的时间观看内容时,仍然可以获得效率。即,高速缓存通常保留内容达某个时间,以能够在稍后及时从高速缓存为对相同内容的请求服务。此原则可以适用于这里:稍后及时请求内容的客户端可以受益于其他客户端的早期请求。
相应地,当高速缓存或DANE向媒体服务器请求段时,例如,如图9和10中所示,它可以首先检查某些段是否已经可获得,例如,是否已经被缓存,或者是否已经被向服务器请求。对于新请求,高速缓存仅需要(例如为另一客户端)请求不可获得且尚未被请求的那些段。
将领会:多个连续观看者可以导致较高效率的又一方式是确定内容的最流行部分。如果这可以从第一数目的观看者的观看行为中确定,则该信息可以用于确定要请求的最可能的部分并且有助于确定有效的保护带。所有可能的部分可以一起形成保护带,或者保护带可以基于当前视口和早期观看者观看最多的部分的组合来确定。这可能是时间相关的:在播出期间,观看最多的区域将可能随着时间的过去而不同。
定时方面
对于保护带的缓存,可能存在时间方面,这可以被关于图15进行解释,图15示出在分块流式传输的背景内的流的内容时间线的部分的选择性缓存的示例。
在该示例中,客户端100可以设法渲染某个视口,在该情况下(6,2)-(10,5)指这些坐标之间的所有图块。使用分块流式传输,客户端100可以向高速缓存110请求这些图块,并且高速缓存110可以快速递送这些图块。高速缓存110然后可以向服务器120请求当前视口和附加保护带两者。高速缓存110因而可以请求(4,1)-(12,6)。用户然后可以将他/她的头部向右旋转,并且作为响应,客户端100可以请求视口(7,2)-(11,5)。这在保护带的范围内,因此高速缓存110具有所述图块并且可以将它们递送到客户端100。
图16示出图15的示例的变体,其中客户端100在前一保护带的图块被递送之前请求新图块。在该示例中,在来自客户端100的第一请求之后,高速缓存110可以递送被请求的图块并再次请求包括保护带图块的新图块。然而,在所述图块由服务器120递送到高速缓存110之前,两个附加请求从客户端100到达。根据网络距离,例如如通过跳数、ping时间、沿着网络路径的节点数等所测量到的,因为高速缓存110可能更接近客户端100而不是服务器120,所以这可能是典型情况。相应地,保护带的选择可能需要考虑递送时间:用户在从媒体服务器到高速缓存得到新段所需的时间内可以将他/她的头部旋转多远优选地,防护带足够大以应对典型的头部旋转,例如达50%、75%、80%、90%或95%的时间。将领会:还关于“保护带大小”进一步向前讨论保护带大小的确定。
此外,在DASH中,在特定时间点内针对图块做出对图块的请求。高速缓存110因而可能需要确定请求图块的时间点。特别地,图块应当表示在时间点尽可能好地匹配将来的请求的内容。该关系可以是固定的预先配置的关系,但也可以取决于(实时)测量结果。此外,质量等级也可以变化。例如,如果从服务器120检索图块花费延长的时间或者如果网络上的可用带宽有限,则高速缓存110可以例如请求较低质量的保护带图块(因为它们可能未被使用),或者降低质量的保护带图块,例如,其在当前视口附近具有较高质量并且在远处具有较低质量。
图17示出图15的示例的变体,其中客户端的请求是第一请求,例如,在图块的缓存开始之前。照此,图17解决以下问题:客户端的第一请求会发生什么高速缓存110那时还没有缓存的图块,并且可以在可以从服务器120检索任何图块之前从客户端100接收多个请求。一般地,因为先前的请求基于先前的头部位置,所以针对先前的请求递送图块可能是不合期望的,并且因而将导致头部旋转与视频旋转之间的大的延迟。相应地,如图17中所示,不满足第一请求或前几个请求可能更好。在客户端侧,未满足的请求可以被如下处理:
- 用某些流式传输机制,客户端可能不知道媒体定时,例如,如在RTP流式传输的情况下那样。在这里,客户端可以请求内容并接收它可以开始播放的内容。如果客户端没有接收任何内容,则播出将仅变成空白。在这样的情况下,可能不需要特殊的措施。
- 用DASH,可以既在空间上又在时间上请求特定图块(哪个内容时间针对哪些图块)。这可以被用各种方式来处理:
○ 修改客户端以便以AnticipatedRequests消息开始,并且临时推迟请求以给予高速缓存检索段的时间。
○ 修改客户端,使得其不期望对第一个和可能的后续请求的回复,或者后期期望它们。如果内容被递送,则客户端可以丢弃它后期接收的那些图块,并开始播放在请求之后立即递送的图块,这在图17中是在最后一个请求之后的递送。
○ 高速缓存本身可以响应于不能够得到满足的请求而(例如通过发送404 Not Found消息)发送回复。这可以向客户端指示这些特定图块不可获得。这可能进一步涉及客户端的修改,以便能够解释这样的消息并对这样的消息正确地起作用。
○ 高速缓存可以例如通过发送在给定请求的情况下恰当地格式化但是包含空白视频(例如,黑色像素)的图块,而发送假响应。这样的假视频分组可以以各种分辨率在高速缓存处可获得,或者可以在运行中被创建。这不涉及任何客户端修改。
保护带大小
一般地,可以确定将由高速缓存所缓存的保护带的大小以反映诸如预计的头部运动以及高速缓存与服务器之间的延迟之类的方面。例如,保护带的大小可以取决于用户的头部运动的测量结果或统计、用户的头部旋转的测量结果或统计、由VR视频表示的内容的类型、服务器与网络高速缓存之间的网络中的传输延迟、网络高速缓存与客户端之间的网络中的传输延迟、和/或客户端对流的第一子集的处理的处理延迟。这些统计可以由诸如高速缓存和客户端之类的网络实体(例如实时地)测量,并且可以用作确定保护带大小的函数的输入。该函数可以被启发式地设计,例如设计为一组规则。
此外,如果内容以不同的质量等级(例如,不同的分辨率和/或比特率)可获得,则可以根据任何数目的以上测量结果或统计以不同的质量等级请求各部分。例如,在快速头部旋转的情况下,可以请求较低质量的较大保护带,而在缓慢头部旋转的情况下,可以请求较高质量的较小保护带。该决定也可以由高速缓存本身做出,例如,如在SAND的背景下关于图12所描述的。大小和/或质量等级的以上改变可以进一步与自适应流式传输相结合,在自适应流式传输中测量带宽并确定用于将来段的“正确”比特率。因为客户端可以切换到较低或较高的比特率,所以具有对应比特率的段可以由高速缓存来缓存。
内容过滤
保护带的选择性缓存可以包括子流的选择性传输或转发。这可以被解释如下。VR视频可以被承载在MPEG-TS(输送流)中,其中各种部分(图块、段)每个作为MPEG-TS中的基本流而被承载。每个这样的基本流可以作为PES(分组化的基本流)而被输送,并且具有它自己的唯一PID(分组标识)。由于该PID是MPEG-TS的头部信息的一部分,因此可能从完整的输送流中过滤出某些基本流。该过滤可以由网络节点执行,以选择性地仅将特定基本流转发到高速缓存,例如当整个MPEG-TS由服务器流式传输时。替代地,服务器可以选择性地仅传输特定基本流。替代地,高速缓存可以使用PID来选择性地仅存储所接收的MPEG-TS的特定基本流。还可以针对HEVC编码流执行这样的内容过滤。HEVC比特流由每个被包含在NAL(网络抽象层)单元中的各种元素组成。视频的各种部分(图块、段)可以由分离的NAL单元承载,分离的NAL单元每个具有其自己的标识符,并且因而使得能够实现内容过滤。
高速缓存与网络递送节点
将领会:所描述的缓存可能不主要意图用于缓冲。通常需要这样的缓冲来对齐请求和媒体的递送,和/或减少客户端处的抖动。从高速缓存到媒体服务器的请求(其中前者优选地位于到客户端的接入网附近的核心网的边缘处)可能比从客户端到高速缓存的请求花费更多时间。添加额外的保护带可以允许高速缓存在将来递送由客户端请求的段,而不提前知道该请求。
此外,贯穿本说明书,在使用术语“高速缓存”的情况下,也可以使用“内容递送节点”或“媒体感知网元”等。即,高速缓存可能不需要是传统(HTTP)高速缓存,特别是考虑到取决于内容递送方法,可能仅短的缓存是有序的。
一般地,被称为高速缓存的实体可以是网络中的节点,例如网元,该网元优选地位于核心网的边缘附近,并且从而接近到客户端的接入网,并且其能够递送被请求的视口和(临时)缓冲保护带。在DASH的情况下,该节点可以是常规HTTP高速缓存,但也可以是高级媒体感知网元(MANE)或者内容递送网络中的另一类型的递送节点。将领会:诸如SAND中的DANE之类的递送节点可以执行更多功能,例如转码、混合、再利用。在该情况下,递送节点可以被视为具有支持流式传输的添加的功能性的一类高速缓存。
一般方面
缓存机制可以与各种流式传输协议结合使用,所述各种流式传输协议包括但不限于例如RTSP、RTMP、HLS等。
在示例中,高速缓存一般决定保护带。客户端也可以决定保护带,并将此指示给高速缓存。
可能存在串行提供的多个高速缓存,具有位于层次中的较高处(例如,较接近服务器)的高速缓存,其比在层次中的较低处(例如,较接近客户端)的高速缓存缓存更大大小的保护带。
将领会:流源可以是基于云的,因为可以从媒体服务器的分布式系统流式传输所述多个流,或者一般可以从多个共享的计算资源流式传输所述多个流。
将领会:当切换流时,确保将(一个或多个)新流的I帧尽可能快地提供给客户端可能是有利的。存在用于此的若干已知技术,例如来自IPTV领域,在IPTV领域中所述若干已知技术被称为“快速信道改变”或“迅速信道改变”,其可以与本公开中所描述的技术结合使用。
图18示出示例性网络高速缓存300。网络高速缓存300可以包括用于与网络通信的网络接口310。网络接口310可以是但不限于以太网或者基于光纤的局域网或广域网(LAN、WAN)接口,或者例如根据Wi-Fi、4G或5G电信标准的无线接口。网络高速缓存300可以进一步包括用于缓存数据的数据贮存器330,其可以是任何合适类型的数据贮存器,例如,一个或多个硬盘、固态盘或其他类型的数据贮存器。网络高速缓存300可以进一步包括高速缓存控制器320,其被配置成:获得指示如由多个流提供的场景的不同图像数据之间的空间关系的空间关系数据,标识渲染被选视图所需的一个或多个流,从而使用空间关系数据标识流的第一子集,标识提供该场景的与流的第一子集的图像数据在空间上相邻的图像数据的流的第二子集,获得标识网络中的提供对流的第二子集的访问的一个或多个流源的流元数据,使用网络接口请求来自所述一个或多个流源的流的第二子集的流式传输,并且将流的第二子集缓存在数据贮存器中。高速缓存控制器320可以被配置成执行如在本说明书中所描述的高速缓存的任何缓存功能。将关于图22描述高速缓存及其高速缓存控制器的另一个示例性实施例。
图19示出示例性VR渲染设备400,其可以包括用于与网络通信的网络接口410。网络接口410可以是但不限于以太网或者基于光纤的局域网或广域网(LAN、WAN)接口,或者例如根据Wi-Fi、4G或5G电信标准的无线接口。VR渲染设备400可以进一步包括显示处理器420,其被配置成基于所述多个流中的一个或多个来渲染场景的被选视图。这样的显示处理器420本身在本领域中是已知的,并且可以但不需要包括一个或多个图形处理单元(GPU)。VR渲染设备400可以进一步包括控制器430,其被配置成:获得指示如由所述多个流提供的场景的不同图像数据之间的空间关系的空间关系数据,标识渲染被选视图所需的一个或多个流,从而使用空间关系数据标识流的第一子集,标识提供该场景的与流的第一子集的图像数据在空间上相邻的图像数据的流的第二子集,并且通过使用网络接口向网络高速缓存或者向网络中的提供对流的第二子集的访问的一个或多个流源发送消息而实现流的第二子集在被包括在网络中的所述一个或多个流源的下游和VR渲染设备的上游的网络高速缓存中的缓存,其中该消息包括在网络高速缓存中缓存流的第二子集的指令。在该消息将被发送到所述一个或多个流源的情况下,控制器可以被配置成获得流元数据,该流元数据标识网络中的提供对流的第二子集的访问的所述一个或多个流源。将关于图22描述另一个示例性实施例。
将领会:VR渲染设备400可以包括用于显示经渲染的VR环境的一个或多个显示器。例如,VR渲染设备400可以是例如与“Gear VR”或“Google Cardboard”相同或类似类型的VR头戴式视图器,例如指可头戴的显示设备或者将在VR外壳中使用的智能电话或平板设备。替代地,VR渲染设备400可以是连接到显示器或VR头戴式视图器并且向显示器或VR头戴式视图器提供经渲染的图像以用于在其上显示的设备。特定的示例是:VR渲染设备400可以由个人计算机或游戏控制台表示,该个人计算机或游戏控制台连接到例如与“Oculus Rift”、“HTC Vive”或“PlayStation VR”相同或类似类型的分离的显示器或VR头戴式视图器。VR渲染设备的其他示例是能够播出VR视频的所谓增强现实(AR)设备,诸如MicrosoftHoloLens。
此外,尽管未在图19中示出,但是VR渲染设备400可以包括一个或多个存储器,其可以用于各种目的,包括但不限于存储可以从高速缓存或服务器接收的数据。
注意:VR渲染设备可以知道何时基于测量到的用户的头部旋转或头部运动来切换流。在这里,“切换流”是指至少一个新流被请求,并且前一流的流式传输被停止。注意:测量用户的头部旋转或头部运动在本领域中本身是已知的,例如,使用陀螺仪、相机等。可以由VR渲染设备本身,例如通过包括陀螺仪、相机或连接到记录用户的外部相机的相机输入,或者由外部设备,例如连接到VR渲染设备的外部VR头戴式视图器或者例如使用所谓的“从外到内”跟踪从外部记录VR头戴式视图器的外部相机,或者它们的组合,来测量头部旋转或头部运动。此外,尽管流的切换可以响应于头部旋转或头部运动,但是如所要求保护的发明不限于此,因为还可能存在其他原因来渲染全景场景的不同视图并且从而切换流。例如,流的切换可以在头部运动的预期中,例如,因为来自某个方向的与VR视频相关联的声音可能触发用户将他的头部旋转到该某个方向,其中即将到来的声音的发生触发切换。
图20示出用于将VR视频流式传输到VR渲染设备的方法500。方法500可以包括:在题为“获得空间关系数据”的操作中,获得510指示如由多个流提供的场景的不同图像数据之间的空间关系的空间关系数据。方法500可以进一步包括:在题为“标识所需的(一个或多个)流”的操作中,标识520渲染被选视图所需的一个或多个流,从而标识流的第一子集。方法500可以进一步包括:在题为“标识(一个或多个)保护带流”的操作中,使用空间关系数据来标识530流的第二子集,流的第二子集提供该场景的与流的第一子集的图像数据在空间上相邻的图像数据。方法500可以进一步包括:在题为“获得流元数据”的操作中,获得流元数据540,流元数据标识网络中的提供对流的第二子集的访问的一个或多个流源。方法500可以进一步包括:在题为“实现(一个或多个)保护带流的缓存”的操作中,实现550流的第二子集在被包括在网络中的所述一个或多个流源的下游和VR渲染设备的上游的网络高速缓存中的缓存。将领会:以上操作可能被以任何合适的顺序(例如,连续地、同时地或其组合)执行,在适用的情况下经受例如因输入/输出关系而所需的特定顺序。例如,可以同时执行操作510和540。
方法500可以被在处理器系统上(例如,在计算机上)实现为计算机实现的方法、被实现为专用硬件、或者被实现为两者的组合。还如图21中所图示,用于计算机的指令(例如,可执行代码)可以被例如以机器可读物理标记的系列610的形式和/或作为具有不同的电(例如,磁或光学)属性或值的元素的系列存储在计算机可读介质600上。可执行代码可以被以暂时性或非暂时性方式存储。计算机可读介质的示例包括存储器设备、光学存储设备、集成电路、服务器、在线软件等。图21示出光盘600。
替代地,计算机可读介质600可以包括流元数据或空间关系数据,如在本说明书中的其他地方所描述的。
图22是图示可以在本公开的实施例中使用的示例性数据处理系统的框图。这样的数据处理系统包括在本公开中描述的数据处理实体,其包括但不限于VR渲染设备和转发节点。数据处理系统1000可以包括通过系统总线1006耦合到存储器元件1004的至少一个处理器1002。照此,数据处理系统可以将程序代码存储在存储器元件1004内。此外,处理器1002可以执行经由系统总线1006从存储器元件1004访问的程序代码。在一个方面,数据处理系统可以被实现为适合于存储和/或执行程序代码的计算机。然而,将领会:可以以包括能够执行本说明书内描述的功能的处理器和存储器的任何系统的形式来实现数据处理系统1000。
存储器元件1004可以包括一个或多个物理存储器设备,诸如例如本地存储器1008和一个或多个大容量存储设备1010。本地存储器可以指随机存取存储器或者一般在程序代码的实际执行期间使用的(一个或多个)其他非持久性存储器设备。大容量存储设备可以被实现为硬盘驱动器、固态盘或其他持久性数据存储设备。处理系统1000还可以包括一个或多个高速缓冲存储器(未示出),其提供至少一些程序代码的临时存储,以便减少在执行期间必须从大容量存储设备1010检索程序代码的次数。
被描绘为输入设备1012和输出设备1014的输入/输出(I/O)设备可以可选地耦合到数据处理系统。输入设备的示例可以包括但不限于例如麦克风、键盘、诸如鼠标之类的定点设备等。输出设备的示例可以包括但不限于例如监视器或显示器、扬声器等。输入设备和/或输出设备可以直接或者通过介于中间的I/O控制器耦合到数据处理系统。网络适配器1016也可以耦合到数据处理系统或者是数据处理系统的一部分,以使得其能够通过介于中间的私有或公共网络而变得耦合到其他系统、计算机系统、远程网络设备和/或远程存储设备。网络适配器可以包括:数据接收器,用于接收由所述系统、设备和/或网络传输到所述数据的数据,以及数据传输器,用于将数据传输到所述系统、设备和/或网络。调制解调器、电缆调制解调器和以太网卡是可以与数据处理系统1000一起使用的不同类型的网络适配器的示例。
如图22中所示,存储器元件1004可以存储应用程序1018。应当领会:数据处理系统1000可以进一步执行可以促进应用程序的执行的操作系统(未示出)。以可执行程序代码的形式实现的应用程序可以由数据处理系统1000执行,例如由处理器1002执行。响应于执行应用程序,数据处理系统可以被配置成执行本文中进一步详细描述的一个或多个操作。
在一个方面,例如,数据处理系统1000可以表示VR渲染设备。在该情况下,应用程序1018可以表示在被执行时将数据处理系统1000配置成执行在本文中关于VR渲染设备或一般“客户端”及其处理器和控制器所描述的各种功能的应用程序。在这里,网络适配器1016可以表示VR渲染设备的输入/输出接口的实施例。在另一个方面,数据处理系统1000可以表示网络高速缓存。在该情况下,应用程序1018可以表示在被执行时将数据处理系统1000配置成执行在本文中关于网络高速缓存及其高速缓存控制器所描述的各种功能的应用程序。
在权利要求中,放置在括号之间的任何参考符号不应当被解释为限制权利要求。动词“包括”及其词形变化的使用不排除不同于权利要求中陈述的那些元件或步骤的元件或步骤的存在。元件前面的冠词“一”或“一个”不排除多个这样的元件的存在。可以借助于包括若干有区别的元件的硬件以及借助于经合适编程的计算机来实现本发明。在列举若干部件的设备权利要求中,这些部件中的若干个可以由同一个项硬件来体现。在互相不同的从属权利要求中叙述某些措施的纯粹事实并不指示这些措施的组合不能用于获利。

Claims (15)

1.一种用于在将虚拟现实[VR]视频流式传输到VR渲染设备时使用的方法,其中所述VR视频由多个流表示,所述多个流中的每个提供场景的不同图像数据,其中所述VR渲染设备被配置成基于所述多个流中的一个或多个来渲染所述场景的被选视图,所述方法包括:
- 获得空间关系数据,所述空间关系数据指示如由所述多个流提供的所述场景的不同图像数据之间的空间关系;
- 标识渲染所述被选视图所需的一个或多个流,从而标识流的第一子集;
- 通过使用所述空间关系数据来标识流的第二子集,所述流的第二子集提供所述场景的与流的第一子集的图像数据在空间上相邻的图像数据;
- 获得流元数据,所述流元数据标识网络中的提供对流的第二子集的访问的一个或多个流源;以及
- 实现流的第二子集在网络高速缓存中的缓存,所述网络高速缓存被包括在所述网络中的所述一个或多个流源的下游和所述VR渲染设备的上游。
2.根据权利要求1所述的方法,进一步包括:
- 获得所述VR渲染设备可能渲染所述场景的哪些相邻图像数据的预测;以及
- 基于所述预测来标识流的第二子集。
3.根据权利要求2所述的方法,其中所述VR渲染设备被配置成根据用户的头部运动和/或头部旋转来确定所述场景的被选视图,并且其中获得所述预测包括获得指示所述用户的头部运动和/或头部旋转的跟踪数据。
4.根据权利要求1至3中任一项所述的方法,进一步包括基于以下中的至少一个来选择将由流的第二子集提供的所述场景的图像数据的空间大小:
- 用户的头部运动的测量结果或统计;
- 用户的头部旋转的测量结果或统计;
- 由所述VR视频表示的内容的类型;
- 在所述一个或多个流源与所述网络高速缓存之间的所述网络中的传输延迟;
- 在所述网络高速缓存与所述VR渲染设备之间的所述网络中的传输延迟;以及
- 所述VR渲染设备处理流的第一子集的处理延迟。
5.根据权利要求1至4中任一项所述的方法,其中流的第二子集可在所述一个或多个流源处以不同的质量等级来访问,并且其中所述方法进一步包括基于以下中的至少一个来选择将以其缓存流的第二子集的质量等级:
- 在所述一个或多个流源与所述网络高速缓存之间的所述网络中的可用带宽;
- 在所述网络高速缓存与所述VR渲染设备之间的所述网络中的可用带宽;以及
- 将由流的第二子集提供的所述场景的图像数据的空间大小。
6.根据以上权利要求中任一项所述的方法,进一步包括:
- 从所述VR渲染设备接收对流的第一子集的流式传输的请求;
- 基于所述请求来标识流的第一子集。
7.根据权利要求6所述的方法,进一步包括:响应于所述请求的接收:
- 如果可获得,则实现从所述网络高速缓存对流的第一子集的一个或多个流的递送;以及
- 对于从所述网络高速缓存不可获得的流的第一子集的一个或多个其他流,
- 向所述一个或多个流源共同请求所述一个或多个其他流与流的第二子集,
- 实现所述一个或多个其他流到所述VR渲染设备的递送,同时实现流的第二子集在所述网络高速缓存中的缓存。
8.根据以上权利要求中任一项所述的方法,其中所述流元数据是诸如媒体呈现描述之类的清单。
9.根据权利要求1至8中任一项所述的方法,其中所述方法由所述网络高速缓存或者所述一个或多个流源执行。
10.根据权利要求1至8中任一项所述的方法,其中实现流的第二子集的缓存包括向所述网络高速缓存或者所述一个或多个流源发送消息,所述消息包括在所述网络高速缓存中缓存流的第二子集的指令。
11.根据权利要求1至8和10中任一项所述的方法,其中所述方法由所述VR渲染设备执行。
12.根据权利要求10所述的方法,其中所述方法由所述VR渲染设备执行,其中所述VR渲染设备是通过HTTP的MPEG动态自适应流式传输[DASH]客户端,并且其中所述消息是到DASH感知网元[DANE]的服务器和网络辅助DASH[SAND]消息,诸如“AnticipatedRequests”消息。
13.一种包括计算机程序的暂时性或非暂时性计算机可读介质,所述计算机程序包括用于使处理器系统执行根据权利要求1至12中任一项所述的方法的指令。
14.一种用于在将虚拟现实[VR]视频流式传输到VR渲染设备时使用的网络高速缓存,其中所述VR视频由多个流表示,所述多个流中的每个提供场景的不同图像数据,其中所述VR渲染设备被配置成基于所述多个流中的一个或多个来渲染所述场景的被选视图,所述网络高速缓存包括:
- 用于与网络通信的网络接口;
- 用于缓存数据的数据贮存器;
- 高速缓存控制器,其被配置成:
- 获得空间关系数据,所述空间关系数据指示如由所述多个流提供的所述场景的不同图像数据之间的空间关系;
- 标识渲染所述被选视图所需的一个或多个流,从而标识流的第一子集;
- 通过使用所述空间关系数据来标识流的第二子集,所述流的第二子集提供所述场景的与流的第一子集的图像数据在空间上相邻的图像数据;
- 获得流元数据,所述流元数据标识所述网络中的提供对流的第二子集的访问的一个或多个流源;
- 使用所述网络接口向所述一个或多个流源请求流的第二子集的流式传输;以及
- 将流的第二子集缓存在所述数据贮存器中。
15.一种用于流式传输VR视频的虚拟现实[VR]渲染设备,其中所述VR视频由多个流表示,所述多个流中的每个提供场景的不同图像数据,所述VR渲染设备包括:
- 用于与网络通信的网络接口;
- 显示处理器,其被配置成基于所述多个流中的一个或多个来渲染所述场景的被选视图;以及
- 控制器,其被配置成:
- 获得空间关系数据,所述空间关系数据指示如由所述多个流提供的所述场景的不同图像数据之间的空间关系;
- 标识渲染所述被选视图所需的一个或多个流,从而标识流的第一子集;
- 通过使用所述空间关系数据来标识流的第二子集,所述流的第二子集提供所述场景的与流的第一子集的图像数据在空间上相邻的图像数据;以及
- 通过使用所述网络接口向所述网络高速缓存或者向所述网络中的提供对流的第二子集的访问的一个或多个流源发送消息来实现流的第二子集在被包括在所述网络中的所述一个或多个流源的下游和所述VR渲染设备的上游的网络高速缓存中的缓存,其中所述消息包括在所述网络高速缓存中缓存流的第二子集的指令。
CN201780070320.6A 2016-09-14 2017-09-12 流式传输虚拟现实视频 Pending CN109923867A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP16188706.2 2016-09-14
EP16188706 2016-09-14
PCT/EP2017/072800 WO2018050606A1 (en) 2016-09-14 2017-09-12 Streaming virtual reality video

Publications (1)

Publication Number Publication Date
CN109923867A true CN109923867A (zh) 2019-06-21

Family

ID=56943352

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780070320.6A Pending CN109923867A (zh) 2016-09-14 2017-09-12 流式传输虚拟现实视频

Country Status (4)

Country Link
US (1) US20190362151A1 (zh)
EP (1) EP3513562A1 (zh)
CN (1) CN109923867A (zh)
WO (1) WO2018050606A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111083121A (zh) * 2019-11-29 2020-04-28 北京邮电大学 一种星地融合网络中的全景视频多播方法及装置
CN113407652A (zh) * 2021-05-24 2021-09-17 北京建筑大学 一种基于3dps的时空数据模型
WO2021259175A1 (zh) * 2020-06-23 2021-12-30 华为技术有限公司 视频传输方法、装置及系统
CN114095752A (zh) * 2021-10-18 2022-02-25 长沙宏达威爱信息科技有限公司 一种虚拟现实云渲染系统的制作方法
WO2022041156A1 (zh) * 2020-08-28 2022-03-03 华为技术有限公司 多播群组通信方法、装置和系统
CN115176285A (zh) * 2020-02-26 2022-10-11 奇跃公司 利用缓冲的交叉现实系统用于定位精度
CN115208935A (zh) * 2022-07-06 2022-10-18 中国电信股份有限公司 虚拟场景加载方法及装置、计算机可读介质和电子设备

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8849314B2 (en) 2009-04-29 2014-09-30 Blackberry Limited Systems and methods for location tracking notification
CN109691113B (zh) 2016-07-15 2022-02-08 皇家Kpn公司 流式传输虚拟现实视频
EP3510744B1 (en) 2016-09-09 2022-05-04 Vid Scale, Inc. Methods and apparatus to reduce latency for 360-degree viewport adaptive streaming
US10712555B2 (en) 2016-11-04 2020-07-14 Koninklijke Kpn N.V. Streaming virtual reality video
EP3560205B1 (en) 2016-12-20 2021-02-17 Koninklijke KPN N.V. Synchronizing processing between streams
US10944971B1 (en) * 2017-05-22 2021-03-09 Cinova Media Method and apparatus for frame accurate field of view switching for virtual reality
EP3509308A1 (en) * 2018-01-05 2019-07-10 Koninklijke Philips N.V. Apparatus and method for generating an image data bitstream
CN110519652B (zh) 2018-05-22 2021-05-18 华为软件技术有限公司 Vr视频播放方法、终端及服务器
US10764494B2 (en) * 2018-05-25 2020-09-01 Microsoft Technology Licensing, Llc Adaptive panoramic video streaming using composite pictures
US11917127B2 (en) 2018-05-25 2024-02-27 Interdigital Madison Patent Holdings, Sas Monitoring of video streaming events
US10666863B2 (en) 2018-05-25 2020-05-26 Microsoft Technology Licensing, Llc Adaptive panoramic video streaming using overlapping partitioned sections
US10638151B2 (en) * 2018-05-31 2020-04-28 Verizon Patent And Licensing Inc. Video encoding methods and systems for color and depth data representative of a virtual reality scene
EP3576413A1 (en) * 2018-05-31 2019-12-04 InterDigital CE Patent Holdings Encoder and method for encoding a tile-based immersive video
US11032590B2 (en) 2018-08-31 2021-06-08 At&T Intellectual Property I, L.P. Methods, devices, and systems for providing panoramic video content to a mobile device from an edge server
US10779014B2 (en) 2018-10-18 2020-09-15 At&T Intellectual Property I, L.P. Tile scheduler for viewport-adaptive panoramic video streaming
US10931979B2 (en) * 2018-10-18 2021-02-23 At&T Intellectual Property I, L.P. Methods, devices, and systems for decoding portions of video content according to a schedule based on user viewpoint
US11184461B2 (en) 2018-10-23 2021-11-23 At&T Intellectual Property I, L.P. VR video transmission with layered video by re-using existing network infrastructures
US11310516B2 (en) * 2018-12-21 2022-04-19 Hulu, LLC Adaptive bitrate algorithm with cross-user based viewport prediction for 360-degree video streaming
GB2580667A (en) * 2019-01-22 2020-07-29 Sony Corp A method, device and computer program
US11523185B2 (en) * 2019-06-19 2022-12-06 Koninklijke Kpn N.V. Rendering video stream in sub-area of visible display area
US11470017B2 (en) * 2019-07-30 2022-10-11 At&T Intellectual Property I, L.P. Immersive reality component management via a reduced competition core network component
US11159776B2 (en) * 2019-08-16 2021-10-26 At&T Intellectual Property I, L.P. Method for streaming ultra high definition panoramic videos
US11430175B2 (en) 2019-08-30 2022-08-30 Shopify Inc. Virtual object areas using light fields
US11029755B2 (en) 2019-08-30 2021-06-08 Shopify Inc. Using prediction information with light fields
US11315326B2 (en) * 2019-10-15 2022-04-26 At&T Intellectual Property I, L.P. Extended reality anchor caching based on viewport prediction
CN113473172B (zh) * 2020-03-30 2023-03-24 中国电信股份有限公司 Vr视频缓存方法、装置、缓存服务装置以及存储介质
US11290513B1 (en) * 2021-04-14 2022-03-29 Synamedia Limited Distributed adaptive bitrate (ABR) asset delivery
US11843755B2 (en) * 2021-06-07 2023-12-12 Zspace, Inc. Cloud-based rendering of interactive augmented/virtual reality experiences
US11418723B1 (en) 2021-11-29 2022-08-16 Unity Technologies Sf Increasing dynamic range of a virtual production display
CN114786061B (zh) * 2022-04-12 2023-08-22 杭州当虹科技股份有限公司 一种基于vr设备的画面视角修正方法
US20230338834A1 (en) * 2022-04-20 2023-10-26 Tencent America LLC Smart client for streaming of scene-based immersive media to game engine
CN116912385B (zh) * 2023-09-15 2023-11-17 深圳云天畅想信息科技有限公司 视频帧自适应渲染处理方法、计算机装置及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102413376A (zh) * 2010-09-22 2012-04-11 汤姆森特许公司 在全景场景中导航的方法
US20150249813A1 (en) * 2014-03-03 2015-09-03 Next3D, Inc. Methods and apparatus for streaming content
CN105144728A (zh) * 2013-03-15 2015-12-09 高通股份有限公司 通过http的动态自适应流式传输中面对丢失的媒体分段的恢复力

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ITMI20130949A1 (it) * 2013-06-10 2014-12-11 Consiglio Nazionale Ricerche Uso e preparazione di glicolipidi come adiuvanti in vaccini
US20150346812A1 (en) 2014-05-29 2015-12-03 Nextvr Inc. Methods and apparatus for receiving content and/or playing back content
KR101953679B1 (ko) * 2014-06-27 2019-03-04 코닌클리즈케 케이피엔 엔.브이. Hevc-타일드 비디오 스트림을 기초로 한 관심영역 결정
US10193994B2 (en) * 2015-06-18 2019-01-29 Qualcomm Incorporated Signaling cached segments for broadcast
US10582201B2 (en) * 2016-05-19 2020-03-03 Qualcomm Incorporated Most-interested region in an image
KR102170550B1 (ko) * 2016-05-24 2020-10-29 노키아 테크놀로지스 오와이 미디어 콘텐츠를 인코딩하는 방법, 장치 및 컴퓨터 프로그램
US10587934B2 (en) * 2016-05-24 2020-03-10 Qualcomm Incorporated Virtual reality video signaling in dynamic adaptive streaming over HTTP
US10841566B2 (en) * 2016-05-26 2020-11-17 Vid Scale, Inc. Methods and apparatus of viewport adaptive 360 degree video delivery
EP3510744B1 (en) * 2016-09-09 2022-05-04 Vid Scale, Inc. Methods and apparatus to reduce latency for 360-degree viewport adaptive streaming
US11172005B2 (en) * 2016-09-09 2021-11-09 Nokia Technologies Oy Method and apparatus for controlled observation point and orientation selection audiovisual content
EP3526974B1 (en) * 2016-10-12 2021-06-30 Koninklijke KPN N.V. Processing spherical video data on the basis of a region of interest
US20180240276A1 (en) * 2017-02-23 2018-08-23 Vid Scale, Inc. Methods and apparatus for personalized virtual reality media interface design
US10297087B2 (en) * 2017-05-31 2019-05-21 Verizon Patent And Licensing Inc. Methods and systems for generating a merged reality scene based on a virtual object and on a real-world object represented from different vantage points in different video data streams
US10819645B2 (en) * 2017-09-20 2020-10-27 Futurewei Technologies, Inc. Combined method for data rate and field of view size adaptation for virtual reality and 360 degree video streaming

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102413376A (zh) * 2010-09-22 2012-04-11 汤姆森特许公司 在全景场景中导航的方法
CN105144728A (zh) * 2013-03-15 2015-12-09 高通股份有限公司 通过http的动态自适应流式传输中面对丢失的媒体分段的恢复力
US20150249813A1 (en) * 2014-03-03 2015-09-03 Next3D, Inc. Methods and apparatus for streaming content

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YE-KUI WANG 等: "《Signalling of most-interested regions of VR video》", 《115.MPEG MEETING;GENEVA; (MOTION PICTURE EXPERT GROUP OF ISO/IEC JTC1/SC29/WG11)》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111083121A (zh) * 2019-11-29 2020-04-28 北京邮电大学 一种星地融合网络中的全景视频多播方法及装置
CN115176285A (zh) * 2020-02-26 2022-10-11 奇跃公司 利用缓冲的交叉现实系统用于定位精度
CN115176285B (zh) * 2020-02-26 2023-07-25 奇跃公司 利用缓冲的交叉现实系统用于定位精度
WO2021259175A1 (zh) * 2020-06-23 2021-12-30 华为技术有限公司 视频传输方法、装置及系统
WO2022041156A1 (zh) * 2020-08-28 2022-03-03 华为技术有限公司 多播群组通信方法、装置和系统
CN113407652A (zh) * 2021-05-24 2021-09-17 北京建筑大学 一种基于3dps的时空数据模型
CN114095752A (zh) * 2021-10-18 2022-02-25 长沙宏达威爱信息科技有限公司 一种虚拟现实云渲染系统的制作方法
CN115208935A (zh) * 2022-07-06 2022-10-18 中国电信股份有限公司 虚拟场景加载方法及装置、计算机可读介质和电子设备

Also Published As

Publication number Publication date
WO2018050606A1 (en) 2018-03-22
EP3513562A1 (en) 2019-07-24
US20190362151A1 (en) 2019-11-28

Similar Documents

Publication Publication Date Title
CN109923867A (zh) 流式传输虚拟现实视频
US10819645B2 (en) Combined method for data rate and field of view size adaptation for virtual reality and 360 degree video streaming
US10062414B1 (en) Determining a future field of view (FOV) for a particular user viewing a 360 degree video stream in a network
CN109891850B (zh) 用于减少360度视区自适应流媒体延迟的方法和装置
Park et al. Rate-utility optimized streaming of volumetric media for augmented reality
CN109891906B (zh) 递送360°视频流的系统和方法
Shi et al. Mobile VR on edge cloud: A latency-driven design
Abdallah et al. Delay-sensitive video computing in the cloud: A survey
US11395003B2 (en) System and method for segmenting immersive video
US20170103577A1 (en) Method and apparatus for optimizing video streaming for virtual reality
JP2019537338A (ja) 空間的不均等ストリーミング
Park et al. Volumetric media streaming for augmented reality
JP2012070378A (ja) パノラマシーン内でのナビゲーション方法
US11159823B2 (en) Multi-viewport transcoding for volumetric video streaming
US11159779B2 (en) Multi-user viewport-adaptive immersive visual streaming
US20200404241A1 (en) Processing system for streaming volumetric video to a client device
US10341670B1 (en) Video encoder bit rate stabilization
US10785511B1 (en) Catch-up pacing for video streaming
WO2019048733A1 (en) TRANSMISSION OF VIDEO CONTENT BASED ON FEEDBACK
US10002644B1 (en) Restructuring video streams to support random access playback
CN110800306B (zh) 一种沉浸式视频传送方法
KR101944601B1 (ko) 기간들에 걸쳐 오브젝트들을 식별하기 위한 방법 및 이에 대응하는 디바이스
Zeng et al. TVSR‐OR: Tile‐based 360‐degree video streaming over real time streaming protocol with optimized read
US10841490B2 (en) Processing method and processing system for video data
US20220086470A1 (en) Transcoding ultra-high-definition panoramic videos

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190621