用于请求瓦片流的方法和系统与流程

文档序号:37518613发布日期:2024-04-01 14:32阅读:43来源:国知局
用于请求瓦片流的方法和系统与流程

本公开涉及用于请求用于在客户端设备的显示器上渲染沉浸式视频的空间部分的瓦片流的方法和系统。具体地说,本公开涉及这样的方法和系统,其中基于参数值,高质量瓦片流不被请求。本公开进一步涉及一种用于执行所述方法的数据处理系统、计算机程序和计算机可读存储介质。


背景技术:

1、虚拟现实头戴式视图器(headset)的提高的可用性和增加的使用导致了支持新的视频格式的相机,诸如可以记录全360度球形视频(常被称为vr360或360vr视频)的那些相机。这样的相机记录的内容不仅仅在vr头戴式视图器中被消费,而且在常规显示器中也是可用的,在常规显示器中,用户可以使用他们的手指、手势或他们的鼠标来在视频中导航。

2、统称为“沉浸式”视频,存在各种各样的这样的新的视频格式,每天有更多的变体上市。这些中的一些本质上是圆柱形对球形。其他是180度或270度、而不是全360记录。存在几种不同于3d的方法,其中一些相机是单像的,其他是立体的,甚至其他是部分立体的(仅视频的特定区域被立体地记录,其余部分被单像地记录)。

3、不管准确格式如何,将这些不同的内容格式捆绑在一起的是用户在任何给定时间、通常只观看视频的小区域的事实。呈现给用户的沉浸式视频的部分通常被称为视口。在沉浸式视频的相当大的比例通过vr头戴式视图器观看(其中显示器非常靠近人眼)的情况下,为了不给终端用户像素化(因此低质量)的印象,记录的视频的分辨率需要非常高。该差质量严重地妨碍终端用户的体验质量(qoe)。

4、对于显示在智能电话或平板上的传统视频,hd分辨率(1920×1080像素)被认为足以使用户不能注意到单个的像素。大型电视屏幕在被近距离观看时,显然需要更高的分辨率,这是新型电视通常支持超hd(3840×2160像素;也被称为4k,因为它大致具有4000个水平像素)分辨率的原因。即使是更高的分辨率一般也被认为对于终端用户不明显。

5、不过,对于vr头戴式视图器,情况就不是这样了。由于人眼靠近vr头戴式视图器中的显示器,像素大小需要小得多以使用户不能分辨它们。因为如此,vr显示器的分辨率,因此它们上显示的内容,需要明显更高的质量(分辨率)。研究已经表明vr头戴式视图器将需要每只眼睛以大约8k个水平像素显示视频(使总显示分辨率为uhd的8倍、或hd的32倍)以使单个像素对于终端用户不再可见。并且考虑到用户同时只看见360度视频的小部分,这意味着正被记录的总分辨率在水平方向上将需要大约32000个像素的量级,在垂直方向上将需要16000个像素的量级(32k×16k),所以比如今被记录的大多数传统视频内容高两个量级。虽然现今的相机不能记录32k视频,但是8k和12k相机开始变得可用。

6、然而,限制沉浸式视频质量的主要因素很大程度上不是相机技术,而是分发技术。通过目前的互联网发送传统的uhd视频、或者甚至高质量hd不仅仅非常复杂和昂贵,而且它还限于具有足够快的互联网连接的那些国家和用户。在沉浸式视频需要甚至更高质量的视频的情况下,沉浸式媒体的分发是个大的挑战。

7、目前存在用于递送沉浸式视频的各种分发方法。此刻最常用的第一种方法也是最简单的一种方法,该方法是好像沉浸式视频是正常的传统视频一样,向客户端简单地递送它。这意味着全球形视频正被递送给客户端、在终端用户设备上被解码、并且被投影在vr头戴式视图器上。该方法的优点是它再用现有的技术和分发方法、并且不需要新的技术。缺点是它要么就带宽而言是非常昂贵的(考虑到沉浸式视频的分辨率通常将高于传统视频)(这将缩小可达范围并且提高成本),要么质量低(如果质量降到适应更低的带宽)。

8、第二组方法(在研究团体中被越来越多地探究的一种方法)也被称为“视口自适应流传输”。虽然存在几种不同的用于视口自适应流传输的方法(每种方法都有它自己的优点和缺点),但是最具可扩展性和前景的方法被称为瓦片式流传输。例如在us2017/0155912a1中描述了瓦片式流传输。就瓦片式流传输来说,原始的沉浸式视频(不管它是圆柱形的、球形的、还是其他的)被拆分为单个的空间元素(这些空间元素可以被称为瓦片流),并且视频的每帧被拆分为单个的空间元素帧(这些空间元素帧可以被称为瓦片帧)。通常,瓦片帧是矩形的,然而,原则上,它们可以具有任何形状或形式。每个瓦片帧于是可以以这样的方式独立编码,即,它在客户端上可以在客户端不需要访问其他瓦片帧的情况下被成功地解码。通过基于视口连续地检索单个的瓦片帧,客户端能够仅检索和解码视频中用户感兴趣的区域。通过仅流传输沉浸式视频中用户感兴趣的区域,对于分发沉浸式视频必要的总带宽可以显著降低。这种带宽降低或者可以用于增加可达范围(意味着更高比例的用户将具有足以接收流传输视频的带宽)并且降低成本(传送的位更少),或者可以用于提高质量、或实现这些目标的组合。通过在任何给定时间仅发送视频的小部分,该区域可以在不提高带宽的情况下,以比正常情况下的可能质量更高的质量发送。

9、该方法的缺点是当用户转动他的头时、使客户端从网络检索适当的瓦片帧需要花费时间。用户转动他的头和瓦片帧从网络被提取并且在客户端设备(诸如头戴式视图器)的显示器上被渲染之间的端对端延时(也被称为运动到光子延时)显著地影响体验质量(qoe)。小至100毫秒的延时也可能已经造成更低的用户qoe。

10、现有技术中讨论的大多数瓦片式流传输方法基于http自适应流传输,或者是http自适应流传输的扩展。就http自适应流传输(mpeg dash和apple hls是其首要的例子)来说,视频流被分割成时间元素(被称为片段),每个时间元素通常长3秒和30秒之间。当看视频时,客户端经由标准的http从网络顺序地提取连续的片段,缓冲它们,并且将它们馈送到视频解码器。http自适应流传输得名于每个片段可以以多种不同的质量/分辨率(被称为“表示”)供使用,客户端能够基于可用带宽在不同的质量之间切换。切换质量(由于改变的网络链路状况)通常将在片段边界发生。

11、当被应用于瓦片式流传输时,每个瓦片流通常被表示为独立的视频流,其中每个瓦片流本身被拆分为瓦片帧的多个时间片段。通用清单文件[例如,dash-srd:iso/iec23009-1:2014]或容器格式于是包含指向瓦片帧的单个的片段的指针,并且描述它们的时间和空间关系。从客户端的角度来讲,客户端首先下载并解析清单文件,然后设立多个http自适应流传输会话,对于每个瓦片流一个会话。每个会话将由顺序地下载连续的片段组成。当用户转动他的头时,用于不再在视场中的那些瓦片流的http自适应流传输会话将被取消,对于刚进入视场的瓦片流,将开始新的会话。

12、虽然http自适应流传输非常适合于传统的视频流传输,但是它不太适合于瓦片式流传输,主要是因为延时。当用户带着vr头戴式视图器转动他的头时,人类前庭系统预期眼睛捕捉的视图相应地继续移动。当这没有发生或者没有足够快地发生时,晕动病非常快速地发生。研究已经表明如果头部移动和眼睛注意到适当的移动之间的延迟大于8-10ms,则该问题已经发生。这意味着瓦片帧需要被非常快地检索,或者意味着需要已经存在并且可以以与用户的头部移动一致的方式显示的一些视觉信息。

13、考虑到8-10ms是用于使系统对传感器数据做出响应、通过互联网提取视频数据、对该数据进行解码、并且向终端用户示出它的极其短的时间,这在基于http自适应流传输的瓦片式流传输解决方案中通常不被实现。可以通过以下方式来绕过这种情况:1)总是下载比终端用户体验的视场大的视场,从而创建一种空间缓冲,和/或2)在系统等待高分辨率瓦片帧到达的同时,总是流传输可以示出的低分辨率回退/基本层。

14、如果网络状况例如因为可用带宽降低而恶化,则瓦片帧中的一些可能未被及时接收到以在显示器上适当地渲染它们。这是不可取的,因为它可能使视口只有一些部分包含被请求的高质量瓦片帧,而视口的其他部分包含低质量瓦片帧,或者根本不包含瓦片帧。具有变化的质量的瓦片帧的视口对于用户来说高度失真,并且非常负面地影响用户体验。与其中低质量瓦片帧和高质量瓦片帧二者都存在的视口相比,可能更优选的是具有完全由低质量瓦片帧组成的视口。

15、当对常规的视频流传输(非瓦片式流传输)实现http自适应流传输时,通常,通过监视缓冲器的充满度来监视网络状况。这样的缓冲器包含已经被接收到、但仍将被显示的视频帧。如果缓冲器开始耗尽,则这通常指示网络状况恶化,因此,更低质量的流可以被选择。

16、不幸的是,监视缓冲器的充满度由于几个原因,不适合于视口自适应流传输(vas)技术。首先,就vas来说,当视口移动(通常是由于用户移动他或她的头)时,缓冲器中的信息的大部分可能变得无关(并可能随后被丢弃)。为了例示说明,如果缓冲器已经存储表示沉浸式视频的特定部分的十秒播放时间的瓦片流,并且用户突然移动他的头以使得视口不再包含所述特定部分,则十秒的该瓦片流将不再在显示器上被渲染,因此变得无关。因此,就vas来说,缓冲器的大小可能显著变化,该变化不一定是网络状况的指示。第二,缓冲器充满度不提供往返时间(rtt)的准确指示,尽管对于vas,rtt对流传输性能具有显著影响。对于常规的流传输,如果rtt长,则缓冲器可以被很好地填充。然而,对于vas,重要的是,缓冲器在视口移动之后被快速地填充以已新进入视口的视频的新瓦片帧或部分,这要求rtt低。

17、鉴于以上,本领域中需要能够在适当时在不同的质量之间切换的、用于请求瓦片帧的方法。


技术实现思路

1、为此,公开了一种用于请求瓦片流以在客户端设备的显示器上渲染沉浸式视频的空间部分的计算机实现的方法。在该方法中,服务器系统存储多个瓦片流。每个瓦片流表示沉浸式视频的空间部分,并且每个瓦片流包括与视频中的相应时间相关联的瓦片帧序列。此外,所述多个瓦片流包括具有相对高质量的高质量瓦片流的第一集合,并且包括具有相对低质量的一个或多个低质量瓦片流的第二集合和/或具有相对中间质量的一个或多个中间质量瓦片流的第三集合。高质量瓦片流的第一集合表示沉浸式视频的第一版本,一个或多个低质量瓦片流的第二集合表示沉浸式视频的第二版本,和/或中间质量瓦片流的第三集合表示沉浸式视频的第三版本。

2、所述方法包括(i)从高质量瓦片流的第一集合选择高质量瓦片流。选择的高质量瓦片流包括与特定时间相关联的相应瓦片帧,用于在所述特定时间渲染沉浸式视频的空间区域。优选地,所述空间区域在所述特定时间包括预期的视口。所述方法还包括(ii)将对于选择的高质量瓦片流的请求发送给服务器系统;并且(iii)及时接收出自被请求的高质量瓦片流的与所述特定时间相关联的所述瓦片帧中的一个或多个以在所述特定时间在显示器上适当地渲染它们。所述方法进一步包括(iv)未及时接收出自被请求的高质量瓦片流的与所述特定时间相关联的所述瓦片帧中的一个或多个以在所述特定时间在显示器上适当地渲染它们,例如因为这一个或多个瓦片帧被接收得太晚,或者因为这一个或多个瓦片帧根本没有被接收到。所述方法进一步包括(v)确定参数的值,所述参数指示出自被请求的高质量瓦片流的与所述特定时间相关联的所述一个或多个瓦片帧中有多少个未被及时接收到以在所述特定时间在显示器上适当地渲染它们。然后,所述方法包括(vi)基于所述参数的确定的值,至少对于特定时间段,制止向服务器系统请求出自高质量瓦片流的第一集合的高质量瓦片流。所述方法还包括(vii)在所述时间段期间,向服务器系统请求来自一个或多个低质量瓦片流的第二集合的一个或多个低质量瓦片流,和/或向服务器系统请求来自一个或多个中间质量瓦片流的第三集合的一个或多个中间质量瓦片流。

3、该方法提供当网络状况恶化过分时、切换到更低质量的瓦片流的非常简单且高效的方式。如背景部分中说明的,在瓦片式流传输的背景下,缓冲器充满度不是对于网络状况的足够的测度。相反,本文中公开的方法使用指示有多少个瓦片帧(尽管被请求)被接收得太晚以至于不能在它们应被渲染的时间在显示器上适当地渲染它们的参数。发明人已经认识到这样的参数实际上是对于当前网络状况的足够的测度。在瓦片式流传输中,对于视频中的每个时间,请求多个瓦片帧。换句话说,每个视频帧包括多个瓦片帧。因为每个被请求的瓦片帧可能被及时接收到,或者可能未被及时接收到,所以所述参数对于视频中的每个时间,可以具有值的范围,因此可以指示网络质量的范围。为了例示说明,如果所述参数仅仅是对于特定时间、未被及时接收到的瓦片帧的数量n_missing和对于该特定的时间的被请求的瓦片帧的总数n之间的比率,则所述参数对于该时间的值由n_missing/n给出,其中n_missing可以是任何整数值0、1、2、…、n-1、n。因此,所述参数(也可以被称为决策参数)可以被用于指示网络质量的范围,因此适合于使决策基于是否切换到更低质量的瓦片流。原则上,网络状况越差,越多的瓦片帧将不被及时接收到。这样的参数可以被用于例如识别网络状况随着时间的过去、逐渐下降。

4、瓦片帧所关联的时间也可以被称为播放时间。因此,上面提到的特定时间可以被理解为是指沉浸式视频中的特定的播放时间,例如播放时间“从视频开头起10.5秒”。在特定时间在显示器上渲染瓦片帧可以被理解为是指在视频到达该特定时间的时刻在显示器上渲染瓦片帧。

5、如本文中所使用的,请求来自特定瓦片流的一个或多个瓦片帧可以被理解为请求该特定瓦片流的例子。接收瓦片帧可以被理解为接收客户端设备可以对其进行解码以便获得(解码的)瓦片帧以使得它可以在客户端设备的显示器上被渲染的编码数据。

6、每个瓦片流优选地独立于其他瓦片流编码。然而,在瓦片流内,一些瓦片帧可能是参照该瓦片流内的其他瓦片帧编码的,这导致所谓的帧间编码的瓦片帧,并且其他瓦片帧可能不是参照瓦片流内的其他瓦片帧编码的,这导致所谓的帧内编码的瓦片。在vas的背景下,图片组(gop)是用于描述所谓的帧内编码的帧和帧间编码的帧在瓦片流内的布置次序的术语。gop由来自特定瓦片流的一个或多个瓦片帧组成。在编码的瓦片流中遇到新的gop意味着解码器不需要任何前面的瓦片帧来对接下来的瓦片帧进行解码。

7、原则上,瓦片流的质量越高,其瓦片帧在显示器上被渲染时越好地类似于原始视频,即,一个或多个相机捕捉的原始视频。瓦片流的质量可以与如瓦片流中的瓦片帧表示的视频的分辨率相关,其中越高的分辨率对应于越高的质量。如本文中所使用的,(解码的)视频的分辨率是指视频的每个视频帧中的像素的数量。因此,沉浸式视频的如分别由瓦片流的第一集合、第二集合和/或第三集合表示的不同版本可能在质量上不同,例如,就如由瓦片流的第一集合、第二集合和/或第三集合中的瓦片帧表示的视频的分辨率而言。瓦片流的质量可以另外地和/或可替代地与瓦片流的位率相关,其中越高的位率对应于越高的质量。瓦片流的质量可以另外地或可替代地与如由瓦片流表示的视频的帧率相关,其中越高的帧率对应于越高的质量。瓦片流的帧率可以被理解为在基于瓦片流的每一单元的视频播放时间渲染的视频帧的数量。因此,沉浸式视频的如分别由瓦片流的第一集合、第二集合和/或第三集合表示的不同版本可能在质量上不同,例如,就如由瓦片流的第一集合、第二集合和/或第三集合中的瓦片帧表示的视频的帧率而言。

8、为了清晰起见,从高质量瓦片流具有比中间质量瓦片流高的质量、并且中间质量瓦片流具有比低质量瓦片流高的质量的意义上来讲,高质量瓦片流可以具有相对高的质量,中间质量瓦片流可以具有相对中间的质量,低质量瓦片流可以具有相对低的质量。

9、沉浸式视频可以被理解为包括视频帧,其中每个视频帧在空间上被划分在瓦片帧中。属于不同视频帧、但表示沉浸式视频的相同空间部分的瓦片帧可以形成瓦片流。这样,每个瓦片流可以与沉浸式视频的空间部分相关联。

10、所述时间段可以是预先确定的。在所述时间段之后,来自高质量瓦片流的第一集合的高质量瓦片流可以再次被向服务器系统请求。

11、在实施例中,所述方法包括:基于所述参数的确定的值,在所述时间段期间,向服务器系统请求来自一个或多个中间质量瓦片流的第三集合的一个或多个中间质量瓦片流。另外或可替代地,该实施例包括基于所述参数的确定的值,在所述时间段期间,向服务器系统请求来自一个或多个低质量瓦片流的第二集合的一个或多个低质量瓦片流。

12、该实施例使得能够请求更低质量的瓦片流,而不是对于其来说网络状况不足的当前的更高质量的瓦片流。

13、应意识到如果服务器系统将存储瓦片流的两个且只有两个集合,一个集合具有比另一个集合更高质量的瓦片流,则另一个集合可以被认为是本公开中提到的中间质量瓦片流或本公开中提到的低质量瓦片流。

14、当然,服务器系统可以存储许多个集合的瓦片流,其中每个集合与不同的质量相关联。

15、在实施例中,所述方法包括在客户端设备的显示器上在所述特定时间渲染视口。被渲染的视口包括沉浸式视频的分别由被及时接收到的瓦片帧中的一个或多个表示的第一一个或多个空间部分,并且包括沉浸式视频的分别由未被及时接收到的瓦片帧中的一个或多个表示的第二一个或多个空间部分。因此,被渲染的视口在第一一个或多个空间部分具有来自高质量瓦片流的一个或多个被渲染的瓦片帧,并且被渲染的视口在视口中的第二一个或多个空间部分缺失来自高质量瓦片流的一个或多个瓦片帧。第二一个或多个空间部分覆盖被渲染的视口中的空间区域。

16、该实施例是有利的,因为即使瓦片帧中的一些未被及时接收到,视口也仍被渲染。这有益于用户体验。

17、在实施例中,所述方法包括基于被渲染的视口来确定所述参数。在该实施例中,所述参数可以是从被渲染的视口计算的客观的视频质量参数。所述参数可以使用本领域中已知的方法来确定。这样的方法可以包含视频多方法评估融合(vmaf)和/或其他质量度量(诸如视觉信息保真度(vif)、细节损失度量(dlm)、平均同位像素差(mcpd)、抗噪声信噪比(an-snr))。

18、在该实施例中,有利地,基于实际上被渲染的视口来确定所述参数。确定所述参数不一定涉及缓冲器充满度的任何监视,并且可以直接基于被渲染的视口来确定。实施例使用以下事实,即,就vas来说,因为每个被渲染的视口可以包括不同数量的高质量瓦片帧,所以视口的质量可能会变化。例如,在良好的网络状况下渲染的第一视口可能完全由高质量瓦片帧组成,而在差的网络状况下渲染的后来渲染的视口可能由仅50%高质量瓦片帧和50%低质量瓦片帧组成。因此,视口的质量可以被用作网络质量的直接指示,特别是被用作网络状况是否好得足以使得向服务器系统请求的高质量瓦片帧中的至少特定最小数量被及时接收到以进行适当渲染的直接指示。如果被请求的高质量瓦片帧中的许多瓦片帧被接收得太晚,或者根本没有被接收到,则用户体验将剧烈恶化,然后优选地,高质量瓦片流不再被请求。

19、就常规的非瓦片式流传输来说,原则上,被渲染的视口的质量是相当恒定的。例如,就常规的流传输来说,视口的分辨率是恒定的。如果网络状况逐渐恶化,则当缓冲器已经变空时,常规视频可能停在某个点处。然而,在这样的情况下,视口的分辨率(即,视口中的被渲染的像素的总数)在这样的停顿之前,将不会逐渐地下降。相反,就vas来说,网络状况的逐渐恶化将使被渲染的视口包含越来越少的高质量瓦片帧,其结果是被渲染的视口的质量(例如,分辨率)也将逐渐地下降。

20、当被渲染的视口的质量被评估时,那么影响该质量的所有因素自动地被考虑,包括例如与vas高度相关的往返时间。如果往返时间已经变得非常长,则这可能引起视口一移动、被请求的高质量瓦片帧中只有有限数量的瓦片帧在视口中被渲染,因为对于视频的新近进入视口中的空间部分,可能尚未接收到瓦片帧。

21、在实施例中,所述参数指示被第二一个或多个空间部分覆盖的空间区域的大小。

22、原则上,视口中的被第二一个或多个空间部分覆盖的空间区域越大,视口的质量越低。如果该空间区域非常大,则相对地许多被请求的高质量瓦片帧被接收得太晚,或者根本没有被接收到,导致低质量视口。

23、该实施例中的所述参数的例子将是被渲染的视口的分辨率。分辨率越低,被第二一个或多个空间部分覆盖的空间区域的大小越大。照此,视口的分辨率指示被第二一个或多个空间部分覆盖的空间区域的大小。空间区域的指示的大小因此可以是相对大小,例如,相对于整个视口的大小和/或相对于被高质量瓦片帧覆盖的空间区域的大小的相对大小。如本文中所使用的,视口是指沉浸式视频的空间部分,因此是指解码的视频,而不太指其上呈现解码的视频的硬件,即,不太是指客户端设备的显示器。因此,视口的分辨率是指解码的视频。解码的视频、因此视口的分辨率指示视口中的被渲染的像素的总数,并且原则上独立于客户端设备的显示器包含的硬件像素的数量。当然,当确定分辨率时,只有基于接收到的瓦片流渲染的像素应被计数。虚拟像素(例如,“灰色瓦片”)应被忽视。

24、在这样的实施例中,所述参数可以被称为视口质量参数,因为它指示被渲染的视口的质量。

25、在实施例中,所述参数指示

26、a)被所述第二一个或多个空间部分覆盖的所述空间区域的大小,和/或

27、b)有多少个来自高质量瓦片流的瓦片帧在被渲染的视口中缺失,和/或

28、c)被渲染的视口中的被所述第一一个或多个空间部分覆盖的进一步的空间区域的大小,和/或

29、d)有多少个来自高质量瓦片流的第一集合的瓦片帧存在于被渲染的视口中,和/或

30、e)所述空间区域的大小和所述进一步的空间区域的大小之间的比率,和/或

31、f)所述空间区域的大小和被渲染的视口的大小之间的比率,和/或

32、g)所述进一步的空间区域的大小和被渲染的视口的大小之间的比率,和/或

33、h)被渲染的视口包含多少个像素,和/或

34、i)被渲染的视口的分辨率,和/或

35、j)进一步的空间区域的大小和视口中的被来自低质量流的瓦片帧覆盖的空间区域的大小之间的比率。

36、以上所有参数可以被理解为指示被请求的高质量瓦片帧中有多少个未被及时接收到用于适当的渲染。所述参数可以使用利用被所述第二一个或多个空间部分覆盖的所述空间区域的大小以及可选地、所述进一步的空间区域的大小的任何算术函数来确定。

37、优选地,将参数值与阈值进行比较,并且基于该比较来执行制止向服务器系统请求高质量瓦片流的步骤。确定哪个值用于特定参数可以被容易地确定,例如基于该参数的与相关联的视口的被评估质量相关联的先前的测量。这样,可以评估对于特定参数的哪些值、对于用户的体验质量仍是可接受的,以及对于哪些值、体验质量变得太低。

38、在实施例中,所述方法包括确定出自被请求的高质量瓦片流的与所述特定时间相关联的所述瓦片帧中的一个或多个未被及时接收到以在所述特定时间在显示器上适当地渲染它们。优选地,该步骤包括对于未被及时接收到的瓦片帧中的每个,确定它在所述特定时间之前的第一预定时间时或之前尚未被接收到、和/或她在所述特定时间之前的第二预定时间时或之前尚未被解码。

39、该实施例是有利的,因为它不需要为了确定参数值、实际地渲染视口。在瓦片帧在视口中被渲染之前,它应在它已经被接收到之后被解码,并且渲染处理应被完成,这需要花费时间。这些处理的(平均)时间可以是已知的,这使得可以设置瓦片帧最晚应被接收到或被解码的特定时间,以使得在瓦片帧实际上应在显示器上被渲染之前,即,当视频到达与这些瓦片帧相关联的特定的播放时间时,存在执行这些处理的足够的时间。如果被请求的高质量瓦片帧在到达该设置时间时尚未被接收到,则它可以被计数为缺失。

40、在实施例中,所述方法包括将对于来自一个或多个低质量瓦片流的第二集合的一个或多个低质量瓦片帧的请求发送给服务器系统。被请求的一个或多个低质量瓦片流包括与所述特定时间相关联的相应一个或多个瓦片帧,所述一个或多个瓦片帧用于在所述特定时间渲染沉浸式视频的至少一部分,优选地整个沉浸式视频。该实施例进一步包括接收出自被请求的低质量瓦片流的与所述特定时间相关联的瓦片帧中的一个或多个。此外,在该实施例中,视口被渲染为使得被渲染的视口在视口中的对于其来说出自高质量瓦片流的瓦片帧不可用的每个空间部分处,包括出自低质量瓦片流的与所述特定时间相关联的接收到的瓦片帧的至少一部分。

41、该实施例确保即使用于视口中的特定空间部分的高质量瓦片尚未被及时接收到,视口在该特定空间部分处仍包括更低质量的瓦片帧。在此,实施例防止视口在对于其来说出自高质量瓦片流的瓦片帧不可用的空间部分处包含黑洞。如所指示的,优选地,对于整个沉浸式视频,以及对于视频中的每个时间,低质量瓦片流被请求,以使得低质量瓦片帧可用于任何当前的视口。

42、在实施例中,所述方法包括:在所述时间段期间,请求来自低质量瓦片流的第二集合的一个或多个低质量瓦片流,而不管所述参数的确定的值如何,并且在所述时间段期间,基于所述参数的确定的值,请求来自瓦片流的第三集合的一个或多个中间质量瓦片流。该实施例可以这样运作,即,低质量瓦片流总是被请求,而中间质量瓦片流只有在网络状况太差不能适当地接收到高质量瓦片流时才被请求。

43、在实施例中,所述方法包括通过重复地执行步骤(i)-(v)的序列来重复地确定所述参数的值,尽管是针对视频中的不同的相应时间。该实施例还包括基于所述参数的确定的值,至少对于特定时间段,制止向服务器系统请求出自高质量瓦片流的第一集合的高质量瓦片流。

44、该实施例可选地包括基于不同的确定的参数值来确定特定聚合参数(值)。在例子中,监视每个被渲染的视口的分辨率,并且确定最后十个被渲染的视口的这些分辨率的平均值作为聚合质量参数。这样的聚合质量参数可以是本文中描述的指示单个视口的质量的任何参数的平均值和/或变化率。

45、该实施例使得能够降低客户端在质量流之间切换的频率。如果例如网络状况仅在短暂的时间段期间很差,则切换到更低质量的流可能是不可取的。

46、通常,当向服务器系统请求特定的瓦片流时,瓦片流包括将在视口中在比所述特定时间晚的不同时间渲染的多个瓦片帧。这样的已经被请求的瓦片帧在步骤(i)-(v)的序列的下一次迭代中当然本身不再被选择/被请求。

47、为了例示说明,在实施例中,所述方法包括:从高质量瓦片流的第一集合选择进一步的高质量瓦片流,选择的进一步的高质量瓦片流包括与进一步的特定时间相关联的用于在所述进一步的特定时间渲染沉浸式视频的空间区域的相应瓦片帧,优选地,所述空间区域在所述进一步的特定时间包括进一步的预期的视口;将对于选择的进一步的高质量瓦片流的请求发送给服务器系统;及时接收出自被请求的进一步的高质量瓦片流的与所述进一步的特定时间相关联的所述瓦片帧中的一个或多个以在所述进一步的特定时间在显示器上适当地渲染它们;未及时接收出自被请求的进一步的高质量瓦片流的与所述进一步的特定时间相关联的所述瓦片帧中的一个或多个以在所述特定时间在显示器上适当地渲染它们;确定所述参数的进一步的值,所述参数指示出自被请求的高质量瓦片流的与所述进一步的特定时间相关联的所述一个或多个瓦片帧中有多少个未被及时接收到以在所述进一步的特定时间在显示器上适当地渲染它们;并且基于所述参数的确定的值和确定的进一步的值,至少在所述时间段内,制止向服务器系统请求出自高质量瓦片流的第一集合的高质量瓦片流。

48、该实施例可以包括在所述进一步的特定时间渲染所述进一步的视口。被渲染的进一步的视口可以包括沉浸式视频的分别由出自被请求的进一步的高质量瓦片流的与所述进一步的特定时间相关联的被及时接收到的瓦片帧中的一个或多个表示的第一进一步的一个或多个空间部分,并且包括沉浸式视频的分别由出自被请求的进一步的高质量瓦片流的与所述进一步的特定时间相关联的未被及时接收到的瓦片帧中的一个或多个表示的第二进一步的一个或多个空间部分,因此,被渲染的进一步的视口在第一进一步的一个或多个空间部分具有来自高质量瓦片流的一个或多个被渲染的瓦片帧,并且被渲染的进一步的视口在进一步的视口中的第二进一步的一个或多个空间部分处缺失来自高质量瓦片流的一个或多个瓦片帧,所述第二进一步的一个或多个空间部分覆盖被渲染的进一步的视口中的进一步的空间区域。所述进一步的值可以基于被渲染的进一步的视口来确定。此外,所述进一步的值可以指示被第二进一步的一个或多个空间部分覆盖的所述进一步的空间区域的大小。

49、在实施例中,所述方法包括重复地确定所述参数的值包括:在相应时间重复地渲染视口,并且对于每个被渲染的视口,基于所讨论的被渲染的视口来确定所述参数的相关联的值。

50、在实施例中,基于所述参数的确定的值、至少对于特定时间段、制止向服务器系统请求出自高质量瓦片流的第一集合的高质量瓦片流的步骤包括:将所述参数的确定的值与阈值进行比较;并且基于该比较,至少对于特定时间段,制止向服务器系统请求出自高质量瓦片流的第一集合的高质量瓦片流。

51、该实施例提供用于确定是否继续请求高质量瓦片流的方便的方式。

52、在实施例中,所述方法包括测量视口跨沉浸式视频的移动,其中制止向服务器系统请求高质量瓦片流的步骤还基于视口的测量的移动来执行。

53、在例子中,将测量的移动与移动阈值进行比较。如果测量的移动相对较高,则该移动可能使相对较多的高质量瓦片帧不被及时接收到,与造成它的差的网络状况相反。如果视口的移动显著,则制止请求高质量瓦片流可能是不适当的。在显著的头部移动期间,被渲染的视口的质量也没那么重要,因为用户不太可能注意到低质量。然而,当移动停止时,应可以再次请求并且适当地渲染来自高质量流的帧,当然假定网络状况良好。因此,在实施例中,可以基于视口的测量的移动低于移动阈值的确定来执行制止向服务器系统请求来自高质量瓦片流的第一集合的瓦片流的步骤。

54、在例子中,所述参数的值可以与其进行比较的以上提及的阈值取决于测量的视口移动。在这样的情况下,所述方法可以包括基于测量的视口移动来确定用于所述参数的阈值。视口移动可以使阈值更低或更高,取决于与阈值进行比较的确切的参数。为了例示说明,如果所述参数指示被及时接收到的高质量瓦片帧较于被请求的高质量瓦片帧的总数的比率,则所述参数的值越高,就将指示越好的网络状况。在这样的情况下,可以基于确定的参数值低于阈值的确定来切换到更低质量的瓦片流。在这样的情况下,视口移动可以使阈值更低。终究,在这样的情况下,如果视口显著移动,则决策参数的更低的值是可接受的。

55、作为另一个例子,如果所述参数指示未被及时接收到的高质量瓦片帧较于被请求的高质量瓦片帧的总数的比率,则所述参数的越低的值,就将指示越好的网络状况。在这样的情况下,可以基于确定的参数值高于阈值的确定来切换到更低质量的瓦片流。在这样的情况下,视口移动可以使阈值更高。终究,在这样的情况下,如果视口显著移动,则决策参数的更高的值是可接受的。

56、在另一个例子中,阈值是固定的,并且基于测量的视口移动,视情况来调整决策参数的值。为了例示说明,如果所述参数指示被及时接收到的高质量瓦片帧较于被请求的高质量瓦片帧的总数的比率,则在将参数值与阈值进行比较之前,可以基于显著的视口移动来增大参数值。作为另一个例子,如果所述参数指示未被及时接收到的高质量瓦片帧较于被请求的高质量瓦片帧的总数的比率,则在将参数值与阈值进行比较之前,可以基于显著的视口移动来降低确定的参数值。

57、本公开的一个方面涉及一种数据处理系统,所述数据处理系统被配置为执行本文中描述的方法中的任何一个。具体地说,数据处理可以包括用于执行本文中描述的方法中的任何一个的手段,诸如处理器。

58、本公开的一个方面涉及一种计算机,所述计算机包括计算机可读存储介质和处理器(优选地微处理器),计算机可读存储介质具有与其包含在一起的计算机可读程序代码,处理器耦合到计算机可读存储介质,其中响应于执行所述计算机可读程序代码,处理器被配置为执行本文中描述的方法中的任何一个。

59、本公开的一个方面涉及一种计算机程序,所述计算机程序包括当所述程序被计算机执行时、使所述计算机实现本文中描述的方法中的任何一个的指令。

60、本公开的一个方面涉及一种包括至少一个软件代码部分的计算机程序或计算机程序套件、或存储至少一个软件代码部分的计算机程序产品,所述软件代码部分当在计算机系统上运行时,被配置为执行本文中描述的方法中的任何一个。

61、本公开的一个方面涉及一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质具有存储于其上的本文中描述的计算机程序中的任何一个。

62、本公开的一个方面涉及一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质存储至少一个软件代码部分,所述软件代码部分在被计算机执行或处理时,被配置为执行本文中描述的方法中的任何一个。

63、如本领域中技术人员将意识到的,本发明的各方面可以被实施为系统、方法或计算机程序产品。因此,本发明的各方面可以采取以下形式:完全硬件的实施例、完全软件的实施例(包括固件、驻存软件、微代码等)、或组合在本文中一般都可以被称为“电路”、“模块”或“系统”的软件方面和硬件方面的实施例。本公开中描述的功能可以被实现为被计算机的处理器/微处理器执行的算法。此外,本发明的各方面可以采取包含在具有包含(例如,存储)于其上的计算机可读程序代码的一个或多个计算机可读介质中的计算机程序产品的形式。

64、一个或多个计算机可读介质的任何组合可以被利用。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以例如是,但不限于,电子、磁性、光学、电磁、红外或半导体系统、装置或设备、或前述的任何合适的组合。计算机可读存储介质的更特定的例子可以包括,但不限于,以下例子:具有一个或多个导线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光学存储设备、磁性存储设备、或前述的任何合适的组合。在本发明的背景下,计算机可读存储介质可以是可以包含或存储供指令执行系统、装置或设备使用的或与指令执行系统、装置或设备相关的程序的任何有形介质。

65、计算机可读信号介质可以包括具有包含于其中(例如,包含在基带中或者作为载波的一部分包含于其中)的计算机可读程序代码的传播数据信号。这样的传播信号可以采取各种形式中的任何一个,包括,但不限于,电磁、光学或它们的任何合适的组合。计算机可读信号介质可以是不是计算机可读存储介质并且可以传送、传播或输送供指令执行系统、装置或设备使用的或与指令执行系统、装置或设备相关的程序的任何计算机可读介质。

66、包含在计算机可读介质上的程序代码可以使用任何适当的介质来发送,包括但不限于无线、导线、光纤、电缆、rf等、或前述的任何合适的组合。用于实现用于本发明的各方面的操作的计算机程序代码可以用一种或多种编程语言的任何组合来编写,包括面向对象的编程语言(诸如java(tm)、smalltalk、c++等)和常规的过程式编程语言(诸如“c”编程语言或类似的编程语言)。程序代码可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上、部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种场景中,远程计算机可以通过任何类型的网络(包括局域网(lan)或广域网(wan))连接到用户的计算机,或者可以连接到外部计算机(例如,使用互联网服务提供商通过互联网连接)。

67、下面参照根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图来描述本发明的各方面。将理解流程图图示和/或框图的每个方框、以及流程图图示和/或框图中的方框的组合可以通过计算机程序指令来实现。这些计算机程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器(特别是微处理器或中央处理单元(cpu))以生成机器,以使得经由计算机、其他可编程数据处理装置或其他设备的处理器执行的指令创建用于实现流程图和/或框图的一个方框或多个方框中指定的功能/动作的手段。

68、这些计算机程序指令也可以被存储在计算机可读介质中,所述计算机可读介质可以指导计算机、其他可编程数据处理装置或其他设备以特定的方式运作,以使得存储在所述计算机可读介质中的指令生成包括实现流程图和/或框图的一个方框或多个方面中指定的功能/动作的指令的制造品。

69、所述计算机程序指令也可以被加载到计算机、其他可编程数据处理装置或其他设备上以使一系列操作步骤在所述计算机、其他可编程装置或其他设备上执行以生成计算机实现处理以使得在所述计算机或其他可编程装置上执行的指令提供用于实现流程图和/或框图的一个方框或多个方面中指定的功能/动作的处理。

70、附图中的流程图和框图例示说明根据本发明的各种实施例的系统、方法和计算机程序产品的可能的实现的架构、功能性和操作。就这一点而言,流程图或框图中的每个方框可以表示包括用于实现指定的(一个或多个)逻辑功能的一个或多个可执行指令的模块、代码段或代码部分。还应注意到,在一些可替代实现中,方框中标注的功能可以不按附图中标注的次序发生。例如,连续示出的两个方框事实上可以基本上同时执行,或者方框有时可以按相反的次序执行,取决于涉及的功能性。还将注意到,方框和/或流程图图示的每个方框、以及框图和/或流程图图示中的方框的组合,可以通过执行指定的功能或动作的专用的基于硬件的系统、或专用硬件和计算机指令的组合来实现。

71、而且,提供用于实现本文中描述的方法的计算机程序、以及存储所述计算机程序的非暂时性计算机可读存储介质。计算机程序可以例如被下载(被更新)到现存的客户端设备,或者在制造这些客户端设备时被存储。

72、对于特定实施例讨论的或者与特定实施例有关的元素和方面可以与其他实施例的元素和方面合适地组合,除非另有明确陈述。将参照附图来进一步例示说明本发明的实施例,附图示意性地将示出根据本发明的实施例。将理解本发明绝不限于这些特定的实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1