CN111567052B - 用于将vr 360视频下发给远程终端用户的可缩放fov+ - Google Patents
用于将vr 360视频下发给远程终端用户的可缩放fov+ Download PDFInfo
- Publication number
- CN111567052B CN111567052B CN201880082956.7A CN201880082956A CN111567052B CN 111567052 B CN111567052 B CN 111567052B CN 201880082956 A CN201880082956 A CN 201880082956A CN 111567052 B CN111567052 B CN 111567052B
- Authority
- CN
- China
- Prior art keywords
- streams
- viewport
- efov
- evp
- client device
- 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.)
- Active
Links
- 238000009826 distribution Methods 0.000 claims abstract description 119
- 238000012545 processing Methods 0.000 claims abstract description 52
- 238000000034 method Methods 0.000 claims description 65
- 238000004891 communication Methods 0.000 claims description 11
- 239000007787 solid Substances 0.000 claims description 3
- 230000008569 process Effects 0.000 description 34
- 238000009877 rendering Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 22
- 230000005540 biological transmission Effects 0.000 description 19
- 230000008859 change Effects 0.000 description 19
- 230000002829 reductive effect Effects 0.000 description 9
- 230000011218 segmentation Effects 0.000 description 9
- 238000013507 mapping Methods 0.000 description 7
- 238000013459 approach Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000006073 displacement reaction Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 230000009466 transformation Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 230000001953 sensory effect Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012804 iterative process Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000013515 script Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 210000003128 head Anatomy 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000004043 responsiveness Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 206010028813 Nausea Diseases 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000002716 delivery method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 201000003152 motion sickness Diseases 0.000 description 1
- 230000008693 nausea Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/611—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04815—Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/111—Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
- H04N13/117—Transformation 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/275—Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals
- H04N13/279—Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals the virtual viewpoint locations being selected by the viewers or determined by tracking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/23439—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2402—Monitoring of the downstream path of the transmission network, e.g. bandwidth available
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/426—Internal components of the client ; Characteristics thereof
- H04N21/42653—Internal components of the client ; Characteristics thereof for processing graphics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
- H04N21/6587—Control parameters, e.g. trick play commands, viewpoint selection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/816—Monomedia components thereof involving special video data, e.g 3D video
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/698—Control of cameras or camera modules for achieving an enlarged field of view, e.g. panoramic image capture
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/222—Studio circuitry; Studio devices; Studio equipment
- H04N5/262—Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
- H04N5/2628—Alteration of picture size, shape, position or orientation, e.g. zooming, rotation, rolling, perspective, translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/08—Bandwidth reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/12—Bounding box
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/22—Cropping
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种用于将虚拟现实(virtual reality,简称VR)数据的选择的视口流下发给多个客户端设备中的每个客户端设备的分发设备,包括处理单元,用于:接收VR视频文件的多个扩展视口流,其中,每个扩展视口流包括扩展视场(extended field of view,简称EFOV)帧序列,所述扩展视场帧是为构成所述VR视频文件中定义的球体的多个重叠段中各自的重叠段创建的;在多次迭代中的每次迭代中,通过为所述客户端设备中的每个客户端设备执行以下操作,将所述多个扩展视口流中选择的一个扩展视口流下发给所述多个客户端设备中的每个客户端设备:(1)接收各自的所述客户端设备的当前方位数据;(2)根据所述当前方位数据,从所述多个扩展视口流中选择一个;(3)将所述选择的扩展视口流传输给各自的所述客户端设备。
Description
相关申请案交叉申请
本申请要求于2017年12月22日提交申请号为PCT/EP2017/084477、发明名称为“为远程终端用户采用VR 360视频”的国际专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域和背景技术
本发明的一些实施例涉及将虚拟现实(Virtual Reality,简称VR)360视频内容流式传输到客户端设备,更具体地但不限于将低时延、高分辨率和高吞吐量VR 360视频内容流式传输到大量客户端设备。
VR 360视频内容,即,360度视频、沉浸式视频或球形视频的消费不断增加。这可能是由于传统设备能力方面的快速进步,例如,台式计算机、膝上型计算机、智能手机和/或平板电脑等具有支持2维(2Dimensions,简称2D)呈现的显示器(屏幕)等,即,一幅图像指向两眼的一种单眼呈现。然而,所述VR 360视频内容消费增加的主要驱动力可以是头戴式显示器(Head Mounted Display,简称HMD)、立体护目镜和/或支持3D(3Dimensions,简称 3D)呈现的设备等VR 360客户端设备的可用性提高和成本降低,3D呈现即两个不同的图像分别指向每只眼睛以获得3D效果的一种立体呈现。此外,对更佳用户体验的持续需求,需要高分辨率图像大小(例如,8K、16K)、高帧率(例如,60fps、90fps)和低运动到光子(Motion toPhoton,简称MTP)时延(例如,低于20毫秒)。
因此,亟需一种线流式传输此类VR 360视频内容的方案,因为对于从游戏应用、培训和模拟应用到救生医疗应用和/或防御应用等多种应用,此类流式传输方案的市场潜力实际上是无穷无尽的。
发明内容
本发明的第一方面提供了一种用于生成虚拟现实(virtual reality,简称VR)数据的多个扩展视口(extended viewport,简称EVP)流,以下发给多个客户端设备的编码装置,包括处理单元,用于:
-将投影为等距柱状投影(equirectangular projection,简称ERP)格式的VR视频文件中定义的球体分割成多个重叠段;
-在多次迭代中的每次迭代中,通过执行以下操作为所述VR视频文件创建多个EVP流:
■旋转所述球体的多个重叠段中的每个重叠段;
■从所述球体的所述多个旋转重叠段中的每个旋转重叠段裁剪各自的扩展视场(extended field of view,简称EFOV)帧;
■指示网络将所述多个旋转重叠段中的每个旋转重叠段各自的EFOV帧传输给一个或多个分发设备。
本发明的第二方面,提供了一种用于生成VR数据的多个扩展视口(extendedviewport,简称EVP)流,以下发给多个客户端设备的方法,包括:操作编码装置中的处理单元以执行以下操作:
-将投影为等距柱状投影(equirectangular projection,简称ERP)格式的VR视频文件中定义的球体分割成多个重叠段;
-在多次迭代中的每次迭代中,通过执行以下操作为所述VR视频文件创建多个EVP流:
■旋转所述球体的所述多个重叠段中的每个重叠段;
■从所述球体的所述多个旋转重叠段中的每个旋转重叠段裁剪各自的扩展视场(extended field of view,简称EFOV)帧;
■指示网络将所述多个旋转重叠段中的每个旋转重叠段各自的EFOV帧传输给一个或多个分发设备。
所述多个EVP流对应于VR 360视频文件定义的球体的重叠段和所述EVP流的视口,因此包含所述VR 360视频文件的所有视口。所述EVP流足以为消费所述VR 360视频文件的客户端设备的用户选择的任一FOV提供服务,因此,可为大量客户端设备提供服务。此外,包含整个球体可需要有限(有限)且相对较少的EVP流。生成有限且相对较少的EVP流可极大减少编码装置所需的计算资源,从而使得高吞吐量VR 360视频内容下发切实可行,更便宜,因此更易于在多个内容应用、平台和/或服务中使用。
本发明的第三方面,提供了一种用于将虚拟现实(virtual reality,简称VR)数据的多个视口中选择的一个视口下发给多个客户端设备中的每个客户端设备的分发设备,包括处理单元,用于:
-通过网络接收VR视频文件的多个EVP流,其中,所述多个EVP流中的每个EVP 流包括扩展视场(extended field of view,简称EFOV)帧序列,所述扩展视场帧是为构成所述VR视频文件中定义的球体的多个重叠段中各自的重叠段创建的;
-在多次迭代中的每次迭代中,通过为所述多个客户端设备中的每个客户端设备执行以下操作,将所述多个EVP流中选择的一个EVP流下发给通过一个或多个其它网络连接到所述分发设备的所述多个客户端设备中的每个客户端设备:
■接收各自的所述客户端设备的当前方位数据;
■根据所述当前方位数据,从所述多个EVP流中选择一个;
■将所述选择的EVP流传输给各自的所述客户端设备。
本发明的第四方面,提供了一种用于将虚拟现实(virtual reality,简称VR)数据的多个扩展视口(extended viewport,简称EVP)流中选择的一个扩展视口流下发给多个客户端设备中的每个客户端设备的方法,包括:使用分发设备中的处理单元以:
-通过网络接收VR视频文件的多个EVP流,其中,所述多个EVP流中的每个EVP 流包括扩展视场(extended field of view,简称EFOV)帧序列,所述扩展视场帧是为构成所述VR视频文件中定义的球体的多个重叠段中各自的重叠段创建的;
-在多次迭代中的每次迭代中,通过为所述多个客户端设备中的每个客户端设备执行以下操作,将所述多个EVP流中选择的一个EVP流下发给通过一个或多个其它网络连接到所述分发设备的所述多个客户端设备中的每个客户端设备:
■接收各自的所述客户端设备的当前方位数据;
■根据所述当前方位数据,从所述多个EVP流中选择一个;
·将所述选择的EVP流传输给各自的所述客户端设备。
通过在编码装置和所述多个客户端设备之间部署分发设备,将所述编码装置和所述客户端设备之间的链路解耦,以支持VR 360视频文件对海量客户端设备的服务。所述分发设备作为交换机,接收所述编码装置创建的所有EVP流以包含所述VR 360视频文件的任一FOV(任一视口),并根据从每个客户端设备接收的指示所述客户端设备当前FOV的方位数据,将最合适的EVP流下发给所述多个客户端设备中的每个客户端设备。切换操作可以是需要非常少的计算资源的简单任务,从而极大降低所述分发设备的成本。此外,一个或多个分发设备可以部署在为客户端设备服务的网络的边缘,因此可以支持与客户设备的低时延传输链路,这可以大大提高MTP。因此使用客户端设备消费所述VR 360视频内容的用户可以体验显著提高的体验质量(Quality of Experience,简称QoE)。
在所述第一和/或第二方面的另一种实现方式中,所述处理单元根据所述EFOV帧的面积,将所述球体分割成所述多个重叠段,其中,所述EFOV帧的面积是根据用于呈现所述多个EVP 流中的一个EVP流的显示器的最大角速度计算的。根据所述客户端设备(具体为所述客户端设备的显示器)的最大角速度调整EFOV面积大小,可以使得所述客户端设备本地使用的足够多的额外呈现区域能够有效补偿网络时延。最大FOV变化可能不超过所述最大角速度。因此,即使对于最大FOV变化,通过提供调整后的额外区域,所述客户端设备可以从EFOV生成FOV帧。
在所述第一和/或第二方面的另一种实现方式中,所述处理单元还用于:根据所述EFOV 帧的面积,将所述球体分割成所述多个重叠段,其中,所述EFOV帧的面积是根据所述装置与一个或多个所述分发设备之间通信的估计时延值计算的;所述处理单元根据包括来自一个或多个所述分发设备的往返时延(Round Trip delay Time,简称RTT)数据的体验质量(Quality of Experience,简称QoE)消息中包含的时间戳计算所述估计时延值。由于所述EFOV的额外区域用于所述客户端设备补偿网络时延,因此,根据所述网络时延调整所述EFOV大小以包含所述额外呈现区域可以允许对估计时延进行有效补偿。
在所述第一和/或第二方面的另一种实现方式中,所述处理单元用于按照多种投影格式中的一种对所述EFOV帧进行编码,其中,所述多种投影格式包括以下一个或多个:ERP、直线投影、立方体图投影(cubemap projection,简称CMP)、等面积投影(equal-areaprojection,简称EAP)、八面体投影(octahedron projection,简称OHP)以及柏拉图固体投影(Platonic Solid Projection,简称PSP)。生成所述EVP流以支持广泛的行业标准投影格式,可以使得编码设备和VR 360视频分发架构能够简单、容易和具有成本效益地适应多个应用、服务和/或平台。
在所述第一和/或第二方面的另一种实现方式中,所述处理单元在将每个所述EFOV帧添加到所述多个EVP流中的各自的一个EVP流之前,将每个所述EFOV帧从所述等距柱状投影格式转换为直线格式。所述直线格式可以是常用格式,因此支持该格式还可以使编码设备和VR 360视频分发架构简单、容易和具有成本效益地适应多个应用、服务和/或平台。
在所述第一和/或第二方面的另一种实现方式中,所述处理单元还用于通过从所述VR视频文件的图像组(group of pictures,简称GOP)的连续帧开始重复所述多个迭代中的每一个迭代,为所述多个EVP流中的每个EVP流创建多个瞬时解码刷新(instantaneousdecoding refresh,简称IDR)移位视口流。其中,为所述多个EVP流中的每个EVP流创建的所述多个 IDR移位视口流的数量等于所述GOP中的帧的数量,使得所述多个EVP流中的每个EVP流的所述多个IDR移位视口流中的每个IDR移位视口流包括所述GOP中的不同帧位置的IDR 帧。当响应于一个或多个客户端设备的FOV变化,为所述一个或多个客户端设备切换EVP 流时,所述IDR移位EVP流可允许相邻视口(重叠段)对应的EVP流之间的平滑过渡。由于每个EVP流可能是来自一个EVP流的独立IDR(参考)帧,因此可能不会用于另一个EVP 流。因此,在切换客户端设备时,需要使用新下发的EVP流的IDR帧。通过为每个视口(重叠段)提供多个IDR移位EVP流,可以将IDR移位EVP流提供给所述客户端设备,所述IDR 移位EVP流具有在交换机的精确时间点位于所述GOP内的IDR帧。这可以大大减少并潜在地防止由IDR帧间隙、(先前下发的EVP流的)不相关的IDR帧的使用和/或其他原因引起的伪影,从而显著提高用户QoE。
在所述第一和/或第二方面的另一种实现方式中,所述处理单元还用于将所述多个EVP 流中的一个或多个EVP流本地存储到所述编码装置中,直到由一个或多个所述分发设备请求为止。在所述编码装置中本地存储所述EVP流可以应用于下发非实时的VR 360内容,例如,视频点播(Video on Demand,简称VOD)等。所述编码装置可以生成VR 360视频文件的 EVP流并存储在本地。稍后,所述编码装置可以按需下发所存储的EVP流。
在所述第三和/或第四方面的另一种实现方式中,所述多个EVP流中的一个或多个在接收后本地存储在所述分发设备中,直至被下发给一个或多个所述客户端设备。在所述分发设备中本地存储所述EVP流可以应用于下发非实时的VR 360内容,例如,VOD等。所述分发设备可以从所述编码装置中接收VR 360视频文件的EVP流并存储在本地。稍后,所述分发设备可以按需下发所存储的EVP流。
在所述第三和/或第四方面的另一种实现方式中,所述方位数据包括以下一个或多个:各自的所述客户端设备的水平视场(field of view,简称FOV)角度值、垂直FOV角度值、偏航值、滚转值和俯仰值。每个客户端设备的方位数据对于所述分发设备选择最合适的EVP流传输(下发)到所述客户端设备至关重要,因为所述方位数据指示用户选择的当前FOV,因此需要高度准确。
在所述第三和/或第四方面的另一种实现方式中,各自的所述客户端设备的当前方位数据包括时间戳。所述时间戳可以用于测量、计算和/或收集网络时延信息,例如RTT、MTP等。
在所述第三和/或第四方面的另一种实现方式中,各自的所述客户端设备的当前方位数据包括各自的所述EVP流的图像组(group of pictures,简称GOP)中当前呈现的帧的指示,各自的所述EVP流包括由各自的所述客户端设备的显示器当前呈现的EFoV。为了使所述分发设备在EVP流切换(响应于用户的FOV变化)的情况下准确选择最合适的IDR移位EVP流,所述分发设备可能需要识别所述客户端设备(具体为所述客户端设备的显示器)当前呈现的帧的GOP内的位置。
在所述第三和/或第四方面的另一种实现方式中,对于所述多个客户端设备中的每个客户端设备,所述处理单元还用于从为所述多个EVP流中的每个EVP流接收的多个瞬时解码刷新(instantaneous decoding refresh,简称IDR)移位视口流中选择一个,其中,为所述多个 EVP流中的每个EVP流接收的所述多个IDR移位视口流中的每个IDR移位视口流包括各自的所述EVP流在所述GOP中的不同帧位置的IDR帧。所述处理单元在基于从各自的所述客户端设备接收的所述当前方位数据的情况下,根据从各自的所述客户端设备接收的所述当前呈现的帧的指示选择所述选择的IDR移位视口流,所述处理单元确定从当前传输到各自的所述客户端设备的所述多个EVP流的当前EVP流切换到所述多个EVP流的相邻视口流。所述相邻EVP流包括为所述多个重叠段中的重叠段创建的EFOV帧,所述重叠段与所述当前EVP 流中编码的所述多个重叠段中的当前重叠段相邻。
在向客户端设备下发的EVP流之间切换的情况下,在交换机的精确时间点下发IDR帧位于所述GOP内的IDR移位EVP流可以大大减少并潜在地防止由IDR帧间隙、(先前下发的EVP流的)不相关的IDR帧的使用和/或其他原因引起的伪影,从而显著提高用户QoE。
在所述第三和/或第四方面的另一种实现方式中,所述处理单元还用于:根据为所述客户端设备估计的未来方位数据的预测,为所述多个客户端设备中的一个或多个客户端设备选择所述EVP流。预测反映用户选择的FOV的方位数据可以甚至在从所述客户端设备获得更新后的方位数据之前就可以有效、高效地选择下发给所述客户端设备的最合适的EVP流。这可以显著提高用户QoE。
在所述第三和/或第四方面的另一种实现方式中,所述处理单元还用于:根据从各自的所述客户端设备接收的指示所请求的EVP流的请求,为所述多个客户端设备中的一个或多个客户端设备选择所述EVP流。将选择(切换)逻辑移动到所述客户端设备可以进一步简化所述分发设备,这可能需要非常少的计算资源等,从而降低所述分发设备的成本。
除非另有定义,否则本文所用的所有技术和/或科学术语都具有与本发明普通技术人员公知的含义相同的含义。虽然与本文描述的方法和材料类似或相同的方法和材料可以用于本发明实施例的实践或测试,但下文描述了示例性方法和/或材料。若存在冲突,则以包括定义在内的专利说明书为准。另外,材料、方法以及示例都只是用于说明,并非必要限定。
本发明实施例提供的方法和/或系统的实现可以涉及手动、自动或者两者结合的执行或完成所选择的任务。此外,根据本发明的方法和/或系统实施例的实际仪器和设备,可以通过操作系统利用硬件、软件、固件或其组合完成多个选择的任务。
例如,本发明实施例提供的用于执行所选择的任务的硬件可以实现为芯片或电路。对于软件,本发明实施例提供的所选择的任务可以实现为由计算机使用任何合适的操作系统执行的多个软件指令。在本发明的示例性实施例中,本文描述的示例性方法和/或系统实施例提供的一个或者多个任务由数据处理器执行,例如,用于执行多个指令的计算平台。可选地,所述数据处理器包括存储指令和/或数据的易失性存储器、和/或非易失性存储器,例如,用于存储指令和/或数据的磁硬盘和/或可移动介质。可选地,还提供了一种网络连接。可选地,还提供了显示屏和/或用户输入设备,例如,键盘或者鼠标。
附图说明
此处仅作为示例,结合附图描述了本发明的一些实施例。现在具体结合附图,需要强调的是所示的项目作为示例,为了说明性地讨论本发明的实施例。这样,根据附图说明,如何实践本发明实施例对本领域技术人员而言是显而易见的。
在附图中:
图1是本发明的一些实施例提供的用于将VR 360视频内容下发给多个客户端设备以呈现给各自的用户的示例性系统的示意图;
图2是本发明的一些实施例提供的从各自的扩展视场(Extended Field Of View,简称 EFOV)帧生成的示例性VR 360视频帧的示意图;
图3A、图3B和图3C是本发明的一些实施例提供的VR 360视频文件定义的呈现球体的呈现分割示意图;
图4A、图4B和图4C是本发明的一些实施例提供的用于将VR 360视频内容下发给多个客户端设备以呈现给各自的用户的示例性系统元素的示意图;
图5是本发明的一些实施例提供的由编码装置执行的用于从VR 360视频文件创建多个扩展视口(Extended Viewport,简称EVP)流的示例性过程的流程图;
图6是欧拉角坐标系的示意图;
图7示出了本发明的一些实施例提供的为VR 360视频文件定义的球体的多个重叠段中各自的重叠段分别生成的多个捕获的EFOV帧;
图8是本发明的一些实施例提供的为VR 360视频文件定义的球体的多个视口生成的多个瞬时解码刷新(Instantaneous Decoding Refresh,简称IDR)移位EVP流的示意图;
图9是本发明的一些实施例提供的由分发设备执行的用于向多个客户端设备下发EVP流的示例性过程的流程图;
图10是本发明的一些实施例提供的由客户端设备执行的用于接收显示器呈现给用户的 VR 360视频文件的EVP流的示例性过程的流程图;
图11是一种视口投影的示意图;
图12示出了本发明的一些实施例提供的捕获示例性VR 360视频帧、从所述VR 360视频帧生成的示例性各自的EFOV帧以及从所述EFOV帧生成的各自的实际FOV帧。
具体实施方式
本发明的一些实施例涉及将虚拟现实(Virtual Reality,简称VR)360视频内容流式传输到客户端设备,更具体地但不限于将低时延、高分辨率和高吞吐量VR 360视频内容流式传输到大量客户端设备。
需要将VR 360视频内容,例如,VR 360视频文件等从编码装置,例如,服务器、计算节点、计算节点集群、云服务等下发(流式传输)到客户端设备,例如,头戴式显示器(HeadMount Display,简称HMD)、立体护目镜、膝上型计算机、台式计算机、移动设备(例如,智能手机、平板电脑等)等以呈现给用户。
由于所述VR 360视频内容的数据量大,这种VR 360视频内容的下发可能会面临重大挑战。当所述VR 360视频内容是高质量视频(高分辨率,例如,4K、8K、16K),支持高帧率、高速运动、快速场景变化等时,挑战可能进一步增加,从而包含更多数据量。
因此,传输所述VR 360视频内容可能需要高通信资源,具体而言,需要高网络带宽(吞吐量)和/或低时延。此外,用户观看(消费)所述VR 360视频内容可能会频繁地改变用户在所述VR 360视频内容上的视场(Field Of View,简称FOV)。为了为所述用户保持足够高的体验质量(Quality of Experience,简称QoE),所述用户发起的FOV变化与所述VR 360视频内容的呈现的相应调整之间的时延必须非常低。此类时延可以用术语运动到光子(Motion to Photon,简称MTP)时延来表示,该时延表示运动(用于选择FOV)的时间与各自的呈现 (光子)的呈现时间之间的时延。对于支持3D呈现(立体)的客户端设备,例如,HMD、立体护目镜等,所述MTP时延必须非常低,因为高MTP时延可能会导致用户感到恶心、晕动、失去方向感和/或遭受其他不良影响。
此外,处理、编解码和/或生成所述VR 360视频内容可能需要大量的计算资源,例如处理资源、存储资源、通信资源等,这可能主要会对具有少量此类资源的客户端设备造成主要限制。
本发明的一些实施例,提供了将VR 360视频内容下发给数量极大的客户端设备的方法、系统和计算机程序产品,同时保持内容下发的高吞吐量和低时延,尤其是低MTP时延。
基于以下三个主要概念下发(流式传输)高吞吐量VR 360视频内容。
第一个概念是在任何给定时间,用户可能只看到整个VR 360视频呈现的很小一部分(帧),在大多数客户端设备中通常为90度至120度。因此,只有呈现的相关部分(帧)可以下发到所述客户端设备。下发给所述客户端设备的VR 360视频内容帧的片段在下文中可以称为扩展 FOV(EFOV或FOV+)帧,所述扩展FOV帧在使用本领域已知的一个或多个视频编码协议,例如MPEG、H.264、H.265、H.266等编码的扩展视口(Extended Viewport,简称EVP)流中进行编码。仅将所述VR 360视频内容中很小的片段(即,所述EFOV帧)下发给所述客户端设备可以大量减少所需的网络带宽。此外,下发所述EFOV帧可以显著减少所述客户端设备处理接收到的VR 360视频内容所需的计算资源。根据从所述客户端设备接收到的当前方位数据,选择下发给所述客户端设备的VR 360视频内容的片段(EFOV帧)。其中,所述当前方位数据指示所述客户端设备的当前方位,具体为用户选择观看所述VR 360视频内容的当前FOV。
第二个概念是在下发所述VR 360视频内容(EVP流)的编码装置和客户端设备之间分割处理所述VR 360视频内容。网络的服务质量(Quality of Service,简称QoS),即,网络时延可以用往返时延(Round Trip delay Time,简称RTT)来表示,可以显著降低QoE。因此,所述编码装置可以向所述客户端设备提供超出所述用户看到的呈现FOV(FOV帧)的附加(额外)呈现数据。这意味着EFOV帧包括比其各自的FOV帧更大的区域(FOV)。所述客户端设备可以使用所述额外呈现数据,根据所述用户的更新后的FOV调整所述VR 360视频内容呈现,其中,所述更新后的FOV相对于用于选择所述EFOV帧的原始FOV可能已经发生变化。由于所述EFOV帧包括所述额外呈现数据,因此所述客户端设备可以根据所述更新后的 FOV(即,更新后的方位数据)本地生成所述FOV帧。通过本地生成所述FOV帧,所述客户端设备可以根据所述用户选择的更新后的FOV生成FOV帧,因此可以补偿扩展RTT,并且即使在RTT不足时也能保持较高QoE。
根据所述客户端设备的典型最大角速度,即,根据所述用户选择的FOV中的最大变化率来设置所述EFOV帧的面积大小(角大小,即,球体上的截面的大小)。调整所述EFOV帧的大小,以补偿所述客户端设备支持的FOV的最大变化。所述EFOV帧的面积大小还可以根据用于将EVP流下发给所述客户端设备的网络中的典型时延进行调整。
第三个概念是编码装置和客户端设备之间的解耦,以支持将VR 360视频内容下发给数量极大的客户端设备。通过配置所述编码装置以从所述VR 360视频文件生成多个EVP流来实现所述解耦,使得所述EVP流中的每个EVP流提供与所述VR 360视频文件定义的球体的多个(等大小)重叠段中各自的重叠段对应的视口。所述EVP流中的每个EVP流对应于构成所述VR 360视频文件定义的完整球体的多个重叠段中各自的重叠段,并且包括描绘各自的所述重叠段的EFOV帧序列。
此外,所述编码装置可以将所述多个EVP流传输到一个或多个分发设备,这些分发设备可以分别同时为大量客户端设备提供服务。特别地,所述分发设备可以是位于网络边缘的边缘节点,例如服务器、计算节点等,并且与所述客户端设备的通信行程时延很短,例如,紧邻服务所述客户端设备的网络网关。
所述分发设备可以从所述编码装置接收所有EVP流,并且可以使用根据各自的客户端设备的当前方位数据选择的其中一个EVP流来服务每个客户端设备。分析每个客户端设备的方位数据,以识别各自的用户当前选择的FOV,并将最合适的EVP流下发给各自的客户端设备。将最合适的EVP流选择作为包括EFOV帧的EVP流,其中,所述EFOV帧的中心最接近各自的用户选择的FOV。如果某个客户端设备(由所述用户选择)的FOV变化超过某个预定义阈值,则下发给所述客户端设备的EVP流可以切换到另一个更合适的EVP流,即,使得 EFOV帧的中心更接近新选择的FOV的中心。
一个或多个分发设备可以通过分析从所述客户端设备接收的当前方位数据,为每个客户端设备选择最合适的EVP流,并确定是否切换到另一个EVP流(对应于相邻重叠段)。此外和/或可替换地,为一个或多个客户端设备选择最合适的EVP流和/或切换EVP流可以由所述一个或多个客户端设备自身完成。所述一个或多个客户端设备可以分析其当前方位数据,并相应地选择最合适的EVP流。
可选地,所述编码装置用于为每个视口,即,为每个EVP流生成多个瞬时解码刷新(Instantaneous Decoding Refresh,简称IDR)移位EVP流。可根据本领域已知的一个或多个视频编码协议进行编码的EVP流可包括图像组(Group of Pictures,简称GOP),所述图像组分别包括多个连续帧(例如,4帧、8帧、12帧等),且所述连续帧可以至少部分地相互依赖。每个GOP和/或一组GOP通常包括一个IDR帧,指示解码器从所述IDR帧开始解码并丢弃所有先前接收到的使用的参考帧。所述编码装置可用于为每个视口,即,为所述多个重叠段中的每个重叠段生成多个IDR移位EVP流,使得每个所述IDR移位EVP流都包含所述GOP 的连续帧中的IDR帧。为所述每个重叠段生成的IDR移位EVP流的数量自然地等于所述视频编码协议为所述GOP定义的帧的数量。
可选地,所述编码装置根据QoS的变化,具体根据为所述编码装置与一个或多个分发设备之间和/或一个或多个分发设备与所述客户端设备之间的数据传输进行测量的RTT的变化动态地调整大小,即,一个或多个EFOV帧的面积大小。因此,在RTT增加的情况下,所述编码装置可以增加一个或多个EFOV帧的大小,从而提供更多额外呈现数据,所述客户端设备可以使用所述额外呈现数据来补偿增加的RTT。另一方面,在低RTT的情况下,即,如果QoS良好,所述编码装置可以减小一个或多个EFOV帧的大小,从而降低处理较小的一个或多个EFOV帧所需的网络带宽和/或计算资源。
可选地,一个或多个分发设备通过分析先前从所述客户端设备接收的方位数据来预测所述客户端设备的当前方位。通过所述客户端设备的所述预测方位,所述一个或多个分发设备可以选择最合适的EVP流,所述EVP流包括根据所述预测方位进行中心偏移的EFOV帧。这可以显著提高为所述客户端设备选择的EFOV帧的准确性,并且还可以进一步提供预测方向(区域)中的额外呈现数据,所述客户端设备可以使用所述额外呈现数据来生成FOV帧并补偿潜在的高RTT。
所述一个或多个分发设备还可以利用低时延编码器对传输到所述客户端设备的所述 EFOV帧进行编码。此外,服务器可以在一个或多个超低时延编解码器信道上使用一个或多个实时媒体传输协议将所述EFOV帧传输到所述客户端设备,以实现网络中的极低时延。
高吞吐量VR 360视频内容下发相对于当前现有的VR 360视频内容下发方法而言,可能具有明显优势。
首先,现有的一些方法可以将整个VR 360内容,例如VR 360视频文件下发给所述客户端设备。这可能需要大量的网络资源,具体为在实际应用中可能会受到限制的网络带宽,因此这种方法不切实际。该方法可能还需要所述客户端设备处的大量的计算资源来处理,例如解码、渲染和/或生成FOV帧,从而增加所述客户端设备的复杂度、成本等。另一方面,高吞吐量VR 360视频内容下发仅下发VR 360视频内容的很小一部分(EFOV帧),从而大大降低所需的网络带宽。由于所述客户端设备仅处理与整个VR 360视频内容项相比明显较小的 EFOV帧,因此可以极大降低所述客户端设备所需的计算资源,从而可以显著降低所述客户端设备的复杂度、成本等。
现有的一些方法,例如Facebook金字塔,可以下发VR 360视频内容的多个视口和/或配置文件。在此类方法中,当前FOV(FOV帧)内的呈现区域以高分辨率下发,而当前FOV 以外的呈现区域以低分辨率下发。然而,响应于用户选择的FOV的变化而在视口和/或配置文件之间切换可能会耗时,因此,在切换时间内调整到新的FOV并呈现低分辨率内容时,可能会造成较差的QoE。在此类方法中,所有可视视口角度(例如,原始文件大小的6倍)在服务器侧需要较大的存储空间,因此此类方法还可能有其他缺点。此外,所述客户端设备可能需要更多的计算资源,用于管理根据当前视角周围的各种可能视口中的视角选择下一个待下载的视口。
其他现有方法,例如,Fraunhofer HHI也可以利用所述VR 360视频内容的多个视口和/ 或配置文件将所述VR 360视频内容构建为图块。在此类方法中,网络带宽效率可以随着图块的数量增加而增加,其中,通过较小图块尺寸以高分辨率构建FOV区域减少了FOV以外的额外区域。然而,由于在一个或多个高分辨率流下载之前会遵守低分辨率(较低质量),因此在FOV变化期间,时延可能会显著增加,QoE可能会因此而恶化。此外,随着帧间和帧内预测区域的减小,较小图块大小可以增加每个图块的比特率。此外,此类方法可能需要所述客户端设备处的大量的计算资源,以便根据下一个视点为下一个时间间隔选择图块以及将各个图块比特流段合并到视口相关比特流的聚合过程。
与此相反,高吞吐量VR 360视频内容下发提供了高分辨率的EFOV帧。此外,所述客户端设备可以使用所述EFOV帧在本地构建FOV帧。因此,在用户的FOV变化的情况下,所述客户端设备可以使用所述EFOV帧中可用的额外呈现数据来调整FOV帧以适应新的 FOV,而无需服务器的干预。此外,由于所述客户端设备需要处理构成整个VR 360视频内容中很小一部分的EFOV帧,因此可以显著减少所述客户端设备的计算资源。
此外,所述多个EVP流对应于VR 360视频文件定义的球体的重叠段和所述EVP流的视口,因此包含所述VR 360视频文件的所有视口。所述EVP流足以为所述客户端设备的用户选择的任一FOV提供服务,因此,可为大量客户端设备提供服务。因此,能够覆盖所述用户选择的任一FOV可以使得所述编码装置与所述客户端设备解耦,从而避免需要为每个客户端设备分配专用编码器以为各自的客户端设备的特定FOV提供服务。此外,包含整个球体可能需要有限(有限)且相对较少的EVP流。生成有限且相对较少的EVP流可显著减少所述编码装置为大量客户端设备提供服务所需的计算资源,从而使得高吞吐量VR 360视频内容下发切实可行,更便宜,因此更易于在多个内容应用、平台和/或服务中使用。
此外,通过在网络边缘部署一个或多个分发设备,可以极大提高QoS,从而减少时延,例如,分发设备与客户端设备之间的RTT,从而大大提高MTP,进而提高QoE。此外,例如,在时延、带宽、吞吐量等一个或多个关键性能指标(Key Performance Indicator,简称KPI)方面,可以显著提高边缘服务器和/或边缘网络的管理效率。
此外,当新选择的FOV要求切换服务于某个客户端设备的EVP流时,为每个视口(重叠段)生成多个IDR移位EVP流可以显著改善EVP流之间的过渡平滑性。通过选择在对应于确切的切换时间的位置处具有IDR帧的合适的IDR移位EVP流,可以向所述客户端设备的解码器发信号以从头开始解码,并丢弃所有先前使用的参考帧以解码当前和/或未来帧。这可以显著减少并潜在地防止由于使用一个EVP流的参考帧作为解码另一个EVP流的参考帧而引起的伪影,从而在EVP流之间平滑过渡。
而且,通过根据RTT动态地调整EFOV帧的大小,高吞吐量VR 360视频内容下发可以适应RTT中的变化,即,服务所述客户端设备的网络支持的QoS中的变化。
最后,通过预测一个或多个客户端设备的当前和/或未来方位,即,用户选择的FOV, EVP流根据所述预测方向进行选择。因此,即使在从所述一个或多个客户端设备接收实际(真实)更新的方位数据之前,也可以为各自的客户端设备选择所述EVP流。这可以大大降低时延,即,MTP,从而显著提高QoE。
在详细解释本发明的至少一个实施例之前,应理解,本发明在应用时并不一定限于以下描述和/或附图和/或示例中阐述的组件和/或方法的构造和布置的细节。本发明能够有其它实施例或能够采用各种方式实践或执行。
本发明可以是系统、方法和/或计算机程序产品。所述计算机程序产品可以包括具有计算机可读程序指令的一个(或多个)计算机可读存储介质,所述计算机可读程序指令用于使处理器执行本发明的各个方面。
所述计算机可读存储介质可以是有形设备,所述有形设备可以保存和存储指令执行设备使用的指令。例如,所述计算机可读存储介质可以是但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或上述的任意合适组合。所述计算机可读存储介质的更具体示例的非穷举列表包括:便携式计算机软盘、硬盘、随机存取存储器(random access memory,简称RAM)、只读存储器(read-only memory,简称ROM)、可擦除可编程只读存储器(erasable programmable read-only memory,简称EPROM或闪存存储器)、静态随机存取存储器(static random access memory,简称SRAM)、便携式光盘只读存储器(compact disc read-only memory,简称CD-ROM)、数字通用磁盘(digital versatiledisk,简称DVD)、存储棒、软盘、机械编码设备,例如打孔卡或凹槽中的凸起结构,其上记录有指令,以及上述的任何合适组合。此处使用的计算机可读存储介质不应理解为本质上瞬时的信号,例如,无线电波或其它自由传播的电磁波、通过波导或其它传输介质(例如,通过光缆的光脉冲)传播的电磁波,或通过电线传输的电信号。
可以从计算机可读存储介质中将此处描述的计算机可读程序指令下载到各自的计算/处理设备上,或通过网络下载到外部计算机或外部存储设备上。所述网络为因特网、局域网、广域网和/或无线网等。所述网络可以包括铜传输电缆、光学传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器或网络接口从所述网络中接收计算机可读程序指令,并转发所述计算机程序可读程序指令,以存储在所述各自的计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机可读程序指令可以是组译器指令、指令集架构(instruction-set-architecture,简称ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据,或者用一种或多种编程语言,包括诸如Smalltalk等面向对象的编程语言,C++ 等的任意组合编写的源代码或目标代码,以及传统的程序性编程语言,例如,“C”编程语言或类似的编程语言。
所述计算机可读程序指令可作为独立软件包,全部在用户计算机上执行或部分在用户计算机上执行,或部分在用户计算机上执行且部分在远程计算机上执行,或全部在远程计算机或服务器上执行。在后一种场景中,所述远程计算机可以通过任何类型的网络,包括局域网 (local area network,简称LAN)或广域网(wide area network,简称WAN)与用户计算机连接,或者可以(例如,通过使用因特网服务提供方的因特网)连接到外部计算机。在一些实施例中,包括可编程逻辑电路、现场可编程门阵列(field-programmable gatearray,简称FPGA) 或可编程逻辑阵列(programmable logic array,简称PLA)等的电子电路可以利用计算机可读程序指令的状态信息执行所述计算机可读程序指令以个性化所述电子电路,以便执行本发明的各个方面。
此处,结合本发明实施例的方法、装置(系统)以及计算机程序产品的流程图和/或框图描述本发明的各个方面。应当理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合能够通过计算机可读程序指令来实现。
图中的流程图和框图阐述了根据本发明各个实施例的系统、方法以及计算机程序产品的可能实现方式的结构、功能以及操作。此时,流程图或框图中的每个块可以表示模块、片段或部分指令,其包括用于实现一个或多个特定逻辑功能的一个或多个可执行指令。在一些可选的实现方式中,框中指出的功能可以不按照图中的顺序实现。例如,事实上,连续示出的两个方块可以几乎同时执行,或者有时候,方块可以按照相反的顺序执行,这取决于所涉及的功能。也应注意的是,框图和/或流程图中的每个框以及框图和/或流程图中的框的组合可以由基于专用硬件的系统执行,该系统执行特定的功能或动作,或者执行专用硬件和计算机指令的组合。
现参考图1,图1是本发明的一些实施例提供的用于将VR 360视频内容下发给多个客户端设备以呈现给各自的用户的示例性系统的示意图。示例性系统100可包括编码装置102,用于从通过网络120从一个或多个内容提供商130接收的VR 360视频内容中生成多个扩展视口(extended viewport,简称EVP,也称为VP+)流,并通过网络122将所述EVP流传输给一个或多个分发设备104。通过另一网络124,所述一个或多个分发设备104可将选择的EVP 流下发给多个客户端设备106中的一个或多个,以呈现给各自的用户110。
将所述VR 360视频内容下发给所述多个客户端设备106,尤其是大量客户端设备106,可能会带来重大挑战,具体而言,是在带宽(吞吐量)和/或时延等网络资源方面。由于所述 VR 360视频内容,例如,VR 360视频文件等,尤其是高质量(高分辨率)和/或高速运动VR 360视频内容包含大量数据,因此需要高网络带宽以支持下发如此大的数据。此外,所述网络124需要低网络时延,以保证用户110的用户体验。所述用户体验可以通过例如运动到光子(Motion to Photon,简称MTP)时延来表示,该时延表示运动(用户110选择FOV以观看VR 360视频文件)的时间与各自的客户端设备106呈现给所述用户110的各自的呈现(光子)的呈现时间之间的时延。
如申请号为PCT/EP2017/084477的国际专利申请中所述,所述系统100可以通过在所述编码装置102(服务器)和每个客户端设备106之间分割呈现给所述用户110的VR 360视频文件的生成来应对这些挑战,该申请于2017年12月22日提交、发明名称为“为远程终端用户采用VR 360视频”,其全部内容通过引用结合在本申请中。
如PCT/EP2017/084477中所述,在所述编码装置102和每个客户端设备106之间分割 VR 360视频文件处理和/或生成是基于以下事实:在任意给定时间,每个客户端设备106仅向各自的用户110呈现由VR 360视频文件定义的球形的很小的片段。因此,所述编码装置102可生成(渲染)一个或多个视口流,仅呈现从VR 360视频裁剪的相关片段,并通过网络将所述一个或多个视口流传输给一个或多个客户端设备106。所述编码装置102可以根据从所述一个或多个客户端设备106接收的方位数据选择VR 360视频文件的裁剪片段,该方位数据指示所述客户端设备106的当前方位,该方位表示所述用户110选择观看VR 360视频呈现的视场(Field of View,简称FOV)。
由于只有所述整个VR 360视频文件中的很小的片段传输(流化传输)给所述一个或多个客户端设备106,因此,所述分割实施可以大大降低将VR 360视频下发给所述一个或多个客户端设备106所需的网络带宽。此外,由于每个客户端设备106仅处理所述VR 360视频文件的一小片段,因此,分割实施可以显著减少每个客户端设备106处理,例如,解码、渲染、生成等VR 360视频所需的计算资源。
自然地,所述用户110中的一个或多个可以改变选择的FOV,例如,改变FOV的中心位置,增加(缩小)FOV,减少(放大)FOV等。因此,所述VR 360视频的裁剪片段可能需要相应地更新,即,所述编码装置102可能需要为所述一个或多个客户端设备106生成新的VR 360视频片段,以反映新的一个或多个FOV。为了保持较高的用户体验,可以通过在一个或多个客户端设备106处本地调整VR 360视频的片段来补偿网络时延。为了支持这一点,由所述编码装置102为所述VR 360视频的一个或多个裁剪片段生成的EVP流包括扩展FOV (ExtendedFOV,简称EFOV,也称为FOV+)帧,该扩展FOV帧包含比所述一个或多个客户端设备106呈现给一个或多个用户110的FOV区域更大的FOV区域。因此,所述EFOV 帧包括相对于由所述一个或多个客户端设备106呈现的其各自的FOV帧的附加呈现数据。所述附加呈现数据可用作缓冲区,所述缓冲区可用于所述一个或多个客户端设备106根据所述客户端设备的更新后的方位数据在本地生成更新的FOV帧。然后,可以将所述FOV帧呈现给所述一个或多个用户110。因此,与所述FOV帧相比,EFOV帧的附加(额外)区域实际上可用于补偿所述网络124中的时延。这可以显著减少和/或完全避免所述一个或多个客户端设备106需要等待所述编码装置102响应所述一个或多个客户端设备106的一个或多个方位变化而创建的新EFOV帧,即,根据所述更新后的方位数据而创建的新的EFOV帧。
现参考图2,图2是本发明的一些实施例提供的从相应的EFOV帧生成的示例性VR360 视频帧的示意图。示例性VR 360视频202可以由编码装置102等编码装置处理,例如,裁剪、渲染等。自然地,所述编码装置102根据如客户端设备106等一个或多个客户端设备的一个或多个预定义的客户端设备呈现能力来处理所述VR 360视频202。在所呈现的示例中,所述客户端设备106例如可以是支持3D呈现的HMD、立体护目镜等。因此,所述编码装置102 可生成两个EFOV帧204R和204L,其中,所述EFOV帧204R适用于在所述客户端设备106 的显示器上的右眼呈现,所述EFOV帧204L适用于在所述客户端设备106的显示器上的左眼呈现。所述客户端设备106还可以处理,例如,裁剪、渲染等所述接收到的EFOV帧204R 和204L,以根据指示所述客户端设备106的方位变化的更新后的方位数据生成各自的FOV 帧214R和214L。显而易见,EFOV帧204(例如,204R和204L)包括相对于各自的FOV 帧214(例如,214R和214L)的示例性一侧额外区域220。
因此,所述EFOV帧204的角大小是所述FOV帧204的角大小,其中,在所述FOV帧 204的每一侧上在纵轴和横轴上都增加了所述一侧额外区域220。
描绘球体302的相应的重叠段304的FOV的(角)大小可取决于选择下发给所述客户设备106的投影格式的类型。所述投影格式可以包括例如等距柱状投影(equirectangularprojection,简称ERP)、直线投影、立方体图投影(cubemap,简称CMP)、等面积投影(equal-area,简称EAP)、八面体投影(octahedron,简称OHP)、柏拉图固体投影(Platonic SolidProjection,简称PSP)等。虽然在此之后介绍了ERP投影格式,但不应将其解释为限制,因为本发明可使用其他投影格式。
所述EFOV帧204的所述一侧额外区域220可以表示为DiffSize。可以用DiffSize的显示数据补偿的最大时延表示为Tcomp。DiffSize和Tcomp之间的关系可用于根据视频下发给所述客户端设备106的给定往返时延(Round Trip delay Time,简称RTT)定义DiffSize。还可以根据所述客户端设备106的能力,例如支持2D呈现/3D呈现、显示大小、显示分辨率等调整DiffSize。
因此,可以由最大允许时延定义所述时延Tcomp,所述最大允许时延可由所述额外区域 DiffSize的呈现数据补偿,以获得如下文等式1所示的所述客户端设备106的给定最大角速度。
等式1:
其中,DiffSizedeg]是每个EFOV帧204中的一侧额外区域220,MxAnS[deg/ms]是最大角速度。
例如,假设每个方向上都有10度额外区域,即,DiffSize=10°、MxAnS=1.0°/ms和在这种情况下,所述客户端设备106可以使用所述EFOV帧204的额外区域220的呈现数据来补偿10ms的RTT。
再例如,假设每个方向上都有10度额外区域,即,DiffSize=10°、MxAnS=0.2°/ms和在这种情况下,所述客户端设备106可以使用所述EFOV帧的额外区域的呈现数据来补偿50ms的RTT。
然而,如PCT/EP2017/084477中所描述的分割实施意味着所述编码装置102(服务器) 和多个客户端设备106中的每个客户端设备106之间的紧密耦合,因为需要在所述编码装置 102处为每个客户端设备106分配专用编码器,以便为每个客户端设备106生成合适的EVP。这可能呈现出一个主要限制,具体地,当有大量(例如,50000)客户端设备106时,大大增加了所述编码装置102所需的计算能力、存储容量等计算资源。此外,所述编码装置102处的紧密耦合和编码器的数量会导致向所述客户端设备106下发EVP的时延的大量增加,这极大地影响了用户110的用户体验。
根据本发明的一些实施例,所述编码装置102与所述客户端设备106解耦。所述编码装置102可用于将VR 360视频文件定义的球体分割成多个重叠段(每个重叠段对应于所述VR 360视频文件的视口),并为所述重叠段中各自的重叠段生成多个EVP流。所述编码装置可以将为所述多个重叠段生成的EVP流下发给可分别为多个客户端设备106服务的分发设备104。
对于请求消费所述VR 360视频文件的每个客户端设备106,分发设备104可以根据从各自的客户端设备106接收的当前方位数据来传输所述多个EVP流中的选择的一个EVP流,其中,所述当前方位数据指示所述VR 360视频文件在所述客户端设备106的呈现的当前FOV。因此,所述分发设备104可以选择使用包括描绘各自的客户端设备106的FOV对应的重叠段的EFOV帧的EVP流来为每个客户端设备106服务。如果从某个客户端设备106接收的当前方位数据指示某个客户端设备106的FOV对应于相邻重叠段,则所述分发设备104可以选择使用另一个包括描绘所述相邻重叠段的EFOV帧的EVP流来为某个客户端设备106服务。
现参考图3A、图3B和图3C,图3A、图3B和图3C是根据本发明的一些实施例的VR 360视频文件定义的呈现球体的呈现分割示意图。
如图3A所示,平面投影中投影的VR 360视频文件定义的示例性球体302被分割为多个重叠段304,使得每个重叠段304p,q与每个相邻重叠段具有重叠区域。例如,将所述球体302 分割为18×9重叠段304,使得每个重叠段304偏移20°(度)即可得到所述球体302的对应部分。
如图3B所示,每个重叠段,例如,重叠段304p–2,q、304p–1,q、304p,q、304p+1,q和304p+2,q,与其相邻重叠段304具有重叠区域。例如,所述重叠段304p–2,q与所述重叠段304p–1,q具有重叠区域,所述重叠段304p–1,q与所述重叠段304p–2,q和304p,q具有重叠区域,所述重叠段304p,q与所述重叠段304p–1,q和304p+1,q具有重叠区域,所述重叠段304p+1,q与所述重叠段304p,q和304p+2,q具有重叠区域等。
而重叠段304p–2,q、304p–1,q、304p,q、304p+1,q和304p+2,q的重叠区域以经度(水平)轴表示,对纬度(垂直)轴应用相同的重叠区域,使得所述重叠段304中的每个重叠段304在经度和纬度方向上分别与其相邻重叠段304具有重叠区域。
所述编码装置102为每个重叠段304创建EVP流,其中,所述EVP流包括在一定时间实例中捕获各自的重叠段304的EFOV帧序列。
因此,所述重叠段304的大小反映了EFOV帧204的大小和两个术语,即,EFOV帧204和重叠段304的大小,具体地,FOV帧204和重叠段304的大小在整个文档中可以互换。例如,为重叠段304p–2,q创建EFOV帧204p–2,q,为重叠段304p–1,q创建EFOV帧204p–1,q,为重叠段304p,q创建EFOV帧204p,q,为重叠段304p+1,q创建EFOV帧204p+1,q,为重叠段304p+2,q创建EFOV帧204p+2,q等。
图3C呈现一些示例性重叠段304的经度轴,具体是分布对应于EFOV帧204p–2,q、204p–1,q、 204p,q、204p+1,q和204p+2,q的重叠段304p–2,q、304p–1,q、304p,q、304p+1,q和304p+2,q。根据反映EVP 流传输到所述客户端设备106等客户端设备的操作参数的分段参数预定义所述重叠段304的大小以及与相邻重叠段304的重叠区域的。用于将所述VR 360视频文件的球体分割为所述多个重叠段304的操作参数通常可以从与客户端设备相关的操作参数导出,例如,所述客户端设备106的显示器430等显示器的角位移、网络124的时延(例如表示为所述视频下发给所述客户端设备106的RTT)等。
如前文所述,所述EFOV帧的附加(额外)区域的呈现数据可由所述一个或多个客户端设备106用于从接收到的EVP流的EFOV帧204生成FOV帧214。由于所述EFOV帧214 大于所述FOV帧204,因此,所述一个或多个客户端设备106可以根据更新后的方位数据,从所述EFOV帧204生成所述FOV帧214,更新后的方位数据指示用户110选择的FOV中心相对于所述EFOV帧204的FOV中心的更新。由于可以在EVP流传输给所述一个或多个客户端设备106之后进行FOV的更新,因此,所述一个或多个客户端设备106实际上可以通过使用所述EFOV帧214的附加(额外)区域来补偿所述网络124的时延,以根据更新后的 FOV生成所述FOV 204。
为了有效地作为补偿所述网络124的网络时延的缓冲区,同时支持FOV的更新,根据所述EFOV帧204的大小对所述球体302进行分割,所述EFOV帧204的大小可以根据最大FOV变化率定义,即,所述客户端设备106的方位变化率,通常相对于所述网络124上的所述时延。
所述最大FOV率(位移)可以通过表示下述等式1所示的FOV(方位)的最大角位移的MxDisp来表示。
等式1:
其中,MxAnS[deg/ms]是所述客户端设备106的最大角速度,即,最大方位变化率,fps是 VR 360视频文件的帧率(每秒帧数)。
如前文所述,所述EFOV帧204的角大小是所述FOV帧204的角大小加上每一侧(纵向和横向)的所述额外区域220,即,DiffSize。在相邻EFOV帧204的中心之间定义角Step,从而在相邻重叠段304的中心之间定义角。
例如,在纵轴上,假设MxAnS=300°/s和fps=30frames/s,则最大角位移为MxDisp=10°。FOV帧各方向的额外大小可以表示为假设 Step=DiffSize,则额外EFOV帧204的大小是DiffSize=2×MxDisp=20°。所述 2×MxDisp区域可被视为补偿范围,所述补偿范围可用于一个或多个客户端设备106根据更新后的FOV中心从所述EFOV帧204中生成FOV帧214,所述更新后的FOV中心相对于接收到的所述EFOV帧214的FOV中心可能已经改变。
可以定义为每一对相邻重叠段304定义的重叠区域,以确保在改变FOV时在服务于所述一个或多个客户端设备106的EVP流之间平滑切换。例如,可以将所述角Step表示的重叠区域设置为Step=DiffSize=20°。可以定义切换范围,使得当用户110选择的以所述客户端设备106的当前方位表示的FOV进入所述切换范围时,服务于所述客户端设备106的EVP流可以在所述切换范围的方向上切换到相邻EVP流。
因此,所述球体302的分割依赖于所述EFOV帧204的大小的值和Step。为了继续上述示例,假设所述EFOV帧204的额外区域的大小是DiffSize=20°,且Step为20°,则所述球体302可以分割为如图3A所示的18×9重叠段304,使得每个重叠段304偏移20°(度)可得到所述球体302的对应部分,即,各个方向上的FOV+/–20°。
现参考图4A、图4B和图4C,图4A、图4B和图4C是本发明的一些实施例提供的用于将VR 360视频内容下发给多个客户端设备以呈现给各自的用户的系统100的示例性元素的示意图。
如图4A所示,编码装置102等编码装置,例如服务器、计算节点、计算节点集群和/或具有一个或多个处理器的任何处理设备包括网络接口402、一个或多个处理器404和存储器 406。在本发明的一些实施例中,可以通过一个或多个云计算服务、平台和/或资源,例如,专有服务器、IBM UCloud、亚马逊业务平台(Amazon Web Service,简称AWS)、谷歌云、微软Azure等来提供所述编码装置102。
所述网络接口402可包括用于连接一个或多个有线和/或无线网络的一个或多个网络接口,例如局域网(Local Area Network,简称LAN)、广域网(Wide Area Network,简称WAN)、城域网(Metropolitan Area Network,简称MAN)、蜂窝网络、因特网等。例如,所述编码装置102可以通过所述网络接口402连接到网络120,所述网络120可以包括一个或多个用于与一个或多个内容提供商130进行通信的网络。再例如,所述编码装置102可以通过所述网络接口402连接到网络122,所述网络122可以包括一个或多个用于与一个或多个分发设备 104进行通信的网络。
可选地,所述网络120和122连接在一起,使得所述编码装置102可以经由同一网络同时与所述一个或多个内容提供商130和所述一个或多个分发设备104进行通信。
同构或异构的一个或多个处理器404可以包括一个或多个用于并行处理的处理器,例如,集群和/或一个或多个多核处理器。
所述存储器406可以包括一个或多个非瞬时性持久性存储设备,例如,硬盘、闪存阵列等。所述存储器406也可以包括一个或多个易失性设备,例如,随机存取存储器(RandomAccess Memory,简称RAM)组件等。所述存储器406还可以包括一个或多个网络存储设备,例如,存储服务器、网络可存取存储器(network accessible storage,简称NAS)、网络驱动器等。
所述编码装置102,具体是所述一个或多个处理器404可以执行一个或多个软件模块,例如,过程、应用、代理、实用工具、脚本、插件等。其中,软件模块可以包括由所述一个或多个处理器404等处理器执行的所述存储器406等存储器存储的多个程序指令。
所述编码装置102可以执行一个或多个操作模块,例如,视频解码器450、多个EVP生成器452、多个视频编码器454、视频发送器456、服务质量(Quality of Service,简称QoS) /体验质量(Quality of Experience,简称QoE)控制器458等,这些操作模块通过一个或多个硬件元件、一个或多个软件模块和/或其组合来实现。所述硬件元件例如可以包括电路、组件、集成电路(Integrated Circuit,简称IC)等。所述硬件元件还可以包括一个或多个特定应用组件,例如,专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、数字信号处理器(Digital Signal Processor,简称DSP)、图形处理器(Graphics Processing Unit,简称GPU)等。
所述视频解码器450可以解码VR 360视频内容,例如,从所述一个或多个内容提供商 130获取的所述VR 360视频文件。所述视频解码器450可用于支持多个编码协议中的一个或多个,具体是视频编码协议,例如,MPEG、H.264、H.265、H.266等。
多个EVP流生成器452可分别渲染所述VR 360视频文件的各自的重叠段以生成多个(例如,N)EVP流的各自的EVP流,每个EVP流由所述多个编码器454中的各自的编码器454编码。每个所述EVP流生成器452可为描述由所述VR 360视频文件定义的球体的各自的重叠段的各自的EVP流生成EFOV帧。每个所述编码器454可以根据视频编码协议中的一个或多个对各自的EVP流进行编码,例如,MPEG、H.264、H.265、H.266等。
所述视频发送器456可操作所述网络接口402以将所述编码后的N个EVP流传输给所述一个或多个分发设备104。
所述QoS/QoE控制器458可收集、分析和/或计算与VR 360视频会话相关的QoS/QoE数据,所述QoS/QoE数据可指示时延,具体是EVP流下发(传输)给所述一个或多个分发设备104和/或所述客户端设备106的RTT。
如图4B所示,分发设备104等分发设备,例如,服务器、计算节点、计算节点集群和/或具有一个或多个处理器的任何处理设备包括网络接口412、一个或多个处理器414和存储器416。
所述网络接口412,例如,网络接口402可以包括一个或多个网络接口,用于连接所述网络122,以与所述编码装置102进行通信。所述分发设备104可以通过所述网络接口412连接到网络124,所述网络124可以包括一个或多个用于与多个客户端设备106进行通信的网络。
特别地,所述网络124可以支持所述分发设备104和所述客户设备106之间的低时延传输链路。例如,所述分发设备104可以是位于所述网络124的边缘,并且与所述客户端设备 106的通信行程时延很短,具体是紧邻服务所述客户端设备106的网络网关。编码装置102 (服务器)的这种部署可以极大减少时延,即,所述分发设备104和所述客户端设备106之间交换的数据消息和数据包的传输时间。这种部署还可能大大降低网络带宽,即,用于在所述分发设备104和所述客户端设备106之间交换VR 360视频内容和相关联数据所述网络124 的利用率。
所述一个或多个处理器414,例如,所述一个或多个处理器404可以执行一个或多个软件模块,例如,过程、应用、代理、实用工具、脚本、插件等。其中,软件模块可以包括由所述一个或多个处理器414等处理器执行的所述存储器416等存储器存储的多个程序指令。
所述存储器416,例如,存储器406可以包括一个或多个非瞬时性持久性存储设备和/或一个或多个易失性设备。所述存储器416还可以包括一个或多个网络存储设备。
所述分发设备104可以执行一个或多个操作模块,例如,视频分发器460、QoS/QoE生成器462、方位预测器464等,这些操作模块通过一个或多个硬件元件、一个或多个软件模块和/或其组合来实现。所述硬件元件例如可以包括电路、组件、IC等。所述硬件元件还可以包括一个或多个应用特定组件,例如,ASIC、FPGA、DSP、GPU等。
所述视频分发器460可以具体根据从每个客户端设备106接收的方位数据,从所述编码装置102接收的EVP流中选择各自的一个EVP流以传输给每个客户端设备106。
所述QoS/QoE生成器462可生成QoS/QoE数据,所述QoS/QoE数据可指示时延,具体是EVP流下发给所述一个或多个分发设备104和/或客户端设备106的RTT。
所述方位预测器464可基于从所述客户端设备106接收的先前方位数据预测一个或多个客户端设备106的方位变化(更新)。
如图4C所示,所述客户端设备106等客户端设备,例如,台式计算机、膝上型计算机、移动设备(例如,智能手机、平板电脑等)、HMD、立体护目镜等可以包括网络接口422,例如用于连接网络124的网络接口402、一个或多个处理器424、存储器426、一个或多个传感器428和显示器430。
所述存储器426可以包括一个或多个非瞬时性持久性存储设备,例如,硬盘、闪存阵列等和/或一个或多个易失性设备,例如,RAM组件等。
所述显示器430可以支持向用户110进行2D呈现和/或3D呈现。例如,客户端设备106,例如,HMD、立体护目镜等通常可以包括支持3D呈现和可选的2D呈现的3D显示器(屏幕)。再例如,客户端设备106,例如,台式计算机、膝上型计算机、智能手机、平板电脑等通常可以包括支持2D呈现的平面2D显示器(屏幕)。
所述一个或多个传感器428可用于监测和捕获所述客户端设备106的当前方位,并相应地提供感官数据。所述客户端设备106的方位通常指示用户110为在所述显示器430上呈现 VR 360视频文件选择的FOV。所述一个或多个传感器428的类型、功能、特性等可自然地取决于所述客户端设备106的类型和性质。例如,对于HMD、立体护目镜等客户端设备106,所述一个或多个传感器428可以包括例如加速度计、陀螺仪、惯性测量单元(InertialMeasurement Unit,简称IMU)、激光位置传感器、成像传感器等用于监控和捕获用户的姿势,例如,可以指示用户110选择的所述客户端设备106的方位的头部姿势、一个或多个手势、身体姿势/动作等。再例如,对于台式计算机、膝上型计算机、智能手机、平板电脑等客户端设备106,所述一个或多个传感器428可以包括例如用于监控和捕获所述客户端设备106的方位的加速度计、陀螺仪、IMU等。对于此类客户端设备106,所述一个或多个传感器428还可以由定点设备使用,例如鼠标、触控板、触摸屏等,用户110可以通过定点设备选择VR360视频呈现的方位。例如,所述用户110可以用手和/或手指操作触摸屏以选择用于呈现VR 360视频文件的FOV。
所述一个或多个处理器424,例如,所述一个或多个处理器404可以执行一个或多个软件模块,例如,过程、应用、代理、实用工具、脚本、插件等。其中,软件模块可以包括由所述一个或多个处理器424等处理器执行的所述存储器426等存储器存储的多个程序指令。
所述客户端设备106可以执行一个或多个操作模块,例如,解码器470、客户端帧生成器472、QoS/QoE收集器474、方位数据生成器476等,这些操作模块通过一个或多个硬件元件、一个或多个软件模块和/或其组合来实现。所述硬件元件例如可以包括电路、组件、IC等。所述硬件元件还可以包括一个或多个应用特定组件,例如,ASIC、FPGA、DSP、GPU 等。
所述解码器470可对从所述分发设备104接收的EVP流进行解码。所述解码器470可用于支持编码协议中的一个或多个,具体是视频编码协议,例如,MPEG、H.264、H.265、H.266等。
所述客户端帧生成器472可处理从解码后的EVP流中提取的EFOV帧以生成FOV帧以在所述显示器430上呈现。
所述QoS/QoE数据收集器474可收集与VR 360视频会话相关的QoS/QoE数据,具体是从所述分发设备104接收的EVP流。例如,所述QoS/QoE数据收集器474可以通过分析与所述EFOV帧相关联的时间戳来识别所述分发设备104和所述客户端设备106之间的所述网络124上的流量的时延。所述QoS/QoE数据收集器474还可以通过分析用于选择可以嵌入到接收到的EVP流中的接收到的EVP流的方位数据的时间戳来识别MTP(指示QoE)。
所述方位数据生成器476可以从所述一个或多个传感器428收集感官数据,并为所述客户端设备106生成方位数据。
现参考图5,图5是本发明的一些实施例提供的由编码装置102等编码装置执行的用于从VR 360视频文件创建多个扩展视口(Extended Viewport,简称EVP)流的示例性过程的流程图。
如步骤502所示,过程500开始于编码装置102从内容提供商130等一个或多个内容提供商通过网络120等网络接收定义360呈现球体的VR 360视频内容,所述内容提供商130例如为内容分发网络(Content Delivery Network,简称CDN)、数据中心、内容提供商源服务器等。
由所述编码装置102执行的视频解码器450等视频解码器可以解码VR 360视频文件,所述VR 360视频文件可以使用一个或多个视频编码协议,例如,MPEG、H.264、H.265、H.266 等进行编码。可选地,从所述内容提供商130接收(下载)的VR 360视频文件可以本地存储在所述编码装置102上,例如存储在存储器406等存储器中。
所述视频解码器450可将解码后的VR 360视频文件驱动到多个EVP流生成器,例如EVP 流生成器452。可选地,虽然所述视频解码器450可将整个VR 360视频文件驱动到一个或多个EVP流生成器452,但所述视频解码器450可仅将VR 360视频文件的相关部分提供给所述一个或多个EVP流生成器452,其中,所述相关部分包括所述一个或多个EVP流生成器452所需的VR 360视频文件球体的片段,用于生成下文所述的各自的EVP流。
如步骤504所示,由解码后的VR 360视频文件定义的球体302等球体被分割为多个大小相等的重叠段以创建多个对应的视口。可以根据上文针对图2和图3A至图3C描述的一个或多个分割参数定义的预定义分割方案进行分割。具体地,根据从所述客户端设备106的最大角速度MxAnS导出的最大角位移MxDisp,将所述球体分割为所述多个重叠段。
如上文所述,根据为EFOV帧定义的(角)大小,例如EFOV_width和EFOV_height,将所述球体分割为多个(等大小)重叠段。其中,EFOV_width和EFOV_height可以按照如下方式定义:
-FOV帧的值,例如FOV角度,即,水平FOV角度值和垂直FOV角度值。
-从所述球体的每个重叠段304待生成的EFOV帧的尺寸,即,FOV帧的大小加上FOV帧在纵轴和横轴上每侧增加的额外面积的大小(2Diffsize)。
在分割所述球体之后,多个EVP流生成器中的每个EVP流生成器,例如,所述EVP流生成器452分配有所述多个重叠段304中的一个。
下面是为图2和图3A至图3C所示的例子。EVP流的空间数量N为18×9=162,其中,所述重叠段的中心之间的Step为20°。
所述过程500可以包括多次迭代506,其中,每个EVP流生成器452耦合到其各自的编码器,例如,所述编码器454重复执行步骤508至514以创建对应于分配给所述EVP流生成器452的重叠段304的多个EVP流中的一个EVP流。下面针对单个EVP流生成器452描述所述迭代过程,然而,可选地,多个EVP流生成器452可同时执行相同的迭代过程,每个 EVP流生成器452处理其各自的重叠段以生成其各自的EVP流。
作为分割的一部分,可以生成所述多个重叠段中的每个重叠段的网格点(m,n)。所述网格点(m,n)可以存储在将多个重叠段中的每个重叠段映射到所述球体中的各自的坐标中的全局数据集中,例如,文件、表、列表等。可选地,所述重叠段中的一个或多个重叠段各自的网格点(m,n)例如作为元数据等包含在为各自的重叠段生成的各自的EFOV帧和/或各自的EVP 流中。
如步骤508所示,所述EVP流生成器452可旋转所述球体,以根据其所分配的重叠段对齐所述球体。
所述EVP流生成器452可将其各自的重叠段的网格点(m,n)投影到所述VR 360视频文件的球体上。具体如下:(m,n)→(u,v)→(φ,θ)→X′,Y′,Z′。
其中,(m,n)为采样点在2D(u,v)平面上的列坐标和行坐标,u和v的范围为[0,1],W和 H分别为ERP图像的宽和高。从(m,n)到(u,v)的转换由下式给出:
u=(m+0.5)/W0<=m<W
v=(n+0.5)/H0<=n<H
如图5所示,从(u,v)平面到所述球体的经度(φ)角度和纬度(θ)角度的转换由下式给出:
φ=2π(u-0.5)
θ=2π(0.5-v)
其中,φ的范围为[-π,π],从X轴逆时针方向(Counter Clock Wise,简称CCW)测量,而θ的范围为[-π/2,π/2],从赤道到Y轴测量。
在单位球体上从(φ,θ)坐标到(X′,Y′,Z′)坐标的转换由下式给出:
X’=cos(θ)cos(φ)
Y’=sin(θ)
Z’=-cos(θ)sin(φ)
所述VR 360视频文件的球体可以使用一个或多个坐标系进行定义,例如,欧拉角等。
现参考图6,图6是欧拉角坐标系的示意图。本领域已知的欧拉角坐标系定义了偏航、俯仰和滚转,可用来指定源坐3D坐标和目的3D坐标之间的相对旋转。偏航(可表示为φ+π/2)指定沿Y轴以度为单位的逆时针方向旋转,俯仰(可表示为-θ)指定沿Z轴以度为单位的逆时针方向旋转,滚转(可表示为ψ)指定沿X轴以度为单位的逆时针方向旋转。
再次参考图5。
所述EVP流生成器452可以使用旋转矩阵以旋转所述球体,具体地说,偏航值、俯仰值和滚转值,以使所述球体的Z轴与分配给所述EVP流生成器452的各自的重叠段的Z轴对齐。
所述EVP流生成器452可应用以下转换进行旋转:
[X,Y,Z]=RXYZ·[X′,Y′,Z′]
其中,RXYZ=RY(yawserver)·RZ(-pitchserver)·RX(rollserver)。其中, (yawserver,pitchserver,rollserver)是为各自的重叠段定义的偏航值、俯仰值和滚转值。
在所述旋转之后,EFOV帧球体的像素可以有效地由本领域所知的矩形包围。
如步骤510所示,所述EVP流生成器452可将旋转的重叠球体转换为多种投影格式中的一种的EFOV帧,例如,ERP、直线投影、CMP、EAP、OHP等。
所述EVP流生成器452可首先从旋转的重叠球体裁剪EFOV帧。所述EVP流生成器452可应用如下转换X,Y,Z→(φr,θr)→(ur,vr)→(mr,nr),以生成ERP格式的EFOV帧。
从(X,Y,Z)坐标到经纬度(φr,θr)的转换由下式给出:
φr=arctan(-Z/X)
从(φr,θr)坐标到(ur,vr)平面的转换由下式给出:
ur=φr/(2π)+0.5
vr=0.5-θr/π
从(ur,vr)到点(mr,nr)的转换由下式给出:
mr=ur*W-0.5
nr=vr*H-0.5
然后,所述EVP流生成器452可转换所述球体的裁剪重叠段304,以创建所述多种投影格式中的一种的EFOV帧。
所述EVP流生成器452可以进一步将ERP样本从(mr,nr)周围的相邻点插值到EFOV网格点(m,n)。可能需要进行插值,因为(mr,nr)可能不位于ERP帧的网格点,这是从球体点(X,Y,Z)到目的ERP平面上的点的投影的结果。一种更有效的替代方案可以是在旋转RXYZ之前先在源平面,即,ERP平面上应用插值。在这个优选的替代方案中,这些网格点位于反向投影(和反向旋转)点的附近,而这些点不必落在网格点上。
可选地,所述EVP流生成器452还将所述EFOV帧中的一个或多个从ERP格式转换为直线格式。
如步骤512所示,所述编码器454可以使用一个或多个编码协议,具体是视频编码协议,例如,MPEG、H.264、H.265、H.266等,对生成的EFOV帧进行编码,以生成EVP流。
所述编码器454还可以将附加数据关联(包括)到EFOV帧中的一个或多个EFOV帧,例如,时间戳、EFOV帧状态数据、与EFOV帧对应的重叠段的坐标等。所述EFOV状态数据例如可以包括FOV数据,所述FOV数据可以根据所述服务器EVP流生成器452使用的坐标系来表示,例如,假设欧拉角系统,所述FOV状态数据可以通过FOV偏航值、FOV俯仰值和FOV滚转值来表示。所述EFOV状态数据还可以包括EFOV帧各自的重叠段的尺寸,例如,宽度、高度等。所述EFOV状态数据还可以包括所选择的投影格式,例如,ERP格式、直线格式等的EFOV帧的尺寸,例如宽度、高度等。此外,所述EFOV状态数据可以包括从所述客户端设备106处的EFOV帧中裁剪的帧的尺寸,例如宽度、高度等,以供所述显示器 430呈现给用户100。
所述编码器454可使用一个或多个技术和/或实现方式对所述附加数据进行编码。例如,所述编码器454可在各自的EFOV帧本身中嵌入一个或多个EFOV帧的附加数据,即,作为编码后的EFOV帧数据的一部分。再例如,所述编码器454可以将所述附加数据添加为包括在EFOV帧和/或EVP流的一个或多个头部中的元数据,例如,文本数据等。所述编码器454 可自然地根据选择的视频编码协议将元数据和/或文本数据添加到EFOV帧和/或EVP流的一个或多个头部中。再例如,所述编码器454可在与承载EFOV帧的EVP流分开的一个或多个单独流中编码所述附加数据,所述单独流通过所述网络122传输给所述分发设备104。所述单独传输的附加数据可以通过一种或多种方式,例如,通过分配所述附加数据以及与各自的EFOV帧对应的标记(identification code,简称ID)与其各自的EFOV帧相关联。
如步骤514所示,所述视频发送器456等视频发送器可将所述多个EVP流生成器452生成的N个EVP流传输给一个或多个分发设备104。
可选地,为了保持所述编码装置102与所述分发设备104之间的低时延,所述视频发送器456可以操作所述网络接口402以使用实时媒体传输协议下发所述EVP流,例如,在具有小于10ms(毫秒)的时延的超低时延视频编解码器信道上的实时传输协议(Real TimeTransport Protocol,简称RTP)等。
现参考图7,图7示出了本发明的一些实施例提供的为VR 360视频文件定义的球体的多个重叠段中各自的重叠段分别生成的多个捕获的EFOV帧。图7呈现由多个EFOV帧表示的多个视口,每个EFOV帧描绘由示例性VR 360视频文件定义的球体的多个重叠段中各自的重叠段。每个所述EFOV帧是由所述多个EVP流生成器452中的相应的一个EVP流生成器 452生成的所述多个EVP流中的相应的一个EVP流的一部分。如图所示,每个EVP流的EFOV 帧与描绘纵轴(方向)和纬轴(方向)中相邻重叠段的EFOV帧在很大程度上重叠。
再次参考图5。
迭代过程可以在实时流模式中完成,其中,创建的EVP流由所述视频发送器456传输给所述一个或多个分发设备104。可选地,所述迭代过程在离线模式下完成,其中,所述创建的EVP流本地存储在所述编码装置102中,例如,存储在所述存储器406等存储器中。所存储的EVP流可以稍后传输给一个或多个分发设备104,特别是在所述一个或多个分发设备104 的请求下。这种操作模式可应用于提供视频点播(Video on Demand,简称VOD)服务,其中,视频内容,即,所存储的EVP流已在所述编码装置102处可用,并且由所述视频发送器456响应来自所述一个或多个分发设备104的需求而传输。
所述多个EVP流可以与将每个EVP流映射到其各自的重叠段的各自的坐标的数据集分别发送和/或存储。可选地,所述多个EVP流可以传输和/或存储为单个文件和/或流,所述数据集还映射了所述单个文件和/或流中的EVP流的位置(即,起点和终点)。
可选地,根据可从所述网络122和/或所述网络124的时延导出的服务质量(Quality of Service,简称QoS)和/或体验质量(Quality of Experience,简称QOE)调整重叠段的大小以及各自的EFOV帧的面积。所述时延,具体为指示网络往返通信行程时延的RTT由QoS/QoE 控制器458等QoS/QoE控制器在所述编码装置102处计算和/或报告。所述QoS/QoE控制器 458可以通过从由一个或多个分发设备104执行的所述QoS/QoE生成器462等QoS/QoE生成器接收的一个或多个QoE消息来获得QoS(服务质量)和/或QoE(体验质量)信息。
所述编码装置102可以根据RTT的变化动态调整EFOV帧的面积大小,具体为DiffSize。例如,假设到所述分发设备104和/或到所述一个或多个客户端设备106的EVP流中的一个或多个EVP流的QoS增加,即,所述一个或多个EVP流的RTT增大,所述编码装置102可增加所述EFOV帧的大小以增加下发给所述一个或多个客户端设备106的呈现数据的缓冲区。所述一个或多个客户端设备106依次可以使用较大的缓冲区以创建适用于所述客户端设备 106处的FOV变化的FOV帧,所述FOV帧在来自所述分发设备104的EVP流的传输时间内发生。再例如,假设EVP流的QoS降低,即,所述EVP流的RTT减小,所述编码装置102 可减小一个或多个EVP流中编码的EFOV帧的大小,以减少所述编码装置102和所述一个或多个客户端设备106中分别对所述EVP流进行编码和解码所需的计算资源。所述计算资源的这种减少可涉及处理资源的减少、存储资源的减少等。此外,所述减小的EFOV帧可能需要所述网络124和/或所述网络122的减小的带宽,以传输所述减小的大小的EVP流。也可以降低EVP流的RTT,并提高QoE。
类似地,所述编码装置102可以根据所述QoS/QoE控制器458收集和/或计算的QoE信息,动态调整EVP流中一个或多个EVP流的EFOV帧,具体地调整所述EFOV帧的面积大小,例如DiffSize,以有效补偿所报告和/或测量的QoE。所述QoE可以例如通过MTP来表示,即,在所述客户端设备处改变FOV的时间与当接收到与所述FOV变化相对应的更新的一个或多个EFOV帧并将所述更新的一个或多个EFOV帧呈现给所述用户110的时间之间的时间。
可选地,所述EVP流生成器452中的一个或多个为所述各自的重叠段生成多个IDR移位 EVP流。每个IDR移位EVP流在VR 360视频,即,各自的EVP流的图像组(Group ofPictures,简称GOP)的连续帧中都包含IDR帧。
所述视频编码协议用于编码EVP流,通常定义一个GOP用于构造所述EVP流中的帧序列。每个GOP包括多个连续帧,这些连续帧可以至少部分地相互依赖。所述GOP中的帧的数量,例如,4、8、12等可以根据所述视频编码协议的一个或多个参数而变化,例如,协议的类型、协议的配置文件、编码视频的内容(例如,场景动态、场景变化等)等。
现参考图8,图8是本发明的一些实施例提供的为VR 360视频文件定义的球体的多个视口生成的多个瞬时解码刷新(Instantaneous Decoding Refresh,简称IDR)移位EVP流的示意图。执行所述EVP流生成器452等多个EVP流生成器的所述编码装置102等编码装置可以生成多个IDR移位EVP流。图8示出了由生成EVP流的EVP流生成器452中的某个生成的 IDR移位EVP流的生成,例如,分别利用8帧GOP编码的EVP流n-1、EVP流n和EVP 流n+1。如图所示,所述EVP流生成器452可以为每个EVP流n-1、n和n+1生成多个 IDR移位EVP流。具体地,所述EVP流生成器452生成8个IDR移位EVP流,使得每个IDR 移位EVP流在所述GOP的连续帧中包含IDR帧。这意味着每个IDR移位EVP流包括GOP,其中,在每个GOP中IDR帧位于GOP的不同帧中。因此,为各自的EVP流创建的IDR移位EVP流的数量可能等于所述GOP中的帧的数量。因此,第一IDR移位EVP流(1)在帧位置1处具有IDR帧,第二IDR移位EVP流(2)在帧位置2处具有IDR帧,第三IDR移位EVP流(3)在帧位置3处具有IDR帧,以此类推,第八IDR移位EVP流(3)在帧位置 8处具有IDR帧。
下面是为图2和图3A至图3C所示的例子。所述IDR移位EVP流的数量N为 162×8=1296。
所述EVP流生成器452可以生成具有实质上相似的比特率的相同视口的所述多个IDR移位EVP流。
现参考图9,图9是本发明的一些实施例提供的由所述分发设备104等分发设备执行的用于向所述客户端设备106等多个客户端设备下发EVP流的示例性过程的流程图。
如步骤902所示,过程900开始于所述分发设备104,具体而言,所述视频分发器460等视频分发器从所述编码装置102等编码装置接收多个N个EVP流。
如针对所述过程500的描述,所述视频分发器460可以实时流模式从编码装置接收EVP 流,其中,接收创建的EVP流并同时分发给所述客户端设备106。可选地,所述视频分发器460在离线模式下操作,其中,预先从所述编码装置102接收多个EVP流并本地存储在所述分发设备104中,例如,存储在所述存储器416等存储器中,以便稍后分发给一个或多个客户端设备106。例如,所述离线操作模式可应用于提供VOD服务,其中,视频内容,即所存储的EVP流已在所述分发设备104处可用,并且响应来自所述一个或多个客户端设备106的需求而提供给所述一个或多个客户端设备106。
如步骤904所示,所述视频分发器460可从所述一个或多个客户端设备106中接收当前方位数据,指示各自的客户端设备106的当前方位,具体指示用户110等用户选择的用于观看显示器430等显示器呈现的VR 360视频文件的当前FOV。所述当前方位数据可以包括客户端设备的定位信息,例如,水平FOV角度值、垂直FOV角度值、偏航值、滚转值、俯仰值等。所述当前方位数据通常可以包括所述客户端设备106为所述当前方位数据分配的时间戳,其中,每个时间戳指示关联方位数据的捕获时间。
可选地,所述视频分发器460从所述一个或多个客户端设备106中接收EVP流的GOP中当前呈现帧的指示。所述指示指示当前由各自的客户端设备106的显示器430呈现给各自的用户110的EVP流的GOP内的帧,例如,帧号。
可选地,所述QoS/QoE生成器462等QoS/QoE生成器从所述一个或多个客户端设备106 接收RTT等QoS信息和/或MTP等QoE信息。基于接收到的QoS/QoE信息,所述QoS/QoE 生成器462可以计算所述网络124的网络时延。所述QoS/QoE生成器462还可以为所述网络 122收集和/或生成QoS/QoE信息。此外,所述QoS/QoE生成器462可将针对所述网络122 和/或所述网络124的QoS/QoE信息传输给由所述编码装置102执行的所述QoS/QoE控制器 458等QoS/QoE控制器。如前所述,所述编码装置可以根据QoS/QoE信息调整EFOV帧的面积大小。
如步骤906所示,对于每个客户端设备106,所述视频分发器460根据从各自的客户端设备106接收的当前方位数据选择EVP流中的一个。这意味着对于每个客户端设备106,所述视频分发器460根据各自的用户110选择的FOV(视点)选择最适合观看VR 360视频文件的EVP流。
对于每个客户端设备106,所述视频分发器460可分析各自的当前方位数据以识别各自的客户端设备106的方位,该方位指示各自的用户110选择的FOV。基于所识别的FOV,所述视频分发器460可以选择与所识别的FOV最佳融合的EVP流之一,即,选择的EVP流的 EFOV帧的中心最接近所识别的FOV的中心。
所述视频分发器460可以基于将多个重叠段中的每个重叠段映射到VR 360视频文件定义的球体中其各自的坐标的数据集的分析选择所述EVP流,以识别与所识别的FOV的坐标匹配的重叠段,并选择与匹配的重叠段对应的EVP流。
如步骤908所示,所述视频分发器460将所选择的一个或多个EVP流传输给各自的一个或多个客户端设备106。
可选地,为了保持所述分发设备104与所述客户设备106之间的低时延,所述视频分发器460可以操作所述网络接口412以使用实时媒体传输协议将所述EVP流下发给所述一个或多个客户端设备106,例如,在具有小于10ms(毫秒)的时延的超低时延视频编解码器信道上的RTP等。
所述过程900可以包括多次迭代,其中,重复步骤904至908,以使所述一个或多个客户端设备106根据从各自的一个或多个客户端设备106接收的更新后的当前方位数据选择最合适的EVP流。
在所述过程900的迭代期间,所述视频分发器460可保持将与VR 360视频文件定义的球体的某一重叠段对应的同一EVP流下发给所述一个或多个客户端设备106,或决定切换到对应于与某一重叠段相邻的相邻重叠段的另一个EVP流。
所述视频分发器460决定为某个客户端设备选择所选择的EVP流,具体如下:
在这种情况下,基于对从某一客户端设备106接收的当前方位数据的分析,所述视频分发器460识别用户选择的FOV与在前一迭代期间选择的FOV实质上相似。所述视频分发器 460将来自同一EVP流的EFOV帧下发给某一客户端设备106,从而保持低时延编码器的参考帧序列(即,GOP结构)的连续性。
在这种情况下,基于分析,所述视频分发器460识别用户选择的FOV相对于前一迭代期间选择的FOV超过某个阈值的变化。所述视频分发器460可决定切换到与新选择的FOV匹配的相邻重叠段对应的另一个EVP流,并将所述另一个EVP流的EFOV帧下发给某一客户端设备106。
所述视频分发器460用于确定是否切换的阈值可以被视为如图3C所述的切换范围。因此,FOV的变化可与所述阈值进行比较,具体如下:
可选地,特别是在切换到对应于相邻重叠段的另一个EVP流的情况下,所述视频分发器 460从IDR移位的EVP流中选择一个传输给某个客户端设备106。当然,假设所述视频分发器460能够从所述编码装置102和/或从所述存储器416等本地存储器以实时流模式访问所述 IDR移位EVP流,这是可行的。
在所述视频分发器460决定向某个客户端设备106传输另一个EVP流,且所述另一个 EVP流与所述编码装置102生成的多个IDR移位流相关联的情况下,所述视频分发器460可以根据从某个客户端设备106接收的当前EVP流的GOP中的当前呈现帧的指示选择所述IDR 移位的EVP流。这可用于通知由所述客户端设备106执行的所述视频解码器450等视频解码器应该使用新的参考EFOV帧,这是因为作为先前传输的EVP流的一部分的先前参考EFOV 帧不再与当前和未来EFOV帧相关。
可选地,所述视频分发器460根据各自的客户端设备106的方位的方位预测选择传输给一个或多个客户端设备106的EFOV帧的EVP流。方位预测器,例如所述方位预测器464可以预测所述客户端设备106的方位的更新,所述更新指示由各自的用户110选择的FOV。所述方位预测器464可以基于从各自的客户端设备106接收的当前方位数据来预测,还可以基于在所述过程900的一个或多个前一迭代期间接收的方位数据来预测。
可选地,所述视频分发器460根据从各自的客户端设备106接收到的请求选择传输给一个或多个客户端设备106的EFOV帧的EVP流。所述一个或多个客户端设备106可本地分析当前方位数据以识别由各自的用户110选择的FOV的变化,这类似于由所述视频分发器460 所做的那样。基于所述分析,所述客户端设备106可以确定所述各自的用户110选择的FOV 相对于在前一迭代(帧呈现)期间选择的FOV的变化超过阈值。在这种情况下,所述客户端设备106可以向所述视频分发器460发出切换请求,请求切换到另一个EVP流,具体地,是另一个IDR移位EVP流。所述客户端设备106可以使用一个或多个实现方式选择所请求的EVP流和/或所请求的IDR移位EVP流。例如,所述客户端设备106可以使用将EVP流中的每个EVP流映射到球体中的各自的重叠段和坐标的映射数据集来确定EVP流中的哪个EVP 流最匹配FOV中的空间变化。所述映射数据集可从所述分发设备104对所述客户端设备106 可用。此外,在由所述编码设备102创建这样的文件的情况下,所述客户端设备106可以使用映射信息指示所请求的EVP流在合并文件中的起点和终点。再例如,映射对应重叠段的坐标的映射信息可以包含在所述EVP流中,例如,在元数据中。在这种情况下,客户端设备可以识别与新选择的FOV最匹配的EVP,并且可以请求所述视频分发器460相应地提供EVP 流。
此外,由于所述客户端设备106可以知道GOP的当前呈现帧,因此,所述客户端设备106可以请求所述视频分发器460提供合适的IDR移位EVP流。所述客户端设备106可以使用映射数据集识别所请求的IDR移位EVP流。
现参考图10,图10是本发明实施例提供的由所述客户端设备106等客户端设备执行的用于接收显示器呈现给用户的VR 360视频文件的EVP流的示例性过程的流程图。
如步骤1002所示,过程1000开始于客户端帧管理器472等客户端帧管理器,向分发设备104等分发设备传输请求,以打开和建立用于接收(流式传输)VR 360视频内容的通信会话,例如,某个VR 360视频文件等。所述通信会话可以利用网络等网络上的会话链路,例如,使用一个或多个视频内容下发(流式传输)协议,例如,MPEG、H.264、H.265等的传输链路等。
所述会话链路可以支持在所述分发设备104和所述客户端设备106之间交换数据、控制数据、消息等。所述会话链路可用于所述分发设备104向所述客户端设备106下发为VR360 视频文件生成的一个或多个EVP流。所述会话链路还可以用于所述客户端设备106关于所提供的VR 360视频内容发布控制命令,例如打开、关闭、启动、暂停、播放、恢复等命令。
在会话开始时,所述客户端帧管理器472可以将操作信息传输给所述分发设备104,特别是所述客户端设备106关于VR 360视频的消费和/或流式传输的能力。例如,所述客户端帧管理器472可传输其可用的网络资源(例如,带宽等)、可用的计算资源,可用的存储资源等。所述客户端帧管理器472还可以传输与显示器430等显示器相关的操作信息,例如,2D 呈现支持、3D呈现支持、显示大小、显示分辨率等。所述客户端帧管理器472还可以向所述分发设备104提供与用户110与所述客户端设备106的交互能力相关的操作信息。例如,此类操作信息可以包括所述客户端设备106等所支持的和/或允许的最大角速度。
在会话开始时,所述客户端帧管理器472可进一步报告、定义和/或协商所选择的投影格式,例如,ERP、直线投影、CMP、EAP、OHP、PSP等。此时,所述客户端帧管理器472 还可以报告、定义和/或协商在EVP流下发会话期间可能使用的时间戳等所选择的格式。
如步骤1004所示,所述方位数据生成器476等方位数据生成器可将当前方位数据传输给所述分发设备104,具体地传输给所述视频分发器460等视频分发器。所述当前方位数据可指示所述客户端设备106的当前方位,具体而言,是所述用户110选择的用于观看由所述客户端设备106的显示器430呈现的VR 360视频文件的帧的当前FOV(例如,FOV的中心)。可以以比对所接收的EVP流EFOV帧进行解码的速率更高的速率来完成所述当前方位数据的传输,以便提高所述分发设备104对所述客户端设备106的位置(FOV)变化的响应性,从而降低MTP时延。例如,可以每1毫秒向所述分发设备104发送所述当前方位数据,而可以以例如16.66毫秒(60Hz)、11.11毫秒(90Hz)、8.33毫秒(120Hz)等速率来完成EVP流解码。因此,所述方位数据生成器476可以独立于所述客户端帧管理器472操作,从而避免了在将更新后的当前方位数据发送给所述分发设备104之前等待步骤1020完成。
所述方位数据生成器476可根据从用于监测和捕获所述客户端设备106的方位的传感器 428等一个或多个传感器收集、获取和/或接收的感官数据来生成所述当前方位数据。所述传感器428的类型及其部署可以自然地取决于所述客户端设备106和/或所述显示器430的类型和能力。
例如,所述客户端设备106可以包括所述显示器430支持3D呈现的HMD、立体护目镜等。在这种情况下,一个或多个传感器428可包括例如加速度计、陀螺仪、IMU、激光位置传感器、成像传感器等,用于监测和捕获所述用户110的姿势和/或动作。所述用户110的姿势和/或动作,例如头部姿势、一个或多个手势、身体姿势/动作等,可以指示所述用户110 选择的所述客户端设备106的方位,具体是所述用户110选择的要由所述显示器430呈现的 VR 360视频内容的FOV。
再例如,所述客户端设备106可包括支持2D呈现的2D显示器(平面屏幕),例如,智能手机、平板电脑等。在这种情况下,所述一个或多个传感器428可以包括例如加速度计、陀螺仪、IMU等,用于监测和捕获所述客户端设备106自身的方位。所述客户端设备106的方位可以指示用于观看所述用户110选择的要由所述显示器430呈现的VR 360视频内容的 FOV。在这种情况下,所述一个或多个传感器428还可以被一个或多个定点设备使用,例如,鼠标、触摸屏、触控板等,这些定点设备可以指示所述用户110选择的用于观看所述VR 360 视频内容的方位。
所述当前方位数据可以包括所述客户端设备106的定位信息,例如,水平FOV角度值、垂直FOV角度值、偏航值、滚转值、俯仰值等。所述当前方位数据通常可以包括分配给当前方位数据的时间戳,其中,每个时间戳指示关联方位数据的捕获时间。所述时间戳可由所述方位数据生成器476和/或捕获感官数据的一个或多个传感器428分配给所述关联方位数据。
可选地,QoS/QoE收集器,例如,所述QoS/QoE收集器474收集QoS信息和/或QoE 信息,例如,RTT、MTP等,并将其传输给所述分发设备104,具体是传输给QoS/QoE生成器,例如,所述QoS/QoE生成器462。所述QoS和/或QoE信息可以指示时延,具体地,数据通过网络124从所述分发设备104下发给所述客户端设备106的RTT。
如步骤1006所示,所述解码器470等解码器可从所述分发设备104,具体从所述视频分发器460接收包括一个或多个EFOV帧的编码后的EVP流。所述EVP流可以使用一个或多个编码协议进行编码,具体是视频编码协议,例如,MPEG、H.264、H.265、H.266等。所述 EVP流和/或一个或多个附加流还可以包括与一个或多个EFOV帧相关联的附加数据。所述解码器470可解码一个或多个流以提取EFOV帧和可选地关联附加数据。
所述解码器470可以将所述EFOV帧和/或所述附加数据提供给所述客户端帧管理器472。所述解码器470还可以将数据,特别是附加数据提供给所述QoS/QoE收集器474,所述QoS/QoE收集器474可以基于所述附加数据的定时信息,例如,所述附加数据中包含的时间戳生成QoS和/或QoE信息。所述QoS/QoE收集器474可以根据定时信息,例如,时间戳计算RTT。
如步骤1008所示,所述客户端帧管理器472从所述方位数据生成器476获取更新后的当前方位数据,所述方位数据生成器476根据从所述一个或多个传感器428获取的更新后的感官数据生成所述更新后的当前方位数据。所述更新后的当前方向数据指示所述客户端设备106 的更新后的方位,所述更新后的方位自从所述分发设备104传输到所述客户端设备106的EVP 流的选择以来可能已经改变。所述更新后的当前方位数据可以被指定为所述客户端设备106 的更新后的当前偏航值、俯仰值和滚转值,即(yawclient,pitchclient,rollclient)。
由于所述客户端设备106的方位可能发生变化,即,用户选择了新的FOV以观看显示器430呈现的VR 360视频,所述分发设备104根据之前传输的当前方位数据选择的EVP 流的EFOV帧可能与更新后的当前方位数据不对齐。因此,从所述EVP流中提取的一个或多个EFOV帧可能需要调整,例如,裁剪、移位、放大/缩小等以适应更新后的当前方位数据。
如步骤1010所示,所述客户端帧管理器472定义由所述显示器430呈现的FOV帧的大小,例如,宽度、高度等。所述客户端帧管理器472可以应用所述过程500的步骤508中描述的操作和/或方法自然地使用不同参数来定义所述FOV帧的大小。所述客户端帧管理器472可以根据以下定义FOV帧(WVP,HVP)的大小:
-FOV角度的更新值,即,水平FOV角度值(FH)和垂直FOV角度值(FV);
-ERP格式的维度。
所述客户端帧管理器472还可以定义要由所述显示器430生成的用于呈现的帧的更新后的网格点(mclient,mclient)。
然后,所述客户端帧管理器472可以在球体上投影所述网格点(mclient,nclient),具体如下:(mclient,nclient)→(uclient,vclient)→(X′,Y′,Z′)。
现参考图11,图11是具有直线投影的视口生成的示意图。
从视口帧上的网格点(mclient,nclient)到2D(uclient,vclient)平面用于直线投影的转换由下式给出:
0≤mclient<WVP
0≤nclient<HVP
uclient=(mclient+0.5)*2*tan(FH/2)/WVP
vclient=(nclient+0.5)*2*tan(FV/2)/HVP
然后,从(uclient,vclient)到3D坐标(X,Y,Z)的转换由下式给出:
X=uclient-tan(FH/2)
Y=-vclient+tan(FV/2)
Z=1
在单位球体上将点(X,Y,Z)投影到点(X′,Y′,Z′)由下式给出:
如步骤1012所示,所述客户端帧管理器472可旋转球体的片段以将所述球体的片段与由所述用户110选择的并由所述客户端设备106的更新后的当前方位指示的更新的FOV对齐。所述客户端帧管理器472可以应用所述过程500的步骤508中描述的操作和/或方法来旋转所述球体。
所述客户端帧管理器472可以根据更新后的当前方位数据,具体地,根据所述客户设备 106的更新后的当前偏航值、俯仰值和滚转值使用旋转矩阵来旋转所述球体,具体是旋转所述球体的片段,以使所述球体的Z轴与所述用户110的FOV的Z轴对齐。
所述客户端帧管理器472可应用以下转换进行旋转:
所述旋转包括两个旋转矩阵的乘积。第一旋转应用于单位球体上的每个点 [X′,Y′,Z′],以反转应用于服务器的旋转。然后,应用第二旋转使得EFOV帧球体的像素可以与通过更新后的当前方位数据表示的用户110的FOV对齐。
如步骤1014所示,所述客户端帧管理器472可将所述球体的旋转段转换为多种投影格式中的一种的EFOV帧,例如,ERP、直线投影、CMP、EAP、OHP、PSP等。所述客户端帧管理器472可以应用所述过程500的步骤510中描述的操作和/或方法来转换更新后的EFOV 帧。所述客户端帧管理器472可以按照所述过程500的步骤510中描述的方式应用如下转换 [X,Y,Z]→(φr,θr)→(ur,vr)→(mr,nr)。
如步骤1016所示,所述客户端帧管理器472可以根据更新后的方位数据从旋转后的 EFOV中裁剪实际FOV帧。所述客户端帧管理器472可以裁剪所述EFOV帧的ERP部分、指定的EFOVcrop及其与所述实际FOV帧相关的索引
所述客户端帧管理器472还可以使用所述过程500的步骤510中描述的EFOVcrop从到网格点(mclient,nclient)插值ERP样本。可能需要进行插值,因为 (mclient,nclient)可能不位于ERP平面的网格点,这是从球体点(X,Y,Z)到目的ERP平面上的点的投影的结果。一种更有效的替代方案是在旋转之前先在源平面,即,ERP平面上应用ERP样本的插值。在这个优选的替代方案中,这些网格点位于反向投影 (和反向旋转)点的附近,而这些点不必落在网格点上。
如步骤1018所示,所述客户端帧管理器472可将ERP投影格式中的实际FOV帧转换为所述显示器430支持的投影格式,例如,直线投影格式。
自然地,在所述显示器430支持3D呈现的情况下,所述客户端帧管理器472重复该过程以生成两个实际FOV帧,第一个实际FOV帧用于右眼,第二个实际FOV帧用于左眼。对于所述显示器430仅支持2D呈现的客户端设备106,可以创建单个实际FOV帧。
如步骤1020所示,所述客户端帧管理器472可指示所述显示器430呈现所述实际FOV 帧。
所述过程1000可以包括多次迭代,其中,重复步骤1006至1020以从根据当前方位数据选择的所述分发设备104接收EVP流,并且可以以更高的速率重复步骤1004以传输所述当前方位数据。
如前文所述,所述当前方位数据的传输(步骤1004)可以以比对EFOV帧进行解码(步骤1006至1020)的速率更高的速率来完成,以便提高所述分发设备104对所述客户端设备 106的位置(FOV)变化的响应性,从而降低MTP时延。因此,所述方位数据生成器476可以独立于所述客户端帧管理器472操作,从而避免了在将更新后的当前方位数据发送给所述分发设备104之前等待步骤1020完成的需要。
现参考图12,图12示出了本发明的一些实施例提供的捕获示例性VR 360视频帧、从所述VR 360视频帧生成的示例性各自的EFOV帧以及从所述EFOV帧生成的各自的实际FOV帧。示例性VR 360视频1202可以根据VR 360视频文件定义的球体的分割方案由所述EVP 流生成器452等EVP流生成器处理,例如,裁剪、渲染等。所述EVP流生成器452可以创建示例性EFOV帧1204,所述EFOV帧1204在欧拉角坐标系中位于(φ=0,θ=0,ψ=0)的中心。然后,所述EFOV帧1204可以在EVP流中编码并传输给所述分发设备104等分发设备,所述分发设备依次可以将所述EFOV帧1204传输给所述客户端设备106等客户端设备。所述客户端设备106执行的所述解码器470等解码器可以接收携带所述EFOV帧1204的EVP 流,并解码所述EVP流以提取所述EFOV帧1204。客户端帧管理器,例如,所述客户端帧管理器472可以处理所述EFOV帧1204,以生成各自的直线投影格式的实际FOV帧1206,所述实际FOV帧1206根据所述显示器430等显示器呈现的实际FOV帧的大小进行调整。此外,可以看出,根据更新后的当前方位数据旋转所述EFOV帧1204,使得所述FOV帧1206 位于(φ=4,θ=0)的中心。
预期在从本申请中逐渐成熟的专利的有效期内,将开发许多相关的投影格式、编码技术和视频传输,并且术语投影格式、编码技术和视频传输的范围旨在先验地包括所有此类新技术。
本文所使用的术语“约”是指±10%。
术语“包括”、“有”及其结合是指“包括但不限于”。
术语“构成”是指“包括但不限于”。
除非上下文中另有明确说明,此处使用的单数形式“一个”和“所述”包括复数含义。例如,术语“一个复合物”或“至少一个复合物”可以包括多个复合物,包括其混合物。
在整个本申请中,本发明的各种实施例可以范围格式呈现。应理解,范围格式的描述仅为了方便和简洁起见,并且不应该被解释为对本发明范围的固定限制。因此,对范围的描述应被认为是已经具体地公开所有可能的子范围以及所述范围内的个别数值。例如,对于例如从1到6的范围的描述应被认为已经具体地公开从1到3、从1到4、从1到5、从2到4、从2到6、从3到6等的子范围以及所述范围内的个别数字,例如1、2、3、4、5和6。不论范围有多广,这都适用。
当此处指出一个数字范围时,表示包含了在指出的这个范围内的任意所引用的数字(分数或整数)。短语“在第一个所指示的数和第二个所指示的数之间的范围”以及“从第一个所指示的数到第二个所指示的数的范围”在这里可互换使用,表示包括第一个和第二个所指示的数以及二者之间所有的分数和整数。
应了解,为简洁起见在单独实施例的上下文中描述的本发明的某些特征还可以组合提供于单个实施例中。相反地,为简洁起见在单个实施例的上下文中描述的本发明的各种特征也可以单独地或以任何合适的子组合或作为本发明的任何合适的其它实施例提供。在各种实施例的上下文中描述的某些特征未视为那些实施例的基本特征,除非没有这些元素所述实施例无效。
Claims (16)
1.一种用于生成虚拟现实VR数据的多个扩展视口流,以下发给多个客户端设备的编码装置,包括:
处理单元,用于:
将投影为等距柱状投影ERP格式的VR视频文件中定义的球体分割成多个重叠段;
在多次迭代中的每次迭代中,通过执行以下操作为所述VR视频文件创建多个扩展视口流:
旋转所述球体的所述多个重叠段中的每个重叠段;
从所述球体的多个旋转重叠段中的每个旋转重叠段裁剪各自的扩展视场EFOV帧;
指示网络将所述多个旋转重叠段中的每个旋转重叠段各自的所述EFOV帧传输给一个或多个分发设备;
所述处理单元还用于:根据所述EFOV帧的面积,将所述球体分割成所述多个重叠段,其中,所述EFOV帧的面积是根据所述装置与一个或多个所述分发设备之间通信的估计时延值计算;所述处理单元根据包括来自一个或多个所述分发设备的往返时延RTT数据的体验质量QoE消息中包含的时间戳计算所述估计时延值。
2.根据权利要求1所述的编码装置,其特征在于,所述处理单元根据所述EFOV帧的面积,将所述球体分割成所述多个重叠段,其中,所述EFOV帧的面积是根据用于呈现所述多个扩展视口流中的一个扩展视口流的显示器的最大角速度计算。
3.根据权利要求1或2所述的编码装置,其特征在于,所述处理单元用于按照多种投影格式中的一种对所述EFOV帧进行编码,其中,所述多种投影格式包括由以下一个或多个:ERP、直线投影、立方体图投影CMP、等面积投影EAP、八面体投影OHP以及柏拉图固体投影PSP。
4.根据权利要求1或2所述的编码装置,其特征在于,所述处理单元在将每个所述EFOV帧添加到所述多个扩展视口流中的各自的扩展视口流之前,将每个所述EFOV帧从等距柱状投影格式转换为直线格式。
5.根据权利要求1或2所述的编码装置,其特征在于,所述处理单元还用于通过从所述VR视频文件的图像组GOP的连续帧开始重复多个迭代中的每个迭代,为所述多个扩展视口流中的每个扩展视口流创建多个瞬时解码刷新IDR移位视口流,其中,为所述多个扩展视口流中的每个扩展视口流创建的所述多个瞬时解码刷新IDR移位视口流的数量等于所述GOP中的帧的数量,使得所述多个扩展视口流中的每个扩展视口流的所述多个瞬时解码刷新IDR移位视口流中的每个IDR移位视口流包括所述GOP中的不同帧位置的IDR帧。
6.根据权利要求1或2所述的编码装置,其特征在于,所述处理单元还用于将所述多个扩展视口流中的至少一个扩展视口流本地存储到所述编码装置中,直到由一个或多个所述分发设备请求为止。
7.一种用于生成虚拟现实VR数据的多个视口流,以下发给多个客户端设备的方法,其特征在于,包括:
操作编码装置中的处理单元以执行以下操作:
将投影为等距柱状投影ERP格式的VR视频文件中定义的球体分割成多个重叠段;
在多次迭代中的每次迭代中,通过执行以下操作为所述VR视频文件创建多个扩展视口流:
旋转所述球体的所述多个重叠段中的每个重叠段;
从所述球体的多个旋转重叠段中的每个旋转重叠段裁剪各自的扩展视场EFOV帧;
指示网络将所述多个旋转重叠段中的每个旋转重叠段各自的所述EFOV帧传输给一个或多个分发设备;
还操作编码装置中的处理单元以执行以下操作:根据所述EFOV帧的面积,将所述球体分割成所述多个重叠段,其中,所述EFOV帧的面积是根据所述装置与一个或多个所述分发设备之间通信的估计时延值计算;所述处理单元根据包括来自一个或多个所述分发设备的往返时延RTT数据的体验质量QoE消息中包含的时间戳计算所述估计时延值。
8.一种用于将虚拟现实VR数据的多个视口流中选择的一个视口流下发给多个客户端设备中的每个客户端设备的分发设备,其特征在于,包括:
处理单元,用于:
通过网络接收VR视频文件的多个扩展视口流,其中,所述多个扩展视口流中的每个扩展视口流包括扩展视场EFOV帧序列,所述扩展视场EFOV帧是为构成所述VR视频文件中定义的球体的多个重叠段中各自的重叠段创建的;
在多次迭代中的每次迭代中,通过为所述多个客户端设备中的每个客户端设备执行以下操作,将所述多个扩展视口流中的一个扩展视口流下发给通过一个或多个其它网络连接到所述分发设备的所述多个客户端设备中的每个客户端设备:
接收各自的所述客户端设备的当前方位数据;
根据所述当前方位数据,从所述多个扩展视口流中选择一个;
将所述选择的扩展视口流传输给各自的所述客户端设备;
所述处理单元还用于:接收来自各自的所述客户端设备的往返时延RTT数据,所述RTT数据在包含时间戳的体验质量QoE消息中被接收;其中,所述处理单元根据所述时间戳来计算各自的所述客户端设备和所述分发设备之间通信的估计时延值,其中,根据所述估计时延值计算所述EFOV帧的面积。
9.根据权利要求8所述的分发设备,其特征在于,所述多个扩展视口流中的一个或多个在接收后本地存储在所述分发设备中,直至被下发给一个或多个所述客户端设备。
10.根据权利要求8所述的分发设备,其特征在于,所述方位数据包括以下一个或多个:各自的所述客户端设备的水平视场FOV角度值、垂直FOV角度值、偏航值、滚转值和俯仰值。
11.根据权利要求8所述的分发设备,其特征在于,各自的所述客户端设备的当前方位数据包括所述时间戳。
12.根据权利要求8所述的分发设备,其特征在于,各自的所述客户端设备的当前方位数据包括各自的所述扩展视口流的图像组(group of pictures,简称GOP)中当前呈现的帧的指示,各自的所述扩展视口流包括由各自的所述客户端设备的显示器当前呈现的EFOV。
13.根据权利要求8至12任一项所述的分发设备,其特征在于,对于所述多个客户端设备中的每个客户端设备,所述处理单元还用于从为所述多个扩展视口流中的每个扩展视口流接收的多个瞬时解码刷新IDR移位视口流中选择一个,其中,为所述多个扩展视口流中的每个扩展视口流接收的所述多个瞬时解码刷新IDR移位视口流中的每个IDR移位视口流包括各自的所述扩展视口流在GOP中的不同帧位置的IDR帧;
所述处理单元在基于从各自的所述客户端设备接收的所述当前方位数据的情况下,根据从各自的所述客户端设备接收的当前呈现的帧的指示选择所选择的IDR移位视口流,所述处理单元确定从当前传输到各自的所述客户端设备的所述多个扩展视口流的当前扩展视口流切换到所述多个扩展视口流的相邻视口流;
所述相邻视口流包括为所述多个重叠段中的重叠段创建的EFOV帧,所述重叠段与所述当前扩展视口流中编码的所述多个重叠段中的当前重叠段相邻。
14.根据权利要求8至12任一项所述的分发设备,其特征在于,所述处理单元还用于:根据为所述客户端设备估计的未来方位数据的预测,为所述多个客户端设备中的一个或多个客户端设备选择所述扩展视口流。
15.根据权利要求8至12任一项所述的分发设备,其特征在于,所述处理单元还用于:根据从各自的所述客户端设备接收的指示所请求的扩展视口流的请求,为所述多个客户端设备中的一个或多个客户端设备选择所述扩展视口流。
16.一种用于将虚拟现实VR数据的多个视口流中选择的一个视口流下发给多个客户端设备中的每个客户端设备的方法,其特征在于,包括:
使用分发设备中的处理单元以:
通过网络接收VR视频文件的多个扩展视口流,其中,所述多个扩展视口流中的每个扩展视口流包括扩展视场EFOV帧序列,所述扩展视场EFOV帧是为构成所述VR视频文件中定义的球体的多个重叠段中各自的重叠段创建的;
在多次迭代中的每次迭代中,通过为所述多个客户端设备中的每个客户端设备执行以下操作,将所述多个扩展视口流中的一个扩展视口流下发给通过一个或多个其它网络连接到所述分发设备的所述多个客户端设备中的每个客户端设备:
接收各自的所述客户端设备的当前方位数据;
根据所述当前方位数据,从所述多个扩展视口流中选择一个;
将所述选择的扩展视口流传输给各自的所述客户端设备;
还使用分发设备中的处理单元以:接收来自各自的所述客户端设备的往返时延RTT数据,所述RTT数据在包含时间戳的体验质量QoE消息中被接收;其中,所述处理单元根据所述时间戳来计算各自的所述客户端设备和所述分发设备之间通信的估计时延值,其中,根据所述估计时延值计算所述EFOV帧的面积。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EPPCT/EP2017/084477 | 2017-12-22 | ||
PCT/EP2017/084477 WO2019120575A1 (en) | 2017-12-22 | 2017-12-22 | Vr 360 video for remote end users |
PCT/EP2018/068313 WO2019120638A1 (en) | 2017-12-22 | 2018-07-05 | Scalable fov+ for vr 360 video delivery to remote end users |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111567052A CN111567052A (zh) | 2020-08-21 |
CN111567052B true CN111567052B (zh) | 2022-01-14 |
Family
ID=60923496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880082956.7A Active CN111567052B (zh) | 2017-12-22 | 2018-07-05 | 用于将vr 360视频下发给远程终端用户的可缩放fov+ |
Country Status (4)
Country | Link |
---|---|
US (2) | US11546397B2 (zh) |
EP (2) | EP3721417A1 (zh) |
CN (1) | CN111567052B (zh) |
WO (2) | WO2019120575A1 (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11198063B2 (en) * | 2016-09-14 | 2021-12-14 | Square Enix Co., Ltd. | Video display system, video display method, and video display program |
US11575976B2 (en) * | 2018-08-07 | 2023-02-07 | Coredinate Inc. | Omnidirectional video streaming |
FR3084980A1 (fr) * | 2018-08-10 | 2020-02-14 | Orange | Methode et dispositif de diffusion de video a 360 degres |
KR102543228B1 (ko) * | 2018-10-18 | 2023-06-13 | 삼성전자주식회사 | 포터블 장치 및 그 제어방법 |
US11044185B2 (en) * | 2018-12-14 | 2021-06-22 | At&T Intellectual Property I, L.P. | Latency prediction and guidance in wireless communication systems |
US11625806B2 (en) * | 2019-01-23 | 2023-04-11 | Qualcomm Incorporated | Methods and apparatus for standardized APIs for split rendering |
CN113966600B (zh) * | 2019-05-20 | 2024-07-12 | 弗劳恩霍夫应用研究促进协会 | 沉浸式媒体内容呈现和交互式360°视频通信 |
EP3790241B1 (en) * | 2019-09-03 | 2024-06-12 | Siemens Aktiengesellschaft | Method and gateway device for transmitting datagrams via two or more networks |
US11023041B1 (en) * | 2019-11-07 | 2021-06-01 | Varjo Technologies Oy | System and method for producing images based on gaze direction and field of view |
WO2021144139A1 (en) * | 2020-01-14 | 2021-07-22 | Nokia Technologies Oy | Method, apparatus and computer program product providing for signaling of viewport orientation timing in panoramic video delivery |
US20210250257A1 (en) * | 2020-02-10 | 2021-08-12 | Charter Communications Operating, Llc | Virtual reality content streaming based on quality of experience level |
US11974026B2 (en) * | 2020-03-26 | 2024-04-30 | Nokia Technologies Oy | Apparatus, a method and a computer program for volumetric video |
GB2594714B (en) * | 2020-05-04 | 2022-12-07 | Createc Robotics Ltd | Virtual view generation |
CN116195255A (zh) | 2020-08-03 | 2023-05-30 | 杜比实验室特许公司 | 支持基于观看方向的比特流随机访问 |
WO2022056662A1 (en) * | 2020-09-15 | 2022-03-24 | Qualcomm Incorporated | Methods and apparatus for vr/ar in nr-dc |
KR20220039113A (ko) * | 2020-09-21 | 2022-03-29 | 삼성전자주식회사 | 엣지 컴퓨팅 서비스를 이용한 영상 컨텐츠 전송 방법 및 장치 |
CN112351277B (zh) * | 2020-11-04 | 2024-04-05 | 北京金山云网络技术有限公司 | 一种视频的编码方法和装置,视频的解码方法和装置 |
EP4278602A1 (en) * | 2021-03-12 | 2023-11-22 | Google LLC | Parallax occlusion rendering to reduce movement latency |
CN113119866B (zh) * | 2021-05-12 | 2022-12-02 | 中国第一汽车股份有限公司 | 一种基于流媒体的后视镜显示方法及显示装置 |
CN115529449A (zh) * | 2021-06-26 | 2022-12-27 | 华为技术有限公司 | 虚拟现实视频传输方法及装置 |
EP4125275A1 (en) * | 2021-07-27 | 2023-02-01 | Nokia Technologies Oy | A method, an apparatus and a computer program product for video conferencing |
CN113949893A (zh) * | 2021-10-15 | 2022-01-18 | 中国联合网络通信集团有限公司 | 直播处理方法、装置、电子设备及可读存储介质 |
US20230377215A1 (en) * | 2022-05-18 | 2023-11-23 | Google Llc | Adaptive color mapping based on behind-display content measured by world-view camera |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105939482A (zh) * | 2015-03-05 | 2016-09-14 | 诺基亚技术有限公司 | 视频流式传输方法 |
CN106358033A (zh) * | 2016-08-25 | 2017-01-25 | 北京字节跳动科技有限公司 | 一种全景视频关键帧编码方法和装置 |
WO2017127816A1 (en) * | 2016-01-22 | 2017-07-27 | Ziyu Wen | Omnidirectional video encoding and streaming |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1297634A1 (en) * | 2000-06-09 | 2003-04-02 | iMove Inc. | Streaming panoramic video |
US9168457B2 (en) * | 2010-09-14 | 2015-10-27 | Sony Computer Entertainment America Llc | System and method for retaining system state |
US8532383B1 (en) * | 2010-09-16 | 2013-09-10 | Pixia Corp. | Method of processing a viewport within large format imagery |
US20130326551A1 (en) * | 2012-05-30 | 2013-12-05 | Debdeep CHATTERJEE | Wireless multimedia quality of experience reporting |
US20140087877A1 (en) * | 2012-09-27 | 2014-03-27 | Sony Computer Entertainment Inc. | Compositing interactive video game graphics with pre-recorded background video content |
US10204658B2 (en) * | 2014-07-14 | 2019-02-12 | Sony Interactive Entertainment Inc. | System and method for use in playing back panorama video content |
US10430840B2 (en) * | 2015-08-21 | 2019-10-01 | Google Llc | Systems and methods for creating an interstitial ad experience within a scrolling content frame |
US20170094301A1 (en) * | 2015-09-28 | 2017-03-30 | Cybrook Inc. | Initial Bandwidth Estimation For Real-time Video Transmission |
US10432988B2 (en) * | 2016-04-15 | 2019-10-01 | Ati Technologies Ulc | Low latency wireless virtual reality systems and methods |
US10565916B2 (en) * | 2016-09-09 | 2020-02-18 | Kt Corporation | Providing streaming of virtual reality contents |
US10313686B2 (en) * | 2016-09-20 | 2019-06-04 | Gopro, Inc. | Apparatus and methods for compressing video content using adaptive projection selection |
US20180098131A1 (en) * | 2016-09-30 | 2018-04-05 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Apparatus and methods for adaptive bit-rate streaming of 360 video |
KR102561860B1 (ko) * | 2016-10-25 | 2023-08-02 | 삼성전자주식회사 | 전자장치 및 그 제어방법 |
US10712555B2 (en) * | 2016-11-04 | 2020-07-14 | Koninklijke Kpn N.V. | Streaming virtual reality video |
US10595069B2 (en) * | 2016-12-05 | 2020-03-17 | Adobe Inc. | Prioritizing tile-based virtual reality video streaming using adaptive rate allocation |
US10620441B2 (en) * | 2016-12-14 | 2020-04-14 | Qualcomm Incorporated | Viewport-aware quality metric for 360-degree video |
US10560660B2 (en) * | 2017-01-04 | 2020-02-11 | Intel Corporation | Rectilinear viewport extraction from a region of a wide field of view using messaging in video transmission |
US10769797B2 (en) * | 2017-01-05 | 2020-09-08 | Samsung Electronics Co., Ltd. | Virtual reality experience sharing |
CN109996055B (zh) * | 2017-12-06 | 2022-08-12 | 杜比实验室特许公司 | 位置零时延 |
-
2017
- 2017-12-22 WO PCT/EP2017/084477 patent/WO2019120575A1/en unknown
- 2017-12-22 EP EP17825245.8A patent/EP3721417A1/en active Pending
-
2018
- 2018-07-05 WO PCT/EP2018/068313 patent/WO2019120638A1/en unknown
- 2018-07-05 CN CN201880082956.7A patent/CN111567052B/zh active Active
- 2018-07-05 EP EP18740760.6A patent/EP3721635B1/en active Active
-
2020
- 2020-06-18 US US16/905,840 patent/US11546397B2/en active Active
- 2020-06-19 US US16/906,287 patent/US11706274B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105939482A (zh) * | 2015-03-05 | 2016-09-14 | 诺基亚技术有限公司 | 视频流式传输方法 |
WO2017127816A1 (en) * | 2016-01-22 | 2017-07-27 | Ziyu Wen | Omnidirectional video encoding and streaming |
CN106358033A (zh) * | 2016-08-25 | 2017-01-25 | 北京字节跳动科技有限公司 | 一种全景视频关键帧编码方法和装置 |
Non-Patent Citations (2)
Title |
---|
360ProbDASH:Improving QoE of 360 Video Streaming Using Tile-based HTTP Adaptive Streaming;Lan Xie 等;《PROCEEDINGS OF THE 2017 ACM ON MULTIMEDIA CONFRENCE》;20171027;第10.145/3123266.3123291卷;第315-323页 * |
Spherical viewport SET for HEVC and AVC 360 video;Jill Boyce 等;《26th JCT-VC Meeting;12-20 January 2017;GENEVA》;20170120(第JCTVC-Z0034期);第1-5页 * |
Also Published As
Publication number | Publication date |
---|---|
WO2019120638A1 (en) | 2019-06-27 |
EP3721417A1 (en) | 2020-10-14 |
US11546397B2 (en) | 2023-01-03 |
US11706274B2 (en) | 2023-07-18 |
US20200322403A1 (en) | 2020-10-08 |
US20200322696A1 (en) | 2020-10-08 |
EP3721635A1 (en) | 2020-10-14 |
WO2019120575A1 (en) | 2019-06-27 |
CN111567052A (zh) | 2020-08-21 |
EP3721635B1 (en) | 2021-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111567052B (zh) | 用于将vr 360视频下发给远程终端用户的可缩放fov+ | |
CN109891850B (zh) | 用于减少360度视区自适应流媒体延迟的方法和装置 | |
CN109565610B (zh) | 处理全向视频的方法、装置以及存储介质 | |
Shi et al. | Mobile VR on edge cloud: A latency-driven design | |
EP2490179B1 (en) | Method and apparatus for transmitting and receiving a panoramic video stream | |
EP3596931B1 (en) | Method and apparatus for packaging and streaming of virtual reality media content | |
EP3782368A1 (en) | Processing video patches for three-dimensional content | |
US20140074911A1 (en) | Method and apparatus for managing multi-session | |
WO2020055655A1 (en) | Scalability of multi-directional video streaming | |
US11159823B2 (en) | Multi-viewport transcoding for volumetric video streaming | |
US20200404241A1 (en) | Processing system for streaming volumetric video to a client device | |
Pazzi et al. | Propane: A progressive panorama streaming protocol to support interactive 3d virtual environment exploration on graphics-constrained devices | |
KR102118334B1 (ko) | 분할 영상 기반의 vr 컨텐츠 라이브 스트리밍 서비스를 지원하는 전자 장치 | |
KR20190063590A (ko) | 분할 영상 기반의 vr 컨텐츠 라이브 스트리밍 서비스 운용 방법 및 이를 지원하는 전자 장치 | |
EP3528500B1 (en) | Method and apparatus for allocating differential bandwidth for each screen region by using image complexity information | |
US11025880B2 (en) | ROI-based VR content streaming server and method | |
JP2018088605A (ja) | 情報処理装置、表示制御装置、制御方法、及びプログラム | |
EP3644619A1 (en) | Method and apparatus for receiving a tile-based immersive video | |
US11418560B1 (en) | Media and application aware network architecture | |
Alriksson et al. | Future network requirements for extended reality applications: Many Experts Believe that New and Emerging Extended Reality Technologies will Lead to the Next Major Paradigm Shift in Telecommunications, with Lightweight XR Glasses Ultimately Overtaking Smartphones as the Dominant Device Type in Mobile Networks. This Evolution has Major Implications on the Requirements for Future Networks | |
EP3635958B1 (en) | Image processing device and system | |
CN110636336A (zh) | 发送装置及方法、接收装置及方法及计算机可读存储介质 | |
Kočkovič et al. | Optimizing 360° Video Delivery: Advancements and Strategic Approaches | |
Chen et al. | SweeTile: Efficient Tiling for 360° Video Streaming on Light-Weight VR Devices | |
TW202241135A (zh) | 改變沉浸式視訊中之視訊軌 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |