CN116636204A - 用于几何编解码的帧间和帧内预测的混合树编解码 - Google Patents
用于几何编解码的帧间和帧内预测的混合树编解码 Download PDFInfo
- Publication number
- CN116636204A CN116636204A CN202180086668.0A CN202180086668A CN116636204A CN 116636204 A CN116636204 A CN 116636204A CN 202180086668 A CN202180086668 A CN 202180086668A CN 116636204 A CN116636204 A CN 116636204A
- Authority
- CN
- China
- Prior art keywords
- points
- prediction
- point cloud
- octree
- processors
- 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
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
用于解码包括点云数据的比特流的设备被配置为:确定定义包含点云的空间的基于八叉树的划分的八叉树,其中,八叉树的叶节点包含点云的一个或多个点;以及直接解码叶节点中的一个或多个点中的每个点的位置,其中,为了直接解码叶节点中的一个或多个点中的每个点的位置,一个或多个处理器还被配置为:生成一个或多个点的预测;以及基于预测来确定一个或多个点。
Description
本申请要求于2021年12月27日提交的美国专利申请No.17/562,398和于2020年12月29日提交的美国临时专利申请No.63/131,546的优先权,每个专利申请的全部内容通过引用并入本文中。于2021年12月27日提交的美国专利申请No.17/562,398要求于2020年12月29日提交的美国临时专利申请No.63/131,546的权益。
技术领域
本公开涉及点云编码和解码。
发明内容
本公开大体上描述了一种混合树编解码(coding)方法,该方法组合八叉树编解码和预测编解码,用于点云压缩的块级别处的增强的帧间/帧内预测。
在一个示例中,本公开描述了一种编解码点云的方法,该方法包括:确定定义包含点云的空间的基于八叉树的分割的八叉树,其中:八叉树的叶节点包含点云的一个或多个点,并且叶节点中的一个或多个点中的每个点的位置直接被信令通知;使用帧内预测或帧间预测来生成一个或多个点的预测;以及对指示使用帧内预测还是帧间预测来预测一个或多个点的语法元素进行编解码。
根据本公开的一个示例,用于解码包括点云数据的比特流的设备包括:存储器,用于存储点云数据;以及一个或多个处理器,耦合到存储器并且在电路中实施,一个或多个处理器被配置为:确定定义包含点云的空间的基于八叉树的划分的八叉树,其中,八叉树的叶节点包含点云的一个或多个点;以及直接解码叶节点中的一个或多个点中的每个的位置,其中,为了直接解码叶节点中的一个或多个点中的每个点的位置,一个或多个处理器还被配置为:生成一个或多个点的预测,以及基于预测来确定一个或多个点。
根据本公开的另一示例,解码点云的方法包括:确定定义包含点云的空间的基于八叉树的划分的八叉树,其中,八叉树的叶节点包含点云的一个或多个点;直接解码叶节点中的一个或多个点中的每个点的位置,其中,直接解码叶节点中的一个或多个点中的每个点的位置包括:生成一个或多个点的预测;以及基于预测来确定一个或多个点。
根据本公开的另一示例,计算机可读存储介质存储指令,当指令由一个或多个处理器执行时,使一个或多个处理器:确定定义包含点云的空间的基于八叉树的划分的八叉树,其中,八叉树的叶节点包含点云的一个或多个点;以及直接解码叶节点中的一个或多个点中的每个点的位置,其中,为了直接解码叶节点中的一个或多个点中的每个点的位置,该指令使一个或多个处理器:生成一个或多个点的预测;以及基于预测来确定一个或多个点。
根据本公开的另一示例,装置包括:用于确定定义包含点云的空间的基于八叉树的划分的八叉树的部件,其中,八叉树的叶节点包含点云的一个或多个点;用于直接解码叶节点中的一个或多个点中的每个点的位置的部件,其中,用于直接解码叶节点中的一个或多个点中的每个点的位置的部件包括:用于生成一个或多个点的预测的部件;以及用于基于预测来确定一个或多个点的部件。
一个或多个示例的细节在附图和以下描述中阐述。根据说明书、附图和权利要求,其他特征、目的和优点将变得显而易见。
附图说明
图1是示出可以执行本公开的技术的示例编码和解码系统的框图。
图2是示出示例几何点云压缩(G-PCC)编码器的框图。
图3是示出示例G-PCC解码器的框图。
图4是示出用于几何编解码的示例八叉树划分的概念图。
图5是示出预测树的示例的概念图。
图6是示出示例旋转Lidar获取模型的概念图。
图7是示出InterEM的示例运动估计流程图的概念图。
图8是示出用于估计全局运动的示例算法的概念图。
图9是示出用于估计局部节点运动矢量的示例算法的概念图。
图10是示出高级八叉树划分的示例的概念图。
图11是示出局部预测树生成的示例的概念图。
图12是示出示例当前点集(O0至O12)和参考点集(R0至R12)(其中,N=M=13)的概念图。
图13是示出示例当前点集和运动补偿参考点集(其中,N=M=13)的概念图。
图14是示出可以与本公开的一种或多种技术一起使用的示例测距(range-finding)系统的概念图。
图15是示出其中可以使用本公开的一种或多种技术的基于车辆的示例场景的概念图。
图16是示出其中可以使用本公开的一种或多种技术的示例扩展现实系统的概念图。
图17是示出其中可以使用本公开的一种或多种技术的示例移动设备系统的概念图。
图18是示出用于解码包括点云数据的比特流的示例操作的流程图。
具体实施方式
点云是三维(3D)空间中的点集合。这些点可以对应于三维空间内对象上的点。因此,点云可以用来表示三维空间的物理内容。点云可能在各种情况下都有效用。例如,点云可以在自主车辆的环境中用于表示道路上对象的位置。在另一示例中,为了在增强现实(AR)或混合现实(MR)应用中定位虚拟对象,点云可以在表示环境的物理内容的环境中使用。点云压缩是对点云进行编码和解码的过程。编码点云可以减少存储和传输点云所需的数据量。
以前有两种主要的建议用于信令通知点云中的点的位置:八叉树编解码和预测树编解码。作为使用八叉树编解码对点云数据进行编码的一部分,G-PCC编码器可以生成八叉树。八叉树的每个节点对应于长方体空间。八叉树的节点可以具有零个或八个子节点。在其他示例中,可以根据其他树结构将节点划分为子节点。父节点的子节点对应于与父节点相对应的长方体内的相等大小的长方体。相对于节点的原点的点云的各个点的位置可以被信令通知。如果节点不包含点云的任何点,则称该节点未被占用。如果该节点未被占用,则可能没有必要信令通知关于该节点的附加数据。相反,如果节点包含点云的一个或多个点,则称该节点被占用。
当使用预测树编解码来编码点云数据时,G-PCC编码器确定点云的每个点的预测模式。该点的预测模式可以是以下中的一个:
●无预测/零预测(0)
●增量(delta)预测(p0)
●线性预测(2*p0–p1)
●平行四边形预测(2*p0+p1–p2)
在该点的预测模式是“无预测/零预测”的情况下,该点被认为是根点(即,根顶点),并且该点的坐标(例如,x、y、z坐标)在比特流中信令通知。在该点的预测模式是“增量预测”的情况下,G-PCC编码器确定该点的坐标与诸如根点或其他点的父点的坐标之间的差(即,增量)。在预测模式是“线性预测”的情况下,G-PCC编码器使用两个父点的坐标的线性预测来确定该点的预测坐标。G-PCC编码器信令通知该点的使用线性预测确定的预测坐标与实际坐标之间的差。在预测模式是“平行四边形预测”的情况下,G-PCC编码器使用三个父点来确定预测坐标。然后,G-PCC编码器信令通知该点的预测坐标与实际坐标之间的差(例如,“主残差(primary residual)”)。点之间的预测关系实质上定义了点树。
已经通过实验观察到,八叉树编解码可能比预测树编解码更适合密集点云。使用3D建模获取的点云通常足够密集,使得八叉树编解码工作得更好。然而,例如,使用LiDAR获取的用于汽车应用的点云往往有点粗糙,并且因此预测编解码可能更适合这些应用。
在一些示例中,角度模式可以用于表示球面坐标系中点的坐标。因为球面坐标系和笛卡尔(例如,x、y、z)坐标系之间的转换过程并不完美,所以信息可能会丢失。但是由于G-PCC编码器可以执行转换过程,所以G-PCC编码器可以信令通知点的“次残差(secondaryresidual)”,该“次残差”指示将转换过程应用于该点的球面坐标所产生的该点的笛卡尔坐标与该点的原始笛卡尔坐标之间的差。
本公开涉及一种混合编解码模型,其中,八叉树编解码和直接编解码都用于编解码点云。例如,八叉树编解码最初可以用于将空间划分成下至特定级别的节点。特定级别处的节点(以及八叉树中没有被进一步划分的其他被占用的节点)可以被称为“叶节点”。叶节点体积(volume)内的点可以使用“直接”编解码模式进行编解码。
当以“直接”编解码模式对叶节点的点进行编码时,G-PCC编码器可以为叶节点选择帧内预测模式或为叶节点选择帧间预测模式。G-PCC编码器可以信令通知叶节点的点是使用帧内预测模式还是帧间预测模式来编码的。
如果G-PCC编码器为叶节点选择帧内预测模式,则G-PCC编码器可以使用预测树编解码以与以上所描述几乎相同的方式对叶节点中的点进行编码。也就是说,G-PCC编码器可以相应地从四种预测模式中进行选择并且信令通知点的坐标。然而,G-PCC编码器可以信令通知相对于叶节点的原点的坐标,而不是信令通知相对于与八叉树相关联的整个空间的原点的坐标。这可以提高编解码效率,对于根节点尤其如此。
如果G-PCC编码器为叶节点选择帧间预测模式,则G-PCC编码器可以相对于参考帧中的点集对叶节点中的点进行编码。参考帧可以是先前经编解码的帧,类似于视频的先前帧。G-PCC编码器可以执行运动估计,以标识参考帧中与叶节点中的点具有相似空间排列的点集。叶节点的运动矢量指示叶节点的点与参考帧中所标识的点集之间的位移。
G-PCC编码器可以信令通知叶节点的参数集。叶节点的参数可以包括标识参考帧的参考索引。叶节点的参数还可以包括指示叶节点中点的数量的值。
叶节点的参数还可以包括叶节点中每个点的残差值。叶节点中的点的残差值指示叶节点的预测坐标之间的差(通过将叶节点的运动矢量添加到参考帧中与叶节点中的点相对应的点来确定)。在使用角度模式的示例中,G-PCC编码器还可以信令通知这些点的次残差。
在一些示例中,叶节点的参数还包括运动矢量差(MVD)。MVD指示叶节点的运动矢量与预测运动矢量之间的差。预测运动矢量是八叉树的相邻节点的运动矢量。叶节点的参数可以包括标识相邻节点的索引。
在其他示例中,类似于传统视频编解码中的合并(merge)模式,叶节点的参数不包括MVD,并且叶节点的运动矢量可以被假设为与所标识的相邻节点的运动矢量相同。
在一些示例中,可以跳过残差的信令通知。在使用角度模式的一些这样的示例中,可以跳过主残差的信令通知,同时仍然信令通知次残差。
图1是示出可以执行本公开的技术的示例编码和解码系统100的框图。本公开的技术大体上针对编解码(编码和/或解码)点云数据,即,支持点云压缩。一般而言,点云数据包括用于处理点云的任何数据。编解码可以有效地压缩和/或解压缩点云数据。
如图1所示,系统100包括源设备102和目的地设备116。源设备102提供要由目的地设备116解码的编码点云数据。具体地,在图1的示例中,源设备102经由计算机可读介质110向目的地设备116提供点云数据。源设备102和目的地设备116可以包括多种设备中的任何一种,包括台式计算机、笔记本(即,膝上型)计算机、平板计算机、机顶盒、诸如智能手机的电话手机、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流式传输设备、陆地或海上交通工具、航天器、飞机、机器人、LIDAR设备、卫星等。在一些情况下,源设备102和目的地设备116可以被配备用于无线通信。
在图1的示例中,源设备102包括数据源104、存储器106、G-PCC编码器200和输出接口108。目的地设备116包括输入接口122、G-PCC解码器300、存储器120和数据消费者118。根据本公开,源设备102的G-PCC编码器200和目的地设备116的G-PCC解码器300可以被配置为应用本公开的与混合树编解码方法相关的技术,该方法组合八叉树编解码和预测编解码,用于点云压缩的块级别处的增强的帧间/帧内预测。因此,源设备102表示编码设备的示例,而目的地设备116表示解码设备的示例。在其他示例中,源设备102和目的地设备116可以包括其他组件或布置。例如,源设备102可以从内部或外部源接收数据(例如,点云数据)。同样,目的地设备116可以与外部数据消费者接口,而不是在同一设备中包括数据消费者。
如图1中所示的系统100仅是一个示例。一般而言,其他数字编码和/或解码设备可以执行本公开的与混合树编解码方法相关的技术,该方法组合八叉树编解码和预测编解码,用于点云压缩的块级别处的增强的帧间/帧内预测。源设备102和目的地设备116仅是这样的设备的示例,其中,源设备102生成经编解码的数据用于发送到目的地设备116。本公开的“编解码”设备是指对数据执行编解码(编码和/或解码)的设备。因此,G-PCC编码器200和G-PCC解码器300分别表示编解码设备的示例,具体是编码器和解码器。在一些示例中,源设备102和目的地设备116可以以基本上对称的方式操作,使得源设备102和目的地设备116中的每个包括编码和解码组件。因此,系统100可以支持源设备102和目的地设备116之间的单向或双向传输,例如,用于流式传输、回放、广播、电话、导航和其他应用。
一般而言,数据源104表示数据(即,原始的、未经编码的点云数据)的源,并且可以向G-PCC编码器200提供数据的连续系列的“帧”,G-PCC编码器200对这些帧的数据进行编码。源设备102的数据源104可以包括点云捕获设备,诸如各种相机或传感器中的任何一种,例如,3D扫描仪或光探测和测距(LIDAR)设备、一个或多个相机、包含先前捕获的数据的档案(archive),和/或从数据内容提供商接收数据的数据馈送接口。替代地或附加地,点云数据可以从扫描仪、相机、传感器或其他数据来计算机生成。例如,数据源104可以生成基于计算机图形的数据作为源数据,或产生实时数据、存档数据和计算机生成的数据的组合。在每种情况下,G-PCC编码器200对捕获的、预捕获的或计算机生成的数据进行编码。G-PCC编码器200可以将帧从接收的顺序(有时被称为“显示顺序”)重新布置成用于编解码的编解码顺序。G-PCC编码器200可以生成包括经编码的数据的一个或多个比特流。然后,源设备102可以经由输出接口108将经编码的数据输出到计算机可读介质110上,以供例如目的地设备116的输入接口122接收和/或检索。
源设备102的存储器106和目的地设备116的存储器120可以表示通用存储器。在一些示例中,存储器106和存储器120可以存储原始数据,例如,来自数据源104的原始数据和来自G-PCC解码器300的原始的经解码的数据。附加地或替代地,存储器106和存储器120可以分别存储可由例如G-PCC编码器200和G-PCC解码器300执行的软件指令。尽管在该示例中存储器106和存储器120与G-PCC编码器200和G-PCC解码器300分开示出,但应理解,G-PCC编码器200和G-PCC解码器300也可以包括功能上类似或等同目的的内部存储器。此外,存储器106和存储器120可以存储经编码的数据,例如,从G-PCC编码器200输出并且输入到G-PCC解码器300的数据。在一些示例中,存储器106和存储器120的部分可以被分配为一个或多个缓冲器,例如,用于存储原始的、经解码的和/或经编码的数据。例如,存储器106和存储器120可以存储表示点云的数据。
计算机可读介质110可以表示能够将经编码的数据从源设备102传输至目的地设备116的任何类型的介质或设备。在一个示例中,计算机可读介质110表示使源设备102能够例如经由射频网络或基于计算机的网络实时地向目的地设备116直接发送经编码的数据的通信介质。根据诸如无线通信协议的通信标准,输出接口108可以调制包括经编码的数据的传输信号,并且输入接口122可以解调接收的传输信号。通信介质可以包括任何无线或有线通信介质,诸如射频(radio frequency,RF)频谱或一条或多条物理传输线。通信介质可以形成基于分组的网络(诸如局域网、广域网或诸如因特网的全球网络)的一部分。通信介质可以包括路由器、交换机、基站或有助于促进从源设备102到目的地设备116的通信的任何其他装备。
在一些示例中,源设备102可以将经编码的数据从输出接口108输出至存储设备112。类似地,目的地设备116可以经由输入接口122访问来自存储设备112的经编码的数据。存储设备112可以包括各种分布式或本地访问的数据存储介质中的任何一种,诸如硬盘、蓝光光盘、DVD、CD-ROM、闪存、易失性或非易失性存储器、或用于存储编码数据的任何其他合适的数字存储介质。
在一些示例中,源设备102可以将经编码的数据输出至文件服务器114或可以存储由源设备102生成的经编码的数据的另一中间存储设备。目的地设备116可以经由流式传输或下载来从文件服务器114访问所存储的数据。文件服务器114可以是能够存储经编码的数据并且将该经编码的数据发送到目的地设备116的任何类型的服务器设备。文件服务器114可以表示(例如,用于网站的)网络服务器、文件传输协议(FTP)服务器、内容递送网络设备或网络附加存储(NAS)设备。目的地设备116可以通过包括因特网连接的任何标准数据连接访问来自文件服务器114的经编码的数据。这可以包括适合用于访问存储在文件服务器114上的经编码的数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,数字订户线(digitalsubscriber line,DSL)、电缆调制解调器等)或这两者的组合。文件服务器114和输入接口122可以被配置为根据流传输协议、下载传输协议或其组合来操作。
输出接口108和输入接口122可以表示无线发送器/接收器、调制解调器、有线网络组件(例如,以太网卡)、根据各种IEEE 802.11标准中的任何标准操作的无线通信组件,或其他物理组件。在输出接口108和输入接口122包括无线组件的示例中,输出接口108和输入接口122可以被配置为根据诸如4G、4G-LTE(长期演进)、LTE高级、5G等的蜂窝通信标准来传输诸如经编码的数据的数据。在输出接口108包括无线发送器的一些示例中,输出接口108和输入接口122可以被配置为根据诸如IEEE 802.11规范、IEEE802.15规范(例如,ZigBee2)、蓝牙TM标准或类似标准的其他无线标准来传输诸如经编码的数据的数据。在一些示例中,源设备102和/或目的地设备116可以包括相应的片上系统(SoC)设备。例如,源设备102可以包括执行归属于G-PCC编码器200和/或输出接口108的功能性的SoC设备,并且目的地设备116可以包括执行归属于G-PCC解码器300和/或输入接口122的功能性的SoC设备。
本公开的技术可以应用于编码和解码,以支持各种应用中的任一种,诸如自主车辆之间的通信,扫描仪、相机、传感器和处理设备(诸如,本地或远程服务器)之间的通信,地理测绘或其他应用。
目的地设备116的输入接口122从计算机可读介质110(例如,通信介质、存储设备112、文件服务器114等)接收经编码的比特流。经编码的比特流可以包括由G-PCC编码器200定义的信令信息,诸如具有描述编解码单元(例如,条带、图片、图片组、序列等)的特性和/或处理的值的语法元素,该信令信息也被G-PCC解码器300使用。数据消费者118使用经解码的数据。例如,数据消费者118可以使用经解码的数据来确定物理对象的位置。在一些示例中,数据消费者118可以包括基于点云呈现影像的显示器。
G-PCC编码器200和G-PCC解码器300各自可以被实施为多种合适的编码器和/或解码器电路中的任何一种,诸如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立逻辑、软件、硬件、固件或其任何组合。当该技术部分地以软件实施时,设备可以将用于软件的指令存储在合适的非暂时性的计算机可读介质中,并使用一个或多个处理器在硬件中执行该指令来执行本公开的技术。G-PCC编码器200和G-PCC解码器300中的每个可以被包括在一个或多个编码器或解码器中,这一个或多个编码器或解码器中的任一个可以被集成为相应设备中的组合编码器/解码器(编解码器)的部分。包括G-PCC编码器200和/或G-PCC解码器300的设备可以包括一个或多个集成电路、微处理器和/或其他类型的设备。
G-PCC编码器200和G-PCC解码器300可以根据编解码标准操作,诸如视频点云压缩(V-PCC)标准或几何点云压缩(G-PCC)标准。本公开大体上可以涉及图片的编解码(例如,编码和解码),以包括编码或解码数据的过程。经编码的比特流通常包括表示编解码决策(例如,编解码模式)的语法元素的一系列值。
本公开大体上可以涉及“信令通知”某些信息,诸如语法元素。术语“信令通知”大体上可以涉及用于对经编码的数据进行解码的语法元素的值和/或其他数据的通信。也就是说,G-PCC编码器200可以信令通知比特流中的语法元素的值。一般而言,信令通知指的是在比特流中生成值。如上所述,源设备102可以基本上实时地或非实时地向目的地设备116传输比特流,诸如可以在将语法元素存储到存储设备112以供目的地设备116随后检索时发生。
ISO/IEC MPEG(JTC 1/SC 29/WG 11)正在研究点云编解码技术标准化的潜在需求,其压缩能力大大超过当前方法。该小组正在合作进行这项探索活动,称为三维图形团队(3DG),以评估该领域专家提出的压缩技术设计。
点云压缩活动分为两种不同的方式。第一种方法是“视频点云压缩”(V-PCC),其将3D对象分割,并且将分割部分投影到多个2D平面中(在2D帧中表示为“面片(patches)”),这些分割部分由传统的2D视频编解码器(诸如高效视频编解码(HEVC)(ITU-T H.265)编解码器)进一步编解码。第二种方法是“基于几何的点云压缩”(G-PCC),其直接压缩3D几何结构,即,3D空间中点集的位置,以及相关联的属性值(对于与3D几何结构相关联的每个点)。G-PCC解决了类别1(静态点云)和类别3(动态获取的点云)两者中点云的压缩。G-PCC标准的最新草案可在“Text of ISO/IEC FDIS 23090-9Geometry-based Point Cloud Compression(ISO/IEC FDIS 23090-9基于几何的点云压缩的文本)”(2020年10月,ISO/IEC JTC 1/SC29/WG 7MDS19617,电话会议)中获得,并且编解码器的描述可在“G-PCC CodecDescription(G-PCC编解码器描述)”(2020年10月,ISO/IEC JTC 1/SC29/WG 7MDS19620,电话会议)中获得。
点云包含3D空间中的点集,并且可以具有与该点相关联的属性。属性可以是颜色信息,诸如R、G、B或Y、Cb、Cr,或反射信息,或其他属性。点云可以由各种相机或传感器(诸如LIDAR传感器和3D扫描仪)捕获,也可以由计算机生成。点云数据用于各种应用,包括但不限于建筑(建模)、图形(用于可视化和动画的3D模型)和汽车行业(用于帮助导航的LIDAR传感器)。
由点云数据占用的3D空间可以由虚拟边界框包围。边界框中的点的位置可以用某一精度来表示;因此,一个或多个点的位置可以基于精度来量化。在最小级别,边界框被划分成体素(voxel),体素是由单位立方体表示的最小空间单位。边界框中的体素可以与零个、一个或一个以上的点相关联。边界框可以被划分成多个立方体/长方体区域,这些区域可以被称为图块(tile)。每个图块可以被编解码成一个或多个条带(slice)。将边界框分割成条带和图块可以基于每个分割部分中的点数,或基于其他考虑(例如,特定区域可以被编解码为图块)。条带区域可以使用类似于视频编解码器中的划分决策来进一步分割。
图2提供了G-PCC编码器200的概述。图3提供了G-PCC解码器300的概述。所示模块是合乎逻辑的,并且不一定与G-PCC编解码器的参考实施方式中实施的代码(即,由ISO/IECMPEG(JTC 1/SC 29/WG 11)研究的TMC13测试模型软件)一一对应。
在G-PCC编码器200和G-PCC解码器300中,点云位置首先被编解码。属性编解码取决于经解码的几何结构。图2的表面近似分析单元212和RAHT单元218以及图3的表面近似合成单元310和RAHT单元314是通常用于类别1数据的选项。图3的LOD生成单元220和提升(lifting)单元222以及LOD生成单元316和逆提升单元318是通常用于类别3数据的选项。所有其他模块在类别1与类别3之间是通用的。
对于几何结构,存在两种不同类型的编解码技术:八叉树和预测树编解码。在下文中,本公开集中于八叉树编解码。对于类别3数据,压缩的几何结构通常被表示为从根一直向下到单个体素的叶级的八叉树。对于类别3数据,压缩的几何结构通常被表示为从根一直向下到单个体素的叶级的八叉树。对于类别1数据,压缩的几何结构通常由修剪八叉树(即,从根向下到大于体素的块的叶级的八叉树)加上近似于修剪八叉树的每个叶内的表面的模型来表示。以这种方式,类别1和类别3数据共享八叉树编解码机制,而类别1数据可以另外用表面模型近似每个叶子内的体素。所使用的表面模型是每块包括1至10个三角形的三角剖分,产生三角形soup。因此,类别1几何编解码器被称为Trisoup几何编解码器,而类别3几何编解码器被称为八叉树几何编解码器。
图4是示出用于几何编解码的示例八叉树划分的概念图。八叉树400包括8个子节点。这些子节点中的一些(诸如节点402)没有子节点。然而,诸如节点404的其他子节点具有子节点,并且节点404的子节点中的一些也具有子节点,等等。
在八叉树的每个节点处,针对一个或多个子节点(最多八个节点)信令通知(当未被推断时)占用。指定多个邻域(neighborhood),包括(a)与当前八叉树节点共享面的节点,(b)与当前八叉树节点共享面、边或顶点的节点,等等。在每个邻域内,节点和/或其子节点的占用可以用于预测当前节点或其子节点的占用。对于在八叉树的某些节点中稀疏填充的点,编解码器还支持直接编解码模式,其中,点的3D位置被直接编码。标志可以被信令通知,以指示直接模式被信令通知。在最低级,与八叉树节点/叶节点相关联的点数也可以被编解码。
一旦几何结构被编解码,对应于几何点的属性就被编解码。当有多个属性点对应于一个经重构/解码的几何点时,可以推导表示经重构的点的属性值。
G-PCC中有三种属性编解码方法:区域自适应分层变换(RAHT)编解码、基于插值的分层最近邻预测(预测变换),以及具有更新/提升步骤的基于插值的分层最近邻预测(提升变换)。RAHT和提升通常用于类别1数据,而预测通常用于类别3数据。然而,任何一种方法都可以用于任何数据,并且就像G-PCC中的几何编解码器一样,用于编解码点云的属性编解码方法在比特流中被指定。
属性的编解码可以在细节级别(level-of-detail,LOD)中进行,其中,利用每个细节级别,可以获得点云属性的更精细的表示。每个细节级别可以基于距相邻节点的距离度量或基于采样距离来指定。
在G-PCC编码器200处,量化作为属性的编解码方法的输出而获得的残差。量化残差可以使用上下文自适应算术编解码进行编解码。
在图2的示例中,G-PCC编码器200可以包括坐标变换单元202、颜色变换单元204、体素化单元206、属性传输单元208、八叉树分析单元210、表面近似分析单元212、算术编码单元214、几何重构单元216、RAHT单元218、LOD生成单元220、提升单元222、系数量化单元224和算术编码单元226。
如图2的示例所示,G-PCC编码器200可以接收位置的集合和属性的集合。这些位置可以包括点云中的点的坐标。属性可以包括关于点云中的点的信息,诸如与点云中的点相关联的颜色。
坐标变换单元202可以对点的坐标应用变换,以将坐标从初始域变换到变换域。本公开可以将变换后的坐标称为变换坐标。颜色变换单元204可以应用变换来将属性的颜色信息变换到不同的域。例如,颜色变换单元204可以将颜色信息从RGB颜色空间变换到YCbCr颜色空间。
此外,在图2的示例中,体素化单元206可以对变换坐标进行体素化。变换坐标的体素化可以包括量化和移除点云的一些点。换句话说,点云的多个点可以归入(subsumed)在单个“体素”中,该体素此后在一些方面可以被视为一个点。此外,八叉树分析单元210可以基于体素化的变换坐标生成八叉树。附加地,在图2的示例中,表面近似分析单元212可以分析这些点,以潜在地确定点集的表面表示。算术编码单元214可以对表示由表面近似分析单元212确定的表面和/或八叉树的信息的语法元素进行熵编码。G-PCC编码器200可以在几何比特流中输出这些语法元素。
几何重构单元216可以基于八叉树、指示由表面近似分析单元212确定的表面的数据和/或其他信息来重构点云中的点的变换坐标。由于体素化和表面近似,由几何重构单元216重构的变换坐标的数量可以不同于点云的原始点数。本公开可以将所得点称为重构点。属性传输单元208可以将点云的原始点的属性传输给点云的重构点。
此外,RAHT单元218可以对重构点的属性应用RAHT编解码。替代地或附加地,LOD生成单元220和提升单元222可以分别对重构点的属性应用LOD处理和提升。RAHT单元218和提升单元222可以基于属性生成系数。系数量化单元224可以量化由RAHT单元218或提升单元222生成的系数。算术编码单元226可以将算术编解码应用于表示经量化系数的语法元素。G-PCC编码器200可以在属性比特流中输出这些语法元素。
在图3的示例中,G-PCC解码器300可以包括几何算术解码单元302、属性算术解码单元304、八叉树合成单元306、逆量化单元308、表面近似合成单元310、几何重构单元312、RAHT单元314、LoD生成单元316、逆提升单元318、逆变换坐标单元320和逆变换颜色单元322。
G-PCC解码器300可以获得几何比特流和属性比特流。G-PCC解码器300的几何算术解码单元302可以将算术解码(例如,上下文自适应二进制算术编码(CABAC)或其他类型的算术解码)应用于几何比特流中的语法元素。类似地,属性算术解码单元304可以将算术解码应用于属性比特流中的语法元素。
八叉树合成单元306可以基于从几何比特流解析的语法元素来合成八叉树。在几何比特流中使用表面近似的情况下,表面近似合成单元310可以基于从几何比特流解析的语法元素和基于八叉树来确定表面模型。
此外,几何重构单元312可以执行重构以确定点云中的点的坐标。逆变换坐标单元320可以对重构坐标应用逆变换,以将点云中的点的重构坐标(位置)从变换域转换回初始域。
附加地,在图3的示例中,逆量化单元308可以逆量化属性值。属性值可以基于从属性比特流获得的语法元素(例如,包括由属性算术解码单元304解码的语法元素)。
取决于属性值如何被编码,RAHT单元314可以执行RAHT编解码,以基于逆量化的属性值来确定点云中的点的颜色值。替代地,LOD生成单元316和逆提升单元318可以使用基于细节级别的技术来确定点云中的点的颜色值。
此外,在图3的示例中,逆变换颜色单元322可以对颜色值应用逆颜色变换。逆颜色变换可以是由G-PCC编码器200的颜色变换单元204应用的颜色变换的逆。例如,颜色变换单元204可以将颜色信息从RGB颜色空间变换到YCbCr颜色空间。因此,逆颜色变换单元322可以将颜色信息从YCbCr颜色空间变换到RGB颜色空间。
图2和图3示出了各种单元,以帮助理解G-PCC编码器200和G-PCC解码器300执行的操作。这些单元可以被实施为固定功能电路、可编程电路或其组合。固定功能电路指的是提供特定功能的电路,并且被预设在可以执行的操作上。可编程电路是指可以被编程来执行各种任务并且在可以执行的操作中提供灵活功能的电路。例如,可编程电路可以执行软件或固件,该软件或固件使可编程电路以由软件或固件的指令定义的方式操作。固定功能电路可以执行软件指令(例如,接收参数或输出参数),但是固定功能电路执行的操作类型通常是不可变的。在一些示例中,这些单元中的一个或多个可以是不同的电路块(固定功能或可编程的),并且在一些示例中,这些单元中的一个或多个可以是集成电路。
预测几何编解码作为八叉树几何编解码的替代引入,其中,节点被布置在树结构(其定义了预测结构)中,并且各种预测策略被用于预测树中每个节点相对于其预测值(predictor)的坐标。
图5示出了预测树410的示例,其被表示为有向图(directed graph),其中,箭头指向预测方向。节点412是根顶点,并且没有预测值。节点414A和414B有两个子节点。虚线节点有3个子节点。白色填充的节点有一个子节点,并且节点418A至418E是没有子节点的叶节点。每个节点只有一个父节点。
基于每个节点的父节点(p0)、曾祖父节点(p1)和曾曾祖父节点(p2),为每个节点指定了四种预测策略:
●无预测/零预测(0)
●增量预测(p0)
●线性预测(2*p0–p1)
●平行四边形预测(2*p0+p1–p2)
G-PCC编码器200可以采用任何算法来生成预测树;所使用的算法可以基于应用/用例来确定,并且若干策略可以被使用。一些策略在“G-PCC Codec Description(G-PCC编解码器描述)”(ISO/IEC JTC 1/SC29/WG 7MDS19620,电话会议,2020年10月)中进行描述。
对于每个节点,残差坐标值以深度优先的方式从根节点开始被编解码在比特流中。
预测几何编解码主要适用于类别3(LIDAR获取的)点云数据,例如,用于低时延应用。
角度模式可以用于预测几何编解码,其中,LIDAR传感器的特性可以用于更有效地编解码预测树。位置坐标被转换为(r,φ,i)(半径、方位角和激光索引),并且预测在该域中执行(残差在r,φ,i域中被编解码)。由于舍入误差,r,φ,i的编解码不是无损的,并且因此对应于笛卡尔坐标的第二残差集合被编解码。用于预测几何编解码的角度模式的编码和解码策略的描述引用“G-PCC Codec Description(G-PCC编解码器)”(ISO/IEC JTC 1/SC29/WG 7MDS19620,电话会议,2020年10月)。
该方法集中于使用旋转Lidar模型获取的点云。这里,激光雷达有N个激光器(例如,N=16、32、64),这些激光器根据方位角φ围绕Z轴旋转(见图6)。每个激光器可以具有不同的仰角θ(i)i=1…N和高度假设激光i击中点M,该点具有根据图6中描述的坐标系定义的笛卡尔整数坐标(x,y,z)。
该方法为M的位置建模提供了三个参数(r,φ,i),这三个参数计算如下:
●
●φ=atan2(y,x)
●
更准确地说,该方法使用(r,φ,i)的量化版本,表示为其中,三个整数和i计算如下:
●
●
●
其中:
●(qr,or)和(qφ,oφ)分别是控制和的精度的量化参数。
●sign(t)是函数,该函数在t为正数时返回1,否则返回(-1)。
●|t|是t的绝对值。
为了避免因使用浮点运算而导致重构不匹配,和tan(θ(i))i=1…N的值会预先计算并且量化如下:
其中:
●和(qθ,oθ)分别是控制和的精度的量化参数。
重构的笛卡尔坐标如下获得:
●
●
●
其中,app_cos(.)和app_sin(.)是cos(.)和sin(.)的近似值。该计算可以使用定点表示、查找表和线性插值。
需要说明的是,由于各种原因,可能会与(x,y,z)有所不同:
-量化
-近似值
-模型不精确(imprecision)
-模型参数不精确
设(rx,ry,rz)重构残差定义如下:
-
-
-
在该方法中,编码器(例如,G-PCC编码器200)进行如下操作:
●对模型参数和量化参数qr、qθ和qφ进行编码
●将ISO/IEC FDIS 23090-9基于几何的点云压缩、ISO/IEC JTC 1/SC29/WG7MDS19617(电话会议,2020年10月)的文本中描述的几何预测方案应用于表示
○可以引入利用激光雷达特性的新预测值。例如,激光雷达扫描仪围绕z轴的旋转速度通常是恒定的。因此,当前可以预测如下:
其中
■(δφ(k))k=1…K是编码器可以从中选择的潜在速度的集合。该索引k可以被显式地写入比特流,或可以基于编码器和解码器都应用的确定性策略从上下文中推断,并且
■n(j)是跳过的点的数量,这些点可以显示地写入比特流,或可以基于编码器和解码器都应用的确定性策略从上下文中推断出。随后,n(j)也可以被称为“phi乘数”,并且在一些实施方式中,可以仅与增量预测值一起使用。
●为每个节点编码重构残差(rx,ry,rz)
G-PCC解码器300进行如下操作:
●对模型参数和量化参数qr、qθ和qφ进行解码
●根据ISO/IEC FDIS 23090-9基于几何的点云压缩、ISO/IEC JTC 1/SC29/WG7MDS19617(电话会议,2020年10月)的文本中描述的几何预测方案,解码与节点相关联的参数。
●如以上所描述计算重构的坐标
●解码残差(rx,ry,rz)
o正如下一节所讨论的,有损压缩可以通过量化重构残差(rx,ry,rz)
来支持
●如下计算原始坐标(x,y,z)
○
○
○
有损压缩可以通过对重构残差(rx,ry,rz)进行量化或通过丢弃点来实现。
量化的重构残差计算如下:
●
●
●
其中,(qx,ox)、(qy,oy)和(qz,oz)分别是控制和的精度的量化参数。
网格(Trellis)量化可以用于进一步改善RD(率失真)性能结果。
量化参数可以在序列/帧/条带/块级别改变,以实现区域自适应质量并且用于速率控制目的。
G-PCC编码器200可以被配置为执行用于帧间预测的运动估计。下文描述了InterEM软件中应用的运动估计(全局和局部)过程。InterEM基于用于帧间预测的基于八叉树的编解码扩展。尽管运动估计被应用于基于八叉树的框架,但是类似的过程(或至少其一部分)也可以应用于预测几何编解码。
G-PCC InterEM软件中涉及到两种运动:全局运动矩阵和局部节点运动矢量。全局运动参数包括可以应用于预测(参考)帧中所有点的旋转矩阵和平移矢量。八叉树的节点的局部节点运动矢量是仅应用于预测(参考)帧中节点内的点的运动矢量。InterEM中的运动估计算法的细节描述如下。
图7示出了图示出运动估计过程的流程图。该过程的输入包括预测帧420和当前帧422。G-PCC编码器200首先在全局尺度上估计全局运动(424)。在将估计的全局运动应用于预测帧420(426)之后,G-PCC编码器200在八叉树中以更精细的尺度、节点级别估计局部运动(428)。最后,G-PCC编码器200对所估计的局部节点运动应用运动补偿,并且对所确定的运动矢量和点进行编码(430)。
下面将更详细地解释图7的方面。G-PCC编码器200可以执行估计全局运动矩阵和平移矢量的过程。在InterEM软件中,全局运动矩阵被定义为匹配预测帧(参考)与当前帧之间的特征点。
图8示出了可以由G-PCC编码器200执行的全局运动估计过程的示例。在图8的示例中,G-PCC编码器200找到特征点(432),对特征点进行采样(434),并且使用最小均方(LMS)算法来执行运动估计(436)。
在图8所示的算法中,在预测帧与当前帧之间具有大的位置变化的点可以被定义为特征点。对于当前帧中的每个点,找到预测帧中最近的点,并且在当前帧与预测帧之间建立点对。如果成对的点之间的距离大于阈值,则成对的点被视为特征点。
在找到特征点之后,对特征点进行采样,以降低问题的严重程度(例如,通过选择特征点的子集来降低运动估计的复杂度)。然后,通过尝试减小预测帧与当前帧中的相应的特征点之间的误差,应用LMS算法来推导运动参数。
图9示出了用于估计局部节点运动矢量的示例过程。在图9所示的局部节点估计算法中,运动矢量以递归方式估计。用于选择最合适的运动矢量的成本函数可以基于率失真成本。在图9中,路径440示出了未被划分为8个子节点的当前节点的过程,并且路径442示出了被划分为8个子节点的当前节点的过程。
如果当前节点没有被划分为8个子节点(440),则确定可能得到当前节点与预测节点之间最低成本的运动矢量。如果当前节点被划分为8个子节点(442),则应用运动估计算法,并且通过加上每个子节点的估计成本值来获得划分条件下的总成本。通过比较划分与不划分的成本来决定是否划分;如果划分,则每个子节点被分配其相应的运动矢量(或可以进一步划分为其子节点),如果不划分,则当前节点被分配运动矢量。
影响运动矢量估计性能的两个参数是块大小(BlockSize)和最小预测单元大小(MinPUSize)。BlockSize定义了应用运动矢量估计的节点大小的上限,并且MinPUSize定义了下限。
基本上作为八叉树编解码器的InterEM软件执行占用预测,并且在进行占用预测时,使用全局/局部运动的信息和参考点云。因此,InterEM软件不执行点的直接运动补偿,例如,这可以包括将运动应用于参考帧中的点,以将这些点投影到当前帧。然后,实际点与预测点之间的差可以被编解码,这在执行帧间预测时可能更有效。
本文中所公开的一种或多种技术可以独立应用或组合应用。本公开提出了执行直接运动补偿的技术,同时仍然受益于灵活的基于八叉树分割的编码结构。在下文中,这些技术主要在八叉树划分的上下文中示出,但是也可以扩展到OTQTBT(八叉树-四叉树-二叉树)划分场景。
G-PCC编码器200和/或G-PCC解码器300可以被配置为执行高级划分并且处理模式标志。在本公开的一个示例中,G-PCC编码器200和/或G-PCC解码器300可以被配置为对当前点云执行基于八叉树的划分(用于占用预测)。然而,可以在某个级别停止八叉树划分,并且然后直接编解码该八叉树叶体积内的点(下文中,这被称为“直接预测”),而不是编解码占用。叶节点大小或八叉树深度值可以被信令通知,以指定八叉树划分停止的级别,并且这些点被编解码为八叉树叶体积。
对于每个这样的八叉树叶节点,其中,八叉树划分停止,并且“直接预测”被激活,标志可以被信令通知,以指示八叉树叶体积内的点集是帧内预测的还是帧间预测的。在几何参数集中,八叉树叶的最大和最小大小可以被定义。
图10是示出八叉树444的高级八叉树划分的概念图。图10是包含13个点(O0至O12)的用于直接预测的八叉树叶节点的示例。在特殊情况下,八叉树的根节点(无划分)可以使用“直接预测”来编解码。
G-PCC编码器200和/或G-PCC解码器300可以被配置为执行帧内预测。当标志值设置为帧内预测时,对体积内的所有点进行帧内预测。为此,生成了“局部预测树”。这种树的生成是非标准的(non-normative)(可以以不同的顺序(诸如方位角、Morton、径向或其他顺序)遍历这些点)。对于每个点,它的预测模式(0、1、2、3)、子(child)信息的数量、主残差和次残差(如果角度模式被启用)被信令通知。因此,总之,帧内预测在功能上类似于预测几何编解码。
替代地,也可以为八叉树叶体积中的所有点信令通知单个预测模式,这可以降低相关联的信令通知成本。零预测值的半径值(如果角度模式被启用)或(x,y,z)值(如果角度模式被禁用)可以被设置为八叉树叶体积内的左上点等。替代地,可以针对八叉树叶体积信令通知零预测值,或可以信令通知指示八叉树叶体积内用于零预测值的点的索引。此外,如果值在八叉树叶体积之外,则可以在执行预测/重构之后执行限幅。
用于帧内预测的语法表可以类似于“Text of ISO/IEC FDIS 23090-9Geometry-based Point Cloud Compression(ISO/IEC FDIS 23090-9基于几何的点云压缩的文本)”(2020年10月,电话会议,ISO/IEC JTC 1/SC29/WG 7MDS19617)中描述的用于预测树的语法,其全部内容通过引用并入本文。
G-PCC编码器200和/或G-PCC解码器300可以被配置为执行帧间预测。假设八叉树叶内部有N个点:(O(0)……O(N-1)),对于帧间预测,在编码器侧利用八叉树叶体积中的当前点集执行运动估计,并且找到与参考点云帧中的相似点集的最佳匹配(其中,参考点云可以是运动未补偿的或全局运动补偿的)。对于八叉树叶的帧间预测,信令通知以下内容:
i.参考索引(如果有多个要预测的参考点云帧)
ii.运动矢量差(MVD)。(实际MV与预测MV之间的差(如上文关于从邻居执行MV预测所描述的))
iii.八叉树叶中的点数(N)。
iv.N个点(R'i)的主残差(并且如果角度模式被启用,还有次残差)(元组(tuplet),3D坐标之间的差)。
在下文中,本公开描述了八叉树节点的给定信令通知的参考索引(如果适用)和MV的运动补偿过程。
a.当前八叉树叶的左上点在(X0,Y0,Z0),维度为(Sx,Sy,Sz),并且运动矢量为MV=(MVx,MVy,MVz)。因此,参考点云帧中对应的参考块的左上点在(Xr,Yr,Zr)=(X0–MVx,Y0–MVy,Z0–MVz),并且大小为(Sx,Sy,Sz)
b.取出(fetch)该参考块内的所有点,并且布置成1D阵列,排序可以是预定的/固定的或信令通知的(例如,对于八叉树叶)。比方说,有M个具有坐标(在参考帧中)的这样的点:(R0……R(M-1)),其中,Ri是提供第i点的3D坐标的三元组,对于i=0……(M-1),如图12所示。
c.通过应用信令通知的MV对所有点进行运动补偿,该MV被用作预测几何位置(Pi),即,Pi=Ri+MV,如图13所示。
d.如果角度模式被启用,则对于所有M个点,导出对应的
在图12中,当前点集被标记为O0至O12,并且参考点集被标记为R0至R12,其中,N=M=13。在图13中,当前点集被标记为O0至O12,并且运动补偿参考点集被标记为P0至P12,其中,N=M=13。
现在,可能有三种场景:
i.N=M(当前八叉树节点和参考块具有相同点数)。
ii.N>M。
iii.N<M。
现在将描述第一种场景,其中,N=M。残差(主残差,以及如果适用的话,次残差)被直接添加到运动补偿点,以生成重构=Pi+R’i。
现在将描述第二种场景,其中,N>M。使用最后一个值P(M-1)来扩展1D阵列(Pi)中的运动补偿点,即,[P’0,……P’(M-1),P’(M),……P’(N-1)]=[P0,……P(M-1),P(M-1),……P(M-1)],并且,然后残差被直接添加,以生成重构=P’i+R’i。可选地,零预测值被用于扩展。
现在将描述第三种场景,其中,N<M。残差被直接添加到前N个点,即,[P0,……P(N-1)],以生成重构=Pi+Ri。
G-PCC编码器200和/或G-PCC解码器300可以被配置为根据邻居执行MV预测。可以根据时空相邻的帧间八叉树叶的MV来预测当前八叉树叶的MV,并且可以信令通知对应的MV差。在存在多个时空候选的情况下,可以信令通知MV预测索引。除了时空相邻候选之外,还可以在基于最近历史的MV候选列表中添加先前使用的MV候选。
还可以通过指定信令通知的“合并标志”来将MV信息与时空相邻信息合并。在存在多个时空候选的情况下,可以信令通知合并索引。
G-PCC编码器200和/或G-PCC解码器300可以被配置为执行跳过主残差。
对于良好的帧间预测,当角度模式被启用时适用的主残差通常很小,甚至接近于零。在这样情况下,对于八叉树叶体积中的所有点,也可以完全跳过主残差。因此,可以为八叉树叶体积信令通知primary_residual_skip标志。在这种情况下,原始点与预测点之间的差完全编解码在二级残差中。
替代地,primary_residual_skip_flag可以在比八叉树叶体积高的八叉树层上信令通知,并且应用于与八叉树层相关联的一个或多个八叉树叶。
下表是帧间预测八叉树叶的语法表。
本公开的各个方面中的示例可以单独使用或以任何组合使用。
图14是示出可以与本公开的一种或多种技术一起使用的示例测距系统600的概念图。在图14的示例中,测距系统600包括照明器602和传感器604。照明器602可以发射光606。在一些示例中,照明器602可以发射作为一个或多个激光束的光606。光606可以是一种或多种波长,诸如红外波长或可见光波长。在其他示例中,光606不是相干激光。当光606遇到诸如对象608的对象时,光606产生返回光610。返回光610可以包括反向散射光和/或反射光。返回光610可以穿过透镜611,透镜611引导返回光610以在传感器604上创建对象608的图像612。传感器604基于图像612生成信号618。图像612可以包括点集(例如,由图14的图像612中的点表示)。
在一些示例中,照明器602和传感器604可以安装在旋转结构上,使得照明器602和传感器604捕获环境的360度视图。在其他示例中,测距系统600可以包括一个或多个光学组件(例如,镜、准直器、衍射光栅等),其使得照明器602和传感器604能够检测特定范围(例如,高达360度)内的对象。尽管图14的示例仅示出了单个照明器602和传感器604,但是测距系统600可以包括多个照明器和传感器集合。
在一些示例中,照明器602生成结构化光图案。在这样的示例中,测距系统600可以包括多个传感器604,结构光图案的相应图像在其上形成。测距系统600可以使用结构光图案的图像之间的差来确定距结构光图案从其反向散射的对象608的距离。当对象608相对靠近传感器604时(例如,0.2米至2米),基于结构光的测距系统可以具有高水平的精度(例如,低于(sub)毫米范围内的精度)。这种高精度可以用于面部识别应用,诸如解锁移动设备(例如,手机、平板电脑等),和安全应用。
在一些示例中,测距系统600是基于飞行时间(ToF)的系统。在测距系统600是基于ToF的系统的一些示例中,照明器602生成光脉冲。换句话说,照明器602可以调制发射光606的振幅。在这样的示例中,传感器604从照明器602生成的光脉冲606中检测返回光610。然后,测距系统600可以基于在光606被发射和被检测到的时间与空气中的已知光速之间的延迟来确定距光606从其反向散射的对象608的距离。在一些示例中,不是(或除了)调制发射光606的振幅,照明器602可以调制发射光606的相位。在这样的示例中,传感器604可以检测来自对象608的返回光610的相位,并且使用光速并基于照明器602以特定相位生成光606的时间与在传感器604以特定相位检测到返回光610的时间之间的时间差,来确定距对象608上的点的距离。
在其他示例中,点云可以在不使用照明器602的情况下生成。例如,在一些示例中,测距系统600的传感器604可以包括两个或更多个光学相机。在这样的示例中,测距系统600可以使用光学相机来捕获包括对象608的环境的立体图像。然后,测距系统600(例如,点云生成器620)可以计算立体图像中位置之间的差。然后,测距系统600可以使用这些差异(disparities)来确定距立体图像中所示位置的距离。根据这些距离,点云生成器620可以生成点云。
传感器604还可以检测对象608的其他属性,诸如颜色和反射信息。在图14的示例中,点云生成器620可以基于由传感器604生成的信号618生成点云。测距系统600和/或点云生成器620可以形成数据源104(图1)的一部分。
图15是示出其中可以使用本公开的一种或多种技术的基于车辆的示例场景的概念图。在图15的示例中,车辆700包括激光套件(package)702,诸如LIDAR系统。尽管在图15的示例中没有示出,但是车辆700也可以包括数据源和G-PCC编码器,诸如G-PCC编码器200(图1)。在图15的示例中,激光套件702发射激光束704,激光束704从行人706或道路上的其他对象反射。车辆700的数据源可以基于由激光套件702生成的信号生成点云。车辆700的G-PCC编码器可以编码点云以生成比特流708。比特流708可以包括比由G-PCC编码器获得的未编码点云少得多的比特。车辆700的输出接口(例如,输出接口108(图1))可以将比特流708发送到一个或多个其他设备。因此,车辆700能够比未经编码的点云数据更快地将比特流708发送到其他设备。附加地,比特流708可能需要较少的数据存储容量。
在图15的示例中,车辆700可以向另一车辆710发送比特流708。车辆710可以包括G-PCC解码器,诸如G-PCC解码器300(图1)。车辆710的G-PCC解码器可以解码比特流708,以重构点云。车辆710可以将重构的点云用于各种目的。例如,车辆710可以基于重构的点云确定行人706在车辆700前方的道路上,并且因此开始减速,例如,甚至在车辆710的驾驶员意识到行人706在道路上之前开始减速。因此,在一些示例中,车辆710可以执行自主导航操作,生成通知或警告,或基于重构的点云执行另一动作。
附加地或替代地,车辆700可以向服务器系统712发送比特流708。服务器系统712可以将比特流708用于各种目的。例如,服务器系统712可以存储比特流708,以用于点云的后续重构。在该示例中,服务器系统712可以使用点云以及其他数据(例如,由车辆700生成的车辆遥测数据)来训练自动驾驶系统。在其他示例中,服务器系统712可以存储比特流708,以用于调查小组碰撞调查的后续重构(例如,如果车辆700与行人706碰撞),或可以向车辆700或车辆710发送导航通知或指令。
图16是示出其中可以使用本公开的一种或多种技术的示例扩展现实系统的概念图。扩展现实(XR)是用于涵盖一系列技术失误一个术语,包括增强现实(AR)、混合现实(MR)和虚拟现实(VR)。在图16的示例中,用户800位于第一位置802。用户800佩戴XR耳机804。作为XR耳机804的替代,用户800可以使用移动设备(例如,移动电话、平板电脑等)。XR耳机804包括深度检测传感器,诸如LIDAR系统,其检测第一位置802处的对象806上的点的位置。XR耳机804的数据源可以使用由深度检测传感器生成的信号来生成第一位置802处的对象806的点云表示。XR耳机804可以包括G-PCC编码器(例如,图1的G-PCC编码器200),其被配置为编码点云,以生成比特流808。
XR耳机804可以将比特流808(例如,经由诸如互联网的网络)发送到用户812在第二位置814佩戴的XR耳机810。XR耳机810可以解码比特流808,以重构点云。XR耳机810可以使用点云来生成表示第一位置802处的对象806的XR可视化(例如,AR、MR、VR可视化)。因此,在一些示例中,诸如当XR耳机810生成VR可视化时,位置814处的用户812可以具有第一位置802的3D沉浸式体验。在一些示例中,XR耳机810可以基于重构的点云来确定虚拟对象的位置。例如,XR耳机810可以基于重构的点云确定环境(例如,第一位置802)包括平坦表面,并且然后确定虚拟对象(例如,卡通人物)将被定位在平坦表面上。XR耳机810可以生成XR可视化,在其中虚拟对象处于所确定的位置。例如,XR耳机810可以显示坐在平坦表面上的卡通人物。
图17是示出其中可以使用本公开的一种或多种技术的示例移动设备系统的概念图。在图17的示例中,诸如移动电话或平板电脑的移动设备900包括深度检测传感器(诸如LIDAR系统),该测距系统检测移动设备900的环境中的对象902上的点的位置。移动设备900的数据源可以使用由深度检测传感器生成的信号来生成对象902的点云表示。移动设备900可以包括G-PCC编码器(例如,图1的G-PCC编码器200),G-PCC编码器被配置为编码点云,以生成比特流904。在图17的示例中,移动设备900可以向远程设备906(诸如服务器系统或其他移动设备)发送比特流。远程设备906可以解码比特流904,以重构点云。远程设备906可以将点云用于各种目的。例如,远程设备906可以使用点云来生成移动设备900的环境地图。例如,远程设备906可以基于重构的点云生成建筑物内部的地图。在另一示例中,远程设备906可以基于点云生成影像(例如,计算机图形)。例如,远程设备906可以使用点云的点作为多边形的顶点,并且使用点的颜色属性作为对多边形进行着色的基础。在一些示例中,远程设备906可以使用点云来执行面部识别。
图18是示出用于解码包括点云数据的比特流的示例操作的流程图。作为解码点云的一部分,G-PCC解码器300可以执行图18的操作。在图18的示例中,G-PCC解码器300确定八叉树,该八叉树定义包含点云的空间的基于八叉树的划分(1000)。八叉树的叶节点包含点云的一个或多个点。
G-PCC解码器300直接编解码叶节点中的一个或多个点中的每个点的位置(1002)。为了直接编解码叶节点中的一个或多个点中的每个的位置,G-PCC解码器300生成一个或多个点的预测(1004),并且基于该预测来确定一个或多个点(1006)。为了直接解码叶节点中的一个或多个点中的每个点的位置,G-PCC解码器300可以被配置为:接收标志,其中,标志的第一值指示一个或多个点的预测是通过帧内预测生成的,并且标志的第二值指示一个或多个点的预测是通过帧间预测生成的;以及基于标志的值,使用帧内预测或帧间预测来解码一个或多个点。
G-PCC解码器300可以被配置为在点云的比特流中接收指定叶节点的体积的八叉树叶体积。例如,假设完整的点云被封装在W×W×W长方体中。点云可以被递归划分,并且对于给定的划分深度d,八叉树叶体积是W/2d×W/2d×W/2d。在这一级别,占用标志(二进制)可以被信令通知,当占用标志等于1时,指示长方体具有至少一个点。当占用标志为1时,则另一帧内或帧间标志可以被信令通知,分别指示长方体内部的点是帧内预测还是帧间预测。
为了生成一个或多个点的预测,G-PCC解码器300还可以被配置为使用帧内预测来生成一个或多个点的预测,以及为了使用帧内预测来生成一个或多个点的预测,G-PCC解码器300还可以被配置为确定一个或多个点的局部预测树。
为了基于预测来确定一个或多个点,G-PCC解码器300可以被配置为在点云的比特流中接收一个或多个点中的每个点的预测模式、主残差和次残差中的至少一个。为了生成一个或多个点的预测,G-PCC解码器300可以被配置为使用帧间预测来生成一个或多个点的预测,并且为了使用帧间预测来生成一个或多个点的预测,G-PCC解码器300还可以被配置为利用一个或多个点执行运动估计,以确定参考点云帧中的相似点集。
为了生成一个或多个点的预测,G-PCC解码器300还可以被配置为使用帧间预测来生成一个或多个点的预测,以及为了使用帧间预测来生成一个或多个点的预测,G-PCC解码器300还可以被配置为基于参考点云帧中的点集执行运动补偿,以预测一个或多个点。为了执行运动补偿,G-PCC解码器300还可以被配置为将运动矢量应用于参考点云帧中的点集,以确定一个或多个点的预测。G-PCC解码器300可以被配置为基于时空相邻帧间八叉树叶的运动矢量来预测运动矢量。
G-PCC解码器300还可以被配置为从点云数据重构点云。作为重构点云的一部分,G-PCC解码器300还可以被配置为基于平面位置来确定点云的一个或多个点的位置。
应认识到,根据示例,本文所描述的任何技术的某些动作或事件可以以不同的顺序来执行,可以被添加、合并或完全省略(例如,并非所有描述的动作或事件对于技术的实践都是必要的)。此外,在某些示例中,动作或事件可以同时执行,例如,通过多线程处理、中断处理或多处理器,而不是顺序地执行。
在一个或多个示例中,所描述的功能可以用硬件、软件、固件或其任何组合来实施。如果以软件实施,这些功能可以作为一个或多个指令或代码存储在计算机可读介质上或在其上发送,并且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其对应于有形介质,诸如数据存储介质,或通信介质,包括例如根据通信协议便于将计算机程序从一个地方传输到另一地方的任何介质。以这种方式,计算机可读介质通常可以对应于(1)有形的计算机可读存储介质,其为非暂时性的,或(2)诸如信号或载波的通信介质。数据存储介质可以是能够被一个或多个计算机或一个或多个处理器存取以检索用于实施本公开中所描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,这样的计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储器、磁盘存储器或其他磁存储设备、闪存,者可以用于以指令或数据结构的形式存储期望的程序代码并且可以由计算机存取的任何其他介质。此外,任何连接都被恰当地称为计算机可读介质。例如,如果指令是使用同轴电缆、光纤电缆、双绞线、数字用户线路(DSL)或无线技术(诸如红外线、无线电和微波)从网站、服务器或其他远程源发送的,则同轴电缆、光纤电缆、双绞线、DSL或无线技术(诸如红外线、无线电和微波)都包括在介质的定义中。然而,应理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他暂时性的介质,而是指向非暂时性的有形存储介质。如本文所使用的,磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常磁性地再现数据,而光盘用激光光学地再现数据。以上的组合也应包括在计算机可读介质的范围内。
指令可以由一个或多个处理器执行,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他等效的集成或分立逻辑电路。因此,本文所使用的术语“处理器”和“处理电路”可以指任何上述结构或适合于实施本文描述的技术的任何其他结构。此外,在一些方面,本文所描述的功能可以在被配置用于编码和解码的专用硬件和/或软件模块中提供,或被结合在组合的编解码器中。同样,这些技术可以完全在一个或多个电路或逻辑元件中实施。
本公开的技术可以在各种设备或装置中实施,包括无线手机、集成电路(IC)或IC集(例如,芯片集)。在本公开中描述了各种组件、模块或单元,以强调被配置为执行所公开的技术的设备的功能方面,但是不一定需要由不同的硬件单元来实现。相反,如以上所描述,各种单元可以结合适当的软件和/或固件组合在编解码硬件单元中,或由互操作硬件单元的集合提供,包括如以上所描述的一个或多个处理器。
以下编号的条款示出了本公开中所描述的设备和技术的一个或多个方面。
条款1A:一种编解码点云的方法,该方法包括:确定定义包含点云的空间的基于八叉树的分割的八叉树,其中:八叉树的叶节点包含点云的一个或多个点,并且叶节点中的一个或多个点中的每个点的位置直接被信令通知;使用帧内预测或帧间预测来生成一个或多个点的预测;以及对指示使用帧内预测还是帧间预测来预测一个或多个点的语法元素进行编解码。
条款2A:根据条款1A的方法,其中,指定叶节点的体积的八叉树叶体积在比特流中信令通知。
条款3A:根据条款1A或2A的方法,其中:生成一个或多个点的预测包括使用帧内预测生成一个或多个点的预测,以及使用帧内预测生成一个或多个点的预测包括确定一个或多个点的局部预测树。
条款4A:根据条款3A的方法,其中,对于一个或多个点中的每个点,信令通知预测模式、主残差和次残差中的至少一个。
条款5A:根据条款1A或2A的方法,其中:生成一个或多个点的预测包括使用帧间预测生成一个或多个点的预测,以及使用帧间预测生成一个或多个点的预测包括利用一个或多个点执行运动估计,以确定参考点云帧中的相似点集。
条款6A:根据条款1A、2A或5A中任一项的方法,其中:生成一个或多个点的预测包括使用帧间预测生成一个或多个点的预测,以及使用帧间预测来生成一个或多个点的预测包括基于参考点云帧中的点集执行运动补偿,以预测一个或多个点。
条款7A:根据条款6A的方法,其中,执行运动补偿包括将运动矢量应用于参考点云帧中的点集,以确定一个或多个点的预测。
条款8A:根据条款7A的方法,还包括基于时空相邻帧间八叉树叶的运动矢量来预测运动矢量。
条款9A:根据条款1A至8A中任一项的方法,还包括生成点云。
条款10A:一种用于处理点云的设备,该设备包括用于执行根据条款1A至9A中任一项的方法的一个或多个部件。
条款11A:根据条款10A的设备,其中,一个或多个部件包括在电路中实施的一个或多个处理器。
条款12A:根据条款10A或11A中任一项的设备,还包括存储表示点云的数据的存储器。
条款13A:根据条款10A至12A中任一项的设备,其中,该设备包括解码器。
条款14A:根据条款10A至13A中任一项的设备,其中,该设备包括编码器。
条款15A:根据条款10A至14A中任一项的设备,还包括生成点云的设备。
条款16A:根据条款10A至15A中任一项的设备,还包括基于点云呈现影像的显示器。
条款17A:一种计算机可读存储介质,其中存储有指令,指令在被执行时,使一个或多个处理器执行条款1A至9A中任一项的方法。
条款1B:一种用于解码包括点云数据的比特流的设备,该设备包括:存储器,用于存储点云数据;以及一个或多个处理器,耦合到存储器并且在电路中实施,一个或多个处理器被配置为:确定定义包含点云的空间的基于八叉树的划分的八叉树,其中,八叉树的叶节点包含点云的一个或多个点;以及直接解码叶节点中的一个或多个点中的每个点的位置,其中,为了直接解码叶节点中的一个或多个点中的每个点的位置,一个或多个处理器还被配置为:生成一个或多个点的预测;以及基于预测来确定一个或多个点。
条款2B:根据条款1B的设备,其中,为了直接解码叶节点中的一个或多个点中的每个点的位置,一个或多个处理器还被配置为:接收标志,其中,标志的第一值指示一个或多个点的预测是通过帧内预测生成的,并且标志的第二值指示一个或多个点的预测是通过帧间预测生成的;以及基于标志的值,使用帧内预测或帧间预测来解码一个或多个点。
条款3B:根据条款1B的设备,其中,一个或多个处理器还被配置为在包括点云的比特流中接收指定叶节点的体积的八叉树叶体积。
条款4B:根据条款1B的设备,其中:为了生成一个或多个点的预测,一个或多个处理器还被配置为使用帧内预测来生成一个或多个点的预测,以及为了使用帧内预测来生成一个或多个点的预测,一个或多个处理器还被配置为确定一个或多个点的局部预测树。
条款5B:根据条款1B的设备,其中,为了基于预测来确定一个或多个点,一个或多个处理器还被配置为在包括点云的比特流中接收一个或多个点中的每个点的预测模式、主残差和次残差中的至少一个。
条款6B:根据条款1B的设备,其中:为了生成一个或多个点的预测,一个或多个处理器还被配置为使用帧间预测来生成一个或多个点的预测,以及为了使用帧间预测来生成一个或多个点的预测,一个或多个处理器还被配置为利用一个或多个点执行运动估计,以确定参考点云帧中的相似点集。
条款7B:根据条款1B的设备,其中:为了生成一个或多个点的预测,一个或多个处理器还被配置为使用帧间预测来生成一个或多个点的预测,以及为了使用帧间预测来生成一个或多个点的预测,一个或多个处理器还被配置为基于参考点云帧中的点集执行运动补偿,以预测一个或多个点。
条款8B:根据条款7B的设备,其中,为了执行运动补偿,一个或多个处理器还被配置为将运动矢量应用于参考点云帧中的点集,以确定一个或多个点的预测。
条款9B:根据条款8B的设备,其中,一个或多个处理器还被配置为基于时空相邻帧间八叉树叶的运动矢量来预测运动矢量。
条款10B:根据条款1B的设备,其中,一个或多个处理器还被配置为从点云数据重构点云。
条款11B:根据条款10B的设备,其中,一个或多个处理器被配置为,作为重构点云的一部分,基于平面位置来确定点云的一个或多个点的位置。
条款11B:根据条款10B的设备,其中,一个或多个处理器被配置为,作为重构点云的一部分,基于叶节点中的一个或多个点中的每个点的直接解码位置来确定点云的一个或多个点的位置。
条款12B:根据条款11B的设备,其中,一个或多个处理器还被配置为基于点云生成建筑物的内部的地图。
条款13B:根据条款11B的设备,其中,一个或多个处理器还被配置为基于点云来执行自主导航操作。
条款14B:根据条款11B的设备,其中,一个或多个处理器还被配置为基于点云来生成计算机图形。
条款15B:根据条款11B的设备,其中,一个或多个处理器被配置为:基于所重构的点云数据确定虚拟对象的位置;以及生成扩展现实(XR)可视化,在XR可视化中虚拟对象处于所确定的位置。
条款16B:根据条款11B的设备,还包括基于点云呈现影像的显示器。
条款17B:根据条款1B的设备,其中,该设备是移动电话或平板电脑。
条款18B:根据条款1B的设备,其中,该设备是车辆。
条款19B:根据条款1B的设备,其中,该设备是扩展现实设备。
条款20B:一种解码点云的方法,该方法包括:确定定义包含点云的空间的基于八叉树的划分的八叉树,其中,八叉树的叶节点包含点云的一个或多个点;直接解码叶节点中的一个或多个点中的每个点的位置,其中,直接解码叶节点中的一个或多个点中的每个点的位置包括:生成一个或多个点的预测;以及基于预测来确定一个或多个点。
条款21B:根据条款20B的方法,其中,直接解码叶节点中的一个或多个点中的每个点的位置还包括:接收标志,其中,标志的第一值指示一个或多个点的预测是通过帧内预测生成的,并且标志的第二值指示一个或多个点的预测是通过帧间预测生成的;以及基于标志的值,使用帧内预测或帧间预测来解码一个或多个点。
条款22B:根据条款20B的方法,还包括在点云的比特流中接收指定叶节点的体积的八叉树叶体积。
条款23B:根据条款20B的方法,其中:生成一个或多个点的预测包括使用帧内预测生成一个或多个点的预测,以及使用帧内预测生成一个或多个点的预测包括确定一个或多个点的局部预测树。
条款24B:根据条款20B的方法,其中,基于预测确定一个或多个点包括在点云的比特流中接收一个或多个点中的每个点的预测模式、主残差和次残差中的至少一个。
条款25B:根据条款20B的方法,其中:生成一个或多个点的预测包括使用帧间预测生成一个或多个点的预测,以及使用帧间预测生成一个或多个点的预测包括利用一个或多个点执行运动估计,以确定参考点云帧中的相似点集。
条款26B:根据条款20B的方法,其中:生成一个或多个点的预测包括使用帧间预测生成一个或多个点的预测,以及使用帧间预测来生成一个或多个点的预测包括基于参考点云帧中的点集执行运动补偿,以预测一个或多个点。
条款27B:根据条款26B的方法,其中,执行运动补偿包括将运动矢量应用于参考点云帧中的点集,以确定一个或多个点的预测。
条款28B:根据条款27B的方法,还包括基于时空相邻帧间八叉树叶的运动矢量来预测运动矢量。
条款29B:一种存储指令的计算机可读存储介质,当指令由一个或多个处理器执行时,使一个或多个处理器:确定定义包含点云的空间的基于八叉树的划分的八叉树,其中,八叉树的叶节点包含点云的一个或多个点;以及直接解码叶节点中的一个或多个点中的每个的位置,其中,为了直接解码叶节点中的一个或多个点中的每个点的位置,该指令使一个或多个处理器:生成一个或多个点的预测;以及基于预测来确定一个或多个点。
条款30B:一种装置,包括:用于确定定义包含点云的空间的基于八叉树的划分的八叉树的部件,其中,八叉树的叶节点包含点云的一个或多个点;用于直接解码叶节点中的一个或多个点中的每个的位置的部件,其中,用于直接解码叶节点中的一个或多个点中的每个点的位置的部件包括:用于生成一个或多个点的预测的部件;以及用于基于预测来确定一个或多个点的部件。
条款1C:一种用于解码包括点云数据的比特流的设备,该设备包括:存储器,用于存储点云数据;以及一个或多个处理器,耦合到存储器并且在电路中实施,一个或多个处理器被配置为:确定定义包含点云的空间的基于八叉树的划分的八叉树,其中,八叉树的叶节点包含点云的一个或多个点;以及直接解码叶节点中的一个或多个点中的每个的位置,其中,为了直接解码叶节点中的一个或多个点中的每个点的位置,一个或多个处理器还被配置为:生成一个或多个点的预测;以及基于预测来确定一个或多个点。
条款2C:根据条款1C的设备,其中,为了直接解码叶节点中的一个或多个点中的每个点的位置,一个或多个处理器还被配置为:接收标志,其中,标志的第一值指示一个或多个点的预测是通过帧内预测生成的,并且标志的第二值指示一个或多个点的预测是通过帧间预测生成的;以及基于标志的值,使用帧内预测或帧间预测来解码一个或多个点。
条款3C:根据条款1C或2C的设备,其中,一个或多个处理器还被配置为在包括点云的比特流中接收指定叶节点的体积的八叉树叶体积。
条款4C:根据条款1C至3C中任一项的设备,其中:为了生成一个或多个点的预测,一个或多个处理器还被配置为使用帧内预测来生成一个或多个点的预测,以及为了使用帧内预测来生成一个或多个点的预测,一个或多个处理器还被配置为确定一个或多个点的局部预测树。
条款5C:根据条款1C至4C中任一项的设备,其中,为了基于预测来确定一个或多个点,一个或多个处理器还被配置为在包括点云的比特流中接收一个或多个点中的每个点的预测模式、主残差和次残差中的至少一个。
条款6C:根据条款1C至5C中任一项的设备,其中:为了生成一个或多个点的预测,一个或多个处理器还被配置为使用帧间预测来生成一个或多个点的预测,以及为了使用帧间预测来生成一个或多个点的预测,一个或多个处理器还被配置为利用一个或多个点执行运动估计,以确定参考点云帧中的相似点集。
条款7C:根据条款1C至5C中任一项的设备,其中:为了生成一个或多个点的预测,一个或多个处理器还被配置为使用帧间预测来生成一个或多个点的预测,以及为了使用帧间预测来生成一个或多个点的预测,一个或多个处理器还被配置为基于参考点云帧中的点集执行运动补偿,以预测一个或多个点。
条款8C:根据条款7C的设备,其中,为了执行运动补偿,一个或多个处理器还被配置为将运动矢量应用于参考点云帧中的点集,以确定一个或多个点的预测。
条款9C:根据条款8C的设备,其中,一个或多个处理器还被配置为基于时空相邻帧间八叉树叶的运动矢量来预测运动矢量。
条款10C:根据条款1C至9C中任一项的设备,其中,一个或多个处理器还被配置为从点云数据重构点云。
条款11C:根据条款10C的设备,其中,一个或多个处理器被配置为,作为重构点云的一部分,基于叶节点中的一个或多个点中的每个点的直接解码位置来确定点云的一个或多个点的位置。
条款12C:根据条款11C的设备,其中,一个或多个处理器还被配置为基于点云生成建筑物的内部的地图。
条款13C:根据条款11C的设备,其中,一个或多个处理器还被配置为基于点云来执行自主导航操作。
条款14C:根据条款11C的设备,其中,一个或多个处理器还被配置为基于点云来生成计算机图形。
条款15C:根据条款11C的设备,其中,一个或多个处理器被配置为:基于所重构的点云数据确定虚拟对象的位置;以及生成扩展现实(XR)可视化,在XR可视化中虚拟对象处于所确定的位置。
条款16C:根据条款11C至15C中任一项的设备,还包括基于点云呈现影像的显示器。
条款17C:根据条款1C至16C中任一项的设备,其中,该设备是移动电话或平板电脑。
条款18C:根据条款1C至16C中任一项的设备,其中,该设备是车辆。
条款19C:根据条款1C至16C中任一项的设备,其中,该设备是扩展现实设备。
条款20C:一种解码点云的方法,该方法包括:确定定义包含点云的空间的基于八叉树的划分的八叉树,其中,八叉树的叶节点包含点云的一个或多个点;直接解码叶节点中的一个或多个点中的每个的位置,其中,直接解码叶节点中的一个或多个点中的每个点的位置包括:生成一个或多个点的预测;以及基于预测来确定一个或多个点。
条款21C:根据条款20C的方法,其中,直接解码叶节点中的一个或多个点中的每个点的位置还包括:接收标志,其中,标志的第一值指示一个或多个点的预测是通过帧内预测生成的,并且标志的第二值指示一个或多个点的预测是通过帧间预测生成的;以及基于标志的值,使用帧内预测或帧间预测来解码一个或多个点。
条款22C:根据条款20C或21C的方法,还包括在点云的比特流中接收指定叶节点的体积的八叉树叶体积。
条款23C:根据条款20C至22C中任一项的方法,其中:生成一个或多个点的预测包括使用帧内预测生成一个或多个点的预测,以及使用帧内预测生成一个或多个点的预测包括确定一个或多个点的局部预测树。
条款24C:根据条款20C至23C中任一项的方法,其中,基于预测确定一个或多个点包括在点云的比特流中接收一个或多个点中的每个点的预测模式、主残差和次残差中的至少一个。
条款25C:根据条款20C至24C中任一项的方法,其中:生成一个或多个点的预测包括使用帧间预测生成一个或多个点的预测,以及使用帧间预测生成一个或多个点的预测包括利用一个或多个点执行运动估计,以确定参考点云帧中的相似点集。
条款26C:根据条款20C至25C中任一项的方法,其中:生成一个或多个点的预测包括使用帧间预测生成一个或多个点的预测,以及使用帧间预测来生成一个或多个点的预测包括基于参考点云帧中的点集执行运动补偿,以预测一个或多个点。
条款27C:根据条款26C的方法,其中,执行运动补偿包括将运动矢量应用于参考点云帧中的点集,以确定一个或多个点的预测。
条款28C:根据条款27C的方法,还包括基于时空相邻帧间八叉树叶的运动矢量来预测运动矢量。
已经描述了各种示例。这些和其他示例在以下权利要求的范围内。
Claims (30)
1.一种用于解码包括点云数据的比特流的设备,所述设备包括:
存储器,存储所述点云数据;以及
一个或多个处理器,耦合到所述存储器并且在电路中实施,所述一个或多个处理器被配置为:
确定定义包含点云的空间的基于八叉树的划分的八叉树,其中,所述八叉树的叶节点包含所述点云的一个或多个点;以及
直接解码所述叶节点中的所述一个或多个点中的每个点的位置,其中,为了直接解码所述叶节点中的所述一个或多个点中的每个点的所述位置,所述一个或多个处理器还被配置为:
生成所述一个或多个点的预测;以及
基于所述预测来确定所述一个或多个点。
2.根据权利要求1所述的设备,其中,为了直接解码所述叶节点中的所述一个或多个点中的每个点的所述位置,所述一个或多个处理器还被配置为:
接收标志,其中,所述标志的第一值指示所述一个或多个点的所述预测是通过帧内预测生成的,并且所述标志的第二值指示所述一个或多个点的所述预测是通过帧间预测生成的;以及
基于所述标志的值,使用帧内预测或帧间预测来解码所述一个或多个点。
3.根据权利要求1所述的设备,其中,所述一个或多个处理器还被配置为在包括所述点云的所述比特流中接收指定所述叶节点的体积的八叉树叶体积。
4.根据权利要求1所述的设备,其中:
为了生成所述一个或多个点的所述预测,所述一个或多个处理器还被配置为使用帧内预测来生成所述一个或多个点的所述预测,以及
为了使用帧内预测来生成所述一个或多个点的所述预测,所述一个或多个处理器还被配置为确定用于所述一个或多个点的局部预测树。
5.根据权利要求1所述的设备,其中,为了基于所述预测来确定所述一个或多个点,所述一个或多个处理器还被配置为在包括所述点云的所述比特流中接收所述一个或多个点中的每个点的预测模式、主残差和次残差中的至少一个。
6.根据权利要求1所述的设备,其中:
为了生成所述一个或多个点的所述预测,所述一个或多个处理器还被配置为使用帧间预测来生成所述一个或多个点的所述预测,以及
为了使用帧间预测来生成所述一个或多个点的所述预测,所述一个或多个处理器还被配置为利用所述一个或多个点执行运动估计,以确定参考点云帧中的相似点集。
7.根据权利要求1所述的设备,其中:
为了生成所述一个或多个点的所述预测,所述一个或多个处理器还被配置为使用帧间预测来生成所述一个或多个点的所述预测,以及
为了使用帧间预测来生成所述一个或多个点的所述预测,所述一个或多个处理器还被配置为基于参考点云帧中的点集执行运动补偿,以预测所述一个或多个点。
8.根据权利要求7所述的设备,其中,为了执行运动补偿,所述一个或多个处理器还被配置为将运动矢量应用于所述参考点云帧中的所述点集,以确定所述一个或多个点的预测。
9.根据权利要求8所述的设备,其中,所述一个或多个处理器还被配置为基于时空相邻帧间八叉树叶的运动矢量来预测所述运动矢量。
10.根据权利要求1所述的设备,其中,所述一个或多个处理器还被配置为从所述点云数据重构所述点云。
11.根据权利要求10所述的设备,其中,所述一个或多个处理器被配置为,作为重构所述点云的一部分,基于所述叶节点中的所述一个或多个点中的每个点的所直接解码的位置来确定所述点云的一个或多个点的位置。
12.根据权利要求11所述的设备,其中,所述一个或多个处理器还被配置为基于所述点云生成建筑物的内部的地图。
13.根据权利要求11所述的设备,其中,所述一个或多个处理器还被配置为基于所述点云来执行自主导航操作。
14.根据权利要求11所述的设备,其中,所述一个或多个处理器还被配置为基于所述点云来生成计算机图形。
15.根据权利要求11所述的设备,其中,所述一个或多个处理器被配置为:
基于所述点云确定虚拟对象的位置;以及
生成扩展现实XR可视化,在所述XR可视化中,所述虚拟对象处于所述虚拟对象的所确定的位置。
16.根据权利要求11所述的设备,还包括基于所述点云呈现影像的显示器。
17.根据权利要求1所述的设备,其中,所述设备是移动电话或平板电脑。
18.根据权利要求1所述的设备,其中,所述设备是车辆。
19.根据权利要求1所述的设备,其中,所述设备是扩展现实设备。
20.一种解码点云的方法,所述方法包括:
确定定义包含所述点云的空间的基于八叉树的划分的八叉树,其中,所述八叉树的叶节点包含所述点云的一个或多个点;
直接解码所述叶节点中的所述一个或多个点中的每个点的位置,其中,直接解码所述叶节点中的所述一个或多个点中的每个点的所述位置包括:
生成所述一个或多个点的预测;以及
基于所述预测来确定所述一个或多个点。
21.根据权利要求20所述的方法,其中,直接解码所述叶节点中的所述一个或多个点中的每个点的所述位置还包括:
接收标志,其中,所述标志的第一值指示所述一个或多个点的所述预测是通过帧内预测生成的,并且所述标志的第二值指示所述一个或多个点的所述预测是通过帧间预测生成的;以及
基于所述标志的值,使用帧内预测或帧间预测来解码所述一个或多个点。
22.根据权利要求20所述的方法,还包括在所述点云的比特流中接收指定所述叶节点的体积的八叉树叶体积。
23.根据权利要求20所述的方法,其中:
生成所述一个或多个点的所述预测包括使用帧内预测生成所述一个或多个点的所述预测,以及
使用帧内预测生成所述一个或多个点的所述预测包括确定所述一个或多个点的局部预测树。
24.根据权利要求20所述的方法,其中,基于所述预测来确定所述一个或多个点包括在所述点云的比特流中接收所述一个或多个点中的每个点的预测模式、主残差和次残差中的至少一个。
25.根据权利要求20所述的方法,其中:
生成所述一个或多个点的所述预测包括使用帧间预测生成所述一个或多个点的所述预测,以及
使用帧间预测生成所述一个或多个点的所述预测包括利用所述一个或多个点执行运动估计,以确定参考点云帧中的相似点集。
26.根据权利要求20所述的方法,其中:
生成所述一个或多个点的所述预测包括使用帧间预测生成所述一个或多个点的所述预测,以及
使用帧间预测来生成所述一个或多个点的所述预测包括基于参考点云帧中的点集执行运动补偿,以预测所述一个或多个点。
27.根据权利要求26所述的方法,其中,执行运动补偿包括将运动矢量应用于所述参考点云帧中的所述点集,以确定所述一个或多个点的预测。
28.根据权利要求27所述的方法,还包括基于时空相邻帧间八叉树叶的运动矢量来预测所述运动矢量。
29.一种存储指令的计算机可读存储介质,当所述指令由一个或多个处理器执行时,使所述一个或多个处理器:
确定定义包含点云的空间的基于八叉树的划分的八叉树,其中,所述八叉树的叶节点包含所述点云的一个或多个点;以及
直接解码所述叶节点中的所述一个或多个点中的每个点的位置,其中,为了直接解码所述叶节点中的所述一个或多个点中的每个点的所述位置,所述指令使所述一个或多个处理器:
生成所述一个或多个点的预测;以及
基于所述预测来确定所述一个或多个点。
30.一种装置,包括:
用于确定定义包含点云的空间的基于八叉树的划分的八叉树的部件,其中,所述八叉树的叶节点包含所述点云的一个或多个点;
用于直接解码所述叶节点中的所述一个或多个点中的每个点的位置的部件,其中,用于直接解码所述叶节点中的所述一个或多个点中的每个点的所述位置的所述部件包括:
用于生成所述一个或多个点的预测的部件;以及
用于基于所述预测来确定所述一个或多个点的部件。
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US63/131,546 | 2020-12-29 | ||
| US17/562,398 US12301890B2 (en) | 2020-12-29 | 2021-12-27 | Hybrid-tree coding for inter and intra prediction for geometry coding |
| US17/562,398 | 2021-12-27 | ||
| PCT/US2021/065350 WO2022147015A1 (en) | 2020-12-29 | 2021-12-28 | Hybrid-tree coding for inter and intra prediction for geometry coding |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN116636204A true CN116636204A (zh) | 2023-08-22 |
Family
ID=87590680
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202180086668.0A Pending CN116636204A (zh) | 2020-12-29 | 2021-12-28 | 用于几何编解码的帧间和帧内预测的混合树编解码 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN116636204A (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2025149086A1 (en) * | 2024-01-13 | 2025-07-17 | Douyin Vision Co., Ltd. | Method, apparatus, and medium for point cloud coding |
-
2021
- 2021-12-28 CN CN202180086668.0A patent/CN116636204A/zh active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2025149086A1 (en) * | 2024-01-13 | 2025-07-17 | Douyin Vision Co., Ltd. | Method, apparatus, and medium for point cloud coding |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP4272166A1 (en) | Hybrid-tree coding for inter and intra prediction for geometry coding | |
| EP4272167A1 (en) | Inter prediction coding for geometry point cloud compression | |
| US12518428B2 (en) | Inter prediction coding with radius interpolation for predictive geometry-based point cloud compression | |
| US12301890B2 (en) | Hybrid-tree coding for inter and intra prediction for geometry coding | |
| US20230177739A1 (en) | Local adaptive inter prediction for g-pcc | |
| WO2023059987A1 (en) | Inter prediction coding with radius interpolation for predictive geometry-based point cloud compression | |
| US20240037804A1 (en) | Using vertical prediction for geometry point cloud compression | |
| CN116636204A (zh) | 用于几何编解码的帧间和帧内预测的混合树编解码 | |
| CN119547107A (zh) | 用于几何点云压缩的坐标转换 | |
| WO2023102484A1 (en) | Local adaptive inter prediction for g-pcc | |
| US12445645B2 (en) | Inter prediction coding for geometry point cloud compression | |
| US12293554B2 (en) | Prediction for geometry point cloud compression | |
| US20250225682A1 (en) | Prediction for geometry point cloud compression | |
| US20230345044A1 (en) | Residual prediction for geometry point cloud compression | |
| CN120418826A (zh) | 用于预测几何编解码的帧间预测 | |
| CN119137957A (zh) | 用于几何点云压缩的帧间预测编解码 | |
| WO2024220278A1 (en) | Inter prediction candidate selection in point cloud compression | |
| WO2023205318A1 (en) | Improved residual prediction for geometry point cloud compression | |
| CN120917752A (zh) | 点云压缩中的帧间预测候选选择 | |
| EP4605893A1 (en) | Decoding attribute values in geometry-based point cloud compression | |
| HK40116901A (zh) | 用於几何点云压缩的帧间预测编解码 | |
| CN118525300A (zh) | 用于几何点云压缩的预测 | |
| CN116648914A (zh) | 用于基于几何的点云压缩的使用道路和地面物体标记的全局运动估计 |
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 |