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

处理点云的中间点的制作方法

2021-11-10 04:16:00 来源:中国专利 TAG:


1.本发明的至少一个实施例主要涉及点云的处理。


背景技术:

2.本部分旨在向读者介绍可能与下面描述和/或要求保护的本发明的实施例中的至少一个的各方面相关的技术的各方面。相信该讨论有助于向读者提供背景信息,以便于更好地理解至少一个实施例的各个方面。
3.点云可以用于各种目的,诸如文化遗产/建筑,其中,以3d扫描像雕像或建筑的对象,以便共享该对象的空间配置,而不发送或访问它。而且,这是一种确保在对象可能被破坏(例如,地震引起的寺庙倒塌)的情况下保留该对象的知识的方式。这种点云通常是静态的、彩色的和巨大的。
4.另一使用情况是在地形图和制图中,其中使用3d表示来允许地图不限于平面且可包含起伏。google maps现在是3d地图的良好示例,但是使用网格而不是点云。然而,点云可以是用于3d地图的合适的数据格式,并且这样的点云通常是静态的、彩色的和巨大的。
5.汽车工业和自动驾驶汽车也是其中可以使用点云的领域。自动驾驶汽车应当能够“探测”它们的环境以基于它们的紧邻车辆的现实而做出良好的驾驶决策。像lidar(光检测和测距)的典型传感器产生决策引擎所使用的动态点云。这些点云不旨在被人类查看,并且它们通常是小的,不一定是有色的,并且是动态的,具有高频率捕获。这些点云可以具有其他属性,例如lidar提供的反射率,因为该属性提供关于感测对象的材料的良好信息,并且可以帮助做出决定。
6.虚拟现实和沉浸式世界近来已经成为热点主题,并且被很多人预见为2d平面视频的未来。基本思想是使观看者沉浸在围绕观看者的环境中,这与观看者仅能够观看者前方的虚拟世界的标准tv形成对比。根据观看者在环境中的自由度,在沉浸度中存在若干等级。点云是用于分发虚拟现实(vr)世界的良好格式候选。
7.在许多应用中,重要的是能够通过仅消耗合理量的比特率(或用于存储应用的存储空间)同时维持可接受的(或优选地非常好的)体验质量而将动态点云分发给最终用户(或将它们存储在服务器中)。为了使多沉浸世界的分发链实用化,这些动态点云的高效压缩是关键点。
8.考虑到前述内容,设计了至少一个实施例。


技术实现要素:

9.以下呈现了本发明的实施例中的至少一者的简化概述,以便提供对本发明的一些方面的基本理解。本概述不是对实施例的广泛综述。其不旨在标识实施例的关键或重要元素。以下发明内容仅以简化形式呈现了本发明的实施例中的至少一者的一些方面,作为在本文档中的其它地方提供的更详细描述的序言。
10.根据至少一个实施例的一般方面,提供了一种方法,包括:用信号发送表示至少一
个中间3d样本的纹理值的至少一个纹理补片(patch),该纹理补片是表示沿着投影线正交投影到投影平面上的点云的3d样本的纹理值的一组2d样本,并且所述至少一个中间3d样本是所述点云中具有大于所述点云的较近3d样本且小于所述点云的较远3d样本的深度值的3d样本,所述至少一个中间3d样本和所述较近及较远3d样本沿着相同投影线被投影。
11.根据实施例,用信号发送表示至少一个中间3d样本的纹理值的纹理补片包括:
12.‑
在所述比特流中添加至少一个语法元素,所述至少一个语法元素表示在2d网格中定义的所述纹理补片的2d位置和所述纹理补片的大小;
13.‑
发送所述比特流;以及
14.‑
从所述比特流中取回所述至少一个语法元素,并从所述至少一个取回到的语法元素中提取在2d网格中定义的所述纹理补片的2d位置和所述纹理补片的大小。
15.根据实施例,所述至少一个语法元素还可以用信号发送所述2d网格的补片的2d样本的数量。
16.根据实施例,所述至少一个语法元素还可以用信号发送所述2d网格中的纹理补片的数目和用于确定纹理补片的起始位置的偏移。
17.根据实施例,所述至少一个语法元素还可用信号发送纹理补片的索引。
18.根据实施例,语法元素还可以用信号发送在所述比特流中添加的所述至少一个语法元素在表示所述点云帧的整个语法的不同级别被用信号发送。
19.根据至少一个实施例的另一个一般方面,提供了一种方法,包括:分析点云帧到投影平面上的正交投影以导出至少一个中间3d样本的纹理值;将所述至少一个纹理值映射到至少一个纹理补片;将所述至少一个纹理补片打包成纹理图像;以及根据上述方法在比特流中用信号发送所述至少一个纹理补片。
20.根据至少一个实施例的另一个一般方面,提供了一种方法,包括:从根据上述用信号发送方法在比特流中用信号发送的至少一个语法元素,导出至少一个纹理补片;从所述至少一个纹理补片导出至少一个纹理值;以及将所述至少一个纹理值指派给至少一个中间3d样本。
21.至少一个实施例中的一个或多个还提供了一种设备、计算机程序产品、非瞬态计算机可读介质和信号。
22.根据结合附图进行的以下实例描述,本发明实施例中的至少一者的特定性质以及本发明实施例中的所述至少一者的其它目的、优点、特征和用途将变得显而易见。
附图说明
23.在附图中,示出了若干实施例的示例。附图示出:
24.图1示出了根据至少一个本发明实施例的基于两层的点云编码结构的示例的示意性框图;
25.图2示出了根据至少一个本发明实施例的基于两层的点云解码结构的示例的示意性框图;
26.图3示出了根据至少一个本发明实施例的基于图像的点云编码器的示例的示意性框图;
27.图3a示出了包括2个补片及其2d边界框的画布的示例;
28.图3b示出了位于沿投影线的两个3d样本之间的两个中间3d样本的示例;
29.图4示出了根据至少一个本发明实施例的基于图像的点云解码器的示例的示意性框图;
30.图5示意性地示出了根据至少一个当前实施例的表示基本层bl的比特流的语法的示例;
31.图6示出了其中实现了各个方面和实施例的系统的示例的示意性框图;
32.图7示出了根据本发明的至少一个实施例的用于用信号发送至少一个eom纹理补片的方法的示例;
33.图8a

d示出了根据步骤710的至少一个实施例的语法元素的示例;
34.图9a

c示出了根据步骤710的至少一个实施例的示例画布;
35.图10示出了根据步骤710的实施例的语法元素的示例;
36.图11示出了根据步骤710的所述实施例的所述变型的语法元素的示例;
37.图12示出了根据步骤710的实施例的变型的语法元素的示例;
38.图13示出了根据至少一个当前实施例的定义补片模式的表的示例;
39.图14示出了根据步骤710的实施例的变型的语法元素的示例;
40.图15示出了根据步骤710的实施例的语法元素的示例;
41.图16示出了根据至少一个本实施例的用于对中间3d样本的纹理值进行编码的方法的框图;
42.图17示出了根据至少一个本实施例的用于对中间3d样本的纹理值进行解码的方法的框图;以及
43.图18示出了按照块的光栅扫描顺序的示例。
具体实施方式
44.在下文中参考附图更全面地描述至少一个本发明实施例,其中示出了至少一个本发明实施例的示例。然而,实施例可以以许多替代形式来体现,并且不应被解释为限于本文阐述的示例。因此,应当理解,不旨在将实施例限于所公开的特定形式。相反,本公开旨在覆盖落入本技术的精神和范围内的所有修改、等同物和替代物。
45.当附图被呈现为流程图时,应当理解,它还提供了对应装置的框图。类似地,当附图被呈现为框图时,应当理解,它还提供了对应的方法/过程的流程图。
46.图中相似或相同的元件用相同的参考数字表示。
47.一些图表示了在v

pcc中广泛使用的语法表,用于定义符合v

pcc的比特流的结构。在这些语法表中,术语'

'表示相对于在v

pcc中给出的原始定义的语法的未改变部分,并且在图中被去除以便于阅读。图中的粗体项指示该项的值是通过解析比特流获得的。语法表的右列指示用于编码语法元素的数据的比特数。例如,u(4)表示4比特用于编码数据,u(8)表示8比特,ae(v)表示使用例如cabac(contex

adaptive

binary

arithmetic coding,上下文自适应二进制算术编码)对整数值v进行算术编码。
48.下面描述和预期的方面可以以许多不同的形式来实现。图1

18提供了一些实施例,但是可以设想其它实施例,并且图1

18的讨论不限制实现的广度。
49.至少一个方面一般涉及点云编码和解码,并且至少一个其它方面一般涉及传送所
生成或编码的比特流。
50.更准确地说,本文描述的各种方法和其它方面可用于修改模块,例如,图3的模块3100、3200、3400和3700可经修改以实施图16的方法。模块4400和4600也可经修改以实施图17的方法。
51.此外,本发明的方面不限于mpeg标准(例如,涉及点云压缩的mpeg

i部分5),并且可以应用于例如其他标准和建议(无论是预先存在的还是将来开发的)以及任何这样的标准和建议的扩展(包括mpeg

i部分5)。除非另外指出或在技术上排除,否则本技术中描述的方面可以单独或组合使用。
52.在下文中,图像数据指的是数据,例如特定图像/视频格式的一个或几个2d样本阵列。特定图像/视频格式可以指定与图像(或视频)的像素值有关的信息。特定图像/视频格式还可以指定可以由显示器和/或任何其他装置用来例如可视化和/或解码图像(或视频)的信息。图像通常包括第一分量,其形状为第一2d样本阵列,通常表示该图像的亮度(或luma)。图像还可以包括第二分量和第三分量,其形状为其它2d样本阵列,通常表示图像的色度(或chroma)。一些实施例使用一组2d颜色样本阵列来表示相同的信息,诸如传统的三色rgb表示。
53.在一个或多个实施例中,像素值由具有c个值的向量来表示,其中c是分量的数目。向量的每一值通常用可定义像素值的动态范围的若干个比特来表示。
54.图像块是指属于图像的一组像素。图像块(或图像块数据)的像素值指的是属于该图像块的像素值。图像块可以具有任意形状,尽管矩形是常见的。
55.点云可以由3d体积空间内的3d样本的数据集来表示,这些3d样本具有唯一的坐标并且还可以具有一个或多个属性。
56.该数据集的3d样本可以由其空间位置(3d空间中的x、y和z坐标)来定义,并且可能由一个或多个相关联的属性来定义,所述属性诸如颜色(在例如rgb或yuv颜色空间中表示的颜色)、透明度、反射率、两分量法向量或表示该样本的特征的任何特征。例如,3d样本可以由6个分量(x,y,z,r,g,b)或等效地(x,y,z,y,u,v)来定义,其中(x,y,z)定义3d空间中的点的坐标,并且(r,g,b)或(y,u,v)定义该3d样本的颜色。相同类型的属性可以多次出现。例如,多个颜色属性可以提供来自不同视点的颜色信息。
57.点云可以是静态的或动态的,这取决于该云是否随时间变化。静态点云或动态点云的实例通常被表示为点云帧。应当注意,在动态点云的情况下,点数通常不是恒定的,而是相反,通常随时间变化。更一般地,如果任何事物(例如,点的数量、一个或多个点的位置、或任何点的任何属性)随时间变化,,则该点云可被认为是动态的。
58.作为示例,2d样本可以由6个分量(u,v,z,r,g,b)或等效地(u,v,z,y,u,v)来定义。(u,v)定义了投影平面的2d空间中的2d样本的坐标。z是投影到该投影平面上的3d样本的深度值。(r,g,b)或(y,u,v)定义了该3d样本的颜色。
59.图1示出了根据本发明的至少一个实施例的基于两层的点云编码结构1000的示例的示意性框图。
60.该基于两层的点云编码结构1000可提供表示输入点云帧ipcf的比特流b。可能地,所述输入点云帧ipcf表示动态点云的帧。然后,所述动态点云的帧可以独立于另一帧由所述基于两层的点云编码结构1000编码。
61.基本上,所述基于两层的点云编码结构1000可提供将比特流b结构化为基本层bl和增强层el的能力。所述基本层bl可以提供输入点云帧ipcf的有损表示,并且所述增强层el可以通过对所述基本层bl未表示的孤立点进行编码来提供更高质量(可能无损)的表示。
62.所述基本层bl可以由如图3中所示的基于图像的编码器3000提供。所述基于图像的编码器3000可以提供表示所述输入点云帧ipcf的3d样本的几何结构/属性的几何结构/纹理图像。它可以允许丢弃孤立的3d样本。所述基本层bl可以由如图4中所示的基于图像的解码器4000解码,其可以提供中间重构点云帧irpcf。
63.然后,回到图1中的基于两层的点云编码1000,比较器comp可以将输入点云帧ipcf的3d样本与中间重构点云帧irpcf的3d样本进行比较,以便检测/定位丢失/孤立的3d样本。接下来,编码器enc可以对丢失的3d样本进行编码,并且可以提供增强层el。最后,基本层bl和增强层el可由多路复用器mux一起多路复用以产生所述比特流b。
64.根据实施例,所述编码器enc可以包括检测器,该检测器可以检测中间重构点云帧irpcf的3d参考样本r并将其与丢失的3d样本m相关联。
65.举例来说,与丢失的3d样本m相关联的3d参考样本r可根据给定度量而为m的最近相邻者。
66.根据实施例,所述编码器enc然后可以将所丢失的3d样本m的空间位置及其属性编码为根据所述3d参考样本r的空间位置和属性确定的差异。
67.在一种变型中,这些差异可以被单独编码。
68.例如,对于丢失的3d样本m,其具有空间坐标x(m)、y(m)和z(m),则x坐标位置差dx(m)、y坐标位置差dy(m)、z坐标位置差dz(m)、r属性分量差dr(m)、g属性分量差dg(m)和b属性分量差db(m)可以如下计算:
69.dx(m)=x(m)

x(r),
70.其中x(m)是图3提供的几何结构图像中的3d样本m和相应r的x坐标,
71.dy(m)=y(m)

y(r)
72.其中y(m)是图3提供的几何结构图像中的3d样本m和相应r的y坐标,
73.dz(m)=z(m)

z(r)
74.其中z(m)是图3提供的几何结构图像中的3d样本m和相应r的z坐标,
75.dr(m)=r(m)

r(r).
76.其中r(m)、r(r)分别是所述3d样本m和相应r的颜色属性的r颜色分量,
77.dg(m)=g(m)

g(r).
78.其中g(m)、g(r)分别是所述3d样本m和相应r的颜色属性的g颜色分量,
79.db(m)=b(m)

b(r).
80.其中b(m)、b(r)分别是所述3d样本m和相应r的颜色属性的b颜色分量。
81.图2示出了根据至少一个本发明实施例的基于两层的点云解码结构2000的示例的示意性框图。
82.所述基于两层的点云解码结构2000的行为取决于其能力。
83.具有有限能力的基于两层的点云解码结构2000可通过使用解复用器dmux从比特流b仅访问基本层bl,然后可通过由如图4所示的点云解码器4000对基本层bl进行解码来提供所述输入点云帧ipcf的忠实(但有损)版本irpcf。
84.具有全能力的基于两层的点云解码结构2000可通过使用解复用器dmux从比特流b访问基本层bl和增强层el。如图4所示,点云解码器4000可以根据基本层bl,确定中间重构点云帧irpcf。解码器dec可以从增强层el确定互补点云帧cpcf。然后,组合器com可以将中间重构点云帧irpcf和互补点云帧cpcf组合在一起,以因此提供输入点云帧ipcf的更高质量(可能无损)表示(重构)crpcf。
85.图3示出了根据至少一个本实施例的基于图像的点云编码器3000的示例的示意性框图。
86.基于图像的点云编码器3000利用现有视频编解码器来压缩动态点云的几何结构和纹理(属性)信息。这是通过将所述点云数据基本上转换成一组不同的视频序列来实现的。
87.在特定实施例中,可以使用现有的视频编解码器来生成和压缩两个视频,其中一个用于捕获点云数据的几何结构信息,另一个用于捕获纹理信息。现有视频编解码器的一个示例是hevc主简档编码器/解码器(itu(02/2018)的itu

t h.265电信标准化部门,h系列:视听和多媒体系统,视听服务基础设施

运动视频的编码,高效视频编码,推荐itu

t h.265)。
88.用于解释所述两个视频的附加元数据通常也被分别生成和压缩。这样的附加元数据包括例如占用图om和/或辅助补片信息pi。
89.然后,可以将所生成的视频比特流和元数据复用在一起,以生成组合比特流。
90.应当注意,所述元数据通常表示少量的总体信息。大量信息在视频比特流中。
91.这种点云编码/解码过程的一个例子由测试模型类别2算法(也称为v

pcc)给出,该算法实现了iso/iec jtc1/sc29/wg11mpeg2019/w18180(2019年1月,mareshkak)中定义的mpeg草案标准。
92.在步骤3100中,模块pgm可以通过使用提供最佳压缩的策略而将表示输入点云帧ipcf的数据集的3d样本分解成投影平面上的2d样本,从而生成至少一个补片。
93.补片可以被定义为一组2d样本。
94.例如,在v

pcc中,首先如hoppe等人(hugues hoppe,tony derose,tom duchamp,john mcdonald,werner stuetzle.surface reconstruction from unorganized points(来自未组织的点的表面重构).acm siggraph 1992proceedings,71

78)所述,估计每个3d样本处的法线。接下来,通过将每个3d样本与包含输入点云帧ipcf的3d样本的3d边界框的六个定向平面之一相关联,获得输入点云帧ipcf的初始聚类。更准确地说,每个3d样本被聚类并与具有最接近法线(即,最大化点法线和面法线的点积)的定向平面相关联。然后,将3d样本投影到它们的相关平面。在它们的平面中形成连通区域的一组3d样本被称为连通分量。连通分量是具有相似法线和相同关联定向平面的至少一个3d样本的集合。然后,通过基于每个3d样本的法线和其最近的相邻样本的聚类而迭代地更新与每个3d样本相关联的聚类,从而细化所述初始聚类。最后的步骤包括从每个连通分量生成一个补片,这是通过将每个连通分量的3d样本投影到与该连通分量相关联的定向平面上来完成的。补片与辅助补片信息pi相关联,该辅助补片信息pi表示为每个补片定义的辅助补片信息,以解释对应于几何结构和/或属性信息的投影的2d样本。
95.例如,在v

pcc中,所述辅助补片信息pi包括1)指示包含连通分量的3d样本的3d边
界框的六个定向平面之一的信息;2)相对于平面法线的信息;3)确定连通分量相对于补片的3d位置的信息,其按照深度、切向移位和双切向移位而被表示;以及4)诸如在投影平面中定义包含补片的2d边界框的坐标(u0、v0、u1、v1)的信息。
96.在步骤3200中,补片打包模块ppm可以以通常使未使用空间最小化的方式将至少一个生成的补片映射(放置)到2d网格(也称为画布)上而没有任何重叠,并且可以保证2d网格的每个txt(例如,16
×
16)块与唯一的补片相关联。所述2d网格的给定最小块大小txt可以指定如放置在该2d网格上的不同补片之间的最小距离。2d网格分辨率可以取决于输入点云大小及其宽度w和高度h,并且块大小t可以作为元数据被发送到解码器。
97.所述辅助补片信息pi可以进一步包括关于所述2d网格的块和补片之间的关联的信息。
98.在v

pcc中,所述辅助信息pi可以包括块到补片索引信息(blocktopatch),其确定所述2d网格的块和补片索引之间的关联。
99.图3a示出了画布c的示例,该画布c包括2个补片p1和p2以及它们相关联的2d边界框b1和b2。注意,如图3a所示,画布c中的两个边界框可以重叠。2d网格(画布的分割)仅在所述边界框内部表示,但是画布的分割也发生在那些边界框外部。与补片相关联的边界框可以被分割成txt块,典型地为t=16。
100.包含属于补片的2d样本的txt块可以被认为是占用块。画布的每个占用块由占用图om中的特定像素值(例如1)表示,而画布的每个未被占用的块由另一个特定值(例如0)表示,然后,占用图om的像素值可以指示画布的txt块是否被占用,即,是否包含属于一个补片的2d样本。
101.在图3a中,占用块由白色块表示,而浅灰色块表示未占用块。图像生成过程(步骤3300和3400)利用在步骤3200期间计算的至少一个生成的补片到2d网格上的映射,以将输入点云帧ipcf的几何结构和纹理存储为图像。
102.在步骤3300中,几何结构图像生成器gig可以根据输入点云框ipcf、占用图om和辅助补片信息pi,生成至少一个几何结构图像gi。所述几何结构图像生成器gig可以利用该占用图信息来检测(定位)几何结构图像gi中的占用块以及非空像素。
103.几何结构图像gi可以表示输入点云帧ipcf的几何结构,并且可以是例如以yuv420

8比特格式表示的wxh个像素的单色图像。
104.为了更好地处理多个3d样本被投影(映射)到投影平面的相同2d样本(沿着相同的投影方向(线))的情况,可以生成被称为层的多个图像。因此,不同的深度值d1、

、dn可以与补片的2d样本相关联,并且然后可以生成多个几何结构图像。
105.在v

pcc中,将补片的2d样本投影到两层上。第一层,也称为近层,可以存储例如与具有较小深度的2d样本相关联的深度值d0。被称为远层的第二层可以存储例如与具有较大深度的2d样本相关联的深度值d1。或者,第二层可存储深度值d1与d0之间的差值。例如,由第二深度图像存储的信息可以在对应于范围[d0,d0 δ]中的深度值的间隔[0,δ]内,其中δ是描述表面厚度的用户定义的参数。
[0106]
通过这种方式,第二层可以包含显著的轮廓状高频特征。因此,清楚地看起来第二深度图像可能难以通过使用传统视频编码器来编码,并且因此,深度值可能从所述解码的第二深度图像被较差地重构,这导致重构的点云帧的几何结构的较差质量。
[0107]
根据实施例,所述几何结构图像生成模块gig可以通过使用辅助补片信息pi来编码(导出)与第一和第二层的2d样本相关联的深度值。
[0108]
在v

pcc中,具有相应连通分量的3d样本在补片中的位置可以用深度δ(u,v)、切向移位s(u,v)和双切向移位r(u,v)表示如下:
[0109]
δ(u,v)=δ0 g(u,v)
[0110]
s(u,v)=s0

u0 u
[0111]
r(u,v)=r0

v0 v
[0112]
其中g(u,v)是几何结构图像的亮度分量,(u,v)是投影平面上的与所述3d样本相关联的像素,(δ0,s0,r0)是所述3d样本所属的连通分量的对应补片的3d位置,以及(u0,v0,u1,v1)是所述投影平面中的坐标,其定义了包含与所述连通分量相关联的补片的投影的2d边界框。
[0113]
因此,几何结构图像生成模块gig可以将与层(第一层或第二层或这两者)的2d样本相关联的深度值编码(导出)为亮度分量g(u,v),其由下式给出:g(u,v)=δ(u,v)

δ0。应当注意,该关系可以用于从具有伴随的辅助补片信息pi的重构几何结构图像g(u,v),重构3d样本位置(δ0,s0,r0)。
[0114]
根据实施例,投影模式可以用于指示第一几何结构图像gi0是否可以存储所述第一层或第二层的2d样本的深度值,以及第二几何结构图像gi1是否可以存储与所述第二层或第一层的2d样本相关联的深度值。
[0115]
例如,当投影模式等于0时,第一几何结构图像gi0可以存储第一层的2d样本的深度值,第二几何结构图像gi1可以存储与第二层的2d样本相关联的深度值。相反,当投影模式等于1时,第一几何结构图像gi0可以存储第二层的2d样本的深度值,第二几何结构图像gi1可以存储与第一层的2d样本相关联的深度值。
[0116]
根据实施例,帧投影模式可以用于指示一固定投影模式是否用于所有补片,或者是否使用可变投影模式,在可变投影模式中,每个补片可以使用不同的投影模式。
[0117]
可以将所述投影模式和/或帧投影模式作为元数据发送。
[0118]
例如,在v

pcc的第2.2.1.3.1节中可以提供帧投影模式判定算法。
[0119]
根据实施例,当所述帧投影指示可以使用可变投影模式时,可以使用补片投影模式来指示用于(去)投影补片的适当模式。
[0120]
补片投影模式可以作为元数据发送,并且可能是包括在辅助补片信息pi中的信息。
[0121]
例如在v

pcc的第2.2.1.3.2节中提供了补片投影模式决策算法。
[0122]
根据步骤3300的实施例,第一几何结构图像(例如gi0)中对应于补片的2d样本(u,v)的像素值可表示沿对应于所述2d样本(u,v)的投影线定义的至少一个中间3d样本的深度值。更准确地说,所述中间3d样本位于沿着投影线的位置,并共享所述2d样本(u,v)的相同坐标,该样本的深度值d1被编码在第二几何结构图像中,例如gi1。此外,所述中间3d样本可具有介于深度值d0与深度值d1之间的深度值。指定的比特可以与每个所述中间3d样本相关联,如果中间3d样本存在,则该比特被设置为1,否则被设置为0。
[0123]
图3b示出了沿着投影线pl位于两个3d样本p0和p1之间的两个中间3d样本p
i1
和p
i2
的示例。3d样本p0和p1分别具有等于d0和d1的深度值。该两个中间3d样本p
i1
与p
i2
的深度值
d
i1
与d
i2
分别大于d0且低于d1。
[0124]
然后,沿着所述投影线的所有所述指定比特可以被级联以形成一码字,其此后被表示为增强占用图(eom)码字。如图3b所示,假设eom码字为8比特长,2比特等于1,以表示两个3d样本p
i1
和p
i2
的位置。最后,所有eom码字可以被打包在图像中,例如,占用图om。在这种情况下,画布的至少一个补片可以包含至少一个eom码字。这样的补片被表示为参考补片,并且参考补片的块被表示为eom参考块。因此,例如当d1

d0<=1时,占用图om的像素值可以等于第一值(例如0)以指示所述画布的未占用块,或者等于另一个值(例如大于0)以指示所述画布的占用块,或者例如当d1

d0>1时,指示画布的eom参考块。
[0125]
指示eom参考块的占用图om中的像素的位置和从那些像素的值获得的eom码字的比特的值指示所述中间3d样本的3d坐标。
[0126]
在步骤3400中,纹理图像生成器tig可从输入点云帧ipcf、占用图om、辅助补片信息pi以及(图4中的步骤4200)从视频解码器vdec的输出的至少一个解码的几何结构图像dgi导出的重构点云帧的几何结构,生成至少一个纹理图像ti。
[0127]
纹理图像ti可以表示输入点云帧ipcf的纹理,并且可以是例如以yuv420

8比特格式表示的wxh个像素的图像。
[0128]
所述纹理图像生成器tg可以利用所述占用图信息来检测(定位)占用块,从而检测(定位)所述纹理图像中的非空像素。
[0129]
所述纹理图像生成器tig可适于生成纹理图像ti并将其与每个几何结构图像/层dgi相关联。
[0130]
根据实施例,所述纹理图像生成器tig可将与第一层的2d样本相关联的纹理(属性)值t0编码(存储)为第一纹理图像ti0的像素值,将与第二层的2d样本相关联的纹理值t1编码(存储)为第二纹理图像ti1的像素值。
[0131]
可替换地,所述纹理图像产生模块tig可将与第二层的2d样本相关联的纹理值t1编码(存储)为第一纹理图像ti0的像素值,并将与第一层的2d样本相关联的纹理值d0编码(存储)为第二几何结构图像gi1的像素值。
[0132]
例如,3d样本的颜色可如v

pcc第2.2.3、2.2.4、2.2.5、2.2.8或2.5节所述那样获得。
[0133]
两个3d样本的纹理值被存储在第一或第二纹理图像中。但是,中间3d样本的纹理值既不能存储在该第一纹理图像ti0中也不能存储在第二纹理图像ti1中,因为投影的中间3d样本的位置对应于已经用于存储另一3d样本(p0或p1)的纹理值的已占用块,如图3b所示。因此,中间3d样本的纹理值被存储在位于第一或第二纹理图像中其它地方的eom纹理块中的程序化定义的位置(v

pcc的第9.4.5部分)。简言之,该过程确定纹理图像中未占用块的位置,并将与中间3d样本相关联的纹理值存储为所述纹理图像的所述未占用块的像素值,其被表示为eom纹理块。
[0134]
根据实施例,可以对几何结构和/或纹理图像应用填充处理。该填充过程可用于填充补片之间的空白空间,以生成适合于视频压缩的分段平滑图像。
[0135]
在v

pcc的2.2.6和2.2.7节中提供了图像填充示例。
[0136]
在步骤3500中,视频编码器venc可以对所产生的图像/层ti和gi进行编码。
[0137]
在步骤3600中,编码器omenc可以将占用图编码为例如v

pcc的2.2.2节中详细描
述的图像。可以使用有损或无损编码。
[0138]
根据实施例,视频编码器enc和/或omenc可以是基于hevc的编码器。
[0139]
在步骤3700中,编码器pienc可以对辅助补片信息pi以及可能的附加元数据进行编码,该附加元数据诸如为块大小t、几何结构/纹理图像的宽度w和高度h。
[0140]
根据一个实施例,所述辅助补片信息可以被差分编码(例如,如v

pcc的2.4.1节中所定义的)。
[0141]
在步骤3800中,复用器可被应用于步骤3500、3600和3700的生成的输出,并且作为结果,这些输出可被复用在一起以便生成表示基本层bl的比特流。应当注意,所述元数据信息表示整个比特流的一小部分。大量信息是使用视频编解码器来压缩的。
[0142]
图4示出了根据本发明的至少一个实施例的基于图像的点云解码器4000的示例的示意性框图。
[0143]
在步骤4100中,解复用器dmux可以用于解复用表示基本层bl的比特流的编码信息。
[0144]
在步骤4200中,视频解码器vdec可解码编码信息以获得至少一个解码几何结构图像dgi及至少一个解码纹理图像dti。
[0145]
在步骤4300中,解码器omdec可以对编码信息进行解码以导出解码后的占用图dom。
[0146]
根据一实施例,所述视频解码器vdec和/或omdec可为基于hevc的解码器。
[0147]
在步骤4400中,解码器pidec可以对编码信息进行解码以导出辅助补片信息dpi。
[0148]
可能地,元数据也可以从所述比特流bl中导出。
[0149]
在步骤4500中,几何结构生成模块ggm可从至少一个解码的几何结构图像dgi、解码的占用图dom、解码的辅助补片信息dpi和可能的附加元数据,导出重构的点云帧irpcf的几何结构rg。
[0150]
几何结构生成模块ggm可利用经解码的占用图信息dom来定位至少一个经解码的几何结构图像dgi中的非空像素。
[0151]
所述非空像素属于占用块或eom参考块,这取决于如上所述的解码的占用信息dom的像素值和d1

d0的值。
[0152]
根据步骤4500的实施例,几何结构生成模块ggm可从非空像素的坐标,导出中间3d样本的3d坐标中的两个。
[0153]
根据步骤4500的实施例,当所述非空像素属于所述eom参考块时,几何结构生成模块ggm可从eom码字的比特值,导出中间3d样本的3d坐标中的第三个。
[0154]
例如,根据图3b的示例,所述eom码字eomc用于确定中间3d样本p
i1
和p
i2
的3d坐标。例如,可以由d
i1
=d0 3从d0导出所述中间3d样本p
i1
的第三坐标,并且例如可以由d
i2
=d0 5从d0导出所述重构3d样本p
i2
的第三坐标。偏移值(3或5)是沿投影线的d0和d1之间的间隔数。
[0155]
根据实施例,当所述非空像素属于占用块时,几何结构生成模块ggm可从非空像素的坐标、至少一个解码的几何结构图像dgi中的一个的所述非空像素的值、解码的辅助补片信息、以及可能地从附加元数据,导出重构的3d样本的3d坐标。
[0156]
非空像素的使用是基于与3d样本的2d像素关系。例如,对于v

pcc中的所述投影,
重构的3d样本的3d坐标可以用深度δ(u,v)、切向移位s(u,v)和双切向移位r(u,v)表示如下:
[0157]
δ(u,v)=δ0 g(u,v)
[0158]
s(u,v)=s0

u0 u
[0159]
r(u,v)=r0

v0 v
[0160]
其中g(u,v)是解码的几何结构图像dgi的亮度分量,(u,v)是与重构的3d样本相关联的像素,(δ0,s0,r0)是重构的3d样本所属的连通分量的3d位置,以及(u0,v0,u1,v1)是定义2d边界框的投影平面中的坐标,该边界框包含与所述连通分量相关联的补片的投影。
[0161]
在步骤4600中,纹理生成模块tgm可以从几何结构rg和至少一个解码的纹理图像dti,导出重构的点云帧irpcf的纹理。
[0162]
根据步骤4600的实施例,纹理生成模块tgm可以从相应的eom纹理块中导出属于eom参考块的非空像素的纹理。在纹理图像中eom纹理块的位置被程序化地定义(v

pcc的第9.4.5节)
[0163]
根据步骤4600的实施例,纹理生成模块tgm可以直接导出属于已占用块的非空像素的纹理作为所述第一或第二纹理图像的像素值。
[0164]
图5示意性地示出了根据至少一个本实施例的表示基本层bl的比特流的示例语法。
[0165]
该比特流包括比特流头部sh和至少一帧流组gofs。
[0166]
所述帧流组gofs包括头部hs、表示占用图om的至少一个语法元素oms、表示至少一个几何结构图像(或视频)的至少一个语法元素gvs、表示至少一个纹理图像(或视频)的至少一个语法元素tvs以及表示辅助补片信息和其它附加元数据的至少一个语法元素pis。
[0167]
在一种变型中,帧流组gofs包括至少一个帧流。
[0168]
图6示出了说明其中实现了各个方面和实施例的系统的示例的示意性框图。
[0169]
系统6000可以被实现为包括下面描述的各种组件的一个或多个设备,并且被配置为执行本文中描述的一个或多个方面。可以形成系统6000的全部或部分的装置的示例包括个人计算机、膝上型计算机、智能电话、平板计算机、数字多媒体机顶盒、数字电视接收机、个人视频记录系统、连接的家用电器、连接的车辆及其相关联的处理系统、头戴式显示设备(hmd、透视眼镜)、投影仪(投影机)、“caves”(包括多个显示器的系统)、服务器、视频编码器、视频解码器、处理来自视频解码器的输出的后处理器、向视频编码器提供输入的预处理器、web服务器、机顶盒、以及用于处理点云、视频或图像的任何其他设备或其他通信设备。系统6000的元件可以单独地或组合地实现在单个集成电路、多个ic和/或分立组件中。例如,在至少一个实施例中,系统6000的处理和编码器/解码器元件可以分布在多个ic和/或分立组件上。在各种实施例中,系统6000可以例如经由通信总线或通过专用输入和/或输出端口通信地耦合到其它类似系统或其它电子设备。在各种实施例中,系统6000可以被配置为实现本文档中描述的一个或多个方面。
[0170]
系统6000可以包括至少一个处理器6010,其被配置成执行加载在其中的指令,以便实现例如本文中描述的各个方面。处理器6010可以包括嵌入式存储器、输入输出接口以及本领域已知的各种其它电路。系统6000可以包括至少一个存储器6020(例如,易失性存储器设备和/或非易失性存储器设备)。系统6000可以包括存储设备6040,其可以包括非易失
性存储器和/或易失性存储器,这其中包括但不限于电可擦除可编程只读存储器(eeprom)、只读存储器(rom)、可编程只读存储器(prom)、随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、闪存、磁盘驱动器和/或光盘驱动器。作为非限制性示例,存储设备6040可以包括内部存储设备、附加存储设备和/或网络可访问存储设备。
[0171]
系统6000可以包括编码器/解码器模块6030,其被配置为例如处理数据以提供编码数据或解码数据,并且编码器/解码器模块6030可以包括其自己的处理器和存储器。编码器/解码器模块6030可表示可包括在设备中以执行编码和/或解码功能的模块(一个或多个)。如已知的,设备可以包括编码模块和解码模块中的一个或两个。另外,编码器/解码器模块6030可以实现为系统6000的单独元件,或者可以作为本领域技术人员公知的硬件和软件的组合结合在处理器6010内。
[0172]
要加载到处理器6010或编码器/解码器6030上以执行本文档中描述的各个方面的程序代码可以存储在存储设备6040中,并且随后加载到存储器6020上以由处理器6010执行。根据各种实施例,处理器6010、存储器6020、存储设备6040和编码器/解码器模块6030中的一个或多个可以在执行本文中描述的过程期间存储各种项中的一个或多个。这样的存储项可以包括但不限于点云帧、编码/解码的几何结构/纹理视频/图像或编码/解码的几何结构/纹理视频/图像的部分、比特流、矩阵、变量以及来自等式、公式、运算和运算逻辑的处理的中间或最终结果。
[0173]
在若干实施例中,处理器6010和/或编码器/解码器模块6030内部的存储器可用于存储指令,并提供用于可在编码或解码期间执行的处理的工作存储器。
[0174]
然而,在其它实施例中,所述处理设备外部的存储器(例如,所述处理设备可以是处理器6010或编码器/解码器模块6030)可以用于这些功能中的一个或多个。所述外部存储器可以是存储器6020和/或存储设备6040,例如,动态易失性存储器和/或非易失性闪存。在若干实施例中,外部非易失性闪存可用于存储电视的操作系统。在至少一个实施例中,诸如ram的快速外部动态易失性存储器可以用作视频编码和解码操作的工作存储器,诸如用于mpeg

2部分2(也称为itu

t建议h.262和iso/iec 13818

2,也称为mpeg

2视频)、hevc(高效视频编码)或vvc(通用视频编码)。
[0175]
如框6130中所示,可以通过各种输入设备来提供对系统6000的元件的输入。这样的输入设备包括但不限于(i)rf部分,其可以接收例如由广播者通过空中传输的rf信号,(ii)复合输入端子,(iii)usb输入端子,和/或(iv)hdmi输入端子。
[0176]
在各种实施例中,框6130的输入设备可以具有本领域已知的相关联的相应输入处理元件。例如,rf部分可以与以下必要的元件相关联:(i)选择期望的频率(也称为选择信号,或者将信号频带限制到一频带),(ii)将所选择的信号下变频,(iii)再次频带限制到较窄的频带,以选择(例如)在某些实施例中可以称为信道的信号频带,(iv)解调所述下变频和频带限制的信号,(v)执行纠错,以及(vi)解复用,以选择期望的数据分组流。各种实施例的rf部分可以包括一个或多个元件以执行这些功能,例如,频率选择器、信号选择器、限带器、信道选择器、滤波器、下变频器、解调器、纠错器和解复用器。所述rf部分可以包括执行各种这些功能的调谐器,这些功能包括例如将接收的信号下变频到较低频率(例如,中频或近基带频率)或基带。
[0177]
在一个机顶盒实施例中,所述rf部分及其相关的输入处理元件可以接收通过有线
(例如,电缆)介质发送的rf信号。然后,所述rf部分可以通过滤波、下变频以及再次滤波到期望的频带来执行频率选择。
[0178]
各种实施例可重新安排上述(和其它)元件的顺序,移除这些元件中的一些,和/或添加执行类似或不同功能的其它元件。
[0179]
添加元件可以包括在现有元件之间插入元件,例如插入放大器和模数转换器。在各种实施例中,所述rf部分可以包括天线。
[0180]
另外,usb和/或hdmi终端可以包括用于通过usb和/或hdmi连接而将系统6000连接到其它电子设备的相应接口处理器。应当理解,输入处理的各个方面(例如,reed

solomon纠错)可以根据需要在例如单独的输入处理ic内或处理器6010内实现。类似地,usb或hdmi接口处理的方面可根据需要在单独的接口ic内或处理器6010内实现。可以将解调、纠错和解复用的流提供给各种处理元件,这其中包括例如处理器6010和编码器/解码器6030,它们与存储器和存储元件结合操作以便根据需要处理数据流以便呈现在输出设备上。
[0181]
系统6000的各种元件可以设置在集成壳体内。在集成壳体内,各种元件可以使用合适的连接布置6140互连,并在其间传输数据,所述连接布置6140例如为本领域已知的内部总线,这其中包括i2c总线、布线和印刷电路板。
[0182]
所述系统6000可以包括使得能够经由通信信道6060与其它设备通信的通信接口6050。通信接口6050可以包括但不限于被配置成通过通信信道6060发送和接收数据的收发器。所述通信接口6050可以包括但不限于调制解调器或网卡,并且所述通信信道6060可以例如在有线和/或无线介质内实现。
[0183]
在各种实施例中,可以使用诸如ieee 802.11的wi

fi网络将数据流式传输到系统6000。这些实施例的wi

fi信号可通过适用于wi

fi通信的通信信道6060和通信接口6050来接收。这些实施例的通信信道6060通常可连接到接入点或路由器,所述接入点或路由器提供对包括因特网的外部网络的接入以允许流式应用和其它云上(over

the

top)通信。
[0184]
其它实施例可以使用通过输入框6130的hdmi连接递送数据的机顶盒来向系统6000提供流式数据。
[0185]
其他实施例可以使用输入框6130的rf连接而向系统6000提供流式数据。
[0186]
应当理解,可以以各种方式来实现信令。例如,在各种实施例中,一个或多个语法元素、标志等可以用于将信息用信号发送给对应的解码器。
[0187]
系统6000可以向包括显示器6100、扬声器6110和其它外围设备6120的各种输出设备提供输出信号。在实施例的各种示例中,所述其他外围设备6120可以包括以下中的一个或多个:独立的dvr、盘播放器、立体声系统、照明系统和基于系统3000的输出提供功能的其他设备。
[0188]
在各种实施例中,可以使用信令在系统6000与显示器6100、扬声器6110或其它外围设备6120之间传送控制信号,所述信令诸如为av.link(音频/视频链路)、cec(消费电子控制)或使得能够在有或没有用户干预的情况下进行设备到设备控制的其他通信协议。。
[0189]
输出设备可以通过各自的接口6070、6080和6090经由专用连接而通信地耦合到系统6000。
[0190]
或者,所述输出设备可以使用通信信道6060经由通信接口6050连接到系统6000。显示器6100和扬声器6110可以与系统6000的其它组件一起集成在诸如电视机之类的电子
设备中的单个单元中。
[0191]
在各种实施例中,所述显示接口6070可包括显示驱动器,例如定时控制器(t con)芯片。
[0192]
例如,如果输入6130的rf部分是单独的机顶盒的一部分,则显示器6100和扬声器6110可以备选地与其他组件中的一个或多个分离。在显示器6100和扬声器6110可以是外部组件的各种实施例中,所述输出信号可经由专用输出连接而被提供,这其中包括例如hdmi端口、usb端口或comp输出。
[0193]
从如v

pcc中定义的eom纹理块中取回中间3d样本的纹理值不需要附加的语法来指示所述中间3d样本的位置,因为这些位置是从占用图om的eom参考块的eom码字导出的,并且指示通过顺序处理定义的eom纹理块的位置。但是,随机访问特定的中间3d样本的纹理值是不可能的,因为所有eom纹理块随后将被系统地处理以确定特定eom纹理块的位置。
[0194]
另外,在纹理图像的补片之间嵌入eom纹理块可能降低所述纹理图像的压缩效率,因为所述纹理图像的内容可能因此而具有低空间相关性(冗余)。
[0195]
根据至少一个实施例的一般方面,提供了一种方法,包括:用信号发送表示至少一个中间3d样本的纹理值的至少一个eom(增强占用图)纹理补片。
[0196]
用信号发送eom纹理补片允许对特定中间3d样本的纹理值的随机(直接、快速)访问。换句话说,可以独立地解码与从eom码字重构的中间3d样本对应的纹理。这允许实现附加特征,如空间可缩放性或并行解码。
[0197]
图7示出了根据本发明的至少一个实施例的用于用信号发送至少一个eom纹理补片的方法的示例。
[0198]
在步骤710中,模块可以在比特流中添加至少一个语法元素se1,其表示eom纹理补片(由patchindex索引)在点云帧(由frmidx索引)的画布中的2d位置,以及所述eom纹理补片的大小(高度、宽度)。
[0199]
画布的示例在图3a中示出。
[0200]
在步骤720中,可以发送所述比特流。
[0201]
在步骤730中,模块可从比特流(接收的比特流)取回(读取)至少一个语法元素se1,并且可从所述至少一个语法元素se1提取点云帧的画布中的eom纹理补片的2d位置以及所述eom纹理补片的大小(高度、宽度)。
[0202]
根据实施例,可以通过画布的2d坐标系统中定义的水平坐标etpdu_2d_shift_u和垂直坐标etpdu_2d_shift_v来用信号发送(由patchindex索引的)eom纹理补片在画布中的2d位置。
[0203]
该实施例提供了在画布中灵活放置eom纹理补片。
[0204]
根据实施例,所述eom纹理补片(由patchindex索引)的大小(高度,宽度)可以通过分别表示eom纹理补片的高度和宽度的etpdu_2d_delta_size_u和etpdu_2d_delta_size_v来用信号发送。
[0205]
该实施例允许调整eom纹理补片的大小。
[0206]
根据步骤710的实施例,如图8a中所示,语法元素se1也可以是用信号发送画布的补片(由patchindex索引)的2d样本的数量的元素etpdu_points。
[0207]
该实施例是有利的,因为它需要发送少量的数据。
[0208]
然而,即使补片不是eom纹理补片,即即使该补片不携带任何中间3d样本的纹理值(在该情况下,etpdu_points被设置为0),补片的2d样本的数量也被用信号发送。
[0209]
此外,该实施例要求eom纹理补片中的补片信息与当前点云帧中的补片处于相同的顺序。
[0210]
图9a示出了根据步骤710的所述实施例的具有包括四个纹理补片和单个eom纹理补片eomp的画布的纹理图像的示例。
[0211]
所述纹理补片#1、#2、#3和#4中的每一个存储点云的3d样本的纹理值,并且所述eom纹理补片eomp存储相对于纹理补片#1、#2和#4的中间样本的纹理值。首先从eom纹理补片eomp的左上角添加相对于纹理补片#1的至少一个中间3d样本的纹理值,接着添加相对于纹理补片#2的至少一个中间3d样本的纹理值(一个或多个),接着添加相对于纹理补片#4的至少一个中间3d样本的纹理值(一个或多个)。
[0212]
该实施例不支持多个eom纹理补片。
[0213]
该实施例不允许例如图9a中所示的两个连续补片的3d样本之间的纹理值之间存在“间隙”。
[0214]
根据步骤710的实施例,如图8b中所示,语法元素se1也可以是表示eom纹理补片中的参考补片的数量的元素etpdu_patch_count,另一语法元素se1也可以是表示第“p”个参考补片的索引的元素etpdu_ref_index,并且另一语法元素se1也可以是元素etpdu_offset,其表示用于确定第“p”个(当前)参考补片(在先前参考补片“p

1”之后)的起始位置的偏移(以像素为单位)。
[0215]
图9b示出了根据步骤710的所述实施例的具有包括四个纹理补片和单个eom纹理补片eomp的画布的纹理图像的示例。
[0216]
所述纹理补片#1、#2、#3和#4中的每一个存储点云的3d样本的纹理值,并且所述eom纹理补片eomp存储相对于纹理补片#1、#2和#4的中间样本的纹理值。首先从eom纹理补片eomp的左上角添加相对于纹理补片#1的至少一个中间3d样本的纹理值(一个或多个)。接着,从相对于所述纹理补片#2的元素etpdu_offset,确定所述纹理补片#2的起始位置s1。然后存储与纹理补片#2相关的至少一个中间3d样本的纹理值(一个或多个)。接着,从相对于纹理补片#4的元素etpdu_offset确定所述纹理补片#4的起始位置s2。然后存储与纹理补片#4相关的至少一个中间3d样本的纹理值(一个或多个)。
[0217]
该实施例提供了非常灵活的解决方案,并且可以支持如图9c所示的多个eom纹理补片,但是与先前的实施例相比,需要传送更多的数据。
[0218]
根据步骤710的实施例,如图8c中所示,语法元素se1还可以是表示eom纹理补片中的参考补片的数量的元素etpdu_patch_count,以及表示用于确定第“p”(当前)参考补片(在前一参考补片“p

1”之后)的起始位置的偏移(以像素为单位)的元素etpdu_offset。
[0219]
与图8a

b中所示的实施例相比,图8c中所示的实施例在语法(“if”语句)的解析中添加了一点点复杂性,但是提供了非常接近于图8b中所示的实施例的级别灵活性(仅补块的顺序不能改变)。
[0220]
图8c中所示的实施例支持多个eom纹理参考补片,但是它要求eom纹理参考补片的索引遵循与所有eom纹理补片上的点云的补片的索引相同的顺序;即,如果存在n个常规补片,则前m1个补片的纹理应当在第一eom纹理补片中,接下来m2个补片的纹理应当在接下来
的eom纹理补片中,以此类推,其中m1

mx的和应当等于或小于n。
[0221]
根据步骤710的实施例,如图8d中所示,语法元素se1也可以是元素etpdu_mode,其指示表示如图8a

c中所示的步骤710的实施例之一所定义的eom纹理补片的特定语法。
[0222]
该实施例允许将多个变型组合成单个语法se1。
[0223]
根据步骤710的实施例,所述模块还可在比特流中添加至少一个其它语法元素se2,以在表示点云帧的整个语法的不同级别处用信号发送所述至少一个语法元素se1。
[0224]
根据步骤710的实施例,可在序列层级用信号发送至少一个语法元素se1。
[0225]
例如,所述至少一个语法元素se1可在如v

pcc中定义的语法元素sequence_parameter_set()用信号发送。
[0226]
根据步骤710的所述实施例的变型,如图10所示,第二语法元素se2可以是v

pcc中定义的序列参数集语法的语法元素sps_enhanced_occupancy_map_texture_patch_present_flag。
[0227]
语法元素sps_enhanced_occupancy_map_texture_patch_present_flag指示是否存在对于点云帧序列的eom纹理补片。
[0228]
当语法元素sps_enhanced_occupancy_map_texture_patch_present_flag等于0时,所述eom纹理补片不存在。当语法元素sps_enhanced_occupancy_map_texture_patch_present_flag等于1时,所述eom纹理补片存在。
[0229]
所述语法元素sps_enhanced_occupancy_map_texture_patch_present_flag还可以与如v

pcc中定义的语法元素sps_enhanced_occupancy_map_depth_for_enabled_flag组合,以指示现有eom纹理补片是否存在于纹理图像ti0或ti1中或者所述现有eom纹理补片是否存在于另一比特流中。
[0230]
根据步骤710的所述实施例的变型,语法元素sequence_parameter_set()可以可选地使用用于eom纹理补片的不同视频;即pcm补片(v

pcc中的7.3.33部分和7.4.33部分)和eom纹理补片将在不同的纹理图像(视频比特流)中。
[0231]
虽然这增加了全局v

pcc比特流中的子比特流的数量,但是它允许更好地调整每个比特流的编码参数,并且主要提供更好的可缩放性特征

例如,如果仅需要pcm补片的纹理,则不需要解码eom纹理补片,并且反之亦然。
[0232]
图11示出了根据步骤710的所述实施例的所述变型的语法元素sequence_parameter_set()的语法表的示例。
[0233]
语法元素sps_eom_texture_patch_separate_video_present_flag明确地指示单独的视频是否用于eom纹理补片。
[0234]
根据步骤710的实施例,如图12和14中所说明,在帧层级用信号发出至少一个语法元素se1。
[0235]
例如,在v

pcc中定义的语法元素patch_frame_data_unit()中用信号发送所述至少一个语法元素se1。
[0236]
根据步骤710的所述实施例的变型,如图12中所说明的,第二语法元素se2可为语法元素sps_enhanced_occupancy_map_texture_patch_present_flag,其用信号发送用于表示eom纹理补片的特定语法。
[0237]
语法元素sps_enhanced_occupancy_map_texture_patch_present_flag指示eom
纹理补片是否存在于比特流中。
[0238]
当语法元素sps_enhanced_occupancy_map_texture_patch_present_flag等于0时,eom纹理补片不存在。当语法元素sps_enhanced_occupancy_map_texture_patch_present_flag等于1时,eom纹理补片存在,并且由于如v

pcc中定义的函数patch_information_data(.),因此从比特流取回与eom纹理补片相关的数据。
[0239]
所述函数取决于如图13的表中定义的补片模式。
[0240]
补片模式i_eomt(用于帧内帧)标识该补片是如v

pcc中定义的帧内帧中的增强占用图纹理补片,而补片模式p_eomt(用于帧间或预测帧)标识该补片是如v

pcc中定义的帧间帧中的增强占用图纹理补片。
[0241]
根据图14所示的步骤710的所述实施例的变型,第二元素se2也可以是指示存在多少eom纹理补片的语法元素pfdu_eom_texture_patch_count。eom纹理补片的数量必须等于或小于pfdu_patch_count_minus1 1。
[0242]
所述变型在图14中示出。针对所获得的与eom纹理补片中的每一个相关的数据,在所述eom纹理补片的所述数量上循环。
[0243]
使用多个eom纹理补片比使用单个补片需要稍微更多的比特率,但是允许更紧凑的补片打包(若干小的eom纹理补片比单个大的eom纹理补片更容易适合纹理画布)。
[0244]
根据图15中所示的步骤710的实施例,第二元素se2也可以是指示补片类型的语法元素patch_mode;例如,常规帧内补片、i_intra或p_intra。
[0245]
图16示出了根据至少一个当前实施例的用于对中间3d样本的纹理值进行编码的方法的框图。
[0246]
在步骤1610中,模块可以分析点云帧pcf到投影平面上的正交投影以导出至少一个中间3d样本的纹理值tv。
[0247]
在步骤1620中,模块可以将所述至少一个纹理值tv映射到至少一个eom纹理补片eomp中。
[0248]
在步骤1630中,模块可以将所述至少一个eom纹理补片eomtp打包成纹理图像。
[0249]
例如,步骤1610和1620可以是步骤3100的一部分,其中模块pgm可以生成每个eom纹理补片eomtp的附加补片。步骤1630然后可以是步骤3200和3400的一部分。在步骤3200中,所述至少一个附加补片与画布中的其它生成的补片一起打包,并且在步骤3400中,纹理图像生成器tg可以编码(映射)在至少一个eom纹理补片eomtp中的纹理值tv,该至少一个eom纹理补片eomtp与所述至少一个附加补片在纹理图像中处于同一位置。
[0250]
如关于图7描述的,在步骤1640,模块可以在比特流中用信号发送所述至少一个打包eom纹理补片eomtp。
[0251]
例如,步骤1640可以是步骤3700的一部分,其中编码器pienc可以遵循关于图10

15描述的语法,对表示所述至少一个eom纹理补片eomtp的至少一个语法元素se1以及可能的se2进行编码。
[0252]
根据步骤1620的实施例,将纹理值tv映射到至少一个eom纹理补片eomtp包括:如图16中所示的两个子步骤1621和1622。
[0253]
在子步骤1621中,模块可以检查点云帧的占用图om的补片是否包含eom参考块eomb。
[0254]
在步骤1622中,模块可将每个eom参考块的至少一个中间3d样本的纹理值tv嵌入到至少一个eom纹理补片eopm中。因此,每个eom纹理补片与至少一个eom参考块相关联。
[0255]
基本上,对于包括至少一个eom参考块的每个路径,形成关于纹理值tv的排序列表,然后将所述有序列表光栅化为至少一个eom纹理补片。
[0256]
根据步骤1622的实施例,可以通过顺序地扫描所述占用图om的画布的补片的像素来形成纹理值tv的排序列表。如果像素值对应于eom码字,则相应的中间3d样本的纹理值tv被级联到所述有序列表的末尾。
[0257]
扫描的示例是光栅扫描、z阶扫描和2d

希尔伯特曲线。光栅扫描可以从左到右和从上到下扫描eom纹理补片。还可以使用基于块的扫描或eom纹理补片的按照块的扫描,其中块被光栅扫描的。
[0258]
步骤1622的该实施例是最直接的方法,因为其不需要扫描3d空间。
[0259]
根据步骤1622的实施例,可以如下形成纹理值tv的排序列表:
[0260]
首先,重构补片的所有中间3d样本。然后,使用3d曲线扫描3d空间,补片的中间3d样本的纹理值dv以在3d曲线中找到的顺序被级联到所述列表。
[0261]
所述3d曲线的例子是希尔伯特曲线、z阶曲线或任何位置保持曲线都是合适的。
[0262]
由于3d扫描,该实施例更加复杂,但是增加了eom纹理补片的相邻样本之间的相关性,从而增加了编码效率。
[0263]
根据步骤1622的实施例,可以如下形成纹理值tv的所述排序列表:
[0264]
首先,重构补片的所有中间3d样本并通过树来表示。所述树通过以下而被创建:首先将所有中间样本映射到3d空间,然后在例如八分元(以形成八叉树)或二分元(以形成kd树)中递归地划分所述3d空间。然后,通过遍历这种树来形成纹理值tv的排序列表。
[0265]
树的例子是八叉树和kd树。遍历可以深度优先或宽度优先地进行。
[0266]
该实施例是2d和3d扫描之间的折衷。
[0267]
根据步骤710的实施例,语法元素se1也可以是指示如何对纹理值列表进行排序的元素。
[0268]
根据步骤710的实施例,语法元素se1还可为指示如何使用光栅化类型的元素。
[0269]
根据一个实施例,所述分类和光栅化类型是固定的,并且对于编码器和解码器都是已知的。
[0270]
图17示出了根据至少一个当前实施例的用于对中间3d样本的纹理值进行解码的方法的框图。
[0271]
在步骤1710中,当根据关于图7描述的方法用信号发送至少一个eom纹理补片eomtp时,模块可从比特流中导出所述至少一个eom纹理补片eomtp。
[0272]
例如,步骤1710是步骤4400的一部分,其中解码的pidec可以根据遵循关于图10

15描述的语法的至少一个语法元素se1和可能的se2,解码至少一个eom纹理补片eomtp信息。
[0273]
在步骤1720中,模块可以从所述至少一个eom纹理补片eomtp,导出纹理值tv。
[0274]
在步骤1730中,模块可将至少一个纹理值指派给至少一个中间3d样本。
[0275]
例如,步骤1720可以是步骤4600的一部分,其中纹理生成模块tgm可以将纹理值tv指派给至少一个中间3d样本。
[0276]
根据步骤1720的实施例,从eom纹理补片eomtp导出纹理值tv是如v

pcc的9.4.5节中描述的重构过程的步骤6的修改。
[0277]
更准确地说,在子步骤1721中,确定eom纹理补片中的参考补片的第一像素的(u,v)坐标。所述像素值向第一中间3d样本提供纹理值tv。接着,在子步骤1722中,从所述第一像素的(u,v)坐标取回至少一个随后的中间3d样本的纹理值tv。
[0278]
假设如图8b所示的eom纹理补片的更丰富语法,提供这些子步骤的描述。但是也可以导出这些子步骤的相对于如上所述的eom纹理补片的其他语法的其他可选实施例。
[0279]
在下文中,假设已经解析了所述比特流以解码点云帧(具有索引帧frameidx)中的eom纹理补片的语法。pfdu_eom_texture_patch_count指的是点云帧frameidx中的eom纹理补片的数量。帧frameidx中属于补片patchidx的点,该点是补片patchidx的解码顺序中的第一中间点。
[0280]
根据子步骤1721的实施例,eom纹理补片中的参考补片的第一像素的(u,v)坐标被计算如下:
[0281]

扫描eom纹理补片,直到当前索引p等于目标补片索引patchidx;
[0282]
以及
[0283]

通过偏移(etpdu_2d_shift_u和etpdu_2d_shift_v),将坐标(u,v)初始化为当前补片(当前p)的起始位置。
[0284]
下面是实现该实施例的算法的伪代码。
[0285][0286]
根据用于eom纹理补片语法的实施例,上述参数中的一些可以被设置为它们的默认值。
[0287]
例如:
[0288]
·
如果不存在用于所述偏移的语法元素,那么在以上算法中设定etpdu_offset[frmidx][p][r]=0。
[0289]
·
如果不存在用于参考补片计数的语法元素pfdu_eom_texture_patch_count,则将pfdu_eom_texture_patch_count[frmidx][p]设置为pfdu_patch_count_minus1 1。
[0290]
根据子步骤1722的实施例,根据具有带有所述第一像素的(u,v)坐标的第一点的参考补片的扫描,从所述第一像素的(u,v)坐标取回用于至少一个随后的中间3d样本的纹理值tv(步骤1721)。
[0291]
例如,这种扫描可以通过函数coordinate_advance_raster(u,v,n)来完成,该函数按照给定的光栅扫描顺序(例如,在v

pcc的3.1.2节中列出的光栅化模式之一)和eom纹理补片上的大小,将坐标(u,v)推进n个位置。
[0292]
图18中说明了典型的光栅扫描。
[0293]
在图1

18中,本文描述了各种方法,并且每种方法包括用于实现所描述的方法的一个或多个步骤或动作。除非方法的正确操作需要特定顺序的步骤或动作,否则可修改或组合特定步骤和/或动作的顺序和/或使用。
[0294]
一些示例是关于框图和操作流程图来描述的。每个方框表示电路元件、模块或代码部分,其包括用于实现指定逻辑功能(一个或多个)的一个或多个可执行指令。还应当注意,在其它实现中,框中所标注的功能(一个或多个)可以不按所指明的顺序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行。
[0295]
本文描述的实现方式和方面可以在例如方法或过程、装置、计算机程序、数据流、比特流或信号中实现。即使仅在单一形式的实现的上下文中讨论(例如,仅作为方法讨论),所讨论的特征的实现也可以以其他形式(例如,装置或计算机程序)来实现。
[0296]
所述方法可以在例如处理器中实现,所述处理器通常指处理设备,这其中包括例如计算机、微处理器、集成电路或可编程逻辑设备。处理器还包括通信设备。
[0297]
另外,所述方法可由处理器执行的指令实施,且此类指令(和/或由实施方案产生的数据值)可存储在计算机可读存储介质上。计算机可读存储介质可以采取计算机可读程序产品的形式,该计算机可读程序产品包含在一个或多个计算机可读介质中,并且具有包含在其上的计算机可读程序代码,该计算机可读程序代码可由计算机执行。如本文所使用的计算机可读存储介质可以被认为是非暂时性存储介质,其具有在其中存储信息的固有能力以及提供从其中取回信息的固有能力。计算机可读存储介质可以是,例如,但不限于,电、磁、光、电磁、红外或半导体系统、装置或设备,或前述的任何合适的组合。应当理解,尽管提供了可以应用本实施例的计算机可读存储介质的更具体的示例,但是以下仅是说明性的而不是如本领域普通技术人员容易理解的穷举列表:便携式计算机磁盘;硬盘;只读存储器(rom);可擦除可编程只读存储器(eprom或闪存);便携式光盘只读存储器(cd

rom);光学存储设备;磁存储装置;或前述的任何合适的组合。
[0298]
所述指令可以形成有形地体现在处理器可读介质上的应用程序。
[0299]
指令可以是例如硬件、固件、软件或其组合。指令可以在例如操作系统、单独的应用程序或两者的组合中找到。因此,处理器可以被表征为例如被配置为执行过程的设备和包括具有用于执行过程的指令的处理器可读介质(诸如存储设备)的设备。此外,处理器可读介质可以存储由实现产生的数据值,作为指令的补充或替代。
[0300]
例如,可以以适当的硬件、软件和固件来实现装置。这样的装置的示例包括个人计算机、膝上型计算机、智能电话、平板计算机、数字多媒体机顶盒、数字电视接收机、个人视频记录系统、连接的家用电器、头戴式显示设备(hmd、透视眼镜)、投影仪(投影机)、“caves”(包括多个显示器的系统)、服务器、视频编码器、视频解码器、处理来自视频解码器的输出的后处理器、向视频编码器提供输入的预处理器、web服务器、机顶盒、以及用于处理点云、视频或图像的任何其他设备或其他通信设备。应当清楚,该设备可以是移动的,甚至可以安装在移动车辆中。
[0301]
计算机软件可以由处理器6010或由硬件实现,或者由硬件和软件的组合实现。作为非限制性示例,所述实施例还可以由一个或多个集成电路实现。存储器6020可以是适合于技术环境的任何类型,并且可以使用任何适当的数据存储技术来实现,作为非限制性示
例,诸如光存储器设备、磁存储器设备、基于半导体的存储器设备、固定存储器和可移动存储器。处理器6010可以是适合于技术环境的任何类型,并且可以包含作为非限制性示例的微处理器、通用计算机、专用计算机和基于多核架构的处理器中的一个或多个。
[0302]
如对于本领域普通技术人员将显而易见的,实现可以产生被格式化以携带例如可以被存储或发送的信息的各种信号。该信息可以包括例如用于执行方法的指令,或者由所描述的实现之一产生的数据。例如,信号可以被格式化以携带所描述的实施例的比特流。这种信号可以被格式化为例如电磁波(例如,使用频谱的射频部分)或基带信号。所述格式化可以包括例如编码数据流和用编码数据流调制载波。所述信号携带的信息可以是例如模拟或数字信息。如已知的,所述信号可以通过各种不同的有线或无线链路来传输。该信号可以存储在处理器可读介质上。
[0303]
本文所用的术语仅是为了描述特定实施例的目的,而不是旨在进行限制。如本文所用,单数形式“一”、“一个”和“该”也可旨在包括复数形式,除非上下文另有明确指示。还应当理解,术语“包括/包含”在本说明书中使用时可以指定所述的例如特征、整数、步骤、操作、元素和/或组件的存在,但是不排除一个或多个其它特征、整数、步骤、操作、元素、组件和/或其组合的存在或添加。此外,当元素被称为“响应”或“连接”到另一元素时,其可以直接响应或连接到另一元素,或者可以存在中间元素。相反,当元素被称为“直接响应”或“直接连接”到其它元素时,不存在中间元素。
[0304]
应当理解,符号/术语“/”、“和/或”和“至少一个”中的任意者的使用,例如在“a/b”、“a和/或b”和“a和b中的至少一个”的情况下,可以旨在仅包括选择第一列出的选项(a)择,或仅选择第二列出的选项(b),或选择两个选项(a和b)。作为进一步的例子,在“a、b和/或c”和“a、b和c中的至少一个”的情况下,这样的措词旨在包括仅选择第一个列出的选项(a),或者仅选择第二个列出的选项(b),或者仅选择第三个列出的选项(c),或者仅选择第一个和第二个列出的选项(a和b),或者仅选择第一个和第三个列出的选项(a和c),或者仅选择第二个和第三个列出的选项(b和c),或者选择所有三个选项(a和b和c)。如本领域和相关领域的普通技术人员所清楚的,这可以扩展到所列的多个项目。
[0305]
在本技术中可以使用各种数值。具体值可以是例如目的,并且所描述的方面不限于这些具体值。
[0306]
应当理解,尽管术语第一、第二等可以在这里用来描述各种元素,但是这些元素不受这些术语的限制。这些术语仅用于将一个元素与另一个元素区分。例如,在不脱离本技术的教导的情况下,第一元素可以被称为第二元素,并且类似地,第二元素可以被称为第一元素。在第一元素和第二元素之间不暗示顺序。
[0307]
对“一个实施例”或“一实施方式”或“一个实现”或“一实现”及其它变型的引用经常用于表达特定特征、结构、特性等(结合实施例/实现所描述的)包括在至少一个实施例/实现中。因此,在本技术中的各个地方出现的短语“在一个实施例中”或“在一实施例”或“在一个实现中”或“在一实现中”以及任何其他变型的出现不一定都指同一实施例。
[0308]
类似地,本文中对“根据实施例/示例/实现”或“在实施例/示例/实现中”及其它变型的引用经常用于传达特定特征、结构或特性(结合实施例/示例/实现描述)可以包括在至少一个实施例/示例/实现中。因此,在说明书中的各个地方出现的表述“根据实施例/示例/实现”或“在实施例/示例/实现中”不一定全部指代相同的实施例/示例/实现,也不一定是
与其他实施例/示例/实现相互排斥的单独的或替代的实施例/示例/实现。
[0309]
权利要求中出现的附图标记仅作为说明,并且不应对权利要求的范围具有限制作用。尽管没有明确描述,但是本发明的实施例/示例和变型可以以任何组合或子组合来采用。
[0310]
当附图被呈现为流程图,但是应当理解,它还提供了相应装置的框图。类似地,当附图被呈现为框图时,应当理解,它还提供了对应的方法/过程的流程图。
[0311]
尽管一些图包括通信路径上的箭头以示出通信的主要方向,但是应当理解,通信可以在与所描绘的箭头相反的方向上发生。
[0312]
各种实现方式涉及解码。如本技术中所使用的,“解码”可以包括例如对接收到的点云帧(可能包括接收到的比特流,其对一个或多个点云帧进行编码)执行的全部或部分过程,以便产生适合于显示或适合于在重构的点云域中进一步处理的最终输出。在各种实施例中,此类过程包括通常由基于图像的解码器执行的过程中的一者或多者。
[0313]
作为进一步的示例,在一个实施例中,“解码”可以仅指熵解码,在另一个实施例中,“解码”可以仅指差分解码,并且在另一个实施例中,“解码”可以指熵解码和差分解码的组合。基于具体描述的上下文,短语“解码过程”是否可以旨在具体地指代操作的子集或一般地指代更广泛的解码过程将是清楚的,并且相信是本领域技术人员所充分理解的。
[0314]
各种实现涉及编码。以与以上关于“解码”的讨论类似的方式,如在本技术中使用的“编码”可以包括例如对输入点云帧执行的以便产生编码的比特流的过程的全部或部分。在各种实施例中,此类过程包括通常由基于图像的解码器执行的过程中的一者或多者。
[0315]
作为进一步的示例,在一个实施例中,“编码”可以仅指熵编码,在另一个实施例中,“编码”可以仅指差分编码,并且在另一个实施例中,“编码”可以指差分编码和熵编码的组合。基于具体描述的上下文,短语“编码过程”是否可以旨在具体地指代操作的子集或一般地指代更广泛的编码过程将是清楚的,并且相信是本领域技术人员所充分理解的。
[0316]
注意,如本文所使用的语法元素,例如etpdu_2d_shift_u,etpdu_2d_shift_v,etpdu_2d_delta_size_u,etpdu_2d_delta_size_v,etpdu_points,etpdu_patch_count,etpdu_ref_index,etpdu_offset,etpdu_mode,sps_enhanced_occupancy_map_texture_patch_present_flag,sps_enhanced_occupancy_map_depth_for_enabled_flag,sps_eom_texture_patch_separate_video_present_flag,pfdu_eom_texture_patch_count,pfdu_patch_count_minus1,patch_mode是描述性术语。因此,它们不排除使用其它语法元素名称。
[0317]
各种实施例涉及速率失真优化。特别地,在编码过程期间,通常考虑速率和失真之间的平衡或折衷,通常给出计算复杂度的约束。速率失真优化通常可以被公式化为最小化速率失真函数,该函数是速率和失真的加权和。存在不同的方法来解决速率失真优化问题。例如,这些方法可以基于对所有编码选项的广泛测试,这其中包括所有考虑的模式或编码参数值,在编码和解码之后对它们的编码成本和重构信号的相关失真进行完整评估。还可以使用更快的方法来节省编码复杂度,特别是基于预测或预测残差信号而不是重构信号来计算近似失真。也可以使用这两种方法的混合,例如通过仅对一些可能的编码选项使用近似失真,而对其它编码选项使用完全失真。其它方法仅评估可能的编码选项的子集。更一般地,许多方法采用各种技术中的任何一种来执行所述优化,但是该优化不一定是对编码成
本和相关失真两者的完整评估。
[0318]
另外,本技术可以涉及“确定”各种信息。确定该信息可以包括例如估计信息、计算信息、预测信息或从存储器取回信息中的一个或多个。
[0319]
此外,本技术可以涉及“访问”各种信息。访问该信息可以包括例如接收信息、取回信息(例如,从存储器)、存储信息、移动信息、复制信息、计算信息、确定信息、预测信息或估计信息中的一个或多个。
[0320]
另外,本技术可以指“接收”各种信息。如同“访问”一样,接收旨在是广义的术语。接收该信息可以包括例如访问信息或(例如从存储器)取回信息中的一个或多个。此外,在诸如存储信息、处理信息、发送信息、移动信息、复制信息、擦除信息、计算信息、确定信息、预测信息或估计信息的操作期间,通常以一种方式或另一种方式涉及“接收”。
[0321]
此外,如本文所使用的,词语“信号”尤其是指向对应的解码器指示某物。举例来说,在某些实施例中,编码器用信号发送特定语法元素se1且可能用信号发送语法元素se2。这样,在一个实施例中,可以在编码器侧和解码器侧使用相同的参数。因此,例如,编码器可以向解码器发送(显式信令)特定参数,使得解码器可以使用相同的特定参数。相反,如果解码器已经具有特定参数以及其它参数,则可以使用信令而不进行发送(隐式信令),以简单地允许解码器知道并选择特定参数。通过避免任何实际功能的传输,在各种实施例中实现了比特节省。应当理解,可以以各种方式来实现信令。例如,在各种实施例中,一个或多个语法元素、标志等被用于将信息用信号发送给对应的解码器。虽然前述内容涉及词语“信号”的动词形式,但是词语“信号”在本文中也可以用作名词。
[0322]
已经描述了许多实现。然而,应当理解,可以进行各种修改。例如,不同实现的元素可以被组合、补充、修改或移除以产生其他实现。另外,本领域技术人员将理解,其他结构和过程可以替代所公开的那些,并且所得到的实现将以至少基本上相同的方式(一个或多个)执行至少基本上相同的功能(一个或多个),以实现与所公开的实现至少基本上相同的结果(一个或多个)。因此,本技术考虑了这些和其他实现。
再多了解一些

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

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

相关文献