一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

点云数据的全局缩放的制作方法

2022-11-09 21:42:42 来源:中国专利 TAG:

点云数据的全局缩放
1.本技术要求于2021年4月7日提交的美国申请第17/224,984号和于2020年4月8日提交的美国临时申请第63/007,288号、于2020年4月15日提交的美国临时申请第63/010,546号、于2020年4月22日提交的美国临时申请第63/013,934号和于2020年6月19日提交的美国临时申请第63/041,668号的优先权,其通过引用整体并入本文。美国申请第17/224,984号要求于2020年4月8日提交的美国临时申请第63/007,288号、于2020年4月15日提交的美国临时申请第63/010,546号、于2020年4月22日提交的美国临时申请第63/013,934号和于2020年6月19日提交的美国临时申请第63/041,668号的权益。
技术领域
2.本公开涉及点云编码和解码。


技术实现要素:

3.本公开总体上描述了用于改进点云数据的量化及缩放的技术。本公开的技术可以与用于压缩(例如,编码和解码)点云数据的任何技术结合使用,包括基于几何的点云压缩(g-pcc)技术。特别地,帧的点可以被全局地缩放。也就是说,帧的所有点可以以相同的方式缩放。无论是全局还是局部的缩放都可以以避免导致点的位置超过其对应边界框的方式来执行。
4.在一个示例中,对点云数据进行解码的方法包括:对包括多个点的点云数据的帧进行解码,每个点与定义该点的相应位置的位置值相关联;确定帧的全局缩放因子;以及通过全局缩放因子来缩放每个点的位置值。
5.在另一个示例中,用于对点云数据进行解码的设备包括存储器,该存储器被配置为存储点云数据;和一个或多个处理器,该一个或多个处理器在电路中实现并且被配置为:解码包括多个点的该点云数据的帧,每个多个点中的每个点与定义该点的相应位置的位置值相关联;确定该帧的全局缩放因子;和通过全局缩放因子来缩放每个点的位置值。
6.在另一示例中,计算机可读存储介质具有存储于其上的指令,该指令在执行时致使处理器:对包括多个点的点云数据的帧进行解码,多个点中的每个点与定义该点的相应位置的位置值相关联;确定该帧的全局缩放因子;以及通过全局缩放因子来缩放每个点的位置值。
7.在另一个示例中,用于对点云数据进行解码的设备,该设备包括:用于对包括多个点的点云数据的帧进行解码的部件,每个点与定义该点的相应位置的位置值相关联;确定帧的全局缩放因子;以及通过全局缩放因子来缩放每个点的位置值。
8.在另一个示例中,对点云数据进行编码的方法包括对包括多个点的点云数据的帧进行编码,每个点与定义该点的相应位置的位置值相关联;确定该帧的初始全局缩放因子;确定用于指定要应用于该初始全局缩放因子的细化值的位的数量;确定具有位的数量的缩放因子细化值;以及生成位流,该位流包括表示已编码帧、用于指定细化值的位的数量和缩放因子细化值的数据。
9.在附图和下面的描述中阐述了一个或多个示例的细节。根据说明书、附图和权利要求书,其他特征、目的和优点将是显而易见的。
附图说明
10.图1是图示了可以执行本公开的技术的示例性编码和解码系统的框图。
11.图2是图示了示例性几何点云压缩(g-pcc)编码器的框图。
12.图3是图示了示例性g-pcc解码器的框图。
13.图4是图示了示例性步长函数的曲线图。
14.图5是图示了根据本公开的技术的用于对基于几何的点云数据进行编码的示例性方法的流程图。
15.图6是图示了根据本公开的技术的用于解码基于几何的点云数据的示例性方法的流程图。
具体实施方式
16.图1是图示了可执行本公开的技术的示例性编码和解码系统100的框图。本公开的技术大体上针对编解码(编码和/或解码)点云数据,即,支持点云压缩。通常,点云数据包括用于处理点云的任何数据。编解码在压缩和/或解压缩点云数据时可以是有效的。
17.如图1所示,系统100包括源设备102和目的地设备116。源设备102提供要由目的地设备116解码的经编码的点云数据。具体来说,在图1的示例中,源设备102经由计算机可读介质110将点云数据提供到目的地设备116。源设备102和目的地设备116可包括如下广泛范围的设备中的任一者,包括台式计算机、笔记本(即,膝上型)计算机、平板计算机、机顶盒、诸如智能电话的电话手持机、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频串流设备、陆地或海运车辆、航天器、飞机、机器人、lidar(激光雷达)设备、卫星等。在一些情况下,源设备102和目的地设备116可以被配备用于无线通信。
18.在图1的示例中,源设备102包括数据源104、存储器106、g-pcc编码器200和输出接口108。目的地设备116包括输入接口122、g-pcc解码器300、存储器120和数据消耗器(data consumer)118。根据本公开,源设备102的g-pcc编码器200和目的地设备116的g-pcc解码器300可被配置为应用本公开的与以下相关的技术:(1)确定被缩放的点云是否违反序列参数集(sps)边界框约束;(2)使用标准化缩放语法元素确定点云的全局缩放因子;(3)基于语法元素或一个或多个qp值确定缩放功率值;和/或(4)确定sps边界框内的边界框。因此,源设备102表示编码设备的示例,而目的地设备116表示解码设备的示例。在其他示例中,源设备102和目的地设备116可以包括其他组件或布置。例如,源设备102可从内部或外部源接收数据(例如,点云数据)。同样地,目的地设备116可以与外部数据消耗器对接,而不是在同一设备中包括数据消耗器。
19.如图1所示的系统100仅是一个示例。一般来说,其他数字编码和/或解码设备可以执行本发明的与以下各项相关的技术:(1)确定被缩放的点云是否违反序列参数集(sps)边界框约束;(2)使用标准化缩放语法元素确定点云的全局缩放因子;(3)基于语法元素或一个或多个qp值确定缩放功率值;和/或(4)确定sps边界框内的边界框。源设备102和目的地设备116仅为其中源设备102产生经编码的数据以用于发送到目的地设备116的此类设备的
示例。本公开将“编解码(coding)”设备称为执行数据的编解码(编码和/或解码)的设备。因此,g-pcc编码器200和g-pcc解码器300分别代表编解码设备的示例,尤其是编码器和解码器。在一些示例中,源设备102和目的地设备116可以按基本上对称的方式操作,使得源设备102和目的地设备116中的每一者都包括编码和解码组件。因此,系统100可支持源设备102与目的地设备116之间的单向或双向发送,例如,以用于流式传输、重放、广播、电话、导航和其他应用。
20.通常,数据源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接收和/或取得。
21.源设备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可以存储表示点云的数据。
22.计算机可读介质110可以表示能将经编码的数据从源设备102传输到目的地设备116的任何类型的介质或设备。在一个示例中,计算机可读介质110表示通信介质,以使得源设备102能够例如经由射频网络或基于计算机的网络实时地向目的地设备116发送经编码的数据。根据通信标准,诸如无线通信协议,输出接口108可以调制包括经编码的数据的传输信号,并且输入接口122可以解调所接收的传输信号。通信介质可以包括任何无线或有线通信介质,诸如射频(rf)频谱或一条或多条物理传输线。通信介质可以形成基于分组的网络(诸如局域网、广域网或全球网络(诸如因特网))的一部分。通信介质可以包括路由器、交换机、基站或有助于促进从源设备102到目的地设备116的通信的任何其他装备。
23.在一些示例中,源设备102可以从输出接口108向存储设备112输出经编码的数据。类似地,目的地设备116可以经由输入接口122访问来自存储设备112的经编码的数据。存储设备112可以包括各种分布式或本地访问的如下数据存储介质中的任何一种,诸如硬盘、蓝
光光盘、dvd、cd-rom、闪存、易失性或非易失性存储器,或者用于存储经编码的数据的任何其他合适的数字存储介质。
24.在一些示例中,源设备102可以向文件服务器114或可以存储由源设备102生成的经编码的视频的另一中间存储设备输出经编码的数据。目的地设备116可以经由流传输或下载来从文件服务器114访问所存储的数据。文件服务器114可以是能存储经编码的数据并向目的地设备116发送该经编码的数据的任何类型的服务器设备。文件服务器114可以表示网页服务器(例如,用于网站的)、文件传输协议(ftp)服务器、内容传递网络设备或网络附加存储(nas)设备。目的地设备116可以通过任何标准数据连接,包括互联网连接,访问来自文件服务器114的经编码的数据。这可以包括适于访问存储在文件服务器114上的经编码的数据的无线信道(例如,wi-fi连接)、有线连接(例如,数字订户线(dsl)、电缆调制解调器等)或者二者的组合。文件服务器114和输入接口122可以被配置为根据流传输协议、下载传输协议或其组合来操作。
25.输出接口108和输入接口122可以表示无线发送器/接收器、调制解调器、有线网络组件(例如,以太网卡)、根据各种ieee 802.11标准中的任何标准操作的无线通信组件,或其他物理组件。在输出接口108和输入接口122包括无线组件的示例中,输出接口108和输入接口122可以被配置为根据诸如4g、4g-lte(长期演进)、lte高级、5g或类似标准的蜂窝通信标准来传输诸如经编码数据的数据。在输出接口108包括无线发送器的一些示例中,输出接口108和输入接口122可以被配置为根据其他无线标准、诸如ieee 802.11规范、ieee 802.15规范(例如,zigbee
tm
)、蓝牙
tm
标准或类似标准来传输数据、诸如经编码的数据。在一些示例中,源设备102和/或目的地设备116可以包括各自的片上系统(soc)设备。例如,源设备102可以包括执行属于g-pcc编码器200和/或输出接口108的功能性的soc设备,并且目的地设备116可以包括执行属于g-pcc解码器300和/或输入接口122的功能性的soc设备。
26.本公开的技术可以应用于支持如下各种应用中的任何应用的编码和解码:诸如自主车辆之间的通信、扫描仪、相机、传感器和诸如本地或远程服务器之类的处理设备之间的通信、地理地图绘制或其他应用。
27.目的地设备116的输入接口122从计算机可读介质110(例如,通信介质、存储设备112、文件服务器114等)接收经编码的位流。经编码的位流可以包括由g-pcc编码器200定义也由g-pcc解码器300使用的信号通知信息,诸如具有描述经编解码的单元(例如,条带、图片、图片群组、序列等)的特性和/或处理的值的语法元素。数据消耗器118使用被解码的数据。例如,数据消耗器118可以使用被解码的数据来确定物理对象的位置。在一些示例中,数据消耗器118可以包括用于呈现基于点云的图像的显示器。
28.g-pcc编码器200和g-pcc解码器300各自可以被实现为如下多种合适的编码器和/或解码器电路中的任何一种:诸如一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、分立逻辑、软件、硬件、固件或其任何组合。当该技术部分地以软件实现时,设备可以将用于软件的指令存储在合适的非暂时计算机可读介质中,并使用一个或多个处理器在硬件中执行该指令来执行本公开的技术。g-pcc编码器200和g-pcc解码器300中的每一者可以被包括在一个或多个编码器或解码器中,其中任一个可以被集成为相应设备中的组合编码器/解码器(codec)的一部分。包括g-pcc编码器200和/或g-pcc解码器300的设备可包括一个或多个集成电路、微处理器和/或其他类型的设备。
29.g-pcc编码器200和g-pcc解码器300可根据编解码标准来操作,诸如视频点云压缩(v-pcc)标准或几何点云压缩(g-pcc)标准。本公开通常可以涉及图片的编解码(例如,编码和解码),以包括编码或解码图片数据的过程。经编码的位流通常包含表示编解码决策(例如,编解码模式)的语法元素的一系列值。
30.本公开可以通常涉及“信号通知”特定信息,诸如语法元素。术语“信号通知”通常可以指用来解码经编码的数据的用于语法元素和/或其他数据的值的传送。也就是说,g-pcc编码器200可以在位流中信号通知用于语法元素的值。通常,信号通知指的是在位流中生成值。如上所述,源设备102可以基本上实时地(或非实时地,诸如可能在将语法元素存储到存储设备112以供稍后由目的地设备116取得时发生)将位流传送到目的地设备116。
31.iso/iec mpeg(jtc 1/sc 29/wg 11)正在研究对具有显著超过当前方法的压缩能力的点云编解码技术的标准化的潜在需求,并且将致力于创建该标准。该小组在称为3维图形团队(3dg)的协作工作中一起致力于该探索活动,以评估他们在该领域的专家所提出的压缩技术设计。
32.点云压缩活动被分类成两种不同的方法。第一种方法是“视频点云压缩”(v-pcc),其对3d对象进行分段,并且将这些分段投影在多个2d平面(其被表示为2d帧中的“图像块(patch)”)中,这些分段进一步由诸如高效视频编解码(hevc)(itu-th.265)编解码器之类的传统2d视频编解码器进行编解码。第二种方法是“基于几何的点云压缩”(g-pcc),其直接压缩3d几何图形,即3d空间中的点集的位置,以及相关联的属性值(针对与3d几何图形相关联的每个点)。g-pcc针对类型1(静态点云)和类型3(动态获取的点云)中的点云的压缩。g-pcc标准的最近草案可在2020年1月的比利时布鲁塞尔的g-pcc dis、iso/iec jtc1/sc29/wg11 w19088中获得,并且编解码器的描述可在2020年1月的g-pcc编解码器描述v6、iso/iec jtc1/sc29/wg11 w19091中获得。
33.点云包含3d空间中的点集,并且可以具有与该点相关联的属性。属性可以是颜色信息,诸如r、g、b或y、cb、cr,或反射比信息,或其他属性。点云可以由各种相机或传感器(诸如lidar传感器和3d扫描仪)捕获,并且也可以是计算机生成的。点云数据被用于各种应用,包括但不限于建筑(建模)、图形(用于可视化和动画的3d模型)和汽车工业(用于帮助导航的lidar传感器)。
34.点云数据占据的3d空间可由虚拟边界框包围。边界框中的点的位置可以由特定精度表示;因此,可以基于精度来量化一个或多个点的位置。在最小的层次上,边界框被分成体素(voxel),这些体素是由单位立方体表示的空间的最小单位。边界框中的体素可以与零个、一个或多个点相关联。边界框可以被分割成多个立方体/长方体区域,其可以被称为切片(tile)。每个切片可被编解码成一个或多个条带(slice)。将边界框分割成条带和切片可基于每一分割中的点的数量,或基于其他考虑(例如,特定区可被编解码为切片)。可以使用与视频编解码器中的那些类似的分割决策来进一步分割条带区域。
35.图2是图示了g-pcc编码器200的一组示例性组件的框图。图3是图示了g-pcc解码器300的一组示例性组件的框图。所示模块是逻辑型的,并且不必一对一地对应于g-pcc编解码器的参考实现方式中实现的代码,即iso/iec mpeg(jtc 1/sc 29/wg 11)研究的tmc13测试模型软件。
36.在g-pcc编码器200和g-pcc解码器300中,首先编解码各个点云位置。属性编解码
取决于被解码的几何图形。在图2和图3中,灰色阴影的模块是典型地用于类别1数据的选项。对角交叉影线模块是典型地用于类别3数据的选项。所有其他模块在类别1和类别3之间是共同的。
37.对于类别3数据,压缩的几何图形通常表示为从根一直到单个体素的叶层的八叉树。对于类别1数据,压缩的几何图形典型地由修剪的八叉树(即从根向下到大于体素的块的叶级的八叉树)加上近似修剪的八叉树的每个叶中的表面的模型来表示。以此方式,类别1和类别3数据共享八叉树编解码机制,而类别1数据可以另外用表面模型近似每个叶内的体素。所使用的表面模型是包括每块1-10个三角形的三角剖分,从而产生三角形集合(soup)。因此,类别1几何图形编解码器被称为trisoup几何图形编解码器,而类别3几何图形编解码器被称为八叉树几何图形编解码器。
38.在八叉树的每个节点处,发信号通知(当不推断时)其子节点(多达八个节点)中的一者或多者的占用率。指定多个邻域,包括(a)与当前八叉树节点共享一个面的节点,(b)与当前八叉树节点共享一个面、边或顶点的节点等。在每个邻域内,节点和/或其子节点的占用率可以用于预测当前节点或其子节点的占用率。对于稀疏地分布在八叉树的某些节点中的点,该编解码器还支持直接编解码模式,其中该点的3d位置被直接编码。可以发信号通知一个标志以指示发信号通知直接模式。在最低级别,也可以编解码与八叉树节点/叶节点相关联的点数。
39.一旦几何图形被编解码,对应于几何图形点的属性就被编解码。当存在对应于一个经重构/经解码几何点的多个属性点时,可推导表示重构的点的属性值。
40.g-pcc中有三种属性编解码方法:区域自适应分级变换(raht)编解码、基于插值的分级最近邻预测(预测变换)以及具有更新/提升步骤的基于插值的分级最近邻预测(提升变换)。raht和提升通常用于类别1数据,而预测通常用于类别3数据。然而,任一种方法可用于任何数据,并且就像g-pcc中的几何编解码器一样,在位流中指定用于对点云进行编解码的属性编解码方法。
41.属性的编解码可以在细节层次(level-of-detail,lod)中进行,其中通过每个细节层次,可以获得点云属性的更细化表示。可以基于距相邻节点的距离度量或基于采样距离来指定每个细节层次。
42.在g-pcc编码器200处,对作为属性的编解码方法的输出而获得的残差进行量化。可使用上下文自适应算术编解码来对经量化的残差进行编解码。
43.在图2的示例中,g-pcc编码器200可包括坐标变换单元202、颜色变换单元204、体素化单元206、属性传递单元208、八叉树分析单元210、表面近似分析单元212、算术编码单元214、几何重构单元216、raht单元218、lod生成单元220、提升单元222、系数量化单元224和算术编码单元226。
44.如图2的示例所示,g-pcc编码器200可接收位置集和属性集。该位置可以包括点云中的点的坐标。属性可以包括关于点云中的点的信息,诸如与点云中的点相关联的颜色。
45.坐标变换单元202可对点的坐标应用变换以将坐标从初始域变换到变换域。本公开可将经变换坐标称为变换坐标。颜色变换单元204可应用变换以将属性的颜色信息变换到不同的域。例如,颜色变换单元204可将颜色信息从rgb颜色空间变换到ycbcr颜色空间。
46.此外,在图2的示例中,体素化单元206可将变换坐标体素化。变换坐标的体素化可
包括量化和移除点云的一些点。换句话说,点云的多个点可以包含在单个“体素”内,此后在一些方面可以将其视为一个点。
47.根据本公开的技术,体素化单元206可确定可应用于基于几何的点云数据的帧中的所有点的位置值的全局量化因子。在一些示例中,g-pcc编码器200可显式地发信号通知表示全局量化因子(其也可称为全局缩放因子,因为g-pcc解码器300可使用该因子来执行缩放)的数据。在一些示例中,可在第一高位深度(first,high bit depth)处表达这些点的位置值,并且体素化单元206可将这些点的位置值量化为第二较低位深度。在一些示例中,g-pcc编码器200可对表示第二位深度的数据进行编码。
48.体素化单元206可使用具有两个部分的量化(或缩放)因子来量化基于几何的点云数据的帧的点的位置值:第一部分是二次幂,并且第二部分用作细化值。细化值可以具有特定数量的位,并且因此具有在二次幂值之间的特定数量的划分(division)。同样地,g-pcc编码器200可以对表示细化值的位的数量的数据进行编码。作为一个示例,如果有两个位用于细化值,则细化值可以是0、1、2或3中的一者,并且二次幂之间的间隔可以被划分为四分之一。下表表示量化/缩放因子以及相应二次幂值和细化值的示例:
49.此外,八叉树分析单元210可以基于体素化的变换坐标生成八叉树。另外,在图2的示例中,表面近似分析单元212可分析这些点以潜在地确定点集的表面表示。算术编码单元214可对表面近似分析单元212所确定的表示八叉树和/或表面的信息的语法元素进行熵编码。g-pcc编码器200可在几何位流中输出这些语法元素。
50.几何重构单元216可以基于八叉树、指示由表面近似分析单元212确定的表面的数
据和/或其他信息来重构点云中的点的变换坐标。由于体素化和表面近似,由几何重构单元216重构的变换坐标的数量可以不同于点云的点的原始数量。本公开可以将所得到的点称为重构点。属性传送单元208可以将点云的初始点的属性传送到点云的重构点。
51.此外,raht单元218可将raht编解码应用于经重构的点的属性。可替代地或另外,lod产生单元220和提升单元222可分别将lod处理和提升应用于经重构的点的属性。raht单元218及提升单元222可基于该属性生成系数。系数量化单元224可量化由raht单元218或提升单元222产生的系数。算术编码单元226可将算术编解码应用于表示经量化的系数的语法元素。g-pcc编码器200可在属性位流中输出这些语法元素。
52.在图3的示例中,g-pcc解码器300包括几何算术解码单元302、属性算术解码单元304、八叉树合成单元306、逆量化单元308、表面近似合成单元310、几何重构单元312、raht单元314、lod生成单元316、逆提升单元318、逆变换坐标单元320和逆变换颜色单元322。
53.g-pcc解码器300可获得几何位流和属性位流。解码器300的几何算术解码单元302可将算术解码(例如,上下文自适应二进制算术编解码(cabac)或其他类型的算术解码)应用于几何位流中的语法元素。类似地,属性算术解码单元304可将算术解码应用于属性位流中的语法元素。
54.八叉树合成单元306可以基于从几何位流解析的语法元素合成八叉树。在几何位流中使用表面近似的情况下,表面近似合成单元310可基于从几何位流剖析的语法元素且基于八叉树来确定表面模型。
55.此外,几何重构单元312可以执行重构以确定点云中的点的坐标。逆变换坐标单元320可将逆变换应用于经重构的坐标以将点云中的点的经重构的坐标(位置)从变换域转换回到初始域。
56.根据本公开的技术,几何重构单元312可通过缩放因子来缩放基于几何的点云数据的帧中的点的位置值。在一些示例中,几何重构单元312可以以避免超过对应边界框的边界的方式来缩放位置值。例如,如果缩放将致使位置值中的所述一个位置值超过对应边界框的边界,那么几何重构单元312可将位置值中的该一者限幅为替代地在对应边界框的边界内。
57.在一些示例中,几何图形重构单元312可以解码用于基于几何的点云数据的帧的全局缩放因子。全局缩放因子可以具有两个分量:二次幂分量和细化分量。几何重构单元312可以使用二次幂分量和细化分量来计算要用于缩放基于几何的点云数据的帧的所有点的位置值的全局缩放因子。通常,在概念上,几何重构单元312可以将n解码为要被应用以计算二次幂因子(2n)的指数,将2n和2
n 1
之间的范围除以可能的细化值的数量,将细化值r(具有b位)乘以除式得到的值(并且将结果与二次幂因子级联。
58.如上所述,几何重构单元312可以根据以下伪码来实现该计算:
59.globalscalebase=1《《global_scale_refinement_num_bits
60.globalscaleshift=global_scale_refinement_num_bits
61.globalscaleoffset=globalscaleshift?1《《(globalscaleshift

1):0
62.globalscale=(globalscalebase global_scale_refinement_factor)《《global_scale_factor_log2
63.特别地,如上所述,g-pcc解码器300可解码全局缩放因子的对数值部分(例如,global_scale_factor_log2)、表示细化位的数量的值(例如,global_scale_refinement_num_bits)以及全局缩放细化值(例如,global_scale_factor_refinement)。g-pcc解码器300可从序列参数集中解码这些值。几何重构单元312然后可以将这些值应用于上述伪码中以计算全局缩放因子。最后,几何重构单元312然后可以使用全局缩放因子如上所述全局地缩放这些点的位置值。
64.另外,在图3的示例中,逆量化单元308可逆量化属性值。属性值可以基于从属性位流获得的语法元素(例如,包括由属性算术解码单元304解码的语法元素)。
65.取决于如何编码属性值,raht单元314可执行raht编解码以基于逆量化属性值来确定点云的点的颜色值。可替代地,lod生成单元316和逆提升单元318可使用基于细节水平的技术来确定点云的点的颜色值。
66.此外,在图3的示例中,逆变换颜色单元322可将逆颜色变换应用于颜色值。逆颜色变换可以是由编码器200的颜色变换单元204应用的颜色变换的逆。例如,颜色变换单元204可将颜色信息从rgb颜色空间变换到ycbcr颜色空间。因此,逆颜色变换单元322可将颜色信息从ycbcr颜色空间变换到rgb颜色空间。
67.图2和图3的各种单元经图示以帮助理解由编码器200和解码器300执行的操作。这些单元可以被实现为固定功能电路、可编程电路或其组合。固定功能电路是指提供特定功能并预设了能够执行的操作的电路。可编程电路是指可以被编程来执行各种任务并且在能够执行的操作中提供灵活功能的电路。举例来说,可编程电路可以运行软件或固件,使可编程电路按由软件或固件的指令定义的方式操作。固定功能电路可以运行软件指令(例如,以接收参数或输出参数),但是固定功能电路执行的操作类型通常是不可变的。在一些示例中,单元中的一者或多者可以是不同的电路块(固定功能或可编程),并且在一些示例中,一个或多个单元可以是集成电路。
68.g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可以浮点格式或非常高的位深度表示原始点云。g-pcc编解码器可量化输入点云,并以某一位深度对量化的输入点云进行体素化,如图2的体素化单元206和图3的逆量化单元308所示,然后量化并去除g-pcc框图(例如,见图2)中的点(体素化,voxelize)块。g-pcc编码器200可在该块中的编码器处应用量化以便进行体素化,并且可在解码器侧执行缩放,主要用于将被解码的点云映射(即,以体素为单位)在应用特定的物理空间(即,在物理维度上)中。可使用语法元素sps_source_scale_factor_numerator_minus1和sps_source_scale_factor_denominator_minus1来发信号通知可由解码器用于此操作的缩放值。量化过程是预处理步骤(例如,在编码之前),而缩放过程是后处理步骤(例如,在解码之后),这不会影响整个编解码过程,例如,它们本质上是非标准化的。
69.sps_source_scale_factor_numerator_minus1ue(v)sps_source_scale_factor_denominator_minus1ue(v)
70.为了本公开的目的,在编码器侧(例如,g-pcc编码器200),非标准化量化之前的点云可被称为非标准化的点云,而非标准化量化之后的点云可被称为量化的点云;该量化与可以由g-pcc编解码器进行的量化无关。类似地,g-pcc解码器300的输出称为量化的点云;解码器侧的任何非标准化缩放的输出被称为非量化的点云。g-pcc解码器300的输出可以是
标准化缩放操作的结果。
71.类似于图像和视频中的图片宽度和高度的概念,点云可以具有边界框的概念,由此点云中的所有点被认为存在于边界框内。换句话说,可定义边界框,使得边界框包括或包含点云中的所有点。
72.在捕获或生成点云时,可以指定边界框以捕获所有点。该边界框可以被称为源边界框。在g-pcc中,指定可以指示源边界框的sps边界框。出于本公开的目的,sps边界框可被称为源边界框。在g-pcc中没有定义描述源边界框的单元,让应用程序来确定这些单元。以下提供与sps边界框相关联的语法和语义。
73.假定(因为这种行为在g-pcc规范中没有定义)g-pcc解码器300的输出可使用源缩放因子(从sps_source_scale_factor_numerator_minus1和sps_source_scale_factor_denominator_minus1推导的)来缩放,并且该(非标准化)缩放的输出被包含在sps边界框内。
74.下表表示包括示例性源边界框语法元素的示例性序列参数集(sps):
75.76.以上示例性sps中的示例性源边界框语法的某些语法元素的语义可定义如下:
77.main_profile_compatibility_23bitsflag等于1指定位流符合主简档。main_profile_compatibility_flag等于0指定位流符合除主简档之外的简档。
78.reserved_profile_compatibility_22在符合本规范的这个版本的位流中应该等于0。reserved_profile_compatibility_22bits的其他值被保留以供iso/iec将来使用。解码器将忽略reserved_profile_compatibility_2bits的值。
79.unique_point_positions_constraint_flag等于1指示在引用当前sps的每个点云帧中,所有输出点具有唯一的位置。unique_point_positions_constraint_flag等于0指示在引用当前sps的任何点云帧中,两个或更多输出点可具有相同位置。
80.注意,例如,即使所有点在每个条带中都是唯一的,来自帧中的不同条带的点也可能重叠。在这种情况下,unique_point_positions_constraint_flag应该被设置为0。
81.level_idc指示位流符合附录a中指定的级别。位流不应包含除了附录a中指定的值之外的level_idc的值。level_idc的其他值被保留以供iso/iec将来使用。
82.sps_seq_parameter_set_id提供sps的识别符以供其他语法元素参考。在符合本说明书的这个版本的位流中,sps_seq_parameter_set_id的值应该为0。sps_seq_parameter_set_id的除0以外的值被保留以供iso/iec将来使用。
83.sps_bounding_box_present_flag等于1指示在sps中发信号通知边界框参数。sps_bounding_box_present_flag等于0指示未定义边界框的大小。
84.sps_bounding_box_offset_x、sps_bounding_box_offset_y和sps_bounding_box_offset_z指示笛卡尔坐标中的源边界框的量化的x、y和z偏移。当不存在时,sps_bounding_box_offset_x、sps_bounding_box_offset_y和sps_bounding_box_offset_z的值各自被推断为0。
85.sps_bounding_box_offset_log2_scale指示用于缩放量化的x、y和z源边界框偏移的缩放因子。当不存在时,sps_bounding_box_offset_log2_scale的值被推断为0。
86.sps_bounding_box_size_width、sps_bounding_box_size_height和sps_bounding_box_size_depth指示笛卡尔坐标中的源边界框的宽度、高度和深度。
87.sps_source_scale_factor_numerator_minus1加1指示源点云的缩放因子分子。
88.sps_source_scale_factor_denominator_minus1加1指示源点云的缩放因子分母。
89.除了源边界框之外,g-pcc编解码器可以确定(例如,指定)切片边界框。切片边界框可以与切片的点相关联。g-pcc编码器(例如,g-pcc编码器200)可以在tile_inventory()语法中发信号通知切片边界框。每个tile_inventory()语法结构可以与tile_frame_idx所指定的帧相关联。
90.下表表示示例性的切片库存语法结构:
91.tile_inventory(){描述符tile_frame_idx?num_tiles_minus1u(16)for(i=0;i《=num_tiles_minus1;i ){ tile_bounding_box_offset_x[i]se(v)
tile_bounding_box_offset_y[i]se(v)tile_bounding_box_offset_z[i]se(v)tile_bounding_box_size_width[i]ue(v)tile_bounding_box_size_height[i]ue(v)tile_bounding_box_size_depth[i]ue(v)} byte_alignment() } [0092]
示例性切片库存语法结构的语义可以定义如下:
[0093]
num_tiles_minus1加1指定存在于切片清单中的切片边界框的数量。
[0094]
tile_bounding_box_offset_x[i]、tile_bounding_box_offset_y[i]和tile_bounding_box_offset_z[i]指示笛卡尔坐标中的第i个切片的x、y和z偏移。
[0095]
tile_bounding_box_size_width[i],tile_bounding_box_size_height[i]和tile_bounding_box_size_depth[i]指示笛卡尔坐标中的第i个切片的宽度、高度和深度。
[0096]
尽管可能未明确指定用于条带的边界框,但g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可确定(例如,指定)可包括条带中的点的框(其可称为条带框或条带边界框)。条带框的指定可以包括指定框的一个角以及框的宽度、高度和深度的条带原点。
[0097]
几何参数集(gps)可以具有是否针对条带发信号通知显式条带原点的指示。如果存在明确的条带原点,则g-pcc编码器(例如,g-pcc编码器200)可在gps或在几何条带标头(gsh)处发信号通知相关联的缩放值。当没有发信号通知显式条带起始点时,g-pcc解码器(例如,g-pcc解码器300)可推断相关联的缩放值等于(0,0,0)。
[0098]
在下表中示出了条带(边界)框的示例语法结构,其包含gps和几何条带标头的示例。
[0099]
[0100][0101]
以上示例性gps的语法元素的语义可以定义如下:
[0102]
gps_geom_parameter_set_id提供了用于gps的标识符,以供其他语法元素参考。gps_seq_parameter_set_id的值应当在0到15的范围内,包括端值。
[0103]
gps_seq_parameter_set_id指定了用于活动sps的sps_seq_parameter_set_id的值。gps_seq_parameter_set_id的值应当在0到15的范围内,包括端值。
[0104]
gps_box_present_flag等于1指定在参考当前gps的几何标头中提供附加的边界框信息。gps_bounding_box_present_flag等于0指定不在几何标头中发信号通知附加的边界框信息。
[0105]
gps_gsh_box_log2_scale_present_flag等于1指定gsh_box_log2_scale在参考
当前gps的每个几何条带标头中被发信号通知。gps_gsh_box_log2_scale_present_flag等于0指定gsh_box_log2_scale不在每个几何条带标头中被发信号通知,并且所有条带的公共缩放在当前gps的gps_gsh_box_log2_scale中被发信号通知。
[0106]
gps_gsh_box_log2_scale指示参考当前gps的所有条带的边界框原点的共同缩放因子。
[0107]
以下是几何条带标头中的相关语法元素的语义:
[0108]
gsh_geometry_parameter_set_id指定了活动gps的gps_geom_parameter_set_id的值。
[0109]
gsh_tile_id指定由gsh引用的切片标识(tile id)的值。gsh_tile_id的值应当在0到xx的范围内,包括端值。
[0110]
gsh_slice_id标识条带报头,以供其他语法元素参考。gsh_slice_id的值应当在0到xx的范围内,包括端值。
[0111]
frame_idx指定了概念上的帧数计数器的log2_max_frame_idx 1个最低有效位。具有frame_idx的不同值的连续条带形成不同输出点云帧的部分。具有相同frame_idx值而没有插入的帧边界标记数据单元的连续条带形成相同输出点云帧的部分。
[0112]
gsh_num_points指定了条带中经编解码的点的最大数量。位流符合性的要求是gsh_num_points大于或等于条带中的被解码的点的数量。
[0113]
gsh_box_log2_scale指定用于条带的边界框原点的缩放因子。
[0114]
gsh_box_origin_x指定边界框原点的x值,其通过gsh_box_log2_scale值缩放。
[0115]
gsh_box_origin_y指定边界框原点的y值,其通过gsh_box_log2_scale值缩放。
[0116]
gsh_box_origin_z指定边界框原点的z值,其通过gsh_box_log2_scale值缩放。
[0117]
变量slice_origin_x、slice_origin_y和slice_origin_z推导如下:
[0118]
如果gps_gsh_box_log2_scale_present_flag等于0,
[0119]
则originscale被设置为等于gsh_box_log2_scale,
[0120]
否则(gps_gshs_box_log2_scale_present_flag等于1),
[0121]
originscale被设置为等于gps_gsh_box_log2_scale。
[0122]
如果gps_box_present_flag等于0,
[0123]
则slice_origin_x和slice_origin_y和slice_origin_z的值被推断为0。
[0124]
否则(gps_box_present_flag等于1),应用以下:
[0125]
slice_origin_x=gsh_box_origin_x《《originscale
[0126]
slice_origin_y=gsh_box_origin_x《《originscale
[0127]
slice_origin_z=gsh_box_origin_x《《originscale
[0128]
gsh_log2_max_nodesize_x指定x维中的边界框大小,即,在如下解码过程中使用的maxnodesizexlog2。
[0129]
maxnodesizexlog2=gsh_log2_max_nodesize_x
[0130]
maxnodesizex=1《《maxnodesizexlog2
[0131]
gsh_log2_max_nodesize_y_minus_x指定y维中的边界框大小,即,在解码过程中使用的maxnodesizeylog2如下:
[0132]
maxnodesizeylog2=gsh_log2_max_nodesize_y_minus_x maxnodesizexlog2。
[0133]
maxnodesizey=1《《maxnodesizeylog2。
[0134]
gsh_log2_max_nodesize_z_minus_y指定z维中的边界框大小,即,如下在解码过程中使用的maxnodesizezlog2。
[0135]
maxnodesizezlog2=gsh_log2_max_nodesize_z_minus_y maxnodesizeylog2
[0136]
maxnodesizez=1《《maxnodesizezlog2
[0137]
如果gps_implicit_geom_partition_flag等于1,则gsh_log2_max_nodesize推导如下。
[0138]
gsh_log2_max_nodesize=max{maxnodesizexlog2,maxnodesizeylog2,maxnodesizezlog2}
[0139]
gsh_log2_max_nodesize指定当gps_implicit_geom_partition_flag等于0时、根几何八叉树节点的大小。变量maxnodesize和maxgeometryoctreedepth推导如下。
[0140]
maxnodesize=1《《gsh_log2_max_nodesize
[0141]
maxgeometryoctreedepth=gsh_log2_max_nodesize-log2_trisoup_node_size
[0142]
然后如下更新变量k和m。
[0143][0144]
除了上面指定的边界框之外,g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可支持区域框的信号通知,该区域框用于向点云的特定区域的属性指示修改的qp值。通常,可在属性条带标头中指定与属性相关联的qp值(除了属性参数集中的一些语法元素之外)。然而,点云的某些区域可具有可不同于条带的其余部分的特殊特性;例如,条带的较密集区域可能需要较细化表示(较低的qp),或者条带的较稀疏区域可能仅需要较粗糙表示(较高的qp)。区域框对于为条带的特定区域的属性指定不同的qp可能是有用的。
[0145]
下表表示包括区域框相关语法元素的示例属性条带标头:
[0146]
[0147][0148]
上表中的区域框语法元素的语义可以定义如下:
[0149]
ash_attr_parameter_set_id指定活动aps的aps_attr_parameter_set_id的值。
[0150]
ash_attr_sps_attr_idx指定了活动sps中属性集的顺序。在活动sps中,ash_attr_sps_attr_idx的值应该在0到sps_num_attribute_sets的范围内。
[0151]
ash_attr_geom_slice_id指定了活动几何条带标头的gsh_slice_id的值。
[0152]
ash_attr_layer_qp_delta_present_flag等于1指定了在当前ash中存在ash_attr_layer_qp_delta_luma和ash_attr_layer_qp_delta_chroma语法元素。ash_attr_layer_qp_delta_present_flag等于0指定了在当前ash中不存在ash_attr_layer_qp_delta_luma和ash_attr_layer_qp_delta_chroma语法元素。
[0153]
ash_attr_num_layer_qp_minus1加1指定了在其中发信号通知ash_attr_qp_delta_luma和ash_attr_qp_delta_chroma的层的数量。当没有发信号通知ash_attr_num_layer_qp时,ash_attr_num_layer_qp的值被推断为0。numlayerqp的值推导如下:
[0154]
numlayerqp=num_layer_qp_minus1 1
[0155]
ash_attr_qp_delta_luma指定了来自活动属性参数集中的初始条带qp的亮度delta(增量)qp。当不发信号通知ash_attr_qp_delta_luma时,ash_attr_qp_delta_luma的值被推断为0。
[0156]
ash_attr_qp_delta_chroma指定了来自活动属性参数集中的初始条带qp的色度delta qp。当没有发信号通知ash_attr_qp_delta_chroma时,ash_attr_qp_delta_chroma的值推断为0。
[0157]
变量initialsliceqpy和initialsliceqpc推导如下:
[0158]
initialsliceqpy=aps_attrattr_initial_qp ash_attr_qp_delta_luma
[0159]
initialsliceqpc=aps_attrattr_initial_qp aps_attr_chroma_qp_offset ash_attr_qp_delta_chroma
[0160]
ash_attr_layer_qp_delta_luma指定来自每一层中的initialsliceqpy的亮度delta qp。当不发信号通知ash_attr_layer_qp_delta_luma时,所有层的ash_attr_layer_qp_delta_luma的值被推断为0。
[0161]
ash_attr_layer_qp_delta_chroma指定了来自每层中的initialsliceqpc的色度delta qp。当没有发信号通知ash_attr_layer_qp_delta_chroma时,所有层的ash_attr_layer_qp_delta_chroma的值被推断为0。
[0162]
变量sliceqpy[i]和sliceqpc[i],其中i=0

numlayerqpnumqplayer-1推导如下:
[0163]
for(i=0;i《numlayerqpnumqplayer;i ){
[0164]
sliceqpy[i]=initialsliceqpy ash_attr_layer_qp_delta_luma[i]
[0165]
sliceqpc[i]=initialsliceqpc ash_attr_layer_qp_delta_chroma[i]
[0166]
}
[0167]
ash_attr_region_qp_delta_present_flag等于1指示ash_attr_region_qp_
delta和区域边界框原点和大小存在于当前ash中。ash_attr_region_qp_delta_present_flag等于0指示ash_attr_region_qp_delta和区域边界框原点和大小在当前ash中不存在。
[0168]
ash_attr_qp_region_box_origin_x指示区域边界框相对于slice_origin_x的x偏移。当不存在时,将ash_attr_qp_region_box_origin_x的值推断为0。
[0169]
ash_attr_qp_region_box_origin_y指示区域边界框相对于slice_origin_y的y偏移。当不存在时,将ash_attr_qp_region_box_origin_y的值推断为0。
[0170]
ash_attr_qp_region_box_origin_z指示区域边界框相对于slice_origin_z的z偏移。当不存在时,将ash_attr_qp_region_box_origin_z的值推断为0。
[0171]
指定区域框原点的变量regionboxx、regionboxy和regionboxz分别被设置为等于ash_attr_qp_region_box_origin_x、ash_attr_qp_region_box_origin_y和ash_attr_qp_region_box_origin_z。
[0172]
ash_attr_qp_region_box_size_width指示区域边界框的宽度。当不存在时,将ash_attr_qp_region_box_size_width的值推断为0。
[0173]
ash_attr_qp_region_box_size_height指示区域边界框的高度。当不存在时,将ash_attr_qp_region_box_size_height的值推断为0。
[0174]
ash_attr_qp_region_box_size_depth指示区域边界框的深度。当不存在时,将ash_attr_qp_region_box_size_depth的值推断为0。
[0175]
指定区域框大小的变量regionboxwidth、regionboxheight和regionboxdepth分别被设置为等于ash_attr_qp_region_box_size_width、ash_attr_qp_region_box_size_height和ash_attr_qp_region_box_size_depth。
[0176]
ash_attr_region_qp_delta指定了来自由ash_attr_qp_region_box指定的区域的sliceqpy[i]和sliceqpc[i](其中,i=0

numlayerqpnumqplayer

1)的增量qp(delta qp)。当不存在时,将ash_attr_region_qp_delta的值推断为0。
[0177]
指定区域框增量量化参数的变量regionboxdeltaqp被设置为等于ash_attr_region_qp_delta。
[0178]
g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可通过几何参数集中的标志和qp值来控制几何坐标和/或编解码器内位置的量化和/或缩放,或者如g-pcc中所指的几何缩放。g-pcc编码器可以在多个级别中指定和/或修改qp值。下面描述与语法的各个部分中的几何缩放相关联的语法元素。
[0179]
2.6.1几何参数集
[0180]
geometry_parameter_set(){描述符gps_geom_parameter_set_idue(v)

ue(v)geom_scaling_enabled_flagu(1)if(geom_scaling_enabled_flag) geom_base_qpue(v)

u(1)} [0181]
语法元素geom_scaling_enabled_flag可使g-pcc解码器(例如,g-pcc解码器300)
缩放几何坐标。g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可使用geom_base_qp来推导在该过程中使用的缩放值。
[0182]
下表中示出几何条带标头的语法元素的示例性集:
[0183][0184]
在几何条带标头(gsh)中,g-pcc编码器(例如,g-pcc编码器200)可以发信号通知用于修改用于属于条带的点的缩放值的qp偏移。gsh可以包括或包含标志(geom_octree_qp_offsets_enabled_flag),该标志控制是否在较低的八叉树级别中使能qp偏移控制,并且如果是,则发信号通知指定qp参数的深度(geom_octree_qp_offsets_depth)。
[0185]
下表中示出了几何节点结构的示例性语法元素集:
pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可推导与子节点相对应的位置;存在geometrynodechildrencnt子节点。geometrynodechildrencnt的值可以至多是8。geometrynodechildrencnt子节点内的子节点的索引可以使用3位的数字来指定,并且子节点的量化位置(x,y,z)是从父节点(xn,yn,zn)和childidx的坐标中推导的。对于每个子节点,g-pcc编解码器可以使用geomscale()函数来推导i=0、1、2的未量化(被缩放后的)位置pointpos[][i]。对于使用直接编解码模式(由direct_mode_flag指示)编解码的节点,g-pcc编解码器可从子节点位置和pointoffsetx[]、pointoffsety[]和pointoffsetz[]值中获得相应的被缩放后的位置,也使用geomscale()函数。
[0199]
八叉树节点解码过程的输入可以包括:
[0200]

指定当前几何八叉树节点的位置的八叉树节点位置(depth(深度),nodeidx)
[0201]

指定该当前几何八叉树节点在该当前条带中的位置的空间位置(xn,yn,zn)。
[0202]
该过程的输出可以包括修改的阵列pointpos和更新的变量pointcount。
[0203]
如果两个effectivedepth(有效深度)都小于maxgeometryoctreedepth-1,并且direct_mode_flag等于0,则该过程不输出点。否则,如果effectivedepth大于或等于maxgeometryoctreedepth-1,或者direct_mode_flag等于1,则该过程的剩余部分生成一个或多个点位置。
[0204]
函数geomscale(val,cidx)被定义为对单个八叉树节点位置分量8.2.2.3的缩放过程的调用,其中位置val、分量cidx和变量qp被设置为等于作为输入的nodeqp。
[0205]
根据每个子节点中的重复点的数量和直接编解码的位置的使用来确定每个被占用子节点中的点的空间位置,如下:
[0206]
使用qp的节点位置的缩放使用如下的geomscale()函数推导:
[0207]
[0208][0209][0210]
在geomscale()函数中,缩放该节点位置并且推导逆量化位置值如下:
[0211]
对单个八叉树节点位置分量的示例缩放过程的输入可以包括:
[0212]

表示未被缩放后的位置分量值的变量val,
[0213]

指定位置分量索引的变量cidx,
[0214]

指定该量化参数的变量qp。
[0215]
该过程的输出可以包括被缩放后的位置分量值pos。
[0216]
(note?)当geom_scaling_enabled_flag等于0时,该过程的输出等于输入值pos。
[0217]
变量scalingexpansionlog2被设置为等于(qp-4)/6。
[0218]
表示未缩放的位置分量值的级联部分的变量highpart和lowpart推导如下:
[0219]
1highpart=val》》(scalingnodesizelog2[cidx]-scalingexpansionlog2)
[0220]
2lowpart=val&((1《《(scalingnodesizelog2[cidx]-scalingexpansionlog2))-1)
[0221]
列表geomlevelscale被指定为geomlevelscale[i]={659445,741374,831472,933892,1048576,1175576},其中i=0..5.
[0222]
输出变量pos推导如下:
[0223]
3highparts=highpart《《scalingnodesizelog2[cidx]
[0224]
4lowparts=(lowpart*(geomlevelscale[qp%6]《《(qp/6)) (1《《19))》》20
[0225]
5pos=highpart|lowpart
[0226]
在g-pcc中提出了几何缩放过程的替代机制:用于2020年1月的比利时布鲁塞尔的d.flynn,k.mammou的树内几何量化的整数步长(下文中称为“m52522”),使用以下步长进行缩放操作。
[0227]
geomlevelscale[i]={1,1.25,1.5,1.75}
[0228]
在一些示例中,g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可以使用上述值的被缩放后的版本用于定点实现方式(例如,值4、5、6、7);可以伴随移位和四舍五入(rounding)操作以应用正确的缩放因子。qp值为0可对应于无损情况(例如,缩放值1),并且qp步长针对每四个qp值加倍。g-pcc编解码器可以推导如下步长,其中floor()代表向下取整(floor)操作:
[0229]
qs=(1/4)*[4 (qp mod 4)]*2
floor(qp/4)
[0230]
图4是图示了示例性步长函数的曲线图。大多数qp的所得步长是整数,但还指定一些非整数步长。表1指定用于各种qp值的步长,图4图示了相同的步长函数。
[0231]
表1
[0232][0233][0234]
本公开中描述的一种或多种技术可独立地或组合地应用。为了便于描述,术语“序列的几何周期”可以被定义为用于使值翻倍的序列中的点的数量。例如,对于以下序列:1,
1.5,2,3,4,6,8,12,

.,几何周期为2。对于序列1,1.1,1.2,1.4,1.5,2,2.2,2.4,2.8,3,4,

,几何周期为5。注意,如果存在具有不同几何周期的两个序列的组合,则两个几何周期将应用于组合序列中的相应点。例如,对于高达8和超过8的值,以下序列具有2的几何周期,具有4的几何周期:1,1.5,2,3,4,6,8,10,12,14,16,20,24,28,32,

[0235]
任何二次幂或2之间的值也可以称为几何周期。例如,对于序列1,1.1,1.2,1.4,1.5,2,2.2,2.4,2.8,3,4,..,第一几何周期可以是[1,1.1,1.2,1.4,1.5],第二几何周期可以是[2,2.2,2.4,2.8,3]等等。
[0236]
当前,尽管指定了sps边界框的语义,但规范(例如,符合规范的过程)没有明确地提及点云数据如何与sps边界框相关。g-pcc位流还携带两个语法元素以推导缩放因子,但是再次没有指定使用这些语法元素的确切过程。
[0237]
在tmc13(测试模型)中,使用缩放因子缩放点云数据的输出几何点,并且将非标准化的被缩放后的点限幅到sps边界框内。
[0238]
tmc13中使用的缩放和限幅处理似乎是直接的。然而,在如何使用语法元素的规范中缺少清楚的描述或者甚至如何使用语法元素的指示可能导致不期望的情况。例如,“有害(evil)”编码器可能故意尝试以此类方式发信号通知不正确的值,使得仅某些解码器(其知道“有害”编码器的意图)将能够正确地处理这些语法元素;其他解码器(或设备)尽管是一致的,但将不能够适当地处理这些语法元素。在标准中不应允许此类情形。
[0239]
至少应当指定以下内容:范围和推导过程,其使用语法元素,使得至少这些语法元素对于正常解码器应具有某种意义。应当注意,此类推导不排除该缩放过程是非标准化的。
[0240]
g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可被配置为根据使用非标准化缩放语法元素的缩放过程来操作。
[0241]
g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可被配置为根据上述缩放值的输出不违反sps边界框约束的一个或多个约束来操作。
[0242]
g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可被配置为使得sps边界框约束的违反可包括被缩放后的坐标位置不应大于源边界框的相应维度(例如,x坐标不应超过宽度、y坐标不应超过高度,并且z坐标不应超过深度)。
[0243]
g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可被配置为使得违反sps边界框约束还可包括被缩放后的坐标位置不应在由边界框边界指定的边界框之外(例如,针对每一维度的最小和最大值)。
[0244]
在一些示例中,g-pcc编解码器可另外执行限幅操作,以在缩放之后对重构的点云限幅以使其包含在边界框内。与上述类似,g-pcc编解码器可以被配置为对于点的限幅操作的约束,使得限幅操作的执行确保在包含该点的切片边界框内包含的点保持在切片内。即,约束可应用于类似于以上针对在包含该点的切片边界框内包含的点的限幅操作。
[0245]
示例sps边界框和非标准化缩放过程的语义可如以下所讨论那样被修改。因此,g-pcc编解码器可对sps边界框进行编解码,并根据下面解释的示例性技术来执行缩放过程。这些变化的增加不需要使缩放过程标准化;该过程是否是标准化的可以由如何为各种g-pcc简档指定一致性来确定。当前的tmc13-v9.0仍然使用浮点运算进行非标准化缩放;本文档描述了为其指定定点运算的技术。在当前tmc13中发信号通知的源缩放因子是将被应用于重构点云的缩放因子的逆,并且下面的语义反映了这一点。在一些示例中,g-pcc编解码
器可以对表示缩放因子的数据进行编解码(而不是逆)。
[0246]
sps边界框的示例语义可定义如下,并且g-pcc编解码器可如下编码和解释sps边界框的值:
[0247]
sps_bounding_box_present_flag等于1指示在sps中发信号通知边界框参数。sps_bounding_box_present_flag等于0指示未定义边界框的大小。
[0248]
sps_bounding_box_offset_x,sps_bounding_box_offset_y和sps_bounding_box_offset_z指示笛卡尔坐标中的源边界框的量化的x、y和z偏移。当不存在时,sps_bounding_box_offset_x,sps_bounding_box_offset_y和sps_bounding_box_offset_z的值各自被推断为0。
[0249]
sps_bounding_box_offset_log2_scale指示缩放量化的x、y和z源边界框偏移的缩放因子。当不存在时,sps_bounding_box_offset_log2_scale的值被推断为0。
[0250]
sps_bounding_box_size_width、sps_bounding_box_size_height和sps_bounding_box_size_depth指示笛卡尔坐标中的源边界框的宽度、高度和深度。
[0251]
sps_source_scale_factor_numerator_minus1加1指示源点云的缩放因子分子。
[0252]
sps_source_scale_factor_denominator_minus1加1指示源点云的缩放因子分母。
[0253]
g-pcc编解码器可通过将重构点位置除以源缩放因子、将结果限幅为sps边界框维度并且基于sps边界框原点偏移来如下地移动这些点,从而推导点云的每个点的重构位置(x,y,z)的最终位置(xf,yf,zf):
[0254]
off=(sps_source_scale_factor_numerator_minus1 1)》》1
[0255]
scalenum=sps_source_scale_factor_numerator_minus1 1
[0256]
scaleden=sps_source_scale_factor_denominator_minus1 1
[0257]
xs=(x*scaleden off)/scalenum
[0258]
ys=(y*scaleden off)/scalenum
[0259]
zs=(z*scaleden off)/scalenum
[0260]
bboxoffx=sps_bounding_box_offset_x《《sps_bounding_box_offset_log2_scale
[0261]
bboxoffy=sps_bounding_box_offset_y《《sps_bounding_box_offset_log2_scale
[0262]
bboxoffz=sps_bounding_box_offset_z《《sps_bounding_box_offset_log2_scale
[0263]
xf=min(xs,sps_bounding_box_width) bboxoffx
[0264]
yf=min(ys,sps_bounding_box_height) bboxoffy
[0265]
zf=min(zs,sps_bounding_box_depth) bboxoffz
[0266]
如上所述,当前非标准化量化/缩放方法可假定应用于整个点云,而g-pcc编解码器可在条带内的特定节点深度处应用标准量化。g-pcc编解码器可能没有可用于标准地量化整个点云的机制。对于若干应用,可能希望g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)在全局水平上标准地应用点云缩放,使得编码器/应用不必依赖于解码器如何处理非标准化缩放。在非标准化全局缩放的情况下,编解码器可能必须依赖于为每个条
带指定qp值,并且甚至可能仅在最高八叉树级别应用。
[0267]
此外,非标准化缩放的目的之一是将点云数据转换成真实世界的尺寸。将不希望将其重新用于指示量化值。
[0268]
g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可被配置为执行整个点云的标准化缩放;这可以被称为全局缩放。
[0269]
g-pcc编码器(例如,g-pcc编码器200)可以被配置为发信号通知语法元素以指示是否对图片应用了标准化全局缩放。
[0270]
在编码开始时,可以在编码器处应用全局缩放;在解码器处,这可以在所有条带被解码之后应用。例如,g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可被配置为在编码开始时、在解码器处、在所有条带被解码之后等应用全局缩放。
[0271]
在一些示例中,g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可将全局缩放应用于可单独应用于条带的每个点云分割;类似地,每个解码的条带可以独立地应用全局缩放。
[0272]
g-pcc解码器(例如,g-pcc解码器300)可通过在位流中(例如,由g-pcc编码器200)发信号通知的缩放值来控制全局缩放因子。
[0273]
g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可从位流中发信号通知的量化参数值中推导缩放因子(或缩放值);从量化参数推导缩放值可以使用在g-pcc编解码器中指定或通过其他方式的一个或多个现有方案。
[0274]
在一些示例中,g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可将全局缩放因子限制为二次幂。这可以使得全局缩放过程能够与移位操作一起应用,这可以非常简单地实现。
[0275]
在一些示例中,g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可将全局缩放因子限制为整数值(非负)。
[0276]
在一些示例中,g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可使用整数值和非整数值来确定(例如,指定)全局缩放因子;g-pcc编解码器可以使用浮点或定点算法来应用缩放。
[0277]
g-pcc解码器(例如,g-pcc解码器300)可从位流中(例如,由g-pcc编码器200)发信号通知的非标准化缩放因子中推导缩放因子。
[0278]
缩放过程本身可类似于为g-pcc编解码器指定的量化过程来应用。
[0279]
g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可应用缩放过程的定点实现方式,其中以特定精度存储缩放因子,并且缩放操作包括偏移和位移位操作。在缩放过程中可以包括四舍五入运算。
[0280]
当全局缩放操作产生与位置相关联的多个点时,可以在编码器(例如,g-pcc编码器200)处组合一个或多个属性。
[0281]
在一些示例中,g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可被配置为在几何点具有唯一位置时禁止全局缩放,或反之亦然(例如,在几何点不具有唯一位置时);语法可以被更新以反映这些限制(例如,通过避免一些元素的信号通知(signalling))。(如果指定了小于1的缩放值,这可能是特别相关的)。
[0282]
g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可在全局缩放操作之
前应用唯一点限制。
[0283]
在一些示例中,g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可在全局缩放操作之后应用唯一点限制。
[0284]
在一些示例中,g-pcc编解码器可以分别确定三个分量中的每个分量的相应量化参数,并且基于对应分量的相应量化/缩放参数来量化/缩放每个分量。在各种示例中,g-pcc编解码器可以推导或编解码表示三个分量的量化/缩放参数的数据以及环内几何量化。
[0285]
在一些示例中,g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可将缩放操作的输出存储在比输入更高的位深度处。该较高位深度可以是预定的,或者可以使用全局缩放参数来推导。例如,如果在全局缩放之前的坐标的位深度为n,并且全局缩放细化值的精度为m,那么可将内部位深度设定为m n。g-pcc解码器300(或解码侧的其他应用/实体)可使用附加精度来更好地推导坐标位置。更一般地,较高位深度的任何值可被选择作为全局缩放系数的(中间)精度。在一些示例中,较高位深度可在[n,n m]的范围中。在一些示例中,缩放操作的输出可处于比输入更低的位深度。例如,输入值可以具有分数精度,并且在缩放之后,被缩放后的值可以仅具有整数精度。
[0286]
在一些示例中,g-pcc编解码器可从点云的坐标的最大值推导全局缩放的最大值。例如,g-pcc编解码器可确定最大qp值,使得步长不超过点云的坐标的最大值。
[0287]
g-pcc编解码器可以根据在点云的原点被移位到(0,0,0)之后计算的边界框来计算最大值。在一些示例中,g-pcc编解码器可在将坐标调整到不同原点之后计算最大值。g-pcc编解码器可以对表示不同原点的调整数据的数据进行编解码。
[0288]
在一些示例中,g-pcc编解码器可从点云的标准化边界框推导坐标的最大值。
[0289]
在一些示例中,g-pcc编解码器可确定预定因子(z,其中z《=1)和最大qp值,使得缩放值不超过点云的坐标的z*最大值。
[0290]
在一些示例中,g-pcc编解码器可根据各个坐标的最大值中的最小值(例如,min(maxvalx、maxvaly、maxvalz))来确定用于确定最大qp的坐标最大值。
[0291]
如果最大值是k,并且使用m位指定细化精度,则全局缩放因子的值可以被限制为小于ceil(log2(k)),并且细化的最大值可以被限制为(1《《m)

1。
[0292]
在一些示例中,sps边界框和非标准化缩放值的信号通知可由标志来调节。当这些值未被发信号通知时,g-pcc编解码器可以推断默认值(例如,缩放值1、(0,0,0)的条带原点,以及被推断为诸如2
32-1的最大值的维度。
[0293]
在一些示例中,非标准化缩放值的信号通知可以通过标志来调节。
[0294]
从qp的缩放值推导可以由基础步长推导模型来管理。例如,g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可在g-pcc中使用指数模型2(qp-4)/6来推导缩放值。这可能导致不是二次幂的若干步长。下表(如func2)中示出了该缩放值模型的步长列表。在3中提出了一种可替代的方法。g-pcc:integer step sizes for in-tree geometry quantization,m52522,d.flunn,k.mammou,brussels,belgium,january 2020(g-pcc:2020年1月的比利时布鲁塞尔的d.flynn,k.mammou的树内几何量化的整数步长)和该方法的缩放值也被包括在该表中。
[0295][0296][0297]
两个模型都包括所有二次幂。如前所述,容易应用作为二次幂的缩放值,因为它们可以使用移位操作来实现;这对于简单的解码器可能是相当方便的,并且对于编码器来说
也是实现全局缩放的方便选项。然而,仅依赖于二次幂可能提供用于量化/缩放操作的不足够的分辨率。缩放因子的更精细的分辨率对于一些应用将是优选的。
[0298]
g-pcc编码器(例如,g-pcc编码器200)可被配置为发信号通知将缩放值指定为二次幂(粗略qp)的第一值。
[0299]
在一些示例中,将缩放值指定为二次幂的第一值可以由qp值指定,其中步长从qp值推导为2
qp
(qp 0对应于缩放1、qp 1对应于缩放2、qp 2对应于缩放4等)。
[0300]
g-pcc编码器(例如,g-pcc编码器200)可以被配置为发信号通知标志以指示缩放值是否包括细化。发信号通知此类标记可以使应用/简档能够允许/不允许缩放值细化。
[0301]
在一些示例中,当应用细化以推导缩放值时,g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可以约束应用于推导缩放值的细化,以将细化应用于点云中的所有点。
[0302]
g-pcc编码器(例如,g-pcc编码器200)可以被配置为发信号通知一个值以指定要被应用以推导缩放值的细化。
[0303]
g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可以被配置为确定(例如,指定)用于细化的精度值。n位精度可对应于每一几何周期的2n细化级别。
[0304]
例如,1位精度可允许为每个几何周期(1,1.5,2,3,4,6,8,

)指定两个值,2位精度将允许为每个几何周期(1,1.25,1.5,1.75,2,2.5,3,3.5,4,5,6,7,8,

)指定四个值。
[0305]
精度可以由几何周期中的细化级别的数量来指定
[0306]
例如,5个细化级别可以对应于如下的缩放值(1,1.2,1.4,1.6,1.8,2,2.4,2.8,3.2,3.6,4,3.6,4.2,....)
[0307]
在一些示例中,g-pcc编码器(例如,g-pcc编码器200)可被配置为确定(例如,指定)对于不同几何周期不同的不同精度。例如,对于小于或等于8的缩放值,g-pcc编码器可确定(例如,指定)每个几何周期的四个细化级别,而对于大于8的缩放值,g-pcc编码器可确定(例如,指定)每个几何周期的六个细化级别。
[0308]
g-pcc编码器(例如,g-pcc编码器200)可以被配置为发信号通知指定要在几何周期内应用的细化级别的值(refineval)。如果对于特定几何周期存在n个细化值,则g-pcc可发信号通知在0到n-1(包括端值)的范围内指定该值。
[0309]
例如,如果使用四个细化级别,并且使用线性模型(允许的缩放值1,1.25,1.5,1.75,2,2.5,3,3.5,4,5,6,7,8,

)来指定缩放值或3,则可以将粗略qp指定为1,并且可以将细化级别指定为2。
[0310]
g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可从粗略qp qc和refineval推导refinedqp(细化的qp)值。例如,如果存在n个细化级别,则g-pcc编解码器可将refinedqp推导为qc*n refineval。
[0311]
下面讨论指定模型以将细化指示转换为缩放值。在一些示例中,g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可使用线性模型。
[0312]
例如,可以指定n个细化级别的线性模型;如果粗略qp是x并且细化值是y(0《=y《n),则g-pcc编解码器可以将缩放值推导为2
x
*(1 y/n)。
[0313]
在一些示例中,g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可使用指数模型。
[0314]
例如,可以指定n个细化级别的指数模型;如果粗略qp是x并且细化值是y(0《=y《n),则g-pcc编解码器可以将缩放推导为2
x
*2
(y/n)

[0315]
在一些示例中,g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可使用任何非线性模型来从细化中计算缩放值。
[0316]
在一些示例中,g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可以使用基于表的方法来指定与细化相对应的值,并且可以以特定的位精度来指定缩放值。
[0317]
例如,可以将8个细化级别指定为ref[]=[8,9,10,11,12,13,14,15](这对应于具有8个细化级别的线性细化模型)。并且缩放值可以被指定为2
x
*(ref[y]/8);可以在具有乘法和位移位以及在一些情况下的在位移位之前的偏移的定点运算中实现该缩放。
[0318]
在一些示例中,g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可将不同的模型应用于不同的几何周期。
[0319]
例如,g-pcc编解码器可将线性模型应用于几何周期直到特定缩放值,并且将基于表格的模型应用于在特定缩放值之后的几何周期,如下:具有4个细化级别直到周期8的线性模型,以及8之后的基于表(具有值8、9、10、11、12、14)的方法[1,1.25,1.5,2,2.5,3,3.5,4,5,6,7,8,9,10,11,12,14,16,18,20,22,24,28,32,

]。
[0320]
在一些示例中,g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可使用refinedqp来推导等效模型和步长/缩放值。g-pcc编解码器可将qp细化方法应用于任何量化过程,包含几何缩放(全局或在节点级别)或属性缩放,以用于视频编解码等。
[0321]
当将qp偏移应用于上述qp设计时,可使用两种技术。在第一示例性技术中,当不应用细化级别时,g-pcc编码器(例如,g-pcc编码器200)可以确定(例如,指定)相对于粗略qp的qp偏移;当应用细化级别时,g-pcc编码器200可以相对于refinedqp指定qp偏移。在第二示例性技术中,g-pcc编码器200可将qp偏移指定为粗略qp和细化值。
[0322]
在一些示例中,g-pcc编解码器可以对表示用于指定精度的位的数量的数据进行编解码。然后,根据位的数量,g-pcc编解码器可以对细化值进行编解码。
[0323]
在一些示例中,g-pcc解码器可执行应用于整个点云帧的标准化缩放过程。g-pcc解码器可以在重构点云之后执行全局缩放过程。g-pcc编解码器可以对包括以下示例表的语法元素的gps进行编解码以表示缩放过程,其中“[添加了:“被添加的文本”]([added:“added text”])表示相对于现有的gps已经添加了的文本:
[0324]
geometry_parameter_set(){描述符gps_geom_parameter_set_idue(v)
…ꢀ
log2_trisoup_node_sizeue(v)[added:“global_scale_factor_log2ue(v)”][added:“global_scale_refinement_enabled_flagu(1)”][added:“if(global_scale_refinement_enabled_flag)”] [added:“global_scale_factor_refinementu(3)”]geom_scaling_enabled_flagu(1)if(geom_scaling_enabled_flag) geom_base_qp_minus4ue(v)
gps_implicit_geom_partition_flagu(1)if(gps_implicit_geom_partition_flag){ gps_max_num_impliqcit_qtbt_before_otue(v)gps_min_size_implicit_qtbtue(v)} gps_extension_flagu(1)if(gps_extension_flag) while(more_data_in_byte_stream()) gps_extension_data_flagu(1)byte_alignment() } [0325]
所添加的语法元素的语义可以定义如下:
[0326]
global_scale_factor_log2用于推导将被应用于点云的位置的全局缩放因子。当global_scale_factor_log2等于0时,全局缩放因子被指定为1,并且不发信号通知the global_scale_factor_refinement。当global_scale_factor_log2等于1时,发信号通知语法元素global_scale_refinement_enabled_flag。
[0327]
global_scale_refinement_enabled_flag等于1指定发信号通知语法元素global_scale_factor_refinement。global_scale_refinement_enabled_flag等于0指定不发信号通知语法元素global_scale_factor_refinement。当不存在时,global_scale_refinement_enabled_flag的值推断为等于0。
[0328]
global_scale_refinement_factor指定了对全局缩放因子的细化。当存在时,global_scale_refinement_factor的值被推断为等于0。global_scale_refinement_factor的值应当在0至7的范围内,包括端值。
[0329]
g-pcc编解码器可以如下推导全局缩放值:
[0330]
globalscale=(8 global_scale_refinement_factor)《《global_scale_factor_log2
[0331]
g-pcc编解码器可以执行条带级联过程,形成输出,包括:
[0332]-具有表示重构点云帧中的点的元素recpic[pointidx][attridx]的修改的阵列recpic,以及
[0333]-表示重构的点云帧中的点的数量的修改后变量recpicpointcount。
[0334]
为了执行该过程,g-pcc编解码器可以将recpicpointcount初始化为零。g-pcc编解码器可接着将当前条带的点和属性与经重构的点云帧级联如下:
[0335][0336]
在另一示例中,g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可被配置为在整个点云帧上执行标准化缩放过程。g-pcc编解码器可以在点云的一致性输出之前执行全局缩放过程。
[0337]
g-pcc编解码器可对序列参数集(sps)的语法元素进行编解码以表示缩放过程。修改的sps的示例如下所示,其中“[添加:“添加的文本”]”(added:“added text”)表示对当前g-pcc规范的添加。
[0338]
sequence_parameter_set(){描述符
…ꢀ
[added:“global_scale_factor_log2ue(v)”][added:“global_scale_refinement_num_bitsue(v)”][added:“if(global_scale_refinement_num_bits)”] [added:“global_scale_factor_refinementu(v)”]
…ꢀ
} [0339]
所添加的语法元素的语义可以定义如下:
[0340]
global_scale_factor_log2用于推导将被应用于点云的位置的全局缩放因子。global_scale_factor_log2的值应当在0至31的范围内,包括端值。
[0341]
global_scale_refinement_num_bits用于指定对全局缩放值的细化所使用的位的数量。当global_scale_refinement_num_bits等于0时,不应用细化。global_scale_refinement_num_bits的值应当在0至31的范围内,包括端值。
[0342]
global_scale_refinement_factor指定了对全局缩放因子的细化。当不存在时,global_scale_refinement_factor的值推断为等于0。用于发信号通知global_scale_refinement_factor的位的数量是global_scale_refinement_num_bits。
[0343]
在一种可替代方案中,global_scale_refinement_num_bits可以使用固定长度代码(例如,u(5))来编解码。
[0344]
在一种可替代方案中,global_scale_factor_log2 global_scale_refinement_num_bits的值可以被限制为小于或等于特定值,例如,32。
[0345]
在一种可替代方案中,global_scale_refinement_num_bits的值可以小于或等于global_scale_factor_log2。
[0346]
g-pcc编解码器可以如下推导全局缩放值:
[0347]
globalscalebase=1《《global_scale_refinement_num_bitsglobalscaleshift=global_scale_refinement_num_bitsglobalscaleoffset=globalscaleshift?1《《(globalscaleshift

1):0globalscale=(globalscalebase global_scale_refinement_factor)《《global_scale_factor_log2
[0348]
g-pcc编解码器可执行条带级联过程,生成包括具有表示重构点云帧中的点的元素recpic[pointidx][attridx]的修改后阵列recpic以及表示重构的点云帧中的点数的修改后变量recpicpointcount的输出。g-pcc编解码器可以将recpicpointcount初始化为零值。g-pcc编解码器可如下将当前条带的点和属性与经重构的点云帧级联:
[0349][0350]
用于发信号通知缩放的示例仅是一个示例,并且可以采取其他形式。也就是说,可结合发信号通知缩放的其他形式来执行本公开的技术。
[0351]
当前的g-pcc规范不具有标准化边界框的概念。在应用非标准化缩放方法之后指定sps和切片边界框。与切片相关联,条带可具有指定的边界框,并且经编解码的点被限幅在条带边界框内。然而,不存在条带边界框不应超过切片边界的限制。在此类情况下,不存在g-pcc编解码器中定义的包含点云中所有点的框的概念。
[0352]
以下讨论用于与sps中的附加边界框相关联的信号参数使得点云中的点被包含在该附加边界框内的技术。
[0353]
·
用于此类边界框的参数可以包括宽度、高度或深度中的一者或多者。
[0354]
·
这些参数还可包括边界框的原点的偏移(例如,x、y及z偏移)。
[0355]
·
在一些示例中,g-pcc编码器(例如,g-pcc编码器200)可以发信号通知x、y和z坐标的最小值和最大值以指定边界框。
[0356]
·
举例来说,g-pcc编码器(例如,g-pcc编码器200)可以发信号通知六个参数中的一者或多者以指定边界框。
[0357]
·
在一些示例中,g-pcc解码器(例如,g-pcc解码器300)可从sps中发信号通知的sps边界框中推导附加边界框。
[0358]
在一些示例中,g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可被配置为使得点云中的限制点被包含在附加边界框内。
[0359]
还可针对指定应包含点云数据的框的切片定义类似的附加边界框。例如,g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可为切片定义附加边界框,这些附加边界框指定了应包含点云数据的框。
[0360]
在一些示例中,g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可从切片边界框推导附加边界框。
[0361]
g-pcc编解码器(例如,g-pcc编码器200或g-pcc解码器300)可被配置为在各种编解码过程中执行限幅操作,使得重构/解码后的点被包含在附加边界框内。例如,在重构的点云被其他点用于预测之前,g-pcc编解码器可以对重构的点云应用此类限幅操作。g-pcc编解码可以在条带解码过程之后对重构的点云应用此类限幅。g-pcc编解码器可将此类限幅应用于sps边界框、切片边界框或其他边界框,并且还应用于任何相应附加边界框。
[0362]
在一些示例中,g-pcc编解码器可在不以存在标志为条件的情况下对与sps边界框相关联的一个或多个参数进行编解码。即,g-pcc编解码器可以总是对在sps中的这些参数进行编解码。例如,g-pcc编解码器可以总是对sps边界框宽度、高度和深度值进行编解码,而无需对sps_bounding_box_present_flag设置任何条件。因此发信号通知(没有存在标志)的一个或多个参数可以用于指定标准化边界框。
[0363]
在一些示例中,g-pcc编解码器可对指定点云帧的标准化边界框维度的数据进行编解码。可在sps或gps中指定标准化边界框尺寸。sps已经包含描述属性特性的信息。因此,将几何的特性(即,边界框)也包括在同一位置(例如,sps)中将是适当的。
[0364]
在一些示例中,g-pcc编解码器可以指定标准化框的起源(其被假定为(0,0,0)。例如,g-pcc编解码器可以对指定标准化边界框的原点的x-、y-和z-偏移的值进行编解码。
[0365]
在一些示例中,g-pcc编解码器可对指定点云帧的标准化边界框的数据进行编解码,使得点云中的所有重构点被约束在标准化边界框内。将重构的点位置限幅到那些边界框。还可以相对于该标准化边界框的原点(在该提议中为(0,0,0))发信号通知条带原点。
[0366]
g-pcc编解码器可对sps进行编解码,该sps包括相对于现有sps的以下附加语法元素:
[0367]
point_cloud_frame_dim_num_bits_minus1ue(v)point_cloud_frame_widthu(v)point_cloud_frame_heightu(v)point_cloud_frame_depthu(v)
[0368]
这些附加语法元素的语义可以定义如下:
[0369]
point_cloud_frame_dim_num_bits_minus1加1指定用于发信号通知语法元素point_cloud_frame_width、point_cloud_frame_height和point_cloud_frame_depth的位的数量。point_cloud_frame_dim_num_bits_minus1的值应当在0至31的范围内,包括端值。
[0370]
point_cloud_frame_width、point_cloud_frame_height和point_cloud_frame_depth用于指定针对参考该gps的点云帧指定的边界框的宽度、高度和深度。用于发信号通
知这些语法元素的位的数量等于point_cloud_frame_dim_num_bits_minus1 1。
[0371]
在一些示例中,g-pcc编解码器可对表示点云帧宽度、深度和高度的被缩放后的版本的数据进行编解码。g-pcc编解码器可对具有指定用于宽度、深度和/或高度中的一者或多者的缩放值的语法元素进行编解码。
[0372]
此外,g-pcc编解码器可在条带级联过程中将重构后的点限幅到以上指定的点云帧维度。例如,g-pcc编解码器可以执行以下过程:for(pointidx=0;pointidx《=gsh_num_points_minus1;pointidx ,recpicpointcount ){
[0373]
recpic[recpicpointcount][0]=min(pointpos[pointidx][0] slice_origin_x,point_cloud_frame_width);
[0374]
recpic[recpicpointcount][1]=min(pointpos[pointidx][1] slice_origin_y,point_cloud_frame_height);
[0375]
recpic[recpicpointcount][2]=min(pointpos[pointidx][2] slice_origin_z,point_cloud_frame_depth);
[0376]
for(cidx=0;cidx《numattributecomponents;cidx )
[0377]
recpic[recpicpointcount][3 cidx]=pointattr[pointidx][cidx];
[0378]
}
[0379]
如果也使用前一部分中的全局标准化缩放方法,则g-pcc编解码器可在限幅前将缩放应用于标准化边界。
[0380]
在一些示例中,g-pcc编解码器可在将重构后的点位置限幅到标准化边界框之后应用全局标准化缩放。
[0381]
在另一个示例中,g-pcc编解码器可重新使用sps边界框来对表示标准化边界框的数据进行编解码。即,g-pcc编解码器可被配置为使用sps边界框的信号通知来根据对sps边界框的以下修改对表示标准化边界框的数据进行编解码:
[0382]
…ꢀ
sps_bounding_box_present_flagu(1)if(sps_bounding_box_present_flag){ sps_bounding_box_offset_xse(v)sps_bounding_box_offset_yse(v)sps_bounding_box_offset_zse(v)sps_bounding_box_offset_log2_scaleue(v)} sps_bounding_box_size_widthue(v)sps_bounding_box_size_heightue(v)sps_bounding_box_size_depthue(v)
…ꢀ
[0383]
g-pcc编解码器可以使用sps_bounding_box_size_width、sps_bounding_box_size_height和sps_bounding_box_size_depth的值来指定标准化边界框。g-pcc编解码器可以使用这些值来相应地限幅点的几何位置坐标。
[0384]
图5是图示了根据本公开的技术的用于对基于几何的点云数据进行编码的示例性
方法的流程图。图5的方法是相对于g-pcc编码器200来解释的,但是可以由其他此类设备来执行。
[0385]
最初,g-pcc编码器200可接收点云数据的帧。g-pcc编码器200可对点云数据中的点的坐标应用变换(350)。坐标也可以称为位置值,其中每个位置值可以包括对应点的x、y和z坐标的值。坐标的变换可导致在变换域中表达数据。g-pcc编码器200然后可将变换坐标体素化(352)。
[0386]
根据本公开的技术,g-pcc编码器200还可以确定全局量化(缩放)因子(354)。全局量化(缩放)因子通常可以指示应用于位置值以生成量化后位置值的量化量。如上所述,全局量化(缩放)因子可以表示为二次幂值和细化值的组合(例如,级联)。g-pcc编码器200还可以编码量化因子数据(356),例如,二次幂值和细化值的指数。可以以特定位的数量表示细化值,并且g-pcc编码器200也可以编码细化值的位的数量的值。如上所述,例如,g-pcc编码器200可将global_scale_factor_log2的值编码为二次幂值,将global_scale_refinement_num_bits的值编码为细化值的位的数量,将global_scale_factor_refinement的值编码为细化值(使用global_scale_enfinition_num_bits指示的位的数量表示)。g-pcc编码器200也可使用全局量化(缩放)因子来量化位置值(358)。
[0387]
g-pcc编码器200然后可以使用量化的体素化后变换系数生成八叉树(360)。g-pcc编码器200然后可以编码八叉树和位置值(362)。
[0388]
图6是图示了根据本公开的技术的用于解码基于几何的点云数据的示例性方法的流程图。图6的方法是相对于g-pcc解码器300来解释的,但是可以由其他此类设备来执行。
[0389]
最初,g-pcc解码器300解码八叉树的数据和八叉树所定义的边界框内的点的位置值(380)。然后,g-pcc解码器300可以使用八叉树数据生成八叉树(382)。八叉树包括根节点,并且对于每个节点,根据当前节点是否被分割为子节点,包括零个或八个子节点。八叉树的叶节点可对应于包围基于几何的点云数据的一个或多个点的边界框。
[0390]
g-pcc解码器300也可解码缩放因子数据(384)。例如,g-pcc解码器300可以解码表示全局缩放因子的二次幂部分的对数值、细化值的位的数量和细化值(使用位的数量来表示)的数据。
[0391]
g-pcc解码器300然后可从被解码的缩放因子数据中确定全局缩放因子(386)。例如,如上所述,全局缩放因子可以被表示为包括被级联或相加在一起的二次幂分量和细化分量的值。g-pcc解码器300可使用对数值,例如,n,来计算两个分量的功率,例如,2n。然后,g-pcc解码器300可根据(pcc解码器300可根据(来计算细化值r(具有b位)的影响。g-pcc解码器300然后可将二次幂值与细化值级联以确定全局缩放因子。
[0392]
最后,g-pcc解码器300然后可使用全局缩放因子来缩放点云数据(388)的点的位置值。在一些示例中,如果给定点的位置值的缩放导致该点超过相应边界框,则g-pcc解码器300可对被缩放的位置值进行限幅,使得该点的位置不超过相应边界框的边界。
[0393]
以这种方式,图6的方法表示解码基于几何的点云数据的方法的示例,该方法包括解码包括多个点的基于几何的点云数据的帧,每个点与定义该点的相应位置的位置值相关联;确定帧的全局缩放因子;以及通过全局缩放因子来缩放每个点的位置值。
[0394]
本公开的各个方面中的示例可以单独地或以任何组合使用。
[0395]
以下条款总结了本公开的某些技术。
[0396]
条款1:一种方法,该方法包括:使用非标准化缩放语法元素确定点云的缩放因子;将该缩放因子应用于该点云以生成被缩放的点云;确定该被缩放的点云是否违反sps边界框约束;以及响应于确定被缩放的点云不违反sps边界框约束而对被缩放的点云进行编解码。
[0397]
条款2:一种方法,该方法包括:基于用于点云压缩的语法元素来确定标准化缩放被启用;使用标准化缩放语法元素确定点云的全局缩放因子;将该全局因子应用于该点云以生成被全局缩放的点云;以及对该被全局缩放的点云进行编解码。
[0398]
条款3:一种方法,该方法包括:基于用于点云压缩的语法元素或一个或多个qp值来确定缩放功率值;使用该缩放功率值和qp值来确定点云的缩放因子;将该缩放因子应用于该点云以生成被缩放的点云;以及对被缩放的点云进行编解码。
[0399]
条款4:一种方法,该方法包括:基于用于点云压缩的语法元素来确定sps边界框内的边界框;确定用于该点云压缩的点云,其中,确定该点云包括确定该点云在该边界框内;对该点云进行编解码。
[0400]
条款5:一种包括条款1-4中的任一项条款的方法,该方法还包括执行限幅操作以限幅被重构的点云。
[0401]
条款6:一种方法,该方法包括对包括边界框语法结构的参数集进行编解码。
[0402]
条款7:根据条款1-6中的任一项条款的方法,该方法还包括:确定点云的相应分量的一个或多个量化或缩放参数;以及使用相应的量化或缩放参数来量化或缩放分量。
[0403]
条款8:根据条款7的方法,其中,确定包括对表示该量化或缩放参数的数据进行编解码。
[0404]
条款9:根据条款7的方法,其中,确定包括推断该量化或缩放参数。
[0405]
条款10:一种用于处理点云的设备,该设备包括用于执行根据条款1-9中的任一项条款的方法的一个或多个部件。
[0406]
条款11:根据条款10的设备,其中,一个或多个部件包括在电路中实现的一个或多个处理器。
[0407]
条款12:根据条款10或11中的任一项条款的设备,该设备还包括用于存储表示点云的数据的存储器。
[0408]
条款13:根据条款10-12中的任一项条款的设备,其中,该设备包括解码器。
[0409]
条款14:根据条款10-13中的任一项条款的设备,其中,该设备包括编码器。
[0410]
条款15:根据条款10-14中的任一项条款的设备,该设备还包括用于生成点云的设备。
[0411]
条款16:根据条款10-15中的任一项条款的设备,该设备还包括用于呈现基于点云的图像的显示器。
[0412]
条款17:一种计算机可读存储介质,其上存储有指令,该指令在被执行时使一个或多个处理器执行条款1-9中的任一项条款的方法。
[0413]
条款18:一种解码基于几何的点云数据的方法,该方法包括:解码包括多个点的基于几何的点云数据的帧,每个点与定义该点的相应位置的位置值相关联;确定帧的全局缩放因子;以及通过全局缩放因子来缩放每个点的位置值。
[0414]
条款19:根据条款18的方法,其中,在缩放之前,使用第一位深度来表达该位置值,并且其中,在缩放之后,使用高于该第一位深度的第二位深度来表达该被缩放的位置值。
[0415]
条款20:根据条款19的方法,该方法还包括对表示该第二位深度的数据进行解码。
[0416]
条款21:根据条款19和20中的任一项条款的方法,其中,确定全局缩放因子包括对表示用于指定要应用于初始全局缩放因子的细化值的位的数量的数据进行解码。
[0417]
条款22:根据条款21的方法,该方法还包括对具有位的数量的缩放因子细化值进行解码。
[0418]
条款23:根据条款22的方法,其中,确定该全局缩放因子包括:对表示初始全局缩放因子的数据进行解码;根据1《《用于指定缩放值的位的数量来确定全局缩放基值,其中,

《《’表示逐位左移运算符;根据1《《用于指定细化值的位的数量来确定全局缩放移位值;根据如下确定全局缩放偏移值:当全局缩放位移值大于零时,1《《全局缩放位移值减1;或者当全局缩放位移值等于零时,全局缩放偏移值等于零;以及根据(全局缩放基值加上全局缩放细化值)《《初始全局缩放因子来计算全局缩放因子。
[0419]
条款24:根据条款18-23中的任一项条款的方法,该方法还包括将该帧分割为一个或多个边界框,这些边界框中的至少一个边界框包括点的子集,其中,缩放点的子集的位置值包括:确定缩放该点的子集中的一个子集的多个位置值中的一个位置值将致使这些位置值中的该一个位置值超过这些边界框中的该至少一个边界框;以及对该点的多个子集中的一个子集的多个位置值中的一个位置值进行限幅以防止这些位置值中的该一个位置值超过这些边界框中的该至少一个边界框。
[0420]
条款25:根据条款18-24中的任一项条款的方法,该方法还包括在对该帧进行解码之前对该帧进行编码。
[0421]
条款26:一种用于解码基于几何的点云数据的设备,该设备包括:被配置为存储基于几何的点云数据的存储器;和一个或多个处理器,其在电路中实现并且被配置为:解码包括多个点的基于几何的点云数据的帧,多个点中的每个点与定义该点的相应位置的位置值相关联;确定该帧的全局缩放因子;以及通过全局缩放因子来缩放多个点中的每个点的位置值。
[0422]
条款27:根据条款26的设备,其中,在缩放之前,使用第一位深度来表达这些位置值,并且其中,在缩放之后,使用高于该第一位深度的第二位深度来表达该被缩放的位置值。
[0423]
条款28:根据条款27的设备,其中,一个或多个处理器还被配置为对表示该第二位深度的数据进行解码。
[0424]
条款29:根据条款27和28中任一条款的设备,其中,为了确定该全局缩放因子,该一个或多个处理器被配置为对表示用以指定待应用于初始全局缩放因子的细化值的位的数量的数据进行解码。
[0425]
条款30:根据条款29的设备,其中,该一个或多个处理器还被配置为对具有位的数量的缩放因子细化值进行解码。
[0426]
条款31:根据条款30的设备,其中,为了确定该全局缩放因子,该一个或多个处理器被配置为:对表示初始全局缩放因子的数据进行解码;根据1《《用于指定细化值的位的数量来确定全局缩放基值,其中,

《《’表示逐位左移运算符;根据1《《用于指定细化值的位的
数量来确定全局缩放移位值;根据下式确定全局缩放偏移值:当全局缩放位移值大于零时,1《《全局缩放位移值减1;或者当全局缩放位移值等于零时,全局缩放偏移值等于零;以及根据(全局缩放基值加上全局缩放细化值)《《初始全局缩放因子来计算全局缩放因子。
[0427]
条款32:根据条款26-31中的任一项条款的设备,其中,该一个或多个处理器还被配置为将该帧分割成一个或多个边界框,这些边界框中的至少一个边界框包括点的子集,并且其中,为了缩放这些点的子集的位置值,该一个或多个处理器被配置为:确定缩放这些点的子集中的一个子集的这些位置值中的一个位置值将致使这些位置值中的该一个位置值超过这些边界框中的该至少一个边界框;以及对这些点的子集中的一个子集的位置值中的一个位置值进行限幅以防止这些位置值中的该一个位置值超过这些边界框中的该至少一个边界框。
[0428]
条款33:根据条款26-32中的任一条款的设备,其中,该一个或多个处理器还被配置为在对帧进行解码之前对该帧进行编码。
[0429]
条款34:根据条款26-33中的任一项条款的设备,该设备还包括被配置为显示该解码的基于几何的点云数据的显示器。
[0430]
条款35:根据条款26-34中的任一项条款的设备,其中,该设备包括相机、计算机、移动设备、广播接收器设备或机顶盒中的一者或多者。
[0431]
条款36:一种计算机可读存储介质,其上存储有指令,该指令在执行时致使处理器:解码包括多个点的基于几何的点云数据的帧,多个点中的每个点与定义该点的相应位置的位置值相关联;确定该帧的全局缩放因子;以及通过全局缩放因子来缩放每个点的位置值。
[0432]
条款37:根据条款36的计算机可读存储介质,其中,在缩放之前,使用第一位深度来表达这些位置值,并且其中,在缩放之后,使用高于该第一位深度的第二位深度来表达被缩放的位置值。
[0433]
条款38:根据条款37的计算机可读存储介质,该计算机可读存储介质还包括使处理器对表示第二位深度的数据进行解码的指令。
[0434]
条款39:根据条款37和38中的任一项条款的计算机可读存储介质,其中,使处理器确定全局缩放因子的指令包括使处理器对表示用于指定要应用于初始全局缩放因子的细化值的位的数量的数据进行解码的指令。
[0435]
条款40:根据条款39的计算机可读存储介质,该计算机可读存储介质还包括使处理器对具有位的数量的缩放因子细化值进行解码的指令。
[0436]
条款41:计算机可读存储介质40,其中,该致使该处理器确定该全局缩放因子的指令包括致使该处理器进行以下操作的指令:解码表示该初始全局缩放因子的数据;根据1《《用于指定细化值的位的数量来确定全局缩放基值,其中,

《《’表示逐位左移运算符;根据1《《用于指定细化值的位的数量来确定全局缩放移位值;根据如下确定全局缩放偏移值:当全局缩放位移值大于零时,1《《全局缩放位移值减1;或者当全局缩放位移值等于零时,全局缩放偏移值等于零;以及根据(全局缩放基值加上全局缩放细化值)《《初始全局缩放因子来计算全局缩放因子。
[0437]
条款42:根据条款36-41中的任一项条款的计算机可读存储介质,该计算机可读存储介质还包括使得处理器将帧分割为一个或多个边界框,这些边界框中的至少一个边界框
包括这些点的子集,其中,缩放这些点的子集的位置值包括:确定缩放这些点的子集中的一个子集的这些位置值中的一个位置值将致使这些位置值中的该一个位置值超过这些边界框中的该至少一个边界框;以及对该点的子集中的一个子集的位置值中的一个位置值进行限幅以防止这些位置值中的该一个位置值超过这些边界框中的该至少一个边界框。
[0438]
条款43:根据条款36-42中的任一项条款的计算机可读存储介质,该计算机可读存储介质还包括使处理器在对帧进行解码之前对帧进行编码的指令。
[0439]
条款44:一种用于解码基于几何的点云数据的设备,该设备包括:用于解码包括多个点的基于几何的点云数据的帧的部件,每个点与定义该点的相应位置的位置值相关联;确定帧的全局缩放因子;以及通过全局缩放因子来缩放每个点的位置值。
[0440]
条款45:根据条款44的设备,其中,在缩放之前,使用第一位深度来表达这些位置值,并且其中,在缩放之后,使用高于该第一位深度的第二位深度来表达被缩放的位置值。
[0441]
条款46:根据条款45的设备,该设备还包括用于对表示该第二位深度的数据进行解码的部件。
[0442]
条款47:根据条款45和46中的任一项条款的设备,其中,用于确定该全局缩放因子的部件包括用于对表示用以指定待应用于初始全局缩放因子的细化值的位的数量的数据进行解码的部件。
[0443]
条款48:根据条款47的设备,该设备还包括用于对具有位的数量的缩放因子细化值进行解码的部件。
[0444]
条款49:根据条款48的设备,其中,用于确定该全局缩放因子的部件包括:用于对表示初始全局缩放因子的数据进行解码的部件;用于根据1《《用于指定细化值的位的数量来确定全局缩放基值的部件,其中,

《《’表示逐位左移运算符;用于根据1《《用于指定细化值的位的数量来确定全局缩放移位值的部件;用于根据如下确定全局缩放偏移值的部件:当全局缩放位移值大于零时,1《《全局缩放位移值减1;或者当全局缩放位移值等于零时,全局缩放偏移值等于零;和根据(全局缩放基值加上全局缩放细化值)《《初始全局缩放因子来计算全局缩放因子的部件。
[0445]
条款50:根据条款44-49中的任一项条款的设备,该设备还包括用于将该帧分割为一个或多个边界框的部件,这些边界框中的至少一个边界框包括点的子集,其中,缩放点的子集的位置值包括:用于确定缩放该点的子集中的一个子集的多个位置值中的一个位置值将致使这些位置值中的该一个位置值超过这些边界框中的至少一个边界框的部件;以及用于对该点的子集中的一个子集的多个位置值中的一个位置值进行限幅以防止这些位置值中的该一个位置值超过这些边界框中的至少一个边界框的部件。
[0446]
条款51:根据条款44-50中的任一项条款的设备,该设备还包括用于在对该帧进行解码之前对该帧进行编码的部件。
[0447]
条款52:一种解码基于几何的点云数据的方法,该方法包括:解码包括多个点的基于几何的点云数据的帧,每个点与定义该点的相应位置的位置值相关联;确定帧的全局缩放因子;以及通过全局缩放因子来缩放每个点的位置值。
[0448]
条款53:根据条款52的方法,其中,在缩放之前,使用第一位深度来表达这些位置值,并且其中,在缩放之后,使用高于该第一位深度的第二位深度来表达被缩放的位置值。
[0449]
条款54:根据条款53的方法,该方法还包括对表示该第二位深度的数据进行解码。
[0450]
条款55:根据条款53的方法,其中,确定全局缩放因子包括对表示用于指定要应用于初始全局缩放因子的细化值的位的数量的数据进行解码。
[0451]
条款56:根据条款55的方法,该方法还包括对具有位的数量的缩放因子细化值进行解码。
[0452]
条款57:根据条款56的方法,其中,确定该全局缩放因子包括:对表示初始全局缩放因子的数据进行解码;根据1《《用于指定细化值的位的数量来确定全局缩放基值,其中,

《《’表示逐位左移运算符;根据1《《用于指定细化值的位的数量来确定全局缩放移位值;根据如下确定全局缩放偏移值:当全局缩放位移值大于零时,1《《全局缩放位移值减1;或者当全局缩放位移值等于零时,全局缩放偏移值等于零;以及根据(全局缩放基值加上全局缩放细化值)《《初始全局缩放因子来计算全局缩放因子。
[0453]
条款58:根据条款52的方法,该方法还包括将该帧分割为一个或多个边界框,这些边界框中的至少一个边界框包括多个点的子集,其中,缩放点的子集的位置值包括:确定缩放该点的子集中的一个子集的多个位置值中的一个位置值将致使这些位置值中的该一个位置值超过这些边界框中的至少一个边界框;以及对该点的子集中的一个子集的多个位置值中的一个位置值进行限幅以防止这些位置值中的该一个位置值超过这些边界框中的至少一个边界框。
[0454]
条款59:根据条款52的方法,该方法还包括在对该帧进行解码之前对该帧进行编码。
[0455]
条款60:一种用于解码基于几何的点云数据的设备,该设备包括:被配置为存储基于几何的点云数据的存储器;和一个或多个处理器,其在电路中实现并且被配置为:解码包括多个点的基于几何的点云数据的帧,多个点中的每个点与定义该点的相应位置的位置值相关联;确定该帧的全局缩放因子;以及通过全局缩放因子来缩放每个点的位置值。
[0456]
条款61:根据条款60的设备,其中,在缩放之前,使用第一位深度来表达这些位置值,并且其中,在缩放之后,使用高于该第一位深度的第二位深度来表达被缩放的位置值。
[0457]
条款62:根据条款61的设备,其中,一个或多个处理器还被配置为对表示该第二位深度的数据进行解码。
[0458]
条款63:根据条款61的设备,其中,为了确定该全局缩放因子,该一个或多个处理器被配置为对表示用以指定待应用于初始全局缩放因子的细化值的位的数量的数据进行解码。
[0459]
条款64:根据条款63的设备,其中,该一个或多个处理器还被配置为对具有位的数量的缩放因子细化值进行解码。
[0460]
条款65:根据条款64的设备,其中,为了确定该全局缩放因子,该一个或多个处理器被配置为:对表示初始全局缩放因子的数据进行解码;根据1《《用于指定细化值的位的数量来确定全局缩放基值,其中,

《《’表示逐位左移运算符;根据1《《用于指定细化值的位的数量来确定全局缩放移位值;根据如下确定全局缩放偏移值:当全局缩放位移值大于零时,1《《全局缩放位移值减1;或者当全局缩放位移值等于零时,全局缩放偏移值等于零;以及根据(全局缩放基值加上全局缩放细化值)《《初始全局缩放因子来计算全局缩放因子。
[0461]
条款66:根据条款60的设备,其中,该一个或多个处理器还被配置为将该帧分割成一个或多个边界框,这些边界框中的至少一个边界框包括点的子集,并且其中,为了缩放点
的子集的位置值,该一个或多个处理器被配置为:确定缩放该点的子集中的一个子集的多个位置值中的一个位置值将致使这些位置值中的该一个位置值超过这些边界框中的至少一个边界框;以及对该点的子集中的一个子集的多个位置值中的一个位置值进行限幅以防止这些位置值中的该一个位置值超过这些边界框中的至少一个边界框。
[0462]
条款67:根据条款60的设备,其中,该一个或多个处理器还被配置为在对该帧进行解码之前对该帧进行编码。
[0463]
条款68:根据条款60的设备,该设备还包括被配置为显示被解码的基于几何的点云数据的显示器。
[0464]
条款69:根据条款60的设备,其中,该设备包括车辆、相机、计算机、移动设备、广播接收器设备或机顶盒中的一者或多者。
[0465]
条款70:一种计算机可读存储介质,其上存储有指令,该指令在执行时致使处理器:解码包括多个点的基于几何的点云数据的帧,多个点中的每个点与定义该点的相应位置的位置值相关联;确定该帧的全局缩放因子;以及通过全局缩放因子来缩放每个点的位置值。
[0466]
条款71:根据条款70的计算机可读存储介质,其中,在缩放之前,使用第一位深度来表达这些位置值,并且其中,在缩放之后,使用高于该第一位深度的第二位深度来表达被缩放的位置值。
[0467]
条款72:根据条款71的计算机可读存储介质,该计算机可读存储介质还包括使处理器对表示第二位深度的数据进行解码的指令。
[0468]
条款73:根据条款71的计算机可读存储介质,其中,使处理器确定全局缩放因子的指令包括使处理器对表示用于指定要应用于初始全局缩放因子的细化值的位的数量的数据进行解码的指令。
[0469]
条款74:根据条款73的计算机可读存储介质,该计算机可读存储介质还包括使处理器对具有位的数量的缩放因子细化值进行解码的指令。
[0470]
条款75:计算机可读存储介质74,其中,该致使该处理器确定该全局缩放因子的指令包括致使该处理器进行以下操作的指令:解码表示该初始全局缩放因子的数据;根据1《《用于指定细化值的位的数量来确定全局缩放基值,其中,

《《’表示逐位左移运算符;根据1《《用于指定细化值的位的数量来确定全局缩放移位值;根据如下确定全局缩放偏移值:当全局缩放位移值大于零时,1《《全局缩放位移值减1;或者当全局缩放位移值等于零时,全局缩放偏移值等于零;以及根据(全局缩放基值加上全局缩放细化值)《《初始全局缩放因子来计算全局缩放因子。
[0471]
条款76:根据条款70的计算机可读存储介质,该计算机可读存储介质还包括使得处理器将帧分割为一个或多个边界框,这些边界框中的至少一个边界框包括多个点的子集,其中,缩放这些点的子集的位置值包括:确定缩放这些点的子集中的一个子集的多个位置值中的一个位置值将致使这些位置值中的该一个位置值超过这些边界框中的至少一个边界框;以及对这些点的子集中的一个子集的多个位置值中的该一个位置值进行限幅以防止这些位置值中的该一个位置值超过这些边界框中的至少一个边界框。
[0472]
条款77:根据条款70的计算机可读存储介质,该计算机可读存储介质还包括使得处理器在对帧进行解码之前对帧进行编码的指令。
[0473]
条款78:一种用于解码基于几何的点云数据的设备,该设备包括:用于解码包括多个点的基于几何的点云数据的帧的部件,每个点与定义该点的相应位置的位置值相关联;确定帧的全局缩放因子;以及通过全局缩放因子来缩放每个点的位置值。
[0474]
条款79:根据条款78的设备,其中,在缩放之前,使用第一位深度来表达这些位置值,并且其中,在缩放之后,使用高于该第一位深度的第二位深度来表达被缩放的位置值。
[0475]
条款80:根据条款79的设备,该设备还包括用于对表示该第二位深度的数据进行解码的部件。
[0476]
条款81:根据条款79的设备,其中,用于确定该全局缩放因子的部件包括用于对表示用以指定待应用于初始全局缩放因子的细化值的位的数量的数据进行解码的部件。
[0477]
条款82:根据条款81的设备,该设备还包括用于对具有位的数量的缩放因子细化值进行解码的部件。
[0478]
条款83:根据条款82的设备,其中,用于确定该全局缩放因子的部件包括:用于对表示初始全局缩放因子的数据进行解码的部件;用于根据1《《用于指定细化值的位的数量来确定全局缩放基值的部件,其中,

《《’表示逐位左移运算符;用于根据1《《用于指定细化值的位的数量来确定全局缩放移位值的部件;用于根据如下确定全局缩放偏移值的部件:当全局缩放位移值大于零时,1《《全局缩放位移值减1;或者当全局缩放位移值等于零时,全局缩放偏移值等于零;和根据(全局缩放基值加上全局缩放细化值)《《初始全局缩放因子来计算全局缩放因子的部件。
[0479]
条款84:根据条款78的设备,该设备还包括用于将该帧分割为一个或多个边界框的部件,这些边界框中的至少一个边界框包括多个点的子集,其中,缩放点的子集的位置值包括:用于确定缩放点的子集中的一个子集的多个位置值中的一个位置值将致使这些位置值中的该一个位置值超过这些边界框中的至少一个边界框的部件;以及用于对点的子集中的一个子集的多个位置值中的一个位置值进行限幅以防止这些位置值中的该一个位置值超过这些边界框中的至少一个边界框的部件。
[0480]
条款85:根据条款78的设备,该设备还包括用于在对该帧进行解码之前对该帧进行编码的部件。
[0481]
条款86:一种对点云数据进行编码的方法,该方法包括:对包括多个点的点云数据的帧进行编码,每个点与定义该点的相应位置的位置值相关联;确定该帧的初始全局缩放因子;确定用于指定要应用于该初始全局缩放因子的细化值的位的数量;确定具有位的数量的缩放因子细化值;以及生成位流,该位流包括表示已编码帧、用于指定细化值的位的数量和缩放因子细化值的数据。
[0482]
可以认识到的是,根据示例,本文描述的技术中的任何一种的某些动作或事件可以按不同的顺序来执行,可以被添加、合并或一起省略(例如,并非所有所描述的动作或事件对于技术的实践都是必要的)。此外,在某些示例中,动作或事件可以同时执行,例如,通过多线程处理、中断处理或多个处理器,而非顺序执行。
[0483]
在一个或多个示例中,所描述的功能可以在硬件、软件、固件或其任何组合中实现。如果在软件中实现,这些功能可以作为一个或多个指令或代码存储或发送到计算机可读介质上并由基于硬件的处理单元运行。计算机可读介质可以包括与诸如数据存储介质的有形介质对应的计算机可读存储介质,或包括例如,根据通信协议促进将计算机程序从一
个地方转移到另一个地方的任何介质的通信介质。以这种方式,计算机可读介质一般可以对应于(1)非暂时性的有形计算机可读存储介质,或者(2)诸如信号或载波之类的通信介质。数据存储介质可以是可由一个或多个计算机或一个或多个处理器访问以检索指令、代码和/或数据结构以用于实现本公开中描述的技术的任何可用介质。计算机程序产品可以包括计算机可读介质。
[0484]
作为示例而非限制,这种计算机可读存储介质可以包括ram、rom、eeprom、cd-rom或其他光盘存储、磁盘存储或其他磁性存储设备、闪存或可以用于以指令或数据结构形式存储所需程序代码并且可以由计算机访问的任何其他介质。此外,任何连接都适当地被称为计算机可读介质。例如,如果指令是使用同轴电缆、光纤电缆、双绞线、数字订户线(dsl)或无线技术(诸如红外线、无线电以及微波)从网站、服务器或其他远程源发送的,则同轴电缆、光纤电缆、双绞线、dsl或无线技术(诸如红外线、无线电以及微波)都被包括在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他暂时性介质,而是指向非暂时性有形存储介质。如本文所使用的磁盘和光盘包括致密光盘(cd)、激光光盘、光学光盘、数字多功能光盘(dvd)、软盘和蓝光光盘,其中,磁盘一般以磁性方式重现数据,而光盘用激光光学地重现数据。上述的组合也应包括在计算机可读介质的范围内。
[0485]
指令可以由一个或多个处理器执行,诸如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程门阵列(fpga)或其他等效集成的或分立逻辑电路。因此,如本文中所使用的术语“处理器”和“处理电路”可指前述结构中的任一者或适于实现本文中所描述的技术的任何其他结构。另外,在一些方面,本文描述的功能性可以在被配置为用于编码和解码的专用硬件和/或软件模块中提供,或者被结合在组合编解码器中。而且,这些技术可以完全在一个或多个电路或逻辑元件中实现。
[0486]
本公开的技术可以在很多种设备或装置中实现,包括无线手机、集成电路(ic)或ic组(例如,芯片组)。在本公开中描述了各种组件、模块或单元,以强调被配置为执行所公开的技术的设备的各功能方面,但是不一定要求通过不同的硬件单元来实现。相反,如上所述,各种单元可以被组合在编解码器硬件单元中,或者由包括如上所述的一个或多个处理器的互操作硬件单元的集,结合合适的软件和/或固件来提供。
[0487]
已经描述了各种示例。这些和其他示例都在所附权利要求的范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献