CN116648914A - 用于基于几何的点云压缩的使用道路和地面物体标记的全局运动估计 - Google Patents
用于基于几何的点云压缩的使用道路和地面物体标记的全局运动估计 Download PDFInfo
- Publication number
- CN116648914A CN116648914A CN202180088307.XA CN202180088307A CN116648914A CN 116648914 A CN116648914 A CN 116648914A CN 202180088307 A CN202180088307 A CN 202180088307A CN 116648914 A CN116648914 A CN 116648914A
- Authority
- CN
- China
- Prior art keywords
- points
- threshold
- point
- encoding
- ground
- 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
- 230000033001 locomotion Effects 0.000 title claims description 257
- 230000006835 compression Effects 0.000 title description 17
- 238000007906 compression Methods 0.000 title description 17
- 238000000034 method Methods 0.000 claims description 293
- 239000013598 vector Substances 0.000 claims description 106
- 238000013519 translation Methods 0.000 claims description 24
- 239000011159 matrix material Substances 0.000 claims description 22
- 238000003860 storage Methods 0.000 claims description 18
- 238000010586 diagram Methods 0.000 description 30
- 238000004891 communication Methods 0.000 description 17
- 238000013139 quantization Methods 0.000 description 15
- 238000004422 calculation algorithm Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 12
- 230000011664 signaling Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000009466 transformation Effects 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 6
- 239000000872 buffer Substances 0.000 description 6
- 238000005192 partition Methods 0.000 description 6
- 238000012800 visualization Methods 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000003190 augmentative effect Effects 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 4
- 238000003786 synthesis reaction Methods 0.000 description 4
- 239000003550 marker Substances 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- VBRBNWWNRIMAII-WYMLVPIESA-N 3-[(e)-5-(4-ethylphenoxy)-3-methylpent-3-enyl]-2,2-dimethyloxirane Chemical compound C1=CC(CC)=CC=C1OC\C=C(/C)CCC1C(C)(C)O1 VBRBNWWNRIMAII-WYMLVPIESA-N 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000001815 facial effect Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007635 classification algorithm Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一种用于编解码点云数据的示例设备包括:存储器,其被配置为存储表示点云的点的数据;以及在电路中实施的一个或多个处理器并且其被配置为:确定点云中的点的高度值;根据高度值将点分类为地面点集或物体点集;并根据分类对地面点和物体点进行编解码。一个或多个处理器可以确定顶部和底部阈值,并根据顶部和底部阈值对地面点和物体点进行分类。一个或多个处理器还可以编解码包括表示顶部和底部阈值的数据的数据结构,诸如几何参数集(GPS)。
Description
相关申请的交叉引用
本申请要求于2021年12月21日提交的美国申请第17/558,362号、于2020年12月29日提交的美国临时申请第63/131,637号和于2021年4月7日提交的美国临时申请第63/171,945号的优先权,每一个申请的全部内容通过引用并入本文。美国申请第17/558,362号要求于2020年12月29日提交的美国临时申请第63/131,637号和于2021年4月7日提交的美国临时申请第63/171,945号的权益。
技术领域
本公开涉及点云编码和解码。
背景技术
点云包含3D空间中的点集。每个点可以具有与该点相关联的属性集。属性可以是色彩信息,诸如R、G、B或Y、Cb、Cr信息或反射率信息,或者其他属性。点云可以由各种相机或传感器捕获,诸如LIDAR传感器和3D扫描仪。点云也可以是计算机生成的。点云数据可以用于各种应用中,包括但不限于建造(建模)、图形(用于可视化和动画的3D模型)和汽车工业(用于帮助导航的LIDAR传感器)。
点云编码器/解码器(编解码器)可以将由点云数据占据的3D空间包围在虚拟边界框中。边界框中的点的位置可以由某一精度来表示。因此,点云编解码器可以基于精度量化一个或多个点的位置。在最小级别,点云编解码器将边界框划分为立体像素(voxel),其是由单位立方体表示的最小空间单位。边界框中的立体像素可以与零个、一个或多于一个点相关联。点云编解码器可以将边界框划分成多个立方体/长方体区域,这些区域可以被称为片。点云编解码器可将片编解码成一个或多个切片。将边界框分割为切片和片可以基于每个分区中的点的数量,或者基于其他考虑(例如,特定区域可以被编解码为片)。可以使用类似于视频编解码器中的划分决策来进一步分割切片区域。
发明内容
总体而言,本公开描述了用于编解码(编码和解码)点云数据的技术。具体地,G-PCC编码器和/或解码器可以确定点云中的点是地面/道路点还是物体点,然后使用点的这些分类来编解码(编码或解码)这些点。例如,G-PCC编码器或解码器可以仅对于物体点生成全局运动信息集。在一些示例中,G-PCC编码器或解码器还可以仅对于地面/道路点生成全局运动信息集。可替代地,G-PCC编码器或解码器可以使用局部运动信息和/或帧内预测来编解码地面/道路点。
在一个示例中,编解码G-PCC数据的方法包括:确定点云中的点的高度值;根据高度值将点分类为地面点集或物体点集;根据分类对地面点和物体点进行编解码。
在另一示例中,一种用于编解码G-PCC数据的设备包括:存储器,其被配置为存储表示点云的点的数据;以及在电路中实施的一个或多个处理器,其被配置为:确定点云中的点的高度值;根据高度值将点分类为地面点集或物体点集;以及根据分类对地面点和物体点进行编解码。
在另一示例中,一种计算机可读存储介质上存储有指令,当被运行时,这些指令使得处理器:确定点云中的点的高度值;根据高度值将点分类为地面点集或物体点集;以及根据分类对地面点和物体点进行编解码。
在另一示例中,一种用于编解码G-PCC数据的设备包括:用于确定点云中的点的高度值的部件;用于根据高度值将点分类成地面点集或物体点集的部件;以及用于根据分类对地面点和物体点进行编解码的部件。
在附图和以下实施方式中阐述了本公开的一个或多个示例的细节。本公开的其他特征、目的和优势将从说明书、附图和权利要求书中显而易见。
附图说明
图1是图示了可以执行本公开的技术的示例编码和解码***的框图。
图2是图示了可以被配置为执行本公开的技术的示例几何点云压缩(G-PCC)编码器的框图。
图3是图示了G-PCC中的帧间预测编码的示例的概念图。
图4是图示了可以被配置为执行本公开的技术的示例G-PCC解码器的框图。
图5是图示了G-PCC中的帧间预测解码的示例的概念图。
图6是图示了在执行本公开的技术时可以使用的示例预测树的概念图。
图7是图示了示例旋转LIDAR采集模型的概念图。
图8是图示了G-PCC InterEM软件的示例运动估计过程的流程图。
图9是图示了用于估计全局运动的示例过程的流程图。
图10是图示了用于估计局部节点运动矢量的示例过程的流程图。
图11是图示了根据本公开的技术使用点的z值的两个阈值将云分类为地面(道路)和物体的示例的图。
图12是图示了根据本公开的技术使用直方图导出阈值的示例的图。
图13是图示了根据本公开的技术将云中的点标记为道路和物体的概念图。
图14是图示了根据本公开的技术编码点云的示例方法的流程图。
图15是图示了根据本公开的技术解码点云的示例方法的流程图。
图16是图示了在三维空间中扫描点的激光器包(诸如LIDAR传感器或包括一个或多个激光器组件的其他***)的概念图。
图17是图示了可以与本公开的一个或多个技术一起使用的示例测距***900的概念图。
图18是图示了其中可以使用本公开的一个或多个技术的示例基于交通工具的场景的概念图,。
图19是图示了其中可以使用本公开的一个或多个技术的示例扩展现实***的概念图。
图20是图示了其中可以使用本公开的一个或多个技术的示例移动设备***的概念图。
具体实施方式
点云数据可以通过使用(例如)安装在汽车上的LIDAR***来生成。当汽车移动时,LIDAR***可以随着时间的推移在多个不同的方向上间歇性地(in burst)发射激光。因此,对于给定的激光发射,可以形成点云。为了压缩点云数据,相应的点云(帧)可以相对于彼此被编解码,例如,使用帧内预测或帧间预测。本公开认识到,因为汽车周围的大多数物体将保持相对静止,所以可以使用公共的全局运动矢量(可以预期其通常对应于汽车穿越的方向和偏移)来预测对应于物体的点云中的点。然而,沿地面的点通常在帧之间保持静止,因为激光可能预期识别每个帧内相同相对位置处的点,因为汽车下方的道路或地面预期是相对平坦的。
因此,本公开描述了可以减少信令开销和编解码信息的技术。具体地,几何点云压缩(G-PCC)编码器和G-PCC解码器可以被配置为分离地编码和解码物体和道路/地面点。也就是说,G-PCC编码器可以被配置为将点云中的点分类为物体点或地面/道路点中的任一者,然后使用全局运动矢量对物体点进行编码,同时分离地对地面/道路点进行编码(例如,使用零运动矢量、第二不同的全局运动矢量、相应的局部运动矢量、帧内预测或其他不同的编码技术)。类似地,G-PCC解码器可以从道路/地面点分离地解码物体点。以这种方式对所有物体点使用单个全局运动矢量比分离地对点云中的每个点使用各自的局部运动矢量消耗更少的比特。同样地,将所有道路/地面点编解码在一起可以减少信令开销和编解码数据。这些技术还可以减少编码和解码点云所需要的处理操作的数量。以这种方式,这些技术可以提高G-PCC编码和解码设备以及基于几何的点云压缩的整体范围(field)的操作效率。
图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)设备、一个或多个摄像机、包含先前捕获的数据的档案、和/或从数据内容提供商接收数据的数据馈送接口。可替代地或附加地,点云数据可以由计算机从扫描仪、相机、传感器或其他数据生成。例如,数据源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运行的软件指令。尽管在该示例中与G-PCC编码器200和G-PCC解码器300分离地示出了存储器106和存储器120,但是应当理解,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可以解调接收的传输信号。通信介质可以包括任何无线或有线通信介质,诸如射频(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连接)、有线连接(例如,数字订户线(DSL)、电缆调制解调器等)或两者的组合。文件服务器114和输入接口122可以被配置为根据流传输协议、下载传输协议或其组合来操作。
输出接口108和输入接口122可以表示无线发送器/接收器、调制解调器、有线网络组件(例如,以太网卡)、根据各种IEEE 802.11标准中的任何标准操作的无线通信组件或其他物理组件。在输出接口108和输入接口122包括无线组件的示例中,输出接口108和输入接口122可以被配置为根据诸如4G、4G-LTE(长期演进)、高级LTE、5G等的蜂窝通信标准来传输诸如经编码的数据的数据。在输出接口108包括无线发送器的一些示例中,输出接口108和输入接口122可以被配置为根据诸如IEEE 802.11规范、IEEE 802.15规范(例如,ZigBeeTM)、BluetoothTM标准等的其他无线标准来传输诸如经编码的数据的数据。在一些示例中,源设备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可以基本上实时地或非实时地(诸如,可能在将语法元素存储到存储设备112以供稍后由目的地设备116检索时发生)将比特流传输到目的地设备116。
ISO/IEC MPEG(JTC 1/SC 29/WG 11)正在研究点云编解码技术标准化的潜在需求,其压缩能力显著超过当前方法,并将致力于创建该标准。该小组正在合作开展这项探索活动,称为三维图形团队(3DG),以评估该领域专家提出的压缩技术设计。
点云压缩活动分类为两种不同的方法。第一种方法是“视频点云压缩”(V-PCC),其将3D物体分段,并将分段投影到多个2D平面中(在2D帧中表示为“小片(patch)”),这些2D平面由传统的2D视频编解码器(诸如高效视频编解码(HEVC)(ITU-T H.265)编解码器)进一步编解码。第二种方法是“基于几何的点云压缩”(G-PCC),其直接压缩3D几何图形(即3D空间中点集的位置)以及相关联的属性值(对于与3D几何相关联的每个点的属性值)。G-PCC解决了类别1(静态点云)和类别3(动态获取的点云)中点云的压缩。G-PCC标准草案可在G-PCCDIS,ISO/IEC JTC1/SC29/WG11w19522,MPEG-131,电话会议,2020年7月中获得,并且编解码器的描述可在G-PCC编解码器描述,ISO/IEC JTC1/SC29/WG11 w19525,MPEG-131,电话会议,2020年7月中获得。
所示的单元是逻辑的,并且不一定与G-PCC编解码器(即由ISO/IEC MPEG(JTC 1/SC 29/WG 11)研究的TMC13测试模型软件)的参考实施方式中实施的代码一一对应。类似地,所示的单元不一定与G-PCC编解码器的硬件实施方式中的硬件单元一一对应。
在G-PCC编码器200和G-PCC解码器300两者中,点云位置首先被编解码。属性编解码取决于经解码的几何图形。对于类别3数据,经压缩的几何图形通常被表示为从根一直下到单独立体像素(voxel)的叶级别的八叉树。对于类别1数据,经压缩的几何图形通常由修剪的八叉树(即,从根向下到大于立体像素的块的叶级别的八叉树)加上近似修剪的八叉树的每个叶内的表面的模型来表示。以这种方式,类别1和类别3数据共享八叉树编解码机制,而类别1数据可以附加地用表面模型近似每个叶内的立体像素。所使用的表面模型是每块包括1-10个三角形的三角剖分(triangulation),产生三角形集合(triangle soup)。因此,类别1几何编解码器被称为三角形集合几何编解码器,而类别3几何编解码器被称为八叉树几何编解码器。
在八叉树的每个节点处,为一个或多个其子节点(最多八个节点)信令通知(当未推断时)占用(occupancy)。指定多个邻域,包括(a)与当前八叉树节点共享面(face)的节点,(b)与当前八叉树节点共享面、边或顶点的节点等。在每个邻域内,节点和/或其子节点的占用可以用于预测当前节点或其子节点的占用。对于在八叉树的某些节点中稀疏填充的点,编解码器还支持直接编解码模式,其中点的3D位置被直接编码。可以信令通知标志以指示直接模式被信令通知。在最低级别,与八叉树节点/叶节点相关联的点的数量也可以被编解码。
一旦几何图形被编解码,对应于几何图形点的属性被编解码。当有多个属性点对应于一个经重构/经解码的几何图形点时,可以导出表示经重构的点的属性值。
G-PCC中有三种属性编解码方法:区域自适应分层变换(RAHT)编解码、基于插值的分层最近邻预测(预测变换)、以及具有更新/提升步骤(提升变换)的基于插值的分层最近邻预测。RAHT和提升通常用于类别1数据,而预测通常用于类别3数据。然而,两种方法的任一者都可以用于任何数据,就像G-PCC中的几何编解码器一样,用于编解码点云的属性编解码方法是在比特流中指定的。
属性的编解码可以在细节层次(LOD)中进行,其中对于每个细节层次,可以获得点云属性的更精细的表示。每个细节层层次可以基于距相邻节点的距离度量或基于采样距离来指定。
G-PCC编码器200可以量化作为属性的编解码方法的输出而获得的残差。G-PCC编码器200可以使用上下文自适应算术编解码对经量化的残差进行熵编码。
根据本公开的技术,G-PCC编码器200和G-PCC解码器300可以被配置为基于点的分类分离地编码/解码点云的点。具体地,G-PCC编码器200和G-PCC解码器300可以被配置成将点分类为(例如)地面(或道路)点和物体点。在一些示例中,安装在汽车上的LIDAR***可以将激光投射到周围环境中以构建点云。本公开认识到,汽车行驶的地面或道路将可能在帧之间(即,在相应的点云构建实例之间)保持相对平坦和稳定。因此,在地面或道路位置收集的点在相应帧之间应该是几乎相同的。
对于点云的其他部分,所识别的点可以对应于非道路/地面物体。因此,由于汽车的速度,对应于非道路/地面物体的每个点的相对位置可以以基本相同的方式逐帧变化。如此,使用全局运动矢量来编码和解码对应于物体的点以及使用不同机制(例如,不同的全局运动矢量(只如零值全局运动矢量)、局部运动矢量或帧内预测)来编码和解码对应于道路或地面的点可能是高效的。
G-PCC编码器200可以确定用于将点分类为地面/道路点(下文中通常称为“地面”点)或物体点中任一者的阈值。例如,G-PCC编码器200可以确定顶部阈值和底部阈值,通常表示地面或道路的顶部和底部。因此,如果点在这两个阈值之间,则这些点可以被分类为地面点,而其他点(例如,顶部阈值以上或底部阈值以下的点)可以被分类为物体点。G-PCC编码器200可以在数据结构(诸如序列参数集(SPS)、几何参数集(GPS)或几何数据单元标头(GDH))中对表示顶部和底部阈值的数据进行编码。G-PCC编码器200和G-PCC解码器300因此可以使用全局运动矢量对顶部阈值以上或底部阈值以下的节点的占用进行编码或解码,并且使用不同的第二全局运动矢量、局部运动矢量、帧内预测或其他不同的预测技术对顶部阈值和底部阈值之间的节点的占用进行编码或解码。
以这种方式,本公开的技术可以引起物体点的更有效的编解码。可以使用单个全局运动矢量来预测相应云之间的所有物体点,而不是使用相应的局部运动矢量来编解码点云中的点。因此,可以显著减少与信令通知物体点的运动信息相关的信令开销。此外,因为可以在很大程度上假设地面点将在帧之间保持恒定,所以地面点的编解码技术可以消耗相对较少的比特数。
图2是图示了可以被配置为执行本公开的技术的图1的G-PCC编码器200的示例组件的框图。在图2的示例中,G-PCC编码器200包括存储器228、坐标变换单元202、色彩变换单元204、立体像素化单元206、属性转移单元208、八叉树分析单元210、表面近似分析单元212、算术编码单元214、几何重构单元216、RAHT单元218、LOD生成单元220、提升单元222、系数量化单元224和算术编码单元226。在图2中,灰色阴影单元是通常用于类别1数据的选项。在图2中,对角线交叉影线单元是通常用于类别3数据的选项。所有其他单元在类别1和类别3之间是公共的。
如图2的示例中所示,G-PCC编码器200可以接收位置集和属性集。位置可以包括点云中的点的坐标。属性可以包括关于点云中的点的信息,诸如与点云中的点相关联的色彩。
坐标变换单元202可以对点的坐标应用变换,以将坐标从初始域变换到变换域。本公开可以将经变换的坐标称为变换坐标。色彩变换单元204可以应用变换来将属性的色彩信息变换到不同的域。例如,色彩变换单元204可以将色彩信息从RGB色彩空间变换到YCbCr色彩空间。
此外,在图2的示例中,立体像素化单元206可以对变换坐标进行立体像素化。变换坐标的立体像素化可以包括量化和移除点云的一些点。换句话说,点云的多个点可以包含在单个“立体像素”内,该立体像素此后在某些方面可以被视为一个点。八叉树分析单元210还可以在存储器228中(例如,在存储器228的历史缓冲器中)存储表示被占用的立体像素(即,被点云的点占用的立体像素)的数据。
此外,算术编码单元214可以对表示八叉树的占用的数据进行熵编码。在一些示例中,算术编码单元214可以仅基于当前点云的数据对占用数据进行熵编码(这可以被称为当前点云的“帧内预测”)。在其他示例中,算术编码单元214可以参考例如缓冲在存储器228中的先前点云的先前八叉树对占用数据进行熵编码(这可以被称为相对于参考云的当前点云的“帧间预测”)。算术编码单元214可以使用局部或全局运动矢量来执行帧间预测,例如,如下文关于图3更详细地讨论的。
具体地,根据本公开的技术,算术编码单元214可以对表示用于界定地面点(或道路点)和物体点的阈值(例如,顶部阈值和底部阈值)的数据进行熵解码。顶部和底部阈值可以对应于一系列帧(点云)。算术编码单元214还可以对表示该系列帧的当前点云的全局运动矢量的数据进行熵解码。算术编码单元214可以使用全局运动矢量从缓冲在存储器228中的先前点云来形成经预测的云,并使用经预测的云中的节点的占用来确定上下文,以对当前云的顶部阈值以上的节点或底部阈值以下的节点中的任一者的占用数据进行熵解码。算术编码单元214可以对于地面/道路点使用不同的预测技术,诸如不同的全局运动矢量、局部运动矢量、帧内预测或另一可替代熵解码/预测技术。
附加地,在图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中的帧间预测编码的示例的概念图。在一些示例中,G-PCC编码器200可以解码/重现点云以形成参考云130。在其他示例中,G-PCC编码器200可以简单地存储先前点云的未经编码的历史版本。参考云130可以被存储在G-PCC编码器200的经解码帧缓冲器或历史缓冲器(即,存储器)中。G-PCC编码器200还可以至少部分地使用帧间预测来获得待编码的当前云140。例如,G-PCC编码器200可以使用本公开的技术来确定将使用全局运动(而非局部运动或帧内预测)来预测的当前云140的点集。
G-PCC编码器200可以将待帧间预测的当前云140的点的定位与参考云130的点的定位进行比较,并计算全局运动矢量132。全局运动矢量132可以表示使用相对于参考云130的全局运动来最准确地预测待帧间预测的当前云的点的定位的全局运动矢量。G-PCC编码器200然后可以通过将全局运动矢量132应用于参考云130来形成经预测的云134。也就是说,G-PCC编码器200可以通过将全局运动矢量132应用于参考云130在各个位置处的每个点,并将节点的占用设置为包括经预测的云134中由全局运动矢量132偏移的对应定位处的点,来构建经预测的云134。
G-PCC编码器200(并且具体地,算术编码单元214)然后可以使用经预测的云134的节点内的对应点来编码当前云140的节点的点,以确定用于基于上下文的熵编码(例如,上下文自适应二进制算术编解码(CABAC))的上下文。例如,算术编码单元214可以使用参考节点136的占用(其对应于由矢量144指示的当前节点142的定位)来编码当前云140的当前节点142的占用,以确定用于编码当前节点142的占用的值的上下文。
例如,如果参考节点136被占用(也就是说,包括点),那么算术编码单元214可以确定用于编码表示当前节点142的占用的值的第一上下文。第一上下文可以将表示当前节点142的占用的值的最可能符号指示为具有表示当前节点142被占用的值的高似然度(例如,“1”)。另一方面,如果参考节点136未被占用(也就是说,不包括任何点),算术编码单元214可以确定用于编码表示当前节点142的占用的值的第二上下文。第二上下文可以将表示当前节点142的占用的值的最可能符号指示为具有表示当前节点142未被占用的值的高似然度(例如,“0”)。算术编码单元142然后可以确定当前节点142是否被实际占用,确定表示当前节点142是否被实际占用的值,然后使用所确定的上下文(例如,第一上下文或第二上下文)对该值进行熵编码。算术编码单元214可以将经熵编码的值添加到比特流146,并前进到当前云140的下一个节点(或下一个云)。
图4是图示了图1的G-PCC解码器300的示例组件的框图,该示例组件可以被配置为执行本公开的技术。在图4的示例中,G-PCC解码器300包括几何算术解码单元302、存储器324、属性算术解码单元304、八叉树合成单元306、逆量化单元308、表面近似合成单元310、几何重构单元312、RAHT单元314、LOD生成单元316、逆提升单元318、逆变换坐标单元320和逆变换色彩单元322。在图4中,灰色阴影单元是通常用于类别1数据的选项。在图4中,对角线交叉影线单元是通常用于类别3数据的选项。所有其他单元在类别1和类别3之间是公共的。
G-PCC解码器300可以获得几何比特流和属性比特流。解码器300的几何算术解码单元302可以将算术解码(例如,上下文自适应二进制算术编解码(CABAC)或其它类型的算术解码)应用于几何比特流中的语法元素。类似地,属性算术解码单元304可以将算术解码应用于属性比特流中的语法元素。
几何算术解码单元302可以对表示当前点云的八叉树的占有的数据进行熵解码。在一些示例中,几何算术解码单元302可以仅基于当前点云的数据对占用数据进行熵解码(这可以被称为当前点云的“帧内预测”)。在其他示例中,几何算术解码单元302可以参考例如缓冲在存储器324中的先前点云的先前八叉树对占用数据进行熵解码(这可以被称为相对于参考云的当前点云的“帧间预测”)。几何算术解码单元302可以使用局部或全局运动矢量来执行帧间预测,例如,如下文关于图5更详细地讨论的。
具体地,根据本公开的技术,几何算术解码单元302可以对表示用于界定地面点(或道路点)和物体点的阈值(例如,顶部阈值和底部阈值)的数据进行熵解码。顶部和底部阈值可以对应于一系列帧(点云)。几何算术解码单元302还可以对表示该系列帧的当前点云的全局运动矢量的数据进行熵解码。几何算术解码单元302可以使用来自缓冲在存储器324中的先前点云的全局运动矢量来形成经预测的云,并使用经预测的云中的节点的占用来确定上下文,以对当前云的顶部阈值以上的节点或底部阈值以下的节点中的任一者的占用数据进行熵解码。几何算术解码单元302可以对于地面/道路点使用不同的预测技术,诸如不同的全局运动矢量、局部运动矢量、帧内预测或另一可替代熵解码/预测技术。
八叉树合成单元306可以基于从几何比特流解析并由几何算术解码单元302熵解码的语法元素的数据来合成八叉树。在几何比特流中使用表面近似的实例中,表面近似合成单元310可以基于从几何比特流解析的语法元素和基于八叉树来确定表面模型。
此外,几何重构单元312可以执行重构以确定点云中的点的坐标。逆变换坐标单元320可以对经重构的坐标应用逆变换,以将点云中的点的经重构的坐标(位置)从变换域转换回初始域。
附加地,在图4的实例中,逆量化单元308可以逆量化属性值。属性值可以基于从属性比特流获得的语法元素(例如,包括由属性算术解码单元304解码的语法元素)。
取决于属性值如何被编码,RAHT单元314可以执行RAHT编解码,以基于经逆量化的属性值来确定点云的点的色彩值。可替代地,LOD生成单元316和逆提升单元318可以使用基于细节层次的技术来确定点云的点的色彩值。
此外,在图4的示例中,逆变换色彩单元322可以将逆色彩变换应用于色彩值。逆色彩变换可以是由编码器200的色彩变换单元204应用的色彩变换的逆。例如,色彩变换单元204可以将色彩信息从RGB色彩空间变换到YCbCr色彩空间。相应地,逆色彩变换单元322可以将色彩信息从YCbCr色彩空间变换到RGB色彩空间。
图示了图2和图4的各种单元以帮助理解由编码器200和解码器300执行的操作。这些单元可以被实施为固定功能电路、可编程电路或其组合。固定功能电路是指提供特定功能并预设了能够被执行的操作的电路。可编程电路是指可以被编程以执行各种任务并且在能够被执行的操作中提供灵活功能的电路。例如,可编程电路可以运行软件或固件,其使得可编程电路按由软件或固件的指令所定义的方式来操作。固定功能电路可以运行软件指令(例如,以接收参数或输出参数),但是固定功能电路执行的操作的类型通常是不可变的。在一些示例中,一个或多个单元可以是不同的电路块(固定功能或可编程的),并且在一些示例中,一个或多个单元可以是集成电路。
图5是图示了G-PCC中的帧间预测解码的示例的概念图。根据本公开的技术,G-PCC解码器300可使用图5的全局运动矢量帧间预测技术来解码当前云160的点集,并使用局部运动矢量帧间预测或帧内预测来解码当前云160的第二点集。G-PCC解码器300可以接收并解码比特流166的数据,该数据表示是否要使用全局运动矢量帧间预测来解码一个或多个节点的点集。
G-PCC解码器300可以最初解码一个或多个先前的点云,并将先前经解码的点云存储在经解码的帧的缓冲器或历史缓冲器(即,G-PCC解码器300的存储器)中。G-PCC解码器300还可以解码包括全局运动矢量152的数据的运动信息以及识别先前经解码的点云中的参考云150。
G-PCC解码器300可以将全局运动矢量152应用于参考云150以生成经预测的云154。也就是说,G-PCC解码器300可以通过将全局运动矢量152应用于参考云150在相应定位处的每个点,并将经预测的云154的节点(例如,参考节点156)的占用设置为包括由全局运动矢量152偏移的对应定位处的点,来构建经预测的云154。
几何算术解码单元302然后可以使用经预测的云154的节点(例如,参考节点156)的占用来确定用于解码表示当前云160的当前节点162的占用的值的上下文。当前云162对应于如矢量164所指示的参考节点156。例如,如果参考节点156被占用(也就是说,包括点),那么几何算术解码单元302可以确定用于编码表示当前节点162的占用的值的第一上下文。第一上下文可以将表示当前节点162的占用的值的最可能符号指示为具有表示当前节点162被占用的值的高似然度(例如,“1”)。另一方面,如果参考节点156未被占用(也就是说,不包括任何点),几何算术解码单元302可以确定用于编码表示当前节点162的占用的值的第二上下文。第二上下文可以将表示当前节点162的占用的值的最可能符号指示为具有表示当前节点162未被占用的值的高似然度(例如,“0”)。几何算术解码单元302然后可以使用所确定的上下文来解码表示当前节点162的占用的比特流166的值。
图6是图示了在执行本公开的技术时可以使用的示例预测树的概念图。预测几何编解码在2018年10月中国澳门ISO/IEC JTC1/SC29 WG11文件N18096“Exploratory modelfor inter-prediction in G-PCC(G-PCC中的帧间预测探索模型)”中被引入,作为八叉树几何编解码的替代方案。在预测几何编解码中,节点被布置在树结构(其定义了预测结构)中,并且各种预测策略被用于预测树中每个节点相对于其预测值的坐标。
图6图示了示例预测树350,其是箭头指向预测方向的有向图。预测树350根据子节点的数量(例如,0到3)包括各种类型的节点。在图6的示例中,节点352是具有三个子节点的分支顶点的示例,节点354是具有两个子节点的分支节点的示例,节点356是具有一个子节点的分支节点的示例,节点358表示叶顶点的示例,节点360表示根顶点的示例。作为根顶点,节点360没有预测值。预测树350中的每个节点最多具有一个父节点。
可以基于当前节点的父节点(p0)、祖父节点(p1)和曾祖父节点(p2)为当前节点指定四种预测策略:1)无预测/零预测(0);2)偏移预测(P0);3)线性预测(2*P0-P1);平行四边形预测(2*P0+P1-p2)。
G-PCC编码器200可以采用任何算法来生成预测树。G-PCC编码器200可以根据应用/用例来确定要使用的算法,并且可以使用若干种策略。N18096中描述了一些策略。
对于每个节点,G-PCC编码器200可以以深度优先的方式从根节点开始编码比特流中的残差坐标值。预测几何编解码对于类别3(例如,LIDAR获取的)点云数据可能特别有用的,例如,对于低时延应用。
图7是图示了示例旋转LIDAR采集模型的概念图。图7图示了LIDAR380,其包括发射和接收相应激光382的多个传感器。G-PCC包括用于预测几何编解码的角度模式。在角度模式中,可以使用LIDAR传感器的特性来更有效地对预测树进行编解码。在角度模式中,位置的坐标被转换成半径(r)384、方位角(φ)386和激光索引(i)388的值。G-PCC编码器200和G-PCC解码器300可以在该域中执行预测。也就是说,G-PCC编码器200和G-PCC解码器300可以对r,φ,i域中的残差值进行编解码。
由于舍入误差,在r,φ,i域中进行编解码不是无损的。因此,G-PCC编码器200和G-PCC解码器300可以对对应于笛卡尔坐标的第二残差集进行编解码。下文重现了来自N18096中的预测几何编解码的角度模式的编码和解码策略的描述。
预测几何编解码的角度模式侧重于使用旋转Lidar模型获取的点云。在图7的示例中,LIDAR 380具有根据方位角φ围绕Z轴旋转的N个激光器382(例如,其中N可以等于16、32、64或某个其他值)。每个激光器382可以具有不同的仰角θ(i)i=1…N和高度假设激光i击中点M,该点具有根据坐标***定义的笛卡尔整数坐标(x,y,z)。
根据N18096,点M的位置可以用三个参数(r,φ,i)建模,这三个参数可以计算如下:
φ=atan2(y,x)
更准确地说,G-PCC编码器200和G-PCC解码器300可以使用(r,φ,i)的经量化的版本,表示为其中三个整数/>和i可以计算如下:
其中
●(qr,or)和(qφ,oφ)分别是控制和/>精度的量化参数。/>
●sign(t)是一个函数,如果t为正,则返回1,否则返回(-1)。
●|t|是t的绝对值。
为了避免由于使用浮点运算而造成的重构失配,G-PCC编码器200和G-PCC解码器300可以如下预计算和量化和tan(θ(i))i=1...N的值:
其中
和(qθ,oθ)分别是控制/>和/>精度的量化参数。
G-PCC编码器200和G-PCC解码器300可以如下获得经重构的笛卡尔坐标:
其中app_cos(.)和app_sin(.)分别是cos(.)和sin(.)的近似。计算可以使用固定点表示、查找表和/或线性插值。
由于各种原因,诸如量化、近似、模型不精确和/或模型参数不精确,可能不同于(x,y,z)。
设(rx,ry,rz)为重构残差,定义如下:
-
-
-
G-PCC编码器200可以如下进行:
●对模型参数和/>以及量化参数qr、/>qθ和qφ进行编码;
●将w19522中描述的几何预测方案应用于表示
○可以引入利用lidar的特性的新预测值。例如,lidar扫描仪绕z轴的旋转速度通常是恒定的。因此,G-PCC编码器200可以如下预测当前
其中
■(δφ(k))k=1...K是编码器可以从中进行选择的潜在速度集。G-PCC编码器200可以显式地将索引k编码到比特流中,或者G-PCC解码器300可以基于G-PCC编码器200和G-PCC解码器300两者都应用的确定性策略从上下文中推断索引k,并且
■n(j)是G-PCC编码器可以显式地编码到比特流中的跳过点的数量,或者G-PCC解码器300可以基于G-PCC编码器200和G-PCC解码器300两者都应用的确定性策略从上下文中推断n(j)。n(j)也称为“phi乘数”。n(j)可以与偏移预测值一起使用。
●以每个节点编码重构残差(rx,ry,rz)。
G-PCC解码器300可以如下进行:
●解码模型参数和/>以及量化参数qr、/>qθ和qφ。
●根据在w19522中描述的几何预测方案,解码与节点相关联的参数。
●如上所述计算经重构的坐标
●解码残差(rx,ry,rz)。
○有损压缩可以通过量化重构残差(rx,ry,rz)来支持。
●如下计算原始坐标(x,y,z):
○
○
○
如果G-PCC编码器200将量化应用于重构残差(rx,ry,rz)或丢弃点,则可以实现有损压缩。经量化的重构残差可以计算如下:
其中(qx,ox)、(qy,oy)和(qz,oz)分别是控制和/>的精度的量化参数。
网格量化可以用于进一步改善RD(率失真)性能结果。量化参数可以在序列/帧/切片/块级别改变,以实现区域自适应质量并用于率控制目的。
图8是图示了G-PCC InterEM软件的示例运动估计过程的流程图。G-PCC InterEM软件中涉及到两种运动,全局运动矩阵和局部节点运动矢量。全局运动参数被定义为旋转矩阵和平移矢量,其将被应用于预测(参考)帧中的所有点。八叉树的节点的局部节点运动矢量是可以仅应用于预测(参考)帧中节点内的点上的运动矢量。InterEM中的运动估计算法的细节描述如下。图8图示了运动估计算法的流程图。
给定输入预测(参考)帧和当前帧,G-PCC编码器200可以首先在全局尺度上估计全局运动(400)。G-PCC编码器200然后可以将估计的全局运动应用于预测(参考)帧(402)。在对预测(参考)帧应用全局运动之后,G-PCC编码器200可以以更精细的尺度(404)估计局部运动,例如八叉树中的节点级别。最后,G-PCC编码器200可以执行运动补偿(406)来编码估计的局部节点运动矢量和点。
图9是图示了用于估计全局运动的示例过程的流程图。在InterEM软件中,全局运动矩阵被定义为匹配预测帧(参考)和当前帧之间的特征点。图9图示了用于估计全局运动的流水线。全局运动估计算法可以被划分为三个步骤:寻找特征点(410),采样特征点对(412),以及使用最小均方(LMS)算法的运动估计(414)。
该算法将特征点定义为在预测帧和当前帧之间具有大的位置改变的那些点。对于当前帧中的每个点,G-PCC编码器200找到预测帧中最近的点,并在当前帧和预测帧之间建立点对。如果成对点之间的距离大于阈值,则G-PCC编码器200将成对点视为特征点。
在找到特征点之后,G-PCC编码器200对特征点执行采样,以降低问题的规模(例如,通过选择特征点的子集来降低运动估计的复杂度)。然后,G-PCC编码器200应用LMS算法,通过试图减小预测帧和当前帧中的相应特征点之间的误差来导出运动参数。
图10是图示了用于估计局部节点运动矢量的示例过程的流程图。G-PCC编码器200可以以递归方式估计预测树的节点的运动矢量。G-PCC编码器200可以基于率失真(RD)成本来评估用于选择最合适的运动矢量的成本函数。
在图10的示例中,G-PCC编码器200接收当前节点(420)。如果当前节点没有被划分为8个子节点,则G-PCC编码器200确定将引起当前节点和预测节点之间最低成本的运动矢量(422)。另一方面,如果当前节点被划分为8个子节点,则G-PCC编码器200将当前节点划分为8个子节点(424),为每个子节点找到运动(426),并添加所有返回的经估计的成本(428)。也就是说,G-PCC编码器200应用运动估计算法,并通过将每个子节点的经估计的成本值相加来获得划分条件下的总成本。G-PCC编码器200可以通过比较划分和不划分之间的成本来确定是划分还是不划分节点。如果进行划分,则G-PCC编码器200可以为每个子节点分派其相应的运动矢量(或者进一步将该节点划分为相应的子节点)。如果不进行划分,则G-PCC编码器200可以向该节点分派其运动矢量。G-PCC编码器200然后可以比较成本以确定是划分当前节点还是不划分当前节点(430)。
可能影响运动矢量估计性能的两个参数是块大小(BlockSize)和最小预测单元大小(MinPUSize)。BlockSize定义了应用运动矢量估计的节点大小的上界,而MinPUSize定义了下界。
转换为于2021年10月提交的美国专利申请第17/495,28号的于2020年10月12日提交的美国临时专利第63/090657号描述了一种基于迭代最近点方案的改善的全局运动估计技术。在该方案中,首先,通过最小化当前帧和参考帧之间的均方误差来估计初始平移矢量。当估计初始平移矢量时,可以考虑点是否是地面的标记。例如,如果点是地面点,那么该点被排除在估计之外。与恒等矩阵结合的初始平移矢量然后可以被馈送到迭代最近点方案或类似的方案中,以估计旋转矩阵和平移矢量。此外,在这种情况下,可以考虑点是否是地面,例如,通过将其从估计中排除。可替代地,可以基于点是否是地面的标记首先估计旋转矩阵。该标记可以由G-PCC编码器200导出,并信令通知给G-PCC解码器300,或者G-PCC编码器200和G-PCC解码器300可以导出该标记。该标记可以基于地面估计算法导出;这种算法可以基于点的高度、该点附近的点云的密度、该点与LIDAR原点/固定点的相对距离等。
在实际应用中,诸如汽车、地面区域和点云中的物体通常具有不同的运动。例如,地面点可能具有零运动或小运动,而物体可能具有较高的运动。在InterEM软件中估计全局运动的传统方法中,地面点和物体点都可以用来导出全局运动。这样做之后,估计的输出可能是不准确的。
于2020年10月12日提交的美国临时专利第63/090,657号介绍了对物体和地面进行分类的若干种标记方法。例如,在这些方法中,G-PCC编码器200可以导出标记并将该标记信令通知给G-PCC解码器300,或者G-PCC编码器200和G-PCC解码器300两者都可以导出该标记。该标记可以基于地面估计算法导出;这种算法可以基于点的高度、该点附近的点云的密度、该点与LIDAR原点/固定点的相对距离等。
本公开描述用于标记地面和物体以改善全局运动估计的性能的技术。具体地,G-PCC编码器200和G-PCC解码器300可以被配置为对点云中的地面/道路和物体数据进行分类,这可以改善全局运动估计的性能。
图11是图示了根据本公开的技术使用点的z值的两个阈值将云分类为地面(道路)和物体的示例的图。G-PCC编码器200和G-PCC解码器300可以被配置为使用云中的点的高度(或z值)来分类地面和道路点。在一个示例中,G-PCC编码器200和G-PCC解码器300可以配置有两个阈值的定义,例如,如图11所示的z_top 452和z_bottom 454。
如果点的高度(z值)小于z_bottom 454或者高于z_top 452,则G-PCC编码器200和G-PCC解码器300可以将该点分类为物体。否则,如果该点具有在z_bottom 454和z_top 452之间的高度(z值),则G-PCC编码器200和G-PCC解码器300可以将该点分类为地面(道路)。
在一些示例中,G-PCC编码器200和G-PCC解码器300可以使用值范围集来指定地面点,并将地面点分类为包括满足至少一个值范围的任何点。例如,对于(x,y,z)坐标,G-PCC编码器200和G-PCC解码器300可以配置有第i个值范围的规范为{(x_mini,x_maxi),(y_mini,y_maxi),(z_mini,z_maxi)}。G-PCC编码器200和G-PCC解码器300可以配置有N个这样的范围,使得i在[1,N]中。如果对于[1,N]中的i(可替代地,[0,N-1]中的i)的某个值满足((x_mini≤x≤x_maxi)&(y_mini≤y≤y_maxi)&(z_mini≤z≤z_maxi)),则G-PCC编码器200和G-PCC解码器300可以将(x,y,z)处的点分类为地面点。
G-PCC编码器200和G-PCC解码器300可以被配置为最小值低至负无穷大,最大值高至无穷大。在以上关于z_bottom 454和z_top 452之间的点的z值被分类为地面并且其他点被分类为物体的示例中,x_mini和y_mini可以被设置为负无穷大并且x_maxi和y_maxi可以被设置为无穷大,而z_mini可以被设置为z_bottom 454并且z_maxi可以被设置为z_top452。
当G-PCC编码器200被配置为在通过缩放因子编码之前量化点云时,G-PCC编码器200和G-PCC解码器300也可以使用相同的量化因子量化阈值。
附加地或可替代地,G-PCC编码器200和G-PCC解码器300可以被配置为在全局运动估计和预测中使用点的分类的输出(例如,分类为道路和地面点)。如上所述,G-PCC编码器200和G-PCC解码器300可以根据InterEM软件的技术或美国临时申请第63/090,657号中描述的方法来估计全局运动。
可替代地,在一些示例中,G-PCC编码器200和G-PCC解码器300可以导出两个全局运动集。G-PCC编码器200和G-PCC解码器300可以使用第一全局运动信息集来预测地面/道路点,并使用第二全局运动信息集来预测物体点。为了导出地面/道路的全局运动集,可以仅使用带有“地面/道路”标记的点。为了导出物体的全局运动集,仅可以使用具有标记“对象”的点。
作为又一示例,G-PCC编码器200和G-PCC解码器300可以仅导出一个全局运动集来预测物体点。在该示例中,G-PCC编码器200和G-PCC解码器300可以使用零运动(平移和旋转设置为等于零)来预测地面/道路点。
在除了上述各种技术之外还可以使用的一些示例中,G-PCC编码器200和G-PCC解码器300可以为不同级别的共享定义阈值。例如,G-PCC编码器200和G-PCC解码器300可以为不同的帧独立地确定阈值。G-PCC编码器200可以确定每个帧的阈值,并在比特流中编码表示阈值的数据,使得G-PCC解码器300可以从比特流的经编码的数据中确定阈值。
在一些示例中,G-PCC编码器200和G-PCC解码器300可以在图片组(GOP)级别定义阈值。在该示例中,GOP中的所有帧可以共享相同的阈值。G-PCC编码器200和G-PCC解码器300可以确定GOP开始处的共享阈值,并与对GOP的顺序第一帧的信息进行编码联合地来对数据进行编解码。
在一些示例中,G-PCC编码器200和G-PCC解码器300可以在序列级别定义阈值。也就是说,序列中的所有帧可以共享相同的阈值。在该示例中,阈值可以呈现在G-PCC编码器200的编码器配置数据(例如,编码器配置文件)中,并且G-PCC编码器200可以对比特流中表示阈值的数据进行编码,使得G-PCC解码器300可以从经编码的数据中确定阈值。
G-PCC编码器200可以使用各种技术来导出应用于两个或更多个帧集(例如,GOP、序列等)的阈值:
●在最简单的情况下,G-PCC编码器200可以选择该集合中顺序第一帧的阈值作为该集合中帧的阈值。顺序第一帧可以是点云的输出顺序或解码顺序中的顺序第一帧。
●在一些示例中,G-PCC编码器200可以根据为该集合中两个以上的帧导出的/适用于该集合中的两个以上的帧的加权平均来导出所使用的阈值。例如,如果该集中有10个帧,并且t1i,t2i指的是为第i帧导出的阈值,则对于n等于1和2,最终阈值可以如下导出:
○一个示例可以为集合中的所有帧统一设置权重。也可以指定权重,使得只有一些帧被用于计算最终阈值;例如,每第8帧可以被选择为具有非零权重,而所有其他帧可以被赋予0权重。权重也可以基于点云的时域ID来指定;属于较低时域ID的帧可以得到较大的权重,而属于较高时域ID的帧可以得到较小的权重。
●在一些可替代方案中,G-PCC编码器200可以被配置有对用于导出阈值的权重之和等于1的约束。
在一些示例中,G-PCC编码器200可以导出阈值并在比特流中编码数据,使得G-PCC解码器300可以从经编码的数据中确定阈值。在一些示例中,G-PCC编码器200和G-PCC解码器300两者都可以根据相同的技术来导出阈值。
在一些示例中,当G-PCC编码器200信令通知阈值时,G-PCC编码器200可以在序列参数集(SPS)、几何参数集(GPS)或几何数据单元标头(GDH)中信令通知阈值。在一个示例中,在G-PCC编码器200信令通知GPS/GDH级别中的阈值的情况下,G-PCC编码器200可以被配置为(例如)仅当角度模式被启用时才有条件地信令通知阈值。因此,当角度模式被启用时,G-PCC编码器200和G-PCC解码器300可以被配置为对GPS/GDH中的阈值的数据进行编解码,而当角度模式被禁用时,G-PCC编码器200和G-PCC解码器300可以被配置为避免对来自阈值的数据进行编解码。可替代地,G-PCC编码器200和G-PCC解码器300可以被配置为无条件地对阈值的数据进行编解码。
G-PCC编码器200和G-PCC解码器300可以将阈值的数据编解码为se(v)或ue(v)值。Se(v)编解码可以首先用左比特表示有符号整数0阶Exp-Golomb编解码的语法元素,而ue(v)编解码可以首先用左比特表示无符号整数0阶Exp-Golomb编解码的语法元素。在一个示例中,GPS可以如下表1中所示进行修改,其中[添加:“添加的文本”]表示对现有G-PCC标准的添加,并且G-PCC编码器200和G-PCC解码器300可以根据该标准被配置:
表1
/>
可替代地,如果阈值足够大,也可以执行固定长度编解码,包括指示要用于固定长度编解码的要编解码的比特数,随后使用s(v)编解码对阈值进行实际的固定长度编解码,例如根据下面的表2。S(v)编解码表示值的有符号固定长度编解码:
表2
如图11中所示,在对顶部、道路和底部区域进行分类的场景中,最多可以有两个阈值(z_bottom,z_top)。在典型场景中,帧的原点可能是LIDAR***的中心,这指示z_top和z_bottom两者都可能为负值,因为LIDAR***中心/帧原点可能远高于道路。其次,阈值可以总是以降序布置,即z_top>z_bottom。在这种情况下,G-PCC编码器200和G-PCC解码器300可以被配置为按其本来地对第一阈值进行编解码,并且对于第二阈值,G-PCC编码器200和G-PCC解码器300可以对第二阈值和第一阈值之间的差进行编解码。此外,由于该偏移总是负的,推断出偏移的符号是可能的,因此可以只有差值的幅度被编解码。此外,差值不能为零,因此可以对δ减1的幅度进行编解码。在某些场景中,当底部区域不是非常明显时,单个阈值可能就足够了。因此,G-PCC编码器200和G-PCC解码器300可以被配置为对指示第二阈值是否存在的标志进行编解码。GPS的语法修改(G-PCC编码器200和G-PCC解码器300可以根据其进行配置)可以如下面的表3所示:
表3
在另一示例中,阈值1可以总是被信令通知,并且阈值0可以基于标志的值有条件地被信令通知。
在另一示例中,两个阈值的中点可以被信令通知(m),并且中点与任一阈值的距离(w)可以被信令通知;然后可以将这两个阈值导出为m-w和m+w。可以使用固定长度或可变长度编解码来信令通知这些值。
在另一示例中,G-PCC编码器200和G-PCC解码器300可以在GPS级别中对这些阈值的数据进行编解码,有可能在GDH级别中覆盖/细化这些阈值。
在另一示例中,G-PCC编码器200和G-PCC解码器300可以将这些阈值与全局运动信息(旋转和平移因子)一起进行编解码。
在另一示例中,G-PCC编码器200和G-PCC解码器300可以在分离的参数集中对阈值进行编解码,诸如专用于运动相关参数的参数集。
在一些示例中,除了以上讨论的技术之外或者作为以上讨论的技术的替代,G-PCC编码器200和G-PCC解码器300可以被配置为通过对对应于类别的切片中的点进行编解码来隐式地将点分类,例如作为物体或地面点。例如,如果点云包括物体和地面(或道路)点分类,则G-PCC编码器200和G-PCC解码器300可以编解码包括全部被分类为物体点的点的第一子集的物体切片,以及包括全部被分类为地面或道路点的点的第二子集的地面或道路切片。以这种方式可以使用超过两个的分类。通常,G-PCC编码器200和G-PCC解码器300可以被配置为确定点的每个分类有一个切片,并且给定切片内的所有点将根据给定切片的对应分类被分类。在该示例中,显式分类算法不是必需的,这可以减少G-PCC编码器200和G-PCC解码器300要执行的计算。
更一般地,G-PCC编码器200和G-PCC解码器300可以被配置为单独地或者与本公开的各种其他技术任意组合地执行以下技术:
1.将点云的点分类(或分割)为M个组。G-PCC编码器200和G-PCC解码器300可以根据本公开的技术之一或其他方式来进行配置,以实现将点分类为M个组。
a.组的示例包括道路、分隔物、附近的汽车或交通工具、建筑物、标志、交通灯、行人等。注意,每个汽车/交通工具/建筑物等可以被分类为分离的组。
b.组可以包括表示物体的点,或者在空域上彼此邻接的点。
2.G-PCC编码器200和G-PCC解码器300可以指定N个切片组(N≤M)。G-PCC编码器200和G-PCC解码器300可以将M个组中的每一个与N个切片组中的一个相关联。G-PCC编码器200和G-PCC解码器300可以将属于切片组的点一起编解码。
a.例如,“地面”切片组可以包括属于“道路”和“分隔物”组的点,“静态”切片组可以包括属于“建筑物”和“标志”的点,“动态”切片组可以包括诸如汽车/交通工具或“行人”的组。
b.更一般地,G-PCC编码器200和G-PCC解码器300可以将共享一些属性的一个或多个组编解码到切片组中。例如,相对于LIDAR传感器/交通工具具有相似相对运动的组可以被编解码到一个切片组中。
c.在另一示例中,G-PCC编码器200和G-PCC解码器300可以被配置为确定具有某些属性的每一个点组属于分离的切片组。
d.组中的点可以与多于一个的切片组相关联(例如,这些点可以重复)。
3.G-PCC编码器200和G-PCC解码器300可以对属于一个或多个切片中的每个切片组的点进行编解码。
4.G-PCC编码器200和G-PCC解码器300可以基于索引值(例如,切片索引)或标记(切片类型或切片组类型)来识别属于切片组的切片。
a.每个切片组可以与可以在切片组的每个切片中被信令通知的切片类型/切片组类型相关联。
i.例如,[0,N-1]的索引/标记可以与每个切片组相关联,并且G-PCC编码器200和G-PCC解码器300可以对属于第i个切片组(0≤i≤N-1)的切片中的索引/标记“i”进行编解码。
ii.在另一示例中,点云可以具有两个切片组S1和S2,并且每个切片组可以被编解码为3个切片,这样总共有6个切片。S1的每个切片可以具有切片类型0,而S2的每个切片可以具有切片类型1。
b.在另一示例中,每个切片可以与切片索引的切片号相关联;属于特定切片组的切片可以用切片号/索引来标识。
i.例如,点云可以具有两个切片组S1和S2,并且每个切片组可以被编解码为3个切片,这样总共有6个切片。S1的切片可以具有切片号0、1和2,而S2的切片可以具有切片号3、4和5。
c.在一些示例中,切片标识符可以是切片组标识符/类型和切片号的组合。
i.例如,点云可以具有两个切片组S1和S2,并且每个切片组可以被编解码为3个切片,这样总共有6个切片。S1的切片可以具有标识符(0,0)、(0,1)、(0,2),其中每个元组的第一个数字是切片类型,第二个数字是切片组内的切片号。类似地,S2的切片可以具有标识符(1,0)、(1,1)、(1,2)。
d.切片标识符的切片类型、切片组类型、切片号可以在切片中被信令通知。
5.G-PCC编码器200和G-PCC解码器300可以参考用于预测的切片对数据进行编解码。切片可以参考另一切片进行预测。参考切片可以属于同一图片(帧内预测)或另一图片(帧间预测)。
a.G-PCC编码器200和G-PCC解码器300可以使用以下一个或多个来识别参考切片:
i.参考帧号或帧计数器
ii.参考切片标识符(切片类型/组类型、切片号、切片标识符等。)
b.在一些示例中,G-PCC编码器200和G-PCC解码器300可以根据切片只能参考属于相同切片类型/切片组类型的其他切片的限制来进行配置。在这种情况下,不需要信令通知参考切片类型/切片组类型。
c.在另一示例中,可以允许切片参考属于帧或切片组的所有点;在这种情况下,可以不信令通知参考切片号,因为帧/切片组的所有切片都可以被参考用于预测。
d.在另一示例中,可以信令通知两个或更多个切片标识符,以识别可能被参考用于预测的多个切片。
6.G-PCC编码器200和G-PCC解码器300可以关联每个点的第一运动参数集;运动参数可以被用于补偿点的位置;该经补偿的位置可以用作预测的参考。
a.在一个示例中,与点相关联的运动参数可以是与包含该点的切片相关联的运动参数。
b.在一个示例中,与切片相关联的运动参数可以是与包含该切片的切片组相关联的运动参数。
c.在一个示例中,与切片组相关联的运动参数可以是与包含该切片组的帧相关联的运动参数。
d.运动参数可以在诸如SPS、GPS等的参数集、切片标头或比特流的其他部分中被信令通知。
e.以上描述涉及运动参数,但是这可以应用于任何运动参数集(例如,旋转矩阵/参数、平移矢量/参数等。)
f.在一些示例中,用于对参考帧中的点应用运动补偿的运动参数可以在当前帧或者不是参考帧的帧中被信令通知。例如,如果帧1使用来自帧0的点进行预测,则可以用帧1来信令通知应用于帧0中的点的运动参数。
g.在一个示例中,参考帧的切片/切片组的参考索引可以在当前帧中被信令通知(在参数集或切片或其他语法结构中)。
i.在一个示例中,一个或多个元组(运动参数、参考索引)可以用当前帧(或切片)来信令通知,其中参考索引标识参考帧(切片/切片组/区域)中相应运动参数所应用的点。
h.在一个示例中,运动参数可以是应用于切片、切片组、区域或帧中所有点的全局运动参数集。
本公开的一个或多个技术也可以应用于属性,例如,除了应用于点之外或作为其替代。
在一些示例中,G-PCC编码器200和G-PCC解码器300可以被配置为指定点云中的一个或多个区域。G-PCC编码器200和G-PCC解码器300还可以将运动参数与每个区域相关联。G-PCC编码器200和G-PCC解码器300可以编解码比特流中表示与区域相关联的运动参数的数据。G-PCC编码器200和G-PCC解码器300可以使用运动参数来补偿点的位置。G-PCC编码器200和G-PCC解码器300可以使用经补偿的点作为参考/预测,用于编解码当前帧中点的位置。在一些情况下,使用区域(与切片相比)进行分类可以实现更好的压缩性能,因为G-PCC编码器200和G-PCC解码器300可以将属于不同区域的点一起编解码。
1.G-PCC编码器200和G-PCC解码器300可以编解码表示点云中的一个或多个区域的数据。
a.G-PCC编码器200和G-PCC解码器300可以对表示区域数量的值N以及表示指定N个区域中的每一个的参数的数据进行编解码。
i.在一些示例中,N可以被限制在某个值范围内(例如,N可以被限制为小于固定值,诸如10)。
b.G-PCC编码器200和G-PCC解码器300可以编解码比特流中每个区域的参数。在一些示例中,可以使用一个或多个以下参数来指定区域:
i.定义区域的x、y和z坐标的上界和下界(或用于编解码点云的任何其他坐标***)。
ii.在一些示例中,可以不指定上界或下界中的一个或多个;在这种情况下,G-PCC编码器200和G-PCC解码器300可以使用适合于坐标和坐标***的默认值作为推断值。
1.例如,在球面域(r,phi,laserId)中,如果没有信令通知phi的界,则可以推断上界和下界分别对应于360度和0度。
2.运动参数可以与每个区域相关联;可以对属于该区域的一个或多个点应用运动补偿,以获得经补偿的位置/点;经补偿的位置/点可以用作预测当前点云帧中的点的参考。
a.在本公开中所公开的一种或多种信令通知运动参数的方法可以应用于信令通知每个区域的运动参数。例如,G-PCC编码器200和G-PCC解码器300可以对参数集(例如,SPS、GPS)中的每一区域的运动参数或比特流的其它部分(例如,切片标头或分离的语法结构)进行编解码。
G-PCC编码器200和G-PCC解码器300可以被配置为以各种组合来执行本公开的各种技术中的任何一种。例如,可以按照区域来指定参考帧的运动参数,而可以为当前帧指定一个或多个切片组;切片组可以与区域相关联(显式地或隐式地),并且来自区域的参考点可以用于预测切片组的点。在另一示例中,区域中的点可以被编解码为切片或切片组。
图12是图示了根据本公开的技术使用直方图的阈值的示例推导的图460。图460表示点云数据的收集高度(z值)的示例直方图。G-PCC编码器200可以使用直方图来计算阈值z_bottom 462和z_top 464。
在示例实施方式中,G-PCC编码器200可以用hist_bin_size的大小来下缩放(downscale)云(子样点),其可以被定义如下:
hist_bin_size=int((max_box_t-min_box_t)/hist_scale)
其中,max_box_t和min_box_t是云中z值的范围,其将用于获得阈值。Max_box_t可以低于云中z的最大值,min_box_t可以高于云中z的最小值。
接下来,G-PCC编码器200可以如下导出z值在范围min_box_t到max_box_t中的点的直方图(这是示例Python代码,尽管也可以使用其他语言或硬件的其他实施方式):
n,bins=np.histogram(source_points_ori,hist_bin_size,(min_box_t,max_box_t))
在该示例中,np表示numpy库(numpy,org),source_points_ori是z值在min_box_t到max_box_t范围内的点集。
此后,G-PCC编码器200可以例如根据以下Python代码来计算直方图的标准差(std)466(尽管也可以使用其他语言或硬件的其他实施方式):
mids=0.5*(bins[1:]+bins[:-1])
probs=n/np.sum(n)
mean=np.sum(probs*mids)
std=np.sqrt(np.sum(probs*(mids-mean)**2))
最后,在该示例中,G-PCC编码器200可以如下导出z_bottom 462和z_top 464:G-PCC编码器200确定直方图中具有点的最大计数的仓(bin)索引(图12的示例中的top_idxn,仓470)。G-PCC编码器200通过从仓470(即,具有点的最大计数的仓)向右和向左移位与std相关的值(例如,图12的示例中的1*std466和1.5*std468)来确定阈值z_top(z_top 464)和z_bottom(z_bottom 462)。以下Python代码表示了一种可以用于导出阈值的示例技术:
top_idx_n=np.where(n==n.max())
z_top=min(bins[top_idx_n]+w_top*std,max_box_t)
z_bottom=max(bins[top_idx_n]-w_bottom*std,max_box_t)
其中w_top和w_bottom是预定义的正值。
在图12的示例中,对于收集的数据集的第100帧,(max_box_t,min_box_t)被设置为等于(-500,-4000)。在图12中,(w_top,w_bottom)被设置为等于(1,1.5)。
图13是图示了根据本公开的技术将点云470中的点标记为道路点474和物体点472的概念图。配备有通常位于点476的LIDAR***(图13中未示出)的汽车可以从周围环境收集数据以构建点云470。汽车内的G-PCC编码器,诸如G-PCC编码器200,可以确定用于将点云470的点分类为道路点或物体点的阈值。在确定阈值之后(例如,根据图12的技术),G-PCC编码器200可以将点云470的点标记为地面/道路点474或物体点472。
图13表示这些点集的可视化,其中物体点472是深色阴影,而道路点474(也称为地面点)是浅色阴影。从图13的示例中可以看出,浅色阴影道路点474通常分布在平坦的平面上(例如,地面或地面上的道路),而深色阴影物体点472通常定义物体,诸如栅栏、标志、建筑物或生成点云470时汽车的位置附近的其他物体。
图14是图示了根据本公开的技术编码点云的示例方法的流程图。关于图1和2的G-PCC编码器200来解释图14的方法。其他G-PCC编码设备可以被配置为执行该方法或类似的方法。
最初,G-PCC编码器200可以获得待编码的点云,例如图3的当前云140。点云可以包括点集,每个点具有几何位置(例如,用(x,y,z)坐标表示)和一个或多个属性。G-PCC编码器200然后可以例如使用点的几何位置的z值来确定点云中的点的高度值(500)。G-PCC编码器200然后可以确定顶部和底部阈值(502),并使用这些阈值对点云中的地面点和物体点进行分类(504)。例如,G-PCC编码器200可以使用上面关于图11和12讨论的技术来确定阈值。G-PCC编码器200然后可以将顶部阈值与底部阈值之间的点分类为地面点,而将其它点分类为物体点。G-PCC编码器200还可以对包括表示顶部和底部阈值的数据的数据结构(例如,SPS、GPS、GDH等)进行编码。数据结构可以符合上面表1-3中的任何一者的示例。
G-PCC编码器200然后可以计算物体点的全局运动矢量(506)。例如,如图3中所示,G-PCC编码器200可以为物体点集计算全局运动矢量132。全局运动矢量通常可以表示最好地产生经预测的云134的运动矢量(即,产生包括相对于参考云130最接近地匹配当前云140的点的经预测的云)。在获得全局运动矢量之后,G-PCC编码器200可以使用相对于参考云130的全局运动矢量132来生成经预测的云134(508)。
G-PCC编码器200然后可以使用经预测的云134确定用于通过所确定的物体点来编码当前云140的节点的占用的上下文(510)。G-PCC编码器200还可以使用上下文熵编码表示物体点对节点的占用的数据(512)。具体地,对于当前云140的给定节点,G-PCC编码器200可以确定对应的节点(在经预测的云134内具有相同的大小和位置)是否被至少一个物体点占用。如果对应节点被占用(即,包括至少一个物体点),则G-PCC编码器200可以将用于对指示当前节点是否被占用的值进行编码的上下文确定为具有指示当前云140的当前节点也被占用的高似然度。如果对应节点未被占用(即,不包括任何物体点),则G-PCC编码器200可以将用于编码指示当前节点是否被占用的值的上下文确定为具有指示当前云140的当前节点未被占用的高似然度。
G-PCC编码器200然后可以使用所确定的上下文对该值进行编码。如果当前节点未被占用,则G-PCC编码器200可以前进到新的节点。另一方面,如果当前节点被占用,则G-PCC编码器200可以将当前节点分割为八个子节点,并且以相同的方式对八个子节点中的每一个的占用数据进行编码。
G-PCC编码器200然后还可以分离地编码表示地面点对节点的占用的数据(514)。举例来说,G-PCC编码器200可以使用第二不同全局运动矢量、局部运动矢量和/或帧内预测来编码表示地面点对节点的占用的数据。
以这种方式,图14的方法表示编解码点云数据的方法的示例,包括确定点云中的点的高度值;根据高度值将点分类为地面点集或物体点集;根据分类对地面点和物体点进行编解码。
图15是图示了根据本公开的技术解码点云的示例方法的流程图。图15的方法被解释为由图1和图4的G-PCC解码器300执行。然而,在其他示例中,其他解码设备可以被配置为执行该方法或类似方法。
最初,G-PCC解码器300可以确定顶部和底部阈值(520)。例如,G-PCC解码器300可以解码包括表示顶部和底部阈值的数据的数据结构(例如,SPS、GPS、GDH等)。数据结构可以符合上面表1-3中的任何一者的示例。G-PCC解码器300还可以解码物体点的全局运动矢量(522),即,具有在顶部和底部阈值之间的范围之外的高度值的节点内的点。例如,G-PCC解码器300可以使用全局运动矢量来解码表示在顶部阈值以上和/或在底部阈值以下的节点的占用的数据,如下所述。
G-PCC解码器300可以使用相对于参考云150的全局运动矢量(例如,全局运动矢量152)来形成经预测的云(例如,图5的经预测的云154)(524)。G-PCC解码器300然后可以使用经预测的云154内的点来确定用于解码表示当前云160中节点的占用的数据的上下文(526)。具体地,对于当前云160的给定节点,G-PCC解码器300可以确定对应的节点(在经预测的云154内具有相同的大小和位置)是否被至少一个物体点占用。如果对应节点被占用(即,包括至少一个物体点),则G-PCC解码器300可以将用于对指示当前节点是否被占用的值进行解码的上下文确定为具有指示当前云160的当前节点也被占用的高似然度。如果对应节点未被占用(即,不包括任何物体点),则G-PCC解码器300可以将用于编码指示当前节点是否被占用的值的上下文确定为具有指示当前云160的当前节点未被占用的高似然度。
G-PCC解码器300然后可以使用上下文对表示节点的占用的数据进行熵解码(528)。如果经解码的数据指示当前节点未被占用,则G-PCC解码器300可以前进到新的节点。另一方面,如果当前节点被占用,则G-PCC解码器300可以将当前节点分割为八个子节点,并且以相同的方式对八个子节点中的每一个的占用数据进行解码。
G-PCC解码器300还可以例如使用不同的全局运动矢量、局部运动矢量和/或帧内预测来分离地解码表示地面点对节点的占用的数据(530)。
图16是图示了激光器包600(诸如包括一个或多个激光器的LIDAR传感器或其他***)扫描三维空间中的点的概念图。激光器包600可以对应于图7的LIDAR 380。数据源104(图1)可以包括激光器包600。
如图16中所示,可以使用激光器包600捕获点云,即传感器扫描3D空间中的点。然而,应当理解,一些点云不是由实际的LIDAR传感器生成的,而是可以被编码,就好像它们是由实际的LIDAR传感器生成的一样。在图16的示例中,激光器包600包括LIDAR头602,该LIDAR头602包括相对于原点以不同角度排列在垂直平面中的多个激光器604A-604E(统称为“激光器604”)。激光器包600可以围绕垂直轴608旋转。激光器包600可以使用返回的激光来确定点云的点的距离和位置。由激光器包600的激光器604发射的激光束606A-606E(统称为“激光束606”)可以由参数集来表征。由箭头610、612表示的距离分别表示激光器604B、604A的示例激光校正值。
某些激光器604通常可以识别物体点,而其他激光器604通常可以识别地面点。使用本公开的技术,这些点可以被分类为地面点或物体点,并相应地被编码或解码。
图17是图示了可以与本公开的一个或多个技术一起使用的示例测距***900的概念图。在图17的示例中,测距***900包括照明器902和传感器904。照明器902可以发射光906。在一些示例中,照明器902可以发射作为一个或多个激光束的光906。光906可以是一种或多种波长,诸如红外波长或可见光波长。在其他示例中,光906不是相干的激光。当光906遇到诸如物体908的物体时,光906产生返回光910。返回光910可以包括反向散射光和/或反射光。返回光910可以穿过透镜911,透镜911引导返回光910在传感器904上创建物体908的图像912。传感器904基于图像912生成信号914。图像912可以包括点集(例如,由图17的图像912中的小圆点表示)。
在一些示例中,照明器902和传感器904可以安装在旋转结构上,使得照明器902和传感器904捕获环境的360度视图。在其他示例中,测距***900可以包括使得照明器902和传感器904能够检测特定范围内(例如,高达360度)的物体的一个或多个光学组件(例如,镜子、准直器、衍射光栅等)。尽管图17的示例仅示出了单个照明器902和传感器904,但是测距***900可以包括多个照明器集和传感器集。
在一些示例中,照明器902生成结构化光图案。在这样的示例中,测距***900可以包括多个传感器904,在其上形成结构光图案的相应图像。测距***900可以使用结构光图案的图像之间的差异来确定到结构光图案从其反向散射的物体908的距离。当物体908相对靠近传感器904时(例如,0.2米至2米),基于结构光的测距***可以具有高水平的准确度(例如,亚毫米范围内的准确度)。这种高水平的准确度在面部识别应用中可能是有用的,诸如解锁移动设备(例如,移动电话、平板电脑等)和安全应用。
在一些示例中,测距***900是基于飞行时间(ToF)的***。在测距***900是基于ToF的***的一些示例中,照明器902生成光脉冲。换句话说,照明器902可以调制发射光906的振幅。在这样的示例中,传感器904从照明器902生成的光脉冲906中检测返回光910。测距***900然后可以基于光906被发射的时间和检测到的时间之间的延迟和空气中的已知光速来确定到光906从其反向散射的物体908的距离。在一些示例中,照明器902可以调制发射光1404的相位,而不是(或除此之外)调制发射光906的振幅。在这样的示例中,传感器904可以检测来自物体908的返回光910的相位,并且使用光速并且基于照明器902生成特定相位的光906的时间和传感器904检测到特定相位的返回光910的时间之间的时间差来确定到物体908上的点的距离。
在其他示例中,可以在不使用照明器902的情况下生成点云。例如,在一些示例中,测距***900的传感器904可以包括两个或更多个光学相机。在这样的示例中,测距***900可以使用光学相机来捕获包括物体908的环境的立体图像。测距***900(例如,点云生成器920)然后可以计算立体图像中定位之间的差异。测距***900然后可以使用差异来确定到立体图像中所示定位的距离。根据这些距离,点云生成器920可以生成点云。
传感器904也可以检测物体908的其他属性,诸如色彩和反射信息。在图17的示例中,点云生成器920可以基于传感器904生成的信号918生成点云。测距***900和/或点云生成器920可以形成数据源104(图1)的一部分。
图18是图示了其中可以使用本公开的一个或多个技术的示例基于交通工具的场景的概念图。在图18的示例中,交通工具1000包括激光器包1002,诸如LIDAR***。激光器包1002可以以与激光器包600(图16)相同的方式实施。虽然在图18的示例中未示出,但是交通工具1000还可以包括数据源,诸如数据源104(图1)以及G-PCC编码器,诸如G-PCC编码器200(图1)。在图18的示例中,激光器包1002发射激光束1004,该激光束1004反射行人1006或道路中的其他物体。交通工具1000的数据源可以基于激光器包1002生成的信号产生点云。交通工具1000的G-PCC编码器可以编码点云以生成比特流1008,诸如图2的几何比特流和图2的属性比特流。比特流1008可以包括比G-PCC编码器获得的未经编码的点云少得多的比特。交通工具1000的输出接口(例如,输出接口108(图1))可以向一个或多个其他设备发送比特流1008。因此,交通工具1000能够比未经编码的点云数据更快地将比特流1008发送到其他设备。附加地,比特流1008可能要求较少的数据存储容量。
本公开的技术可以进一步减少比特流1008中的比特数。例如,将物体点与地面点分离地编码(例如使用物体点的全局运动信息)可以减少比特流1008中与物体点相关联的比特数。
在图18的示例中,交通工具1000可以向另一交通工具1010发送比特流1008。交通工具1010可以包括G-PCC解码器,诸如G-PCC解码器300(图1)。交通工具1010的G-PCC解码器可以解码比特流1008以重构点云。交通工具1010可以将经重构的点云用于各种目的。例如,交通工具1010可以基于经重构的点云确定行人1006在交通工具1000前方的道路上,并因此开始减速,例如,甚至在交通工具1010的驾驶员意识到行人1006在道路上之前。因此,在一些示例中,交通工具1010可以执行自主导航操作,生成通知或警告,或者基于经重构的点云执行另一动作。
附加地或可替代地,交通工具1000可以向服务器***1012发送比特流1008。服务器***1012可以将比特流1008用于各种目的。例如,服务器***1012可以存储比特流1008,用于点云的后续重构。在该示例中,服务器***1012可以使用点云以及其他数据(例如,由交通工具1000生成的交通工具遥测数据)一起来训练自动驾驶***。在其他示例中,服务器***1012可以存储比特流1008,用于司法碰撞调查的后续重构(例如,如果交通工具1000与行人1006碰撞)。
图19是图示了其中可以使用本公开的一个或多个技术的示例扩展现实***的概念图。扩展现实(XR)是用于覆盖一系列技术的术语,包括增强现实(AR)、混合现实(MR)和虚拟现实(VR)。在图19的示例中,第一用户1100位于第一定位1102中。用户1100佩戴XR耳机1104。作为XR耳机1104的替代,用户1100可以使用移动设备(例如,移动电话、平板电脑等)。XR耳机1104包括深度检测传感器,诸如LIDAR***,其检测物体1106上的点在定位1102处的位置。XR耳机1104的数据源可以使用深度检测传感器生成的信号来生成定位1102处的物体1106的点云表示。XR耳机1104可以包括G-PCC编码器(例如,图1的G-PCC编码器200),其被配置为编码点云以生成比特流1108。
本公开的技术可以进一步减少比特流1108中的比特数。例如,将物体点与地面点分离地编码(例如使用物体点的公共全局运动信息)可以减少与第三激光角度相关联的比特流1108中的比特数。
XR耳机1104可以将比特流1108(例如,经由诸如互联网的网络)发送到用户1112在第二定位1114处佩戴的XR耳机1110。XR耳机1110可以解码比特流1108以重构点云。XR耳机1110可以使用点云来生成表示定位1102处的物体1106的XR可视化(例如,AR、MR、VR可视化)。因此,在一些示例中,诸如当XR耳机1110生成VR可视化时,在定位1114处的用户1112可以具有定位1102的3D沉浸式体验。在一些示例中,XR耳机1110可以基于经重构的点云来确定虚拟物体的位置。例如,XR耳机1110可以基于经重构的点云确定环境(例如,定位1102)包括平坦表面,然后确定虚拟物体(例如,卡通角色)将被定位在平坦表面上。XR耳机1110可以生成XR可视化,其中虚拟物体处于所确定的位置。例如,XR耳机1110可以显示坐在平坦表面上的卡通角色。
图20是图示了其中可以使用本公开的一个或多个技术的示例移动设备***的概念图。在图20的示例中,诸如移动电话或平板计算机的移动设备1200包括深度检测传感器,诸如LIDAR***,其检测移动设备1200的环境中的物体1202上的点的位置。移动设备1200的数据源可以使用深度检测传感器生成的信号来生成物体1202的点云表示。移动设备1200可以包括G-PCC编码器(例如,图1的G-PCC编码器200),其被配置为编码点云以生成比特流1204。在图20的示例中,移动设备1200可以向远程设备1206(诸如服务器***或其他移动设备)发送比特流。远程设备1206可以解码比特流1204以重构点云。远程设备1206可以将点云用于各种目的。例如,远程设备1206可以使用点云来生成移动设备1200的环境地图。例如,远程设备1206可以基于经重构的点云生成建筑物内部的地图。在另一示例中,远程设备1206可以基于点云生成影像(例如,计算机图形)。例如,远程设备1206可以使用点云的点作为多边形的顶点,并且使用点的色彩属性作为对多边形进行着色的基础。在一些示例中,远程设备1206可以使用点云来执行面部识别。
以下条款表示本公开中描述的技术的各种示例:
条款1:一种编解码点云数据的方法,该方法包括:确定点云中的点的高度值;根据高度值将点分类为地面点集或物体点集;根据分类对地面点和物体点进行编解码。
条款2:根据条款1的方法,其中对点进行分类包括:确定顶部阈值和底部阈值;将高度值在顶部阈值和底部阈值之间的点分类到地面点集中;以及将高度值在顶部阈值以上或在底部阈值以下的点分类到物体点集中。
条款3:根据条款1和2中任何一项的方法,其中顶部阈值包括z_maxi,而底部阈值包括第i个值范围{(x_mini,x_maxi),(y_mini,y_maxi),(z_mini,z_maxi)}的z_mini。
条款4:根据条款3的方法,其中第i个值范围包括N个值范围中的第i个值范围。
条款5:根据条款3和4中任何一项的方法,其中x_mini和y_mini具有负无穷大的值,而x_maxi和y_maxi具有无穷大的值。
条款6:根据条款2-5中任何一项的方法,其中编解码地面点和物体点还包括:通过缩放因子量化地面点和物体点;以及通过缩放因子量化顶部阈值和底部阈值。
条款7:根据条款2-6中任何一项的方法,其中编解码物体点包括:导出物体点的全局运动集;以及使用该全局运动集来预测物体点。
条款8:根据条款7的方法,其中导出全局运动集包括仅从物体点导出全局运动集。
条款9:根据条款7和8中任何一项的方法,其中全局运动集包括第一全局运动集,并且其中编解码地面点包括:导出地面点的第二全局运动集;以及使用该第二全局运动集来预测地面点。
条款10:根据条款9的方法,其中导出第二全局运动集包括仅从地面点导出该第二全局运动集。
条款11:根据条款7-10中任何一项的方法,其中导出全局运动集包括导出旋转矩阵和平移矢量,并且其中编解码物体点包括将旋转矩阵和平移矢量应用于参考帧的参考点。
条款12:根据条款11的方法,其中编解码物体点还包括:确定预测树的节点的局部节点运动矢量,该节点包括该参考帧的相应参考点集;以及将该局部节点运动矢量应用于节点。
条款13:根据条款2-12中任何一项的方法,其中确定顶部阈值和底部阈值包括为包括多个帧的图片组(GOP)确定顶部阈值和底部阈值,该多个帧包括该点云。
条款14:根据条款2-12中任何一项的方法,其中确定顶部阈值和底部阈值包括确定对应于包括点云的多个帧的序列参数集(SPS)的顶部阈值和底部阈值。
条款15:根据条款13和14中任何一项的方法,其中确定顶部阈值和底部阈值包括确定多个帧的顺序第一帧的顶部阈值和底部阈值。
条款16:根据条款13和14中任何一项的方法,其中确定顶部阈值和底部阈值包括将顶部阈值和底部阈值确定为多个帧的阈值的加权平均。
条款17:根据条款2-16中任何一项的方法,还包括对全局参数集(GPS)进行编解码,该全局参数集包括表示顶部阈值或底部阈值中的至少一个的数据。
条款18:根据条款17的方法,其中对GPS进行编解码包括对顶部阈值的值和指示数据是否将针对底部阈值进行编解码的标志进行编解码。
条款19:根据条款17和18中任何一项的方法,其中对顶部阈值或底部阈值中的至少一个的数据进行编解码包括:对表示顶部阈值的geom_globmotion_threshold0的值进行编解码;以及对表示底部阈值的geom_globmotion_threshold1的值进行编解码。
条款20:根据条款17-19中任何一项的方法,其中对表示顶部阈值或底部阈值中的至少一个的数据进行编解码包括使用相应无符号整数0阶Exp-Golomb值对表示顶部阈值或底部阈值中的至少一个的数据进行编解码。
条款21:根据条款17-19中任何一项的方法,其中对表示顶部阈值或底部阈值中的至少一个的数据进行编解码包括使用相应有符号整数0阶Exp-Golomb值对表示顶部阈值或底部阈值中的至少一个的数据进行编解码。
条款22:根据条款17-19中任何一项的方法,其中对表示顶部阈值或底部阈值中的至少一个的数据进行编解码包括使用相应有符号固定长度值对表示顶部阈值或底部阈值中的至少一个的数据进行编解码,该方法还包括对表示分派给顶部阈值或底部阈值中的至少一个的比特数的数据进行编解码。
条款23:根据条款17-22中任何一项的方法,其中对表示顶部阈值或底部阈值中至少一个的数据进行编解码包括:对表示顶部阈值和底部阈值之间的中点的数据进行编解码;以及对表示从中点到顶部阈值和底部阈值的距离的数据进行编解码。
条款24:根据条款17-23中任何一项的方法,还包括对几何数据单元标头(GDH)进行编解码,该几何数据单元标头包括对于顶部阈值或底部阈值中的至少一个覆盖或细化GPS的数据的数据。
条款25:根据条款2-24中任何一项的方法,其中确定顶部阈值和底部阈值包括:确定最大直方图高度值max_box_t;确定最小直方图高度值min_box_t;确定直方图缩放值hist_scale;根据int((max_box_t-min_box_t)/hist_scale)确定直方图仓大小值hist_bin_size;生成高度值在从min_box_t到max_box_t范围内的点的直方图;计算直方图的标准差;确定直方图中具有最大数量的高度值的仓;以及根据从具有最大数量的高度值的仓的偏移来确定顶部阈值和底部阈值,该偏移是根据标准差的相应倍数来定义的。
条款26:一种编解码点云数据的方法,该方法包括:确定与点云数据的帧的第一切片相关联的第一分类,该第一切片包括第一一个或多个点;确定第一一个或多个点对应于第一分类;根据第一一个或多个点对应于第一分类的确定,对第一一个或多个点进行编解码;确定与点云数据的帧的第二切片相关联的第二分类,该第二切片包括第二一个或多个点;确定第二一个或多个点对应于第二分类;以及根据第二一个或多个点对应于第二分类的确定来编解码第二一个或多个点。
条款27:一种方法,包括条款1-25中任何一项的方法和条款26的方法的组合。
条款28:根据条款26和27中任何一项的方法,还包括:确定与点云数据的帧的第三切片相关联的第三分类,该第三切片包括第三一个或多个点;确定第三一个或多个点对应于第三分类;以及根据第三一个或多个点对应于第三分类的确定来编解码第三一个或多个点。
条款29:根据条款26-28中任何一项的方法,其中第一分类和第二分类包括道路、分隔物、附近交通工具、建筑物、标志、交通灯或行人中的至少一种。
条款30:根据条款26-29中任何一项的方法,还包括对表示第一切片的切片组的数据进行编解码,其中对第一一个或多个点进行编解码包括对第一一个或多个点以及包括在对应于切片组的一个或多个其它切片中的其它点一起进行编解码。
条款31:根据条款30的方法,还包括:确定与点云数据的帧的第三切片相关联的第三分类,该第三切片是对应于该切片组的一个或多个其它切片之一;以及将第三切片的第三一个或多个点与第一一个或多个点一起进行编解码。
条款32:根据条款30和31中任何一项的方法,还包括对表示对应切片组的每个切片的索引值进行编解码。
条款33:根据条款26-32中任何一项的方法,其中编解码第一一个或多个点包括从第三切片的第三一个或多个点预测第一一个或多个点中的至少一个。
条款34:根据条款33的方法,其中帧包括第一帧,并且第三切片形成不同于第一帧的第二帧的一部分。
条款35:根据条款26-34中任何一项的方法,还包括确定第一一个或多个点和第二一个或多个点中的每一个的相应运动参数。
条款36:一种编解码点云数据的方法,该方法包括:确定点云数据的帧的一个或多个区域;并且对于每个区域:编解码表示该区域的相应运动参数的数据;以及使用该区域的相应运动参数对该区域的点进行编解码。
条款37:一种方法,包括条款1-35中任何一项的方法和条款36的方法的组合。
条款38:根据条款36和37中任何一项的方法,还包括对表示包括在帧中的多个区域的数据进行编解码。
条款39:根据条款36-38中任何一项的方法,还包括指定帧的每个区域的编解码参数。
条款40:根据条款39的方法,其中参数包括区域的x坐标、区域的y坐标或区域的z坐标中的一个或多个的上界或下界中的至少一个。
条款41:根据条款39和40中任何一项的方法,还包括确定区域的一个或多个坐标的默认值。
条款42:根据条款36-41中任何一项的方法,其中对区域的点进行编解码包括使用相应运动参数对区域的点应用运动补偿。
条款43:一种编解码点云数据的方法,该方法包括:确定点云中的点的高度值;根据高度值将点分类为地面点集或物体点集;根据分类对地面点和物体点进行编解码。
条款44:根据条款43的方法,其中对点进行分类包括:确定顶部阈值和底部阈值;将高度值在顶部阈值和底部阈值之间的点分类到地面点集中;以及将高度值在顶部阈值以上或在底部阈值以下的点分类到物体点集中。
条款45:根据条款43的方法,其中顶部阈值包括z_maxi,而底部阈值包括第i个值范围{(x_mini,x_maxi),(y_mini,y_maxi),(z_mini,z_maxi)}的z_mini。
条款46:根据条款45的方法,其中第i个值范围包括N个值范围中的第i个值范围。
条款47:根据条款45的方法,其中x_mini和y_mini具有负无穷大的值,而x_maxi和y_maxi具有无穷大的值。
条款48:根据条款44的方法,其中编解码地面点和物体点还包括:通过缩放因子量化地面点和物体点;以及通过缩放因子量化顶部阈值和底部阈值。
条款49:根据条款44的方法,其中编解码物体点包括:导出物体点的全局运动集;以及使用该全局运动集来预测物体点。
条款50:根据条款49的方法,其中导出全局运动集包括仅从物体点导出全局运动集。
条款51:根据条款50的方法,其中全局运动集包括第一全局运动集,并且其中编解码地面点包括:导出地面点的第二全局运动集;以及使用该第二全局运动集来预测地面点。
条款52:根据条款51的方法,其中导出第二全局运动集包括仅从地面点导出该第二全局运动集。
条款53:根据条款49的方法,其中导出全局运动集包括导出旋转矩阵和平移矢量,并且其中编解码物体点包括将旋转矩阵和平移矢量应用于参考帧的参考点。
条款54:根据条款53的方法,其中编解码物体点还包括:确定预测树的节点的局部节点运动矢量,该节点包括该参考帧的相应参考点集;以及将该局部节点运动矢量应用于节点。
条款55:根据条款44的方法,其中确定顶部阈值和底部阈值包括为包括多个帧的图片组(GOP)确定顶部阈值和底部阈值,该多个帧包括该点云。
条款56:根据条款44的方法,其中确定顶部阈值和底部阈值包括确定对应于包括点云的多个帧的序列参数集(SPS)的顶部阈值和底部阈值。
条款57:根据条款56的方法,其中确定顶部阈值和底部阈值包括确定多个帧的顺序第一帧的顶部阈值和底部阈值。
条款58:根据条款56的方法,其中确定顶部阈值和底部阈值包括将顶部阈值和底部阈值确定为多个帧的阈值的加权平均。
条款59:根据条款44的方法,还包括对全局参数集(GPS)进行编解码,该全局参数集包括表示顶部阈值或底部阈值中的至少一个的数据。
条款60:根据条款59的方法,其中对GPS进行编解码包括对顶部阈值的值和指示数据是否将针对底部阈值进行编解码的标志进行编解码。
条款61:根据条款59的方法,其中对顶部阈值或底部阈值中的至少一个的数据进行编解码包括:对表示顶部阈值的geom_globmotion_threshold0的值进行编解码;以及对表示底部阈值的geom_globmotion_threshold1的值进行编解码。
条款62:根据条款59的方法,其中对表示顶部阈值或底部阈值中的至少一个的数据进行编解码包括使用相应无符号整数0阶Exp-Golomb值对表示顶部阈值或底部阈值中的至少一个的数据进行编解码。
条款63:根据条款59的方法,其中对表示顶部阈值或底部阈值中的至少一个的数据进行编解码包括使用相应无符号整数0阶Exp-Golomb值对表示顶部阈值或底部阈值中的至少一个的数据进行编解码。
条款64:根据条款59的方法,其中对表示顶部阈值或底部阈值中的至少一个的数据进行编解码包括使用相应有符号固定长度值对表示顶部阈值或底部阈值中的至少一个的数据进行编解码,该方法还包括对表示分派给顶部阈值或底部阈值中的至少一个的比特数的数据进行编解码。
条款65:根据条款59的方法,其中对表示顶部阈值或底部阈值中至少一个的数据进行编解码包括:对表示顶部阈值和底部阈值之间的中点的数据进行编解码;以及对表示从中点到顶部阈值和底部阈值的距离的数据进行编解码。
条款66:根据条款59的方法,还包括对几何数据单元标头(GDH)进行编解码,该几何数据单元标头包括对于顶部阈值或底部阈值中的至少一个覆盖或细化GPS的数据的数据。
条款67:根据条款44的方法,其中确定顶部阈值和底部阈值包括:确定最大直方图高度值max_box_t;确定最小直方图高度值min_box_t;确定直方图缩放值hist_scale;根据int((max_box_t-min_box_t)/hist_scale)确定直方图仓大小值hist_bin_size;生成高度值在从min_box_t到max_box_t范围内的点的直方图;计算直方图的标准差;确定直方图中具有最大数量的高度值的仓;以及根据从具有最大数量的高度值的仓的偏移来确定顶部阈值和底部阈值,该偏移是根据标准差的相应倍数来定义的。
条款68:一种编解码点云数据的方法,该方法包括:确定与点云数据的帧的第一切片相关联的第一分类,该第一切片包括第一一个或多个点;确定第一一个或多个点对应于第一分类;根据第一一个或多个点对应于第一分类的确定,对第一一个或多个点进行编解码;确定与点云数据的帧的第二切片相关联的第二分类,该第二切片包括第二一个或多个点;确定第二一个或多个点对应于第二分类;以及根据第二一个或多个点对应于第二分类的确定来编解码第二一个或多个点。
条款69:根据条款68的方法,还包括:确定与点云数据的帧的第三切片相关联的第三分类,该第三切片包括第三一个或多个点;确定第三一个或多个点对应于第三分类;以及根据第三一个或多个点对应于第三分类的确定来编解码第三一个或多个点。
条款70:根据条款68的方法,其中第一分类和第二分类包括道路、分隔物、附近交通工具、建筑物、标志、交通灯或行人中的至少一种。
条款71:根据条款68的方法,还包括对表示第一切片的切片组的数据进行编解码,其中对第一一个或多个点进行编解码包括对第一一个或多个点以及包括在对应于切片组的一个或多个其它切片中的其它点一起进行编解码。
条款72:根据条款71的方法,还包括:确定与点云数据的帧的第三切片相关联的第三分类,该第三切片是对应于该切片组的一个或多个其它切片之一;以及将第三切片的第三一个或多个点与第一一个或多个点一起进行编解码。
条款73:根据条款71的方法,还包括对表示对应切片组的每个切片的索引值进行编解码。
条款74:根据条款68的方法,其中编解码第一一个或多个点包括从第三切片的第三一个或多个点预测第一一个或多个点中的至少一个。
条款75:根据条款74的方法,其中帧包括第一帧,并且第三切片形成不同于第一帧的第二帧的一部分。
条款76:根据条款68的方法,还包括确定第一一个或多个点和第二一个或多个点中的每一个的相应运动参数。
条款77:一种编解码点云数据的方法,该方法包括:确定点云数据的帧的一个或多个区域;并且对于每个区域:编解码表示该区域的相应运动参数的数据;以及使用该区域的相应运动参数对该区域的点进行编解码。
条款78:根据条款77的方法,还包括对表示包括在帧中的多个区域的数据进行编解码。
条款79:根据条款77的方法,还包括指定帧的每个区域的编解码参数。
条款80:根据条款79的方法,其中参数包括区域的x坐标、区域的y坐标或区域的z坐标中的一个或多个的上界或下界中的至少一个。
条款81:根据条款79的方法,还包括确定区域的一个或多个坐标的默认值。
条款82:根据条款77的方法,其中对区域的点进行编解码包括使用相应运动参数对区域的点应用运动补偿。
条款83:根据条款1-82中任何一项的方法,其中编解码包括解码。
条款84:根据条款1-83中任何一项的方法,其中编解码包括编码。
条款85:一种用于解码点云数据的设备,该设备包括用于执行条款1-84中任何一项的方法的一个或多个部件。
条款86:根据条款85的设备,还包括被配置为显示点云数据的显示器。
条款87:根据条款85-86中任何一项的设备,其中该设备包括相机、计算机、移动设备、广播接收器设备或机顶盒中的一个或多个。
条款88:根据条款85-87的设备,还包括被配置为存储点云数据的存储器。
条款89:一种其上存储有指令的计算机可读存储介质,当被运行时,该指令使得处理器执行条款1-84中任何一项的方法。
条款90:一种用于编解码点云数据的设备,该设备包括:用于确定点云中的点的高度值的部件;根据高度值将点分类为地面点集或物体点集;以及根据分类对地面点和物体点进行编解码。
条款91:根据条款90的设备,其中用于分类点的部件包括:用于确定顶部阈值和底部阈值的部件;用于将具有高度值在顶部阈值和底部阈值之间的点分类到地面点集中的部件;以及用于将具有高度值在顶部阈值以上或在底部阈值以下的点分类到物体点集中的部件。
条款92:一种用于编解码点云数据的设备,该设备包括:用于确定与点云数据的帧的第一切片相关联的第一分类部件,该第一切片包括第一一个或多个点;用于确定第一一个或多个点对应于第一分类部件;用于根据第一一个或多个点对应于第一分类的确定对第一一个或多个点进行编解码的部件;用于确定与点云数据的帧的第二切片相关联的第二分类的部件,该第二切片包括第二一个或多个点;用于确定第二一个或多个点对应于第二分类的部件;以及用于根据第二一个或多个点对应于第二分类的确定来编解码第二一个或多个点的部件。
条款93:一种用于编解码点云数据的设备,该设备包括:用于确定点云数据的帧的一个或多个区域的部件;用于对表示每个区域的相应运动参数的数据进行编解码的部件;以及用于使用包括点的区域的相应运动参数对每个区域的点进行编解码的部件。
条款94:一种编解码点云数据的方法,该方法包括:确定点云中的点的高度值;根据高度值将点分类为地面点集或物体点集;根据分类对地面点和物体点进行编解码。
条款95:根据条款94的方法,其中编解码物体点包括:导出物体点的全局运动信息集;以及使用该全局运动信息集来预测物体点。
条款96:根据条款95的方法,其中导出全局运动信息集包括仅对于物体点导出该全局运动信息集。
条款97:根据条款95的方法,其中该全局运动信息集包括第一全局运动信息集,并且其中编解码物体点包括:导出地面点的第二全局运动信息集;以及使用该第二全局运动信息集来预测地面点。
条款98:根据条款97的方法,其中导出第二全局运动信息集包括仅对于地面点导出第二全局运动信息集。
条款99:根据条款95的方法,其中导出全局运动信息集包括导出旋转矩阵和平移矢量,并且其中编解码物体点包括将旋转矩阵和平移矢量应用于参考帧的参考点。
条款100:根据条款99的方法,其中编解码物体点还包括:确定预测树的节点的局部节点运动矢量,该节点包括该参考帧的相应参考点集;以及将该局部节点运动矢量应用于节点。
条款101:根据条款94的方法,其中对点进行分类包括:确定顶部阈值和底部阈值;将高度值在顶部阈值和底部阈值之间的点分类到地面点集中;以及将高度值在顶部阈值以上或在底部阈值以下的点分类到物体点集中。
条款102:根据条款101的方法,其中顶部阈值包括z_maxi,而底部阈值包括第i个值范围{(x_mini,x_maxi),(y_mini,y_maxi),(z_mini,z_maxi)}的z_mini。
条款103:根据条款102的方法,其中第i个值范围包括N个值范围中的第i个值范围。
条款104:根据条款102的方法,其中x_mini和y_mini具有负无穷大的值,而x_maxi和y_maxi具有无穷大的值。
条款105:根据条款101的方法,其中编解码地面点和物体点还包括:通过缩放因子量化地面点和物体点;以及通过缩放因子量化顶部阈值和底部阈值。
条款106:根据条款101的方法,其中确定顶部阈值和底部阈值包括为包括多个帧的图片组(GOP)确定顶部阈值和底部阈值,该多个帧包括该点云。
条款107:根据条款101的方法,其中确定顶部阈值和底部阈值包括确定对应于包括点云的多个帧的序列参数集(SPS)的顶部阈值和底部阈值。
条款108:根据条款106的方法,其中确定顶部阈值和底部阈值包括确定多个帧的顺序第一帧的顶部阈值和底部阈值。
条款109:根据条款106的方法,其中确定顶部阈值和底部阈值包括将顶部阈值和底部阈值确定为多个帧的阈值的加权平均。
条款110:根据条款101的方法,还包括对数据结构进行编解码,该数据结构包括表示顶部阈值或底部阈值中的至少一个的数据。
条款111:根据条款110的方法,其中对数据结构进行编解码包括对序列参数集(SPS)、几何参数集(GPS)或几何数据单元标头(GDH)中的至少一个进行编解码。
条款112:根据条款110的方法,其中对数据结构进行编解码包括对顶部阈值的值和指示数据是否要对于底部阈值进行编解码的标志进行编解码。
条款113:根据条款110的方法,其中对顶部阈值或底部阈值中的至少一个的数据进行编解码包括:对表示顶部阈值的geom_globmotion_threshold0的值进行编解码;以及对表示底部阈值的geom_globmotion_threshold1的值进行编解码。
条款114:根据条款110的方法,其中对表示顶部阈值或底部阈值中的至少一个的数据进行编解码包括使用相应无符号整数0阶Exp-Golomb值对表示顶部阈值或底部阈值中的至少一个的数据进行编解码。
条款115:根据条款110的方法,其中对表示顶部阈值或底部阈值中的至少一个的数据进行编解码包括使用相应有符号整数0阶Exp-Golomb值对表示顶部阈值或底部阈值中的至少一个的数据进行编解码。
条款116:根据条款110的方法,其中对表示顶部阈值或底部阈值中的至少一个的数据进行编解码包括使用相应有符号固定长度值对表示顶部阈值或底部阈值中的至少一个的数据进行编解码,该方法还包括对表示分派给顶部阈值或底部阈值中的至少一个的比特数的数据进行编解码。
条款117:根据条款110的方法,其中对表示顶部阈值或底部阈值中至少一个的数据进行编解码包括:对表示顶部阈值和底部阈值之间的中点的数据进行编解码;以及对表示从中点到顶部阈值和底部阈值的距离的数据进行编解码。
条款118:根据条款110的方法,还包括对几何数据单元标头(GDH)进行编解码,该几何数据单元标头包括对于顶部阈值或底部阈值中的至少一个覆盖或细化GPS的数据的数据。
条款119:根据条款101的方法,其中确定顶部阈值和底部阈值包括:确定最大直方图高度值max_box_t;确定最小直方图高度值min_box_t;确定直方图缩放值hist_scale;根据int((max_box_t-min_box_t)/hist_scale)确定直方图仓大小值hist_bin_size;生成高度值在从min_box_t到max_box_t范围内的点的直方图;计算直方图的标准差;确定直方图中具有最大数量的高度值的仓;以及根据从具有最大数量的高度值的仓的偏移来确定顶部阈值和底部阈值,该偏移是根据标准差的相应倍数来定义的。
条款120:一种编解码点云数据的设备,该设备包括:存储器,其被配置为存储表示点云的点的数据;以及在电路中实施的一个或多个处理器,其被配置为:确定点云中的点的高度值;根据高度值将点分类为地面点集或物体点集;以及根据分类对地面点和物体点进行编解码。
条款121:根据条款120的设备,其中为了编解码物体点,一个或多个处理器被配置为:导出物体点的全局运动信息集;并且使用该全局运动信息集来预测物体点。
条款122:根据条款121的设备,其中一个或多个处理器被配置为仅对于物体点导出全局运动信息集。
条款123:根据条款121的设备,其中该全局运动信息集包括第一全局运动信息集,并且其中为了对地面点进行编解码,该一个或多个处理器被配置为:导出地面点的第二全局运动信息集;并且使用第二全局运动信息集来预测地面点。
条款124:根据条款123的设备,其中一个或多个处理器被配置为仅对于地面点导出第二全局运动信息集。
条款125:根据条款121的设备,其中为了导出全局运动信息集,一个或多个处理器被配置为导出旋转矩阵和平移矢量,并且其中为了编解码物体点,一个或多个处理器被配置为将旋转矩阵和平移矢量应用于参考帧的参考点。
条款126:根据条款125的设备,其中为了编解码物体点,一个或多个处理器还被配置为:确定预测树的节点的局部节点运动矢量,该节点包括参考帧的相应参考点集;以及将局部节点运动矢量应用于该节点。
条款127:根据条款120的设备,其中为了对点进行分类,一个或多个处理器被配置为:确定顶部阈值和底部阈值;将具有高度值在顶部阈值和底部阈值之间的点分类到地面点集中;并且将具有高度值在顶部阈值以上或在底部阈值以下的点分类到该物体点集中。
条款128:根据条款127的设备,其中顶部阈值包括z_maxi,而底部阈值包括第i个值范围{(x_mini,x_maxi),(y_mini,y_maxi),(z_mini,z_maxi)}的z_mini。
条款129:根据条款128的设备,其中第i个值范围包括N个值范围中的第i个值范围。
条款130:根据条款128的设备,其中x_mini和y_mini具有负无穷大的值,而x_maxi和y_maxi具有无穷大的值。
条款131:根据条款127的设备,其中为了对地面点和物体点进行分类,一个或多个处理器还被配置为:通过缩放因子量化地面点和物体点;以及通过缩放因子量化顶部阈值和底部阈值。
条款132:根据条款127的设备,其中一个或多个处理器还被配置为对包括表示顶部阈值或底部阈值中的至少一个的数据的数据结构进行编解码。
条款133:一种编解码点云数据的方法,该方法包括:确定点云中的点的高度值;根据高度值将点分类为地面点集或物体点集;根据分类对地面点和物体点进行编解码。
条款134:根据条款133的方法,其中编解码物体点包括:导出物体点的全局运动信息集;以及使用该全局运动信息集来预测物体点。
条款135:根据条款134的方法,其中导出全局运动信息集包括仅对于物体点导出该全局运动信息集。
条款136:根据条款134和135中任何一项的方法,其中全局运动信息集包括第一全局运动信息集,并且其中对地面点进行编解码包括:导出地面点的第二全局运动信息集;以及使用第二全局运动信息集来预测地面点。
条款137:根据条款136的方法,其中导出第二全局运动信息集包括仅对于地面点导出第二全局运动信息集。
条款138:根据条款134-137中任何一项的方法,其中导出全局运动信息集包括导出旋转矩阵和平移矢量,并且其中编解码物体点包括将旋转矩阵和平移矢量应用于参考帧的参考点。
条款139:根据条款138的方法,其中编解码物体点还包括:确定预测树的节点的局部节点运动矢量,该节点包括该参考帧的相应参考点集;以及将该局部节点运动矢量应用于节点。
条款140:根据条款139-139中任何一项的方法,其中对点进行分类包括:确定顶部阈值和底部阈值;将高度值在顶部阈值和底部阈值之间的点分类到地面点集中;以及将高度值在顶部阈值以上或在底部阈值以下的点分类到物体点集中。
条款141:根据条款140的方法,其中顶部阈值包括z_maxi,而底部阈值包括第i个值范围{(x_mini,x_maxi),(y_mini,y_maxi),(z_mini,z_maxi)}的z_mini。
条款142:根据条款141的方法,其中第i个值范围包括N个值范围中的第i个值范围。
条款143:根据条款141和142中任何一项的方法,其中x_mini和y_mini具有负无穷大的值,而x_maxi和y_maxi具有无穷大的值。
条款144:根据条款134-143中任何一项的方法,其中编解码地面点和物体点还包括:通过缩放因子量化地面点和物体点;以及通过缩放因子量化顶部阈值和底部阈值。
条款145:根据条款140-144中任何一项的方法,其中确定顶部阈值和底部阈值包括为包括多个帧的图片组(GOP)确定顶部阈值和底部阈值,该多个帧包括该点云。
条款146:根据条款140-145中任何一项的方法,其中确定顶部阈值和底部阈值包括确定对应于包括点云的多个帧的序列参数集(SPS)的顶部阈值和底部阈值。
条款147:根据条款140-144中任何一项的方法,其中确定顶部阈值和底部阈值包括确定多个帧的顺序第一帧的顶部阈值和底部阈值。
条款148:根据条款140-146中任何一项的方法,其中确定顶部阈值和底部阈值包括将顶部阈值和底部阈值确定为多个帧的阈值的加权平均。
条款149:根据条款140-148中任何一项的方法,还包括对数据结构进行编解码,该数据结构包括表示顶部阈值或底部阈值中的至少一个的数据。
条款150:根据条款149的方法,其中对数据结构进行编解码包括对序列参数集(SPS)、几何参数集(GPS)或几何数据单元标头(GDH)中的至少一个进行编解码。
条款151:根据条款149和150中任何一项的方法,其中对数据结构进行编解码包括对顶部阈值的值和指示数据是否要对于底部阈值进行编解码的标志进行编解码。
条款152:根据条款149-151中任何一项的方法,其中对顶部阈值或底部阈值中的至少一个的数据进行编解码包括:对表示顶部阈值的geom_globmotion_threshold0的值进行编解码;以及对表示底部阈值的geom_globmotion_threshold1的值进行编解码。
条款153:根据条款149-152中任何一项的方法,其中对表示顶部阈值或底部阈值中的至少一个的数据进行编解码包括使用相应无符号整数0阶Exp-Golomb值对表示顶部阈值或底部阈值中的至少一个的数据进行编解码。
条款154:根据条款149-152中任何一项的方法,其中对表示顶部阈值或底部阈值中的至少一个的数据进行编解码包括使用相应有符号整数0阶Exp-Golomb值对表示顶部阈值或底部阈值中的至少一个的数据进行编解码。
条款155:根据条款149-152中任何一项的方法,其中对表示顶部阈值或底部阈值中的至少一个的数据进行编解码包括使用相应有符号固定长度值对表示顶部阈值或底部阈值中的至少一个的数据进行编解码,该方法还包括对表示分派给顶部阈值或底部阈值中的至少一个的比特数的数据进行编解码。
条款156:根据条款149-155中任何一项的方法,其中对表示顶部阈值或底部阈值中至少一个的数据进行编解码包括:对表示顶部阈值和底部阈值之间的中点的数据进行编解码;以及对表示从中点到顶部阈值和底部阈值的距离的数据进行编解码。
条款157:根据条款149-156中任何一项的方法,还包括对几何数据单元标头(GDH)进行编解码,该几何数据单元标头包括对于顶部阈值或底部阈值中的至少一个覆盖或细化GPS的数据的数据。
条款158:根据条款133-157中任何一项的方法,其中确定顶部阈值和底部阈值包括:确定最大直方图高度值max_box_t;确定最小直方图高度值min_box_t;确定直方图缩放值hist_scale;根据int((max_box_t-min_box_t)/hist_scale)确定直方图仓大小值hist_bin_size;生成高度值在从min_box_t到max_box_t范围内的点的直方图;计算直方图的标准差;确定直方图中具有最大数量的高度值的仓;以及根据从具有最大数量的高度值的仓的偏移来确定顶部阈值和底部阈值,该偏移是根据标准差的相应倍数来定义的。
条款159:一种编解码点云数据的设备,该设备包括:存储器,其被配置为存储表示点云的点的数据;以及在电路中实施的一个或多个处理器,其被配置为:确定点云中的点的高度值;根据高度值将点分类为地面点集或物体点集;以及根据分类对地面点和物体点进行编解码。
条款160:根据条款159的设备,其中为了编解码物体点,一个或多个处理器被配置为:导出物体点的全局运动信息集;并且使用该全局运动信息集来预测物体点。
条款161:根据条款160的设备,其中一个或多个处理器被配置为仅对于物体点导出全局运动信息集。
条款162:根据条款160和161中任何一项的设备,其中该全局运动信息集包括第一全局运动信息集,并且其中为了对地面点进行编解码,该一个或多个处理器被配置为:导出地面点的第二全局运动信息集;并且使用第二全局运动信息集来预测地面点。
条款163:根据条款162的设备,其中一个或多个处理器被配置为仅对于地面点导出第二全局运动信息集。
条款164:根据条款163-163中任何一项的设备,其中为了导出全局运动信息集,一个或多个处理器被配置为导出旋转矩阵和平移矢量,并且其中为了编解码物体点,一个或多个处理器被配置为将旋转矩阵和平移矢量应用于参考帧的参考点。
条款165:根据条款164的设备,其中为了编解码物体点,一个或多个处理器还被配置为:确定预测树的节点的局部节点运动矢量,该节点包括参考帧的相应参考点集;以及将局部节点运动矢量应用于该节点。
条款166:根据条款159-165中任何一项的设备,其中为了对点进行分类,一个或多个处理器被配置为:确定顶部阈值和底部阈值;将具有高度值在顶部阈值和底部阈值之间的点分类到地面点集中;并且将具有高度值在顶部阈值以上或在底部阈值以下的点分类到该物体点集中。
条款167:根据条款166的设备,其中顶部阈值包括z_maxi,而底部阈值包括第i个值范围{(x_mini,x_maxi),(y_mini,y_maxi),(z_mini,z_maxi)}的z_mini。
条款168:根据条款167的设备,其中第i个值范围包括N个值范围中的第i个值范围。
条款169:根据条款167和168中任何一项的设备,其中x_mini和y_mini具有负无穷大的值,而x_maxi和y_maxi具有无穷大的值。
条款170:根据条款169-169中任何一项的设备,其中为了对地面点和物体点进行分类,一个或多个处理器还被配置为:通过缩放因子量化地面点和物体点;以及通过缩放因子量化顶部阈值和底部阈值。
条款171:根据条款166-170中任何一项的设备,其中一个或多个处理器还被配置为对包括表示顶部阈值或底部阈值中的至少一个的数据的数据结构进行编解码。
应当认识到,取决于示例,本文描述的任何技术的某些动作或事件可以以不同的顺序被执行,可以被添加、合并或完全省略(例如,不是所有所描述的动作或事件对于技术的实践都是必要的)。此外,在某些示例中,动作或事件可以被同时地执行(例如通过多线程处理、中断处理或多处理器)而不是被顺序地执行。
在一个或多个示例中,所描述的功能可以在硬件、软件、固件或其任何组合中实施。如果在软件中实施,这些功能可以作为一个或多个指令或代码存储或发送到计算机可读介质上并由基于硬件的处理单元运行。计算机可读介质可以包括与诸如数据存储介质的有形介质对应的计算机可读存储介质,或包括例如根据通信协议促进将计算机程序从一个地方转移到另一个地方的任何介质的通信介质。以这种方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质,或者(2)诸如信号或载波的通信介质。数据存储介质可以是可由一个或多个计算机或一个或多个处理器访问以检索指令、代码和/或数据结构以用于实施本公开中描述的技术的任何可用介质。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,这种计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁性存储设备、闪存或可以用于以指令或数据结构形式存储所需程序代码并且可以由计算机访问的任何其他介质。此外,任何连接都被恰当地称为计算机可读介质。例如,如果指令是使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或无线技术(诸如,红外线、无线电以及微波)从网站、服务器或其他远程源发送的,则同轴电缆、光纤电缆、双绞线、DSL或无线技术(诸如,红外线、无线电以及微波)都被包括在介质的定义中。然而,应当理解的是,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他暂时性介质,而是指向非暂时性有形存储介质。如本文所使用的,碟和盘包括压缩盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘和蓝光盘,其中碟通常磁性地再现数据,而盘用激光光学地再现数据。上述的组合也应该被包括在计算机可读介质的范围内。
指令可以由一个或多个处理器运行,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他等效集成的或分立逻辑电路。因此,如本文中所使用的术语“处理器”和“处理电路”可以指前述结构中任何一种或适于实施本文中所描述的技术的任何其他结构。此外,在一些方面中,本文描述的功能可以在被配置为用于编码和解码的专用硬件和/或软件模块中提供,或者被结合在组合编解码器中。而且,这些技术可以完全在一个或多个电路或逻辑元件中实施。
本公开的技术可以在很多种设备或装置中实施,包括无线手机、集成电路(IC)或IC组(例如,芯片组)。在本公开中描述了各种组件、模块或单元,以强调被配置为执行所公开的技术的设备的各功能方面,但是不一定要求通过不同的硬件单元来实现。相反,如上所述,各种单元可以被组合在编解码器硬件单元中,或者由包括如上所述的一个或多个处理器的互操作硬件单元的集结合合适的软件和/或固件来提供。
已经描述了各种示例。这些和其他示例都在所附权利要求的范围内。
Claims (47)
1.一种编解码点云数据的方法,所述方法包括:
确定点云中的点的高度值;
根据所述高度值将所述点分类为地面点集或物体点集;以及
根据所述分类对所述地面点和所述物体点进行编解码。
2.根据权利要求1所述的方法,其中对所述物体点进行编解码包括:
导出所述物体点的全局运动信息集;以及
使用所述全局运动信息集来预测所述物体点。
3.根据权利要求2所述的方法,其中导出所述全局运动信息集包括仅对于所述物体点导出所述全局运动信息集。
4.根据权利要求2所述的方法,其中所述全局运动信息集包括第一全局运动信息,并且其中对所述地面点进行编解码包括:
导出所述地面点的第二全局运动信息集;以及
使用所述第二全局运动信息集来预测所述地面点。
5.根据权利要求4所述的方法,其中导出所述第二全局运动信息集包括仅对于所述地面点导出所述第二全局运动信息集。
6.根据权利要求2所述的方法,其中导出所述全局运动信息集包括导出旋转矩阵和平移矢量,并且其中编解码所述物体点包括将所述旋转矩阵和所述平移矢量应用于参考帧的参考点。
7.根据权利要求6所述的方法,其中对所述物体点进行编解码还包括:
确定预测树的节点的局部节点运动矢量,所述节点包括所述参考帧的相应参考点集;以及
将所述局部节点运动矢量应用于所述节点。
8.根据权利要求1所述的方法,其中对所述点进行分类包括:
确定顶部阈值和底部阈值;
将具有高度值在所述顶部阈值和所述底部阈值之间的点分类到所述地面点集中;以及
将具有高度值在所述顶部阈值以上或在所述底部阈值以下的点分类到所述物体点集中。
9.根据权利要求8所述的方法,其中所述顶部阈值包括z_maxi,所述底部阈值包括第i个值范围{(x_mini,x_maxi),(y_mini,y_maxi),(z_mini,z_maxi)}的z_mini。
10.根据权利要求9所述的方法,其中所述第i个值范围包括N个值范围中的第i个值范围。
11.根据权利要求9所述的方法,其中x_mini和y_mini具有负无穷大的值,x_maxi和y_maxi具有无穷大的值。
12.根据权利要求8所述的方法,其中对所述地面点和所述物体点进行编解码还包括:
通过缩放因子量化所述地面点和所述物体点;以及
通过所述缩放因子量化所述顶部阈值和所述底部阈值。
13.根据权利要求8所述的方法,其中确定所述顶部阈值和所述底部阈值包括为包括多个帧的图片组(GOP)确定所述顶部阈值和所述底部阈值,所述多个帧包括所述点云。
14.根据权利要求8所述的方法,其中确定所述顶部阈值和所述底部阈值包括为对应于包括所述点云的多个帧的序列参数集(SPS)确定所述顶部阈值和所述底部阈值。
15.根据权利要求13所述的方法,其中确定所述顶部阈值和所述底部阈值包括为所述多个帧的顺序第一帧确定所述顶部阈值和所述底部阈值。
16.根据权利要求13所述的方法,其中确定所述顶部阈值和所述底部阈值包括将所述顶部阈值和所述底部阈值确定为所述多个帧的阈值的加权平均。
17.根据权利要求8所述的方法,还包括对数据结构进行编解码,所述数据结构包括表示所述顶部阈值或所述底部阈值中的至少一个的数据。
18.根据权利要求17所述的方法,其中对所述数据结构进行编解码包括对序列参数集(SPS)、几何参数集(GPS)或几何数据单元标头(GDH)中的至少一个进行编解码。
19.根据权利要求17所述的方法,其中对所述数据结构进行编解码包括对所述顶部阈值的值和指示数据是否要对于所述底部阈值进行编解码的标志进行编解码。
20.根据权利要求17所述的方法,其中对所述顶部阈值或所述底部阈值中的至少一个的所述数据进行编解码包括:
对表示所述顶部阈值的geom_globmotion_threshold0的值进行编解码;以及
对表示所述底部阈值的geom_globmotion_threshold1的值进行编解码。
21.根据权利要求17所述的方法,其中对表示所述顶部阈值或所述底部阈值中的至少一个的所述数据进行编解码包括使用相应无符号整数0阶Exp-Golomb值对表示所述顶部阈值或所述底部阈值中的至少一个的所述数据进行编解码。
22.根据权利要求17所述的方法,其中对表示所述顶部阈值或所述底部阈值中的至少一个的所述数据进行编解码包括使用相应有符号整数0阶Exp-Golomb值对表示所述顶部阈值或所述底部阈值中的至少一个的所述数据进行编解码。
23.根据权利要求17所述的方法,其中对表示所述顶部阈值或所述底部阈值中的至少一个的所述数据进行编解码包括使用相应有符号固定长度值对表示所述顶部阈值或所述底部阈值中的至少一个的所述数据进行编解码,所述方法还包括对表示分派给所述顶部阈值或所述底部阈值中的至少一个的比特数的数据进行编解码。
24.根据权利要求17所述的方法,其中对表示所述顶部阈值或所述底部阈值中的至少一个的所述数据进行编解码包括:
对表示所述顶部阈值和所述底部阈值之间的中点的数据进行编解码;以及
对表示从所述中点到所述顶部阈值和所述底部阈值的距离的数据进行编解码。
25.根据权利要求17所述的方法,还包括对几何数据单元标头(GDH)进行编解码,所述几何数据单元标头包括数据,所述数据覆盖或细化用于所述顶部阈值或所述底部阈值中的至少一个的数据结构的数据。
26.根据权利要求8所述的方法,其中确定所述顶部阈值和底部阈值包括:
确定最大直方图高度值max_box_t;
确定最小直方图高度值min_box_t;
确定直方图缩放值hist_scale;
根据int((max_box_t-min_box_t)/hist_scale)确定直方图仓大小值hist_bin_size;
生成高度值在从min_box_t到max_box_t范围内的点的直方图;
计算所述直方图的标准差;
确定具有所述直方图中的最大数量的高度值的仓;以及
根据从具有所述最大数量的高度值的所述仓的偏移来确定所述顶部阈值和所述底部阈值,所述偏移是根据所述标准差的相应倍数来定义的。
27.根据权利要求1所述的方法,其中对所述地面点和所述物体点进行编解码包括对所述地面点和所述物体点进行编码。
28.根据权利要求27所述的方法,还包括生成包括表示所述地面点和所述物体点的经编码的数据的比特流。
29.根据权利要求1所述的方法,其中对所述地面点和所述物体点进行编解码包括对所述地面点和所述物体点进行解码。
30.一种用于编解码点云数据的设备,所述设备包括:
存储器,所述存储器被配置为存储表示点云的点的数据;以及
在电路中实施的一个或多个处理器,所述一个或多个处理器被配置为:
确定点云中的点的高度值;
根据所述高度值将所述点分类为地面点集或物体点集;以及
根据所述分类对所述地面点和所述物体点进行编解码。
31.根据权利要求30所述的设备,其中为了对所述物体点进行编解码,所述一个或多个处理器被配置为:
导出所述物体点的全局运动信息集;以及
使用所述全局运动信息集来预测所述物体点。
32.根据权利要求31所述的设备,其中所述一个或多个处理器被配置为仅对于所述物体点导出所述全局运动信息集。
33.根据权利要求31所述的设备,其中所述全局运动信息集包括第一全局运动信息集,并且其中为了对所述地面点进行编解码,所述一个或多个处理器被配置为:
导出所述地面点的第二全局运动信息集;以及
使用所述第二全局运动信息集来预测所述地面点。
34.根据权利要求33所述的设备,其中所述一个或多个处理器被配置为仅对于所述地面点导出所述第二全局运动信息集。
35.根据权利要求31所述的设备,其中为了导出所述全局运动信息集,所述一个或多个处理器被配置为导出旋转矩阵和平移矢量,并且其中为了编解码所述物体点,所述一个或多个处理器被配置成将所述旋转矩阵和所述平移矢量应用于参考帧的参考点。
36.根据权利要求35所述的设备,其中为了对所述物体点进行编解码,所述一个或多个处理器还被配置为:
确定预测树的节点的局部节点运动矢量,所述节点包括所述参考帧的相应参考点集;以及
将所述局部节点运动矢量应用于所述节点。
37.根据权利要求30所述的设备,其中为了对所述点进行分类,所述一个或多个处理器被配置为:
确定顶部阈值和底部阈值;
将具有高度值在所述顶部阈值和所述底部阈值之间的点分类到所述地面点集中;以及
将具有高度值在所述顶部阈值以上或在所述底部阈值以下的点分类到所述物体点集中。
38.根据权利要求37所述的设备,其中所述顶部阈值包括z_maxi,所述底部阈值包括第i个值范围{(x_mini,x_maxi),(y_mini,y_maxi),(z_mini,z_maxi)}的z_mini。
39.根据权利要求38所述的设备,其中所述第i个值范围包括N个值范围中的第i个值范围。
40.根据权利要求38所述的设备,其中x_mini和y_mini具有负无穷大的值,而x_maxi和y_maxi具有无穷大的值。
41.根据权利要求37所述的设备,其中对于所述地面点和所述物体点,所述一个或多个处理器还被配置为:
通过缩放因子量化所述地面点和所述物体点;以及
通过所述缩放因子量化所述顶部阈值和所述底部阈值。
42.根据权利要求37所述的设备,其中所述一个或多个处理器还被配置为对包括表示所述顶部阈值或所述底部阈值中的至少一个的数据的数据结构进行编解码。
43.根据权利要求30所述的设备,其中为了对所述地面点和所述物体点进行编解码,所述一个或多个处理器被配置为对所述地面点和所述物体点进行编码。
44.根据权利要求43所述的设备,其中所述一个或多个处理器还被配置为生成包括表示所述地面点和所述物体点的经编码的数据的比特流。
45.根据权利要求30所述的设备,其中为了对所述地面点和所述物体点进行编解码,所述一个或多个处理器被配置为对所述地面点和所述物体点进行解码。
46.一种在其上存储有指令的计算机可读存储介质,所述指令在被运行时使得处理器:
确定点云中的点的高度值;
根据所述高度值将所述点分类为地面点集或物体点集;以及
根据所述分类对所述地面点和所述物体点进行编解码。
47.一种用于编解码点云数据的设备,所述设备包括:
用于确定点云中的点的高度值的部件;
用于根据所述高度值将所述点分类为地面点集或物体点集的部件;以及
用于根据所述分类对所述地面点和所述物体点进行编解码的部件。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/131,637 | 2020-12-29 | ||
US63/171,945 | 2021-04-07 | ||
US17/558,362 US11949909B2 (en) | 2020-12-29 | 2021-12-21 | Global motion estimation using road and ground object labels for geometry-based point cloud compression |
US17/558,362 | 2021-12-21 | ||
PCT/US2021/064869 WO2022146827A2 (en) | 2020-12-29 | 2021-12-22 | Global motion estimation using road and ground object labels for geometry-based point cloud compression |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116648914A true CN116648914A (zh) | 2023-08-25 |
Family
ID=87615709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180088307.XA Pending CN116648914A (zh) | 2020-12-29 | 2021-12-22 | 用于基于几何的点云压缩的使用道路和地面物体标记的全局运动估计 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116648914A (zh) |
-
2021
- 2021-12-22 CN CN202180088307.XA patent/CN116648914A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115315725A (zh) | 基于几何的点云压缩中的角模式和方位角模式的激光角度译码 | |
CN115298698A (zh) | 基于几何的点云压缩中用于角度模式和方位角模式的激光器角度的译码 | |
US20230105931A1 (en) | Inter prediction coding with radius interpolation for predictive geometry-based point cloud compression | |
EP4272166A1 (en) | Hybrid-tree coding for inter and intra prediction for geometry coding | |
CN115315724A (zh) | 基于几何的点云压缩的角模式简化 | |
AU2021411954A1 (en) | Inter prediction coding for geometry point cloud compression | |
US20220215596A1 (en) | Model-based prediction for geometry point cloud compression | |
WO2023059987A1 (en) | Inter prediction coding with radius interpolation for predictive geometry-based point cloud compression | |
KR20230027033A (ko) | 지오메트리 기반 포인트 클라우드 압축 (g-pcc) 을 위한 소팅된 레이저 각도들 | |
US11949909B2 (en) | Global motion estimation using road and ground object labels for geometry-based point cloud compression | |
CN116648914A (zh) | 用于基于几何的点云压缩的使用道路和地面物体标记的全局运动估计 | |
US20230177739A1 (en) | Local adaptive inter prediction for g-pcc | |
US20220210480A1 (en) | Hybrid-tree coding for inter and intra prediction for geometry coding | |
US20230345044A1 (en) | Residual prediction for geometry point cloud compression | |
WO2022146827A2 (en) | Global motion estimation using road and ground object labels for geometry-based point cloud compression | |
US20230230290A1 (en) | Prediction for geometry point cloud compression | |
US20230099908A1 (en) | Coding point cloud data using direct mode for inter-prediction in g-pcc | |
US20230345045A1 (en) | Inter prediction coding for geometry point cloud compression | |
US20240185470A1 (en) | Decoding attribute values in geometry-based point cloud compression | |
WO2023205318A1 (en) | Improved residual prediction for geometry point cloud compression | |
WO2023102484A1 (en) | Local adaptive inter prediction for g-pcc | |
CN116636204A (zh) | 用于几何编解码的帧间和帧内预测的混合树编解码 | |
WO2022147008A1 (en) | Model-based prediction for geometry point cloud compression | |
CN116711313A (zh) | 用于几何体点云压缩的帧间预测编解码 | |
WO2023141463A1 (en) | Prediction for geometry point cloud compression |
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: 40093381 Country of ref document: HK |