CN116325769A - 从多个视点流式传输场景的全景视频 - Google Patents

从多个视点流式传输场景的全景视频 Download PDF

Info

Publication number
CN116325769A
CN116325769A CN202180067743.9A CN202180067743A CN116325769A CN 116325769 A CN116325769 A CN 116325769A CN 202180067743 A CN202180067743 A CN 202180067743A CN 116325769 A CN116325769 A CN 116325769A
Authority
CN
China
Prior art keywords
video
scene
video data
shared
streaming
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
CN202180067743.9A
Other languages
English (en)
Inventor
A·S·R·白朗特
E·托马斯
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.)
Nederlandse Organisatie voor Toegepast Natuurwetenschappelijk Onderzoek TNO
Koninklijke KPN NV
Original Assignee
Nederlandse Organisatie voor Toegepast Natuurwetenschappelijk Onderzoek TNO
Koninklijke KPN NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nederlandse Organisatie voor Toegepast Natuurwetenschappelijk Onderzoek TNO, Koninklijke KPN NV filed Critical Nederlandse Organisatie voor Toegepast Natuurwetenschappelijk Onderzoek TNO
Publication of CN116325769A publication Critical patent/CN116325769A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/21805Source of audio or video content, e.g. local disk arrays enabling multiple viewpoints, e.g. using a plurality of cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26258Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6377Control signals issued by the client directed to the server or network components directed to server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Landscapes

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

Abstract

描述了一种流式服务器和流式客户端,该流式服务器被配置成将表示场景的全景视频的视频数据流式传输到该流式客户端。该全景视频可以从该场景内的视点示出该场景,该视点是该场景内的多个视点之一。当流式传输第一全景视频的第一视频数据时以及当开始流式传输第二全景视频的第二视频数据时,该流式客户端可以至少临时且同时进行以下操作:通过继续流式传输第一视频数据的、表示场景的在第一全景视频中可见并且在第二全景视频中可见的共享视频内容的一部分来继续流式传输第一视频数据的至少一部分,同时额外流式传输表示场景的视点特定的视频内容的第二视点特定的视频数据。

Description

从多个视点流式传输场景的全景视频
技术领域
本发明涉及一种用于将视频数据流式传输到流式客户端的流式服务器和计算机实施的方法,其中,该视频数据表示场景的全景视频。本发明进一步涉及一种用于接收表示场景的全景视频的视频数据的流式客户端和计算机实施的方法。本发明进一步涉及一种用于创作表示场景的全景视频的一个或多个视频流的创作系统和计算机实施的方法。本发明进一步涉及一种包括表示计算机程序的数据的计算机可读介质,并且涉及一种包括元数据的计算机可读介质。
背景技术
捕获场景的全景视频并将全景视频显示给用户是已知的。此处,形容词“全景”可以指在向用户显示时提供沉浸式体验的视频。通常,如果视频提供比人眼更宽的视野(水平约160°、竖直约75°),则可以认为视频是“全景”的。全景视频甚至可以提供更大的场景视图,例如完整的360度,从而为用户提供更加沉浸式的体验。此类全景视频可以通过摄像机(如180°或360°摄像机)拍摄现实生活的场景而获取,也可以作为所谓的计算机生成图像(CGI)被合成生成(“3D渲染”)。全景视频也称为(半)球形视频。提供至少180°水平和/或180°竖直视图的视频也被称为“全向”视频。因此,全向视频是一种类型的全景视频。
通常,全景视频可以是二维(2D)视频,但也可以是三维(3D)视频,例如立体视频或体积视频。
全景视频可以以各种方式显示,例如使用各种类型的显示器,比如头戴式显示器(HMD)、全息显示器以及为用户提供沉浸式体验的曲面或其他类型的显示器,包括但不限于大屏幕或多屏幕显示器,比如CAVE或IMAX影院显示器。还可以通过虚拟现实(VR)或增强现实(AR)技术在虚拟环境中渲染全景视频。全景视频也可以使用通常不为人知的显示器来显示以提供沉浸式体验,例如,在移动设备的显示器或计算机显示器上。在这样的示例中,用户仍然可以通过能够在全景视频中环顾四周,例如通过控制视口(通过该视口来在显示器上观看全景视频的一部分)的位置,来获得一定程度的沉浸感。
获取场景的不同全景视频是已知的。例如,可以在场景内的不同空间位置捕获不同的全景视频。因此,每个空间位置可以表示场景内的不同视点。场景的示例是建筑物的内部,或者诸如海滩或公园的室外地点。场景也可以由若干地点(location)组成,例如,不同的房间和/或不同的建筑物,或者内部地点和外部地点的组合。
使用户能够在不同视点的显示之间进行选择是已知的。这种不同视点的选择可以有效地允许用户在场景中“瞬移”。如果视点在空间上足够接近,和/或如果在不同视点之间渲染过渡,则这种瞬移可以向用户传达在场景中近乎连续运动的感觉。
这样的全景视频可以以相应的视频流的形式流式传输到流式客户端。如何在呈现不同视点的视频流之间实现无缝或至少快速切换使得用户的体验在切换期间不会或至少不会明显中断是一个问题。
Corbillion等人[1]描述了多视点(MVP)360度视频流式传输系统,其中,场景由多个全向摄像机同时捕获。用户只能将位置切换到预定义的视点(VP)。视频流可以使用MPEG基于HTTP的动态自适应流(DASH)进行编码和流式传输,其中可以以不同的比特率和分辨率提供相同内容的多种表示。视频流可以进一步作为运动约束瓦片集合(MCTS)[2]进行编码和流式传输,其中矩形视频可以在空间上划分为矩形的、可独立解码的、不重叠的区域,即所谓的“瓦片”。
Corbillion等人进一步描述了可以预测用户的下一个平移移动,使得如果客户端预期在不久的将来不会有任何移动,则客户端可以决定请求当前视点中的表示,或者如果客户端预期很快会有移动,则请求另一个视点中的表示。进一步描述了可以预测用户的下一个头部取向旋转,使得客户端可以在给定的视点中请求帧的各种预测地点中的瓦片。
因此,Corbillion等人通过让客户端预测用户在场景中的移动以及已经流式传输所预测的视点解决了如何实现不同视点之间的无缝切换的问题。由于这可能需要非常大的带宽,因此客户端可以将MPEG-DASH与仅流式传输特定瓦片相结合,以便仅流式传输用户当前正在查看或预期将在当前视点或相邻视点中查看的那些瓦片。
Corbillion等人的描述的缺点是流式客户端的带宽要求,反之流式服务器的带宽要求,可能仍然过高。这可能不利于流式传输,并且在某些情况下不利于与场景的视点相关联的视频数据的编码、解码和/或存储。
参考文献
[1]Xavier Corbillon、Francesca De Simone、Gwendal Simon以及PascalFrossard,2018.Dynamic adaptive streaming for multi-viewpoint omnidirectionalvideos[用于多视点全向视频的动态自适应流],第9届ACM国际多媒体会议(MMSys’18)的论文集,美国纽约州计算机协会,237-249。
[2]K.Misra、A.Segall、M.Horowitz、S.Xu、A.Fuldseth以及M.Zhou,An Overviewof Tiles in HEVC[HEVC中的瓦片概述],IEEE信号处理精选专题期刊,7(6):969-977,2013年12月。
发明内容
当流式传输多视点视频时,可能希望进一步降低带宽要求或具有降低带宽要求的额外方式,同时继续实现不同视点之间的无缝或至少快速切换。
在本发明的第一方面,可以提供一种用于将视频数据流式传输到流式客户端的计算机实施的方法。该视频数据可以表示场景的全景视频。该全景视频可以从该场景内的视点示出该场景。该视点可以是该场景内的多个视点之一。该方法可以包括,由流式服务器进行以下操作:
将可以表示来自该场景内的第一视点的第一全景视频的第一视频数据流式传输到该流式客户端;
响应于流式传输表示来自该场景内的第二视点的第二全景视频的第二视频数据的决定,
通过在该流式服务器的至少一种操作模式下至少临时且同时进行以下操作来将该第二视频数据流式传输到该流式客户端:
-通过继续流式传输可以表示该场景的共享视频内容的共享视频数据来继续流式传输该第一视频数据的至少一部分,其中,该共享视频内容可以包括该场景的可以在该第一全景视频中可见并且在该第二全景视频中可见的视频内容;以及
-流式传输可以表示该场景的第二视点特定的视频内容的第二视点特定的视频数据,其中,该第二视点特定的视频内容可以包括该场景的可以作为该第二全景视频的一部分而不是该场景的共享视频内容的一部分的视频内容。
在本发明的另一方面,可以提供一种用于将视频数据流式传输到流式客户端的流式服务器。该流式服务器可以包括:
到网络的网络接口,其中,数据通信可以经由网络到达该流式客户端;
处理器子系统,该处理器子系统可以被配置成经由网络接口进行以下操作:
将可以表示来自场景内的第一视点的第一全景视频的第一视频数据流式传输到该流式客户端;
响应于流式传输表示来自该场景内的第二视点的第二全景视频的第二视频数据的决定,通过至少临时且同时进行以下操作来将该第二视频数据流式传输到该流式客户端:
-通过继续流式传输可以表示该场景的共享视频内容的共享视频数据来继续流式传输该第一视频数据的至少一部分,其中,该共享视频内容可以包括该场景的可以在该第一全景视频中可见并且在该第二全景视频中可见的视频内容;以及
-流式传输可以表示该场景的第二视点特定的视频内容的第二视点特定的视频数据,其中,该第二视点特定的视频内容可以包括该场景的可以作为该第二全景视频的一部分而不是该场景的共享视频内容的一部分的视频内容。
在本发明的另一方面,可以提供一种用于接收视频数据的计算机实施的方法。该方法可以包括由流式客户端进行以下操作:
通过流式传输接收可以表示来自该场景内的第一视点的第一全景视频的第一视频数据;
当切换到第二视点时,通过流式传输接收来自该场景内的第二视点的第二全景视频的第二视频数据;
其中,通过流式传输接收第二视频数据可以包括在流式客户端的至少一种操作模式下至少临时且同时进行以下操作:
-通过继续接收可以表示该场景的共享视频内容的共享视频数据来继续通过流式传输接收该第一视频数据的至少一部分,其中,该共享视频内容可以包括该场景的可以在该第一全景视频中可见并且在该第二全景视频场中可见的视频内容,
-通过流式传输接收可以表示该场景的第二视点特定的视频内容的第二视点特定的视频数据,其中,该第二视点特定的视频内容可以包括该场景的可以作为该第二全景视频的一部分而不是该场景的共享视频内容的一部分的视频内容。
在本发明的另一方面,可以提供一种用于通过流式传输接收视频数据的流式客户端。该流式客户端可以包括:
到网络的网络接口;
处理器子系统,该处理器子系统可以被配置成经由网络接口进行以下操作:通过流式传输接收可以表示来自该场景内的第一视点的第一全景视频的第一视频数据;
当切换到第二视点时,通过流式传输接收来自该场景内的第二视点的第二全景视频的第二视频数据,其中,通过流式传输接收该第二视频数据可以包括至少临时且同时进行以下操作:
-通过继续接收可以表示该场景的共享视频内容的共享视频数据来继续通过流式传输接收该第一视频数据的至少一部分,其中,该共享视频内容可以包括该场景的可以在该第一全景视频中可见并且在该第二全景视频场中可见的视频内容,
-通过流式传输接收可以表示该场景的第二视点特定的视频内容的第二视点特定的视频数据,其中,该第二视点特定的视频内容可以包括该场景的可以作为该第二全景视频的一部分而不是该场景的共享视频内容的一部分的视频内容。
上述措施可以涉及使场景内的多个视点的视频数据可用于从流式服务器流式传输到流式客户端。流式服务器可以是例如内容分发节点(CDN)中的一个或组合,并且流式客户端可以是例如网络节点,诸如移动或固定线路网络的边缘节点或者终端用户设备,比如移动设备、计算机、VR/AR设备等。通过上述措施,可以将表示第一全景视频的视频数据从流式服务器流式传输到流式客户端。第一全景视频可以从场景内的第一视点示出场景。视频数据在别处也可以称为“第一”视频数据,以指示该视频数据表示来自“第一”视点的“第一”全景视频。在别处,诸如“第二”、“第三”等数字形容词可以标识其他视点和对应的全景视频和视频数据,但不暗示其他未描述的限制。
第一视频数据可以在给定的时刻从流式服务器流式传输到流式客户端,例如通过流式客户端先前请求第一视频数据的流式传输。稍后时刻可能希望切换到场景内的第二视点。例如,用户可能已经选择了第二视点,例如通过操作终端用户设备的用户输入设备,或者第二视点可能已经被自动选择,例如,通过流式客户端使用预测技术来预测用户可能很快会选择第二视点。相应地,流式客户端可以决定流式传输表示来自场景内的第二视点的第二全景视频的第二视频数据,并且流式服务器可以从流式客户端接收对应的流式传输请求。可替代地,另一个实体可以决定流式服务器将第二全景视频流式传输到流式客户端,该另一实体比如流式服务器本身或编排流式会话的实体。通常,响应于这样的决定,第二视频数据然后可以被流式传输到流式客户端。这可能涉及至少临时且同时继续流式传输第一视频数据的至少一部分,同时额外地流式传输与第二视点具体相关联的视频数据。可以继续被流式传输的第一视频数据的部分可以被称为“共享”视频数据,而额外流式传输的视频数据可以被称为“第二视点特定的视频数据”,如将在下面解释的。
发明人已经认识到同一场景的全景视频之间可能存在冗余。即,在一个全景视频中示出的视频内容的至少一部分也可以在相邻视点的全景视频中示出。原因是,视频内容可以表示场景的从两个视点都可见的对象或部分。具体的示例是户外场景中的天空的一部分;当在视点之间移动时,天空的大部分在沿途的视点中可以保持可见。发明人已经认识到,通常,当在不同视点之间过渡时,场景的某些部分可能被遮挡和去遮挡,但是场景的该部分可以保持可见,并且可以仅在视点之间移动或改变大小。特别地,如果场景内视点之间的空间距离与获取场景的摄像机到场景这些部分的距离相比相对较小,则这种移动和大小的改变可能(非常)有限,这意味着当在视点之间过渡时,场景的潜在大部分可能只会轻微地移动或改变大小。
因此,全景视频之间可能存在冗余。相反地,这可能意味着在Corbillion等人[1]的方法中,其中,相邻的(多个)视点可能已经被流式传输到流式客户端,如果预期用户可以移动到相邻的视点,则可以将若干视频流同时流式传输到流式客户端,这些视频流可能包括冗余视频内容。这可能意味着带宽要求可能不必要地高,即使与瓦片流式传输组合也是如此,在瓦片流式传输中,只能流式传输全景视频的瓦片的子集。
原则上,利用视频之间的冗余是已知的。例如,Su等人[3]提出使用HEVC多视图扩展(MV-HEVC)在不同视点之间对纹理和深度信息进行冗余编码。然而,Su等人提出将所有视点分组为包含不同层的单个编码比特流,其中,每一层都是视点,并且这些视点具有编码依赖性。然而,这可能不适用于流式传输场景,而是适用于本地文件回放,因为流式传输单个编码比特流所需的带宽可能非常高,特别是在有许多不同视点的情况下。这可能不仅不利于流式传输,而且还不利于与场景的视点相关联的视频数据的编码、解码和/或存储。
发明人已经进一步认识到第一视频数据的至少一部分可以被有效地“重新使用”以至少在临时基础上在流式客户端重建第二全景视频。即,在切换到第二视点时,场景的在第一全景视频中可见并且在第二全景视频中可见的视频内容仍然可以从第一视频数据中获得。然而,由于上述的视点之间的遮挡或去遮挡,不能从第一视频数据完全重建第二全景视频。相应地,上述措施可以使视点特定的视频数据可用于流式传输,视点特定的视频数据可以包含场景的视点特定的视频内容,在这种情况下,例如是在第二全景视频中可见的视频内容,而不是在两个视点之间的共享视频内容的一部分,例如由于在第一全景视频中不可见或不充分可见。这可能意味着当切换到第二视点时,额外流式传输表示这个视点的视点特定的视频内容的第二视点特定的视频数据可能就足够,或者至少当请求第二全景视频时或者当以其他方式决定流式传输所述视频时,流式服务器可以不需要立即并完整地流式传输第二全景视频。
实际上,第二视频数据可以至少临时地由第一视频数据的一部分和额外流式传输的视点特定的视频数据构成,因此可能不表示第二全景视频的整体编码。
这可以具有各种优点。例如,如果针对第二视点的请求是预取请求,例如,在预期用户选择第二视点的情况下,则可以不需要同时流式传输全部的第一和第二全景视频,而是同时流式传输第一全景视频以及第二全景视频的视点的特定部分可能就足够。类似于可以是预取请求的请求,对第二视点的选择可以是在预期用户选择第二视点的情况下流式客户端的预选。如果在预期用户选择对应视点之一的情况下,已经同时流式传输了若干全景视频或此类视频的瓦片,则这可能是有利的。此处,与将每个全景视频作为完整且独立的视频流进行流式传输相比,带宽的减少可能相当大。
即使仅在用户选择第二视点之后才发送请求,也可能存在其他优点。例如,可以更快地切换到第二视点。即,第二视点特定的视频内容可能在数据大小方面受到限制,因为第二视点特定的视频可能仅表示第二全景视频的一部分,而不是全部。这意味着可以选择较短的分段进行编码,同时仍然实现特定的全景视频的给定带宽。这种较短的分段可以对应于存在更密集间隔的随机接入点,并且可以对应于较短的GOP大小。这可能意味着,在选择第二视点之后,流式客户端可以通过能够从任何即将到来的随机接入点开始解码第二视点特定的视频数据来更快地切换到第二视点。相反地,由于共享视频内容可以在若干视点之间被重新使用,因此在流式会话期间平均不那么频繁地开始和停止,因此可以选择较长的分段(对应于不那么密集间隔的随机接入点,对应于较长的GOP大小)进行编码,以提高编码效率并补偿视点特定的视频内容的较短分段。
设想了其他各种优点。例如,共享视频数据可以对于两个或更多个视点仅被编码和/或存储一次。这可以降低编码的计算复杂性和/或存储要求。
可以理解,第一视频数据可能已经以与第二视频数据相同或相似的方式流式传输,因为它可以包括至少两个不同且可单独标识的部分,即包含与其他视点共享的视频内容的共享部分和包含视点特定的视频内容的视点特定的部分。如此,以上描述的以上述方式至少临时流式传输第二视频数据的优点也可以适用于第一视频数据的流式传输,或者至少临时地如果第一视频数据仅以这种方式被临时流式传输,则同样适用于任何视点的视频数据的流式传输和视点之间的切换。
可以理解,通过重新使用第一全景视频的视频数据来切换到第二全景视频可以是在流式客户端和/或流式服务器的特定操作模式下提供的功能。换言之,可以不需要总是以所描述的方式切换视点,而是这种切换可以是任一实体的可选操作模式。
通常,本说明书中描述的措施可以应用于在虚拟现实(VR)、增强现实(AR)、混合现实(MR)中渲染场景的上下文中,所有这三种技术也称扩展现实(XR)。
以下实施例可以涉及流式传输视频数据的方法和流式服务器。然而,可以理解,任何定义数据如何被发送到流式客户端或什么类型的数据被发送到流式客户端的实施例都由这样的实施例反映,通过该实施例,流式客户端被配置用于接收、解码和/或渲染这种类型的数据并且提供了对应的方法用于接收、解码和/或渲染这种类型的数据。
在流式传输视频数据的方法的实施例中,
-第一视频数据的流式传输可以包括:流式传输表示场景的第一视点特定的视频内容的第一视点特定的视频数据,其中,第一视点特定的视频内容包括该场景的可以作为第一全景视频的一部分而不是该场景的共享视频内容的一部分的视频内容;以及流式传输包括共享视频数据的共享视频流;
-第二视频数据的流式传输可以包括至少临时继续流式传输共享视频流。
在对应的实施例中,流式服务器的处理器子系统可以被配置成以上述方式执行流式传输。
根据这些实施例,第一视频数据可以作为至少两个单独的视频流(即包括共享视频数据的共享视频流和包括相应的全景视频的视点特定的视频数据的视点特定的视频流)被流式传输,其中至少共享视频流在流式传输第二视频数据时被临时继续流式传输。在一些实施例中,在第一视频数据和第二视频数据被同时流式传输的情况下,例如当预期用户选择第二视点时,第一视频数据和第二视频数据可以以共享视频流、第一视点特定的视频流和第二视点特定的视频流的形式被流式传输。与各自完整地表示相应的全景视频的两个视频流的流式传输相比,上述流式传输可以需要更小的带宽。此外,例如,响应于用户实际上选择第二视点进行显示,可以独立于共享视频流简单地停止第一视点特定的视频流的流式传输。
通常,可以通过包含在不同全景视频之间共享的共享视频数据的一个或多个共享视频流,以及通过多个全景视频中的每一个的视点特定的视频流来表示多个全景视频。通常,不同的编码性质可以用于共享视频流而不是视点特定的视频流。例如,视点特定的视频流可以被编码为与共享视频流相比具有更多的随机接入点、不同的编码质量等。
在流式传输视频数据的方法的实施例中,第一视频数据的流式传输可以包括流式传输该共享视频数据作为可独立解码部分被包括在其中的视频流。
在对应的实施例中,流式服务器的处理器子系统可以被配置成以上述方式执行流式传输。
根据这些实施例,共享视频数据可以是第一视频流的可独立解码部分。例如,共享视频数据可以由基于瓦片的视频流的一个或多个瓦片表示。这可以允许流式客户端在切换到第二视频流时停止解码第一视频流的除了共享视频数据之外的其他部分。如此,与共享视频数据是视频流的一部分的情况相比,可以降低解码的计算复杂性,视频流不允许独立解码,否则其必须通过流式客户端完全解码来获得重建第二全景视频所需的共享视频内容。在一些实施例中,流式客户端也可以停止接收视频数据中重建第二全景视频所不需要的部分。
在流式传输视频数据的方法的实施例中,该方法可以包括向流式客户端提供元数据,其中,该元数据可以指示表示第一视频数据的一部分和第二视频数据的一部分的共享视频数据。在对应的实施例中,流式服务器的处理器子系统可以被配置成提供上述元数据。
在接收视频数据的方法的实施例中,该方法可以进一步包括:接收元数据,其中,该元数据可以指示表示第一视频数据的一部分和第二视频数据的一部分的共享视频数据;以及基于该元数据,将共享视频数据用于第二全景视频的渲染。在对应的实施例中,流式客户端的处理器子系统可以被配置成以上述方式接收和使用元数据。
根据这些实施例,可以用信号通知流式客户端,可以在给定时刻作为第一全景视频的视频数据的一部分被接收的共享视频数据也可以表示第二全景视频的视频数据的一部分。这种用信号通知可以通过流式服务器向流式客户端提供例如作为相应的全景视频的视频数据的一部分或作为流式会话的通用元数据的一部分的元数据来实现。例如,共享视频数据可以被标识为在与流式会话相关联的所谓清单中的不同全景视频之间“共享”。
在流式传输视频数据的方法的实施例中,该方法可以进一步包括流式传输共享视频数据或作为全景视频的至少一部分的空间分段编码的任何视点特定的视频数据。
在对应的实施例中,流式服务器的处理器子系统可以被配置成以上述方式执行流式传输。
已知使用例如[2]所描述的空间分段编码能够将全景视频的特定部分流式传输到流式客户端,而不必并发地流式传输所有的全景视频。即,这样的空间分段可以被流式客户端单独地流式传输和解码。这可以允许流式客户端仅检索那些当前显示或预计在不久的将来有合理可能性被显示的分段,例如,如[1]所述。这可以减少到流式客户端或其他接收实体的并发带宽,并降低接收实体解码的计算复杂性。本说明书中描述的用于使共享视频数据可用的技术可以与空间分段编码技术相组合。例如,共享视频内容可以被编码为例如全景视频的视频流一个或多个可独立解码的空间分段,或被编码为单独的“共享”视频流。在一些实施例中,如果一些共享视频内容当前未显示或不期望被显示,则这可以避免流式传输所有共享视频数据的需要。在一些实施例中,这可以使流式客户端能够通过继续接收和解码第一全景视频的一个或多个空间分段,同时停止接收和解码第一全景视频的一个或多个其他空间分段,来继续接收和解码共享视频数据。在一些实施例中,可以使用与空间分段编码相关联的元数据(包括但不限于MPEG-DASH的所谓的空间表示描述(SRD)元数据)来标识共享视频内容相对于全景视频的空间位置和/或取向。
在流式传输视频数据的方法的实施例中,共享视频数据的流式传输可以包括周期性地传输至少以下内容之一:
-图像;以及
-元数据,该元数据定义用于填充空间区域的颜色,
其中,该图像或该颜色表示至少多个视频帧的共享视频内容的至少一部分。
在对应的实施例中,流式服务器的处理器子系统可以被配置成以上述方式执行流式传输。
共享视频数据在许多情况下可以表示场景的“背景”,因为它可以表示与可能是场景的“前景”的其他对象相比更远的场景部分。这样的背景可以是相对静态的,因为它不会在外观上发生变化,或者仅在有限的程度上发生变化。例如,天空或建筑物的外部可以在全景视频的多个视频帧上保持相对静态。这同样也可以适用于不一定是场景的“背景”的视频数据,因为这种非背景类型的视频数据也可以在全景视频的多个视频帧上保持相对静态。为了提高编码效率,从而减少到流式客户端的带宽并降低解码的计算复杂性,可以通过周期性地传输表示共享视频内容的图像来流式传输共享视频数据。这可以有效地对应于共享视频数据的时间二次采样,因为只有每第2、第10、第50等视频帧中的共享视频内容可以被传输到流式客户端。这种周期性的流式传输也可以是自适应的,因为如果共享视频内容的变化超过静态或自适应阈值,则可以传输图像。因此,术语“周期性传输”包括图像传输之间的时间是长度可变的。图像可以直接表示共享视频内容,或者可以包含纹理,该纹理当在某个空间区域中被瓦片化时表示共享视频内容。在一些实施例中,在共享视频内容是同质的情况下,例如在无云天空的情况下,共享视频内容可以采用定义用于填充对应于共享视频内容的空间区域的颜色的元数据的形式。还设想将图像的传输和定义填充颜色的元数据组合起来。
以下实施例可以涉及接收视频数据的方法和流式客户端。然而,可以理解,任何定义流式客户端如何接收或接收什么类型的数据的实施例都由这样的实施例反映,在该实施例中,流式服务器被配置用于流式传输和/或生成这种类型的数据,并且提供了对应的方法用于流式传输和/或生成这种类型的数据。
在实施例中,元数据可以进一步标识包含第二视点特定的视频数据的第二视点特定的视频流,其中,可以从流式服务器访问第二视点特定的视频流。在该实施例中,接收视频数据的方法可以进一步包括:基于元数据并且当切换到第二视点时,从流式服务器请求第二视点特定的视频流。
在对应的实施例中,流式客户端的处理器子系统可以被配置成以上述方式接收和使用元数据。
根据这些实施例,可以使第二视点特定的视频数据作为单独的视频流被提供给流式客户端,该单独的视频流可以通过元数据的方式向流式客户端标识。这可以允许流式客户端在例如由用户选择或由流式客户端自动选择第二视点时请求第二视点特定的视频流,例如用于缓存目的。这可以使流式客户端能够额外地仅检索第二全景视频中尚未提供给流式客户端的那些部分,例如,第二视点特定的部分,从而避免了当第二全景视频仅完整地可用于流式传输时可能需要的不必要的带宽和解码复杂性。
在实施例中,元数据可以是场景的视频数据流的清单。例如,流式服务器可以向流式客户端提供媒体呈现描述(MPD),这是所谓的清单或清单文件的示例。MPD可以列出并由此标识不同的视频流,并且在一些实施例中,列出并标识视频流的不同版本(“表示”),例如每个具有不同的空间分辨率和/或比特率。然后,客户端可以通过从MPD中进行选择来选择视频流的版本。如此,任何共享视频数据和/或任何视点特定的视频数据都可以在清单中被标识,例如,作为具有一个或多个表示的单独的视频流。
在实施例中,元数据可以指示要应用于共享视频内容的变换。在该实施例中,接收视频数据的方法可以进一步包括:在第二全景视频的渲染之前或作为第二全景视频的渲染的一部分,将该变换应用于共享视频内容。
在对应的实施例中,流式客户端的处理器子系统可以被配置成以上述方式使用元数据。
虽然表示共享视频内容的(多个)对象可以从两个不同的视点可见,但是(多个)对象相对于每个视点的真实或虚拟摄像机可能具有不同的相对位置和/或取向。例如,如果共享视频内容表示建筑物的外部,则其中一个视点可以更接近建筑物或位于相同距离但在另一个视点的侧面。因此,表示共享视频内容的(多个)对象的外观可以在视点之间变化,并且从而在全景视频之间变化。为了使共享视频内容能够用于不同全景视频的重建,元数据可以指示要应用于共享视频内容的变换。在一些实施例中,元数据中定义的变换可以特定于特定全景视频的重建。通常,该变换可以补偿视点之间以及因此全景视频之间(多个)对象的外观变化。例如,该变换可以将外观变化参数化为仿射变换或高阶图像变换。这可以允许共享视频内容被(重新)用于不同全景视频的重建,尽管外观发生了这种变化。
在实施例中,视点的地点可以表示为与场景相关联的坐标系中的相应坐标,其中,元数据定义共享视频数据的坐标范围。在该实施例中,接收视频数据的方法可以进一步包括将共享视频数据用于相应坐标位于元数据所定义的坐标范围内的视点的相应全景视频的渲染。
在对应的实施例中,流式客户端的处理器子系统可以被配置成以上述方式使用元数据。
共享视频内容可以用于多个全景视频的重建。这可以以各种方式向流式客户端指示,例如使用上述清单。另外地或可替代地,如果视点可表示为与场景相关联的坐标系中的相应坐标,例如,作为地理位置坐标或作为没有特定地理意义的XY坐标,则可以将坐标范围传达给流式客户端。例如,通过将全景视频的视点的坐标与坐标范围进行比较,流式客户端然后可以确定共享视频数据是否将用于特定全景视频的重建(以及在一些实施例中,哪个共享视频数据将用于特定全景视频的重建)。这可以允许共享视频内容以具有物理类比的方式与多个全景视频相关联。这种方式很容易理解,因为对象通常从特定坐标范围内的多个视点可见。特别地,这可以允许共享视频数据与流式服务器不知道的视点相关联,例如,在流式客户端能够通过在附近视点的全景视频之间插值来重建中间视点的情况下。
在实施例中,至少临时接收的共享视频数据是从第一全景视频导出的共享视频内容的第一版本。在该实施例中,接收视频数据的方法可以进一步包括通过流式传输接收第二共享视频数据,该第二共享视频数据表示共享视频内容的从第二全景视频导出的第二版本。
在对应的实施例中,流式客户端的处理器子系统可以被配置成以上述方式接收视频数据。
先前接收的第一视点的共享视频数据可以临时用于第二全景视频的渲染,但在一段时间后可以被共享视频内容的从第二全景视频导出的第二版本所取代。这可以具有各种优点。例如,虽然来自第一视点的共享视频内容可能足以渲染第二全景视频,但是在表示第一视点与第二视点之间的共享视频内容的(多个)对象之间可能在外观上存在细微差异。例如,该(多个)对象可能更接近第二视点的真实或虚拟摄像机,这可以允许解析更多细节。作为另一个示例,在一些实施例中,共享视频内容的第一版本可能需要变换以渲染为第二全景视频的一部分,然而共享视频内容的第二版本无需使用变换就可以被渲染为第二全景视频的一部分。通过切换到共享视频内容的第二版本,共享视频内容可以以从第二视点可见的方式被示出。然而,例如,在共享视频数据中的随机接入点在每个时间单位内的频率较低而视点特定的视频数据中的随机接入点频率较高的情况下,与立即请求、接收和切换到共享视频内容的第二版本相比,临时继续流式传输共享视频内容的第一版本可能是有利的。即,在开始渲染第二全景视频之前,可能不需要等待共享视频内容的第二版本中的随机接入点,反而是第一版本可以至少临时(重新)用于所述渲染。
在实施例中,共享视频内容的第二版本可以作为视频流被接收,并且视频流的接收可以从视频流中的流接入点开始。在别处也可以被称为随机接入点的流接入点可以允许流式客户端切换到共享视频内容的第二版本。例如,共享视频数据中的随机接入点在每个时间单位内的频率可以低于视点特定的视频数据中的随机接入点的频率,这意味着可以继续流式传输共享视频内容的第一版本,直到共享视频内容的第二版本中的流接入点可用,此时可以使用第二版本。
在实施例中,包含共享视频内容的第二版本的视频流可以是第二共享视频流,其中,第二视点特定的视频数据可以作为第二视点特定的视频流被接收,并且其中,第二共享视频流在每个时间单位内包括比第二视点特定的视频流更少的流接入点。
在对应的实施例中,流式客户端的处理器子系统可以被配置成以上述方式接收视频数据。
在接收视频数据的方法的实施例中,该方法可以进一步包括通过进行以下操作至少之一将共享视频内容与第二视点特定的视频内容组合:
-将该共享视频内容与该第二视点特定的视频内容在空间上邻接;
-将该共享视频内容与该第二视点特定的视频内容合并;以及
-将该第二视点特定的视频内容叠加在该共享视频内容上。
在对应的实施例中,流式客户端的处理器子系统可以被配置成以上述方式执行组合。
共享视频内容可以被格式化,使得流式客户端或其他接收实体能够以特定方式将共享视频内容与视点特定的视频内容组合。这种组合方式可以是预先确定的,例如,标准化的,但在一些实施例中,例如也可以通过流式服务器将元数据与全景视频的视频数据包括在一起用信号通知给接收实体。通过组合这两种类型的视频内容,接收实体可以有效地重建相应的全景视频或其至少一部分。例如,如果共享视频内容与视点特定的视频内容在空间上分离,则共享视频内容可以与视点特定的视频内容邻接。该示例涉及共享视频内容和视点特定的视频内容可以表示全景视频的在空间上分离的部分的事实。这两种类型的视频内容也可以通过将一种类型的视频内容叠加在另一种之上或者通过以任何其他方式合并这两种类型的视频内容来组合。也可以一起使用不同类型的组合。例如,如果共享视频内容部分地在空间上分离但在其边界处与视点特定的视频内容重叠,则可以使用混合技术来组合这两种类型的视频内容的重叠部分。
在接收视频数据的方法的实施例中,该方法可以进一步包括渲染第二视频数据来获得经渲染的视频数据以供流式客户端或另一实体显示,其中,渲染可以包括将共享视频数据和第二视点特定的视频数据组合。
在对应的实施例中,流式客户端的处理器子系统可以被配置成以上述方式渲染视频数据。
渲染可以表示全景视频的任何已知的渲染,并且例如可以包括诸如在接收到的视频数据包含球形视频内容的情况下对所述视频数据应用逆等量矩形投影等的步骤,该球形视频内容被使用等量矩形投影转换成矩形图像格式。通常,渲染可以包括仅在例如如当前显示给用户的视口内渲染全景视频。渲染可以例如由终端用户设备执行,或者由作为流式客户端的边缘节点执行。在前一种情况下,经渲染的视频数据然后可以由流式客户端显示,而在后一种情况下,经渲染的视频数据可以再次传输到另一流式客户端,即传输到其可以被显示的终端用户设备。
在本发明的另一方面,可以提供一种用于通过流式传输接收视频数据的流式客户端,其中,该视频数据可以表示场景的全景视频,其中,该全景视频可以从该场景内的视点示出该场景,其中,该视点可以是该场景内的多个视点之一。该流式客户端可以包括:
到网络的网络接口;
处理器子系统,该处理器子系统可以被配置成经由网络接口进行以下操作:
通过流式传输接收可以表示来自该场景内的第一视点的第一全景视频的至少一部分的第一视频数据;
通过流式传输接收该场景的另一视频数据;
接收指示该另一视频数据是表示该场景的共享视频内容的共享视频数据的元数据,其中,该共享视频内容可以包括该场景的可以在第一全景视频中可见并且在来自该场景内的第二视点的第二全景视频中可见的视频内容;
基于该元数据,将第一视频数据与共享视频数据组合,以获得用于渲染第一全景视频的组合视频数据。
例如,第一视频数据可以包括第一全景视频的视点特定的视频数据,该视点特定的视频数据可以以本说明书别处描述的方式与共享视频数据组合。例如,共享视频数据可以包括共享视频内容的从第二全景视频导出的版本。在特定但非限制性的示例中,流式客户端可以从渲染第二全景视频切换到渲染第一全景视频,并且可以在开始流式传输第一全景视频的视点特定的视频数据的同时继续流式传输从第二全景视频导出的共享视频数据。这可能具有前面在介绍性句子“这可以具有各种优点”之后阐明的优点,同时注意到那里描述的优点是针对从第一全景视频切换到第二全景视频的,但也适用于从第二全景视频切换到第一全景视频。可以理解,流式客户端可以是如本说明书别处定义的流式客户端的实施例,但可能不一定需要如此。
在本发明的另一方面,提供了一种包括如本说明书中所描述的流式服务器和流式客户端的系统。
在共享视频数据的实施例中,该共享视频至少包括以下内容之一:
第一全景视频的要与第一视点特定的视频内容和/或第二视点特定的视频内容在空间上邻接以用于渲染相应的全景视频的一部分;
第一全景视频的要覆盖在第一视点特定的视频内容和/或第二视点特定的视频内容之上或之下以用于渲染相应的全景视频的一部分;以及
第一全景视频的与第一视点特定的视频内容和/或第二视点特定的视频内容在空间上分离的一部分。
在本发明的另一方面,可以提供一种用于创作表示场景的全景视频的一个或多个视频流的计算机实施的方法。该方法可以包括:
-访问第一全景视频,其中,该第一全景视频可以从该场景内的第一视点示出该场景;
-访问第二全景视频,其中,该第二全景视频可以从该场景内的第二视点示出该场景;
-标识可以表示该场景的共享视频内容的共享视频数据,其中,该共享视频内容可以包括该场景的可以在该第一全景视频中可见并且在该第二全景视频中可见的视频内容;
-标识可以表示该场景的第一视点特定的视频内容的第一视点特定的视频数据,其中,该第一视点特定的视频内容可以包括该场景的可以作为该第一全景视频的一部分而不是该场景的共享视频内容的一部分的视频内容;以及
-通过以下方式编码该第一全景视频:
-将该第一视点特定的视频数据编码为第一视点特定的视频流,并将该共享视频数据编码为共享视频流;或
-将该第一视点特定的视频数据和该共享视频数据编码为视频流,其中,该共享视频数据可以作为视频流的可独立解码的部分被包括在视频流中。
在本发明的另一方面,可以提供一种用于创作表示场景的全景视频的一个或多个视频流的创作系统。该创作系统可以包括:
-数据存储接口,该数据存储接口用于以下操作:
访问第一全景视频,其中,该第一全景视频可以从该场景内的第一视点示出该场景;
访问第二全景视频,其中,该第二全景视频可以从该场景内的第二视点示出该场景;
-处理器子系统,该处理器子系统可以被配置成:
标识可以表示该场景的共享视频内容的共享视频数据,其中,该共享视频内容可以包括该场景的可以在该第一全景视频中可见并且在该第二全景视频中可见的视频内容;
标识可以表示该场景的第一视点特定的视频内容的第一视点特定的视频数据,其中,该第一视点特定的视频内容可以包括该场景的可以作为该第一全景视频的一部分而不是该场景的共享视频内容的一部分的视频内容;以及
通过以下方式编码该第一全景视频:
-将该第一视点特定的视频数据编码为第一视点特定的视频流,并将该共享视频数据编码为共享视频流;或
-将该第一视点特定的视频数据和该共享视频数据编码为视频流,其中,该共享视频数据可以作为视频流的可独立解码的部分被包括在视频流中。
全景视频的视频数据可以由创作系统创作,该创作通常可以涉及标识视点特定的视频数据和共享视频数据以及将所述两种数据例如编码为单独的视频流或编码为其中共享视频数据是可独立解码的部分的一个视频流。后者的示例是瓦片视频流,其中,一个或多个瓦片可以以瓦片视频流的子流的形式可独立解码和可独立流式传输。在一些示例中,创作系统还可以生成如本说明书中描述的元数据或元数据的一部分。
在本发明的另一方面,可以提供一种计算机可读介质,该计算机可读介质可以包括表示计算机程序的暂态或非暂态数据。该计算机程序可以包括用于使处理器系统执行本说明书中描述的任何方法的指令。
在本发明的另一方面,可以提供一种计算机可读介质,该计算机可读介质可以包括定义数据结构的暂态或非暂态数据,该数据结构表示可以将视频流的视频数据标识为表示场景的共享视频内容的元数据,其中,该元数据可以指示该共享视频内容至少在该场景的第一全景视频和第二全景视频中可见。该数据结构可以与第一全景视频和第二全景视频相关联,因为它可以被提供给流式客户端以使流式客户端能够渲染来自从流式服务器接收的视频数据的任一全景视频,该视频数据可以包括视点特定的视频数据和共享视频数据。换言之,该元数据可以将共享视频数据标识为适合用于第一全景视频和第二全景视频的重建,即通过包含在这两个全景视频之间共享的视频内容。例如,该元数据可以包含共享视频数据的标识符和相应的全景视频的标识符、和/或所述全景视频的视点特定的视频数据,以使流式客户端能够将共享视频数据标识为表示相应的全景视频的共享视频内容。在一些示例中,该元数据可以定义例如场景、相应的全景视频、共享视频数据和/或相应的视点特定的视频数据的额外性质,如也在本说明书中别处定义的。
根据本说明书的摘要,描述了一种流式服务器和流式客户端,该流式服务器被配置成将表示场景的全景视频的视频数据流式传输到该流式客户端。该全景视频可以从该场景内的视点示出该场景,该视点是该场景内的多个视点之一。当流式传输第一全景视频的第一视频数据时以及当开始流式传输第二全景视频的第二视频数据时,可以至少临时且同时进行以下操作:通过继续流式传输第一视频数据的、表示场景的在第一全景视频中可见并且在第二全景视频中可见的共享视频内容的一部分来继续流式传输第一视频数据的至少一部分,同时额外流式传输表示场景的视点特定的视频内容的第二视点特定的视频数据。
本领域的技术人员可以理解,可以以任何认为有用的方式组合上文提到的本发明的实施例、实施方式和/或方面中的两个或更多个。
系统或设备(例如,流式服务器、流式客户端)、方法、元数据和/或计算机程序中的任何一个的修改和变化(与这些系统或设备、方法、元数据和/或计算机程序中的另一个的所描述的修改和变化相对应,反之亦然)可以由本领域技术人员在本说明书的基础上执行。
其他参考文献:
[3]T.Su、A.Sobhani、A.Yassine、S.Shirmohammadi以及A.Javadtalab,A DASH-based HEVC multi-view video streaming system[基于DASH的HEVC多视图视频流式传输系统],Journal of Real-Time Image Processing[实时图像处理杂志],12(2):329-342,2016年8月
附图说明
依据下文所描述的实施例明白并且将参考这些实施例阐明本发明的这些方面和其他方面。在附图中:
图1A和图1B示出了全向视频在不同视点A和B被捕获的场景的示意性俯视图,其中,该场景包括从视点A和B都可见的对象;
图2A和图2B示出了从视点A和B都可见的视频内容的视觉表示,作为覆盖视点A和B的球幕;
图3示出了流式客户端与流式服务器之间的消息交换,用于下载和渲染表示球幕的视频数据;
图4A至图4C示出了不同类型场景的不同类型的重叠球幕,即图4A中为走廊并且图4B和图4C中为空旷场地;
图5示出了流式客户端与流式服务器之间的消息交换,用于在不同球幕的视频数据之间切换;
图6A展示了从视点特定的视频数据和从共享视频数据重建的不同视点A、B、C的全向视频;
图6B展示了在视点A、B、C之间随时间的切换,其中,共享视频数据的第一版本在切换到新视点之后被继续流式传输,该共享视频数据的第一版本是从先前视点的全向视频导出的并被来自新视点的全向视频的共享视频数据的第二版本取代;
图7展示了在不同球幕中具有不同角度大小的对象;
图8展示了当在两个不同球幕之间切换时从视点A移动到D时可以如何获得平滑的过渡;
图9展示了球幕被嵌套;
图10展示了在与场景相关联的坐标系中定义的球幕边界,用于指示球幕适用于哪些视点;
图11示出了用于将视频数据流式传输到流式客户端的流式服务器,其中,该视频数据表示场景的全景视频;
图12示出了用于通过流式传输接收视频数据的流式客户端,其中,该视频数据表示场景的全景视频;
图13示出了用于创作表示场景的全景视频的一个或多个视频流的创作系统;
图14示出了包括非暂态数据的计算机可读介质;
图15示出了示例性数据处理系统。
应注意,在不同的附图中具有相同附图标记的项具有相同的结构特征和相同的功能,或者是相同的信号。在已经解释了这种项的功能和/或结构的情况下,在具体实施方式中没有必要再重复对其的解释。
附图标记清单
以下附图标记和缩写词列表被提供以便于解释附图,并且不应被解释为对权利要求的限制。
A-D 视点
CL 流式客户端
DM(X) 球幕(X)
Nx 角度大小
OBJ(X) 对象(X)
SRV 流式服务器
100,102 场景的示意性俯视图
110 地面
120 当前选择的视点
130 视点A的摄像机
132 视点B的摄像机
140 从视点A获取的全向图像
142 从视点B获取的全向图像
150 表示视点A、B的共享视频内容的球幕
160 视点之间的过渡
170 视点
172 时间
200 流式服务器
220 网络接口
222 数据通信
240 处理器子系统
260 数据存储
300 流式客户端
320 网络接口
322 数据通信
340 处理器子系统
360 显示输出端
362 显示数据
380 显示器
400 创作系统
420 网络接口
422 数据通信
440 处理器子系统
460 数据存储
500 计算机可读介质
510 非暂态数据
1000 示例性数据处理系统
1002 处理器
1004 存储器元件
1006 系统总线
1008 本地存储器
1010 大容量存储设备
1012 输入设备
1014 输出设备
1016 网络适配器
1018 应用程序
具体实施方式
以下实施例涉及将视频数据流式传输到流式客户端。特别地,视频数据可以表示场景的全景视频,该全景视频从该场景内的视点示出该场景。该视点可以是该场景内的多个视点之一。因此,场景的多个全景视频可以用于流式传输。例如,这些全景视频可以例如由多个摄像机先前获取,或者可以是先前合成生成的,或者在一些示例中可以是实时生成的。后者的示例是由对应于体育场内不同视点的多个全景摄像机记录的足球场中的足球比赛,每个视点都可被选择用于流式传输。
如果全景视频最初是在某一视点获取的或针对某一视点生成的(例如通过全向摄像机或通过离线渲染),则这样的全景视频也可以称为预渲染视图区(PRVA),指的是视频内容以预渲染的方式提供给流式客户端,而不是流式客户端必须合成生成该视频内容。
举例来说,以下示例假设全景视频是全向视频,例如360°视频。然而,这不是限制,因为关于这些实施例描述的措施同样适用于其他类型的全景视频,例如180°视频等。在这方面,注意全景视频可以是单视场视频,也可以是立体视频或体积视频,例如,由点云或网格或采样光场表示。
流式服务器可以被配置成例如响应于从流式客户端接收到的请求而流式传输相应视点的视频数据。正如下面还将更详细地解释的,当开始流式传输另一个视点(在别处也可以被称为“第二”视点)的视频数据时,该视频数据可以通过继续流式传输当前流式传输的视点(也可以称为“第一”视点)的视频数据的至少一部分被流式传输。该视频数据也可以被称为“共享”视频数据,因为它可以表示可以从第一视点和第二视点可见的场景的共享视频内容。除了共享视频数据之外,可以表示场景的视点特定的视频内容的视点特定的视频数据可以被流式传输到流式客户端。视点特定的视频内容可以包含未包含在共享视频数据中的视频内容。
流式客户端然后可以使用接收到的共享视频数据和接收到的视点特定的视频数据来重建对应于第二视点的全景视频。这种重建可以包括例如通过邻接或叠加共享视频数据与视点特定的视频数据来将这两种类型的视频数据相组合。可以至少临时继续对共享视频数据和视点特定的视频数据进行上述同时但单独的流式传输。在一些实施例中,流式客户端稍后可以切换到全景视频的完整版本,或者切换到流式视频数据的另一种形式。
以上和以下内容是指视频内容之间的相似性。可以理解,这通常可以指视频的对应帧的图像内容之间的相似性,而“对应”指的是这些帧是在基本上相同的时刻获取的或者一般来说与内容时间线上的相似点有关。对视频内容的一般提及将被本领域技术人员理解为包括对视频帧的图像内容的提及,其中,提及是针对视频的空间信息而不是时间信息。
图1A和图1B示出了全向视频在不同视点A和B被捕获的场景100的俯视图。在本图和其他图中,视点被示出为包含标识相应的视点(图1A和图1B中的视点A和B)的字母的圆圈。在这里和别处可以通过三角形120指示当前选择的视点,在该示例中三角形指示视点A的视频数据可以被流式传输到流式客户端。
在图1A和图1B中,场景100被示意性地示出为可以使用坐标系寻址的网格。这种网格状表示可以反映出在一些示例中,记录场景的摄像机可以在物理空间中以网格状方式布置,相应的地点可表示为网格中的坐标。例如,该网格坐标可以对应于实际的地理位置,但可以可替代地表示没有直接物理类比的坐标。在图1A和图1B的示例中,视点A可以因此在场景中具有坐标(1,1),而视点B可以在场景中具有坐标(7,1)。
从图1B中可以看出,场景中可以有对象,该对象在图1B和别处标记为“OBJ”。该对象可以从两个视点都可见,主要区别在于,由于视点B比视点A更靠近对象,所以从视点B看,对象可以比从视点A看显得更大。换言之,对象在视点B的视频数据中可以比在视点A的视频数据中显得更大,但从这两个视点都可见。该示例用于说明场景的一部分在该场景的若干全向视频中可以是可见的。可以理解,在一些示例中,场景的大部分在若干全向视频中可以是可见的,例如天空。
可能希望避免对全向视频中的冗余视频数据进行流式传输,以及在某些情况下,避免对其进行编码、存储和/或解码。在一些示例中,不仅在大小方面而且在地点方面,场景的一部分可以在若干全向视频中具有相同的外观。这意味着若干全向视频中的视频内容可以基本相同,因此可以被认为是“共享”视频内容。如果对象相对于摄像机位于如此之远的距离,以至于视点的移动不会导致对象的明显移动,则这种情况尤其可能发生。同样,对于天空或远处的物体,比如山脉或天际线,可能就是这种情况。在其他示例中,场景的一部分在若干全向视频中可以是可见的,但在视点之间可能发生外观改变(例如,在大小、位置和/或取向方面)。如将在别处阐明的那样,此类视频内容也可以表示“共享”视频内容。在以上示例中,可以通过避免流式传输共享视频内容的冗余版本来利用视点之间的冗余。
图2A和图2B示出了图1A和图1B中的场景的截面视图,其中,示出了地面110、摄像机A 130和摄像机B 132,每个摄像机以全向方式从相应视点获取视频数据,如图2A和图2B中由表示每个摄像机的全向采集的球幕140、142指示。图2A和图2B进一步示出了从视点A和B都可见的视频内容的视觉表示,作为涵盖视点A和B的总体球幕150(在图2A至图2B中标记为“DM”)。
可以通过以下方式来球幕理解“球幕”类比:考虑在许多情况下可以通过将获取的视频数据投影到球幕或类似物体的内部并将虚拟摄像机放置在球幕内来显示全向视频。如此,全向视频或其部分可以出于该原因表示为虚拟球幕。此外,正如还将在别处阐明的那样,共享视频数据在许多情况下可以包含远离摄像机的对象的视频数据,比如天空、城市的天际线、远处的树木等。对于这些遥远的对象,显而易见,视点之间的移动可能导致这些对象没有或只有微不足道的视差。实际上,对于用户而言,这样的视频数据可能看起来是被投影在大的总体虚拟球幕上。同样出于这个原因,共享视频数据在下文中可以被称为球幕,并且在附图中可视地被表示为球幕,因此定义球幕的视频数据是共享视频数据的示例。
可以理解,虽然下文可能指的是球幕的编码、流式传输、解码、渲染等,但是可以理解为这指的是球幕的视频数据的编码、流式传输、解码、渲染等。
继续参考“球幕”类比,共享视频内容也可以被认为表示(部分)球幕。例如,如果共享视频数据涉及天空,则该视频数据可以表示为半球幕。可以理解,形容词“部分”在下文中可能会被省略,但要理解表示共享视频数据的球幕可能仅包含全向视频的视频数据的一部分,例如,一个或多个空间区域。
虽然下文频繁地将天空称为共享视频内容的示例,但可以理解,共享视频数据也可以涉及相对靠近摄像机但从至少两个不同视点可见的对象。图2B示出了这种对象的示例,其示出了图1B中的对象OBJ从视点A和B可见的但在每个获取的全向视频中具有不同的大小,如由摄像机B的视野中具有角度大小N2的对象所指示的,该角度大小大于摄像机A的视野中的角度大小N1。进一步可以理解,例如,在室外环境中的天空的情况下,共享视频数据可能不会覆盖或不需要覆盖相应全向视频的大部分,但可能与一个或多个更小的空间区域(例如,表示更小的单个对象)有关。如此,共享视频数据可以由若干单独的空间区域组成,或者如在下面的实施例中描述的,可以表示空间区域之一。因此,将共享视频数据称为“球幕”不应被理解为限制,而是将其理解为共享视频数据的常见类型的直观可理解的表示。
基本球幕
在场景的内容被拍摄或被合成生成并且全向摄像机(真实或虚拟)在空间中的地点已知之后,球幕可以以共享视频数据的形式被生成,或者作为标识共享视频数据的元数据被生成。球幕创建可以利用这样的图像识别技术,即例如通过简单地将摄像机A获取的视频帧中的图像数据与摄像机B获取的视频帧中的图像数据进行比较来逐帧标识表示共享视频内容的像素(或体素或其他图像元素)。一种非常简单的算法可以逐像素将摄像机B的视频数据与摄像机A的视频数据相减,并且当差值低于特定阈值时可以认为像素属于共享视频数据。更复杂的算法可以找到视频帧之间的对应关系,这些对应关系考虑了诸如大小、位置和/或取向等外观的变化。找到视频帧之间的对应关系本身在视频分析的一般领域中广为人知,例如估计临时相邻视频帧之间的对应关系的运动估计子领域,或估计来自立体像对的左视频帧与右视频帧之间的对应关系的视差估计子领域,或(弹性)图像配准子领域等。此类技术也可以用于找到被认为在从场景的不同视点获取的视频帧之间共享的图像数据。同样如别处所描述的,不仅可以确定对应关系,还可以将对应关系编码为例如元数据,以使流式客户端能够在特定视点中重建共享视频数据的外观。在特定示例中,可以通过估计不同视频的图像部分之间的一个或多个仿射变换来估计对应关系。然后可以将(多个)仿射变换作为元数据用信号通知给流式客户端。
用于标识共享视频内容的任何算法可以优选地对摄像机采集噪声具有鲁棒性,例如,使用技术来增加噪声鲁棒性,如本身已知的。此外,不同的摄像机可以被同步锁定,以便在同一时间点获取来自不同摄像机的视频帧。如果摄像机未同步锁定,则该算法可能会认为视频的帧速率足够高,以至于场景中的明显移动能被认为在不同摄像机拍摄的任何时间上最接近的视频帧之间可以忽略不计。
球幕创建通常可以产生每个视点的视频流,该视频流包含视点特定的视频内容,并且一个或多个视频流表示相应的球幕,每个球幕包含两个或多个视点之间的共享视频内容。在流式客户端,视点特定的视频内容和一个或多个球幕然后可以用于重建全景视频,从而重建特定视点的PRVA。
关于球幕的地点的信息可以例如以本说明书别处描述的方式包括在清单文件中,比如媒体呈现描述符(MPD)。这里,术语“地点”可以指允许球幕与一个或多个PRVA和对应视点相关联的信息。此外,清单文件可以包含或指示(多个)网络地点,可以经由该(这些)网络地点检索相应球幕。
创建球幕和视点特定的视频流的另一个示例是使用深度信息。即,可以利用这样的深度信息来计算从每个视点的光学中心到场景中由视频数据中的像素(或体素或其他图像元素)表示的点的距离。然后可以基于该深度信息在若干视点上对像素区域进行聚类。例如,可以通过对不同视点上的、在每个视点中处于相等距离的像素进行聚类来生成球幕。在特定示例中,无限远的像素可以被认为属于共享视频内容“天空”。
继续参考图2A和图2B,可以针对视点A生成视点特定的视频流,以及为视点B生成另一个视点特定的视频流,每个视频流都省略了天空的像素,但是使用表示球幕DM 150的共享视频流为两个视频流传输一次所省略的像素。在该示例中,可以通过水平划分等量矩形视频来生成各个视点特定的视频流,指的是将等量矩形视频划分为顶部部分和底部部分,从而创建球幕的顶部部分和视点特定的底部部分。球幕本身的视频数据也可以使用等量矩形投影来投影,或者通常可以使用任何其他类型的投影,通过这些投影,可以以矩形视频帧传输全向视频数据。
在另一个示例中,作为在不同视点中可见的背景对象的示例的天空,可能被在视点之间发生位置移动的对象部分遮挡。例如,当场景是具有玻璃天花板的建筑物中的室内场景时,透过玻璃天花板可以看到天空,光束部分遮挡了玻璃天花板,就可能是这种情况。在这样的示例中,可以通过选择从两个视点都可见的天空像素以及通过例如使用等量矩形投影将这些像素投影到新的球幕上来生成球幕。每个视点所特有的像素可以从该球幕中省略。然后,例如通过使用不透明的颜色(例如,绿色)掩蔽添加到球幕的像素,可以生成视点A和B的视频流。实际上,这种掩蔽可以从原始全景视频中“移除”共享视频内容,从而生成视点特定的视频。
共享视频内容也可以被编码为可独立解码的空间分段,例如,“瓦片”。描述瓦片位置的元数据可以以各种方式(例如在文件名中或作为MPD中的性质)被用信号通知给流式客户端。流式客户端可以在特定时间点下载这些瓦片,可以确定瓦片在球幕上的地点并相应地渲染瓦片。如果表示共享视频内容的空间区域相对较小但分辨率较高,则这种基于瓦片的编码和渲染可以是有益的。
在一些示例中,球幕还可以被生成为静态图像,或者可以包括静态图像,该静态图像可以例如通过指示持续时间来表示至少多个视频帧的共享视频内容的至少一部分。在一些示例中,图像可以包含可以被瓦片化以填充空间区域的纹理。在一些示例中,球幕还可以被生成为由颜色填充的空间区域,或者可以包括由颜色填充的空间区域。元数据可以描述颜色和球幕中要被这种颜色填充的空间区域。这可以在清单文件中定义,例如,如下所示:
Figure BDA0004156640180000341
·Region(区域):可以定义区域,该区域包括球幕上的至少三个点,每个点由x、y值定义。可能需要至少三个点来定义形状。x、y值可以通过以下内容来分隔
·PTS,“呈现时间戳”的缩写:要显示此球幕的呈现时间
·持续时间:显示的持续时间,以秒为单位(十进制)
·Color(颜色):可以用RGB、HSL、十六进制等定义颜色。
注意,在这个和其他示例中,球幕可以被定义为可用于重建一个或多个由相应的标识符标识的PRVA,在这个示例中PRVA由标识符“a”和“b”标识。
下载和渲染球幕
图3示出了流式客户端300(标记为“CL”)与流式服务器200(标记为“SRV”)之间的消息交换,用于下载和渲染表示球幕的视频数据。这种消息交换可以涉及以下内容:在可以使用球幕形式的共享视频数据渲染全向视频之前,可能需要下载球幕。图3示出了流式客户端300与流式服务器200之间为了下载球幕而进行的消息交换的示例。特别地,流式客户端300可以首先从流式服务器200检索清单,然后在运行会话期间,可以参考当前选择的视点的位置来确定场景内的位置。如果位置发生变化,例如,由于用户选择或流式客户端300本身的选择,则流式客户端300可以基于清单确定需要哪个(哪些)球幕来在新位置渲染全向视频,并随后从流式服务器200中检索那个(哪些)球幕。已经从流式服务器200检索到(多个)球幕之后,在一些实施例中,流式客户端300然后可以将(多个)球幕渲染为全向视频的一部分。为此目的,虽然图3中未示出,但流式客户端300可以额外地从流式服务器200检索用于新位置的视点特定的视频内容。可以由流式客户端300以各种方式将视点特定的视频内容和(多个)球幕相组合,例如,通过将视点特定的视频内容的视频内容投影到球幕的顶部,例如通过叠加视频内容。为了能够在流式客户端进行简单类型的叠加,例如,可以在流式服务器处或在创作视频数据时在创作系统处进行如下安排:对于视点特定的视频内容和球幕,所使用的坐标系和所使用的投影类型是相同的。在一些示例中,可以例如使用等量矩形投影将视点特定的视频内容格式化为球幕,但是该视频内容可能包括不包含视频数据的部分。这些部分可以制作成透明的,以便即使视点特定的视频内容叠加在球幕上,球幕的对应视频数据也保持可见。
使用球幕信息创建清单文件
下面描述了创建包含球幕信息的清单文件,以使流式客户端在基于检索到的球幕来渲染全向视频时能够正确使用球幕。举例来说,以下内容参考共同未决申请EP 19 219597.2中定义的MPD,但可以理解,这种球幕信息也可以作为不同类型清单的一部分提供,或通常作为不同类型的元数据提供。在下文中,假设例如使用等量矩形投影将球幕格式化为可以以与PRVA相同的方式渲染的全向视频。为了使流式客户端能够渲染球幕,在MPD中或通常在清单中可以包括以下属性:
·ID:球幕的名称
·Offset(偏移):在相对于基础媒体的时间线(也可以被称为基础时间线)的此时间点球幕将被渲染。
·URI:Web地点,经由Web地点可以检索球幕。
球幕的地点可以取决于球幕覆盖哪些PRVA,或者换言之,取决于球幕的共享视频数据可以与哪些视点特定的视频数据组合。球幕可以包含对PRVA标识符的引用。这允许从PRVA的视点特定的视频内容以及从多个球幕(另见“重叠球幕”章节)重建PRVA。
球幕信息的示例如下:
Figure BDA0004156640180000361
瓦片流式传输
球幕可以是全向的。在许多示例中,流式客户端可能一次只能渲染全向视频的一部分,例如用户当前正在使用头戴式显示器(HMD)观看的部分。这可能意味着在任何时间都不能显示所有的全向视频。因此可能没必要流式传输所有的全向视频。为了减少传输的数据量,可以使用瓦片流式传输。为此目的,球幕和/或视点特定的视频内容可以各自在一个或多个瓦片上划分。然后,流式客户端可以仅检索当前可能需要的那些瓦片,例如用于渲染全向视频或用于预缓存目的的那些瓦片。任何检索到的瓦片都可以在流式客户端本地拼接在一起,并且在它们相应的地点被渲染。
重叠球幕
一方面,视点和视点特定的视频数据与另一方面共享视频数据之间可以存在一对多关系,因为可以使用视点特定的视频数据和共享视频数据的几个实例(例如,若干球幕)来重建作为PRVA的全向视频。实际上,PRVA因此可以是一个或多个球幕的一部分,并且一个球幕可以包含一个或多个PRVA。这就创造了重叠球幕的可能性。
图4A至图4C示出了不同类型场景的不同类型的重叠球幕,即图4A中的走廊以及图4B和图4C中的空旷场地。此处,每个视点A至D可以具有其自己的视点特定的内容,而每个虚线的圆/椭圆可以表示球幕。如图4A中可见,在走廊中,用户可以从视点C过渡到A到B到D,球幕可以被定义为适用于两个视点,并通过一个视点相互重叠以创建一系列球幕。在空旷场地的情况下,所有摄像机可以在彼此的视线范围内,并共同观察场景。如图4B所示,如果应用与图4A中相同的原理来创建球幕,则这可能会导致针对相对较少的视点生成大量的球幕。每个球幕可以是可单独解码的流。这可能会在球幕之间产生明显的冗余。可以将图4B的球幕组合成一个总体球幕,如图4C所示。这是否有益可以取决于被编码的球幕的熵以及总体球幕与各个球幕的大小差异。例如,对于晴朗的天空,总体球幕的大小可以与所有各个球幕加在一起的大小几乎相同。然而,如果天空包含许多不规则物,比如热气球和云,则各个球幕的总和可以很容易超过总体球幕的大小。总体球幕可以在“离线”情况下创建,例如,在创作系统进行创作期间。然而,总体球幕也可以被实时创建。
图5示出了流式客户端300与流式服务器200之间的消息交换,用于在不同球幕的视频数据之间切换。在此示例中,流式客户端300可以首先确定例如HMD的显示器的分辨率,然后从流式服务器200检索清单,然后在运行会话期间,参考当前选择的视点的位置来确定场景内的位置。然后,流式客户端300可以例如使用称为“calculate_distance_to_next_dome()”的函数来确定到下一个球幕的距离。如果该距离小于阈值,则这可以提示流式客户端300从流式服务器200检索下一个球幕。在该示例中,用户可以在图4A所示的场景中从视点C移动到视点A。首先,可以下载并渲染覆盖视点A和C的第一球幕。当函数的结果小于0.25时,到视点A的距离的3/4被覆盖。此时,流式客户端300可以下载并渲染覆盖视点A和B的第二球幕。这样一来,在任何一个时间点可以只需要下载和解码一个球幕。
共享视频内容
可能存在视频内容的不同版本。例如,如果视点A示出天空并且视点B示出相同的天空,则可以基于视点A的天空和/或视点B的天空生成球幕。相反地,可以基于视点A的视点特定的视频内容、视点B的视点特定的视频内容、以及表示共享视频内容的例如从视点A或B的全景视频导出或者在一些示例中从视点A或B的两个全景视频导出的版本的球幕来重建视点A和B的全景视频。在后一个示例中,共享视频内容的一些部分可以从视点A的全景视频导出,而共享视频内容的其他部分可以从视点B的全景视频导出,例如通过基于视频数据中对象的图像质量标准或空间分辨率来选择部分(例如,从对象更靠近摄像机的全景视频导出对象的图像数据)。
在一些示例中,可以省略将共享视频内容格式化为单独的文件或视频流。而是,可以生成元数据,该元数据可以定义全景视频的哪一部分视频内容表示共享视频内容。在一些示例中,全景视频可以被格式化以允许例如以瓦片编码的形式对空间分段进行独立检索和解码。在这样的示例中,元数据可以指示表示共享视频内容的空间分段或瓦片,以允许流式客户端独立地解码并且在一些示例中检索共享视频内容的空间分段或瓦片。
在一些示例中,可以提供共享视频内容的多个版本,并且流式服务器和客户端可以从流式传输一个版本切换到流式传输另一个版本。有各种这样的示例,这些示例可能涉及一个或两个解码器的使用。当流式客户端具有多个硬件解码器时,使用两个解码器可能是有益的,例如H265解码器和H264解码器。
第一示例可以包括:
1.流式服务器可以用信号通知表示视点A的视频流的哪一部分在视点B中可见。该部分可以表示视点A与B之间的共享视频内容,实际上是“球幕”。
2.当用户在场景内从视点A移动到视点B时,流式客户端可以继续接收流A并额外检索视点B的视点特定的视频数据。
3.流式客户端可以渲染视点B的视点特定的视频数据,同时仍然渲染来自视点A的流的共享视频数据。
4.当在B视点的完整视频流中到达流接入点时,流式客户端可以切换到该完整视频流。
第二示例可以利用瓦片流式传输。该示例假设整个全向视频包括地平线以下的视点特定的视频内容以及蓝天,蓝天可以在地平线以上的若干视点(例如A、B和C)中可见。然后可以使用来自视点A的天空版本重建视点B的全向视频,而然后可以使用视点B等的天空版本来重建视点C的全向视频。
图6A展示了第二示例,其中,从视点特定的视频数据和从共享视频数据重建不同视点A、B、C的全向视频。特别地,可以假定视点A可以在给定时刻从表示视点A的天空的视频数据和从表示视点A中的地平线(“地面”)以下的场景的视频数据重建。因此,这两种类型的视频内容可以从视点A的摄像机全向获取的视频数据导出,如图6A中具有相同阴影的A1(天空)和A2(地面)所示。当过渡到视点B时(图6A中的箭头160),视点B的地面B2可以被流式传输到流式客户端并用于重建视点B的全向视频,同时视点A的天空A1可以被继续流式传输到流式客户端并用于重建视点B的全向视频。然后,流式客户端可以在某个时间点切换到视点B的天空B1(图6A中未明确示出),例如通过当在视点B的全景视频中到达流接入点时切换到视点B的整体全景视频。当稍后过渡到视点C时,视点C的地面C2可以被流式传输到流式客户端并且用于重建视点C的全向视频,同时视点B的天空B1可以被继续流式传输并且用于重建视点C的全向视频。
图6A因此可以有效地示出天空A1可以作为B1的替代被用于重建B的全向视频。这可能意味着天空B1可以不需要立即被传输到流式客户端。
图6B展示了在视点A、B、C之间随时间的切换。特别地,图6B沿着横轴示出时间172并沿着纵轴示出视点170,在本示例中为视点A、B和C,同时以与图6A类似的方式将全向视频示出为地平线以上的部分和地平线以下的部分。从一个最初获取的全向视频导出的各个部分以相同的阴影示出。特别地,图6B可以涉及以下内容:共享视频内容的如可以从不同的全向视频导出的不同版本可能相互之间差异不大,也可能差异很大。例如,视点A与视点B之间的天空或其他视频内容在外观方面可能非常相似。这可以使得当从视点A切换到视点B时,能够通过流式传输来继续从视点A的全向视频接收天空。然而,视点C中的天空可能与视点A中的天空显著不同。因此,在时间实例3,流式客户端可以检索最初在视点B获取的天空版本,从而渲染最初获取的视点B的全向视频。这使得在切换到视点C时,流式客户端能够在从视点C的全向视频中切换天空的版本之前临时继续从视点B的全向视频获得天空。
球幕,或通常是共享视频内容,可以以各种方式生成,例如由创作系统自动或半自动生成,或由用户手动生成。球幕创建的两个示例可以是:
1.非瓦片方法
a.可以比较两个或更多个全景视频的、例如呈等量矩形投影的形式的视频内容,以标识共享视频内容
b.可以使用将共享视频内容标识为空间区域的球幕元素,例如以MPD的形式来创建清单。
2.瓦片流式传输方法
a.可以比较来自两个或更多个全景视频的瓦片,以标识共享视频内容
b.可以例如以MPD的形式创建清单,该清单可以包含对表示这种共享视频内容的全景视频的瓦片的引用
c.例如,如果流式服务器的存储有限,则可以移除表示共享视频内容的不同版本的重复的瓦片。相反地,如果有足够的存储可用,则可以保留重复的瓦片,这可以允许在共享视频内容的不同版本之间切换,例如以选择以最高空间分辨率示出对象的版本。继续参考清单(其在下面的示例中是MPD)的生成,可以生成或修改MPD以指示全景视频的哪一部分可以表示共享视频内容,例如,如下:
Figure BDA0004156640180000411
此处球幕的uri可以指示球幕使用的是全景视频A的资源。参数x、y、width(宽)、height(高)可以定义在全景视频A与B之间共享的(等量矩形)内容中的区的部分,从而表示共享视频内容或球幕。
对于使用瓦片流式传输的示例,可以生成MPD以通过引用适当的瓦片来定义球幕。在这种情况下,可以引用不需要在空间上连接的瓦片。下面给出了可以如何在瓦片流式传输中定义球幕的示例:
Figure BDA0004156640180000421
每个球幕可以包括多个瓦片,并且一个瓦片可以是多个球幕的一部分。这种多对多关系可以通过以下方式创建:
Figure BDA0004156640180000431
球幕瓦片可以引用多个参考瓦片,指的是全景视频的最初获取或生成的瓦片。特别地,这样的多个参考瓦片可以表示共享视频内容的不同版本。当共享全景视频之间的视频内容,但是由于摄像机在场景中的空间地点,对象以较高的空间分辨率被示出在其中一个全景视频中时,这可能是有用的。流式客户端可以根据其在场景中的地点来决定在参考瓦片之间切换。在两个瓦片包含相同的内容的情况下,流式服务器可以决定移除这些重复的瓦片。
变换
在两个全景视频之间的视频内容可以不相同或基本不相同,但在外观上仍然相似。球幕可以通过使用来自一个全景视频的视频内容来创建。为了重建另外的全景视频,可以对球幕应用变换函数。描述这一点的MPD示例如下所示。
Figure BDA0004156640180000432
Figure BDA0004156640180000441
例如,该变换可以是扭曲变换或透视变化变换,或任何其他类型的空间变换。另一个特定示例是仿射变换。清单文件可以使流式客户端能够确定要将变换应用于哪个球幕、变换是什么以及变换可能需要的其他参数。例如,该变换可以被定义为接收视频内容和参数作为输入并且提供变换后的视频内容作为输出的函数。清单文件可以指示只有球幕的一部分需要通过变换进行处理,例如,不是在上面的示例中的整个“dome1”,而是只有“dome1”的一部分。可替代地,该变换也可以经由URL“transform-url”提供给流式客户端,其中,流式客户端可以基于例如JavaScript、WebGL、C等下载可执行的函数,以用于变换一个球幕的视频内容来获得另一个球幕。
对于每个shared-dome-tile,可以以与前面段落中描述的类似方式应用变换。这样,即使是彼此不完全匹配的瓦片也可以被使用。此外,一个瓦片加上变换函数可能就足以创建球幕的大部分。下表给出了示例。
Figure BDA0004156640180000442
嵌套球幕
图7展示了在不同球幕DM1、DM2中具有不同角度大小的对象OBJ,如由球幕DM1中具有角度大小N3的对象所指示的,该角度大小小于球幕DM2中的角度大小N4。当从视点B移动到C时,可以在两个球幕之间的中间从球幕DM1切换到球幕DM2。然而,这可能会导致对象OBJ的感知质量出现可见的跳跃。为了避免或减少这种可见的跳跃,可以例如使用混合功能将球幕DM1的视频内容与球幕DM2的视频内容混合。然而,这可能需要两个球幕至少临时被同时流式传输和解码。
图8示出了与图7类似的示例,但示出了要用于视点A和B的球幕DM1以及要用于视点C和D的球幕DM2。此外,图8示出了两个对象OBJ1、OBJ2,第一对象OBJ1最接近球幕DM1,第二对象OBJ2最接近球幕DM2。当生成球幕时,可以决定仅将第一对象OBJ1的视频数据编码为球幕DM1的一部分并且仅将第二对象OBJ2的视频数据编码为球幕DM2的一部分。这可能会导致球幕嵌套,例如球幕的洋葱型排列,也如图9所示。这可能意味着为了渲染来自视点A的全向视频(其中,第一对象OBJ1示出在附近而第二对象OBJ2示出在远处),可以检索来自两个球幕DM1、DM2的视频内容。为了向流式客户端指示这一点,可以将“parent”性质添加到球幕元素,该性质可以包含利用下内容分隔的多个值:
Figure BDA0004156640180000451
/>
Figure BDA0004156640180000461
当以递归方式检索球幕时,这可能会导致流式客户端检索场景的所有球幕。这可能需要太多带宽。为了减少必要的带宽,流式客户端的观看方向可以用于仅检索球幕的子集。此处,术语“观看方向”可以理解为指的是客户端沿着场景中的特定观看方向仅渲染全向视频的子集。为此目的,上述函数“determine_domes_to_get(pts,position)”可以使用名称为“viewing_direction”的参数进行扩展。例如,该参数可以包含0°到360°之间的以度为单位的观看方向。这可以允许流式客户端确定要从流式服务器检索球幕的哪个子集。
球幕边界
球幕可以被定义为应用于一组特定的视点,术语“应用”指的是球幕的视频内容可以被用于重建相应视点的事实。如果视点可表示为与场景相关联的坐标系中的坐标,则可以将球幕定义为坐标系中的边界,其中,球幕适用于边界内的所有视点。图10展示了在与场景100相关联的坐标系中的球幕DM1、DM2的此类球幕边界。可以看出,球幕DM1被定义为适用于视点A、B和C,而球幕DM2被定义为适用于视点D和E。可以理解,每个球幕也可以适用于中间视点,例如可以通过本说明书别处提及的视点合成技术生成中间视点。但是,如果视点合成用于生成球幕边界之外的视点,例如当在视点C与D之间过渡时,可能不清楚要检索哪个球幕。作为一种可能的解决方案,流式客户端可以基于球幕的边界来确定要检索哪个球幕,例如确定哪个球幕最近。这可能意味着在图10的示例中,流式客户端可以在对象OBJ的大致地点从球幕DM1切换到球幕DM2。
可以理解,除了视点和球幕之外,也可以根据对象在场景的坐标系中的地点来定义对象。这可以使流式客户端能够根据当前渲染或将要渲染的视点与场景中的对象的相对地点来调整其流式传输。例如,基于对象的地点,流式客户端可以例如通过检索以最高空间分辨率描绘对象的版本来检索示出对象的共享视频内容的不同版本。相应地,可以有效地生成MPD来提供场景的空间地图,该空间地图定义了视点、球幕边界和/或对象。该空间地图可以采用网格的形式。例如,对象可以在清单文件中被如下定义:
Figure BDA0004156640180000471
此处,x和y可以是小数,其中,y=1.0可以是网格中对象的左上角,y=0可以是网格中对象的左下角。width、depth和height可以定义对象的大小,例如可以以米为单位来定义,例如,200×200×200米,或者以任何其他合适的方式来定义。在创作端,对象的地点可以手动确定也可以自动确定,例如使用深度摄像机或使用用于3D深度重建的图像识别技术来从所获取的场景的全向视频内容重建场景中的对象的大小和/或地点。通过提供对象坐标,流式客户端可以例如通过将对象的坐标与球幕边界进行比较来确定哪些球幕最适合用于获得球幕的视频数据。这样,如果希望这样的高分辨率渲染,则流式客户端可以例如检索以最高分辨率示出对象的球幕或检索示出对象的球幕的一部分。
图11示出了用于将表示场景的全景视频的视频数据流式传输到流式客户端的流式服务器200。流式服务器200可以包括到网络的网络接口220。数据通信222可以经由网络到达流式客户端。网络接口220例如可以是有线通信接口,比如以太网接口或基于光纤的接口。该网络例如可以是互联网或移动网络,其中,流式服务器200连接到移动网络的固定部分。可替代地,网络接口220可以例如是如下针对图12的流式客户端300描述的类型的无线通信接口。
流式服务器200可以进一步包括处理器子系统240,该处理器子系统可以例如通过硬件设计或软件被配置成执行本说明书中描述的操作,这些操作涉及流式服务器或者通常涉及将场景的全景视频的视频数据流式传输到流式客户端。通常,处理器子系统240可以由单个中央处理器(CPU)来实现,比如x86或基于ARM的CPU,但也可以由这样的CPU和/或其他类型的处理单元的组合或系统来实现。在流式服务器200分布在不同实体上(例如分布在不同服务器上)的实施例中,处理器子系统240也可以分布在例如这些不同服务器的CPU上。同样如图11所示,流式服务器200可以包括可以用于存储数据的数据存储260,比如硬盘驱动器或硬盘驱动器阵列、固态驱动器或固态驱动器阵列等。
通常,流式服务器200可以是内容分发节点,或者可以使用多个内容分发节点以分布式方式来实施。流式服务器200也可以由另一种类型的服务器或此类服务器的系统来实施。例如,流式服务器200可以由一个或多个云服务器或者由移动网络的一个或多个边缘节点来实施。
图12示出了用于通过流式传输接收表示场景的全景视频的视频数据的流式客户端300。流式客户端300可以包括到网络的网络接口320,以便能够经由数据通信322与流式服务器通信。网络接口320可以是例如无线通信接口,该无线通信接口也可以被称为无线电接口并且可以被配置成连接到移动网络基础设施。在一些示例中,网络接口320可以包括无线电和天线,或者包括无线电和天线连接。在特定示例中,网络接口320可以是用于连接到遵循一个或多个3GPP标准的4G或5G移动网络的4G或5G无线电接口,或者可以是用于连接到Wi-Fi网络基础设施的Wi-Fi通信接口等。在其他示例中,网络接口320可以是例如针对图11的流式服务器200描述的类型的有线通信接口。注意,流式客户端300与流式服务器200之间的数据通信可能涉及多个网络。例如,流式客户端可以经由无线电接入网络连接到移动网络的基础设施,并且经由移动网络的基础设施连接到互联网,其中,流式服务器是也连接到互联网的服务器。
流式客户端300可以进一步包括处理器子系统340,该处理器子系统可以例如通过硬件设计或软件被配置成执行本说明书中描述的操作,这些操作涉及流式客户端或者通常涉及通过流式传输接收场景的全景视频的视频数据。通常,处理器子系统340可以由单个中央处理器(CPU)来实现,比如x86或基于ARM的CPU,但也可以由这样的CPU和/或比如图形处理单元(GPU)等其他类型的处理单元的组合或系统来实现。流式客户端300可以进一步包括用于将显示数据362输出到显示器380的显示输出端360。显示器380可以是流式客户端300的外部显示器或内部显示器(图12示出了外部显示器),并且通常可以是头戴式或非头戴式的。通过使用显示输出端360,流式客户端300可以显示接收到的全景视频。在一些实施例中,这可能涉及处理器子系统340渲染全景视频,术语“渲染”是指一个或多个处理步骤,通过这些步骤可以将全景视频的视频数据转换成可显示的形式。例如,渲染可以涉及将全景视频的视频数据作为纹理映射到虚拟环境中的对象上,比如球体的内部。然后可以将经渲染的视频数据提供给显示输出端360。
通常,流式客户端300可以由(单个)设备或装置来实现,例如,智能电话、个人计算机、膝上型计算机、平板设备、游戏控制台、机顶盒、电视、监视器、投影仪、智能手表、智能眼镜、媒体播放器、媒体记录器等。在一些示例中,流式客户端300可以是诸如5G或下一代移动网络等移动电信网络的所谓的用户设备(UE)。在其他示例中,流式客户端可以是网络的边缘节点,比如上述移动电信的边缘节点。在这些示例中,流式客户端可能缺少显示输出端,或者可能至少不使用显示输出端来显示所接收到的视频数据。而是,流式客户端可以从流式服务器接收视频数据并从中重建全景视频,该全景视频然后可以用于流式传输(例如经由瓦片流式传输)到更下游的流式客户端,比如终端用户设备。
图13示出了用于创作表示场景的全景视频的一个或多个视频流的创作系统400。创作系统400可以包括可以存储来自场景的各个视点的多个全景视频的数据存储460,比如硬盘驱动器或硬盘驱动器阵列、固态驱动器或固态驱动器阵列等。创作系统400进一步被示出为包括用于经由网络422进行数据通信的网络接口420。网络接口420可以是针对图11的流式服务器200或图12的流式客户端300描述的类型。在一些示例中,数据存储460可以是可以经由网络接口420进行网络访问的外部存储。创作系统400可以进一步包括处理器子系统440,该处理器子系统可以例如通过硬件设计或软件被配置成执行本说明书中描述的操作,这些操作涉及创作系统或通常涉及视频流的创作,视频流的创作可以包括共享视频流(“球幕”)、元数据等的生成。
例如,处理器子系统440可以被配置成标识表示场景的共享视频内容的共享视频数据,其中,共享视频内容包括场景的在第一全景视频中可见并且在第二全景视频中可见的视频内容。如在别处阐明的,这样的共享视频内容可以例如通过找到视频帧之间的对应关系来标识。处理器子系统440可以进一步被配置成标识表示场景的第一视点特定的视频内容的第一视点特定的视频数据,其中,第一视点特定的视频内容包括场景的作为第一全景视频的一部分而不是场景的共享视频内容的一部分的视频内容。处理器子系统440可以进一步被配置成通过将第一视点特定的视频数据编码为第一视点特定的视频流并通过将共享视频数据编码为共享视频流、或者通过将第一视点特定的视频数据和共享视频数据编码为视频流来编码第一全景视频,其中,共享视频数据作为视频流的可独立解码部分被包括在视频流中。
处理器子系统440通常可以是针对图11的流式服务器200或图12的流式客户端300描述的类型。通常,创作系统400可以由(单个)设备或装置来实现,例如个人计算机、膝上型计算机、工作站等。在一些示例中,创作系统400可以分布在各种实体上,比如本地服务器或远程服务器。
通常,本说明书中描述的每个实体都可以实现为设备或装置,或在设备或装置中实现。该设备或装置可以包括执行适当软件的一个或多个(微)处理器。相应实体的处理器可以由这些(微)处理器中的一个或多个来实现。实施相应实体功能的软件可以已经被下载和/或存储在对应的一个或多个存储器中,例如,存储在诸如RAM等易失性存储器中或诸如闪存等非易失性存储器中。可替代地,相应实体的(多个)处理器可以以可编程逻辑的形式在设备或装置中实施,例如,作为现场可编程门阵列(FPGA)。任何输入和/或输出接口都可以由设备或装置的相应接口来实施。通常,相应实体的每个功能单元可以以电路或电路系统的形式来实施。相应的实体也可以以分布式方式来实施,例如涉及不同的设备或装置。
注意,在本说明书中描述的任何方法,例如,在任何权利要求中描述的任何方法,可以在计算机上实施为计算机实施的方法、专用硬件、或两者的组合。用于计算机的指令(例如可执行代码)可以存储在例如图14所示的计算机可读介质500上,例如以一系列机器可读物理标记510的形式和/或作为一系列具有不同电(例如,磁)或光性质或值的元素。可执行代码可以以暂态或非暂态的方式存储。计算机可读介质的示例包括存储器设备、光学存储设备、集成电路、服务器、在线软件等。图14通过示例的方式示出了光学存储设备500。
在计算机可读介质500的替代性实施例中,计算机可读介质500可以包括表示本说明书中描述的元数据的数据结构形式的暂态或非暂态数据510。
图15是展示了可以在本说明书中描述的实施例中使用的示例性数据处理系统1000的框图。这种数据处理系统包括本说明书中描述的数据处理实体,包括但不限于流式服务器、流式客户端和创作系统。
数据处理系统1000可以包括通过系统总线1006耦合到存储器元件1004的至少一个处理器1002。如此,数据处理系统可以将程序代码存储在存储器元件1004内。此外,处理器1002可以执行经由系统总线1006从存储器元件1004访问的程序代码。在一个方面,数据处理系统可以被实施为适合于存储和/或执行程序代码的计算机。然而,可以理解,数据处理系统1000可以以包括能够执行本说明书内描述的功能的处理器和存储器的任何系统的形式来实施。
存储器元件1004可以包括一个或多个物理存储器设备,例如本地存储器1008和一个或多个大容量存储设备1010。本地存储器可以是指在程序代码的实际执行期间通常使用的随机存取存储器或其他(多个)非持久性存储器设备。大容量存储设备可以被实施为硬盘驱动器、固态盘或其他持久性数据存储设备。数据处理系统1000还可以包括一个或多个高速缓存存储器(未示出),这些高速缓存存储器提供至少一些程序代码的临时存储,以便减少在执行期间以其他方式从大容量存储设备1010检索程序代码的次数。
被描绘为输入设备1012和输出设备1014的输入/输出(I/O)设备可以可选地耦合到数据处理系统。例如,输入设备的示例可以包括但不限于麦克风、键盘、比如鼠标等指向设备、游戏控制器、蓝牙控制器、VR控制器和基于手势的输入设备等。例如,输出设备的示例可以包括但不限于监视器或显示器、扬声器等。输入设备和/或输出设备可以直接或通过中间I/O控制器耦合到数据处理系统。网络适配器1016还可以耦合到数据处理系统,以使其能够通过中间私有或公共网络耦合到其他系统、计算机系统、远程网络设备和/或远程存储设备。网络适配器可以包括用于接收由所述系统、设备和/或网络向所述数据发射的数据的数据接收器和用于向所述系统、设备和/或网络发射数据的数据发射器。调制解调器、电缆调制解调器和以太网卡是可以与数据处理系统1000一起使用的不同类型的网络适配器的示例。
如图15所示,存储器元件1004可以存储应用程序1018。应当理解,数据处理系统1000可以进一步执行能够促进应用程序的执行的操作系统(未示出)。以可执行程序代码的形式实施的应用程序可以由数据处理系统1000(例如,由处理器1002)执行。响应于执行应用程序,数据处理系统可以被配置成执行将在本文进一步详细地描述的一个或多个操作。
例如,数据处理系统1000可以表示如参考图11和本说明书别处所描述的流式服务器。在这种情况下,应用程序1018可以表示当被执行时配置数据处理系统1000来执行参考所述实体所描述的功能的应用程序。在另一个示例中,数据处理系统1000可以表示如参考图12和本说明书别处所描述的流式客户端。在这种情况下,应用程序1018可以表示当被执行时配置数据处理系统1000来执行参考所述实体所描述的功能的应用程序。在另一个示例中,数据处理系统1000可以表示如参考图13和本说明书别处所描述的创作系统。在这种情况下,应用程序1018可以表示当被执行时配置数据处理系统1000来执行参考所述实体所描述的功能的应用程序。
应注意,上文提到的实施例说明而非限制本发明,并且本领域的技术人员将能够设计许多替代性实施例而不背离所附权利要求的范围。
在权利要求中,置于括号间的任何附图标记不应被解释为限制权利要求。使用动词“包括”和其词形变化不排除存在除权利要求中陈述的元素或级以外的元素或级。元素前面的冠词“一个”或“一种”不排除存在多个这样的元素。在元素列表或组之前的诸如“至少一个”等表述表示从列表或组中选择所有元素或元素的任何子集。例如,表述“A、B和C中的至少一个”应被理解为仅包括A、仅包括B、仅包括C、包括A和B两者、包括A和C两者、包括B和C两者或者全部包括A、B和C。本发明可以借助于包括若干不同元件的硬件以及借助于适当编程的计算机来实施。在列举了若干装置的设备权利要求中,这些装置中的若干装置可以由同一个硬件实施。在相互不同的从属权利要求中陈述某些措施这一事实,并不表示不能有利地使用这些措施的组合。

Claims (24)

1.一种将视频数据流式传输到流式客户端的计算机实施的方法,其中,该视频数据表示场景的全景视频,其中,该全景视频从该场景内的视点示出该场景,其中,该视点是该场景内的多个视点之一,
该方法包括由流式服务器进行以下操作:
-将表示来自该场景内的第一视点的第一全景视频的第一视频数据流式传输到该流式客户端;
-响应于流式传输表示来自该场景内的第二视点的第二全景视频的第二视频数据的决定,
通过在该流式服务器的至少一种操作模式下至少临时且同时进行以下操作来将该第二视频数据流式传输到该流式客户端:
-通过继续流式传输表示该场景的共享视频内容的共享视频数据来继续流式传输该第一视频数据的至少一部分,其中,该共享视频内容包括该场景的在该第一全景视频中可见并且在该第二全景视频中可见的视频内容;以及
-流式传输表示该场景的第二视点特定的视频内容的第二视点特定的视频数据,其中,该第二视点特定的视频内容包括该场景的作为该第二全景视频的一部分而不是该场景的共享视频内容的一部分的视频内容。
2.根据权利要求1所述的方法,其中:
-该第一视频数据的流式传输包括:流式传输表示该场景的第一视点特定的视频内容的第一视点特定的视频数据,其中,该第一视点特定的视频内容包括该场景的作为该第一全景视频的一部分而不是该场景的共享视频内容的一部分的视频内容;以及流式传输包括该共享视频数据的共享视频流;
-该第二视频数据的流式传输包括至少临时继续流式传输该共享视频流。
3.根据权利要求1所述的方法,其中,该第一视频数据的流式传输包括流式传输该共享视频数据作为可独立解码部分被包括在其中的视频流。
4.根据权利要求1至3中任一项所述的方法,进一步包括向该流式客户端提供元数据,其中,该元数据指示表示该第一视频数据的一部分和该第二视频数据的一部分的共享视频数据。
5.根据权利要求1至4中任一项所述的方法,进一步包括流式传输该共享视频数据或作为全景视频的至少一部分的空间分段编码的任何视点特定的视频数据。
6.根据权利要求1至5中任一项所述的方法,其中,该共享视频数据的流式传输包括周期性地传输至少以下内容之一:
-图像;以及
-元数据,该元数据定义用于填充空间区域的颜色,
其中,该图像或该颜色表示至少多个视频帧的共享视频内容的至少一部分。
7.一种接收视频数据的计算机实施的方法,其中,该视频数据表示场景的全景视频,其中,该全景视频从该场景内的视点示出该场景,其中,该视点是该场景内的多个视点之一,
该方法包括由流式客户端进行以下操作:
-通过流式传输接收表示来自该场景内的第一视点的第一全景视频的第一视频数据;
-当切换到第二视点时,
通过流式传输接收来自该场景内的第二视点的第二全景视频的第二视频数据;
其中,通过流式传输接收该第二视频数据包括在该流式客户端的至少一种操作模式下至少临时且同时进行以下操作:
-通过继续接收表示该场景的共享视频内容的共享视频数据来继续通过流式传输接收该第一视频数据的至少一部分,其中,该共享视频内容包括该场景的在该第一全景视频中可见并且在该第二全景视频中可见的视频内容,
-通过流式传输接收表示该场景的第二视点特定的视频内容的第二视点特定的视频数据,其中,该第二视点特定的视频内容包括该场景的作为该第二全景视频的一部分而不是该场景的共享视频内容的一部分的视频内容。
8.根据权利要求7所述的方法,进一步包括:
-接收元数据,其中,该元数据指示表示该第一视频数据的一部分和该第二视频数据的一部分的共享视频数据;以及
-基于该元数据,将该共享视频数据用于该第二全景视频的渲染。
9.根据权利要求8所述的方法,其中,该元数据进一步标识包含该第二视点特定的视频数据的第二视点特定的视频流,其中,该第二视点特定的视频流可从该流式服务器访问,并且其中,该方法进一步包括,基于该元数据并且当切换到该第二视点时,向该流式服务器请求该第二视点特定的视频流。
10.根据权利要求8或9任一项所述的方法,其中,该元数据是该场景的视频数据流的清单。
11.根据权利要求8至10中任一项所述的方法,其中,该元数据指示要应用于该共享视频内容的变换,并且其中,该方法进一步包括,在该第二全景视频的渲染之前或作为该第二全景视频的渲染的一部分将该变换应用于该共享视频内容。
12.根据权利要求8至11中任一项所述的方法,其中,该视点的地点可表示为与该场景相关联的坐标系中的相应坐标,其中,该元数据定义该共享视频数据的坐标范围,并且其中,该方法进一步包括将该共享视频数据用于相应坐标位于该元数据所定义的坐标范围内的视点的相应全景视频的渲染。
13.根据权利要求7至12中任一项所述的方法,其中,至少临时接收的共享视频数据是该共享视频内容的从该第一全景视频导出的第一版本,其中,该方法进一步包括通过流式传输接收第二共享视频数据,该第二共享视频数据表示该共享视频内容的从该第二全景视频导出的第二版本。
14.根据权利要求13所述的方法,其中,该共享视频内容的第二版本作为视频流被接收,并且其中,该视频流的接收从该视频流中的流接入点开始。
15.根据权利要求14所述的方法,其中,包含该共享视频内容的第二版本的视频流是第二共享视频流,其中,该第二视点特定的视频数据作为该第二视点特定的视频流被接收,并且其中,该第二共享视频流在每个时间单位内包括比该第二视点特定的视频流更少的流接入点。
16.根据权利要求7至15中任一项所述的方法,进一步包括通过以下操作至少之一将该共享视频内容与该第二视点特定的视频内容组合:
-将该共享视频内容与该第二视点特定的视频内容在空间上邻接;
-将该共享视频内容与该第二视点特定的视频内容合并;以及
-将该第二视点特定的视频内容叠加在该共享视频内容上。
17.根据权利要求7至16中任一项所述的方法,进一步包括:
-渲染该第二视频数据来获得经渲染的视频数据以供该流式客户端或另一实体显示,其中,该渲染包括将该共享视频数据和该第二视点特定的视频数据组合。
18.一种创作表示场景的全景视频的一个或多个视频流的计算机实施的方法,该方法包括:
-访问第一全景视频,其中,该第一全景视频从该场景内的第一视点示出该场景;
-访问第二全景视频,其中,该第二全景视频从该场景内的第二视点示出该场景;
-标识表示该场景的共享视频内容的共享视频数据,其中,该共享视频内容包括该场景的在该第一全景视频中可见并且在该第二全景视频中可见的视频内容;
-标识表示该场景的第一视点特定的视频内容的第一视点特定的视频数据,其中,该第一视点特定的视频内容包括该场景的作为该第一全景视频的一部分而不是该场景的共享视频内容的一部分的视频内容;以及
-通过以下方式编码该第一全景视频:
-将该第一视点特定的视频数据编码为第一视点特定的视频流,并将该共享视频数据编码为共享视频流;或
-将该第一视点特定的视频数据和该共享视频数据编码为视频流,其中,该共享视频数据作为该视频流的可独立解码部分被包括在该视频流中。
19.一种计算机可读介质,包括表示计算机程序的暂态或非暂态数据,该计算机程序包括用于使处理器系统执行根据权利要求1至18中任一项所述的方法的指令。
20.一种计算机可读介质,包括暂态或非暂态数据,该数据定义数据结构,该数据结构表示将视频流的视频数据标识为表示场景的共享视频内容的元数据,其中,该元数据指示该共享视频内容至少在该场景的第一全景视频和第二全景视频中可见。
21.一种用于将视频数据流式传输到流式客户端的流式服务器,其中,该视频数据表示场景的全景视频,其中,该全景视频从该场景内的视点示出该场景,其中,该视点是该场景内的多个视点之一,
其中,该流式服务器包括:
-到网络的网络接口,其中,数据通信可经由该网络到达该流式客户端;
-处理器子系统,该处理器子系统被配置成经由该网络接口进行以下操作:
将表示来自该场景内的第一视点的第一全景视频的第一视频数据流式传输到该流式客户端;
响应于流式传输表示来自该场景内的第二视点的第二全景视频的第二视频数据的决定,通过至少临时且同时进行以下操作来将该第二视频数据流式传输到该流式客户端:
-通过继续流式传输表示该场景的共享视频内容的共享视频数据来继续流式传输该第一视频数据的至少一部分,其中,该共享视频内容包括该场景的在该第一全景视频中可见并且在该第二全景视频中可见的视频内容;以及
-流式传输表示该场景的第二视点特定的视频内容的第二视点特定的视频数据,其中,该第二视点特定的视频内容包括该场景的作为该第二全景视频的一部分而不是该场景的共享视频内容的一部分的视频内容。
22.一种用于通过流式传输接收视频数据的流式客户端,其中,该视频数据表示场景的全景视频,其中,该全景视频从该场景内的视点示出该场景,其中,该视点是该场景内的多个视点之一,
其中,该流式客户端包括:
-到网络的网络接口;
-处理器子系统,该处理器子系统被配置成经由该网络接口进行以下操作:
通过流式传输接收表示来自该场景内的第一视点的第一全景视频的第一视频数据;
当切换到第二视点时,通过流式传输接收来自该场景内的第二视点的第二全景视频的第二视频数据,其中,通过流式传输接收该第二视频数据包括至少临时且同时进行以下操作:
-通过继续接收表示该场景的共享视频内容的共享视频数据来继续通过流式传输接收该第一视频数据的至少一部分,其中,该共享视频内容包括该场景的在该第一全景视频中可见并且在该第二全景视频中可见的视频内容,
-通过流式传输接收表示该场景的第二视点特定的视频内容的第二视点特定的视频数据,其中,该第二视点特定的视频内容包括该场景的作为该第二全景视频的一部分而不是该场景的共享视频内容的一部分的视频内容。
23.根据权利要求22所述的流式客户端,其中,该流式客户端是以下之一:
-网络节点,比如边缘节点;
-终端用户设备,该终端用户设备被配置成连接到网络。
24.一种用于创作表示场景的全景视频的一个或多个视频流的创作系统,该创作系统包括:
-数据存储接口,该数据存储接口用于以下操作:
访问第一全景视频,其中,该第一全景视频从该场景内的第一视点示出该场景;
访问第二全景视频,其中,该第二全景视频从该场景内的第二视点示出该场景;
-处理器子系统,该处理器子系统被配置成:
标识表示该场景的共享视频内容的共享视频数据,其中,该共享视频内容包括该场景的在该第一全景视频中可见并且在该第二全景视频中可见的视频内容;
标识表示该场景的第一视点特定的视频内容的第一视点特定的视频数据,其中,该第一视点特定的视频内容包括该场景的作为该第一全景视频的一部分而不是该场景的共享视频内容的一部分的视频内容;以及
通过以下方式编码该第一全景视频:
-将该第一视点特定的视频数据编码为第一视点特定的视频流,并将该共享视频数据编码为共享视频流;或
-将该第一视点特定的视频数据和该共享视频数据编码为视频流,其中,该共享视频数据作为该视频流的可独立解码部分被包括在该视频流中。
CN202180067743.9A 2020-10-01 2021-09-28 从多个视点流式传输场景的全景视频 Pending CN116325769A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP20199504 2020-10-01
EP20199504.0 2020-10-01
PCT/EP2021/076598 WO2022069445A1 (en) 2020-10-01 2021-09-28 Streaming panoramic video of a scene from multiple viewpoints

Publications (1)

Publication Number Publication Date
CN116325769A true CN116325769A (zh) 2023-06-23

Family

ID=72717694

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180067743.9A Pending CN116325769A (zh) 2020-10-01 2021-09-28 从多个视点流式传输场景的全景视频

Country Status (4)

Country Link
US (1) US20240031614A1 (zh)
EP (1) EP4222970A1 (zh)
CN (1) CN116325769A (zh)
WO (1) WO2022069445A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116996661A (zh) * 2023-09-27 2023-11-03 中国科学技术大学 三维视频展示方法、装置、设备及介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115334337B (zh) * 2022-10-13 2023-03-24 深圳市华曦达科技股份有限公司 一种vr视频传输方法、装置、终端及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019195101A1 (en) * 2018-04-05 2019-10-10 Futurewei Technologies, Inc. Efficient association between dash objects

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116996661A (zh) * 2023-09-27 2023-11-03 中国科学技术大学 三维视频展示方法、装置、设备及介质
CN116996661B (zh) * 2023-09-27 2024-01-05 中国科学技术大学 三维视频展示方法、装置、设备及介质

Also Published As

Publication number Publication date
US20240031614A1 (en) 2024-01-25
WO2022069445A1 (en) 2022-04-07
EP4222970A1 (en) 2023-08-09

Similar Documents

Publication Publication Date Title
US11405643B2 (en) Sequential encoding and decoding of volumetric video
US10600233B2 (en) Parameterizing 3D scenes for volumetric viewing
US11599968B2 (en) Apparatus, a method and a computer program for volumetric video
Domański et al. Immersive visual media—MPEG-I: 360 video, virtual navigation and beyond
US11202086B2 (en) Apparatus, a method and a computer program for volumetric video
US11218683B2 (en) Method and an apparatus and a computer program product for adaptive streaming
CN112585978B (zh) 生成用于在vr中显示的复合视频流
US11882267B2 (en) Adapting video images for wearable devices
US11463681B2 (en) Encoding and decoding of volumetric video
US11528538B2 (en) Streaming volumetric and non-volumetric video
EP3434021B1 (en) Method, apparatus and stream of formatting an immersive video for legacy and immersive rendering devices
US20240031614A1 (en) Streaming panoramic video of a scene from multiple viewpoints
WO2022022501A1 (zh) 视频处理方法、装置、电子设备及存储介质
WO2019229293A1 (en) An apparatus, a method and a computer program for volumetric video
JP7320146B2 (ja) ディスオクルージョンアトラスを用いたマルチビュービデオ動作のサポート
US20210321072A1 (en) An apparatus for transmitting a video, a method for transmitting a video, an apparatus for receiving a video, and a method for receiving a video
US11924442B2 (en) Generating and displaying a video stream by omitting or replacing an occluded part
CN111726598B (zh) 图像处理方法和装置
CN113243112B (zh) 流式传输体积视频和非体积视频
KR102658474B1 (ko) 가상 시점 합성을 위한 영상 부호화/복호화 방법 및 장치
JP2022517499A (ja) 画像特性画素構造の生成および処理

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