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

用于点云编解码的几何合并模式的方法和装置与流程

2021-10-23 03:46:00 来源:中国专利 TAG:专利申请 美国 提交 优先权 并入

用于点云编解码的几何合并模式的方法和装置
相关文件
1.本技术要求于2019年7月12日在美国专利和商标局提交的美国临时专利申请第62/873,676号和于2020年7月8日提交的美国专利申请第16/923,609号的优先权,以上申请的全部公开内容通过引用并入本文。


背景技术:

2.近年来点云已经得到了广泛的使用。例如,点云在自主驾驶车辆中用于对象检测和定位,在地理信息系统(geographic information systems,gis)中用于绘图,以及在文化遗产中用于对文化遗产对象和收藏品进行可视化和存档。
3.点云包含一组高维点(例如三维(3d)点),每个高维点包括3d位置信息和其它属性,例如颜色、反射比(reflectance)等。在各种场景下,这些高维点可以由多个照相机和深度传感器或激光雷达(lidar)来拍摄,并且可以由数千到数十亿个点组成以真实地表示原始场景。
4.使用压缩技术来减少用于表示点云的数据量,以使传输更快或存储更小。国际标准化组织(international organization for standardization,iso)/国际电工委员会(international electrotechnical commission,iec)运动图像专家组(moving picture expertsgroup,mpeg)(联合技术委员会(joint technical committee,jtc)1/分技术委员会(subcommittee,sc)29/工作组(work group,wg)11)已经创建了自组网模式组(ad

hoc group)mpeg

点云编解码(point cloud coding,pcc)来对静态或动态云的压缩技术进行标准化。
5.mpeg中测试模型13(test model 13,tmc13)中的点云压缩
6.在tmc13模型中,几何信息和相关属性(例如颜色和反射比)被分别压缩。利用八叉树分割机制,对包括点云的3d坐标的几何信息与其占用信息一起进行编码。然后使用预测、提升和区域自适应分层变换技术并基于经重建几何结构来对属性进行压缩。下面详细描述八叉树分割和占用编码过程。
7.八叉树分割
8.图1a是3d空间中的八叉树分割的示意图。
9.参考图1a,在tmc13中,如果使用八叉树几何编解码器,则几何编码按如下方式进行。首先,与立方体轴对齐的边界框b由两个点(0,0,0)和(2
d
,2
d
,2
d
)定义,其中2
d
定义了b的大小,并且将d编码到码流中。
10.然后通过递归地进一步分割b来建立八叉树结构。在每个阶段,一立方体被进一步分割为8个子立方体。再通过将1比特值与每个子立方体相关联,以生成8比特代码,即占用代码,以指示每个子立方体包含点(即,满、且值为1)还是不包含点(即,空、且值为0)。只有大小大于1且是满的子立方体(即,非三维像素(voxel))才被进一步分割。
11.图1b是八叉树分割及其树结构的示意图。
12.参考图1b,示出了两级八叉树分割和相应的占用代码的示例。用阴影示出的立方
体和节点表示它们被点占用。
13.占用代码的编码
14.之后,每个节点的占用代码利用算术编码器进行压缩。占用代码可以表示为8位整数s,并且s中的每一位指示每个子节点的占用状态。tmc13中存在两种占用代码编码方法,即,逐位编码和逐字节编码,并且默认启用逐位编码。
15.对于逐位编码,以一顺序对s中的八个二进制数进行编码,根据该顺序,通过参考邻居节点的占用状态和邻居节点的子节点的占用状态来对每个二进制数进行编码,其中邻居节点与当前节点属于相同级别。
16.对于逐字节编码,通过参考以下内容来对s进行编码:自适应查找表(a

lut),其跟踪n个(例如,32个)最频繁使用的占用代码;以及高速缓存,其跟踪最近观察到的m个(例如,16个)不同的占用代码。
17.对指示s是否在a

lut中的二进制信息进行编码。若s在a

lut中,则使用二进制算术编码器对a

lut中的索引进行编码。若s不在a

lut中,则对指示s是否在高速缓存中的二进制信息进行编码。若s在高速缓存中,则使用二进制算术编码器对其索引的二进制表示进行编码。否则,若s不在高速缓存中,则使用二进制算术编码器对s的二进制表示进行编码。
18.解码过程从解析码流中的边界框b的维度开始。然后通过根据已解码的占用代码对b进一步分割来建立相同的八叉树结构。
19.在当前的tmc13设计中,占用代码s默认采用逐位编码进行编码,其中对s的每个二进制数单独进行编码。尽管当对s的每个二进制数进行编码时,相邻已编码节点的占用状态被用于上下文建模,但是相邻已编码节点的结构信息没有被充分利用。
20.图1c是在二维(2d)中创建占用代码的重复图样的重复线结构的示意图。
21.参考图1c,在2d空间中观察到三条对角虚线,其中表示点的位置沿各线分布。结果,节点的占用状态示出了显式结构,其中占用代码在空间上重复。然而,当前tmc13没有充分利用占用代码中的这种结构相似性。


技术实现要素:

22.根据各实施例,一种用于点云编解码(pcc)的几何合并模式的方法由至少一处理器执行,并且包括:针对点云的八叉树分割的当前节点,获取所述八叉树分割的候选节点,所述当前节点为当前正在进行编码的节点,而候选节点是先前已经过编码的节点。该方法还包括:获取获得的所述候选节点的占用代码;构建候选列表,所述候选列表包括获得的所述候选节点的所述占用代码;基于构建的所述候选列表获取所述当前节点的占用代码;及基于获得的所述当前节点的所述占用代码执行pcc。
23.根据各实施例,一种用于点云编解码(pcc)的几何合并模式的装置包括:至少一存储器,用于存储程序代码;以及至少一处理器,用于读取所述程序代码并按照所述程序代码的指示进行操作。该程序代码包括第一获取代码,,用于使所述至少一处理器针对点云的八叉树分割的当前节点,获取所述八叉树分割的候选节点,所述当前节点为当前正在进行编码的节点,而候选节点是先前已经过编码的节点。该程序代码进一步包括:第二获取代码,用于使至少一处理器获取获得的所述候选节点的占用代码;构建代码,用于使至少一处理器构建候选列表,所述候选列表包括获得的所述候选节点的所述占用代码;第三获取代码,
用于使至少一处理器基于构建的所述候选列表获取所述当前节点的占用代码;以及执行代码,用于使至少一处理器基于获得的所述当前节点的所述占用代码执行pcc。
24.根据各实施例,一种非易失性计算机可读介质,存储有指令,这些指令在由用于点云编解码的几何合并模式(pcc)的装置的至少一处理器执行时,使至少一处理器针对点云的八叉树分割的当前节点,获取所述八叉树分割的候选节点,所述当前节点为当前正在进行编码的节点,而候选节点是先前已经过编码的节点。所述指令还使至少一处理器获取获得的所述候选节点的占用代码;构建候选列表,所述候选列表包括获得的所述候选节点的所述占用代码;基于构建的所述候选列表获取所述当前节点的占用代码;及基于获得的所述当前节点的所述占用代码执行pcc。
附图说明
25.图1a是3d空间中的八叉树分割的示意图。
26.图1b是八叉树分割及其树结构的示意图。
27.图1c是在2d中创建占用代码的重复图样的重复线结构的示意图。
28.图2各实施例中可以实施本文所描述的方法、装置和系统的环境的示意图。
29.图3是图2中一或多个设备的示例组件的框图。
30.图4a是一些实施例的g

pcc压缩器的功能框图。
31.图4b是一些实施例的g

pcc解压缩器的功能框图。
32.图4c是一些实施例的具有相同深度的相邻候选节点和非相邻候选节点的示意图。
33.图5是一些实施例的用于pcc的几何合并模式的方法的流程图。
34.图6是一些实施例的用于pcc的几何合并模式的装置的框图。
具体实施方式
35.本技术涉及pcc中的几何压缩。在各方法中,当前节点的占用代码可以从已编码的节点获得或预测。本技术还详细描述了编解码模式的信号表示方法。
36.具体地,提出了一种新的占用代码编码方法(即,合并模式)。当前节点的占用代码可以从已编码的节点获得或预测。为当前节点构建候选列表,且候选列表由从已编码的节点获得的占用代码组成。通过用信号表示构建的候选列表的索引,可以直接从候选列表中获得当前节点的占用代码,而无需对每个二进制数进行编码。或者,还可以用信号表示当前节点的占用代码与参考占用代码之间的差异。下面详细描述候选列表的构建方法和合并模式的信号表示方法。
37.图2是各实施例中可以实施本文所描述的方法、装置和系统的环境200的示意图。如图2所示,环境200可以包括用户设备210、平台220和网络230。环境200的设备可以通过有线连接、无线连接或有线和无线连接的组合进行互连。
38.用户设备210包括一或多个设备,该一或多个设备能够接收、生成、存储、处理和/或提供与平台220相关的信息。例如,用户设备210可以包括计算设备(例如,台式计算机、笔记本电脑、平板计算机、手持式计算机、智能扬声器、服务器等)、移动电话(例如,智能电话、无线电话等)、可穿戴设备(例如,智能眼镜或智能手表)或相似设备。在一些实施方式中,用户设备210可以从平台220接收信息和/或向平台220发送信息。
39.平台220包括如本文中其它地方所描述的一或多个设备。在一些实施方式中,平台220可以包括云服务器或云服务器组。在一些实施方式中,平台220可以被设计成模块化,使得软件组件可以根据特定需要被换入或换出。这样,可以容易地和/或快速地重新配置平台220以具有不同的用途。
40.在一些实施方式中,如图所示,平台220可以被托管(hosted)在云计算环境222中。值得注意的是,虽然本文所述的实施方式将平台220描述为托管在云计算环境222中,但是在一些实施方式中,平台220不是基于云的(即,可以在云计算环境外部实现)或者可以是部分基于云的。
41.云计算环境222包括托管平台220的环境。云计算环境222可以提供计算、软件、数据访问、存储等服务,这些服务不需要终端用户(例如,用户设备210)了解托管平台220的系统和/或设备的物理位置和配置。如图所示,云计算环境222可以包括一组计算资源224(统称为“计算资源(computing resources)224”并分别称为“计算资源(computing resource)224”)。
42.计算资源224包括一或多个个人计算机、工作站计算机、服务器设备或其它类型的计算和/或通信设备。在一些实施方式中,计算资源224可以托管平台220。云资源可以包括在计算资源224中执行的计算实例、在计算资源224中提供的存储设备、由计算资源224提供的数据传输设备等。在一些实施方式中,计算资源224可以通过有线连接、无线连接或有线和无线连接的组合与其它计算资源224通信。
43.进一步如图2所示,计算资源224包括一组云资源,例如一或多个应用程序(“app”)224

1、一或多个虚拟机(“vm”)224

2、虚拟化存储(“vs”)224

3、一或多个管理程序(“hyp”)224

4等。
44.应用程序224

1包括一或多个软件应用程序,其可以提供给用户设备210和/或平台220,或由用户设备210和/或平台220访问。应用程序224

1无需在用户设备210上安装和执行软件应用程序。例如,应用程序224

1可以包括与平台220相关的软件,和/或,能够通过云计算环境222提供的任何其它软件。在一些实施方式中,一个应用程序224

1可以通过虚拟机224

2向或从一或多个其它应用程序224

1发送/接收信息。
45.虚拟机224

2包括机器(例如,计算机)的软件实现,该机器执行程序,类似于物理机。虚拟机224

2可以是系统虚拟机,也可以是进程虚拟机,这取决于虚拟机224

2对任何真实机的使用和对应程度。系统虚拟机可以提供完整系统平台,其支持完整操作系统(“os”)的执行。进程虚拟机可以执行单个程序,并且可以支持单个进程。在一些实施方式中,虚拟机224

2可以代表用户(例如,用户设备210)执行,并且可以管理云计算环境222的基础架构,例如数据管理、同步或长期数据传输。
46.虚拟化存储224

3包括一或多个存储系统和/或一或多个设备,该一或多个设备在计算资源224的存储系统或设备内使用虚拟化技术。在一些实施方式中,在存储系统的上下文内,虚拟化的类型可以包括块虚拟化和文件虚拟化。块虚拟化可以指逻辑存储从物理存储的抽象(或分离),以便可以在不考虑物理存储或异构结构的情况下访问存储系统。分离可以允许存储系统的管理员灵活地管理终端用户的存储。文件虚拟化可以消除在文件级别存取的数据与物理存储文件的位置之间的依赖性。这可以优化存储使用、服务器整合和/或无中断文件迁移的性能。
47.管理程序(hypervisor)224

4可以提供硬件虚拟化技术,其允许多个操作系统(例如,“客户操作系统”)在诸如计算资源224的主计算机上同时执行。管理程序224

4可以向客户操作系统提供虚拟操作平台,并且可以管理客户操作系统的执行。各种操作系统的多个实例可以共享虚拟化硬件资源。
48.网络230包括一或多个有线和/或无线网络。例如,网络230可以包括蜂窝网络(例如,第五代(fifth generation,5g)网络、长期演进(long

term evolution,lte)网络、第三代(third generation,3g)网络、码分多址(cdma)网络等)、公共陆地移动网络(public land mobile network,plmn)、局域网(local area network,lan)、广域网(wide area network,wan)、城域网(metropolitan area network,man)、电话网络(例如,公共交换电话网络(public switched telephone network,pstn))、专用网络、自组织网络、内联网、因特网、基于光纤的网络等,和/或这些或其它类型的网络的组合。
49.图2所示的设备和网络的数量和排列被作为示例来提供。实际上,与图2所示的设备和/或网络相比,可以有更多的设备和/或网络、更少的设备和/或网络、不同的设备和/或网络、或排列不同的设备和/或网络。此外,图2所示的两个或更多个设备可以在单个设备内实现,或者图2所示的单个设备可以实现为多个分布式设备。另外或可替代地,环境200的一组设备(例如,一或多个设备)可以执行被描述为由环境200的另一组设备执行的一或多个功能。
50.图3是图2中一或多个设备的示例组件的框图。设备300可以对应于用户设备210和/或平台220。如图2所示,设备300可以包括总线310、处理器320、存储器330、存储组件340、输入组件350、输出组件360和通信接口370。
51.总线310包括允许设备300的组件之间进行通信的组件。处理器320以硬件、固件或硬件和软件的组合来实现。处理器320是中央处理单元(cpu)、图形处理单元(gpu)、加速处理单元(apu)、微处理器、微控制器、数字信号处理器(dsp)、现场可编程门阵列(fpga)、专用集成电路(asic)或另一类型的处理组件。在一些实施方式中,处理器320包括一或多个能够被编程以执行功能的处理器。存储器330包括随机存取存储器(ram)、只读存储器(rom)和/或另一类型的动态或静态存储设备(例如,闪存、磁存储器和/或光存储器),其存储供处理器320使用的信息和/或指令。
52.存储组件340存储与设备300的操作和使用相关的信息和/或软件。例如,存储组件340可以包括硬盘(例如,磁盘、光盘、磁光盘和/或固态盘)、光盘(cd)、数字通用盘(dvd)、软盘、盒式磁带、磁带和/或另一类型的非易失性计算机可读介质,以及相应的驱动器。
53.输入组件350包括允许设备300例如通过用户输入接收信息的组件,例如,触摸屏显示器、键盘、小键盘、鼠标、按钮、开关和/或麦克风。另外或可替代地,输入组件350可以包括用于感测信息的传感器(例如,全球定位系统(gps)组件、加速计、陀螺仪和/或致动器)。输出组件360包括提供来自设备300的输出信息的组件,例如,显示器、扬声器和/或一或多个发光二极管(led)。
54.通信接口370包括类似收发器的组件(例如,收发器和/或单独的接收器和发送器),该组件使设备300能够例如通过有线连接、无线连接或有线和无线连接的组合与其它设备通信。通信接口370可以允许设备300从另一设备接收信息和/或向另一设备提供信息。例如,通信接口370可以包括以太网接口、光接口、同轴接口、红外接口、射频(rf)接口、通用
串行总线(usb)接口、wi

fi接口、蜂窝网络接口等。
55.设备300可以执行本文中所描述的一或多个过程。设备300可以响应于处理器320执行由非易失性计算机可读介质(例如存储器330和/或存储组件340)存储的软件指令来执行这些过程。计算机可读介质在本文中被定义为非易失性存储器设备。存储器设备包括单个物理存储设备内的存储空间或分布在多个物理存储设备上的存储空间。
56.软件指令可以通过通信接口370从另一计算机可读介质或从另一设备读入存储器330和/或存储组件340。当被执行时,存储在存储器330和/或存储组件340中的软件指令可以使处理器320执行本文中所描述的一或多个过程。另外或可替代地,可以使用硬件连线电路来代替软件指令或与软件指令结合以执行本文中所描述的一或多个过程。因此,本文中所描述的实施方式不限于硬件电路和软件的任何特定组合。
57.图3所示的组件的数量和排列被作为示例来提供。实际上,与图3所示的组件相比,设备300可能包括更多的组件、更少的组件、不同的组件或排列不同的组件。另外或可替代地,设备300的一组组件(例如,一或多个组件)可以执行被描述为由设备300的另一组组件执行的一或多个功能。
58.图4a是各实施例的g

pcc压缩器400的功能框图。
59.如图4a所示,g

pcc压缩器400包括量化器405、点去除模块410、八叉树编码器415、属性传送模块420、lod生成器425、预测模块430、量化器435和算术编码器440。
60.量化器405接收输入点云中的点的位置。位置可以是(x,y,z)坐标。量化器405进一步使用例如缩放算法和/或移位算法对所接收的位置进行量化。
61.点去除模块410从量化器405接收量化位置,并从所述接收的量化位置中去除或过滤掉重复的位置。
62.八叉树编码器415从点去除模块410接收滤波后的位置,并使用八叉树编码算法对所接收的过滤后的位置进行编码,生成表示输入点云的八叉树的占用符号。八叉树对应的输入点云的边界框可以是任何3d形状,例如立方体。
63.八叉树编码器415进一步基于对过滤后的位置的编码,对所述接收的过滤后的位置重新排序。
64.属性传送模块420接收输入点云中的点的属性。属性可以包括,例如每个点的颜色或rgb值和/或反射比。属性传送模块420进一步从八叉树编码器415接收重新排序后的位置。
65.属性传送模块420进一步基于所述接收的重新排序后的位置对所接收的属性进行更新。例如,属性传送模块420可以对所接收的属性执行各预处理算法中的一或多个预处理算法。各预处理算法包括,例如对所接收的属性进行加权和平均以及对所接收的属性中的附加属性进行插值。属性传送模块420进一步将更新后的属性传送到预测模块430。
66.lod生成器425从八叉树编码器415接收重新排序后的位置,并获取所接收的重新排序后的位置对应的每个点的lod。每个lod可以被认为是一组点,并且可以基于每个点的距离来获得。例如,点p0、p5、p4和p2可以在lod的lod0中,点p0、p5、p4、p2、p1、p6和p3可以在lod的lod1中,而点p0、p5、p4、p2、p1、p6、p3、p9、p8和p7可以在lod的lod2中。
67.预测模块430从属性传送模块420接收所传送的属性,并且从lod生成器425接收获得的每个点的lod。预测模块430通过以基于每个点的所接收的lod的顺序对所接收的属性
执行预测算法来分别获取所接收的属性的预测残差(值)。预测算法可以包括各种预测算法中的任一种,例如插值、加权平均计算、最近邻居算法和率失真优化(rate distortion optimization,rdo)。
68.例如,在获得分别包括在lod的lod1和lod2中的点p1、p6、p3、p9、p8和p7的所接收属性的预测残差之前,可以首先分别获得包括在lod的lod0中的点p0、p5、p4和p2的所接收属性的预测残差。可以通过基于点p0、p5和p4的加权平均来计算距离,从而获得点p2的所接收属性的预测残差。
69.量化器435从预测模块430接收获得的预测残差,并使用例如缩放算法和/或移位算法对所接收的预测残差进行量化。
70.算术编码器440从八叉树编码器415接收占用符号,并从量化器435接收量化后的预测残差。算术编码器440对所接收的占用符号和量化后的预测残差执行算术编码以获得压缩后的比特流。算术编码可以包括各种熵编码算法中的任何一种,例如上下文自适应二进制算术编码。
71.图4b是各实施例的g

pcc解压缩器450的功能框图。
72.如图4b所示,g

pcc解压缩器450包括算术解码器455、八叉树解码器460、逆量化器465、lod生成器470、逆量化器475和逆预测模块480。
73.算术解码器455从g

pcc压缩器400接收压缩后的比特流,并对所接收的压缩后的比特流执行算术解码以获得占用符号和量化后的预测残差。算术解码可以包括各种熵解码算法中的任何一种,例如上下文自适应二进制算术解码。
74.八叉树解码器460从算术解码器455接收获得的占用符号,并使用八叉树解码算法对所接收的占用符号进行解码,得到量化后的位置。
75.逆量化器465从八叉树解码器460接收量化后的位置,并使用例如缩放算法和/或移位算法对所接收的量化后的位置进行逆量化,以获得输入点云中的点的重构位置。
76.lod生成器470从八叉树解码器460接收量化后的位置,并且获取所接收的量化后的位置对应的每个点的lod。
77.逆量化器475接收获得的量化后的预测残差,并使用例如缩放算法和/或移位算法对所接收的量化后的预测残差进行逆量化,以获取得重构的预测残差。
78.逆预测模块480从逆量化器475接收获得的重构的预测残差,并从lod生成器470接收获得的每个点的lod。逆预测模块480通过以每个点的所接收的lod的顺序对所接收的重构的预测残差施加预测算法来获得所接收的重构的各预测残差的重构属性。预测算法可以包括各种预测算法中的任何一种,例如插值、加权平均计算、最近邻居算法和rdo。重构属性是输入点云内的点的重构属性。
79.下面详细描述用于pcc的几何合并模式的方法和装置。本技术不限于tmc13软件或mpeg g

pcc标准,并且可以作为大多数pcc系统的解决方案。以下描述中,所有加下划线的文本指示最新mpeg g

pcc标准规范中的可能变化。
80.i.用于合并模式的候选列表构建
81.在本节中,提出了用于合并模式的候选列表构建方法。对于编码器(例如,g

pcc压缩器400)和解码器(例如,g

pcc解压缩器450),可以采用完全相同的方式来完成这些方法,以避免不相匹配。
82.为了启用合并模式,为当前编码的节点构建候选列表。候选列表由从已编码的节点或默认表中获得的可用占用代码组成。已编码的节点包括当前点云帧中的已编码节点(空间参考)和先前已编码的帧中的已编码节点(时间参考)。候选节点可以与当前节点位于相同的分割深度,或者位于比当前节点更低的分割深度(即,父节点和祖父节点)中。设candlist={s1,s2,

,s
n
}为包含n个不同占用代码的已构建的候选列表,这n个不同的占用代码从已编码的节点获得。当一个候选s
i
要被添加到列表中时,执行唯一性检查以确保s
i
与已经在列表中的各元素不同,即如果i≠j,则s
i
≠s
j

83.为了填充候选列表,可以从在当前节点之前已编码的所有节点获得占用代码。以下各节列出一些实施例。
84.a.相同深度的空间相邻已编码节点
85.候选节点可以是与当前节点空间相邻的、处于相同分割深度的已编码节点。候选节点和当前节点可以具有相同的父节点或不同的父节点。可用候选节点的位置取决于八叉树节点的编码顺序。
86.图4c是一些实施例的具有相同深度的相邻候选节点和非相邻候选节点的示意图。
87.参考图4c,当前编码节点的相邻候选节点是上相邻节点和左相邻节点。
88.一个实施例中,各八叉树节点按照如图1a所示的morton码指定的广度优先顺序进行编码。可用候选节点包括当前节点的左相邻节点、下相邻节点和前相邻节点,且其占用代码可被添加到候选列表(即candlist)中。
89.另一个实施例中,各八叉树节点按照逆morton码指定的广度优先顺序进行编码。可用候选节点包括当前节点的右相邻节点、上相邻节点和后相邻节点,且其占用代码可被添加到候选列表(即candlist)中。
90.b.相同深度的空间非相邻已编码节点
91.候选节点可以是与当前节点在空间上不相邻的、处于相同分割深度的已编码节点。
92.一个实施例中,维护高速缓存以记录最后观察到的不同占用代码。高速缓存中的每个占用代码可以被添加到候选列表(即candlist)中。在这种情况下,候选节点可以邻近、不邻近或者甚至远离当前节点。高速缓存的最大尺寸可以是固定的或者在码流的头中指定。
93.另一个实施例中,候选节点来自相对于当前节点的固定的非相邻位置。在图4c中给出了2d图示,其中来自非相邻候选节点的占用代码可被添加到候选列表(即candlist)中。
94.c.父节点和祖父节点
95.候选节点可以是当前节点的父节点或祖父节点,即包含当前节点但具有较小深度的节点。
96.一个实施例中,当前节点的父节点的占用代码可被添加到候选列表(即candlist)中。
97.另一个实施例中,当前节点的父节点和祖父节点二者的占用代码均可以被添加到候选列表(即candlist)中。
98.d.先前已编码帧中的节点
99.候选节点可以位于先前已编码的帧中。先前已编码的帧可以与当前帧相邻或不相邻。根据不同的帧间参考结构,先前已编码的帧可以具有比当前帧更小或更大的时间戳,即,这些帧的显示顺序可以在当前帧之前或之后。先前已编码帧中的所有占用代码可被添加到候选列表(即candlist)中。
100.一个实施例中,仅有先前已编码帧中的同位节点的占用代码可以被添加到候选列表(即candlist)中。先前已编码帧中的同位节点与当前编码节点处于相同的深度并且具有相同的morton码。
101.另一个实施例中,除了同位节点之外,先前已编码帧中的同位节点的邻居节点的占用代码可以被添加到候选列表(即candlist)中。这些邻居节点可以与先前已编码帧中的同位节点相邻或不相邻。
102.另一个实施例中,除了同位节点之外,先前已编码帧中同位节点的邻居节点和同位节点的父节点的占用代码可以被添加到候选列表(即candlist)中。另一个实施例中,先前已编码帧中的同位节点的祖父节点也可以包括在候选列表中。
103.另一个实施例中,在点云帧之间进行运动补偿。在这种情况下,由先前已编码帧中的运动矢量指示的、与当前节点具有相同深度的节点可以被添加到候选列表(即candlist)中。
104.e.默认占用代码
105.默认占用代码可以被添加到候选列表中。可以维护一包含所有默认占用代码的表。
106.一个实施例中,预定义并固定一表。表中的占用代码以固定顺序添加到候选列表中。
107.另一个实施例中,根据每个占用代码的频率对表进行排序。因此,每当观察到占用代码时就自适应地更新该表。每次,将具有最高频率的占用代码添加到候选列表中。
108.上述实施例中描述的候选节点可以以任何顺序添加到候选列表中,直到列表满为止。在被构建之后,候选列表可以进一步按出现频率排序,以确保具有较高出现概率的占用代码位于在具有较低概率的占用代码之前。
109.ii.合并模式的信号表示
110.在本节中,描述了合并模式的信号表示方法。
111.a.在高级语法中用于合并模式的信号表示参数
112.可以在高级语法中用信号表示合并模式中使用的一些参数。下面给出示例,但是本技术不限于这些示例,也可以用信号表示其它参数。这些参数可以在码流的序列头、条带头或几何参数集中给出。
113.首先,可以用信号表示用于指示启用还是禁用合并模式的标志。
114.一个实施例中,在tmc13中的几何参数集中给出一标志,如下表1所示:表1
115.gps_merge_mode_flag等于1指示对于序列或条带启用合并模式。gps_merge_mode_flag等于0指示对于序列或条带禁用合并模式。
116.其次,候选列表的最大尺寸,即n,是固定的或者由语法指示。
117.一个实施例中,候选列表的最大尺寸,即n,由tmc13的几何参数集中的merge_list_max_size_minus_one指示,如下表2所示:表2
118.merge_list_max_size_minus_one指示候选列表的最大尺寸,如下式1所示:
119.mergelistmaxsize=merge_list_max_size_minus_one 1.
ꢀꢀꢀ
(1)
120.另一个实施例中,候选列表的最大尺寸,即n,由tmc13的几何参数集中的merge_list_max_size指示,如下表3所示:表3
121.merge_list_max_size指示候选列表的最大尺寸,如下式2所示:
122.mergelistmaxsize=merge_list_max_size.
ꢀꢀꢀ
(2)
123.在这种情况下,gps_merge_mode_flag不用信号表示,而是可以从merge_list_max_size的值推导出来。如果merge_list_max_size等于零,则推断gps_merge_mode_flag为0;否则,推断gps_merge_mode_flag为1。
124.第三,可以仅在八叉树分割的特定深度处启用合并模式。因此,可以固定或用信号表示一个或两个参数以指示允许合并模式的最小和最大深度。
125.一个实施例中,合并模式的最小和最大深度在tmc13的几何参数集中用信号表示,如下表4所示:表4
126.merge_min_depth指示启用合并模式的最小八叉树分割深度。merge_max_depth指示启用合并模式的最大八叉树分割深度。仅当八叉树分割深度在指定范围之间时才启用合并模式。
127.另一个实施例中,在tmc13的几何参数集中仅用信号表示合并模式的最小深度,如下表5所示:表5
128.另一个实施例中,在tmc13的几何参数集中仅用信号表示合并模式的最大深度,如下表6所示:表6
129.另一个实施例中,仅在某个八叉树分割深度处允许合并模式。因此,在tmc13的几何参数集中用信号表示深度号,如下表7所示:表7
130.merge_present_depth指示启用合并模式的八叉树分割深度。
131.第四,可以用信号表示一个标志,以指示是否启用对当前节点的占用代码与从候选列表获得的占用代码之间的差进行编码。
132.一个实施例中,在tmc13的几何参数集中用信号表示一标志,如下表8所示:表8
133.gps_merge_signal_diff_flag指示是否启用用信号表示当前节点的占用代码与从候选列表获得的占用代码之差。
134.b.用信号表示合并模式而不用信号表示差异
135.在合并模式中,针对是否为当前编码节点启用合并模式的条件进行检查。如果启用合并模式,则首先用信号表示一标志以指示是否将合并模式应用于当前节点。如果是,再用信号表示一索引,指向已构建的候选列表中的一占用代码,该占用代码被推断为当前节点的占用代码。否则,当前节点的占用代码用信号表示,并利用逐字节编码方法或逐位编码方法进行编码。
136.在下面的实施例中,对tmc13中的语法表的修改如下表9所示:表9
137.merge_mode_flag等于1指示将合并模式应用于当前节点,并且从候选列表获得占用代码。merge_mode_flag等于0指示不将合并模式应用于当前节点,并且直接将占用代码编码到码流中。
138.merge_mode_idx指示候选列表的索引;因此,当前节点的占用代码可以被推断为s
merge_mode_idx
。仅当merge_mode_flag为1且候选列表的最大尺寸(即,mergelistmaxsize)大于1时,才用信号表示merge_mode_idx。可以以各种方式对merge_mode_idx进行二进制化和编码。一个实施例中,merge_mode_idx的编码方式如下:首先对一个标志进行编码以指示merge_mode_idx是否等于0。如果不等于0,则对另一标志进行编码以指示merge_mode_idx是否等于1。如果不等于1,则通过exp

golomb码对merge_mode_idx

2进行编码。
139.变量mergemodeflagpresent决定是否为当前节点启用合并模式。如下面的实施例,可以设置不同的条件。
140.一个实施例中,变量mergemodeflagpresent取决于如下高级语法中指示的gps_merge_mode_flag、merge_min_depth和merge_max_depth:
141.另一个实施例中,变量mergemodeflagpresent取决于如下高级语法中指示的gps_merge_mode_flag和merge_min_depth:
142.另一个实施例中,变量mergemodeflagpresent取决于如下高级语法中指示的gps_merge_mode_flag和merge_max_depth:
143.另一个实施例中,变量mergemodeflagpresent取决于如下高级语法中指示的merge_list_max_size:ist_max_size:
144.另一个实施例中,变量mergemodeflagpresent取决于如下高级语法中指示的gps_merge_mode_flag和merge_present_depth:
145.另一个实施例中,不给出上述参数中的任一;因此mergemodeflagpresent始终为
1。
146.可以设置其它条件和参数来确定mergemodeflagpresent的值,而不限于上述实施例。
147.c.用信号表示合并模式且用信号表示差异
148.另外,如果启用合并模式,可以进一步用信号表示当前节点的占用代码与候选列表中的占用代码之间的差异。可以设置一些条件和约束来用信号表示差异。
149.一个实施例中,仅允许用一比特表示当前节点的占用代码与候选列表中的占用代码之间的差异;因此,用信号表示出现差异的比特索引。tmc13中的语法表如下表10所示:表10
150.当gps_merge_signal_diff_flag为1时用信号表示merge_signal_diff_flag。merge_signal_diff_flag等于1指示对当前节点应用1比特差异信号。merge_signal_diff_flag等于0指示对当前节点不应用1比特差异信号。如果merge_signal_diff_flag为1,则用信号表示merge_diff_idx。
151.merge_diff_idx指示来自候选列表的占用代码中发生了翻转的一比特的比特位
置。如果s
merge_mode_idx
能够由8比特二进制形式表示为b7b6b5b4b3b2b1b0,则对当前节点的占用代码中由merge_diff_idx指示的位置处的一个比特进行修改,即,b
merge_diff_idx
=!b
merge_diff_idx

152.另一个实施例中,可以对候选列表中获得的占用代码翻转两个比特。tmc13中的语法表如下表11所示:表11
153.merge_diff_idx_one指示占用代码中的第一不同比特位置。merge_signal_second_diff_flag等于1指示存在第二比特差异。merge_signal_second_diff_flag等于0指示不存在第二比特差异。如果merge_signal_second_diff_flag等于1,则merge_diff_idx_two指示占用代码中的第二不同比特位置。如果s
merge_mode_idx
能够以8比特二进制形式表示为b7b6b5b4b3b2b1b0,则对当前节点的占用代码中由merge_diff_idx_one和merge_diff_idx_two指示的位置处的一个或两个比特进行修改,即b
merge_diff_idx_one
=!b
merge_diff_idx_one
,b
merge_diff_idx_two
=!b
merge_diff_idx_two

154.图5是一些实施例的用于pcc的几何合并模式的方法500的流程图。一些实施方式中,图5的至少一过程框可以由平台220执行。一些实施方式中,图5的至少一过程框可以由与平台220独立或包括平台220的另一设备或一组设备(例如,用户设备210)来执行。
155.如图5所示,在操作510中,方法500包括,确定一标志是否指示启用几何合并模式。基于确定该标志指示启用几何合并模式,方法500继续进行到操作520。否则,方法500结束。
156.在操作520中,方法500包括,针对点云的八叉树分割的当前节点,获取八叉树分割的候选节点,当前节点是当前正在进行编码的节点,而候选节点是先前已经过编码的节点。
157.在操作530中,方法500包括,获取获得的所述候选节点的占用代码。
158.在操作540中,方法500包括,构建候选列表,该候选列表包括获得的候选节点的占用代码。
159.在操作550中,方法500包括,基于所构建的候选列表获取当前节点的占用代码。
160.在操作560中,方法500包括,基于获得的当前节点的占用代码执行pcc。
161.候选节点可以与当前节点在空间上相邻,并且与当前节点处于八叉树分割的相同深度。
162.候选节点可以是预设的,与当前节点在空间上不相邻,并且与当前节点处于八叉树分割的相同深度。
163.候选节点可以是当前节点的父节点或祖父节点。
164.候选节点可以位于当前节点所属的当前编码帧之前的先前已编码帧中。
165.候选节点可以从预设表中获得。
166.候选列表可以被构建为具有预设的最大尺寸,并且可以为八叉树分割的至少一预设深度启用几何合并模式。
167.方法500还可以包括:确定一标志是否指示启用获得的当前节点的占用代码与当前节点的最终占用代码之间的差异;并基于确定该标志指示启用该差异,对获得的当前节点的占用代码进行修改。可以基于修改后的当前节点的占用代码来执行pcc。
168.尽管图5示出了方法500的示例框,但是一些实施方式中,与图5中描绘的那些框相比,方法500可以包括其它的框、更少的框、不同的框或不同顺序的框。另外,或可选地,方法500的框中的两个或多个可以并行执行。
169.图6是一些实施例的用于pcc的几何合并模式的装置600的图。如图6所示,装置600包括第一获取代码610、第二获取代码620、构建代码630、第三获取代码640和执行代码650。
170.第一获取代码610用于,使至少一处理器针对八叉树分割的当前节点,获取点云的
八叉树分割的候选节点,当前节点为当前正在进行编码的节点,而候选节点是先前已经过编码的节点。
171.第二获取代码620用于,使至少一处理器获取获得的候选节点的占用代码。
172.构建代码630用于,使至少一处理器构建候选列表,该候选列表包括获得的候选节点的占用代码。
173.第三获取代码640用于,使至少一处理器基于所构建的候选列表获取当前节点的占用代码。
174.执行代码650用于,使至少一处理器基于获得的当前节点的占用代码执行pcc。
175.候选节点可以与当前节点在空间上相邻,并且与当前节点处于八叉树分割的相同深度。
176.候选节点可以是预设的,与当前节点在空间上不相邻,并且与当前节点处于八叉树分割的相同深度。
177.候选节点可以是当前节点的父节点或祖父节点。
178.候选节点可以位于当前节点所属的当前编码帧之前的先前已编码帧中。
179.候选节点可以从预设表中获得。
180.装置600还可以包括确定代码660,该确定代码660用于使至少一处理器确定一标志是否指示启用几何合并模式。可以基于确定该标志指示启用几何合并模式来获取候选节点。
181.候选列表可以被构建为具有预设的最大尺寸,并且可以为八叉树分割的至少一预设深度启用几何合并模式。
182.确定代码660还可以用于使至少一处理器确定一标志是否指示启用获得的当前节点的占用代码与当前节点的最终占用代码之间的差异。装置600可以进一步包括修改代码670,该修改代码670用于使至少一处理器基于确定该标志指示启用该差异,对获得的当前节点的占用代码进行修改。可以基于修改后的当前节点的占用代码来执行pcc。
183.前述公开内容提供了说明和描述,但并不旨在穷举或将实施方式限制为所公开的精确形式。可以根据上述公开内容进行修改和变换,或者可以从各实施方式的实践中获得修改和变换。
184.本文中,术语“部件”旨在被宽泛地解释为硬件、固件或硬件和软件的组合。
185.显然,本文描述的系统和/或方法可以由不同形式的硬件、固件或硬件和软件的组合来实现。用于实现这些系统和/或方法的实际专用控制硬件或软件代码不限于这些实施方式。因此,在不提及具体软件代码的情况下在本文描述了系统和/或方法的操作和行为——应当理解,可以基于在本文的描述来设计软件和硬件以实现这些系统和/或方法。
186.虽然权利要求中描述和/或在说明书中公开了特征的组合,但是这些组合并不旨在对可能的实施方式的公开进行限制。事实上,这些特征中的许多特征可以以权利要求中未具体列举和/或说明书中未公开的方式进行组合。虽然下面列出的每个从属权利要求可以直接从属于仅一权利要求,但是可能的实施方式的公开包括每个从属权利要求与权利要求集合中的每个其它权利要求的组合。
187.除非明确说明,本文中使用的设备、动作或指令都不应被解释为关键的或必要的。此外,如本文所用,冠词“一(a)”和“一(an)”旨在包括至少一项,并且可以与“一或多个”互
换使用。此外,如本文所用,术语“集”旨在包括至少一项(例如,相关项、不相关项、相关项和不相关项的组合等),并且可以与“一或多个”互换使用。当仅意指一项时,使用术语“一(one)”或类似语言。此外,本文中,术语“具有”、“拥有”、“带有”等表示开放式描述。此外,除有相反的明确说明外,短语“基于”旨在表示“至少部分地基于”。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献

  • 日榜
  • 周榜
  • 月榜