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

基于对象的体积视频编码的制作方法

2022-04-14 00:54:21 来源:中国专利 TAG:

基于对象的体积视频编码
1.相关申请
2.本专利要求2019年10月1日递交的美国临时专利申请序列号62/908,855的权益。特此通过引用将美国临时专利申请序列号62/908,855全部并入在此。特此要求美国临时专利申请序列号62/908,855的优先权。
技术领域
3.本公开概括而言涉及视频编码,更具体而言,涉及基于对象的体积视频编码。


背景技术:

4.点云(point cloud)可用于表示空间中的三维对象。例如,点云可包括一组数据点,这些数据点可用于表示体积数据,该体积数据表征空间中的(一个或多个)三维对象的一个或多个属性。
附图说明
5.图1图示了用于基于视频的点云压缩(v-pcc)编码的示例系统的框图。
6.图2图示了与点云相关联的示例投影平面。
7.图3图示了用于v-pcc解码的示例系统的框图。
8.图4图示了根据本公开的教导实现的示例基于对象的体积视频编码系统的框图。
9.图5图示了包括在图4的示例基于对象的体积视频编码系统中的基于对象的v-pcc编码器的示例实现方式的框图。
10.图6图示了包括在图4的示例基于对象的体积视频编码系统中的v-pcc解码器的示例实现方式的框图。
11.图7图示了与点云相关联的示例投影层对。
12.图8图示了与点云相关联的示例近投影层和远投影层的示例斑块堆叠。
13.图9图示了与第一对象的点云相关联的示例投影平面。
14.图10a图示了示例限界框。
15.图10b图示了图10a的示例限界框和示例全局坐标系。
16.图11是代表可被执行来实现图4和/或图5的基于对象的v-pcc编码器的机器可读指令的流程图。
17.图12是代表可被执行来实现图4和/或图6的v-pcc解码器的机器可读指令的流程图。
18.图13是被构造来执行图11的指令以实现图4和/或图5的基于对象的v-pcc编码器的示例处理平台的框图。
19.图14是被构造来执行图12的指令以实现图4和/或图6的v-pcc解码器的示例处理平台的框图。
20.图15是示例软件分发平台的框图,用于将软件(例如,与图13-图14的示例计算机
可读指令相对应的软件)分发到客户端设备,例如消费者(例如,用于许可、销售和/或使用)、零售商(例如,用于销售、再销售、许可和/或次级许可)、和/或原始设备制造商(oem)(例如,用于包括在要被分发到例如零售商和/或直接购买客户的产品中)。
21.附图不是按比例的。一般而言,相同的标号将在各幅图和伴随的书面描述的各处被用于指代相同或相似的部件。
22.除非另有具体声明,否则本文使用诸如“第一”、“第二”、“第三”等等之类的描述语,而不输入或以其他方式指示出任何优先权、物理顺序、在列表中的排列和/或以任何方式排序的含义,而只是用作标签和/或任意名称来区分元素,以便易于理解公开的示例。在一些示例中,描述语“第一”在详细描述中可被用于提及某一元素,而同一元素在权利要求中可被用不同的描述语来提及,例如“第二”或“第三”。在这种情况下,应当理解,这种描述语仅仅用于明确地识别那些元素,这些元素例如可能在其他情况下共享同一名称。就本文使用的而言,“基本上实时”指的是以近乎瞬时的方式发生,承认现实世界中可能存在计算时间、传输等等方面的延迟。从而,除非另有指明,否则“基本上实时”指的是实时 /-1秒。
具体实施方式
23.数字媒体技术的进步正在使得能够以新的媒体格式递送引人入胜的沉浸式体验。运动图片专家组(moving picture experts group,mpeg)是一个标准化群组,它正在开发支持沉浸式媒体访问和递送的标准。例如,沉浸式媒体的编码表示(mpeg-i)是一组针对诸如全景360
°
视频、体积点云以及沉浸式视频之类的沉浸式媒体格式的沉浸式媒体行业标准。
24.2015年5月提出的基于视频的点云压缩(video-based point-cloud compression,v-pcc)沉浸式体积标准,通过将点云投影到平坦表面上并且使用现有的视频编解码器标准(例如,高级视频编码(advanced video coding,avc)或高效率视频编码(high efficiency video coding,hevc))对纹理和深度平面投影进行编码,来对点云序列进行编码。v-pcc草案标准包括瓦片组特征(tile group feature),该特征允许将图集分割成矩形瓦片,使用网格模式来并行处理瓦片。
25.然而,v-pcc草案标准并不包括视频场景中的对象的表示。就本文使用的而言,术语“对象”或“实体”可被互换使用,并且指的是图像中的行动者、事物、属性,等等。在一些示例中,实体是在场景中捕捉的对象。例如,对象可对应于在场景中表示的物理对象(例如,人,一件家具,等等)和/或物理对象的一部分(例如,人的手部,人的头部,人穿着的t恤,等等)。额外地或者替换地,对象可对应于基于场景的一个或多个方面,例如反射属性、材料定义等等,对场景的分割。例如,对象也可以是在场景中表示的材料(例如,人的皮肤、人的头发、草,等等)、颜色(例如,绿色、蓝色,等等),等等。由于缺乏对视频场景中的对象的表示的支持,v-pcc草案标准并不支持增强的、个性化的、基于对象的六自由度(six degrees of freedom,6dof)体验。例如,在许多典型的用于点云获取和形成的设置中,背景信息是在低保真度设置中被捕捉的,并且可以被丢弃。用户可以将视频场景对象与新背景进行覆盖或以其他方式合并,该新背景是用合成数据(例如,合成图像)生成的或者是用视频纹理网格形成的。在没有分开表示点云对象和背景的能力的情况下,当前的行业标准规范不允许将背景与视频场景对象分离(例如,以便可以使用新的背景模型),不支持对象过滤和原生处
理,不支持网络自适应场景合成,不便于基于对象的增强,等等。
26.本文公开了用于基于对象的体积视频编码的方法、装置和系统。例如,本文公开的技术在体积视频编码方案中适应对象和背景表示。分开表示点云对象和背景的能力促进了对体积视频的创新使用,例如基于网络的场景合成、个性化的6dof体验、基于关注的优先级排序、定制的点云渲染,等等。
27.本文公开的示例技术包括向点云的点指派对象标识符,其中第一对象的点具有相同的对象标识符,该标识符与第二对象的对象标识符不同。所公开的示例技术还包括将点云投影到正交的投影平面上。一些公开的示例技术一次一个对象地将点云投影到正交投影平面上,将对象的点云投影到分开的投影层对上,和/或将对象的点云投影到分开的投影平面上。所公开的示例技术还包括从投影平面生成斑块(patch),并且将斑块打包成画布(canvas),在一些示例中,每个斑块对应于单个对象。所公开的示例技术还包括将画布与纹理数据、深度数据、占用图谱数据和/或元数据进行复用,以生成单个编码比特流。
28.本文公开的示例技术包括将编码比特流解码为纹理数据、几何数据、占用图谱数据和斑块数据。本文公开的示例技术还包括确定要渲染的感兴趣的对象。例如,可以基于图像情境、用户偏好等等来确定感兴趣的对象。本文公开的示例技术还包括基于解码的斑块来渲染和/或替换感兴趣的对象。
29.图1图示了用于v-pcc编码的示例的基于视频的点云压缩(v-pcc)编码系统100的框图,它也被称为v-pcc编码器100。图1的图示示例代表了v-pcc压缩的现有技术中的编码过程。示例v-pcc编码器100接收示例动态点云体积数据102。就本文使用的而言,点云是空间中的一组像素。例如,点云包括3d空间中的每个像素的(x,y,z,r,g,b)数据,其中元组(x,y,z)对应于深度数据,并且元组(r,g,b)对应于纹理数据。
30.v-pcc编码器100接收动态点云数据102作为输入(例如,每一帧),并且将动态点云数据102投影(由图1中的块120和122表示)到正交平面上(例如,形成立方体)以生成示例几何图像104和示例纹理图像106。v-pcc编码器100包括现有的视频编码器,例如avc和hevc,以利用从动态点云体积数据102形成的几何图像104和纹理图像106的空间和时间冗余。在图示的示例中,纹理图像106的每个像素是从点云(例如,点云体积数据102)的相应点到投影平面上的投影颜色成分,并且几何图像104的每个像素表示投影平面和点云之间的深度(例如,距离)。例如,纹理图像106包括红-绿-蓝(rgb)成分。下面联系图2进一步详细描述投影平面。
31.v-pcc编码器100在块124执行分割,以提取示例斑块信息108。也就是说,v-pcc编码器100从每个投影平面提取矩形区域作为相似深度的斑块。就本文使用的而言,相似深度可以由一个或多个标准来确定,例如一个或多个阈值、百分比,等等。例如,取决于应用,相似深度可能没有大于一英尺、一英寸、一毫米等等的位移。在示例块110,v-pcc编码器100将斑块108和示例占用图谱112(如下所述)打包到瓦片式画布(例如,图集)中。就本文使用的而言,占用图谱表明图集中被斑块占用的区域。例如,占用图谱包括1的值,表明图集中的相应像素被占用,以及0的值,表明图集中的相应像素没有被占用。在一些示例中,v-pcc编码器100生成占用图谱。在图示的示例中,占用图谱112表明图集中被占用的部分。v-pcc编码器100进一步生成斑块信息元数据,以表明如何在投影平面和图集之间映射斑块。
32.v-pcc编码器100在生成几何图像104和纹理图像106之后执行图像填充(由图1中
的块126表示)。也就是说,v-pcc编码器100填补斑块之间的(一个或多个)空白空间,以提高视频编码的效率。例如,v-pcc编码器100处理按栅格顺序排列的每个像素块,并且将斑块的索引指派为块元数据信息。就本文使用的而言,块是一个或多个像素的群组。例如,块可以是点云的八个像素的群组。然而,块可包括更多或更少数目的像素。在图示的示例中,在块110处生成的斑块是由一个或多个块构成的。
33.v-pcc编码器100为每个斑块生成(由图1中的块110表示)元数据信息(例如,斑块信息)。在图示的示例中,元数据信息包括斑块投影平面的索引、三维(3d)空间中的斑块位置、2d投影平面中的斑块位置,等等。v-pcc编码器100对斑块信息进行预测和算术编码。在一些示例中,存在包含相同块的斑块的列表(例如,斑块中斑块的情况)。例如,斑块可以重叠,从而像素块可以属于一个或多个斑块。在这样的示例中,通过依赖于流传输的占用图谱并且遵循在v-pcc编码器100处用于对斑块编码的相同顺序,在解码器侧对斑块进行解析。
34.v-pcc编码器100生成(由块110表示)占用图谱。在一些示例中,占用图谱与图集相关联(例如,相同的尺寸和分辨率),图集可包括来自多个点云的斑块。在图示的示例中,占用图谱是二进制图谱,来表明2d网格(例如,代表图集中的点位置/定位)中的单元(例如,像素)是否被占用并且属于点云的斑块。在一些示例中,以多种扫描模式将占用图谱压缩成块或子块,以实现无损编码。
35.在示例重建环路114,v-pcc编码器100用平滑过程(由块128表示)模拟几何信息的重建。例如,v-pcc编码器100用将在v-pcc解码器中执行的平滑过程来模拟几何图像104的重建,以便在编码过程期间参考。在一些示例中,平滑过程去除了由于压缩伪影而引起的斑块边界处的不连续。
36.在示例压缩层116,v-pcc编码器100压缩生成的比特流。例如,v-pcc编码器100压缩视频比特流(例如,打包的几何和纹理图像)、占用图谱112和斑块信息108。在图示的示例中,v-pcc编码器100将视频编码流(例如,包括编码的几何图像104和纹理图像106)、视频编码的占用图谱112以及编码的斑块信息元数据108组合到单个比特流118中。
37.图2图示了与点云相关联的示例投影平面。图2的图示示例包括代表第一对象(例如,第一对象,被图示为第一人)的第一示例点云202和代表第二对象(例如,第二对象,被图示为第二人)的第二示例点云204。图2的图示示例包括示例左侧投影平面206、示例顶部投影平面208、以及示例右侧投影平面210。在一些示例中,示例投影平面206、208、210是投影立方体的一部分,该投影立方体还包括图2中未示出的底部投影平面、背面投影平面和正面投影平面。
38.在本文公开的示例中,使用纹理和几何(例如,图1的几何图像104和纹理图像106)到表示限界长方体的平面(例如,投影平面206、208、210)上的正交投影来对点云(例如,点云202、204)进行编码。斑块被从3d表面形成,并且基于哪个平面与斑块的表面区域有最接近的法线距离而被映射到特定的投影平面。斑块被打包到图集(例如,画布)中。
39.在本文公开的示例中,投影平面206、208、210包括投影层。在一些示例中,投影平面包括近层和远层。例如,左侧投影平面206包括示例近层212和示例远层214,顶部投影平面208包括示例近层216和示例远层218,并且右侧投影平面210包括示例近层220和示例远层222。在一些示例中,对于每个投影平面(例如,投影平面206、208、210),创建两个图像,一个对应于近层(例如,近层212、216、220),另一个对应于远层(例如,远层214、218、222)。在
一些示例中,近层和远层的使用解决了以下示例:其中,点云的多于一个点被映射到平面投影中的相同像素位置(例如,同一点云的重叠点,多个点云的重叠点,等等)。在一些示例中,v-pcc编码器100(图1)对近层和远层都进行编码,只对近层进行编码,等等。
40.图3图示了用于v-pcc解码的示例v-pcc解码系统300的框图,它也被称为v-pcc解码器300。v-pcc解码器300接收由v-pcc编码器100生成的压缩比特流118(图1)。v-pcc解码器300对压缩比特流118进行解复用(由块314表示),以生成包括纹理比特流、几何比特流、占用图谱比特流和斑块比特流的示例数据302,如图所示。在示例解压缩层304,v-pcc解码器300对数据302(例如,纹理比特流、几何比特流、占用图谱比特流、和/或斑块比特流)进行解压缩。例如,v-pcc解码器300对数据302的纹理和几何比特流进行解压缩。在图示的示例中,v-pcc解码器300使用与v-pcc编码器100使用的视频编码器相匹配的视频解码器对纹理和几何比特流进行解压缩。
41.在块306,v-pcc解码器300执行几何重建。例如,v-pcc解码器300基于解压缩的几何比特流、解压缩的占用图谱比特流和解压缩的斑块比特流来生成重建的几何数据。在块308,v-pcc解码器300对重建的几何信息执行平滑。在块310,v-pcc解码器300使用平滑的重建几何信息生成解码的动态点云312以映射纹理视频。
42.图4图示了根据本公开的教导实现的示例基于对象的体积视频编码系统400的框图。示例基于对象的体积视频编码系统400包括示例服务器侧沉浸式视频编码系统402和示例客户端侧沉浸式视频解码系统450。示例服务器侧沉浸式视频编码系统402包括一个或多个示例视频捕捉器404、示例点云生成器406、示例虚拟摄像机渲染器407、示例对象和深度信息存储装置408、示例基于对象的v-pcc编码器410、示例视频编码器412、示例流打包器414、示例内容管理系统415、以及示例内容分发网络416。
43.(一个或多个)示例视频捕捉器404捕捉图像数据。例如,(一个或多个)视频捕捉器404可包括图像传感器(例如,相机)和/或与图像传感器相对接,以捕捉图像的帧。额外地或者替换地,(一个或多个)示例视频捕捉器404可以实现激光雷达成像。点云生成器406将从(一个或多个)示例视频捕捉器404获得的数据(例如,帧)转化为点云(例如,图1的点云102)。对象和深度信息存储装置408和/或示例基于对象的v-pcc编码器410接收点云数据。
44.点云生成器406生成示例对象和深度信息(例如,存储在对象和深度信息存储装置408中)以包括在点云数据中。在一些示例中,点云生成器406为点云数据的每个点生成对象标识符(例如,对象id)。例如,点云生成器406使用机器学习分类器、传统分类器和/或分割算法来分析点云的点,以(i)识别点云中表示的一个或多个不同对象,以及(ii)向每个点指派对象id。也就是说,属于同一对象的点云的点将具有相同的对象id。额外地或者替换地,(一个或多个)示例视频捕捉器404可以分开捕捉并且向个体点云对象指派对象id,然后在同一场景中填充这些对象。在一些示例中,对象id是由计算机生成的图形程序提供的。也就是说,对象id可以在图形生成期间被指派给对象。例如,视频游戏可以生成标注有对象标识符的视频(例如,视频游戏为视频序列中的每个对象提供对象标识符)。
45.在本文公开的示例中,由点云生成器406生成的点云包括纹理数据、几何数据、以及对象标识符。在一些示例中,点云的每个数据点可包括(x,y,z,r,g,b,属性)元组的值。例如,(x,y,z)值表示点云中的点相对于参考3d全局坐标系(例如,具有标注为x、y和z维度的3个正交维度)的几何结构(例如,位置)。(r,g,b)值表示点云中的点的纹理成分(例如,3个颜
色成分,比如红、绿、蓝颜色成分)。“属性”字段的(一个或多个)值至少表示该点所表示的相应对象的对象标识符。
46.在本文公开的示例中,对象id识别了点云对象,以便在有限的时间段内,对于场景中的不同点云对象没有重复的对象id。在一些示例中,表示对象id所需要的比特的数目取决于基于对象的体积视频编码系统400中支持的对象的数目。例如,对对象标识符编码的比特的数目可具有固定的长度或可变的长度,这取决于场景中的对象的最大数目。例如,对象id可以由字节表示,其中最后一比特被保留来指示扩展。在一些这样的示例中,对象id的可扩展性是为了支持具有大量(例如,数千个)可能的点云对象的使用。例如,如果由(一个或多个)视频捕捉器404捕捉的图像包括六个对象,则点云数据元组的属性字段可包括至少三个比特以存储六个对象id。作为另一个示例,如果由(一个或多个)视频捕捉器404捕捉的图像包括20,000个对象,则点云数据的属性字段可包括至少16比特以存储20,000个对象id。在一些示例中,包括在属性字段中的比特的数目基于场景中的对象的数目而变化,从而减少了未使用的比特的数目。
47.示例基于对象的v-pcc编码器410接收点云数据(例如,由点云生成器406生成)和/或对象和深度信息(例如,存储在对象和深度信息存储装置408中)。基于对象的v-pcc编码器410执行对点云数据的基于对象的编码。例如,基于对象的v-pcc编码器410将点云数据投影到投影平面(例如,投影立方体)上并且生成斑块。在本文公开的示例中,基于对象的v-pcc编码器410生成与单一对象相关联的斑块。基于对象的v-pcc编码器410将生成的斑块打包在图集中。
48.基于对象的v-pcc编码器410使得能够进行基于对象的编码。例如,基于对象的v-pcc编码器410用不同的对象标识符标记点云对象和场景的背景。在一些示例中,对象标识符使得能够实现基于对象的可缩放性以便不同的网络条件下实现自适应流媒体。例如,图示示例中的基于对象的v-pcc编码器410基于情境信息确定感兴趣的对象和/或场景中的每个对象的相对重要性。例如,基于对象的v-pcc编码器410将体育比赛的球识别为感兴趣的对象,将烹饪比赛的盘子识别为感兴趣的对象,等等。示例基于对象的v-pcc编码器410确定是否可以完全丢弃(例如,不编码)或以较低的视觉质量编码与不感兴趣的点云对象(例如,背景对象,等等)相对应的斑块。这允许了基于对象的v-pcc编码器410分配相对更多的带宽来编码感兴趣的对象,而不是将相等的带宽分布给场景的所有对象。
49.示例基于对象的v-pcc编码器410还可以基于用户关注来识别感兴趣的对象。也就是说,基于对象的v-pcc编码器410分析对象的动作,以确定该对象是否是感兴趣的。例如,在体育比赛中,基于对象的v-pcc编码器410分析球的运动(例如,对象在一段时间中的深度信息),以确定动作的位置,并且捕捉球周围的活动(例如,确定对应于与球相距阈值距离内的球员的对象标识符)。在一些示例中,基于对象的v-pcc编码器410确定与动作(例如,移动的球)相距阈值距离内的对象是感兴趣的对象,从而,将更高的比特预算(例如,更高的分辨率)分配给感兴趣的对象的斑块。这允许了客户端侧沉浸式视频解码系统450的用户可以放大到更高分辨率的斑块,并且生成感兴趣的对象的高保真渲染。下面结合图5描述基于对象的v-pcc编码器410的示例实现方式。
50.示例虚拟相机渲染器407处理由点云生成器406生成的点云数据。例如,虚拟相机渲染器407基于点云数据来渲染环境场景。例如,虚拟相机渲染器407渲染关于由点云生成
器406生成的点云数据的补充信息。
51.示例视频编码器412执行视频编码。例如,视频编码器412在分开的通道中对从虚拟相机(例如,360
°
视频)捕捉的帧进行编码,以支持向后兼容。也就是说,示例视频编码器412编码的数据与不支持v-pcc的解码器兼容(例如,客户端侧沉浸式视频解码系统450的消费者设备不支持v-pcc解码器)。在一些示例中,服务器侧沉浸式视频编码系统402不包括虚拟相机渲染407和/或视频编码器412。
52.示例流打包器414将编码后的比特流组合在一起。也就是说,示例流打包器414产生复用的比特流。例如,流打包器414组合基于对象的v-pcc编码器410的编码比特流和视频编码器412的编码比特流。在一些示例中,流打包器414添加指示出场景中的各种资产的元数据。例如,流打包器414添加指示出编码比特流的帧速率、编码比特流的分辨率、可用的带宽量等等的数据。
53.示例内容管理系统415控制向客户端侧沉浸式视频解码系统450流传输的成像模式。例如,服务器侧沉浸式视频编码系统402生成来自捕捉同一场景的不同成像模式(例如,点云图像、360
°
视频,等等)的视图。内容管理系统415d确定是否选择各模式的子集。例如,如果用户不是在观看360
°
内容,则内容管理系统415提取与观看者位置和方向相对应的视口。
54.示例内容分发网络416是用于将复用的比特流传输到示例客户端侧沉浸式视频解码系统450的网络。在一些示例中,内容分发网络416可以是互联网或者任何其他适当的外部网络。额外地或者替换地,可以使用任何其他适当的手段将复用的比特流传输到客户端侧沉浸式视频解码系统450。
55.示例客户端侧沉浸式视频解码系统450包括示例客户端播放器452。在图4的图示示例中,客户端播放器452包括示例解包器454、示例v-pcc解码器456、示例呈现引擎458、示例视频解码器460、以及示例视频渲染器462。
56.示例解包器454对复用的比特流进行解复用。也就是说,示例解包器454经由示例内容分发网络416从示例服务器侧402接收复用的比特流,并且将比特流解复用以生成子流(例如,视频比特流、v-pcc比特流,等等)。
57.示例v-pcc解码器456对v-pcc比特流进行解码。例如,v-pcc解码器456对占用图谱比特流和/或斑块比特流进行解压缩以重建几何数据。额外地或者替换地,v-pcc解码器456对重建的几何数据执行平滑,并且生成解码的动态点云。下面结合图6描述v-pcc解码器456的示例实现方式。
58.示例呈现引擎458将由基于对象的v-pcc编码器410生成的解码图集和元数据映射到客户端播放器452的投影格式。例如,呈现引擎458重建了源视图。例如,呈现引擎458基于投影格式(例如,矩形投影、透视投影、正交投影,等等)重建源视图。
59.示例视频解码器460对视频比特流进行解码。例如,视频解码器460对纹理和几何比特流进行解压缩。在一些示例中,视频解码器460与视频编码器412匹配(例如,使用相同的视频编码格式)。
60.示例视频渲染器462生成视口(例如,体积)内容。例如,视频渲染器462接收来自呈现引擎458的重建源视图和来自视频解码器460的解码视频比特流,并且生成体积内容(例如,图3的示例解码点云312)。该体积内容被显示给客户端播放器452的用户。在一些示例
中,视频渲染器462基于重建的源视图的对象标识符来过滤和渲染体积内容。
61.例如,v-pcc解码器456可以基于点云对象的限界框属性来过滤掉对象。也就是说,示例客户端播放器452,以及从而,示例v-pcc解码器456,接收与整个场景相对应的比特流数据(例如,纹理数据、几何数据、对象标识符,等等)。然而,示例v-pcc解码器456可以识别感兴趣的对象(例如,体育比赛中的感兴趣的球员,等等)。从而,v-pcc解码器456识别感兴趣的对象的相应对象标识符,并且视频渲染器462可被配置为渲染与感兴趣的对象标识符相对应的斑块,但不渲染与场景中的一个或多个其他对象相对应的(一个或多个)斑块。这使得客户端播放器452的用户可以有选择感兴趣的内容的个性化体验(例如,只渲染体育比赛的一个球队的球员,只渲染体育比赛的进攻球员,等等)。
62.示例视频渲染器462允许了用户对渲染的视频进行定制。也就是说,客户端播放器452的用户可以定制对象和/或场景的背景。例如,基于用户输入、客户端应用等等,视频渲染器462可以使用由v-pcc解码器456提供的对象标识符,来用其他图像数据替换场景中的一个或多个对象(例如,渲染体育场馆的墙上的定制广告横幅,渲染合成背景,改变衬衫的颜色,等等)。
63.在一些示例中,视频渲染器462确定渲染的顺序。例如,视频渲染器462选择场景的一个或多个对象来首先渲染(例如,相对更接近用户视角的对象)。示例视频渲染器462可以在相对较晚的时间(例如,对应于最后一个内帧)渲染另外的对象(例如,背景对象、静态对象,等等)。在这样的示例中,示例客户端播放器452节省了计算和带宽资源,改善了感兴趣的对象的实时渲染。
64.图5图示了包括在图4的示例基于对象的体积视频编码系统400中的基于对象的v-pcc编码器410的示例实现方式的框图。示例基于对象的v-pcc编码器410包括示例点注释器501、示例投影器502、示例对象分离器504、示例基于对象的生成器506、示例元数据生成器508、以及示例比特流编码器510。
65.示例基于对象的v-pcc编码器410接收点云数据500。在图5的图示示例中,点云数据500包括三个对象:背景、第一人,以及第二人。如上所述,点云数据的每个点包括(x,y,z,r,g,b,o)数据,其中元组(x,y,z)对应于深度数据,元组(r,g,b)对应于纹理数据,并且由“o”表示的属性字段对应于对象数据。对象数据包括一个或多个对象标识符,以唯一地识别场景中的相应的一个或多个对象。在图示的示例中,背景对应于0的对象标识符,第一人对应于1的对象标识符,并且第二人对应于2的对象标识符。
66.示例点注释器501确定点云数据是否包括对象id。例如,点云数据500的属性数据可能不包括对象id。如果点注释器501确定点云数据不包括对象id,则点注释器501如上所述用对象id对点云数据500的点进行注释。例如,点注释器501使用机器学习分类器来识别点云数据500中的不同对象。额外地或者替换地,点注释器501确定点云数据500包括对象id。在一些示例中,对象id是由计算机生成的图形程序提供的。例如,视频游戏可以生成标注有对象标识符的视频(例如,包括点云数据500)(例如,视频游戏为视频序列中的每个对象提供对象标识符)。
67.如下面的表格1中所示,num_objects数据元素可以被添加在定义图集的数据结构(例如,atlas_tile_group_data_unit)中。如表格2中所示,给定对象的对象id可以与定义该对象的每斑块信息的相应数据结构被包括在一起,例如定义斑块参数的数据结构。可以
通过若干种方式来发信号通知对象id值。例如,如表格2中所示,可以使用u(v)编码,其中用于表示给定对象的比特的数目等于ceil(log2(num_objects))。ceil(n)函数返回大于或等于输入n的最小可能整数值。例如,ceil(2.8)返回整数3。log2(x)函数返回输入x的以2为底的对数。例如,log2(2)返回值1。
[0068][0069]
表格1
[0070][0071]
表格2
[0072]
额外地或者替换地,示例点注释器501指派了各个限界框来包围每个相应的点云对象。例如,对象的深度数据(例如,点云数据500的x、y、z成分)被限制在限界框内。限界框的放置将点云对象的位置与参考3d全局坐标系联系起来。在一些示例中,限界框与对象id相关联。在本文公开的示例中,远程客户端(例如,客户端侧沉浸式视频解码系统450)可以使用限界框信息来构造具有点云对象的场景,标注对象,并且渲染终端用户的视口。
[0073]
限界框的属性表示定位信息以及点云对象的补充信息。示例点注释器501通过指定起始点来确定限界框的几何结构。例如,限界框可以在顶部、左侧、前角(x,y,z)具有起始点,尺寸为(w,h,d),其中w指的是限界框相对于起始点的宽度,h指的是限界框相对于起始点的高度,并且d指的是限界框相对于起始点的深度。在一些示例中,定位信息被存储为浮点值。
[0074]
一些示例中,点注释器501将限界框的定位信息和/或补充信息存储为压缩的点云视频比特流中的补充增强信息(supplementary enhancement information,sei)消息。限
界框可以由示例点注释器501在sei消息内发信号通知。对于体积媒体应用,限界框可被扩展到三维(3d),从而使得sei元数据对于每个对象指示出矩形立方体。额外地或者替换地,sei消息可以列出对象标签(例如,对象id),其中每个sei消息可以被多个对象使用。对象标签由sei消息内的数据结构(例如,ar_label[ar_label_idx[i]])指示,如下面在表格3中所示。
[0075]
[0076]
[0077][0078]
表格3
[0079]
表格3中列出的sei数据元素中的至少一些的示例可以在2019年10月发布的“proposed revision to annotated regions sei message for hevc and inclusion in avc”,jctvc-ak0025中找到。根据本公开的教导而添加/修改的sei数据元素的示例在此被定义如下。数据元素ar_object_idx[i]是要发信号通知的对象参数(例如,限界框、标签)的索引,并且指示出相关斑块的对象id。数据元素ar_bounding_box_top[]、ar_bounding_box_left[]、ar_bounding_box_front[]、ar_bounding_box_width[]、ar_bounding_box_height[]和ar_bounding_box_depth[]分别指定第i个对象(由ar_object_idx[i]识别)相对于3d参考坐标系(例如,投影平面所参考的同一坐标系)的左上前角的坐标和宽度、高度和深度。
[0080]
在本文公开的一些示例中,每个实体都与限界框相关联,以便被高效地识别、标注、定位、处理和直接渲染,而不是跨图集和/或斑块访问所有像素。例如,系统400可以将背景数据(例如,地板、墙壁,等等)和/或与背景相关的元素(例如,广告横幅、篮球网,等等)视为特殊的点云对象,这些特殊点云对象是从与表示其各自的锚定位置和属性的限界框相关联的实体id推断出来的。在一些示例中,与背景(例如,地板、场馆、观众座位区,等等)相对应的点云数据是以低保真度捕捉和构造的,例如当背景点云数据是从多个相机重建的时。然而,本文公开的示例技术对点云数据进行分割,以将背景实体与点云数据中的其他感兴趣的对象分离。在这样的示例中,v-pcc解码器456可以用合成的高质量模型、视频纹理网格、实时视频馈送等等来替换背景。
[0081]
例如,如果背景对象在性质上是静态的(例如,它们在点云数据的帧之间没有变化),则基于对象的v-pcc编码器410可以提前发送背景对象(例如,在游戏的实时流传输之前,等等),并且v-pcc解码器456可以在以后使用相应的对象id取回背景对象。在一些示例中,如果需要的话,基于对象的v-pcc编码器410在压缩比特流的入口点之间每个内周期发送一次背景对象。
[0082]
额外地或者替换地,背景对象可包括额外的对象。例如,体育比赛的背景可以是包括观众的场馆。在这样的示例中,与背景对象相关联的限界框可以被链接到其底层实时视频流,并且v-pcc解码器456可以将背景对象渲染为合成的场馆模型。
[0083]
示例投影器502将点云数据500投影到投影平面上,以形成几何和纹理视图以及对象图谱。在本文公开的示例中,投影器502将点云数据500分割并且投影到正交投影平面上。在一些示例中,正交投影平面形成具有六个平面的投影立方体(例如,顶部平面、底部平面、
左侧平面、右侧平面、正面平面和背面平面)。然而,也可以额外地或者替换地使用其他投影平面几何结构(例如,金字塔,等等)。如上所述,投影平面可包括投影层对(例如,近层和远层)。
[0084]
在一些示例中,投影器502一次将一个对象的点云数据投影到投影平面上。也就是说,投影器502迭代经过每个对象标识符,并且对于给定的迭代,仅将所选对象标识符的点云数据投影到投影平面上。然而,一次迭代经过一个对象可能在计算上很耗时。
[0085]
在一些示例中,投影器502将点云数据500投影到投影平面上。也就是说,投影器502将三个对象的点云数据500投影到投影平面上。示例对象分离器504基于关联的对象图谱,生成与不同投影层相对应的多个视图(例如,纹理和几何数据)。也就是说,每个层只与一个对象相关联。在本文公开的示例中,对象分离器504基于对象标识符来生成层。
[0086]
在一些示例中,对象分离器504将每个对象的点云数据的投影分离到不同的投影层对的投影平面上,从而示例投影器502可以同时投影多个对象的点云数据。为了分离对象,对象分离器504将对象分离并且指派给不同的投影层对。投影层对的排序代表了对象与投影表面的距离,从而,较近对象的投影层对被排序在较远对象的投影层对之前。例如,对象分离器504将背景的投影指派到第一投影层对上,对象分离器504将第一人的投影指派到第二投影层对上,并且对象分离器504将第二人的投影指派到第三投影层对上。从而,每个投影层对只包括一个对象的数据。在这样的示例中,对象分离器504生成6x n个投影层对,其中n是场景中的对象的数目,并且6对应于投影立方体的投影平面的数目。然而,6可以被替换为与投影几何结构相对应的任何其他数字(例如,对于金字塔为5,等等)。下面联系图7进一步描述基于对象的投影层对的图示示例。
[0087]
在一些示例中,示例投影器502包括示例投影生成器512以执行对象特定的投影。也就是说,示例投影生成器512将每个对象的点云数据投影到单独的投影平面(例如,单独的投影立方体)上。例如,点云数据的每个对象可以与它自己的投影平面相关联。在一些示例中,投影立方体具有相同的分辨率。额外地或者替换地,投影立方体可具有不同的分辨率。例如,与不感兴趣的对象相比,感兴趣的对象可以被投影到更高分辨率的投影立方体的投影平面上。例如,通过选择与第一人的对象id相关联的点云数据,投影生成器512可以将第一人的点云数据投影到第一组投影平面(例如,与第一人的对象id相关联的第一投影立方体)上。额外地或者替换地,投影器502选择与第二人的对象id相关联的点云数据并且将第二人的点云数据投影到第二组投影平面(例如,与第二人的对象id相关联的第二投影立方体)上。在这样的示例中,对象特定的投影立方体参考相同的3d全局坐标系。在一些示例中,投影器502执行基于对象的投影(例如,被定位和设置大小的),以提高感兴趣的对象的斑块的分辨率和保真度。从而,从每个点云对象生成的斑块被存储在由对象id索引的单独的图集和画布中。
[0088]
示例基于对象的生成器506(例如,斑块生成器506)基于投影层来生成斑块。示例基于对象的生成器506包括示例斑块堆叠器514、示例斑块id指派器516、以及示例斑块分组器518。例如,基于对象的生成器506为每个投影平面将投影图层分割成斑块(例如,矩形区域)。这些斑块包括纹理数据和几何数据。基于对象的生成器506将斑块打包到瓦片式画布(例如,图集)中。基于对象的生成器506进一步生成斑块信息元数据,以表明如何在投影平面和画布之间映射斑块。
[0089]
基于对象的生成器506生成斑块,其中每个斑块具有来自单个对象的内容。从而,每个斑块包括和/或被标记有相应的对象id。然而,基于对象的生成器506可以将与多个对象相对应的斑块打包到一个画布中。例如,如果对象分离器504生成了与一个对象相对应的投影层对,则基于对象的生成器506可以仅基于该对象的相应投影层对来生成该对象的斑块。类似地,如果投影器502将每个对象的点云数据投影到了单独的投影立方体上,则基于对象的生成器506可以仅基于该对象的相应投影立方体的投影平面来生成该对象的斑块。
[0090]
基于对象的生成器506额外地或者替换地生成堆叠的斑块。也就是说,斑块堆叠器514在投影平面的投影层(例如,在近投影层,在远投影层,等等)中生成堆叠的斑块。在这样的示例中,每个斑块表示来自一个点云对象的投影。在一些示例中,在投影层中的相同格子位置(例如,相同的坐标)有来自不同对象的斑块。从而,示例斑块堆叠器514将斑块堆叠起来,以使得堆叠的斑块的排序决定对象与投影层的表面的接近度(例如,堆叠中的第一斑块表示比更远的对象更接近投影层的表面的对象)。例如,投影器502将属性数据、几何数据和/或对象图谱投影到投影平面上(例如,投影层对)。示例斑块堆叠器514基于对象图谱(例如,对象id)生成包括在投影平面的近层中的斑块的堆叠。额外地或者替换地,斑块堆叠器514基于对象图谱生成包括在投影平面的远层中的斑块的堆叠。斑块堆叠器514将堆叠的斑块分开打包在图集中,从而使得没有斑块覆盖另一个斑块。
[0091]
示例斑块id指派器516用斑块中表示的对象的相应对象id来标记生成的斑块。例如,包括点云数据500的第一人的斑块被标记以第一人的对象id,并且包括点云数据500的第二人的斑块被标记以第二人的对象id。示例斑块分组器518将具有相同对象id的斑块分组在一起。
[0092]
示例元数据生成器508生成与画布的斑块相对应的元数据。例如,元数据生成器508生成占用图谱。例如,占用图谱指示出画布应当被解码的部分(例如,打包到画布中的斑块内的占用区域)。元数据生成器508可以额外地或者替换地执行几何和纹理图像填充、深度占用编码,等等。
[0093]
示例比特流编码器510对数据进行编码。例如,比特流编码器510对由元数据生成器508生成的占用图谱进行编码,对深度数据进行编码,对纹理数据进行编码,等等。比特流编码器510对编码的数据和画布进行复用,以生成示例压缩比特流520。
[0094]
图6图示了包括在图4的示例客户端侧沉浸式视频解码系统450中的v-pcc解码器456的示例实现方式的框图。v-pcc解码器456接收由服务器侧体积视频编码系统402生成的压缩比特流520(图5)。v-pcc解码器456对压缩比特流520进行解复用(由块614表示),以生成包括纹理比特流、几何比特流、占用图谱比特流和斑块比特流的示例数据602,如图所示。在示例比特流解码器604处,v-pcc解码器456对数据602(例如,纹理比特流、几何比特流、占用图谱比特流、和/或斑块比特流)进行解压缩。例如,v-pcc解码器356对数据602的纹理和几何比特流进行解压缩。在图示的示例中,v-pcc解码器356使用与服务器侧体积视频编码系统402使用的视频编码器相匹配的视频解码器对纹理和几何比特流进行解压缩。
[0095]
示例v-pcc解码器356包括示例对象过滤器605和示例重建器607。示例对象过滤器605接收解压缩的斑块数据和/或解压缩的占用图谱数据。示例对象过滤器605基于占用图谱来过滤斑块数据的块。例如,对象过滤器605基于占用图谱的相应像素是否被占用(例如,占用图谱的被占用像素对应于要被渲染的对象)来确定要渲染斑块数据的哪些像素。在一
些示例中,对象过滤器605使用所选对象的对象id来识别关联的限界框。也就是说,对象过滤器605执行对象过滤。例如,对象过滤器605从图集数据中去除要过滤掉的对象的斑块。例如,对象过滤器605去除与对象id相关联的斑块,从而生成过滤后的斑块数据。例如,对象过滤器605识别要去除的对象的对象id,并且去除与所识别的对象id相对应的斑块。在一些示例中,对象过滤器507通过去除形成斑块的块来去除斑块。
[0096]
示例重建器607包括示例几何重建器606、示例平滑器608、以及示例纹理重建器610。示例几何重建器606执行几何重建。例如,几何重建器606基于解压缩的几何比特流、解压缩的占用图谱比特流和剩余的斑块(例如,在对象过滤器605去除斑块之后)生成重建的几何数据。示例平滑器608对重建的几何信息执行平滑。示例纹理重建器610执行纹理重建。例如,纹理重建器610基于解压缩的纹理比特流和平滑的几何信息来生成重建的纹理数据。v-pcc解码器456使用平滑的重建几何信息来生成解码的动态点云612以映射重建的纹理数据。在本文公开的示例中,解码的动态点云612是过滤后的输出。也就是说,v-pcc解码器456(例如,对象过滤器605)识别感兴趣的对象,并且去除与不感兴趣的对象id相对应的斑块。从而,v-pcc解码器456基于剩余的斑块来生成解码后的动态点云612。
[0097]
图7图示了与点云相关联的示例投影层对。图7的图示示例包括分别代表第一人和第二人的第一示例点云702和第二示例点云704。图7的图示示例包括示例左侧投影平面706、示例顶部投影平面708、以及示例右侧投影平面710。示例投影平面706、708、710是投影立方体(未图示)的一部分。也就是说,投影立方体的底部投影平面、背面投影平面和正面投影平面没有被图示。
[0098]
在图7的图示示例中,投影平面706、708、710包括对象特定的投影层对。例如,左侧投影平面706包括示例近投影层712和示例远投影层714,顶部投影平面708包括示例近投影层716和示例远投影层718,并且右侧投影平面710包括示例近投影层720和示例远投影层722。在本文公开的示例中,近投影层712、716、720和远投影层714、718、722的数目与对象的数目相对应。例如,投影平面706、708、710的每一者可包括三个投影层对,其中对象分离器504分别将一个投影层对指派给背景,将一个投影层对指派给第一人(例如,第一点云702),并且将一个投影层对指派给第二人(例如,第二点云704)。
[0099]
例如,对象分离器504识别背景的对象id,将与所识别的对象id相对应的投影层分离成第一投影层对,并且用背景的对象id来标记第一投影层对。额外地或者替换地,对象分离器504识别第一人(例如,点云702)的对象id,将与所识别的对象id相对应的投影层分离成第二投影层对,并且用第一人的对象id来标记第二投影层对。额外地或者替换地,对象分离器504识别第二人(例如,点云704)的对象id,将与所识别的对象id相对应的投影层分离成第三投影层对,并且用第二人的对象id来标记第三投影层对。
[0100]
图8图示了与点云相关联的示例近投影层和远投影层的示例斑块堆叠。图8的图示示例包括分别代表第一人和第二人的第一示例点云802和第二示例点云804。图8的图示示例包括示例左侧投影平面806、示例顶部投影平面808、以及示例右侧投影平面810。示例投影平面806、808、810是投影立方体(未图示)的一部分。也就是说,投影立方体的底部投影平面、背面投影平面和正面投影平面没有被图示。
[0101]
在图8的图示示例中,投影平面806、808、810包括投影层。例如,左侧投影平面806包括示例近投影层812和示例远投影层814,顶部投影平面808包括示例近投影层816和示例
远投影层818,并且右侧投影平面810包括示例近投影层820和示例远投影层822。示例斑块堆叠器514在左侧投影平面806的近投影层812中生成示例左侧斑块堆叠824。例如,左侧斑块堆叠824中的示例第一斑块826可对应于点云802.从而,示例斑块id指派器516向第一斑块826指派以第一人(例如,点云802)的对象id。额外地或者替换地,示例斑块堆叠器514在右侧投影平面810的近投影层820中生成示例右侧斑块堆叠828。例如,右侧斑块堆叠828中的示例第一斑块830可对应于点云804.从而,示例斑块id指派器516向第一斑块830指派以第二人(例如,点云804)的对象id。
[0102]
图9图示了与第一对象的点云相关联的示例投影平面。图9的图示示例包括代表第一人和第二人的第一示例点云902和第二示例点云904。图9的图示示例包括示例左侧投影平面906、示例顶部投影平面908、以及示例右侧投影平面910。示例投影平面906、908、910是投影立方体(未图示)的一部分。也就是说,投影立方体的底部投影平面、背面投影平面和正面投影平面没有被图示。
[0103]
在图9的图示示例中,投影平面906、908、910包括投影层。例如,左侧投影平面906包括示例近投影层912和示例远投影层914,顶部投影平面908包括示例近投影层916和示例远投影层918,并且右侧投影平面910包括示例近投影层920和示例远投影层922。
[0104]
在图9的图示示例中,投影平面906、908、910是与第一点云902相关联的投影立方体的一部分。也就是说,示例投影生成器512(图5)将第一点云902投影到第一投影立方体(例如,包括投影平面906、908、910)上,并且将第二点云904投影到第二投影立方体(未图示)上。从而,示例投影生成器512不将点云904投影到投影平面906、908、910上。例如,投影生成器512识别第一点云902的对象id(例如,第一人的对象id),并且将与第一人的对象id相关联的点云投影到第一投影立方体上。额外地或者替换地,投影生成器512识别第二点云904的对象id(例如,第二人的对象id),并且将与第二人的对象id相关联的点云投影到第二投影立方体上。
[0105]
图10a图示了示例限界框1000。在本文公开的示例中,限界框1000与点云(未图示)相关联。限界框1000的几何结构是由起始点1002指定的。在图10a的图示示例中,起始点1002对应于坐标(x,y,z)。限界框1000具有示例宽度(w)1004、示例高度(h)1006、以及示例深度(d)1008。也就是说,宽度1004、高度1006和深度1008是相对于起始点1002来测量的。在一些示例中,宽度1004、高度1006和深度1008是以浮点值表示的。
[0106]
图10b图示了图10a的示例限界框1000和示例全局坐标系1050。在图10b的图示示例中,起始点1002是相对于全局坐标系1050的原点1052来确定的。例如,原点1052是(0,0,0)。从而,限界框1000提供了封闭的点云(未图示)相对于全局坐标系1050的位置。在图10b的图示示例中,限界框1000包括示例对象id 1054。也就是说,限界框1000包括sei信息,其中包括示例对象id 1054。例如,每个限界框可以与一个对象相关联,从而可被标记以对象id。
[0107]
虽然在图5中图示了实现图4的示例服务器侧沉浸式视频编码系统402的示例方式,但图5中图示的元件、过程和/或设备中的一个或多个可被组合、划分、重布置、省略、消除和/或以任何其他方式来实现。另外,(一个或多个)示例视频捕捉器404、示例点云生成器406、示例虚拟相机渲染器407、示例对象和深度信息存储装置408、示例基于对象的v-pcc编码器410、示例视频编码器412、示例流打包器414、示例内容管理系统415、示例内容分发网
络416、示例投影器502、示例对象分离器504、示例基于对象的生成器506、示例元数据生成器508、示例比特流编码器510和/或更概括而言图4的示例服务器侧沉浸式视频编码系统402,可以由硬件、软件、固件和/或硬件、软件和/或固件的任何组合来实现。从而,例如,(一个或多个)示例视频捕捉器404、示例点云生成器406、示例虚拟相机渲染器407、示例对象和深度信息存储装置408、示例基于对象的v-pcc编码器410、示例视频编码器412、示例流打包器414、示例内容管理系统415、示例内容分发网络416、示例投影器502、示例对象分离器504、示例基于对象的生成器506、示例元数据生成器508、示例比特流编码器510和/或更概括而言示例服务器侧沉浸式视频编码系统402中的任何一者,可由一个或多个模拟或数字电路、逻辑电路、(一个或多个)可编程处理器、(一个或多个)可编程控制器、(一个或多个)图形处理单元(graphics processing unit,gpu)、(一个或多个)数字信号处理器(digital signal processor,dsp)、(一个或多个)专用集成电路(application specific integrated circuit,asic)、(一个或多个)可编程逻辑器件(programmable logic device,pld)和/或(一个或多个)现场可编程逻辑器件(field programmable logic device,fpld)来实现。当读到本专利的任何装置或系统权利要求覆盖纯软件和/或纯固件实现方式时,(一个或多个)示例视频捕捉器404、示例点云生成器406、示例虚拟相机渲染器407、示例对象和深度信息存储装置408、示例基于对象的v-pcc编码器410、示例视频编码器412、示例流打包器414、示例内容管理系统415、示例内容分发网络416、示例投影器502、示例对象分离器504、示例基于对象的生成器506、示例元数据生成器508、示例比特流编码器510和/或示例服务器侧沉浸式视频编码系统402中的至少一者,在此被明确定义为包括包含该软件和/或固件的非暂态计算机可读存储设备或存储盘,例如存储器、数字多功能盘(digital versatile disk,dvd)、致密盘(compact disk,cd)、蓝光盘,等等。此外,图4的示例服务器侧沉浸式视频编码系统402可包括除了图5中所示的那些以外或者取代图5中所示的那些的一个或多个元件、过程和/或设备,和/或可包括多于一个图示的元件、过程和设备中的任何一者或所有。就本文使用的而言,短语“与
……
通信”——包括其变体——涵盖了直接通信和/或通过一个或多个中间组件进行的间接通信,而不要求直接物理(例如,有线)通信和/或不断的通信,而是还包括按周期性间隔、排定的间隔、非周期性间隔和/或一次性事件的选择性通信。
[0108]
虽然在图6中图示了实现图4的客户端侧沉浸式视频解码系统450的示例方式,但图6中图示的元件、过程和/或设备中的一个或多个可被组合、划分、重布置、省略、消除和/或以任何其他方式来实现。另外,示例解包器454、示例v-pcc解码器456、示例呈现引擎458、示例视频解码器460、示例视频渲染器462、示例比特流解码器604、示例对象过滤器605、示例重建器607、示例几何重建器606、示例平滑器608、示例纹理重建器610和/或更概括而言图4的示例客户端侧沉浸式视频解码系统450,可由硬件、软件、固件和/或硬件、软件和/或固件的任何组合来实现。从而,例如,示例解包器454、示例v-pcc解码器456、示例呈现引擎458、示例视频解码器460、示例视频渲染器462、示例比特流解码器604、示例对象过滤器605、示例重建器607、示例几何重建器606、示例平滑器608、示例纹理重建器610和/或更概括而言示例客户端侧沉浸式视频解码系统450中的任何一者,可由一个或多个模拟或数字电路、逻辑电路、(一个或多个)可编程处理器、(一个或多个)可编程控制器、(一个或多个)图形处理单元(gpu)、(一个或多个)数字信号处理器(dsp)、(一个或多个)专用集成电路
(asic)、(一个或多个)可编程逻辑器件(pld)和/或(一个或多个)现场可编程逻辑器件(fpld)来实现。当读到本专利的任何装置或系统权利要求覆盖纯软件和/或纯固件实现方式时,示例解包器454、示例v-pcc解码器456、示例呈现引擎458、示例视频解码器460、示例视频渲染器462、示例比特流解码器604、示例对象过滤器605、示例重建器607、示例几何重建器606、示例平滑器608、示例纹理重建器610和/或示例客户端侧沉浸式视频解码系统450中的至少一者,在此被明确定义为包括包含该软件和/或固件的非暂态计算机可读存储设备或存储盘,例如存储器、数字多功能盘(dvd)、致密盘(cd)、蓝光盘,等等。此外,图4的示例客户端侧沉浸式视频解码系统450可包括除了图6中所示的那些以外或者取代图5中所示的那些的一个或多个元件、过程和/或设备,和/或可包括多于一个图示的元件、过程和设备中的任何一者或所有。就本文使用的而言,短语“与
……
通信”(包括其变体)涵盖了直接通信和/或通过一个或多个中间组件进行的间接通信,而不要求直接物理(例如,有线)通信和/或不断的通信,而是还包括按周期性间隔、排定的间隔、非周期性间隔和/或一次性事件的选择性通信。
[0109]
在图11中示出了代表用于实现图4的服务器侧沉浸式视频编码系统402的示例硬件逻辑、机器可读指令、硬件实现状态机和/或其任何组合的流程图。机器可读指令可以是供计算机处理器和/或处理器电路执行的一个或多个可执行程序或者可执行程序的(一个或多个)部分,所述计算机处理器和/或处理器电路例如是下文联系图13论述的示例处理器平台1300中所示出的处理器1312。该程序可体现在存储于诸如cd-rom、软盘、硬盘驱动器、dvd、蓝光盘或者与处理器1312相关联的存储器之类的非暂态计算机可读存储介质上的软件中,但整个程序和/或其一些部分可替换为由除了处理器1312以外的设备执行和/或体现在固件或专用硬件中。另外,虽然是参考图11中图示的流程图来描述示例程序的,但可替换使用实现示例服务器侧沉浸式视频编码系统402的许多其他方法。例如,块的执行顺序可被改变,和/或描述的块中的一些可被改变、消除或者组合。额外地或者替换地,任何或所有块可由被构造为执行相应的操作而不执行软件或固件的一个或多个硬件电路(例如,分立和/或集成的模拟和/或数字电路、fpga、asic、比较器、运算放大器(op-amp)、逻辑电路,等等)来实现。处理器电路可分布在不同的网络位置中和/或在一个或多个设备的本地(例如,单个机器中的多核处理器,分布在服务器机架上的多个处理器,等等)。
[0110]
在图12中示出了代表用于实现图4的客户端侧沉浸式视频解码系统450的示例硬件逻辑、机器可读指令、硬件实现状态机和/或其任何组合的流程图。机器可读指令可以是供计算机处理器和/或处理器电路执行的一个或多个可执行程序或者可执行程序的(一个或多个)部分,所述计算机处理器和/或处理器电路例如是下文联系图14论述的示例处理器平台1400中所示出的处理器1412。该程序可体现在存储于诸如cd-rom、软盘、硬盘驱动器、dvd、蓝光盘或者与处理器1412相关联的存储器之类的非暂态计算机可读存储介质上的软件中,但整个程序和/或其一些部分可替换为由除了处理器1412以外的设备执行和/或体现在固件或专用硬件中。另外,虽然是参考图12中图示的流程图来描述示例程序的,但可替换使用实现示例客户端侧沉浸式视频解码系统450的许多其他方法。例如,块的执行顺序可被改变,和/或描述的块中的一些可被改变、消除或者组合。额外地或者替换地,任何或所有块可由被构造为执行相应的操作而不执行软件或固件的一个或多个硬件电路(例如,分立和/或集成的模拟和/或数字电路、fpga、asic、比较器、运算放大器(op-amp)、逻辑电路,等等)
来实现。处理器电路可分布在不同的网络位置中和/或在一个或多个设备的本地(例如,单个机器中的多核处理器,分布在服务器机架上的多个处理器,等等)。
[0111]
可以以压缩格式、加密格式、分段格式、编译格式、可执行格式、打包格式等等中的一种或多种格式来存储本文描述的机器可读指令。本文描述的机器可读指令可被存储为可被利用来创建、制造和/或生产机器可执行指令的数据或数据结构(例如,指令的部分、代码、代码的表示,等等)。例如,机器可读指令可被分段并存储在位于网络或者网络集合的相同或不同位置的一个或多个存储设备和/或计算设备(例如,服务器)上(例如,在云中,在边缘设备中,等等)。机器可读指令可要求安装、修改、调适、更新、组合、补充、配置、解密、解压缩、解包、分发、重指派、编译等等中的一个或多个,以便使得它们可被计算设备和/或其他机器直接可读、可解释和/或可执行。例如,机器可读指令可被存储为多个部分,这些部分被单独压缩、加密并且存储在分开的计算设备上,其中这些部分当被解密、解压缩和组合时,形成实现可一起形成例如本文所述那种的程序的一个或多个功能的一组可执行指令。
[0112]
在另一示例中,机器可读指令可被存储在如下状态中:在该状态中,它们可被处理器电路读取,但要求添加库(例如,动态链接库(dynamic link library,dll))、软件开发套件(software development kit,sdk)、应用编程接口(application programming interface,api)等等以便在特定的计算设备或其他设备上执行这些指令。在另一示例中,在机器可读指令和/或相应的(一个或多个)程序可被全部或部分执行之前,机器可读指令可能需要被配置(例如,存储设置、输入数据、记录网络地址,等等)。从而,在本文中使用的机器可读介质可包括机器可读指令和/或(一个或多个)程序,无论这些机器可读指令和/或(一个或多个)程序在被存储时或以其他方式在休息或在途时的特定格式或状态如何。
[0113]
本文描述的机器可读指令可以由任何过去、当前或者未来的指令语言、脚本语言、编程语言等等来表示。例如,可以利用以下语言中的任何一种来表示机器可读指令:c、c 、java、c#、perl、python、javascript、超本文标记语言(hypertext markup language,html)、结构化查询语言(structured query language,sql)、swift,等等。
[0114]
如上所述,可利用存储在非暂态计算机和/或机器可读介质上的可执行指令(例如,计算机和/或机器可读指令)来实现图11-图12的示例过程,所述介质例如是硬盘驱动器、闪存、只读存储器、致密盘、数字多功能盘、缓存、随机访问存储器、和/或其中信息可被存储任何持续时间(例如,存储较长时间段、永久存储、短暂存储、用于临时缓冲、和/或用于信息的缓存)的任何其他存储设备或存储盘。就本文使用的而言,术语非暂态计算机可读介质被明确定义为包括任何类型的计算机可读存储设备和/或存储盘,并且排除传播信号和排除传输介质。
[0115]“包括”和“包含”(以及其所有形式和时态)在本文中被用作开端式术语。从而,每当权利要求采用任何形式的“包括”或“包含”(例如,包括、包含、具有,等等)作为序言或者在任何种类的权利要求记载中使用时,要理解,额外的元素、术语等等可存在,而不落在相应权利要求或记载的范围之外。就本文使用的而言,当短语“至少”在例如权利要求的前序部分中被用作过渡术语时,它是开端的,与术语“包括”和“包含”是开端的方式一样。术语“和/或”当例如被以比如a、b和/或c这样的形式使用时,指的是a、b、c的任何组合或子集,例如(1)a单独,(2)b单独,(3)c单独,(4)a与b,(5)a与c,(6)b与c,以及(7)a与b以及与c。就本文在描述结构、组件、项目、对象和/或事物的上下文中使用的而言,短语“a和b中的至少一
者”打算指包括以下各项中的任何一者的实现方式:(1)至少一个a,(2)至少一个b,以及(3)至少一个a和至少一个b。类似地,就本文在描述结构、组件、项目、对象和/或事物的上下文中使用的而言,短语“a或b中的至少一者”打算指包括以下各项中的任何一者的实现方式:(1)至少一个a,(2)至少一个b,以及(3)至少一个a和至少一个b。就本文在描述过程、指令、动作、活动和/或步骤的执行或运行的上下文中使用的而言,短语“a和b中的至少一者”打算指包括以下各项中的任何一者的实现方式:(1)至少一个a,(2)至少一个b,以及(3)至少一个a和至少一个b。类似地,就本文在描述过程、指令、动作、活动和/或步骤的执行或运行的上下文中使用的而言,短语“a或b中的至少一者”打算指包括以下各项中的任何一者的实现方式:(1)至少一个a,(2)至少一个b,以及(3)至少一个a和至少一个b。
[0116]
就本文使用的而言,单数指代(例如,“一”、“第一”、“第二”,等等)并不排除多数。就本文使用的而言,术语“一”实体指的是一个或多个该实体。术语“一”、“一个或多个”和“至少一个”在本文中可以被可互换地使用。此外,虽然是单独列出的,但多个手段、元素或方法动作可由例如单个单元或处理器来实现。此外,虽然个体特征可被包括在不同的示例或权利要求中,但它们可能可被组合,并且包括在不同的示例或权利要求中并不暗示着特征的组合是不可行的和/或不是有利的。
[0117]
图11的程序1100开始于块1102。在块1102,示例投影器502(图5)接收对象的点云表示。例如,投影器502接收对象的点云数据500(图5)。在块1104,示例点注释器501用对象id来注释每个输入点。例如,点注释器501确定点云的输入点是否包括对象标识符。如果点注释器501确定输入点不包括对象标识符,则点注释器501使用机器学习分类器、传统分类器和/或分割算法来生成并且为点云的每个输入指派对象标识符。也就是说,点注释器501为点云中的每个对象指派不同的对象id。
[0118]
在块1106,示例投影器502执行基于对象的投影。在一些示例中,投影器502迭代经过对象id,以便一次一个对象地将每个对象的点云投影到投影平面上。额外地或者替换地,投影器502将每个对象的点云投影到与对应于该单个对象的投影立方体相关联的单独投影平面上。在一些示例中,示例对象分离器504(图5)将每个投影的对象分离到投影平面的各自投影层中。也就是说,对象分离器504为每个对象生成投影立方体的投影层对。
[0119]
在块1108,示例基于对象的生成器506(图5)提取斑块,其中每个斑块具有属于一个对象的像素。例如,基于对象的生成器506在投影平面的投影层中生成斑块的堆叠。也就是说,基于对象的生成器506生成斑块,以使得每个斑块对应于一个对象。在块1110,示例基于对象的生成器506向每个斑块指派关联的对象id。例如,基于对象的生成器506用相应的对象id来标记每个斑块。
[0120]
在块1112,示例基于对象的生成器506将斑块打包成图集并且生成斑块信息。例如,基于对象的生成器506将一个或多个对象的斑块打包到图集中。在一些示例中,基于对象的生成器506生成相应的斑块元数据以将每个斑块映射到其在图集中的位置。
[0121]
在块1114,示例元数据生成器508(图5)生成属性和几何图集。例如,元数据生成器508生成编码的几何数据。在块1116,示例比特流编码器510(图5)将视频数据和元数据编码并且复用到单个比特流中。例如,比特流编码器510从示例元数据生成器508接收属性和几何图集,并且从示例基于对象的生成器506接收图集。示例比特流编码器510对接收到的数据进行复用并且输出单个比特流。
[0122]
图12是代表可被执行来实现图4的客户端播放器452的机器可读指令的流程图。在块1202,示例解包器454(图4)接收v-pcc编码的比特流。例如,解包器454经由内容分发网络416(图4)接收由示例基于对象的v-pcc编码器410(图4)生成的v-pcc编码的比特流。
[0123]
在块1204,示例解包器454对v-pcc编码的比特流进行解复用。例如,解包器454从v-pcc编码的比特流生成子流(例如,视频子流、斑块子流、占用图谱子流,等等)。在块1206,示例对象过滤器605(图6)确定是否要执行对象过滤。例如,对象过滤器605确定是否要去除具有与不感兴趣的对象相对应的对象id的斑块。如果在块1206,示例对象过滤器605确定要执行对象过滤,则在块1208,对象过滤器605过滤对象。例如,对象过滤器605识别与要被去除的对象的对象id相对应的斑块,并且从图集中去除相应的斑块。如果在块1206,示例对象过滤器605确定不执行对象过滤,则控制继续进行到块1210。
[0124]
在块1210,示例v-pcc解码器456(图4)重建几何数据并且执行平滑。例如,几何重建器606(图6)基于斑块信息和/或占用图谱来重建几何数据。在一些示例中,v-pcc解码器456重建与感兴趣的对象相对应的几何数据(例如,与感兴趣的对象相对应的斑块)。示例平滑器608(图6)基于重建的几何数据来执行平滑。示例纹理重建器610(图6)基于重建的几何数据和斑块信息来重建纹理数据。在块1212,示例视频渲染器462(图4)生成解码的动态点云。
[0125]
图13是被构造来执行图11的指令以实现图4和/或图5的服务器侧沉浸式视频编码系统402的示例处理器平台1300的框图。处理器平台1300可例如是服务器、个人计算机、工作站、自学习机器(例如,神经网络)、移动设备(例如,蜂窝电话、智能电话、诸如ipad
tm
之类的平板设备)、个人数字助理(personal digital assistant,pda)、互联网家电、dvd播放器、cd播放器、数字视频记录器、蓝光播放器、游戏机、个人视频记录器、机顶盒、耳机或其他可穿戴设备、或者任何其他类型的计算设备。
[0126]
图示示例的处理器平台1300包括处理器1312。图示示例的处理器1312是硬件。例如,处理器1312可由来自任何期望的家族或制造商的一个或多个集成电路、逻辑电路、微处理器、gpu、dsp或者控制器来实现。硬件处理器可以是基于半导体(例如,基于硅)的设备。在这个示例中,该处理器实现了(一个或多个)示例视频捕捉器404、示例点云生成器406、示例虚拟相机渲染器407、示例基于对象的v-pcc编码器410、示例视频编码器412、示例流打包器414、以及示例内容管理系统415。
[0127]
图示示例的处理器1312包括本地存储器1313(例如,缓存)。图示示例的处理器1312经由总线1318与包括易失性存储器1314和非易失性存储器1316的主存储器进行通信。易失性存储器1314可由同步动态随机访问存储器(synchronous dynamic random access memory,sdram)、动态随机访问存储器(dynamic random access memory,dram)、动态随机访问存储器(dynamic random access memory,)和/或任何其他类型的随机访问存储器设备来实现。非易失性存储器1316可由闪存和/或任何其他期望类型的存储器设备来实现。对主存储器1314、1316的访问受存储器控制器的控制。
[0128]
图示示例的处理器平台1300还包括接口电路1320。接口电路1320可由任何类型的接口标准来实现,例如以太网接口、通用串行总线(universal serial bus,usb)、接口、近场通信(near field communication,nfc)接口、和/或pci快速接口。
[0129]
在图示示例中,一个或多个输入设备1322连接到接口电路1320。(一个或多个)输入设备1322允许用户向处理器1012中输入数据和/或命令。(一个或多个)输入设备可由例如音频传感器、麦克风、相机(静态或视频)、键盘、按钮、鼠标、触摸屏、触控板、轨迹球、isopoint和/或语音识别系统来实现。
[0130]
一个或多个输出设备1324也连接到图示示例的接口电路1320。输出设备1324可例如由显示设备(例如,发光二极管(light emitting diode,led)、有机发光二极管(organic light emitting diode,oled)、液晶显示器(liquid crystal display,lcd)、阴极射线管显示器(cathode ray tube,crt)、就地切换(in-place switching,ips)显示器、触摸屏,等等)、触觉输出设备、打印机和/或扬声器来实现。图示示例的接口电路1320从而通常包括图形驱动器卡、图形驱动器芯片、和/或图形驱动器处理器。
[0131]
图示示例的接口电路1320还包括通信设备,例如发送器、接收器、收发器、调制解调器、住宅网关、无线接入点、和/或网络接口,来促进经由网络1326与外部机器(例如,任何种类的计算设备)的数据交换。通信可经由例如以太网连接、数字订户线(digital subscriber line,dsl)连接、电话线连接、同轴线缆系统、卫星系统、直线对传式无线系统、蜂窝电话系统等等。
[0132]
图示示例的处理器平台1300还包括用于存储软件和/或数据的一个或多个大容量存储设备1328。这种大容量存储设备1328的示例包括软盘驱动器、硬盘驱动器、致密盘驱动器、蓝光盘驱动器、独立盘冗余阵列(redundant array of independent disks,raid)系统、以及数字多功能盘(digital versatile disk,dvd)驱动器。
[0133]
图11的机器可执行指令1332可被存储在大容量存储设备1328中、易失性存储器1314中、非易失性存储器1316中、和/或诸如cd或dvd之类的可移除非暂态计算机可读存储介质上。
[0134]
图14是被构造来执行图12的指令以实现图4和/或图6的客户端侧沉浸式视频解码系统450的示例处理器平台1400的框图。处理器平台1400可例如是服务器、个人计算机、工作站、自学习机器(例如,神经网络)、移动设备(例如,蜂窝电话、智能电话、诸如ipad
tm
之类的平板设备)、个人数字助理(personal digital assistant,pda)、互联网家电、dvd播放器、cd播放器、数字视频记录器、蓝光播放器、游戏机、个人视频记录器、机顶盒、耳机或其他可穿戴设备、或者任何其他类型的计算设备。
[0135]
图示示例的处理器平台1400包括处理器1412。图示示例的处理器1412是硬件。例如,处理器1412可由来自任何期望的家族或制造商的一个或多个集成电路、逻辑电路、微处理器、gpu、dsp或者控制器来实现。硬件处理器可以是基于半导体(例如,基于硅)的设备。在这个示例中,该处理器实现了示例解包器454、示例v-pcc解码器456、示例呈现引擎458、示例视频解码器460、以及示例视频渲染器462。
[0136]
图示示例的处理器1412包括本地存储器1413(例如,缓存)。图示示例的处理器1412经由总线1418与包括易失性存储器1414和非易失性存储器1416的主存储器进行通信。易失性存储器1414可由同步动态随机访问存储器(sdram)、动态随机访问存储器(dram)、动态随机访问存储器和/或任何其他类型的随机访问存储器设备来实现。非易失性存储器1416可由闪存和/或任何其他期望类型的存储器设备来实现。对主存储器1414、1416的访问受存储器控制器的控制。
[0137]
图示示例的处理器平台1400还包括接口电路1420。接口电路1420可由任何类型的接口标准来实现,例如以太网接口、通用串行总线(universal serial bus,usb)、接口、近场通信(near field communication,nfc)接口、和/或pci快速接口。
[0138]
在图示示例中,一个或多个输入设备1422连接到接口电路1420。(一个或多个)输入设备1422允许用户向处理器1012中输入数据和/或命令。(一个或多个)输入设备可由例如音频传感器、麦克风、相机(静态或视频)、键盘、按钮、鼠标、触摸屏、触控板、轨迹球、isopoint和/或语音识别系统来实现。
[0139]
一个或多个输出设备1424也连接到图示示例的接口电路1420。输出设备1324可例如由显示设备(例如,发光二极管(light emitting diode,led)、有机发光二极管(organic light emitting diode,oled)、液晶显示器(liquid crystal display,lcd)、阴极射线管显示器(cathode ray tube,crt)、就地切换(in-place switching,ips)显示器、触摸屏,等等)、触觉输出设备、打印机和/或扬声器来实现。图示示例的接口电路1420从而通常包括图形驱动器卡、图形驱动器芯片、和/或图形驱动器处理器。
[0140]
图示示例的接口电路1420还包括通信设备,例如发送器、接收器、收发器、调制解调器、住宅网关、无线接入点、和/或网络接口,来促进经由网络1426与外部机器(例如,任何种类的计算设备)的数据交换。通信可经由例如以太网连接、数字订户线(digital subscriber line,dsl)连接、电话线连接、同轴线缆系统、卫星系统、直线对传式无线系统、蜂窝电话系统等等。
[0141]
图示示例的处理器平台1400还包括用于存储软件和/或数据的一个或多个大容量存储设备1428。这种大容量存储设备1428的示例包括软盘驱动器、硬盘驱动器、致密盘驱动器、蓝光盘驱动器、独立盘冗余阵列(redundant array of independent disks,raid)系统、以及数字多功能盘(digital versatile disk,dvd)驱动器。
[0142]
图12的机器可执行指令1432可被存储在大容量存储设备1428中、易失性存储器1414中、非易失性存储器1416中、和/或诸如cd或dvd之类的可移除非暂态计算机可读存储介质上。
[0143]
在图15中图示了图示出用于向第三方分发诸如图13的示例计算机可读指令1332和/或图14的示例计算机可读指令1432之类的软件的示例软件分发平台1505的框图。示例软件分发平台1505可由能够存储软件并且将其传输到其他计算设备的任何计算机服务器、数据设施、云服务等等实现。第三方可以是拥有和/或操作该软件分发平台的实体的客户。例如,拥有和/或操作软件分发平台的实体可以是软件(例如图13的示例计算机可读指令1332和/或图14的示例计算机可读指令1432)的开发者、销售者和/或许可人。第三方可以是购买和/或许可该软件以供使用和/或再销售和/或分许可的消费者、用户、零售商、oem,等等。在图示示例中,软件分发平台1505包括一个或多个服务器和一个或多个存储设备。存储设备存储计算机可读指令1332和/或1432,这些指令可对应于如上所述的图13的示例计算机可读指令1332和/或图14的示例计算机可读指令1432。示例软件分发平台1505的一个或多个服务器与网络1510通信,该网络可对应于互联网和/或上述的示例网络1326、1426的任何一者中的任何一个或多个。在一些示例中,作为商业交易的一部分,一个或多个服务器响应将软件传输给请求方的请求。对软件的交付、销售和/或许可的支付可由软件分发平台的一个或多个服务器处理和/或经由第三方支付实体来处理。这些服务器使得购买者和/或许
可人能够从软件分发平台1505下载计算机可读指令1332和/或1432。例如,可与图13的示例计算机可读指令1332相对应的软件可被下载到示例处理器平台1300,该平台要执行计算机可读指令1432以实现服务器侧沉浸式视频编码系统402。例如,可与图14的示例计算机可读指令1432相对应的软件可被下载到示例处理器平台1400,该平台要执行计算机可读指令1432以实现客户端侧沉浸式视频解码系统450。在一些示例中,软件分发平台1505的一个或多个服务器定期提供、传输和/或强制更新软件(例如,图13的示例计算机可读指令1332和/或图14的示例计算机可读指令1432),以确保改进、补丁、更新等等被分发并且在终端用户设备处被应用于软件。
[0144]
从上述内容将会明白,已公开了使得能够实现基于对象的体积视频编码的示例方法、装置和制品。所公开的方法、装置和制品通过向视频场景中表示的对象指派对象id来改善了使用计算设备的效率。在一些示例中,基于对象的编码器基于场景中的对象的总数来改变用于存储对象id的比特的数目。在一些示例中,基于对象的编码器识别感兴趣的对象并且分配相对更多的带宽来编码感兴趣的对象并且配置相对更少的带宽给背景对象、静态对象,等等。所公开的方法、装置和制品因此针对的是计算机的功能的一项或多项改进。
[0145]
本文公开了用于基于对象的体积视频编码的示例方法、装置、系统和制品。进一步示例及其组合包括以下的:
[0146]
示例1包括一种视频编码器,包括:投影器,用于将点云数据投影到投影平面上以产生与对象相关联的纹理图像和几何图像;斑块生成器,用于基于所述对象的对象标识符来生成斑块,所述斑块包括与所述对象相关联的纹理图像或几何图像中的至少一者,所述斑块与所述对象的对象标识符相关联;图集生成器,用于生成图集以包括在经编码的视频数据中,所述图集包括所述斑块。
[0147]
示例2包括如示例1所述的编码器,其中,所述投影平面包括投影层对。
[0148]
示例3包括如示例2所述的编码器,其中,所述对象是第一对象,并且所述编码器还包括对象分离器,用于生成与所述第一对象相对应的第一投影层对和与第二对象相对应的第二投影层对。
[0149]
示例4包括如示例3所述的编码器,其中,所述对象分离器用于在所述第一对象比所述第二对象更接近所述投影平面中的第一投影平面时,将所述第一投影层对排序在所述第二投影层对之前。
[0150]
示例5包括如示例1所述的编码器,其中,所述对象是与第一对象标识符相关联的第一对象,所述斑块是与所述第一对象标识符相关联的第一斑块,并且所述斑块生成器用于基于第二对象标识符来生成第二斑块,所述第二斑块包括第二对象的第二纹理图像和第二几何图像,所述第二斑块与用于标识所述第二对象的所述第二对象标识符相关联。
[0151]
示例6包括如示例5所述的编码器,其中,所述斑块生成器用于将所述第一斑块和所述第二斑块堆叠在所述投影平面中的第一投影平面的投影层中,当所述第一对象比所述第二对象更接近所述投影平面中的第一投影平面时,所述第一斑块被堆叠在所述第二斑块之前。
[0152]
示例7包括如示例1所述的编码器,其中,所述对象是与第一对象标识符相关联的第一对象,并且所述投影器用于:将与所述第一对象标识符相关联的点云数据投影到第一立方体的投影平面上,并且将与第二对象标识符相关联的点云数据投影到第二立方体的投
影平面上,所述第二对象标识符与所述点云数据中的第二对象相关联。
[0153]
示例8包括如示例7所述的编码器,其中,所述第一立方体具有比所述第二立方体更高的分辨率,所述第二立方体具有比所述第一立方体更高的分辨率,或者所述第一立方体具有与所述第二立方体相同的分辨率。
[0154]
示例9包括如示例1所述的编码器,还包括点注释器,用于接收与对象相关联的点云数据并且用所述对象的对象标识符来注释所述点云数据的点。
[0155]
示例10包括如示例1所述的编码器,其中,所述对象标识符是第一对象标识符,所述斑块是第一斑块,并且所述斑块生成器用于以比所述第一斑块更低的分辨率来生成与第二对象标识符相关联的第二斑块,所述点云数据包括与所述第二对象标识符相关联的第二对象。
[0156]
示例11包括一种非暂态计算机可读介质,包括指令,所述指令当被执行时,使得机器至少用于:将点云数据投影到投影平面上以产生与对象相关联的纹理图像和几何图像;基于所述对象的对象标识符来生成斑块,所述斑块包括与所述对象相关联的纹理图像或几何图像中的至少一者,所述斑块与所述对象的对象标识符相关联;生成图集来包括在经编码的视频数据中,所述图集包括所述斑块。
[0157]
示例12包括如示例11所述的非暂态计算机可读介质,其中,所述投影平面包括投影层对。
[0158]
示例13包括如示例12所述的非暂态计算机可读介质,其中,所述对象是第一对象,并且所述指令使得所述机器生成与所述第一对象相对应的第一投影层对和与第二对象相对应的第二投影层对。
[0159]
示例14包括如示例13所述的非暂态计算机可读介质,其中,所述指令使得所述机器用于在所述第一对象比所述第二对象更接近所述投影平面中的第一投影平面时,将所述第一投影层对排序在所述第二投影层对之前。
[0160]
示例15包括如示例11所述的非暂态计算机可读介质,其中,所述对象是与第一对象标识符相关联的第一对象,所述斑块是与所述第一对象标识符相关联的第一斑块,并且所述指令使得所述机器用于基于第二对象标识符来生成第二斑块,所述第二斑块包括第二对象的第二纹理图像和第二几何图像,所述第二斑块与用于标识所述第二对象的所述第二对象标识符相关联。
[0161]
示例16包括如示例15所述的非暂态计算机可读介质,其中,所述指令使得所述机器用于将所述第一斑块和所述第二斑块堆叠在所述投影平面中的第一投影平面的投影层中,当所述第一对象比所述第二对象更接近所述投影平面中的第一投影平面时,所述第一斑块被堆叠在所述第二斑块之前。
[0162]
示例17包括如示例11所述的非暂态计算机可读介质,其中,所述对象是与第一对象标识符相关联的第一对象,并且所述指令使得所述机器用于:将与所述第一对象标识符相关联的点云数据投影到第一立方体的投影平面上,并且将与第二对象标识符相关联的点云数据投影到第二立方体的投影平面上,所述第二对象标识符与所述点云数据中的第二对象相关联。
[0163]
示例18包括如示例17所述的非暂态计算机可读介质,其中,所述第一立方体具有比所述第二立方体更高的分辨率,所述第二立方体具有比所述第一立方体更高的分辨率,
或者所述第一立方体具有与所述第二立方体相同的分辨率。
[0164]
示例19包括如示例11所述的非暂态计算机可读介质,其中,所述指令使得所述机器用于接收与对象相关联的点云数据并且用所述对象的对象标识符来注释所述点云数据的点。
[0165]
示例20包括如示例11所述的非暂态计算机可读介质,其中,所述对象标识符是第一对象标识符,所述斑块是第一斑块,并且所述指令使得所述机器用于以比所述第一斑块更低的分辨率来生成与第二对象标识符相关联的第二斑块,所述点云数据包括与所述第二对象标识符相关联的第二对象。
[0166]
示例21包括一种方法,包括:将点云数据投影到投影平面上以产生与对象相关联的纹理图像和几何图像;基于所述对象的对象标识符来生成斑块,所述斑块包括与所述对象相关联的纹理图像或几何图像中的至少一者,所述斑块与所述对象的对象标识符相关联;生成图集以包括在经编码的视频数据中,所述图集包括所述斑块。
[0167]
示例22包括如示例21所述的方法,其中,所述投影平面包括投影层对。
[0168]
示例23包括如示例22所述的方法,其中,所述对象是第一对象,并且所述方法还包括生成与所述第一对象相对应的第一投影层对和与第二对象相对应的第二投影层对。
[0169]
示例24包括如示例23所述的方法,还包括:在所述第一对象比所述第二对象更接近所述投影平面中的第一投影平面时,将所述第一投影层对排序在所述第二投影层对之前。
[0170]
示例25包括如示例21所述的方法,其中,所述对象是与第一对象标识符相关联的第一对象,所述斑块是与所述第一对象标识符相关联的第一斑块,并且所述方法还包括基于第二对象标识符来生成第二斑块,所述第二斑块包括第二对象的第二纹理图像和第二几何图像,所述第二斑块与用于标识所述第二对象的所述第二对象标识符相关联。
[0171]
示例26包括如示例25所述的方法,还包括将所述第一斑块和所述第二斑块堆叠在所述投影平面中的第一投影平面的投影层中,当所述第一对象比所述第二对象更接近所述投影平面中的第一投影平面时,所述第一斑块被堆叠在所述第二斑块之前。
[0172]
示例27包括如示例21所述的方法,其中,所述对象是与第一对象标识符相关联的第一对象,并且所述方法还包括将与所述第一对象标识符相关联的点云数据投影到第一立方体的投影平面上,并且将与第二对象标识符相关联的点云数据投影到第二立方体的投影平面上,所述第二对象标识符与所述点云数据中的第二对象相关联。
[0173]
示例28包括如示例27所述的方法,其中,所述第一立方体具有比所述第二立方体更高的分辨率,所述第二立方体具有比所述第一立方体更高的分辨率,或者所述第一立方体具有与所述第二立方体相同的分辨率。
[0174]
示例29包括如示例21所述的方法,还包括:接收与对象相关联的点云数据并且用所述对象的对象标识符来注释所述点云数据的点。
[0175]
示例30包括如示例21所述的方法,其中,所述对象标识符是第一对象标识符,所述斑块是第一斑块,并且所述方法还包括以比所述第一斑块更低的分辨率来生成与第二对象标识符相关联的第二斑块,所述点云数据包括与所述第二对象标识符相关联的第二对象。
[0176]
示例31包括一种解码器,包括:比特流解码器,用于接收编码比特流,并且生成包括纹理数据、几何数据、占用图谱数据、图集和参数元数据、以及斑块数据的解码比特流;对
象过滤器,用于从所述斑块数据中选择与对象标识符相关联的斑块以生成经过滤的斑块数据,所述斑块包括与所述对象相关联的纹理数据和几何数据;以及重建器,用于基于所述经过滤的斑块数据来生成点云。
[0177]
示例32包括如示例31所述的解码器,其中,所述对象标识符是第一对象标识符,所述解码比特流包括与第二对象标识符相关联的限界框,并且所述重建器用于基于包括在所述限界框中的斑块数据来生成所述点云。
[0178]
示例33包括如示例31所述的解码器,其中,所述对象是第一对象,所述对象标识符是第一对象标识符,所述斑块是第一斑块,所述编码比特流包括与第二对象的第二对象标识符相关联的第二斑块,并且所述经过滤的斑块数据包括所述第二斑块。
[0179]
示例34包括如示例33所述的解码器,其中,所述点云是第一点云,并且所述对象过滤器用于利用第二点云或投影中的至少一者来替换与所述第二对象标识符相关联的所述第二斑块。
[0180]
示例35包括如示例34所述的解码器,其中,所述解码比特流包括与第三对象标识符相关联的第三对象,并且所述重建器用于每帧一次地基于与所述第三对象标识符相关联的斑块数据来生成第三点云。
[0181]
示例36包括如示例35所述的解码器,其中,所述重建器用于在所述第二点云之前生成所述第三点云。
[0182]
示例37包括如示例31所述的解码器,其中,所述图集和参数元数据包括与所述斑块相关联的对象标识符。
[0183]
示例38包括如示例31所述的解码器,其中,所述编码比特流包括补充增强信息(sei)消息,所述sei消息包括与所述斑块相关联的对象标识符。
[0184]
示例39包括一种非暂态计算机可读介质,包括指令,所述指令当被执行时,使得机器至少用于:接收编码比特流;生成包括纹理数据、几何数据、占用图谱数据、图集和参数元数据、以及斑块数据的解码比特流;从所述斑块数据中选择与对象标识符相关联的斑块以生成经过滤的斑块数据,所述斑块包括与所述对象相关联的纹理数据和几何数据;以及基于所述经过滤的斑块数据生成点云。
[0185]
示例40包括如示例39所述的非暂态计算机可读介质,其中,所述对象标识符是第一对象标识符,所述解码比特流包括与第二对象标识符相关联的限界框,并且所述指令使得所述机器用于基于包括在所述限界框中的斑块数据来生成所述点云。
[0186]
示例41包括如示例39所述的非暂态计算机可读介质,其中,所述对象是第一对象,所述对象标识符是第一对象标识符,所述斑块是第一斑块,所述编码比特流包括与第二对象的第二对象标识符相关联的第二斑块,并且所述经过滤的斑块数据包括所述第二斑块。
[0187]
示例42包括如示例41所述的非暂态计算机可读介质,其中,所述点云是第一点云,并且所述指令使得所述机器用于利用第二点云或投影中的至少一者来替换与所述第二对象标识符相关联的所述第二斑块。
[0188]
示例43包括如示例42所述的非暂态计算机可读介质,其中,所述解码比特流包括与第三对象标识符相关联的第三对象,并且所述指令使得所述机器用于每帧一次地基于与所述第三对象标识符相关联的斑块数据来生成第三点云。
[0189]
示例44包括如示例43所述的非暂态计算机可读介质,其中,所述指令使得所述机
器用于在所述第二点云之前生成所述第三点云。
[0190]
示例45包括如示例39所述的非暂态计算机可读介质,其中,所述图集和参数元数据包括与所述斑块相关联的对象标识符。
[0191]
示例46包括如示例39所述的非暂态计算机可读介质,其中,所述编码比特流包括补充增强信息(sei)消息,所述sei消息包括与所述斑块相关联的对象标识符。
[0192]
示例47包括一种方法,包括:接收编码比特流;生成包括纹理数据、几何数据、占用图谱数据、图集和参数元数据、以及斑块数据的解码比特流;从所述斑块数据中选择与对象标识符相关联的斑块以生成经过滤的斑块数据,所述斑块包括与所述对象相关联的纹理数据和几何数据;以及基于所述经过滤的斑块数据来生成点云。
[0193]
示例48包括如示例47所述的方法,其中,所述对象标识符是第一对象标识符,所述解码比特流包括与第二对象标识符相关联的限界框,并且所述方法还包括基于包括在所述限界框中的斑块数据来生成所述点云。
[0194]
示例49包括如示例47所述的方法,其中,所述对象是第一对象,所述对象标识符是第一对象标识符,所述斑块是第一斑块,所述编码比特流包括与第二对象的第二对象标识符相关联的第二斑块,并且所述经过滤的斑块数据包括所述第二斑块。
[0195]
示例50包括如示例49所述的方法,其中,所述点云是第一点云,并且所述方法还包括利用第二点云或投影中的至少一者来替换与所述第二对象标识符相关联的所述第二斑块。
[0196]
示例51包括如示例50所述的方法,其中,所述解码比特流包括与第三对象标识符相关联的第三对象,并且所述方法还包括每帧一次地基于与所述第三对象标识符相关联的斑块数据来生成第三点云。
[0197]
示例52包括如示例51所述的方法,还包括在所述第二点云之前生成所述第三点云。
[0198]
示例53包括如示例47所述的方法,其中,所述图集和参数元数据包括与所述斑块相关联的对象标识符。
[0199]
示例54包括如示例47所述的方法,其中,所述编码比特流包括补充增强信息(sei)消息,所述sei消息包括与所述斑块相关联的对象标识符。
[0200]
虽然本文公开了某些示例方法、装置和制品,但本专利的覆盖范围不限于此。相反,本专利覆盖了公平地落在本专利的权利要求的范围内的所有方法、装置和制品。
[0201]
特此通过引用将所附权利要求并入到这个“具体实施方式”部分中,其中每个权利要求独立作为本公开的一个单独实施例。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献