CN118303029A - 解码方法、编码方法、解码器以及编码器 - Google Patents

解码方法、编码方法、解码器以及编码器 Download PDF

Info

Publication number
CN118303029A
CN118303029A CN202180104567.1A CN202180104567A CN118303029A CN 118303029 A CN118303029 A CN 118303029A CN 202180104567 A CN202180104567 A CN 202180104567A CN 118303029 A CN118303029 A CN 118303029A
Authority
CN
China
Prior art keywords
component
attribute
value
quantization residual
residual value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180104567.1A
Other languages
English (en)
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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Publication of CN118303029A publication Critical patent/CN118303029A/zh
Pending legal-status Critical Current

Links

Abstract

本申请实施例提供了一种解码方法、编码方法、解码器以及编码器。该方法包括:依次从当前点云的码流中解码当前点的第一分量的属性量化残差值、第二分量的属性量化残差值以及第三分量的属性量化残差值;其中,所述第一分量为U分量、V分量、G分量或B分量;基于该第一分量的属性量化残差值、该第二分量的属性量化残差值以及该第三分量的属性量化残差值,获取该当前点的属性重建值。本申请将当前点的第一个待解码的分量(即第一分量)设计为U分量、V分量、G分量或B分量,能够提升解压缩性能。

Description

解码方法、编码方法、解码器以及编码器 技术领域
本申请实施例涉及编解码技术领域,并且更具体地,涉及解码方法、编码方法、解码器以及编码器。
背景技术
点云已经开始普及到各个领域,例如,虚拟/增强现实、机器人、地理信息系统、医学领域等。随着扫描设备的基准度和速率的不断提升,可以准确地获取物体表面的大量点云,往往一个场景下就可以对应几十万个点。数量如此庞大的点也给计算机的存储和传输带来了挑战。因此,对点的压缩和解压缩也就成为一个热点问题。
对于点云的压缩来说,主要需要压缩其位置信息和属性信息。具体而言,先通过对点云的位置信息进行八叉树编码;同时,根据八叉树编码后的当前点的位置信息在已编码的点中选择出用于预测当前点的属性预测值的点后,基于选择出的点对当前点的属性信息进行预测,再通过与属性信息的原始值进行做差的方式来编码属性信息,以实现对点云的编码。对于点云的解压缩来说,其过程为点云压缩的反向过程。
截止目前,如何提升解码器的解压缩性能仍然是本领域亟需解决的技术问题。
发明内容
本申请实施例提供了一种解码方法、编码方法、解码器以及编码器,能够提升解压缩性能。
第一方面,本申请提供了一种解码方法,包括:
依次从当前点云的码流中解码当前点的第一分量的属性量化残差值、第二分量的属性量化残差值以及第三分量的属性量化残差值;其中,该第一分量为U分量、V分量、G分量或B分量;
基于该第一分量的属性量化残差值、该第二分量的属性量化残差值以及该第三分量的属性量化残差值,获取该当前点的属性重建值。
第二方面,本申请提供了一种编码方法,包括:
确定当前点云中待编码的当前点的第一分量的属性量化残差值、第二分量的属性量化残差值以及第三分量的属性量化残差值;其中,该第一分量为U分量、V分量、G分量或B分量;
依次编码该第一分量的属性量化残差值、该第二分量的属性量化残差值以及该第三分量的属性量化残差值,以得到该当前点云的码流。
第三方面,本申请提供了一种解码器,包括:
解码单元,用于依次从当前点云的码流中解码当前点的第一分量的属性量化残差值、第二分量的属性量化残差值以及第三分量的属性量化残差值;其中,该第一分量为U分量、V分量、G分量或B分量;
获取单元,用于基于该第一分量的属性量化残差值、该第二分量的属性量化残差值以及该第三分量的属性量化残差值,获取该当前点的属性重建值。
第四方面,本申请提供了一种编码器,包括:
确定单元,用于确定当前点云中待编码的当前点的第一分量的属性量化残差值、第二分量的属性量化残差值以及第三分量的属性量化残差值;其中,该第一分量为U分量、V分量、G分量或B分量;
编码单元,用于依次编码该第一分量的属性量化残差值、该第二分量的属性量化残差值以及该第三分量的属性量化残差值,以得到该当前点云的码流。
第五方面,本申请提供了一种编解码设备,包括:
处理器,适于实现计算机指令;以及,
计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令适于由处理器加载并执行上述第一方面至第二方面中的任一方面或其各实现方式中的编解码方法。
在一种实现方式中,该处理器为一个或多个,该存储器为一个或多个。
在一种实现方式中,该计算机可读存储介质可以与该处理器集成在一起,或者该计算机可读存储介质与处理器分离设置。
第六方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机指令,该计算机指令被计算机设备的处理器读取并执行时,使得计算机设备执行上述第一方面至第二方面中的任一方面或其各实现方式中的编解码方法。
基于以上技术方案,将当前点的的第一个待解码的分量(即第一分量)设计为U分量、V分量、G分量或B分量,能够提升解压缩性能。
附图说明
图1是本申请实施例提供的点云图像的示例。
图2是图1所示的点云图像的局部放大图。
图3是本申请实施例提供的具有的六个观看角度的点云图像的示例。
图4是本申请实施例提供的编码框架的示意性框图。
图5是本申请实施例提供的解码框架的示意性框图。
图6是本申请实施例提供的包围盒的示例。
图7是本申请实施例提供的对包围盒进行八叉树划分的示例。
图8至图10示出了莫顿码在二维空间中的编码顺序。
图11示出了莫顿码在三维空间中的编码顺序。
图12是本申请实施例提供的解码方法的示意性流程图。
图13是本申请实施例提供的编码方法的示意性流程图。
图14是本申请实施例提供的解码器的示意性框图。
图15是本申请实施例提供的编码器的示意性框图。
图16是本申请实施例提供的编解码设备的示意性框图。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行描述。
下面将结合附图,对本申请实施例中的技术方案进行描述。
点云(Point Cloud)是空间中一组无规则分布的、表达三维物体或三维场景的空间结构及表面属性的离散点集。图1和图2分别示出了三维点云图像和局部放大图,可以看到点云表面是由分布稠密的点所组成的。
二维图像在每一个像素点均有信息表达,分布规则,因此不需要额外记录其位置信息;然而点云中的点在三维空间中的分布具有随机性和不规则性,因此需要记录每一个点在空间中的位置,才能完整地表达一幅点云。与二维图像类似,采集过程中每一个位置均有对应的属性信息,通常为RGB颜色值,颜色值反映物体的色彩;对于点云来说,每一个点所对应的属性信息除了颜色以外,还有比较常见的是反射率(reflectance)值,反射率值反映物体的表面材质。因此,点云数据通常包括三维位置信息所组成的几何信息(x,y,z)和三维颜色信息(r,g,b)、一维反射率信息(r)所组成的属性信息。
换言之,点云中每个点可以包括几何信息和属性信息,其中,点云中每个点的几何信息是指该点的笛卡尔三维坐标数据,点云中每个点的属性信息可以包括但不限于以下至少一种:颜色信息、材质信息、激光反射强度信息。颜色信息可以是任意一种色彩空间上的信息。例如,颜色信息可以是红绿蓝(Red Green Blue,RGB)信息。再如,颜色信息还可以是亮度色度(YCbCr,YUV)信息。其中,Y表示明亮度(Luma),Cb(U)表示蓝色色度分量,Cr(V)表示红色色度分量。点云中的每个点都具有相同数量的属性信息。例如,点云中的每个点都具有颜色信息和激光反射强度两种属性信息。再如,点云中的每个点都具有颜色信息、材质信息和激光反射强度信息三种属性信息。
点云图像可具有的多个观看角度,例如,如图3所示的点云图像可具有的六个观看角度,点云图像对应的数据存储格式由文件头信息部分和数据部分组成,头信息包含了数据格式、数据表示类型、点云总点数、以及点云所表示的内容。
作为示例,点云图像的数据存储格式可实现为以下格式:
ply
format ascii 1.0
element vertex 207242
property float x
property float y
property float z
property uchar red
property uchar green
property uchar blue
75 318 0 0 142 0
75 319 0 0 143 0
75 319 1 1 9 9
75 315 0 1 9 9
针对上述点云图像的数据存储格式,其数据格式为“.ply”格式,由ASCII码表示,总点数为207242, 每个点具有三维位置信息xyz和三维颜色信息rgb。
点云可以灵活方便地表达三维物体或场景的空间结构及表面属性,并且由于点云通过直接对真实物体采样获得,在保证精度的前提下能提供极强的真实感,因而应用广泛,其范围包括虚拟现实游戏、计算机辅助设计、地理信息系统、自动导航系统、数字文化遗产、自由视点广播、三维沉浸远程呈现、生物组织器官三维重建等。
基于应用场景可以将点云划分为两大类别,即机器感知点云和人眼感知点云。机器感知点云的应用场景包括但不限于:自主导航系统、实时巡检系统、地理信息系统、视觉分拣机器人、抢险救灾机器人等点云应用场景。人眼感知点云的应用场景包括但不限于:数字文化遗产、自由视点广播、三维沉浸通信、三维沉浸交互等点云应用场景。相应的,可以基于点云的获取方式,将点云划分为密集型点云和稀疏型点云;也可基于点云的获取途径将点云划分为静态点云和动态点云,更具体可划分为三种类型的点云,即第一静态点云、第二类动态点云以及第三类动态获取点云。针对第一静态点云,物体是静止的,且获取点云的设备也是静止的;针对第二类动态点云,物体是运动的,但获取点云的设备是静止的;针对第三类动态获取点云,获取点云的设备是运动的。
点云的采集主要有以下途径:计算机生成、3D激光扫描、3D摄影测量等。计算机可以生成虚拟三维物体及场景的点云;3D激光扫描可以获得静态现实世界三维物体或场景的点云,每秒可以获取百万级点云;3D摄影测量可以获得动态现实世界三维物体或场景的点云,每秒可以获取千万级点云。具体而言,可通过光电雷达、激光雷达、激光扫描仪、多视角相机等采集设备,可以采集得到物体表面的点云。根据激光测量原理得到的点云,其可以包括点的三维坐标信息和点的激光反射强度(reflectance)。根据摄影测量原理得到的点云,其可以可包括点的三维坐标信息和点的颜色信息。结合激光测量和摄影测量原理得到点云,其可以可包括点的三维坐标信息、点的激光反射强度(reflectance)和点的颜色信息。这些技术降低了点云数据获取成本和时间周期,提高了数据的精度。例如,在医学领域,由磁共振成像(magnetic resonance imaging,MRI)、计算机断层摄影(computed tomography,CT)、电磁定位信息,可以获得生物组织器官的点云。这些技术降低了点云的获取成本和时间周期,提高了数据的精度。点云数据获取方式的变革,使大量点云数据的获取成为可能,伴随着应用需求的增长,海量3D点云数据的处理遭遇存储空间和传输带宽限制的瓶颈。
以帧率为30fps(帧每秒)的点云视频为例,每帧点云的点数为70万,其中,每帧点云中的每一个点具有坐标信息xyz(float)和颜色信息RGB(uchar),则10s点云视频的数据量大约为0.7million·(4Byte·3+1Byte·3)·30fps·10s=3.15GB,而YUV采样格式为4:2:0,帧率为24fps的1280×720二维视频,其10s的数据量约为1280·720·12bit·24frames·10s≈0.33GB,10s的两视角3D视频的数据量约为0.33·2=0.66GB。由此可见,点云视频的数据量远超过相同时长的二维视频和三维视频的数据量。因此,为更好地实现数据管理,节省服务器存储空间,降低服务器与客户端之间的传输流量及传输时间,点云压缩成为促进点云产业发展的关键问题。
点云压缩一般采用点云几何信息和属性信息分别压缩的方式,在编码端,首先在几何编码器中编码点云几何信息,然后将重建几何信息作为附加信息输入到属性编码器中,辅助点云属性的压缩;在解码端,首先在几何解码器中解码点云几何信息,然后将解码后的几何信息作为附加信息输入到属性解码器中,辅助点云属性的压缩。整个编解码器由预处理/后处理、几何编码/解码、属性编码/解码几部分组成。
点云可通过各种类型的编码框架和解码框架分别进行编码和解码。作为示例,编解码框架可以是运动图象专家组(Moving Picture Experts Group,MPEG)提供的几何点云压缩(Geometry Point Cloud Compression,G-PCC)编解码框架或视频点云压缩(Video Point Cloud Compression,V-PCC)编解码框架,也可以是音视频编码标准(Audio Video Standard,AVS)专题组提供的AVS-PCC编解码框架或点云压缩参考平台(PCRM)框架。G-PCC编解码框架可用于针对第一静态点云和第三类动态获取点云进行压缩,V-PCC编解码框架可用于针对第二类动态点云进行压缩。G-PCC编解码框架也称为点云编解码器TMC13,V-PCC编解码框架也称为点云编解码器TMC2。G-PCC及AVS-PCC均针对静态的稀疏型点云,其编码框架大致相同。下面以PCRM框架为例对本申请实施例可适用的编解码框架进行说明。
图4是本申请实施例提供的编码框架的示意性框图。
如图4所示,在编码框架中,点云的几何信息和每点所对应的属性信息是分开编码的。
在编码端的几何编码部分,首先,对原始几何信息进行预处理,即通过坐标平移将几何原点归一化到点云空间中的最小值位置,并通过坐标量化将几何信息从浮点数转化为整形,便于后续的规则化处理,由于量化取整使得一部分点的几何信息相同,此时需要决定是否移除重复点,量化和移除重复点属于预处理过程;然后,对规则化的几何信息进行几何编码,即采用八叉树结构对点云空间进行递归划分,每次将当前块划分成八个相同大小的子块,并判断每个子块的占有码字情况,当子块内不包含点时记为空,否则记为非空,在递归划分的最后一层记录所有块的占有码字信息,并进行编码;通过八叉树结构表达 的几何信息一方面输入到几何熵编码器中形成几何码流。
此外,几何编码完成后对几何信息进行重建,利用重建的几何信息来对属性信息进行编码。
在属性编码部分,首先,属性编码主要针对颜色、反射率信息进行的编码。首先,判断是否进行颜色空间的转换,如果处理的属性信息为颜色信息,还需要将原始颜色进行颜色空间变换,将其转变成更符合人眼视觉特性的YUV色彩空间;然后,在几何有损编码的情况下,由于几何信息在几何编码之后有所异动,因此需要为几何编码后的每一个点重新分配属性值,使得重建点云和原始点云的属性误差最小,这个过程叫做属性插值或属性重上色;接着,对预处理后属性信息进行属性编码,在属性信息编码中分为属性预测与属性变换;其中属性预测过程指对点云进行重排序以及进行属性预测。重排序的方法有莫顿重排序和希尔伯特(Hilbert)重排序;例如,AVS编码框架中均采用希尔伯特码对点云进行重排序;排序之后的点云使用差分方式进行属性预测,具体地,若当前待编码点与前一个已编码点的几何信息相同,即为重复点,则利用重复点的重建属性值作为当前待编码点的属性预测值,否则对当前待编码点选择前希尔伯特顺序的m个点作为邻居候选点,然后分别计算它们同当前待编码点的几何信息的曼哈顿距离,确定距离最近的n个点作为当前待编码点的预测点,以距离的倒数作为权重,计算n个邻居的属性的加权平均值,作为当前待编码点的属性预测值。
例如,可通过以下方式得到当前待编码点的属性预测值:
PredR=(1/W 1×ref 1+1/W 2×ref 2+1/W 3×ref 3)/(1/W 1+1/W 2+1/W 3)。
其中,W 1、W 2、W 3分别表示预测点1、预测点2、预测点3与当前待编码点的几何距离,ref 1、ref 2、ref 3分别表示预测点1、预测点2、预测点3的属性重建值。
得到当前待编码点的属性预测值后,基于当前待编码点的属性预测值得到当前待编码点的残差值,残差值为当前待编码点的原始属性值与预测属性值之间的差值;最后对残差值进行量化,将量化残差输入到属性熵编码器中形成属性码流。
图5是本申请实施例提供的解码框架的示意性框图。
如图5所示,在解码端,同样采用几何和属性分别解码的方式。在几何解码部分,首先对几何码流进行熵解码,得到每个点的几何信息,然后按照和几何编码相同的方式构建八叉树结构,结合解码几何重建出坐标变换后的、通过八叉树结构表达的几何信息,一方面将该信息进行坐标反量化和反平移,得到解码几何信息,一方面作为附加信息输入到属性解码器中。在属性解码部分,按照与编码端相同的方式构建莫顿顺序,先对属性码流进行熵解码,得到量化后的残差信息;然后进行反量化,得到点云残差;类似的,按照与属性编码相同的方式,获得当前待解码点的属性预测值,然后将属性预测值与残差值相加,可以恢复出当前待解码点的YUV属性值;最后,经过颜色空间反变换得到解码属性信息。
为便于描述,下面对点云的规则化处理方法进行说明。
由于点云在空间中无规则分布的特性,给编码过程带来挑战,因此采用递归八叉树的结构,如图6所示,将点云中的点规则化地表达成立方体的中心。具体而言,首先将整幅点云放置在一个正方体包围盒内,点云中点的坐标表示为(x k,y k,z k),k=0,…,K-1,其中K是点云的总点数,点云在x、y、z方向上的边界值分别为:
x min=min(x 0,x 1,…,x K-1);
y min=min(y 0,y 1,…,y K-1);
z min=min(z 0,z 1,…,z K-1);
x max=max(x 0,x 1,…,x K-1);
y max=max(y 0,y 1,…,y K-1);
z max=max(z 0,z 1,…,z K-1)。
则包围盒的原点(x origin,y origin,z origin)可以计算如下:
x origin=int(floor(x min));
y origin=int(floor(y min));
z origin=int(floor(z min))。
其中,floor()表示向下取整计算或向下舍入计算。int()表示取整运算。
基于边界值和原点的计算公式,可以计算包围盒在x、y、z方向上的尺寸如下:
BoudingBoxSize_x=int(x max-x origin)+1;
BoudingBoxSize_y=int(y max-y origin)+1;
BoudingBoxSize_z=int(z max-z origin)+1。
如图7所示,得到包围盒在x、y、z方向上的尺寸后,首先对包围盒进行八叉树划分,每次得到八个子块,然后对子块中的非空块(包含点的块)进行再一次的八叉树划分,如此递归划分直到某个深度,将最终大小的非空子块称作体素(voxel),每个voxel中包含一个或多个点,将这些点的几何位置归一 化为voxel的中心点,该中心点的属性值取voxel中所有点的属性值的平均值。将点云规则化为空间中的块,有利于点云中点与点的关系描述,进而能够表达特定的编码顺序,确定一定的顺序编码每一个体素(voxel),即编码voxel所代表的点(或称“节点”),一种常用的编码顺序为交叉分离式的莫顿顺序。
图8至图10示出了莫顿码在二维空间中的编码顺序。图11示出了莫顿码在三维空间中的编码顺序。箭头的顺序表示莫顿顺序下点的编码顺序。图8示出了二维空间中2*2个像素的“z”字形莫顿编码顺序,图9示出了二维空间中4个2*2块之间的“z”字形莫顿编码顺序,图10示出了二维空间中4个4*4块之间的“z”字形莫顿编码顺序,组成为整个8*8块的莫顿编码顺序。扩展到三维空间中的莫顿编码顺序如图11所示,图11中展示了16个点,每个“z”字内部,每个“z”与“z”之间的莫顿编码顺序都是先沿x轴方向编码,再沿y轴,最后沿z轴。
点云压缩中的属性帧内预测部分,对于颜色属性,主要参考当前点的相邻点对当前点进行预测,将属性预测值与当前点属性值计算残差信息后经量化等过程,将残差信息传输到解码端;解码端接收并解析码流后,经反变换与反量化等步骤得到残差信息,解码端以相同过程预测得到属性预测值,与残差信息叠加后得到当前点的属性重建值。
示例性地,对于不同测试条件,采用不同的颜色信息格式。
在C1测试条件下和C2测试条件下,可以将输入点云的颜色属性从RGB转换到YUV空间。C1测试条件可以指几何限制有损(limit-lossy geometry)压缩和属性有损(lossy attributes)压缩的测试条件。C2测试条件可以指几何无损压缩和属性有损(lossy attributes)压缩的测试条件。
示例性地,将输入点云的颜色属性从RGB空间转换到YUV空间的转换公式可以如下所示:
Y=0.2126*R+0.7152*G+0.0722*B;
U=-0.114572*R-0.385428*G+0.5*B+128;
V=0.5*R-0.454153*G-0.045847*B+128;
示例性地,将输入点云的颜色属性从YUV空间转换到RGB空间的逆变换公式可以如下所示:
R=Y+1.5748*(V-128);
G=Y–0.18733*(U-128)–0.46813*(V-128);
B=Y+1.85563*(U-128);
在C3测试条件和C4测试条件下,可以直接将RGB格式的点云作为输入点云。C3测试条件可以指几何无损压缩和属性限制有损(limit-lossy attributes)压缩的测试条件。C4测试条件可以指几何无损压缩和属性无损压缩的测试条件。C3测试条件和C4测试条件避免了由于颜色空间转换导致的属性信息出现的误差,能够提升压缩性能。
经过处理后的点云的属性信息将以YUV(或RGB)的顺序输入点云属性压缩编码器,按照点云中点的索引顺序,依次对每一个点进行预测、量化、熵编码处理,为便于理解本申请的方案,下面对编码器的编码过程进行示例性说明。具体的编码步骤描述如下:
a)、在当前点之间编码完成的点所组成的范围内为当前点查找N个预测点。
b)、根据N个预测点与当前点之间的几何距离分别计算该N个预测点中的每一个预测点的权重值,根据每一个预测点的权重值和每一个点的属性重建值(包括Y分量、U分量以及V分量的属性重建值或R分量、G分量以及B分量的属性重建值),计算当前点的属性预测值(包括Y分量、U分量以及V分量的属性预测值或R分量、G分量以及B分量的属性预测值)。
例如,若当前点的属性信息的格式为YUV格式,则编码器可以根据每一个预测点的权重值和每一个预测点的Y分量,计算当前点的Y分量的属性预测值,根据每一个预测点的权重值和每一个预测点的U分量,计算当前点的U分量的属性预测值,根据每一个预测点的权重值和每一个预测点的V分量,计算当前点的V分量的属性预测值。再如,若当前点的属性信息的格式为RGB格式,则编码器可以根据每一个预测点的权重值和每一个预测点的R分量的属性重建值,计算当前点的R分量的属性预测值,根据每一个预测点的权重值和每一个预测点的G分量的属性重建值,计算当前点的G分量的属性预测值,根据每一个预测点的权重值和每一个预测点的B分量的属性重建值,计算当前点的B分量的属性预测值。
示例性地,可通过以下公式确定各个分量的属性预测值:
其中,A p表示各个分量的属性预测值,w i表示N个预测点中的第i个预测点的权重值,A i表示N个预测点中的第i个点的各个分量的属性预测值。例如,若当前点的颜色信息的格式为YUV格式,则各个分量可以包括Y分量、U分量以及V分量,若当前点的颜色信息的格式为RGB格式,则各个分量可以包括R分量、G分量以及B分量。
c)、编码器根据各个分量的属性预测值和各个分量跨分量预测值,计算各个分量的属性残差值。
例如,若当前点的颜色属性位于YUV空间,则可以按照Y分量、U分量、V分量的顺序依次计算当前点的各个分量的属性残差值;若当前点的颜色属性位于RGB空间,则可以按照R分量、G分量、B分量的顺序依次计算当前点的各个分量的属性残差值。
示例性地,可以按照以下公式计算各个分量的属性残差值:
delta=currValue-predictor-residualPrevComponent;
其中,delta表示各个分量的属性残差值,currValue表示各个分量的原始值或真实值,predictor表示各个分量的属性预测值,residualPrevComponent表示各个分量的跨分量预测值。例如,若当前点的颜色信息的格式为YUV格式,则各个分量可以包括Y分量、U分量以及V分量,若当前点的颜色信息的格式为RGB格式,则各个分量可以包括R分量、G分量以及B分量。
示例性地,对于Y分量和R分量,由于是最先编码的分量,因此,可以将Y分量和R分量的跨分量预测值为0,对于U分量、V分量、G分量以及B分量,其跨分量预测值根据前面编码的分量的属性量化残差值经过反量化得到的属性残差重建值确定。例如,U分量的跨分量预测值可以是对Y分量的属性量化残差值经过反量化得到的属性残差重建值,G分量的跨分量预测值可以是对R分量的属性量化残差值经过反量化得到的属性残差重建值。再如,V分量的跨分量预测值可以是对Y分量的属性量化残差值经过反量化得到的属性残差重建值与对U分量的属性量化残差值经过反量化得到的属性残差重建值的和,B分量的跨分量预测值可以是对R分量的属性量化残差值经过反量化得到的属性残差重建值与对G分量的属性量化残差值经过反量化得到的属性残差重建值的和。
编码器获取各个分量的属性残差值后,对各个分量的属性残差值进行量化操作,得到当前点的各个分量的属性量化残差值。例如,若当前点的颜色信息的格式为YUV格式,则按照Y分量、U分量、V分量的顺序依次量化当前点的各个分量的属性残差值,得到各个分量的属性量化残差值。再如,若当前点的颜色信息的格式为RGB格式,则按照R分量、G分量、B分量的顺序依次量化当前点的各个分量的属性残差值,得到各个分量的属性量化残差值。
d)、编码器对当前点的各个分量的属性量化残差值进行熵编码,得到点云的码流。
例如,若当前点的颜色信息的格式为YUV格式,则按照Y分量、U分量、V分量的顺序对各个分量的属性量化残差值进行熵编码,以得到点云的码流。再如,若当前点的颜色信息的格式为RGB格式,则按照R分量、G分量、B分量顺序对各个分量的属性量化残差值进行熵编码,以得到点云的码流。
示例性地,可以按照以下步骤对当前点的各个分量的属性量化残差值进行熵编码:
1)、一方面,引入一个标志位flagy_r,针对属性信息的格式为YUV格式的点,其可用于表示Y分量的属性量化残差值是否为0,对于属性信息的格式为RGB格式的点,其可用于表示R分量的属性量化残差值是否为0。例如,若Y分量(或R分量)的属性量化残差值为0,则flagy_r=0,否则flagy_r=1,编码器对flagy_r的取值进行编码并写入码流。另一方面,引入另一个标志位flagyu_rg,针对属性信息的格式为YUV格式的点,其可用于表示Y分量的属性残差量化值和U分量的属性残差量化值是否都为0,对于属性信息的格式为RGB格式的点,其可用于表示R分量的属性残差量化值和G分量的属性残差量化值是否都为0。例如,若Y分量的属性残差量化值和U分量的属性残差量化值都为0,则flagyu_rg=0,否则flagyu_rg=1。再如,若R分量的属性残差量化值和G分量的属性残差量化值都为0,则flagyu_rg=0,否则flagyu_rg=1。
2)、编码器判断Y分量(或R分量)的属性量化残差值是否为0,若为0,则执行下述3),否则执行下述4)。
3)、编码器对flagyu_rg的取值进行编码,并判断U分量(或G分量)的属性量化残差值是否为0,若U分量(或G分量)的属性量化残差值为0,则编码V分量(或B分量)的属性量化残差值,否则依次编码U分量和V分量(或G分量和B分量)的属性残差量化值。
例如,若当前点的颜色信息的格式为YUV格式,则编码器对flagyu_rg的取值进行编码,并判断U分量的属性量化残差值是否为0,若U分量的属性量化残差值为0,则编码V分量的属性量化残差值,否则依次编码U分量的属性残差量化值和V分量的属性残差量化值。再如,若当前点的颜色信息的格式为RGB格式,则编码器对flagyu_rg的取值进行编码,并判断G分量的属性量化残差值是否为0,若G分量的属性量化残差值为0,则编码B分量的属性量化残差值,否则依次编码G分量的属性残差量化值和B分量的属性残差量化值。
4)、编码器依次编码Y分量、U分量、V分量(或R分量、G分量、B分量)的属性量化残差值。
例如,若当前点的颜色信息的格式为YUV格式,则编码器依次编码Y分量的属性量化残差值、U分量的属性量化残差值以及V分量的属性量化残差值。再如,若当前点的颜色信息的格式为RGB格式,则编码器依次编码R分量的属性量化残差值、G分量的属性量化残差值以及B分量的属性量化残差值。
e)、对于各个分量的属性量化残差值,编码器按照Y分量、U分量、V分量(或R分量、G分量、 B分量)的顺序进行反量化、然后加上对应分量的属性预测值和跨分量预测值,生成当前点的对应分量的属性重建值。
例如,若当前点的颜色信息的格式为YUV格式,则对于各个分量的属性量化残差值,编码器按照Y分量、U分量、V分量的顺序进行反量化、然后加上对应分量的属性预测值和跨分量预测值,生成当前点的对应分量的属性重建值。再如,若当前点的颜色信息的格式为RGB格式,则对于各个分量的属性量化残差值,编码器按照R分量、G分量、B分量的顺序进行反量化、然后加上对应分量的属性预测值和跨分量预测值,生成当前点的对应分量的属性重建值。
示例性地,可以按照以下公式生成当前点的各个分量的属性重建值:
其中, 表示当前点的各个分量的属性重建值, 表示各个分量反量化后的属性残差重建值,predictor表示各个分量的属性预测值,residualPrevComponent表示各个分量的跨分量预测值。例如,若当前点的颜色信息的格式为YUV格式,则各个分量可以包括Y分量、U分量以及V分量,若当前点的颜色信息的格式为RGB格式,则各个分量可以包括R分量、G分量以及B分量。
应当理解,由于步骤c)中会对各个分量的属性量化残差值进行反量化,得到各个分量的属性残差重建值,因此,也可以将步骤e)中各个分量的属性重建值的生成过程集成在步骤c)中。此外,若将步骤e)中各个分量的属性重建值的生成过程集成在步骤c)中,则各个分量的属性重建值的生成过程也可以按照U分量、Y分量、V分量(或G分量、R分量、B分量)的顺序进行反量化。本申请对此不作具体限定。
相应的,解码端的具体执行步骤描述如下:
a)、在当前点之间解码完成的点所组成的范围内为当前点查找N个预测点;
b)、根据N个预测点与当前点之间的几何距离分别计算该N个预测点中的每一个预测点的权重值,根据每一个预测点的权重值和每一个的属性重建值(包括Y分量、U分量以及V分量的属性重建值或R分量、G分量以及B分量的属性重建值),计算当前点的属性预测值(包括Y分量、U分量以及V分量的属性预测值或R分量、G分量以及B分量的属性预测值)。
例如,若当前点的属性信息的格式为YUV格式,则编码器可以根据每一个预测点的权重值和每一个预测点的Y分量,计算当前点的Y分量的属性预测值,根据每一个预测点的权重值和每一个预测点的U分量,计算当前点的U分量的属性预测值,根据每一个预测点的权重值和每一个预测点的V分量,计算当前点的V分量的属性预测值。再如,若当前点的属性信息的格式为RGB格式,则编码器可以根据每一个预测点的权重值和每一个预测点的R分量的属性重建值,计算当前点的R分量的属性预测值,根据每一个预测点的权重值和每一个预测点的G分量的属性重建值,计算当前点的G分量的属性预测值,根据每一个预测点的权重值和每一个预测点的B分量的属性重建值,计算当前点的B分量的属性预测值。
示例性地,可通过以下公式确定各个分量的属性预测值:
其中,A p表示各个分量的属性预测值,w i表示N个预测点中的第i个预测点的权重值,A i表示N个预测点中的第i个点的各个分量的属性预测值。例如,若当前点的颜色信息的格式为YUV格式,则各个分量可以包括Y分量、U分量以及V分量,若当前点的颜色信息的格式为RGB格式,则各个分量可以包括R分量、G分量以及B分量。
c)、按照Y分量、U分量、V分量(或R分量、G分量、B分量)的顺序从码流中解码获取当前点的各个分量的属性量化残差值。
例如,若当前点的颜色信息的格式为YUV格式,则解码器按照Y分量、U分量、V分量的顺序从码流中解码获取当前点的各个分量的属性量化残差值。再如,若当前点的颜色信息的格式为RGB格式,则编码器按照R分量、G分量、B分量的顺序从码流中解码获取当前点的各个分量的属性量化残差值。
示例性地,具体执行步骤包括:
1)、从码流中解码获取标志位flagy_r,若flagy_r为0,则Y分量(或R分量)的属性量化残差值为0,若flagy_r为1,则Y分量(或R分量)的属性量化残差值不为0。
例如,若当前点的颜色信息的格式为YUV格式,则解码器从码流中解码获取标志位flagy_r,若flagy_r为0,则Y分量的属性量化残差值为0,flagy_r为1,则Y分量的属性量化残差值不为0。再如,若当前点的颜色信息的格式为RGB格式,则解码器从码流中解码获取标志位flagy_r,若flagy_r为0,则R分量的属性量化残差值为0,若flagy_r为1,则R分量的属性量化残差值不为0。
2)、判断Y分量(或R分量)的属性量化残差值是否为0,若为0,则执行3),否则执行4)。
3)、从码流中解码获取标志位flagyu_rg,若flagyu_rg为0,则U分量(或G分量)的属性量化残 差值为0,并从码流中解码获取V分量(或B分量)的属性量化残差值;否则,依次从码流中解码获取U分量、V分量(或G分量、B分量)的属性量化残差值。
例如,若当前点的颜色信息的格式为YUV格式,则解码器从码流中解码获取标志位flagyu_rg,若flagyu_rg为0,则U分量的属性量化残差值为0,并从码流中解码获取V分量的属性量化残差值;否则,依次从码流中解码获取U分量的属性量化残差值和V分量的属性量化残差值。再如,若当前点的颜色信息的格式为RGB格式,则解码器从码流中解码获取标志位flagyu_rg,若flagyu_rg为0,则G分量的属性量化残差值为0,并从码流中解码获取B分量的属性量化残差值;否则,依次从码流中解码获取G分量的属性量化残差值和B分量的属性量化残差值。
4)、依次从码流中解码获取Y分量、U分量、V分量(或R分量、G分量、B分量)的属性量化残差值。
例如,若当前点的颜色信息的格式为YUV格式,则解码器从码流中解码获取标志位flagy_r,若flagy_r为1,则解码器依次从码流中解码获取Y分量的属性量化残差值、U分量的属性量化残差值以及V分量的属性量化残差值。再如,若当前点的颜色信息的格式为RGB格式,则解码器从码流中解码获取标志位flagy_r,若flagy_r为1,则解码器依次从码流中解码获取R分量的属性量化残差值、G分量的属性量化残差值以及B分量的属性量化残差值。
d)、对于各个分量的属性量化残差值,编码器按照Y分量、U分量、V分量(或R分量、G分量、B分量)的顺序进行反量化、然后加上对应分量的属性预测值和跨分量预测值,生成当前点的对应分量的属性重建值。
例如,若当前点的颜色信息的格式为YUV格式,则对于各个分量的属性量化残差值,编码器按照Y分量、U分量、V分量的顺序进行反量化、然后加上对应分量的属性预测值和跨分量预测值,生成当前点的对应分量的属性重建值。再如,若当前点的颜色信息的格式为RGB格式,则对于各个分量的属性量化残差值,编码器按照R分量、G分量、B分量的顺序进行反量化、然后加上对应分量的属性预测值和跨分量预测值,生成当前点的对应分量的属性重建值。
示例性地,可以按照以下公式生成当前点的各个分量的属性重建值:
其中, 表示当前点的各个分量的属性重建值, 表示各个分量反量化后的属性残差重建值,predictor表示各个分量的属性预测值,residualPrevComponent表示各个分量的跨分量预测值。例如,若当前点的颜色信息的格式为YUV格式,则各个分量可以包括Y分量、U分量以及V分量,若当前点的颜色信息的格式为RGB格式,则各个分量可以包括R分量、G分量以及B分量。
在上述方案中,若当前点的颜色信息的格式为YUV格式,编码器按照Y分量、U分量、V分量的顺序对当前点的各个分量的属性量化残差值进行编码,若当前点的颜色信息的格式为RGB格式,编码器按照R分量、G分量、B分量的顺序对各个分量的属性量化残差值进行编码;相应的,若当前点的颜色信息的格式为YUV格式,解码器按照Y分量、U分量、V分量的顺序对当前点的各个分量的属性量化残差值进行解码,若当前点的颜色信息的格式为RGB格式,解码器按照R分量、G分量、B分量的顺序对各个分量的属性量化残差值进行解码。
需要说明的是,在上述方案中,解码端对当前点的各个分量的属性量化残差值进行解码时需要解码两个标志位,一方面,引入一个标志位flagy_r,针对属性信息的格式为YUV格式的点,其可用于表示Y分量的属性量化残差值是否为0,对于属性信息的格式为RGB格式的点,其可用于表示R分量的属性量化残差值是否为0。例如,若Y分量(或R分量)的属性量化残差值为0,则flagy_r=0,否则flagy_r=1,编码器对flagy_r的取值进行编码并写入码流。另一方面,引入另一个标志位flagyu_rg,针对属性信息的格式为YUV格式的点,其可用于表示Y分量的属性残差量化值和U分量的属性残差量化值是否都为0,对于属性信息的格式为RGB格式的点,其可用于表示R分量的属性残差量化值和G分量的属性残差量化值是否都为0。例如,若Y分量的属性残差量化值和U分量的属性残差量化值都为0,则flagyu_rg=0,否则flagyu_rg=1。再如,若R分量的属性残差量化值和G分量的属性残差量化值都为0,则flagyu_rg=0,否则flagyu_rg=1。
在具体解码过程中,判断Y分量(或R分量)的属性量化残差值是否为0,若为0,则执行3),否则执行4)。也即是说,当flagy_r为0时,无论flagyu_rg是否为0,解码端都需要解码flagy_r和flagyu_rg。当flagy_r不为0时,解码端无需解码flagyu_rg。换言之,从大数据统计的角度来看,基于各个分量不为0的可能性,有可能会对flagy_r是否为0产生影响,进而会对解码端是否需要解码flagyu_rg产生影响,最终会影响到解码器的解码效率。
有鉴于此,本申请提供了一种解码方法,通过改变这点前点中各个分量的解码顺序,以提升解码效率。
图12是本申请实施例提供的解码方法100的示意性流程图。该方法100可由解码器或解码框架执行,例如图5所示的解码框架。
如图12所示,该解码方法100可包括:
S110,依次从当前点云的码流中解码当前点的第一分量的属性量化残差值、第二分量的属性量化残差值以及第三分量的属性量化残差值;其中,该第一分量为U分量、V分量、G分量或B分量;
S120,基于该第一分量的属性量化残差值、该第二分量的属性量化残差值以及该第三分量的属性量化残差值,获取该当前点的属性重建值。
本实施例中,将当前点的的第一个待解码的分量(即第一分量)设计为U分量、V分量、G分量或B分量,能够提升解压缩性能。
此外,将当前点的的第一个待解码的分量(即第一分量)设计为U分量或V分量,考虑到亮度分量包含更多的视觉信息,本申请首先对U分量或V分量进行解码再对Y分量进行解码,相当于能够基于U分量的属性残差重建值或V分量的属性残差重建值确定Y分量的跨分量预测值,进而,基于Y分量的跨分量预测值确定Y分量的属性重建值时,可以提升Y分量的属性重建值的准确性,进而提升了解压缩性能。
申请人对本申请提供的方案在点云压缩平台上进行了测试,测试结果如表1至表4所示。
表1是在几何限制有损(limit-lossy geometry)压缩和属性有损(lossy attributes)压缩的情况下Cat1B、Cat1C以及Cat3的各个分量的BD-rate,Cat1B、Cat1C以及Cat3表示包括不同类型的属性信息的点云。表2是在几何无损(lossless geometry)压缩和属性有损压缩的情况下Cat1B、Cat1C以及Cat3的各个分量的BD-rate。表3是在几何无损压缩和属性限制有损(limit-lossy attributes)压缩的情况下Cat1B、Cat1C以及Cat3的各个分量的BD-rate。表4是几何无损压缩和属性无损压缩的情况下Cat1B、Cat1C以及Cat3的的bpip比率。
表1
表2
表3
表4
测试序列 bpip比率(bpip ratio)
Cat1B 99.9%
Cat1C 100.0%
Cat3 99.4%
如表1至表3所示,“-”代表率失真(Bit distortion,BD-rate)下降,BD-rate代表相同峰值信噪比(Peak Signal to Noise Ratio,PSNR)下的码率差异,BD-rate越小表示编码算法的性能越好。如图4所示,bpip比率的值越大表示编码算法的性能越好,通过表1至表4可以看出,本申请提供的解码方法具有明显的性能提升。
当然,本申请对第二分量和第三分量的具体实现方式不作限定。
例如,该第一分量为U分量,该第二分量可以是V分量,该第三分量可以是Y分量。
再如,该第一分量为U分量,该第二分量可以是Y分量,该第三分量可以是V分量。
再如,该第一分量为V分量,该第二分量可以是Y分量,该第三分量可以是U分量。
再如,该第一分量为V分量,该第二分量可以是U分量,该第三分量可以是Y分量。
再如,该第一分量为G分量,该第二分量可以是R分量,该第三分量可以是B分量。
再如,该第一分量为G分量,该第二分量可以是B分量,该第三分量可以是R分量。
再如,该第一分量为B分量,该第二分量可以是R分量,该第三分量可以是G分量。
再如,该第一分量为B分量,该第二分量可以是G分量,该第三分量可以是R分量。
在一些实施例中,该S110可包括:
对该码流进行解码,得到第一标识,该第一标识的取值用于表示该第一分量的属性量化残差值是否为零;
基于该第一标识的取值对该码流进行解析,获取该第一分量的属性量化残差值、该第二分量的属性量化残差值以及该第三分量的属性量化残差值。
例如,若当前点的属性信息的格式为YUV格式,假设该第一分量为U分量,该第二分量可以是Y分量,该第三分量可以是V分量,则解码器对该码流进行解码,得到第一标识,该第一标识的取值用于表示U分量的属性量化残差值是否为零;解码器得到该第一标识后,可基于该第一标识的取值对该码流进行解析,依次得到该U分量的属性量化残差值、Y分量的属性量化残差值以及V分量的属性量化残差值。再如,若当前点的属性信息的格式为RGB格式,假设该第一分量为G分量,该第二分量可以是R分量,该第三分量可以是B分量,则解码器对该码流进行解码,得到第一标识,该第一标识的取值用于表示G分量的属性量化残差值是否为零;解码器得到该第一标识后,可基于该第一标识的取值对该码流进行解析,依次得到该G分量的属性量化残差值、R分量的属性量化残差值以及V分量的属性量化残差值。
在一些实施例中,若该第一标识的取值为第一数值,则解码器确定该第一分量的属性量化残差值为零,并基于对该码流进行解码得到的第二标识,获取该第二分量的属性残差值和该第三分量的属性残差值;该第二标识的取值用于表示该第一分量的属性量化残差值和该第二分量的属性量化残差值是否都为零。例如,该第一数值可以为0或其他取值。
例如,以当前点的属性信息的格式为YUV格式为例,假设该第一分量为U分量,该第二分量可以是Y分量,该第三分量可以是V分量,若该第一标识的取值为第一数值,则解码器确定U分量的属性量化残差值为零,并基于对该码流进行解码得到的第二标识,获取Y分量的属性残差值和V分量的属性残差值。再如,以当前点的属性信息的格式为RGB格式为例,假设该第一分量为G分量,该第二分量可以是R分量,该第三分量可以是B分量,若该第一标识的取值为第一数值,则解码器确定G分量的属性量化残差值为零,并基于对该码流进行解码得到的第二标识,获取R分量的属性残差值和B分量的属性残差值。
本实施例中,该码流包括该第一标识和该第二标识,该第一标识可用于确定该第一分量的属性量化残差值是否为零,该第二标识可用于确定该第二分量的属性量化残差值是否为零。若该第一分量的属性量化残差值和该第二分量的属性量化残差值均为零,则对于该第一分量的属性量化残差值、该第二分量的属性量化残差值以及该第三分量的属性量化残差值,该码流仅包括对该第三分量的属性量化残差值进行编码得到的结果。
当然,在其他可替代实施例中,若该第一标识的取值为第一数值,则该第一分量的属性量化残差值为零,此时,解码器也可以依次从该码流中获取该第二分量的属性量化残差值和该第三分量的属性量化残差值。换言之,该码流中可以不包括该第二标识,该码流包括依次对该第二分量的属性量化残差值和该第三分量的属性量化残差值进行编码得到的结果,本申请对此不作具体限定。
在一些实施例中,若该第二标识的取值为该第一数值,则确定该第二分量的属性量化残差值为零,并从该码流中获取该第三分量的属性量化残差值;若该第二标识的取值为第二数值,则依次从该码流中获取该第二分量的属性量化残差值和该第三分量的属性量化残差值。例如,该第一数值可以为0或其他取值。例如,该第二数值可以为1或其他取值。
例如,以当前点的属性信息的格式为YUV格式为例,假设该第一分量为U分量,该第二分量可以是Y分量,该第三分量可以是V分量,若该第二标识的取值为该第一数值,则解码器确定Y分量的属性量化残差值为零,并从该码流中获取V分量的属性量化残差值;若该第二标识的取值为第二数值,则依次从该码流中获取Y分量的属性量化残差值和V分量的属性量化残差值。再如,以当前点的属性信息的格式为RGB格式为例,假设该第一分量为G分量,该第二分量可以是R分量,该第三分量可以是B分量,若该第二标识的取值为该第一数值,则解码器确定R分量的属性量化残差值为零,并从该 码流中获取B分量的属性量化残差值;若该第二标识的取值为第二数值,则依次从该码流中获取R分量的属性量化残差值和B分量的属性量化残差值。
在一些实施例中,该第一标识的取值为第二数值;依次从该码流中获取该第一分量的属性量化残差值、该第二分量的属性量化残差值以及该第三分量的属性量化残差值。例如,该第二数值可以为1或其他取值。
例如,以当前点的属性信息的格式为YUV格式为例,若该第一标识的取值为第二数值,假设该第一分量为U分量,该第二分量可以是Y分量,该第三分量可以是V分量,则解码器可以依次从该码流中获取U分量的属性量化残差值、Y分量的属性量化残差值以及V分量的属性量化残差值。再如,以当前点的属性信息的格式为RGB格式为例,假设该第一分量为G分量,该第二分量可以是R分量,该第三分量可以是B分量,若该第一标识的取值为第二数值,则解码器可以依次从该码流中获取G分量的属性量化残差值、R分量的属性量化残差值以及B分量的属性量化残差值。
本实施例中,将当前点的的第一个待解码的分量(即第一分量)设计为U分量、V分量、G分量或B分量,能够提升第一标识的取值为第二数值的概率,相当于,解码端不需要对第二标识进行解码,进而,能够提升解码器的解码效率。
在一些实施例中,该S120可包括:
针对该第一分量、该第二分量和该第三分量中的每一个分量,对所每一个分量的属性量化残差值进行反量化处理,得到该每一个分量的属性残差重建值;获取该每一个分量的属性残差重建值;获取该每一个分量的属性预测值;获取该每一个分量的跨分量预测值;将该每一个分量的属性残差重建值、该每一个分量的属性预测值、以及该每一个分量的跨分量预测值的和,确定为该每一个分量的属性重建值。
例如,以当前点的属性信息的格式为YUV格式为例,假设该第一分量为U分量,该第二分量可以是Y分量,该第三分量可以是V分量,解码器得到该第一分量的属性量化残差值、该第二分量的属性量化残差值以及该第三分量的属性量化残差值后,可以依次获取Y分量的属性预测值、U分量的属性预测值以及V分量的属性预测值,并依次获取Y分量的跨分量预测值、U分量的跨分量预测值以及V分量的跨分量预测值;然后,解码器将Y分量的属性残差值、Y分量的属性预测值以及Y分量的跨分量预测值的和,确定为Y分量的属性重建值,将U分量的属性残差值、U分量的属性预测值以及U分量的跨分量预测值的和,确定为U分量的属性重建值,将V分量的属性残差值、V分量的属性预测值以及V分量的跨分量预测值的和,确定为V分量的属性重建值。
再如,以当前点的属性信息的格式为RGB格式为例,假设该第一分量为G分量,该第二分量可以是R分量,该第三分量可以是B分量,解码器得到该第一分量的属性量化残差值、该第二分量的属性量化残差值以及该第三分量的属性量化残差值后,可以依次获取R分量的属性预测值、G分量的属性预测值以及B分量的属性预测值,并依次获取R分量的跨分量预测值、G分量的跨分量预测值以及B分量的跨分量预测值;然后,解码器将R分量的属性残差值、R分量的属性预测值以及R分量的跨分量预测值的和,确定为R分量的属性重建值,将G分量的属性残差值、G分量的属性预测值以及G分量的跨分量预测值的和,确定为G分量的属性重建值,将B分量的属性残差值、B分量的属性预测值以及B分量的跨分量预测值的和,确定为B分量的属性重建值。
应当理解,解码器获取当前点的各个分量的属性预测值的顺序,可以和解码器获取当前点的各个分量的属性量化残差值的顺序保持一致,也可以不一致,本申请对此不作具体限定。
在一些实施例中,该第一分量的跨分量预测值为零;该第一分量的跨分量预测值为零;该第二分量的跨分量预测值为该第一分量的属性残差重建值;该第三分量的跨分量预测值为该第一分量的属性残差重建值与该第二分量的属性残差重建值的和。
例如,以当前点的属性信息的格式为YUV格式为例,假设该第一分量为U分量,该第二分量可以是Y分量,该第三分量可以是V分量,U分量的跨分量预测值为零;Y分量的跨分量预测值为U分量的属性残差重建值,V分量的跨分量预测值为U分量的属性残差重建值和Y分量的属性残差重建值的和。再如,以当前点的属性信息的格式为RGB格式为例,假设该第一分量为G分量,该第二分量可以是R分量,该第三分量可以是B分量,G分量的跨分量预测值为零;R分量的跨分量预测值为G分量的属性残差重建值;B分量的跨分量预测值为G分量的属性残差重建值和R分量的属性残差重建值的和。
在一些实施例中,首先,解码器可以在该当前点之前解码完成的点所组成的范围内为该当前点查找N个预测点;然后,解码器可以根据该N个预测点与该当前点之间的几何距离,计算该N个预测点对应的权重值;最后,解码器可以基于该N个预测点对应的权重值和该N个预测点的属性重建值,获取该每一个分量的属性预测值。
例如,以当前点的属性信息的格式为YUV格式为例,解码器获取该N个预测点对应的权重值后, 可基于该N个预测点对应的权重值和该N个预测点的Y分量的属性重建值,获取该点前点的Y分量的的属性预测值,基于该N个预测点对应的权重值和该N个预测点的U分量的属性重建值,获取该点前点的U分量的的属性预测值,基于该N个预测点对应的权重值和该N个预测点的V分量的属性重建值,获取该点前点的V分量的的属性预测值。再如,以当前点的属性信息的格式为RGB格式为例,解码器获取该N个预测点对应的权重值后,可基于该N个预测点对应的权重值和该N个预测点的R分量的属性重建值,获取该点前点的R分量的的属性预测值,基于该N个预测点对应的权重值和该N个预测点的G分量的属性重建值,获取该点前点的G分量的的属性预测值,基于该N个预测点对应的权重值和该N个预测点的B分量的属性重建值,获取该点前点的B分量的的属性预测值。
下面结合具体实施例对解码端的具体执行步骤进行示例性说明。
实施例1:
本实施例中,解码端依次从当前点云的码流中解码当前点的第一分量的属性量化残差值、第二分量的属性量化残差值以及第三分量的属性量化残差值。作为一个示例,该第一分量为U分量,该第二分量可以是Y分量,该第三分量可以是V分量。作为另一个示例,该第一分量为G分量,该第二分量可以是R分量,该第三分量可以是B分量。
示例性地,解码端的执行过程可包括以下步骤:
a)、在当前点之间解码完成的点所组成的范围内为当前点查找N个预测点;
b)、根据N个预测点与当前点之间的几何距离分别计算该N个预测点中的每一个预测点的权重值,根据每一个预测点的权重值和每一个的属性重建值(包括Y分量、U分量以及V分量的属性重建值或R分量、G分量以及B分量的属性重建值),计算当前点的属性预测值(包括Y分量、U分量以及V分量的属性预测值或R分量、G分量以及B分量的属性预测值)。
例如,若当前点的属性信息的格式为YUV格式,则编码器可以根据每一个预测点的权重值和每一个预测点的Y分量,计算当前点的Y分量的属性预测值,根据每一个预测点的权重值和每一个预测点的U分量,计算当前点的U分量的属性预测值,根据每一个预测点的权重值和每一个预测点的V分量,计算当前点的V分量的属性预测值。再如,若当前点的属性信息的格式为RGB格式,则编码器可以根据每一个预测点的权重值和每一个预测点的R分量的属性重建值,计算当前点的R分量的属性预测值,根据每一个预测点的权重值和每一个预测点的G分量的属性重建值,计算当前点的G分量的属性预测值,根据每一个预测点的权重值和每一个预测点的B分量的属性重建值,计算当前点的B分量的属性预测值。
示例性地,可通过以下公式确定各个分量的属性预测值:
其中,A p表示各个分量的属性预测值,w i表示N个预测点中的第i个预测点的权重值,A i表示N个预测点中的第i个点的各个分量的属性预测值。例如,若当前点的颜色信息的格式为YUV格式,则各个分量可以包括Y分量、U分量以及V分量,若当前点的颜色信息的格式为RGB格式,则各个分量可以包括R分量、G分量以及B分量。
c)、按照U分量、Y分量、V分量(或G分量、R分量、B分量)的顺序从码流中解码获取当前点的各个分量的属性量化残差值。
例如,若当前点的颜色信息的格式为YUV格式,则解码器按照U分量、Y分量、V分量的顺序从码流中解码获取当前点的各个分量的属性量化残差值。再如,若当前点的颜色信息的格式为RGB格式,则编码器按照G分量、R分量、B分量的顺序从码流中解码获取当前点的各个分量的属性量化残差值。
示例性地,具体执行步骤包括:
1)、从码流中解码获取标志位flagu_g,若flagu_g为0,则U分量(或G分量)的属性量化残差值为0,若flagu_g为1,则U分量(或G分量)的属性量化残差值不为0。
例如,若当前点的颜色信息的格式为YUV格式,则解码器从码流中解码获取标志位flagu_g,若flagu_g为0,则U分量的属性量化残差值为0,flagu_g为1,则U分量的属性量化残差值不为0。再如,若当前点的颜色信息的格式为RGB格式,则解码器从码流中解码获取标志位flagu_g,若flagu_g为0,则G分量的属性量化残差值为0,若flagu_g为1,则G分量的属性量化残差值不为0。
2)、判断U分量(或G分量)的属性量化残差值是否为0,若为0,则执行3),否则执行4)。
3)、从码流中解码获取标志位flaguy_gr,若flaguy_gr为0,则Y分量(或R分量)的属性量化残差值为0,并从码流中解码获取V分量(或B分量)的属性量化残差值;否则,依次从码流中解码获取Y分量、V分量(或R分量、B分量)的属性量化残差值。
例如,若当前点的颜色信息的格式为YUV格式,则解码器从码流中解码获取标志位flaguy_gr,若flaguy_gr为0,则Y分量的属性量化残差值为0,并从码流中解码获取V分量的属性量化残差值;否 则,依次从码流中解码获取Y分量的属性量化残差值和V分量的属性量化残差值。再如,若当前点的颜色信息的格式为RGB格式,则解码器从码流中解码获取标志位flaguy_gr,若flaguy_gr为0,则R分量的属性量化残差值为0,并从码流中解码获取B分量的属性量化残差值;否则,依次从码流中解码获取R分量的属性量化残差值和B分量的属性量化残差值。
4)、依次从码流中解码获取U分量、Y分量、V分量(或G分量、R分量、B分量)的属性量化残差值。
例如,若当前点的颜色信息的格式为YUV格式,则解码器从码流中解码获取标志位flagu_g,若flagu_g为1,则解码器依次从码流中解码获取U分量的属性量化残差值、Y分量的属性量化残差值以及V分量的属性量化残差值。再如,若当前点的颜色信息的格式为RGB格式,则解码器从码流中解码获取标志位flagu_g,若flagu_g为1,则解码器依次从码流中解码获取G分量的属性量化残差值、R分量的属性量化残差值以及B分量的属性量化残差值。
d)、对于各个分量的属性量化残差值,编码器按照Y分量、U分量、V分量(或R分量、G分量、B分量)的顺序进行反量化、然后加上对应分量的属性预测值和跨分量预测值,生成当前点的对应分量的属性重建值。
例如,若当前点的颜色信息的格式为YUV格式,则对于各个分量的属性量化残差值,编码器按照Y分量、U分量、V分量的顺序进行反量化、然后加上对应分量的属性预测值和跨分量预测值,生成当前点的对应分量的属性重建值。再如,若当前点的颜色信息的格式为RGB格式,则对于各个分量的属性量化残差值,编码器按照R分量、G分量、B分量的顺序进行反量化、然后加上对应分量的属性预测值和跨分量预测值,生成当前点的对应分量的属性重建值。
示例性地,可以按照以下公式生成当前点的各个分量的属性重建值:
其中, 表示当前点的各个分量的属性重建值, 表示各个分量反量化后的属性残差重建值,predictor表示各个分量的属性预测值,residualPrevComponent表示各个分量的跨分量预测值。例如,若当前点的颜色信息的格式为YUV格式,则各个分量可以包括Y分量、U分量以及V分量,若当前点的颜色信息的格式为RGB格式,则各个分量可以包括R分量、G分量以及B分量。
在上述方案中,若当前点的颜色信息的格式为YUV格式,编码器按照U分量、Y分量、V分量的顺序对当前点的各个分量的属性量化残差值进行编码,若当前点的颜色信息的格式为RGB格式,编码器按照G分量、R分量、B分量的顺序对各个分量的属性量化残差值进行编码;相应的,若当前点的颜色信息的格式为YUV格式,解码器按照U分量、Y分量、V分量的顺序对当前点的各个分量的属性量化残差值进行解码,若当前点的颜色信息的格式为RGB格式,解码器按照G分量、R分量、B分量的顺序对各个分量的属性量化残差值进行解码。
以上结合附图详细描述了本申请的优选实施方式,但是,本申请并不限于上述实施方式中的具体细节,在本申请的技术构思范围内,可以对本申请的技术方案进行多种简单变型,这些简单变型均属于本申请的保护范围。例如,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本申请对各种可能的组合方式不再另行说明。又例如,本申请的各种不同的实施方式之间也可以进行任意组合,只要其不违背本申请的思想,其同样应当视为本申请所公开的内容。还应理解,在本申请的各种方法实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
图13是本申请实施例提供的基于编码方法200的示意性流程图。该方法200可由编码器或编码框架执行,例如图4所示的编码框架。
如图13所示,该编码方法200可包括:
S210,确定当前点云中待编码的当前点的第一分量的属性量化残差值、第二分量的属性量化残差值以及第三分量的属性量化残差值;其中,该第一分量为U分量、V分量、G分量或B分量;
S220,依次编码该第一分量的属性量化残差值、该第二分量的属性量化残差值以及该第三分量的属性量化残差值,以得到该当前点云的码流。
在一些实施例中,该码流包括对第一标识的取值进行编码得到的结果,该第一标识的取值用于表示该第一分量的属性量化残差值是否为零。
在一些实施例中,若该第一标识的取值为第一数值,则表示该第一分量的属性量化残差值为零;若该第一标识的取值为第二数值,则表示该第一分量的属性量化残差值不为零。
在一些实施例中,若该第一分量的属性量化残差值为零,则该码流还包括对第二标识的取值进行编码得到的结果,该第二标识的取值用于表示该第一分量的属性量化残差值和该第二分量的属性量化残差 值是否都为零。
在一些实施例中,若该第二标识的取值为第一数值,则表示该第一分量的属性量化残差值和该第二分量的属性量化残差值都为零;若该第二标识的取值为第二数值,则表示该第一分量的属性量化残差值和该第二分量的属性量化残差值不都为零。
在一些实施例中,若该第一分量的属性量化残差值和该第二分量的属性量化残差值都为零,该码流还包括对该第三分量的属性量化残差值进行编码得到的结果。
在一些实施例中,若该第一分量的属性量化残差值和该第二分量的属性量化残差值不都为零,该码流还包括依次对该第二分量的属性量化残差值和该第三分量的属性量化残差值进行编码得到的结果。
在一些实施例中,若该第一分量的属性量化残差值不为零,则该码流还包括依次对该第一分量的属性量化残差值、该第二分量的属性量化残差值以及该第三分量的属性量化残差值进行编码得到的结果。
在一些实施例中,该方法200还可包括:
针对该第一分量、该第二分量和该第三分量中的每一个分量,对所每一个分量的属性量化残差值进行反量化处理,得到该每一个分量的属性残差重建值;
获取该每一个分量的属性残差重建值;
获取该每一个分量的属性预测值;
获取该每一个分量的跨分量预测值;
将该每一个分量的属性残差重建值、该每一个分量的属性预测值、以及该每一个分量的跨分量预测值的和,确定为该每一个分量的属性重建值。
在一些实施例中,该第一分量的跨分量预测值为零;该第二分量的跨分量预测值为该第一分量的属性残差重建值;该第三分量的跨分量预测值为该第一分量的属性残差重建值与该第二分量的属性残差重建值的和。
在一些实施例中,在该当前点之前编码完成的点所组成的范围内为该当前点查找N个预测点;根据该N个预测点与该当前点之间的几何距离,计算该N个预测点对应的权重值;基于该N个预测点对应的权重值和该N个预测点的属性重建值,获取该每一个分量的属性预测值。
下面结合具体实施例对编码端的具体执行步骤进行示例性说明。
实施例2:
本实施例中,编码器依次编码该第一分量的属性量化残差值、该第二分量的属性量化残差值以及该第三分量的属性量化残差值,以得到该当前点云的码流;作为一个示例,该第一分量为U分量,该第二分量可以是Y分量,该第三分量可以是V分量。作为另一个示例,该第一分量为G分量,该第二分量可以是R分量,该第三分量可以是B分量。
本实施例中,编码端的执行过程可包括以下步骤:
a)、在当前点之间编码完成的点所组成的范围内为当前点查找N个预测点。
b)、根据N个预测点与当前点之间的几何距离分别计算该N个预测点中的每一个预测点的权重值,根据每一个预测点的权重值和每一个的属性重建值(包括Y分量、U分量以及V分量的属性重建值或R分量、G分量以及B分量的属性重建值),计算当前点的属性预测值(包括Y分量、U分量以及V分量的属性预测值或R分量、G分量以及B分量的属性预测值)。
例如,若当前点的属性信息的格式为YUV格式,则编码器可以根据每一个预测点的权重值和每一个预测点的Y分量,计算当前点的Y分量的属性预测值,根据每一个预测点的权重值和每一个预测点的U分量,计算当前点的U分量的属性预测值,根据每一个预测点的权重值和每一个预测点的V分量,计算当前点的V分量的属性预测值。再如,若当前点的属性信息的格式为RGB格式,则编码器可以根据每一个预测点的权重值和每一个预测点的R分量的属性重建值,计算当前点的R分量的属性预测值,根据每一个预测点的权重值和每一个预测点的G分量的属性重建值,计算当前点的G分量的属性预测值,根据每一个预测点的权重值和每一个预测点的B分量的属性重建值,计算当前点的B分量的属性预测值。
示例性地,可通过以下公式确定各个分量的属性预测值:
其中,A p表示各个分量的属性预测值,w i表示N个预测点中的第i个预测点的权重值,A i表示N个预测点中的第i个点的各个分量的属性预测值。例如,若当前点的颜色信息的格式为YUV格式,则各个分量可以包括Y分量、U分量以及V分量,若当前点的颜色信息的格式为RGB格式,则各个分量可以包括R分量、G分量以及B分量。
c)、编码器根据各个分量的属性预测值和各个分量跨分量预测值,计算各个分量的属性残差值。
例如,若当前点的颜色属性位于YUV空间,则可以按照Y分量、U分量、V分量的顺序依次计算 当前点的各个分量的属性残差值;若当前点的颜色属性位于RGB空间,则可以按照R分量、G分量、B分量的顺序依次计算当前点的各个分量的属性残差值。
示例性地,可以按照以下公式计算各个分量的属性残差值:
delta=currValue-predictor-residualPrevComponent;
其中,delta表示各个分量的属性残差值,currValue表示各个分量的原始值或真实值,predictor表示各个分量的属性预测值,residualPrevComponent表示各个分量的跨分量预测值。例如,若当前点的颜色信息的格式为YUV格式,则各个分量可以包括Y分量、U分量以及V分量,若当前点的颜色信息的格式为RGB格式,则各个分量可以包括R分量、G分量以及B分量。
示例性地,对于Y分量和R分量,由于是最先编码的分量,因此,可以将Y分量和R分量的跨分量预测值为0,对于U分量、V分量、G分量以及B分量,其跨分量预测值根据前面编码的分量的属性量化残差值经过反量化得到的属性残差值确定。例如,U分量的跨分量预测值可以是对Y分量的属性量化残差值经过反量化得到的属性残差重建值,G分量的跨分量预测值可以是对R分量的属性量化残差值经过反量化得到的属性残差重建值。再如,V分量的跨分量预测值可以是对Y分量的属性量化残差值经过反量化得到的属性残差重建值与对U分量的属性量化残差值经过反量化得到的属性残差重建值的和,B分量的跨分量预测值可以是对R分量的属性量化残差重建值经过反量化得到的属性残差值与对G分量的属性量化残差值经过反量化得到的属性残差重建值的和。
编码器获取各个分量的属性残差值后,对各个分量的属性残差值进行量化操作,得到当前点的各个分量的属性量化残差值。例如,若当前点的颜色信息的格式为YUV格式,则按照Y分量、U分量、V分量的顺序依次量化当前点的各个分量的属性残差值,得到各个分量的属性量化残差值。再如,若当前点的颜色信息的格式为RGB格式,则按照R分量、G分量、B分量的顺序依次量化当前点的各个分量的属性残差值,得到各个分量的属性量化残差值。
d)、编码器对当前点的各个分量的属性量化残差值进行熵编码,得到点云的码流。
例如,若当前点的颜色信息的格式为YUV格式,则按照U分量、Y分量、V分量的顺序对各个分量的属性量化残差值进行熵编码,以得到点云的码流。再如,若当前点的颜色信息的格式为RGB格式,则按照G分量、R分量、B分量顺序对各个分量的属性量化残差值进行熵编码,以得到点云的码流。
示例性地,可以按照以下步骤对当前点的各个分量的属性量化残差值进行熵编码:
1)、一方面,引入一个标志位flagu_g,针对属性信息的格式为YUV格式的点,其可用于表示U分量的属性量化残差值是否为0,对于属性信息的格式为RGB格式的点,其可用于表示G分量的属性量化残差值是否为0。例如,若U分量(或G分量)的属性量化残差值为0,则flagu_g=0,否则flagu_g=1,编码器对flagu_g的取值进行编码并写入码流。另一方面,引入另一个标志位flaguy_gr,针对属性信息的格式为YUV格式的点,其可用于表示U分量的属性残差量化值和Y分量的属性残差量化值是否都为0,对于属性信息的格式为RGB格式的点,其可用于表示G分量的属性残差量化值和R分量的属性残差量化值是否都为0。例如,若U分量的属性残差量化值和Y分量的属性残差量化值都为0,则flaguy_gr=0,否则flaguy_gr=1。再如,若G分量的属性残差量化值和R分量的属性残差量化值都为0,则flaguy_gr=0,否则flaguy_gr=1。
2)、编码器判断U分量(或G分量)的属性量化残差值是否为0,若为0,则执行下述3),否则执行下述4)。
3)、编码器对flaguy_gr的取值进行编码,并判断Y分量(或R分量)的属性量化残差值是否为0,若Y分量(或R分量)的属性量化残差值为0,则编码V分量(或B分量)的属性量化残差值,否则依次编码Y分量和V分量(或R分量和B分量)的属性残差量化值。
例如,若当前点的颜色信息的格式为YUV格式,则编码器对flaguy_gr的取值进行编码,并判断Y分量的属性量化残差值是否为0,若Y分量的属性量化残差值为0,则编码V分量的属性量化残差值,否则依次编码Y分量的属性残差量化值和V分量的属性残差量化值。再如,若当前点的颜色信息的格式为RGB格式,则编码器对flaguy_gr的取值进行编码,并判断R分量的属性量化残差值是否为0,若R分量的属性量化残差值为0,则编码B分量的属性量化残差值,否则依次编码R分量的属性残差量化值和B分量的属性残差量化值。
4)、编码器依次编码U分量、Y分量、V分量(或G分量、R分量、B分量)的属性量化残差值。
例如,若当前点的颜色信息的格式为YUV格式,则编码器依次编码U分量的属性量化残差值、Y分量的属性量化残差值以及V分量的属性量化残差值。再如,若当前点的颜色信息的格式为RGB格式,则编码器依次编码G分量的属性量化残差值、R分量的属性量化残差值以及B分量的属性量化残差值。
e)、对于各个分量的属性量化残差值,编码器按照Y分量、U分量、V分量(或R分量、G分量、B分量)的顺序进行反量化、然后加上对应分量的属性预测值和跨分量预测值,生成当前点的对应分量 的属性重建值。
例如,若当前点的颜色信息的格式为YUV格式,则对于各个分量的属性量化残差值,编码器按照Y分量、U分量、V分量的顺序进行反量化、然后加上对应分量的属性预测值和跨分量预测值,生成当前点的对应分量的属性重建值。再如,若当前点的颜色信息的格式为RGB格式,则对于各个分量的属性量化残差值,编码器按照R分量、G分量、B分量的顺序进行反量化、然后加上对应分量的属性预测值和跨分量预测值,生成当前点的对应分量的属性重建值。
示例性地,可以按照以下公式生成当前点的各个分量的属性重建值:
其中, 表示当前点的各个分量的属性重建值, 表示各个分量反量化后的属性残差重建值,predictor表示各个分量的属性预测值,residualPrevComponent表示各个分量的跨分量预测值。例如,若当前点的颜色信息的格式为YUV格式,则各个分量可以包括Y分量、U分量以及V分量,若当前点的颜色信息的格式为RGB格式,则各个分量可以包括R分量、G分量以及B分量。
应当理解,由于步骤c)中会对各个分量的属性量化残差值进行反量化,得到各个分量的属性残差重建值,因此,也可以将步骤e)中各个分量的属性重建值的生成过程集成在步骤c)中。此外,若将步骤e)中各个分量的属性重建值的生成过程集成在步骤c)中,则各个分量的属性重建值的生成过程也可以按照U分量、Y分量、V分量(或G分量、R分量、B分量)的顺序进行反量化。本申请对此不作具体限定。
下面将结合附图对本申请实施例提供的编码器或解码器进行说明。
图14是本申请实施例提供的解码器300的示意性框图。
如图14所示,该解码器300可包括:
解码单元310,用于依次从当前点云的码流中解码当前点的第一分量的属性量化残差值、第二分量的属性量化残差值以及第三分量的属性量化残差值;其中,该第一分量为U分量、V分量、G分量或B分量;
获取单元320,用于基于该第一分量的属性量化残差值、该第二分量的属性量化残差值以及该第三分量的属性量化残差值,获取该当前点的属性重建值。
在一些实施例中,该解码单元310具体用于:
对该码流进行解码,得到第一标识,该第一标识的取值用于表示该第一分量的属性量化残差值是否为零;
基于该第一标识的取值对该码流进行解析,获取该第一分量的属性量化残差值、该第二分量的属性量化残差值以及该第三分量的属性量化残差值。
在一些实施例中,该第一标识的取值为第一数值;其中,该解码单元310具体用于:
确定该第一分量的属性量化残差值为零;
基于对该码流进行解码得到的第二标识,获取该第二分量的属性残差值和该第三分量的属性残差值;该第二标识的取值用于表示该第一分量的属性量化残差值和该第二分量的属性量化残差值是否都为零。
在一些实施例中,该解码单元310具体用于:
若该第二标识的取值为该第一数值,则确定该第二分量的属性量化残差值为零,并从该码流中获取该第三分量的属性量化残差值;
若该第二标识的取值为第二数值,则依次从该码流中获取该第二分量的属性量化残差值和该第三分量的属性量化残差值。
在一些实施例中,该第一标识的取值为第二数值;其中,该解码单元310具体用于:
依次从该码流中获取该第一分量的属性量化残差值、该第二分量的属性量化残差值以及该第三分量的属性量化残差值。
在一些实施例中,该获取单元320具体用于:
针对该第一分量、该第二分量和该第三分量中的每一个分量,对所每一个分量的属性量化残差值进行反量化处理,得到该每一个分量的属性残差重建值;
获取该每一个分量的属性残差重建值;
获取该每一个分量的属性预测值;
获取该每一个分量的跨分量预测值;
将该每一个分量的属性残差重建值、该每一个分量的属性预测值、以及该每一个分量的跨分量预测值的和,确定为该每一个分量的属性重建值。
在一些实施例中,该第一分量的跨分量预测值为零;该第二分量的跨分量预测值为该第一分量的属性残差重建值;该第三分量的跨分量预测值为该第一分量的属性残差重建值与该第二分量的属性残差重 建值的和。
在一些实施例中,该获取单元320具体用于:
在该当前点之前解码完成的点所组成的范围内为该当前点查找N个预测点;
根据该N个预测点与该当前点之间的几何距离,计算该N个预测点对应的权重值;
基于该N个预测点对应的权重值和该N个预测点的属性重建值,获取该每一个分量的属性预测值。
需要说明的是,该解码器300也可以结合至图5所示的解码框架,即可将该解码器300中的单元替换或结合至解码框架中的相关部分。例如,该获取单元320可用于实现解码框架中的属性预测部分。
图15是本申请实施例提供的编码器400的示意性框图。
如图15所示,该编码器400可包括:
确定单元410,用于确定当前点云中待编码的当前点的第一分量的属性量化残差值、第二分量的属性量化残差值以及第三分量的属性量化残差值;其中,该第一分量为U分量、V分量、G分量或B分量;
编码单元420,用于依次编码该第一分量的属性量化残差值、该第二分量的属性量化残差值以及该第三分量的属性量化残差值,以得到该当前点云的码流。
在一些实施例中,该码流包括对第一标识的取值进行编码得到的结果,该第一标识的取值用于表示该第一分量的属性量化残差值是否为零。
在一些实施例中,若该第一标识的取值为第一数值,则表示该第一分量的属性量化残差值为零;若该第一标识的取值为第二数值,则表示该第一分量的属性量化残差值不为零。
在一些实施例中,若该第一分量的属性量化残差值为零,则该码流还包括对第二标识的取值进行编码得到的结果,该第二标识的取值用于表示该第一分量的属性量化残差值和该第二分量的属性量化残差值是否都为零。
在一些实施例中,若该第二标识的取值为第一数值,则表示该第一分量的属性量化残差值和该第二分量的属性量化残差值都为零;若该第二标识的取值为第二数值,则表示该第一分量的属性量化残差值和该第二分量的属性量化残差值不都为零。
在一些实施例中,若该第一分量的属性量化残差值和该第二分量的属性量化残差值都为零,该码流还包括对该第三分量的属性量化残差值进行编码得到的结果。
在一些实施例中,若该第一分量的属性量化残差值和该第二分量的属性量化残差值不都为零,该码流还包括依次对该第二分量的属性量化残差值和该第三分量的属性量化残差值进行编码得到的结果。
在一些实施例中,若该第一分量的属性量化残差值不为零,则该码流还包括依次对该第一分量的属性量化残差值、该第二分量的属性量化残差值以及该第三分量的属性量化残差值进行编码得到的结果。
在一些实施例中,该确定单元410还用于:
针对该第一分量、该第二分量和该第三分量中的每一个分量,对所每一个分量的属性量化残差值进行反量化处理,得到该每一个分量的属性残差重建值;
获取该每一个分量的属性残差重建值;
获取该每一个分量的属性预测值;
获取该每一个分量的跨分量预测值;
将该每一个分量的属性残差重建值、该每一个分量的属性预测值、以及该每一个分量的跨分量预测值的和,确定为该每一个分量的属性重建值。
在一些实施例中,该第一分量的跨分量预测值为零;该第二分量的跨分量预测值为该第一分量的属性残差重建值;该第三分量的跨分量预测值为该第一分量的属性残差重建值与该第二分量的属性残差重建值的和。
在一些实施例中,该确定单元410具体用于:
在该当前点之前编码完成的点所组成的范围内为该当前点查找N个预测点;
根据该N个预测点与该当前点之间的几何距离,计算该N个预测点对应的权重值;
基于该N个预测点对应的权重值和该N个预测点的属性重建值,获取该每一个分量的属性预测值。
需要说明的是,该编码器400也可以结合至图4所示的编码框架,即可将该编码器400中的单元替换或结合至编码框架中的相关部分。例如,该确定单元410可用于实现编码框架中的属性预测部分。
应理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,解码器300可以对应于执行本申请实施例的方法100中的相应主体,并且解码器300中的各个单元分别为了实现方法100中的相应流程,类似的,编码器400可以对应于执行本申请实施例的方法200中的相应主体,并且编码器400中的各个单元分别为了实现方法200中的相应流程,为了简洁,在此不再赘述。
还应当理解,本申请实施例涉及的解码器300或编码器400中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,该解码器300或编码器400也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。根据本申请的另一个实施例,可以通过在包括例如中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的通用计算机的通用计算设备上运行能够执行相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造本申请实施例涉及的解码器300或编码器400,以及来实现本申请实施例的基于点云属性预测的编解码方法。计算机程序可以记载于例如计算机可读存储介质上,并通过计算机可读存储介质装载于任意具有数据处理能力的电子设备,并在其中运行,来实现本申请实施例的相应方法。
换言之,上文涉及的单元可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过软硬件结合的形式实现。具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件组合执行完成。可选地,软件可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。
图16是本申请实施例提供的编解码设备500的示意结构图。
如图16所示,该编解码设备500至少包括处理器510以及计算机可读存储介质520。其中,处理器510以及计算机可读存储介质520可通过总线或者其它方式连接。计算机可读存储介质520用于存储计算机程序521,计算机程序521包括计算机指令,处理器510用于执行计算机可读存储介质520存储的计算机指令。处理器510是编解码设备500的计算核心以及控制核心,其适于实现一条或多条计算机指令,具体适于加载并执行一条或多条计算机指令从而实现相应方法流程或相应功能。
作为示例,处理器510也可称为中央处理器(CentralProcessingUnit,CPU)。处理器510可以包括但不限于:通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
作为示例,计算机可读存储介质520可以是高速RAM存储器,也可以是非不稳定的存储器(Non-VolatileMemory),例如至少一个磁盘存储器;可选的,还可以是至少一个位于远离前述处理器510的计算机可读存储介质。具体而言,计算机可读存储介质520包括但不限于:易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
在一种实现方式中,该编解码设备500可以是图4所示的编码框架或图15所示的编码器400;该计算机可读存储介质520中存储有第一计算机指令;由处理器510加载并执行计算机可读存储介质520中存放的第一计算机指令,以实现图13所示方法实施例中的相应步骤;具体实现中,计算机可读存储介质520中的第一计算机指令由处理器510加载并执行相应步骤,为避免重复,此处不再赘述。在一种实现方式中,该编解码设备500可以是图5所示的解码框架或图14所示的解码器300;该计算机可读存储介质520中存储有第二计算机指令;由处理器510加载并执行计算机可读存储介质520中存放的第二计算机指令,以实现图12所示方法实施例中的相应步骤;具体实现中,计算机可读存储介质520中的第二计算机指令由处理器510加载并执行相应步骤,为避免重复,此处不再赘述。
根据本申请的另一方面,本申请实施例还提供了一种计算机可读存储介质(Memory),计算机可读存储介质是编解码设备500中的记忆设备,用于存放程序和数据。例如,计算机可读存储介质520。可以理解的是,此处的计算机可读存储介质520既可以包括编解码设备500中的内置存储介质,当然也可以包括编解码设备500所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了编解码设备500的操作系统。并且,在该存储空间中还存放了适于被处理器510加载并执行的一条或 多条的计算机指令,这些计算机指令可以是一个或多个的计算机程序521(包括程序代码)。这些计算机指令指令用于计算机执行上述各种可选方式中提供的基于点云属性预测的编解码方法。
根据本申请的另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。例如,计算机程序521。此时,编解码设备500可以是计算机,处理器510从计算机可读存储介质520读取该计算机指令,处理器510执行该计算机指令,使得该计算机执行上述各种可选方式中提供的基于点云属性预测的编解码方法。
换言之,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地运行本申请实施例的流程或实现本申请实施例的功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质进行传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元以及流程步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
最后需要说明的是,以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (25)

  1. 一种解码方法,其特征在于,包括:
    依次从当前点云的码流中解码当前点的第一分量的属性量化残差值、第二分量的属性量化残差值以及第三分量的属性量化残差值;其中,所述第一分量为U分量、V分量、G分量或B分量;
    基于所述第一分量的属性量化残差值、所述第二分量的属性量化残差值以及所述第三分量的属性量化残差值,获取所述当前点的属性重建值。
  2. 根据权利要求1所述的方法,其特征在于,所述依次从当前点云的码流中解码当前点的第一分量的属性量化残差值、第二分量的属性量化残差值以及第三分量的属性量化残差值,包括:
    对所述码流进行解码,得到第一标识,所述第一标识的取值用于表示所述第一分量的属性量化残差值是否为零;
    基于所述第一标识的取值对所述码流进行解析,获取所述第一分量的属性量化残差值、所述第二分量的属性量化残差值以及所述第三分量的属性量化残差值。
  3. 根据权利要求2所述的方法,其特征在于,所述第一标识的取值为第一数值;
    其中,所述基于所述第一标识的取值对所述码流进行解析,获取所述第一分量的属性量化残差值、所述第二分量的属性量化残差值以及所述第三分量的属性量化残差值,包括:
    确定所述第一分量的属性量化残差值为零;
    基于对所述码流进行解码得到的第二标识,获取所述第二分量的属性残差值和所述第三分量的属性残差值;所述第二标识的取值用于表示所述第一分量的属性量化残差值和所述第二分量的属性量化残差值是否都为零。
  4. 根据权利要求3所述的方法,其特征在于,所述基于对所述码流进行解码得到的第二标识,获取所述第二分量的属性残差值和所述第三分量的属性残差值,包括:
    若所述第二标识的取值为所述第一数值,则确定所述第二分量的属性量化残差值为零,并从所述码流中获取所述第三分量的属性量化残差值;
    若所述第二标识的取值为第二数值,则依次从所述码流中获取所述第二分量的属性量化残差值和所述第三分量的属性量化残差值。
  5. 根据权利要求2所述的方法,其特征在于,所述第一标识的取值为第二数值;
    其中,所述基于所述第一标识的取值对所述码流进行解析,获取所述第一分量的属性量化残差值、所述第二分量的属性量化残差值以及所述第三分量的属性量化残差值,包括:
    依次从所述码流中获取所述第一分量的属性量化残差值、所述第二分量的属性量化残差值以及所述第三分量的属性量化残差值。
  6. 根据权利要求1至5中任一项所述的方法,其特征在于,所述基于所述第一分量的属性量化残差值、所述第二分量的属性量化残差值以及所述第三分量的属性量化残差值,获取所述当前点的属性重建值,包括:
    针对所述第一分量、所述第二分量和所述第三分量中的每一个分量,对所每一个分量的属性量化残差值进行反量化处理,得到所述每一个分量的属性残差重建值;
    获取所述每一个分量的属性残差重建值;
    获取所述每一个分量的属性预测值;
    获取所述每一个分量的跨分量预测值;
    将所述每一个分量的属性残差重建值、所述每一个分量的属性预测值、以及所述每一个分量的跨分量预测值的和,确定为所述每一个分量的属性重建值。
  7. 根据权利要求6所述的方法,其特征在于,所述第一分量的跨分量预测值为零;所述第二分量的跨分量预测值为所述第一分量的属性残差重建值;所述第三分量的跨分量预测值为所述第一分量的属性残差重建值与所述第二分量的属性残差重建值的和。
  8. 根据权利要求6所述的方法,其特征在于,所述获取所述每一个分量的属性预测值,包括:
    在所述当前点之前解码完成的点所组成的范围内为所述当前点查找N个预测点;
    根据所述N个预测点与所述当前点之间的几何距离,计算所述N个预测点对应的权重值;
    基于所述N个预测点对应的权重值和所述N个预测点的属性重建值,获取所述每一个分量的属性预测值。
  9. 一种编码方法,其特征在于,包括:
    确定当前点云中待编码的当前点的第一分量的属性量化残差值、第二分量的属性量化残差值以及第三分量的属性量化残差值;其中,所述第一分量为U分量、V分量、G分量或B分量;
    依次编码所述第一分量的属性量化残差值、所述第二分量的属性量化残差值以及所述第三分量的属性量化残差值,得到所述当前点云的码流。
  10. 根据权利要求9所述的方法,其特征在于,所述码流包括对第一标识的取值进行编码得到的结果,所述第一标识的取值用于表示所述第一分量的属性量化残差值是否为零。
  11. 根据权利要求10所述的方法,其特征在于,若所述第一标识的取值为第一数值,则表示所述第一分量的属性量化残差值为零;若所述第一标识的取值为第二数值,则表示所述第一分量的属性量化残差值不为零。
  12. 根据权利要求10或11所述的方法,其特征在于,若所述第一分量的属性量化残差值为零,则所述码流还包括对第二标识的取值进行编码得到的结果,所述第二标识的取值用于表示所述第一分量的属性量化残差值和所述第二分量的属性量化残差值是否都为零。
  13. 根据权利要求12所述的方法,其特征在于,若所述第二标识的取值为第一数值,则表示所述第一分量的属性量化残差值和所述第二分量的属性量化残差值都为零;若所述第二标识的取值为第二数值,则表示所述第一分量的属性量化残差值和所述第二分量的属性量化残差值不都为零。
  14. 根据权利要求12所述的方法,其特征在于,若所述第一分量的属性量化残差值和所述第二分量的属性量化残差值都为零,所述码流还包括对所述第三分量的属性量化残差值进行编码得到的结果。
  15. 根据权利要求12所述的方法,其特征在于,若所述第一分量的属性量化残差值和所述第二分量的属性量化残差值不都为零,所述码流还包括依次对所述第二分量的属性量化残差值和所述第三分量的属性量化残差值进行编码得到的结果。
  16. 根据权利要求10或11所述的方法,其特征在于,若所述第一分量的属性量化残差值不为零,则所述码流还包括依次对所述第一分量的属性量化残差值、所述第二分量的属性量化残差值以及所述第三分量的属性量化残差值进行编码得到的结果。
  17. 根据权利要求9至16中任一项所述的方法,其特征在于,所述方法还包括:
    针对所述第一分量、所述第二分量和所述第三分量中的每一个分量,对所每一个分量的属性量化残差值进行反量化处理,得到所述每一个分量的属性残差重建值;
    获取所述每一个分量的属性残差重建值;
    获取所述每一个分量的属性预测值;
    获取所述每一个分量的跨分量预测值;
    将所述每一个分量的属性残差重建值、所述每一个分量的属性预测值、以及所述每一个分量的跨分量预测值的和,确定为所述每一个分量的属性重建值。
  18. 根据权利要求17所述的方法,其特征在于,所述第一分量的跨分量预测值为零;所述第二分量的跨分量预测值为所述第一分量的属性残差重建值;所述第三分量的跨分量预测值为所述第一分量的属性残差重建值与所述第二分量的属性残差重建值的和。
  19. 根据权利要求17所述的方法,其特征在于,所述获取所述每一个分量的属性预测值,包括:
    在所述当前点之前编码完成的点所组成的范围内为所述当前点查找N个预测点;
    根据所述N个预测点与所述当前点之间的几何距离,计算所述N个预测点对应的权重值;
    基于所述N个预测点对应的权重值和所述N个预测点的属性重建值,获取所述每一个分量的属性预测值。
  20. 一种解码器,其特征在于,包括:
    解码单元,用于依次从当前点云的码流中解码当前点的第一分量的属性量化残差值、第二分量的属性量化残差值以及第三分量的属性量化残差值;其中,所述第一分量为U分量、V分量、G分量或B分量;
    获取单元,用于基于所述第一分量的属性量化残差值、所述第二分量的属性量化残差值以及所述第三分量的属性量化残差值,获取所述当前点的属性重建值。
  21. 一种编码器,其特征在于,包括:
    确定单元,用于确定当前点云中待编码的当前点的第一分量的属性量化残差值、第二分量的属性量化残差值以及第三分量的属性量化残差值;其中,所述第一分量为U分量、V分量、G分量或B分量;
    编码单元,用于依次编码所述第一分量的属性量化残差值、所述第二分量的属性量化残差值以及所述第三分量的属性量化残差值,得到所述当前点云的码流。
  22. 一种解码设备,其特征在于,包括:
    处理器,适于执行计算机程序;
    计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被所述处理器执行时,实现如权利要求1至8中任一项所述的解码方法。
  23. 一种编码设备,其特征在于,包括:
    处理器,适于执行计算机程序;
    计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被所述处理器执行时,实现如权利要求9至19中任一项所述的编码方法。
  24. 一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序使得计算机执行如权利要求1至8中任一项所述的解码方法。
  25. 一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序使得计算机执行如权利要求9至19中任一项所述的编码方法。
CN202180104567.1A 2021-12-03 解码方法、编码方法、解码器以及编码器 Pending CN118303029A (zh)

Publications (1)

Publication Number Publication Date
CN118303029A true CN118303029A (zh) 2024-07-05

Family

ID=

Similar Documents

Publication Publication Date Title
US11601488B2 (en) Device and method for transmitting point cloud data, device and method for processing point cloud data
US20230342985A1 (en) Point cloud encoding and decoding method and point cloud decoder
CN114598883A (zh) 点云属性的预测方法、编码器、解码器及存储介质
CN116250008A (zh) 点云的编码、解码方法、编码器、解码器以及编解码系统
CN115086660B (zh) 基于点云属性预测的解码、编码方法、解码器及编码器
WO2023015530A1 (zh) 点云编解码方法、编码器、解码器及计算机可读存储介质
CN118303029A (zh) 解码方法、编码方法、解码器以及编码器
WO2023097694A1 (zh) 解码方法、编码方法、解码器以及编码器
CN116325732A (zh) 点云的解码、编码方法、解码器、编码器和编解码系统
CN117751574A (zh) 解码方法、编码方法、解码器以及编码器
CN117426086A (zh) 解码方法、编码方法、解码器、编码器以及编解码设备
WO2023159428A1 (zh) 编码方法、编码器以及存储介质
WO2023240660A1 (zh) 解码方法、编码方法、解码器以及编码器
WO2023240455A1 (zh) 点云编码方法、编码装置、编码设备以及存储介质
WO2022257143A1 (zh) 帧内预测、编解码方法及装置、编解码器、设备、介质
WO2022217472A1 (zh) 点云编解码方法、编码器、解码器及计算机可读存储介质
WO2022257145A1 (zh) 点云属性的预测方法、装置及编解码器
US20240087174A1 (en) Coding and decoding point cloud attribute information
US20230051431A1 (en) Method and apparatus for selecting neighbor point in point cloud, encoder, and decoder
WO2024145953A1 (zh) 解码方法、编码方法、解码器以及编码器
RU2778377C1 (ru) Способ и устройство для кодирования облака точек
US20230412837A1 (en) Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device
WO2022140937A1 (zh) 点云编解码方法与系统、及点云编码器与点云解码器
WO2023197337A1 (zh) 索引确定方法、装置、解码器以及编码器
US20240020885A1 (en) Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device

Legal Events

Date Code Title Description
PB01 Publication