CN116997931A - 用于编码及解码trisoup顶点位置的方法 - Google Patents
用于编码及解码trisoup顶点位置的方法 Download PDFInfo
- Publication number
- CN116997931A CN116997931A CN202280016557.7A CN202280016557A CN116997931A CN 116997931 A CN116997931 A CN 116997931A CN 202280016557 A CN202280016557 A CN 202280016557A CN 116997931 A CN116997931 A CN 116997931A
- Authority
- CN
- China
- Prior art keywords
- threshold range
- point cloud
- edge
- vertex
- points
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 85
- 238000005070 sampling Methods 0.000 claims description 24
- 238000013139 quantization Methods 0.000 claims description 14
- 101100311460 Schizosaccharomyces pombe (strain 972 / ATCC 24843) sum2 gene Proteins 0.000 claims description 8
- 238000003860 storage Methods 0.000 claims description 4
- 230000006835 compression Effects 0.000 description 39
- 238000007906 compression Methods 0.000 description 39
- 230000008569 process Effects 0.000 description 22
- 230000005540 biological transmission Effects 0.000 description 6
- 238000009877 rendering Methods 0.000 description 6
- 238000012935 Averaging Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000005055 memory storage Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 101100116390 Schizosaccharomyces pombe (strain 972 / ATCC 24843) ded1 gene Proteins 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 235000014347 soups Nutrition 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
本文提供用于编码和解码3D点云的方法以及编码器和解码器。其中,用于编码的方法包括:获取八叉树信息,所述八叉树信息包括体的八叉树结构,其中,八叉树结构包括作为八叉树结构的叶节点的多个立方体;提供阈值范围;确定每个立方体的边缘上的顶点位置Vj,其中,在相应边缘上的顶点位置由点云中到相应边缘的距离小于阈值范围的点来确定;并且将八叉树信息和顶点信息编码成比特流;其中,所述阈值范围取决于立方体的尺寸。
Description
技术领域
本发明涉及用于从比特流解码3D点云的方法。此外,本发明的目的是提供一种用于将3D点云编码成比特流的方法。进一步,本发明的目的是提供编码器和解码器、根据本发明编码的比特流和软件。特别地,本发明的目的是提供一种提高3D点云的解码或重建过程的准确性的方法。
背景技术
作为表示3D数据的格式,点云最近获得了关注,因为它们在表示所有类型的3D对象或场景方面具有多功能性。因此,许多用例可以通过点云来解决,其中包括
电影后期制作,
实时3D沉浸式临场感或虚拟现实(VR)/增强现实(AR)应用,
自由视点视频(例如,用于观看体育运动),
地理信息系统(又名制图),
文化遗产(将稀有物品的扫描件存储成数字形式),
自动驾驶,包括环境的3D映射和实时Lidar数据采集。
点云是位于3D空间中的一组点,可选地,每个点都附加有附加值。这些附加值通常称为点属性。因此,点云是几何结构(每个点的3D位置)与属性的组合。
属性可以是,例如,三分量颜色、材料属性诸如反射率、和/或与点相关联的表面的两分量法向量。
点云可以由各种类型的设备捕获,如相机阵列、深度传感器、Lidar、扫描仪,或者可以由计算机生成(例如在电影后期制作中)。根据用例的不同,点云可能有数千到数十亿个点用于制图应用。
点云的原始表示需要每个点非常高的比特数,每个空间分量X、Y或Z至少有十二个比特,并且可选地为属性提供更多比特,例如三乘以10比特用于颜色。基于点云的应用的实际部署需要压缩技术,所述压缩技术能够以合理的存储和传输基础设施来存储和分发点云。
对于分发到终端用户并由终端用户可视化,例如,在AR/VR眼镜或任何其他支持3D的设备上,压缩可能是有损的(比如在视频压缩中)。其他用例确实需要无损压缩,例如,医疗应用或自动驾驶,以避免改变从压缩和传输的点云分析中获得的决策结果。
直到最近,点云压缩(又名PCC)还没有被大众市场解决,并且没有可用的标准化点云编解码器。在2017年,标准化工作组ISO/JCT1/SC29/WG11,也称为运动图像专家组或MPEG,启动了关于点云压缩的工作项目。这产生了两个标准,即
MPEG-I第5部分(ISO/IEC 23090-5)或基于视频的点云压缩(V-PCC)和
MPEG-I第9部分(ISO/IEC 23090-9)或基于几何的点云压缩(G-PCC)。
V-PCC和G-PCC标准都在2020年末完成了它们的第一个版本,并将很快上市。
V-PCC编码方法通过执行3D对象的多个投影以获得打包成图像(或者在处理动态点云时打包成视频)的2D补丁(patch)来压缩点云。然后,使用现有的图像/视频编解码器压缩获取到的图像或视频,允许利用已经部署的图像和视频解决方案。然后,使用现有的图像/视频编解码器压缩获取到的图像或视频,允许利用已经部署的图像和视频解决方案。就其本质而言,V-PCC仅在密集和连续的点云上有效,因为图像/视频编解码器无法压缩非平滑补丁,例如像从Lidar采集的稀疏几何数据的投影中获得的非平滑补丁。
G-PCC编码方法有两种用于压缩几何结构的方案。
第一种方案基于点云几何结构的占用树(八叉树/四叉树/二叉树)表示。被占用的节点被分割,直到达到特定大小,并且被占用的叶节点提供点的位置,通常在这些节点的中心。通过使用基于邻居的预测技术,可以获得对密集的点云的高水平压缩。稀疏点云也通过对具有非最小尺寸的节点内的点的位置进行直接编码,通过当节点中仅存在孤立的点时停止树构造来处理;这种技术被称为直接编码模式(DCM,Direct Coding Mode)。
第二种方案基于预测树,每个节点代表一个点的3D位置,并且节点之间的关系是从父到子的空间预测。该方法只能处理稀疏点云,并且与占用树相比,具有延迟更低、解码更简单的优点。然而,相较于第一种基于占用的方法,压缩性能仅稍微好一点,并且编码复杂,在构建预测树时密集地寻找最佳预测子(在一长串潜在的预测子中)。
在这两种方案中,属性(解)编码在几何(解)编码完成之后执行,导致两遍编码。因此,通过使用将3D空间分解成独立编码的子体(sub-volume)的切片可以获得低延迟,而无需在子体之间进行预测。当使用许多切片时,可能会严重影响压缩性能。
一个重要的用例是动态AR/VR点云的传输。动态意味着点云随时间演变。而且,AR/VR点云通常是局部2D,因为它们在大多数时候表示对象的表面。因此,AR/VR点云是高度连接的(或者说是密集的),因为点很少是孤立的,而是有许多邻居。
密集(或实心)点云表示连续的表面,其分辨率使得与点相关联的体(volume)(称为体素的小立方体)相互接触,而不会在表面上显示任何可见的孔。
这种点云通常用于AR/VR环境,并由终端用户通过例如电视、智能手机或耳机的设备查看。它们被传输到设备或存储在本地。许多AR/VR应用使用动态点云,而不是静态点云,所述动态点云随时间变化。因此,数据量巨大,并且必须进行压缩。如今,基于点云几何结构的八叉树表示的无损压缩可以实现每点略低于一比特(1bpp)。这对于实时传输可能是不够的,实时传输可能涉及每帧几百万个点,帧速率高达每秒50帧(fps),从而导致每秒数百兆比特的数据。
因此,可以使用有损压缩,保持可接受的视觉质量的通常需求,同时充分压缩以适应由传输信道提供的带宽,同时保持帧的实时传输。在许多应用中,低至0.1bpp的比特率(比无损编码的压缩率高10倍)已经使实时传输成为可能。
基于MPEG-I第5部分(ISO/IEC 23090-5)或基于视频的点云压缩(V-PCC)的编解码器VPCC可以通过使用视频编解码器的有损压缩来实现如此低的比特率,该视频编解码器压缩从点云在平面上的投影得到的2D帧。几何结构由组装成帧的一系列的投影补丁表示,每个补丁是一个小的局部深度图。然而,VPCC不是通用的,并且仅限于不表现出局部复杂几何结构(如树、头发)的狭窄类型的点云,因为获得的投影深度图不够平滑,无法被视频编解码器有效压缩。
纯3D压缩技术可以处理任何类型的点云。3D压缩技术能否在密集点云上与VPCC(或任何投影+图像编码方案)竞争,仍然是一个悬而未决的问题。标准化仍在朝着提供GPCC的扩展(修订)的方向发展,该扩展可提供有竞争力的有损压缩,该有损压缩可像VPCC帧内编码一样好地压缩密集点云,同时保持GPCC可以处理任何类型的点云(密集点云、Lidar、3D地图)的多功能性。这个扩展可能会使用所谓的Trisoup编码方案,该方案适用于八叉树。ISO/IEC的标准化工作组JTC1/SC29/WG7正在对TriSoup进行探索。Trisoup编码也已知为:A.DRICOT等人,“Adaptive multi-level triangle soup for geometry-based pointcloud coding”,2019,IEEE第21届多媒体信号处理国际研讨会(MMSP),Nakagami O.:“report on triangle soup decoding”,ISO/IEC JTC1/SC29-WG11 m52279,2020,and US10,192,353.
在八叉树几何编码的有损压缩中,定义了几种压缩率来满足不同的带宽需求。较低压缩率下的叶节点比较高压缩率下的叶节点的尺寸大。
然而,当编码八叉树几何结构时,在顶点确定过程中没有考虑各个叶节点的尺寸,导致编码的几何结构信息的不准确性,并因此导致解码的3D点云几何结构的准确性损失。
发明内容
因此,本发明的目的是提供一种用于将3D点云的几何结构编码成比特流以及以提高的准确性从比特流解码3D点云的方法。
该问题通过权利要求1的编码方法、权利要求12的解码方法、权利要求13的编码器、权利要求14的解码器、权利要求15的比特流和权利要求16的软件来解决。
在本发明的第一方面中,提供了一种用于将3D点云编码成比特流的方法,优选地在编码器中实现。该3D点云编码方法包括:
获取八叉树信息,该八叉树信息包括体的八叉树结构,其中,所述八叉树结构包括作为八叉树结构的叶节点的多个立方体;
确定阈值范围;
确定在每个立方体的边缘上的顶点位置Vj作为顶点信息,其中,相应边缘上的所述顶点位置Vj由在点云中的到相应边缘的距离小于阈值范围的点确定;以及
将八叉树信息和顶点信息编码成比特流;
其中,阈值范围取决于立方体的尺寸。
因此,在第一步骤中,从可以由诸如LIDAR设备等的设备获取的点云数据获得八叉树信息,该点云数据包括包含3D点云的体的八叉树结构。其中,八叉树结构包括多个作为八叉树结构的叶节点的立方体。因此,通过八叉树结构的叶节点,3D点云的体被划分为包含点云的点的立方体。
在进一步的步骤中,确定阈值范围。其中,阈值范围取决于立方体的尺寸。因此,阈值范围对于不同尺寸的立方体是不同的,并且对于较大的立方体可以更大。
在进一步的步骤中,确定每个立方体的边缘上的顶点位置Vj作为顶点信息。其中,在相应边缘j上的顶点位置Vj由点云中的到相应边缘的距离小于阈值范围的点确定。因此,为了确定在边缘上的顶点位置Vj,只考虑靠近相应边缘的点,尤其是到相应边缘的距离比阈值小的点。
随后,八叉树信息和顶点信息被编码到比特流中。
因此,通过使阈值范围适应八叉树结构的立方体的尺寸,可以实现不同的阈值范围,以便在确定顶点位置时考虑点云中足够数量的点。特别地,对于较大尺寸的叶节点的立方体,点云的点可能与相应的边缘间隔开。这将导致在确定相应的顶点位置Vj时忽略这些点,并且导致相应边缘上的顶点位置Vj的不准确性。在极端情况下,如果没有点在相对于相应边缘的阈值范围内,则在相应边缘上根本没有顶点被确定,从而忽略当前叶节点内距离相应边缘比阈值范围更远的所有其它点。特别地,对于大尺寸的立方体,这个问题变得越来越明显,并且当在解码器侧解码时,会导致3D点云几何结构的不准确性增加。通过根据立方体的尺寸调整阈值范围,可以考虑到更多的点,并且防止相关联的点的遗漏。因此,通过使阈值范围适应于立方体的尺寸,编码的准确性被增强,从而在解码器侧为解码3D点云几何结构提供更好的结果。
优选地,编码器采用TriSoup编码方案对比特流进行编码。
优选地,点云的几何结构,特别是八叉树结构通过基于几何的点云压缩(G-PCC)进行编码。
优选地,比特流是MPEG G-PCC兼容的比特流。
优选地,阈值范围包括第一阈值范围t1min和至少一个第二阈值范围t2min,其中,至少一个第二阈值范围t2min大于第一阈值范围t1min。进一步的,第一阈值范围t1min可以是固定的,具有固定的值。进一步的,根据本发明,所述第二阈值范围t2min取决于立方体的尺寸。因此,特别是第一阈值范围t1min实现了现有技术的现状。因此,通过实现至少一个第二阈值范围t2min,立方体的尺寸被考虑到,而不需要从根本上调整当前的编码方案。因此,通过第一阈值范围t1min以及第二阈值范围t2min定义了两个范围,其中,为确定顶点位置而考虑的点云的点可以在第一阈值范围t1min内,或第二阈值范围t2min内。
优选地,第一阈值范围t1min在由设备获取的原始点云数据的采样分辨率单位中等于1。
优选地,阈值范围和更优选地,至少一个第二阈值范围t2min是基于点云的采样距离dsampl确定的。其中,采样距离是初始点云数据的属性,并且如果在数据采集期间没有丢失点,则与以采样分辨率为单位的点云的体的实际采样点之间的距离相关。其中,dsampl通过例如获取点云的点的设备,例如LIDAR等来设置。
优选地,点云的采样距离dsampl由来确定,其中,Nleaf是体中叶节点的数量,Ntotal是点云中的点的数量,并且N是叶节点的相应立方体的尺寸。其中,在编码器侧,Ntotal对于编码器是已知的。并且,叶节点的数量Nleaf在编码器侧是已知的。进一步,N定义了以设备获取的原始点云数据的采样分辨率为单位的叶节点的尺寸。因此,dsampl可以从点云数据中确定,并且取决于叶节点的立方体的尺寸。因此,随着叶节点的尺寸N的增大,dsampl也增大,从而增大至少一个第二阈值范围。
优选地,至少一个第二阈值范围t2min是基于边缘上的顶点位置的量化步长ΔV来确定的。特别地,在立方体的边缘上的顶点位置Vj由pQ=round(p/ΔV)来量化和计算,其中,p是根据点云的所考虑的点确定出的沿着叶节点的立方体的相应边缘的顶点的位置,pQ是量化顶点位置。其中,顶点位置的量化步长ΔV取决于压缩率,还与叶节点的立方体的尺寸有关,其中,随着叶节点的立方体的尺寸的增大,从而量化步长ΔV也增大,同时增大至少一个第二阈值范围t2min。
优选地,在确定至少一个第二阈值范围t2min时,量化步长ΔV被乘以因子α。其中,α在1/8和1之间,或者等于1/8或1,并且更优选地,在1/8和1/4之间,或者等于1/8或1/4。最优选地,将α设置成1/4。因此,通过因子α,实现了相当大的阈值范围,增加了编码过程的准确性。
优选地,阈值范围和更优选地,至少一个第二阈值范围t2min由点云的采样距离dsampl和量化步长ΔV之和来确定。特别地,所述至少一个第二阈值范围由t2min=dsampl+αΔV来确定。
优选地,对于小立方体,t2min被设置为1,因此,对于小立方体,点丢失的可能性很小,因此,将范围扩展t2min可能没必要。这尤其适用于立方体尺寸N大约在2*t2min到4*t2min的情况。
优选地,当确定顶点位置时,根据到相应边缘的距离来对点的位置进行加权。因此,各点到叶节点的边缘的距离越大,这些点对顶点位置Vj确定的影响就越小。因此,尽管当确定顶点位置时,考虑了叶节点中的点的当前位置,但是顶点位置的确定由点云中靠近相应边缘的点来控制。
优选地,点云中到相应边缘的距离小于第一阈值范围t1min的点由第一权重(或加权因子)W1进行加权,并且点云中到相应边缘的距离小于第二阈值范围t2min的点由第二权重(或加权因子)W2进行加权。其中,W1大于W2,使得当确定相应的顶点位置时,到相应边的距离小于至少一个第二阈值范围的点的位置比到相应边的距离小于第一阈值的点的位置具有更小的影响。
优选地,权重或加权因子W1和W2是固定值,其中,优选地,W1被设置介于1和4之间,并且更优选地,W1=2。可替换地或附加地,W2优选地设置介于0.2和2之间,并且更优选地W2=1。
优选地,权重W1由第二阈值范围t2min与第一阈值范围t1min之间的比值确定,即,W1=t2min/t1min,并且W2=1。
优选地,在对应边缘上的顶点位置Vj由下式确定
Vj=(W1×Dsum1+W2×Dsum2)/(W1×Nclosest_p1+W2×Nclosest_t2)
其中,W1和W2是加权因子,其中W1>W2。进一步,Dsum1是到相应边缘的距离小于第一阈值范围t1min的点的沿着相应边缘的位置之和,并且Nclosest_p1指示到相应边缘的距离小于第一阈值范围t1min的点的数量。类似地,Dsum2指示到相应边缘的距离小于至少一个第二阈值范围t2min的点沿着相应边缘的位置之和,并且Nclosest_p2指示到相应边缘的距离小于至少一个第二阈值范围t2min的点的数量。因此,Dsum2和Nclosest_p2可以包括在第一阈值范围t1min内的点(如果点存在的话),并且进一步包括到相应边缘的距离大于第一阈值范围t1min但小于第二阈值范围t2min的点(如果点存在的话)。
优选地,提供了超过一个的第二阈值范围timin,i=2,...,n,其中,t2min<t3min<...<tnmin。因此,通过多于一个第二阈值范围timin,确定多个范围,其中在确定相应边缘上的顶点位置Vj时考虑所确定的多个范围中的点云的点。进一步,对于每个第二阈值范围timin,可以确定相应权重Wi。然后,顶点位置Vj由下式确定:
优选地,Wi可以被设置为并且Wn=1。
优选地,timin可以被设置为timin=(i-1)dsampl+αΔV,其中,i=2,...,n。
在本发明的另一方面,提供了一种从比特流解码3D点云的方法,优选地在解码器中实现。所述方法包括:
接收并解码比特流,其中,比特流包括八叉树信息和顶点信息,所述八叉树信息包括关于所述点云的体的八叉树结构的信息,所述顶点信息包括关于所述八叉树结构的叶节点的立方体的边缘上的顶点存在以及顶点位置的信息;
通过连接与八叉树结构的叶节点相关的一个立方体的顶点来确定三角形;
对所述三角形进行体素化以确定所述解码的点云的点,
其中,至少一个三角形沿着至少一条边进行延伸以用于体素化。
因此,在第一步骤中接收比特流,并且该比特流包含关于被解码的点云的体的八叉树结构的信息。优选地,点云的几何结构是G-PCC编码的。因此,通过从比特流解码,可以提供关于点云的体的八叉树信息。进一步,比特流还包括顶点信息,该顶点信息包括关于在八叉树结构中与叶节点相关联的立方体的边缘上的顶点存在以及顶点位置的信息。因此,通过解码比特流来提供顶点信息。其中,根据前述的编码方法对比特流进行编码。优选地,在编码器处由Trisoup编码方案进行编码。
在解码前一步骤中描述的来自比特流的八叉树信息和顶点信息之后,在用于重建点云几何结构的下一步骤中,通过连接立方体的边缘上的顶点来为每个立方体确定三角形。因此,三角形的表面由比特流中包含的顶点的位置来确定。为了从三角形重建点云的点,通过光线追踪过程来执行体素化,其中,在光线追踪过程中,光线沿着平行于三个轴中任何一个的三个方向发射。它们的原点是对应于渲染所需的采样精度的整数坐标点。然后确定光线与其中一个三角形的交点(如果有的话),并将其添加到渲染点列表中,即,添加到点云的点。在体素化过程中,通过光线对三角形的表面进行采样,以确定点云的点。
优选地,用于编码的方法进一步根据前面结合用于解码的方法描述的特征来构建。
在本发明的另一方面,提供了一种将3D点云编码成比特流的编码器。所述编码器包括存储器和处理器,其中,指令存储在存储器中,当指令被处理器执行时,执行前述编码方法的步骤。
在本发明的另一方面,提供了一种用于从比特流中解码3D点云的解码器。所述解码器包括存储器和处理器,其中,指令存储在存储器中,当指令被处理器执行时,执行前述解码方法的步骤。
在本发明的另一方面,提供了一种比特流,其中,所述比特流通过前述编码方法的步骤进行编码。
优选地,所述比特流是MPEG G-PCC兼容的比特流。
在本发明的另一方面,提供了一种计算机可读存储介质,其包括用于执行上述将3D点云编码为比特流的方法的步骤的指令。
在本发明的另一方面,提供了一种计算机可读存储介质,其包括用于执行上述用于从比特流解码3D点云的方法的步骤的指令。
附图说明
在下文中,参照附图更详细地描述本发明。
所述附图展示:
图1示出八叉树结构的生成的示例。
图2示出根据图1的八叉树。
图3示出根据现有技术确定立方体的边缘上的顶点的示例。
图4示出生成三角形的示例。
图5示出立方体的边缘上的顶点的示例。
图6示出由顶点生成三角形的示例。
图7示出根据图6确定三角形的顺序的示例。
图8示出体素化步骤的示意图。
图9示出用于确定叶节点中顶点位置的详细图。
图10示出根据现有技术确定顶点位置的示例。
图11示出根据本发明的用于编码3D点云几何结构的方法的流程图。
图12示出本发明的详细实施例。
图13示出根据本发明的叶节点的顶点位置的示例。
图14示出根据本发明的用于解码3D点云几何结构的方法的流程图。
图15示出根据本发明的编码器,以及
图16示出根据本发明的解码器。
具体实施方式
参见图1。为了确定八叉树信息,几何结构编码过程的第一步是构建和编码八叉树,如图1和图2所示。边界框是包含所有点的主体100,并且与根节点112(即,树110顶部的单个节点)相关联。该主体100首先被划分为8个子体102,称为八分体,每个子体由树110中的节点114表示。然后在子体104中继续递归地分割出八分体106,直至达到目标级别,其中所述八分体106被至少一个点占用,在图1和图2中用阴影表示。
每个八分体(或节点)由一个占用字节表示,该占用字节包含每个子八分体的一位,如果子八分体被至少一个点占用,则该对应的位设置为1,否则设置为零。所有八分体的占用字节118被序列化(以广度优先的顺序)并且用二进制算术编码器进行熵编码。
图3示出3D表面210的块表示,以及TriSoup中块220的示例。表面210与块220相交,因此块220是被占用的块,并且块220存在于3D空间中的多个块200之间。在块220内,表面210的封闭部分与块的边缘相交于多边形230的六个图示顶点处。如果块220的边缘包含顶点,则称该边缘被选中。
图4示出了Trisoup中的块220,为了清晰起见,省略了表面210,并且示出了未被选中的边缘270、被选中的边缘260和第i个边缘250。假设第i个边缘250被选中。为了指定边缘j上的顶点Vj,指定一个标量值以指示边缘250的长度的相应分数(fraction)。
如图3和图4所示,在八叉树的目标级别中的每个八分体220内,TriSoup将原始表面210表示为一组三角形245。该表面被编码并用于获取重建(或解码)点的位置。首先,通过对用以表示该表面的原始点中最接近八分体内这些边缘的点的位置求平均,来估计由原始点表示的该表面与八分体的边缘的交点。其次,所有八分体的十二个边缘以及其相关联的交点(如果有的话)被分别存储为段和顶点。然后,每个(唯一的)段按如下编码。第一个单个比特被算数编码,如果段被顶点占用,则该比特设置为1,否则设置为0。如果它被占用,顶点在段上的相对位置也会被算术编码。
三角形的顶点310沿着与树的叶节点300相关联的体的边缘320进行编码,如图5所示。在边缘320上的这些顶点310在具有公共边缘320的多个叶节点300之间被共享。这意味着属于至少一个叶节点的每个边缘最多编码一个顶点。这样,通过叶节点保证了模型的连续性。
如上所述,Trisoup顶点编码需要每个边缘有两个信息:
顶点标志,指示边缘上是否存在TriSoup顶点,以及
当存在时,沿边缘的顶点位置。
因此,编码数据包括八叉树数据以及TriSoup数据。
顶点标志由自适应二进制算术编码器编码,该编码器使用一个特定上下文对顶点标志进行编码。长度为N=2s的边缘上的顶点位置可以通过将s比特推入(绕过/非熵编码)比特流来以单位精度进行编码。
在叶节点内,如果在叶节点300的边缘320上存在至少三个顶点310,则由TriSoup顶点构建三角形。重建的三角形330、340如图6所示。
显然,三角形330、340的其他组合也是可能的。三角形的选择来自于一个三步骤的过程:
确定沿三个轴之一的主导方向;
根据主导方向将TriSoup顶点排序;以及
基于有序顶点列表构建三角形。
关于三角形在当前叶节点中的确切位置的知识是不需要知晓的,并且可以从顶点推导出来。
图7将用来解释此过程。三个轴中的每个轴都经过测试,并且将使三角形的总表面最大化的一个轴作为主轴。为图的简单起见,图8只描述了两个轴上的测试。
通过在2D平面上垂直投影立方体和TriSoup顶点310来执行沿着垂直轴的第一测试(顶部)。然后,顶点310按照相对于投影节点(正方形)的中心的顺时针顺序排序。然后,基于有序顶点,按照固定规则构建三角形330、340。这里,当涉及4个顶点时,三角形123以及三角形134被系统地构建。当存在3个顶点时,唯一可能的三角形是123。当存在5个顶点时,固定规则可以是构建三角形123、134和451。以此类推,最多达到12个顶点。
通过将立方体和Trisoup顶点水平投影在2D平面上,执行沿水平垂直轴的第二测试(左侧)。
垂直投影展示了三角形的最大的2D总表面,因此,主轴被选择为垂直轴,并且按照垂直投影的顺序获得构建的TriSoup三角形,如图7所示,位于节点内部。需要注意的是,把横轴作为主轴会造成三角形的另一种构建。
通过最大化投影表面来适当地选择主轴,从而实现无孔点云的连续重建。
将TriSoup三角形渲染成点是由光线追踪执行的。由光线追踪渲染的所有点的集合将形成解码点云。
对于图8所示的光线跟踪,光线沿着平行于轴的三个方向发射。它们的原点是与渲染所需的采样精度相对应的精度的整数(体素化)坐标的点。然后,将与TriSoup三角形之一的交点(如果有的话,虚线点)进行体素化(=四舍五入到所需采样精度的最近点),并将其添加到渲染点列表中。
在将TriSoup应用到所有叶节点之后,即,构建三角形并通过光线追踪获得点,丢弃所有渲染点的列表中相同点的副本(即,在共享相同位置和体的所有体素中仅保留一个体素),以获得一组解码的(唯一的)点。
在当前MPEG的G-PCC中,从原始点云的最近点(相对于边缘)推导出每个叶节点的沿边缘的顶点,顶点确定方法遵循以下步骤:
将阈值tmin确定为1,以定义点相对于叶节点的边缘的靠近程度。
为每个边缘定义两个变量,一个变量为相对于边缘的最近点的数量Nclosest_p,另一个变量是相对于边缘的所有最近点的相对于叶节点原点O(沿平行于边缘的轴)的位置距离之和Dsum,并且它们最初都被设置为0。
迭代每个叶节点以确定每个边缘的变量。
在每个叶节点内,迭代属于该叶节点的每个点P,以确定点P靠近该叶节点的哪条边。
计算点P的位置与叶节点原点O之间沿每个轴的位置距离(Dx,Dy,Dz),可以通过下式描述
Dx=Px-Ox,
Dy=Py-Oy,
Dz=Pz-Oz。
迭代每个点以比较其到叶节点的每个边缘的相对距离(由位置距离(Dx,Dy,Dz)表示)和阈值tmin。对于每个边缘,都有一个条件(由阈值tmin确定)来确定点是否靠近它。例如,如图9所示,所述条件(点靠近用“e12”表示的边缘12)是Dx<tmin,并且Dy<tmin,并且点P1和P2满足所述条件。
如果点P靠近边缘,则边缘的Nclosest_p增加1,并且边缘的Dsum增加Dj,其中,j是平行于该边缘的轴,例如,对于图9中沿z轴的点P1,其产生Dsum=Dsum+Dz。上述过程可以用以下等式描述
Nclosest_p=Nclosest_p+1,
Dsum=Dsum+Dj。
将所有的边缘(包括变量的信息)放入列表中,对它们进行排序,并通过删除重复的边缘来找到唯一的边缘。
迭代叶节点的各个唯一的边缘,以根据该边缘的Nclosest_p和Dsum,来确定该边缘的顶点存在和顶点位置。
如果Nclosest_p>0,则顶点存在的标志为真;否则,顶点存在的标志为假;
如果顶点存在的标志为真,则通过对所有最近点的距离值Dj求平均来确定沿边缘的顶点位置。
如图9所示,边缘12上有一个顶点Vj(0,0,ZV)。我们可以看到边缘12有两个最近点,它们是P1和P2,因此顶点位置的坐标ZV可以由平均P1和P2的z坐标来获得。
在获得每个边缘的顶点存在的标志以及顶点位置作为顶点信息后,将顶点信息编码成比特流。接下来,该信息可以用于编码器中几何重建过程中的三角形构建,并且也可用于解码器中的三角形构建。
在八叉树几何编码的有损压缩中,定义了几种压缩率来满足不同的带宽需求。较低压缩率下的叶节点尺寸大于较高压缩率下的叶节点尺寸,例如,根据G-PCC通用测试条件,有4种压缩率,分别是r01、r02、r03和r04。并且以设备获取的原始点云数据的采样分辨率为单位的叶节点的尺寸大小N与压缩率r之间的对应关系如表1所示。
r | r01 | r02 | r03 | r04 |
N | 32 | 16 | 8 | 4 |
表1示出叶节点尺寸N与压缩率r之间的对应关系。
然而,在现有技术的顶点确定过程中,用于寻找最近点的阈值tmin通常被设置为1,其不适应不同压缩率下不同的叶节点的尺寸/叶节点的立方体的尺寸,并且较大的叶节点尺寸会导致较大的重建误差。
从这里开始,这些与叶节点相关联的图被描绘成2D体(正方形)而不是3D体(立方体)。读者应记住本发明中描述的所有方法都适用于3D空间。
参见图10,图10示出了叶节点500的N*N*N体,N=2s=32。其中,在该体内,在图10的示例中沿着一个方向有8个可能的采样点,但不限于该特定值。实际的采样距离dsampl(如图10所示)在图10的示例中等于4,但不限于该特定值。叶节点500的边缘510位于位置-2和N-2,以确保从体传递到相邻体时Trisoup模型的连续性。实际上,这意味着立方体的面在相邻的体之间共享。这样,存在于边缘510上的顶点的位置不依赖于该边缘所属的立方体。其中,量化顶点的可能位置520,其中量化步长ΔV在图10中示出,并且在图10的示例中被选择为等于4。然而,对于不同的压缩率,可以选择不同尺寸的量化步长ΔV,具体地,量化步长ΔV与采样距离dsampl无关。在图10的示例中,最近点相对于叶节点500的边缘510的距离是2,因此图10中没有点满足如上所述的现有技术中tmin=1的每个边缘的最接近条件。因此,叶节点500的任何边缘510上都没有顶点,并且将不会在叶节点500内构建Trisoup三角形。因此,叶节点500内点云的所有点(实心圆540)都被遗漏,并且不会在解码器中被重建,这导致在当前的MPEG G-PCC的Trisoup编码中编码效率不是最优的。其中,图10中的空心圆530描述了根据一个设备获取一个对象的点云数据的采样距离dsampl的采样位置,所述采样位置由于该对象可能不存在于相应位置而未被占用。图10中的实心圆540描述了设备的采样位置,所述采样位置由于物体可能存在于相应位置而被占用。
此外,在一些情况下,因为叶节点内的许多点离边缘更远(与阈值tmin定义的距离相比),所以在叶节点的一个或两个边缘上只有一个或两个顶点,叶节点内不会有Trisoup三角形被构建,因为用于构建Trisoup三角形的叶节点的最小顶点数是3。因此,在这样的叶节点中的所有点都将在重建的点云中被遗漏,这也将导致编码效率不是最优的。
因此,要解决的问题是找到一种方法,以在较低的压缩率下恢复由于寻找每个边缘的最近点的非自适应阈值tmin而导致的丢失点。
参见图11,图11示出了根据本发明的用于将3D点云编码成比特流的方法,优选地在编码器中实现。
在步骤S01中,获得八叉树信息,所述八叉树信息包括体的八叉树结构,其中,八叉树结构包括作为八叉树结构的叶节点的多个立方体。
在步骤S02中,确定阈值范围,其中,阈值范围取决于立方体的尺寸。
在步骤S03中,将每个立方体的边缘上的顶点位置Vj确定为顶点信息,其中,相应边缘上的顶点位置Vj由点云中距相应边缘的距离小于阈值范围的点来确定;以及
在步骤S04中,将八叉树信息以及顶点信息编码成比特流。
参见图12,图12针对一个叶节点400示出了本发明的细节。在图12中,应当确定边缘410上的顶点位置。若干点440、450、460、465在叶节点400内。为了确定边缘410上的顶点位置470,定义第一阈值范围t1min420,从而定义第一范围425,其中,当确定顶点位置时,考虑在该第一范围425内的点。在图12的示例中,一个点440在由第一阈值范围t1min420确定的第一范围425内。其中,根据本发明,第一阈值范围420可以是如现有技术中的固定值,并且可以等于1。根据本发明,定义第二阈值范围t2min430,从而定义第二范围435,其中,当确定边缘410上的顶点位置470时,也考虑在该第二范围435中的点。在图12的示例中,一个点450在由第二阈值范围430定义的第二范围435内。在现有技术中不会考虑点450,因为它在通常的阈值范围之外。然而,由于定义了第二阈值范围t2min430,在确定边缘410上的顶点位置时,还考虑额外点450。
根据本发明,可以定义另外的第二阈值范围480,以便在确定叶节点400的边缘410上的顶点位置时考虑更多的点。其中,在图12的示例中,当定义另外的第二阈值范围480时,点460也可以被考虑到。
此外,在确定边缘410上的顶点位置470时,不考虑叶节点400内到相应边缘410的距离大于第二阈值范围430的点465。因此,在图12的示例中,当确定边缘410上的顶点位置470时,考虑第一范围425中的点440和第二范围435中的点450。如果在第一范围425或第二范围435内存在点云的至少一个点,则在边缘410上存在顶点,并且顶点位置470被确定。当然,如果提供了另外的阈值范围480,如果点云的至少一个点存在于第一范围425、第二范围435或由另外的第二阈值范围480定义的至少任何另外的范围内,则确定边缘410上的顶点。
在根据本发明的一个实施例的方法中,每个叶节点的顶点位置确定遵循以下步骤:
确定两个阈值:
第一阈值范围t1min可以是固定的并且被设置为1,以定义最近点相对于叶节点的边缘的靠近程度;第二阈值范围t2min被设置为第二搜索范围dSearchEnc,以在较低压缩率下遗漏更少的点。
为每个边缘定义两对变量。
一对变量是:最近点的数量Nclosest_p1(相对于边缘的距离由第一阈值范围t1min定义),相对于边缘的所有最近点相对于叶节点的立方体的原点O(沿着平行于边缘的轴)的位置距离之和Dsum1。另一对变量是:第二近点的数量Nclosest_p2(相对于边缘的距离由第二阈值范围t2min定义),以及相对于边缘的所有第二近点相对于叶节点的立方体的原点O(沿着平行于边缘的轴)的位置距离之和Dsum2。所有变量最初都设置为0。
迭代每个叶节点以获得每个边缘的两对变量。
在每个叶节点内,迭代属于该叶节点的每个点P,通过使用这两个阈值来确定点P靠近叶节点的哪个边缘。
计算点P的位置和叶节点的原点O之间的沿着每个轴的位置距离(Dx,Dy,Dz),可以描述为
Dx=Px-Ox,
Dy=Py-Oy,
Dz=Pz-Oz。
迭代每个点以比较其到叶节点的每个边缘的相应距离(由位置距离(Dx,Dy,Dz)表示)和第一阈值范围t1min以及第二阈值范围t2min。对于每个边缘,有两个条件来确定点是否离它最近。条件1是Dj<t1min,条件2是Dj<t2min。相对于条件1,对于叶节点中的每个点P,条件2是一个更宽松的条件。
如果叶节点中的点P满足一个边缘的条件1,则该边缘的Nclosest_p1增加1,并且该边缘的Dsum1增加Dj,其中,j是平行于该边缘的轴。上述过程可以用以下等式描述
Nclosest_p1=Nclosest_p1+1,
Dsum1=Dsum1+Dj。
如果叶节点中的点P满足一个边缘的条件2,则该边缘的Nclosest_p2增加1,并且该边缘的Dsum2增加Dj,其中,j是平行于该边缘的轴。上述过程可以用以下等式描述
Nclosest_p2=Nclosest_p2+1,
Dsum2=Dsum2+Dj。
将所有边缘(包括变量的信息)放入一个列表中,对它们进行排序,并通过删除重复的边缘来找到唯一的边缘。
迭代每个唯一边缘,以根据该边缘的变量Nclosest_p1、Nclosest_p2、Dsum1、Dsum2来确定该边缘上的顶点存在和顶点位置。详细来说:
如果Nclosest_p1>0或者Nclosest_p2>2,则边缘的顶点存在标志为真;否则,边缘的顶点存在标志为假。
如果边缘的顶点存在标志为真,则通过对所有最近点和所有第二近点的距离Dj求平均,来确定沿边缘的顶点位置;其中,求平均方法对最近点的变量给出更大的权重。在一个实施例中,顶点位置可以由下式获得
Vj=(W1*Dsum1+W2*Dsum2)/(W1*Nclosest_p1+W2*Nclosest_p2)
优选地,点云中到相应边缘的距离小于第一阈值范围t1min的点由第一权重(或加权因子)W1加权,并且点云中到相应边缘的距离小于第二阈值范围t2min的点由第二权重(或加权因子)W2加权。其中,W1大于W2,使得在确定相应顶点位置时,与到相应边缘的距离小于第一阈值的点的位置相比,到相应边缘的距离小于至少一个第二阈值范围的点的位置具有较小的影响。
其中,权重或加权因子W1和W2可以是固定值。优选地,W1被设置介于1和4之间,并且更优选地W1=2。可选地或附加地,W2优选地被设置介于0.2和2之间,并且更优选地W2=1。可选地,权重W1由第二阈值范围t2min与第一阈值范围t1min的比值确定,即,W1=t2min/t1min,并且W2=1。
所提出的顶点确定方法的效果如图13所示,其中,相同的元素用与图10中相同的附图标记表示。在图13中,第二阈值范围t2min用于确定叶节点500’的边缘510上的顶点580,其中,t2min>t1min。因此,与图10(其中仅使用一个固定阈值范围来确定顶点)相比,顶点580存在于三个边缘510处,并且它们的位置是为叶节点500’确定的,这些顶点可用于构建TriSoup三角形560以重建点云。因此,叶节点500’中的大多数点不会被遗漏。其中,顶点位置580如上所述由点云中在第一阈值范围t1min以及第二阈值范围t2min内的点(实心圆540)确定。然后将计算出的位置570量化为在构建TriSoup三角形560时要考虑的相应边缘510上的下一个可能的顶点位置520。
在另一变型中,所提出的顶点确定方法仅用于较低的压缩率,即,用于r01或r01和r02,而不用于r03和r04,因为其在具有较大叶节点尺寸的较低压缩率上具有稳定且更好的增益。
所提出的方法的优点是解码的点云的几何失真较小。实际上,定量指标显示了更好的性能,BDBR有13.2%的增益。其中,TriSoup方案的复杂性并没有显著增加,因为本发明是对原始算法的小修改。
在一个实施例中,第二阈值范围t2min可以基于点云的采样距离dsampl来确定。原始点云的采样距离dsampl可以根据输入点的总数Ntotal、叶节点的数量Nleaf、和叶节点的尺寸N来估算。首先,点云的总点数可以通过下式估算
Ntotal≈Nleaf_points*Nleaf
其中,Nleaf_points是每个叶节点中的点的数量,其可被估算为
其中,输入点的总数Ntotal可以从前述编码过程中获得。最后,原始点的采样距离dsampl可以近似为
如dsampl的等式所示,dsampl取决于叶节点尺寸N。
第二阈值范围t2min是为了宽松条件以找到更多相对于叶节点的边缘近的点,并且它是结合现有技术中使用的第一阈值范围t1min来使用的。
第二阈值范围t2min可以取决于采样距离dsampl,其取决于叶节点尺寸N;进一步地,第二阈值范围t2min可以附加地或可选地取决于顶点位置的量化步长ΔV,由于获得用于重建TriSoup三角形的顶点位置的量化过程,点位置的精度降低了log2(ΔV)。
已经观察到,量化步长ΔV的权重的合理值是1/4,因此在实施例中,第二阈值范围t2min可以通过下式获得
t2min=dsampl+αΔV。
在前述的实施例中,找到相对于叶节点的边缘最近的点的条件由两个阈值范围t1min和t2min定义的两个搜索范围定义。在一个变型中,为了简单起见,仅使用一个搜索范围t2min,其中,t2min取决于叶节点的立方体的尺寸。在另一变型中,使用3个或4个搜索范围(t1min,t2min,t3min,(t4min)),其中,t1min<t2min<t3min<t4min以实现可缩放的搜索范围并找到相对于叶节点的边缘更近的点。
例如,单个阈值范围可以通过下式确定:
t1min=1,
以及
原则是
然后,当迭代每个点P以确定叶节点的每个边缘的顶点时,对于每个边缘,将有3个或4个条件来寻找叶节点内最近的点,即,条件1为Dj<t1min,条件2为Dj<t2min,条件3为Dj<t3min,条件4可以为Dj<t4min,以此类推。
在另一个实施例中,用于第二搜索范围t2min的采样距离可以从例如几何参数集(GPS)中的参数获得。
在另一个实施例中,最近点位置的权重可以取决于两个阈值t1min和t2min之间的关系,例如,顶点位置可以通过下式获得
Vj=(W1×Dsum1+W2×Dsum2)/(W1×Nclosest_p1+W2×Nclosest_p2),
其中,W1=t2min/t1min并且W2=1。
在一个实施例中,如果存在3个搜索范围,则最近点的变量的权重可以取决于三个阈值之间的关系:t1min、t2min、和t3min。顶点位置可以通过下式获得
Vj=(W1×Dsum1+W2×Dsum2+W3×Dsum3)/(W1×Nclosest_p1+W2×Nclosest_p2+W3×Nclosest_p3),
其中,W1=t3min/t1min,W2=t2min/t1min并且W3=1。其中,Nclosest_p3是第三近点(相对于边缘的距离由阈值t3min定义)的数量,并且Dsum3是相对于边缘的所有第三近点的位置距离(相对于叶节点的原点O的沿着平行于边缘的轴的位置距离)之和。
并且如果有4个搜索范围,则最近点的变量的权重可以取决于四个阈值之间的关系:t1min、t2min、t3min、和t4min。顶点位置可以通过下式获得:
Vj=(W1×Dsum1+W2×Dsum2+W3×Dsum3+W4×Dsum4)/(W1×Nclosest_p1+W2×Nclosest_p2+W3×Nclosest_p3+W4×Nclosest_p4)
其中,W1=t4min/t1min,W2=t3min/t1min,W3=t2min/t1min,并且W4=1,其中,Nclosest_p4是第四近点(相对于边缘的距离由阈值t4min定义)的数量,并且Dsum4是相对于边缘的所有第四近点的位置距离(相对于叶节点的原点O的沿着平行于边缘的轴的位置距离)之和。
参考图14,图14示出了根据本发明的用于解码3D点云几何结构的方法的流程图,该方法优选地在解码器中实现。
在步骤S10中,接收并解码比特流,其中,比特流包含八叉树信息和顶点信息,八叉树包括关于点云的体的八叉树结构的信息,顶点信息包括关于在八叉树结构的叶节点的立方体的边缘上的顶点存在和顶点位置的信息。
在步骤S11中,通过连接与八叉树结构的叶节点相关的一个立方体的顶点来确定三角形。
在步骤S12中,通过对三角形进行体素化来确定解码的3D点云的点。
现在参考图15,图15示出编码器800的示例实施例的简化框图。编码器800包括处理器810和存储器存储设备820。存储器存储设备820可以存储包含指令的计算机程序或应用程序,所述指令在被执行时使得处理器810执行诸如本文所述的操作。例如,指令可以编码并输出根据本文描述的方法编码的比特流。应当理解,指令可以存储在非瞬态计算机可读介质上,例如光盘、闪存设备、随机存取存储器、硬盘驱动器等。当指令被执行时,处理器810执行指令中指定的操作和功能,以便作为实现所描述的过程的专用处理器进行操作。在一些例子中,这样的处理器可以被称为“处理器电路(circuit)”或“处理器电路(circuitry)”。
现在参考图16,图16示出解码器900的示例实施例的简化框图。解码器900包括处理器910和存储器存储设备920。存储器存储设备920可以包括包含指令的计算机程序或应用程序,所述指令在被执行时使得处理器910执行诸如本文所述的操作。应当理解,指令可以存储在计算机可读介质上,例如光盘、闪存设备、随机存取存储器、硬盘驱动器等。当指令被执行时,处理器910执行指令中指定的操作和功能,以便作为实现所描述的过程的专用处理器进行操作。在一些例子中,这样的处理器可以被称为“处理器电路(circuit)”或“处理器电路(circuitry)”。
应当理解,根据本申请的解码器和/或编码器可以在许多计算设备中实现,包括但不限于服务器、适当编程的通用计算机、机器视觉系统和移动设备。解码器或编码器可以通过包含用于配置一个或多个处理器以执行这里描述的功能的指令的软件来实现。软件指令可以存储在任何合适的非瞬态计算机可读存储器上,包括CD、RAM、ROM、闪存等。
应当理解,这里描述的解码器和/或编码器以及实现所描述的用于配置编码器或解码器的方法/过程的模块、例程、过程、线程或其他软件组件可以使用标准计算机编程技术和语言来实现。本申请不限于特定的处理器、计算机语言、计算机编程约定、数据结构、其他此类实现细节。本领域技术人员将认识到,所描述的过程可以被实现为存储在易失性或非易失性存储器中的计算机可执行代码的一部分,作为专用集成芯片(ASIC)的一部分,等等。
本申请还提供了对通过应用根据本申请的编码过程产生的数据进行编码的计算机可读信号。
可以对所描述的实施例进行某些调整和修改。因此,以上讨论的实施例被认为是说明性的而不是限制性的。尤其是,实施例可以自由地彼此组合。
Claims (15)
1.一种将3D点云编码成比特流的方法,优选地在编码器中实现,所述方法包括:
获取八叉树信息,所述八叉树信息包括体的八叉树结构,其中,所述八叉树结构包括作为所述八叉树结构的叶节点的多个立方体;
确定阈值范围;
确定在每个立方体的边缘上的顶点位置Vj作为顶点信息,其中,在相应边缘上的所述顶点位置Vj由所述点云中与所述相应边缘的距离小于所述阈值范围的点来确定;以及
将所述八叉树信息以及所述顶点信息编码成比特流;
其中,所述阈值范围取决于所述立方体的尺寸。
2.根据权利要求1所述的方法,其中,所述阈值范围包括第一阈值范围t1min和至少一个第二阈值范围t2min,其中,所述至少一个第二阈值范围t2min大于所述第一阈值范围t1min,其中,所述第一阈值范围t1min是固定的,并且所述至少一个第二阈值范围t2min取决于所述立方体的尺寸。
3.根据权利要求2所述的方法,其中,所述阈值范围以及优选地,所述至少一个第二阈值范围t2min是根据所述点云的采样距离dsampl确定的。
4.根据权利要求3所述的方法,其中,所述点云的采样距离dsampl由确定,其中,Nleaf是叶节点的数量,Ntotal是点云中点的数量,并且N是所述叶节点的相应立方体的尺寸。
5.根据权利要求1至4中任一项所述的方法,其中,所述阈值范围以及优选地,所述至少一个第二阈值范围t2min是根据在所述边缘上的顶点位置的量化步长ΔV来确定的。
6.根据权利要求5所述的方法,其中,所述量化步长ΔV乘以因子α,其中,α介于1/8和1之间,并且更优选地,介于1/8和1/4之间。
7.根据权利要求1至6中任一项所述的方法,其中,所述阈值范围以及优选地,所述至少一个第二阈值范围t2min是由所述点云的采样距离dsampl与所述量化步长ΔV之和确定的。
8.根据权利要求1至7中任一项所述的方法,其中,在确定所述顶点位置时,根据所述点到相应边缘的距离对所述点的位置进行加权。
9.根据权利要求2至8中任一项所述的方法,其中,在相应边缘上的所述顶点位置Vj由下式确定
Vj=(W1×Dsum1+W2×Dsum2)/(W1×Nclosest_p1+W2×Nclosest_p2),
其中,W1和W2为加权因子,Dsum1是到相应边缘的距离小于所述第一阈值范围t1min的点沿所述相应边缘的位置之和,并且Nclosest_p1是到相应边缘的距离小于所述第一阈值范围t1min的点的数量,并且Dsum2是到相应边缘的距离小于所述至少一个第二阈值范围t2min的点沿所述相应边缘的位置之和,并且Nclosest_p2是到相应边缘的距离小于所述至少一个第二阈值范围t2min的点的数量。
10.根据权利要求2至9中任一项所述的方法,其中,提供了超过一个第二阈值范围t2min、t3min,并且t2min<t3min。
11.一种用于从比特流解码3D点云的几何结构的方法,优选地在解码器中实现,所述方法包括:
接收和解码由根据权利要求1至10中任一项的编码方法编码的比特流,其中,所述比特流包括八叉树信息以及顶点信息,所述八叉树信息包括所述点云的体的八叉树结构的信息,所述顶点信息包括所述八叉树结构的叶节点的立方体的边缘上的顶点存在和顶点位置的信息;
通过连接与所述八叉树结构的叶节点相关联的一个立方体的所述顶点来确定三角形;以及
对所述三角形进行体素化以确定解码的所述点云的点。
12.一种编码器,用于将3D点云编码成比特流,所述编码器包括至少一个处理器和存储器,其中,所述存储器存储指令,当所述指令被所述处理器执行时,执行权利要求1至10中任一项所述方法的步骤。
13.一种解码器,用于从比特流解码3D点云,所述解码器包括至少一个处理器和存储器,其中,所述存储器存储指令,当所述指令被所述处理器执行时,执行权利要求11所述方法的步骤。
14.一种比特流,由根据权利要求1至10中任一项所述的方法编码。
15.一种计算机可读存储介质,包括指令,所述指令当被处理器执行时,执行根据权利要求1至11中任一项所述方法的步骤。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2022/086189 WO2023197122A1 (en) | 2022-04-11 | 2022-04-11 | Method for encoding and decoding for trisoup vertex positions |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116997931A true CN116997931A (zh) | 2023-11-03 |
Family
ID=81654546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280016557.7A Pending CN116997931A (zh) | 2022-04-11 | 2022-04-11 | 用于编码及解码trisoup顶点位置的方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116997931A (zh) |
WO (1) | WO2023197122A1 (zh) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10192353B1 (en) | 2017-10-10 | 2019-01-29 | 8i Limited | Multiresolution surface representation and compression |
-
2022
- 2022-04-11 WO PCT/CN2022/086189 patent/WO2023197122A1/en active Application Filing
- 2022-04-11 CN CN202280016557.7A patent/CN116997931A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2023197122A1 (en) | 2023-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112385236B (zh) | 点云的编码和解码方法、编码器和解码器、以及存储介质 | |
CN112438049B (zh) | 编码和解码方法、编码器、解码器以及存储介质 | |
US20210400103A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
US20230048381A1 (en) | Context determination for planar mode in octree-based point cloud coding | |
US12058370B2 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
WO2021062530A1 (en) | Angular mode syntax for tree-based point cloud coding | |
US20230171431A1 (en) | Device for transmitting point cloud data, method for transmitting point cloud data, device for receiving point cloud data, and method for receiving point cloud data | |
JP2024515203A (ja) | ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法 | |
CN116438799A (zh) | 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 | |
US20220327744A1 (en) | Apparatus and method for processing point cloud data | |
US20230232042A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
WO2023272730A1 (en) | Method for encoding and decoding a point cloud | |
CN116997931A (zh) | 用于编码及解码trisoup顶点位置的方法 | |
WO2024216516A1 (en) | Method for encoding and decoding a 3d point cloud, encoder, decoder | |
WO2024113325A1 (en) | Method for encoding and decoding a 3d point cloud, encoder, decoder | |
WO2024148547A1 (en) | Method for encoding and decoding a 3d point cloud, encoder, decoder | |
WO2024216517A1 (en) | Method for encoding and decoding a 3d point cloud, encoder, decoder | |
WO2024082108A1 (en) | Method for encoding and decoding a 3d point cloud, encoder, decoder | |
WO2023240471A1 (en) | Method for encoding and decoding a 3d point cloud, encoder, decoder | |
WO2024082109A1 (en) | Method for encoding and decoding a 3d point cloud, encoder, decoder | |
WO2024031584A1 (en) | Method for encoding and decoding a 3d point cloud, encoder, decoder | |
WO2023184393A1 (en) | Method for encoding and decoding a 3d point cloud, encoder, decoder | |
EP4258213A1 (en) | Methods and apparatus for entropy coding a presence flag for a point cloud and data stream including the presence flag | |
WO2024148544A1 (en) | Method for encoding and decoding a 3d point cloud, encoder, decoder | |
EP4258214A1 (en) | Methods and apparatus for coding a vertex position for a point cloud, and data stream including the vertex position |
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 |