CN117795969A - 用于请求瓦片流的方法和系统 - Google Patents

用于请求瓦片流的方法和系统 Download PDF

Info

Publication number
CN117795969A
CN117795969A CN202280053514.6A CN202280053514A CN117795969A CN 117795969 A CN117795969 A CN 117795969A CN 202280053514 A CN202280053514 A CN 202280053514A CN 117795969 A CN117795969 A CN 117795969A
Authority
CN
China
Prior art keywords
tile
viewport
high quality
stream
time
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
CN202280053514.6A
Other languages
English (en)
Inventor
X·A·J-P·科尔比隆
M·T·万艾克
R·万勃兰登堡
F·H·克罗克
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.)
Tiled Meidia Co ltd
Original Assignee
Tiled Meidia Co ltd
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 Tiled Meidia Co ltd filed Critical Tiled Meidia Co ltd
Publication of CN117795969A publication Critical patent/CN117795969A/zh
Pending legal-status Critical Current

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/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/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

公开了一种用于请求瓦片流以在客户端设备的显示器上渲染沉浸式视频的空间部分的计算机实现的方法。在该方法中,服务器系统存储多个瓦片流。每个瓦片流表示沉浸式视频的空间部分,并且每个瓦片流包括与视频中的相应时间相关联的瓦片帧序列。此外,所述多个瓦片流包括具有相对高质量的高质量瓦片流的第一集合,并且包括具有相对低质量的一个或多个低质量瓦片流的第二集合和/或具有相对中间质量的一个或多个中间质量瓦片流的第三集合。所述方法包括基于指示有多少个被请求的高质量瓦片帧未被及时接收到以在显示器上适当地渲染它们的参数的确定的值,至少对于特定时间段,制止请求高质量瓦片流。

Description

用于请求瓦片流的方法和系统
技术领域
本公开涉及用于请求用于在客户端设备的显示器上渲染沉浸式视频的空间部分的瓦片流的方法和系统。具体地说,本公开涉及这样的方法和系统,其中基于参数值,高质量瓦片流不被请求。本公开进一步涉及一种用于执行所述方法的数据处理系统、计算机程序和计算机可读存储介质。
背景技术
虚拟现实头戴式视图器(headset)的提高的可用性和增加的使用导致了支持新的视频格式的相机,诸如可以记录全360度球形视频(常被称为VR360或360VR视频)的那些相机。这样的相机记录的内容不仅仅在VR头戴式视图器中被消费,而且在常规显示器中也是可用的,在常规显示器中,用户可以使用他们的手指、手势或他们的鼠标来在视频中导航。
统称为“沉浸式”视频,存在各种各样的这样的新的视频格式,每天有更多的变体上市。这些中的一些本质上是圆柱形对球形。其他是180度或270度、而不是全360记录。存在几种不同于3D的方法,其中一些相机是单像的,其他是立体的,甚至其他是部分立体的(仅视频的特定区域被立体地记录,其余部分被单像地记录)。
不管准确格式如何,将这些不同的内容格式捆绑在一起的是用户在任何给定时间、通常只观看视频的小区域的事实。呈现给用户的沉浸式视频的部分通常被称为视口。在沉浸式视频的相当大的比例通过VR头戴式视图器观看(其中显示器非常靠近人眼)的情况下,为了不给终端用户像素化(因此低质量)的印象,记录的视频的分辨率需要非常高。该差质量严重地妨碍终端用户的体验质量(QoE)。
对于显示在智能电话或平板上的传统视频,HD分辨率(1920×1080像素)被认为足以使用户不能注意到单个的像素。大型电视屏幕在被近距离观看时,显然需要更高的分辨率,这是新型电视通常支持超HD(3840×2160像素;也被称为4K,因为它大致具有4000个水平像素)分辨率的原因。即使是更高的分辨率一般也被认为对于终端用户不明显。
不过,对于VR头戴式视图器,情况就不是这样了。由于人眼靠近VR头戴式视图器中的显示器,像素大小需要小得多以使用户不能分辨它们。因为如此,VR显示器的分辨率,因此它们上显示的内容,需要明显更高的质量(分辨率)。研究已经表明VR头戴式视图器将需要每只眼睛以大约8k个水平像素显示视频(使总显示分辨率为UHD的8倍、或HD的32倍)以使单个像素对于终端用户不再可见。并且考虑到用户同时只看见360度视频的小部分,这意味着正被记录的总分辨率在水平方向上将需要大约32000个像素的量级,在垂直方向上将需要16000个像素的量级(32k×16k),所以比如今被记录的大多数传统视频内容高两个量级。虽然现今的相机不能记录32K视频,但是8K和12K相机开始变得可用。
然而,限制沉浸式视频质量的主要因素很大程度上不是相机技术,而是分发技术。通过目前的互联网发送传统的UHD视频、或者甚至高质量HD不仅仅非常复杂和昂贵,而且它还限于具有足够快的互联网连接的那些国家和用户。在沉浸式视频需要甚至更高质量的视频的情况下,沉浸式媒体的分发是个大的挑战。
目前存在用于递送沉浸式视频的各种分发方法。此刻最常用的第一种方法也是最简单的一种方法,该方法是好像沉浸式视频是正常的传统视频一样,向客户端简单地递送它。这意味着全球形视频正被递送给客户端、在终端用户设备上被解码、并且被投影在VR头戴式视图器上。该方法的优点是它再用现有的技术和分发方法、并且不需要新的技术。缺点是它要么就带宽而言是非常昂贵的(考虑到沉浸式视频的分辨率通常将高于传统视频)(这将缩小可达范围并且提高成本),要么质量低(如果质量降到适应更低的带宽)。
第二组方法(在研究团体中被越来越多地探究的一种方法)也被称为“视口自适应流传输”。虽然存在几种不同的用于视口自适应流传输的方法(每种方法都有它自己的优点和缺点),但是最具可扩展性和前景的方法被称为瓦片式流传输。例如在US2017/0155912A1中描述了瓦片式流传输。就瓦片式流传输来说,原始的沉浸式视频(不管它是圆柱形的、球形的、还是其他的)被拆分为单个的空间元素(这些空间元素可以被称为瓦片流),并且视频的每帧被拆分为单个的空间元素帧(这些空间元素帧可以被称为瓦片帧)。通常,瓦片帧是矩形的,然而,原则上,它们可以具有任何形状或形式。每个瓦片帧于是可以以这样的方式独立编码,即,它在客户端上可以在客户端不需要访问其他瓦片帧的情况下被成功地解码。通过基于视口连续地检索单个的瓦片帧,客户端能够仅检索和解码视频中用户感兴趣的区域。通过仅流传输沉浸式视频中用户感兴趣的区域,对于分发沉浸式视频必要的总带宽可以显著降低。这种带宽降低或者可以用于增加可达范围(意味着更高比例的用户将具有足以接收流传输视频的带宽)并且降低成本(传送的位更少),或者可以用于提高质量、或实现这些目标的组合。通过在任何给定时间仅发送视频的小部分,该区域可以在不提高带宽的情况下,以比正常情况下的可能质量更高的质量发送。
该方法的缺点是当用户转动他的头时、使客户端从网络检索适当的瓦片帧需要花费时间。用户转动他的头和瓦片帧从网络被提取并且在客户端设备(诸如头戴式视图器)的显示器上被渲染之间的端对端延时(也被称为运动到光子延时)显著地影响体验质量(QoE)。小至100毫秒的延时也可能已经造成更低的用户QoE。
现有技术中讨论的大多数瓦片式流传输方法基于HTTP自适应流传输,或者是HTTP自适应流传输的扩展。就HTTP自适应流传输(MPEG DASH和Apple HLS是其首要的例子)来说,视频流被分割成时间元素(被称为片段),每个时间元素通常长3秒和30秒之间。当看视频时,客户端经由标准的HTTP从网络顺序地提取连续的片段,缓冲它们,并且将它们馈送到视频解码器。HTTP自适应流传输得名于每个片段可以以多种不同的质量/分辨率(被称为“表示”)供使用,客户端能够基于可用带宽在不同的质量之间切换。切换质量(由于改变的网络链路状况)通常将在片段边界发生。
当被应用于瓦片式流传输时,每个瓦片流通常被表示为独立的视频流,其中每个瓦片流本身被拆分为瓦片帧的多个时间片段。通用清单文件[例如,DASH-SRD:ISO/IEC23009-1:2014]或容器格式于是包含指向瓦片帧的单个的片段的指针,并且描述它们的时间和空间关系。从客户端的角度来讲,客户端首先下载并解析清单文件,然后设立多个HTTP自适应流传输会话,对于每个瓦片流一个会话。每个会话将由顺序地下载连续的片段组成。当用户转动他的头时,用于不再在视场中的那些瓦片流的HTTP自适应流传输会话将被取消,对于刚进入视场的瓦片流,将开始新的会话。
虽然HTTP自适应流传输非常适合于传统的视频流传输,但是它不太适合于瓦片式流传输,主要是因为延时。当用户带着VR头戴式视图器转动他的头时,人类前庭系统预期眼睛捕捉的视图相应地继续移动。当这没有发生或者没有足够快地发生时,晕动病非常快速地发生。研究已经表明如果头部移动和眼睛注意到适当的移动之间的延迟大于8-10ms,则该问题已经发生。这意味着瓦片帧需要被非常快地检索,或者意味着需要已经存在并且可以以与用户的头部移动一致的方式显示的一些视觉信息。
考虑到8-10ms是用于使系统对传感器数据做出响应、通过互联网提取视频数据、对该数据进行解码、并且向终端用户示出它的极其短的时间,这在基于HTTP自适应流传输的瓦片式流传输解决方案中通常不被实现。可以通过以下方式来绕过这种情况:1)总是下载比终端用户体验的视场大的视场,从而创建一种空间缓冲,和/或2)在系统等待高分辨率瓦片帧到达的同时,总是流传输可以示出的低分辨率回退/基本层。
如果网络状况例如因为可用带宽降低而恶化,则瓦片帧中的一些可能未被及时接收到以在显示器上适当地渲染它们。这是不可取的,因为它可能使视口只有一些部分包含被请求的高质量瓦片帧,而视口的其他部分包含低质量瓦片帧,或者根本不包含瓦片帧。具有变化的质量的瓦片帧的视口对于用户来说高度失真,并且非常负面地影响用户体验。与其中低质量瓦片帧和高质量瓦片帧二者都存在的视口相比,可能更优选的是具有完全由低质量瓦片帧组成的视口。
当对常规的视频流传输(非瓦片式流传输)实现HTTP自适应流传输时,通常,通过监视缓冲器的充满度来监视网络状况。这样的缓冲器包含已经被接收到、但仍将被显示的视频帧。如果缓冲器开始耗尽,则这通常指示网络状况恶化,因此,更低质量的流可以被选择。
不幸的是,监视缓冲器的充满度由于几个原因,不适合于视口自适应流传输(VAS)技术。首先,就VAS来说,当视口移动(通常是由于用户移动他或她的头)时,缓冲器中的信息的大部分可能变得无关(并可能随后被丢弃)。为了例示说明,如果缓冲器已经存储表示沉浸式视频的特定部分的十秒播放时间的瓦片流,并且用户突然移动他的头以使得视口不再包含所述特定部分,则十秒的该瓦片流将不再在显示器上被渲染,因此变得无关。因此,就VAS来说,缓冲器的大小可能显著变化,该变化不一定是网络状况的指示。第二,缓冲器充满度不提供往返时间(RTT)的准确指示,尽管对于VAS,RTT对流传输性能具有显著影响。对于常规的流传输,如果RTT长,则缓冲器可以被很好地填充。然而,对于VAS,重要的是,缓冲器在视口移动之后被快速地填充以已新进入视口的视频的新瓦片帧或部分,这要求RTT低。
鉴于以上,本领域中需要能够在适当时在不同的质量之间切换的、用于请求瓦片帧的方法。
发明内容
为此,公开了一种用于请求瓦片流以在客户端设备的显示器上渲染沉浸式视频的空间部分的计算机实现的方法。在该方法中,服务器系统存储多个瓦片流。每个瓦片流表示沉浸式视频的空间部分,并且每个瓦片流包括与视频中的相应时间相关联的瓦片帧序列。此外,所述多个瓦片流包括具有相对高质量的高质量瓦片流的第一集合,并且包括具有相对低质量的一个或多个低质量瓦片流的第二集合和/或具有相对中间质量的一个或多个中间质量瓦片流的第三集合。高质量瓦片流的第一集合表示沉浸式视频的第一版本,一个或多个低质量瓦片流的第二集合表示沉浸式视频的第二版本,和/或中间质量瓦片流的第三集合表示沉浸式视频的第三版本。
所述方法包括(i)从高质量瓦片流的第一集合选择高质量瓦片流。选择的高质量瓦片流包括与特定时间相关联的相应瓦片帧,用于在所述特定时间渲染沉浸式视频的空间区域。优选地,所述空间区域在所述特定时间包括预期的视口。所述方法还包括(ii)将对于选择的高质量瓦片流的请求发送给服务器系统;并且(iii)及时接收出自被请求的高质量瓦片流的与所述特定时间相关联的所述瓦片帧中的一个或多个以在所述特定时间在显示器上适当地渲染它们。所述方法进一步包括(iv)未及时接收出自被请求的高质量瓦片流的与所述特定时间相关联的所述瓦片帧中的一个或多个以在所述特定时间在显示器上适当地渲染它们,例如因为这一个或多个瓦片帧被接收得太晚,或者因为这一个或多个瓦片帧根本没有被接收到。所述方法进一步包括(v)确定参数的值,所述参数指示出自被请求的高质量瓦片流的与所述特定时间相关联的所述一个或多个瓦片帧中有多少个未被及时接收到以在所述特定时间在显示器上适当地渲染它们。然后,所述方法包括(vi)基于所述参数的确定的值,至少对于特定时间段,制止向服务器系统请求出自高质量瓦片流的第一集合的高质量瓦片流。所述方法还包括(vii)在所述时间段期间,向服务器系统请求来自一个或多个低质量瓦片流的第二集合的一个或多个低质量瓦片流,和/或向服务器系统请求来自一个或多个中间质量瓦片流的第三集合的一个或多个中间质量瓦片流。
该方法提供当网络状况恶化过分时、切换到更低质量的瓦片流的非常简单且高效的方式。如背景部分中说明的,在瓦片式流传输的背景下,缓冲器充满度不是对于网络状况的足够的测度。相反,本文中公开的方法使用指示有多少个瓦片帧(尽管被请求)被接收得太晚以至于不能在它们应被渲染的时间在显示器上适当地渲染它们的参数。发明人已经认识到这样的参数实际上是对于当前网络状况的足够的测度。在瓦片式流传输中,对于视频中的每个时间,请求多个瓦片帧。换句话说,每个视频帧包括多个瓦片帧。因为每个被请求的瓦片帧可能被及时接收到,或者可能未被及时接收到,所以所述参数对于视频中的每个时间,可以具有值的范围,因此可以指示网络质量的范围。为了例示说明,如果所述参数仅仅是对于特定时间、未被及时接收到的瓦片帧的数量n_missing和对于该特定的时间的被请求的瓦片帧的总数N之间的比率,则所述参数对于该时间的值由n_missing/N给出,其中n_missing可以是任何整数值0、1、2、…、N-1、N。因此,所述参数(也可以被称为决策参数)可以被用于指示网络质量的范围,因此适合于使决策基于是否切换到更低质量的瓦片流。原则上,网络状况越差,越多的瓦片帧将不被及时接收到。这样的参数可以被用于例如识别网络状况随着时间的过去、逐渐下降。
瓦片帧所关联的时间也可以被称为播放时间。因此,上面提到的特定时间可以被理解为是指沉浸式视频中的特定的播放时间,例如播放时间“从视频开头起10.5秒”。在特定时间在显示器上渲染瓦片帧可以被理解为是指在视频到达该特定时间的时刻在显示器上渲染瓦片帧。
如本文中所使用的,请求来自特定瓦片流的一个或多个瓦片帧可以被理解为请求该特定瓦片流的例子。接收瓦片帧可以被理解为接收客户端设备可以对其进行解码以便获得(解码的)瓦片帧以使得它可以在客户端设备的显示器上被渲染的编码数据。
每个瓦片流优选地独立于其他瓦片流编码。然而,在瓦片流内,一些瓦片帧可能是参照该瓦片流内的其他瓦片帧编码的,这导致所谓的帧间编码的瓦片帧,并且其他瓦片帧可能不是参照瓦片流内的其他瓦片帧编码的,这导致所谓的帧内编码的瓦片。在VAS的背景下,图片组(GOP)是用于描述所谓的帧内编码的帧和帧间编码的帧在瓦片流内的布置次序的术语。GOP由来自特定瓦片流的一个或多个瓦片帧组成。在编码的瓦片流中遇到新的GOP意味着解码器不需要任何前面的瓦片帧来对接下来的瓦片帧进行解码。
原则上,瓦片流的质量越高,其瓦片帧在显示器上被渲染时越好地类似于原始视频,即,一个或多个相机捕捉的原始视频。瓦片流的质量可以与如瓦片流中的瓦片帧表示的视频的分辨率相关,其中越高的分辨率对应于越高的质量。如本文中所使用的,(解码的)视频的分辨率是指视频的每个视频帧中的像素的数量。因此,沉浸式视频的如分别由瓦片流的第一集合、第二集合和/或第三集合表示的不同版本可能在质量上不同,例如,就如由瓦片流的第一集合、第二集合和/或第三集合中的瓦片帧表示的视频的分辨率而言。瓦片流的质量可以另外地和/或可替代地与瓦片流的位率相关,其中越高的位率对应于越高的质量。瓦片流的质量可以另外地或可替代地与如由瓦片流表示的视频的帧率相关,其中越高的帧率对应于越高的质量。瓦片流的帧率可以被理解为在基于瓦片流的每一单元的视频播放时间渲染的视频帧的数量。因此,沉浸式视频的如分别由瓦片流的第一集合、第二集合和/或第三集合表示的不同版本可能在质量上不同,例如,就如由瓦片流的第一集合、第二集合和/或第三集合中的瓦片帧表示的视频的帧率而言。
为了清晰起见,从高质量瓦片流具有比中间质量瓦片流高的质量、并且中间质量瓦片流具有比低质量瓦片流高的质量的意义上来讲,高质量瓦片流可以具有相对高的质量,中间质量瓦片流可以具有相对中间的质量,低质量瓦片流可以具有相对低的质量。
沉浸式视频可以被理解为包括视频帧,其中每个视频帧在空间上被划分在瓦片帧中。属于不同视频帧、但表示沉浸式视频的相同空间部分的瓦片帧可以形成瓦片流。这样,每个瓦片流可以与沉浸式视频的空间部分相关联。
所述时间段可以是预先确定的。在所述时间段之后,来自高质量瓦片流的第一集合的高质量瓦片流可以再次被向服务器系统请求。
在实施例中,所述方法包括:基于所述参数的确定的值,在所述时间段期间,向服务器系统请求来自一个或多个中间质量瓦片流的第三集合的一个或多个中间质量瓦片流。另外或可替代地,该实施例包括基于所述参数的确定的值,在所述时间段期间,向服务器系统请求来自一个或多个低质量瓦片流的第二集合的一个或多个低质量瓦片流。
该实施例使得能够请求更低质量的瓦片流,而不是对于其来说网络状况不足的当前的更高质量的瓦片流。
应意识到如果服务器系统将存储瓦片流的两个且只有两个集合,一个集合具有比另一个集合更高质量的瓦片流,则另一个集合可以被认为是本公开中提到的中间质量瓦片流或本公开中提到的低质量瓦片流。
当然,服务器系统可以存储许多个集合的瓦片流,其中每个集合与不同的质量相关联。
在实施例中,所述方法包括在客户端设备的显示器上在所述特定时间渲染视口。被渲染的视口包括沉浸式视频的分别由被及时接收到的瓦片帧中的一个或多个表示的第一一个或多个空间部分,并且包括沉浸式视频的分别由未被及时接收到的瓦片帧中的一个或多个表示的第二一个或多个空间部分。因此,被渲染的视口在第一一个或多个空间部分具有来自高质量瓦片流的一个或多个被渲染的瓦片帧,并且被渲染的视口在视口中的第二一个或多个空间部分缺失来自高质量瓦片流的一个或多个瓦片帧。第二一个或多个空间部分覆盖被渲染的视口中的空间区域。
该实施例是有利的,因为即使瓦片帧中的一些未被及时接收到,视口也仍被渲染。这有益于用户体验。
在实施例中,所述方法包括基于被渲染的视口来确定所述参数。在该实施例中,所述参数可以是从被渲染的视口计算的客观的视频质量参数。所述参数可以使用本领域中已知的方法来确定。这样的方法可以包含视频多方法评估融合(VMAF)和/或其他质量度量(诸如视觉信息保真度(VIF)、细节损失度量(DLM)、平均同位像素差(MCPD)、抗噪声信噪比(AN-SNR))。
在该实施例中,有利地,基于实际上被渲染的视口来确定所述参数。确定所述参数不一定涉及缓冲器充满度的任何监视,并且可以直接基于被渲染的视口来确定。实施例使用以下事实,即,就VAS来说,因为每个被渲染的视口可以包括不同数量的高质量瓦片帧,所以视口的质量可能会变化。例如,在良好的网络状况下渲染的第一视口可能完全由高质量瓦片帧组成,而在差的网络状况下渲染的后来渲染的视口可能由仅50%高质量瓦片帧和50%低质量瓦片帧组成。因此,视口的质量可以被用作网络质量的直接指示,特别是被用作网络状况是否好得足以使得向服务器系统请求的高质量瓦片帧中的至少特定最小数量被及时接收到以进行适当渲染的直接指示。如果被请求的高质量瓦片帧中的许多瓦片帧被接收得太晚,或者根本没有被接收到,则用户体验将剧烈恶化,然后优选地,高质量瓦片流不再被请求。
就常规的非瓦片式流传输来说,原则上,被渲染的视口的质量是相当恒定的。例如,就常规的流传输来说,视口的分辨率是恒定的。如果网络状况逐渐恶化,则当缓冲器已经变空时,常规视频可能停在某个点处。然而,在这样的情况下,视口的分辨率(即,视口中的被渲染的像素的总数)在这样的停顿之前,将不会逐渐地下降。相反,就VAS来说,网络状况的逐渐恶化将使被渲染的视口包含越来越少的高质量瓦片帧,其结果是被渲染的视口的质量(例如,分辨率)也将逐渐地下降。
当被渲染的视口的质量被评估时,那么影响该质量的所有因素自动地被考虑,包括例如与VAS高度相关的往返时间。如果往返时间已经变得非常长,则这可能引起视口一移动、被请求的高质量瓦片帧中只有有限数量的瓦片帧在视口中被渲染,因为对于视频的新近进入视口中的空间部分,可能尚未接收到瓦片帧。
在实施例中,所述参数指示被第二一个或多个空间部分覆盖的空间区域的大小。
原则上,视口中的被第二一个或多个空间部分覆盖的空间区域越大,视口的质量越低。如果该空间区域非常大,则相对地许多被请求的高质量瓦片帧被接收得太晚,或者根本没有被接收到,导致低质量视口。
该实施例中的所述参数的例子将是被渲染的视口的分辨率。分辨率越低,被第二一个或多个空间部分覆盖的空间区域的大小越大。照此,视口的分辨率指示被第二一个或多个空间部分覆盖的空间区域的大小。空间区域的指示的大小因此可以是相对大小,例如,相对于整个视口的大小和/或相对于被高质量瓦片帧覆盖的空间区域的大小的相对大小。如本文中所使用的,视口是指沉浸式视频的空间部分,因此是指解码的视频,而不太指其上呈现解码的视频的硬件,即,不太是指客户端设备的显示器。因此,视口的分辨率是指解码的视频。解码的视频、因此视口的分辨率指示视口中的被渲染的像素的总数,并且原则上独立于客户端设备的显示器包含的硬件像素的数量。当然,当确定分辨率时,只有基于接收到的瓦片流渲染的像素应被计数。虚拟像素(例如,“灰色瓦片”)应被忽视。
在这样的实施例中,所述参数可以被称为视口质量参数,因为它指示被渲染的视口的质量。
在实施例中,所述参数指示
a)被所述第二一个或多个空间部分覆盖的所述空间区域的大小,和/或
b)有多少个来自高质量瓦片流的瓦片帧在被渲染的视口中缺失,和/或
c)被渲染的视口中的被所述第一一个或多个空间部分覆盖的进一步的空间区域的大小,和/或
d)有多少个来自高质量瓦片流的第一集合的瓦片帧存在于被渲染的视口中,和/或
e)所述空间区域的大小和所述进一步的空间区域的大小之间的比率,和/或
f)所述空间区域的大小和被渲染的视口的大小之间的比率,和/或
g)所述进一步的空间区域的大小和被渲染的视口的大小之间的比率,和/或
h)被渲染的视口包含多少个像素,和/或
i)被渲染的视口的分辨率,和/或
j)进一步的空间区域的大小和视口中的被来自低质量流的瓦片帧覆盖的空间区域的大小之间的比率。
以上所有参数可以被理解为指示被请求的高质量瓦片帧中有多少个未被及时接收到用于适当的渲染。所述参数可以使用利用被所述第二一个或多个空间部分覆盖的所述空间区域的大小以及可选地、所述进一步的空间区域的大小的任何算术函数来确定。
优选地,将参数值与阈值进行比较,并且基于该比较来执行制止向服务器系统请求高质量瓦片流的步骤。确定哪个值用于特定参数可以被容易地确定,例如基于该参数的与相关联的视口的被评估质量相关联的先前的测量。这样,可以评估对于特定参数的哪些值、对于用户的体验质量仍是可接受的,以及对于哪些值、体验质量变得太低。
在实施例中,所述方法包括确定出自被请求的高质量瓦片流的与所述特定时间相关联的所述瓦片帧中的一个或多个未被及时接收到以在所述特定时间在显示器上适当地渲染它们。优选地,该步骤包括对于未被及时接收到的瓦片帧中的每个,确定它在所述特定时间之前的第一预定时间时或之前尚未被接收到、和/或她在所述特定时间之前的第二预定时间时或之前尚未被解码。
该实施例是有利的,因为它不需要为了确定参数值、实际地渲染视口。在瓦片帧在视口中被渲染之前,它应在它已经被接收到之后被解码,并且渲染处理应被完成,这需要花费时间。这些处理的(平均)时间可以是已知的,这使得可以设置瓦片帧最晚应被接收到或被解码的特定时间,以使得在瓦片帧实际上应在显示器上被渲染之前,即,当视频到达与这些瓦片帧相关联的特定的播放时间时,存在执行这些处理的足够的时间。如果被请求的高质量瓦片帧在到达该设置时间时尚未被接收到,则它可以被计数为缺失。
在实施例中,所述方法包括将对于来自一个或多个低质量瓦片流的第二集合的一个或多个低质量瓦片帧的请求发送给服务器系统。被请求的一个或多个低质量瓦片流包括与所述特定时间相关联的相应一个或多个瓦片帧,所述一个或多个瓦片帧用于在所述特定时间渲染沉浸式视频的至少一部分,优选地整个沉浸式视频。该实施例进一步包括接收出自被请求的低质量瓦片流的与所述特定时间相关联的瓦片帧中的一个或多个。此外,在该实施例中,视口被渲染为使得被渲染的视口在视口中的对于其来说出自高质量瓦片流的瓦片帧不可用的每个空间部分处,包括出自低质量瓦片流的与所述特定时间相关联的接收到的瓦片帧的至少一部分。
该实施例确保即使用于视口中的特定空间部分的高质量瓦片尚未被及时接收到,视口在该特定空间部分处仍包括更低质量的瓦片帧。在此,实施例防止视口在对于其来说出自高质量瓦片流的瓦片帧不可用的空间部分处包含黑洞。如所指示的,优选地,对于整个沉浸式视频,以及对于视频中的每个时间,低质量瓦片流被请求,以使得低质量瓦片帧可用于任何当前的视口。
在实施例中,所述方法包括:在所述时间段期间,请求来自低质量瓦片流的第二集合的一个或多个低质量瓦片流,而不管所述参数的确定的值如何,并且在所述时间段期间,基于所述参数的确定的值,请求来自瓦片流的第三集合的一个或多个中间质量瓦片流。该实施例可以这样运作,即,低质量瓦片流总是被请求,而中间质量瓦片流只有在网络状况太差不能适当地接收到高质量瓦片流时才被请求。
在实施例中,所述方法包括通过重复地执行步骤(i)-(v)的序列来重复地确定所述参数的值,尽管是针对视频中的不同的相应时间。该实施例还包括基于所述参数的确定的值,至少对于特定时间段,制止向服务器系统请求出自高质量瓦片流的第一集合的高质量瓦片流。
该实施例可选地包括基于不同的确定的参数值来确定特定聚合参数(值)。在例子中,监视每个被渲染的视口的分辨率,并且确定最后十个被渲染的视口的这些分辨率的平均值作为聚合质量参数。这样的聚合质量参数可以是本文中描述的指示单个视口的质量的任何参数的平均值和/或变化率。
该实施例使得能够降低客户端在质量流之间切换的频率。如果例如网络状况仅在短暂的时间段期间很差,则切换到更低质量的流可能是不可取的。
通常,当向服务器系统请求特定的瓦片流时,瓦片流包括将在视口中在比所述特定时间晚的不同时间渲染的多个瓦片帧。这样的已经被请求的瓦片帧在步骤(i)-(v)的序列的下一次迭代中当然本身不再被选择/被请求。
为了例示说明,在实施例中,所述方法包括:从高质量瓦片流的第一集合选择进一步的高质量瓦片流,选择的进一步的高质量瓦片流包括与进一步的特定时间相关联的用于在所述进一步的特定时间渲染沉浸式视频的空间区域的相应瓦片帧,优选地,所述空间区域在所述进一步的特定时间包括进一步的预期的视口;将对于选择的进一步的高质量瓦片流的请求发送给服务器系统;及时接收出自被请求的进一步的高质量瓦片流的与所述进一步的特定时间相关联的所述瓦片帧中的一个或多个以在所述进一步的特定时间在显示器上适当地渲染它们;未及时接收出自被请求的进一步的高质量瓦片流的与所述进一步的特定时间相关联的所述瓦片帧中的一个或多个以在所述特定时间在显示器上适当地渲染它们;确定所述参数的进一步的值,所述参数指示出自被请求的高质量瓦片流的与所述进一步的特定时间相关联的所述一个或多个瓦片帧中有多少个未被及时接收到以在所述进一步的特定时间在显示器上适当地渲染它们;并且基于所述参数的确定的值和确定的进一步的值,至少在所述时间段内,制止向服务器系统请求出自高质量瓦片流的第一集合的高质量瓦片流。
该实施例可以包括在所述进一步的特定时间渲染所述进一步的视口。被渲染的进一步的视口可以包括沉浸式视频的分别由出自被请求的进一步的高质量瓦片流的与所述进一步的特定时间相关联的被及时接收到的瓦片帧中的一个或多个表示的第一进一步的一个或多个空间部分,并且包括沉浸式视频的分别由出自被请求的进一步的高质量瓦片流的与所述进一步的特定时间相关联的未被及时接收到的瓦片帧中的一个或多个表示的第二进一步的一个或多个空间部分,因此,被渲染的进一步的视口在第一进一步的一个或多个空间部分具有来自高质量瓦片流的一个或多个被渲染的瓦片帧,并且被渲染的进一步的视口在进一步的视口中的第二进一步的一个或多个空间部分处缺失来自高质量瓦片流的一个或多个瓦片帧,所述第二进一步的一个或多个空间部分覆盖被渲染的进一步的视口中的进一步的空间区域。所述进一步的值可以基于被渲染的进一步的视口来确定。此外,所述进一步的值可以指示被第二进一步的一个或多个空间部分覆盖的所述进一步的空间区域的大小。
在实施例中,所述方法包括重复地确定所述参数的值包括:在相应时间重复地渲染视口,并且对于每个被渲染的视口,基于所讨论的被渲染的视口来确定所述参数的相关联的值。
在实施例中,基于所述参数的确定的值、至少对于特定时间段、制止向服务器系统请求出自高质量瓦片流的第一集合的高质量瓦片流的步骤包括:将所述参数的确定的值与阈值进行比较;并且基于该比较,至少对于特定时间段,制止向服务器系统请求出自高质量瓦片流的第一集合的高质量瓦片流。
该实施例提供用于确定是否继续请求高质量瓦片流的方便的方式。
在实施例中,所述方法包括测量视口跨沉浸式视频的移动,其中制止向服务器系统请求高质量瓦片流的步骤还基于视口的测量的移动来执行。
在例子中,将测量的移动与移动阈值进行比较。如果测量的移动相对较高,则该移动可能使相对较多的高质量瓦片帧不被及时接收到,与造成它的差的网络状况相反。如果视口的移动显著,则制止请求高质量瓦片流可能是不适当的。在显著的头部移动期间,被渲染的视口的质量也没那么重要,因为用户不太可能注意到低质量。然而,当移动停止时,应可以再次请求并且适当地渲染来自高质量流的帧,当然假定网络状况良好。因此,在实施例中,可以基于视口的测量的移动低于移动阈值的确定来执行制止向服务器系统请求来自高质量瓦片流的第一集合的瓦片流的步骤。
在例子中,所述参数的值可以与其进行比较的以上提及的阈值取决于测量的视口移动。在这样的情况下,所述方法可以包括基于测量的视口移动来确定用于所述参数的阈值。视口移动可以使阈值更低或更高,取决于与阈值进行比较的确切的参数。为了例示说明,如果所述参数指示被及时接收到的高质量瓦片帧较于被请求的高质量瓦片帧的总数的比率,则所述参数的值越高,就将指示越好的网络状况。在这样的情况下,可以基于确定的参数值低于阈值的确定来切换到更低质量的瓦片流。在这样的情况下,视口移动可以使阈值更低。终究,在这样的情况下,如果视口显著移动,则决策参数的更低的值是可接受的。
作为另一个例子,如果所述参数指示未被及时接收到的高质量瓦片帧较于被请求的高质量瓦片帧的总数的比率,则所述参数的越低的值,就将指示越好的网络状况。在这样的情况下,可以基于确定的参数值高于阈值的确定来切换到更低质量的瓦片流。在这样的情况下,视口移动可以使阈值更高。终究,在这样的情况下,如果视口显著移动,则决策参数的更高的值是可接受的。
在另一个例子中,阈值是固定的,并且基于测量的视口移动,视情况来调整决策参数的值。为了例示说明,如果所述参数指示被及时接收到的高质量瓦片帧较于被请求的高质量瓦片帧的总数的比率,则在将参数值与阈值进行比较之前,可以基于显著的视口移动来增大参数值。作为另一个例子,如果所述参数指示未被及时接收到的高质量瓦片帧较于被请求的高质量瓦片帧的总数的比率,则在将参数值与阈值进行比较之前,可以基于显著的视口移动来降低确定的参数值。
本公开的一个方面涉及一种数据处理系统,所述数据处理系统被配置为执行本文中描述的方法中的任何一个。具体地说,数据处理可以包括用于执行本文中描述的方法中的任何一个的手段,诸如处理器。
本公开的一个方面涉及一种计算机,所述计算机包括计算机可读存储介质和处理器(优选地微处理器),计算机可读存储介质具有与其包含在一起的计算机可读程序代码,处理器耦合到计算机可读存储介质,其中响应于执行所述计算机可读程序代码,处理器被配置为执行本文中描述的方法中的任何一个。
本公开的一个方面涉及一种计算机程序,所述计算机程序包括当所述程序被计算机执行时、使所述计算机实现本文中描述的方法中的任何一个的指令。
本公开的一个方面涉及一种包括至少一个软件代码部分的计算机程序或计算机程序套件、或存储至少一个软件代码部分的计算机程序产品,所述软件代码部分当在计算机系统上运行时,被配置为执行本文中描述的方法中的任何一个。
本公开的一个方面涉及一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质具有存储于其上的本文中描述的计算机程序中的任何一个。
本公开的一个方面涉及一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质存储至少一个软件代码部分,所述软件代码部分在被计算机执行或处理时,被配置为执行本文中描述的方法中的任何一个。
如本领域中技术人员将意识到的,本发明的各方面可以被实施为系统、方法或计算机程序产品。因此,本发明的各方面可以采取以下形式:完全硬件的实施例、完全软件的实施例(包括固件、驻存软件、微代码等)、或组合在本文中一般都可以被称为“电路”、“模块”或“系统”的软件方面和硬件方面的实施例。本公开中描述的功能可以被实现为被计算机的处理器/微处理器执行的算法。此外,本发明的各方面可以采取包含在具有包含(例如,存储)于其上的计算机可读程序代码的一个或多个计算机可读介质中的计算机程序产品的形式。
一个或多个计算机可读介质的任何组合可以被利用。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以例如是,但不限于,电子、磁性、光学、电磁、红外或半导体系统、装置或设备、或前述的任何合适的组合。计算机可读存储介质的更特定的例子可以包括,但不限于,以下例子:具有一个或多个导线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光学存储设备、磁性存储设备、或前述的任何合适的组合。在本发明的背景下,计算机可读存储介质可以是可以包含或存储供指令执行系统、装置或设备使用的或与指令执行系统、装置或设备相关的程序的任何有形介质。
计算机可读信号介质可以包括具有包含于其中(例如,包含在基带中或者作为载波的一部分包含于其中)的计算机可读程序代码的传播数据信号。这样的传播信号可以采取各种形式中的任何一个,包括,但不限于,电磁、光学或它们的任何合适的组合。计算机可读信号介质可以是不是计算机可读存储介质并且可以传送、传播或输送供指令执行系统、装置或设备使用的或与指令执行系统、装置或设备相关的程序的任何计算机可读介质。
包含在计算机可读介质上的程序代码可以使用任何适当的介质来发送,包括但不限于无线、导线、光纤、电缆、RF等、或前述的任何合适的组合。用于实现用于本发明的各方面的操作的计算机程序代码可以用一种或多种编程语言的任何组合来编写,包括面向对象的编程语言(诸如Java(TM)、Smalltalk、C++等)和常规的过程式编程语言(诸如“C”编程语言或类似的编程语言)。程序代码可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上、部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种场景中,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以连接到外部计算机(例如,使用互联网服务提供商通过互联网连接)。
下面参照根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图来描述本发明的各方面。将理解流程图图示和/或框图的每个方框、以及流程图图示和/或框图中的方框的组合可以通过计算机程序指令来实现。这些计算机程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器(特别是微处理器或中央处理单元(CPU))以生成机器,以使得经由计算机、其他可编程数据处理装置或其他设备的处理器执行的指令创建用于实现流程图和/或框图的一个方框或多个方框中指定的功能/动作的手段。
这些计算机程序指令也可以被存储在计算机可读介质中,所述计算机可读介质可以指导计算机、其他可编程数据处理装置或其他设备以特定的方式运作,以使得存储在所述计算机可读介质中的指令生成包括实现流程图和/或框图的一个方框或多个方面中指定的功能/动作的指令的制造品。
所述计算机程序指令也可以被加载到计算机、其他可编程数据处理装置或其他设备上以使一系列操作步骤在所述计算机、其他可编程装置或其他设备上执行以生成计算机实现处理以使得在所述计算机或其他可编程装置上执行的指令提供用于实现流程图和/或框图的一个方框或多个方面中指定的功能/动作的处理。
附图中的流程图和框图例示说明根据本发明的各种实施例的系统、方法和计算机程序产品的可能的实现的架构、功能性和操作。就这一点而言,流程图或框图中的每个方框可以表示包括用于实现指定的(一个或多个)逻辑功能的一个或多个可执行指令的模块、代码段或代码部分。还应注意到,在一些可替代实现中,方框中标注的功能可以不按附图中标注的次序发生。例如,连续示出的两个方框事实上可以基本上同时执行,或者方框有时可以按相反的次序执行,取决于涉及的功能性。还将注意到,方框和/或流程图图示的每个方框、以及框图和/或流程图图示中的方框的组合,可以通过执行指定的功能或动作的专用的基于硬件的系统、或专用硬件和计算机指令的组合来实现。
而且,提供用于实现本文中描述的方法的计算机程序、以及存储所述计算机程序的非暂时性计算机可读存储介质。计算机程序可以例如被下载(被更新)到现存的客户端设备,或者在制造这些客户端设备时被存储。
对于特定实施例讨论的或者与特定实施例有关的元素和方面可以与其他实施例的元素和方面合适地组合,除非另有明确陈述。将参照附图来进一步例示说明本发明的实施例,附图示意性地将示出根据本发明的实施例。将理解本发明绝不限于这些特定的实施例。
附图说明
将参照附图中示出的示例性实施例来更详细地说明本发明的各方面,在附图中:
图1示意性地示出用于执行本文中公开的方法的系统;
图2显现根据实施例的瓦片流的三个集合;
图3显现根据实施例的渲染处理;
图4例示说明其中低质量瓦片帧总是作为备份被请求的实施例;
图5A、5B、5C例示说明根据实施例的被渲染的视口。
图6A、6B、6C是例示说明用于请求瓦片流的方法的实施例的流程图。
图7例示说明根据实施例的数据处理系统。
具体实施方式
在附图中,相同的标号指示相同的或类似的元件。
图1示意性地示出其中所描述的方法可以是有利的系统。在本文中,客户端设备1连接到服务器系统2,例如,经由分组交换网络,诸如互联网。客户端设备1被示为笔记本计算机,然而,客户端设备1可以是可以连接到服务器系统2的任何设备。客户端设备1可以例如是PC、膝上型电脑、移动电话、平板或VR头戴式视图器。客户端设备1可以连接到例如VR头戴式视图器。客户端设备也可以是边缘服务器。在这样的情况下,可以在边缘服务器上执行视频的渲染,然后可以将视口流传输到用户设备的显示器。这使得仅具有对常规视频进行解码的能力的设备也能够受益于瓦片式流传输方法。
在图1所示的实施例中,客户端设备1包括数据处理系统100,数据处理系统100被配置为执行本文中描述的方法,其例子参照图7有更详细的描述。数据处理系统100可以包括一个或多个处理器(未示出)。客户端设备1的这样的一个或多个处理器可以例如是通用处理器(例如,Intel或AMD处理器)或应用特定的处理器。这样的一个或多个处理器可以包括例如多核。数据处理系统可以运行例如基于Unix的(例如,安卓)、Windows或Apple操作系统。
数据处理系统100可以包括组合在客户端设备1的收发器中的接收器和发送器。在可替代实施例中,客户端设备1包括分开的接收器和发送器。发送器、接收器和/或收发器可以包括在本公开中稍后提到的网络适配器116中。客户端设备1的收发器可以使用例如一种或多种无线通信技术(诸如Wi-Fi、蓝牙、GPRS、CDMA、UMTS和/或LTE)和/或一种或多种有线通信技术(诸如以太网)来与服务器系统2(例如,与边缘高速缓存节点13)通信。客户端设备1可以经由其他的(未被描绘的)设备(诸如接入点、路由器和交换机)连接到服务器系统2的服务器。
客户端设备1还可以包括存储器元件,例如,举例来说,一个或多个由闪存制成的固态盘(SSD)、或一个或多个硬盘。客户端设备1可以包括对于客户端设备典型的其他组件,例如,电源和/或电池以及显示器。
服务器系统2被配置为存储如将参照图2更详细地说明的多个瓦片流。尽管图1示出服务器系统2包括多个服务器11-19,但是服务器系统2可以包括一个且只有一个服务器。多个瓦片流可以被存储在服务器系统的单个服务器上,或者可以被存储在服务器系统的几个服务器上。此外,多个服务器可以例如存储同一瓦片流的副本。服务器系统2可以是所谓的内容分发网络(CDN)。
客户端设备1可能已经存储所谓的清单文件,所谓的清单文件指示哪些编码的瓦片帧被存储在哪个位点处,例如,哪个URL处,因此,最终被存储在哪个特定的服务器上。因此,客户端设备1可以在它已经确定特定的编码的瓦片流将被请求之后,使用清单文件来确定对于特定的编码的瓦片帧的请求将被发送给的服务器。
客户端设备1可以被配置为接收用户交互,并且基于这些用户交互来确定视频的哪个空间部分将在显示器上被渲染。客户端设备1的例子是被配置为接收用户交互的头戴式显示器(从它可以检测头戴式设备当前被安装在其上的、用户的头的方位的意义上来说)。另一个例子将是可以被配置为通过键盘或鼠标接收用户交互的台式计算机。用户可以例如使用键盘上的箭头来控制沉浸式视频的哪个空间部分呈现在显示器处。
在实施例中,数据处理系统100被配置为使用收发器来将对于选择的瓦片流的请求发送给服务器系统2的分发节点。所述一个或多个请求优选地识别瓦片流,例如,因为它们指定出自该瓦片流的一个或多个瓦片帧,并且可以指定基本上对应于当前时间的起始点。所述请求可以被寻址到起源节点19。所述一个或多个请求到达边缘高速缓存13,例如,通过重定向。边缘高速缓存节点13可以检查它本身是否可以满足所述一个或多个请求,并且将自己的对于不在其高速缓存中的任何瓦片流的请求发送给更高层的高速缓存节点17。更高层的高速缓存节点17检查它本身是否可以满足所述一个或多个请求,并且将自己的对于不在其高速缓存中的任何瓦片流的请求发送给起源节点19。节点19可以例如是流传输服务器,并且还可以包括数据处理系统100。图1所示的服务器系统包括除了边缘高速缓存节点13、更高层的高速缓存节点17和起源节点19之外的其他分发节点。边缘高速缓存节点11-12和14-15以及更高层的高速缓存节点16和17存在,但是不在客户端设备1和起源节点19之间的路径中。在可替代实施例中,客户端设备1被用于没有高速缓存节点的网络或网络路径中。边缘高速缓存节点11-14可以例如是分别用于爱尔兰、德国、法国和西班牙的边缘高速缓存节点。更高层的高速缓存节点16-18可以例如是分别用于美国、欧洲和亚洲地区的更高层的高速缓存节点。
如在EP3454566A1中更详细地说明的,瓦片流可以包括非帧间编码的瓦片帧(例如,I帧)和帧间编码的瓦片帧(例如,B帧和P帧)两者。
数据处理系统100被进一步配置为接收出自被请求的瓦片流的瓦片帧,例如,通过使用数据处理系统100的收发器。瓦片帧通常以编码的形式被接收,并且可以被理解为包括用于沉浸式视频的相应空间位置的像素值。
在客户端设备1的实施例中,数据处理系统100可以被配置为:显示接收的瓦片帧,并且可选地,一接收到暂停视频的显示的指令,就暂停视频的显示。
服务器系统2存储的任何内容可能已经由内容准备设备(未示出)准备好。这样的设备可以包括被配置为对视频数据进行编码的编码器设备。内容准备设备可以例如接收表示如由一个或多个相机捕捉的沉浸式视频的未被压缩的视频数据。通常,沉浸式视频由几个不同定向的相机捕捉。沉浸式视频例如是180度视频或360度视频。其中只有变化的空间部分被示给用户的任何视频可以被认为是沉浸式视频。编码器设备可以随后对原始的视频数据进行编码。优选地,编码器设备输出如本文中描述的编码的瓦片帧。内容准备设备可以连接到服务器系统2,例如,经由分组交换网络,诸如互联网。内容准备设备可以将编码的瓦片帧发送给服务器系统2的其中存储编码的瓦片帧的一个或多个服务器。可选地,内容准备设备还包括被配置为对编码的瓦片帧进行加密的加密模块。
图2显现根据实施例的瓦片流的三个集合,即,高质量瓦片流集合20、中间质量瓦片流集合22和低质量瓦片流集合24。这些瓦片流表示沉浸式视频的不同版本,特别是不同的质量版本,并且可以被存储在服务器系统的一个或多个服务器上。瓦片流集合不一定被存储在单个服务器上。甚至更强地,属于同一瓦片流的不同瓦片帧可以被存储在服务器系统的不同服务器上。存储在服务器系统上的瓦片流可能已经被编码,这意味着它们已经被压缩,并且一接收到对此的请求,就可以被发送到客户端设备1。
在每个瓦片流集合中,大写字母指示不同的瓦片流,而数字1-3指示瓦片帧中的不同瓦片帧所关联的相应时间。视频中的这样的时间也可以被称为播放时间。为此,每个瓦片帧可以包括时间戳和/或视频帧标识符,视频帧标识符指示视频中的时间。图2例如示出对于集合20中的瓦片流A,三个单独的瓦片帧,即,A1、A2、A3,对于集合20中的瓦片流B,三个瓦片帧B1、B2、B3,等等。具有数字“1”的瓦片帧可以被理解为共同包括表示完整沉浸式视频的完整视频帧的、可选地编码的视频数据,而具有指示的数字“2”的瓦片帧可以被理解为共同包括表示完整沉浸式视频的进一步的完整视频帧的、可选地编码的视频数据。尽管只有24个瓦片流被示出存在于集合20中,但是可以存在更多个瓦片流,诸如54个或108个瓦片流。
相同的原则适用于中间质量瓦片流集合22和低质量瓦片流集合24。中间质量瓦片流集合22包括瓦片流A’-L’,低质量瓦片流集合24包括瓦片流A”-F”。用没有撇号的大写字母指示的瓦片帧是具有相对高质量的瓦片帧,用有一个撇号的大写字母指示的瓦片帧是具有相对中间质量的瓦片帧,用有两个撇号的大写字母指示的瓦片帧是具有相对低质量的瓦片帧。
在例子中,瓦片帧就它们表示的视频数据的分辨率而言,在质量上不同。应意识到发送更低质量的瓦片帧用于渲染整个沉浸式视频的特定空间部分所需的网络资源少于发送更高质量的瓦片帧用于渲染沉浸式视频的相同空间部分。更低质量的瓦片帧在大小上更小,因为它们所需的存储少于更高质量的瓦片帧,和/或为了渲染视频的空间部分而需要发送的更低质量的瓦片帧的数量少于为了渲染视频的相同空间部分而需要发送的更高质量的瓦片帧的数量。
瓦片帧可以是帧间编码的瓦片帧,这些瓦片帧可以被理解为将基于同一瓦片流内的另一个解码的瓦片帧解码的瓦片帧。例如,从对编码的瓦片帧Q2进行解码需要瓦片帧Q1(为解码的形式)的意义上来说,瓦片帧Q2可以是帧间编码的瓦片帧。
瓦片帧可以是帧内编码的瓦片帧,这些瓦片帧可以被理解为可以不参照另一个解码的瓦片帧解码的瓦片帧。
优选地,对于每个质量级别,多个集合的瓦片帧被存储在服务器系统上,其中这些多个集合在有多少个帧内编码的瓦片帧存在于它们的瓦片流中方面存在不同。(这在图2中没有被示出。图2在每一质量级别,仅示出瓦片流的一个集合。)使用编码的瓦片帧的两个这样的集合的优点是可以如WO2019/048426中详细描述的那样减小运动到高分辨率延时。
图3例示说明瓦片式流传输的一般原理以及可以如何使用不同质量的瓦片流来渲染同一视频的不同版本。在图中,当前视口用虚线框26指示。
图3特别示出这样的实施例,其中在第一时间实例t=1,视口包括瓦片流A、B、C和D的部分,包括瓦片帧A1、B1、C1和D1的部分。这些是来自图2所示的高质量瓦片流集合20的高质量瓦片帧。客户端设备1已经正确地预测这些瓦片帧在t=1,将在视口中,已经将对于这些瓦片帧的请求(可以被理解为是对于包括这些瓦片帧的瓦片流的请求)发送给服务器系统2,并且已经及时接收到它们以使得在t=1,它们可以在客户端设备的显示器上被适当地渲染。该渲染可以包括将解码的瓦片帧A1、B1、C1和D1映射到三维结构上。在该例子中,三维结构是立方体。数据处理系统中的渲染器模块然后可以基于接收到的解码的瓦片帧到三维结构上的映射并且基于当前视口来在显示器上(例如,在头戴式显示器上)渲染实际的视口。
在进一步的时间实例t=2,视口包括瓦片流B、D、I、K的部分,即,包括瓦片帧B2、D2、I2、K2的部分。再次,这些是来自图2所示的高质量瓦片流集合20的瓦片帧。再次,客户端设备1已经正确地预测这些瓦片帧在t=2,将在视口中,已经将对于这些瓦片帧的请求(可以被理解为对于包括这些瓦片帧的瓦片流的请求)发送给服务器系统,并且已经及时接收到它们以使得在t=2,瓦片帧B2、D2、I2、K2的部分可以在客户端设备1的显示器上被适当地渲染。
这些图在t=1和t=2例示说明瓦片式流传输是有利的,因为并不是在任何给定时间都需要向服务器系统请求所有瓦片流。为了例示说明,在t=1,客户端设备不需要瓦片帧I1、K1、J1、L1,因为这些瓦片帧在t=1,不在视口中。在t=2,客户端设备不需要J2、L2、A2、C2,因为这些瓦片帧在t=2,不在视口中,因此,不需要在客户端设备1的显示器上被渲染。因此,瓦片式流传输使得能够大大地减少消耗的网络资源,而不会负面地影响用户体验。
继续该实施例,在t=3,客户端设备1可以渲染瓦片帧I3、D3、K3的适当部分,因为这些瓦片帧被及时接收到。然而,如瓦片的虚线图案所指示的,瓦片帧B3被接收得太晚。因此,视口的右上部分包含其中高质量瓦片帧(在该例子中,帧B3)缺失的空间区域。相反,客户端设备可以在该空间区域插入灰色或黑色瓦片。然而,更优选地,如将参照图4更详细地说明的,低质量备份瓦片帧代替地被插入在该空间部分中。所述参数的与t=3相关联的值应反映瓦片帧缺失。然而,在该例子中,一个未被及时接收到的瓦片帧不影响所述参数的值以使得要切换到更低质量的瓦片流。
然而,在t=4,两个瓦片帧(也就是,B4和D4),尽管被请求,但是缺失。在该例子中,这两个缺失的瓦片帧使所述参数的值变得太低。在该例子中,所述参数指示出自被请求的高质量瓦片流B4、D4、I4、K4的两个瓦片帧未被及时接收到。结果,基于确定的参数值,客户端设备4至少对于特定时间段,制止请求来自集合20的高质量瓦片流。
在该实施例中,客户端设备1基于确定的参数值,切换到请求来自集合22的中间质量瓦片流。因此,在t=5和t=6,视口包含中间质量瓦片帧的部分。
图4例示说明其中低质量瓦片帧总是作为备份被从低质量瓦片流集合24请求。这些低质量瓦片帧可以被接收、被解码,渲染处理可以涉及将低质量瓦片帧映射到围绕解码的高质量瓦片帧被映射到其上的三维结构(内立方体)的另一三维结构(在图4中,外立方体)上。优选地,所有的低质量瓦片帧总是被请求,以使得对于任何给定的时间,外立方体的所有侧可以被完全覆盖有低质量瓦片帧。这确保在任何给定的时间,一些视频数据可以被渲染,而不是必须在视口中对于其来说高质量瓦片帧未被及时接收到的空间部分处插入灰色或黑色瓦片。在图4中的t=1,视口包含高质量瓦片帧B1、D1、I1、K1的部分。因为这些已经被及时接收到,所以它们实际上存在,并且可以在客户端设备的显示器上被适当地渲染。
然而,在t=2,视口将包含瓦片帧A2和B2的部分(为了清晰起见,A2未被示出)。然而,只有瓦片帧B2被及时接收到。帧A2未被及时接收到,因此不能被渲染。幸运的是,低质量瓦片帧A”2已经被及时接收到。在该例子中,瓦片帧A”2被映射到如所示的外立方体上。因此,低质量瓦片帧A”2的一部分可以在客户端设备的显示器上被渲染。在该例子中,被渲染的视口因此将在左手侧包含由被及时接收到的高质量瓦片帧B2表示的空间部分,并且将在右手侧包含由低质量瓦片帧A”2表示的空间部分。
图5A、5B和5C例示说明根据实施例的被渲染的视口。所描绘的视口中的每个矩形是视口的如由瓦片帧表示的空间部分。在本文中,有密集点的矩形是沉浸式视频的分别由被请求的并且被及时接收到的高质量瓦片帧表示的空间部分。虚线矩形是沉浸式视频的分别由被请求的、但未被及时接收到的瓦片帧表示的空间部分。有稀疏点的矩形是沉浸式视频的分别由未被请求的(因此,未被及时接收到的)瓦片帧表示的空间部分。被填充水平线和垂直线的矩形是沉浸式视频的分别由被请求的并且被及时接收到的低质量瓦片帧表示的空间部分。
因此,图5A、5B、5C所示的视口中的每个已经在特定空间部分处渲染来自高质量瓦片流的瓦片帧,并且在视口中的其他空间部分处缺失来自高质量瓦片流的瓦片帧。
在图5A中,在视口的由未被及时接收到的瓦片帧表示的空间部分,例如灰色或黑色瓦片帧可以被插入。当然,这将使用户体验高度失真,因此将是不可取的。
图5B的视口包含两种类型的缺失来自高质量瓦片流的瓦片帧,也就是,缺失尽管被请求但是缺失的高质量瓦片帧,以及缺失因为它们尚未被请求而缺失的高质量瓦片帧。尽管被客户端设备请求但是缺失的瓦片帧可能是因为网络状况差而缺失。尚未被客户端设备请求的瓦片帧可能是因为客户端设备错误地预测这些瓦片帧将不进入到被渲染的视口中而尚未被请求。这可以例如如果用户意外地指示客户端设备改变视口(例如通过用户突然移动他的头,其中客户端设备是头戴式显示器)而发生。在这样的情况下,实际上,一些高质量瓦片帧可能仅仅是因为它们尚未被请求而在视口中缺失。
图5C的视口与图5B的视口相同,除了低质量备份瓦片帧被插入在对于其来说高质量瓦片帧不可用的空间部分处。
在实施例中,基于被渲染的视口来确定所述参数的值,所述参数指示被请求的高质量瓦片帧中有多少个未被及时接收到以在显示器上适当地渲染它们。
在例子中,所述参数指示被由未被及时接收到的、但被请求的高质量瓦片帧表示的空间部分覆盖的空间区域的大小。分别地对于图5A、5B、5C中的所有三个视口,该参数的值可以例如是矩形的大小的四倍。
在例子中,所述参数指示高质量瓦片流中有多少个瓦片帧在被渲染的视口中缺失。该参数的值可以例如是图5A的视口的矩形大小的四倍、视口5B和5C中的每个的矩形大小的十倍。在该例子中,所述参数仍应被理解为指示有多少个被请求的高质量瓦片帧未被及时接收到,即使该参数也加权重于未被请求的瓦片帧中。在瓦片式流传输的背景下,原则上,视口中的未被请求的瓦片帧的数量是有限的,也就是,公平地说,通常高质量瓦片帧是因为它尽管被请求、但是未被及时接收到而从被渲染的视口中缺失。
在例子中,所述参数指示视口中被来自低质量瓦片流的瓦片帧覆盖的空间区域的大小和进一步的空间区域(即,被由被很好地接收到的高质量瓦片帧表示的空间部分覆盖的区域)的大小之间的比率。对于视口5C,例如,这样的参数可以具有值10/70。在该例子中,所述参数仍应被理解为指示有多少个被请求的高质量瓦片帧未被及时接收到,即使该参数也加权重于未被请求的瓦片帧中。在瓦片式流传输的背景下,公平地说,该比率的增大通常是由更多的被请求的高质量瓦片帧未被及时接收到而引起的。
在例子中,所述参数指示被渲染的视口中被由被请求的并且被及时接收到的高质量瓦片帧表示的空间部分覆盖的进一步的空间区域的大小。这样的参数的值可以例如是视口5A的矩形大小的76倍、视口5B和5C中的每个的矩形大小的70倍。在该例子中,所述参数仍应被理解为指示有多少个被请求的高质量瓦片帧未被及时接收到,即使该参数受未被请求的、因此未被及时接收到的高质量瓦片帧的影响。在瓦片式流传输的背景下,公平地说,所述进一步的空间区域的大小的减小通常是由更多的被请求的高质量瓦片帧未被及时接收到而引起的。
在例子中,所述参数指示有多少个高质量瓦片帧存在于被渲染的视口中。这样的参数的值可以例如是视口5A的76倍、视口5B和5C中的每个的70倍。在该例子中,所述参数仍应被理解为指示有多少个被请求的高质量瓦片帧未被及时接收到,即使该参数受未被请求的、因此未被及时接收到的高质量瓦片帧的影响。在瓦片式流传输的背景下,公平地说,存在于被渲染的视口中的高质量瓦片帧的数量的减少通常是由更多的被请求的高质量瓦片帧未被及时接收到而引起的。
在例子中,所述参数指示所述空间区域的大小和所述进一步的空间区域的大小之间的比率。这样的参数的值对于视口5A、5B、5C中的每个,将例如是4/76。
在例子中,所述参数指示所述空间区域的大小和被渲染的视口的大小之间的比率。这样的参数的值对于视口5A、5B、5C中的每个,将例如是4/80。
在例子中,所述参数指示所述进一步的空间区域的大小和被渲染的视口的大小之间的比率。这样的参数的值对于视口5A,将例如是76/80,对于视口5B和5C中的每个,将例如是70/80。在该例子中,所述参数仍应被理解为指示有多少个被请求的高质量瓦片帧未被及时接收到,即使该参数受未被请求的、因此未被及时接收到的高质量瓦片帧的影响。在瓦片式流传输的背景下,公平地说,例如,所述进一步的空间区域的大小和被渲染的视口的大小之间的比率的减小通常是由更多的被请求的高质量瓦片帧未被及时接收到而引起的。
在例子中,所述参数指示被渲染的视口包含多少个像素。在该例子中,所述参数仍应被理解为指示有多少个被请求的高质量瓦片帧未被及时接收到,即使该参数受未被请求的、因此未被及时接收到的高质量瓦片帧的影响。在瓦片式流传输的背景下,公平地说,被渲染的视口中的像素数量的减少通常是由更多的被请求的高质量瓦片帧未被及时接收到而引起的。
基于被渲染的视口确定所述参数的重要优点是,它可以被容易地测量,并且可以逐渐地指示变糟的网络状况。网络状况变得越糟,越多的被请求地高质量瓦片帧将不被及时接收到。
优选地,对于每个被渲染的视口,或者至少对于多个被渲染的视口,确定所述参数的值。这样,多个参数值可以与相应视口相关联地获得。这使得例如可以确定多个值的平均值,例如,移动平均值,即,k个最近确定的值的平均值(k是任何合适地选择的整数)。基于这样的确定的平均值,客户端设备可以至少对于特定时间段,制止请求高质量瓦片流。另外,这使得可以监视参数值随着时间的过去的变化率。基于所述参数的值的变化率,客户端设备可以制止请求高质量瓦片流。
图6A-6C是例示说明用于请求瓦片流的方法的实施例的流程图。
在图6A中,在步骤30中,从高质量瓦片流的第一集合选择高质量瓦片流。该步骤可以涉及客户端设备1(特别是其数据处理系统100)预测对于位于未来的特定时间(t_2)的视口。因此,预测沉浸式视频的哪个空间部分在特定时间t_2将在视口中,因此预期将在特定时间t_2被渲染。可以在先前渲染的视口上执行该预测。例如可能的是,视口具有跨视频的特定移动。然后,可以基于该移动来确定特定时间t_2时的视口。在另一个例子中,视口可能一直保持稳定,即,视频的同一空间部分在特定时间保持在视口中。基于此,从沉浸式视频的同一空间部分预期在特定(未来)时间t_2将在视口中的意义上来说,特定时间t_2时的视口可以被预测是相同的。
选择的高质量瓦片流包括用于在特定时间t_2渲染沉浸式视频的空间区域的与所述特定时间t_2相关联的相应瓦片帧。优选地,空间区域包括所述特定时间时的预期视口。
在步骤32中,客户端设备1(特别是其数据处理系统100)例如通过使用图1中提到的收发器来将对于选择的高质量瓦片流的请求发送给服务器系统2。可以在一个或多个消息中和/或在一个或多个数据分组中发送该请求。
作为响应,在步骤34中,服务器系统发送,客户端设备1及时接收被请求的与特定时间t_2相关联的瓦片帧用于在所述特定时间t_2在客户端设备1的显示器上适当地渲染它们。
在所描绘的实施例中,将在t_2渲染的瓦片帧最晚应在t_1接收到。瓦片帧通常应例如在它们可以被渲染之前被解码,这需要花费一些时间。可以使用本领域中已知的方法来测量解码和渲染瓦片帧所花费的时间。
可选地,执行步骤36,步骤36包括确定被请求的高质量瓦片帧中的一个或多个未被及时接收到以在t_2在显示器上适当地渲染它们。该步骤可选地包括对有多少个被请求的高质量瓦片帧在t_1尚未被接收到进行计数。基于一个或多个高质量瓦片帧尚未被接收到的确定,可以确定所述参数的值。在例子中,所述参数指示有多少个被请求的瓦片帧在t_1尚未被接收到。
在该例子中,在步骤38中,被请求的高质量瓦片帧仍被客户端设备1接收。然而,太晚以至于不能在t_2在显示器上适当地渲染它。
在步骤40(在t_2执行)中,客户端设备使用被请求的并且被接收到的高质量瓦片帧中的至少一个来渲染适当的视口。
可选地,在步骤42中,在视口已经被渲染之后,确定指示被请求的瓦片帧中有多少个未被及时接收到的参数的值。然后,可以基于在t_2渲染的实际上被渲染的视口来确定所述值。已经参照图5说明了该值可以如何被确定。
然后,基于所述参数的确定的值(不管它是在步骤36中确定的,还是在步骤42中确定的),客户端设备至少在特定时间段T内,制止向服务器系统请求出自高质量瓦片流的第一集合的高质量瓦片流。可以基于由可选步骤44指示的确定的值和阈值之间的可选比较来执行该制止。如果确定的参数值指示太多被请求的瓦片帧未被及时接收到,则这可以使客户端设备制止被请求的高质量瓦片帧。在这样的情况下,网络状况可能太差以至于不能确保高质量瓦片帧被及时递送到客户端设备1。
因此,在步骤46中,客户端设备不再请求高质量瓦片流。在该实施例中,相反,低质量瓦片流被请求,例如来自图2中描绘的集合22和/或集合24。步骤48描绘来自这些被请求的流的瓦片帧被及时接收到以使得它们可以在步骤50中被适当地渲染。
同样地,步骤52指示低质量瓦片流被请求,步骤54描绘来自这些被请求的流的瓦片帧被及时接收到以使得它们可以在步骤56中被适当地渲染。
应意识到对瓦片流的每个请求通常是对于来自该瓦片流的多个瓦片帧的请求。为了例示说明,请求32通常是对于用于渲染多个视口(不仅仅是在t_2渲染的视口)的视频数据的请求。可以对每个被渲染的视口确定所述参数的值。因此,在步骤44和步骤46之间,可能存在附加的视口渲染,可以对每个被渲染的视口,或者至少对于这些被渲染的视口中的多于一个的视口,确定所述参数的值。此外,可以将每个确定的值与如本文中描述的阈值进行比较。
可以基于所述参数的多个确定的值和/或基于确定的值和阈值之间的多次比较来执行制止请求高质量瓦片帧的步骤。
图6B例示说明其中在步骤39中测量视口跨沉浸式视频的移动的实施例。(其他步骤已经参照图6A进行了说明。)可以通过测量穿戴作为头戴式显示器的客户端设备1的用户的头部移动来执行测量视口的移动。在这样的情况下,在时间段T内制止请求高质量瓦片帧的步骤还基于测量的头部移动。如果视口正在显著地跨越视口移动,尤其是以出乎意料的方式,则可能的是客户端设备尚未请求正确的瓦片流以便在特定时间渲染整个视口。在这样的情况下,被渲染的视口可以包括其中高质量瓦片帧缺失的显著的空间区域。然而,在这种情况下这样的差视口在较小程度上是由差的网络状况引起,在更大程度上是由视口的显著移动引起的。在这样的情况下,可能不适合制止请求高质量瓦片流。
可选地,在步骤39中,确定阈值,在可选步骤44中,将基于被渲染的视口确定的所述参数的确定的值与阈值进行比较。原则上,视口跨沉浸式视频的移动越显著,就决定是否切换到请求更低质量的瓦片流而言,越多的缺失的高质量瓦片帧是可接受的。
图6C例示说明客户端设备1可以如何切换到再次请求更高质量的瓦片流。图6C示出请求更低质量的瓦片流的步骤46和及时(即,在t_3之前)接收这些更低质量的瓦片流以在显示器上适当地渲染它们(t_4时的步骤50)的步骤48。可以再次确定所述参数的值,只是现在是针对被请求的更低质量的瓦片流。再次,可以在步骤49中确定该值,在该例子中,步骤49包括确定所有被请求的更低质量的瓦片流(例如来自图2的集合22和/或集合24)已经被及时接收到。另外或可替代地,可以在步骤58中基于在步骤50中渲染的视口来确定所述值。
可以将确定的值与如可选步骤60指示的阈值进行比较。
此外,可选步骤62包括确定指示网络状况的其他参数(诸如带宽、往返时间和/或缓冲器水平)的值。优选地,再次,重复确定所述参数的值。
基于确定的一个或多个值,特别是基于所述一个或多个值和阈值之间的比较,和/或基于在步骤62中确定的参数值,客户端设备可以确定是否再次切换回请求高质量瓦片流。步骤64例示说明客户端设备再次请求高质量瓦片流。
在另一个实施例(未示出)中,时间段T具有特定预定长度,并且在该时间段之后,客户端设备1再次开始请求高质量瓦片流。然后,可以再次执行图6A的处理。在该实施例中,仅测试网络状况是否再次好得足以及时将高质量瓦片流递送给客户端设备。
图7描绘例示说明根据实施例的数据处理系统的框图。
如图7所示,数据处理系统100可以包括通过系统总线106耦接到存储器元件104的至少一个处理器102。照此,数据处理系统可以将程序代码存储在存储器元件104内。此外,处理器102可以执行经由系统总线106从存储器元件104存取的程序代码。在一方面,数据处理系统可以被实现为适合于存储和/或执行程序代码的计算机。然而,应意识到数据处理系统100可以以包括能够执行本说明书内描述的功能的处理器和存储器的任何系统的形式实现。
存储器元件104可以包括一个或多个物理存储器器件,诸如,举例来说,本地存储器108和一个或多个大容量存储器件110。本地存储器可以是指一般在程序代码的实际执行期间被使用的随机存取存储器或其他非持久性存储器器件。大容量存储器件可以被实现为硬盘驱动器或其他持久性数据存储器件。处理系统100还可以包括一个或多个高速缓存存储器(未示出),所述高速缓存存储器提供至少一些程序代码的暂时存储以便减少程序代码在执行期间必须被从大容量存储器件110检索的次数。
被描绘为输入设备112和输出设备114的输入/输出(I/O)设备可选地可以耦合到数据处理系统。输入设备的例子可以包括,但不限于,键盘、指点设备(诸如鼠标)、触敏显示器等。输出设备的例子可以包括,但不限于,监视器或显示器、扬声器等。输入设备和/或输出设备可以要么直接地、要么通过介于中间的I/O控制器耦接到数据处理系统。
在实施例中,输入设备和输出设备可以被实现为组合式输入/输出设备(在图7中用围绕输入设备112和输出设备114的虚线例示说明)。这样的组合式设备的例子是触敏显示器,有时也被称为“触屏显示器”,或者被简称为“触屏”。在这样的实施例中,可以通过物理对象(诸如,例如,铁笔或用户的手指)在触屏显示器上或附近的移动来提供对于设备的输入。
网络适配器116也可以耦合到数据处理系统以使得它能够变为通过介于中间的私用网络或公共网络耦合到其他系统、计算机系统、远程网络设备和/或远程存储设备。网络适配器可以包括数据接收器和数据发送器,数据接收器用于接收所述系统、设备和/或网络发送到数据处理系统100的数据,数据发送器用于将数据从数据处理系统100发送到所述系统、设备和/或网络。调制解调器、电缆调制解调器和以太网卡是可以与数据处理系统100一起使用的不同类型的网络适配器的例子。
如图7中所描绘的,存储器元件104可以存储应用118。在各种实施例中,应用118可以被存储在本地存储器108、一个或多个大容量存储器件110中,或者与本地存储器和大容量存储器件分开。应意识到数据处理系统100可以进一步执行可以促进应用118的执行的操作系统(在图7中未示出)。以可执行程序代码的形式实现的应用118可以被数据处理系统100(例如,被处理器102)执行。响应于执行所述应用,数据处理系统100可以被配置为执行本文中描述的一个或多个操作或方法步骤。
在本发明的一方面,数据处理系统100可以表示如本文中描述的客户端设备。
在另一方面,数据处理系统100可以表示客户端数据处理系统。在这种情况下,应用118可以表示当被执行时、将数据处理系统100配置为执行本文中参照“客户端”描述的各种功能的客户端应用。客户端的例子可以包括,但不限于,个人计算机、便携式计算机、移动电话等。
在又一方面,数据处理系统100可以表示服务器。例如,数据处理系统可以表示(HTTP)服务器,例如,出自服务器系统2的服务器,在这种情况下,应用118在被执行时,可以将数据处理系统配置为执行(HTTP)服务器操作。
本发明的各种实施例可以被实现为用于与计算机系统一起使用的程序产品,其中所述程序产品的程序定义实施例(包括本文中描述的方法)的功能。在一个实施例中,所述程序可以包含在各种非暂时性计算机可读存储介质上,其中,如本文中所使用的,表达“非暂时性计算机可读存储介质”包括所有计算机可读介质,唯一的例外是暂时性的传播信号。在另一个实施例中,所述程序可以包含在各种暂时性计算机可读存储介质上。说明性计算机可读存储介质包括,但不限于:(i)其上永久地存储信息的不可写存储介质(例如,计算机内的只读存储器器件,诸如CD-ROM驱动器可读的CD-ROM、ROM芯片或任何类型的固态非易失性半导体存储器);以及(ii)其上存储可改变的信息的可写存储介质(例如,闪存、盘驱动器或硬盘驱动器内的软盘、或任何类型的固态随机存取半导体存储器)。所述计算机程序可以在本文中描述的处理器102上运行。
本文中使用的术语仅仅是出于描述特定实施例的目的,而非意图是本发明的限制。如本文中所使用的,单数形式“一个”、“一种”和“该”意图也包括复数形式,除非上下文另有明确指示。将进一步理解的是,术语“包括”和/或“包含”在被用于本说明书中时,指定陈述的特征、整数、步骤、操作、元件和/或组件的存在,但是不排除一个或多个其他的特征、整数、步骤、操作、元件、组件和/或它们的群组的存在或添加。
权利要求中的所有的手段或步骤加功能元素的对应的结构、材料、动作和等同物意图包括用于与如具体地要求保护的其他要求保护的元素组合执行所述功能的任何结构、材料或动作。本发明的实施例的描述是出于例示说明的目的而呈现的,但不意图是穷举的或者限于所公开的形式的实现。许多修改和变化对于本领域的普通技术人员将是显而易见的。选择并且描述实施例是为了最佳地说明本发明的原理和一些实际应用、并且使得本领域的其他的普通技术人员能够针对具有适合于设想的特定用途的各种修改的各种实施例来理解本发明。

Claims (15)

1.一种用于请求瓦片流以在客户端设备的显示器上渲染沉浸式视频的空间部分的计算机实现的方法,其中
服务器系统存储多个瓦片流,每个瓦片流表示所述沉浸式视频的空间部分,每个瓦片流包括与所述视频中的相应时间相关联的瓦片帧的序列,其中
所述多个瓦片流包括具有相对高质量的高质量瓦片流的第一集合,并且包括具有相对低质量的一个或多个低质量瓦片流的第二集合和/或具有相对中间质量的一个或多个中间质量瓦片流的第三集合,其中所述高质量瓦片流的第一集合表示所述沉浸式视频的第一版本,所述一个或多个低质量瓦片流的第二集合表示所述沉浸式视频的第二版本,和/或所述中间质量瓦片流的第三集合表示所述沉浸式视频的第三版本,所述方法包括:
(i)从所述高质量瓦片流的第一集合选择高质量瓦片流,选择的高质量瓦片流包括与特定时间相关联的相应瓦片帧,用于在所述特定时间渲染所述沉浸式视频的空间区域,优选地,所述空间区域在所述特定时间包括预期的视口,并且
(ii)将对于选择的高质量瓦片流的请求发送给所述服务器系统,并且
(iii)及时接收出自被请求的高质量瓦片流的与所述特定时间相关联的所述瓦片帧中的一个或多个以在所述特定时间在所述显示器上适当地渲染它们,并且
(iv)未及时接收出自被请求的高质量瓦片流的与所述特定时间相关联的所述瓦片帧中的一个或多个以在所述特定时间在所述显示器上适当地渲染它们,
(v)确定参数的值,所述参数指示出自被请求的高质量瓦片流的与所述特定时间相关联的所述一个或多个瓦片帧中有多少个未被及时接收以在所述特定时间在所述显示器上适当地渲染它们,
(vi)基于所述参数的确定的值,至少对于特定时间段,制止向所述服务器系统请求出自所述高质量瓦片流的第一集合的高质量瓦片流,并且
(vii)在所述时间段期间,向所述服务器系统请求来自一个或多个低质量瓦片流的第二集合的一个或多个低质量瓦片流,和/或向所述服务器系统请求来自一个或多个中间质量瓦片流的第三集合的一个或多个中间质量瓦片流。
2.根据权利要求1所述的方法,包括:
基于所述参数的确定的值,在所述时间段期间,向所述服务器系统请求来自一个或多个中间质量瓦片流的第三集合的一个或多个中间质量瓦片流,和/或
基于所述参数的确定的值,在所述时间段期间,向所述服务器系统请求来自一个或多个低质量瓦片流的第二集合的一个或多个低质量瓦片流。
3.根据权利要求1或2所述的方法,进一步包括:
在所述客户端设备的显示器上在所述特定时间渲染视口,被渲染的视口包括所述沉浸式视频的分别由被及时接收到的瓦片帧中的一个或多个表示的第一一个或多个空间部分,并且包括所述沉浸式视频的分别由未被及时接收到的瓦片帧中的一个或多个表示的第二一个或多个空间部分,因此,被渲染的视口在第一一个或多个空间部分具有来自高质量瓦片流的一个或多个被渲染的瓦片帧,并且被渲染的视口在所述视口中的第二一个或多个空间部分缺失来自高质量瓦片流的一个或多个瓦片帧,所述第二一个或多个空间部分覆盖被渲染的视口中的空间区域。
4.根据权利要求3所述的方法,进一步包括基于被渲染的视口来确定参数的所述值。
5.根据权利要求4所述的方法,其中所述参数指示被所述第二一个或多个空间部分覆盖的所述空间区域的大小。
6.根据前述权利要求中任一项所述的方法,其中所述参数指示
-被所述第二一个或多个空间部分覆盖的所述空间区域的大小,和/或
-有多少个来自高质量瓦片流的瓦片帧在被渲染的视口中缺失,和/或
-被渲染的视口中被所述第一一个或多个空间部分覆盖的进一步的空间区域的大小,和/或
-有多少个来自高质量瓦片流的第一集合的瓦片帧存在于被渲染的视口中,和/或
-所述空间区域的大小和所述进一步的空间区域的大小之间的比率,和/或
-所述空间区域的大小和被渲染的视口的大小之间的比率,和/或
-所述进一步的空间区域的大小和被渲染的视口的大小之间的比率,和/或
-被渲染的视口包含多少个像素,和/或
-被渲染的视口的分辨率,和/
-所述进一步的空间区域的大小和所述视口中被来自低质量流的瓦片帧覆盖的空间区域的大小之间的比率。
7.根据前述权利要求中任一项所述的方法,其中确定所述参数的值包括:
确定出自被请求的高质量瓦片流的与所述特定时间相关联的所述瓦片帧中的一个或多个未被及时接收以在所述特定时间在所述显示器上适当地渲染它们。
8.根据权利要求3-7中任一项所述的方法,包括:
将对于来自一个或多个低质量瓦片流的第二集合的一个或多个低质量瓦片帧的请求发送给所述服务器系统,被请求的一个或多个低质量瓦片流包括与所述特定时间相关联的相应一个或多个瓦片帧,用于在所述特定时间渲染沉浸式视频的至少一部分,优选地整个沉浸式视频,并且
接收出自被请求的低质量瓦片流的与所述特定时间相关联的瓦片帧中的一个或多个,其中
所述视口被渲染为使得被渲染的视口在所述视口中对于其来说出自高质量瓦片流的瓦片帧不可用的每个空间部分处,包括出自低质量瓦片流的与所述特定时间相关联的接收到的瓦片帧的至少一部分。
9.根据前述权利要求中任一项所述的方法,包括:
通过重复执行步骤(i)-(v)的序列来重复确定所述参数的值,尽管是针对视频中的不同相应时间,并且
基于所述参数的确定的值,至少对于特定时间段,制止向所述服务器系统请求出自高质量瓦片流的第一集合的高质量瓦片流。
10.根据权利要求4和9所述的方法,其中重复确定所述参数的值包括:在相应时间重复渲染视口,并且对于每个被渲染的视口,基于所讨论的被渲染的视口来确定所述参数的相关联的值。
11.根据前述权利要求中任一项所述的方法,其中基于所述参数的确定的值,至少对于特定时间段,制止向服务器系统请求出自高质量瓦片流的第一集合的高质量瓦片流的步骤包括:
将所述参数的确定的值与阈值进行比较,并且基于该比较,至少对于特定时间段,制止向所述服务器系统请求出自高质量瓦片流的第一集合的高质量瓦片流。
12.根据前述权利要求中任一项所述的方法,进一步包括:
测量所述视口跨所述沉浸式视频的移动,其中
制止向服务器系统请求高质量瓦片流的步骤还基于所述视口的测量的移动来执行。
13.一种数据处理系统,所述数据处理系统被配置为执行根据前述权利要求中任一项所述的方法。
14.一种计算机程序,所述计算机程序包括当所述程序被计算机执行时、使所述计算机实现根据前述权利要求1-12中任一项所述的方法的指令。
15.一种非暂时性计算机可读存储介质,具有存储于其上的根据权利要求14所述的计算机程序。
CN202280053514.6A 2021-06-24 2022-06-22 用于请求瓦片流的方法和系统 Pending CN117795969A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP21181583.2A EP4109917A1 (en) 2021-06-24 2021-06-24 Method and system for requesting tile streams
EP21181583.2 2021-06-24
PCT/EP2022/067045 WO2022268893A1 (en) 2021-06-24 2022-06-22 Method and system for requesting tile streams

Publications (1)

Publication Number Publication Date
CN117795969A true CN117795969A (zh) 2024-03-29

Family

ID=76601168

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280053514.6A Pending CN117795969A (zh) 2021-06-24 2022-06-22 用于请求瓦片流的方法和系统

Country Status (3)

Country Link
EP (1) EP4109917A1 (zh)
CN (1) CN117795969A (zh)
WO (1) WO2022268893A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3162075B1 (en) 2014-06-27 2020-04-08 Koninklijke KPN N.V. Hevc-tiled video streaming
EP3863296B1 (en) 2017-09-11 2023-11-22 Tiledmedia B.V. Streaming frames of spatial elements to a client device
EP3503559A1 (en) * 2017-12-20 2019-06-26 Thomson Licensing Method and terminal for managing a streaming session of an immersive video spatially tiled with a set of tiles and stored on a network equipment
EP3818716A4 (en) * 2018-07-02 2022-06-01 Nokia Technologies Oy DEVICE, METHOD AND COMPUTER PROGRAM FOR VIDEO ENCODING AND DECODING

Also Published As

Publication number Publication date
WO2022268893A1 (en) 2022-12-29
EP4109917A1 (en) 2022-12-28

Similar Documents

Publication Publication Date Title
CN111052754B (zh) 将空间元素的帧流传输到客户端装置
KR102280134B1 (ko) 비디오 재생 방법, 장치 및 시스템
US10231014B2 (en) Virtual reality (VR) video distribution using edge resources
TWI664857B (zh) 用於串流化之裝置、伺服器、非暫態數位儲存媒體、信號及方法、與解碼器
US10432690B1 (en) Manifest partitioning
US10659815B2 (en) Method of dynamic adaptive streaming for 360-degree videos
CN113141514B (zh) 媒体流传输方法、系统、装置、设备及存储介质
KR101920646B1 (ko) 시각인식 기반의 프로그래시브 비디오 스트리밍 장치 및 방법
KR20150065069A (ko) 디스플레이 장치, 디스플레이 장치의 영상 표시 방법 및 컴퓨터 판독가능 기록매체
CN110582012B (zh) 视频切换方法、视频处理方法、装置及存储介质
US10104143B1 (en) Manifest segmentation
CN112219403B (zh) 沉浸式媒体的渲染视角度量
KR20150131175A (ko) Http를 통한 동적 적응형 스트리밍에서 미디어 세그먼트들의 손실 존재시의 회복력
US10116719B1 (en) Customized dash manifest
US20190253470A1 (en) Data buffering method, network device, and storage medium
AU2018250308B2 (en) Video compression using down-sampling patterns in two phases
JP2022545623A (ja) ビデオプレイバックにおける予測ベースドロップフレームハンドリング論理
US9742749B1 (en) Live stream encryption
CN113141523A (zh) 资源传输方法、装置、终端及存储介质
US10708667B1 (en) Combining fragments with different encodings
US11463651B2 (en) Video frame-based media stream bandwidth reduction
US10356159B1 (en) Enabling playback and request of partial media fragments
KR101548501B1 (ko) 청크 기반의 끊김 없는 스트림 송수신 장치 및 그 방법
CN117795969A (zh) 用于请求瓦片流的方法和系统
CN108574881B (zh) 一种投影类型推荐方法、服务器及客户端

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication