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

一种点云处理方法、装置及计算机设备、存储介质与流程

2022-11-23 17:14:11 来源:中国专利 TAG:


1.本技术涉及技术领域计算机技术,尤其涉及点云编解码技术领域,具体涉及一种点云处理方法、一种点云处理装置、一种计算机设备以及一种计算机可读存储介质。


背景技术:

2.随着科学技术的不断发展,目前已经能够以较低的成本、在较短的时间周期内获得大量高精度的点云,点云中可以包括多个点,点云中的每个点具备几何信息和属性信息。为了提升点云的传输效率,在对点云进行传输之前,通常需要对点云相关信息进行编码处理;具体来说,编码端对点云相关信息编码后,可以将编码后的信息传输至解码端,解码端可以对编码后的信息进行解码,以重建点云相关信息。实践发现,点云相关信息的数据量较大,这样会导致点云的编解码效率不高。


技术实现要素:

3.本技术实施例提供了一种点云处理方法、装置、计算机设备及存储介质,可以提升点云的编解码效率。
4.一方面,本技术实施例提供了一种点云处理方法,该点云处理方法包括:
5.获取点云的编码数据;
6.解析编码数据,得到移位数据,移位数据是在点云的编码过程中对点云的目标编码信息进行移位处理得到的;
7.对移位数据进行移位重建,得到目标编码信息的重建编码信息。
8.本技术实施例中,获取到点云的编码数据后,可以解析编码数据,得到移位数据,移位数据是在点云的编码过程中对点云的目标编码信息进行移位处理得到的,对移位数据进行移位重建,便可以得到目标编码信息的重建编码信息。本技术实施例通过对目标编码信息进行移位处理,可以减少点云的解码阶段所解码的数据量,从而可以提升点云的解码效率。
9.另一方面,本技术实施例提供了一种点云处理方法,该点云处理方法包括:
10.获取点云的目标编码信息;
11.获取编码模式;
12.按照所述编码模式,对所述目标编码信息进行移位处理,得到所述目标编码信息的移位数据;
13.对所述移位数据进行编码。
14.本技术实施例中,获取到点云的目标编码信息后,可以对目标编码信息进行移位处理,得到目标编码信息的移位数据,然后可以对移位数据进行编码;本技术实施例通过对目标编码信息进行移位处理,可以减少点云的编码阶段所编码的数据量,从而可以提升点云的编码效率。
15.相应地,本技术实施例提供了一种点云编码装置,该点云编码装置包括:
16.获取单元,用于获取点云的编码数据;
17.处理单元,用于解析编码数据,得到移位数据,移位数据是在点云的编码过程中对点云的目标编码信息进行移位处理得到的;
18.处理单元,还用于对移位数据进行移位重建,得到目标编码信息的重建编码信息。
19.在一种实现方式中,处理单元,用于解析编码数据,得到移位数据时,具体用于执行如下步骤:
20.获取编码模式;
21.按照编码模式解析编码数据,得到移位数据。
22.在一种实现方式中,编码模式包括第一编码模式;移位数据包括目标编码信息的编码移位商数和编码移位余数;编码数据包括编码信息标志字段;处理单元,用于按照编码模式解析编码数据,得到移位数据时,具体用于执行如下步骤:
23.解析编码信息标志字段,对编码信息标志字段的解析值进行关于移位解析条件的判别;
24.若编码信息标志字段的解析值满足移位解析条件,则编码数据还包括移位商数标志字段,解析移位商数标志字段,对移位商数标志字段的解析值进行关于间接解析条件的判别;
25.若移位商数标志字段的解析值满足间接解析条件,则编码数据还包括编码移位商数的编码结果和编码移位余数的编码结果,解析编码移位商数的编码结果,得到编码移位商数;
26.解析编码移位余数的编码结果,得到编码移位余数。
27.在一种实现方式中,编码模式为第二编码模式;移位数据包括目标编码信息的编码移位商数和编码移位余数;编码数据包括编码信息标志字段;处理单元,用于按照编码模式解析编码数据,得到移位数据时,具体用于执行如下步骤:
28.解析编码信息标志字段,对编码信息标志字段的解析值进行关于移位解析条件的判别;
29.若编码信息标志字段的解析值满足移位解析条件,则编码数据还包括编码移位商数的编码结果和编码移位余数的编码结果,解析编码移位商数的编码结果,得到编码移位商数;
30.解析编码移位余数的编码结果,得到编码移位余数。
31.在一种实现方式中,编码模式为第三编码模式;移位数据包括编码移位商数和编码移位余数;编码数据包括移位商数标志字段;处理单元,用于按照编码模式解析编码数据,得到移位数据时,具体用于执行如下步骤:
32.解析移位商数标志字段,对移位商数标志字段的解析值进行关于间接解析条件的判别;
33.若移位商数标志字段的解析值满足间接解析条件,则编码数据还包括编码移位商数的编码结果和编码移位余数的编码结果,解析编码移位商数的编码结果,得到编码移位商数;
34.解析编码移位余数的编码结果,得到编码移位余数。
35.在一种实现方式中,编码模式为第四编码模式;移位数据包括编码移位商数和编
码移位余数;编码数据包括所述编码移位商数的编码结果和编码移位余数的编码结果;处理单元,用于按照编码模式解析编码数据,得到移位数据时,具体用于执行如下步骤:
36.解析编码移位商数的编码结果,得到编码移位商数;
37.解析编码移位余数的编码结果,得到编码移位余数。
38.在一种实现方式中,编码信息标志字段的数量为m1个,每个编码信息标志字段分别对应不同的特定数值,m1为正整数;处理单元,用于解析编码信息标志字段,对编码信息标志字段的解析值进行关于移位解析条件的判别时,具体用于执行如下步骤:
39.解析m1个编码信息标志字段中的第i个编码信息标志字段,i为小于m1的正整数;
40.若第i个编码信息标志字段的解析值为第一数值,则解析第i 1个编码信息标志字段;若第i个编码信息标志字段的解析值为第二数值,则确定编码信息标志字段不满足移位解析条件,并确定目标编码信息的重建编码信息为第i个特定数值;
41.当解析至第m1个编码信息标志字段时,若第m1个编码信息标志字段的解析值为第一数值,则确定编码信息标志字段的解析值满足移位解析条件;若第m1个编码信息标志字段的解析值为第二数值,则确定编码信息标志字段不满足移位解析条件,并确定目标编码信息的重建编码信息为第m1个特定数值。
42.在一种实现方式中,处理单元,用于对移位数据进行移位重建,得到目标编码信息的重建编码信息时,具体用于执行如下步骤:
43.对移位数据进行移位重建,得到目标编码信息的初始重建信息;
44.采用与第m1个特定数值关联的参考数值更新初始重建信息,得到目标编码信息的重建编码信息。
45.在一种实现方式中,移位商数标志字段的数量为m2个,每个移位商数标志字段分别对应不同的特定数值,m2为正整数;处理单元,用于解析移位商数标志字段,对移位商数标志字段的解析值进行关于间接解析条件的判别时,具体用于执行如下步骤:
46.解析m2个编码信息标志字段中的第j个移位商数标志字段,j为小于m2的正整数;
47.若第j个移位商数标志字段的解析值为第一数值,则解析第j 1个编码信息标志字段;若第j个移位商数标志字段的解析值为第二数值,则确定移位商数标志字段不满足间接解析条件,并确定编码移位商数为第j个特定数值;
48.当解析至第m2个移位商数标志字段时,若第m2个移位商数标志字段的解析值为第一数值,则确定移位商数标志字段的解析值满足间接解析条件;若第m2个移位商数标志字段的解析值为第二数值,则确定移位商数标志字段不满足间接解析条件,并确定编码移位商数为第m2 1个特定数值。
49.在一种实现方式中,处理单元,用于解析编码移位商数的编码结果,得到所述编码移位商数之后,还用于执行如下步骤:
50.采用与第m2个特定数值相关的目标数值对编码移位商数进行更新。
51.在一种实现方式中,处理单元,用于解析编码移位商数的编码结果,得到所述编码移位商数时,具体用于执行如下步骤:
52.基于指数哥伦布编码方式解析编码移位商数的编码结果,得到编码移位商数;指数哥伦布编码方式所采用的阶数为k1阶,k1为非负整数;或者,基于比特位数编码方式解析编码移位商数的编码结果,得到编码移位商数;
53.处理单元,用于解析编码移位余数的编码结果,得到编码移位余数时,具体用于执行如下步骤:
54.基于比特位数编码方式解析编码移位余数的编码结果,得到编码移位余数;或者,基于指数哥伦布编码方式解析编码移位余数的编码结果,得到编码移位余数;指数哥伦布编码方式所采用的阶数为k2阶,k2为正整数。
55.在一种实现方式中,编码移位商数的编码结果包括:编码移位商数的占用比特位数的编码结果,以及编码移位商数所占用的每一个比特位的编码;处理单元,用于基于比特位数编码方式解析编码移位商数的编码结果,得到编码移位商数时,具体用于执行如下步骤:
56.解析编码移位商数的占用比特位数的编码结果,得到编码移位商数的占用比特位数;
57.解析编码移位商数所占用的每一个比特位的编码,得到编码移位商数所占用的每一个比特位的数值;
58.根据编码移位商数所占用的每一个比特位的数值,重建编码移位商数。
59.在一种实现方式中,处理单元,用于解析编码移位商数的占用比特位数的编码结果,得到编码移位商数的占用比特位数时,具体用于执行如下步骤:
60.基于比特位数编码方式解析占用比特位数的编码结果,得到编码移位商数;或者,基于指数哥伦布编码方式解析占用比特位数的编码结果,得到编码移位商数的占用比特位数;指数哥伦布编码方式所采用的阶数为k3阶,k3为非负整数;或者,基于移位编码方式解析占用比特位数的编码结果,得到编码移位商数的占用比特位数。
61.在一种实现方式中,占用比特位数的编码结果包括占用比特位数的占用移位商数的编码结果和占用移位余数的编码结果,占用移位商数和占用移位余数是对占用比特位数进行移位处理得到的;处理单元,用于基于移位编码方式解析占用比特位数的编码结果,得到编码移位商数的占用比特位数时,具体用于执行如下步骤:
62.解析占用移位商数的编码结果,得到占用移位商数;
63.解析占用移位余数的编码结果,得到占用移位余数;
64.对占用移位商数和占用移位余数进行移位重建处理,得到编码移位商数的占用比特位数。
65.在一种实现方式中,处理单元,用于解析占用移位商数的编码结果,得到占用移位商数时,具体用于执行如下步骤:
66.基于比特位数编码方式解析占用移位商数的编码结果,得到占用移位商数;或者,基于指数哥伦布编码方式解析占用移位商数的编码结果,得到占用移位商数,指数哥伦布编码方式所采用的阶数为k4阶,k4为非负整数;
67.处理单元,用于解析占用移位余数的编码结果,得到占用移位余数时,具体用于执行如下步骤:
68.基于比特位数编码方式解析占用移位余数的编码结果,得到占用移位余数;或者,基于指数哥伦布编码方式解析占用移位余数的编码结果,得到占用移位余数,指数哥伦布编码方式所采用的阶数为k5阶,k5为非负整数。
69.在一种实现方式中,移位数据包括编码移位商数和编码移位余数;处理单元,用于
对移位数据进行移位重建处理,得到目标编码信息的重建编码信息时,具体用于执行如下步骤:
70.确定移动位数;
71.基于移动位数对编码移位商数进行移位处理,得到移位后的编码移位商数;
72.将移位后的编码移位商数与编码移位余数相加,得到目标编码信息的重建编码信息。
73.在一种实现方式中,处理单元,用于确定移动位数时,具体用于执行如下步骤:
74.获取移动位数判定信息和移动位数阈值;
75.根据移动位数判定信息和移动位数阈值之间的大小关系,确定移动位数。
76.在一种实现方式中,处理单元,还用于执行如下步骤:
77.若在编码数据的解析过程中涉及基于指数哥伦布编码方式的解析过程,则确定指数哥伦布编码方式所采用的阶数。
78.在一种实现方式中,处理单元,用于确定指数哥伦布编码方式用的阶数时,具体用于执行以下任一步骤:
79.编解码端默认设置指数哥伦布编码方式所采用的阶数;
80.从点云的编码参数集或编码码流中解析指数哥伦布编码方式所采用的阶数;
81.根据目标编码信息的数据特性,确定指数哥伦布编码方式所采用的阶数。
82.在一种实现方式中,处理单元,用于根据目标编码信息的数据特性,确定指数哥伦布编码方式所采用的阶数时,具体用于执行如下步骤:
83.确定初始阶数;
84.根据目标编码信息的数据特性,对初始阶数或当前阶数进行调整,确定指数哥伦布编码方式所采用的阶数。
85.在一种实现方式中,若在编码数据的解析过程中涉及多个基于指数哥伦布编码方式的解析过程,则各个指数哥伦布编码方式所采用的阶数是相互关联或相互独立的;各个指数哥伦布编码方式所采用的阶数相互关联,包括:
86.各个指数哥伦布编码方式所采用的阶数相同;或者,各个指数哥伦布编码方式所采用的阶数通过偏移参数进行关联。
87.相应地,本技术实施例提供了一种点云编码装置,该点云编码装置包括:
88.获取单元,用于获取点云的目标编码信息;
89.获取单元,还用于获取编码模式;
90.处理单元,用于按照所述编码模式,对所述目标编码信息进行移位处理,得到所述目标编码信息的移位数据;
91.处理单元,还用于对所述移位数据进行编码。
92.在一种实现方式中,编码模式包括第一编码模式;移位数据包括目标编码信息的编码移位商数和编码移位余数;处理单元,用于按照编码模式,对目标编码信息进行移位处理,得到目标编码信息的移位数据时,具体用于执行如下步骤:
93.对目标编码信息进行关于移位编码条件的判别;
94.若目标编码信息满足移位编码条件,则对目标编码信息进行移位处理,得到目标编码信息的编码移位商数和编码移位余数;
95.对编码移位商数进行关于间接编码条件的判别;
96.若编码移位商数满足间接编码条件,则确定需要对编码移位商数进行间接编码处理。
97.在一种实现方式中,编码模式包括第二编码模式;移位数据包括目标编码信息的编码移位商数和编码移位余数;处理单元,用于按照编码模式,对目标编码信息进行移位处理,得到目标编码信息的移位数据时,具体用于执行如下步骤:
98.对目标编码信息进行关于移位编码条件的判别;
99.若目标编码信息满足移位编码条件,则对目标编码信息进行移位处理,得到目标编码信息的编码移位商数和编码移位余数。
100.在一种实现方式中,编码模式包括第三编码模式;移位数据包括目标编码信息的编码移位商数和编码移位余数;处理单元,用于按照编码模式,对目标编码信息进行移位处理,得到目标编码信息的移位数据时,具体用于执行如下步骤:
101.对目标编码信息进行移位处理,得到目标编码信息的编码移位商数和编码移位余数;
102.对编码移位商数进行关于间接编码条件的判别;
103.若编码移位商数满足间接编码条件,则确定需要对编码移位商数进行间接编码处理。
104.在一种实现方式中,编码模式包括第四编码模式;移位数据包括所述目标编码信息的编码移位商数和编码移位余数;处理单元,用于按照编码模式,对目标编码信息进行移位处理,得到目标编码信息的移位数据时,具体用于执行如下步骤:
105.对目标编码信息进行移位处理,得到目标编码信息的编码移位商数和编码移位余数。
106.在一种实现方式中,在对目标编码信息进行关于移位编码条件的判别时,需要将目标编码信息与m1个特定数值进行匹配检查,每个特定数值分别对应不同的编码信息标志字段,m1为正整数;处理单元,用于对目标编码信息进行关于移位编码条件的判别时,具体用于执行如下步骤:
107.将目标编码信息与m1个特定数值中的第i个特定数值进行匹配检查,i为小于m1的正整数;
108.若目标编码信息与第i个特定数值不匹配,则将第i个编码信息标志字段设置为第一数值并编码,以及将目标编码信息与m1个特定数值中的第i 1个特定数值进行匹配检查;若目标编码信息与第i个特定数值匹配,则确定目标编码信息不满足移位编码条件,将第i个编码信息标志字段设置为第二数值并编码;
109.当匹配检查至第m1特定数值时,若目标编码信息与第m1个特定数值不匹配,则将第m1个编码信息标志字段设置为第一数值并编码,以及确定目标编码信息满足移位编码条件;若目标编码信息与第m1个特定数值匹配,则确定目标编码信息不满足移位编码条件,将第m1个编码信息标志字段设置为第二数值并编码。
110.在一种实现方式中,在对编码移位商数进行关于间接编码条件的判别时,需要将编码移位商数与m2个特定数值进行匹配检查,每个特定数值分别对应不同的移位商数标志字段,m2为正整数;处理单元,用于对编码移位商数进行关于间接编码条件的判别时,具体
用于执行如下步骤:
111.将编码移位商数与m2个特定数值中的第j个特定数值进行匹配检查,j为小于m2的正整数;
112.若编码移位商数与第j个特定数值不匹配,则将第j个移位商数标志字段设置为第一数值并编码,以及将编码移位商数与m2个特定数值中的第j 1个特定数值进行匹配检查;若编码移位商数与第j个特定数值匹配,则确定编码移位商数不满足间接编码条件,将第j个移位商数标志字段设置为第二数值并编码;
113.当匹配检查至第m2个特定数值时,若编码移位商数与第m2个特定数值不匹配,则将第m2个移位商数标志字段设置为第一数值并编码,以及确定编码移位商数满足间接编码条件;若编码移位商数与第m2个特定数值匹配,则确定编码移位商数不满足间接编码条件,将第m2个移位商数标志字段设置为第二数值并编码。
114.在一种实现方式中,处理单元,用于对目标编码信息进行移位处理,得到目标编码信息的编码移位商数和编码移位余数时,具体用于执行如下步骤:
115.获取移动位数判定信息和移动位数阈值;
116.根据移动位数判定信息和移动位数阈值之间的大小关系,确定移动位数;
117.基于移动位数,对目标编码信息进行移位处理,得到目标编码信息的编码移位商数和编码移位余数。
118.在一种实现方式中,处理单元,用于对目标编码信息进行移位处理,得到目标编码信息的编码移位商数和编码移位余数时,具体用于执行如下步骤:
119.获取初始移动位数;
120.基于初始移动位数,对目标编码信息进行移位处理,得到目标编码信息的参考移位商数和参考移位余数;
121.若参考移位商数小于移位商数阈值,则将参考移位商数确定为所述编码移位商数,将参考移位余数确定为编码移位余数;
122.若参考移位商数大于或等于移位商数阈值,则更新初始移动位数,并基于更新后的移动位数,对目标编码信息进行移位处理,直至移位处理得到的参考移位商数小于移位商数阈值为止。
123.相应地,本技术实施例提供一种计算机设备,该计算机设备包括处理器和计算机可读存储介质,其中:
124.处理器,适于实现计算机程序;
125.计算机可读存储介质,存储有计算机程序,计算机程序适于由处理器加载并执行上述的点云处理方法。
126.相应地,本技术实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被计算机设备的处理器读取并执行时,使得计算机设备执行上述的点云处理方法。
127.相应地,本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的点云处理方法。
128.本技术实施例中,通过对目标编码信息进行移位处理,可以减少点云的编码阶段所编码的数据量,以及可以减少点云的解码阶段中所解码的数据量,从而可以提升点云的编解码效率。
附图说明
129.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
130.图1a是本技术实施例提供的一种点云编码的流程示意图;
131.图1b是本技术实施例提供的另一种点云编码的流程示意图;
132.图2是本技术实施例提供的一种包围盒的示意图;
133.图3是本技术实施例提供的一种八叉树编码的示意图;
134.图4是本技术实施例提供的一种块结构编码的示意图;
135.图5a是本技术实施例提供的一种预测树编码结构的示意图;
136.图5b是本技术实施例提供的另一种预测树编码结构的示意图;
137.图6是本技术实施例提供的一种点云处理系统的结构示意图;
138.图7是本技术实施例提供的一种点云处理方法的流程示意图;
139.图8是本技术实施例提供的另一种点云处理方法的流程示意图;
140.图9是本技术实施例提供的一种点云处理装置的结构示意图;
141.图10是本技术实施例提供的一种计算机设备的结构示意图。
具体实施方式
142.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
143.为了更清楚地理解本技术实施例提供的技术方案,在此先对本技术实施例涉及的基础概念进行介绍:
144.(1)点云(point cloud)。点云是指空间中一组无规则分布的、表达三维物体或三维场景的空间结构及表面属性的离散点集。可以根据不同的分类标准将点云划分为不同的类别,例如,按照点云的获取方式划分,可以分为密集型点云和稀疏型点云,又如,按照点云的时序类型划分,可以分为静态点云和动态点云。
145.(2)点云数据(point cloud data)。点云中各个点具备的几何信息和属性信息共同组成点云数据。其中,几何信息也可以称为三维位置信息,点云中某个点的几何信息是指该点的空间坐标(x,y,z),可以包括该点在三维坐标系统的各个坐标轴方向上的坐标值,例如,x轴方向上的坐标值x,y轴方向上的坐标值y和z轴方向上的坐标值z。点云中某个点的属性信息可以包括以下至少一种:颜色信息、材质信息、激光反射强度信息(也可以称为反射率);通常,点云中的每个点具有相同数量的属性信息,例如,点云中的每个点都可以具有颜
色信息和激光反射强度两种属性信息,又如,点云中的每个点都可以具有颜色信息、材质信息和激光反射强度信息三种属性信息。
146.(3)点云编码(point cloud compression,pcc)。点云编码是指对点云中各点的几何信息和属性信息进行编码,得到压缩码流的过程。点云编码可以包括几何信息编码和属性信息编码两个主要过程。目前主流的点云编码技术,针对点云的不同类型,可以分为基于几何结构的点云编码以及基于投影的点云编码,在此以mpeg(moving picture expert group,国际视音频编解码标准)中的g-pcc(geometry-based point cloud compression,基于几何结构的点云编码),以及avs(audiovideocodingstandard,中国国家视频编解码标准)中的点云编码标准avs-pcc为例进行介绍。
147.g-pcc及avs-pcc的编码框架大致相同,如图1a示出了avs-pcc的编码框架,如图1b示出了g-pcc的编码框架,可以分为几何信息编码过程以及属性信息编码过程。在几何信息编码过程中,对点云中各点的几何信息进行编码,得到几何比特流;在属性信息编码过程中,对点云中各点的属性信息进行编码,得到属性比特流;几何比特流和属性比特流共同组成点云的压缩码流。
148.对于几何信息编码过程,主要操作和处理可以参见如下描述:
149.①
预处理(pre-processing):可以包括坐标变换(transform coordinates)和体素化(voxelize)。通过缩放和平移的操作,将三维空间中的点云数据转换成整数形式,并将其最小几何位置移至坐标原点处。
150.②
几何编码:几何编码中可以包括两种模式,分别是基于八叉树的几何编码(octree)和基于三角表示的几何编码(trisoup),这两种编码模式可以在不同的条件下使用。其中:
151.基于八叉树的几何编码:八叉树是一种树形数据结构,在三维空间划分中,对预先设定的包围盒进行均匀划分,每个节点都具有八个子节点。通过对八叉树各个子节点的占用与否采用“1”和“0”指示,获得占用码信息(occupancy code)作为点云几何信息的码流。
152.基于三角表示的几何编码:将点云划分为一定大小的块(block),定位点云表面在块的边缘的交点并构建三角形。通过编码交点位置实现几何信息的压缩。
153.③
几何量化(geometryquantization):量化的精细程度通常由量化参数(quantization parameter,qp)来决定,qp取值越大,表示更大取值范围的系数将被量化为同一个输出,因此通常会带来更大的失真,及较低的码率;相反,qp取值越小,表示较小取值范围的系数将被量化为同一个输出,因此通常会带来较小的失真,同时对应较高的码率。
154.④
几何熵编码(geometry entropy encoding):针对八叉树的占用码信息,进行统计压缩编码,最后输出二值化(0或者1)的压缩码流。统计编码是一种无损编码方式,可以有效的降低表达同样的信号所需要的码率。常用的统计编码方式是基于上下文的二值化算术编码(content adaptive binary arithmetic coding,cabac)。
155.对于属性信息编码过程,主要操作和处理可以参见如下描述:
156.①
属性重上色(recoloring):有损编码情况下,在几何信息编码后,需编码端解码并重建几何信息,即恢复点云中各点的几何信息。在原始的点云中寻找对应一个或多个邻近点的属性信息,作为该重建点的属性信息。
157.②
属性变换编码(transform):属性变换编码中可以包括三种模式,分别是预测变
换编码(predicting transform)、提升变换编码(lifting transform)、以及分层区域自适应变换编码(region adaptive hierarchical transform,raht),这三种编码模式可以在不同的条件下使用。其中:
158.预测变换编码:根据距离选择子点集,将点云划分成多个不同的层级(level of detail,lod),实现由粗糙到精细化的点云表示。相邻层之间可以实现自下而上的预测,即由粗糙层中的邻近点预测精细层中引入的点的属性信息,获得对应的残差信号。其中,最底层的点作为参考信息进行编码。
159.提升变换编码:在lod相邻层预测的基础上,引入邻域点的权重更新策略,最终获得各点的预测属性值,获得对应的残差信号。
160.分层区域自适应变换编码:属性信息经过raht变换,将信号转换到变换域中,称之为变换系数。
161.③
属性信息量化(attribute quantization):量化的精细程度通常由量化参数来决定。在预测变换编码及提升变换编码中,是对量化后的残差值进行熵编码;在raht中,是对量化后的变换系数进行熵编码。
162.④
属性熵编码(attribute entropy coding):量化后的属性残差信号或变换系数一般使用行程编码(run length coding)及算数编码(arithmetic coding)实现最终的压缩。相应的编码模式,量化参数等信息也同样采用熵编码器进行编码。
163.(4)点云解码。点云解码是指对点云编码得到的压缩码流进行解码,以重建点云的过程;详细地说,是指基于压缩码流中的几何比特流和属性比特流,重建点云中各点的几何信息和属性信息的过程。在解码端获得压缩码流之后,对于几何比特流,首先进行熵解码,得到点云中各点量化后的几何信息,然后进行反量化,重建点云中各点的几何信息。而对于属性比特流,首先进行熵解码,得到点云中各点量化后的预测残差信息或量化后的变换系数;然后对量化后的预测残差信息进行反量化得到重建残差信息,对量化后的变换系数进行反量化得到重建变换系数,重建变换系数经反变换后得到重建残差信息,根据点云中各点的重建残差信息可以重建点云中各点的属性信息。将点云中各点重建的属性信息,按顺序与重建的几何信息一一对应,以重建点云。
164.以上内容介绍了本技术实施例涉及的基础概念,下面对本技术实施例涉及的基础技术进行介绍:
165.(1)预处理:
166.输入点云中各点的浮点类型的坐标表示为(xm,ym,zm),m=0,

,m-1,m是点云中的点的数量,坐标点(x
min
,y
min
,z
min
)和坐标点(x
max
,y
max
,z
max
)表示如下:
167.x
min
=min(x0,x1,

,x
m-1
)
168.y
min
=min(y0,y1,

,y
m-1
)
169.z
min
=min(z0,z1,

,z
m-1
)
170.x
max
=max(x0,x1,

,x
m-1
)
171.y
max
=max(y0,y1,

,y
m-1
)
172.z
max
=max(z0,z1,

,z
m-1
)
173.其中,函数min(s0,s1,

,s
m-1
)表示取当前输入的最小值,max(s0,s1,

,s
m-1
)表示取当前输入的最大值。
174.如图2所示,包围盒表示能够包含输入点云中的所有点的最大长方体,包围盒的原点坐标(x
origin
,y
origin
,z
origin
)可以计算如下:
175.x
origin
=int(floor(x
min
))
176.y
origin
=int(floor(y
min
))
177.z
origin
=int(floor(z
min
))
178.包围盒在x,y,z方向上的尺寸可以计算如下:
179.boudingboxsize
x
=int(x
max-x
origin
) 1
180.boudingboxsizey=int(y
max-y
origin
) 1
181.boudingboxsizez=int(z
max-z
origin
) 1
182.其中,int(s)是取整函数,floor(s)函数返回小于或等于s的最大整数值。
183.(2)八叉树编码:
184.八叉树是一种树形数据结构,目前在g-pcc或是avs-pcc中主要采用八叉树结构对点云进行划分。对三维空间中的点云数据,八叉树划分方式是逐层次地对预先设定的包围盒进行均匀划分,每个节点都具有八个子节点。通过对八叉树中各个子节点的占用与否采用
‘1’

‘0’
进行指示,如图3所示,获得占用码信息(occupancycode)作为点云几何信息的码流。
185.基于莫顿序(morton)实现八叉树的构建,即将点云数据的三维坐标信息通过查询莫顿顺序表,转换成对应的莫顿码。根据每一位莫顿码的排序,获得每层八叉树的对应点。目前主流的点云编码技术是利用八叉树划分对点云数据进行表示,对几何信息和属性信息采用不同的处理流程。
186.(3)块结构编码:
187.块结构编码方法引入类似于视频编码中编码块的概念,将三维空间划分成若干大小的不重叠的编码宏块,每个编码宏块作为基本的编码单元。可以设置八叉树划分深度d或者通过参数(nodesizelog2)来控制3d宏块的大小。当八叉树划分到每个节点的大小为并且满足下列条件时:
188.nodesizelog2》max(d
x
,dy,dz)
189.每个节点按照编码宏块(lcu)进行编码。如图4所示,在2d四叉树划分的第二层开始按照编码宏块(lcu)顺序编码,每一个编码宏块可以看作一个单独的树划分结构。
190.目前实现中,每个编码宏块内部采用广度优先遍历。这种块结构编码方法带来很大灵活性,在每个编码宏块中,可以根据其特性采用不同的几何编码方法,也可以在对一个宏块几何编码完后进行属性编码。这样不需要等待整个点云几何编码后才能进行属性编码。
191.(4)预测编码技术:
192.点云中的所有点链接成为一个单一的预测树,每个点基于其前一个点的信号值进行预测。该方法作为点云信号预测的一种选项,可设置为作用于整体原始点云数据,也可以作用于八叉树子节点或者其他方式获得的点云数据子集。
193.此外,g-pcc中已有的预测编码技术,利用点间的距离搜索建立预测树,图5a示出了一种avs中的预测树编码结构,图5a所示的预测树为单链预测树,图5b示出了一种mpeg中的预测树编码结构,图5b所示的预测树为多链预测树。其中,每一个点都与其他点相连接,
并指示每个点链接的点个数和四种预测模式之一,四种预测模式如下:
194.1)不预测。
195.2)采用parent点(一代父节点)预测,即前一个点;如图5b中的点401,点502为其parent点。
196.3)采用parent点(一代父节点)和grandparent点(二代父节点)预测;如图5b中的点401,点402为其parent点,点403为其grandparent点。
197.4)采用parent点(一代父节点)、grandparent点(二代父节点)和grand-grandparent点(三代父节点)预测;如图5b中的点401,点402为其parent点,点403为其grandparent点,点404为其grand-grandparent点。
198.(5)熵编码技术:
199.熵编码技术用于对量化(有损情况下)后的有符号属性预测残差或变换系数进行二值化和处理。其中:
200.1)变长编码:采用不同长度的码字表示需要编码的残差或系数。需要根据符号出现的概率设计码长。常用的包括指数哥伦布编码(exponential-golomb coding,exp-golomb)和算术编码。
201.其中,指数哥伦布编码是一种无损数据压缩方法,是一种可变长前缀码,k(k为非负整数)阶指数哥伦布编码方式的编码原理如下:将数字以二进制形式写出,去掉最低的k个比特,之后加1;计算留下的比特数,将此数减一,即是需要增加的前导零个数;将第一步中去掉的最低k个比特位补回比特串尾部。例如,对数字“5”进行2阶指数哥伦布编码的过程如下:将数字“5”以二进制形式写出“101”,去掉最低的2个比特“10”,剩下高位比特“1”,将高位比特“1”加1,得到“10”;留下的比特数为2,将此数减一,即是需要增加的前导零个数,也就是说需要增加一个前导0,将第一步中去掉的最低2个比特位补回比特串尾部,得到数字“5”对应的2阶指数哥伦布码“01001”。k阶指数哥伦布编码方式的解码过程,是k阶指数哥伦布编码方式的编码过程的逆过程。
202.2)cabac:cabac可以包括以下几个步骤:
203.①
二值化:cabac使用二进制算数编码,这意味着仅仅有两个数字(1或0)被编码。一个非二进制的数值符号,比如一个转换系数或者运动矢量,在算术编码之前会首先被二值化或者转化成二进制码字。这个过程类似于将一个数值转化成可变长码字,但是这个二进制码字在传输之前会通过算术编码器进一步的编码。
204.②
上下文模型选择:上下文模型就是一个概率模型,这个模型是根据最近的被编码的数据符号的统计数字而选择的一个模型。这个模型保存了每个“bin”是1或者0的概率。
205.③
算术编码:算术编码器根据选择的概率模型对每一个“bin”进行编码。
206.④
概率更新:被选中的上下文模型会根据实际的编码值而去更新。例如,如果“bin”的值是1,那么1的频率计数会增加。
207.3)行程编码(run-length coding):
208.对量化(有损情况下)后的有符号属性预测残差或变换系数等信号值进行编码,统计数据中连续为0的点数记为行程长度run-length。以残差值res为例,若res非零,则首先对run-length值进行熵编码,然后对该非零属性预测残差进行熵编码,并将run-length值置为0重新开始计数。
209.(6)移位:
210.移位的原理是在二进制的基础上对数字进行平移。平移可以包括左移(《《)和右移(》》),左移是指将一个二进制数按指定移动的位数向左移动,移出位被丢弃,右边移出的空位一律补0,右移是将一个二进制数按指定移动的位数向右移动,移出位被丢弃,左边移出的空位一律补0。二进制数在进行移位处理后可以得到移位商数和移位余数,通过移位商数和移位余数可以移位重建出二进制数,移位商数是指对二进制数进行右移目标位数后的结果,移位余数是指二进制数与对移位商数进行左移目标位数后的结果之间的二进制差值。举例来说,a=a1《《s a2,表示对a移位处理可以得到移位商数a1和移位余数a2,对移位商数a1左移目标位数s后加上移位余数a2可以重建a。
211.基于上述基础概念和基础技术的相关介绍,本技术实施例提供了可以提升点云的编解码效率的点云处理方案。在该点云处理方案的点云编码阶段,对于点云中待编码的目标编码信息,可以对目标编码信息进行移位处理,并对目标编码信息移位后的数据进行编码,这样可以减少点云的编码阶段中所编码的数据量,从而可以提高点云的编码效率;相应地,在该点云处理方案的点云解码阶段,在解码得到目标编码信息移位后的数据后,可以对目标编码信息移位后的数据进行移位重建,得到目标编码信息的重建编码信息,这样可以减少点云的解码阶段中所解码的数据量,从而可以提高点云的解码效率。
212.本技术实施例提供的点云处理方案还可与云技术中的云计算、云存储等技术结合。其中,云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务,云计算可为点云编码阶段和点云解码阶段提供强大的计算支持,这样可以大大提升点云的编码效率,提升点云的解码效率。云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统,云存储可为点云编码阶段和点云解码阶段提供强大的存储支持,这样可进一步提升点云的编码效率,提升点云的解码效率。
213.下面结合图6对适于实现本技术实施例提供的点云处理方案的点云处理系统进行介绍。如图6所示,点云处理系统中可以包括编码设备601和解码设备602,编码设备601可以是终端,也可以是服务器,解码设备602可以是终端,也可以是服务器,编码设备601和解码设备602之间可以通过有线通信的方式建立直接地连接,或者可以通过无线通信的方式建立间接地通信连接。其中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能语音交互设备、智能手表、车载终端、智能家电、飞行器等,但并不局限于此。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(content delivery network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
214.(1)对于编码设备601:
215.编码设备601可以获取点云数据(即点云中各点的几何信息和属性信息),点云数据可以通过场景捕获或设备生成两种方式获取得到。场景捕获点云数据是指通过编码设备
601关联的捕获设备采集真实世界的视觉场景得到点云数据;其中,捕获设备用于为编码设备601提供点云数据的获取服务,捕获设备可以包括但不限于以下任一种:摄像设备、传感设备、扫描设备;其中,摄像设备可以包括普通摄像头、立体摄像头、以及光场摄像头等,传感设备可以包括激光设备、雷达设备等,扫描设备可以包括三维激光扫描设备等;编码设备601关联的捕获设备可以是指设置于编码设备601中的硬件组件,例如捕获设备是终端的摄像头、传感器等,编码设备601关联的捕获设备也可以是指与编码设备601相连接的硬件装置,例如与服务器相连接的摄像头等。设备生成点云数据是指编码设备601根据虚拟对象(例如通过三维建模得到的虚拟三维物体及虚拟三维场景)的生成点云数据。
216.编码设备601可以对点云中各点的几何信息进行编码处理,得到几何比特流,以及可以对点云中各点的属性信息进行编码处理,得到属性比特流,编码设备601可以将编码得到的几何比特流和属性比特流一起传输至解码设备602。在几何编码或属性编码的过程中,对于点云中待编码的目标编码信息(例如可以是点云中待编码点的属性信息、属性残差信息、几何信息、几何残差信息、或编码过程中涉及的游程信息等等),编码设备601可以对目标编码信息进行移位处理,并对移位后的数值进行编码,这样可以大大减少在点云的编码阶段中所编码的数据量,从而可以提升点云的编码效率。
217.(2)对于解码设备602:
218.解码设备602接收到编码设备201传输的压缩码流(即属性比特流和几何比特流)后,可以对几何比特流进行解码处理,重建点云中各点的几何信息,以及可以对属性比特流进行解码处理,重建点云中各点的属性信息。在几何解码或属性解码的过程中,解码设备602可以对解析到的数据进行移位重建,得到目标编码信息的重建编码信息,这样可以大大减少在点云的解码阶段中所解码的数据量,从而可以提升点云的解码效率。
219.本技术实施例中,编码设备通过对待编码的信息进行移位处理,可以减少编码设备在点云的编码阶段中所编码的数据量,从而可以提升编码设备的点云编码效率;解码设备通过对解析得到的信息进行移位重建,可以减少解码设备在点云的解码阶段中所解码的数据量,从而可以提升解码设备的点云解码效率。可以理解的是,本技术实施例描述的点云处理系统是为了更加清楚的说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
220.下面结合附图对本技术实施例提供的点云处理方案进行更为详细地介绍。
221.本技术实施例提供一种点云处理方法,该点云处理方法主要介绍解码端关于目标编码信息的解码过程,该点云处理方法可以由计算机设备执行,计算机设备可以是上述点云处理系统中的解码设备602。如图7所示,该点云处理方法可以包括以下步骤s701-步骤s703:
222.s701,获取点云的编码数据。
223.s702,解析编码数据,得到移位数据,移位数据是在点云的编码过程中对点云的目标编码信息进行移位处理得到的。
224.步骤s701-步骤s702中,在点云的解码阶段,可以获取点云的编码数据,通过解析编码数据,可以得到移位数据,也就是说,编码数据可以是对移位数据进行编码得到的,移位数据可以是在点云的编码过程中对点云的目标编码信息进行移位处理得到的。
225.其中,目标编码信息可以是点云的编码过程中需要进行编码的任意点云相关信息。例如,在几何编码过程中,若采用几何预测编码,则目标编码信息可以是点云中任意点的几何残差信息(例如,具体可以是任意点在某个方向上的几何残差信息);若采用几何变换编码,则目标编码信息可以是点云中任意点的几何信息的变换系数(例如,具体可以是任意点在某个方向上的几何信息的变换系数);若采用几何预测变换编码,则目标编码信息可以是点云中任意点的几何残差信息的变换系数(例如,具体可以是任意点在某个方向上的几何残差信息的变换系数)。又如,在属性编码过程中,若采用属性预测编码,则目标编码信息可以是点云中任意点的属性残差信息;若采用属性变换编码,则目标编码信息可以是点云中任意点的属性信息的变换系数;若采用属性预测变换编码,则目标编码信息可以是点云中任意点的属性残差信息的变换系数。若在属性编码过程或几何编码过程中采用行程编码,则目标编码信息还可以是游程信息,游程信息例如可以是零游程值,零游程值可以是指点云中残差信息或变换系数连续为0的点数。
226.编码数据可以是按照编码模式进行解析的,不同的编码模式下,编码数据的解析过程存在差异,也就是说,可以获取编码模式,按照编码模式解析编码数据,得到移位数据。编码模式的判定过程可参见如下描述:编码模式可以是编解码端默认设置的;或者,编码模式可以根据从点云的编码参数集或编码码流中解析到的编码模式信息确定的;或者,编解码端可以采用默认的阈值参数,可以通过模式判定信息(例如,可以是目标编码信息、目标编码信息的占用比特位数、目标编码信息的量化参数、包围盒信息等)与阈值参数来对编码模式进行判定;或者,可以从编码参数集或编码码流中解析阈值参数,并根据模式判定信息与解析到的阈值参数来对编码模式进行判定。
227.编码模式在点云中的应用范围可参见如下描述:编码模式可以应用于整个点云,也就是说,点云中的各点采用相同的编码模式;或者,编码模式可以应用与这个点云片,也就是说,属于同一点云片中的各点均采用相同的编码模式,点云片可以由一个或多个宏块组成的;或者,编码模式可以应用于整个宏块,也就是说,属于同一宏块中的各点均采用相同的编码模式;或者,编码模式可以应用于整个预测树,也就是说,属于同一预测树的各点均采用相同的编码模式;或者,编码模式可以应用于点云中的单个点;或者,编码模式可以应用与单个点的某个方向(对应于几何编码过程)。
228.下面将重点介绍不同编码模式下编码数据的解析过程:
229.(1)编码模式可以包括第一编码模式。在第一编码模式下,可以先判断目标编码信息是否为特定数值,若目标编码信息不是特定数值,则可以说明目标编码信息在编码过程中被进行移位处理,则可以解析目标编码数据的移位数据,移位数据可以包括目标编码数据的编码移位商数和编码移位余数,并且,在解析目标编码数据的编码移位商数之前,可以先判断目标编码信息的编码移位商数是否为特定数值,若编码移位商数不是特定数值,则可以解析目标编码数据的编码移位商数。
230.在编码数据的实际解析过程中,可以采用编码信息标志字段标识目标编码信息是否为特定数值,即编码数据中可以包括编码信息标志字段,可以解析编码信息标志字段,对编码信息标志字段的解析值进行关于继续解析条件的判别,即判别目标编码信息是否为特定数值;若编码信息标志字段的解析值满足继续解析条件,则可以说明目标编码信息不是特定数值,此时编码数据中还可以包括移位商数标志字段,移位商数标志字段可以用于标
识目标编码信息的编码移位商数是否为特定数值,可以解析移位商数标志字段,对移位商数标志字段的解析值进行关于继续解析条件的判别,即判别目标编码信息的编码移位商数是否为特定数值;若移位商数标志字段的解析值满足继续解析条件,则可以说明目标编码信息的编码移位商数不是特定数值,此时编码数据中还可以包括编码移位商数的编码结果和编码移位余数的编码结果,可以解析编码移位商数的编码结果,得到编码移位商数,以及可以解析编码移位余数的编码结果,得到编码移位余数。
231.(2)编码模式可以包括第二编码模式。在第二编码模式下,可以先判断目标编码信息是否为特定数值,若目标编码信息不是特定数值,则可以说明目标编码信息在编码过程中被进行移位处理,则可以解析目标编码数据的移位数据,移位数据可以包括目标编码数据的编码移位商数和编码移位余数。
232.在编码数据的实际解析过程中,可以采用编码信息标志字段标识目标编码信息是否为特定数值,即编码数据中可以包括编码信息标志字段,可以解析编码信息标志字段,对编码信息标志字段的解析值进行关于继续解析条件的判别,即判别目标编码信息是否为特定数值;若编码信息标志字段的解析值满足继续解析条件,则可以说明目标编码信息不是特定数值,此时编码数据中还可以包括编码移位商数的编码结果和编码移位余数的编码结果,可以解析编码移位商数的编码结果,得到编码移位商数,以及可以解析编码移位余数的编码结果,得到编码移位余数。
233.(3)编码模式可以包括第三编码模式。在第三编码模式下,可以解析目标编码信息的移位数据,目标编码信息的移位数据可以包括目标编码数据的编码移位商数和编码移位余数,在解析目标编码数据的编码移位商数之前,可以先判断目标编码信息的编码移位商数是否为特定数值,若编码移位商数不是特定数值,再解析目标编码数据的编码移位商数。
234.在编码数据的实际解析过程中,可以采用移位商数标志字段标识目标编码信息的编码移位商数是否为特定数值,即编码数据中可以包括移位商数标志字段,可以解析移位商数标志字段,对移位商数标志字段的解析值进行关于继续解析条件的判别,即判别目标编码信息的编码移位商数是否为特定数值;若移位商数标志字段的解析值满足继续解析条件,则可以说明目标编码信息的编码移位商数不是特定数值,此时编码数据中还可以包括编码移位商数的编码结果和编码移位余数的编码结果,可以解析编码移位商数的编码结果,得到编码移位商数,以及可以解析编码移位余数的编码结果,得到编码移位余数。
235.(4)编码模式可以包括第四编码模式。在第四编码模式下,不需要判断目标编码信息是否为特定数值,也不需要判断目标编码信息的编码移位商数是否为特定数值,可以直接解析目标编码数据的编码移位商数和编码移位余数。也就是说,编码数据中可以包括编码移位商数的编码结果和编码移位余数的编码结果,可以解析编码移位商数的编码结果,得到编码移位商数,以及可以解析编码移位余数的编码结果,得到编码移位余数。
236.在上述第一编码模式和第二编码模式中,均需要解析编码信息标志字段,对编码信息标志字段的解析值进行关于移位解析条件的判别,即判别目标编码信息是否为特定数值;若编码信息标志字段的解析值满足移位解析条件,则可以说明目标编码信息不是特定数值,需要解析目标编码信息的编码移位商数和编码移位余数来重建目标编码信息;若编码信息标志字段的解析值不满足移位解析条件,则可以说明目标编码信息是特定数值,不需要解析目标编码信息的编码移位商数和编码移位余数,可以直接将目标编码信息的重建
编码信息确定为特定数值。解析编码信息标志字段,对编码信息标志字段的解析值进行关于移位解析条件的判别,具体可参见如下内容:
237.编码信息标志字段的数量可以为m1个,每个编码信息标志字段分别对应不同的个特定数值,m1为正整数;可以解析m1个编码信息标志字段中的第i个编码信息标志字段,i为小于m1的正整数;若第i个编码信息标志字段的解析值为第一数值(例如可以是0),则可以说明目标编码信息不是第i个特定数值,可以继续解析第i 1个编码信息标志字段;若第i个编码信息标志字段的解析值为第二数值(例如可以是1),则可以说明目标编码信息为第i个特定数值,编码信息标志字段不满足移位解析条件,不需要解析目标编码信息的编码移位商数和编码移位余数,可以停止解析第i个编码信息标志字段的后续编码信息标志字段,并可以直接确定目标编码信息的重建编码信息为第i个特定数值。当解析至第m1个编码信息标志字段时,若第m1个编码信息标志字段的解析值为第一数值,则可以说明目标编码信息不是第m1个特定数值,即可以确定编码信息标志字段的解析值满足移位解析条件,需要解析目标编码信息的编码移位商数和编码移位余数;若第m1个编码信息标志字段的解析值为第二数值,则可以说明目标编码信息为第m1个特定数值,编码信息标志字段不满足移位解析条件,不需要解析目标编码信息的编码移位商数和编码移位余数,可以直接确定目标编码信息的重建编码信息为第m1个特定数值。其中,第i个特定数值可以为i-1,即第m1个特定数值可以为m1-1。
238.例如,当编码信息标志字段的数量为1个时,若编码信息标志字段的解析值为0,则可以确定目标编码信息不是特定数值0,编码信息标志字段的解析值满足移位解析条件,需要解析目标编码信息的编码移位商数和编码移位余数;若编码信息标志字段的解析值为1,则可以确定目标编码信息是特定数值0,编码信息标志字段的解析值不满足移位解析条件,不需要解析目标编码信息的编码移位商数和编码移位余数,可以直接确定目标编码信息的重建编码信息为特定数值0。
239.又如,当编码信息标志字段的数量为3个时,若第一个编码信息标志字段的解析值为0,则可以确定目标编码信息不是特定数值0,可以继续解析第二个编码信息标志字段,若第一个编码信息标志字段的解析值为1,则可以确定目标编码信息是特定数值0,编码信息标志字段的解析值不满足移位解析条件,不需要解析目标编码信息的编码移位商数和编码移位余数,可以直接确定目标编码信息的重建编码信息为特定数值0;若第二个编码信息标志字段的解析值为0,则可以确定目标编码信息不是特定数值1,可以继续解析第三个编码信息标志字段,若第二个编码信息标志字段的解析值为1,则可以确定目标编码信息是特定数值1,编码信息标志字段的解析值不满足移位解析条件,不需要解析目标编码信息的编码移位商数和编码移位余数,可以直接确定目标编码信息的重建编码信息为特定数值1;若第三个编码信息标志字段的解析值为0,则可以确定目标编码信息不是特定数值2,编码信息标志字段的解析值满足移位解析条件,需要解析目标编码信息的编码移位商数和编码移位余数,若第三个编码信息标志字段的解析值为1,则可以确定目标编码信息是特定数值2,编码信息标志字段的解析值不满足移位解析条件,不需要解析目标编码信息的编码移位商数和编码移位余数,可以直接确定目标编码信息的重建编码信息为特定数值2。
240.在上述第一编码模式和第三编码模式中,均需要解析移位商数标志字段,对移位商数标志字段的解析值进行关于间接解析条件的判别,即判别目标编码信息的编码移位商
数是否为特定数值;若移位商数标志字段的解析值满足间接解析条件,则可以说明编码移位商数不是特定数值,需要解析目标编码信息的编码移位商数;若移位商数标志字段的解析值不满足间接解析条件,则可以说明编码移位商数是特定数值,不需要解析目标编码信息的编码移位商数,可以直接将编码移位商数确定为特定数值。与移位解析条件的判别类似,解析移位商数标志字段,对移位商数标志字段的解析值进行关于间接解析条件的判别,具体可参见如下内容:
241.移位商数标志字段的数量可以为m2个,每个移位商数标志字段分别对应不同的特定数值,m2为正整数;可以解析m2个移位商数标志字段中的第j个移位商数标志字段,j为小于m2的正整数;若第j个移位商数标志字段的解析值为第一数值(例如可以是0),则可以说明编码移位商数不是第j个特定数值,可以继续解析第j 1个移位商数标志字段;若第j个移位商数标志字段的解析值为第二数值(例如可以是1),则可以说明编码移位商数为第j个特定数值,移位商数标志字段不满足间接解析条件,不需要解析目标编码信息的编码移位商数,可以停止解析第j个移位商数标志字段的后续移位商数标志字段,并可以直接确定编码移位商数为第j个特定数值。当解析至第m2个移位商数标志字段时,若第m2个移位商数标志字段的解析值为第一数值,则可以说明编码移位商数不是第m2个特定数值,即可以确定移位商数标志字段的解析值满足间接解析条件,需要解析目标编码信息的编码移位商数;若第m2个移位商数标志字段的解析值为第二数值,则可以说明编码移位商数为第m2个特定数值,移位商数标志字段不满足间接解析条件,不需要解析目标编码信息的编码移位商数,可以直接确定编码移位商数为第m2个特定数值。其中,第j个特定数值可以为j-1,即第m2个特定数值可以为m2-1。
242.例如,当移位商数标志字段的数量为1个时,若移位商数标志字段的解析值为0,则可以确定编码移位商数不是特定数值0,移位商数标志字段的解析值满足间接解析条件,需要解析目标编码信息的编码移位商数;若移位商数标志字段的解析值为1,则可以确定编码移位商数是特定数值0,移位商数标志字段的解析值不满足间接解析条件,不需要解析目标编码信息的编码移位商数,可以直接确定编码移位商数为特定数值0。
243.又如,当移位商数标志字段的数量为3个时,若第一个移位商数标志字段的解析值为0,则可以确定编码移位商数不是特定数值0,可以继续解析第二个移位商数标志字段,若第一个移位商数标志字段的解析值为1,则可以确定编码移位商数是特定数值0,移位商数标志字段的解析值不满足间接解析条件,不需要解析目标编码信息的编码移位商数,可以直接确定编码移位商数为特定数值0;若第二个移位商数标志字段的解析值为0,则可以确定编码移位商数不是特定数值1,可以继续解析第三个移位商数标志字段,若第二个移位商数标志字段的解析值为1,则可以确定编码移位商数是特定数值1,移位商数标志字段的解析值不满足间接解析条件,不需要解析目标编码信息的编码移位商数,可以直接确定编码移位商数为特定数值1;若第三个移位商数标志字段的解析值为0,则可以确定编码移位商数不是特定数值2,移位商数标志字段的解析值满足间接解析条件,需要解析目标编码信息的编码移位商数,若第三个移位商数标志字段的解析值为1,则可以确定编码移位商数是特定数值2,移位商数标志字段的解析值不满足间接解析条件,不需要解析目标编码信息的编码移位商数,可以直接确定编码移位商数为特定数值2。
244.在此情况下,在解析得到目标编码信息的编码移位商数之后,可以采用与第m2个
特定数值关联的目标数值对编码移位商数进行更新,此处的更新具体可以是指:更新后的编码移位商数等于更新前的编码移位商数加上目标数值。目标数值具体可以是第m2个特定数值 1,例如,当移位商数标志字段的数量为1个时,移位商数标志字段用于判断编码移位商数是否为特定数值0,若移位商数标志字段的解析值满足间接解析条件,即编码移位商数不是特定数值0,则可以将解析得到的编码移位商数加上1(0 1)以更新编码移位商数。
245.在上述第一编码模式-第四编码模式中,解析目标编码信息的编码移位商数主要可以包括以下两种方式中的任一种:第一种方式,可以基于指数哥伦布编码方式解析编码移位商数的编码结果,得到编码移位商数,此处指数哥伦布编码方式所采用的阶数可以为k1阶,k1为非负整数;第二种方式,可以基于比特位数编码方式解析编码移位商数的编码结果,得到所述编码移位商数。
246.对于解析编码移位商数的第二种方式(即比特位数编码方式),编码移位商数的编码结果可以包括:编码移位商数的占用比特位数的编码结果,以及编码移位商数所占用的每一个比特位的编码。基于比特编码方式解析编码移位商数的编码结果,得到编码移位商数的过程,可以包括:可以解析编码移位商数的占用比特位数的编码结果,得到编码移位商数的占用比特位数;解析编码移位商数所占用的每一个比特位的编码,得到编码移位商数所占用的每一个比特位的编码的数值;根据编码移位商数所占用的每一个比特位的编码的数值,重建编码移位商数。
247.其中,编码移位商数的占用比特位数可以是采用以下任一种方式解析得到的:
248.①
比特位数编码方式。可以基于比特位数编码方式解析占用比特位数的编码结果,得到占用比特位数,具体来说,占用比特位数的编码结果可以包括占用比特位数所占用的每一个比特位的编码,可以逐位解析占用比特位数所占用的每一个比特位的编码,以重建占用比特位数。

指数哥伦布编码方式。可以基于指数哥伦布编码方式解析占用比特位数的编码结果,得到编码移位商数的占用比特位数,此处指数哥伦布解析方式所采用的阶数可以为k3阶,k3为非负整数。

移位编码方式。可以基于移位编码方式解析占用比特位数的编码结果,得到编码移位商数的占用比特位数。具体来说,占用比特位数的编码结果可以包括占用比特位数的占用移位商数的编码结果和占用移位余数的编码结果,占用移位商数和占用移位余数可以是对占用比特位数进行移位处理得到的。基于移位编码方式解析占用比特位数的编码结果,得到编码移位商数的占用比特位数,具体可以包括:解析占用移位商数的编码结果,得到占用移位商数;解析占用移位余数的编码结果,得到占用移位余数;对占用移位商数和占用移位余数进行移位重建处理,得到编码移位商数的占用比特位数。其中:
249.占用移位商数和占位移位余数可以是采用比特位数编码方式或指数哥伦布编码方式解析得到的。具体来说,对于占用移位商数:可以基于比特位数编码方式解析占用移位商数的编码结果,占用移位商数的编码结果可以包括占用移位商数所占用的每一个比特位的编码,可以逐位解析占用移位商数所占用的每一个比特位的编码,以重建占用移位商数;或者,可以基于指数哥伦布编码方式解析占用移位商数的编码结果,得到占用移位商数,此处指数哥伦布编码方式所采用的阶数可以为k4阶,k4为非负整数。对于占用移位余数:可以基于比特位数编码方式解析占用移位余数的编码结果,占用移位余数的编码结果可以包括占用移位余数所占用的每一个比特位的编码,可以逐位解析占用移位余数所占用的每一个
比特位的编码,以重建占用移位余数;或者,可以基于指数哥伦布编码方式解析占用移位余数的编码结果,得到占用移位余数,此处指数哥伦布编码方式所采用的阶数可以为k5阶,k5为非负整数。
250.对占用移位商数和占用移位余数进行移位重建处理,得到编码移位商数的占用比特位数的过程可以是基于移动位数(此处的移动位数可以是第一移动位数)进行的,即可以基于移动位数对占用移位商数进行移位处理(具体可以是左移处理),得到移位后的占用移位商数,然后,可以将移位后的占用移位商数与占用移位余数相加,得到重建的占用比特位数。
251.在上述第一编码模式-第四编码模式中,解析目标编码信息的编码移位余数主要可以包括以下两种方式中的任一种:

比特位数编码方式,可以基于比特位数编码方式解析编码移位余数的编码结果,编码移位余数的编码结果可以包括编码移位余数所占用的每一个比特位的编码,可以逐位解析编码移位余数所占用的每一个比特位的编码,以重建编码移位余数。

指数哥伦布编码方式,可以基于指数哥伦布编码方式解析占用比特位数的编码结果,得到编码移位商数的占用比特位数,此处指数哥伦布解析方式所采用的阶数可以为k2阶,k2为非负整数。
252.s703,对移位数据进行移位重建,得到目标编码信息的重建编码信息。
253.在解析得到移位数据后,可以对移位数据进行移位重建,得到目标编码信息的重建编码信息。具体来说,移位数据可以包括编码移位商数和编码移位余数可以获取移动位数(此处的移动位数可以是指第二移动位数),可以基于移动位数对编码移位商数进行移位处理(具体可以是左移处理),得到移位后的编码移位商数,然后,可以将移位后的编码移位商数与编码移位余数相加,得到目标编码信息的重建编码信息。
254.其中,移动位数(可以是指上述第一移动位数或上述第二移动位数)可以是编解码端默认设置的。或者,移动位数可以是从点云的编码参数集或编码码流中解析得到的。或者,移动位数可以是根据移动位数阈值参数判定得到的,具体来说,可以根据移动位数判定信息和移动位数阈值之间的大小关系来确定移动位数,当移动位数判定信息小于或等于移动位数阈值时,可以确定移动位数为第一移动位数(例如可以是2位),当移动位数判定信息大于移动位数阈值时,可以确定移动位数为第二移动位数(例如可以是1位)。其中,移动位数判定信息可以是指数哥伦布编码方式所采用的阶数,例如,在属性解码过程中,移动位数判定信息可以是基于指数哥伦布编码方式解析反射率属性时所采用的阶数,或者可以是基于指数哥伦布编码方式解析颜色属性时所采用的阶数;移动位数阈值可以是编解码端默认设置的,或者可以是从点云的编码参数集或编码码流中解析得到的。
255.需要说明的是,对于上述第一种编码模式和第二种编码模式,对移位数据进行移位重建,得到的可以是目标编码信息的初始重建信息,可以采用与第m1个特定数值关联的参考数值更新初始重建信息,得到目标编码信息的重建编码信息;此处的更新具体可以是指:目标编码信息的重建编码信息等于目标编码信息的初始重建信息加上参考数值,参考数值具体可以是第m1个特定数值 1,例如,当编码信息标志字段的数量为1个时,编码信息标志字段用于判断目标编码信息是否为特定数值0,若编码信息标志字段的解析值满足移位解析条件,即目标编码信息不是特定数值0,则可以将解析得到的目标编码信息的初始重建信息加上1(0 1),得到目标编码信息的重建编码信息。
256.需要说明的是,编码数据的解析过程中涉及到基于指数哥伦布编码方式的解析过程,因此,需要确认指数哥伦布编码方式所采用的阶数。指数哥伦布编码方式所采用的阶数可以是通过以下任一种方式确定的:编解码端可以默认设置指数哥伦布编码方式所采用的阶数,或者,可以从点云的编码码流或编码参数集中解析指数哥伦布编码方式所采用的阶数,或者,可以根据目标编码信息的数据特性,确定指数哥伦布编码方式所采用的阶数。
257.对于根据目标编码信息的数据特性,确定指数哥伦布编码方式所采用的阶数的方式而言,具体可以包括以下任一种:
258.(1)根据点云的动态范围信息查询指数哥伦布编码方式所采用的阶数:
259.目标编码信息的数据特性可以包括目标编码信息所属点云的动态范围信息,目标编码信息所属的点云可以是指整个点云、点云片、当前宏块或当前预测树等;动态范围信息可以是根据点云的精度信息确定的,精度信息是指点云中的信息能够精确的比特位数,动态范围参数可以是对精度信息进行指数运算得到的,例如,点云中信息的精度信息为10bit(比特),则动态范围参数可以是2^10。
260.在获取到目标编码信息所属点云的动态范围信息后,可以根据动态范围信息,计算查询索引值,然后便可以根据查询索引值,在查询表中查询指数哥伦布编码方式所采用的阶数;查询表可以是根据经验编写的,查询表的长度与点云的精度信息相关,查询表中包括多个索引值以及每个索引值对应的阶数,因此,基于查询索引值便可以从查询表中快速地查询到与查询索引值所对应的阶数,作为指数哥伦布编码方式所采用的阶数。
261.其中,查询索引值的计算过程还可以与点云的量化步长相关,可以根据动态范围信息和量化步长,计算动态范围参数,然后可以根据动态范围参数,计算查询索引值,具体可以参见如下公式:
262.index=log2b
’‑1263.其中,index表示查询索引值,b’表示动态范围参数。
264.(2)自适应确定指数哥伦布编码方式所采用的阶数:
265.自适应确定指数哥伦布编码方式所采用的阶数具体可以是指:确定初始阶数,根据目标编码信息的数据特性对初始阶数或当前阶数进行调整,得到指数哥伦布编码方式所采用的阶数。目标编码信息的数据特性可以包括目标编码信息所属的待解码点的前序已解码点的解码信息,前序已解码点可以是指解码顺序位于待解码点之前的已解码点,前序已解码点的解码信息可以是指解析得到的与前序已解码点相关的信息,例如,前序已解码点的几何残差信息、属性残差信息等等。
266.①
可以获取初始阶数golombnum,并根据初始阶数确定阶数调整阈值。其中,阶数调整阈值可以包括阶数调整上限golombnumup和阶数调整下限golombnumlow,阶数调整上限golombnumup和阶数调整下限golombnumlow的第一种确定方式可参见如下公式:
267.golombnumlow=2^golombnum,golombnumup=2^(golombnum 1)
268.阶数调整上限golombnumup和阶数调整下限golombnumlow的第二种确定方式可参见如下公式:
269.golombnumlow=2^(golombnum-1),golombnumup=2^golombnum
270.②
可以根据前序已解码点的解码信息与阶数调整阈值之间的大小关系,对初始阶数或当前阶数进行调整,得到指数哥伦布编码方式所采用的阶数。具体来说,可以确定前序
已解码点的解码信息的统计特征值:前序已解码点可以是与待解码点相邻的一个前序已解码点,统计特征值a’可以是该相邻前序已解码点的解码信息本身;或者,每间隔l个点自适应调整一次指数哥伦布编码方式所采用的阶数,统计特征值a’可以是l个前序已解码点的解码信息的均值;或者,每间隔l个点自适应调整一次指数哥伦布编码方式所采用的阶数,统计特征值a’可以是l个前序已解码点的解码信息中非零解码信息的均值;本技术实施例对此不进行限定。
271.然后,可以根据统计特征值与阶数调整阈值之间的大小关系,对初始阶数或当前阶数进行调整,得到指数哥伦布编码方式所采用的阶数,当前阶数可以是指上一次确定的指数哥伦布编码方式所采用的阶数。其中,根据统计特征值与阶数调整阈值之间的大小关系,对初始阶数进行调整,得到指数哥伦布编码方式所采用的阶数,可以包括:若统计特征值大于阶数调整上限,则指数哥伦布编码方式所采用的阶数等于初始阶数减去更新数值(例如可以是1),若统计特征值小于阶数调整下限,则指数哥伦布编码方式所采用的阶数等于初始阶数加上更新数值(例如可以是1)。具体可参见下述公式:
272.当a’《golombnumlow,k=golombnum 1
273.当a’》golombnumup,k=golombnum-1
274.其中,a’表示统计特征值,golombnumlow表示阶数调整下限,golombnumup表示阶数调整上限,golombnum表示初始阶数,k表示指数哥伦布编码方式所采用的阶数。
275.根据统计特征值与阶数调整阈值之间的大小关系,对当前阶数进行调整,得到指数哥伦布编码方式所采用的阶数,可以包括:若统计特征值大于阶数调整上限,则指数哥伦布编码方式所采用的阶数等于初始阶数减去更新数值(例如可以是1),若统计特征值小于阶数调整下限,则指数哥伦布编码方式所采用的阶数等于初始阶数加上更新数值(例如可以是1)。具体可参见下述公式:
276.当a1《golombnumlow,k=k’ 1
277.当a1》golombnumup,k=k
’‑1278.其中,a’表示统计特征值,golombnumlow表示阶数调整下限,golombnumup表示阶数调整上限,k’表示当前阶数,k表示指数哥伦布编码方式所采用的阶数
279.③
在确定指数哥伦布编码方式所采用的阶数之后,还可以获取阶数重置阈值,若基于阶数重置阈值确定指数哥伦布编码方式所采用的阶数满足阶数重置条件,则需要重置指数哥伦布编码方式所采用的阶数,若基于阶数重置阈值确定指数哥伦布编码方式所采用的阶数不满足阶数重置条件,则可以保持指数哥伦布编码方式所采用的阶数不变。其中,阶数重置阈值可以包括第一阶数重置阈值t1或第二阶数重置阈值t2,指数哥伦布编码方式所采用的阶数满足阶数重置条件可以是指:指数哥伦布编码方式所采用的阶数小于(小于或等于)第一阶数重置阈值,此时,可以将指数哥伦布编码方式所采用的阶数重置为第一参考阶数t3;或者,指数哥伦布编码方式所采用的阶数大于(大于或等于)第二阶数重置阈值,此时,可以将指数哥伦布编码方式所采用的阶数重置为第二参考阶数t4,第一参考阶数t3和第二参考阶数t4均可以设置为对应的初始阶数。具体可参见下述公式:
280.若k《=t1(k《t1),则k=t3(t1和t3可以相同也可以不同);
281.若k》=t2(k》t2),则k=t4(t2和t4可以相同也可以不同);
282.指数哥伦布编码方式所采用的阶数不满足阶数重置条件可以是指:指数哥伦布编
码方式所采用的阶数大于或等于(大于)第一阶数重置阈值,此时,可以保持指数哥伦布编码方式所采用的阶数不变;或者,指数哥伦布编码方式所采用的阶数小于或等于(大于)第二阶数重置阈值,此时,可以保持指数哥伦布编码方式所采用的阶数不变。
283.另外,若编码数据的解析过程中涉及到多个基于指数哥伦布编码方式的解析过程,则各个指数哥伦布编码方式所采用的阶数是相互独立的,或是相互关联的。其中,相互关联可以包括以下任一种情况:各个指数哥伦布编码方式所采用的阶数相同。或者,各个指数哥伦布编码方式所采用的阶数通过偏移参数(offset)进行关联;例如,上述提及的指数哥伦布编码方式所采用的5个阶数k1、k2、k3、k4、以及k5,可以通过偏移参数(offset)进行关联,k2=k1-offset,k3=k1-offset,k4=k1-offset,k5=k1-offset,又如,k2=k1-offset,k3=k2-offset,k4=k3-offset,k5=k4-offset。
284.本技术实施例中,获取到点云的编码数据后,可以解析编码数据,得到移位数据,移位数据是在点云的编码过程中对点云的目标编码信息进行移位处理得到的,对移位数据进行移位重建,便可以得到目标编码信息的重建编码信息。本技术实施例通过对目标编码信息进行移位处理,可以减少点云的解码阶段所解码的数据量,从而可以提升点云的解码效率。
285.下面结合语法表对本技术实施例提供的点云处理方案在实际的点云解码过程中的应用进行介绍:
286.语法表一
287.288.在此先对上述语法表一中涉及的参数进行解释:
289.nodeidx:指示点云中的当前点;
290.k:指示当前点的第k个方向;
291.ptn_residual_abs_eq0_flag(编码信息标志字段):指示目标编码信息是否为0;当该字段被设置为1时,表示目标编码信息为0,当该字段被设置为0时,表示目标编码信息不为0(且大于0);
292.ptn_residual_abs_remainingptn:指示对目标编码信息进行移位处理得到的编码移位余数;
293.ptn_residual_abs_half_eq0_flag(移位商数标志字段):指示对目标编码信息进行移位处理得到的编码移位商数是否为0;当该字段被设置为1时,表示编码移位商数为0,当该字段被设置为0时,表示编码移位商数为不为0(且大于0);
294.ptn_residual_abs_numbits(占用比特位数字段):指示当前待编码值占用的比特位数;
295.ptn_numbits_remaining(占位余数字段):指示对占用比特位数进行移位处理得到的占用移位余数;
296.ptn_residual_abs_value_per(比特数值字段):指示占用比特位数中每个比特位的数值。
297.可以看出,上述语法表一以目标编码信息为点云中的当前点在第k个方向上的残差值为例,介绍目标点云编码信息的解析过程(对应于上述第一编码模式),具体可参见如下描述:
298.(1)解析ptn_residual_abs_eq0_flag[k]是否为0,若为0,则继续解析,若不为0,则可以确定当前点在第k个方向上的残差值a[k]=0;
[0299]
(2)若ptn_residual_abs_eq0_flag[k]为0,则解析ptn_residual_abs_remaining[k],得到当前点在第k个方向上的残差值的编码移位余数a2[k];
[0300]
(3)解析ptn_residual_abs_half_eq0_flag[k]是否为0,若为0,则继续解析,若不为0,则可以确定当前点在第k个方向上的残差值的编码移位商数a1[k]=0;
[0301]
(4)若ptn_residual_abs_half_eq0_flag[k]为0,则基于比特位数编码方式解析当前点在第k个方向上的残差值的编码移位商数a1[k],即通过解析ptn_residual_abs_numbits[k],以及ptn_residual_abs_value_per[k][j],得到当前点在第k个方向上的残差值的编码移位商数a1[k];
[0302]
(5)通过编码移位商数a1[k]和编码移位余数a2[k],重建当前点在第k个方向上的残差值a[k]:a[k]=a1[k]《《s1 a2[k]。
[0303]
语法表二
[0304]
[0305][0306]
可以看出,上述语法表二以目标编码信息为点云中的当前点在第k个方向上的残差值为例,介绍目标点云编码信息的解析过程(对应于上述第二编码模式),具体可参见如下描述:
[0307]
(1)解析ptn_residual_abs_eq0_flag[k]是否为0,若为0,则继续解析,若不为0,则可以确定当前点在第k个方向上的残差值a[k]=0;
[0308]
(2)若ptn_residual_abs_eq0_flag[k]为0,则解析ptn_residual_abs_remaining[k],得到当前点在第k个方向上的残差值的编码移位余数a2[k];
[0309]
(3)基于比特位数编码方式解析当前点在第k个方向上的残差值的编码移位商数a1[k],即通过解析ptn_residual_abs_numbits[k],以及ptn_residual_abs_value_per[k][j],得到当前点在第k个方向上的残差值的编码移位商数a1[k];
[0310]
(4)通过编码移位商数a1[k]和编码移位余数a2[k],重建当前点在第k个方向上的残差值a[k]:a[k]=a1[k]《《s1 a2[k]。
[0311]
语法表三
[0312]
[0313][0314]
可以看出,上述语法表三以目标编码信息为点云中的当前点在第k个方向上的残差值为例,介绍目标点云编码信息的解析过程(对应于上述第三编码模式),具体可参见如下描述:
[0315]
(1)解析ptn_residual_abs_remaining[k],得到当前点在第k个方向上的残差值的编码移位余数a2[k];
[0316]
(2)解析ptn_residual_abs_half_eq0_flag[k]是否为0,若为0,则继续解析,若不为0,则可以确定当前点在第k个方向上的残差值的编码移位商数a1[k]=0;
[0317]
(3)若ptn_residual_abs_half_eq0_flag[k]为0,则基于比特位数编码方式解析当前点在第k个方向上的残差值的编码移位商数a1[k],即通过解析ptn_residual_abs_numbits[k],以及ptn_residual_abs_value_per[k][j],得到当前点在第k个方向上的残差值的编码移位商数a1[k];
[0318]
(4)通过编码移位商数a1[k]和编码移位余数a2[k],重建当前点在第k个方向上的残差值a[k]:a[k]=a1[k]《《s1 a2[k]。
[0319]
语法表四
[0320][0321]
可以看出,上述语法表四以目标编码信息为点云中的当前点在第k个方向上的残差值为例,介绍目标点云编码信息的解析过程(对应于上述第三编码模式),具体可参见如下描述:
[0322]
(1)解析ptn_residual_abs_remaining[k],得到当前点在第k个方向上的残差值的编码移位余数a2[k];
[0323]
(2)基于比特位数编码方式解析当前点在第k个方向上的残差值的编码移位商数a1[k],即通过解析ptn_residual_abs_numbits[k],以及ptn_residual_abs_value_per[k][j],得到当前点在第k个方向上的残差值的编码移位商数a1[k];
[0324]
(3)通过编码移位商数a1[k]和编码移位余数a2[k],重建当前点在第k个方向上的残差值a[k]:a[k]=a1[k]《《s1 a2[k]。
[0325]
语法表五
[0326][0327]
在此先对上述语法表五中涉及的参数进行解释:
[0328]
zero_run_length_equal_zero(零游程值为零标志,可以作为编码信息标志字段):
[0329]
二值变量。值为“1”表示零游程值为零;值为“0”表示零游程值不为零。当该语法元素不在码流中,其值默认为零。
[0330]
zero_run_length_equal_one(零游程值为一标志,可以作为编码信息标志字段):
[0331]
二值变量。值为“1”表示零游程值为一;值为“0”表示零游程值不为一。当该语法元素不在码流中,其值默认为零。
[0332]
zero_run_length_equal_two(零游程值为二标志,可以作为编码信息标志字段):
[0333]
二值变量。值为“1”表示零游程值为二;值为“0”表示零游程值不为二。当该语法元素不在码流中,其值默认为零。
[0334]
zero_run_length_minus3_parity(零游程值减去三奇偶性标志符):
[0335]
二值变量。值为“0”表示零游程值减去三为偶数;值为“1”表示零游程值减去三为奇数。
[0336]
zero_run_length_minus3_parityh(零游程值减去三高位奇偶性标志符):
[0337]
二值变量。值为“0”表示零游程值减去三除以二为偶数;值为“1”表示零游程值减去三除以二为奇数。
[0338]
zero_run_length_minus3_div2(零游程值减去三除以二):
[0339]
无符号整数。表示零游程值减去三除以二(即右移一位);当该语法元素不在码流中,其值默认为零。
[0340]
zero_run_length_minus3_div4(零游程值减去三除以四)
[0341]
无符号整数。表示零游程值减去三除以四(即右移两位);当该语法元素不在码流中,其值默认为零。
[0342]
可以看出,上述语法表五以目标编码信息为零游程值为例,介绍目标点云编码信息的解析过程,具体可参见如下描述:
[0343]
(1)解析zero_run_length_equal_zero,若zero_run_length_equal_zero=0,则继续解析zero_run_length_equal_one,若zero_run_length_equal_zero=1,则说明零游程值为0;
[0344]
(2)解析zero_run_length_equal_one,若zero_run_length_equal_one=0,则继续解析zero_run_length_equal_two,若zero_run_length_equal_one=1,则说明零游程值为1;
[0345]
(3)解析zero_run_length_equal_two,若zero_run_length_equal_two=0,则解析zero_run_length_minus3_parity,若zero_run_length_equal_two=1,则说明零游程值为2;
[0346]
(4)判断usegolomb为true或false;
[0347]
(5)如果usegolomb=true,则说明零游程值被右移2位,解析zero_run_length_minus3_parity作为零游程值的编码移位余数中的低位值,解析zero_run_length_minus3_parityh作为零游程值的编码移位余数中的高位值,解析zero_run_length_minus3_div4作为零游程值的编码移位商数;可以通过零游程值的编码移位商数、编码移位余数的高位值和编码移位余数的低位值重建零游程值zero_run_length,zero_run_length=zero_run_length_minus3_div4<<2 zero_run_length_minus3_parityh zero_run_length_minus3_parity。
[0348]
(6)如果usegolomb=false,则说明零游程值被右移1位,解析zero_run_length_minus3_parity作为零游程值的编码移位余数,解析zero_run_length_minus3_div2作为零游程值的编码移位商数;可以通过零游程值的编码移位商数、编码移位余数重建零游程值zero_run_length,zero_run_length=zero_run_length_minus3_div2<<1 zero_run_length_minus3_parity。
[0349]
语法表六
[0350][0351][0352]
在此先对上述语法表六中涉及的与上述语法表五中不同的参数进行解释:
[0353]
zero_run_length_minus3_mod4(零游程值减去三模四标志符):
[0354]
无符号整数,表示零游程值减去三模四的值,即零游程值减去三右移两位的编码移位余数(也可以采用两位的二值变量分别表示其高位和低位)。
[0355]
zero_run_length_minus3_mod2(零游程值减去三模四标志符):
[0356]
无符号整数,表示零游程值减去三模二的值,即零游程值减去三右移一位的编码移位余。
[0357]
可以看出,上述语法表六以目标编码信息为零游程值为例,介绍目标点云编码信息的解析过程,具体可参见如下描述:
[0358]
(1)解析zero_run_length_equal_zero,若zero_run_length_equal_zero=0,则继续解析zero_run_length_equal_one,若zero_run_length_equal_zero=1,则说明零游程值为0;
[0359]
(2)解析zero_run_length_equal_one,若zero_run_length_equal_one=0,则继
续解析zero_run_length_equal_two,若zero_run_length_equal_one=1,则说明零游程值为1;
[0360]
(3)解析zero_run_length_equal_two,若zero_run_length_equal_two=0,则判断usegolomb为true或false,若zero_run_length_equal_two=1,则说明零游程值为2;
[0361]
(4)如果usegolomb=true,则说明零游程值被右移2位,解析zero_run_length_minus3_mod4作为零游程值的编码移位余数,解析zero_run_length_minus3_div4作为零游程值的编码移位商数;可以通过零游程值的编码移位商数和编码移位余数重建零游程值zero_run_length,zero_run_length=zero_run_length_minus3_div4<<2 zero_run_length_minus3_mod4。
[0362]
(5)如果usegolomb=false,则说明零游程值被右移1位,解析zero_run_length_minus3_mod2作为零游程值的编码移位余数,解析zero_run_length_minus3_div2作为零游程值的编码移位商数;可以通过零游程值的编码移位商数、编码移位余数重建零游程值zero_run_length,zero_run_length=zero_run_length_minus3_div2<<1 zero_run_length_minus3_mod2。
[0363]
需要说明的是,上述语法表五和语法表六中均需要判断usegolomb为true或false,usegolomb为true或false与零游程值的移动位数相关,当usegolomb为true时,零游程值的移动位数可以为第一移动位数(例如可以是两位),当usegolomb为false时,零游程值的移动位数可以为第二移动位数(例如可以是一位)。而以属性解码过程中,判断usegolomb为true或false具体可参见如下描述:
[0364]
refgolombnum表示基于指数哥伦布编码方式编码反射率属性时所采用的阶数,refgolombnum可以作为移动位数判定信息,位数阈值th
val
可以作为移动位数阈值,若refgolombnum≤移动位数阈值th
val
,则usegolomb=true,零游程值的移动位数为第一移动位数;若refgolombnum>移动位数阈值th
val
,则usegolomb=false,零游程值的移动位数为第一移动位数。移动位数阈值th
val
可以具体的属性解码时采用的属性编码模式相关,例如,当属性解码时采用的属性编码模式为预测变换编码时,移动位数阈值th
val
的值可以为1,当属性解码时采用的属性编码模式为变换编码时,移动位数阈值th
val
的值可以为2。
[0365]
类似地,colorgolombnum表示基于指数哥伦布编码方式编码颜色属性时所采用的阶数,colorgolombnum可以作为移动位数判定信息,位数阈值th
val
可以作为移动位数阈值,若colorgolombnum≤移动位数阈值th
val
,则usegolomb=true,零游程值的移动位数为第一移动位数;若refgolombnum>移动位数阈值th
val
,则usegolomb=false,零游程值的移动位数为第一移动位数。移动位数阈值th
val
可以具体的属性解码时采用的属性编码模式相关,例如,当属性解码时采用的属性编码模式为预测变换编码时,移动位数阈值th
val
的值可以为1,当属性解码时采用的属性编码模式为变换编码时,移动位数阈值th
val
的值可以为2。
[0366]
语法表七
[0367][0368][0369]
可以看出,上述语法表七以目标编码信息为零游程值为例,介绍目标点云编码信息的解析过程,具体可参见如下描述:
[0370]
(1)解析zero_run_length_equal_zero,若zero_run_length_equal_zero=0,则继续解析zero_run_length_equal_one,若zero_run_length_equal_zero=1,则说明零游程值为0;
[0371]
(2)解析zero_run_length_equal_one,若zero_run_length_equal_one=0,则继续解析zero_run_length_equal_two,若zero_run_length_equal_one=1,则说明零游程值为1;
[0372]
(3)解析zero_run_length_equal_two,若zero_run_length_equal_two=1,则说明零游程值为2;
[0373]
(4)若zero_run_length_equal_two=0,解析zero_run_length_minus3_mod2作为零游程值的编码移位余数,解析zero_run_length_minus3_div2作为零游程值的编码移位商数;可以通过零游程值的编码移位商数、编码移位余数重建零游程值zero_run_length,zero_run_length=zero_run_length_minus3_div2<<1 zero_run_length_minus3_mod2。
[0374]
本技术实施例提供一种点云处理方法,该点云处理方法主要介绍解码端关于目标编码信息的编码过程,该点云处理方法可以由计算机设备执行,计算机设备可以是上述点云处理系统中的编码设备601。如图8所示,该点云处理方法可以包括以下步骤s801-步骤s803:
[0375]
s801,获取点云的目标编码信息。
[0376]
目标编码信息可以是点云的编码过程中需要进行编码的任意点云相关信息。例如,在几何编码过程中,若采用几何预测编码,则目标编码信息可以是点云中任意点的几何残差信息(例如,具体可以是任意点在某个方向上的几何残差信息);若采用几何变换编码,则目标编码信息可以是点云中任意点的几何信息的变换系数(例如,具体可以是任意点在某个方向上的几何信息的变换系数);若采用几何预测变换编码,则目标编码信息可以是点云中任意点的几何残差信息的变换系数(例如,具体可以是任意点在某个方向上的几何残差信息的变换系数)。又如,在属性编码过程中,若采用属性预测编码,则目标编码信息可以是点云中任意点的属性残差信息;若采用属性变换编码,则目标编码信息可以是点云中任意点的属性信息的变换系数;若采用属性预测变换编码,则目标编码信息可以是点云中任意点的属性残差信息的变换系数。若在属性编码过程或几何编码过程中采用行程编码,则目标编码信息还可以是游程信息,游程信息例如可以是零游程值,零游程值可以是指点云中残差信息或变换系数连续为0的点数。
[0377]
s802,对目标编码信息进行移位处理,得到目标编码信息的移位数据。
[0378]
在获取到点云的目标编码信息后,可以对目标编码信息进行移位处理,得到目标编码信息的移位数据。目标编码信息可以是按照编码模式进行移位处理的,不同的编码模式下,目标编码信息的移位处理过程存在差异,也就是说,可以获取编码模式,按照编码模式对目标编码信息进行移位处理,得到目标编码信息的移位数据。
[0379]
编码模式的判定过程可参见如下描述:编码模式可以是编解码端默认设置的;或者,编码模式可以是根据编码端设置的编码模式信息确定的,编码模式信息被编码端写入点云的编码参数集或编码码流中;或者,编解码端默认设置阈值参数,可以通过模式判定信息(例如,可以是目标编码信息、目标编码信息的占用比特位数、目标编码信息的量化参数、包围盒信息等)与阈值参数来对编码模式进行判定;或者,编解码端默认设置阈值参数,可以通过模式判定信息与阈值参数来对编码模式进行判定,并将判定的编码模式以编码模式信息的形式写入点云的编码参数集或编码码流中;或者,编码端可以设置阈值参数,可以通过模式判定信息与阈值参数来对编码模式进行判定,并且设置的阈值参数被写入点云的编码参数集或编码码流中。
[0380]
编码模式在点云中的应用范围可参见如下描述:编码模式可以应用于整个点云,也就是说,点云中的各点采用相同的编码模式;或者,编码模式可以应用与整个点云片,也就是说,属于同一点云片中的各点均采用相同的编码模式,点云片可以由一个或多个宏块组成的;或者,编码模式可以应用于整个宏块,也就是说,属于同一宏块中的各点均采用相同的编码模式,或者,编码模式可以应用于整个预测树,也就是说,属于同一预测树的各点均采用相同的编码模式;或者,编码模式可以应用于点云中的单个点;或者,编码模式可以应用与单个点的某个方向(对应于几何编码过程),在此情况下,点云中的单个点在各个方向上可以采用相同的编码模式,或者,点云中的单个点在各个方向上可以采用不同的编码模式。
[0381]
下面将重点介绍不同编码模式下目标编码信息的移位处理过程:
[0382]
(1)编码模式可以包括第一编码模式。在第一编码模式下,可以先判断目标编码信息是否为特定数值,若目标编码信息不是特定数值,则可以对目标编码信息进行移位处理,得到目标编码信息的移位数据,移位数据可以包括目标编码信息的编码移位商数和编码移
位余数,然后,可以判断目标编码信息的编码移位商数是否为特定数值,若目标编码信息的编码移位商数不是特定数值,则可以确定需要对目标编码信息的编码移位商数进行间接编码处理。
[0383]
具体来说,可以对目标编码信息进行移位编码条件的判别,即判断目标编码信息是否为特定数值;若目标编码信息满足移位编码条件,则可以说明目标编码信息不是特定数值,需要对目标编码信息进行移位处理,得到目标编码信息的编码移位商数和编码移位余数;然后,可以对编码移位商数进行关于间接编码条件的判别,即判断编码移位商数是否为特定数值;若编码移位商数满足间接编码条件,则可以说明编码移位商数不是特定数值,可以确定需要对编码移位商数进行间接编码处理。
[0384]
(2)编码模式可以包括第二编码模式。在第二编码模式下,可以先判断目标编码信息是否为特定数值,若目标编码信息不是特定数值,则可以对目标编码信息进行移位处理,得到目标编码信息的移位数据,移位数据可以包括目标编码信息的编码移位商数和编码移位余数。
[0385]
具体来说,可以对目标编码信息进行移位编码条件的判别,即判断目标编码信息是否为特定数值;若目标编码信息满足移位编码条件,则可以说明目标编码信息不是特定数值,需要对目标编码信息进行移位处理,得到目标编码信息的编码移位商数和编码移位余数,此时目标编码信息的编码移位商数需要进行间接编码处理。
[0386]
(3)编码模式可以包括第三编码模式。在第三编码模式下,可以对目标编码信息进行移位处理,得到目标编码信息的移位数据,移位数据可以包括目标编码信息的编码移位商数和编码移位余数,然后,可以判断目标编码信息的编码移位商数是否为特定数值,若目标编码信息的编码移位商数不是特定数值,则可以确定需要对目标编码信息的编码移位商数进行间接编码处理。
[0387]
具体来说,对目标编码信息进行移位处理,得到目标编码信息的编码移位商数和编码移位余数;然后,可以对编码移位商数进行关于间接编码条件的判别,即判断编码移位商数是否为特定数值;若编码移位商数满足间接编码条件,则可以说明编码移位商数不是特定数值,可以确定需要对编码移位商数进行间接编码处理。
[0388]
(4)编码模式可以包括第四编码模式。在第四编码模式下,不需要判断目标编码信息是否为特定数值,也不需要判断目标编码信息的编码移位商数是否为特定数值。也就是说,可以直接对目标编码信息进行移位处理,得到目标编码信息的编码移位商数和目标编码信息的编码移位余数,此时目标编码信息的编码移位商数需要进行间接编码处理。
[0389]
在上述第一编码模式和第二编码模式中,均需要对目标编码信息进行关于移位编码条件的判别,即判别目标编码信息是否为特定数值;若目标编码信息满足移位编码条件,则可以确定目标编码信息不是特定数值,需要对目标编码信息进行移位处理,并对移位处理得到的移位数据进行编码处理;若目标编码信息不满足移位编码条件,则可以确定目标编码信息为特定数值,可以直接对目标编码信息进行编码处理。对目标编码信息进行关于移位编码条件的判别,具体可参见如下内容:
[0390]
在对目标编码信息进行关于移位编码条件的判别时,需要将目标编码信息与m1个特定数值进行匹配检查,每个特定数值分别对应不同的编码信息标志字段,m1为正整数;可以将目标编码信息与m1个特定数值中的第i个特定数值进行匹配检查,i为小于m1的正整
数;若目标编码信息与第i个特定数值不匹配(即不相等),则可以说明目标编码信息不是第i个特定数值,可以将第i个编码信息标志字段设置为第一数值(例如可以是0)并编码,以及可以将目标编码信息与m1个特定数值中的第i 1个特定数值进行匹配检查;若目标编码信息与第i个特定数值匹配(即相等),则可以说明目标编码信息为第i个特定数值,可以直接对目标编码信息进行编码,直接对目标编码信息进行编码可以是指:将第i个编码信息标志字段设置为第二数值(例如可以是1)并编码;当匹配检查至第m1特定数值时,若目标编码信息与第m1个特定数值不匹配,则可以说明目标编码信息不是第m1个特定数值,可以将第m1个编码信息标志字段设置为第一数值并编码,以及确定目标编码信息满足移位编码条件;若目标编码信息与第m1个特定数值匹配,则可以确定目标编码信息不满足移位编码条件,可以直接对目标编码信息进行编码,直接对目标编码信息进行编码具体可以是指:将第m1个编码信息标志字段设置为第二数值并编码。其中,第i个特定数值可以为i-1,即第m1个特定数值可以为m1-1。
[0391]
例如,当将目标编码信息与1个特定数值(特定数值可以为0)进行匹配检查时,若目标编码信息与特定数值0匹配,则可以直接对目标编码信息进行编码,即可以将编码信息标志字段设置为1并编码;若目标编码信息与特定数值0不匹配,则可以将编码信息标志字段设置为0并编码,以及可以确定需要对目标编码信息进行移位处理。
[0392]
又如,当将目标编码信息与3个特定数值(可以分别是第一个特定数值0,第二个特定数值1,第三个特定数值2)进行匹配检查时,若目标编码信息与第一个特定数值0匹配,则可以直接对目标编码信息进行编码,即可以将第一个编码信息标志字段设置为1并编码;若目标编码信息与第一个特定数值0不匹配,则可以将编码信息标志字段设置为0并编码,以及将目标编码信息与第二个特定数值1进行匹配;若目标编码信息与第二个特定数值1匹配,则可以直接对目标编码信息进行编码,即可以将第二个编码信息标志字段设置为1并编码;若目标编码信息与第二个特定数值1不匹配,则可以将第二个编码信息标志字段设置为0并编码,以及将目标编码信息与第三个特定数值2进行匹配;若目标编码信息与第三个特定数值2匹配,则可以直接对目标编码信息进行编码,即可以将第三个编码信息标志字段设置为1并编码;若目标编码信息与第三个特定数值2不匹配,则可以将第三个编码信息标志字段设置为0并编码,以及可以确定需要对目标编码信息进行移位处理。
[0393]
并且,若目标编码信息满足移位编码条件,则可以采用与第m1个特定数值关联的参考数值更新目标编码信息,然后可以对更新后的目标编码信息进行移位处理,得到目标编码信息的编码移位商数和编码移位余数。此处更新具体可以是指:更新后的目标编码信息等于更新前的目标编码信息减去参考数值。参考数值具体可以是指第m1个特定数值 1,例如,当将目标编码信息与1个特定数值(特定数值可以是0)进行匹配检查时,若目标编码信息满足移位编码条件,即目标编码信息不是特定数值0,则可以将目标编码信息减去1(特定数值0 1),对减去1后的目标编码信息进行移位处理。此处,将目标编码信息减去参考数值(即第m1个特定数值 1)的目的在于,当目标编码信息与第m1个特定数值不匹配时,可以说明目标编码信息为大于第m1个特定数值的数值,减去参考数值(即第m1个特定数值 1),可以减少编码的数据量,从而能够在一定程度上提升点云的编码效率。
[0394]
在上述第一编码模式和第三编码模式中,均需要对编码移位商数进行关于间接编码条件的判别,即判别编码移位商数是否为特定数值;若编码移位商数满足间接编码条件,
则可以确定编码移位商数不是特定数值,需要对编码移位商数进行间接编码处理;若编码移位商数不满足间接编码条件,则可以确定编码移位商数为特定数值,可以直接对编码移位商数进行编码处理。对编码移位商数进行关于间接编码条件的判别,具体可参见如下内容:
[0395]
在对编码移位商数进行关于间接编码条件的判别时,需要将编码移位商数与m2个特定数值进行匹配检查,每个特定数值分别对应不同的移位商数标志字段,m2为正整数;可以将编码移位商数与m2个特定数值中的第j个特定数值进行匹配检查,j为小于m2的正整数;若编码移位商数与第j个特定数值不匹配(即不相等),则可以说明编码移位商数不是第j个特定数值,可以将第j个移位商数标志字段设置为第一数值(例如可以是0)并编码,以及可以将编码移位商数与m2个特定数值中的第j 1个特定数值进行匹配检查;若编码移位商数与第j个特定数值匹配(即相等),则可以说明编码移位商数为第j个特定数值,可以直接对编码移位商数进行编码,直接对编码移位商数进行编码可以是指:将第j个移位商数标志字段设置为第二数值(例如可以是1)并编码;当匹配检查至第m2特定数值时,若编码移位商数与第m2个特定数值不匹配,则可以说明编码移位商数不是第m2个特定数值,可以将第m2个移位商数标志字段设置为第一数值并编码,以及确定编码移位商数满足间接编码条件;若编码移位商数与第m2个特定数值匹配,则可以确定编码移位商数不满足间接编码条件,可以直接对编码移位商数进行编码,直接对编码移位商数进行编码具体可以是指:将第m2个移位商数标志字段设置为第二数值并编码。其中,第j个特定数值可以为j-1,即第m2个特定数值可以为m2-1。
[0396]
例如,当将编码移位商数与1个特定数值(特定数值可以为0)进行匹配检查时,若编码移位商数与特定数值0匹配,则可以直接对编码移位商数进行编码,即可以将移位商数标志字段设置为1并编码;若编码移位商数与特定数值0不匹配,则可以将移位商数标志字段设置为0并编码,以及可以确定编码移位商数满足间接编码条件,需要对编码移位商数进行间接编码处理。
[0397]
又如,当将编码移位商数与3个特定数值(可以分别是第一个特定数值0,第二个特定数值1,第三个特定数值2)进行匹配检查时,若编码移位商数与第一个特定数值0匹配,则可以直接对编码移位商数进行编码,即可以将第一个移位商数标志字段设置为1并编码;若编码移位商数与第一个特定数值0不匹配,则可以将移位商数标志字段设置为0并编码,以及将编码移位商数与第二个特定数值1进行匹配;若编码移位商数与第二个特定数值1匹配,则可以直接对编码移位商数进行编码,即可以将第二个移位商数标志字段设置为1并编码;若编码移位商数与第二个特定数值1不匹配,则可以将第二个移位商数标志字段设置为0并编码,以及将编码移位商数与第三个特定数值2进行匹配;若编码移位商数与第三个特定数值2匹配,则可以直接对编码移位商数进行编码,即可以将第三个移位商数标志字段设置为1并编码;若编码移位商数与第三个特定数值2不匹配,则可以将第三个移位商数标志字段设置为0并编码,以及可以确定编码移位商数满足间接编码条件,需要对编码移位商数进行间接编码处理。
[0398]
并且,若编码移位商数满足间接编码条件,则可以采用与第m2个特定数值关联的目标数值更新编码移位商数,然后可以确定需要对更新后的编码移位商数进行间接编码处理。此处更新具体可以是指:更新后的编码移位商数等于更新前的编码移位商数减去目标
数值。目标数值具体可以是指第m2个特定数值 1,例如,当将编码移位商数与1个特定数值(特定数值可以是0)进行匹配检查时,若编码移位商数满足间接编码条件,即编码移位商数不是特定数值0,则可以将编码移位商数减去1(特定数值0 1),确定需要对减去1后的编码移位商数进行间接编码处理。此处,将编码移位商数减去目标数值(即第m2个特定数值 1)的目的在于,当编码移位商数与第m2个特定数值不匹配时,可以说明编码移位商数为大于第m2个特定数值的数值,减去目标数值(即第m2个特定数值 1),可以减少编码的数据量,从而能够在一定程度上提升点云的编码效率。
[0399]
在上述第一编码模式-第四编码模式中,对目标编码信息(或更新后的目标编码信息)进行移位处理均是基于移动位数(此处的移动位数可以是第二移动位数)进行的。移动位数可以是固定的,移动位数可以是判定得到的,或者移动位数可以是可变的。其中:
[0400]

对于移动位数是固定的情况:可以获取移动位数,可以基于移动位数,对目标编码信息进行移位处理,得到目标编码信息的编码移位商数和编码移位余数。在移动位数是固定的情况下,移动位数可以是编解码端默认设置的,或者移动位数可以是编码端设置的,并且移动位数被写入点云的编码参数集或编码码流中。
[0401]

对于移动位数是判定得到的情况:可以获取移动位数判定信息和移动位数阈值,根据移动位数判定信息和移动位数阈值之间的大小关系,确定移动位数,具体来说,当移动位数判定信息小于或等于移动位数阈值时,可以确定移动位数为第一移动位数(例如可以是2位),当移动位数判定信息大于移动位数阈值时,可以确定移动位数为第二移动位数(例如可以是1位);然后可以基于移动位数,对目标编码信息进行移位处理,得到目标编码信息的编码移位商数和编码移位余数。其中,移动位数判定信息可以是指数哥伦布编码方式所采用的阶数,例如,在属性编码过程中,移动位数判定信息可以是基于指数哥伦布编码方式编码反射率属性时所采用的阶数,或者可以是基于指数哥伦布编码方式编码颜色属性时所采用的阶数。在移动位数是判定得到的情况下,移动位数阈值可以是编解码端默认设置的,或者,移动位数阈值可以是编码端设置的,并且移动位数阈值被写入点云的编码参数集或编码码流中,判定得到的移动位数可以被写入点云的编码参数集或编码码流中。
[0402]

对于移动位数是可变的情况:可以获取初始移动位数,基于初始移动位数,对目标编码信息进行移位处理,得到目标编码信息的参考移位商数和参考移位余数,若参考移位商数小于移位商数阈值,则将参考移位商数确定为编码移位商数,将参考移位余数确定为编码移位余数,若参考移位商数大于或等于移位商数阈值,则更新初始移动位数(具体可以是增大初始移动位数),并基于更新后的移动位数,对目标编码信息进行移位处理,直至移位处理得到的参考移位商数小于移位商数阈值为止。在移动位数是可变的情况下,使得移位处理得到的参考移位商数小于移位商数阈值的移动位数可以被写入点云的编码参数集或点云的编码码流中。
[0403]
s803,对移位数据进行编码。
[0404]
上述第一编码模式-第四编码模式中,在对目标编码信息(或更新后的目标编码信息)进行移位处理得到移位数据后,可以对移位数据进行编码,移位数据可以包括目标编码信息的编码移位商数和编码移位余数,对移位数据进行编码,即对编码移位商数进行编码(此处是指对编码移位商数进行间接编码处理),以及对编码移位余数进行编码。
[0405]
对编码移位商数进行编码处理,即对编码移位商数进行间接编码处理,可以包括
以下两种方式中的任一种:第一种方式,可以基于指数哥伦布编码方式对编码移位商数进行编码,此处指数哥伦布编码方式所采用的阶数为k1阶,k1为非负整数;第二种方式,可以基于比特位数编码方式对编码移位商数进行编码。
[0406]
对编码移位商数进行编码的第二种方式(即比特位数编码方式)中,可以计算编码移位商数的占用比特位数,对占用比特位数进行编码,然后,可以对编码移位商数所占用的每一个比特位的数值进行编码。
[0407]
其中,占用比特位数可以是采用以下任一种方式进行编码的:

比特位数编码方式,具体可以是指可以基于比特位数编码方式对占用比特位数进行编码,即可以对占用比特位数所占用的每一个比特位的数值进行逐位编码。

指数哥伦布编码方式,可以基于指数哥伦布编码方式对占用比特位数进行编码,此处指数哥伦布编码方式所采用的阶数为k3阶,k3为非负整数。

移位编码方式,可以基于移位编码方式对占用比特位数进行编码。具体来说,可以对占用比特位数进行移位处理,得到占用比特位数的占用移位商数和占用移位余数,然后可以对占用移位商数进行编码,以及对占用移位余数进行编码。对于移位编码方式而言:
[0408]
占用移位商数和占用移位余数可以是采用比特位数编码方式或指数哥伦布编码方式进行编码的。具体来说,对于占用移位商数:可以基于比特位数编码方式对占用移位商数进行编码,即可以对占用移位商数所占用的每一个比特位的数值进行逐位编码;或者,可以基于指数哥伦布编码方式对所述占用移位商数进行编码,此处指数哥伦布编码方式所采用的阶数为k4阶,k4为非负整数。对于占用移位余数:可以基于比特位数编码方式对占用移位余数进行编码,即可以对占用移位余数所占用的每一个比特位的数值进行逐位编码;或者,可以基于指数哥伦布编码方式对所述占用移位余数进行编码,此处指数哥伦布编码方式所采用的阶数为k5阶,k5为非负整数。
[0409]
对占用比特位数进行移位处理,得到占用比特位数的占用移位商数和占用移位余数的过程可以是基于移动位数(此处的移动位数可以是指第二移动位数)进行的,即可以基于移动位数对占用比特位数进行移位处理,得到占用比特位数的占用移位商数和占用移位余数。此处第二移动位数的确定过程与上述第一移动位数的确定过程类似,在此不再赘述。
[0410]
对编码移位余数进行编码处理,可以包括以下两种方式中的任一种:第一种方式,可以基于指数哥伦布编码方式对所述编码移位余数进行编码,此处指数哥伦布编码方式所采用的阶数为k2阶,k2为非负整数;第二种方式,可以基于比特位数编码方式对编码移位余数进行编码,即可以对编码移位余数所占用的每一个比特位的数值进行逐位编码。
[0411]
需要说明的是,若在目标编码信息的编码过程中涉及到基于指数哥伦布编码方式的编码过程,因此,需要确认指数哥伦布编码方式所采用的阶数。指数哥伦布编码方式所采用的阶数可以是通过以下任一种方式确定的:编解码端可以默认设置指数哥伦布编码方式所采用的阶数,或者,可以根据目标编码信息的数据特性,确定指数哥伦布编码方式所采用的阶数,并将指数哥伦布编码方式所采用的阶数写入点云的编码码流或编码参数集中。
[0412]
对于根据目标编码信息的数据特性,确定指数哥伦布编码方式所采用的阶数的方式而言,具体可以包括以下任一种:
[0413]
(1)根据点云的动态范围信息查询指数哥伦布编码方式所采用的阶数:
[0414]
目标编码信息的数据特性可以包括目标编码信息所属点云的动态范围信息,目标
编码信息所属的点云可以是指整个点云、点云片、当前宏块或当前预测树等;动态范围信息可以是根据点云的精度信息确定的,精度信息是指点云中的信息能够精确的比特位数,动态范围参数可以是对精度信息进行指数运算得到的,例如,点云中信息的精度信息为10bit(比特),则动态范围参数可以是2^10;或者,动态范围信息可以是点云中最大编码信息与最小编码信息的差值,例如,动态范围信息可以是点云中最大残差值与最小残差值的差值。
[0415]
在获取到目标编码信息所属点云的动态范围信息后,可以根据动态范围信息,计算查询索引值,然后便可以根据查询索引值,在查询表中查询指数哥伦布编码方式所采用的阶数;查询表可以是根据经验编写的,查询表的长度与点云的精度信息相关,查询表中包括多个索引值以及每个索引值对应的阶数,因此,基于查询索引值便可以从查询表中快速地查询到与查询索引值所对应的阶数,作为指数哥伦布编码方式所采用的阶数。
[0416]
其中,查询索引值的计算过程还可以与点云的量化步长相关,可以根据动态范围信息和量化步长,计算动态范围参数,然后可以根据动态范围参数,计算查询索引值,具体可以参见如下公式:
[0417]
index=log2b
’‑1[0418]
其中,index表示查询索引值,b’表示动态范围参数。
[0419]
(2)自适应确定指数哥伦布编码方式所采用的阶数:
[0420]
自适应确定指数哥伦布编码方式所采用的阶数具体可以是指:确定初始阶数,根据目标编码信息的数据特性对初始阶数或当前阶数进行调整,得到指数哥伦布编码方式所采用的阶数。目标编码信息的数据特性可以包括目标编码信息所属的待编码点的前序已编码点的编码信息,前序已编码点可以是指编码顺序位于待编码点之前的已编码点,前序已编码点的编码信息可以是指前序已编码点的相关被编码信息,例如,前序已编码点的几何残差信息、属性残差信息等等。
[0421]

可以获取初始阶数golombnum,并根据初始阶数确定阶数调整阈值。其中,阶数调整阈值可以包括阶数调整上限golombnumup和阶数调整下限golombnumlow,阶数调整上限golombnumup和阶数调整下限golombnumlow的第一种确定方式可参见如下公式:
[0422]
golombnumlow=2^golombnum,golombnumup=2^(golombnum 1)
[0423]
阶数调整上限golombnumup和阶数调整下限golombnumlow的第二种确定方式可参见如下公式:
[0424]
golombnumlow=2^(golombnum-1),golombnumup=2^golombnum
[0425]

可以根据前序已编码点的编码信息与阶数调整阈值之间的大小关系,对初始阶数或当前阶数进行调整,得到指数哥伦布编码方式所采用的阶数。具体来说,可以确定前序已编码点的编码信息的统计特征值:前序已编码点可以是与待编码点相邻的一个前序已编码点,统计特征值a’可以是该相邻前序已编码点的编码信息本身;或者,每间隔l个点自适应调整一次指数哥伦布编码方式所采用的阶数,统计特征值a’可以是l个前序已编码点的编码信息的均值;或者,每间隔l个点自适应调整一次指数哥伦布编码方式所采用的阶数,统计特征值a’可以是l个前序已编码点的编码信息中非零编码信息的均值;本技术实施例对此不进行限定。
[0426]
然后,可以根据统计特征值与阶数调整阈值之间的大小关系,对初始阶数或当前阶数进行调整,得到指数哥伦布编码方式所采用的阶数,当前阶数可以是指上一次确定的
指数哥伦布编码方式所采用的阶数。其中,根据统计特征值与阶数调整阈值之间的大小关系,对初始阶数进行调整,得到指数哥伦布编码方式所采用的阶数,可以包括:若统计特征值大于阶数调整上限,则指数哥伦布编码方式所采用的阶数等于初始阶数减去更新数值(例如可以是1),若统计特征值小于阶数调整下限,则指数哥伦布编码方式所采用的阶数等于初始阶数加上更新数值(例如可以是1)。具体可参见下述公式:
[0427]
当a’《golombnumlow,k=golombnum 1
[0428]
当a’》golombnumup,k=golombnum-1
[0429]
其中,a’表示统计特征值,golombnumlow表示阶数调整下限,golombnumup表示阶数调整上限,golombnum表示初始阶数,k表示指数哥伦布编码方式所采用的阶数。
[0430]
根据统计特征值与阶数调整阈值之间的大小关系,对当前阶数进行调整,得到指数哥伦布编码方式所采用的阶数,可以包括:若统计特征值大于阶数调整上限,则指数哥伦布编码方式所采用的阶数等于初始阶数减去更新数值(例如可以是1),若统计特征值小于阶数调整下限,则指数哥伦布编码方式所采用的阶数等于初始阶数加上更新数值(例如可以是1)。具体可参见下述公式:
[0431]
当a1《golombnumlow,k=k’ 1
[0432]
当a1》golombnumup,k=k
’‑1[0433]
其中,a’表示统计特征值,golombnumlow表示阶数调整下限,golombnumup表示阶数调整上限,k’表示当前阶数,k表示指数哥伦布编码方式所采用的阶数
[0434]

在确定指数哥伦布编码方式所采用的阶数之后,还可以获取阶数重置阈值,若基于阶数重置阈值确定指数哥伦布编码方式所采用的阶数满足阶数重置条件,则需要重置指数哥伦布编码方式所采用的阶数,若基于阶数重置阈值确定指数哥伦布编码方式所采用的阶数不满足阶数重置条件,则可以保持指数哥伦布编码方式所采用的阶数不变。其中,阶数重置阈值可以包括第一阶数重置阈值t1或第二阶数重置阈值t2,指数哥伦布编码方式所采用的阶数满足阶数重置条件可以是指:指数哥伦布编码方式所采用的阶数小于(小于或等于)第一阶数重置阈值,此时,可以将指数哥伦布编码方式所采用的阶数重置为第一参考阶数t3;或者,指数哥伦布编码方式所采用的阶数大于(大于或等于)第二阶数重置阈值,此时,可以将指数哥伦布编码方式所采用的阶数重置为第二参考阶数t4,第一参考阶数t3和第二参考阶数t4均可以设置为对应的初始阶数。具体可参见下述公式:
[0435]
若k《=t1(k《t1),则k=t3(t1和t3可以相同也可以不同);
[0436]
若k》=t2(k》t2),则k=t4(t2和t4可以相同也可以不同);
[0437]
指数哥伦布编码方式所采用的阶数不满足阶数重置条件可以是指:指数哥伦布编码方式所采用的阶数大于或等于(大于)第一阶数重置阈值,此时,可以保持指数哥伦布编码方式所采用的阶数不变;或者,指数哥伦布编码方式所采用的阶数小于或等于(大于)第二阶数重置阈值,此时,可以保持指数哥伦布编码方式所采用的阶数不变。
[0438]
另外,若目标编码信息的编码过程中涉及到多个基于指数哥伦布编码方式的编码过程,则各个指数哥伦布编码方式所采用的阶数是相互独立的,或是相互关联的。其中,相互关联可以包括以下任一种情况:各个指数哥伦布编码方式所采用的阶数相同。或者,各个指数哥伦布编码方式所采用的阶数通过偏移参数(offset)进行关联;例如,上述提及的指数哥伦布编码方式所采用的5个阶数k1、k2、k3、k4、以及k5,可以通过偏移参数(offset)进
行关联,k2=k1-offset,k3=k1-offset,k4=k1-offset,k5=k1-offset,又如,k2=k1-offset,k3=k2-offset,k4=k3-offset,k5=k4-offset。
[0439]
本技术实施例中,获取到点云的目标编码信息后,可以对目标编码信息进行移位处理,得到目标编码信息的移位数据,然后可以对移位数据进行编码;本技术实施例通过对目标编码信息进行移位处理,可以减少点云的编码阶段所编码的数据量,从而可以提升点云的编码效率。
[0440]
上述详细阐述了本技术实施例的方法,为了便于更好地实施本技术实施例的上述方案,相应地,下面提供了本技术实施例的装置。
[0441]
请参见图9,图9是本技术实施例提供的一种点云处理装置的结构示意图,该点云处理装置可以设置于本技术实施例提供的计算机设备中,计算机设备可以是上述方法实施例中提及的解码设备。图9所示的点云处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),该点云处理装置可以用于执行图7所示的方法实施例中的部分或全部步骤。请参见图9,该点云处理装置可以包括如下单元:
[0442]
获取单元901,用于获取点云的编码数据;
[0443]
处理单元902,用于解析编码数据,得到移位数据,移位数据是在点云的编码过程中对点云的目标编码信息进行移位处理得到的;
[0444]
处理单元902,还用于对移位数据进行移位重建,得到目标编码信息的重建编码信息。
[0445]
在一种实现方式中,处理单元902,用于解析编码数据,得到移位数据时,具体用于执行如下步骤:
[0446]
获取编码模式;
[0447]
按照编码模式解析编码数据,得到移位数据。
[0448]
在一种实现方式中,编码模式包括第一编码模式;移位数据包括目标编码信息的编码移位商数和编码移位余数;编码数据包括编码信息标志字段;处理单元902,用于按照编码模式解析编码数据,得到移位数据时,具体用于执行如下步骤:
[0449]
解析编码信息标志字段,对编码信息标志字段的解析值进行关于移位解析条件的判别;
[0450]
若编码信息标志字段的解析值满足移位解析条件,则编码数据还包括移位商数标志字段,解析移位商数标志字段,对移位商数标志字段的解析值进行关于间接解析条件的判别;
[0451]
若移位商数标志字段的解析值满足间接解析条件,则编码数据还包括编码移位商数的编码结果和编码移位余数的编码结果,解析编码移位商数的编码结果,得到编码移位商数;
[0452]
解析编码移位余数的编码结果,得到编码移位余数。
[0453]
在一种实现方式中,编码模式为第二编码模式;移位数据包括目标编码信息的编码移位商数和编码移位余数;编码数据包括编码信息标志字段;处理单元902,用于按照编码模式解析编码数据,得到移位数据时,具体用于执行如下步骤:
[0454]
解析编码信息标志字段,对编码信息标志字段的解析值进行关于移位解析条件的判别;
[0455]
若编码信息标志字段的解析值满足移位解析条件,则编码数据还包括编码移位商数的编码结果和编码移位余数的编码结果,解析编码移位商数的编码结果,得到编码移位商数;
[0456]
解析编码移位余数的编码结果,得到编码移位余数。
[0457]
在一种实现方式中,编码模式为第三编码模式;移位数据包括编码移位商数和编码移位余数;编码数据包括移位商数标志字段;处理单元902,用于按照编码模式解析编码数据,得到移位数据时,具体用于执行如下步骤:
[0458]
解析移位商数标志字段,对移位商数标志字段的解析值进行关于间接解析条件的判别;
[0459]
若移位商数标志字段的解析值满足间接解析条件,则编码数据还包括编码移位商数的编码结果和编码移位余数的编码结果,解析编码移位商数的编码结果,得到编码移位商数;
[0460]
解析编码移位余数的编码结果,得到编码移位余数。
[0461]
在一种实现方式中,编码模式为第四编码模式;移位数据包括编码移位商数和编码移位余数;编码数据包括所述编码移位商数的编码结果和编码移位余数的编码结果;处理单元902,用于按照编码模式解析编码数据,得到移位数据时,具体用于执行如下步骤:
[0462]
解析编码移位商数的编码结果,得到编码移位商数;
[0463]
解析编码移位余数的编码结果,得到编码移位余数。
[0464]
在一种实现方式中,编码信息标志字段的数量为m1个,每个编码信息标志字段分别对应不同的特定数值,m1为正整数;处理单元902,用于解析编码信息标志字段,对编码信息标志字段的解析值进行关于移位解析条件的判别时,具体用于执行如下步骤:
[0465]
解析m1个编码信息标志字段中的第i个编码信息标志字段,i为小于m1的正整数;
[0466]
若第i个编码信息标志字段的解析值为第一数值,则解析第i 1个编码信息标志字段;若第i个编码信息标志字段的解析值为第二数值,则确定编码信息标志字段不满足移位解析条件,并确定目标编码信息的重建编码信息为第i个特定数值;
[0467]
当解析至第m1个编码信息标志字段时,若第m1个编码信息标志字段的解析值为第一数值,则确定编码信息标志字段的解析值满足移位解析条件;若第m1个编码信息标志字段的解析值为第二数值,则确定编码信息标志字段不满足移位解析条件,并确定目标编码信息的重建编码信息为第m1个特定数值。
[0468]
在一种实现方式中,处理单元902,用于对移位数据进行移位重建,得到目标编码信息的重建编码信息时,具体用于执行如下步骤:
[0469]
对移位数据进行移位重建,得到目标编码信息的初始重建信息;
[0470]
采用与第m1个特定数值关联的参考数值更新初始重建信息,得到目标编码信息的重建编码信息。
[0471]
在一种实现方式中,移位商数标志字段的数量为m2个,每个移位商数标志字段分别对应不同的特定数值,m2为正整数;处理单元902,用于解析移位商数标志字段,对移位商数标志字段的解析值进行关于间接解析条件的判别时,具体用于执行如下步骤:
[0472]
解析m2个编码信息标志字段中的第j个移位商数标志字段,j为小于m2的正整数;
[0473]
若第j个移位商数标志字段的解析值为第一数值,则解析第j 1个编码信息标志字
段;若第j个移位商数标志字段的解析值为第二数值,则确定移位商数标志字段不满足间接解析条件,并确定编码移位商数为第j个特定数值;
[0474]
当解析至第m2个移位商数标志字段时,若第m2个移位商数标志字段的解析值为第一数值,则确定移位商数标志字段的解析值满足间接解析条件;若第m2个移位商数标志字段的解析值为第二数值,则确定移位商数标志字段不满足间接解析条件,并确定编码移位商数为第m2 1个特定数值。
[0475]
在一种实现方式中,处理单元902,用于解析编码移位商数的编码结果,得到所述编码移位商数之后,还用于执行如下步骤:
[0476]
采用与第m2个特定数值相关的目标数值对编码移位商数进行更新。
[0477]
在一种实现方式中,处理单元902,用于解析编码移位商数的编码结果,得到所述编码移位商数时,具体用于执行如下步骤:
[0478]
基于指数哥伦布编码方式解析编码移位商数的编码结果,得到编码移位商数;指数哥伦布编码方式所采用的阶数为k1阶,k1为非负整数;或者,基于比特位数编码方式解析编码移位商数的编码结果,得到编码移位商数;
[0479]
处理单元902,用于解析编码移位余数的编码结果,得到编码移位余数时,具体用于执行如下步骤:
[0480]
基于比特位数编码方式解析编码移位余数的编码结果,得到编码移位余数;或者,基于指数哥伦布编码方式解析编码移位余数的编码结果,得到编码移位余数;指数哥伦布编码方式所采用的阶数为k2阶,k2为正整数。
[0481]
在一种实现方式中,编码移位商数的编码结果包括:编码移位商数的占用比特位数的编码结果,以及编码移位商数所占用的每一个比特位的编码;处理单元902,用于基于比特位数编码方式解析编码移位商数的编码结果,得到编码移位商数时,具体用于执行如下步骤:
[0482]
解析编码移位商数的占用比特位数的编码结果,得到编码移位商数的占用比特位数;
[0483]
解析编码移位商数所占用的每一个比特位的编码,得到编码移位商数所占用的每一个比特位的数值;
[0484]
根据编码移位商数所占用的每一个比特位的数值,重建编码移位商数。
[0485]
在一种实现方式中,处理单元902,用于解析编码移位商数的占用比特位数的编码结果,得到编码移位商数的占用比特位数时,具体用于执行如下步骤:
[0486]
基于比特位数编码方式解析占用比特位数的编码结果,得到编码移位商数;或者,基于指数哥伦布编码方式解析占用比特位数的编码结果,得到编码移位商数的占用比特位数;指数哥伦布编码方式所采用的阶数为k3阶,k3为非负整数;或者,基于移位编码方式解析占用比特位数的编码结果,得到编码移位商数的占用比特位数。
[0487]
在一种实现方式中,占用比特位数的编码结果包括占用比特位数的占用移位商数的编码结果和占用移位余数的编码结果,占用移位商数和占用移位余数是对占用比特位数进行移位处理得到的;处理单元902,用于基于移位编码方式解析占用比特位数的编码结果,得到编码移位商数的占用比特位数时,具体用于执行如下步骤:
[0488]
解析占用移位商数的编码结果,得到占用移位商数;
[0489]
解析占用移位余数的编码结果,得到占用移位余数;
[0490]
对占用移位商数和占用移位余数进行移位重建处理,得到编码移位商数的占用比特位数。
[0491]
在一种实现方式中,处理单元902,用于解析占用移位商数的编码结果,得到占用移位商数时,具体用于执行如下步骤:
[0492]
基于比特位数编码方式解析占用移位商数的编码结果,得到占用移位商数;或者,基于指数哥伦布编码方式解析占用移位商数的编码结果,得到占用移位商数,指数哥伦布编码方式所采用的阶数为k4阶,k4为非负整数;
[0493]
处理单元902,用于解析占用移位余数的编码结果,得到占用移位余数时,具体用于执行如下步骤:
[0494]
基于比特位数编码方式解析占用移位余数的编码结果,得到占用移位余数;或者,基于指数哥伦布编码方式解析占用移位余数的编码结果,得到占用移位余数,指数哥伦布编码方式所采用的阶数为k5阶,k5为非负整数。
[0495]
在一种实现方式中,移位数据包括编码移位商数和编码移位余数;处理单元902,用于对移位数据进行移位重建处理,得到目标编码信息的重建编码信息时,具体用于执行如下步骤:
[0496]
确定移动位数;
[0497]
基于移动位数对编码移位商数进行移位处理,得到移位后的编码移位商数;
[0498]
将移位后的编码移位商数与编码移位余数相加,得到目标编码信息的重建编码信息。
[0499]
在一种实现方式中,处理单元902,用于确定移动位数时,具体用于执行如下步骤:
[0500]
获取移动位数判定信息和移动位数阈值;
[0501]
根据移动位数判定信息和移动位数阈值之间的大小关系,确定移动位数。
[0502]
在一种实现方式中,处理单元902,还用于执行如下步骤:
[0503]
若在编码数据的解析过程中涉及基于指数哥伦布编码方式的解析过程,则确定指数哥伦布编码方式所采用的阶数。
[0504]
在一种实现方式中,处理单元902,用于确定指数哥伦布编码方式用的阶数时,具体用于执行以下任一步骤:
[0505]
编解码端默认设置指数哥伦布编码方式所采用的阶数;
[0506]
从点云的编码参数集或编码码流中解析指数哥伦布编码方式所采用的阶数;
[0507]
根据目标编码信息的数据特性,确定指数哥伦布编码方式所采用的阶数。
[0508]
在一种实现方式中,处理单元902,用于根据目标编码信息的数据特性,确定指数哥伦布编码方式所采用的阶数时,具体用于执行如下步骤:
[0509]
确定初始阶数;
[0510]
根据目标编码信息的数据特性,对初始阶数或当前阶数进行调整,确定指数哥伦布编码方式所采用的阶数。
[0511]
在一种实现方式中,若在编码数据的解析过程中涉及多个基于指数哥伦布编码方式的解析过程,则各个指数哥伦布编码方式所采用的阶数是相互关联或相互独立的;各个指数哥伦布编码方式所采用的阶数相互关联,包括:
[0512]
各个指数哥伦布编码方式所采用的阶数相同;或者,各个指数哥伦布编码方式所采用的阶数通过偏移参数进行关联。
[0513]
根据本技术的另一个实施例,图9所示的点云处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本技术的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本技术的其它实施例中,点云处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
[0514]
根据本技术的另一个实施例,可以通过在包括中央处理单元902(cpu)、随机存取存储介质(ram)、只读存储介质(rom)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图7所示的部分或全部方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图9中所示的点云处理装置,以及来实现本技术实施例的点云处理方法。计算机程序可以记载于例如计算机可读存储介质上,并通过计算机可读存储介质装载于上述计算设备中,并在其中运行。
[0515]
本技术实施例中,获取到点云的编码数据后,可以解析编码数据,得到移位数据,移位数据是在点云的编码过程中对点云的目标编码信息进行移位处理得到的,对移位数据进行移位重建,便可以得到目标编码信息的重建编码信息。本技术实施例通过对目标编码信息进行移位处理,可以减少点云的解码阶段所解码的数据量,从而可以提升点云的解码效率。
[0516]
请参见图9,图9是本技术实施例提供的一种点云处理装置的结构示意图,该点云处理装置可以设置于本技术实施例提供的计算机设备中,计算机设备可以是上述方法实施例中提及的解码设备。图9所示的点云处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),该点云处理装置可以用于执行图8所示的方法实施例中的部分或全部步骤。请参见图9,该点云处理装置可以包括如下单元:
[0517]
获取单元901,用于获取点云的目标编码信息;
[0518]
获取单元901,还用于获取编码模式;
[0519]
处理单元902,用于按照所述编码模式,对所述目标编码信息进行移位处理,得到所述目标编码信息的移位数据;
[0520]
处理单元902,还用于对所述移位数据进行编码。
[0521]
在一种实现方式中,编码模式包括第一编码模式;移位数据包括目标编码信息的编码移位商数和编码移位余数;处理单元902,用于按照编码模式,对目标编码信息进行移位处理,得到目标编码信息的移位数据时,具体用于执行如下步骤:
[0522]
对目标编码信息进行关于移位编码条件的判别;
[0523]
若目标编码信息满足移位编码条件,则对目标编码信息进行移位处理,得到目标编码信息的编码移位商数和编码移位余数;
[0524]
对编码移位商数进行关于间接编码条件的判别;
[0525]
若编码移位商数满足间接编码条件,则确定需要对编码移位商数进行间接编码处理。
[0526]
在一种实现方式中,编码模式包括第二编码模式;移位数据包括目标编码信息的编码移位商数和编码移位余数;处理单元902,用于按照编码模式,对目标编码信息进行移位处理,得到目标编码信息的移位数据时,具体用于执行如下步骤:
[0527]
对目标编码信息进行关于移位编码条件的判别;
[0528]
若目标编码信息满足移位编码条件,则对目标编码信息进行移位处理,得到目标编码信息的编码移位商数和编码移位余数。
[0529]
在一种实现方式中,编码模式包括第三编码模式;移位数据包括目标编码信息的编码移位商数和编码移位余数;处理单元902,用于按照编码模式,对目标编码信息进行移位处理,得到目标编码信息的移位数据时,具体用于执行如下步骤:
[0530]
对目标编码信息进行移位处理,得到目标编码信息的编码移位商数和编码移位余数;
[0531]
对编码移位商数进行关于间接编码条件的判别;
[0532]
若编码移位商数满足间接编码条件,则确定需要对编码移位商数进行间接编码处理。
[0533]
在一种实现方式中,编码模式包括第四编码模式;移位数据包括所述目标编码信息的编码移位商数和编码移位余数;处理单元902,用于按照编码模式,对目标编码信息进行移位处理,得到目标编码信息的移位数据时,具体用于执行如下步骤:
[0534]
对目标编码信息进行移位处理,得到目标编码信息的编码移位商数和编码移位余数。
[0535]
在一种实现方式中,在对目标编码信息进行关于移位编码条件的判别时,需要将目标编码信息与m1个特定数值进行匹配检查,每个特定数值分别对应不同的编码信息标志字段,m1为正整数;处理单元902,用于对目标编码信息进行关于移位编码条件的判别时,具体用于执行如下步骤:
[0536]
将目标编码信息与m1个特定数值中的第i个特定数值进行匹配检查,i为小于m1的正整数;
[0537]
若目标编码信息与第i个特定数值不匹配,则将第i个编码信息标志字段设置为第一数值并编码,以及将目标编码信息与m1个特定数值中的第i 1个特定数值进行匹配检查;若目标编码信息与第i个特定数值匹配,则确定目标编码信息不满足移位编码条件,将第i个编码信息标志字段设置为第二数值并编码;
[0538]
当匹配检查至第m1特定数值时,若目标编码信息与第m1个特定数值不匹配,则将第m1个编码信息标志字段设置为第一数值并编码,以及确定目标编码信息满足移位编码条件;若目标编码信息与第m1个特定数值匹配,则确定目标编码信息不满足移位编码条件,将第m1个编码信息标志字段设置为第二数值并编码。
[0539]
在一种实现方式中,在对编码移位商数进行关于间接编码条件的判别时,需要将编码移位商数与m2个特定数值进行匹配检查,每个特定数值分别对应不同的移位商数标志字段,m2为正整数;处理单元902,用于对编码移位商数进行关于间接编码条件的判别时,具体用于执行如下步骤:
[0540]
将编码移位商数与m2个特定数值中的第j个特定数值进行匹配检查,j为小于m2的正整数;
[0541]
若编码移位商数与第j个特定数值不匹配,则将第j个移位商数标志字段设置为第一数值并编码,以及将编码移位商数与m2个特定数值中的第j 1个特定数值进行匹配检查;若编码移位商数与第j个特定数值匹配,则确定编码移位商数不满足间接编码条件,将第j个移位商数标志字段设置为第二数值并编码;
[0542]
当匹配检查至第m2个特定数值时,若编码移位商数与第m2个特定数值不匹配,则将第m2个移位商数标志字段设置为第一数值并编码,以及确定编码移位商数满足间接编码条件;若编码移位商数与第m2个特定数值匹配,则确定编码移位商数不满足间接编码条件,将第m2个移位商数标志字段设置为第二数值并编码。
[0543]
在一种实现方式中,处理单元902,用于对目标编码信息进行移位处理,得到目标编码信息的编码移位商数和编码移位余数时,具体用于执行如下步骤:
[0544]
获取移动位数判定信息和移动位数阈值;
[0545]
根据移动位数判定信息和移动位数阈值之间的大小关系,确定移动位数;
[0546]
基于移动位数,对目标编码信息进行移位处理,得到目标编码信息的编码移位商数和编码移位余数。
[0547]
在一种实现方式中,处理单元902,用于对目标编码信息进行移位处理,得到目标编码信息的编码移位商数和编码移位余数时,具体用于执行如下步骤:
[0548]
获取初始移动位数;
[0549]
基于初始移动位数,对目标编码信息进行移位处理,得到目标编码信息的参考移位商数和参考移位余数;
[0550]
若参考移位商数小于移位商数阈值,则将参考移位商数确定为所述编码移位商数,将参考移位余数确定为编码移位余数;
[0551]
若参考移位商数大于或等于移位商数阈值,则更新初始移动位数,并基于更新后的移动位数,对目标编码信息进行移位处理,直至移位处理得到的参考移位商数小于移位商数阈值为止。
[0552]
根据本技术的另一个实施例,图9所示的点云处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本技术的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本技术的其它实施例中,点云处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
[0553]
根据本技术的另一个实施例,可以通过在包括中央处理单元902(cpu)、随机存取存储介质(ram)、只读存储介质(rom)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图8所示的部分或全部方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图9中所示的点云处理装置,以及来实现本技术实施例的点云处理方法。计算机程序可以记载于例如计算机可读存储介质上,并通过计算机可读存储介质装载于上述计算设备中,并在其中运行。
[0554]
本技术实施例中,获取到点云的目标编码信息后,可以对目标编码信息进行移位处理,得到目标编码信息的移位数据,然后可以对移位数据进行编码;本技术实施例通过对
目标编码信息进行移位处理,可以减少点云的编码阶段所编码的数据量,从而可以提升点云的编码效率。
[0555]
基于上述方法以及装置实施例,本技术实施例提供了一种计算机设备,该计算机设备可以是前述所提及的解码设备。请参见图10,图10是本技术实施例提供的一种计算机设备的结构示意图。图10所示的计算机设备至少包括处理器1001、输入接口1002、输出接口1003以及计算机可读存储介质1004。其中,处理器1001、输入接口1002、输出接口1003以及计算机可读存储介质1004可通过总线或其他方式连接。
[0556]
计算机可读存储介质1004可以存储在计算机设备的存储器中,计算机可读存储介质1004用于存储计算机程序,计算机程序包括计算机指令,处理器1001用于执行计算机可读存储介质1004存储的程序指令。处理器1001(或称cpu(central processing unit,中央处理器))是计算机设备的计算核心以及控制核心,其适于实现一条或多条计算机指令,具体适于加载并执行一条或多条计算机指令从而实现相应方法流程或相应功能。
[0557]
本技术实施例还提供了一种计算机可读存储介质(memory),计算机可读存储介质是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了计算机设备的操作系统。并且,在该存储空间中还存放了适于被处理器加载并执行的一条或多条的计算机指令,这些计算机指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是高速ram存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的计算机可读存储介质。
[0558]
在一些实施例中,可由处理器1001加载并执行计算机可读存储介质1004中存放的一条或多条计算机指令,以实现上述有关图7所示的点云处理方法的相应步骤。具体实现中,计算机可读存储介质1004中的计算机指令由处理器1001加载并执行如下步骤:
[0559]
获取点云的编码数据;
[0560]
解析编码数据,得到移位数据,移位数据是在点云的编码过程中对点云的目标编码信息进行移位处理得到的;
[0561]
对移位数据进行移位重建,得到目标编码信息的重建编码信息。
[0562]
在一种实现方式中,计算机可读存储介质1004中的计算机指令由处理器1001加载并执行解析编码数据,得到移位数据时,具体用于执行如下步骤:
[0563]
获取编码模式;
[0564]
按照编码模式解析编码数据,得到移位数据。
[0565]
在一种实现方式中,编码模式包括第一编码模式;移位数据包括目标编码信息的编码移位商数和编码移位余数;编码数据包括编码信息标志字段;计算机可读存储介质1004中的计算机指令由处理器1001加载并执行按照编码模式解析编码数据,得到移位数据时,具体用于执行如下步骤:
[0566]
解析编码信息标志字段,对编码信息标志字段的解析值进行关于移位解析条件的判别;
[0567]
若编码信息标志字段的解析值满足移位解析条件,则编码数据还包括移位商数标
志字段,解析移位商数标志字段,对移位商数标志字段的解析值进行关于间接解析条件的判别;
[0568]
若移位商数标志字段的解析值满足间接解析条件,则编码数据还包括编码移位商数的编码结果和编码移位余数的编码结果,解析编码移位商数的编码结果,得到编码移位商数;
[0569]
解析编码移位余数的编码结果,得到编码移位余数。
[0570]
在一种实现方式中,编码模式为第二编码模式;移位数据包括目标编码信息的编码移位商数和编码移位余数;编码数据包括编码信息标志字段;计算机可读存储介质1004中的计算机指令由处理器1001加载并执行按照编码模式解析编码数据,得到移位数据时,具体用于执行如下步骤:
[0571]
解析编码信息标志字段,对编码信息标志字段的解析值进行关于移位解析条件的判别;
[0572]
若编码信息标志字段的解析值满足移位解析条件,则编码数据还包括编码移位商数的编码结果和编码移位余数的编码结果,解析编码移位商数的编码结果,得到编码移位商数;
[0573]
解析编码移位余数的编码结果,得到编码移位余数。
[0574]
在一种实现方式中,编码模式为第三编码模式;移位数据包括编码移位商数和编码移位余数;编码数据包括移位商数标志字段;计算机可读存储介质1004中的计算机指令由处理器1001加载并执行按照编码模式解析编码数据,得到移位数据时,具体用于执行如下步骤:
[0575]
解析移位商数标志字段,对移位商数标志字段的解析值进行关于间接解析条件的判别;
[0576]
若移位商数标志字段的解析值满足间接解析条件,则编码数据还包括编码移位商数的编码结果和编码移位余数的编码结果,解析编码移位商数的编码结果,得到编码移位商数;
[0577]
解析编码移位余数的编码结果,得到编码移位余数。
[0578]
在一种实现方式中,编码模式为第四编码模式;移位数据包括编码移位商数和编码移位余数;编码数据包括所述编码移位商数的编码结果和编码移位余数的编码结果;计算机可读存储介质1004中的计算机指令由处理器1001加载并执行按照编码模式解析编码数据,得到移位数据时,具体用于执行如下步骤:
[0579]
解析编码移位商数的编码结果,得到编码移位商数;
[0580]
解析编码移位余数的编码结果,得到编码移位余数。
[0581]
在一种实现方式中,编码信息标志字段的数量为m1个,每个编码信息标志字段分别对应不同的特定数值,m1为正整数;计算机可读存储介质1004中的计算机指令由处理器1001加载并执行解析编码信息标志字段,对编码信息标志字段的解析值进行关于移位解析条件的判别时,具体用于执行如下步骤:
[0582]
解析m1个编码信息标志字段中的第i个编码信息标志字段,i为小于m1的正整数;
[0583]
若第i个编码信息标志字段的解析值为第一数值,则解析第i 1个编码信息标志字段;若第i个编码信息标志字段的解析值为第二数值,则确定编码信息标志字段不满足移位
解析条件,并确定目标编码信息的重建编码信息为第i个特定数值;
[0584]
当解析至第m1个编码信息标志字段时,若第m1个编码信息标志字段的解析值为第一数值,则确定编码信息标志字段的解析值满足移位解析条件;若第m1个编码信息标志字段的解析值为第二数值,则确定编码信息标志字段不满足移位解析条件,并确定目标编码信息的重建编码信息为第m1个特定数值。
[0585]
在一种实现方式中,计算机可读存储介质1004中的计算机指令由处理器1001加载并执行对移位数据进行移位重建,得到目标编码信息的重建编码信息时,具体用于执行如下步骤:
[0586]
对移位数据进行移位重建,得到目标编码信息的初始重建信息;
[0587]
采用与第m1个特定数值关联的参考数值更新初始重建信息,得到目标编码信息的重建编码信息。
[0588]
在一种实现方式中,移位商数标志字段的数量为m2个,每个移位商数标志字段分别对应不同的特定数值,m2为正整数;计算机可读存储介质1004中的计算机指令由处理器1001加载并执行解析移位商数标志字段,对移位商数标志字段的解析值进行关于间接解析条件的判别时,具体用于执行如下步骤:
[0589]
解析m2个编码信息标志字段中的第j个移位商数标志字段,j为小于m2的正整数;
[0590]
若第j个移位商数标志字段的解析值为第一数值,则解析第j 1个编码信息标志字段;若第j个移位商数标志字段的解析值为第二数值,则确定移位商数标志字段不满足间接解析条件,并确定编码移位商数为第j个特定数值;
[0591]
当解析至第m2个移位商数标志字段时,若第m2个移位商数标志字段的解析值为第一数值,则确定移位商数标志字段的解析值满足间接解析条件;若第m2个移位商数标志字段的解析值为第二数值,则确定移位商数标志字段不满足间接解析条件,并确定编码移位商数为第m2 1个特定数值。
[0592]
在一种实现方式中,处理单元,用于解析编码移位商数的编码结果,得到所述编码移位商数之后,还用于执行如下步骤:
[0593]
采用与第m2个特定数值相关的目标数值对编码移位商数进行更新。
[0594]
在一种实现方式中,计算机可读存储介质1004中的计算机指令由处理器1001加载并执行解析编码移位商数的编码结果,得到所述编码移位商数时,具体用于执行如下步骤:
[0595]
基于指数哥伦布编码方式解析编码移位商数的编码结果,得到编码移位商数;指数哥伦布编码方式所采用的阶数为k1阶,k1为非负整数;或者,基于比特位数编码方式解析编码移位商数的编码结果,得到编码移位商数;
[0596]
计算机可读存储介质1004中的计算机指令由处理器1001加载并执行解析编码移位余数的编码结果,得到编码移位余数时,具体用于执行如下步骤:
[0597]
基于比特位数编码方式解析编码移位余数的编码结果,得到编码移位余数;或者,基于指数哥伦布编码方式解析编码移位余数的编码结果,得到编码移位余数;指数哥伦布编码方式所采用的阶数为k2阶,k2为正整数。
[0598]
在一种实现方式中,编码移位商数的编码结果包括:编码移位商数的占用比特位数的编码结果,以及编码移位商数所占用的每一个比特位的编码;计算机可读存储介质1004中的计算机指令由处理器1001加载并执行基于比特位数编码方式解析编码移位商数
的编码结果,得到编码移位商数时,具体用于执行如下步骤:
[0599]
解析编码移位商数的占用比特位数的编码结果,得到编码移位商数的占用比特位数;
[0600]
解析编码移位商数所占用的每一个比特位的编码,得到编码移位商数所占用的每一个比特位的数值;
[0601]
根据编码移位商数所占用的每一个比特位的数值,重建编码移位商数。
[0602]
在一种实现方式中,计算机可读存储介质1004中的计算机指令由处理器1001加载并执行解析编码移位商数的占用比特位数的编码结果,得到编码移位商数的占用比特位数时,具体用于执行如下步骤:
[0603]
基于比特位数编码方式解析占用比特位数的编码结果,得到编码移位商数;或者,基于指数哥伦布编码方式解析占用比特位数的编码结果,得到编码移位商数的占用比特位数;指数哥伦布编码方式所采用的阶数为k3阶,k3为非负整数;或者,基于移位编码方式解析占用比特位数的编码结果,得到编码移位商数的占用比特位数。
[0604]
在一种实现方式中,占用比特位数的编码结果包括占用比特位数的占用移位商数的编码结果和占用移位余数的编码结果,占用移位商数和占用移位余数是对占用比特位数进行移位处理得到的;计算机可读存储介质1004中的计算机指令由处理器1001加载并执行基于移位编码方式解析占用比特位数的编码结果,得到编码移位商数的占用比特位数时,具体用于执行如下步骤:
[0605]
解析占用移位商数的编码结果,得到占用移位商数;
[0606]
解析占用移位余数的编码结果,得到占用移位余数;
[0607]
对占用移位商数和占用移位余数进行移位重建处理,得到编码移位商数的占用比特位数。
[0608]
在一种实现方式中,计算机可读存储介质1004中的计算机指令由处理器1001加载并执行解析占用移位商数的编码结果,得到占用移位商数时,具体用于执行如下步骤:
[0609]
基于比特位数编码方式解析占用移位商数的编码结果,得到占用移位商数;或者,基于指数哥伦布编码方式解析占用移位商数的编码结果,得到占用移位商数,指数哥伦布编码方式所采用的阶数为k4阶,k4为非负整数;
[0610]
计算机可读存储介质1004中的计算机指令由处理器1001加载并执行解析占用移位余数的编码结果,得到占用移位余数时,具体用于执行如下步骤:
[0611]
基于比特位数编码方式解析占用移位余数的编码结果,得到占用移位余数;或者,基于指数哥伦布编码方式解析占用移位余数的编码结果,得到占用移位余数,指数哥伦布编码方式所采用的阶数为k5阶,k5为非负整数。
[0612]
在一种实现方式中,移位数据包括编码移位商数和编码移位余数;计算机可读存储介质1004中的计算机指令由处理器1001加载并执行对移位数据进行移位重建处理,得到目标编码信息的重建编码信息时,具体用于执行如下步骤:
[0613]
确定移动位数;
[0614]
基于移动位数对编码移位商数进行移位处理,得到移位后的编码移位商数;
[0615]
将移位后的编码移位商数与编码移位余数相加,得到目标编码信息的重建编码信息。
[0616]
在一种实现方式中,计算机可读存储介质1004中的计算机指令由处理器1001加载并执行确定移动位数时,具体用于执行如下步骤:
[0617]
获取移动位数判定信息和移动位数阈值;
[0618]
根据移动位数判定信息和移动位数阈值之间的大小关系,确定移动位数。
[0619]
在一种实现方式中,计算机可读存储介质1004中的计算机指令由处理器1001加载并还用于执行如下步骤:
[0620]
若在编码数据的解析过程中涉及基于指数哥伦布编码方式的解析过程,则确定指数哥伦布编码方式所采用的阶数。
[0621]
在一种实现方式中,计算机可读存储介质1004中的计算机指令由处理器1001加载并执行确定指数哥伦布编码方式用的阶数时,具体用于执行以下任一步骤:
[0622]
编解码端默认设置指数哥伦布编码方式所采用的阶数;
[0623]
从点云的编码参数集或编码码流中解析指数哥伦布编码方式所采用的阶数;
[0624]
根据目标编码信息的数据特性,确定指数哥伦布编码方式所采用的阶数。
[0625]
在一种实现方式中,计算机可读存储介质1004中的计算机指令由处理器1001加载并执行根据目标编码信息的数据特性,确定指数哥伦布编码方式所采用的阶数时,具体用于执行如下步骤:
[0626]
确定初始阶数;
[0627]
根据目标编码信息的数据特性,对初始阶数或当前阶数进行调整,确定指数哥伦布编码方式所采用的阶数。
[0628]
在一种实现方式中,若在编码数据的解析过程中涉及多个基于指数哥伦布编码方式的解析过程,则各个指数哥伦布编码方式所采用的阶数是相互关联或相互独立的;各个指数哥伦布编码方式所采用的阶数相互关联,包括:
[0629]
各个指数哥伦布编码方式所采用的阶数相同;或者,各个指数哥伦布编码方式所采用的阶数通过偏移参数进行关联。
[0630]
本技术实施例中,获取到点云的编码数据后,可以解析编码数据,得到移位数据,移位数据是在点云的编码过程中对点云的目标编码信息进行移位处理得到的,对移位数据进行移位重建,便可以得到目标编码信息的重建编码信息。本技术实施例通过对目标编码信息进行移位处理,可以减少点云的解码阶段所解码的数据量,从而可以提升点云的解码效率。
[0631]
基于上述方法以及装置实施例,本技术实施例提供了一种计算机设备,该计算机设备可以是前述所提及的解码设备。请参见图10,图10是本技术实施例提供的一种计算机设备的结构示意图。图10所示的计算机设备至少包括处理器1001、输入接口1002、输出接口1003以及计算机可读存储介质1004。其中,处理器1001、输入接口1002、输出接口1003以及计算机可读存储介质1004可通过总线或其他方式连接。
[0632]
计算机可读存储介质1004可以存储在计算机设备的存储器中,计算机可读存储介质1004用于存储计算机程序,计算机程序包括计算机指令,处理器1001用于执行计算机可读存储介质1004存储的程序指令。处理器1001(或称cpu(central processing unit,中央处理器))是计算机设备的计算核心以及控制核心,其适于实现一条或多条计算机指令,具体适于加载并执行一条或多条计算机指令从而实现相应方法流程或相应功能。
[0633]
本技术实施例还提供了一种计算机可读存储介质(memory),计算机可读存储介质是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了计算机设备的操作系统。并且,在该存储空间中还存放了适于被处理器加载并执行的一条或多条的计算机指令,这些计算机指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是高速ram存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的计算机可读存储介质。
[0634]
在一些实施例中,可由处理器1001加载并执行计算机可读存储介质1004中存放的一条或多条计算机指令,以实现上述有关图8所示的点云处理方法的相应步骤。具体实现中,计算机可读存储介质1004中的计算机指令由处理器1001加载并执行如下步骤:
[0635]
获取点云的目标编码信息;
[0636]
获取编码模式;
[0637]
按照所述编码模式,对所述目标编码信息进行移位处理,得到所述目标编码信息的移位数据;
[0638]
对所述移位数据进行编码。
[0639]
在一种实现方式中,编码模式包括第一编码模式;移位数据包括目标编码信息的编码移位商数和编码移位余数;计算机可读存储介质1004中的计算机指令由处理器1001加载并执行按照编码模式,对目标编码信息进行移位处理,得到目标编码信息的移位数据时,具体用于执行如下步骤:
[0640]
对目标编码信息进行关于移位编码条件的判别;
[0641]
若目标编码信息满足移位编码条件,则对目标编码信息进行移位处理,得到目标编码信息的编码移位商数和编码移位余数;
[0642]
对编码移位商数进行关于间接编码条件的判别;
[0643]
若编码移位商数满足间接编码条件,则确定需要对编码移位商数进行间接编码处理。
[0644]
在一种实现方式中,编码模式包括第二编码模式;移位数据包括目标编码信息的编码移位商数和编码移位余数;计算机可读存储介质1004中的计算机指令由处理器1001加载并执行按照编码模式,对目标编码信息进行移位处理,得到目标编码信息的移位数据时,具体用于执行如下步骤:
[0645]
对目标编码信息进行关于移位编码条件的判别;
[0646]
若目标编码信息满足移位编码条件,则对目标编码信息进行移位处理,得到目标编码信息的编码移位商数和编码移位余数。
[0647]
在一种实现方式中,编码模式包括第三编码模式;移位数据包括目标编码信息的编码移位商数和编码移位余数;计算机可读存储介质1004中的计算机指令由处理器1001加载并执行按照编码模式,对目标编码信息进行移位处理,得到目标编码信息的移位数据时,具体用于执行如下步骤:
[0648]
对目标编码信息进行移位处理,得到目标编码信息的编码移位商数和编码移位余
数;
[0649]
对编码移位商数进行关于间接编码条件的判别;
[0650]
若编码移位商数满足间接编码条件,则确定需要对编码移位商数进行间接编码处理。
[0651]
在一种实现方式中,编码模式包括第四编码模式;移位数据包括所述目标编码信息的编码移位商数和编码移位余数;计算机可读存储介质1004中的计算机指令由处理器1001加载并执行按照编码模式,对目标编码信息进行移位处理,得到目标编码信息的移位数据时,具体用于执行如下步骤:
[0652]
对目标编码信息进行移位处理,得到目标编码信息的编码移位商数和编码移位余数。
[0653]
在一种实现方式中,在对目标编码信息进行关于移位编码条件的判别时,需要将目标编码信息与m1个特定数值进行匹配检查,每个特定数值分别对应不同的编码信息标志字段,m1为正整数;计算机可读存储介质1004中的计算机指令由处理器1001加载并执行对目标编码信息进行关于移位编码条件的判别时,具体用于执行如下步骤:
[0654]
将目标编码信息与m1个特定数值中的第i个特定数值进行匹配检查,i为小于m1的正整数;
[0655]
若目标编码信息与第i个特定数值不匹配,则将第i个编码信息标志字段设置为第一数值并编码,以及将目标编码信息与m1个特定数值中的第i 1个特定数值进行匹配检查;若目标编码信息与第i个特定数值匹配,则确定目标编码信息不满足移位编码条件,将第i个编码信息标志字段设置为第二数值并编码;
[0656]
当匹配检查至第m1特定数值时,若目标编码信息与第m1个特定数值不匹配,则将第m1个编码信息标志字段设置为第一数值并编码,以及确定目标编码信息满足移位编码条件;若目标编码信息与第m1个特定数值匹配,则确定目标编码信息不满足移位编码条件,将第m1个编码信息标志字段设置为第二数值并编码。
[0657]
在一种实现方式中,在对编码移位商数进行关于间接编码条件的判别时,需要将编码移位商数与m2个特定数值进行匹配检查,每个特定数值分别对应不同的移位商数标志字段,m2为正整数;计算机可读存储介质1004中的计算机指令由处理器1001加载并执行对编码移位商数进行关于间接编码条件的判别时,具体用于执行如下步骤:
[0658]
将编码移位商数与m2个特定数值中的第j个特定数值进行匹配检查,j为小于m2的正整数;
[0659]
若编码移位商数与第j个特定数值不匹配,则将第j个移位商数标志字段设置为第一数值并编码,以及将编码移位商数与m2个特定数值中的第j 1个特定数值进行匹配检查;若编码移位商数与第j个特定数值匹配,则确定编码移位商数不满足间接编码条件,将第j个移位商数标志字段设置为第二数值并编码;
[0660]
当匹配检查至第m2个特定数值时,若编码移位商数与第m2个特定数值不匹配,则将第m2个移位商数标志字段设置为第一数值并编码,以及确定编码移位商数满足间接编码条件;若编码移位商数与第m2个特定数值匹配,则确定编码移位商数不满足间接编码条件,将第m2个移位商数标志字段设置为第二数值并编码。
[0661]
在一种实现方式中,计算机可读存储介质1004中的计算机指令由处理器1001加载
并执行对目标编码信息进行移位处理,得到目标编码信息的编码移位商数和编码移位余数时,具体用于执行如下步骤:
[0662]
获取移动位数判定信息和移动位数阈值;
[0663]
根据移动位数判定信息和移动位数阈值之间的大小关系,确定移动位数;
[0664]
基于移动位数,对目标编码信息进行移位处理,得到目标编码信息的编码移位商数和编码移位余数。
[0665]
在一种实现方式中,计算机可读存储介质1004中的计算机指令由处理器1001加载并执行对目标编码信息进行移位处理,得到目标编码信息的编码移位商数和编码移位余数时,具体用于执行如下步骤:
[0666]
获取初始移动位数;
[0667]
基于初始移动位数,对目标编码信息进行移位处理,得到目标编码信息的参考移位商数和参考移位余数;
[0668]
若参考移位商数小于移位商数阈值,则将参考移位商数确定为所述编码移位商数,将参考移位余数确定为编码移位余数;
[0669]
若参考移位商数大于或等于移位商数阈值,则更新初始移动位数,并基于更新后的移动位数,对目标编码信息进行移位处理,直至移位处理得到的参考移位商数小于移位商数阈值为止。
[0670]
本技术实施例中,获取到点云的目标编码信息后,可以对目标编码信息进行移位处理,得到目标编码信息的移位数据,然后可以对移位数据进行编码;本技术实施例通过对目标编码信息进行移位处理,可以减少点云的编码阶段所编码的数据量,从而可以提升点云的编码效率。
[0671]
根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选方式中提供的点云处理方法。
[0672]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

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

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

相关文献