CN117980953A - 用于几何点云压缩的帧间预测译码 - Google Patents
用于几何点云压缩的帧间预测译码 Download PDFInfo
- Publication number
- CN117980953A CN117980953A CN202280064781.3A CN202280064781A CN117980953A CN 117980953 A CN117980953 A CN 117980953A CN 202280064781 A CN202280064781 A CN 202280064781A CN 117980953 A CN117980953 A CN 117980953A
- Authority
- CN
- China
- Prior art keywords
- point
- points
- group
- inter
- prediction
- 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
- 230000006835 compression Effects 0.000 title description 21
- 238000007906 compression Methods 0.000 title description 21
- 238000000034 method Methods 0.000 claims abstract description 118
- 230000004044 response Effects 0.000 claims abstract description 31
- 238000012545 processing Methods 0.000 claims description 12
- 238000013139 quantization Methods 0.000 description 22
- 230000011664 signaling Effects 0.000 description 20
- 238000004891 communication Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 16
- 238000003860 storage Methods 0.000 description 16
- 230000009466 transformation Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 7
- 230000003044 adaptive effect Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000003786 synthesis reaction Methods 0.000 description 4
- 101100508818 Mus musculus Inpp5k gene Proteins 0.000 description 3
- 101100366438 Rattus norvegicus Sphkap gene Proteins 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 239000013598 vector Substances 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
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101100517651 Caenorhabditis elegans num-1 gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 235000014347 soups Nutrition 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一种对点云进行编码的示例方法包括响应于确定该点云的第一点是该点云的一个或多个点群组中的第一点群组中的第一点,在比特流中编码与针对该第一点群组的帧间预测相关的一个或多个语法元素。该示例方法还可以包括响应于确定该点云的第二点被包括在该第一点群组中但不是该第一点群组中的该第一点,跳过针对该第二点对与针对该第一点群组的帧间预测相关的该一个或多个语法元素进行重新编码。
Description
本申请要求于2022年9月23日提交的美国专利申请17/934,860号以及于2021年9月30日提交的美国临时申请63/250,953号的权益,这些申请的全部内容以引用方式并入本文。2022年9月23日提交的美国专利申请17/934,860号要求于2021年9月30日提交的美国临时申请63/250,953号的权益。
技术领域
本公开内容涉及点云编码和解码。
背景技术
点云是三维空间中的点的集合。这些点可以对应于三维空间内的对象上的点。因此,点云可用于表示三维空间的物理内容。点云可在各种情况下具有效用。例如,可以在自主交通工具的上下文中使用点云来表示道路上的对象的位置。在另一示例中,可以在表示环境的物理内容的上下文中使用点云,以便在增强现实(AR)或混合现实(MR)应用中定位虚拟对象。点云压缩是用于对点云进行编码和解码的过程。对点云进行编码可以减少存储和传输点云所需的数据量。
发明内容
一般来讲,本公开内容描述了用于对点云的节点进行译码的技术,诸如用于当前正开发的几何点云压缩(G-PCC)标准。然而,示例技术不限于G-PCC标准。在G-PCC的一些示例中,点云的节点(也称为点)的位置的坐标可被转换为(r,φ,i)域,其中节点的位置由三个参数(半径r,方位角φ和激光指数i)表示。当在G-PCC中使用角模式进行预测几何译码时,G-PCC译码器可以在(r,φ,i)域中执行预测。例如,G-PCC译码器可以针对点云中的每个点单独地对半径r、方位角φ和激光指数i进行译码。然而,对点的这种单独译码可能存在一个或多个缺点。例如,针对每个点单独译码半径r、方位角φ和激光指数i可能需要大量的带宽。
G-PCC译码器可使用帧间预测来预测点云的当前帧的当前点。例如,为了使用帧间预测来预测当前点,G-PCC译码器可标识与当前帧不同的帧中的参考点并且基于参考点的一个或多个参数来预测当前点的一个或多个参数(例如,半径r、方位角φ和激光指数i)。在参考点的参数中的一个或多个参数比当前帧中的父点或其他可用点更接近当前点的参数的情况下,使用帧间预测来预测当前点可减小残差数据的大小。以此方式,本公开内容的技术可使得G-PCC译码器能够提高译码效率。
G-PCC译码器可以发信号通知是否使用帧间预测来预测点云的点的指示。例如,G-PCC译码器可以发信号通知点云的每个相应点的相应帧间模式标志,该相应帧间模式标志指示相应点是否被帧间译码。然而,对每个点的帧间模式标志进行单独译码可能存在一个或多个缺点,诸如高带宽使用。
根据本公开内容的一个或多个方面,G-PCC译码器可以发信号通知应用于点云的点群组(即,多于一个点)的语法元素。例如,与单独地发信号通知点云的每个点的帧间模式标志相反,G-PCC译码器可以发信号通知单个帧间模式标志,该单个帧间模式标志指示是否使用帧间预测对点群组中的所有点进行译码。因此,G-PCC译码器可避免必须针对每个点发信号通知单独的帧间模式标志。以此方式,本公开内容的各方面可改善点云压缩的效率(例如,减少带宽使用)。
在一个示例中,一种对点云进行编码的方法包括响应于确定点云的第一点是点云的一个或多个点群组中的第一点群组中的第一点,在比特流中编码与针对第一点群组的帧间预测相关的一个或多个语法元素。
在另一个示例中,一种对点云进行解码的方法包括响应于确定点云的第一点是点云的一个或多个点群组中的第一点群组中的第一点,从比特流中解析与针对第一点群组的帧间预测相关的一个或多个语法元素;以及基于一个或多个语法元素来预测第一点。
在另一个示例中,一种用于处理点云的设备包括存储器,该存储器被配置为存储点云的至少一部分;以及一个或多个处理器,该一个或多个处理器在电路系统中实现并且被配置为:确定点云的第一点是否为点云的一个或多个点群组中的第一点群组中的第一点;以及响应于确定点云的第一点是第一点群组中的第一点,在比特流中编码与针对第一点群组的帧间预测相关的一个或多个语法元素。
在另一个示例中,一种用于处理点云的设备包括存储器,该存储器被配置为存储点云的至少一部分;以及一个或多个处理器,该一个或多个处理器在电路系统中实现并且被配置为:确定点云的第一点是否为点云的一个或多个点群组中的第一点群组中的第一点;以及响应于确定点云的第一点是第一点群组中的第一点,从比特流中解析与针对第一点群组的帧间预测相关的一个或多个语法元素;以及基于一个或多个语法元素来预测第一点。
在附图和以下描述中阐述一个或多个示例的细节。根据描述、附图以及权利要求,其它特征、目的和优点将是显而易见的。
附图说明
图1是示出可以执行本公开内容的技术的示例编码和解码系统的框图。
图2是示出示例几何点云压缩(G-PCC)编码器的框图。
图3是示出示例G-PCC解码器的框图。
图4是示出用于几何译码的示例八叉树拆分的概念图。
图5是用于预测几何译码的预测树的概念图。
图6A和图6B是旋转LIDAR采集模型的概念图。
图7是示出m56841中的方法的示例的概念图。
图8是示出与针对每个点发信号通知的“inter_flag”相关联的示例解码流程的流程图。
图9示出了方位角大于帧间预测器点的这种附加帧间预测器点的示例。
图10是示出根据本公开内容的一种或多种技术的示例编码过程的流程图。
图11是示出根据本公开内容的一种或多种技术的示例编码过程的流程图。
具体实施方式
图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编码器对帧的数据进行编码。源设备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执行的软件指令。尽管存储器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可以根据通信标准(诸如无线通信协议)来解调接收到的传输信号。通信介质可以包括任何无线或有线通信介质,比如射频(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规范、IEEE802.15规范(例如,ZigBeeTM)、蓝牙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中的每一者可包括在一个或多个编码器或解码器中,该一个或多个编码器或解码器中的任一者可集成为相应设备中的组合编码器/解码器(CODEC)的一部分。包括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帧中表示为“斑块”),其进一步由旧式2D视频编解码器(诸如高效率视频译码(HEVC)(ITU-T H.265)编解码器)来译码。第二种办法是“基于几何的点云压缩”(G-PCC),其直接压缩3D几何(即,点集合在3D空间中的位置)和相关联的属性值(针对与3D几何相关联的每个点)。G-PCC解决了类别1(静态点云)和类别3(动态获取的点云)两者中的点云的压缩。G-PCC标准的最新草案可在G-PCC DIS(ISO/IEC JTC1/SC29/WG11 w19088,比利时布鲁塞尔(Brussels,Belgium),2020年1月)中获得,并且编解码器描述可在G-PCC编解码器描述v6(ISO/IEC JTC1/SC29/WG11 w19091,比利时布鲁塞尔,2020年1月)中获得。
点云包含3D空间中的点集合,并且可具有与该点相关联的属性。属性可以是诸如R、G、B或Y、Cb、Cr的颜色信息,或反射率信息,或其他属性。点云可由各种相机或传感器(诸如LIDAR传感器和3D扫描仪)来捕获,并且也可以是计算机生成的。点云数据用于多种应用,包括但不限于建筑(建模)、图形(用于可视化和动画的3D模型)和汽车行业(用于帮助导航的LIDAR传感器)。
点云数据所占用的3D空间可由虚拟边界框来包围。点在边界框中的位置可通过一定精度表示;因此,一个或多个点的位置可基于该精度来量化。在最小级别,边界框被拆分为体素,该体素是由单位立方体所表示的最小空间单位。边界框中的体素可与零个、一个或不止一个点相关联。边界框可被拆分为多个立方体/长方体区域,这些区域可被称为瓦片。每个瓦片可被译码为一个或多个切片。将边界框划分为切片和瓦片可以基于每个分区中的点的数目,或者基于其他考虑(例如,特定区域可被译码为瓦片)。可以使用类似于视频编解码器中的拆分决策来进一步划分切片区域。
图2提供了G-PCC编码器200的概览。图3提供了G-PCC解码器300的概览。所示模块是逻辑的,并且不一定与G-PCC编解码器的参考实现中的所实现代码(即由ISO/IEC MPEG(JTC 1/SC 29/WG 11)研究的TMC13测试模型软件)一一对应。
在G-PCC编码器200和G-PCC解码器300两者中,首先对点云位置进行译码。属性译码取决于经解码几何结构。在图2和图3中,灰色阴影模块是通常用于类别1数据的选项。斜线交叉阴影模块是通常用于类别3数据的选项。所有其他模块在类别1和类别3之间是共用的。
对于几何结构,存在两种不同类型的译码技术:八叉树和预测树译码。以下集中于八叉树译码。图4是示出用于几何译码的示例八叉树拆分的概念图。对于类别3数据,经压缩几何通常被表示为从根一直到个体体素的叶级的八叉树。对于类别1数据,经压缩几何通常由经修剪的八叉树(即,从根到大于体素的块的叶级的八叉树)加上近似经修剪的八叉树的每个叶内表面的模型来表示。以此方式,类别1数据和类别3数据共享八叉树译码机制,而类别1数据可另外用表面模型来近似每个叶内的体素。所使用的表面模型是每块包括1-10个三角形的三角测量,从而形成三角形汤。因此,类别1几何编解码器被称为Trisoup几何编解码器,而类别3几何编解码器被称为八叉树几何编解码器。
在八叉树的每个节点处,为其子节点中的一个或多个子节点(最多达八个节点)发信号通知占用(当未推断时)。指定了多个邻域,包括(a)与当前八叉树节点共用面的节点,(b)与当前八叉树节点共用面、边或顶点的节点等。在每个邻域内,可使用节点和/或其子节点的占用来预测当前节点或其子节点的占用。对于在八叉树的某些节点中稀疏填充的点,编解码器还支持直接译码模式,在该直接译码模式中,直接对点的3D位置进行编码。可发信号通知标志以指示直接模式被发信号通知。在最低级别处,也可对与八叉树节点/叶节点相关联的点的数目进行译码。
一旦对几何译码,则对与该几何点相对应的属性进行译码。当存在对应于一个经重构/经解码几何点的多个属性点时,可以推导出代表所重构点的属性值。
在G-PCC中存在三种属性译码方法:区域自适应分层变换(RAHT)译码、基于插值的分层最近邻预测(预测变换)和带有更新/提升步骤(提升变换)的基于插值的分层最近邻预测。RAHT和提升通常用于类别1数据,而预测通常用于类别3数据。然而,任一种方法都可用于任何数据,并且就像G-PCC中的几何编解码器一样,用于对点云进行译码的属性译码方法在比特流中指定。
对属性的编码可以按细节级别(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可以获得点云中的点的位置集合和属性集合。G-PCC编码器200可以从数据源104(图1)获得点云中的点的位置集合和属性集合。这些位置可以包括点云中的点的坐标。属性可包括关于点云中的点的信息,诸如与点云中的点相关联的颜色。G-PCC编码器200可以生成包括点云中的点的位置的编码表示的几何比特流203。G-PCC编码器200还可以生成包括属性集合的编码表示的属性比特流205。
坐标变换单元202可以对点的坐标应用变换,以将坐标从初始域变换到变换域。本公开内容可将所变换的坐标称作变换坐标。颜色变换单元204可应用变换以将属性的颜色信息变换到不同域。例如,颜色变换单元204可以将颜色信息从RGB颜色空间变换到YCbCr颜色空间。
此外,在图2的示例中,体素化单元206可以体素化变换坐标。变换坐标的体素化可以包括量化和移除点云中的一些点。换而言之,点云中的多个点可被归入在单个“体素”内,其随后可以在一些方面被视为一个点。此外,八叉树分析单元210可以基于经体素化变换坐标来生成八叉树。另外,在图2的示例中,表面近似分析单元212可分析这些点以潜在地确定这些点的集合的表面表示。算术编码单元214可对表示八叉树和/或由表面近似分析单元212确定的表面的信息的语法元素进行熵编码。G-PCC编码器200可在几何比特流203中输出这些语法元素。几何比特流203还可包括其他语法元素,包括未被算术编码的语法元素。
几何重构单元216可以基于八叉树、指示由表面近似分析单元212所确定的表面的数据和/或其他信息来重构点云中的点的变换坐标。由于体素化和表面近似,由几何重构单元216所重构的变换坐标的数目可以不同于点云的原始点数。本公开内容可将得到的点称为重构点。属性传输单元208可将点云的原始点的属性传输到点云的重构点。
此外,RAHT单元218可以将RAHT译码应用到重构点的属性。在一些示例中,根据RAHT,获取2×2×2点位置的块的属性并沿一个方向进行变换,以获得四个低频节点(L)和四个高频节点(H)。随后,在第二方向上变换四个低频节点(L),以获得两个低频节点(LL)和两个高频节点(LH)。沿第三方向变换两个低频节点(LL)以获得一个低频节点(LLL)和一个高频节点(LLH)。低频节点LLL对应于DC系数,并且高频节点H、LH和LLH对应于AC系数。每个方向上的变换可以是具有两个系数权重的1D变换。可获取低频系数作为用于RAHT变换的下一个更高级别的2x2x2块的系数,并且不作改变地对AC系数进行编码;此类变换继续,直到顶部根节点。自上而下使用用于编码的树遍历来计算要用于这些系数的权重;变换次序是自下而上。然后,可量化这些系数并对它们进行译码。
另选地或附加地,LOD生成单元220和提升单元222可分别对重构点的属性应用LOD处理和提升。使用LOD生成来将属性拆分为不同的细化级别。每个细化级别提供对点云的属性的细化。第一细化级别提供粗略近似并且包含很少的点;后续细化级别通常包含更多的点,等等。细化级别可使用基于距离的度量来构造,或者也可使用一个或多个其它分类标准(例如,从特定次序进行子采样)。因此,所有重构点可包括在细化级别中。每个细节级别通过取直至特定细化级别的所有点的并集来产生:例如,基于细化级别RL1获得LOD1,基于RL1和RL2获得LOD2,……,通过RL1、RL2、……、RLN的并集获得LODN。在一些情况下,LOD生成可后跟预测方案(例如,预测变换),在预测方案中,根据先前点的加权平均值预测与LOD中的每个点相关联的属性并且对残差进行量化和熵译码。提升方案建立在预测变换机制之上,在提升方案中,使用更新运算符来更新系数并且执行系数的自适应量化。
RAHT单元218和提升单元222可基于这些属性生成系数。系数量化单元224可量化由RAHT单元218或提升单元222生成的系数。算术编码单元226可以对表示经量化系数的语法元素应用算术译码。G-PCC编码器200可在属性比特流205中输出这些语法元素。属性比特流205还可包括其他语法元素,包括未算术编码的语法元素。
在图3的示例中,G-PCC解码器300可包括几何算术解码单元302、属性算术解码单元304、八叉树合成单元306、逆量化单元308、表面近似合成单元310、几何重构单元312、RAHT单元314、LoD生成单元316、逆提升单元318、逆变换坐标单元320和逆变换颜色单元322。
G-PCC解码器300可以获得几何比特流203和属性比特流205。解码器300的几何算术解码单元302可对几何比特流203中的语法元素应用算术解码(例如,上下文自适应二进制算术译码(CABAC)或其他类型的算术解码)。类似地,属性算术解码单元304可对属性比特流205中的语法元素应用算术解码。
八叉树合成单元306可以基于从几何比特流203中解析的语法元素来合成八叉树。从八叉树的根节点开始,在比特流中发信号通知每个八叉树级别处的八个子节点中的每个子节点的占用。当信令指示特定八叉树级别处的子节点被占用时,发信号通知该子节点的子节点的占用。在前进到后续八叉树级别之前,发信号通知每个八叉树级别处的节点的信令。在八叉树的最后级别处,每个节点对应于体素位置;当叶节点被占用时,一个或多个点可被指定为在体素位置处被占用。在一些实例中,由于量化,八叉树的一些分支可能比最终级别早终止。在此类情况下,叶节点被认为是不具有子节点的被占用节点。在几何比特流203中使用表面近似的实例中,表面近似合成单元310可以基于从几何比特流203中解析的语法元素并且基于八叉树来确定表面模型。
此外,几何重构单元312可以执行重构以确定点云中的点的坐标。对于八叉树的叶节点处的每个位置,几何重构单元312可通过使用八叉树中的叶节点的二进制表示来重构节点位置。在每个相应叶节点处,发信号通知相应叶节点处的点的数目;这指示相同体素位置处的复制点的数目。当使用几何量化时,点位置被缩放以确定重构的点位置值。
逆变换坐标单元320可对重构的坐标应用逆变换以将点云中的点的重构的坐标(位置)从变换域转换回到初始域。点云中的点的位置可在浮点域中,但G-PCC编解码器中的点位置在整数域中译码。逆变换可用于将这些位置转换回到原始域。
另外,在图3的示例中,逆量化单元308可对属性值进行逆量化。属性值可基于从属性比特流205获得的语法元素(例如,包括由属性算术解码单元304解码的语法元素)。
取决于属性值如何被编码,RAHT单元314可以执行RAHT译码以基于经逆量化的属性值来确定点云中的点的颜色值。从树的顶部到底部进行RAHT解码。在每个级别处,使用从逆量化过程推导出的低频系数和高频系数来推导出组成值。在叶节点处,所推导出的值对应于系数的属性值。点的权重推导过程类似于在G-PCC编码器200处使用的过程。另选地,LOD生成单元316和逆提升单元318可使用基于细节级别的技术来确定点云中的点的颜色值。LOD生成单元316对每个LOD进行解码,从而给出点的属性的逐步更精细的表示。在预测变换的情况下,LOD生成单元316从先前LOD中或先前在相同LOD中重构的点的加权和推导出点的预测。LOD生成单元316可将预测添加到残差(其在逆量化之后获得),以获得属性的重构值。当使用提升方案时,LOD生成单元316还可包括更新运算符以更新用于推导出属性值的系数。在这种情况下,LOD生成单元316还可应用逆自适应量化。
此外,在图3的示例中,逆变换颜色单元322可对颜色值应用逆颜色变换。逆颜色变换可与由编码器200的颜色变换单元204应用的颜色变换相逆。例如,颜色变换单元204可以将颜色信息从RGB颜色空间变换到YCbCr颜色空间。相应地,逆颜色变换单元322可将颜色信息从YCbCr颜色空间变换到RGB颜色空间。
示出图2和图3的各种单元来协助理解由编码器200和解码器300执行的操作。单元可以被实现为固定功能电路、可编程电路、或它们的组合。固定功能电路是指提供特定功能性的电路,并预先设定了可以执行的操作。可编程电路指代可以被编程以执行各种任务并且在可以执行的操作上提供灵活的功能性的电路。例如,可编程电路可以执行软件或固件,该软件或固件使得可编程电路以由软件或固件的指令所定义的方式进行操作。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但固定功能电路执行的操作类型通常是不可变的。在一些示例中,单元中的一个或多个单元可以是不同的电路块(固定功能或可编程),并且在一些示例中,单元中的一个或多个单元可以是集成电路。
预测几何译码被引入作为八叉树几何译码的另选形式,其中节点被布置在树结构(其定义预测结构)中,并且各种预测策略被用于预测树中的每个节点相对于其预测器的坐标。图5是示出预测树500的示例的概念图,该预测树是箭头指向预测方向的有向图。水平阴影节点是根顶点,并且没有预测器;网格阴影节点具有两个子节点;斜线阴影节点具有3个子节点;非阴影节点具有一个子节点,而竖直阴影节点是叶节点,并且这些节点没有子节点。每个节点仅具有一个父节点。
可以基于每个节点的父节点(p0)、祖父节点(p1)和曾祖父节点(p2)为每个节点指定四个预测策略。预测策略包括无预测、Δ预测(p0)、线性预测(2*p0-p1)和平行四边形预测(p0+p1-p2)。
编码器(例如,G-PCC编码器200)可以采用任何算法来生成预测树;所使用的算法可以基于应用/用例来确定,并且可以使用若干种策略。编码器可针对每个节点以深度优先方式从根节点开始对比特流中的残差坐标值进行编码。预测几何译码对于类别3(LIDAR采集的)点云数据(例如,对于低等待时间应用)可能特别有用。
角模式可用于预测几何译码,其中LIDAR传感器的特性可用于更有效地译码预测树。将位置的坐标转换为(r,φ,i)(半径、方位角和激光指数),并且在该域中执行预测(残差在r,φ,i域中被译码)。由于舍入中的误差,r,φ,i中的译码不是无损的,并且因此可以对对应于笛卡尔坐标的残差的第二集合进行译码。下文再现了用于预测几何译码的角模式的编码和解码策略的描述。该描述基于图6A和图6B,这些图是旋转LIDAR采集模型的概念图。
本公开内容的技术至少可应用于使用旋转Lidar模型采集的点云。此处,激光雷达602具有根据方位角φ围绕Z轴旋转的N个激光器(例如,N=16、32、64)(参见图6A和图6B)。每个激光器可以具有不同的仰角θ(i)i=1…N和高度激光i击中具有笛卡尔整数坐标(x,y,z)的点M,该坐标根据图6A中描述的坐标系600定义。
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),这是由于各种原因,包括:
-量化
-近似
-模型不精确度
-模型参数不精确度
在一些示例中,重构残差(rx,ry,rz)可以定义如下:
-
-
-
在该方法中,编码器(例如,G-PCC编码器200)可如下进行:
·编码模型参数和/>以及量化参数qr/>qθ和qφ
·将G-PCC DIS中描述的几何预测方案应用于表示
ο可以引入利用激光雷达特性的新预测器。例如,激光雷达扫描仪围绕z轴的旋转速度通常是恒定的。因此,G-PCC解码器可以预测当前如下:
其中
ο(δφ(k))k=1…K是编码器可以从中选择的潜在速度集合。指数k可以被显式地写到比特流中,或者可以基于由编码器和解码器两者应用的确定性策略从上下文推断,并且
οn(j)是跳过点的数量,其可以被显式地写到比特流中,或者可以基于由编码器和解码器两者应用的确定性策略从上下文推断。
·用每个节点编码重构残差(rx,ry,rz)
解码器(例如,G-PCC解码器300)可如下进行:
·解码模型参数和/>以及量化参数qr/>qθ和qφ/>
·根据在G-PCC国际标准草案(DIS)中描述的几何预测方案来解码与节点相关联的参数
·计算重构坐标如上所述
·解码残差(rx,ry,rz)
ο如在下一章节中所讨论的,可以通过量化重构残差(rx,ry,rz)来支持有损压缩
·计算原始坐标(x,y,z)如下
ο
ο
ο
有损压缩可以通过将量化应用于重构残差(rx,ry,rz)或通过丢弃点来实现。
量化的重构残差计算如下:
·
·
·其中(qx,ox)、*qy,oy)和(qz,ozz)分别是控制/>和/>的精度的量化参数。
在一些示例中,G-PCC编码器200和/或G-PCC解码器300可使用栅格量化来进一步改善RD(率失真)性能结果。量化参数可在序列/帧/切片/块级别处改变以实现区域自适应质量并且用于速率控制目的。
预测几何译码可以使用预测树结构来预测点的位置。当启用角译码时,可以将x、y、z坐标变换为半径、方位角和laserID,并且在这三个坐标中以及在x、y、z维度中发信号通知残差。用于半径、方位角和laserID的帧内预测可以是四种模式中的一种模式,并且预测器是相对于当前节点在预测树中被分类为父、祖父和曾祖父的节点。如当前在G-PCC第1版中设计的预测几何译码是帧内译码工具,因为它仅使用同一帧中的点进行预测。
上述技术可能存在一个或多个缺点。预测几何译码利用旋转LIDAR的机制来预测点云中的一点相对于另一点的位置。然而,该机制限于相同点云帧内的点。来自先前译码帧(即,参考帧)中的点的信息不可用于预测。
G-PCC译码器(例如,G-PCC编码器200和/或G-PCC解码器300)可以使用帧间预测来执行点云压缩。通过使用帧间预测,G-PCC译码器可使用跨越帧的点的冗余来提供附加比特率节省。
G-PCC译码器可以确定是使用帧间预测还是帧内预测来对点进行译码。作为一个示例,G-PCC编码器可执行分析以确定使用帧间预测或帧内预测来对特定点进行译码是否将是有益的(例如,就比特率或其他条件而言)。作为另一个示例,G-PCC解码器可对指示点是使用帧间预测还是帧内预测来译码的语法元素(例如,标志)进行解码。
提出帧间预测来从参考帧预测点的半径。对于预测树中的每个点,G-PCC译码器可确定点是帧间预测的还是帧内预测的(由标志指示)。当帧内预测时,使用预测几何译码的帧内预测模式。当使用帧间预测时,仍然利用帧内预测来预测方位角和laserID,同时从参考帧中具有与当前点相同的laserID和最接近当前方位角的方位角的点来预测半径。在一些示例中,除了半径之外或代替半径,方位角和/或laserID可被帧间预测。当应用帧间译码时,当前点的半径、方位角和laserID可基于参考帧中先前解码的点的方位角位置附近的点来预测。另外,上下文的单独集合可用于帧间预测和帧内预测。
G-PCC译码器可以选择参考帧。在一些示例中,G-PCC译码器可使用先前解码的帧(或在一些情况下,按解码次序的先前帧)作为参考帧。在其他示例中,帧号的指示(使用LSB值或Δ帧号值)可用于指定参考帧。更一般地,可将两个或更多个帧指定为参考帧,并且可以用来自参考帧中的任一个参考帧的帧间预测来对点进行译码(可以发信号通知或导出与点相关联的参考帧的指示)。
在另一个示例中,可从两个或更多个帧执行预测(例如,双向预测)。因此,G-PCC译码器可基于第一参考帧中的参考点和第二参考帧中的参考点来预测当前帧的点。
G-PCC译码器可利用多种帧间预测模式。当点被帧间预测时,可存在从参考帧预测点的一种或多种方式。可使用不同模式值来指定每种类型的预测(例如,G-PCC译码器可以发信号通知指示用于当前点的帧间预测模式的语法元素)。作为示例帧间预测模式,可从来自参考帧的零运动候选来预测点(例如,参考帧中的参考点可以是零运动候选)。作为另一个示例帧间预测模式,可从来自参考帧的全局运动候选来预测点。作为另一个示例帧间预测模式,可从来自参考帧的候选点来预测点,并且可使用其他参数(例如,运动向量等)来指定候选点。
图7是示出根据本公开内容的一个或多个方面的用于预测点云的点的示例帧间预测过程的概念图。如图7所示,当前帧750可包括多个点752A-752L(统称为“点752”),并且参考帧754可包括多个点756A-756L(统称为“点756”)。参考帧754可以是在当前帧750被解码和/或重构之前被编码和/或重构的帧(例如,参考帧754可以按译码次序在当前帧750之前)。G-PCC译码器可以利用帧内预测基于参考帧754的点756中的一个或多个点来预测当前帧750的点752中的一个或多个点。例如,G-PCC解码器(或G-PCC编码器的重构环路)可以基于点756中的一个或多个点来预测点752的当前点752A(curPoint)的一个或多个参数(例如,(r,φ,i))。
为了执行帧内预测以预测当前帧中的当前点,G-PCC译码器可以确定与当前帧不同的参考帧中的参考点,并且基于参考点来预测当前点的一个或多个参数。例如,为了预测当前点752A,G-PCC译码器可以确定参考点756A(例如,interPredPt)并且基于参考点756A的一个或多个参数来预测当前点752A的一个或多个参数。所确定的参考点可以被称为标识的参考点。
G-PCC译码器可以使用任何合适的技术来确定参考点。作为一个示例,G-PCC译码器可以在当前帧中确定在译码次序中在当前点之前的枢转点;并且基于枢转点的一个或多个参数来确定参考点。例如,在译码次序为逆时针的情况下,G-PCC译码器可确定点752B为当前点752A的先前点(例如,在译码次序中紧接在当前点之前的点,prevDecP0)(即,确定点752B为枢转点),并且基于枢转点752B的一个或多个参数确定参考点。
为了基于枢转点的一个或多个参数来确定参考点,G-PCC译码器可以基于枢转点的方位角在参考帧中确定参考枢转点;并且基于参考枢转点来确定参考点。例如,G-PCC译码器可以在参考帧754中确定与枢转点752B具有相同方位角(或相同方位角和相同激光ID)的点。在图7的示例中,G-PCC译码器可以确定点756B(例如,refFrameP0)是参考枢转点,因为点756B与枢转点752B具有相同方位角。虽然图7的示例中的参考枢转点对应于实际点(例如,帧754中的实际点),但本公开内容的技术不一定限于此。例如,在一些示例中,参考枢转点可以是不对应于参考帧754中的重构点的虚拟点。
在一些示例中,G-PCC译码器可以基于枢转点的实际(例如,未缩放的)方位角来确定参考枢转点。在其他示例中,G-PCC译码器可基于枢转点的缩放的方位角来确定参考枢转点。例如,G-PCC译码器可以通过将枢转点的方位角缩放恒定值来确定缩放的方位角。
为了基于参考枢转点确定参考点,G-PCC译码器可以将方位角比参考枢转点的方位角更大的点标识为参考帧中的参考点。例如,G-PCC译码器可以确定点756中的哪些点具有比参考枢转点的方位角值大的方位角值,并且(从方位角值比参考枢转点的方位角值大的点756的集合中)选择具有最小方位角值的点。在图7的该示例中,点756A可以是参考帧754中具有比参考枢转点765B的方位角大的最小方位角的点。因此,G-PCC译码器可将点756A标识为用于执行当前点752A的帧内预测的参考点。
在一些示例中,G-PCC译码器可以基于参考枢转点的实际(例如,未缩放的)方位角来确定参考点。在其他示例中,G-PCC译码器可基于参考枢转点的缩放的方位角来确定参考点。例如,G-PCC译码器可以通过将枢转点的方位角缩放恒定值来确定参考枢转点的缩放的方位角。因此,在一些示例中,G-PCC译码器可通过将具有比参考枢转点(例如,点756A)的缩放的方位角大的最小缩放的方位角的点标识为参考点来确定参考点。在一些示例中,G-PCC译码器可以利用具有比缩放的方位角大的第二最小方位角的点。例如,G-PCC译码器可通过将具有比参考枢转点(例如,点756L)的缩放的方位角大的第二最小缩放的方位角的点标识为参考点来确定参考点。
G-PCC译码器可以基于参考点756A的参数来预测当前点752A的参数。例如,G-PCC译码器可以发信号通知表示当前点752A和参考点756A的参数之间的差的残差数据。G-PCC译码器可将残差数据添加到参考点756A的参数以重构当前点752A的参数。
虽然上文讨论为使用单个参考帧中的单个参考点,但本公开内容的技术不限于此。作为一个示例,可共同使用单个参考帧中的多个参考点来预测当前点。例如,G-PCC译码器可以在参考帧中并且基于参考枢转点来确定多个参考点。G-PCC译码器可基于多个参考点来预测当前帧中的当前点的一个或多个参数。作为另一个示例,可使用来自多个参考帧的参考点来预测当前点。
如上所讨论的,G-PCC译码器可执行方位角预测。设(r,phi,laserID)为球面坐标系中的枢转点的三个坐标(称为半径、方位角和激光ID)。本文中所公开内容的技术还可应用于其他坐标系。
在一些示例中,G-PCC译码器可如下以有序方式对当前点云帧中的点进行译码:
1.对于当前帧中的当前点,G-PCC译码器可选择当前帧中在解码次序中的第一点之前的枢转点。在一些示例中,枢转点是当前帧中在解码次序中的先前点。在一些示例中,枢转点是当前帧中在解码次序中的第二先前点。更一般地,可以选择多于一个先前点作为当前点的枢转点。在一些示例中,枢转点可以是基于当前帧中先前解码的点和作为(从发信号通知的语法元素预先确定或导出的)方位角量化标度值的倍数的方位角位移而导出的虚拟点。
2.G-PCC译码器可选择参考帧中与枢转点相关联的点(参考枢转点)。参考枢转点可以被选择为参考帧中具有与枢转点相同的方位角和激光ID的点。在一些示例中,具有其他激光ID值的点也可以是参考枢转点的候选(例如,参考枢转点可以被选择为参考帧中与枢转点具有相同方位角并且激光ID在[LaserID-M,LaserID+M]范围内的点,其中LaserID是枢转点的激光ID并且M是固定值(例如,1),或者基于枢转点距原点的距离来选择,或者作为LaserID的函数导出(例如,对于LaserID的较小值,M可以较小,而对于LaserID的较大值,M可以较大))。在一些示例中,可以使用方位角和激光ID来定义距离度量,并且使用距离度量将参考枢转点选择为距枢转点的方位角和激光ID具有最小距离的点。可以通过将方位角缩放第一常数值来获得归一化的方位角值;可以通过将laserID缩放第二常数值来获得归一化的激光ID;可以通过计算枢转点和参考点的归一化激光ID和方位角值的范数(例如,L2范数、L1范数)来获得距离度量。更一般地,参考枢转点可以被选择为参考帧中的点,该点在具有与枢转点相同的方位角和激光ID的点附近。在一些示例中,参考枢转点可以是参考帧中的虚拟点,该虚拟点从具有与枢转点相同的方位角和激光ID的枢转点导出。
3.G-PCC译码器可以在参考帧中选择与参考枢转点相关联的参考点。参考点可以被选择为参考帧中具有比参考枢转点的方位角大的最小方位角以及与参考枢转点相同的激光ID的点。参考点可以被选择为参考帧中具有比参考枢转点的方位角大的第二最小方位角以及与参考枢转点相同的激光ID的点。在一些示例中,当参考点不可用时,可针对当前点禁用帧间预测。在一些示例中,参考点可被选择为参考枢转点。
4.G-PCC译码器可以计算参考点和参考枢转点之间的第一残差。
5.G-PCC译码器可以使用第一残差来导出针对当前值的第一预测。可以通过将第一残差的分量与枢转点的相应分量相加来导出预测(例如,可以通过将第一残差的半径分量与枢转点的半径分量相加来获得半径预测(对于方位角类似))。在一些示例中,可将第一预测设定为等于参考点。
6.G-PCC译码器可对第一预测与当前点的位置之间的第二残差进行译码。
7.残差的组成:本公开内容中公开内容的一个或多个残差可包括以下中的一者或多者:残差可包括参考枢转点与参考点之间的半径残差。残差可以包括参考枢转点与参考点之间的方位角残差。
8.G-PCC译码器可以基于第一预测和第二残差来导出当前点。在一些示例中,G-PCC译码器可从第二残差导出当前点(例如,并且不基于第一预测)。
G-PCC译码器可以将上述一种或多种技术应用于量化的方位角值;用于量化的标度值可以从发信号通知的值导出或预先确定。量化的方位角值和laserID可用于搜索参考中的帧间预测点。例如,先前解码和重构的点的方位角可以被量化,并且具有与先前点的量化的方位角和laserID最接近的量化的方位角和laserID的帧间预测点可以被选择作为当前点的方位角、半径和laserID的预测器,如量化/去量化预测器或非量化预测器。
G-PCC译码器可以将上述一种或多种技术应用于量化的laserID值;用于量化的标度值可以从发信号通知的值导出或预先确定。方位角和量化的laserID值可用于搜索参考中的帧间预测点。例如,先前解码和重构的点的laserID可以被量化,并且具有与先前点的方位角和量化的laserID最接近的方位角和量化的laserID的帧间预测点可以被选择作为当前点的方位角、半径和laserID的预测器,如量化/去量化预测器或非量化预测器。
G-PCC译码器可以将上述一种或多种技术应用于量化的方位角和量化的laserID值;用于量化的标度值可以从发信号通知的值导出或预先确定。量化的方位角和量化的laserID值可用于搜索参考中的帧间预测点。例如,先前解码和重构的点的方位角和laserID可以被量化,并且具有与先前点的量化的方位角和量化的laserID最接近的量化的方位角和量化的laserID的帧间预测点可以被选择作为当前点的方位角、半径和laserID的预测器,如量化/去量化预测器或非量化预测器。
在一些示例中,参考帧可以是指从参考帧导出的(半径、方位角、laserID)元组的集合。例如,对于参考帧中的每个点,如果集合中不存在具有相同方位角激光ID的其他点,则G-PCC译码器可将半径、方位角、激光ID添加到集合中。在一些情况下,可添加方位角的量化值。在一些情况下,如果r的值小于该值或r1,则即使在集合中存在具有相同phi和laserID的另一元组,例如(r1,phi,laserID),也可添加(r,phi,laserID)(在这种情况下,存在的元组(r1,phi,laserId)可被新的(r,phi,laserID)替换)。在一些情况下,参考帧中的点可在x、y、z域中;该点可以按原样存储以供参考,或者通过将其转换到球形域来存储。在一些情况下,可将运动补偿的位置添加到参考帧。补偿可基于发信号通知的与当前帧和参考帧相关联的运动向量(例如,具有旋转和/或平移的全局运动向量)。
图8是示出用于点云的点的帧间译码和帧内译码的示例解码技术的流程图。如图8所示,可以针对点云的每个点来对帧间标志进行译码。例如,G-PCC译码器可以确定当前点的帧间标志是否指示帧间译码(802)。在当前点的帧间标志指示帧间译码(802的“是”分支)的情况下,G-PCC译码器可按解码次序选择先前点(804),导出量化的phi(Q(phi))(806),针对具有比导出的量化的phi大的量化的phi的点检查参考帧(808),使用interpredpt作为帧间预测器(810),并且添加Δphi乘数和主残差(812)。在当前点的帧间标志不指示帧间译码(802的“否”分支)的情况下,G-PCC译码器可选择帧间预测候选(pred_mode)(814),并且添加Δphi乘数和主残差(812)。
图9示出了方位角大于帧间预测器点的这种附加帧间预测器点的示例。如图9所示,当前帧950可包括多个点952A-952L(统称为“点952”),并且参考帧954可以包括多个点956A-956L(统称为“点956”)。参考帧954可以是在当前帧950被解码和/或重构之前被编码和/或重构的帧(例如,参考帧954可以按译码次序在当前帧950之前)。G-PCC译码器可以利用帧内预测基于参考帧954的多个点956来预测当前帧950的点952中的一个或多个点。例如,G-PCC解码器(或G-PCC编码器的重构环路)可以基于点956(例如,点956A和956L)中的一个或多个点来预测点952的当前点952A(curPoint)的一个或多个参数(例如,(r,φ,i))。
在上述用于预测几何的帧间预测方法中,当使用以下步骤应用帧间译码时,基于在参考帧中的并置方位角位置附近的点来预测当前点的半径、方位角和laserID:
a)对于给定点(952A),选择先前解码点(952B),
b)在参考帧中选择具有与先前解码点(956B)相同的缩放方位角和laserID的位置,
c)从具有比该位置更大的方位角的第一点选择参考帧中的位置,以用作帧间预测器点(956A)。
根据本公开内容的一种或多种技术,G-PCC译码器可添加通过找到具有大于帧间预测器点(956L)的方位角的第一点而获得的附加帧间预测器点。如果已经应用了帧间译码,则可以使用附加信令来指示选择哪个预测器。
改进的上下文选择算法可应用于对帧间预测标志进行译码。N(例如,2、3、4、5、6、7)个先前译码的点的帧间预测标志值可用于在预测几何译码中选择帧间预测标志的上下文。
上述技术可能存在一个或多个缺点。当针对用预测几何结构译码的切片/帧启用帧间预测译码时,针对切片/帧中的每个点发信号通知帧间预测标志。点云通常具有几千个点,并且针对每个点发信号通知帧间预测标志的成本可能是高的(即使当算术译码时)。类似地,还针对每个帧间预测点发信号通知帧间预测模式。减少信令可以提高帧间译码的压缩效率。本文档中公开内容的一种或多种技术可以独立地应用或以组合的方式应用。
尽管讨论主要针对极坐标系,但是本申请中公开内容的技术也可应用于其他坐标系,诸如笛卡尔坐标系、球面坐标系或可用于表示/译码点云位置和属性的任何自定义坐标系。特别地,GPCC结合来自捕获点的LiDAR传感器的激光标识符(例如,仰角)利用来自球面坐标系的半径和方位角。
根据本公开内容的一个或多个方面,G-PCC译码器可以发信号通知应用于点云的点群组(即,多于一个点)的语法元素。例如,与单独地发信号通知点云的每个点的帧间模式标志相反,G-PCC译码器可以发信号通知单个帧间模式标志,该单个帧间模式标志指示是否使用帧间预测对点群组中的所有点进行译码。因此,G-PCC译码器可避免必须针对每个点发信号通知单独的帧间模式标志。以此方式,本公开内容的各方面可改善点云压缩的效率(例如,减少带宽使用)。
点的集合可以被指定/定义为点群组(GoPt)。在一些示例中,可将点的集合选择为按解码次序连续的两个或更多个点。在一些示例中,点的集合可被选择为共享共同特性的两个或更多个点,例如,具有相同激光ID的点和/或方位角值在方位角值范围内的点;或者具有相同激光ID并且集合中的点的最大和最小方位角值之间的差小于阈值的点。在一些示例中,点的集合可具有相同的方位角值和激光ID值,但具有不同半径值。在一些示例中,点的集合可具有相同的方位角值和半径值,但具有不同激光ID值。在一些示例中,可通过方位角、半径或激光ID值或任何组合来对点的集合进行分组。
点可被包括在单个群组中。因此,点的群组可以被认为是不重叠的。
可通过以下技术中的一种或多种技术来确定GoPt中的点的数量。GoPt中的点的数量可以是可由编码器和解码器预先确定的固定点数。在点的数量是固定和预先确定的情况下,可以不需要信令。附加地或另选地,可从比特流中的一个或多个语法元素发信号通知/导出点的数量。例如,G-PCC译码器可以发信号通知指定比特流中的GoPt中的点的数量的语法元素。指定数量的点可以应用于一个或多个GoPt。GoPt中的点的数量可小于帧中包括的点的数量。因此,GoPt可包括帧的点的子集。
在一些示例中,GoPt中的点的数量可以是可变的。作为一个示例,可如下可变地导出GoPt中的点的数量:对于每个GoPt,可以发信号通知GoPt中的点的数量(例如,语法元素num可指定当前点和(num-1)个后续点属于GoPt)。作为一个示例,可如下可变地导出GoPt中的点的数量:对于每个GoPt,可以发信号通知标志或语法元素以指示GoPt的开始/结束。(例如,值1可指定点是新GoPt中的第一点,并且值0可指定点属于现有GoPt/与先前点相同的GoPt)。
可以与上述技术不同地选择一个或多个GoPt中的点的数量。在一些示例中,在点云中留下来被译码的点的数量可以小于由上述方法中的一种方法指定的点的数量。在此类情况中的一些情况下,可将待译码的剩余点选择为一个GoPt。
一个或多个语法元素可由属于GoPt的点共享。通过在属于GoPt的点之间共享一个或多个语法元素,本公开内容的技术实现信令益处,因为可以不针对GoPt中的每个点发信号通知这些语法元素(例如,由此减少用于发信号通知点云的比特的数量)。
作为一个示例,G-PCC译码器可针对GoPt发信号通知预测类型(诸如帧间预测标志)一次并且将值应用于GoPt中的所有点。例如,响应于针对GoPt译码等于1的帧间预测标志(指示帧间预测),G-PCC解码器可使用帧间预测来解码GoPt中的所有点。类似地,响应于针对GoPt译码等于0的帧内预测标志(指示帧间预测),G-PCC解码器可使用帧内预测来解码GoPt中的所有点。
作为另一个示例,G-PCC译码器可针对用帧间预测译码的GoPt发信号通知帧间预测模式一次,并且将模式应用于GoPt中的所有点。例如,响应于针对GoPt解码帧间预测模式0,G-PCC解码器可使用帧间预测模式0来解码GoPt中的所有点。
作为另一个示例,G-PCC译码器可针对GoPt中的所有点将一些点坐标特性(例如,半径、激光ID等)导出或推断为相同。因此,G-PCC译码器可以发信号通知半径和/或laserID残差一次以导出GoPt中的第一点的半径和/或laserID,并且G-PCC译码器可将GoPt中的所有其他点的半径和/或laserID推断为与第一点相同。
作为另一个示例,G-PCC译码器可以指定一些点坐标特性在属于GoPt的点之间具有特定关系。例如,G-PCC译码器可以将GoPt中连续点的方位角推断为相差固定值(例如,positionAzimuthSpeed-由方位角比特深度和每激光器旋转的点数/激光器采样速率确定的值)。在一些示例中,G-PCC译码器可以针对GoPt发信号通知Δqphi值(Δ量化方位角)以导出GoPt中的第一点的qphi,并且GoPt中的其他点的qphi可从第一点的方位角导出(例如,针对除第一点以外的所有点推断Δqphi值为1)。在一些示例中,这可以应用于近似方位角。
尽管上文针对帧间预测描述了所公开内容的技术中的一些技术,但一些技术也可应用于帧内预测。例如,可针对帧内译码帧中的点指定GoPt;或者可在可启用帧间预测的帧中使用帧内预测来对GoPt中的点进行译码。可针对GoPt发信号通知帧内预测模式X值,并且用相同帧内预测模式X来对GoPt中的所有点进行译码。
参考如上所述的GoPt的可能定义,群组的类型可以潜在地按照GoPt或在更高级概念(诸如切片或帧、帧群组或序列)上在比特流中发信号通知。例如,类型可指示点群组是否具有相同laserID但具有不同方位角和半径值,或者在另一个示例中,GoPt具有相同laserID和方位角但具有不同半径值。
以下详细示例可例示上述技术。
在第一示例中,帧间预测标志和帧间预测模式可以由GoPt中的所有点共享。可在比特流中发信号通知GoPt的大小(在该示例中,其在几何数据单元中被发信号通知,但发信号通知也可在其他语法结构中发生)。
关于第一示例的GPCC(第1版)语法和语义的添加用<ADD>...</ADD>标签示出,并且移除用<DELETE>...</DELETE>标签示出。
几何预测树语法
<ADD>ptn_group_size_minus1加1指定语法结构geometry_predtree_data()中每个GoPt中的点的数量。PtnGroupSize被设置为等于ptn_group_size_minus1+1。</ADD>
ptn_group_size_minus1语法元素可为具有表示点群组中的点的数量的值的语法元素的示例。
几何预测树节点语法
/>
<ADD>当(PtnNodeCnt%ptn_group_size==0)不为真时,ptn_inter_flag[]和ptn_inter_pred_mode[]不被发信号通知并且被推断为等于解码次序中的先前点的ptn_inter_flag[]和ptn_inter_pred_mode[]。</ADD>
在一些情况下,可针对每个树单独发信号通知GoPt的大小。信令可以如下:
在一些情况下,可针对每个树单独发信号通知GoPt的大小。信令可以如下:
/>
ptn_group_size的值可被约束为小于特定阈值(例如,32)。
在一些情况下,仅ptn_inter_flag[]语法元素可由GoPt中的所有点共享。在此类情况下,ptn_inter_pred_mode可以针对每个帧间预测点被单独地发信号通知。这种情况下的语法可以如下:
/>
在一种情况下,ptn_group_size_minus1可以使用算术译码来译码。
在第二示例中,帧间预测标志和帧间预测模式可以由GoPt中的所有点共享。可在比特流中用标志来发信号通知GoPt的开始。
关于第二示例的GPCC(第1版)语法和语义的添加用<ADD>...</ADD>标签示出,并且移除用<DELETE>...</DELETE>标签示出。
/>
<ADD>gopt_start_flag等于1指定当前点开始新的GoPt。gopt_start_flag等于0指定当前点不开始新的GoPt。当gopt_start_flag等于0时,ptn_inter_flag[]和ptn_inter_pred_mode[]不被发信号通知并且被推断为等于解码次序中的先前点的ptn_inter_flag[]和ptn_inter_pred_mode[]。</ADD>
gopt_start_flag语法元素可为具有指示当前点是否开始新的点群组的值的语法元素的示例。在一些示例中,gopt_start_flag可以使用算术译码来译码。
图10是示出根据本公开内容的一种或多种技术的示例编码技术的流程图。图10的技术可以由G-PCC编码器(诸如图1和图2的G-PCC编码器200)执行。
G-PCC编码器200可以确定当前点是否为第一点群组GoPt中的第一点(1002)。例如,G-PCC编码器200可以确定当前点是第一点群组中的第一点,其中将当前点和后续点译码为群组将产生改善的译码效率。
响应于确定当前点是第一点群组中的第一点(1002的“是”分支),G-PCC编码器200可以发信号通知与第一点群组相关联的帧间预测相关语法元素的第一集合。例如,G-PCC编码器200可以发信号通知帧间预测标志(例如,ptn_inter_flag)和帧间预测模式语法元素(例如,ptn_inter_pred_mode)中的一者或两者,其值将应用于点的第一集合中的所有点。
G-PCC编码器200可以继续编码过程(1006)。例如,G-PCC编码器200可评估下一点并且确定下一点不是第一点群组中的第一点(1002的“否”分支)。例如,后续点可以是包括在第一点群组中的第二点或后续点。响应于确定下一点不是第一点群组中的第一点(1002的“否”分支),G-PCC编码器200可跳过发信号通知帧间预测相关语法元素的第一集合(1008)。例如,由于G-PCC编码器200已发信号通知用于第一点群组中的第一点的帧间预测相关语法元素的第一集合,所以G-PCC编码器200可避免重新发信号通知用于第一点群组中的第二点和后续点的帧间预测相关语法元素的相同第一集合。
图11是示出根据本公开内容的一种或多种技术的示例编码技术的流程图。图11的技术可以由G-PCC解码器(诸如图1和图3的G-PCC解码器300)执行。
G-PCC解码器300可以确定当前点是否为第一点群组GoPt中的第一点(1102)。例如,G-PCC解码器300可以确定当前点的节点计数(PtnNodeCnt)是否指示当前点是第一点群组中的第一点。在一些示例中,在当前点的节点计数除以第一点群组中的点的数量(ptn_group_size)的余数为零(例如,其中PtnNodeCnt%ptn_group_size==0为真)的情况下,G-PCC解码器300可确定当前点是第一点群组中的第一点。类似地,在当前点的节点计数除以第一点群组中的点的数量(ptn_group_size)的余数不为零(例如,其中PtnNodeCnt%ptn_group_size==0不为真)的情况下,G-PCC解码器300可确定当前点不是第一点群组中的第一点。
响应于确定当前点是第一点群组中的第一点(1102的“是”分支),G-PCC解码器300对与第一点群组相关联的帧间预测相关语法元素的第一集合进行解析解码。例如,G-PCC解码器300可解析帧间预测标志(例如,ptn_inter_flag)合帧间预测模式语法元素(例如,ptn_inter_pred_mode)中的一者或两者。在一些示例中,点群组中的第一点可以被称为点群组中的初始点。
G-PCC解码器300可以继续解码过程(1106)。例如,G-PCC解码器300可评估下一点(1102)并且确定下一点不是第一点群组中的第一点(1102的“否”分支)。例如,后续点可以是包括在第一点群组中的第二点或后续点。响应于确定下一点不是第一点群组中的第一点(1102的“否”分支),G-PCC解码器300可跳过解析帧间预测相关语法元素的第一集合(1108)。例如,由于G-PCC编码器200已发信号通知用于第一点群组中的第一点的帧间预测相关语法元素的第一集合,所以G-PCC解码器300可避免重新发信号通知用于第一点群组中的第二点和后续点的帧间预测相关语法元素的相同第一集合。相反,G-PCC解码器300可将与下一点相关联的帧间预测语法元素的第一集合的值推断为与第一点群组相关联的那些值(1110)(例如,在1104处解析的那些值)。
G-PCC解码器300可基于针对第一点解析的帧间预测相关语法元素的第一集合来预测第一点群组中的点。例如,在针对第一点解析的帧间预测相关语法元素的第一集合包括指定使用帧间预测的帧间预测标志的情况下,G-PCC解码器300可使用帧间预测来预测所有点(包括第一点和所谓的“下一点”)。以此方式,G-PCC解码器300可基于针对第一点解析的帧间预测相关语法元素的第一集合来预测下一点(例如,第二点)。
如上所述,当前点是点群组(GoPt)中的第一点的确定可基于GoPt中的点的数量或指示(诸如gopt_start_flag)。当将GoPt中的点的数量用作确定因子时,可使用附加计数器来对译码的点的数量进行计数;当每个点被译码时更新该计数器。该确定还可以基于对新GoPt的译码已经开始的开始。
帧间预测语法元素的第一集合可包括帧间预测标志、帧间预测模式等中的一者或多者。如上所述,第一集合还可包括不与帧间预测相关联的语法元素(诸如帧内预测相关语法元素、残差语法元素等)。用于GoPt的帧间预测语法元素的第一集合的值可通过计算GoPt中的所有点上的RD成本通过速率失真优化来获得。例如,将与将GoPt中的所有点编码为帧间相关联的成本跟与将GoPt中的所有点编码为帧内相关的成本进行比较;选择具有较低成本的译码类型(帧间/帧内),并且确定帧间预测标志值。在一些示例中,还可类似地选择帧间预测模式,或者可基于与语法元素的每个值组合相关联的成本来共同选择一个或多个语法元素。例如,可测试与针对帧间预测标志和帧间预测模式的一个或多个值组合对GoPt中的点进行译码相关联的成本,并且可将导致最低成本的值组合选择为要针对GoPt译码的(帧间预测标志和帧间预测模式的)值组合。
必须理解,在图10和图11的流程图中的上述步骤之间可存在对应于预测几何语法元素的译码的其他步骤。
需注意,发信号通知帧间预测语法元素的第一集合可能不一定与GoPt中的第一点一起进行,而是可在比特流中的其他位置。例如,其可与GoPt中的最后一点一起进行、在GoPt的开始之前、在GoPt的结束之后,或者与一个或多个GoPt相关联的语法元素的第一集合可在另一位置中被一起发信号通知(例如,切片报头的结束、预测树信令的结束等)。
本公开内容各个方面中的示例可单独地或以任何组合来使用。
以下编号的条款可以例示以上公开内容:
条款1A.一种对点云进行解码的方法,所述方法包括:响应于确定所述点云的第一点是所述点云的一个或多个点群组中的第一点群组中的第一点:从比特流中解析与针对所述第一点群组的帧间预测相关的一个或多个语法元素;以及基于所述一个或多个语法元素来预测所述第一点。
条款2A.根据条款1A所述的方法,还包括:响应于确定所述点云的第二点被包括在所述第一点群组中但不是所述第一点群组中的所述第一点:基于所述一个或多个语法元素预测所述第二点。
条款3A.根据条款2A所述的方法,其中基于所述一个或多个语法元素来预测所述第二点不包括从所述比特流中重新解析与针对所述第一点群组的帧间预测相关的所述一个或多个语法元素中包括的语法元素。
条款4A.根据条款1A所述的方法,还包括:响应于确定所述点云的第三点是所述一个或多个点群组中的第二点群组中的第一点:从所述比特流中解析与针对所述第二点群组的帧间预测相关的一个或多个语法元素;以及基于与针对所述第二点群组的帧间预测相关的所述一个或多个语法元素来预测所述第三点。
条款5A.根据条款4A所述的方法,还包括:响应于确定所述点云的第四点被包括在所述第二点群组中但不是所述第二点群组中的所述第一点:基于与针对所述第二点群组的帧间预测相关的所述一个或多个语法元素来预测所述第四点。
条款6A.根据条款1A所述的方法,还包括:从所述比特流中解析语法元素,所述语法元素具有表示所述一个或多个点群组中的每个点群组中包括的点的数量的值。
条款7A.根据条款6A所述的方法,其中具有表示所述一个或多个点群组中的每个点群组中包括的所述点的数量的所述值的所述语法元素包括ptn_group_size_minus1语法元素。
条款8A.根据条款1A所述的方法,还包括:从所述比特流中解析语法元素,所述语法元素具有指示所述第一点是否为所述第一点群组中的所述第一点的值。
条款9A.根据条款8A所述的方法,其中具有指示所述第一点是否为所述第一点群组中的所述第一点的所述值的所述语法元素包括gopt_start_flag语法元素。
条款1B.一种对点云进行编码的方法,所述方法包括:响应于确定所述点云的第一点是所述点云的一个或多个点群组中的第一点群组中的第一点:在比特流中编码与针对所述第一点群组的帧间预测相关的一个或多个语法元素。
条款2B.根据条款1B所述的方法,还包括:响应于确定所述点云的第二点被包括在所述第一点群组中但不是所述第一点群组中的所述第一点:跳过针对所述第二点对与针对所述第一点群组的帧间预测相关的所述一个或多个语法元素进行重新编码。
条款3B.根据条款1B所述的方法,还包括:响应于确定所述点云的第三点是所述一个或多个点群组中的第二点群组中的第一点:在所述比特流中编码与针对所述第二点群组的帧间预测相关的一个或多个语法元素。
条款4B.根据条款3B所述的方法,还包括:响应于确定所述点云的第四点被包括在所述第二点群组中但不是所述第二点群组中的所述第一点,跳过针对所述第四点对与针对所述第二点群组的帧间预测相关的所述一个或多个语法元素进行重新编码。
条款5B.根据条款1B所述的方法,还包括:在所述比特流中编码语法元素,所述语法元素具有表示所述一个或多个点群组中的每个点群组中包括的点的数量的值。
条款6B.根据条款5B所述的方法,其中具有表示所述一个或多个点群组中的每个点群组中包括的所述点的数量的所述值的所述语法元素包括ptn_group_size_minus1语法元素。
条款7B.根据条款1B所述的方法,还包括:在所述比特流中编码语法元素,所述语法元素具有指示所述第一点是否为所述第一点群组中的所述第一点的值。
条款8B.根据条款7B所述的方法,其中具有指示所述第一点是否为所述第一点群组中的所述第一点的所述值的所述语法元素包括gopt_start_flag语法元素。
条款9B.根据条款1B所述的方法,还包括生成所述点云。
条款1Z.一种用于处理点云的设备,所述设备包括用于执行根据条款1A至9B中任一项所述的方法的一个或多个构件。
条款2Z.根据条款1Z所述的设备,其中所述一个或多个构件包括实现于电路系统中的一个或多个处理器。
条款3Z.根据条款1Z或2Z中任一项所述的设备,还包括用于存储表示所述点云的所述数据的存储器。
条款4Z.根据条款1Z至3Z中任一项所述的设备,其中所述设备包括解码器。
条款5Z.根据条款1Z至4Z中任一项所述的设备,其中所述设备包括编码器。
条款6Z.根据条款1Z至5Z中任一项所述的设备,还包括用于生成所述点云的设备。
条款7Z.根据条款1Z至6Z中任一项所述的设备,还包括用于基于所述点云来呈现图像的显示器。
条款8Z.一种计算机可读存储介质,所述计算机可读存储介质具有存储在其上的指令,所述指令在被执行时使得一个或多个处理器执行根据条款1A至9B中任一项所述的方法。
要认识到的是,根据示例,本文中所描述的任何技术的某些动作或事件可以以不同的顺序来执行,可以被添加、合并或完全省略(例如,并非所有描述的动作或事件对于实施所述技术都是必要的)。此外,在某些示例中,动作或事件可以被并发地执行(例如,通过多线程处理、中断处理或多个处理器)而不是顺序地执行。
在一个或多个示例中,所描述的功能可以在硬件、软件、固件或它们的任何组合中实现。如果在软件中实现,则该功能可以作为一个或多个指令或代码存储在计算机可读介质上或者通过计算机可读介质进行传输并且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质(其对应于诸如数据存储介质之类的有形介质)或者通信介质,该通信介质包括例如根据通信协议来促进计算机程序从一个地方传输到另一地方的任何介质。以这种方式,计算机可读介质通常可以对应于(1)非暂态的有形计算机可读存储介质、或者(2)诸如信号或载波之类的通信介质。数据存储介质可以是可以由一个或多个计算机或者一个或多个处理器访问以检索用于实现本公开内容中所描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
通过示例而非限制的方式,此类计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁存储设备、闪存存储器、或者能够用于以指令或数据结构的形式存储期望的程序代码并且能够由计算机访问的任何其它介质。而且,任何连接被适当地称为计算机可读介质。例如,如果指令是使用同轴电缆、光纤光缆、双绞线、数字用户线(DSL)或者无线技术(诸如红外线、无线电和微波)从网站、服务器或其它远程源发射的,则同轴电缆、光纤光缆、双绞线、DSL或者无线技术(诸如红外线、无线电和微波)被包括在介质的定义中。然而,应当理解的是,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其它暂态介质,而是替代地针对非暂态的有形存储介质。如本文所使用的,磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软磁盘和蓝光光盘,其中磁盘通常磁性地再现数据,而光盘则利用激光来光学地再现数据。上述的组合应当也被包括在计算机可读介质的范围内。
指令可由一个或多个处理器来执行,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或其它等效的集成或分立逻辑电路系统。因此,如本文中所使用的术语“处理器”和“处理电路系统”可以指代前述结构中的任何一者或者适于实现本文中所描述的技术的任何其它结构。另外,在一些方面中,本文中所描述的功能性可以在被配置用于编码和解码的专用硬件和/或软件模块内提供,或者被并入组合的编解码器中。同样,这些技术可以在一个或多个电路或逻辑元件中被完全实现。
本公开内容的技术可以在各种各样的设备或装置中实现,包括无线手机、集成电路(IC)或一组IC(例如,芯片组)。在本公开内容中描述各种组件、模块或单元以强调被配置成执行所公开内容的技术的设备的功能性方面,但是不一定要求通过不同的硬件单元来实现。确切而言,如上文所描述的,各种单元可以被组合在编解码器硬件单元中,或者由可互操作的硬件单元的集合(包括如上文所描述的一个或多个处理器)结合适当的软件和/或固件来提供。
已经描述各个示例。这些和其它示例在以下权利要求的范围内。
Claims (30)
1.一种对点云进行编码的方法,所述方法包括:
响应于确定所述点云的第一点是所述点云的一个或多个点群组中的第一点群组中的第一点:
在比特流中编码针对所述第一点群组的一个或多个语法元素。
2.根据权利要求1所述的方法,还包括:
响应于确定所述点云的第二点被包括在所述第一点群组中但不是所述第一点群组中的所述第一点:
跳过针对所述第二点对针对所述第一点群组的所述一个或多个语法元素进行重新编码。
3.根据权利要求2所述的方法,还包括
响应于确定所述点云的第三点是所述一个或多个点群组的第二点群组中的第一点:
在所述比特流中编码针对所述第二点群组的一个或多个语法元素。
4.根据权利要求3所述的方法,还包括:
响应于确定所述点云的第四点被包括在所述第二点群组中但不是所述第二点群组中的所述第一点:
跳过针对所述第四点对针对所述第二点群组的所述一个或多个语法元素进行重新编码。
5.根据权利要求1所述的方法,还包括:
在所述比特流中编码语法元素,所述语法元素具有表示所述一个或多个点群组中的每个点群组中包括的点的数量的值。
6.根据权利要求5所述的方法,其中具有表示所述一个或多个点群组中的每个点群组中包括的所述点的数量的所述值的所述语法元素包括ptn_group_size_minus1语法元素。
7.根据权利要求1所述的方法,还包括:
在所述比特流中编码语法元素,所述语法元素具有指示所述第一点是否为所述第一点群组中的所述第一点的值。
8.根据权利要求7所述的方法,其中具有指示所述第一点是否为所述第一点群组中的所述第一点的所述值的所述语法元素包括gopt_start_flag语法元素。
9.根据权利要求1所述的方法,其中所述一个或多个语法元素包括与针对所述第一点群组的帧间预测相关的一个或多个语法元素,并且其中与针对所述第一点群组的帧间预测相关的所述一个或多个语法元素包括帧间预测标志和帧间预测模式语法元素中的一者或两者。
10.一种对点云进行解码的方法,所述方法包括:
响应于确定所述点云的第一点是所述点云的一个或多个点群组中的第一点群组中的第一点:
从比特流中解析与针对所述第一点群组的帧间预测相关的一个或多个语法元素;以及
基于所述一个或多个语法元素来预测所述第一点群组中的每个点。
11.根据权利要求10所述的方法,还包括:
响应于确定所述点云的第二点被包括在所述第一点群组中但不是所述第一点群组中的所述第一点:
基于所述一个或多个语法元素来预测所述第二点。
12.根据权利要求11所述的方法,其中基于所述一个或多个语法元素来预测所述第二点不包括:从所述比特流中重新解析与针对所述第一点群组的帧间预测相关的所述一个或多个语法元素中包括的所述语法元素。
13.根据权利要求10所述的方法,还包括
响应于确定所述点云的第三点是所述一个或多个点群组的第二点群组中的第一点:
从所述比特流中解析与针对所述第二点群组的帧间预测相关的一个或多个语法元素;以及
基于与针对所述第二点群组的帧间预测相关的所述一个或多个语法元素来预测所述第三点。
14.根据权利要求13所述的方法,还包括:
响应于确定所述点云的第四点被包括在所述第二点群组中但不是所述第二点群组中的所述第一点:
基于与针对所述第二点群组的帧间预测相关的所述一个或多个语法元素来预测所述第四点。
15.根据权利要求10所述的方法,还包括:
基于所述第一点的节点计数与所述第一点群组中包括的点的数量的比较,来确定所述点云的所述第一点是否为所述第一点群组中的所述第一点。
16.根据权利要求15所述的方法,其中确定所述点云的所述第一点是否为所述第一点群组中的所述第一点包括:
在所述第一点的所述节点计数除以所述第一点群组中的所述点的数量的余数等于零的情况下,确定所述点云的所述第一点是所述第一点群组中的所述第一点。
17.根据权利要求15所述的方法,还包括:
从所述比特流中解析语法元素,所述语法元素具有表示所述一个或多个点群组中的每个点群组中包括的点的数量的值,其中所述第一点群组中包括的所述点的数量是所述一个或多个点群组中的每个点群组中包括的所述点的数量。
18.根据权利要求17所述的方法,其中具有表示所述一个或多个点群组中的每个点群组中包括的所述点的数量的所述值的所述语法元素包括ptn_group_size_minus1语法元素。
19.根据权利要求10所述的方法,还包括:
从所述比特流中解析语法元素,所述语法元素具有指示所述第一点是否为所述第一点群组中的所述第一点的值。
20.根据权利要求19所述的方法,其中具有指示所述第一点是否为所述第一点群组中的所述第一点的所述值的所述语法元素包括gopt_start_flag语法元素。
21.根据权利要求10所述的方法,其中与针对所述第一点群组的帧间预测相关的所述一个或多个语法元素包括帧间预测标志和帧间预测模式语法元素中的一者或两者。
22.一种用于处理点云的设备,所述设备包括:
存储器,所述存储器被配置为存储所述点云的至少一部分;以及
一个或多个处理器,所述一个或多个处理器实现于电路系统中并且被配置成:
确定所述点云的第一点是否为所述点云的一个或多个点群组中的第一点群组中的第一点;以及
响应于确定所述点云的所述第一点是所述第一点群组中的所述第一点,在比特流中编码与针对所述第一点群组的帧间预测相关的一个或多个语法元素。
23.根据权利要求22所述的设备,其中所述一个或多个处理器被进一步配置为:
确定所述点云的第二点是否被包括在所述第一点群组中但不是所述第一点群组中的所述第一点;以及
响应于确定所述点云的所述第二点被包括在所述第一点群组中但不是所述第一点群组中的所述第一点,不针对所述第二点对与针对所述第一点群组的帧间预测相关的所述一个或多个语法元素进行重新编码。
24.根据权利要求23所述的设备,其中与针对所述第一点群组的帧间预测相关的所述一个或多个语法元素包括帧间预测标志和帧间预测模式语法元素中的一者或两者。
25.根据权利要求24所述的设备,其中所述一个或多个处理器被进一步配置为:
在所述比特流中编码语法元素,所述语法元素具有表示所述一个或多个点群组中的每个点群组中包括的点的数量的值。
26.一种用于处理点云的设备,所述设备包括:
存储器,所述存储器被配置为存储所述点云的至少一部分;以及
一个或多个处理器,所述一个或多个处理器实现于电路系统中并且被配置成:
确定所述点云的第一点是否为所述点云的一个或多个点群组中的第一点群组中的第一点;以及
响应于确定所述点云的所述第一点是所述第一点群组中的所述第一点:
从比特流中解析与针对所述第一点群组的帧间预测相关的一个或多个语法元素;以及
基于所述一个或多个语法元素来预测所述第一点。
27.根据权利要求26所述的设备,其中所述一个或多个处理器被进一步配置为:
确定所述点云的第二点是否被包括在所述第一点群组中但不是所述第一点群组中的所述第一点;以及
响应于确定所述点云的所述第二点被包括在所述第一点群组中但不是所述第一点群组中的所述第一点,基于所述一个或多个语法元素预测所述第二点。
28.根据权利要求27所述的设备,其中为了基于所述一个或多个语法元素来预测所述第二点,所述一个或多个处理器不从所述比特流中重新解析与针对所述第一点群组的帧间预测相关的所述一个或多个语法元素中包括的所述语法元素。
29.根据权利要求26所述的设备,其中为了确定所述点云的所述第一点是否为所述第一点群组中的所述第一点,所述一个或多个处理器被配置为:
在所述第一点的所述节点计数除以所述第一点群组中的所述点的数量的余数等于零的情况下,确定所述点云的所述第一点是所述第一点群组中的所述第一点。
30.根据权利要求26所述的设备,其中与针对所述第一点群组的帧间预测相关的所述一个或多个语法元素包括帧间预测标志和帧间预测模式语法元素中的一者或两者。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/250,953 | 2021-09-30 | ||
US17/934,860 | 2022-09-23 | ||
US17/934,860 US20230102401A1 (en) | 2021-09-30 | 2022-09-23 | Inter prediction coding for geometry point cloud compression |
PCT/US2022/077004 WO2023056232A1 (en) | 2021-09-30 | 2022-09-26 | Inter prediction coding for geometry point cloud compression |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117980953A true CN117980953A (zh) | 2024-05-03 |
Family
ID=90853960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280064781.3A Pending CN117980953A (zh) | 2021-09-30 | 2022-09-26 | 用于几何点云压缩的帧间预测译码 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117980953A (zh) |
-
2022
- 2022-09-26 CN CN202280064781.3A patent/CN117980953A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11803989B2 (en) | Quantization for geometry-based point cloud compression | |
CN114930858A (zh) | 用于基于几何的点云压缩的高级语法 | |
US11770562B2 (en) | High-level syntax for geometry-based point cloud compression | |
CN115769262A (zh) | 用于基于几何的点云压缩的属性参数译码 | |
US20220114763A1 (en) | High level syntax refinements for geometry point cloud compression (g-pcc) | |
EP4133455A1 (en) | Secondary component attribute coding for geometry-based point cloud compression (g-pcc) | |
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 | |
WO2022076175A1 (en) | Temporal scalability in geometry point cloud compression (g-pcc) | |
WO2023059987A1 (en) | Inter prediction coding with radius interpolation for predictive geometry-based point cloud compression | |
CN117980953A (zh) | 用于几何点云压缩的帧间预测译码 | |
US20230102401A1 (en) | Inter prediction coding for geometry point cloud compression | |
WO2023056232A1 (en) | Inter prediction coding for geometry point cloud compression | |
US20230230290A1 (en) | Prediction for geometry point cloud compression | |
US20230377208A1 (en) | Geometry coordinate scaling for ai-based dynamic point cloud coding | |
US20230099908A1 (en) | Coding point cloud data using direct mode for inter-prediction in g-pcc | |
US20230345044A1 (en) | Residual prediction for geometry point cloud compression | |
US20240029317A1 (en) | Coordinate conversion for geometry point cloud compression | |
WO2023225091A1 (en) | Geometry coordinate scaling for ai-based dynamic point cloud coding | |
CN118160006A (zh) | 用于预测性基于几何的点云压缩的具有半径插值的帧间预测译码 | |
CN116711313A (zh) | 用于几何体点云压缩的帧间预测编解码 | |
JP2024519664A (ja) | インター予測を使用するジオメトリポイントクラウド圧縮(gpcc)平面モードの性能改善 | |
TW202408244A (zh) | 用於幾何點雲端壓縮的內部預測譯碼 | |
WO2023205318A1 (en) | Improved residual prediction for geometry point cloud compression | |
WO2024086508A1 (en) | Predictive geometry coding of point cloud |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |