CN113284250A - 一种点云的几何编码方法和解码方法及设备 - Google Patents

一种点云的几何编码方法和解码方法及设备 Download PDF

Info

Publication number
CN113284250A
CN113284250A CN202110652236.3A CN202110652236A CN113284250A CN 113284250 A CN113284250 A CN 113284250A CN 202110652236 A CN202110652236 A CN 202110652236A CN 113284250 A CN113284250 A CN 113284250A
Authority
CN
China
Prior art keywords
cur
point cloud
point
idx
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110652236.3A
Other languages
English (en)
Other versions
CN113284250B (zh
Inventor
李革
秦泰
高文
王静
宋菲
邵薏婷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Peking University Shenzhen Graduate School
Original Assignee
Peking University Shenzhen Graduate School
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Peking University Shenzhen Graduate School filed Critical Peking University Shenzhen Graduate School
Priority to CN202110652236.3A priority Critical patent/CN113284250B/zh
Publication of CN113284250A publication Critical patent/CN113284250A/zh
Application granted granted Critical
Publication of CN113284250B publication Critical patent/CN113284250B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/005Tree description, e.g. octree, quadtree

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)

Abstract

一种点云几何编码方法和解码方法及设备,将原始点云新的广度优先遍历的八叉树划分方案划分结点、通过求去结点的曲度来确定是否进入增强层,而增强层则是进行坐标系转换,曲面拟合并对残差进行可缩放的自适应平面投影,之后的高度残差图则采用混合DWT+DCT的策略,进一步压缩二维图像集,直至编码结束;该解码方法包括:如果八叉树划分时该节点的flag标志为“增强层结点”,则按顺序读入相应的从码流中的高度残差信息,然后用逆DWT+DCT变换得到高度残差图,在与从码流中读出的曲面控制点的相关信息还原出曲面,然后采用线性相加、坐标逆变换等手段恢复点云信息;本发明方法更好地利用了点云中的冗余信息,提高了压缩新能。

Description

一种点云的几何编码方法和解码方法及设备
技术领域
本发明涉及点云处理技术领域,特别涉及一种点云几何编码方法和解码方法及设备。
背景技术
三维点云是现实世界数字化的重要表现形式。随着三维扫描设备(激光、雷达等)的快速发展,点云的精度、分辨率更高。高精度点云处理广泛应用于城市数字化地图的构建,在如智慧城市、无人驾驶、文物保护等众多热门研究中起技术支撑作用。点云是三维扫描设备对物体表面采样所获取的,一帧点云的点数一般是百万级别,其中每个点包含几何信息和颜色、反射率等属性信息,数据量十分庞大。三维点云庞大的数据量给数据存储、传输等带来巨大挑战,所以点云压缩十分必要。
尤其在增强型沉浸式3D视频中需要对密集3D点云数据的有效实时压缩的需求变得越来越紧迫。在这种应用中,点云数据帧通常以高帧速率(例如视频帧)捕获并且具有高密集性。对于这种密集的3D点云数据的实时和有效压缩,基于八叉树划分几何压缩并不总是一个好的方法。此编码方法的运行时间与划分的数量指数相关,导致高划分/高密集的点云压缩需要更多的计算时间。此外,基于序列化的压缩也会变得十分低效。为了解决基于八叉树划分(Octree)的点云压缩的计算和压缩效率问题,引申出了一种基于Octree含有替代增强层的压缩方案。增强层应用级别大于Octree编解码的固定级别(压缩效率和运行时间仍然很好),并提供了一种方法来编码超出此级别的点数据。
点云压缩主要分为几何压缩和属性压缩,目前由国际标准组织(Moving PictureExperts Group,MPEG)所提供的测试平台TMC13v12(Test Model for Category 1&3version 12)中描述的几何压缩框架中的编码器将(对齐边界框后的)点云逐步地划分为八个子结点。仅非空子像素继续被细分。根据八叉树的数据结构特点,其中每个体素的位置由其单元中心表示。其属性(颜色)设置为体素中点的平均值,需要由属性编码器进行编码。八叉树结构中的每个级别都可以代表一个划分级别(LOD,全称为Level of Detail)。最终的划分级别(LOD)由八叉树位数设置指定。这是用于规范无组织点云和对其进行压缩的通用方案。
同时也有目前由中国AVS(Audio Video coding Standard)点云压缩工作组所提供的测试平台PCEM v1.0中描述的点云几何压缩方法主要采用构建混合遍历型八叉树、生成空间占用码、上下文编码上下文的手段。
但是,以上相关技术在直接编码和解码方法的压缩性能效率低,考虑到如上的情况,本发明设计了一种新的点云的几何编码器和几何解码器,使得本发明的几何编码器和几何解码器更加的高效。
发明内容
本发明提供了一种点云几何编码方法、解码方法、编码设备及解码设备,旨在公开一种针对表面连续型点云的几何编码和解码的方法,进一步地提高了点云的几何压缩性能。
本发明的技术方案如下:
一种点云几何编码方法,所述点云定义在树结构中,其特征在于,包括以下步骤:C1:不失一般性,将树结构采用八叉树,对于当前点云采用八叉树划分成节点;C4:对所述当前节点中的点云进行曲面投影产生的曲面投影高度信息存入二维平面;C5:对于所述曲面投影高度信息及曲面信息进行编码。
进一步,所述的步骤Cl包括:C6:对于所述当前点云采用“节点包围框扩充型”八叉树划分成节点。
进一步,所述的步骤C1包括:C2:对于所述当前节点设置划分标志位enhancementLayerFlag,表示所述当前节点是否要继续划分;C3:若所述划分标志位表示继续划分,则对八叉树结构继续进行划分。
进一步,所述的步骤C5包括:C7:对于所述曲面投影高度信息,采用混合DWT+DCT变换技术进行变换得到变换系数;C8:对所述变换系数进行编码。
进一步,在所述的步骤C6前还包括方法四,其中,所述方法四包括以下步骤:D1:对于所属当前结点的点集,分配两个集合idx、idx1分别是块内点云集、块外点云集,V3<UInt>pos用于存储结点坐标,1<<nodeSizeLog2表示结点大小,其中V3<UInt>nodeSizeLog2;D2:当该点集中的点的位置坐标,属于以pos为基准,大小为1<<nodeSizeLog2的立方体中的点集idx;D3:当该点集中的点的位置坐标,属于以pos-(1<<min{nodeSizeLog2-5,2})为基准,外边框大小为(1<<nodeSizeLog2)+(1<<(min{nodeSizeLog2-5,2}+1))和内边框大小为1<<nodeSizeLog2的空心立方体的点集idx1。
进一步,在步骤D2前还包括方法五,所述方法五包括以下步骤:D5:对于该节点的块内点集idx中有numOfPiontClouds个点,其中第i_th(∈{0,1,...,numOfPiontClouds})个点,记为idxi_th;以及
D6:对于该点idxi_th,直接进行八叉树划分,该点会在八个子结点中找到一个与之对应的第i∈{0,1,...,7}个子结点(childNode_i),被记为
Figure BDA0003112048990000031
进一步,在步骤D6前还包括方法六,所述方法六包括以下步骤:
D7:不是一般性,若该节点中的第idxi_th个点,被划分至
Figure BDA0003112048990000039
则将idxi_th存入第0个子结点的块内点云集childNode_0.idx;以及
D8:该节点中的该点idxi_th,被划分至
Figure BDA0003112048990000033
且该点的位置坐标为V3<UInt>pointCloudPos,则计算其偏移方向为
Figure BDA0003112048990000034
进一步,在步骤D8前还包括方法七,所述方法七还包括以下步骤:
D9:该点idxi_th的偏移方向为offsetDirection={0,0,0},位置坐标为pointCloudPos,被划分至
Figure BDA0003112048990000035
则其偏移坐标为
Figure BDA0003112048990000036
进一步,在步骤D9前还包括方法八,所述方法八包括以下步骤,D10:该点idxi_th的偏移坐标为
Figure BDA0003112048990000037
且划分至
Figure BDA0003112048990000038
进行二次八叉树划分后被划分至位置i_offseti_th∈{0,...,7}。
进一步,在步骤D10前还包括方法九,所述方法九包括以下步骤,D11:若第idxi_th个点被二次划分至i_offseti_th=0,不做处理;D12:若第idxi_th个点被二次划分至i_offseti_th=1,则idxi_th存入childNodei,idx1(i=1);D13:若第idxi_th个点被二次划分至i_offseti_th=2,则idxi_th存入childNodei.idx1(i=2);D14:若第idxi_th个点被二次划分至i_offseti_th=4,则idxi_th存入childNodei.idx1(i=4);D15:若第idxi_th个点被二次划分至i_offseti_th=3,则idxi_th存入childNodei.idx1(i=1,2,3);D16:若第idxi_th个点被二次划分至i_offseti_th=5,则idxi_th存入childNodei,idx1(i=2,4,5);D17:若第idxi_th个点被二次划分至i_offseti_th=6,则idxi_th存入childNodei.idx1(i=2,4,6);D18:若第idxi_th个点被二次划分至i_offseti_th=7,则idxi_th存入childNodei.idx1(i=1,2,3,4,5,6,7)。
进一步,在步骤D3前还包括方法十,所述方法十包括以下步骤:S3:对于该节点的块内点集idx1中有numOfPiontClouds1个点,其中第i1_th(∈{0,1,...,numOfPiontClouds1})个点,记为idx1i1_th;S4:对于该点idx1i1_th,以
Figure BDA0003112048990000041
为基准,以
Figure BDA0003112048990000042
为大小的立方体进行截取。
进一步,在步骤S4前还包括方法十一,所述方法十一包括以下步骤:D19:若点idx1i1_th的位置坐标处于立方体外,则被舍去;D20:若点idx1i1_th的位置坐标处于立方体内,其被八叉树划分至
Figure BDA0003112048990000043
则被存入
Figure BDA0003112048990000044
进一步,在所述的步骤C4前还包括方法十二,所述方法十二包括以下步骤:
E1:对于当前点集A={(Xi_th,Yi_th,Zi_th)},i_th∈{idx,idx1},利用B-样条(B-Spline)曲面(nurbs)拟合;E2:结合曲面nurbs、点集A,计算对应的高度残差,并存为带有残差信息的点集A″′={(X″′i_th,Y″′i_th,Z″′i_th)},i_th∈{idx,idx1}。
进一步,在步骤E1前还包括方法十三,所述方法十三包括以下步骤:E3:对于所属当前结点的点集A,利用旋转矩阵T将结点的点云刚性变换至PCA子空间(具有减小的尺寸的空间),形成旋转后的点集A′={(X′i_th,Y′i_th,Z′i_th)},i_th∈{idx,idx1};E4:对于当前点集A′,利用体素栅格滤波对点集进行下采样,得到点集A″={(X″i_th,Y″i_th,Z″i_th)},i_th∈{idx,idx1};以及E5:对于当前点集A″,利用B-样条(B-Spline)曲面(nurbs)拟合。
进一步,在步骤E2前还包括方法十四,所述方法十四包括以下步骤:E6:对于该节点的块内点集A中有numOfPiontClouds0个点,其中第i0_th(∈{0,1,...,numOfPiontClouds0})个点,记为idx0i0_th(∈{idx,idx1});E7:对于该点idx0i0_th,所对应位置坐标为(Xi0_th,Yi0_th,Zi0_th),根据Xi0_th、Yi0_th以及nurbs中的参数,可以求出Z′i0_th;进而求出高度残差Z″i0_th=Zi0_th-Z′i0_th,则(X″′i0_th,Y″′i0_th,Z″′i0_th)=(Xi0_th,Yi0_th,Z″i0_th)并存入点集A″′。
进一步,在所述的步骤C7前还包括方法十五,所述方法十五包括以下步骤:F1:对于带有残差信息的点集A″′={(X″′i_th,Y″′i_th,Z″′i_th)},i_th∈{idx,idx1},在X、Y坐标方向上的最小长方体边界框长height_min和宽width_min,利用如下公式,结合点云个数numOfPiontClouds0计算点云的伸缩系数:
Figure BDA0003112048990000051
F2:对于点云的伸缩系数:
Figure BDA0003112048990000052
计算投影平面的长
Figure BDA0003112048990000053
和宽
Figure BDA0003112048990000054
进一步,在步骤F2前还包括方法十六,所述方法十六包括以下步骤:F3:对于带有残差信息的点集A″′={(X″′i_th,Y″′i_th,Z″′i_th)},根据round((X″′i_th+3)×expansionCoefficient)与round((Y″′i_th+3)×expansionCoefficient)的位置关系,投影至“高度残差”图;F4:当“高度残差”图中该“像素”被占用,对相同尺寸的“占用”图的相应位置的像素置一;否则,置零。
进一步,在步骤F3前还包括方法十七,所述方法十七包括以下步骤:F5:对高度图,划分成numOfBlockHeight×numOfBlockWidth个尺寸为32×32的块;F6:对numOfBlockHeight×numOfBlockWidth个尺寸为32×32的块,分别经过一级DWT变换,仅保留16×16的低频块。
进一步,在步骤F6前还包括方法十八,所述方法十八包括以下步骤:F7:对来自高度图的numOfBlockHeight×numOfBlockWidth个尺寸为16×16的块,执行DCT变换仅保留4×4的低频块;F8:对来自高度图的numOfBlockHeight×numOfBlockWidth个尺寸为4×4的块,重排列成4×4个尺寸为numOfBlockHeight×numOfBlockWidth的块。
进一步,在步骤F4前还包括方法十九,所述方法十九包括以下步骤:F9:对来自占用图的numOfBlockHeight×numOfBlockWidth个尺寸为32×32的块,执行三级DWT变换仅保留4×4的低频块;F10:对来自占用图的numOfBlockHeight×numOfBlockWidth个尺寸为4×4的块,原位聚合成4×numOfBlockHeight×4×numOfBlockWidth的压缩高度图。
进一步,在步骤C8前还包括方法二十,所述方法二十包括以下步骤:G1:对于拟合曲面nurbs,阶数为order、拟合优化迭代次数为refinement,则含有(order+refinement)2个控制点CV={cvi,j}i,j∈{0,...,order+refinement-1};G2:根据当前点集A″′={(X″′i_th,Y″′i_th,Z″′i_th)},i_th∈{idx,idx1},计算包围框{X′″,Y″′,Z″′},
Figure BDA0003112048990000065
Figure BDA0003112048990000066
量化比特数{bitx,bity,bitz},
Figure BDA0003112048990000061
Figure BDA0003112048990000062
G3:对于(order+refinement)2个控制点CV,则控制点V3<Double>cvi,j,分别对计算所得的
Figure BDA0003112048990000063
Figure BDA0003112048990000064
应用比特数位bitx、bity、bitz的非均匀量化得值为Bx、By、Bz;G4:不失一般性,bitx比特的Bx=(b7,...,bi),i=8-bitx。数据的b7执行上下文数量为1的编码,b6依据b7进行上下文编码,b5依据b6,b7进行上下文编码,b4,...,bi执行上下文数量为1的编码。
进一步,在步骤F8前还包括方法二十一,所述方法二十一包括以下步骤:H1:对来自高度图的4×4个尺寸为numOfBlockHeight×numOfBlockWidth的块BlockI,J,I,J={0,1,23},当(I+J)<4时,对应的块BlockI,J执行4bit非均匀量化,否则执行3bit非均匀量化;H2:对于高度图,含有一系列大小为10个大小为numOfBlockHeigh×numOfBlockWidth的4bit和6个大小为numOfBlockHeigh×numOfBlockWidth的3bit信息。
进一步,在步骤H2前还包括方法二十二,所述方法二十二包括以下步骤:H3:对来自高度图的BlockI,J,含有4bit信息cur_x_y=(cur3,cur2,cur1,cur0);或者,含有4bit信息cur_x_y=(cur3,cur2,cur1),其中x∈{1,...,numOfBlockHeigh},y∈{1,...,numOfBlockWidth};H4:若x=1,y=1时cur_x_y位于位置1;若2≤x≤numOfBlockHeigh,2≤y≤numOfBlockWidth时cur_x_y位于位置4;若x=1,2≤y≤numOfBlockWidth时cur_x_y位于位置2;若2≤x≤numOfBlockHeigh,y=1时cur_x_y位于位置3。
进一步,在步骤H3前还包括方法二十三,所述方法二十三包括以下步骤:H5:对来当前cur_x_y位于位置1,cur3执行上下文数量为1的编码,cur2依据cur3进行上下文编码,cur1依据cur3,cur2进行上下文编码,cur0依据cur3,cur2,cur1进行上下文编码;
H6:对来当前cur_x_y位于位置2和3的像素,前一位置pre=(pre3,pre2,pre1,pre0)的像素编码当前像素cur,cur3依据pre3上下文编码,cur2依据pre3×2+pre2,cur1依据pre3×2+pre2,cur3×2+cur2进行上下文编码,cur0依据cur3,cur2,cur1进行上下文编码;
H7:对来当前cur_x_y位于位置4的像素,已经编码的像素pre11(对角线),pre01(x方向),pre10(y方向)的像素编码当前像素cur,cur3依据pre113,pre013,pre103上下文编码,cur2依据pre113,pre301×2+pre012,pre310×2+pre102,cur1依据pre013,pre103,cur3×2+cur2进行上下文编码,cur0依据cur3,cur2,cur1进行上下文编码。
进一步,在步骤F10前还包括方法二十四,所述方法二十四包括以下步骤:J1:对高度图的尺寸为4×numOfBlockHeight×4×numOfBlockWidth执行均匀量化,后生成1bit信息cur_x_y=(cur0),其中x∈{1,...,numOfBlockHeigh},y∈{1,...,numOfBlockWidth};J2:若x=1,y=1时cur_x_y位于位置1。若x=2,y=1或x=1,y=2时cur_x_y位于位置2;若x=1,3≤y≤numOfBlockWidth或3≤x≤numOfBlockHeigh,y=1时cur_x_y位于位置2;若3≤x≤numOfBlockHeigh,3≤y≤numOfBlockWidth时cur_x_y位于位置5;其他情况,cur_x_y位于位置4。
进一步,在步骤J2前还包括方法二十五,所述方法二十五包括以下步骤:J3:对来当前cur_x_y位于位置1,cur0执行上下文数量为1的编码;J4:对来当前cur_x_y位于位置2的像素,前一位置pre=(pre0)的像素编码当前像素cur,cur0依据pre0上下文编码;J5:对来当前cur_x_y位于位置3的像素,前两个位置pre1=(pre10),pre0=(pre00)的像素编码当前像素cur,cur0依据pre10×2+pre00上下文编码;J6:对来当前cur_x_y位于位置4的像素,已经编码的像素pre11(对角线),pre01(x方向),pre10(y方向)的像素编码当前像素cur,cur0依据pre110,pre010,pre100上下文编码;J7::对来当前cur_x_y位于位置5的像素,已经编码的像素
Figure BDA0003112048990000081
的像素编码当前像素cur,cur0依据pre200,pre020,pre110,pre010,pre100上下文编码。
进一步,在步骤E3前还包括方法二十六,所述方法二十六包括以下步骤:
K1:利用4×4刚性变换矩阵T进行了坐标系变换,变换矩阵由3×3旋转矩阵R和3×1平移矢量t
Figure BDA0003112048990000082
进一步,在步骤K1前还包括方法二十七,所述方法二十七包括以下步骤:K2:矩阵旋转R更紧凑地表示为四元数q(s,t,u,v);转换公式如下:
Figure BDA0003112048990000083
Figure BDA0003112048990000084
K3:对四元数组q(s,t,u,v)进行隐式编码,仅需量化3个大小为
Figure BDA0003112048990000085
的数字,采用了8bit均匀量化即可;K4:平移矢量t则结合对应结点的边界框大小进行归一化,之后引用8bit均匀量化。
进一步,在步骤K3前还包括方法二十八,所述方法二十八包括以下步骤:K5:各个结点中投影平面的方向之间存才相关性,则对四元数组q(s,t,u,v))的高三位采用联合上下文编码,后续低比特位执行上下文为1的编码。
进一步,在步骤K5前还包括方法二十九,所述方法二十九包括以下步骤:K6:8bit数据为(b7,b6,b5,b4,b3,b2,b1,b0);首先对同类型数据的b7执行上下文数量为1的编码,b6依据b7进行上下文编码,b5依据b6、b7进行上下文编码,b4、b3、b2、b1、b0执行上下文数量为1的编码。
进一步,在步骤K4前还包括方法三十,所述方法三十包括以下步骤:K5:平移矢量t,大部分集中在结点的“中心”附近,则对均值的高三位采用联合上下文编码,后续低比特位执行上下文为1的编码。
一种点云几何编码设备,其特征在于,包括处理器、存储器及通信总线:所述存储器上存储有可被所述处理器执行的计算机可读程序;所述通信总线实现处理器和存储器之间的连接通信;所述处理器执行所述计算机可读程序时实现所述的点云几何编码方法。
一种点云几何解码方法,所述点云定义在树结构中,其特征在于,包括以下步骤:L1:对码流解码得到当前节点中的点云的曲面投影高度信息及曲面信息;L2:根据所述当前节点中的点云的曲面投影高度信息得到所述当前节点中的点云的几何信息。
进一步,所述的步骤L1包括:对码流解码得到的变换系数,采用混合DWT+DCT逆变换技术得到所述当前节点中的点云的曲面投影高度信息。
一种点云几何解码设备,其特征在于,包括处理器、存储器及通信总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;所述通信总线实现处理器和存储器之间的连接通信;所述处理器执行所述计算机可读程序时实现所述的点云解码方法。
根据本发明的技术方案,产生的有益效果是:将原始点云新的广度优先遍历的八叉树划分方案划分结点、通过求去结点的曲度来确定是否进入增强层,而增强层则是进行坐标系转换,曲面拟合并对残差进行可缩放的自适应平面投影,之后的高度残差图则采用混合DWT+DCT的策略,进一步压缩二维图像集,直至编码结束;本发明方法更好地利用了点云中的冗余信息,提高了压缩新能。
为了更好地理解和说明本发明的构思、工作原理和发明效果,下面结合附图,通过具体实施例,对本发明进行详细说明如下:
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。
图1是本发明的点云几何编码方法较佳实施例的流程图;
图2是本发明的基于曲面投影的增强型八叉树点云几何压缩方案;
图3是本发明的“改进型”Octree划分结点示意图;
图4是本发明的“改进型八叉树划分方案”流程图;
图5是本发明的“改进型八叉树划分方案”关于idx原理图;
图6是本发明的“改进型八叉树划分方案”关于idx1原理图;
图7是本发明的“改进型八叉树划分方案”改善前(左)后(右)局部对比图;
图8是本发明的Octree分解且曲度阈值设置为0.05展示图;
图9是本发明的结点的最佳投影数据点图;
图10是本发明的基于B-spline曲线的点云的曲面重建图;
图11是本发明的经过DWT-DCT压缩后排列变换前的高度图;
图12是本发明的经过DWT-DCT压缩后排列变换后的高度图;
图13是本发明的numOfBlockHeigh×numOfBlockWidth个大小为16×16块DCT变换并截取后的示意图;
图14是本发明的大小为16×16块DCT变换并截取后的局部放大示意图;
图15是本发明的重排列后的示意图;
图16是本发明的经过DWT-DCT量化示意图;
图17是本发明的高度图中块的划分及扫描顺序示意图;
图18是本发明的占用图中块的划分及扫描顺序示意图;
图19是本发明的一维多级DWT与IDWT原理图;
图20a-h是本发明的“基于曲面投影”的编解码器与PCEM V3.0编解码器的率失真曲线对比图;其中:
图20a是数据集AVSCat3中名为basketball_player_vox11_00000001关于“基于曲面投影”的编解码器与PCEMV3.0编解码器的“点对点”型率失真曲线(D1-PSNR)对比图;
图20b是数据集AVSCat3中名为basketball_player_vox11_00000001关于“基于曲面投影”的编解码器与PCEMV3.0编解码器的“点对面”型率失真曲线(D2-PSNR)对比图;
图20c是数据集AVSCat3中名为dancer_player_vox11_00000001关于“基于曲面投影”的编解码器与PCEMV3.0编解码器的“点对点”型率失真曲线(D1-PSNR)对比图;
图20d是数据集AVSCat3中名为dancer_player_vox11_00000001关于“基于曲面投影”的编解码器与PCEMV3.0编解码器的“点对面”型率失真曲线(D2-PSNR)对比图;
图20e是数据集AVSCat3中名为exercise_vox11_00000002关于“基于曲面投影”的编解码器与PCEMV3.0编解码器的“点对点”型率失真曲线(D1-PSNR)对比图;
图20f是数据集AVSCat3中名为exercise_vox11_00000002关于“基于曲面投影”的编解码器与PCEM V3.0编解码器的“点对面”型率失真曲线(D2-PSNR)对比图;
图20g是数据集AVSCat3中名为model_vox11_00000001关于“基于曲面投影”的编解码器与PCEM V3.0编解码器的“点对点”型率失真曲线(D1-PSNR)对比图;
图20h是数据集AVSCat3中名为model_vox11_00000001关于“基于曲面投影”的编解码器与PCEM V3.0编解码器的“点对面”型率失真曲线(D2-PSNR)对比图;
图21a和b是本发明的针对“结点包围框扩充”模块的率失真曲线对比图,其中:
图21a是数据集AVSCat3中名为exercise_vox11_00000002针对“结点包围框扩充”模块的“点对点”型率失真曲线(D1-PSNR)对比图;
图21b是数据集AVSCat3中名为exercise_vox11_00000002针对“结点包围框扩充”模块的“点对面”型率失真曲线(D2-PSNR)对比图;
图22a和b是本发明的针对“B-slpine曲面投影”模块的率失真曲线对比图。其中:
图22a数据集AVSCat3中名为exercise_vox11_00000002针对“B-slpine曲面投影”模块的“点对点”型率失真曲线(D1-PSNR)对比图;
图22b是数据集AVSCat3中名为exercise_vox11_00000002针对“B-slpine曲面投影”模块的“点对面”型率失真曲线(D2-PSNR)对比图;
图23是本发明的针对自适应性的率失真曲线对比图;
图24a和b是本发明的针对“混合DWT+DCT压缩”模块的率失真曲线对比图,其中,
图24a数据集AVSCat3中名为exercise_vox11_00000002针对“混合DWT+DCT压缩”模块的“点对点”型率失真曲线(D1-PSNR)对比图;
图24b数据集AVSCat3中名为exercise_vox11_00000002针对“混合DWT+DCT压缩”模块的“点对点”型率失真曲线(D1-PSNR)对比图;
图25是本发明的点云几何解码方法较佳实施例的流程图;
图26是本发明的基于曲面投影的增强型八叉树点云几何压缩的解码方案。
具体实施方式
本发明提供一种点云几何编码方法、解码方法、编码设备及解码设备,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
下面结合附图,通过对实施例的描述,对发明内容作进一步说明。
请参阅图1,本发明提供了一种点云的几何编码方法,所述点云定义在树结构中,包括以下步骤:
一种点云几何编码方法,所述点云定义在树结构中,其特征在于,包括以下步骤:
C1:不失一般性,将树结构采用八叉树,对于当前点云采用八叉树划分成节点;
C4:对所述当前节点中的点云进行曲面投影产生的曲面投影高度信息存入二维平面;
C5:对于所述曲面投影高度信息及曲面信息进行编码。
在本实施例中,在编码端执行所属步骤C1-C8。可参阅图2的基于“曲面投影”的增强型八叉树点云几何压缩方案,图2中呈现了各模块的逻辑关系。在编码器和解码器中设计了三大模块:结点包围框扩充模块、B-slpine曲面投影模块、混合DWT+DCT压缩模块。
结点包围框扩充模块的设计:
若直接对“普通型”粗Octree划后结点进行B-spline曲面拟合。由于拟合时,边缘(线)外侧无点集,则拟合后的曲面在边缘会出现过度拟合现象,所以需要对“八叉树划分机制”改进,使每个结点Node(结构体)增加一个新的点云索引集Node.idx1(成员变量),--结构体TComOctreeNode重定义如下式:
Figure BDA0003112048990000121
针对PCEM v1.0:
Figure BDA0003112048990000122
针对PCRM v3.0:
Figure BDA0003112048990000131
Node.pos用于存储结点坐标;Node.Idx存储以pos位为基准,大小为V3<UInt>nodeSizeLog2的立方体中的点集,或利用Node.childIdxBegin与Node.childIdxEnd来定义此节点的立方体中的点集索引开始标志位与结束标志位。Node.Idx1存储以Node.pos-min{nodeSizeLog2>>4,8}为基准,外边框大小为nodeSizeLog2+2×min{nodeSizeLog2>>4,8}和内边框大小为nodeSizeLog2的空心立方体的点集idx1。示意图,如图3;改进型八叉树划分方案流程图,如图4所示。
首先,对当前(父)体素块(结点)中的点云集Node.idx(长方体)进行八叉树划分,每一个点均会在八个子结点中找到一个与之对应的第i(=0,1,2,...,7)个子结点(childNode_i),并存入其块内子节点childNode_i.idx。之后,不失一般性假定一个点(坐标为V3<Double>pointCloudPos)被存入第0个子结点的childNode_0.idx,计算该点的偏移坐标pointCloudPos+min{nodeSizeLog2>>4,8}后进行“二次八叉树”划分,若二次划分后,属于:位置0则说明其不是任何子块(i=1,2,3,4,45,6,7)的块内点云,不做处理;位置1则说明点既是0块的块内点云又属于1块的块外点云,存入childNode_i.idx1(i=1);位置2则存入childNode_i.idx1(i=2);位置4则存入childNode_i.idx1(i=4);位置3则说明点既是0块的块内点云又属于1,2,3块的块外点云,存入childNode_i.idx1(i=1,2,3);位置5则存入childNode_i.idx1(i=1,4,5);位置6则存入childNode_i.idx1(i=2,4,5);位置7则说明点既是0块的块内点云又属于1,2,3,4,45,6,7块的块外点云,存入childNode_i.idx1(i=1,2,3,4,45,6,7)。原理图如图5。
其次,是对当前(父)体素块的点云集Node.idx1(空心立方体)进行截取将外边框大小变为
Figure BDA0003112048990000132
因为节点的空心立方体厚度为min{nodeSizeLog2>>4,8}子节点的厚度需要减半。之后应用八叉树划分,属于:位置0存入childNode_0.idx1、位置1存入childNode_1.idx1、位置2存入childNode_2.idx1、位置3存入childNode_3.idx1、位置4存入childNode_4.idx1、位置5存入childNode_5.idx1、位置6存入childNode_6.idx1、位置7存入childNode_7.idx1。原理图如图6。
此方案在略微增加“八叉树划分”方案计算复杂度的情况下,扩充了功能,且与八叉树划分功能并存。传统八叉树方案(左图)与改进型八叉树方案(右图)的还原点云的局部截取,如图7所示。
增强层判决模块的设计:
输入的点云被“改进型”粗Octree划分成结点后,将点云投影到三维曲面上,并将曲面与点云之间的高度残差映射到“高度图”上。其中涉及到平整度测试。{pk}∈R3是属于某个八叉树节点的一组体素,计算几何协方差:
Figure BDA0003112048990000141
其中,E{}代表着求数学期望、T是矩阵转置符。体素的质心由几何形状的平均值
Figure BDA0003112048990000143
的给出。然后,计算协方差矩阵的特征值,{λ1,λ2,λ3},特征值大小排序。之后将该节点中的体素的曲度:
Figure BDA0003112048990000142
根据上述公式计算的曲度,当结点的曲度大于曲度阈值时,结点会进一步划分;反之,则进行下一步操作。对“ski”点云文件进行Octree分解且曲度阈值设置为0.05展示,如图8所示。
旋转矩阵/四元数模块的设计:
到达增强层的结点中点云数据,空间中的每个点由三个变量表示,这是x,y,z坐标,T是矩阵转置符。如果叶节点中存在n个点,则Xn={xn,yn,zn},其中n=1,2,...,N。所以X=(X1,X2,......,XN)T。现在,矩阵X的协方差是:
C=X×XT
C的特征值分解:
C=φΛφ-1
其中Λ=diag(λ1,λ2,......,λN)是对角线矩阵其中包含C的特征值λn,使得λ1>λ2>…>λN。φ是特征向量矩阵,其中第一列的特征向量与特征值λ1相对应。在叶节点分解之后,得到三个特征值和3×3特征向量。只选择与两个最大的特征值相关的两个特征向量。然后将叶节点的点投射到PCA子空间(具有减小的尺寸的空间)以进行最佳旋转,如下所示:
Y=φT×X
Y现在有两个变量u和v而不是x,y,z信息。图9是来自“ski”点云文件进其中一个叶节点的3D点集群的2D投影的示例。PCA将单独应用于所有占用的结点。
φT对应一个4×4刚性变换矩阵T。在解码端还原时,需要用到此矩阵。则如何压缩此矩阵将至关重要。变换矩阵可表示为3×3旋转矩阵R和3×1平移矢量t。其中,T和R表示如下:
Figure BDA0003112048990000151
矩阵旋转R更紧凑地表示为四元数q(s,t,u,u)。
转换公式如下:
Figure BDA0003112048990000152
Figure BDA0003112048990000153
Figure BDA0003112048990000154
但是,旋转矩阵更容易受到舍入误差的影响,而舍入误差是在其元素量化中引入的。生成的四元数是满足关系的单位四元数,关系如下:
s2+t2+u2+v2=1
基于此关系对一个四元数组q进行隐式编码(知道3个变量就可以了)。选择q的最大分量进行隐式编码。另外,不需要存储该元素的正负符号,因为可以确保它始终为正。
Figure BDA0003112048990000155
范围内缩放其他值,因为
Figure BDA0003112048990000156
是四元数第二大元素的最大可能值。该方案允许存储3个旋转元素,使用8位(包括1个符号位)对其进行量化。只有不到4%的最坏情况发生。使用每个分量8位来量化向量t。
B-spline曲面投影模块的设计:
经过旋转后的点云集,位置信息的两个主要成分集中在X、Y方向上,高度信息(次要成分)将垂直于X-Y平面,作为次要成分可用更少的比特数表示和压缩。与平面投影相比,投影于曲面则可以用更加少的比特数表示且可以放宽增强层阈值设置的条件,更有利于应用平面压缩技术。曲面可以将旋转后三维点云的主要变化趋势,用有限个控制点表示即可。
B-spline曲线是由B-spline基函数的线性组合,是贝塞尔曲线的一般化。给定n+1个控制点(P0,P1,...,Pn)以及一个节点向量U={u0,u1,...,um}。p次B-spline曲线由这些控制点和节点向量U定义,设Ni,p(u)是第i个p次B-spline基函数,则p次B-spline曲线的公式为:
Figure BDA0003112048990000161
基函数的次数为p,第i个次数为p的基函数记为:
Figure BDA0003112048990000162
基于B-spline曲线的曲面重建实质上就是根据控制点进行B-spline曲面拟合。B-spline曲面是由多条B-spline曲线在u、v两个方向上多次构建形成的,由(m+1)×(n+1)个控制点构成一张控制网格,两个方向的参数节点矢量分别为U=[u0,u1,...um+k+1]和V=[v0,v1,...vm+i+1]。B-spline曲面的方程的定义如下:
Figure BDA0003112048990000163
基于B-spline曲线的点云的曲面重建,如图10所示。
被拟合点集中点的数量过多时,会增加时间复杂度。适当的下采样(体素栅格滤波)操作是尤为重要的。被体素化的点集已经经过了刚性变换,主要成分将大致沿着X-Y平面分布。相当于所有的点集都经历了“空间中的归一化”,体素栅格滤波可以采用固定的参数来规定栅格大小。
输入的点云数据创建一个三维体素栅格阵列,然后在每个体素(即,三维立方体)内,用体素中所有点的重心来近似显示体素中其他点,这样该体素就内所有点就用一个重心点最终表示,对于所有体素处理后得到过滤后的点云。
值得一提的是,拟合曲面在参数已知的的情况下,仅对有限个控制点编码即可,为了进一步提高编码精度。从均匀B-spline角度思考,已知参数的情况下,可以很容易的确定控制点的X、Y坐标,推广至非均匀B-spline曲面,则对X-Y平面上每个控制点的映射坐标相较于与之对应的均匀曲面的控制点的差值,进过归一化、非均匀量化和上下文编码。
混合DWT+DCT压缩模块的设计:
点云与曲面之间的“高度差”被投影平面上。首先,计算带有残差信息的点集在X、Y坐标方向上的最小长方体边界框长height_min和宽width_min,利用如下公式,结合点云个数numberOfPointCloud计算点云的伸缩系数expansion Coefficient:
Figure BDA0003112048990000164
适当的坐标缩放可以防止多点重合信息丢失,对点云的密集型程度也有一定的自适应性。
由于投影图像大多数情况下并非规则,需要对未投射的像素点进行滤波填充,以减少频域压缩后出现的“振铃现象”,节省压缩空间。然而,填充像素对点云的还原产生一定的影响,找不到合适的阈值抽离出2D图像中的点云的高度残差信息,很难通过自适应阈值的方案找到“留伪”和“去真”的平衡点。基于此,采用“双图压缩”方案,将点云的占用信息作为“占用图”与“高度图”采用不同的压缩方案。
高度图信息丰富,利用DCT技术转换为频域信息进行压缩是有必要的。被保留的低频信息越少越有利于压缩,但是恢复图像会出现明显的“块现象”。从而提出混合DWT+DCT的方案,即克服了“块现象”又保留了“高压缩”的特性。将图像分成32×32的块,进行1级的哈尔小波变换(DWT),仅保留低频区域,图像大小变为原先的
Figure BDA0003112048990000171
降低原始“高度图”的分辨率,将缩小后的图像进行16×16的分块进行DCT变换且仅保留低频(4×4)的部分后,如图11、图12所示。之后对其进行重新排列组合(排列前后如图11、图12),可将高度图压缩至原始的
Figure BDA0003112048990000172
经过非均匀量化处理后,每个像素可用4bit或3bit表示即可。重插列还将相近的低频信息重新组合,重新获得相关性,便于后续的上下文编码。
假设图像的长为numofBlockHeigh×16宽为numofBlockWidth×16。如图13、图14,经过DWT变换的图像,可以划分成numOfBlockHeigh×numOfBlockWidth个大小为16×16块,逐块地DCT变换与截取(4×4)后的频域示意图;如图15所示,将每个块中序号为1的“像素”集中成大小为numOfBlockHeigh×numOfBlockWidth的1块。以此类推,序号为2的“像素”集中至2块......。
对于占用图,进行32×32的分块后,进行3级哈尔小波变换(DWT),重新排列组合后图像大小缩小到原来的
Figure BDA0003112048990000173
经过量化处理后,每个像素可以用1bit表示,之后拟采用“游程编码”。
关于滤波,高度图中含有丰富的信息,主要的压缩是在频域方面,所以需要在压缩之前完成滤波,可以避免“振铃现象”。占用图中信息较为单一,主要采用的压缩方式是空域压缩,压缩还原之后为了克服块效应以及补充额外的点云(因投影造成点云丢失)。
量化模块:
旋转矩阵经过变换后,仅需存储四元数和均值即可。四元数中根据公式11,对四元数组q进行隐式编码,仅需量化3个大小为
Figure BDA0003112048990000174
的数字,采用了8bit均匀量化即可。均值,则结合对应结点的边界框大小进行归一化,之后引用8bit均匀量化。
对于曲面的控制点,如模块(4)所述,对X,Y方向采用“均匀网格差分”方案,之后利用点云的最小边界框{XBouding,YBouding,ZBouding}的大小,对控制点进行归一化,也确定了某方向上要编码的位数bitx,bity,bitz。公式如下,
Figure BDA0003112048990000181
其中数order表示曲面阶数和refinement表示拟合优化的迭代次数。
为解决部分异常点的问题,采用了非均匀量化。
残差高度图是由32×32经过DWT+DCT变换,在频域截取至4×4块后分区域量化如图16,采用4bit或3bit非均匀量化,占用图采用1bit均匀量化。量化示意图如下图17所示。
上下文算术编码模块:
对于旋转矩阵中的均值,大部分大部分集中在结点的“中心”附近,则对均值的高三位采用联合上下文编码,后续低比特位执行上下文为1的编码。
对于旋转矩阵中的四元数,各个结点中投影平面的方向之间存才相关性,则对的高三位采用联合上下文编码,后续低比特位执行上下文为1的编码。
不失一般性讨论,若上述二类8bit数据为(b7,b6,b5,b4,b3,b2,b1,b0)。首先对同类型数据的b7执行上下文数量为1的编码,b6依据b7进行上下文编码,b5依据b6,b7进行上下文编码,b4,b3,b2,b1,b0执行上下文数量为1的编码。
对于曲面的控制点和对应的bitx,bity,bitz各个方向的位数,利用上述上下文编码方案,进行逐位编码。
如图16所示,对于高度图,含有一系列大小为10个大小为numOfBlockHeigh×numOfBlockWidth的4bit和6个大小为numOfBlockHeigh×numOfBlockWidth的3bit信息。对numOfBlockHeigh×numOfBlockWidth的块数据按位置划分方式及扫描顺序,如图17。
若每个像素含4bit信息cur=(cur3,cur2,cur1,cur0):
a.处于位置1的像素,cur3执行上下文数量为1的编码,cur2依据cur3进行上下文编码,cur1依据cur3,cur2进行上下文编码,cur0依据cur3,cur2,cur1进行上下文编码;
b.处于位置2和3的像素,前一位置pre=(pre3,pre2,pre1,pre0)的像素编码当前像素cur,cur3依据pre3上下文编码,cur2依据pre3×2+pre2,cur1依据prea×2+pre2,cur3×2+cur2进行上下文编码,cur0依据cur3,cur2,cur1进行上下文编码;
c.处于位置4的像素,已经编码的像素pre11,pre01,pre10的像素编码当前像素cur,cur3依据pre113,pre013,pre103上下文编码,cur2依据pre113,pre301×2+pre012,pre310×2+pre102,cur1依据pre013,pre103,cur3×2+cur2进行上下文编码,cur0依据cur3,cur2,cur1进行上下文编码;
若每个像素含3bit信息cur=(cur3,cur2,cur1),遵循如上的编码规则,即可。
对于占用图,是一个像素值为1bit,大小为(4×numOfBlockHeigh)×(4×numOfBlockWidth)的图,扫描顺序及划分方式如图18所示。
若每个像素含4bit信息cur=(cur0):
a.处于位置1的像素,cur0执行上下文数量为1的编码;
b.处于位置2的像素,前一位置pre=(pre0)的像素编码当前像素cur,cur0依据pre0上下文编码;
c.处于位置3的像素,前两个位置pre1=(pre10),pre0=(pre00)的像素编码当前像素cur,cur0依据pre10×2+pre00上下文编码;
d.处于位置4的像素,已经编码的像素pre11,pre01,pre10的像素编码当前像素cur,cur0依据pre110,pre010,pre100上下文编码;
e.处于位置5的像素,已经编码的像素pre02,pre20,pre11,pre01,pre10的像素编码当前像素cur,cur0依据pre200,pre020,pre110,pre010,pre100上下文编码;
其他模块:
1)其他1(将坐标平移至结点坐标):
将划分至该结点的块内、块外点集的位置坐标减去其结点自身的位置坐标。
在“旋转矩阵/四元数模块”中涉及到了旋转矩阵的编码问题。其中的“均值”部分,不同结点间的均值坐标差异较大,到那时大部分靠近于各自的结点中心。可以利用这一点,来提高此类“均值”参数的编码效率。
2)其他2(直方图统计,得出自适应的占用码阈值):
关于统计直方图,用来对IDWT还原、空域滤波后的占用图信息进行统计,尽可能的指示出有效的“占用位”。若原始“占用图”中“高度图”的对应位置存储了高度信息,则置为10,否则置为0。
由于占用图先后经过DWT、截取、低频信息量化、填充0、IDWT的步骤后,恢复的占用图发生了变化。由于密集型点云投影所形成的占用图中大多数占用元素呈现出“不规则的片状”分布,恢复后的沿用元素则呈现出“规则的片状”分布。因此,占用图中的失真(留伪、去真)大部分发生在“片状图形”的边缘。占用图在经过滤波后,像素值将发生改变。
还原后的图像占用图中的像素值OCC将分布在0~10之间。通过设置量化间隔、统计各个量化间隔及以上的像素值个数。当像素值个数大于原始点云占用位数量时,则将此量化区间的中心值设置为占用阈值。当像素值OCC大于占用阈值时,则指定此像素为“占用”。适当的扩展有利于减少点云丢失(去真现象)。多余的大部分集中在图像边缘处,通过所对应的结点的包围框做空间截取,可以克服这一缺点。
3)其他3(边界框截取):
为了配合“其他2”模块的功能尽可能地还原出原始点云。将旋转变换后的恢复点云以此节点的边界框为大小做空间截取。
4)其他4(滤波1):
此滤波是为了解决高度图中占用与非占用之间差值较大,若直接进行频域压缩,还原后的图像,在相应的占用元素与非占用元素的边缘处出现“振铃现象”。因此,对占用图像中非占用的元素进行滤波。
滤波所采用的扫描方式就显得尤为重要。此滤波器将采用一维卷积核分别沿高度图的长宽两个方向分别做滤波操作。卷积核的尺寸为5×1,卷积核中元素值均为1/5。当卷积核位于边缘处,卷积核的尺寸会变成4×1(或3×1),卷积核中元素值相应的变成为1/4(或1/3)。
由于占用像素分布于高度图的中心位置,因此滤波的逐行(列)上的扫描顺序起点应是该行(列)上的中心位置,之后分别朝着两侧搜索非占用像素,并对其进行卷积。
5)其他5(滤波2):
此滤波是为了解决“占用图先后经过DWT、截取、低频信息量化、填充0、IDWT的步骤后,恢复的占用图沿用元素则呈现出“规则的片状”分布”与“为滤波的占用图的元素值只有两个无法直接统计直方图”的缺点,而提出的。
滤波所采用的扫描方式与“滤波器2”一致。
为了使实验结果更具说服力,本实验模型将PCRM V3.0点云编解码器作对比试验。同时处于对本次实验模型的初步分析可知,此点云编解码器是针对密集型点云所提出的。在高压缩的前提下,投影的方式或多或少地会造成点云的丢失,则选取的对比数据集将与上述两种标准编解码器中所用到的密集型几何有损的数据集保持一致。
针对MEPG PCC编解码器,选取AVSCat3中的basketball_player_vox11、dancer_vox11_00000001、exercise_vox11_00000002和model_vox11_00000001。
针对AVS 3.0点云编解码器,依据点云的密集程度,可以分为:固定型(具有连续表面的体素点云)、稠密型(不太连续的体素点云)、稀疏型、缺少型(非常稀疏的体素点云)。依据编解码器设计原理,选取固定型数据集中的basketball_player_vox11_00000200、dancer_vox11_00000001、boxer_viewdep_vox12和soldier_viewdep_vox12。
以下将分析编解码器重要的参数设置,曲度阈值θthreshold、曲面参数、DWT滤波器参数、统计直方图阈值参数。
进入增强层的判决条件为曲度阈值θthreshold。为保证当进入增强层的结点中的点云数量较多时,点云分布不会过于复杂。因此,分布平坦在点云八叉树划分过程中,级别(LoD)级别越低,进入增强层的条件越苛刻,θthreshold越小。但是θthreshold过小,将会使每个结点所携带的点云位置信息较少,导致压缩率提高。同时,进入增强层的结点越多,结点的固有参数亦会极大地影响压缩效果。
据此分析,假设根节点的级别(LoD=0),进过一次八叉树划分所得结点的级别(LoD=1),以此类推。当LoD≥2时,开始进行增强层判断。且随着LoD越大增大,所对应的θthreshold越大。阈值设置范围较为宽泛,此编码器对不同的对象具有鲁棒性。不失一般性,当LoD=2时,θthreshold=0.003,当LoD=3时,θthreshold=0.010,当LoD=4时,θthreshold=0.060,当LoD=5时,θthreshold=0.100,当LoD=6时,θthreshold=0.300,当LoD≥7时,θthreshold=0.500。
在B-spline曲面拟合过程中,所用到的参数有:B样条曲面的模型多项式的阶数(order)、拟合优化的迭代次数(refinement)、完成拟合优化后的迭代次数(iterations)、描述曲面本身的平滑性(interior_smoothness)、拟合优化时用到的权重(interior_weight)、曲面边界(非裁剪边界)的平滑性(boundary_smoothness)和优化时的边界权重(boundary_weight)。根据经验,在进入增强层的结点的划分级别不同是,参数均采用默认值interior_smoothness=0.2、interior_weight=0.2、interior_weight=0.2和boundary_weight=0.2。值得注意的是,结点LoD越低,该节点中点云的数量可能越多。而结点中点云数量、order、refinement以及iterations均会影响拟合时间。因此,当LoD=2/3/4时,order=3、refinement=1、iterations=1,当LoD≥5时,order=3、refinement=1、iterations=2。
图19显示了DWT的基本概念。
DWT之后,将输入信号分析为小波系数。可以处理小波系数并将其合成为输出信号。在整个过程中有四个滤波器:分解高通滤波器
Figure BDA0003112048990000211
和重建低通滤波器
Figure BDA0003112048990000212
分解低通滤波器
Figure BDA0003112048990000213
和重建低通滤波器
Figure BDA0003112048990000221
关于统计直方图,用来对IDWT还原、空域滤波后的占用图信息进行统计,尽可能的指示出有效的“占用位”。若原始“占用图”中“高度图”的对应位置存储了高度信息,则置为10,否则置为0。还原后的图像占用图中的像素值OCC将分布在0~10之间。通过设置量化间隔为0.5,OCC_set={cco0,cco1,...,cco19,cco20}={0.5,1.0,...,9.5,10.0}则计算占用阈值OCC_threshold∈OCC_set,当ccoi≥OCC_threshold时,
Figure BDA0003112048990000222
的占用位的数量≥原始点云中有效占用位数量×β。OCC-threshold可能不唯一,取最大的即可。扩展系数β=1.2,适当的扩展有利于减少点云丢失(去真现象)。多余的大部分集中在图像边缘处,通过所对应的结点的包围框做空间截取,可以克服这一缺点。
表1中提供了“基于曲面投影”的编解码器与PCRM V3.0编解码器的定量实验结果,使用BDDR来评估不同的编解码的压缩性能,其中PCRM V3.0用作基准编解码器。可以观察到我的方法与(即,基于曲面投影的几何压缩编解码器)在与PCRM V3.0相比较时,针对前三个压缩对象basketball_player_vox11、dancer_vox11_00000001、exercise_vox11_00000002,在相同D1 PSNR的条件下,码率分别提高了54.9%、49.3%、48.6%;在相同D2PSNR的条件下,码率分别提高了38.2%、33.5%、28.1%。这些实验结果清楚地证明了,对此类压缩对象,我的方法针优于基于AVS 3.0传统编解码器。针对第四个压缩对象model_vox11_00000001,在相同D1 PSNR的条件下,码率分别提高了21.2%;在相同D2 PSNR的条件下,码率分别降低了1.5%。相比上前三个压缩对象,码率提升效果有所下降。但是,这四个压缩对象,在D1 PSNR相同的情况下,压缩率还是得到很大的提升。
表1本发明的“基于曲面投影”的编解码器与PCEM V3.0编解码器的BDBR(%)对比结果
Figure BDA0003112048990000223
对于上述压缩的对比方案,图20a-h中提供了相应的速率失真曲线。本发明方法实现了更好的压缩性能,尤其是高比特率。例如,针对压缩对象basketball_player_vox11,以D1 PSNR为标准,在码率均为0.15bpp时,“基于曲面投影”方案的D1 PSNR超出PCRM V3.0所提供方案的约2.5dB。
由于本实验中设计了多个模块,以下将对三个主要模块(结点包围框扩充模块、B-slpine曲面投影模块、混合DWT+DCT压缩模块)的有效性设计了消融实验。
结点包围框扩充模块的消融实验:
如图21a-b所示,将“基于曲面投影”的方案与去除“结点包围框扩充”模块的方案作对比。压缩对象为basketball_player_vox11,R-D曲线对比图。相比无此模块的编解码器,随着码率的提升,两个编解码器之间D1 PSNR的差值将越来越高。在码率大于0.2bpp后,码率提升了约1dB。基于投影的策略,随着阈值的调低,点云恢复质量变高。但是,同时会使进入增强层的节点数越多、曲率较大的结点变多,会导致“曲面边缘过拟合”现象严重。最终,随着BPP的增加,使PSNR(D1、D2)的提升收到了限制。
对比二者的D2 PSNR曲线可以发现。在码率较低(恢复质量较差)时,去除此模块的编解码器略好于“基于曲面投影”的编解码器。但是,随着码率的提升(恢复质量较好)时,二者的几乎无差别。
计算其BDDR可得,在相同D1 PSNR的条件下,码率分别提高了8.6%。在相同D2PSNR的条件下,码率分别降低了3.8%。
B-slpine曲面投影模块的消融实验:
如图22a-b所示,将“基于曲面投影”编解码器的“B-slpine曲面投影”模块简化为“平面投影”模块,并与原始方案作对比。压缩对象为basketball_player_vox11,R-D曲线对比图。计算其BDBR可得,在相同D1 PSNR的条件下,码率分别提高了13.8%。在相同D2 PSNR的条件下,码率分别提高了42.0%。与平面方案相比,D2指标得到了明显的提升,D1略有提升。
为了进一步探究二者的区别。对“曲面投影”与“平面投影”的编解码做如下假设。假设根节点的级别(LoD=0),进过一次八叉树划分所得结点的级别(LoD=1),以此类推。当LoD≥2时,开始进行增强层判断。当2≤LoD≤5时,曲度阈值θthreshold均一致。并且八叉树划分停止在LoD=6。
曲度阈值θthreshold∈{0.01,0.02,0.03,0.04,0.05},数据记录结果如表2和表3。当曲度阈值设置相同时,曲面投影的方案有着更好的恢复质量(PSNR更大)。
表2是本发明的“平面投影”的编解码统计的数据记录结果;
Figure BDA0003112048990000241
表3本发明的“曲面投影”的编解码统计的数据记录结果;
Figure BDA0003112048990000242
为了进一步探究曲度阈值对率失真曲线的影响,根据表2和表3绘制本发明的针对自适应性的率失真曲线对比图,如图23。多数情况下,曲度阈值变化过程中“曲面投影”方案在优于“平面投影”方案。
综上所述,在曲度阈值固定的情况下,前者优于后者。也从一定程度上反应出,针对不同的压缩对象,不再需要精调曲度阈值θthresold,即可获得更高的PSNR。“曲面投影”模块增加了此编解码的自适应性。
混合DWT+DCT压缩模块的消融实验:
将“基于平面投影”编解码器的“混合DWT+DCT压缩”模块简化为“DCT压缩”模块,并与原始方案做对比。压缩对象为basketball_player_vox11,R-D曲线对比图,如图24a-b为针对“混合DWT+DCT压缩”模块的率失真曲线对比图。计算其BDDR可得,在相同D1 PSNR的条件下,码率分别提高了37.3%。在相同D2 PSNR的条件下,码率分别提高了37.6%。
DCT截取框越小(压缩率越高),则恢复图像的“块效应”加重。DWT可以利用空域冗余性,在不继续减小DCT截取块大小时,进一步提高压缩效率。用DWT技术带来的“模糊效应”换取“块效应”的减少和压缩率的提升,还是值得的。
请参阅图1,本发明提供了一种点云的几何解码方法,所述点云定义在树结构中,包括以下步骤:
一种点云几何编码方法,所述点云定义在树结构中,其特征在于,包括以下步骤:
L1:对码流解码得到当前节点中的点云的曲面投影高度信息及曲面信息;
L2:根据所述当前节点中的点云的曲面投影高度信息得到所述当前节点中的点云的几何信息。
在本实施例中,在解码端执行所属步骤L1、L2。可参阅图2的基于“曲面投影”的增强型八叉树点云几何压缩的解码方案,图26中呈现了各模块的逻辑关系。图26是本发明的基于曲面投影的增强型八叉树点云几何压缩的解码方案;
以上说明是依据发明的构思和工作原理的最佳实施例。上述实施例不应理解为对本权利要求保护范围的限制,依照本发明构思的其他实施方式和实现方式的组合均属于本发明的保护范围。

Claims (35)

1.一种点云几何编码方法,所述点云定义在树结构中,其特征在于,包括以下步骤:
C1:不失一般性,将树结构采用八叉树,对于当前点云采用八叉树划分成节点;
C4:对所述当前节点中的点云进行曲面投影产生的曲面投影高度信息存入二维平面;
C5:对于所述曲面投影高度信息及曲面信息进行编码。
2.根据权利要求1所述的点云几何编码方法,其特征在于,所述的步骤C1包括:
C6:对于所述当前点云采用“节点包围框扩充型”八叉树划分成节点。
3.根据权利要求1所述的点云几何编码方法,其特征在于,所述的步骤C1包括:
C2:对于所述当前节点设置划分标志位,表示所述当前节点是否要继续划分;
C3:若所述划分标志位表示继续划分,则对八叉树结构继续进行划分。
4.根据权利要求1所述的点云几何编码方法,其特征在于,所述的步骤C5包括:
C7:对于所述曲面投影高度信息,采用混合DWT+DCT变换技术进行变换得到变换系数;
C8:对所述变换系数进行编码。
5.根据权利要求2所属的点云的几何编码方法,其特征在于,在所述的步骤C6前还包括方法四,其中,所述方法四包括以下步骤:
D1:对于所属当前结点的点集,分配两个集合idx、idx1分别是块内点云集、块外点云集,V3<UInt>pos用于存储结点坐标,1<<nodeSizeLog2表示结点大小,其中V3<UInt>nodeSizeLog2;
D2:当该点集中的点的位置坐标,属于以pos为基准,大小为1<<nodeSizeLog2的立方体中的点集idx;
D3:当该点集中的点的位置坐标,属于以pos-(1<<min{nodeSizeLog2-5,2})为基准,外边框大小为(1<<nodeSizeLog2)+(1<<(min{nodeSizeLog2-5,2}+1))和内边框大小为1<<nodeSizeLog2的空心立方体的点集idx1。
6.根据权利要求5所属的点云的几何编码方法,其特征在于,在步骤D2前还包括方法五,所述方法五包括以下步骤:
D5:对于该节点的块内点集idx中有numOfPiontClouds个点,其中第i_th(∈{0,1,...,numOfPiontClouds})个点,记为idxi_th;以及
D6:对于该点idxi_th,直接进行八叉树划分,该点会在八个子结点中找到一个与之对应的第i∈{0,1,..,7}个子结点(childNode_i),被记为
Figure FDA0003112048980000011
7.根据权利要求6所属的点云的几何编码方法,其特征在于,在步骤D6前还包括方法六,所述方法六包括以下步骤:
D7:不是一般性,若该节点中的第idxi_th个点,被划分至
Figure FDA0003112048980000021
则将idxi_th存入第0个子结点的块内点云集childNode_0.idx;以及
D8:该节点中的该点idxi_th,被划分至
Figure FDA0003112048980000022
且该点的位置坐标为V3<UInt>pointCloudPos,则计算其偏移方向为
Figure FDA0003112048980000023
8.根据权利要求7所属的点云的几何编码方法,其特征在于,在步骤D8前还包括方法七,所述方法七还包括以下步骤:
D9:该点idxi_th的偏移方向为offsetDirection={0,0,0},位置坐标为pointCloudPos,被划分至
Figure FDA0003112048980000024
则其偏移坐标为
Figure FDA0003112048980000025
9.根据权利要求8所属的点云的几何编码方法,其特征在于,在步骤D9前还包括方法八,所述方法八包括以下步骤:
D10:该点idxi_th的偏移坐标为
Figure FDA0003112048980000026
且划分至
Figure FDA0003112048980000027
进行二次八叉树划分后被划分至位置i_offseti_th∈{0,...,7}。
10.根据权利要求9所属的点云的几何编码方法,其特征在于,在步骤D10前还包括方法九,所述方法九包括以下步骤:
D11:若第idxi_th个点被二次划分至i_offseti_th=0,不做处理;
D12:若第idxi_th个点被二次划分至i_offseti_th=1,则idxi_th存入childNodei,idx1(i=1);
D13:若第idxi_th个点被二次划分至i_offseti_th=2,则idxi_th存入childNodei.idx1(i=2);
D14:若第idxi_th个点被二次划分至i_offseti_th=4,则idxi_th存入childNodei.idx1(i=4);
D15:若第idxi_th个点被二次划分至i_offseti_th=3,则idxi_th存入childNodei.idx1(i=1,2,3);
D16:若第idxi_th个点被二次划分至i_offseti_th=5,则idxi_th存入childNodei.idx1(i=2,4,5);
D17:若第idxi_th个点被二次划分至i_offseti_th=6,则idxi_th存入childNodei.idx1(i=2,4,6);
D18:若第idxi_th个点被二次划分至i_offseti_th=7,则idxi_th存入childNodei.idx1(i=1,2,3,4,5,6,7)。
11.根据权利要求5所属的点云的几何编码方法,其特征在于,在步骤D3前还包括方法十,所述方法十包括以下步骤:
S3:对于该节点的块内点集idx1中有numOfPiontClouds1个点,其中第i1_th(∈{0,1,...,numOfPiontClouds1})个点,记为idx1i1_th
S4:对于该点idx1i1_th,以
Figure FDA0003112048980000031
为基准,以
Figure FDA0003112048980000032
为大小的立方体进行截取。
12.根据权利要求11所属的点云的几何编码方法,其特征在于,在步骤S4前还包括方法十一,所述方法十一包括以下步骤:
D19:若点idx1i1_th的位置坐标处于立方体外,则被舍去;
D20:若点idx1i1_th的位置坐标处于立方体内,其被八叉树划分至
Figure FDA0003112048980000033
则被存入
Figure FDA0003112048980000034
13.根据权利要求1所属的点云的几何编码方法,其特征在于,在所述的步骤C4前还包括方法十二,所述方法十二包括以下步骤:
E1:对于当前点集A={(Xi_th,Yi_th,Zi_th)},i_th∈{idx,idx1},利用B-样条(B-Spline)曲面(nurbs)拟合;
E2:结合曲面nurbs、点集A,计算对应的高度残差,并存为带有残差信息的点集A″′={(X″′i_th,Y″′i_th,Z″′i_th)},i-th∈{idx,idx1}。
14.根据权利要求13所属的点云的几何编码方法,其特征在于,在步骤E1前还包括方法十三,所述方法十三包括以下步骤:
E3:对于所属当前结点的点集A,利用旋转矩阵T将结点的点云刚性变换至PCA子空间(具有减小的尺寸的空间),形成旋转后的点集A′={(X′i-th,Y′i_th,Z′i_th)},i_th∈{idx,idx1};
E4:对于当前点集A′,利用体素栅格滤波对点集进行下采样,得到点集A″={(X″i_th,Y″i_th,Z″i_th)},i_th∈{idx,idx1};以及
E5:对于当前点集A″,利用B-样条(B-Spline)曲面(nurbs)拟合。
15.根据权利要求13所属的点云的几何编码方法,其特征在于,在步骤E2前还包括方法十四,所述方法十四包括以下步骤:
E6:对于该节点的块内点集A中有numOfPiontClouds0个点,其中第i0_th(∈{0,1,...,numOfpiontClouds0})个点,记为idx0i0_th(∈{idx,idx1});
E7:对于该点idx0i0_th,所对应位置坐标为(Xi0_th,Yi0_th,Zi0_th),根据Xi0_th、Yi0_th以及nurbs中的参数,可以求出Z′i0_th;进而求出高度残差Z″i0_th=Zi0_th-Z′i0_th,则(X″′i0_th,Y″′i0_th,Z″′i0_th)=(Xi0_th,Yi0_th,Z″i0_th)并存入点集A″′。
16.根据权利要求4所属的点云的几何编码方法,其特征在于,在所述的步骤C7前还包括方法十五,所述方法十五包括以下步骤:
F1:对于带有残差信息的点集A′″={(X″′i_th,Y″′i_th,Z″′i_th)},i_th∈{idx,idx1},在X、Y坐标方向上的最小长方体边界框长height_min和宽width_min,利用如下公式,结合点云个数numOfPiontClouds0计算点云的伸缩系数:
Figure FDA0003112048980000041
F2:对于点云的伸缩系数:
Figure FDA0003112048980000042
计算投影平面的长
Figure FDA0003112048980000043
和宽
Figure FDA0003112048980000044
17.根据权利要求16所属的点云的几何编码方法,其特征在于,在步骤F2前还包括方法十六,所述方法十六包括以下步骤:
F3:对于带有残差信息的点集A″′={(X″′i_th,Y″′i_th,Z″′i_th)},根据round((X″′i_th+3)×expansionCoefficient)与round((Y″′i_th+3)×expansionCoefficient)的位置关系,投影至“高度残差”图;
F4:当“高度残差”图中该“像素”被占用,对相同尺寸的“占用”图的相应位置的像素置一;否则,置零。
18.根据权利要求14所属的点云的几何编码方法,其特征在于,在步骤F3前还包括方法十七,所述方法十七包括以下步骤:
F5:对高度图,划分成numOfBlockHeight×numOfBlockWidth个尺寸为32×32的块;
F6:对numOfBlockHeight×numOfBlockWidth个尺寸为32×32的块,分别经过一级DWT变换,仅保留16×16的低频块。
19.根据权利要求18所属的点云的几何编码方法,其特征在于,在步骤F6前还包括方法十八,所述方法十八包括以下步骤:
F7:对来自高度图的numOfBlockHeight×numOfBlockWidth个尺寸为16×16的块,执行DCT变换仅保留4×4的低频块;
F8:对来自高度图的numOfBlockHeight×numOfBlockWidth个尺寸为4×4的块,重排列成4×4个尺寸为numOfBlockHeight×numOfBlockWidth的块。
20.根据权利要求17所属的点云的几何编码方法,其特征在于,在步骤F4前还包括方法十九,所述方法十九包括以下步骤:
F9:对来自占用图的numOfBlockHeight×numOfBlockWidth个尺寸为32×32的块,执行三级DWT变换仅保留4×4的低频块;
F10:对来自占用图的numOfBlockHeight×numOfBlockWidth个尺寸为4×4的块,原位聚合成4×numOfBlockHeight×4×numOfBlockWidth的压缩高度图。
21.根据权利要求4所属的点云的几何编码方法,其特征在于,在步骤C8前还包括方法二十,所述方法二十包括以下步骤:
G1:对于拟合曲面nurbs,阶数为order、拟合优化迭代次数为refinement,则含有(order+refinement)2个控制点CV={cvi,j}i,j∈{0,...,order+refinement-1};
G2:根据当前点集A′″={(X″′i_th,Y″′i_th,Z″′i_th)},i_th∈{idx,idx1},计算包围框{X″′,Y″′,Z″′},
Figure FDA0003112048980000064
Figure FDA0003112048980000065
量化比特数{bitx,bity,bitz},
Figure FDA0003112048980000061
G3:对于(order+refinement)2个控制点CV,则控制点V3<Double>cvi,j,分别对计算所得的
Figure FDA0003112048980000062
Figure FDA0003112048980000063
应用比特数位bitx、bity、bitz的非均匀量化得值为Bx、By、Bz
G4:不失一般性,bitx比特的Bx=(b7,...,bi),i=8-bitx。数据的b7执行上下文数量为1的编码,b6依据b7进行上下文编码,b5依据b6,b7进行上下文编码,b4,...,bi执行上下文数量为1的编码。
22.根据权利要求19所属的点云的几何编码方法,其特征在于,在步骤F8前还包括方法二十一,所述方法二十一包括以下步骤:
H1:对来自高度图的4×4个尺寸为numOfBlockHeight×numOfBlockWidth的块BlockI,J,I,J={0,1,2,3},当(I+J)<4时,对应的块BlockI,J执行4bit非均匀量化,否则执行3bit非均匀量化;
H2:对于高度图,含有一系列大小为10个大小为numOfBlockHeigh×numOfBlockWidth的4bit和6个大小为numOfBlockHeigh×numOfBlockWidth的3bit信息。
23.根据权利要求22所属的点云的几何编码方法,其特征在于,在步骤H2前还包括方法二十二,所述方法二十二包括以下步骤:
H3:对来自高度图的BlockI,J,含有4bit信息cur_x_y=(cur3,cur2,cur1,cur0);或者,含有4bit信息cur_x_y=(cur3,cur2,cur1),其中x∈{1,…,numOfBlockHeigh},y∈{1,...,numOfBlockWidth};
H4:若x=1,y=1时cur_x_y位于位置1;若2≤x≤numOfBlockHeigh,2≤y≤numOfBlockWidth时cur_x_y位于位置4;若x=1,2≤y≤numOfBlockWidth时cur_x_y位于位置2;若2≤x≤numOfBlockHeigh,y=1时cur_x_y位于位置3。
24.根据权利要求23所属的点云的几何编码方法,其特征在于,在步骤H3前还包括方法二十三,所述方法二十三包括以下步骤:
H5:对来当前cur_x_y位于位置1,cur3执行上下文数量为1的编码,cur2依据cur3进行上下文编码,cur1依据cur3,cur2进行上下文编码,cur0依据cur3,cur2,cur1进行上下文编码;
H6:对来当前cur_x_y位于位置2和3的像素,前一位置pre=(pre3,pre2,pre1,pre0)的像素编码当前像素cur,cur3依据pre3上下文编码,cur2依据pre3×2+pre2,cur1依据pre3×2+pre2,cur3×2+cur2进行上下文编码,cur0依据cur3,cur2,cur1进行上下文编码;
H7:对来当前cur_x_y位于位置4的像素,已经编码的像素pre11(对角线),pre01(x方向),pre10(y方向)的像素编码当前像素cur,cur3依据pre113,pre013,pre103上下文编码,cur2依据pre113,pre301×2+pre012,pre310×2+pre102,cur1依据pre013,pre103,cur3×2+cur2进行上下文编码,cur0依据cur3,cur2,cur1进行上下文编码。
25.根据权利要求20所属的点云的几何编码方法,其特征在于,在步骤F10前还包括方法二十四,所述方法二十四包括以下步骤:
J1:对高度图的尺寸为4×numOfBlockHeight×4×numOfBlockWidth执行均匀量化,后生成1bit信息cur_x_y=(cur0),其中x∈{1,..,numOfBlockHeigh},y∈{1,...,numOfBlockWidth};
J2:若x=1,y=1时cur_x-y位于位置1。若x=2,y=1或x=1,y=2时cur_x_y位于位置2;若x=1,3≤y≤numOfBlockWidth或3≤x≤numOfBlockHeigh,y=1时cur_x__y位于位置2;若3≤x≤numOfBlockHeigh,3≤y≤numOfBlockWidth时cur_x_y位于位置5;其他情况,cur_x_y位于位置4。
26.根据权利要求25所属的点云的几何编码方法,其特征在于,在步骤J2前还包括方法二十五,所述方法二十五包括以下步骤:
J3:对来当前cur_x_y位于位置1,cur0执行上下文数量为1的编码;
J4:对来当前cur_x_y位于位置2的像素,前一位置pre=(pre0)的像素编码当前像素cur,cur0依据pre0上下文编码;
J5:对来当前cur_x_y位于位置3的像素,前两个位置pre1=(pre10),pre0=(pre00)的像素编码当前像素cur,cur0依据pre10×2+pre00上下文编码;
J6:对来当前cur_x_y位于位置4的像素,已经编码的像素pre11(对角线),pre01(x方向),pre10(y方向)的像素编码当前像素cur,cur0依据pre110,pre010,pre100上下文编码;
J7:对来当前cur_x_y位于位置5的像素,已经编码的像素
Figure FDA0003112048980000081
的像素编码当前像素cur,cur0依据pre200,pre020,pre110,pre010,pre100上下文编码。
27.根据权利要求14所属的点云的几何编码方法,其特征在于,在步骤E3前还包括方法二十六,所述方法二十六包括以下步骤:
K1:利用4×4刚性变换矩阵T进行了坐标系变换,变换矩阵由3×3旋转矩阵R和3×1平移矢量t。
Figure FDA0003112048980000082
28.根据权利要求27所属的点云的几何编码方法,其特征在于,在步骤K1前还包括方法二十七,所述方法二十七包括以下步骤:
K2:矩阵旋转R更紧凑地表示为四元数q(s,t,u,v);转换公式如下:
Figure FDA0003112048980000083
Figure FDA0003112048980000084
K3:对四元数组q(s,t,u,v)进行隐式编码,仅需量化3个大小为
Figure FDA0003112048980000085
的数字,采用了8bit均匀量化即可;
K4:平移矢量t则结合对应结点的边界框大小进行归一化,之后引用8bit均匀量化。
29.根据权利要求28所属的点云的几何编码方法,其特征在于,在步骤K3前还包括方法二十八,所述方法二十八包括以下步骤:
K5:各个结点中投影平面的方向之间存才相关性,则对四元数组q(s,t,u,v)的高三位采用联合上下文编码,后续低比特位执行上下文为1的编码。
30.根据权利要求29所属的点云的几何编码方法,其特征在于,在步骤K5前还包括方法二十九,所述方法二十九包括以下步骤:
K6:8bit数据为(b7,b6,b5,b4,b3,b2,b1,b0);首先对同类型数据的b7执行上下文数量为1的编码,b6依据b7进行上下文编码,b5依据b6、b7进行上下文编码,b4、b3、b2、b1、b0执行上下文数量为1的编码。
31.根据权利要求28所属的点云的几何编码方法,其特征在于,在步骤K4前还包括方法三十,所述方法三十包括以下步骤:
K5:平移矢量t,大部分集中在结点的“中心”附近,则对均值的高三位采用联合上下文编码,后续低比特位执行上下文为1的编码。
32.一种点云几何编码设备,其特征在于,包括处理器、存储器及通信总线:
所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述通信总线实现处理器和存储器之间的连接通信;
所述处理器执行所述计算机可读程序时实现如权利要求1-31任意一项所述的点云几何编码方法。
33.一种点云几何解码方法,所述点云定义在树结构中,其特征在于,包括以下步骤:
L1:对码流解码得到当前节点中的点云的曲面投影高度信息及曲面信息;
L2:根据所述当前节点中的点云的曲面投影高度信息得到所述当前节点中的点云的几何信息。
34.根据权利要求33所述的点云几何解码方法,其特征在于,所述的步骤L1包括:
对码流解码得到的变换系数,采用混合DWT+DCT逆变换技术得到所述当前节点中的点云的曲面投影高度信息。
35.一种点云几何解码设备,其特征在于,包括处理器、存储器及通信总线;
所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述通信总线实现处理器和存储器之间的连接通信;
所述处理器执行所述计算机可读程序时实现如权利要求33-34任意一项所述的点云解码方法。
CN202110652236.3A 2021-06-11 2021-06-11 一种点云的几何编码方法和解码方法及设备 Active CN113284250B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110652236.3A CN113284250B (zh) 2021-06-11 2021-06-11 一种点云的几何编码方法和解码方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110652236.3A CN113284250B (zh) 2021-06-11 2021-06-11 一种点云的几何编码方法和解码方法及设备

Publications (2)

Publication Number Publication Date
CN113284250A true CN113284250A (zh) 2021-08-20
CN113284250B CN113284250B (zh) 2023-06-30

Family

ID=77284289

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110652236.3A Active CN113284250B (zh) 2021-06-11 2021-06-11 一种点云的几何编码方法和解码方法及设备

Country Status (1)

Country Link
CN (1) CN113284250B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113505189A (zh) * 2021-09-07 2021-10-15 中国电子科技集团公司第二十八研究所 一种基于多层级全球格网的面状目标栅格化方法
CN114596415A (zh) * 2022-03-03 2022-06-07 广东汇天航空航天科技有限公司 地形数据处理方法、装置、设备及存储介质
CN115077437A (zh) * 2022-05-13 2022-09-20 东北大学 基于声发射定位约束的岩石水力压裂裂缝形态表征方法
CN116582134A (zh) * 2023-07-11 2023-08-11 江苏盖亚环境科技股份有限公司 一种钻测一体化装备数据处理方法
WO2024037244A1 (zh) * 2022-08-19 2024-02-22 腾讯科技(深圳)有限公司 点云数据的解码方法、编码方法、装置、存储介质及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101786200A (zh) * 2010-02-26 2010-07-28 华中科技大学 一种自由曲面上的投影式激光刻蚀方法
CN111145090A (zh) * 2019-11-29 2020-05-12 鹏城实验室 一种点云属性编码方法、解码方法、编码设备及解码设备
US20200151915A1 (en) * 2018-05-09 2020-05-14 Peking University Shenzhen Graduate School Hierarchical division-based point cloud attribute compression method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101786200A (zh) * 2010-02-26 2010-07-28 华中科技大学 一种自由曲面上的投影式激光刻蚀方法
US20200151915A1 (en) * 2018-05-09 2020-05-14 Peking University Shenzhen Graduate School Hierarchical division-based point cloud attribute compression method
CN111145090A (zh) * 2019-11-29 2020-05-12 鹏城实验室 一种点云属性编码方法、解码方法、编码设备及解码设备

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
YINGSHEN HE 等: "A point cloud compression framework via spherical projection", 《2020 IEEE INTERNATIONAL CONFERENCE ON VISUAL COMMUNICATIONS AND IMAGE PROCESSING (VCIP)》 *
YINGSHEN HE 等: "A point cloud compression framework via spherical projection", 《2020 IEEE INTERNATIONAL CONFERENCE ON VISUAL COMMUNICATIONS AND IMAGE PROCESSING (VCIP)》, 1 December 2020 (2020-12-01), pages 62 - 65 *
YUERU CHEN 等: "Point Cloud Attribute Compression via Successive Subspace Graph Transform", 《2020 IEEE INTERNATIONAL CONFERENCE ON VISUAL COMMUNICATIONS AND IMAGE PROCESSING (VCIP)》 *
YUERU CHEN 等: "Point Cloud Attribute Compression via Successive Subspace Graph Transform", 《2020 IEEE INTERNATIONAL CONFERENCE ON VISUAL COMMUNICATIONS AND IMAGE PROCESSING (VCIP)》, 1 December 2020 (2020-12-01), pages 66 - 69 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113505189A (zh) * 2021-09-07 2021-10-15 中国电子科技集团公司第二十八研究所 一种基于多层级全球格网的面状目标栅格化方法
CN114596415A (zh) * 2022-03-03 2022-06-07 广东汇天航空航天科技有限公司 地形数据处理方法、装置、设备及存储介质
CN115077437A (zh) * 2022-05-13 2022-09-20 东北大学 基于声发射定位约束的岩石水力压裂裂缝形态表征方法
WO2024037244A1 (zh) * 2022-08-19 2024-02-22 腾讯科技(深圳)有限公司 点云数据的解码方法、编码方法、装置、存储介质及设备
CN116582134A (zh) * 2023-07-11 2023-08-11 江苏盖亚环境科技股份有限公司 一种钻测一体化装备数据处理方法
CN116582134B (zh) * 2023-07-11 2023-10-13 江苏盖亚环境科技股份有限公司 一种钻测一体化装备数据处理方法

Also Published As

Publication number Publication date
CN113284250B (zh) 2023-06-30

Similar Documents

Publication Publication Date Title
CN113284250A (zh) 一种点云的几何编码方法和解码方法及设备
de Oliveira Rente et al. Graph-based static 3D point clouds geometry coding
WO2021000658A1 (zh) 点云编解码方法、编码器、解码器及计算机存储介质
WO2022063055A1 (zh) 基于多尺度结构化字典学习的3d点云压缩系统
CN113678466A (zh) 用于预测点云属性编码的方法和设备
JP7330306B2 (ja) 変換方法、逆変換方法、エンコーダ、デコーダ及び記憶媒体
Huang et al. Octree-Based Progressive Geometry Coding of Point Clouds.
Distasi et al. Image compression by B-tree triangular coding
Waschbüsch et al. Progressive Compression of Point-Sampled Models.
Ochotta et al. Image‐based surface compression
JPH06326987A (ja) データ圧縮を伴った画像を表現する方法及び装置
KR100714652B1 (ko) 단위 화상 영역 조절 방법, 중요도 정보 보존 시스템 및 컴퓨터 판독 가능 기록 매체
WO2021232251A1 (zh) 一种点云编解码方法、编码器、解码器及存储介质
Pavez et al. Dynamic polygon cloud compression
CN113518226A (zh) 一种基于地面分割的g-pcc点云编码改进方法
US20220207781A1 (en) Transform method, inverse transform method, encoder, decoder and storage medium
JP4398785B2 (ja) 多次元データ符号化方法、多次元データ復号方法、テクスチャ画像作成方法及びそれらの方法を実現するための装置、並びにそれらの方法を実現するためのプログラム
Armando et al. Adaptive mesh texture for multi-view appearance modeling
WO2001052182A9 (en) Compression of 3d surfaces using progressive geometry
Schuster et al. Compression and rendering of textured point clouds via sparse coding
Mamou et al. A preliminary evaluation of 3D mesh animation coding techniques
CN114449248B (zh) 基于球面小波变换的球面图像压缩方法
WO2023193709A1 (zh) 编码、解码方法、装置及设备
WO2023197990A1 (zh) 编码方法、解码方法及终端
WO2024078925A1 (en) Motion coding for dynamic meshes using intra- and inter-frame graph fourier transforms

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant