一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于对体积视频进行编码和解码的方法和装置与流程

2022-12-06 20:24:04 来源:中国专利 TAG:

用于对体积视频进行编码和解码的方法和装置
1.技术领域
1.本发明原理总体涉及三维(3d)场景和体积视频内容的域。还在编码、格式化和解码表示3d场景的纹理和几何结构的数据的上下文中理解本文档,以在诸如移动设备或头戴式显示器(hmd)的最终用户设备上渲染体积内容。
2.

背景技术:

2.本部分旨在向读者介绍本领域的各个方面,这些方面可能与下文描述和/或要求保护的本发明原理的各个方面有关。据信该讨论有助于为读者提供背景信息,以促进更好地理解本发明原理的各个方面。因此,应当理解,这些陈述应当从这个角度来解读,而不是承认现有技术。
3.沉浸式视频(也称为360
°
平面视频)允许用户通过围绕静止视点旋转其头部来观看自己周围的一切。旋转仅允许3自由度(3dof)体验。即使3dof视频足以满足第一次全向视频体验(例如,使用头戴式显示器(hmd设备))的要求,但3dof视频对于期望更多自由(例如,通过体验视差)的观看者可能很快变得令人沮丧。此外,3dof还可能导致眩晕,因为用户永远不会只旋转其头部,而是还向三个方向平移头部,这些平移不会在3dof视频体验中再现。
4.其中,大视场内容可以是三维计算机图形图像场景(3d cgi场景)、点云或沉浸式视频。许多术语可用于设计此类沉浸式视频:例如,虚拟现实(vr)、360、全景、4π球面度、沉浸式、全向或大视场。
5.体积视频(也称为6自由度(6dof)视频)是3dof视频的替代方案。在观看6dof视频时,除了旋转之外,用户还可以在观看的内容中平移其头部,甚至其身体,并且体验视差甚至体积。这种视频显著增加了沉浸感和对场景深度的感知,并通过在头部平移期间提供一致的视觉反馈来防止眩晕。内容是通过专用传感器创建的,允许同时记录感兴趣场景的颜色和深度。即使仍然存在技术困难,使用结合摄影测量技术的彩色相机装备也是执行这种记录的一种方式。
6.虽然3dof视频包括由纹理图像的解映射产生的图像序列(例如,根据纬度/经度投影映射或等角投影映射编码的球面图像),但6dof视频帧嵌入了来自多个视点的信息。它们可被视为由三维捕获产生的点云的时间序列。根据观看条件可以考虑两种体积视频。第一种(即完整的6dof)允许在视频内容内完全自由导航,而第二种(又名3dof )将用户观看空间限制到称为观看边界框的有限体积,从而允许有限的头部平移和视差体验。该第二种情况是在自由导航和就座观众的被动观看条件之间的有价值的折衷。
7.用于对体积视频进行编码的技术方法基于3d场景到多个2d图像(称为分块)上的投影,这些2d图像被打包成可以使用常规视频编码标准(例如,hevc)进一步压缩的图集。在解码时,并不总是需要也不期望使用图集的每个分块来准备当前视口中的3d场景的渲染。实际上,一些分块包括关于从当前视点不可见的点的信息,并且对于要渲染的3d场景的给定部分,一些分块包括的信息比从当前视点观看时包括场景相同部分的信息的其他分块更准确。
8.例如沉浸式媒体(基于3dof 方法的mpeg沉浸式视频-miv)等的新兴技术的成功通常取决于这种技术在日常设备上例如在数字tv、机顶盒或平板电脑或无线hmd等的嵌入式低端用户设备上的广泛选择。然而,这些设备具有低的gpu资源,并且沉浸式技术也必须适用于这种类型的设备。可能的方法可以是生成两种类型的内容,用于低端用户设备的一种降级沉浸式内容,以及用于在高端用户游戏玩家的pc上获得更丰富的沉浸式体验的一种内容。这种方法需要存储具有相同内容的若干版本,并且需要知道用于传输适配版本的客户端设备的类型。另一种方法是基于平铺方法。然而,这种方法具有在服务器必须对对应于用户视点的当前方向的图块进行流传输的情况下在流传输中引入延迟的缺点,这导致了运动的光子延迟(即,用户朝向一个方向移动的时刻与渲染器从服务器接收内容并将其显示在屏幕上的时刻之间的时间)。
9.缺乏用于对体积视频进行编码的数据流格式,这使得解码器能够选择所获得的图集内的分块的子集,以由渲染引擎访问和使用,该子集取决于用户视点的当前位置和方向。
3.

技术实现要素:

10.以下呈现本发明原理的简化概述,以便提供对本发明原理的一些方面的基本理解。本发明内容不是本发明原理的广泛概述。不旨在识别本发明原理的关键或重要元素。以下发明内容仅以简化形式呈现本发明原理的一些方面,作为下面提供的更详细描述的前言。
11.在体积视频内容的基于分块的表示的上下文中,本原理涉及一种用于对体积场景进行解码并且生成从用户的当前视点可见的视口图像的方法。该方法包括:
[0012]-获得按区域划分的源图像,区域与场景空间的扇区相关联;
[0013]-根据由用户控制并且位于场景的该空间中的虚拟相机的当前视场来选择至少一个扇区;以及
[0014]-访问与所选的至少一个扇区相关联的源图像的区域的像素,以用于生成针对用户视场的场景的视口图像。
[0015]
在实施方案中,源图像是打包的分块图片。分块图片仅是一个区域的一部分,并且是包括在与该一个区域相关联的扇区中的场景的点的投影。对于作为源图像序列的体积视频,区域与扇区的关联可以随时间变化。
[0016]
在另一实施方案中,场景空间的扇区与两个区域相关联。第一区域包括作为从给定视点可见的扇区的投影点的一个分块图片,例如3dof 观看区的中心视点。第二区域打包作为从该给定视点不可见的相同扇区的点的投影的分块图片,并且这些分块图片被称为外围分块。
[0017]
可以从数据流获得源图像,该数据流包括将源图像的每个区域与场景空间的扇区相关联的元数据。在变体中,从不同的源获得元数据。
[0018]
本发明原理还涉及一种包括被配置用于实现上述方法的处理器的设备。
[0019]
本发明原理还涉及一种包括生成按区域划分的图像的方法,区域与场景空间的扇区相关联。包括在场景的扇区中的场景的点被投影到与该扇区相关联的区域的像素中。
[0020]
在实施方案中,图像是打包的分块图片。分块图片属于一个唯一区域,并且是包括在与该一个区域相关联的扇区中的场景的点的投影。
[0021]
在另一实施方案中,场景空间的扇区与两个区域相关联。第一区域包括作为从给定视点可见的扇区的投影点的一个分块图片,例如3dof 观看区的中心视点。第二区域打包作为从该给定视点不可见的相同扇区的点的投影的分块图片,并且这些分块图片被称为外围分块。
[0022]
该方法可以进一步包括在数据流中编码图像和将源图像的每个区域与场景空间的扇区相关联的元数据。在变体中,在单独的数据流中编码元数据。
[0023]
本发明原理还涉及一种包括被配置用于实现上述方法的处理器的设备。本发明原理还涉及一种由该方法生成的数据流。
4.附图说明
[0024]
将更好地理解本公开,并且在阅读以下描述、参考附图的描述之后,将出现其他特定特征和优点,其中:
[0025]-图1示出了根据本发明原理的非限制性实施方案的对象的三维(3d)模型和对应于该3d模型的点云的点;
[0026]-图2示出了根据本发明原理的非限制性实施方案的对表示3d场景序列的数据进行编码、传输和解码的非限制性示例;
[0027]-图3示出了根据本发明原理的非限制性实施方案的可被配置为实现关于图11和图12描述的方法的设备的示例性架构;
[0028]-图4示出了根据本发明原理的非限制性实施方案的当通过基于分组的传输协议传输数据时流的语法的实施方案的示例;
[0029]-图5示出了根据本发明原理的非限制性实施方案的基于分块的三维(3d)场景表示的示例;
[0030]-图6示出了根据本发明原理的非限制性实施方案的包括3d场景的点的纹理信息的图集的示例;
[0031]-图7示出了根据本发明原理的非限制性实施方案的包括图6的3d场景的点的深度信息的图集的示例;
[0032]-错误!未找到引用源所示。示出了3d场景的3d空间的扇区化的实施方案
[0033]-图9示出了根据本发明原理的扇区化图集的第一布局;
[0034]-图10示出了根据本发明原理的扇区化图集的第二布局;
[0035]-图11示出了根据本发明原理的为立方体映射准备的扇区化图集的第三布局;
[0036]-图12示出了根据本发明原理的非限制性实施方案的用于生成在图集图像中编码的场景的视口图像的方法120;
[0037]-图13示出了根据本发明原理的非限制性实施方案的用于对场景进行编码的方法130。
5.具体实施方式
[0038]
下文将参考附图更全面地描述本发明原理,在该附图中示出了本发明原理的示例。然而,本发明原理可以许多替代形式体现,并且不应被解释为限制于本文阐述的示例。因此,虽然本发明原理易受各种修改和替代形式的影响,但是其具体示例通过附图中的示
例示出,并且本文将详细描述。然而,应当理解,不存在将本发明原理限制为所公开的特定形式的意图,但是相反,本公开用于涵盖落入由权利要求书限定的本发明原理的实质和范围内的所有修改、等同物和替代方案。
[0039]
本文使用的术语仅出于描述特定示例的目的,并且不旨在限制本发明原理。如本文所用,单数形式“一”、“一个”和“该”也旨在包括复数形式,除非上下文另有明确说明。将会进一步理解,当用于本说明书时,术语“包括”和/或“包含”指定存在所述特征、整数、步骤、操作、元件和/或分量,但不排除一个或多个其他特征、整数、步骤、操作、元件、分量和/或其组的存在或添加。此外,当元件被称为“响应”或“连接”到另一元件时,它可以直接响应或连接到另一元件,或者可以存在中间元件。相反,当元件被称为“直接响应”或“直接连接”到其他元件时,不存在中间元件。如本文所用,术语“和/或”包括列出的相关联项中的一者或多者的任何和所有组合,并且可以缩写为“/”。
[0040]
应当理解,尽管在本文中可使用术语第一、第二等来描述各种元件,但是这些元件不应受这些术语限制。这些术语仅用于将一个元件与另一元件区分开。例如,在不脱离本发明原理的教导内容的情况下,第一元件可以被称为第二元件,并且类似地,第二元件可以被称为第一元件。
[0041]
尽管一些图示包括通信路径上的箭头以显示主通信方向,但是应理解,通信可以在与所描绘箭头相反的方向上发生。
[0042]
关于其中每个框表示电路元件、模块或代码部分的框图和操作流程图描述了一些示例,该代码部分包括用于实现指定逻辑功能的一个或多个可执行指令。还应当指出的是,在其他具体实施中,框中标注的功能可能不按标注的顺序出现。例如,连续显示的两个框实际上可基本上同时执行,或者这些框有时可根据所涉及的功能以相反的顺序执行。
[0043]
本文中的“根据一个示例”或“在一个示例中”的参考意味着结合示例描述的特定特征、结构或特性可以包括在本发明原理的至少一个具体实施中。说明书中各个地方的“根据一个示例”或“在一个示例中”的短语的出现不一定全部参考同一示例,也不一定是与其他示例相互排斥的单独的或替代的示例。
[0044]
在权利要求书中出现的附图标号仅通过说明的方式,并且对权利要求书的范围没有限制作用。虽然未明确描述,但本示例和变体可以任何组合或子组合采用。
[0045]
在3d场景的基于分块的编码的上下文中,数据流包括元数据,元数据包括关于图集的每个分块的信息。经由这些分块数据,每个分块与投影数据相关联,该投影数据包括在编码时捕获分块的虚拟相机的参数。在解码时,从流中检索虚拟相机的这些参数(例如,位姿和3d到2d投影方法),以便执行2d到3d逆转换。
[0046]
准备(即分析和编码)体积视频以从作为3d场景的3d空间的一部分的观看区进行渲染。从该观看区的任何视点可见的3d场景的点被编码在图集的分块中。如果从观看区外部的视点观看解码的3d场景,则会缺失一些点并且3d场景不完整和/或呈现强视觉伪像。在3dof渲染模式中,观看区限于3d场景的3d空间的点。在3dof 渲染模式中,观看区是围绕3d空间的初始点的有限区域。在6dof中,观看区是3d场景的整个3d空间。
[0047]
本发明原理涉及将图集的分块与作为观看区的一部分的有效性域相关联的方法、数据流和设备。这种关联经由与数据流中的图集链接的格式化元数据进行编码。当解码时,这些元数据允许渲染引擎选择图集中的分块的子集,该子集与涵盖当前视点的有效性域相
关联。确定有效性域以使得这些分块在编码这些点的不同分块中最适合于当前视图,因为这些分块包括针对来自该视点的3d场景的每个可见点的信息和针对这些点的最准确信息。
[0048]
图1示出了对象的三维(3d)模型10和对应于3d模型10的点云11的点。3d模型10和点云11可例如对应于包括其他对象的3d场景的对象的可能3d表示。模型10可以是3d网格表示,并且点云11的点可以是网格的顶点。点云11的点也可以是分布在网格面的表面上的点。模型10也可表示为点云11的喷溅版本,模型10的表面是通过喷溅点云11的点而创建的。模型10可由诸如体素或样条的许多不同表示来表示。图1示出了可用3d对象的表面表示来定义点云以及可从云点生成3d对象的表面表示的事实。如本文所用,将3d对象的点(引申为3d场景的点)投影到图像上等效于投影该3d对象的任何表示,例如点云、网格、样条模型或体素模型。
[0049]
点云可在存储器中表示为例如基于矢量的结构,其中每个点在视点的参照系中都有自己的坐标(例如三维坐标xyz,或立体角和从/到视点的距离(也称为深度))和一个或多个属性,也称为分量。分量的一个示例是可在各种色彩空间中表示的颜色分量,例如rgb(红、绿和蓝)或yuv(y是亮度分量并且uv是两个色度分量)。点云是包括对象的3d场景的表示。可从给定视点或视点范围看到3d场景。点云可通过多种方式获得,例如:
[0050]
·
从由相机装备拍摄的真实对象的捕获,任选地辅以深度主动感测设备;
[0051]
·
从由建模工具中的虚拟相机装备拍摄的虚拟/合成对象的捕获;
[0052]
·
从真实对象和虚拟对象两者的混合。
[0053]
图2示出了对表示3d场景序列的数据进行编码、传输和解码的非限制性示例。编码格式可例如同时兼容3dof、3dof 和6dof解码。
[0054]
获得3d场景序列20。如同画面序列是2d视频,3d场景序列是3d(也称为体积)视频。根据可以在解码时观看3d场景的观看区提供3d场景的序列。可将3d场景提供给体积视频渲染设备以进行3dof、3dof 或6dof渲染和显示。
[0055]
可将3d场景序列20提供给编码器21。编码器21将一个3d场景或3d场景序列作为输入,并提供表示该输入的比特流。比特流可存储在存储器22中和/或电子数据介质上,并且可通过网络22传输。表示3d场景序列的比特流可由解码器23从存储器22读取和/或从网络22接收。解码器23由比特流输入并提供例如点云格式的3d场景序列。
[0056]
编码器21可包括实现若干步骤的若干电路。在第一步骤中,编码器21将每个3d场景投影到至少一个2d画面上。3d投影是将三维点映射到二维平面的任何方法。由于用于显示图形数据的大多数当前方法都基于平面(来自几个位平面的像素信息)二维介质,因此这种类型的投影的用途是广泛的,在计算机图形、工程和制图方面尤为如此。投影电路211为3d场景20序列提供至少一个二维帧2111。帧2111包括表示投影到帧2111上的3d场景的颜色信息和深度信息。在变体中,颜色信息和深度信息被编码在两个单独的帧2111和2112中。
[0057]
元数据212由投影电路211使用和更新。元数据212包括关于投影操作的信息(例如投影参数)以及关于颜色和深度信息在帧2111和2112内的组织方式的信息,如结合图5至图7所述。
[0058]
根据本发明原理,至少一个有效性域由投影电路211确定。有效性域是描述观看区的一部分的信息。有效性域可以代表连接的3d区域或可能断开的连接区域的联合。投影电路211将其生成的每个分块与有效性域相关联。在变体中,投影电路211不会将分块中的一
些分块与任何有效性域相关联,从而指示该分块的有效性域是整个观看区。当投影到该分块上的信息对于来自渲染时包含在3d空间的一部分中的视点的视角重建3d场景是必要的并且准确的时,3d空间的该部分被界定并与该分块相关联。相同的有效性域可以与若干分块相关联。将确定的有效性域的描述和分块与有效性域之间的关联添加到元数据212中,因此该信息将被数据封装电路214封装在数据流中。
[0059]
在本发明原理的实施方案中,有效性域相对于投影中心确定。针对一个投影中心确定的有效性域与根据该投影中心生成的每个分块相关联,如参考图5所描述。在元数据212中添加的有效性域的描述与描述用于生成图集的分块的不同投影操作的投影数据相关联。
[0060]
视频编码电路213将帧2111和2112序列编码为视频。3d场景的画面2111和2112(或3d场景的画面序列)由视频编码器213编码在流中。然后,视频数据和元数据212由数据封装电路214封装在数据流中。
[0061]
编码器213例如与诸如以下的编码器兼容:
[0062]-jpeg,规范iso/cei 10918-1uit-t recommendation t.81,https://www.itu.int/rec/t-rec-t.81/en;
[0063]-avc,也称为mpeg-4avc或h264。在uit-t h.264和iso/ceimpeg-4第10部分(iso/cei 14496-10)两者中规定,http://www.itu.int/rec/t-rec-h.264/en,hevc(其规范见于itu网站,t recommendation,h series,h265,http://www.itu.int/rec/t-rec-h.265-201612-i/en);
[0064]-3d-hevc(hevc的扩展,其规范见于itu网站,trecommendation,h series,h265,http://www.itu.int/rec/t-rec-h.265-201612-i/en annex g and i);
[0065]-google开发的vp9;或者
[0066]-由alliance for open media开发的av1(aomedia video 1)。
[0067]
数据流被存储在可由解码器23例如通过网络22访问的存储器中。解码器23包括实现不同的解码步骤的不同电路。解码器23将由编码器21生成的数据流作为输入,并提供待由如头戴式设备(hmd)的体积视频显示设备渲染和显示的3d场景序列24。解码器23从源22获得流。例如,源22属于一组,该组包括:
[0068]-本地存储器,例如视频存储器或ram(或随机存取存储器)、闪存存储器、rom(或只读存储器)、硬盘;
[0069]-存储接口,例如具有大容量存储装置、ram、闪存存储器、rom、光盘或磁性载体的接口;
[0070]-通信接口,例如有线接口(例如总线接口、广域网接口、局域网接口)或无线接口(诸如ieee 802.11接口或接口);以及
[0071]-使用户能够输入数据的用户界面,诸如图形用户界面。
[0072]
解码器23包括用于提取在数据流中编码的数据的电路234。电路234将数据流作为输入,并提供对应于在流中编码的元数据212的元数据232和二维视频。视频由提供帧序列的视频解码器233解码。解码帧包括颜色和深度信息。帧是图集,即,包括打包在帧中的一组分块的图像数据。分块是包括用于检索3d场景的点以进行重建的信息图像数据。在变体中,视频解码器233提供两个帧序列,一个包含颜色信息,另一个包含深度信息。
[0073]
根据本发明原理,元数据232包括与图集的至少一个分块相关联的至少一个有效性域。有效性域是表示3d场景的3d空间的所述观看区的一部分的信息。
[0074]
电路231使用元数据232对来自解码帧的颜色和深度信息进行去投影,以提供3d场景序列24。3d场景序列24对应于3d场景序列20,可能损失与作为2d视频的编码和视频压缩相关的精度。
[0075]
从其中打包多个分块的图集中检索3d场景。根据本发明原理,电路231去投影图集的分块的子集的像素。电路231仅选择与包围当前渲染视点的有效性域(经由元数据232)相关联的分块。在变体中,如果分块不与有效性域相关联,则该分块始终用于去投影。
[0076]
在本发明原理的实施方案中,元数据232包括分块数据的集合。在分块数据项中,分块与包括用于生成该分块的投影操作的参数的投影数据相关联。元数据232还包括投影数据集合,并且投影数据与有效性域相关联。在该实施方案中,电路231选择用于去投影的分块,这些分块与本身与包围当前视点的有效性域相关联的投影数据相关联。
[0077]
图3示出了可被配置为实现关于图11和图12描述的方法的设备30的示例性架构。图2的编码器21和/或解码器23可实现该架构。或者,编码器21和/或解码器23中的每个电路可以是根据图3的架构的设备,其例如经由其总线31和/或经由i/o接口36链接在一起。
[0078]
设备30包括通过数据和地址总线31连接在一起的以下元件:
[0079]-微处理器32(或cpu),该微处理器是例如dsp(或数字信号处理器);
[0080]-rom(或只读存储器)33;
[0081]-ram(或随机存取存储器)34;
[0082]-存储接口35;
[0083]-i/o接口36,该i/o接口用于从应用程序接收要传输的数据;以及
[0084]-电源,例如电池。
[0085]
根据一个示例,电源在设备外部。在每个提到的存储器中,说明书中使用的词语“寄存器”可以对应于小容量的区域(一些位)或非常大的区域(例如,整个程序或大量接收或解码的数据)。rom 33至少包括程序和参数。rom 33可以根据本发明原理存储用于执行技术的算法和指令。当接通时,cpu 32上载ram中的程序并执行对应指令。
[0086]
ram 34包括寄存器中的由cpu 32执行并在设备30的接通之后上载的程序、寄存器中的输入数据、寄存器中的方法的不同状态中的中间数据以及用于在寄存器中执行方法的其他变量。
[0087]
本文所述的具体实施可在例如方法或过程、装置、计算机程序产品、数据流或信号中实现。即使仅在单个形式的具体实施的上下文中讨论(例如,仅作为方法或设备讨论),讨论的特征的具体实施也可以其他形式(例如,程序)实现。装置可在例如适当的硬件、软件和固件中实现。方法可在例如一般是指处理设备的装置(诸如,例如处理器)中实施,该装置包括例如计算机、微处理器、集成电路或可编程逻辑设备。处理器还包括通信设备,诸如例如计算机、手机、便携式/个人数字助理(“pda”)以及便于最终用户之间信息通信的其他设备。
[0088]
根据示例,设备30被配置为实现关于图11和图12描述的方法,并且属于包括以下项的集合:
[0089]-移动设备;
[0090]-通信设备;
[0091]-游戏设备;
[0092]-平板电脑(或平板计算机);
[0093]-膝上型电脑;
[0094]-静态图片相机;
[0095]-摄像机;
[0096]-编码芯片;
[0097]-服务器(例如广播服务器、视频点播服务器或web服务器)。
[0098]
图4示出了当通过基于分组的传输协议传输数据时流的语法的实施方案的示例。图4示出了体积视频流的示例性结构4。该结构包含在以语法的独立元素组织流的容器中。该结构可包括标头部分41,它是流的每个语法元素所共有的一组数据。例如,标头部分包括关于语法元素的一些元数据,描述它们中每一个的性质和角色。标头部分还可包括图2的元数据212的一部分,例如用于将3d场景的点投影到帧2111和2112上的中心视点的坐标。该结构包括有效载荷,该有效载荷包括语法元素42和至少一个语法元素43。语法元素42包括表示颜色和深度帧的数据。图像可能已根据视频压缩方法进行了压缩。
[0099]
语法元素43是数据流的有效载荷的一部分,并且可包括关于如何对语法元素42的帧进行编码的元数据,例如用于将3d场景的点投影和打包到帧上的参数。此类元数据可与视频的每个帧或帧组(在视频压缩标准中也称为画面组(gop))相关联。根据本发明原理,语法元素43的元数据还包括与图集的至少一个分块相关联的至少一个有效性域。有效性域是表示3d场景的3d空间的所述观察区的一部分的信息,并且可以根据不同的表示和结构进行编码。本公开中提供了此类表示和结构的示例。
[0100]
例如,元数据包括至少一个有效性域的集合。该收集的项可以例如通过字母或通过整数来编索引。元数据进一步包括投影数据集合,该投影数据集合至少包括对有效性域中的一个有效性域的引用。该引用可以是例如集合中的有效性域的索引或指向该数据的存储器地址的指针。在该示例中,元数据还包括分块数据集合,该分块数据集合包括对分块的引用和对投影数据中的一个投影数据的引用。
[0101]
图5示出了以4个投影中心为例的分块图集方法。3d场景50包括人物。例如,投影中心51是透视相机,并且相机53是正射相机。相机还可以是具有例如球面映射(例如等矩形映射)或立方体映射的全向相机。根据在元数据的投影数据中描述的投影操作,3d场景的3d点被投影到与位于投影中心处的虚拟相机相关联的2d平面上。在图5的示例中,根据透视映射将由相机51捕获的点的投影映射到分块52上,并且根据正射映射将由相机53捕获的点的投影映射到分块54上。
[0102]
投影像素的群集产生多个2d分块,其被打包在矩形图集55中。图集内分块的组织限定了图集布局。在实施方案中,具有相同布局的两个图集:一个用于纹理(即颜色)信息,并且一个用于深度信息。由同一相机或由两个不同相机捕获的两个分块可包括表示3d场景的相同部分的信息,如例如分块54和56。
[0103]
打包操作为每个生成的分块产生分块数据。分块数据包括对投影数据的引用(例如,投影数据表中的索引或指向投影数据的指针(即,存储器中或数据流中的地址))和描述图集内分块的位置和尺寸的信息(例如,左上角坐标、尺寸和以像素为单位的宽度)。将分块数据项添加到元数据,以与一个或两个图集的压缩数据相关联地封装在数据流中。
[0104]
图6示出了根据本发明原理的非限制性实施方案的包括3d场景的点的纹理信息(例如,rgb数据或yuv数据)的图集60的布局的示例。如结合图5所解释的,图集是图像打包分块,分块是通过投影3d场景的一部分点而获得的画面。
[0105]
图集的布局是在图集的图像平面上组织分块的方式。在图6的示例中,图集60包括第一部分61和一个或多个第二部分62,该第一部分包括3d场景的从视点可见的点的纹理信息。第一部分61的纹理信息可例如根据等角投影映射来获得,等矩形投影映射是球面投影映射的示例。在图6的示例中,第二部分62布置在第一部分61的左边界和右边界处,但第二部分可以不同地布置。第二部分62包括与从视点可见的部分互补的3d场景的部分的纹理信息。可通过以下方式获得第二部分:从3d场景中移除从第一视点可见的点(其纹理存储在第一部分中)并且根据相同的视点来投影剩余的点。可以迭代地重复后一过程,以每次获得3d场景的隐藏部分。根据变体,可通过以下方式获得第二部分:从3d场景中移除从视点(例如,中心视点)可见的点(其纹理被存储在第一部分中)并且根据不同于第一视点的视点,例如从以中心视点为中心的观看空间(例如,3dof渲染的观看空间)的一个或多个第二视点来投影剩余的点。
[0106]
第一部分61可被看作第一大纹理分块(对应于3d场景的第一部分),并且第二部分62包括较小的纹理分块(对应于与第一部分互补的3d场景的第二部分)。此类图集具有同时与3dof渲染(当仅渲染第一部分61时)和与3dof /6dof渲染兼容的优点。
[0107]
图7示出了根据本发明原理的非限制性实施方案的包括图6的3d场景的点的深度信息并且具有与图6的图集相同布局的图集70的示例。图集70可被看作对应于图6的纹理图像60的深度图像。
[0108]
图集70包括第一部分71和一个或多个第二部分62,该第一部分包括3d场景的从中心视点可见的点的深度信息。图集70可以与图集60相同的方式获得,但包含与3d场景的点相关联的深度信息而不是纹理信息。
[0109]
对于3d场景的3dof渲染,仅考虑一个视点,通常是中心视点。用户可围绕第一视点以三自由度旋转其头部以观看3d场景的各个部分,但用户不能移动该唯一视点。要被编码的场景的点是从该唯一视点可见的点,并且仅需要对纹理信息进行编码/解码以进行3dof渲染。对于3dof渲染,不需要对从该唯一视点不可见的场景的点进行编码,因为用户不能访问它们。
[0110]
对于6dof渲染,用户可将视点移动到场景中的各处。在这种情况下,需要对比特流中场景的每个点(深度和纹理)进行编码,因为可移动他/她的视点的用户可能会访问每个点。在编码阶段处,不存在先验地知道用户将从哪个视点观察3d场景的手段。
[0111]
对于3dof 渲染,用户可在围绕中心视点的有限空间内移动视点。这使得能够体验视差。表示从观看空间的任何点可见的场景的部分的数据将被编码到流中,包括表示根据中心视点可见的3d场景的数据(即第一部分61和71)。例如,可在编码步骤处决定和确定观看空间的尺寸和形状,并在比特流中编码。解码器可从比特流获得该信息,并且渲染器将观看空间限制为由所获得的信息确定的空间。根据另一示例,渲染器根据硬件约束,例如与检测用户移动的传感器的能力有关的硬件约束来确定观看空间。在这种情况下,如果在编码阶段处,从渲染器的观看空间内的点可见的点尚未在比特流中被编码,则该点将不被渲染。根据又一示例,表示3d场景的每个点的数据(例如,纹理和/或几何结构)被编码在流中,而
不考虑渲染观看空间。为了优化流的尺寸,可仅对场景的点的子组进行编码,例如可根据渲染观看空间看到的点的子组。
[0112]
在现有技术中,在已经解码颜色和深度图集之后,渲染设备执行对3d渲染的反向操作。沉浸式渲染设备去投影图集的每个分块的每个像素来重建3d点,而是将3d点重新投影到用户的当前视觉金字塔的视口中。
[0113]
这意味着在渲染设备上的两种类型的操作:
[0114]-存储器查找以获取图集中每个像素的颜色和深度值(受gpu内存带宽限制的操作);以及
[0115]-计算以去投影/重新投影每个点(非常适于大规模并行gpu架构的操作)。
[0116]
在典型的具体实施中,渲染引擎对针对图集的每个像素执行的顶点/片段阴影的处理执行流水线处理,但是会触发等于图集大小的若干存储器查找。例如,对于每度至多支持15个像素的4k hmd,图集由超过17m个像素(5.3kx3.3k)构成。
[0117]
这种方法有一个明显的缺点:图集包含用于任何方向(360
°
x180
°
)的分块,而仅属于终端用户设备视场的分块(通常是hmd的90
°
x90℉ov)在当前视口中可见;然后,渲染引擎可以读取比必要的像素高达8倍的像素。
[0118]
根据本发明原理,为了在低端用户设备上进行快速渲染,通过仅读取图集中可以在当前用户视场中可见的分块子集来减少存储器查找和去投影的次数;即,仅选择在用户视向上出现的分块。
[0119]
图8示出了3d场景的3d空间的扇区化的实施方案。在该示例中,选择如等矩形投影(erp)等的球形投影和映射来将3d场景的点投影到图集的分块上。扇区是3d场景的3d空间的不相交部分(即,非重叠的另一扇区)。在该特定实施方案中,扇区由立体角限定;即(theta,phi)范围指向3d空间的参考点(例如,3dof 观看框的中心点),其中theta和phi是极坐标。
[0120]
在图8中,场景的空间80划分为相同大小的八个扇区。扇区可以具有不同的大小,并且可以不覆盖场景的整个空间。选择扇区数量以根据本文详述的原理优化编码。场景80包括对象81a到对象87a的若干对象或部分。如图5所示,场景的点投影在分块上。以确保分块的像素是相同扇区的点的投影的方式选择对象的要投影在分块上的部分。在图8的示例中,对象87具有属于两个扇区的点。然后,对象87的点被分成两个部分86a和87a,因此当投影时,部分86a的点和部分87a的点被编码在两个不同的分块中。与同一扇区相关联的分块被打包在图集的同一区域中。例如,区域是图集图像的矩形区域,区域可以打包若干分块。在变体中,区域可以具有不同的形状,例如,区域可以由椭圆形或通用多边形界定。同一区域的分块是同一扇区的点的投影。在图8的示例中,场景空间的八个扇区中的五个扇区包括点。根据本原理,表示场景的图集图像88包括五个区域891至895。区域打包作为同一扇区的点的投影的分块。例如,在图8中,区域891包括对应于属于同一第一扇区的点83a和84a的组的分块83b和84b。点86a和87a的组,即使是同一对象87的部分,但因为它们属于两个单独的扇区,也会产生两个分块86b和87b。分块86b被打包在区域892中,而分块87b被打包在不同的区域893中。分块85b被打包在区域894中,因为场景的对应点属于第二扇区,以及分别对应于点81a和82a的组的分块81b和82b被打包在区域895中,因为点81a和82a的组被包括在同一扇区中。
[0121]
在另一实施方案中,对于场景的序列,即在一段时间内,即对于图集图像序列,例如,对于用于压缩视频的编解码器的一组图片(gop),确定分块(以及用于生成它们的点组)属于一个扇区。在该实施方案中,分块在若干图集的序列中保持相同的大小和相同的打包属性。对象(例如对象87)可以从一个扇区移动到另一扇区,例如部分86a可以顺序地朝向部分87a的扇区移动。在该示例中,分块87b足够大以对对象87的每个点进行编码,该分块最初填充有点87a的投影并且最后填充有点86a加87a的投影。分块86b足够大以对点86a进行编码,该分块最初填充有点86a的投影,并且最后填充有表示“未使用的像素”的值。
[0122]
图9示出了根据本发明原理的扇区化图集的第一布局。在该示例中,扇区化遵循图8中所示空间的球形分区。这种空间划分与地理上的橙色切片或时区相当。为了利用图6和图7的中心视野,中心分块被分成n个扇区(在图9的示例中为8个扇区)以获得8个区域。在该实施方案中,每个中心区域包括对应于相同角度幅值的信息,并且因此当投影到erp图像上时恰好包括相同数量的像素。外围分块还按相同角度幅值的扇区分类(在图9的示例中还有8个),然后被打包到外围区域91到98。与中心分块不同,外围区域的数据量不同,因为其取决于给定扇区的视差信息量。在图9中,外围区域可以具有不同的大小。在变体中,外围区域91至98具有相同的大小。未使用的像素可以填充有确定的值,例如用于深度图集的0或255和用于颜色图集的白色、灰色或黑色。
[0123][0124]
在3dof 渲染设备中,处理器管理位于3dof 观看区中的虚拟相机。虚拟相机定义用户的视点和视场。处理器生成对应于该视场的视口图像。在任何时间,根据用户视口方向(theta
用户
,phi
用户
),渲染器选择多个扇区、至少一个扇区,例如3个或4个扇区,并且然后访问和处理相同数量的中心区域和外围区域。在图8至图10的示例中,处理了仅37.5%(3/8扇区)或50%(4/8扇区)的分块。所选扇区的数量可以由渲染器根据其cpu和/或gpu容量动态地调适。渲染器在任何时间的所选扇区的数量至少覆盖视场。可以选择附加的扇区以增强可靠性从而在当前fov的边界处渲染外围分块,以用于用户的侧向和/或旋转移动。
[0125]
图10示出了根据本发明原理的扇区化图集的第二布局。在该示例中,其中所选的投影和映射是erp,图6和图7的中心分块被划分为10个区域:如在图8的示例中所示的用于大的赤道区的8个区域,以及用于极点的两个区域。然后将10个图集区域专用于十个扇区的外围分块。
[0126][0127]
与图8的第一布局相比,该示例布局具有优势。实际上,在渲染方面,仅在用户看向高于或低于给定角度(取决于极区域的大小)时,才会访问和去投影对应于极的图集的区域。在图8的布局中,当用户看向极时,必须访问每个中心分块(即每个区域)以获得必要的信息来生成视口图像。在图9的布局中,必须访问仅一个极区域和一些全景区域(例如四个,这取决于视场的宽度)以生成视口图像。因此,在每种情况下,必须访问较少的区域。
[0128]
图11示出了根据本发明原理的为立方体映射准备的扇区化图集的第三布局。在图11的示例中,场景的3d空间被划分为对应于立方体的六个面的六个金字塔形扇区(或截头锥体),它们例如在观看边界框的中心点上居中。该示例图集布局可以有利地用于(theta
fov
,phi
fov
)小于(90
°
,90
°
)的视场(fov)(theta
fov
,phi
fov
)。该fov特性确保fov中可见的所有像素都属于立方体映射图集的最大三个面。
[0129]
当针对多个中心相机和外围相机(幅值的金字塔视觉(90
°
,90
°
)从若干立方体图集投影发出图集时,扇区被定义为例如在主要中心视点上居中的中心立方体的面中可见的任何相机视野(中央和外围)中的3d点的集合。对于erp情况,外围分块的扇区的概念相对于其在中心相机的笛卡尔坐标系中的位置而不是其所来自的外围分块。
[0130][0131]
在任何时间,渲染器都会选择对应于当前用户的视觉金字塔可见的立方体的3个面的立方体映射投影的三个区域。仅访问这三个区域的像素以生成视口图像。
[0132]
场景空间的扇区化必须在数据流中发信号通知,例如用按区域划分的图集相关联的元数据。此类元数据的可能语法是使用以下语义元素:
[0133]
扇区标识符(uint(8)):扇区标识符。扇区对应于相对于坐标系的场景空间的连续体积。例如,(但不限于)球体的垂直切片。其他可能的体积可以是例如视觉金字塔(立方体映射)、边界框、圆柱体切片(在垂直轴线周围以θ角包括的所有像素)中可见的所有像素。若干相机视野可具有属于同一扇区的像素。
[0134]
3d空间中的在给定扇区i中出现的所有体积数据存储在图集的相同的紧凑型2d区
域ri。
[0135]
扇区描述符:描述场景空间的相对于包含分块子集的虚拟相机的一部分。
[0136][0137][0138][0139][0140][0141]
图集参数语法用于添加附加到每个分块元数据的字段sector_id。该语法元素可包括相对于分块的其他数据。object_id参数也可以用于例如在它们处于同一sector_id时标记具有不同object_id的若干分块。这两个属性是互补的和横向的。
[0142][0143][0144]
其中,sector_id[a][i]第a个图集的第i个分块的sector_id的值。
[0145]
高级语法包括扇区描述符列表:
[0146][0147]
扇区参数列表定义如下。num_sectors_minus1给出不同扇区的数量。num_sectors_descriptors_minus1给出sector_descriptor的数量,sector_id存在一个sector_descriptor。
[0148][0149]
atlas_layout_descriptor描述符(可选):该描述符是可选的,因为可以通过解析atlas_param()中每个分块的sector_id信息来推导图集的隐式布局。这是作为替代语法提出的,其直接表达图集中对应于扇区sectori的2d区域{ri}的定义。
[0150][0151]
可以针对一个或多个图片组(gop)确定图集布局,即区域划分和每个区域内的分块组织。相同gop的图集图像(例如,视频数据流的8个或16个连续图片)可共享相同布局。下一个gop可具有不同的布局,例如通过具有不同的区域划分和/或在区域内的不同的分块组织。
[0152]
解码过程可以实现以下步骤。在每个新gop处,渲染器读取元数据流中的sector_id信息以确定gop持续时间的图集的内部布局。渲染器读取并直接或间接地计算扇区n的数量、图集中扇区区域r1...rn的定义以及有效的角度扇区(theta,phi)和边界框。渲染设备具有跟踪系统(例如,hmd或鼠标的imu或外部跟踪系统),其在每个帧处返回虚拟相机的位置和方向(theta
用户
,phi
用户
),(x
用户
,y
用户
,z
用户
)。
[0153]
每次刷新屏幕时,渲染器会重新合成新的视口帧并获取图集中的值以便:
[0154]-确定哪些扇区与当前用户位姿(位置 定向)匹配并构建候选sector_id列表。该列表包括在元数据中声明的所有扇区,该元数据可出现在于用户方向上居中的视觉金字塔和视场(theta
fov,
phi
fov
)中。
[0155]-可选地通过附加增加场景覆盖范围的相邻扇区来过度供应该列表。该过度供应比率可以是包括在元数据中的推荐值,或者可以由渲染器动态地调整,这取决于其cpu和/或gpu容量以及用户在场景中的当前位置。对于静止位置(x
用户
=0,y
用户
=0,z
用户
=0),可以选择至少覆盖当前fov的过度供应比率。用户从中心位置横向移动得越多(例如,y
用户
=20cm),过度供应比率应增加得越多,以包括fov边界上的横向扇区。这基本上会触发对fov外围中的一个或两个相邻扇区的读取。
[0156]-使用sector_ids列表配置着色器以合成下一帧。
[0157]-使着色器在去投影(重建3d点)和重新投影(放置在用户视觉金字塔的视口中)图集之前仅读取图集中的相关像素(即图集的与所选扇区相关联的区域中的像素)。
[0158]
·
在现有技术中,一种可能的具体实施是在每次图集布局改变时(例如,可能在每
个gop处)分配k个像素网格mi,网格mi覆盖图集中区域ri的所有像素。
[0159]
·
另一种可能的具体实施是基于对整个图集使用单个静态通用网格。
[0160]
图12示出了根据本发明原理的非限制性实施方案的用于生成在图集图像中编码的场景的视口图像的方法120。在步骤121处,从数据流获得图集。可以从存储器读取或从网络接收数据流。同时从相同源或不同源获得元数据。元数据描述了图集在区域中的划分和与场景空间的扇区相关联的区域。图集区域的像素是位于与区域相关联的扇区中的场景的点的投影。在步骤122处,渲染器根据用户控制的虚拟相机的当前视点和视场选择一组扇区。实际上,3dof 渲染设备包括用于用户控制虚拟相机以从场景空间的视区中的视点可视化场景的装置。选择观看者的视场内的扇区。在变体中,选择相邻扇区以便预期虚拟相机的移动。在步骤123处,渲染器访问与所选区域相关联的图集区域的像素,以生成从用户的视点看到的场景的视口图像。该方法的优点在于,所访问的像素的数量并且因此去投影的点的数量限于场景空间的观看扇区的点。
[0161]
图13示出了根据本发明原理的非限制性实施方案的对场景进行编码的方法130。在步骤131处,将场景划分为非重叠扇区。通过扇区获得分块。分块是作为包括在唯一扇区中的场景的点的投影的图片。在步骤132处,选择用于图集的区域布局。布局的每个区域与场景空间的唯一扇区相关联。扇区可以与若干区域相关联。在该步骤处,将分块打包在与其扇区相关联的区域中。图集在数据流中生成和编码,其中,元数据描述区域并将区域与场景空间的扇区相关联。在变体中,在不同数据流中编码元数据。
[0162]
本文所述的具体实施可在例如方法或过程、装置、计算机程序产品、数据流或信号中实现。即使仅在单个形式的具体实施的上下文中讨论(例如,仅作为方法或设备讨论),讨论的特征的具体实施也可以其他形式(例如,程序)实现。装置可在例如适当的硬件、软件和固件中实现。方法可在例如一般是指处理设备的装置(诸如,例如处理器)中实施,该装置包括例如计算机、微处理器、集成电路或可编程逻辑设备。处理器还包括通信设备,诸如例如,智能电话、平板电脑、计算机、移动电话、便携式/个人数字助理(“pda”)以及有利于最终用户之间信息的通信的其他设备。
[0163]
本文描述的各种过程和特征的具体实施可以体现于各种不同的设备或应用程序中,特别是例如与数据编码、数据解码、视图生成、纹理处理和图像以及相关纹理信息和/或深度信息的其他处理相关联的设备或应用程序。此类设备的示例包括编码器、解码器、处理来自解码器的输出的后处理器、向编码器提供输入的预处理器、视频编码器、视频解码器、视频编解码器、web服务器、机顶盒、膝上型电脑、个人计算机、蜂窝电话、pda和其他通信设备。应当清楚的是,设备可以是移动的,甚至安装在移动车辆中。
[0164]
另外,方法可以由处理器执行的指令来实现,并且此类指令(和/或由具体实施产生的数据值)可以存储在处理器可读介质上,诸如例如集成电路、软件载体或其他存储设备,诸如例如硬盘、紧凑型磁盘(“cd”)、光盘(诸如例如,dvd,通常称为数字通用光盘或数字视频光盘)、随机存取存储器(“ram”)或只读存储器(“rom”)。指令可以形成在处理器可读介质上有形地体现的应用程序。指令可以是例如硬件、固件、软件或组合。指令可以在例如操作系统、单独应用程序或两者的组合中发现。因此,处理器可以被表征为例如被配置为执行过程的设备和包括具有用于执行过程的指令的处理器可读介质(诸如存储设备)的设备。此外,除了或代替指令,处理器可读介质可以存储由具体实施产生的数据值。
[0165]
对于本领域的技术人员将显而易见的是,具体实施可产生格式化为携带例如可存储或可传输的信息的各种信号。信息可包括例如用于执行方法的指令或由所述具体实施中的一个具体实施产生的数据。例如,信号可以被格式化为作为数据携带用于写入或阅读所描述的实施方案的语法的规则,或作为数据携带由所描述的实施方案写入的实际语法值的数据。此类信号可格式化为例如电磁波(例如,使用频谱的射频部分)或基带信号。格式化可包括例如对数据流进行编码并且使用经编码的数据流调制载体。信号携带的信息可为例如模拟或数字信息。如已知的,信号可通过多种不同的有线或无线链路传输。信号可存储在处理器可读介质上。
[0166]
已描述了多个具体实施。但应理解的是,可以作出许多修改。例如,可以组合、补充、修改或移除不同具体实施的元件以产生其他具体实施。另外,普通技术人员将理解,其他结构和过程可以被替换为所公开的那些,并且所得具体实施将以至少基本上相同的方式执行至少基本上相同的功能,以实现与所公开的具体实施至少基本相同的结果。因此,本技术考虑了这些和其他具体实施。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献