CN113994707A - 用于在显示器上渲染视频的方法和设备 - Google Patents

用于在显示器上渲染视频的方法和设备 Download PDF

Info

Publication number
CN113994707A
CN113994707A CN202080043917.3A CN202080043917A CN113994707A CN 113994707 A CN113994707 A CN 113994707A CN 202080043917 A CN202080043917 A CN 202080043917A CN 113994707 A CN113994707 A CN 113994707A
Authority
CN
China
Prior art keywords
tile
frame
encoded
frames
stream
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
CN202080043917.3A
Other languages
English (en)
Inventor
R·万勃兰登堡
X·A·J-P·科尔比隆
A·T·维那伊兹恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tiled Meidia Co ltd
Original Assignee
Tiled Meidia Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tiled Meidia Co ltd filed Critical Tiled Meidia Co ltd
Publication of CN113994707A publication Critical patent/CN113994707A/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
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/111Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • 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
    • 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/234363Processing 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 by altering the spatial resolution, e.g. for clients with a lower screen resolution
    • 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/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47202End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
    • 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)
  • Human Computer Interaction (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

描述了一种用于在客户端设备的显示器上渲染沉浸式视频的空间部分的方法,所述客户端设备包括图块帧检索设备、解码器设备和渲染器设备,其中沉浸式视频包括视频帧,每个视频帧在空间上被划分为图块帧,并且沉浸式视频包括图块流,每个图块流表示沉浸式视频的空间部分,并且每个图块流包括多个所述图块帧,并且其中客户端存储有图块流映射信息,图块流映射信息为每个图块流指示在诸如球形或立方体之类的二维或三维模型的表面上的相应位置,所述方法包括:基于所述图块流映射信息和视口,图块帧检索设备确定多个图块流,并向服务器请求编码视频数据,编码视频数据对于每个确定的图块流包括编码图块帧,编码图块帧包括表示包含在该图块流中的图块帧的编码数据;图块帧检索设备接收编码图块帧并形成编码视频帧,编码视频帧包括接收的编码图块帧,每个编码图块帧在编码视频帧中具有位置,并且图块帧检索设备生成图块帧布置信息,图块帧布置信息指示每个编码图块帧在编码视频帧内的位置;所述解码器设备对编码视频帧解码以获得解码视频帧,解码视频帧包括在解码视频帧内的相应位置处的图块帧;基于图块帧布置信息并且基于图块流映射信息,所述渲染器设备将解码视频帧映射到二维或三维模型的一个或多个表面上,使得每个图块帧被映射到所指示的模型的一个或多个表面的位置上;基于映射的解码视频帧,渲染器设备在客户端设备的显示器上渲染解码视频帧的至少一部分。

Description

用于在显示器上渲染视频的方法和设备
技术领域
本公开涉及一种用于在客户端设备的显示器上渲染沉浸式视频的空间部分的方法,以及一种计算机程序。
背景技术
WO2019048426A1和WO2015197818A1描述了用于视频数据的分块(tiled)流式传输的方法。在分块流式传输中,视频被分割成图块(tile)流,并且每个视频帧被分割成各个空间元素帧,也称为图块帧。图块流可以被视为只包含视频的特定空间区域的单独的视频。每个图块流可以理解为由多个时间上分离的空间元素帧组成,多个视频帧中的每个视频帧一个空间元素帧。由于这些空间元素帧可以是矩形的,因此在本文中将它们称为“图块帧”。应理解的是,本文中使用的“图块帧”可以具有任何形状,比如三角形。
就沉浸式视频(比如360°视频或180°视频)来说,客户端设备通常只消耗整个视频的一部分。客户端设备只在显示器上渲染存在于所谓的视口(viewport)中的那部分视频。视口通常可以由用户控制,例如通过用户在穿戴作为客户端设备的头戴式显示器时改变其头部的取向来控制。
分块流式传输的优点在于可以只向客户端设备发送为在显示器上渲染视频的适当部分(即,当前在视口中的那部分视频)所需的图块帧。与其中整个沉浸式视频(包括视频的将不在客户端设备的显示器上渲染的空间部分)被发送到客户端的流式传输方法相比,这大大减少了所消耗的带宽。
优选独立于其他图块流编码每个图块流。然而,在图块流内,一些图块帧可以是参考该图块流内的其他图块帧来编码的,这导致所谓的帧间编码图块帧,而其他图块帧可以是不参考图块流内的其他图块帧编码的,这导致所谓的帧内编码图块。
在分块流式传输中,馈送到解码器的每个编码视频帧从而包括所选择的编码图块帧。通常,这些图块帧在编码视频帧中的布置方式不同。图块帧布置可以对于每个编码视频帧变化,从而也可以对于解码器输出的每个解码视频帧变化。变化的图块帧布置的一个简单原因在于每一帧可以包括一组不同的图块帧。渲染步骤可以确保图块帧被重新安排到它们在渲染的视口中的预期位置。
如果分块流式传输由包括所谓的受保护媒体路径的客户端设备消耗,则可能出现问题。这样的受保护媒体路径通常是为了强行实施对于内容的数字版权管理(DRM)保护而实现的。在这样的情况下,客户端设备从服务器接收加密的编码视频数据。客户端设备包括解密模块,所述解密模块被配置成对加密的编码视频数据解密,例如通过检索解密密钥并使用该解密密钥进行解密。随后,可以将解密的编码视频数据提供给解码器设备以进行解码,然后提供给渲染器设备以在显示器上渲染内容。受保护媒体路径阻止对解密的(编码或解码)视频数据的任何访问,使得解密的视频数据例如不能被非法复制。
在更传统的沉浸式、视口自适应视频流式传输方法中,内容准备设备通常已存储原始视频数据,并且根据在客户端设备处的检测视口基于原始视频数据生成比特流。随后可以在内容准备设备对比特流进行编码和加密。这样的方法允许内容准备设备将渲染所需的任何信息打包到比特流中。从而,该渲染信息已存在于客户端设备接收的加密的编码视频数据中。渲染信息在比特流中通过受保护媒体路径传播,从而可以在不访问解密的编码视频数据或解密的解码视频数据的情况下被提供给渲染器设备。
然而,当客户端设备选择渲染正确视口所需的图块帧并请求它们时,图块帧已经被加密和编码。于是,渲染信息还没有存在于加密数据中。图块帧已经被加密和解码的事实大大减少了等待时间。然而,如上所述,编码和解码视频帧的图块帧布置可能每帧都不同,并且特定图块帧将终止于其中的图块帧布置在加密的时候是未知的。此外,由于受保护媒体路径,不可能在客户端设备处访问解密的视频数据,以便将所需的渲染信息添加到解密的视频数据中。于是,在包括受保护媒体路径的客户端设备中,通常无法使用低等待时间的分块流式传输。
US2019/174150A1公开了一种通过客户端设备处理全向视频的方法,所述全向视频与用于确定所述全向视频的视频数据在曲面(优选球面)上的空间位置的3D坐标系关联,所述方法包括:接收清单文件,所述清单文件包括用于识别多个图块流的多个图块流标识符,图块流包括具有图像视图的视频帧,由此不同图块流的视频帧的图像视图覆盖全向视频的2D投影的不同区域,一个区域定义一个图块;基于清单文件中的空间关系信息,并且基于客户端设备的用户的视点,选择第一图块位置和第一分辨率所关联的第一图块流,以及第二图块位置和第二分辨率所关联的第二图块流,第二分辨率低于第一分辨率,其中空间关系信息为每个图块定义图块位置,并且其中视点定义用户的观看方向,图块位置和视点基于3D坐标系的坐标来定义。
WO2019/008174A1公开了将加密/解密应用于基于图块的视频流式传输的概念。按照第一变体,比特流的分别与视频图片区域的对应部分相关并且收集不同质量的比特流的一个或多个子集例如经受加密,使得通过提取器从这些子集中的每一个挑选一个比特流而得到的编译比特流对于当前图片帧,具有每个加密子集中的所述一个比特流的一个加密图片部分。按照该第一方面,加密通过按块加密进行,解密通过按块解密进行,两者都通过使用明文掩码和/或块解密密钥的顺序变化,并且特别地,对于在编译比特流中形成相应子图片部分的每个图片部分,顺序变化经受重新初始化。在客户端侧,也就是在下载侧,基于以下备选方案之一来检测加密子图片部分的编码有效负载部分的边界:通过解析这种加密子图片部分的编码有效负载部分直到当前解密的位置和/或通过从相应子图片部分内的报头导出相应子图片部分的编码有效负载部分的长度,和/或使用在从其提取相应子图片部分所属的图片部分的比特流内用信号通知的比特流长度或指针指示。本公开的目的在于提供一种用于渲染沉浸式视频的空间部分的方法,其中有效地考虑了后续视频帧中的变化的图块帧布置。
发明内容
于是,提供一种用于在客户端设备的显示器上渲染沉浸式视频的空间部分的方法。客户端设备包括图块帧检索设备、解码器设备和渲染器设备。沉浸式视频包括视频帧,并且每个视频帧在空间上被划分为图块帧。沉浸式视频包括图块流,每个图块流表示沉浸式视频的空间部分,并且每个图块流包括多个所述图块帧。客户端存储有图块流映射信息,所述图块流映射信息为每个图块流指示在二维或三维模型(例如,球形或立方体)的表面上的相应位置。所述方法包括基于所述图块流映射信息和视口,所述图块帧检索设备确定多个图块流,并向服务器请求编码视频数据。对于每个确定的图块流,所述编码视频数据包括编码图块帧,该编码图块帧包括表示包含在该图块流中的图块帧的编码数据。例如,对于分别确定的第一和第二图块流,编码视频数据分别包括第一和第二编码图块帧,该第一和第二编码图块帧包括分别表示第一和第二图块帧的编码数据。这里,第一和第二图块帧分别包含在相应的第一和第二图块流中。
所述方法还包括所述图块帧检索设备接收编码图块帧并形成编码视频帧。编码视频帧包括接收的编码图块帧。此外,每个编码图块帧在编码视频帧中具有位置。所述方法还包括所述图块帧检索设备生成图块帧布置信息。该信息指示每个编码图块帧在编码视频帧内的位置。
所述方法还包括所述解码器设备对编码视频帧解码,以获得解码视频帧。解码视频帧包括在解码视频帧内的相应位置处的图块帧。所述解码器设备可以输出解码视频帧。或者,所述解码器设备可以输出中间视频帧,该中间视频帧随后可以被处理和/或修改以获得上述解码视频帧。
所述方法还包括基于图块帧布置信息并且基于图块流映射信息,所述渲染器设备将解码视频帧映射到二维或三维模型的一个或多个表面上,使得每个图块帧被映射到模型的一个或多个表面的位置上。
所述方法还包括基于映射的解码视频帧,所述渲染器设备在客户端设备的显示器上渲染解码视频帧的至少一部分。
本公开的另一个方面涉及一种用于在客户端设备的显示器上渲染沉浸式视频的空间部分的方法,所述客户端设备包括图块帧检索设备、解码器设备和渲染器设备,
所述沉浸式视频包括视频帧序列,每个视频帧在空间上被划分为图块帧,所述视频帧序列中的图块帧定义图块流,每个图块流表示沉浸式视频的空间部分;
所述客户端适于存储图块流映射信息,所述图块流映射信息为每个图块流指示在二维或三维模型(诸如等距矩形或立方体模型)的表面上的相应位置,所述方法包括:
所述图块帧检索设备基于图块流映射信息和第一视口信息来确定多个图块流;
所述图块帧检索设备向服务器(可选地在清单文件中识别的服务器)请求与多个图块流关联的编码视频数据,对于所述多个图块流中的每一个,编码视频数据包括包含表示图块帧的编码视频数据的编码图块帧;
所述图块帧检索设备接收编码图块帧,并形成编码视频帧,编码视频帧包括接收的编码图块帧,优选地,编码图块帧的空间布置,每个编码图块帧在编码视频帧中具有位置;
所述图块帧检索设备生成指示每个编码图块帧在编码视频帧内的位置的图块帧布置信息;
所述解码器设备将编码视频帧解码成解码视频帧,解码视频帧包含在解码视频帧内的相应位置处的图块帧;
所述渲染器设备生成映射的解码视频帧,所述生成包括基于图块帧布置信息并且基于图块流映射信息(可选地定义图块帧和二维或三维模型的一个或多个面之一之间的关系),将解码视频帧的图块帧映射到2D或3D模型的一个或多个表面上;和
所述渲染器设备使用第二视口信息在客户端设备的显示器上渲染映射的解码视频帧的至少一部分。
有利的是,所述方法使用如下事实:客户端检索设备形成编码视频帧,于是例如通过简单地跟踪它将哪个编码图块帧放置在编码视频帧中的哪个位置,可以生成图块布置信息。通常,解码器不会改变图块布置,至少不会以不可预测的方式改变图块布置,使得如果已知编码视频帧中的图块布置,则也可以确定关联的解码视频帧中的图块布置。客户端设备可以是配置成连接到服务器系统的任何设备,比如头戴式显示器、电话机、电视机、平板计算机等。客户端设备可选地包括显示器。在实施例中,如本文中所述,客户端设备是没有显示器的边缘服务器。
每个图块帧可以被理解为包括表示图片的图片数据,比如样本和/或像素。在图块帧的各个图片具有不同时间戳的意义上,给定图块流内的图块帧可以被理解为在时间上分离。
视口可以被理解为在客户端设备的显示器上渲染的沉浸式视频的空间区域。优选地,客户端设备包括配置成检测当前或预期视口的视口检测设备。这种视口检测设备的例子可以是头戴式显示器上的一个或多个取向传感器,所述取向传感器被配置成检测头戴式显示器的取向,并确定该取向的视口信息。视口信息可以指示视口在模型的一个或多个表面上的位置。可以在确定要检索哪些图块帧之前的第一时间实例测量第一视口信息,并且可以在接收到图块帧之后(可选地在图块帧被解码之后)的第二时间实例测量第二视口信息。
图块流映射信息可以包括图块流标识符,并且可以理解为使得图块帧检索设备能够基于当前或预期视口来检索适当的图块帧。
位置例如由HEVC标准文档ISO/IEC 23008-2所定义的切片报头段地址来定义。在这种情况下,当两个相应的编码视频帧中的两个编码图块帧具有相同位置时,可以理解为这两个编码图块帧与相同的切片报头段地址关联。
在本公开中,编码图块帧可以说在编码视频帧中具有位置,并且解码图块帧可以说在解码视频帧中具有位置。编码图块帧在编码视频帧中的位置可以称为编码视频帧位置,解码图块帧在解码视频帧中的位置可以称为解码视频帧位置。
模型可以包括在顶点会合的多个表面。举例来说,当模型是三维立方体时,模型包括8个顶点,即立方体的8个角。用于渲染空间部分的方法可以包括对于模型的多个顶点(例如所有顶点)中的每个顶点,确定在解码视频帧中的关联位置的步骤。该步骤可被理解为将解码视频帧映射到模型的一个或多个表面上。如果对于模型的表面的每个顶点,确定了在解码视频帧中的关联“顶点”位置,则可以基于解码视频帧中的顶点位置之间的内插,对于该表面上的每个位置,确定在解码视频帧中的关联位置,从而确定关联的样本。通常,三维模型由二维三角形组成。将解码视频帧映射到三维模型可以包括对于这种三角形的每个顶点,确定在解码视频帧中的关联位置。从而,映射不一定涉及将解码视频帧中的所有位置映射到模型的一个或多个表面上。
编码图块帧优选预存储在服务器上。如果基于视口,将在服务器进行图块流的选择,并且所选择的图块仍然将需要在服务器被编码,则等待时间将显著增加。
应意识到的是,所述方法包括用于渲染单个视频帧的空间部分的步骤,不过,为了渲染多个视频帧的空间部分,可以简单地重复进行所述方法。
优选地,图块流已被分别编码,使得可以在不参考来自其他图块流的图块帧的情况下,解码一个图块流中的每个图块帧。
编码视频帧可以采用编码比特流的形式,解码视频帧可以采用解码比特流的形式。
图块流映射信息可以是清单文件的一部分,清单文件包括存储图块流的一个或多个服务器的位置信息(URL)。
在实施例中,渲染器设备被配置成当将解码视频帧映射到模型的一个或多个表面上时进行预定映射。这样的实施例包括解码器设备对编码视频帧解码,并输出中间的解码视频帧。中间的解码视频帧包括在中间的解码视频帧内的相应位置处的图块帧。这样的实施例还包括基于图块流映射信息并且基于图块帧布置信息,例如由渲染器设备确定解码视频帧,包括重新布置图块帧,使得至少一个图块帧在中间的解码视频帧中具有与在解码视频帧中不同的位置。这样的实施例还包括渲染器设备进行所述预定映射。
该实施例有利地允许使用利用预定映射的渲染器设备。预定映射可以是硬编码的,使得渲染器不能以任何其他方式进行映射。
确定解码视频帧的步骤可选地包括放大一个或多个图块帧。这将例如允许使用高质量图块帧和低质量图块帧,如下进一步所述。
在实施例中,渲染器设备被配置成根据关联的图块布置信息来确定解码视频帧的映射。这样的实施例包括解码器设备对编码视频帧解码,并输出解码视频帧,以及渲染器设备按照所确定的映射,将解码视频帧映射到模型的一个或多个表面上。
这种方法的优点在于解码器输出的解码视频帧可以直接映射到模型上。在前一个实施例中,解码视频帧可被理解为中间的解码视频帧的复制版本。
此外,该实施例避免了放大一个或多个图块帧的需要,这是计算非常密集的处理,因为它涉及新样本的计算,以填充图块帧的放大版本。
在实施例中,生成映射的解码视频帧包括:
在映射图块流之前,基于图块帧布置信息并且基于图块流映射信息,重新布置解码视频帧中的一个或多个图块帧。
在实施例中,所述方法包括所述图块帧检索设备基于图块流映射信息并且基于图块帧布置信息来确定渲染信息。这样的实施例还包括
-图块帧检索设备将渲染信息提供给渲染器设备,和
-渲染器设备基于渲染信息进行映射。
该实施例有利地允许降低渲染器设备的计算负载。渲染信息可以为模型的每个顶点指示在解码视频帧中的关联位置,从而指示关联的样本。于是,渲染信息可被理解为已经包括映射。在这种情况下,渲染器设备将该信息存储在例如缓冲器中可被理解为渲染器设备进行映射。
在实施例中,编码视频帧包括帧标识符,比如时间戳。在这样的实施例中,图块布置信息和/或渲染信息包括所述帧标识符。这样的实施例包括渲染器设备判定解码视频帧的帧标识符匹配图块布置信息和/或渲染信息的帧标识符,以及基于该判定,渲染器设备使用图块布置信息和/或渲染信息将解码视频帧映射到二维或三维模型的一个或多个表面上。该实施例允许与解码视频帧分开地向渲染器设备提供图块布置信息和/或渲染信息。
检索的编码图块帧可能被加密。在这种情况下,优选地,客户端设备包括解密模块,所述解密模块被配置成检索用于解密加密的编码图块帧的密钥。结果,由图块帧检索设备形成的编码视频帧被加密。图块帧检索设备可以仍然能够形成加密的编码视频帧,因为接收的编码图块的一部分没有被加密,例如编码图块帧的报头段的一部分。这可以允许图块检索设备例如在NAL单元报头中(重新)写入地址,并由此控制加密的编码图块帧在加密的编码视频帧中的位置。图块帧检索设备可以将加密的编码视频帧提供给解密模块,解密模块随后检索密钥并解密加密的编码视频帧。然后,解密模块可以将编码视频帧提供给解码器。
在实施例中,客户端设备包括受保护媒体路径,所述受保护媒体路径被配置成防止对解密的视频数据的访问,例如,防止将图块帧布置信息和/或渲染信息添加到编码视频帧,和/或被配置成防止将图块帧布置信息和/或渲染信息添加到解码视频帧。这样的实施例包括图块帧检索设备向在受保护媒体路径之外的渲染器设备提供渲染信息和/或图块流映射信息和/或图块帧布置信息。该实施例使得即使在客户端设备中存在受保护媒体路径,客户端设备也能够实现分块流式传输。
向在受保护媒体路径之外的渲染器设备提供渲染信息和/或图块流映射信息和/或图块帧布置信息可以包括与解码视频帧分开地将渲染信息和/或图块布置信息提供给渲染器设备。
在实施例中,所确定的多个图块流包括第一图块流和第二图块流。在这样的实施例中,映射信息为第一图块流指示在模型的表面上的第一位置,并且为第二图块流指示在模型的表面上的第二位置。编码视频数据对于第一图块流包括编码的第一图块帧,编码的第一图块帧包括表示包含在第一图块流中的第一图块帧的编码数据,并且编码视频数据对于第二图块流包括编码的第二图块帧,编码的第二图块帧包括表示包含在第二图块流中的第二图块帧的编码数据。这样的实施例包括图块帧检索设备接收编码的第一图块帧和编码的第二图块帧,并形成包括接收的编码图块帧的编码视频帧,第一编码图块帧在编码视频帧中具有第一位置,第二编码图块帧在编码视频帧中具有第二位置。这样的实施例包括解码器设备对编码视频帧解码以获得解码视频帧,解码视频帧包括在解码视频帧内的第一位置处的第一图块帧和在解码视频帧内的第二位置处的第二图块帧。这样的实施例包括基于图块帧布置信息并且基于图块流映射信息,所述渲染器设备将解码视频帧映射到二维或三维模型的一个或多个表面上,使得第一图块帧被映射到模型的表面上的第一位置上,并且使得第二图块帧被映射到模型的表面上的第二位置上。
编码的空间元素帧在编码视频帧内的位置可以被理解为由地址定义。
在实施例中,所述渲染器设备被配置成接收解码视频帧,并进行预定映射,所述预定映射包括将所接收的解码视频帧中的相应位置处的相应样本映射到二维或三维模型的一个或多个表面上的相应预定位置。所述预定映射包括将所接收的解码视频帧中的第一位置处的样本映射到模型的表面上的所述第一位置上。这样的实施例包括解码器设备对编码视频帧解码并输出中间的解码视频帧,中间的解码视频帧包括在与第一位置不同的位置处的第一图块帧。这样的实施例包括例如由渲染器设备基于中间的解码视频帧并且基于图块帧布置信息以及基于预定映射来确定所述解码视频帧,使得解码视频帧在第一位置处包括第一图块帧。这样的实施例包括渲染器设备按照预定映射,映射解码视频帧,由此将第一图块帧映射到模型的表面上的所述第一位置上。
在实施例中,沉浸式视频包括不同于第一和第二图块流的第三图块流。在这样的实施例中,映射信息为第三图块流指示在二维或三维模型的表面上的第三位置。这样的实施例包括基于所述图块流映射信息并且基于另外的视口,确定包括第一和第三图块流的另外的多个图块流,并向服务器请求另外的编码视频数据。对于每个确定的图块流,另外的编码视频数据包括另外的编码图块帧,另外的编码图块帧包括表示包含在该图块流中的另外的图块帧的另外的编码数据。对于第三图块流,另外的编码视频数据包括另外的第三编码图块帧,另外的第三编码图块帧包括表示包含在第三图块流中的另外的第三图块帧的另外的编码数据。这样的实施例包括图块帧检索设备接收另外的编码图块帧并形成另外的编码视频帧。另外的编码视频帧包括接收的另外的编码图块帧,另外的编码图块帧包括另外的第三编码图块帧。每个另外的编码图块帧在另外的编码视频帧中具有位置。这样的实施例包括图块帧检索设备生成另外的图块帧布置信息,另外的图块帧布置信息指示每个另外的编码图块帧在另外的编码视频帧中的位置。这样的实施例包括解码器设备对另外的编码视频帧解码,以获得另外的解码视频帧,另外的解码视频帧包括在另外的解码视频帧内的相应位置处的另外的图块帧。这样的实施例包括基于另外的图块帧布置信息并且基于图块流映射信息,渲染器设备将另外的解码视频帧映射到二维或三维模型的一个或多个表面上,使得每个另外的图块帧被映射到由映射信息为包括该另外的图块帧的图块流所指示的位置上。由此,另外的第三图块帧被映射到模型的表面上的第三位置上。这样的实施例包括基于映射的另外的解码视频帧,渲染器设备在客户端设备的显示器上渲染另外的解码视频帧的至少一部分。
在实施例中,确定的所述多个图块流不包括第三图块流。
另外的多个图块流可以与另外的时间实例关联和/或可以在已经确定多个图块流之后确定。
在这样的实施例中,另外的编码视频帧可以包括在另外的编码视频帧内的第一位置处的另外的第一编码图块帧。然后,解码另外的编码视频帧包括基于解码的第一图块来解码另外的第一编码图块帧。
如果链接的各帧处于解码视频帧中的相同位置,则解码器可能只能使用帧间编码帧。
解码的第一图块帧可以存储在解码器设备的缓冲存储装置中。
在实施例中,另外的编码视频帧包括在另外的编码视频帧内的所述第二位置处的另外的第三编码图块帧,并且另外的解码视频帧包括在另外的解码视频帧内的所述第二位置处的另外的第三解码图块帧。在这样的实施例中,所述渲染器设备可被配置成接收解码视频帧并进行解码视频帧特定映射,所述解码视频帧特定映射包括根据图块帧布置信息和图块流映射信息,将所接收的解码视频帧中的各个位置处的样本映射到二维或三维模型的一个或多个表面上的相应位置。这样的实施例包括所述解码器设备对编码视频帧解码并输出解码视频帧,以及基于图块流映射信息并且基于图块帧布置信息,所述渲染器设备进行包括将解码视频帧映射到二维或三维模型的表面上的第一映射,使得第二图块帧被映射到模型的表面上的第二位置上。这样的实施例包括所述解码器设备对另外的编码视频帧解码并输出另外的解码视频帧,以及基于图块流映射信息并且基于另外的图块帧布置信息,所述渲染器设备进行包括将另外的解码视频帧映射到模型的表面上的第二映射,使得另外的第三图块帧被映射到模型的表面上的第三位置上。
该实施例举例说明了存在于两个单独的解码视频帧中、但是在解码视频帧内的相同位置处的图块帧仍然可被映射到其表面上的不同位置。
在实施例中,沉浸式视频包括均包含高分辨率图块帧的高质量图块流和均包括低分辨率图块帧的低质量图块流。模型包括用于高分辨率图块帧的一个或多个表面和用于低分辨率图块帧的一个或多个表面以及视点。优选地,从视点看,用于高分辨率图块帧的一个或多个表面在用于低分辨率图块帧的一个或多个表面的前面。所确定的多个图块流包括至少一个高质量图块流和至少一个低质量图块流。这样的实施例包括对于高质量图块流,接收包括表示包含在高质量图块流中的高分辨率图块帧的数据的编码的高分辨率图块帧,以及对于低质量图块流,接收包括表示包含在低质量图块流中的低分辨率图块帧的数据的编码的低分辨率图块帧。这样的实施例还包括基于图块流映射信息和图块帧布置信息,将解码视频帧映射到模型的一个或多个表面上,使得高分辨率图块帧被映射到用于高分辨率图块帧的一个或多个表面上,而低分辨率图块帧被映射到用于低分辨率图块的一个或多个表面上。
视点可以被理解为由渲染算法用于计算视口的虚拟摄像机的中心所在的空间中的点。
优选地,低质量图块帧被映射到模型上,使得对于每个可能的观看方向,如果没有可用于填充视口的高质量图块帧,则一个或多个低质量图块帧完全充满视口。
第一图块流可以是低质量图块流,第二图块流可以是高质量图块流。
通常,渲染器设备被配置成自动显示被映射到在其他表面前面更靠近视点的表面上的解码视频数据。
游戏和渲染行业已经开发了许多工具,比如OpenGL、WebGL、DirectX、Metal和Vulkan,以利用图形卡在由大量形状复杂的物体组成的世界中高效地渲染视口。在沉浸式视频的背景下,这些技术可以被重新用于基于用户的头部取向来高效地提取视口。
本公开的一个方面涉及一种用于在显示器上渲染沉浸式视频的空间部分的客户端设备,它包括图块帧检索设备、解码器设备和渲染器设备,其中
沉浸式视频包括视频帧,每个视频帧在空间上被划分为图块帧,并且沉浸式视频包括图块流,每个图块流表示沉浸式视频的空间部分,并且每个图块流包括多个所述图块帧,并且其中
所述客户端包括用于存储图块流映射信息的存储装置,所述图块流映射信息为每个图块流指示在二维或三维模型(诸如球形或立方体)的表面上的相应位置,其中
所述图块检索设备被配置成基于所述图块流映射信息和视口,确定多个图块流,并向服务器请求编码视频数据,对于每个确定的图块流,编码视频数据包括编码图块帧,编码图块帧包括表示包含在该图块流中的图块帧的编码数据,其中
-所述图块帧检索设备被配置成接收编码图块帧并形成编码视频帧,编码视频帧包括接收的编码图块帧,每个编码图块帧在编码视频帧中具有位置,图块帧检索设备被配置成生成指示每个编码图块帧在编码视频帧内的位置的图块帧布置信息,其中
-所述解码器设备被配置成解码编码视频帧以获得解码视频帧,解码视频帧包括在解码视频帧内的相应位置处的图块帧;其中
-所述渲染器设备被配置成基于图块帧布置信息并且基于图块流映射信息,将解码视频帧映射到二维或三维模型的一个或多个表面上,使得每个图块帧被映射到由映射信息为包含该图块帧的图块流指示的位置上,其中
-所述渲染器设备被配置成基于映射的解码视频帧,在客户端设备的显示器上渲染解码视频帧的至少一部分。
本公开的另一个方面涉及一种方法,所述方法包括由本文中所述的渲染器设备进行的一个或多个步骤。
本公开的另一个方面涉及一种渲染器设备,所述渲染器设备被配置成进行由本文中所述的渲染器设备进行的任何方法。
本公开的另一个方面涉及一种方法,所述方法包括由本文中所述的图块帧检索设备进行的一个或多个步骤。
本公开的另一个方面涉及一种包括本文中所述的渲染信息的消息。
本公开的另一个方面涉及包括至少一个软件代码部分的计算机程序或计算机程序套件,或存储至少一个软件代码部分的计算机程序产品,当在计算机系统上运行时,所述软件代码部分被配置成执行本文中所述的一种或多种方法。
本公开的另一个方面涉及一种存储至少一个软件代码部分的非临时性计算机可读存储介质,当由计算机执行或处理时,所述软件代码部分被配置成进行本文中所述的一种或多种方法。
本公开的另一个方面涉及一种计算机实现的方法,所述方法包括本文中所述的任何方法的步骤。
本公开的另一个方面涉及一种计算机,所述计算机包括具有计算机可读程序代码的计算机可读存储介质,和耦接到所述计算机可读存储介质的处理器,优选地微处理器,其中响应于执行所述计算机可读程序代码,所述处理器被配置成进行本文中所述的任何方法。
正如本领域的技术人员会意识到的,本发明的各个方面可以体现为系统、方法或计算机程序产品。因而,本发明的各个方面可以采取纯硬件实施例、纯软件实施例(包括固件、驻留软件、微代码等)或结合软件和硬件方面(在本文中通常都可被称作“电路”、“模块”或“系统”)的实施例的形式。例如,在实施例中,解码器设备包括一个或多个硬件解码器。例如,在实施例中,解码器设备是硬件解码器。
本公开中描述的功能可以实现为由计算机的处理器/微处理器执行的算法。此外,本发明的各个方面可以采取包含在一个或多个计算机可读介质中的计算机程序产品的形式,所述一个或多个计算机可读介质具有包含(例如存储)在其上的计算机可读程序代码。
可以利用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质例如可以是但不限于电子、磁、光、电磁、红外或半导体系统、装置或设备,或者上述的任何适当组合。计算机可读存储介质的更具体例子可以包括但不限于以下:具有一根或多根导线的电气连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光存储设备、磁存储设备、或者上述的任何适当组合。在本发明的上下文中,计算机可读存储介质可以是能够包含或存储由指令执行系统、装置或设备使用,或者与指令执行系统、装置或设备结合使用的程序的任何有形介质。
计算机可读信号介质可以包括其中包含计算机可读程序代码的传播数据信号,例如,包含在基带中或者作为载波的一部分。这种传播信号可以采取多种形式中的任何一种,包括但不限于电磁、光,或者它们的任何适当组合。计算机可读信号介质可以是不是计算机可读存储介质,并且能够传递、传播或传送由指令执行系统、装置或设备使用或者与指令执行系统、装置或设备结合使用的程序的任何计算机可读介质。
包含在计算机可读介质上的程序代码可以利用任何适当的介质来发送,包括但不限于无线、有线、光纤、电缆、RF等,或者上述的任何适当组合。用于执行本发明的各个方面的操作的计算机程序代码可以用一种或多种编程语言(包括诸如Java(TM)、Smalltalk、C++之类的面向对象编程语言,和诸如“C”编程语言或类似编程语言之类的常规过程编程语言)的任意组合来编写。程序代码可以完全在用户的计算机上,部分在用户的计算机上,作为单独的软件包,部分在用户的计算机上并且部分在远程计算机上,或者完全在远程计算机或服务器上执行。在后一情况下,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以进行与外部计算机的连接(例如,使用因特网服务提供商通过因特网进行连接)。
下面参考按照本发明的各个实施例的方法、装置(系统)和计算机程序产品的流程图和/或方框图,说明本发明的各个方面。应理解的是流程图和/或方框图的每个方框,以及流程图和/或方框图中的各个方框的组合可以用计算机程序指令来实现。这些计算机程序指令可被提供给通用计算机,专用计算机或者其他可编程数据处理装置的处理器,特别是微处理器或中央处理器(CPU),以产生机器,使得经由计算机、其他可编程数据处理装置、或其他设备的处理器执行的指令创建用于实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的部件。
这些计算机程序指令也可以被存储在计算机可读介质中,所述计算机可读介质能够引导计算机、其他可编程数据处理装置或者其他设备按特定方式运行,使得存储在计算机可读介质中的指令产生制成品,所述制成品包括实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的指令。
计算机程序指令也可被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上进行一系列的操作步骤,从而产生计算机实现的处理,使得在计算机或其他可编程装置上执行的指令提供用于实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的处理。
附图中的流程图和方框图图解说明按照本发明的各个实施例的系统、方法和计算机程序产品的可能实现的体系结构、功能和操作。在这方面,流程图或方框图中的每个方框可表示包含用于实现指定逻辑功能的一个或多个可执行指令的模块、程序段或部分代码。还应注意的是,在一些备选实现中,在方框中指出的功能可以不按照附图中所示的顺序发生。例如,连续示出的两个方框事实上可以基本同时地执行,或者各个方框有时可以按相反的顺序执行,取决于所涉及的功能。还要注意的是,方框图和/或流程图的每个方框,以及方框图和/或流程图中的各个方框的组合可以用进行指定功能或动作的基于专用硬件的系统,或者专用硬件和计算机指令的组合来实现。
此外,提供一种用于执行在本文中描述的方法的计算机程序,以及一种存储所述计算机程序的非临时性计算机可读存储介质。例如,计算机程序可以被下载(更新)到现有系统(例如,现有的智能电话机或平板计算机),或者在制造这些系统时被存储。
除非另有明确说明,否则针对或者关于特定实施例讨论的各个要素和方面可以与其他实施例的各个要素和方面适当地组合。将参考附图进一步举例说明本发明的实施例,附图示意性地将表示按照本发明的实施例。应理解的是,本发明不以任何方式局限于这些具体实施例。
附图说明
将参考附图中所示的示例性实施例,更详细地解释本发明的各个方面,附图中:
图1表示按照本发明的实施例的系统。
图2显现预编码处理。
图3表示按照实施例的渲染器处理。
图4显现编码图块流。
图5表示其中在解码视频帧中重新布置图块帧的实施例。
图6图解说明存储了不同质量的多组编码图块流的服务器。
图7和8表示按照实施例的渲染处理。
图9和10涉及其中渲染器设备被配置成进行解码视频帧特定映射的实施例。
图11A和11B图解说明视口可以包含不同质量的视频数据。
图12表示其中客户端设备包括受保护媒体路径的实施例。
图13A和13B图解说明用于提供图块布置信息和/或渲染信息的两种方法。
图14表示渲染信息的实施例。
图15表示渲染信息的另一个实施例。
图16描述图解说明按照实施例的示例性数据处理系统的方框图。
具体实施方式
在附图描述中,相同的附图标记可被理解为指示相同或相似的元件。
图1表示按照实施例的内容准备设备4、内容分发网络8和客户端设备10。内容准备设备4可以包括配置成对视频数据编码的编码器设备。内容准备设备4例如可以接收表示由一个或多个摄像机捕捉的沉浸式视频的未压缩视频数据。通常,沉浸式视频由几个不同取向的摄像机捕捉。沉浸式视频例如是180°视频或360°视频。只有变化的空间部分要被显示给用户的任何视频都可以视为沉浸式视频。
编码器5随后可以对原始视频数据编码。优选地,编码器设备5输出本文中所述的编码图块帧。内容准备设备可以例如经由诸如因特网之类的分组交换网络连接到内容分发网络。内容分发网络8可以包括多个服务器8。内容准备设备4可以将编码图块帧发送到内容分发网络6中的一个或多个服务器8,编码图块帧存储在所述一个或多个服务器8中。
可选地,内容准备设备还包括配置成对编码图块帧加密的加密模块。
客户端设备10可以经由诸如因特网之类的分组交换网络连接到内容分发网络6。客户端设备10包括按照实施例的图块检索设备12、解码器设备14和按照实施例的渲染器设备16。客户端设备10可以向内容分发网络6请求编码视频数据,特别是可以请求特定的编码图块帧。作为响应,内容分发网络6可以将所请求的视频数据,特别是所请求的编码图块帧,发送到客户端设备10。客户端设备10随后可以使用所接收的编码图块帧来渲染沉浸式视频的空间部分。
客户端设备10可能已经存储了指示哪些编码图块帧被存储在哪个特定服务器上的清单文件。从而,客户端设备10可以在确定要请求特定编码图块帧之后,使用清单文件来确定对于特定编码图块帧的请求要被发送到的服务器。
客户端设备可以是智能电话机、平板计算机、台式计算机、电视机、头戴式显示器等。客户端设备也可以是边缘服务器。在这种情况下,可以在边缘服务器上进行视频的渲染,然后可以将视口流式传输到用户设备的显示器。这使只具有解码常规视频的能力的设备也能够受益于分块流式传输方法。
客户端设备10可被配置成接收用户交互,并基于这些用户交互来确定将在显示器上渲染视频的哪个空间部分。客户端设备10的例子是头戴式显示器,在头戴式显示器能够检测头戴式设备目前戴在其上的用户头部的取向的意义上,头戴式显示器被配置成接收用户交互。另一个例子是台式计算机,台式计算机可被配置成通过键盘或鼠标接收用户交互。例如,用户可以使用键盘上的方向键来控制在显示器处呈现沉浸式视频的哪个空间部分。
图2显现预编码处理。在内容准备设备已获得原始视频数据之后,内容准备设备可以将原始视频数据映射到二维或三维模型(比如如图所示的立方体18)上。当然,当原始视频数据由多个摄像机捕捉时,这些摄像机可能具有重叠的视场。从而,为了良好地映射到立方体18上,例如,一些原始视频可能需要剪裁。该映射还需要不同摄像机的各自取向,使得不同的视频被映射到立方体18的一个或多个表面上的正确位置上。
在原始视频已被映射到三维模型上之后,原始视频可以被投影到二维帧20上。如果编码器5被配置成只编码二维帧,则这可能是必需的。
图3表示按照实施例的渲染器处理。在步骤24,解码视频帧22被映射到立方体30的三维模型上。解码视频帧可以被理解为包括相对于彼此具有限定的空间关系的多个样本,例如像素。
方框25指示用于将解码视频帧22映射到立方体30上的映射25。映射25表示对于渲染器设备接收的任何解码视频帧26,渲染器设备将把中间下部区域“前”映射到立方体的前表面“前”上,以及把上部中间区域“左”映射到在立方体28上指示的表面“左”上,等等。从而,当渲染器设备接收到解码视频帧22时,如图所示,它将把在解码视频帧22中的第一位置的区域V映射到立方体28的前表面上,并把在解码视频帧22中的第二位置的区域II映射到立方体28的左侧表面上。
如上所述,在映射步骤24中,不要求存在于解码视频帧22中的所有样本都被映射到立方体30上。映射步骤可以只包括为顶点31a确定解码视频帧22中的关联位置31a,为顶点31b确定解码视频帧中的关联位置31b,等等,如图所示。
作为映射步骤的结果,可以说解码视频帧22已经被映射到立方体30上。
在步骤32中图解说明了另一个渲染步骤。该步骤包括确定存在于用户的当前视口中的三维模型的一个或多个表面的空间部分,如由34所示。
三维模型包括视点35。基于用户与客户端设备的交互,例如基于客户端设备的当前取向,可以确定三维模型的表面上的空间部分36在视口中。应意识到的是,对于每个渲染的视频帧,关于三维模型的一个或多个表面的哪个部分存在于视口中的确定可以被确定两次,即,一次用于确定哪些图块帧,特别是客户端设备应该从服务器检索哪些图块流,而一次恰好在显示器上渲染解码视频帧之前。这是有益的,因为在检索编码图块帧和本文中所述的解码和映射步骤时,视口可能略有变化。通过恰好在渲染之前确定存在于视口中的立方体30的表面的部分36,当进行指示改变视口的用户交互时,例如当用户在穿戴作为本文中所述的客户端设备的头戴式显示器时改变用户的头部的取向时,用户将不会经历任何等待时间。为此,渲染器设备例如直接连接到客户端设备中的用户交互检测设备,比如直接连接到一个或多个取向传感器,使得渲染器设备能够无延迟地接收最新测量的用户交互。
一旦确定了存在于视口中的立方体30的空间部分36,渲染器设备就可以基于映射的解码视频帧来确定在显示器44上的哪些位置应当渲染哪些样本值。渲染器设备可以包括图形处理单元(GPU)以进行所需的计算。在实施例中,步骤42包括进行一个或多个光线跟踪或光栅化算法。
图4显现可存储在内容分发网络的服务器上的编码图块流,从而表示了可存储在内容分发网络的服务器上的编码图块帧。在这个例子中,表示了两组编码图块帧,即46和48。大写字母A-X指示不同的图块流,而数字1-3指示时间戳和/或视频帧标识符。图块流A例如包括3个单独的图块帧,即A1、A2、A3,图块流B例如包括3个图块帧B1、B2、B3,等等。具有所指示的数字“1”的图块帧可被理解为一起包括表示完整沉浸式视频的完整视频帧的编码视频数据,而具有所指示的数字“2”的图块帧可被理解为一起包括表示完整沉浸式视频的另一个完整视频帧的编码视频数据。
尽管图4中只表示了24个图块流,不过可能存在更多的图块流,比如54个或108个图块流。
图块帧可以是帧间编码图块帧,帧间编码图块帧可被理解为将基于同一图块流内的另一个解码图块帧来解码的图块帧。例如,在解码编码图块帧Q2需要(解码形式的)图块帧Q1的意义上,图块帧Q2可以是帧间编码图块帧。
图块帧可以是帧内编码图块帧,帧内编码图块帧可被理解为可以在不参考另一个解码图块帧的情况下被解码的图块帧。
编码图块帧组48可被理解为包括包含与和编码图块帧组46相同的沉浸式视频的空间部分有关的编码视频数据的编码图块帧。不过,编码图块帧组48可被理解为在每个图块流中包含更多的帧内编码图块帧。在一个例子中,组48中的所有编码图块帧都是帧内编码图块帧。使用两个这样的编码图块帧组的优点在于可以减少运动到高分辨率(motion-to-high-resolution)的等待时间,如在WO2019/048426中详细所述。
图5表示其中在第一时间实例t=1,视口包括图块流A、B、C和D的部分的实施例。基于所确定的视口,图块检索设备已接收来自图块流A、B、C和D(来自图4中所示的编码图块帧组46)的编码图块帧。图块检索设备已经形成包括这些接收的编码图块帧的编码视频帧50。解码器14解码该编码视频帧50并输出解码的中间视频帧52。注意,图块名称中的“d”指示它是图块的解码版本。然后,在步骤54,渲染器设备16基于解码的中间视频帧52并且基于图块布置信息53来确定解码视频帧56。在这个例子中,解码的中间视频帧52和解码视频帧56相同。然后,渲染器设备16基于解码视频帧56进行渲染。
然而,在另一个时间实例,即在t=2,视口包括图块流B、D、I和K的部分。从而,图块检索设备已请求和接收另外的编码图块帧B2、D2、I2i和K2i(也在图4中示出)。注意,I2i和K2i是帧内编码帧,从而可以独立于其他解码图块帧进行解码。然而,在这个例子中,B2和D2是帧间编码图块帧。在这种情况下,如箭头所示,解码另外的编码图块帧B2需要解码的图块帧B1d,解码另外的编码图块帧D2需要解码的图块帧D1d。由于这种编码相关性,优选地,图块B1和B2在它们各自的编码视频帧50和58中具有相同的位置,图块D1和D2在它们各自的编码视频帧50和58中具有相同的位置。
解码器14输出另外的解码的中间视频帧60。然而,该帧60包括解码图块流B和D,特别是在与解码的中间视频帧52中的B1d和D1d相同的相应位置处的另外的解码图块帧B2d和D2D,尽管它们在视口中的位置已经改变。t=1时的B1d和D1d将在视口的左手侧被渲染,解码图块帧B2d和D2d将在视口的右手侧被渲染。于是,渲染器设备基于帧60并且基于另外的图块布置信息62来确定解码视频帧64。注意,图块检索设备在它形成编码视频帧58作为解码器设备14的输入时确定了另外的图块布置信息62。
图4从而图解说明了通常不可能在编码视频帧中的编码图块帧的位置和视口中的解码图块帧的位置之间维持严格的关系。
图6图解说明服务器可能还存储了更多的编码图块流组66、68。这些组包含表示分辨率比组46、48中的图块帧低的图块帧的编码图块帧。图块名称中的撇号指示较低质量的编码图块帧。
这可能是有益的,因为优选地,无论观看方向如何,视口总是可以被解码视频数据填充,因为即使用户突然看向意料之外的观看方向,视口优选地也包含解码视频数据。如果在这种情况下,对于二维或三维模型的表面的当前在视口中的部分没有获得解码视频数据,则用户例如将看到黑色像素,这将极大地扭曲用户体验。于是,对于沉浸式视频的每个视频帧,可以由图块检索设备请求低质量的编码图块,使得可能在视口中的二维或三维模型的所有表面都完全被一个或多个解码视频帧所覆盖。
图7表示按照一个实施例的渲染处理。这里,解码器已从图块检索设备接收到编码视频帧70。如图所示,编码视频帧70包括编码的低质量图块A'-F'。这些图块一起可能足以完全覆盖模型的所有表面。编码视频帧70还包括编码图块帧B2、D2、I2、K2。
如图所示,解码器输出包括解码图块帧的解码的中间视频帧72。然后,在步骤75,渲染器设备基于帧72并且基于图块布置信息以及基于图块流映射信息,或者基于图块布置信息和图块流映射信息所确定的渲染信息74,来确定解码视频帧76。
图7显现确定解码视频帧76不仅可包括重新布置解码图块帧,而且还可以包括放大和/或剪裁解码图块帧。在一个实施例中,解码的低分辨率图块帧被放大。在所描绘的实施例中,解码的图块帧D'2d例如被放大,并且解码的图块帧B'2d被放大和剪裁。应意识到的是,放大解码图块帧是计算密集的,因为需要计算新的样本。
图7的渲染器设备被配置成进行可被硬编码到渲染器设备中的预定映射。该预定映射80与图3中所示的映射相同。
结果,在步骤78,解码视频帧76被正确地映射到立方体上。注意,立方体包括顶点81a-81d,并且将解码视频帧映射到立方体上可以包括为这些顶点确定解码视频帧76中的关联位置,如图所示。
在映射步骤之后,渲染器可以根据检测到的视口在显示器上显示视频帧76的至少一部分。
图8表示按照一个实施例的渲染处理。特别地,图8图解说明在另一个时间实例t=3的图7的渲染处理。解码器已经从图块检索设备接收到另外的编码视频帧84。如图所示,同样地,该另外的编码视频帧包括低质量图块流A'-F'。这些图块流可在编码视频帧中具有固定的位置。
解码器输出另外的解码的中间视频帧86,中间视频帧86包括解码图块帧。应注意的是,由于渲染器设备被配置成进行预定映射,因此在图8中用于步骤94的映射80与在图7的步骤78中使用的映射80相同。于是,为了确保解码图块帧正确地映射到立方体上,在步骤88,渲染器设备基于解码的中间视频帧86并且基于另外的图块布置信息以及基于图块流映射信息,或者基于例如由图块检索设备基于另外的图块布置信息和图块流映射信息所确定的渲染信息90,来确定另外的解码视频帧。如图所示,解码的高分辨率图块J3d、I3d、K3d、L3d在解码视频帧92中位于中间上部区域,按照映射80,该中间上部区域被映射到立方体的左侧面上。还如图2中所示,这些编码图块帧确实应被映射到立方体的这个左侧面。
图9和10涉及其中渲染器设备被配置成进行解码视频帧特定映射的实施例。渲染器设备从而可以对每个解码视频帧进行不同的映射。
如图9中所示,在第一时间实例t=2,解码器已经从图块检索设备接收到编码视频帧98。这是与图7中相同的编码视频帧。解码器解码编码视频帧98并输出解码视频帧102,解码视频帧102与图7中的解码视频帧相似。
在图9的实施例中,使用包括用于高分辨率解码图块帧的一个或多个表面和用于低分辨率图块帧的表面的三维模型。特别地,使用包括形成外部立方体的表面和形成内部立方体的表面的三维模型。在该实施例中,内部立方体的表面用于高分辨率图块帧,而外部立方体的表面用于低分辨率图块帧。在所描绘的实施例中,内部立方体包括总共24个解码图块帧可被映射到其上的表面,内部立方体的6个面中的每个面上可以映射4个(即,如果图块检索设备不进行图块选择的话)。
基于图块布置信息和图块流映射信息,或者从图块布置信息和图块流映射信息导出的渲染信息108,渲染器设备确定了映射106。如图所示,所确定的映射106(该映射106从而针对解码视频帧102已专门被确定)确定所接收的解码视频帧中的由“内部前方TL”指示的区域应当被映射到由“内部前方TL”指示的三维模型的表面,该表面是内部立方体的表面。
此外,映射106确定所接收的解码视频帧中的由“外部左侧”指示的区域将被映射到由“外部左侧”指示的三维模型的表面上,该表面是外部立方体的表面,从而在这种情况下是用于低分辨率解码图块帧的表面。
接着,图10表示另外的编码视频帧110,所述另外的编码视频帧110包括与编码视频帧98不同的一组编码图块帧。解码器输出另外的解码视频帧114。同样,渲染器设备已基于另外的图块布置信息并且基于图块流映射信息,或者基于本文中所述的渲染信息120,确定了另外的映射118。另外的图块帧布置信息指示每个编码图块帧在编码视频帧110中的位置,并由此可被理解为也指示每个解码图块帧在解码视频帧114中的位置。
所确定的映射118确定接收的解码视频帧中的由“内部左侧TB”标记的区域(该区域是与图9中由“内部前方TL”标记的区域相同的区域)被映射到三维模型的不同表面上,即,与图9中由“内部前方TL”标记的三维模型的表面不同的表面上。解码的低分辨率图块帧可以按预定方式映射。
图11A和11B图解说明到三维模型上的某种映射,该三维模型包括用于解码的低分辨率图块帧的第一组一个或多个表面和用于解码的高分辨率图块帧的第二组一个或多个表面,其中从视点35看,第二组一个或多个表面位于第一组一个或多个表面的前面,取决于视口,将在显示器上渲染高分辨率或低分辨率视频。图11A和11B表示了如上所述的外部立方体的表面以及内部立方体的一些表面。事实上,可以理解的是,图11只表示了解码视频帧已由渲染器设备映射到其上的表面。
当然,该模型还可以包括用于解码的中等分辨率图块的一个或多个表面。在所描绘的立方体模型中,这样的表面将形成比外部立方体小,但是比内部立方体大的立方体,其中三个立方体具有重合的中心点。
在图11A中,描述了其中在视口中只存在高分辨率解码图块帧的状况。在这种状况下,在显示器上将只渲染高分辨率视频。
然而,如果视口突然改变,则可能一些解码高分辨率图块帧没有被解码,使得视口的一部分或整个视口包含解码低分辨率图块帧。这示于图11B中,其中视口包含部分解码高分辨率图块帧和部分解码低分辨率图块帧。
图12表示其中客户端设备包括受保护媒体路径的实施例,所述受保护媒体路径被配置成防止向编码视频帧添加图块帧布置信息和/或渲染信息,和/或被配置成防止向解码视频帧添加图块帧布置信息和/或渲染信息。通常,受保护媒体路径,比如安全视频路径,不允许客户端设备修改解密的(解码或编码)视频帧,例如以防止非法复制解密的内容。
图12的客户端设备10的实施例还包括解密模块122,解密模块122被配置成例如从密钥管理服务器(KMS)检索密钥。密钥管理服务器可能已经将密钥提供给内容准备设备,在内容准备设备中,加密模块已对由编码器设备编码的编码视频帧进行加密。
图块帧检索设备可被配置成通过检测用户与客户端设备的交互,并按照这些用户交互向渲染器设备提供回放指令,来控制视频的回放。图块检索设备也可被称为客户端应用。
受保护媒体路径通常包括从解密模块到解码器设备再到渲染器设备的数据流路径,这意味着,一旦加密的编码图块帧被提供给解密模块122,客户端设备,特别是图块检索设备就不再能够访问图块帧。
应意识到的是,在更传统的沉浸式视频流式传输中,内容准备设备可以将渲染信息打包到内容准备将编码并可选地加密的生成的比特流中。然后,该渲染信息以后可以由渲染器设备用于适当地渲染沉浸式视频的至少一部分。然而,由于在这种情况下,一旦检测到视口,所选择的视频数据仍然需要进行编码,并且可选地进行加密,因此这样的传统沉浸式视频流式传输方法与高的等待时间关联。
图13A和13B图解说明图块检索设备12向渲染器设备16提供图块布置信息和/或从图块布置信息导出的渲染信息的两种相应方法。图13A表示这样的信息可以通过解密模块122和解码器设备14传给渲染器设备。在该实施例中,这样的信息优选与包含编码或解码视频帧的比特流分离。
图13B表示其中图块布置信息和/或渲染信息经由存储装置126,从而在受保护媒体路径之外传给渲染器设备16的实施例。使存储装置126位于受保护媒体路径之外不会引入任何安全漏洞,因为它只影响渲染器设备将如何产生视口,而不会改变关于渲染器如何安全地显示视口的任何事情。视口和解码视频数据被安全地存储在存储器中。
图14表示本文中所述的渲染信息的实施例。在这个实施例中,渲染信息包括两种语法。语法127包括指示解码视频帧的帧标识符的信息128,和指示解码视频帧的分辨率的信息130,和指示二维或三维模型中的哪一个用于渲染(比如立方球体或平面)的信息132,指示不包含解码视频数据的像素的信息134,指示渲染立体视频所需的信息的信息136。对于每个图块帧存在语法129,并且语法129包括指示所决定的图块帧的质量的信息138,指示解码图块帧的左上角在解码视频帧中的位置的信息140,和指示解码图块帧的宽度和高度(允许计算解码视频帧内每个图块帧的各个角)的信息142,指示在解码图块帧的边缘处在图块帧内的额外填充的信息144。语法129中图块帧的位置指示图块流。
图15表示本文中所述的渲染信息的实施例。该渲染信息可以作为渲染信息消息从图块检索设备发送到渲染器设备。
该渲染信息的语义可以如下所示。
num_regions规定打包区域的数量。通常,打包区域一起形成一个完整的图块帧。
packed_picture_width和packed_picture_height分别以相关打包图片样本为单位规定打包图片的宽度和高度,从而定义解码视频帧的分辨率。
packed_picture_width和packed_picture_height优选都大于0。
等于0的guard_band_flag规定所有区域都没有保护带。保护带可被理解为在图块帧边缘处的额外填充。等于1的guard_band_flag可以规定所有区域具有至少一个保护带。
packed_map_type规定用于第i个区域的区域描述的类型。该参数可被理解为规定图块帧的形状,比如矩形或三角形。
mesh_type规定用于第i个区域的网格描述的类型。该参数可被理解为指示三维模型或二维模型是由球形的表面部分形成,还是由诸如矩形之类的平行四边形形成。
优选对于所有的图块帧执行for循环。
eye[i]规定与第i个区域内的纹理关联的眼睛。如果eye[i]==0,则纹理可以是用于左眼的;如果eye[i]==1,则纹理可以是用于右眼的。对于单视频,eye[i]可以被设定为0。
SphereRegionStruct将球面网格规定为如在第二版ISO/IEC 23090-2OMAF的6.8.6.2节的WD5中定义的结构中所规定的球面区域。
3DParallelogram规定3D空间中的平行四边形网格。原点(origin)顶点对应于RectPackedRegion()中的左上点。顶点origin+u_dir对应于RectPackedRegion()中的右上点,而origin+v_dir对应于RectPackedRegion()中的左下点。该对象定义解码图块帧将被映射到的模型的表面上的位置。
RectPackedRegion规定打包图片(解码视频帧)中的矩形区域。RectPackedRegion可以不重叠。该参数定义解码视频帧中图块帧的宽度、高度和位置。
GuardBand规定RectPackedRegion周围的可能保护带。GuardBand(i)的语法和语义在下面规定。
图16描述图解说明按照实施例的示例性数据处理系统的方框图。
如图16中所示,数据处理系统1500可以包括通过系统总线1506耦接到存储器元件1504的至少一个处理器1502。因而,数据处理系统可以将程序代码存储在存储器元件1504内。此外,处理器1502可以执行经由系统总线1506从存储器元件1504访问的程序代码。在一个方面,数据处理系统可以实现为适于存储和/或执行程序代码的计算机。然而,应意识到的是,可以以能够进行在本说明书内描述的功能的包括处理器和存储器的任何系统的形式来实现数据处理系统1500。
存储器元件1504可以包括一个或多个物理存储器设备,比如本地存储器1508和一个或多个大容量存储设备1510。本地存储器可以指的是随机存取存储器或在程序代码的实际执行期间通常使用的一个或多个其他非持久性存储器设备。大容量存储设备可以作为硬盘驱动器或其他持久性数据存储设备来实现。处理系统1500还可以包括一个或多个高速缓冲存储器(未图示),高速缓冲存储器提供至少一些程序代码的临时存储,以便减少在执行期间必须从大容量存储设备1510取回程序代码的次数。
描绘成输入设备1512和输出设备1514的输入/输出(I/O)设备可以可选地耦接到数据处理系统。输入设备的例子可以包括但不限于键盘、诸如鼠标之类的指点设备等。输出设备的例子可以包括但不限于监视器或显示器、扬声器等。输入和/或输出设备可以直接或通过居间的I/O控制器耦接到数据处理系统。
在实施例中,输入和输出设备可以被实现为组合的输入/输出设备(图16中用围绕输入设备1512和输出设备1514的虚线图解所示)。这种组合设备的例子是触敏显示器,有时也称为“触摸屏显示器”或简称为“触摸屏”。在这样的实施例中,通过诸如例如指示笔或用户的手指之类的物理物体在触摸屏显示器上或其附近的移动,可以提供对设备的输入。
网络适配器1516也可以耦接到数据处理系统,以使数据处理系统能够通过居间的专用或公用网络耦接到其他系统、计算机系统、远程网络设备和/或远程存储设备。网络适配器可以包括数据接收器和数据发送器,数据接收器用于接收由所述系统、设备和/或网络发送给数据处理系统1500的数据,数据发送器用于将数据从数据处理系统1500发送到所述系统、设备和/或网络。调制解调器、电缆调制解调器和以太网卡是可以与数据处理系统1500一起使用的不同类型的网络适配器的例子。
如图16中所示,存储器元件1504可以存储应用1518。在各个实施例中,应用1518可以存储在本地存储器1508、一个或多个大容量存储设备1510中,或者可以存储在本地存储器和大容量存储设备之外。应意识到的是,数据处理系统1500还可以执行可以便利应用1518的执行的操作系统(未在图16中示出)。以可执行程序代码的形式实现的应用1518可以由数据处理系统1500(例如由处理器1502)执行。响应于执行该应用,数据处理系统1500可被配置成进行本文中所述的一个或多个操作或方法步骤。
在本发明的一个方面,数据处理系统1500可以代表本文中所述的客户端设备和/或图块检索设备和/或解码器设备和/或渲染器设备和/或服务器和/或内容准备设备。
在再一个方面,数据处理系统1500可以代表客户端数据处理系统。在这种情况下,应用1518可以代表客户端应用,当被执行时,所述客户端应用配置数据处理系统1500以进行本文中关于“客户端”描述的各种功能。客户端的例子可以包括但不限于个人计算机、便携式计算机、移动电话机等。
在另一个方面,数据处理系统1500可以代表服务器,例如其上存储有一个或多个编码图块帧的服务器。例如,数据处理系统可以代表(HTTP)服务器,在这种情况下,当被执行时,应用1518可以配置数据处理系统以进行(HTTP)服务器操作。
本发明的各个实施例可被实现为与计算机系统一起使用的程序产品,其中程序产品的程序定义实施例的功能(包括本文中所述的方法)。在一个实施例中,程序可以包含在各种非临时性计算机可读存储介质上,其中本文中使用的表述“非临时性计算机可读存储介质”包括所有计算机可读介质,唯一的例外是临时性传播信号。在另一个实施例中,程序可以包含在各种临时性计算机可读存储介质上。示例性的计算机可读存储介质包括但不限于:(i)其上永久地存储信息的不可写存储介质(例如,计算机内的只读存储器设备,比如可由CD-ROM驱动器读取的CD-ROM盘、ROM芯片或任何类型的固态非易失性半导体存储器);和(ii)其上存储有可更改的信息的可写存储介质(例如,闪存、磁盘驱动器或硬盘驱动器内的软盘、或任何类型的固态随机存取半导体存储器)。计算机程序可以在本文中所述的处理器1502上运行。
本文中使用的术语只是用于说明特定的实施例,并不意图限制本发明。本文中使用的单数形式“一”“一个”和“该”意图还包括复数形式,除非上下文明确地另有所示。还要理解的是当在本说明书中使用时,用语“包括”和/或“包含”指定陈述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的群体的存在或增加。
下面的权利要求书中的所有部件或步骤加功能要素的对应结构、材料、动作和等同物意图包括用于与明确主张的其他要求保护的要素结合地进行所述功能的任何结构、材料或动作。本发明的实施例的说明是出于举例说明的目的给出的,而不是详尽无遗的或局限于所公开形式的实现。对本领域的普通技术人员来说,许多修改和变化将是清楚的,而不脱离本发明的范围和精神。选择和说明实施例是为了更好地解释本发明的原理和一些实际应用,以及使本领域的其他普通技术人员能够关于具有适合于所设想的特定用途的各种修改的各个实施例理解本发明。

Claims (16)

1.一种用于在客户端设备的显示器上渲染沉浸式视频的空间部分的方法,所述客户端设备包括图块帧检索设备、解码器设备和渲染器设备,其中
沉浸式视频包括视频帧,每个视频帧在空间上被划分为图块帧,并且沉浸式视频包括图块流,每个图块流表示沉浸式视频的空间部分,并且每个图块流包括多个所述图块帧,并且其中
客户端存储有图块流映射信息,所述图块流映射信息为每个图块流指示在诸如球形或立方体之类的二维或三维模型的表面上的相应位置,所述方法包括:
基于所述图块流映射信息和视口,所述图块帧检索设备确定多个图块流,并请求来自服务器的编码视频数据,编码视频数据对于每个确定的图块流包括编码图块帧,编码图块帧包括表示包含在该图块流中的图块帧的编码数据;
所述图块帧检索设备接收编码图块帧并形成包括所接收的编码图块帧的编码视频帧,每个编码图块帧在编码视频帧中具有位置,并且所述图块帧检索设备生成图块帧布置信息,所述图块帧布置信息指示每个编码图块帧在编码视频帧内的所述位置;
所述解码器设备对编码视频帧解码以获得解码视频帧,解码视频帧包括在解码视频帧内的相应位置处的图块帧;
基于图块帧布置信息并且基于图块流映射信息,所述渲染器设备将解码视频帧映射到二维或三维模型的一个或多个表面上,使得每个图块帧被映射到模型的一个或多个表面的位置上;
基于映射的解码视频帧,所述渲染器设备在客户端设备的显示器上渲染解码视频帧的至少一部分。
2.按照前述权利要求所述的方法,其中所述渲染器设备被配置成当将解码视频帧映射到模型的一个或多个表面上时进行预定映射,所述方法包括:
所述解码器设备对编码视频帧解码并输出中间的解码视频帧,中间的解码视频帧包括在中间的解码视频帧内的相应位置处的图块帧,以及
基于图块流映射信息并且基于图块帧布置信息,确定解码视频帧,包括重新布置图块帧,使得至少一个图块帧在中间的解码视频帧中具有与在解码视频帧中不同的位置,以及
所述渲染器设备进行所述预定映射。
3.按照权利要求1或2所述的方法,其中所述渲染器设备被配置成根据关联的图块布置信息来确定解码视频帧的映射,所述方法包括:
所述解码器设备对编码视频帧解码并输出解码视频帧,以及
按照所确定的映射,将解码视频帧映射到模型的一个或多个表面上。
4.按照前述权利要求中的一个或多个所述的方法,包括:
所述图块帧检索设备基于图块流映射信息并且基于图块帧布置信息来确定渲染信息,优选地,所述渲染信息为模型的每个顶点指示在解码视频帧中的关联的位置,以及
-所述图块帧检索设备将渲染信息提供给所述渲染器设备,以及
-所述渲染器设备基于渲染信息进行映射。
5.按照前述权利要求所述的方法,其中编码视频帧包括帧标识符,比如时间戳,并且其中图块布置信息和/或渲染信息包括所述帧标识符,所述方法包括:
所述渲染器设备判定解码视频帧的帧标识符匹配图块布置信息和/或渲染信息的帧标识符,以及
基于该判定,所述渲染器设备使用图块布置信息和/或渲染信息将解码视频帧映射到二维或三维模型的一个或多个表面上。
6.按照前述权利要求中的一个或多个所述的方法,其中
所述客户端设备包括受保护媒体路径,所述受保护媒体路径被配置成防止将图块帧布置信息和/或渲染信息添加到编码视频帧,和/或被配置成防止将图块帧布置信息和/或渲染信息添加到解码视频帧,所述方法包括:
所述图块帧检索设备向受保护媒体路径之外的所述渲染器设备提供渲染信息和/或图块流映射信息和/或图块帧布置信息。
7.按照前述权利要求中的一个或多个所述的方法,其中
所确定的多个图块流包括第一图块流和第二图块流,并且其中
映射信息为第一图块流指示在模型的表面上的第一位置,并且为第二图块流指示在模型的表面上的第二位置,其中
编码视频数据对于第一图块流包括第一编码图块帧,第一编码图块帧包括表示包含在第一图块流中的第一图块帧的编码数据,并且编码视频数据对于第二图块流包括第二编码图块帧,第二编码图块帧包括表示包含在第二图块流中的第二图块帧的编码数据,其中
所述图块帧检索设备接收第一编码图块帧和第二编码图块帧,并形成包括接收的编码图块帧的编码视频帧,第一编码图块帧在编码视频帧中具有第一位置,以及第二编码图块帧在编码视频帧中具有第二位置;
所述解码器设备对编码视频帧解码以获得解码视频帧,解码视频帧包括在解码视频帧内的第一位置处的第一图块帧和在解码视频帧内的第二位置处的第二图块帧;
基于图块帧布置信息并且基于图块流映射信息,所述渲染器设备将解码视频帧映射到二维或三维模型的一个或多个表面上,使得第一图块帧被映射到模型的表面上的所述第一位置,并且使得第二图块帧被映射到模型的表面上的所述第二位置。
8.按照权利要求7所述的方法,其中
所述渲染器设备被配置成接收解码视频帧并进行预定映射,所述预定映射包括将所接收的解码视频帧中的相应位置处的相应样本映射到二维或三维模型的一个或多个表面上的相应预定位置,所述预定映射包括将所接收的解码视频帧中的第一位置处的样本映射到模型的表面上的所述第一位置上;所述方法包括:
-所述解码器设备对编码视频帧解码并输出中间的解码视频帧,中间的解码视频帧包括在与第一位置不同的位置处的第一图块帧,
-基于中间的解码视频帧并且基于图块帧布置信息以及基于所述预定映射来确定所述解码视频帧,使得解码视频帧在第一位置处包括第一图块帧,以及
-所述渲染器设备按照所述预定映射来映射解码视频帧,由此将第一图块帧映射到模型的表面上的所述第一位置上。
9.按照权利要求7或8所述的方法,其中
沉浸式视频包括不同于第一和第二图块流的第三图块流,其中
映射信息为第三图块流指示二维或三维模型的表面上的第三位置,所述方法包括:
-基于所述图块流映射信息并且基于另外的视口,确定包括第一和第三图块流的另外的多个图块流,并请求来自服务器的另外的编码视频数据,所述另外的编码视频数据对于每个确定的图块流包括另外的编码图块帧,所述另外的编码图块帧包括表示包含在该图块流中的另外的图块帧的另外的编码数据,所述另外的编码视频数据对于第三图块流包括另外的第三编码图块帧,所述另外的第三编码图块帧包括表示包含在第三图块流中的另外的第三图块帧的另外的编码数据;
-所述图块帧检索设备接收另外的编码图块帧并形成包括所接收的另外的编码图块帧的另外的编码视频帧,所述另外的编码图块帧包括另外的第三编码图块帧,每个另外的编码图块帧在所述另外的编码视频帧中具有位置,并且所述图块帧检索设备生成另外的图块帧布置信息,所述另外的图块帧布置信息指示每个另外的编码图块帧在所述另外的编码视频帧中的位置;
-所述解码器设备对所述另外的编码视频帧解码以获得另外的解码视频帧,所述另外的解码视频帧包括在所述另外的解码视频帧内的相应位置处的另外的图块帧;
-基于所述另外的图块帧布置信息并且基于图块流映射信息,所述渲染器设备将所述另外的解码视频帧映射到二维或三维模型的一个或多个表面上,使得每个另外的图块帧被映射到由映射信息为包括该另外的图块帧的图块流所指示的位置上,由此将所述另外的第三图块帧映射到模型的表面上的第三位置上;
-基于映射的所述另外的解码视频帧,所述渲染器设备在所述客户端设备的显示器上渲染所述另外的解码视频帧的至少一部分。
10.按照权利要求9所述的方法,其中
其中所述另外的编码视频帧包括在所述另外的编码视频帧内的所述第二位置处的另外的第三编码图块帧,并且其中
所述另外的解码视频帧包括在所述另外的解码视频帧内的所述第二位置处的另外的第三解码图块帧,其中,
所述渲染器设备被配置成接收解码视频帧并进行解码视频帧特定映射,所述解码视频帧特定映射包括根据图块帧布置信息和图块流映射信息,将所接收的解码视频帧中的各个位置处的样本映射到二维或三维模型的一个或多个表面上的相应位置,所述方法包括:
所述解码器设备对编码视频帧解码并输出解码视频帧,
基于图块流映射信息并且基于图块帧布置信息,所述渲染器设备进行包括将解码视频帧映射到二维或三维模型的表面上的第一映射,使得第二图块帧被映射到模型的表面上的第二位置上,以及
所述解码器设备对所述另外的编码视频帧解码并输出所述另外的解码视频帧,以及
基于图块流映射信息并且基于所述另外的图块帧布置信息,所述渲染器设备进行包括将所述另外的解码视频帧映射到模型的表面上的第二映射,使得所述另外的第三图块帧被映射到模型的表面上的第三位置上。
11.按照前述权利要求中的一个或多个所述的方法,其中
沉浸式视频包括均包含高分辨率图块帧的高质量图块流和均包括低分辨率图块帧的低质量图块流,其中
所述模型包括用于高分辨率图块帧的一个或多个表面和用于低分辨率图块帧的一个或多个表面以及视点,其中优选地,从视点看,用于高分辨率图块帧的一个或多个表面在用于低分辨率图块帧的一个或多个表面的前面,其中
所确定的多个图块流包括至少一个高质量图块流和至少一个低质量图块流,其中所述方法包括:
对于高质量图块流,接收包括表示包含在高质量图块流中的高分辨率图块帧的数据的高分辨率编码图块帧,以及
对于低质量图块流,接收包括表示包含在低质量图块流中的低分辨率图块帧的数据的低分辨率编码图块帧,以及
基于图块流映射信息和图块帧布置信息,将解码视频帧映射到模型的一个或多个表面上,使得高分辨率图块帧被映射到用于高分辨率图块帧的一个或多个表面上并且低分辨率图块帧被映射到用于低分辨率图块的一个或多个表面上。
12.一种用于在显示器上渲染沉浸式视频的空间部分的客户端设备,所述客户端设备包括图块帧检索设备、解码器设备和渲染器设备,其中
沉浸式视频包括视频帧,每个视频帧在空间上被划分为图块帧,并且沉浸式视频包括图块流,每个图块流表示沉浸式视频的空间部分,并且每个图块流包括多个所述图块帧,并且其中
所述客户端包括用于存储图块流映射信息的存储装置,所述图块流映射信息为每个图块流指示在诸如球形或立方体之类的二维或三维模型的表面上的相应位置,其中
所述图块检索设备被配置成基于所述图块流映射信息和视口来确定多个图块流,并请求来自服务器的编码视频数据,编码视频数据对于每个确定的图块流包括编码图块帧,编码图块帧包括表示包含在该图块流中的图块帧的编码数据,其中
所述图块帧检索设备被配置成接收编码图块帧并形成包括所接收的均在编码视频帧中具有位置的编码图块帧的编码视频帧,被配置成生成图块帧布置信息,所述图块帧布置信息指示每个编码图块帧在编码视频帧内的所述位置,其中
所述解码器设备被配置成解码编码视频帧以获得解码视频帧,解码视频帧包括在解码视频帧内的相应位置处的图块帧;其中
所述渲染器设备被配置成基于图块帧布置信息并且基于图块流映射信息,将解码视频帧映射到二维或三维模型的一个或多个表面上,使得每个图块帧被映射到模型的一个或多个表面的位置上,其中
所述渲染器设备被配置成基于映射的解码视频帧,在所述客户端设备的显示器上渲染解码视频帧的至少一部分。
13.一种用于在客户端设备的显示器上渲染沉浸式视频的空间部分的方法,所述方法包括由在前述权利要求中的任一个中限定的渲染器设备进行的步骤。
14.一种渲染器设备,所述渲染器设备被配置成进行按照权利要求13所述的方法。
15.一种用于形成编码视频帧的方法,所述方法包括由在前述权利要求中的任一个中限定的图块检索设备进行的步骤。
16.一种图块检索设备,所述图块检索设备被配置成进行按照权利要求15所述的方法。
CN202080043917.3A 2019-07-05 2020-07-03 用于在显示器上渲染视频的方法和设备 Pending CN113994707A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP19020418.0 2019-07-05
EP19020418.0A EP3761647A1 (en) 2019-07-05 2019-07-05 Methods and devices for rendering a video on a display
PCT/EP2020/068780 WO2021004918A1 (en) 2019-07-05 2020-07-03 Methods and devices for rendering a video on a display

Publications (1)

Publication Number Publication Date
CN113994707A true CN113994707A (zh) 2022-01-28

Family

ID=67253641

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080043917.3A Pending CN113994707A (zh) 2019-07-05 2020-07-03 用于在显示器上渲染视频的方法和设备

Country Status (4)

Country Link
US (1) US11936838B2 (zh)
EP (1) EP3761647A1 (zh)
CN (1) CN113994707A (zh)
WO (1) WO2021004918A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115209220A (zh) * 2022-06-08 2022-10-18 阿里巴巴(中国)有限公司 视频文件处理方法、装置、存储介质及电子设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116702218B (zh) * 2023-08-07 2023-12-05 腾讯科技(深圳)有限公司 小程序中三维模型的渲染方法、装置、终端及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010007576A1 (en) * 2000-01-12 2001-07-12 Lg Electronics Inc. Device and method for decoding video signal
WO2009150836A1 (ja) * 2008-06-11 2009-12-17 パナソニック株式会社 デコード装置、情報処理システムおよび動画像記録再生システム
CN101650821A (zh) * 2008-07-16 2010-02-17 Arm有限公司 监视图形处理
CN104823380A (zh) * 2012-12-14 2015-08-05 诺基亚技术有限公司 用于解码的方法和装置
US20150303942A1 (en) * 2014-04-22 2015-10-22 Sandisk Enterprise Ip Llc Interleaved layered decoder for low-density parity check codes
CN107454468A (zh) * 2016-05-23 2017-12-08 汤姆逊许可公司 对沉浸式视频进行格式化的方法、装置和流
CN108476324A (zh) * 2015-10-08 2018-08-31 皇家Kpn公司 增强视频流的视频帧中的感兴趣区域
WO2019008174A1 (en) * 2017-07-06 2019-01-10 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. CONCEPTS FOR CONTINUOUSLY DISPLAYING VIDEOS CUT INTO PARTS
CN109565610A (zh) * 2016-05-25 2019-04-02 皇家Kpn公司 空间平铺的全向视频流播
CN109691103A (zh) * 2016-07-14 2019-04-26 皇家Kpn公司 视频编码

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10694192B2 (en) 2014-06-27 2020-06-23 Koninklijke Kpn N.V. HEVC-tiled video streaming
EP3454566B1 (en) 2017-09-11 2021-05-05 Tiledmedia B.V. Streaming frames of spatial elements to a client device

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010007576A1 (en) * 2000-01-12 2001-07-12 Lg Electronics Inc. Device and method for decoding video signal
WO2009150836A1 (ja) * 2008-06-11 2009-12-17 パナソニック株式会社 デコード装置、情報処理システムおよび動画像記録再生システム
CN101650821A (zh) * 2008-07-16 2010-02-17 Arm有限公司 监视图形处理
CN104823380A (zh) * 2012-12-14 2015-08-05 诺基亚技术有限公司 用于解码的方法和装置
US20150303942A1 (en) * 2014-04-22 2015-10-22 Sandisk Enterprise Ip Llc Interleaved layered decoder for low-density parity check codes
CN108476324A (zh) * 2015-10-08 2018-08-31 皇家Kpn公司 增强视频流的视频帧中的感兴趣区域
CN107454468A (zh) * 2016-05-23 2017-12-08 汤姆逊许可公司 对沉浸式视频进行格式化的方法、装置和流
CN109565610A (zh) * 2016-05-25 2019-04-02 皇家Kpn公司 空间平铺的全向视频流播
CN109691103A (zh) * 2016-07-14 2019-04-26 皇家Kpn公司 视频编码
WO2019008174A1 (en) * 2017-07-06 2019-01-10 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. CONCEPTS FOR CONTINUOUSLY DISPLAYING VIDEOS CUT INTO PARTS

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115209220A (zh) * 2022-06-08 2022-10-18 阿里巴巴(中国)有限公司 视频文件处理方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
US11936838B2 (en) 2024-03-19
WO2021004918A1 (en) 2021-01-14
EP3761647A1 (en) 2021-01-06
US20220224871A1 (en) 2022-07-14

Similar Documents

Publication Publication Date Title
CN109565610B (zh) 处理全向视频的方法、装置以及存储介质
CN111355954B (zh) 为视频播放器装置处理视频数据
CN111034201B (zh) 编码和解码体积视频的方法、设备和流
US10805614B2 (en) Processing spherical video data on the basis of a region of interest
EP3542530B1 (en) Suggested viewport indication for panoramic video
US10742999B2 (en) Methods and apparatus for signaling viewports and regions of interest
US20180310010A1 (en) Method and apparatus for delivery of streamed panoramic images
CN116939185A (zh) 在数据流中编码及解码来自数据流的三维场景的方法和装置
WO2019202207A1 (en) Processing video patches for three-dimensional content
US11936838B2 (en) Methods and devices for rendering a video on a display
CN112771883B (zh) 用于实现全向内容播放的多时间线支持的方法和装置
US10331862B2 (en) Viewport decryption
US20240114168A1 (en) Methods and apparatus for signaling 2d and 3d regions in immersive media
US20240119660A1 (en) Methods for transmitting and rendering a 3d scene, method for generating patches, and corresponding devices and computer programs
CN114189697A (zh) 一种视频数据处理方法、装置以及可读存储介质
JP2022541908A (ja) ボリュメトリックビデオコンテンツを配信するための方法および装置
US20230042078A1 (en) Encoding and decoding views on volumetric image data
US11922561B2 (en) Methods and systems for implementing scene descriptions using derived visual tracks
KR102656191B1 (ko) 360 비디오 환경에서 포인트 클라우드 콘텐트 액세스 및 전달을 위한 방법 및 장치
CN104718764A (zh) 信息处理设备
JP7471731B2 (ja) メディアファイルのカプセル化方法、メディアファイルのカプセル化解除方法及び関連機器
CN116055746A (zh) 视频编码方法及装置、视频解码方法及装置
CN113261033A (zh) 信息处理装置和信息处理方法
WO2019193011A1 (en) Region description for 360 or spherical video

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