CN113615181A - 用于点云编码的隐式四叉树或二叉树几何形状分割 - Google Patents

用于点云编码的隐式四叉树或二叉树几何形状分割 Download PDF

Info

Publication number
CN113615181A
CN113615181A CN202080023220.XA CN202080023220A CN113615181A CN 113615181 A CN113615181 A CN 113615181A CN 202080023220 A CN202080023220 A CN 202080023220A CN 113615181 A CN113615181 A CN 113615181A
Authority
CN
China
Prior art keywords
octree
implicit
node
partition
log2
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.)
Granted
Application number
CN202080023220.XA
Other languages
English (en)
Other versions
CN113615181B (zh
Inventor
张翔
高文
芮世薰
刘杉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent America LLC
Original Assignee
Tencent America LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent America LLC filed Critical Tencent America LLC
Publication of CN113615181A publication Critical patent/CN113615181A/zh
Application granted granted Critical
Publication of CN113615181B publication Critical patent/CN113615181B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/1883Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Abstract

一种在点云解码器中进行点云几何形状解码的方法,可包括:接收包括已编码点云帧的片段的比特流;和重构表示片段的边界框中的点的几何形状的八叉树,其中八叉树的当前节点用四叉树(QT)分割或二叉树(BT)分割来分割。

Description

用于点云编码的隐式四叉树或二叉树几何形状分割
交叉引用
本申请要求于2020年6月23日提交的题为“Implicit Quadtree or Binary-TreeGeometry Partition for Point Cloud Coding”的美国专利申请No.16/909,142的权益,该美国专利申请要求如下的一系列美国临时申请的权益:于2019年6月26日提交的题为“Implicit Geometry Partition for Point Cloud Coding”的美国临时申请No.62/867,063;于2019年9月23日提交的题为“On Geometry Coding for Point Clouds”的美国临时申请No.62/904,384;于2019年10月3日提交的题为“Additional Information onAdaptive Geometry Quantization and Implicit Geometry Partition for PointCloud Coding”的美国临时申请No.62/910,387。在先申请的公开内容通过全文引入而并入本文中。
技术领域
本公开涉及点云编码。
背景技术
本文所提供的背景描述是出于总体上呈现本公开的内容的目的。在该背景技术部分以及本说明书的各个方面中所描述的目前已署名的发明人的工作所进行的程度,并不表明其在本申请提交时作为现有技术,且从未明示或暗示其被承认为本公开的现有技术。
近年来,广泛使用点云。例如,点云可以在自主驾驶车辆中用于对象检测和定位。点云还在地理信息系统(GIS)中用于地图绘制,以及用于文化遗产以可视化和归档文化遗产对象和集合等。
点云帧包含一组高维点,通常是三维(3D)点,每个点包括3D位置信息和诸如颜色、反射率等的附加属性。它们可在各种设置中使用多个相机和深度传感器或者激光雷达来捕获,且可以由数千个到数十亿个点组成,以真实地表示原始场景。
需要压缩技术来减少表示点云所需的数据量,以更快地传输或减少存储。ISO/IECMPEG(JTC 1/SC 29/WG 11)已创建特别小组(MPEG-PCC),以标准化静态或动态点云的压缩技术。
发明内容
本公开的各方面提供一种在点云解码器进行对点云几何形状解码的方法。该方法可包括:接收包括已编码点云帧的片段的比特流;和使用隐式几何形状分割来重构表示片段的边界框中的点的几何形状的八叉树,其中八叉树的当前节点用四叉树(QT)分割或二叉树(BT)分割来分割。
在一个实施例中,基于预定条件来确定如何使用QT分割、BT分割或八叉树(OT)分割中的一种分割来分割八叉树的当前节点。在一个实施例中,基于一个或多个参数来确定如何使用QT分割、BT分割或OT分割中的一种分割来分割八叉树的当前节点。一个或多个参数中的一个参数可以在比特流中用信号表示或者使用本地预配置值。
在一个实施例中,从比特流接收属于八叉树的当前节点的8-bin占用码的占用信息。每个占用比特对应于八叉树的当前节点的被占用子节点。当八叉树的当前节点用QT分割来分割时,在比特流中不用信号表示属于8-bin占用码的4个bin,以及当八叉树的当前节点用BT分割来分割时,在比特流中不用信号表示属于8-bin占用码的6个bin。在本申请中,还可以将8-bin占用码称为8比特占用码,或者将8-bin占用码的每个bin称为一比特。
在一个实施例中,从比特流接收一个或多个语法元素,一个或多个语法元素指示已编码点云帧的片段的边界框的三维(3D)尺寸。在一个实施例中,确定由partitionSkip表示的、指定八叉树的当前节点的分割类型和分割方向的变量的值。在一个示例中,变量partitionSkip以三个比特分别对应于x、y和z方向的二进制形式来表示,且每个比特指示分割是沿着相应的x、y还是z方向来执行。在一个示例中,基于变量partitionSkip来更新八叉树的当前节点的子节点在x、y或z维度中的深度。
在一个实施例中,重构八叉树进一步包括:接收指示八叉树的当前节点具有单个被占用子节点的语法元素;如果变量partitionSkip指示BT分割,则接收1个bin,或者如果变量partitionSkip指示QT分割,则接收2个bin;以及基于所接收的1个或2个bin,确定对八叉树的当前节点的被占用子节点进行标识的占用图。
在一个实施例中,在对比特流进行解析处理以确定对八叉树的当前节点的被占用子节点进行标识的占用图的语法元素期间,可基于变量partitionSkip来跳过占用图的语法元素的一个或多个bin。
在一个实施例中,对于以直接模式编码的八叉树的当前节点的子节点,基于变量partitionSkip来确定子节点的针对x、y和z方向中的每一个方向的log2尺寸,每一个方向的log2尺寸分别表示为dx、dy和dz。通过用(dx、dy、dz)比特分别进行固定长度编码来对子节点中的点的位置进行编码。
在一个实施例中,从比特流接收指示以下参数之一的语法元素:在OT分割之前执行的隐式QT分割和BT分割的最大数量;隐式QT分割和BT分割的最小尺寸,该最小尺寸在节点的所有维度小于或等于最小尺寸时防止节点的隐式QT分割和BT分割;或者优先级,优先级指示当允许QT分割和BT分割两者时,首先执行隐式QT分割或BT分割中的哪一个分割。
在一个实施例中,在当前节点的八叉树深度小于参数K时,或者在当前节点的在x、y和z方向的log2尺寸中最小的log2尺寸等于参数M时,可根据如下表中的条件确定用于分割当前节点的分割类型和分割方向:
Figure BDA0003272766030000031
其中:参数K是0≤K≤max(dx,dy,dz)-min(dx,dy,dz)范围内的整数,并定义在OT分割之前允许的隐式QT分割和BT分割的最大次数;参数M是0≤M≤min(dx,dy,dz)范围内的整数,定义隐式QT分割和BT分割的最小尺寸,且当节点的所有维度小于或等于M时,防止节点的隐式QT分割和BT分割;dx、dy和dz分别是当前节点在x、y和z方向的log2尺寸。dx、dy和dz分别对应于上表中的dx、dy、dz。这两个符号在本公开中可互换地使用。
在一个实施例中,在当前节点的八叉树深度小于参数K时,或者在当前节点在x、y和z方向的log2尺寸中最小的log2尺寸等于参数M时,可以如下确定变量partitionSkip,
Figure BDA0003272766030000032
变量partitionSkip以三个比特的二进制形式来表示,并指定八叉树的当前节点的分割类型和分割方向。参数K是0≤K≤max(dx,dy,dz)-min(dx,dy,dz)范围内的整数,并定义在OT分割之前允许的隐式QT分割和BT分割的最大次数。参数M是0≤M≤min(dx,dy,dz)范围内的整数,定义隐式QT分割和BT分割的最小尺寸,且当节点的所有维度小于或等于M时,防止节点的隐式QT分割和BT分割。dx,dy,dz分别是当前节点在x、y和z方向的log2尺寸。MaxNodeDimLog2表示dx、dy和dz中最大的log2尺寸。运算符|=表示复合逐位“或”运算。
在一个实施例中,可以从比特流接收标志,该标志指示是否对点云帧序列或已编码点云帧的片段启用隐式几何形状分割。在一个实施例中,在不对当前节点执行分割的x、y或z方向上,确定平面模式不符合条件。在一个实施例中,执行几何形状八叉树占用解析过程,其中对于在占用码中具有binIdx索引的bin,变量binIdxInferred根据以下项设置:(a)如果以下条件之一为真,则将binIsInferred设置为等于1:(1)变量NeighbourPattern等于0且先前解码的值为1的bin的数量小于或等于(binIdx+minOccupied-maxOccupied),或者(2)变量NeighbourPattern不等于0,binIdx等于maxOccupied-1,且所有先前解码的bin的值为零,其中minOccupied=2,且如果应用OT分割则maxOccupied=8,如果应用QT分割则maxOccupied=4,如果应用BT分割则maxOccupied=2,(b)否则,如果上述条件都不为真,则将binIsInferred设置为等于0。
在一个实施例中,使用参数K和参数M。参数K指示在OT分割之前的隐式QT分割和BT分割的最大数量,以及参数M指示隐式QT分割和BT分割的最小尺寸,当节点的所有维度小于或等于最小尺寸时,参数M防止节点的隐式QT分割和BT分割。参数K和M可根据以下项更新:(a)如果K大于片段的最大根节点log2维度和最小根节点log2维度之间的差,则将K改变为片段的最大根节点log2维度和最小根节点log2维度之间的差;(b)如果M大于片段的最小根节点log2维度,则将M改变为片段的最小根节点log2维度;(c)如果片段的最大根节点log2维度和最小根节点log2维度相等,则将M改变为0;和(d)如果启用trisoup模式,则将K改变为片段的最大根节点log2维度和最小根节点log2维度之间的差,且将M改变为片段的最小根节点log2维度。应注意,trisoup节点log2维度需要不大于片段的最小根节点log2维度。
本公开的各方面提供一种进行点云几何形状解码的装置。该装置可包括电路,电路被配置成:接收包括已编码点云帧的片段的比特流;和使用隐式几何分割来重构表示片段的边界框中的点的几何形状的八叉树,其中八叉树的当前节点用四叉树(QT)分割或二叉树(BT)分割来分割。
本公开的各方面提供一种非暂时性计算机可读介质,非暂时性计算机可读介质存储指令,该指令在由处理器执行时使处理器执行点云几何形状解码的方法。
附图说明
将参考以下附图详细描述作为示例提出的本公开的各种实施例,其中相同的数字表示相同的元件,并且在附图中:
图1示出了根据一个实施例的递归细分过程。
图2示出了根据一个实施例的细节水平(LOD)生成过程。
图3示出了根据一个实施例的示例性编码器。
图4示出了根据一个实施例的示例性解码器。
图5示出了三维(3D)空间中的八叉树分割。
图6示出了两级八叉树(OT)分割和对应的占用码的示例。
图7示出了在x和y方向上具有主分量的点云序列。
图8示出了根据一个实施例的3D空间中的四叉树(QT)分割的示例。
图9示出了根据一个实施例的3D空间中的二叉树(BT)分割的示例。
图10至图13示出了用于演示基于隐式QT分割和BT分割的四个不同分割过程的二维(2D)块。
图14示出了用于演示测试模型13(TMC13)方案的2D块,其中从扩展的立方体边界框执行OT分割。
图15示出了根据本公开的一个实施例的用于点云解码的、基于QT/BT分割的几何形状解码过程的流程图。
图16示出了用于在各种实施例中实现几何形状解码技术的计算机系统。
具体实施方式
本公开涉及基于几何形状的点云压缩(G-PCC)。描述了隐式四叉树(QT)或二叉树(BT)分割的技术。当应用隐式QT分割或BT分割时,点云的几何形状可以在满足某些标准时沿着所有维度的子集来隐式地分割,而不是一直沿着所有维度来分割。
I.点云编码的编码器和解码器
1.点云数据
在一些新兴的应用中,诸如沉浸式虚拟现实(VR)/增强现实(AR)/混合现实(MR)、汽车/机器人导航、医学成像等,使用点云数据(或点云)来表示三维(3D)场景或对象。点云可包括单个3D点的集合。每个点与一组3D坐标相关联,该组3D坐标指示相应点的3D位置和多个其他属性,诸如颜色、表面法线、不透明度、反射率等。在各种实施例中,输入的点云数据可被量化且随后被组织成可使用八叉树数据结构来描述的立方体体素的3D网格。得到的体素化的八叉树有利于对量化的点云数据的遍历、搜索和访问。
点云帧可包括在特定时间示例的一组3D点。点云帧可作为这种点的组合,用于重构对象或场景。可使用各种设置的多个摄像机和深度传感器来捕捉点云,且点云可由数千甚至数十亿个点组成,以真实地表示重构的场景。点云帧序列可被称为点云。与点云框架的3D点相关联的一组笛卡尔坐标可被称为那些3D点的几何形状。
需要压缩技术来减少表示点云(例如,点云帧序列)所需的数据量。因此,需要在实时通信和六自由度(6DoFm)虚拟现实中使用的点云的有损压缩的技术。此外,在用于自主驾驶和文化遗产应用等的动态映射的环境中,寻求无损点云压缩的技术。另外,需要一些标准来解决几何形状和属性(例如,颜色和反射率)的压缩、可缩放/渐进式编码、随时间推移捕捉的点云序列的编码以及对点云子集的随机访问。
2.坐标量化
在一个实施例中,可以首先量化输入云数据中的点的坐标。例如,坐标的实数值可以被量化成整数值。在量化之后,多于一个的点可以在一些体素中共享相同的位置。这些重复点可选地可合并成单个点。
3.基于八叉树的几何编码
图1示出了根据一个实施例的递归细分过程(100)。可以执行过程(100)以生成表示点云中的一组点的位置的八叉树结构。如图所示,首先定义包含一组点的立方形轴对齐的边界框(101)。然后,递归地细分边界框(101)以构建八叉树结构。如图所示,在每个阶段,可将当前立方体细分成8个子立方体。可生成被称为占用码的8比特代码,以指示8个子立方体中的每一个是否包含点。例如,每个子立方体与1比特值相关联。如果子立方体被占用,则相应的子立方体具有的比特值为1;否则,相应的子立方体具有的比特值为0。可划分被占用的子立方体,直到达到子立方体的预定最小尺寸。最小尺寸的子立方体是对应于八叉树结构的体素。因此,可生成占用码序列,随后占用码序列被压缩并从编码器发送到解码器。通过解码占用码(例如,执行八叉树解码过程),解码器可获得与编码器相同的八叉树结构,或八叉树结构的估计。
4.属性传递
作为八叉树生成或编码处理的结果,在编码器侧,具有最小尺寸的子立方体可包含多于一个点。因此,对应于体素的位置(例如,相应的子立方体的中心)可对应于来自多个点的多组属性。在这样的情形下,在一个实施例中,可执行属性传递过程以基于相应体素的多组属性来确定一组属性。例如,最近相邻点的子集的平均属性可用作相应体素的属性。出于属性传递的目的,可以在各种实施例中采用不同的方法。
5.细节水平(LOD)生成
图2示出了根据一个实施例的细节水平(LOD)生成过程(200)。可以对根据八叉树解码过程排序的量化位置(例如,体素位置)执行过程(200)。作为过程(200)的结果,点可以被重新组织或重新排序成一组细化水平。过程(200)可以在编码器和解码器处相同地执行。随后的属性编码过程可根据由过程(200)定义的顺序(称为基于LOD的顺序)在编码器或解码器处执行。
具体地,图2示出了三个LOD:LOD0、LOD1和LOD2。可以分别对LOD0、LOD1和LOD2指定欧几里德距离d0、d1或d2。点P0-P9的子集包括在每个LOD中。相应的LOD中的每对点之间的距离大于或等于相应的欧几里得距离。欧几里德距离可以以d0>d1>d2的方式排列。在这种排列下,更高的细化水平包括更少的点,这些点彼此较远,并提供点云的较粗略的表示,而更低的细化水平包括更多的点,这些点彼此靠近,并提供点云的较精细的表示。
作为上述LOD生成过程(200)的结果,从P0到P9的原始顺序(八叉树解码顺序)中的点可以被重新组织成基于LOD的顺序:P0,P5,P4,P2,P1,P6,P3,P9,P8和P7。
6.属性预测
与点云相关联的属性可按照LOD生成过程所定义的顺序进行编码和解码。例如,按照基于LOD的顺序,可逐点通过在编码器和/或解码器处执行属性预测过程来确定每个当前点(当前正在处理的点)的属性预测。可以在编码器和解码器处执行类似的属性预测过程。
利用所获得的属性预测,在编码器处,可通过从当前点的相应原始属性值中减去属性预测值来生成残余信号。然后,可单独地或与其它残余信号组合地进一步压缩残余信号。例如,可执行变换和/或量化操作,随后对所得到的信号进行熵编码。压缩后的残余信号可以在比特流中发送到编码器。
在解码器处,可通过执行在编码器处用于对残余信号进行编码的编码过程的逆处理来恢复残余信号。利用所获得的属性预测和所恢复的与当前点对应的残余信号,可获得当前点的重构属性。以类似的方式,该重构操作可在编码器处进行以获得重构属性。
在各种实施例中可采用各种属性预测技术来确定属性预测。通常,使用与当前点相邻的点的先前重构的属性来执行当前点的属性预测。当属性预测过程开始时,基于LOD的顺序,在当前点之前的点的重构的属性值已经可用。此外,从八叉树编码或解码过程,点云中的点的位置(3D坐标)也可用。因此,可利用当前点的相邻点的3D坐标和重构属性的知识来执行属性预测过程。
例如,可以首先使用各种算法来确定当前点的一组相邻点。在一个示例中,可执行基于k-d树结构的搜索过程以确定最接近当前点的一组点。
例如,使用基于几何距离和/或属性距离的方法来确定属性预测。预测属性可基于编码器或解码器处的一组确定的相邻点的重构属性的加权和(或加权平均值)来确定。例如,利用所确定的相邻点集合,所确定的相邻点的重构属性的加权和(或加权平均值)可被确定为编码器或解码器处的预测属性。例如,在基于加权和的技术(也称为基于插值的技术)中使用的权重可以是几何距离或属性距离的倒数(或者与几何距离或属性距离成反比)。可替代地,权重可以是从基于几何距离的权重(几何权重)和基于属性距离的权重(属性权重)的组合导出的双边权重。
例如,使用基于速率失真(RD)的方法来确定属性预测。例如,候选索引可以与编码器或解码器处的相邻点集合的每个重构属性值相关联。在编码器处,可执行基于RD优化的过程以评估相邻点的候选重构属性值中的哪一个是将用作属性预测的最佳选择。例如,可通过当前点的原始(或真实)属性值与候选预测(候选重构属性值)之间的差来测量失真。速率可以是对所选候选预测的索引进行编码的成本。可定义拉格朗日RD成本函数来确定最佳预测信号候选。因此,所选择的候选预测的候选索引可以用信号表示给解码器。
因此,解码器可以首先确定相应的当前点的同一组相邻点,且以与编码器侧类似的方式将索引与同一组相邻点的重构属性值相关联。然后,解码器可使用用信号表示的候选索引从相邻点的重构属性值确定属性预测。
7.点云压缩的编码系统示例
图3示出了根据一个实施例的示例性编码器(300)。编码器可被配置成接收点云数据并压缩点云数据以生成携载压缩后的点云数据的比特流。在一个实施例中,编码器(300)可包括位置量化模块(310)、重复点去除模块(312)、八叉树编码模块(330)、属性传递模块(320)、LOD生成模块(340)、属性预测模块(350)、残差量化模块(360)、算术编码模块(370)、逆残差量化模块(380)、加法模块(381)和用于存储重构属性值的存储器(390)。
如图所示,可以在编码器(300)处接收输入点云(301)。点云(301)的位置(3D坐标)提供给量化模块(310)。量化模块(310)被配置成量化坐标以生成量化位置。可选的重复点去除模块(312)被配置成接收量化位置并执行过滤处理以识别和去除重复点。八叉树编码模块(330)被配置成从重复点去除模块接收过滤后的位置,并执行基于八叉树的编码过程以生成描述体素的3D网格的占用码序列。占用码提供给算术编码模块(370)。
属性传递模块(320)被配置成接收输入点云的属性,且当多个属性值与相应的体素相关联时,执行属性传递处理以确定每个体素的属性值。可以对从八叉树编码模块(330)输出的重新排序的点执行属性传递过程。将在传递操作之后的属性提供给属性预测模块(350)。LOD生成模块(340)被配置成对从八叉树编码模块(330)输出的重新排序的点进行操作,并将这些点重新组织成不同的LOD。将LOD信息提供给属性预测模块(350)。
属性预测模块(350)根据由来自LOD生成模块(340)的LOD信息指示的、基于LOD的顺序来处理点。属性预测模块(350)基于存储在存储器(390)中的当前点的一组相邻点的重构属性来生成当前点的属性预测。随后可基于从属性传递模块(320)接收的原始属性值和本地生成的属性预测来获得预测残差。当在相应的属性预测过程中使用候选索引时,对应于所选的预测候选的索引可提供给算术编码模块(370)。
残差量化模块(360)被配置成从属性预测模块(350)接收预测残差,并执行量化以生成量化残差。将量化残差提供给算术编码模块(370)。
逆残差量化模块(380)被配置成接收来自残差量化模块(360)的量化残差,并通过执行在残差量化模块(360)处执行的量化操作的逆操作来生成重构预测残差。加法模块(381)被配置成接收来自逆残差量化模块(380)的重构预测残差以及来自属性预测模块(350)的相应的属性预测。通过组合重构预测残差和属性预测,生成重构属性值且将重构属性值存储到存储器(390)。
算术编码模块(370)被配置成接收占用码、候选索引(如果使用的话)、量化残差(如果生成的话)和其它信息,并执行熵编码以进一步压缩所接收的值或信息。结果,可生成携带压缩信息的压缩比特流(302)。比特流(302)可被发送或以其他方式提供给对压缩比特流进行解码的解码器,或者可存储在存储设备中。比特流可以指的是形成已编码点云帧的表示的比特序列。已编码点云帧可以指的是点云帧的编码表示。
图4示出了根据实施例的示例性解码器(400)。解码器(400)可被配置成接收压缩比特流并执行点云数据解压缩以对该比特流解压缩来生成解码的点云数据。在一个实施例中,解码器(400)可以包括算术解码模块(410)、逆残差量化模块(420)、八叉树解码模块(430)、LOD生成模块(440)、属性预测模块(450)以及用于存储重构属性值的存储器(460)。
如图所示,可以在算术解码模块(410)处接收压缩比特流(401)。算术解码模块(410)被配置成对压缩比特流(401)进行解码,以获得点云的量化残差(如果生成的话)和占用码。八叉树解码模块(430)被配置成根据占用码确定点云中的点的重构位置。LOD生成模块(440)被配置成基于重构位置将点重新组织成不同的LOD,并确定基于LOD的顺序。逆残差量化模块(420)被配置成基于从算术解码模块(410)接收的量化残差生成重构残差。
属性预测模块(450)被配置成执行属性预测过程,以根据基于LOD的顺序来确定点的属性预测。例如,可基于存储在存储器(460)中的当前点的相邻点的重构属性值来确定当前点的属性预测。属性预测模块(450)可以将属性预测与相应的重构残差相结合,以生成当前点的重构属性。
在一个示例中,从属性预测模块(450)生成的重构属性序列与从八叉树解码模块(430)生成的重构位置一起对应于从解码器(400)输出的解码点云(402)。此外,还将重构属性存储在存储器(460)中,随后可用于导出后续点的属性预测。
在各种实施例中,编码器(300)和解码器(400)可以用硬件、软件或其组合来实现。例如,编码器(300)和解码器(400)可以用诸如一个或多个集成电路(IC)的处理电路来实现,集成电路(IC)使用或不使用软件来操作,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。对于另一个示例,编码器(300)和解码器(400)可实现为包括存储在非易失性(或非暂时性)计算机可读存储介质中的指令的软件或固件。指令在由诸如一个或多个处理器的处理电路执行时使处理电路执行编码器(300)和解码器(400)的功能。
应注意,编码器(300)和解码器(400)中被配置成实施本文所公开的各种技术的元件可包括在其它解码器或编码器中,其它解码器或编码器可具有与图3和图4中所示的结构类似或不同的结构。此外,在各种示例中,编码器(300)和解码器(400)可包括在同一设备中,或者可包括在单独的设备中。
II.测试模型13(TMC13)中的G-PCC
G-PCC处理类别1(静态点云)和类别3(动态获取的点云)两者中的点云的压缩。运动图像专家组(MPEG)已开发称为TMC13的测试模型,作为研究潜在的点云编码技术的基础。TMC13模型分别压缩几何形状和相关属性,例如颜色或反射率。作为点云的3D坐标的几何形状由八叉树分割编码。然后使用预测和提升技术,基于重构的几何形状来压缩属性。
1.当前TMC13设计中的八叉树分割和编码占用信息
对3D立方体的均匀分割将生成八个子立方体,这被称为点云压缩(PCC)中的八叉树(OT)分割。OT分割类似于一维空间中的二叉树(BT)分割和二维空间中的四叉树(QT)分割。OT分割在图5中示出,其中实线表示的3D立方体(501)被分割成虚线表示的八个较小的相等尺寸的立方体。左侧4个立方体与索引0-3相关联,而右侧4个立方体与索引4-7相关联。
在TMC13中,如果使用八叉树几何形状编解码器,则如下进行几何形状编码。首先,立方体轴对准的边界框B由两个点(0,0,0)和(2d,2d,2d)定义,其中2d定义B的尺寸,d被编码在比特流中。假设所有需要压缩的点都在所定义的边界框B内。
然后,通过递归地细分B来构建八叉树结构。在每个阶段,立方体被细分成8个子立方体。在迭代细分k(k≤d)次之后,子立方体的尺寸将是(2d-k,2d-k,2d-k)。然后,通过将1比特值与每个子立方体相关联来生成8比特码,即占用码,以指示是包含点(即,满的并具有值1)还是不包含点(即,空的并具有值0)。只有尺寸大于1的满的子立方体(即,非体素)被进一步细分。然后,可通过算术编码器来压缩每个立方体的占用码。
解码过程开始于从比特流读取边界框B的维度。然后,通过根据解码的占用码细分B来构建相同的八叉树结构。在图6中示出了两级OT分割和相应的占用码的示例,其中黑色表示的立方体和节点指示它们被点占用。
如图所示,立方体(601)被分割为8个子立方体。使用图5中使用的相同的索引方法,第0子立方体和第7子立方体中的每一个子立方体被进一步分割为8个子立方体。对应于立方体(601)的分割的八叉树(610)包括在第一级的根节点(611)。根节点(611)被分割成8个子节点,其可以从0索引到7。在第二级的第0节点和第7节点(612-613)被进一步分割成16个子节点。八叉树(610)中的节点的级别可对应于从根到相应节点的跳跃数量,且可被称为八叉树(610)的深度。对应于八叉树(610)的第一级至第三级的深度0-2在图6中示出。
2.占用码的编码
每个节点的占用码可由算术编码器压缩。占用码可被表示为S,其是8-bin整数,且S中的每个bin指示每个子节点的占用状态。在TMC13中存在用于占用码的两种编码方法,即逐位编码方法和逐字节编码方法,默认启用逐位编码。任一种方式都利用上下文建模来执行算术编码以对占用码进行编码,其中上下文状态在整个编码过程开始时被初始化并在编码过程期间被更新。
对于逐位编码,以某种顺序对S中的8个bin进行编码,其中通过参考相邻节点的子节点和相邻节点的占用状态来对每个bin进行编码,其中相邻节点处于当前节点的相同级别。
对于逐字节编码,通过参考自适应查找表(A-LUT)和高速缓存来对S进行编码,自适应查找表(A-LUT)保持跟踪N(例如,32)个最频繁占用码,高速缓存保持跟踪最后不同的观察到的M(例如,16)个占用码。
对指示S是否在A-LUT中的二进制标志进行编码。如果S在A-LUT中,则通过使用二进制算术编码器对A-LUT中的索引进行编码。如果S不在A-LUT中,则对指示S是否在高速缓存中的二进制标志进行编码。如果S在高速缓存中,则通过使用二进制算术编码器对高速缓存中其索引的二进制表示进行编码。否则,如果S不在高速缓存中,则通过使用二进制算术编码器对S的二进制表示进行编码。
解码过程开始于从比特流中解析边界框B的维度。然后,通过根据解码的占用码细分B来建立相同的八叉树结构。
III.点云编码的隐式几何形状分割
1.问题
在TMC13设计中,边界框被限制为对于所有维度具有相同尺寸的立方体B,且在每个节点处对满的子立方体执行OT分割,由此,子立方体在所有维度的尺寸减半。递归地执行OT分割,直到子立方体的尺寸达到一或者子立方体中不包含点为止。然而,这种方式并非对于所有情况都有效,特别是当点在3D场景中不均匀分布时。一种极端情况是3D空间中的2D平面,其中所有点都位于x-y平面上,而z轴的变量为零。在这种情况下,在作为起始点的立方体B上执行的OT分割将浪费大量的比特来表示z方向上的占用信息,这是冗余的和无用的。在实际应用中,最坏的情况可能不经常发生,然而,典型的是具有不对称边界框的点云,其在某些维度上具有较短的长度。
如图7所示,用于在MPEG-PCC中进行测试的名称为“ford_01_vox1mm”的点云序列在x和y方向上具有其主要分量。实际上,从激光雷达传感器生成的许多点云数据具有相同的特性。
2.隐式QT分割和BT分割
本发明的各方面提供对矩形立方体边界框的分割寻址的实施例,其中分割期间的立方体或节点可被隐式地确定为QT分割或BT分割,而不是总是OT。可以根据隐式QT分割和BT分割保存指示占用信息的占用比特。
对于可能不是完美立方体的边界框,在一些情况下,不同级别的节点可能不是(或不能)沿着所有方向分割。如果在所有三个方向上执行分割,则该分割是典型的OT分割。如果在三个方向中的两个方向上执行分割,则该分割是3D空间中的QT分割。如果仅在一个方向上执行分割,则该分割是3D空间中的BT分割。3D空间中的QT分割和BT分割的示例分别在图8和图9中示出。为了示范,附图示出了来自完美立方体的QT分割和BT分割,但是应注意,可以从形成边界框的任何普通矩形立方体分割。
图8示出了分别沿着x-y轴、x-z轴和y-z轴(或方向)分割的三个立方体(801-803)。给每个立方体(801-803)中的子节点分配索引,该索引是在图5的示例中用于索引OT分割中的8个子节点的8个索引的子集。利用所分配的索引,可使用八叉树结构中的占用码来表示具有三个不同方向的QT分割。例如,表示沿着x-y轴对立方体(801)的QT分割的占用码可采用x0x0x0x0的形式,其中x位置处的比特可用于指示占用状态(例如,可以取1或0的值)。类似地,表示沿着x-z轴对立方体(802)的QT分割的占用码可采用xx00xx00的形式,而表示沿着y-z轴对立方体(803)的QT分割的占用码可采用xxxx0000的形式。如图所示,分配给子立方体的那些索引还指示8比特占用码中对应于结果子节点的比特的位置。
图9示出了分别沿x轴、y轴和z轴分割的三个立方体(901-903)。以类似于图8的方式,每个立方体(901-903)中的子节点被分配对应于占用码中的位置的索引。
当满足预定条件时,可隐式地执行QT分割和BT分割。“隐式地”意味着不需要额外的信令比特来指示使用QT分割或BT分割而不是OT分割。解码器可基于预定义条件以与编码器相同的方式来确定分割的类型(例如,QT分割或BT分割)和方向。此外,当用信号表示每个子节点的占用信息时,与OT分割相比,可以根据隐式QT分割或BT分割保存比特。QT需要从8比特减少到4比特来表示四个子节点的占用状态,而BT只需要两个比特。例如,如图8和图9的示例中所示,可以用信号表示占用码中对应于分配给子节点的索引的比特,而可以跳过(未用信号表示)占用码中与子节点无关的其它比特。因此,当引入QT分割和BT分割时,占用码可包括跳过的比特和用信号表示的比特。
应注意,QT分割和BT分割可以在OT分割的相同结构中实现。可以以类似的方式应用基于相邻已编码立方体和熵编码器的上下文选择。来自QT或BT的占用码的上下文建模可根据子节点的非对称形状来改变。
隐式QT分割和BT分割的占用码的编码可如以下示例中所描述。首先,可以假设OT的占用码以如图5所示的索引的顺序被编码。然后,如图8(立方体(801))的最左边的图所示,可以对沿着x-y轴的QT分割的占用码通过省略在位置1、3、5、7的比特来进行编码,原因是可推断这些比特在解码器处为零,且仅在位置0、2、4的比特用信号表示。类似地,对于沿着x轴的BT,如图9(立方体(901))的最左边的图所示,在位置0和4的占用信息可以用信号表示,且可推断其他6比特为0。
此外,当前TMC13具有用于几何形状编码的特殊模式,且允许直接对子节点中的(x,y,z)位置进行编码,而无需进一步分割,特殊模式是直接模式(DM)。例如,位置是相对于具有固定长度编码的当前子节点的原点的相对位置,其中比特长度由当前子节点的维度确定。由于隐式分割可导致(x,y,z)维度的尺寸不相等的子节点,因此可以相应地改变DM模式。例如,如果以DM模式对尺寸为
Figure BDA0003272766030000121
的子节点进行编码,则子节点中的每个点的相对位置分别通过用(dx,dy,dz)比特的固定长度编码来进行编码。
3.用信号表示矩形长方体边界框
首先,边界框B不限于在所有方向上具有相同的尺寸,而是边界框可以是任意尺寸的矩形长方体,以更好地适合3D场景或对象的形状。在各种实施例中,边界框B的尺寸可以表示为2的幂,即
Figure BDA0003272766030000122
dx,dy和dz被称为log2边界框的尺寸。应注意,不假设dx,dy,dz相等,且可在比特流的序列标头(例如,序列参数集(SPS))或片段标头中分别用信号表示。
此外,值得注意的是,边界框B的尺寸可以是任何正数,而不限于是2的幂。图7示出了用于卷起场景的矩形立方体边界框的示例,其中z方向具有最小尺寸。
在具体实施例的第III部分中,示出了一些实施例作为对基于几何形状的点云压缩草案(ISO/IEC 23090-9:2019(E),WD阶段,ISO/IEC JTC 1/SC 29/WG 11W18179,2019年3月)的标准规范的变化。
实施例A
在一个实施例中,可以在几何形状片段标头中以如表1所示的log2形式用信号表示三维的边界框尺寸。几何片段标头可包括应用于片段的语法元素。通常,片段可以指的是表示已编码点云帧的一部分或整个已编码点云帧的一系列语法元素。片段的点可以包含在与片段对应的边界框中。
表1
Figure BDA0003272766030000123
Figure BDA0003272766030000131
通过在第10-12行添加以下语法元素来修改表1中的几何形状片段标头语法:
gsh_log2_max_nodesize_x指定x维度的边界框尺寸,即在解码过程中使用的MaxNodesizeX,如下所示:
MaxNodeSizeX=2gsh_log2_max_nodesize_x
MaxNodeSizeLog2X=gsh_log2_max_nodesize_x。
gsh_log2_max_nodesize_y指定y维度的边界框尺寸,即在解码过程中使用的MaxNodesizeY,如下所示:
MaxNodeSizeY=2gsh_log2_max_nodesize_y
MaxNodeSizeLog2Y=gsh_log2_max_nodesize_y。
gsh_log2_max_nodesize_z指定z维度的边界框尺寸,即,在解码过程中使用的MaxNodesizeZ,如下所示:
MaxNodeSizeZ=2gsh_log2_max_nodesize_z
MaxNodeSizeLog2Z=gsh_log2_max_nodesize_z。
实施例B
在另一实施例中,可以在几何形状片段标头中以log2形式用信号表示三维的尺寸。代替独立地用信号表示三个值,这些值可如下通过其差值用信号表示。
表2
Figure BDA0003272766030000132
Figure BDA0003272766030000141
通过在第10-12行添加以下语法元素来修改表2中的几何形状片段标头语法:
gsh_log2_max_nodesize_x指定x维度的边界框尺寸,即在解码过程中使用的MaxNodesizeX,如下所示:
MaxNodeSizeX=2gsh_log2_max_nodesize_x
MaxNodeSizeLog2X=gsh_log2_max_nodesize_x。
gsh_log2_max_nodesize_y_minus_x指定y维度的边界框尺寸,即在解码过程中使用的MaxNodesizeY,如下所示:
MaxNodeSizeY=2gsh_log2_max_nodesize_y_minus_x+gsh_log2_max_nodesize_x
MaxNodeSizeLog2Y=gsh_log2_max_nodesize_y_minus_x+gsh_log2_max_nodesize_x。
gsh_log2_max_nodesize_z_minus_y指定z维度的边界框尺寸,即在解码过程中使用的MaxNodesizeZ,如下所示:
MaxNodeSizeZ=2gsh_log2_max_nodesize_z_minus_y+MaxNodeSizeLog2Y
MaxNodeSizeLog2Z=gsh_log2_max_nodesize_z_minus_y+MaxNodeSizeLog2Y。
实施例C
在另一实施例中,可以如下在几何形状片段标头中以笛卡尔位置用信号表示三维的尺寸。
表3
Figure BDA0003272766030000142
通过在第10-12行添加以下语法元素来修改表3中的几何形状片段标头语法:
gsh_max_nodesize_x指定x维度的边界框尺寸,即在解码过程中使用的MaxNodeSizeX,如下所示:
MaxNodeSizeX=gsh_max_nodesize_x。
MaxNodeSizeLog2X=ilog2(MaxNodeSizeX)。
其中ilog2(v)计算大于或等于v的log2的最小整数。
gsh_max_nodesize_y指定y维度的边界框尺寸,即在解码过程中使用的MaxNodeSizeY,如下所示:
MaxNodeSizeY=gsh_max_nodesize_y。
MaxNodeSizeLog2Y=ilog2(MaxNodeSizeY)。
gsh_max_nodesize_z指定z维度的边界框尺寸,即在解码过程中使用的MaxNodeSizeZ,如下所示:
MaxNodeSizeZ=gsh_max_nodesize_z。
MaxNodeSizeLog2Z=ilog2(MaxNodeSizeZ)。
实施例D
在另一实施例中,可以如下在几何形状片段标头中以笛卡尔位置减去一来用信号表示三维的尺寸。
表4
Figure BDA0003272766030000151
通过在第10-12行添加以下语法元素来修改表4中的几何形状片段标头语法:
gsh_max_nodesize_x_minus_one指定x维度的边界框尺寸,即在解码过程中使用的MaxNodeSizeX,如下所示:
MaxNodeSizeX=gsh_max_nodesize_x_minus_one+1。
MaxNodeSizeLog2X=ilog2(MaxNodeSizeX)。
gsh_max_nodesize_y_minus_one指定y维度的边界框尺寸,即在解码过程中使用的MaxNodeSizeY,如下所示:
MaxNodeSizeY=gsh_max_nodesize_y_minus_one+1。
MaxNodeSizeLog2Y=ilog2(MaxNodeSizeY)。
gsh_max_nodesize_z_minus_one指定z维度的边界框尺寸,即在解码过程中使用的MaxNodeSizeZ,如下所示:
MaxNodeSizeZ=gsh_max_nodesize_z_minus_one+1。
MaxNodeSizeLog2Z=ilog2(MaxNodeSizeZ)。
实施例E
在另一实施例中,三个维度中只有一个维度允许具有不同的尺寸。在这种情况下,x维度和y维度的尺寸相同,z维度的尺寸可以不同,因此如下在几何形状片段标头中以log2的形式用信号表示两个值。
表5
Figure BDA0003272766030000161
通过在第10-11行添加以下语法元素来修改表5中的几何形状片段标头语法:
gsh_log2_max_nodesize_x_y指定x维度和y维度的边界框尺寸,即,在解码过程中使用的MaxNodesizeX和MaxNodesizeY,如下所示:
MaxNodeSizeX=MaxNodeSizeY=2gsh_log2_max_nodesize_x_y
MaxNodeSizeLog2X=MaxNodeSizeLog2Y=gsh_log2_max_nodesize_x_y。
gsh_log2_max_nodesize_z指定z维度的边界框尺寸,即,在解码过程中使用的MaxNodesizeZ,如下所示:
MaxNodeSizeZ=2gsh_log2_max_nodesize_z
MaxNodeSizeLog2Z=gsh_log2_max_nodesize_z。
实施例F
在另一实施例中,三个维度中只有一个维度允许具有不同的尺寸。在这种情况下,x维度和y维度的尺寸相同,z维度的尺寸可以不同,因此在几何形状片段标头中以log2的形式用信号表示两个值。代替独立地用信号表示两个值,这些值可如下通过其差值用信号表示一个值。
表6
Figure BDA0003272766030000171
通过在第10-11行添加以下语法元素来修改表6中的几何形状片段标头语法:
gsh_log2_max_nodesize_x_y指定x维度和y维度的边界框尺寸,即在解码过程中使用的MaxNodesizeX和MaxNodesizeY,如下所示:
MaxNodeSizeX=MaxNodeSizeY=2gsh_log2_max_nodesize_x_y
MaxNodeSizeLog2X=MaxNodeSizeLog2Y=gsh_log2_max_nodesize_x_y。
gsh_log2_max_nodesize_z_minus_xy指定z维度的边界框尺寸,即在解码过程中使用的MaxNodesizeZ,如下所示:
MaxNodeSizeZ=2gsh_log2_max_nodesize_z_minus_xy+gsh_log2_max_nodesize_x_y
MaxNodeSizeLog2Z=gsh_log2_max_nodesize_z_minus_xy+gsh_log2_max_nodesize_x_y。
实施例G
在另一实施例中,三个维度中只有一个维度允许具有不同的尺寸。在这种情况下,x维度和y维度的尺寸相同,z维度的尺寸可以不同,因此如下在几何形状片段标头中以笛卡尔位置用信号表示两个值。
表7
Figure BDA0003272766030000172
Figure BDA0003272766030000181
通过在第10-11行添加以下语法元素来修改表7中的几何形状片段标头语法:
gsh_max_nodesize_x_y指定x维度和y维度的边界框尺寸,即在解码过程中使用的MaxNodesizeX和MaxNodesizeY,如下所示:
MaxNodeSizeX=MaxNodeSizeY=gsh_max_nodesize_x_y。
MaxNodeSizeLog2X=MaxNodeSizeLog2Y=ilog2(gsh_max_nodesize_x_y)。
gsh_max_nodesize_z指定z维度的边界框尺寸,即在解码过程中使用的MaxNodeSizeZ,如下所示:
MaxNodeSizeZ=gsh_max_nodesize_z。
MaxNodeSizeLog2Z=ilog2(gsh_max_nodesize_z)。
实施例H
在另一实施例中,三个维度中只有一个维度允许具有不同的尺寸。在这种情况下,x维度和y维度的尺寸相同,z维度的尺寸可以不同,因此在几何形状片段标头中以笛卡尔位置减去1来用信号表示两个值,如下所述。
表8
Figure BDA0003272766030000182
Figure BDA0003272766030000191
通过在第10-11行添加以下语法元素来修改表8中的几何形状片段标头语法:
gsh_max_nodesize_x_y_minus_one指定x维度和y维度的边界框尺寸,即在解码过程中使用的MaxNodesizeX和MaxNodesizeY,如下所示:
MaxNodeSizeX=MaxNodeSizeY=gsh_max_nodesize_x_y_minus_one+1。
MaxNodeSizeLog2X=MaxNodeSizeLog2Y=ilog2(gsh_max_nodesize_x_y_minus_one+1)。
gsh_max_nodesize_z_minus_one指定z维度的边界框尺寸,即在解码过程中使用的MaxNodeSizeZ,如下所示:
MaxNodeSizeZ=gsh_max_nodesize_z_minus_one+1。
MaxNodeSizeLog2Z=ilog2(gsh_max_nodesize_z_minus_one+1)。
4.用信号表示隐式QT和BT分割
实施例A
在一个实施例中,几何形状编码语法如下。
表9
Figure BDA0003272766030000192
Figure BDA0003272766030000201
通过在第3-14行添加或改变语法元素来修改表9中的几何形状片段数据语法。在第14行处,新变量depthX,depthY,depthZ和partitionSkip作为输入添加到geometry_node函数。
变量NodeX[depthx][nodeIdx],NodeY[depthy][nodeIdx]和NodeZ[depthz][nodeIdx]表示在给定深度处按解码顺序的nodeIdx-th节点的x、y和z坐标。变量NumNodesAtDepth[depth]表示在给定深度处要解码的节点的数量。变量depthX,depthY和depthZ分别指定x、y和z维度的深度。
变量partitionSkip通过下表(表10)指定分割类型和方向。
表10
Figure BDA0003272766030000202
变量partitionSkip以三个比特bxbybz的二进制形式来表示,这三个比特分别指定是否沿x维度、y维度和z维度跳过分割。例如,bx=1表示沿着x维没有分割(分割被跳过)。分割类型和方向可以由某些条件来确定。
表11
Figure BDA0003272766030000203
Figure BDA0003272766030000211
通过在第0、4、8、11-12和24-33行添加或改变来修改表11中的几何形状节点语法。在第0行处,引入新的输入变量depthX、depthY、depthZ、partitionSkip以促进QT分割和BT分割。在第12行处,验证是否已达到最小节点尺寸的条件被修改为基于对三个维度的评估,原因是当应用QT分割和BT分割时不同维度的节点尺寸可不同。
第24-33行的语法结构描述了用DM处理的子节点内的3D点坐标的语法元素。变量ChildNodeSizeLog2X、ChildNodeSizeLog2Y和ChildNodeSizeLog2Z对每个维度指定子节点尺寸,且可以由隐式QT分割和BT分割确定,如下所述:
Figure BDA0003272766030000212
Figure BDA0003272766030000221
在上述过程中,如果分割发生在维度处,则该维度的子节点log2尺寸将是该维度的节点log2尺寸减去1。
在第4行,语法元素occupancy_idx标识几何形状八叉树子节点遍历顺序中的当前节点的单个被占用子节点的索引。当存在时,变量OccupancyMap可以如下导出:
OccupancyMap=1<<occupancy_idx。
occupancy_idx的相应解析过程可如下描述:
输入到该过程的是当前节点的变量partitionSkip。
该过程的输出是语法元素值occupancy_idx,被构造为如下:
occupancy_idx=0;
if(!(partitionSkip&1))
occupancy_idx=readBinEq();
if(!(partitionSkip&2))
occupancy_idx|=readBinEq()<<1;
if(!(partitionSkip&4))
occupancy_idx|=readBinEq()<<2;
在上述过程中,对于QT分割或BT分割,只有与已发生分割的维度相关的比特才用信号表示。因此,与OT分割相比,用信号表示更少的比特,以指示占用码中的单个子节点位置。复合逐位“或”运算符|=“设置”(设置为1)变量occupancy_idx中的特定比特。
在第8行,语法元素occupancy_map是识别当前节点的被占用子节点的位图。当存在时,变量OccupancyMap在使用变量NeighbourPattern和occupancy_map被调用作为输入时被设置为等于几何形状占用图置换过程的输出。NeighbourPattern(相邻模式)是用于上下文建模的相邻区域占用模式(neighbourhood occupancy pattern)。如参考图8和图9所述,对于QT分割或BT分割的信令,可跳过占用码中的bin。对于QT分割,可跳过四个bin,而对于BT分割,可跳过6个bin。因此,可在解码器处推断占用码中的那些跳过比特的位置处的比特为0。
相应的几何形状八叉树占用解析过程可如下描述:其中,基于使用变量binIsSkiped[binIdx]指示分割类型和分割方向的变量partitionSkip,推断一些比特为0。
该过程重构语法元素occupancy_map。
该过程的输入是当前节点的NeighbourPattern、binIsSkiped和binIsInferred。
该过程的输出是语法元素值,如下构造:
Figure BDA0003272766030000231
其中变量binIsskiped[binIdx]根据以下设置,
Figure BDA0003272766030000232
bitCodingOrder[i]由下表定义:
表12
Figure BDA0003272766030000233
inverseMap[i][j]由下表(表13-14)定义:
表13
Figure BDA0003272766030000241
表14(从表13继续)
Figure BDA0003272766030000242
Figure BDA0003272766030000251
实施例B
在另一实施例中,三个维度中只有一个维度允许具有不同的尺寸。在这种情况下,如果该维度具有比其它两个维度更大的尺寸,则只执行沿着该维度的隐式BT分割。如果该维度的尺寸小于其它两个维度的尺寸,则只执行沿着其它两个维度的隐式QT分割。在该实施例中,隐式BT或隐式QT的信令与先前实施例中所描述的信令相似。
实施例C
可定义用于指定隐式QT分割和BT分割的某些条件的参数。对于编码器和解码器,这些参数可被固定(取本地预配置值,例如默认值),或者可以在比特流的标头用信号表示,以实现序列级或片段级优化。下面描述实施例C-G,以示出如何用信号表示或配置用于定义隐式QT分割和BT分割的条件的参数。
在实施例C中,用信号表示可以在序列或片段标头中的参数,如下所述。
表14
Figure BDA0003272766030000261
通过在第13-15行添加用信号表示用于控制QT分割和BT分割的参数的语法元素来修改表15中的几何形状参数集语法。
gps_max_num_implicit_qtbt_before_ot指定OT分割之前的隐式QT分割和隐式BT分割的最大数量,由K表示。
gps_min_size_implicit_qtbt指定隐式QT分割和BT分割的最小尺寸,由M表示。在当前节点的所有维度都小于或等于M时,该参数防止隐式QT分割和BT分割。
gps_implicit_bt_before_implicit_qt_flag指定隐式QT分割和BT分割的优先级,由BTFirst表示。如果BTFirst=1,则在隐式QT分割之前执行隐式BT分割。如果BTFirst=0,则在隐式BT分割之前执行隐式QT分割。
实施例D
在另一实施例中,部分参数在序列或片段标头中用信号表示,而其余参数被固定。以下示例固定M和BTFirst,且K由gps_max_num_implicit_qtbt_before_ot用信号表示。
表15
Figure BDA0003272766030000271
通过在第13行添加用于用信号表示用于控制QT分割和BT分割的参数的语法元素来修改表16中的几何形状参数集语法。
gps_max_num_implicit_qtbt_before_ot指定OT分割之前的隐式QT分割和BT分割的最大数量。在这种情况下,其它参数被固定,因此不会在比特流中用信号表示,例如,M总是0,BTFirst总是1。
实施例E
在另一实施例中,K和BTFirst被固定,且M由gps_min_size_implicit_qtbt用信号表示,如下所述。
表16
Figure BDA0003272766030000272
Figure BDA0003272766030000281
通过在第13行添加用于用信号表示用于控制QT分割和BT分割的参数的语法元素来修改表17中的几何形状参数集语法。
gps_min_size_implicit_qtbt指定隐式QT分割和BT分割的最小尺寸,由M表示。当所有维度都小于或等于M时,该参数防止隐式QT分割和BT分割。在这种情况下,其它参数被固定,因此不会在比特流中用信号表示,例如,K总是0,BTFirst总是1。
实施例F
在另一实施例中,用于隐式分割的参数的信令取决于其它语法。在以下示例中,用于隐式分割的参数的信令取决于log2_trisoup_node_size,如下所述。
表17
Figure BDA0003272766030000282
Figure BDA0003272766030000291
通过在第13-15行添加用于用信号表示用于控制QT分割和BT分割的参数的语法元素来修改表18中的几何形状参数集语法。
gps_max_num_implicit_qtbt_before_ot指定OT分割之前的隐式QT分割和BT分割的最大数量,即K。在这种情况下,只有当log2_trisoup_node_size是零时,才用信号表示gps_max_num_implicit_qtbt_before_ot。如果log2_trisoup_node_size不是零,则默认将K设置为其最大值。其它参数被固定,因此不会在比特流中用信号表示,例如,M总是0,BTFirst总是1。
实施例G
在另一实施例中,用于隐式分割的这些参数中没有一个参数用信号表示,且这些参数都可以被固定。例如,参数被固定为K=3,M=0和BTFirst=1。
5.隐式QT分割和BT分割的条件
在以下子部分中描述用于隐式QT分割和BT分割的不同条件的实施例。通过使用不同控制参数和设置不同条件,可执行不同几何形状分割过程或方案。
5.1在OT之后执行隐式QT分割和BT分割
在第一方案中,一直执行OT分割,直到某些维度不能被进一步分割为止。因此,在该方案中执行隐式QT分割和BT分割的条件是当一个或两个维度达到最小分割单元(即,一个体素)时。
具体地,可根据表19或表20确定分割类型和方向。优先级参数BTFirst被固定或由gps_implicit_bt_before_implicit_qt_flag指定。如果BTFirst=1,则隐式BT分割具有较高的优先级,且将在隐式QT分割之前执行,表19适用于这种情况。如果BTFirst=0,则隐式QT分割具有较高的优先级,且将在隐式BT分割之前执行,表20适用于这种情况。如果不满足表中列出的任何条件,则执行OT分割。
表18当BTFirst=1时执行隐式分割的条件
Figure BDA0003272766030000292
表19当BTFirst=0时执行隐式分割的条件
Figure BDA0003272766030000293
Figure BDA0003272766030000301
设边界框B具有尺寸
Figure BDA0003272766030000302
在不丧失一般性的情况下,可假设0<dx≤dy≤dz。下面描述两个实施例。
在一个实施例中,BTFirst=1被固定或由gps_implicit_bt_before_implicit_qt_flag指定,指示隐式BT分割具有较高的优先级,且将在隐式QT分割之前执行,且表19适用。在该实施例中,OT分割可在第一dx分割深度处执行。在OT之后,子节点将具有形状
Figure BDA0003272766030000305
然后将沿着z轴在下一个dz-dy深度处执行隐式BT分割。在隐式BT分割之后,子节点的形状将是
Figure BDA0003272766030000304
然后沿着y-z轴在最终dy-dx深度处执行隐式QT分割,直到到达叶节点。
在另一个实施例中,BTFirst=0被固定或由gps_implicit_bt_before_implicit_qt_flag指定,指示隐式QT分割具有较高的优先级,且将在隐式BT分割之前执行,且表20适用。在该实施例中,OT分割将在第一dx分割深度处执行。在OT之后,子节点将具有形状
Figure BDA0003272766030000307
然后可以沿着y-z轴在下一个dy-dx深度处执行隐式QT分割。在隐式QT分割之后,子节点的形状将是
Figure BDA0003272766030000306
然后沿着z轴在最终dz-dy深度处执行隐式BT分割,直到到达叶节点。
5.2在OT之前执行隐式QT分割和BT分割
第二方案是在任何OT分割之前执行隐式QT分割和BT分割,以使子节点具有立方体形状。因此,在这种情况下,条件是一个或两个维度具有比最大维度的尺寸更小的尺寸。
具体地,可根据表21或表22确定分割类型和方向。优先级参数BTFirst被固定或由gps_implicit_bt_before_implicit_qt_flag指定。如果BTFirst=1,则隐式BT分割具有较高的优先级,且将在隐式QT分割之前执行,且表21适用。如果BTFirst=0,则隐式QT分割具有较高的优先级,且将在隐式BT分割之前执行,且表22适用。如果不满足表中列出的任何条件,则执行OT分割。
表20当BTFirst=1时执行隐式分割的条件
Figure BDA0003272766030000303
表21当BTFirst=0时执行隐式分割的条件
Figure BDA0003272766030000311
设边界框B具有尺寸
Figure BDA0003272766030000312
在不丧失一般性的情况下,可假设0<dx≤dy≤dz。下面描述两个实施例。
在一个实施例中,BTFirst=1被固定或由gps_implicit_bt_before_implicit_qt_flag指定,指示隐式BT分割具有较高的优先级,且将在隐式QT分割之前执行,且表21适用。在该实施例中,将沿着z轴在第一dz-dy深度处执行隐式BT分割,然后沿着y-z轴在下一个dy-dx深度处执行隐式QT分割。在隐式QT分割和BT分割之后,所有子节点的尺寸将是
Figure BDA0003272766030000313
OT分割被执行dx次以到达叶节点。
在另一实施例中,BTFirst=0被固定或由gps_implicit_bt_before_implicit_qt_flag指定,指示隐式QT分割具有较高的优先级,且将在隐式BT分割之前执行,且表22适用。在该实施例中,将沿着y-z轴在第一dy-dx深度处执行隐式QT分割,然后沿着z轴在下一个dz-dy深度处执行隐式BT分割。在隐式QT分割和BT分割之后,所有子节点的尺寸将是
Figure BDA0003272766030000314
OT分割被执行dx次以到达叶节点。
5.3隐式QT分割和BT分割的混合方案
第三方案是第III.5.1和III.5.3部分的方案的组合。在这种情况下,阈值K(0≤K≤max(dx,dy,dz)-min(dx,dy,dz))定义可在OT分割之前执行的隐式QT分割和BT分割的最大次数。该方案是前两个方案的一般话,当K=0时落到第III.5.1部分的方案,以及当K=max(dx,dy,dz)-min(dx,dy,dz)时落到第III.5.2部分的方案。
具体地,在第一K分割深度处,用于分割类型和方向的决策遵循表21或表22中定义的条件,之后遵循表19或表20。K被固定或由gps_max_num_implicit_qtbt_before_ot指定。优先级参数BTFirst被固定或由gps_implicit_bt_before_implicit_qt_flag指定。如果BTFirst=1,则隐式BT分割具有较高的优先级,且将在隐式QT分割之前执行,且表19和表21适用。如果BTFirst=0,则隐式QT分割具有较高的优先级,且将在隐式BT分割之前执行,且表20和表22适用。如果不满足表中列出的任何条件,则执行OT分割。
设边界框B具有尺寸
Figure BDA0003272766030000315
在不丧失一般性的情况下,可假设0<dx≤dy≤dz
在一个实施例中,K被固定或由gps_max_num_implicit_qtbt_before_ot指定,指示将首先执行隐式BT分割和QT分割K次。BTFirst=1被固定或由gps_implicit_bt_before_implicit_qt_flag指定,指示隐式BT分割具有较高的优先级,且将在隐式QT分割之前执行,且表19和表21适用。在该实施例中,在第一K(K≤dz-dx)深度,沿着z轴执行隐式BT分割,然后根据表21沿着y-z轴执行隐式QT分割。之后,子节点的尺寸是
Figure BDA0003272766030000322
其中δy和δzz≥δy≥0)的值取决于K的值。然后,OT分割被执行dx次,使得剩余的子节点具有尺寸
Figure BDA0003272766030000323
最后,根据表19,沿着z轴执行隐式BT分割δzy次,然后沿着y-z轴执行隐式QT分割δy次。
在另一实施例中,K被固定或由gps_max_num_implicit_qtbt_before_ot指定,指示将首先执行隐式BT分割和QT分割K次。BTFirst=0固定或由gps_implicit_bt_before_implicit_qt_flag指定,指示隐式QT分割具有较高的优先级,且将在隐式BT分割之前执行,且表20和表22适用。在该实施例中,在第一K(K≤dz-dx)深度,沿着y-z轴执行隐式QT分割,然后根据表22沿着z轴执行隐式BT分割。之后,子节点的尺寸是
Figure BDA0003272766030000324
其中δy和δzz≥δy≥0)的值取决于K的值。然后,OT分割被执行dx次,使得剩余的子节点具有尺寸
Figure BDA0003272766030000325
最后,根据表20,沿着y-z轴执行隐式QT分割δy次,然后沿着z轴执行隐式BT分割δzy次。
5.4隐式QT分割和BT分割的具有最小尺寸的混合方案
第四方案对先前的方案施加额外的约束。在这种情况下,阈值K(0≤K≤max(dx,dy,dz)-min(dx,dy,dz))定义可以在OT分割之前执行的隐式QT分割和BT分割的最大次数。另一个参数M(0≤M≤min(dx,dy,dz))定义隐式QT分割和BT分割的最小尺寸,且当所有维度都小于或等于M时,防止隐式QT分割和BT分割。第四方案是前三种方案的一般化。当K=M=0时,第四方案落到第III.5.1部分的方案。当K=max(dx,dy,dz)-min(dx,dy,dz),M=0,第四方案落到第III.5.2部分的方案。当0<K<max(dx,dy,dz)-min(dx,dy,dz),M=0时,第四方案落到第III.5.3部分的方案。
具体地,在第一K分割级别,分割类型和方向的决策遵循表21或表22中定义的条件,之后遵循表23或表24。表23和24类似于表19和表20,但用M代替0。K被固定或由gps_max_num_implicit_qtbt_before_ot指定。M被固定或由gps_min_size_implicit_qtbt指定。优先级参数BTFirst被固定或由gps_implicit_bt_before_implicit_qt_flag指定。如果BTFirst=1,则隐式BT分割具有较高的优先级,且将在隐式QT分割之前执行,且表21和表23适用。如果BTFirst=0,则隐式QT分割具有较高的优先级,且将在隐式BT分割之前执行,且表22和表24适用。如果不满足表中列出的任何条件,则执行OT分割。
表23当BTFirst=1时执行隐式QT分割或BT分割的条件
Figure BDA0003272766030000321
Figure BDA0003272766030000331
表24当BTFirst=0时执行隐式QT分割或BT分割的条件
QT沿x-y轴 QT沿x-z轴 QT沿y-z轴
条件 d<sub>z</sub>=M<d<sub>x</sub>≤d<sub>y</sub> d<sub>y</sub>=M<d<sub>x</sub>≤d<sub>z</sub> d<sub>x</sub>=M<d<sub>y</sub>≤d<sub>z</sub>
BT沿x轴 BT沿y轴 BT沿z轴
条件 d<sub>y</sub>=d<sub>z</sub>=M<d<sub>x</sub> d<sub>x</sub>=d<sub>z</sub>=M<d<sub>y</sub> d<sub>x</sub>=d<sub>y</sub>=M<d<sub>z</sub>
设边界框B具有尺寸
Figure BDA0003272766030000332
在不丧失一般性的情况下,可假设0<dx≤dy≤dz
在一个实施例中,K被固定或由gps_max_num_implicit_qtbt_before_ot指定,指示将首先执行隐式BT和QT分割K次。M被固定或由gps_min_size_implicit_qtbt指定,指示隐式QT分割和BT分割的最小尺寸。BTFirst=1被固定或由gps_implicit_bt_before_implicit_qt_flag指定,指示隐式BT分割具有较高的优先级,且将在隐式QT分割之前执行,且表21和表22适用。在该实施例中,在第一K(K≤dz-dx)深度处,沿着z轴执行隐式BT分割,然后基于表21沿着y-z轴执行隐式QT分割。然后,子节点的尺寸变成
Figure BDA0003272766030000335
其中δy和δzz≥δy≥0)的值取决于K的值。然后,OT分割执行dx-M次,使得剩余的子节点具有尺寸
Figure BDA0003272766030000336
接下来,根据表23,沿着z轴执行隐式BT分割δzy次,然后沿着y-z轴执行隐式QT分割δy次。其余节点具有尺寸2(M,M,M),因此OT分割执行M次以达到最小单元。
在另一实施例中,K被固定或由gps_max_num_implicit_qtbt_before_ot指定,指示将首先执行隐式BT和QT分割K次。M被固定或由gps_min_size_implicit_qtbt指定,指示隐式QT分割和BT分割的最小尺寸。BTFirst=0被固定或由gps_implicit_bt_before_implicit_qt_flag指定,指示隐式QT分割具有较高的优先级,且将在隐式BT分割之前执行,且表22和表24适用。在该实施例中,在第一K(K≤dz-dx)深度处,沿着z轴执行隐式BT分割,然后基于表22沿着y-z轴执行隐式QT分割。然后,子节点的尺寸变成
Figure BDA0003272766030000333
其中δy和δzz≥δy≥0)的值取决于K的值。然后,OT分割执行dx-M次,使得剩余的子节点具有尺寸
Figure BDA0003272766030000334
接下来,根据表24,沿着y-z轴执行隐式QT分割δy次,然后沿着z轴执行隐式BT分割δzy次。其余节点具有尺寸2(M,M,M),因此OT分割执行M次以达到最小单元。
5.5用于QT分割和BT分割的不同分割方案的2D块示范
上述四个分割方案可分别在如图10至图13所示的2D块中演示,其中16×4矩形边界框B通过4级迭代分割而分割成最小单元。此外,在图10中针对2D情况示出了TMC13方案,其中从扩展的立方边界框执行OT分割。在2D图示中,BT类似于3D中的BT或QT,而QT类似于3D中的OT。
第III.5.1部分的方案的示例
在图10中,在QT之后执行BT,这相当于在3D中的OT之后执行QT和BT。如图所示,首先通过两级QT分割将B分割成4个4×1个子块,然后沿着x轴通过两级BT分割来分割剩余子块。分割顺序是隐式QT、QT、BT、BT。
第III.5.2部分的方案的示例
在图11中,在QT之前执行BT,这相当于在3D中的OT之前执行QT和BT。如图所示,首先沿着x轴通过两级BT分割来划分B以形成4个4×4个子块,然后通过QT分割来划分每个子块。分割顺序是隐式BT、BT、QT、QT。
第III.5.3部分的方案的示例
在图12中,通过BT、QT、BT的顺序来进行分割,这相当于3D中的混合方案。在图12中示出了K=1的混合方案,其中通过BT分割来分割B一次以获得两个8×4子块,然后通过两级QT分割来分割每个子块以获得多个2×1较小的子块,这些子块最终沿着x轴通过另一BT分割而划分成最小的单元。分割顺序是隐式BT、QT、QT、BT。
第III.5.4部分的方案的示例
在图13中,按照BT、QT、BT、QT的顺序进行分割,这相当于3D中具有最小尺寸约束的混合方案。在图13中示出了具有最小BT尺寸约束的混合方案,其中K=M=1。首先,在QT分割之前执行BT分割,原因是K=1,然后执行QT分割,直到较短的维度达到2^M=2,即4×2子块。接下来,由于最小BT尺寸约束,因此需要BT分割,结果剩余的子块具有2×2尺寸,最后执行QT分割。分割顺序是隐式BT、QT、BT、QT。
TMC13设计的示例
图14示出了来自2D的扩展边界框的QT方案,其相当于3D的TMC13设计的OT分割方案。如图所示,递归QT分割从扩展16×16矩形边界框(在图中用虚线示出)开始。
假设点位于图10至图14中由十字标记的位置,则可计算每个方案所需的比特。如表25的第一列所概括的,可以从表25看出,四个方案比TMC13方案花费更少的比特。第III.5.3部分的方案和第III.5.4部分的方案执行得最佳。表25中的第二列计算在所有位置都被占用的最坏情况下所需的比特。从这种模拟中可以看出,第III.5.2部分的方案需要最少的比特,且第III.5.2部分和第III.5.4部分的方案比TMC13方案执行得更好。因此,通过适当地选择控制参数(K和M)和条件,可获得有利的几何形状编码结果。
表22不同分割方案所需的比特的比较
Figure BDA0003272766030000341
Figure BDA0003272766030000351
IV.平面模式下的相互作用
1.平面模式
在一些实施例中,引入在三个方向x、y和z的平面模式,用于点云几何形状编码。可通过在比特流中编码的平面模式激活标志在符合条件的节点级别激活平面模式。此外,将额外的语法添加到比特流,以指示与激活的平面模式相关联的平面的位置。
还引入对标志和平面位置的预测,以确保新语法元素的良好压缩。最后,可使用局部符合条件标准来避免在点云的不利区域中使用平面模式,并因此避免更差的压缩性能,特别是在密集点云上。
2.问题
隐式QT/BT分割和平面模式基于不同的观测结果并且在稀疏点云上具有类似的编码增益。通常,隐式几何形状分割具有低复杂度,而平面模式更复杂但更加自适应。在性能上,两种编码技术在稀疏数据上实现相似的性能,且平面模式可更好地处理具有多个平面图案的点云。
首先,这两种编码技术在占用编码时共享一些类似的概念和编码方案。这两种编码技术都改变占用编码方案,其中在某些条件下,只有占用码的一部分被编码,而占用码的剩余部分可以在解码器侧被跳过和推断。对于隐式几何形状分割,条件由一些预定参数隐式地确定。而对于平面模式,条件由编码器确定,且标志和索引被显式地用信号表示,以指示占用码的哪个部分被跳过。
此外,隐式几何形状分割可以从非立方体边界框开始八叉树分割,且八叉树节点的形状也可以不对称,而平面模式总是假设八叉树节点的对称形状。
这两种技术在概念上不直接冲突。它们还具有相似性/重叠和差异。在各种实施例中,这两种技术可以合并在一起。
在以下部分中,描述了将隐式几何形状分割和平面模式组合的实施例。在以下描述中,示出了一些实施例作为基于几何形状的点云压缩草案(ISO/IEC 23090-9:2019(E),CD阶段,ISO/IEC JTC 1/SC 29/WG 11W18478,2019年6月)的标准规范的变化。
3.仅隐式几何形状分割或仅平面模式
在一些实施例中,当对点云的几何形状进行编码时,启用两种技术中的一种,即,启用隐式几何形状分割(同时禁用平面模式)或启用平面模式(同时禁用隐式几何形状分割)。
3.1用于隐式几何形状分割的高级语法的信令控制标志
为了启用和禁用隐式几何形状分割,可以以高级语法用信号表示一个标志。可以在比特流的序列参数集或片段标头或几何形状参数集中指定标志。
实施例A
在一个实施例中,在几何形状参数集中指定隐式几何形状分割的标志,如下所述。
表23
Figure BDA0003272766030000361
通过在第17行添加语法元素来修改表26中的几何形状参数集语法。
gps_implicit_geom_partition_flag等于1,指定对于序列或片段启用隐式几何形状分割。gps_implicit_geom_partition_flag等于0,指定对于序列或片段禁用隐式几何形状分割。
实施例B
在另一实施例中,当Trisoup方案被禁用时,标志被指定,在这种情况下,在表27中的第6-8行示出几何形状参数集的改变。
表24
Figure BDA0003272766030000371
当log2_trisoup_node_size大于0时,无需明确的信令即可推断gps_implicit_geom_partition_flag为0。
实施例C
在另一实施例中,除了标志之外,当标志gps_implicit_geom_partition_flag等于1时,可以用高级语法来指定与隐式几何形状分割相关的其它参数。表28中的几何形状参数集语法在第6-10行被修改。
表25
Figure BDA0003272766030000372
gps_max_num_implicit_qtbt_before_ot指定在OT分割之前的隐式QT分割和BT分割的最大数量。gps_min_size_implicit_qtbt指定隐式QT分割和BT分割的最小尺寸。
实施例D
在另一实施例中,几何形状的边界框的信令可取决于gps_implicit_geom_partition_flag的值,如下所述。通过在第10-16行添加语法结构来改变表29中的几何形状片段标头语法。
表26
Figure BDA0003272766030000381
gsh_log2_max_nodesize_x、gsh_log2_max_nodesize_y和gsh_log2_max_nodesize_z分别以log2尺度指定x、y、z维度的边界框尺寸。它们仅在gps_implicit_geom_partition_flag等于1时才被指定。当gps_implicit_geom_partition_flag等于0时,只有一个尺寸由gsh_log2_max_nodesize指定,在这种情况下,假设三个维度具有相同的尺寸。
实施例E
在另一实施例中,边界框尺寸由它们的差指定。表30中的几何形状片段标头语法在第10-16行被修改。
表27
Figure BDA0003272766030000382
Figure BDA0003272766030000391
3.2考虑组合方案的高层语法中的信令控制标志
在该子部分中,几个实施例作为示例描述,以示出当考虑隐式几何形状分割和平面模式的组合时如何以高级语法来用信号表示控制标志。
实施例A
在一个实施例中,两个控制标志在几何形状参数集中被独立地指定,如下所述。表31中的几何形状参数集语法在第6-7行被修改。
表28
Figure BDA0003272766030000392
gps_planar_mode_flag等于1,指定对于序列或片段启用平面模式。gps_planar_mode_flag等于0,指定对于序列或片段禁用平面模式。
然而,在该组合方案中,假设这两种方法中仅有一种方法被启用。例如,gps_implicit_geom_partition_flag和gps_planar_mode_flag不能同时等于1。
实施例B
在另一实施例中,控制标志gps_planar_mode_flag根据几何形状参数集中的gps_implicit_geom_partition_flag的值来指定,如下所述。表32中的几何形状参数集语法在第6-8行被修改。
表29
Figure BDA0003272766030000393
Figure BDA0003272766030000401
在这种情况下,只有当gps_implicit_geom_partition_flag等于0时才指定gps_planar_mode_flag。当gps_implicit_geom_partition_flag等于1时,可推断gps_planar_mode_flag为0。
实施例C
在另一实施例中,控制标志gps_implicit_geom_partition_flag根据几何形状参数集中的gps_planar_mode_flag的值来指定,如下所述。表33中的几何形状参数集语法在第6-8行被修改。
表30
Figure BDA0003272766030000402
在这种情况下,只有当gps_planar_mode_flag等于0时才指定gps_implicit_geom_partition_flag。当gps_planar_mode_flag等于1时,可推断gps_implicit_geom_partition_flag为0。
实施例D
在另一实施例中,控制标志gps_implicit_geom_partition_flag根据几何形状参数集中的gps_planar_mode_flag的值和log2_trisoup_node_size的值来指定,如下所述。表34中的几何形状参数集语法在第6-8行被修改。
表31
Figure BDA0003272766030000411
在这种情况下,只有当gps_planar_mode_flag和log2_trisoup_node_size都等于0时才指定gps_implicit_geom_partition_flag。否则,可推断gps_implicit_geom_partition_flag为0。换句话说,仅当Trisoup和平面模式都被禁用时,才能启用隐式几何形状分割。
4.仅在当前八叉树节点是立方体时,平面模式才符合条件
第二组合方案可同时实现隐式几何形状分割和平面模式。然而,对于平面模式,还涉及一些约束条件。如果启用隐式几何形状分割,则边界框和八叉树节点可能不是立方体。在该方案中,用于应用平面模式的约束是仅在当前八叉树节点是立方体时,平面模式才符合条件,指示dx=dy=dz
在一个实施例中,表35中示出了几何形状编码语法,其可以类似于表9中的几何形状编码语法。
表32
Figure BDA0003272766030000412
Figure BDA0003272766030000421
变量ChildNodeSizeXLog2、ChildNodeSizeYLog2和ChildNodeSizeZLog2指定针对每个维度的子节点尺寸,且可以由隐式QT分割和BT分割确定,如下所述:
Figure BDA0003272766030000422
在该实施例中,当NodeSizeLog2X、NodeSizeLog2Y和NodeSizeLog2Z不相等时,平面模式不符合条件,如下所述。
Figure BDA0003272766030000423
其中planarModeEligibilityX、planarModeEligibilityY和planarModeEligibilityZ分别指定在当前编码节点中对于X、Y、Z维度平面模式是否符合条件。
5.在未被分割的某些维度上,平面模式不符合条件
第三组合方案还放宽了平面模式的约束,其中即使当当前八叉树节点不是立方体时,平面模式也符合条件。如果一个或两个维度在一个深度处没有被分割,则平面模式在那些维度上不符合条件,而在其余维度上符合条件。例如,如果隐式几何形状分割决定沿着x维度和y维度而不沿着z维度在某个分割深度处执行分割,则平面模式仅适合x维度和y维度。
在该实施例中,平面模式在某些维度上不符合条件,在所述某些维度上,通过隐式几何形状分割方法跳过分割,如下所述。
Figure BDA0003272766030000433
应注意,在其它示例中,平面模式可以在其它方面改变,并以更复杂的方式与八叉树节点现在可以是矩形立方体的事实一致。
V.隐式几何形状分割的附加实施例
实施例A
实施例A提供了对隐式几何形状分割的改进,且在使用隐式几何形状分割对占用码进行编码时节省更多的比特。具体地,第III部分中描述的几何形状八叉树占用解析过程可通过引入用于在几何形状八叉树占用解析过程结束时确定变量binIsInfried的过程来修改:
该过程重构语法元素occupancy_map。
该过程的输入是当前节点的NeighbourPattern、binIsSkiped和binIsInferred。
该过程的输出是语法元素值,被构造为如下:
Figure BDA0003272766030000431
其中变量binIsSkiped[binIdx]根据以下设置:
Figure BDA0003272766030000432
Figure BDA0003272766030000441
其中,对于每个bin,变量binIsInferred根据以下设置:
-如果以下条件之一为真,则binIsInferred设置为等于1:
-NeighbourPattern等于0且先前解码的值为1的bin的数量小于或等于(binIdx+minOccupied-maxOccupied)。
-NeighbourPattern不等于0,binIdx等于maxOccupied-1,且所有先前解码的bin的值为零。
其中,minOccupied=2且maxOccupied=8(如果应用OT),maxOccupied=4(如果应用QT),maxOccupied=2(如果应用BT)。
-否则,如果上述条件都不为真,则binIsInferred设置为等于0。
实施例B
在一个实施例中,控制标志gps_implicit_geom_partition_flag和两个参数K和M在几何形状参数集处被指定,如下所述。
表33
Figure BDA0003272766030000442
Figure BDA0003272766030000451
gps_implicit_geom_partition_flag等于1,指定对于序列或片段启用隐式几何形状分割。gps_implicit_geom_partition_flag等于0,指定对于序列或片段禁用隐式几何形状分割。如果gps_implicit_geom_partition_flag等于1,则用信号表示以下两个参数:
(1)gps_max_num_implicit_qtbt_before_ot指定在OT分割之前的隐式QT分割和BT分割的最大数量,即,K=gps_max_num_implicit_qtbt_before_ot。
(2)gps_min_size_implicit_qtbt指定隐式QT分割和BT分割的最小尺寸,即M=gps_min_size_implicit_qtbt。当所有维度小于或等于M时,该参数M防止隐式QT分割和BT分割。
实施例C
在一个实施例中,如果隐式QTBT被启用,则边界框的尺寸由几何形状片段标头中的三个值指定,如下所述。
Figure BDA0003272766030000452
gsh_log2_max_nodesize_x指定x维度的边界框尺寸,即,在解码过程中使用的MaxNodesizeXLog2,如下所述:
MaxNodeSizeXLog2=gsh_log2_max_nodesize_x。
MaxNodeSizeX=1<<MaxNodeSizeXLog2。
gsh_log2_max_nodesize_y_minus_x指定y维度的边界框尺寸,即在解码过程中使用的MaxNodesizeYLog2,如下所述:
MaxNodeSizeYLog2=gsh_log2_max_nodesize_y_minus_x+MaxNodeSizeXLog2.
MaxNodeSizeY=1<<MaxNodeSizeYLog2.
gsh_log2_max_nodesize_z_minus_y指定z维度的边界框尺寸,即在解码过程中使用的MaxNodesizeZLog2,如下所述:
MaxNodeSizeZLog2=gsh_log2_max_nodesize_z_minus_y+MaxNodeSizeYLog2.
MaxNodeSizeZ=1<<MaxNodeSizeZLog2.
然后如下更新参数K和M:
Figure BDA0003272766030000461
在一个实施例中,当启用trisoup模式(log2_trisoup_node_size!=0为真)时,M改变为片段的最小根节点log2维度。应注意,trisoup节点log2维度需要不大于片段的最小根节点log2维度。
实施例D
在一个实施例中,使用表37中的几何形状片段数据语法来代替表35或表9中的语法结构。在表37的第3行新引入隐式QT/BT判决函数。表38中示出了隐式QT/BT判决函数的语法,其中在第9-16行确定变量partitionSkip,且在第17-23行更新x、y和z方向上的深度。
表34
Figure BDA0003272766030000462
Figure BDA0003272766030000471
表35
Figure BDA0003272766030000472
VI.几何形状解码过程示例
图15示出了概述根据本公开的实施例的过程(1500)的流程图。例如,过程(1500)可用于点云解码。该过程(1500)可用于生成八叉树结构,该八叉树结构用于表示在点云解码器处的片段的边界框中的点的几何形状。在各种实施例中,过程(1500)可由处理电路执行,例如处理电路在解码器(400)处执行算术解码模块(410)和八叉树解码模块(430)的功能。在一些实施例中,过程(1500)在软件指令中实现,因此当处理电路执行软件指令时,处理电路执行过程(1500)。该过程开始于(S1501)并进行到(S1510)。
在(S1510)处,可接收包括已编码点云帧的片段的比特流。例如,片段可包括表示已编码点云帧的一部分或整个已编码点云帧的一系列语法元素和bin。
在(S1520)处,可重构表示片段的边界框中的点的几何形状的八叉树。在八叉树构建过程期间,可以用四叉树(QT)分割或二叉树(BT)分割来分割八叉树的当前节点。例如,可基于预定条件来确定如何使用QT分割、BT分割或八叉树(OT)分割中的一种分割来分割八叉树的当前节点。还可基于一个或多个参数来确定如何使用QT分割、BT分割或OT分割中的一种分割来分割八叉树的当前节点,所述一个或多个参数中的每一个参数可在比特流中用信号表示,或者使用本地预配置值。
在构建八叉树期间,可确定由partitionSkip表示的、指定八叉树的当前节点的分割类型和分割方向的变量的值。例如,变量partitionSkip可以以三个比特分别对应于x、y和z方向的二进制形式来表示,且每个比特指示分割是沿着相应的x、y还是z方向来执行。基于变量partitionSkip,可更新对于八叉树的当前节点的子节点的在x、y或z维度中的深度。
在构建八叉树期间,可以从比特流接收(或解析)属于八叉树的当前节点的8-bin占用码的占用比特。每个占用比特对应于八叉树的当前节点的被占用子节点。当八叉树的当前节点用QT分割来分割时,在比特流中不用信号表示属于八叉树占用码的4个bin,而当八叉树的当前节点用BT分割来分割时,在比特流中不用信号表示属于八叉树占用码的6个bin。
此外,可以从比特流接收一个或多个语法元素,一个或多个语法元素指示已编码点云帧的片段的边界框的三维(3D)尺寸。例如,片段的边界框可具有矩形长方体的形状。
在构建八叉树期间,在接收到指示八叉树的当前节点具有单个被占用子节点的语法元素之后,如果变量partitionSkip指示BT分割,则可接收1个bin,或者如果变量partitionSkip指示QT分割,则可接收2个bin。可基于所接收的1个或2个bin来确定对八叉树的当前节点的被占用子节点进行标识的占用图。
在构建八叉树期间,可对比特流执行解析处理,以确定标识八叉树的当前节点的被占用子节点的占用图的语法元素。在解析过程期间,可基于变量partitionSkip确定占用图的语法元素的bin被跳过。
在构建八叉树期间,对于以直接模式编码的八叉树的当前节点的子节点,可基于变量partitionSkip针对子节点确定在x、y和z方向中的每一个方向的log2尺寸,每一个方向的log2尺寸分别表示为dx,dy和dz。可通过分别用(dx,dy,dz)比特的固定长度编码来确定子节点中的点的位置。因此,可基于已知的编码长度来接收对应于子节点中的点的坐标的bin。
在一个示例中,可以在比特流中接收指示以下参数之一的语法元素,以用于重构八叉树:在OT分割之前执行的隐式QT分割和BT分割的最大数量;隐式QT分割和BT分割的最小尺寸,该最小尺寸在节点的所有维度都小于或等于最小尺寸时防止节点的隐式QT分割和BT分割;或者优先级,优先级指示当允许QT分割和BT分割两者时,首先执行隐式QT分割或BT分割中的哪一个分割。
在一个示例中,在构建八叉树期间,在当前节点的八叉树深度小于参数K时,或者在当前节点在x、y和z方向的log2个尺寸中最小的log2尺寸等于参数M时,可根据如下表中的条件确定用于分割当前节点的分割类型和分割方向:
表36
Figure BDA0003272766030000491
参数K可以是0≤K≤max(dx,dy,dz)-min(dx,dy,dz)范围内的整数,并定义在OT分割之前允许的隐式QT分割和BT分割的最大次数。参数M可以是0≤M≤min(dx,dy,dz)范围内的整数,并定义隐式QT分割和BT分割的最小尺寸,该最小尺寸在节点的所有维度都小于或等于M时,防止节点的隐式QT分割和BT分割。尺寸dx,dy和dz可以分别是当前节点在x,y和z方向的log2尺寸。在一个示例中,用于分割当前节点的上述分割类型和分割方向可以由变量partitionSkip来表示。
在一个示例中,参数K和M可各自用信号通知给解码器,或者取预先配置的值,且稍后被更新,例如,基于片段的根节点的3D尺寸或者是否启用trisoup模式来更新。
应注意,参数K或M,或者用于控制或实现隐式QT/BT分割的其它参数仅作为示例来描述,以说明本公开的一些实施例。各种形式的参数可以在比特流中用信号表示并用于在解码器处进行QT/BT分割。这些参数可以与K或M相似或不相似,但是可以类似地用于控制如何进行QT/BT分割,从而可实现更好的点云压缩性能。
在(S1520)之后,过程(1500)可以在(S1599)终止。
VII.计算机系统
可将上述技术实现为计算机软件,该计算机软件使用计算机可读指令,且物理地存储在一个或多个计算机可读介质中。例如,图16示出了适合于实施所公开的主题的某些实施例的计算机系统(1600)。
可使用任何合适的机器代码或计算机语言对计算机软件进行编码,任何合适的机器代码或计算机语言可经受汇编、编译、链接或类似的机制以创建包括指令的代码,该指令可由一个或多个计算机中央处理单元(CPU)、图形处理单元(GPU)等直接执行或通过解释、微代码执行等执行。
指令可在各种类型的计算机或其组件上执行,例如包括个人计算机、平板计算机、服务器、智能电话、游戏装置、物联网装置等。
图16所示的计算机系统(1600)的组件本质上是示例性的,并不旨在对实施本公开的实施例的计算机软件的使用范围或功能提出任何限制。组件的配置也不应被解释为具有与计算机系统(1600)的示例性实施例中所示的组件中的任何一个组件或组件的组合相关的任何依赖或要求。
计算机系统(1600)可包括某些人机接口输入装置。此类人机接口输入装置可响应于一个或多个人类用户通过例如下述的输入:触觉输入(例如:击键、划动,数据手套移动)、音频输入(例如:语音、拍手)、视觉输入(例如:手势)、嗅觉输入(未示出)。人机接口装置还可用于捕获不一定与人的意识输入直接相关的某些媒介,例如音频(例如:语音、音乐、环境声音)、图像(例如:扫描的图像、从静止图像相机获取摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。
输入人机接口装置可包括下述中的一项或多项(每种中仅示出一个):键盘(1601)、鼠标(1602)、触控板(1603)、触摸屏(1610)、数据手套(未示出)、操纵杆(1605)、麦克风(1606)、扫描仪(1607)、相机(1608)。
计算机系统(1600)还可包括某些人机接口输出装置。此类人机接口输出装置可例如通过触觉输出、声音、光和气味/味道来刺激一个或多个人类用户的感官。此类人机接口输出装置可包括触觉输出装置(例如触摸屏(1610)的触觉反馈、数据手套(未示出)或操纵杆(1605),但也可以是不作为输入装置的触觉反馈装置)、音频输出装置(例如:扬声器(1609)、耳机(未示出))、视觉输出装置(例如包括CRT屏幕、LCD屏幕、等离子屏幕、OLED屏幕的屏幕(1610),每种屏幕都有或没有触摸屏输入功能,每种屏幕都有或没有触觉反馈功能-其中的一些屏幕能够通过诸如立体图像输出之类的装置、虚拟现实眼镜(未示出)、全息显示器和烟箱(未示出)以及打印机(未示出)来输出二维视觉输出或超过三维的输出。
计算机系统(1600)还可包括人类可访问存储装置及其关联介质,例如,包括具有CD/DVD等介质(1621)的CD/DVD ROM/RW(1620)的光学介质、指状驱动器(1622)、可拆卸硬盘驱动器或固态驱动器(1623)、诸如磁带和软盘之类的传统磁性介质(未示出)、诸如安全软件狗之类的基于专用ROM/ASIC/PLD的装置(未示出)等。
本领域技术人员还应该理解,结合当前公开的主题使用的术语“计算机可读介质”不涵盖传输介质、载波或其它暂时性信号。
计算机系统(1600)还可包括通到一个或多个通信网络(1655)的接口(1654)。一个或多个网络可以例如是无线网络、有线网络、光网络。一个或多个网络可进一步是本地网络、广域网络、城域网络、车辆和工业网络、实时网络、延迟容忍网络等。一个或多个网络的示例包括诸如以太网之类的局域网、无线LAN、包括GSM、3G、4G、5G、LTE等的蜂窝网络、包括有线电视、卫星电视和地面广播电视的电视有线或无线广域数字网络、包括CANBus的车辆和工业网络等等。某些网络通常需要连接到某些通用数据端口或外围总线(1649)的外部网络接口适配器(例如,计算机系统(1600)的USB端口);如下所述,其它网络接口通常通过连接到系统总线而集成到计算机系统(1600)的内核中(例如,连接到PC计算机系统中的以太网接口或连接到智能手机计算机系统中的蜂窝网络接口)。计算机系统(1600)可使用这些网络中的任何一个网络与其它实体通信。此类通信可以是仅单向接收的(例如,广播电视)、仅单向发送的(例如,连接到某些CANbus装置的CANbus)或双向的,例如,使用局域网或广域网数字网络连接到其它计算机系统。如上所述,可在那些网络和网络接口中的每一个上使用某些协议和协议栈。
上述人机接口装置、人机可访问的存储装置和网络接口可附接到计算机系统(1600)的内核(1640)。
内核(1640)可包括一个或多个中央处理单元(CPU)(1641),图形处理单元(GPU)(1642),现场可编程门区域(FPGA)形式的专用可编程处理单元(1643)、用于某些任务的硬件加速器(1644)、图形适配器(1650)等。这些装置以及只读存储器(ROM)(1645)、随机存取存储器(1646)、诸如内部非用户可访问的硬盘驱动器、SSD等之类的内部大容量存储器(1647)可通过系统总线(1648)连接。在一些计算机系统中,可以以一个或多个物理插头的形式访问系统总线(1648),以能够通过附加的CPU、GPU等进行扩展。外围装置可直接连接到内核的系统总线(1648)或通过外围总线(1649)连接到内核的系统总线(1648)。在一个示例中,屏幕(1610)可连接到图形适配器(1650)。外围总线的体系结构包括PCI、USB等。
CPU(1641)、GPU(1642)、FPGA(1643)和加速器(1644)可执行某些指令,这些指令可以组合来构成上述计算机代码。该计算机代码可存储在ROM(1645)或RAM(1646)中。过渡数据也可存储在RAM(1646)中,而永久数据可例如存储在内部大容量存储器(1647)中。可通过使用高速缓存来进行到任何存储装置的快速存储及检索,该高速缓存可与下述紧密关联:一个或多个CPU(1641)、GPU(1642)、大容量存储器(1647)、ROM(1645)、RAM(1646)等。
计算机可读介质可在其上具有用于执行各种由计算机实现的操作的计算机代码。介质和计算机代码可以是出于本公开的目的而专门设计和构造的介质和计算机代码,或者介质和计算机代码可以是计算机软件领域的技术人员公知且可用的类型。
作为非限制性示例,可由于一个或多个处理器(包括CPU、GPU、FPGA、加速器等)执行包含在一种或多种有形的计算机可读介质中的软件而使得具有架构(1600),特别是内核(1640)的计算机系统提供功能。此类计算机可读介质可以是与如上所述的用户可访问的大容量存储相关联的介质,以及某些非暂时性的内核(1640)的存储器,例如内核内部大容量存储器(1647)或ROM(1645)。可将实施本公开的各实施例的软件存储在此类装置中并由内核(1640)执行。根据特定需要,计算机可读介质可包括一个或多个存储装置或芯片。软件可使得内核(1640),特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文所描述的特定过程或特定过程的特定部分,包括定义存储在RAM(1646)中的数据结构以及根据由软件定义的过程来修改此类数据结构。附加地或替换地,可由于硬连线或以其它方式体现在电路(例如,加速器(1644))中的逻辑而使得计算机系统提供功能,该电路可替换软件或与软件一起运行以执行本文描述的特定过程或特定过程的特定部分。在适当的情况下,提及软件的部分可包含逻辑,反之亦然。在适当的情况下,提及计算机可读介质的部分可包括存储用于执行的软件的电路(例如集成电路(IC))、体现用于执行的逻辑的电路或包括两者。本公开包括硬件和软件的任何合适的组合。
虽然已结合作为示例提出的具体实施例描述了本公开的各方面,但是可以对示例进行替换、修改和变化。因此,本文阐述的实施例旨在是说明性的而不是限制性的。在不脱离下面阐述的权利要求的范围的情况下,可进行各种改变。

Claims (20)

1.一种在点云解码器中进行点云几何形状解码的方法,包括:
接收包括已编码点云帧的片段的比特流;和
重构八叉树,所述八叉树表示所述片段的边界框中的点的几何形状,其中所述八叉树的当前节点用四叉树QT分割或二叉树BT分割来分割。
2.根据权利要求1所述的方法,其中,所述重构八叉树包括:
基于预定条件来确定如何使用所述QT分割、所述BT分割或八叉树OT分割中的一种分割来分割所述八叉树的当前节点。
3.根据权利要求1所述的方法,其中,所述重构八叉树包括:
基于一个或多个参数来确定如何使用所述QT分割、所述BT分割或八叉树OT分割中的一种分割来分割所述八叉树的当前节点,所述一个或多个参数中的一个参数在所述比特流中用信号表示或者使用本地预配置值。
4.根据权利要求1所述的方法,其中,所述重构八叉树包括:
从所述比特流接收属于所述八叉树的当前节点的8-bin占用码的占用bin,
其中,每个占用bin对应于所述八叉树的当前节点的被占用子节点,
当所述八叉树的当前节点用所述QT分割来分割时,在所述比特流中不用信号表示属于所述8-bin占用码的4个bin,以及
当所述八叉树的当前节点用所述BT分割来分割时,在所述比特流中不用信号表示属于所述8-bin占用码的6个bin。
5.根据权利要求1所述的方法,其中,所述重构八叉树包括:
从所述比特流接收一个或多个语法元素,所述一个或多个语法元素指示所述已编码点云帧的片段的边界框的三维3D尺寸。
6.根据权利要求1所述的方法,其中,所述重构八叉树包括:
确定由partitionSkip表示的、指定所述八叉树的当前节点的分割类型和分割方向的变量的值。
7.根据权利要求6所述的方法,其中,所述变量partitionSkip以三个比特分别对应于x、y和z方向的二进制形式来表示,且每个比特指示分割是沿着相应的x、y还是z方向来执行。
8.根据权利要求6所述的方法,其中,所述重构八叉树进一步包括:
基于所述变量partitionSkip来更新所述八叉树的当前节点的子节点在x、y或z维度中的深度。
9.根据权利要求6所述的方法,其中,所述重构八叉树进一步包括:
接收指示所述八叉树的当前节点具有单个被占用子节点的语法元素;
如果所述变量partitionSkip指示所述BT分割,则接收1个bin,或者如果所述变量partitionSkip指示所述QT分割,则接收2个bin;以及
基于所接收的1个或2个bin,确定对所述八叉树的当前节点的被占用子节点进行标识的占用图。
10.根据权利要求6所述的方法,其中,所述重构八叉树进一步包括:
在对所述比特流进行解析处理以确定对所述八叉树的当前节点的被占用子节点进行标识的占用图的语法元素期间,基于所述变量partitionSkip来跳过所述占用图的语法元素的bin。
11.根据权利要求6所述的方法,其中,所述重构八叉树进一步包括:
对于以直接模式编码的所述八叉树的当前节点的子节点,基于所述变量partitionSkip来确定所述子节点的针对x、y和z方向中的每一个方向的log2尺寸,每一个方向的log2尺寸分别表示为dx、dy和dz,其中通过用(dx、dy、dz)比特分别进行固定长度编码来对所述子节点中的点的位置进行编码。
12.根据权利要求1所述的方法,其中,所述重构八叉树进一步包括:
从所述比特流接收指示以下参数之一的语法元素:
在OT分割之前执行的隐式QT分割和BT分割的最大数量,
隐式QT分割和BT分割的最小尺寸,所述最小尺寸在节点的所有维度小于或等于所述最小尺寸时防止所述节点的隐式QT分割和BT分割,或者
优先级,所述优先级指示当允许QT分割和BT分割两者时,首先执行隐式QT分割或BT分割中的哪一个分割。
13.根据权利要求1所述的方法,其中,所述重构八叉树进一步包括:
响应于所述当前节点的八叉树深度小于参数K,或者所述当前节点的在x、y和z方向的log2尺寸中最小的log2尺寸等于参数M,根据如下表中的条件确定用于分割所述当前节点的分割类型和分割方向:
Figure FDA0003272766020000021
其中:
参数K是0≤K≤max(dx,dy,dz)-min(dx,dy,dz)范围内的整数,并定义在OT分割之前允许的隐式QT分割和BT分割的最大次数,
参数M是0≤M≤min(dx,dy,dz)范围内的整数,定义隐式QT分割和BT分割的最小尺寸,且当节点的所有维度小于或等于M时,防止所述节点的隐式QT分割和BT分割,
dx,dy,dz分别是所述当前节点在x、y和z方向的log2尺寸。
14.根据权利要求1所述的方法,其中,所述重构八叉树还包括:
响应于所述当前节点的八叉树深度小于参数K,或者所述当前节点的在x、y和z方向的log2尺寸中最小的log2尺寸等于参数M,如下确定变量partitionSkip,
Figure FDA0003272766020000022
Figure FDA0003272766020000031
其中:
所述变量partitionSkip以三个比特的二进制形式来表示,并指定所述八叉树的当前节点的分割类型和分割方向,
参数K是0≤K≤max(dx,dy,dz)-min(dx,dy,dz)范围内的整数,并定义在OT分割之前允许的隐式QT分割和BT分割的最大次数,
参数M是0≤M≤min(dx,dy,dz)范围内的整数,定义隐式QT分割和BT分割的最小尺寸,且当节点的所有维度小于或等于M时,防止所述节点的隐式QT分割和BT分割,
dx,dy,dz分别是所述当前节点在x、y和z方向的log2尺寸,
MaxNodeDimLog2表示dx、dy和dz中最大的log2尺寸,
运算符|=表示复合逐位“或”运算。
15.根据权利要求1所述的方法,其中,所述重构八叉树进一步包括:
从所述比特流接收标志,所述标志指示是否对点云帧序列或所述已编码点云帧的片段启用隐式几何形状分割。
16.根据权利要求1所述的方法,其中,所述重构八叉树包括:
在不对所述当前节点执行分割的x、y或z方向,确定平面模式不符合条件。
17.根据权利要求1所述的方法,其中,所述重构八叉树包括:
执行几何形状八叉树占用解析过程,其中对于在占用码中具有binIdx索引的bin,变量binIdx Inferred根据以下设置:
如果以下条件之一为真,则将binIsInferred设置为等于1:
(1)变量NeighbourPattern等于0且先前解码的值为1的bin的数量小于或等于(binIdx+minOccupied-maxOccupied),或者
(2)所述变量NeighbourPattern不等于0,binIdx等于maxOccupied-1,且所有先前解码的bin的值为零,
其中minOccupied=2,且如果应用八叉树OT分割则maxOccupied=8,如果应用所述QT分割则maxOccupied=4,如果应用所述BT分割则maxOccupied=2,
否则,如果上述条件都不为真,则将binIsInferred设置为等于0。
18.根据权利要求1所述的方法,其中,所述重构八叉树进一步包括:
参数K指示在八叉树OT分割之前的隐式QT分割和BT分割的最大数量,以及参数M指示隐式QT分割和BT分割的最小尺寸,当节点的所有维度小于或等于所述最小尺寸时,所述参数M防止所述节点的隐式QT分割和BT分割,所述参数K和所述参数M根据以下项更新:
如果K大于所述片段的最大根节点log2维度和最小根节点log2维度之间的差,则将K改变为所述片段的所述最大根节点log2维度和所述最小根节点log2维度之间的差;
如果M大于所述片段的所述最小根节点log2维度,则将M改变为所述片段的所述最小根节点log2维度;
如果所述片段的所述最大根节点log2维度和所述最小根节点log2维度相等,则将M改变为0;和
如果启用trisoup模式,则将K改变为所述片段的所述最大根节点log2维度和所述最小根节点log2维度之间的差,且将M改变为所述片段的所述最小根节点log2维度。
19.一种进行点云几何形状解码的装置,包括电路,所述电路被配置成:
接收包括已编码点云帧的片段的比特流;和
重构八叉树,所述八叉树表示所述片段的边界框中的点的几何形状,其中所述八叉树的当前节点用四叉树QT分割或二叉树BT分割来分割。
20.一种非暂时性计算机可读介质,其存储指令,所述指令在由处理器执行时使所述处理器执行点云几何形状解码的方法,所述方法包括:
接收包括已编码点云帧的片段的比特流;和
重构八叉树,所述八叉树表示所述片段的边界框中的点的几何形状,其中所述八叉树的当前节点用四叉树QT分割或二叉树BT分割来分割。
CN202080023220.XA 2019-06-26 2020-06-23 用于点云编解码的方法、装置 Active CN113615181B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201962867063P 2019-06-26 2019-06-26
US62/867,063 2019-06-26
US201962904384P 2019-09-23 2019-09-23
US62/904,384 2019-09-23
US201962910387P 2019-10-03 2019-10-03
US62/910,387 2019-10-03
PCT/US2020/070167 WO2020264553A1 (en) 2019-06-26 2020-06-23 Implicit quadtree or binary-tree geometry partition for point cloud coding

Publications (2)

Publication Number Publication Date
CN113615181A true CN113615181A (zh) 2021-11-05
CN113615181B CN113615181B (zh) 2024-02-20

Family

ID=74044880

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080023220.XA Active CN113615181B (zh) 2019-06-26 2020-06-23 用于点云编解码的方法、装置

Country Status (9)

Country Link
US (4) US11381840B2 (zh)
EP (1) EP3991300A4 (zh)
JP (1) JP7141543B2 (zh)
KR (1) KR20210107864A (zh)
CN (1) CN113615181B (zh)
AU (1) AU2020303920B2 (zh)
CA (1) CA3134855A1 (zh)
SG (1) SG11202110395VA (zh)
WO (1) WO2020264553A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023142133A1 (zh) * 2022-01-30 2023-08-03 Oppo广东移动通信有限公司 编码方法、解码方法、编码器、解码器及存储介质

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11818401B2 (en) 2017-09-14 2023-11-14 Apple Inc. Point cloud geometry compression using octrees and binary arithmetic encoding with adaptive look-up tables
US10861196B2 (en) 2017-09-14 2020-12-08 Apple Inc. Point cloud compression
US10909725B2 (en) 2017-09-18 2021-02-02 Apple Inc. Point cloud compression
US11113845B2 (en) 2017-09-18 2021-09-07 Apple Inc. Point cloud compression using non-cubic projections and masks
US11010928B2 (en) 2018-04-10 2021-05-18 Apple Inc. Adaptive distance based point cloud compression
US11017566B1 (en) 2018-07-02 2021-05-25 Apple Inc. Point cloud compression with adaptive filtering
US11202098B2 (en) 2018-07-05 2021-12-14 Apple Inc. Point cloud compression with multi-resolution video encoding
US11012713B2 (en) 2018-07-12 2021-05-18 Apple Inc. Bit stream structure for compressed point cloud data
US11367224B2 (en) 2018-10-02 2022-06-21 Apple Inc. Occupancy map block-to-patch information compression
JP7141543B2 (ja) * 2019-06-26 2022-09-22 テンセント・アメリカ・エルエルシー ポイントクラウドのジオメトリ復号及び符号化のための暗示的な四分木又は二分木ジオメトリ分割
US10693492B1 (en) 2019-06-28 2020-06-23 Blackberry Limited Context determination for planar mode in octree-based point cloud coding
US11711544B2 (en) 2019-07-02 2023-07-25 Apple Inc. Point cloud compression with supplemental information messages
US11368717B2 (en) 2019-09-16 2022-06-21 Tencent America LLC Method and apparatus for point cloud compression
US11627314B2 (en) 2019-09-27 2023-04-11 Apple Inc. Video-based point cloud compression with non-normative smoothing
US11895307B2 (en) 2019-10-04 2024-02-06 Apple Inc. Block-based predictive coding for point cloud compression
KR102381163B1 (ko) * 2020-01-07 2022-04-01 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
US11798196B2 (en) 2020-01-08 2023-10-24 Apple Inc. Video-based point cloud compression with predicted patches
US11475605B2 (en) * 2020-01-09 2022-10-18 Apple Inc. Geometry encoding of duplicate points
US11417030B2 (en) * 2020-02-10 2022-08-16 Tencent America LLC Context modeling of occupancy coding for point cloud coding
CN113259678A (zh) * 2020-02-10 2021-08-13 腾讯美国有限责任公司 对点云信息进行编解码的方法和装置
US11620768B2 (en) 2020-06-24 2023-04-04 Apple Inc. Point cloud geometry compression using octrees with multiple scan orders
US11615557B2 (en) 2020-06-24 2023-03-28 Apple Inc. Point cloud compression using octrees with slicing
WO2022059697A1 (ja) * 2020-09-18 2022-03-24 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
CN116724556A (zh) * 2021-01-06 2023-09-08 Lg电子株式会社 点云数据发送装置和方法、点云数据接收装置和方法
US20220284633A1 (en) * 2021-03-05 2022-09-08 Tencent America LLC Method and apparatus for constructing a 3d geometry
US11948338B1 (en) 2021-03-29 2024-04-02 Apple Inc. 3D volumetric content encoding using 2D videos and simplified 3D meshes
WO2023122626A1 (en) * 2021-12-21 2023-06-29 Bytedance Inc. Method, apparatus, and medium for point cloud coding
WO2024014902A1 (ko) * 2022-07-13 2024-01-18 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2024044082A2 (en) * 2022-08-23 2024-02-29 Innopeak Technology, Inc. Decoding method, encoding method, decoder and endoder
WO2024042909A1 (ja) * 2022-08-26 2024-02-29 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 復号方法、符号化方法、復号装置及び符号化装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140184430A1 (en) * 2011-08-25 2014-07-03 Thomson Licensing Hierarchical entropy encoding and decoding
US20170347100A1 (en) * 2016-05-28 2017-11-30 Microsoft Technology Licensing, Llc Region-adaptive hierarchical transform and entropy coding for point cloud compression, and corresponding decompression
US20180081034A1 (en) * 2016-09-22 2018-03-22 Beijing Greenvalley Technology Co., Ltd. Method and device for constructing spatial index of massive point cloud data
WO2019011637A1 (en) * 2017-07-13 2019-01-17 Interdigital Vc Holdings, Inc. METHOD AND APPARATUS FOR ENCODING / DECODING A CLOUD OF COLORED POINTS REPRESENTING THE GEOMETRY AND COLORS OF A 3D OBJECT
US20190122427A1 (en) * 2016-07-26 2019-04-25 Hewlett-Packard Development Company, L.P. Indexing voxels for 3d printing

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6429864B1 (en) * 1999-11-10 2002-08-06 Create.It Services Ag Method for traversing a binary space partition or octree and image processor for implementing the method
US9332283B2 (en) * 2011-09-27 2016-05-03 Broadcom Corporation Signaling of prediction size unit in accordance with video coding
US9736488B2 (en) * 2013-11-27 2017-08-15 Nxp Usa, Inc. Decoding for high efficiency video transcoding
US9756337B2 (en) * 2013-12-17 2017-09-05 Qualcomm Incorporated Signaling color values for 3D lookup table for color gamut scalability in multi-layer video coding
US9734595B2 (en) * 2014-09-24 2017-08-15 University of Maribor Method and apparatus for near-lossless compression and decompression of 3D meshes and point clouds
JP6826368B2 (ja) * 2016-01-14 2021-02-03 キヤノン株式会社 符号化装置及びその制御方法
US20170214943A1 (en) * 2016-01-22 2017-07-27 Mitsubishi Electric Research Laboratories, Inc. Point Cloud Compression using Prediction and Shape-Adaptive Transforms
US11297346B2 (en) 2016-05-28 2022-04-05 Microsoft Technology Licensing, Llc Motion-compensated compression of dynamic voxelized point clouds
EP3471065A4 (en) 2016-06-14 2019-06-05 Panasonic Intellectual Property Corporation of America THREE-DIMENSIONAL DATA ENCODING AND DECODING METHOD AND THREE-DIMENSIONAL DATA ENCODING AND DECODING DEVICE
EP3429209A1 (en) * 2017-07-13 2019-01-16 Thomson Licensing A method and apparatus for encoding/decoding a point cloud representing a 3d object
EP3467789A1 (en) * 2017-10-06 2019-04-10 Thomson Licensing A method and apparatus for reconstructing a point cloud representing a 3d object
EP3467778A1 (en) * 2017-10-06 2019-04-10 Thomson Licensing A method and apparatus for encoding/decoding the geometry of a point cloud representing a 3d object
CN111386551A (zh) * 2017-10-19 2020-07-07 交互数字Vc控股公司 点云的预测编码、解码的方法和设备
US20190306506A1 (en) * 2018-04-02 2019-10-03 Qualcomm Incorporated Limitation on the coding tree unit/block for next-generation video coding
US10984541B2 (en) * 2018-04-12 2021-04-20 Samsung Electronics Co., Ltd. 3D point cloud compression systems for delivery and access of a subset of a compressed 3D point cloud
BR112020026567A2 (pt) * 2018-06-25 2021-03-23 Huawei Technologies Co., Ltd. Aparelho e método para obtenção de códigos geométricos híbridos de nuvens de pontos
CN112740689B (zh) * 2018-09-18 2024-04-12 华为技术有限公司 视频编码器、视频解码器及对应方法
US10798389B2 (en) * 2018-10-02 2020-10-06 Tencent America LLC Method and apparatus for content-aware point cloud compression using HEVC tiles
WO2020243874A1 (zh) * 2019-06-03 2020-12-10 深圳市大疆创新科技有限公司 点云数据的位置坐标的编解码方法、系统和存储介质
JP7141543B2 (ja) 2019-06-26 2022-09-22 テンセント・アメリカ・エルエルシー ポイントクラウドのジオメトリ復号及び符号化のための暗示的な四分木又は二分木ジオメトリ分割
US11122102B2 (en) * 2019-07-03 2021-09-14 Lg Electronics Inc. Point cloud data transmission apparatus, point cloud data transmission method, point cloud data reception apparatus and point cloud data reception method
US11158116B2 (en) * 2019-08-05 2021-10-26 Tencent America LLC Geometry model for point cloud coding
US11475605B2 (en) * 2020-01-09 2022-10-18 Apple Inc. Geometry encoding of duplicate points

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140184430A1 (en) * 2011-08-25 2014-07-03 Thomson Licensing Hierarchical entropy encoding and decoding
US20170347100A1 (en) * 2016-05-28 2017-11-30 Microsoft Technology Licensing, Llc Region-adaptive hierarchical transform and entropy coding for point cloud compression, and corresponding decompression
US20190122427A1 (en) * 2016-07-26 2019-04-25 Hewlett-Packard Development Company, L.P. Indexing voxels for 3d printing
US20180081034A1 (en) * 2016-09-22 2018-03-22 Beijing Greenvalley Technology Co., Ltd. Method and device for constructing spatial index of massive point cloud data
WO2019011637A1 (en) * 2017-07-13 2019-01-17 Interdigital Vc Holdings, Inc. METHOD AND APPARATUS FOR ENCODING / DECODING A CLOUD OF COLORED POINTS REPRESENTING THE GEOMETRY AND COLORS OF A 3D OBJECT

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BIRENDRA KATHARIYA等: "SCALABLE POINT CLOUD GEOMETRY CODING WITH BINARY TREE EMBEDDED QUADTREE", 《IEEE INTERNATIONAL CONFERENCE ON MULTIMEDIA AND EXPO》 *
STEPHEN WALTER RANGER等: "Icosatree Data Partitioning of Massive Geospatial Point Clouds Icosatree Data Partitioning of Massive Geospatial Point Clouds with User-Selectable Entities and Sur with User-Selectable Entities and Surface Modeling", 《ROCHESTER INSTITUTE OF T ROCHESTER INSTITUTE OF TECHNOLOGY ECHNOLOGY》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023142133A1 (zh) * 2022-01-30 2023-08-03 Oppo广东移动通信有限公司 编码方法、解码方法、编码器、解码器及存储介质

Also Published As

Publication number Publication date
US11924468B2 (en) 2024-03-05
JP2022521680A (ja) 2022-04-12
EP3991300A4 (en) 2023-11-29
KR20210107864A (ko) 2021-09-01
CA3134855A1 (en) 2020-12-30
US20230345046A1 (en) 2023-10-26
JP7141543B2 (ja) 2022-09-22
EP3991300A1 (en) 2022-05-04
SG11202110395VA (en) 2021-10-28
AU2020303920B2 (en) 2023-02-02
AU2020303920A1 (en) 2021-10-21
CN113615181B (zh) 2024-02-20
US20200413096A1 (en) 2020-12-31
US20220167016A1 (en) 2022-05-26
WO2020264553A1 (en) 2020-12-30
US20220303579A1 (en) 2022-09-22
US11381840B2 (en) 2022-07-05
US11743498B2 (en) 2023-08-29

Similar Documents

Publication Publication Date Title
CN113615181B (zh) 用于点云编解码的方法、装置
US11166048B2 (en) Method and apparatus for video coding
US11750839B2 (en) Method and apparatus for point cloud compression
US10904564B2 (en) Method and apparatus for video coding
US20200105025A1 (en) Method and apparatus for video coding
JP7233561B2 (ja) 点群圧縮のための方法並びにその、装置およびコンピュータプログラム
KR20220127837A (ko) Haar 기반 포인트 클라우드 코딩을 위한 방법 및 장치
US20220180567A1 (en) Method and apparatus for point cloud coding
CN113179411A (zh) 点云属性编解码方法、装置、计算机设备及存储介质
RU2778864C1 (ru) Неявное геометрическое разделение на основе квадродерева или бинарного дерева для кодирования облака точек
WO2023096973A1 (en) Geometry point cloud coding

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40064138

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant