CN115733990A - 点云编解码方法、设备及存储介质 - Google Patents
点云编解码方法、设备及存储介质 Download PDFInfo
- Publication number
- CN115733990A CN115733990A CN202110975157.6A CN202110975157A CN115733990A CN 115733990 A CN115733990 A CN 115733990A CN 202110975157 A CN202110975157 A CN 202110975157A CN 115733990 A CN115733990 A CN 115733990A
- Authority
- CN
- China
- Prior art keywords
- current block
- points
- information
- block
- coding mode
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 130
- 238000003860 storage Methods 0.000 title claims abstract description 25
- 238000005192 partition Methods 0.000 claims abstract description 45
- 238000004590 computer program Methods 0.000 claims description 32
- 238000005457 optimization Methods 0.000 claims description 3
- 238000000638 solvent extraction Methods 0.000 claims description 3
- 238000013139 quantization Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 10
- 230000003068 static effect Effects 0.000 description 8
- 230000006835 compression Effects 0.000 description 7
- 238000007906 compression Methods 0.000 description 7
- 230000009466 transformation Effects 0.000 description 6
- 238000010276 construction Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000013519 translation Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000002591 computed tomography Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000007654 immersion Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 210000000056 organ Anatomy 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011002 quantification Methods 0.000 description 2
- 101000638069 Homo sapiens Transmembrane channel-like protein 2 Proteins 0.000 description 1
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 102100032054 Transmembrane channel-like protein 2 Human genes 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000002595 magnetic resonance imaging Methods 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请提供了一种点云编解码方法、设备及存储介质,该方法包括:获取点云,并对点云进行块划分,得到当前块;获取当前块的第一信息,根据当前块的第一信息,确定是否采用宏块编码模式对当前块进行编码,例如根据当前块的划分深度、当前块的包围盒尺寸、当前块内的点数、当前块内的点密度中的至少一个,可以准确判断出当前块是否采用宏块编码模式进行编码,进而提高了当前块的编码效率。
Description
技术领域
本申请实施例涉及视频编解码技术领域,尤其涉及一种点云编解码方法、设备及存储介质。
背景技术
通过采集设备对物体表面进行采集,形成点云数据,点云数据包括几十万甚至更多的点。在视频制作过程中,将点云数据以点云媒体文件的形式在视频制作设备和视频编码设备之间传输。但是,如此庞大的点给传输带来了挑战,因此,视频制作设备需要对点云数据进行压缩后传输。
点云的压缩通过点云的点云编码实现,点云的编码方式包括块结构编码方式,例如宏块编码模式,即将点云划分成至少一个点云块,对点云块进行单独编码。
但是,在点云编码时,宏块编码模式并不适用于所有的点云块,对于不适用于宏块编码的点云块采用宏块编码模式进行编码时,会造成编码效率低的问题。
发明内容
本申请提供一种点云编码方法、设备及存储介质,可以准确确定出当前块是否适用于宏块编码模式进行编码,进而提高了点云的编码效率。
第一方面,本申请提供一种点云编码方法,包括:
获取点云,并对所述点云进行块划分,得到当前块;
获取所述当前块的第一信息,所述第一信息用于指示所述当前块的块划分信息;
根据所述当前块的第一信息,确定是否采用宏块编码模式对所述当前块进行编码,所述宏块编码模式为对所述当前块进行单独编码的编码方式。
第二方面,本申请提供一种点云编码方法,包括:
解码点云码流,得到待解码的当前块;
确定所述当前块在编码时是否采用宏块编码模式进行编码,所述宏块编码模式为对所述当前块进行单独编码的编码方式。
第三方面,提供了一种编码设备,用于执行上述第一方面或其各实现方式中的方法。具体地,所述编码设备包括用于执行上述第一方面或其各实现方式中的方法的功能模块。
第四方面,提供了一种解码设备,用于执行上述第二方面或其各实现方式中的方法。具体地,所述解码设备包括用于执行上述第二方面或其各实现方式中的方法的功能模块。
第五方面,提供了一种编码设备,包括处理器和存储器。所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行上述第一方面或其各实现方式中的方法。
第六方面,提供了一种解码设备,包括处理器和存储器。所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行上述第二方面或其各实现方式中的方法。
第七方面,提供了一种电子设备,包括处理器和存储器。所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行上述第一方面和/或第二方面或其各实现方式中的方法。
第八方面,提供了一种编解码***,包括第二方面和第五方面中任一方面或其各实现方式中的编码设备,以及第三方面和第六方面中人一方面或其各实现方式中的解码设备。
第九方面,提供了一种芯片,用于实现上述第一方面至第二方面中任一方面或其各实现方式中的方法。具体地,所述芯片包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行如上述第一方面至第二方面中任一方面或其各实现方式中的方法。
第十方面,提供了一种计算机可读存储介质,用于存储计算机程序,所述计算机程序使得计算机执行上述第一方面至第二方面中任一方面或其各实现方式中的方法。
第十一方面,提供了一种计算机程序产品,包括计算机程序指令,所述计算机程序指令使得计算机执行上述第一方面至第二方面中任一方面或其各实现方式中的方法。
第十二方面,提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面至第二方面中任一方面或其各实现方式中的方法。
综上,本申请通过获取点云,并对点云进行块划分,得到当前块;获取当前块的第一信息,根据当前块的第一信息,确定是否采用宏块编码模式对当前块进行编码,其中第一信息包用于指示当前块的块划分信息,例如包括当前块的划分深度、当前块的包围盒尺寸、当前块内的点数、当前块内的点密度中的至少一个,这样根据当前块的块划分信息,可以准确判断出当前块是否采用宏块编码模式进行编码,进而提高了当前块的编码效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例涉及的一种点云视频编解码***的示意性框图;
图2是本申请实施例提供的编码框架的示意性框图;
图3是本申请实施例提供的解码框架的示意性框图;
图4为本申请实施例涉及的点云包围盒示意图;
图5A为本申请实施例涉及的八叉树编码示意图;
图5B为本申请实施例涉及的四叉树编码示意图;
图5C为本申请实施例涉及的二叉树编码示意图;
图5D为本申请实施例涉及的宏块编码示意图;
图6为本申请一实施例提供的点云编码方法的流程图;
图7为本申请一实施例提供的点云编码方式的流程图;
图8为本申请一实施例提供的点云解码方法的流程图;
图9为本申请一实施例提供的点云解码方法的流程图;
图10是本申请实施例的一编码设备的示意性框图;
图11是本申请实施例的一解码设备的示意性框图;
图12是本申请实施例提供的电子设备的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应理解,在本发明实施例中,“与A对应的B”表示B与A相关联。在一种实现方式中,可以根据A确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。
另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。为了便于理解本申请的实施例,首先对本申请实施例涉及到的相关概念进行如下简单介绍:
点云(Point Cloud)是指空间中一组无规则分布的、表达三维物体或三维场景的空间结构及表面属性的离散点集。
点云数据(Point Cloud Data)是点云的具体记录形式,点云中的点可以包括点的位置信息和点的属性信息。例如,点的位置信息可以是点的三维坐标信息。点的位置信息也可称为点的几何信息。例如,点的属性信息可包括颜色信息和/或反射率等等。例如,所述颜色信息可以是任意一种色彩空间上的信息。例如,所述颜色信息可以是(RGB)。再如,所述颜色信息可以是于亮度色度(YcbCr,YUV)信息。例如,Y表示明亮度(Luma),Cb(U)表示蓝色色差,Cr(V)表示红色,U和V表示为色度(Chroma)用于描述色差信息。例如,根据激光测量原理得到的点云,所述点云中的点可以包括点的三维坐标信息和点的激光反射强度(reflectance)。再如,根据摄影测量原理得到的点云,所述点云中的点可以可包括点的三维坐标信息和点的颜色信息。再如,结合激光测量和摄影测量原理得到点云,所述点云中的点可以可包括点的三维坐标信息、点的激光反射强度(reflectance)和点的颜色信息。
点云数据的获取途径可以包括但不限于以下至少一种:(1)计算机设备生成。计算机设备可以根据虚拟三维物体及虚拟三维场景的生成点云数据。(2)3D(3-Dimension,三维)激光扫描获取。通过3D激光扫描可以获取静态现实世界三维物体或三维场景的点云数据,每秒可以获取百万级点云数据;(3)3D摄影测量获取。通过3D摄影设备(即一组摄像机或具有多个镜头和传感器的摄像机设备)对现实世界的视觉场景进行采集以获取现实世界的视觉场景的点云数据,通过3D摄影可以获得动态现实世界三维物体或三维场景的点云数据。(4)通过医学设备获取生物组织器官的点云数据。在医学领域可以通过磁共振成像(Magnetic Resonance Imaging,MRI)、电子计算机断层扫描(Computed Tomography,CT)、电磁定位信息等医学设备获取生物组织器官的点云数据。
点云可以按获取的途径分为:密集型点云和稀疏性点云。
点云按照数据的时序类型划分为:
第一静态点云:即物体是静止的,获取点云的设备也是静止的;
第二类动态点云:物体是运动的,但获取点云的设备是静止的;
第三类动态获取点云:获取点云的设备是运动的。
按点云的用途分为两大类:
类别一:机器感知点云,其可以用于自主导航***、实时巡检***、地理信息***、视觉分拣机器人、抢险救灾机器人等场景;
类别二:人眼感知点云,其可以用于数字文化遗产、自由视点广播、三维沉浸通信、三维沉浸交互等点云应用场景。
图1为本申请实施例涉及的一种点云视频编解码***的示意性框图。需要说明的是,图1只是一种示例,本申请实施例的点云视频编解码***包括但不限于图1所示。如图1所示,该点云视频编解码***100包含编码设备110和解码设备120。其中编码设备用于对点云数据进行编码(可以理解成压缩)产生码流,并将码流传输给解码设备。解码设备对编码设备编码产生的码流进行解码,得到解码后的点云数据。
本申请实施例的编码设备110可以理解为具有视频编码功能的设备,解码设备120可以理解为具有视频解码功能的设备,即本申请实施例对编码设备110和解码设备120包括更广泛的装置,例如包含智能手机、台式计算机、移动计算装置、笔记本(例如,膝上型)计算机、平板计算机、机顶盒、电视、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机等。
在一些实施例中,编码设备110可以经由信道130将编码后的点云数据(如码流)传输给解码设备120。信道130可以包括能够将编码后的点云数据从编码设备110传输到解码设备120的一个或多个媒体和/或装置。
在一个实例中,信道130包括使编码设备110能够实时地将编码后的点云数据直接发射到解码设备120的一个或多个通信媒体。在此实例中,编码设备110可根据通信标准来调制编码后的点云数据,且将调制后的点云数据发射到解码设备120。其中通信媒体包含无线通信媒体,例如射频频谱,可选的,通信媒体还可以包含有线通信媒体,例如一根或多根物理传输线。
在另一实例中,信道130包括存储介质,该存储介质可以存储编码设备110编码后的点云数据。存储介质包含多种本地存取式数据存储介质,例如光盘、DVD、快闪存储器等。在该实例中,解码设备120可从该存储介质中获取编码后的点云数据。
在另一实例中,信道130可包含存储服务器,该存储服务器可以存储编码设备110编码后的点云数据。在此实例中,解码设备120可以从该存储服务器中下载存储的编码后的点云数据。可选的,该存储服务器可以存储编码后的点云数据且可以将该编码后的点云数据发射到解码设备120,例如web服务器(例如,用于网站)、文件传送协议(FTP)服务器等。
一些实施例中,编码设备110包含视频编码器112及输出接口113。其中,输出接口113可以包含调制器/解调器(调制解调器)和/或发射器。
在一些实施例中,编码设备110除了包括视频编码器112和输入接口113外,还可以包括视频源111。
视频源111可包含视频采集装置(例如,视频相机)、视频存档、视频输入接口、计算机图形***中的至少一个,其中,视频输入接口用于从视频内容提供者处接收点云数据,计算机图形***用于产生点云数据。
视频编码器112对来自视频源111的点云数据进行编码,产生码流。视频编码器112经由输出接口113将编码后的点云数据直接/间接传输到解码设备120。编码后的点云数据还可存储于存储介质或存储服务器上,以供解码设备120后续读取。
在一些实施例中,解码设备120包含输入接口121和视频解码器122。
在一些实施例中,解码设备120除包括输入接口121和视频解码器122外,还可以包括显示装置123。
其中,输入接口121包含接收器及/或调制解调器。输入接口121可通过信道130接收编码后的点云数据。
视频解码器122用于对编码后的点云数据进行解码,得到解码后的点云数据,并将解码后的点云数据传输至显示装置123。
显示装置123显示解码后的点云数据。显示装置123可与解码设备120整合或在解码设备120外部。显示装置123可包括多种显示装置,例如液晶显示器(LCD)、等离子体显示器、有机发光二极管(OLED)显示器或其它类型的显示装置。
此外,图1仅为实例,本申请实施例的技术方案不限于图1,例如本申请的技术还可以应用于单侧的视频编码或单侧的视频解码。
由于点云是海量点的集合,存储所述点云不仅会消耗大量的内存,而且不利于传输,也没有这么大的带宽可以支持将点云不经过压缩直接在网络层进行传输,因此对点云进行压缩是很有必要的。
截止目前,可通过点云编码框架对点云进行压缩。
点云编码框架可以是运动图像专家组(Moving Picture Experts Group,MPEG)提供的基于几何的点云压缩(Geometry Point Cloud Compression,G-PCC)编解码框架或基于视频的点云压缩(Video Point Cloud Compression,V-PCC)编解码框架,也可以是音视频编码标准(Audio Video Standard,AVS)组织提供的AVS-PCC编解码框架。G-PCC及AVS-PCC均针对静态的稀疏型点云,其编码框架大致相同。G-PCC编解码框架可用于针对第一静态点云和第三类动态获取点云进行压缩,V-PCC编解码框架可用于针对第二类动态点云进行压缩。G-PCC编解码框架也称为点云编解码器TMC13,V-PCC编解码框架也称为点云编解码器TMC2。
下面以G-PCC编解码框架对本申请实施例可适用的编解码框架进行说明。
图2是本申请实施例提供的编码框架的示意性框图。
如图2所示,编码框架200可以从采集设备获取点云的位置信息(也称为几何信息或几何位置)和属性信息。点云的编码包括位置编码和属性编码。
位置编码的过程包括:对原始点云进行坐标变换、量化去除重复点等预处理;构建八叉树后进行编码形成几何码流。
属性编码过程包括:通过给定输入点云的位置信息的重建信息和属性信息的真实值,选择三种预测模式的一种进行点云预测,对预测后的结果进行量化,并进行算术编码形成属性码流。
如图2所示,位置编码可通过以下单元实现:
坐标平移坐标量化单元201、八叉树构建单元202、八叉树重建单元203、熵编码单元204。
坐标平移坐标量化单元201可用于将点云中点的世界坐标变换为相对坐标,并对坐标进行量化,可减少坐标的数目;量化后原先不同的点可能被赋予相同的坐标。
八叉树构建单元202可利用八叉树(octree)编码方式编码量化的点的位置信息。例如,将点云按照八叉树的形式进行划分,由此,点的位置可以和八叉树的位置一一对应,通过统计八叉树中有点的位置,并将其标识(flag)记为1,以进行几何编码。
八叉树重建单元203用于重建点云中各点的几何位置,得到点的重建几何位置。
熵编码单元204可以采用熵编码方式对八叉树构建单元202输出的位置信息进行算术编码,即将八叉树构建单元202输出的位置信息利用算术编码方式生成几何码流;几何码流也可称为几何比特流(geometry bitstream)。
属性编码可通过以下单元实现:
空间变换单元210、属性插值单元211、属性预测单元212、残差量化单元213以及熵编码单元214。
空间变换单元210可用于将点云中点的RGB色彩空间变换为YCbCr格式或其他格式。
属性转化单元211可用于转换点云中点的属性信息,以最小化属性失真。例如,属性转化单元211可用于得到点的属性信息的真实值。例如,所述属性信息可以是点的颜色信息。
属性预测单元212可用于对点云中点的属性信息进行预测,以得到点的属性信息的预测值,进而基于点的属性信息的预测值得到点的属性信息的残差值。例如,点的属性信息的残差值可以是点的属性信息的真实值减去点的属性信息的预测值。
残差量化单元213可用于量化点的属性信息的残差值。
熵编码单元214可使用零行程编码(Zero run length coding)对点的属性信息的残差值进行熵编码,以得到属性码流。所述属性码流可以是比特流信息。
结合图2,本申请对于几何结构编码,主要操作和处理如下:
(1)预处理(Pre-processing):包括坐标变换(Transform coordinates)和体素化(Voxelize)。通过缩放和平移的操作,将3D空间中的点云数据转换成整数形式,并将其最小几何位置移至坐标原点处。
(2)几何编码(Geometry encoding):几何编码中包含两种模式,可在不同条件下使用。
(a)基于八叉树的几何编码(Octree):八叉树是一种树形数据结构,在3D空间划分中,对预先设定的包围盒进行均匀划分,每个节点都具有八个子节点。通过对八叉树各个子节点的占用与否采用‘1’和‘0’指示,获得占用码信息(occupancy code)作为点云几何信息的码流。
(b)基于三角表示的几何编码(Trisoup):将点云划分为一定大小的块(block),定位点云表面在块的边缘的交点并构建三角形。通过编码交点位置实现几何信息的压缩。
(3)几何量化(Geometry quantization):量化的精细程度通常由量化参数(QP)来决定,QP取值越大,表示更大取值范围的系数将被量化为同一个输出,因此通常会带来更大的失真,及较低的码率;相反,QP取值较小,表示较小取值范围的系数将被量化为同一个输出,因此通常会带来较小的失真,同时对应较高的码率。在点云编码中,量化是直接对点的坐标信息进行的。
(4)几何熵编码(Geometry entropy encoding):针对八叉树的占用码信息,进行统计压缩编码,最后输出二值化(0或者1)的压缩码流。统计编码是一种无损编码方式,可以有效的降低表达同样的信号所需要的码率。常用的统计编码方式是基于上下文的二值化算术编码(CABAC,Content Adaptive Binary Arithmetic Coding)。
对于属性信息编码,主要操作和处理如下:
(1)属性重上色(Recoloring):有损编码情况下,在几何信息编码后,需编码端解码并重建几何信息,即恢复3D点云的各点坐标信息。在原始点云中寻找对应一个或多个邻近点的属性信息,作为该重建点的属性信息。
(2)属性预测编码(Prediction):属性预测编码时,通过对几何信息或属性信息的邻近关系,选择一个或多个点作为预测值,并求加权平均获得最终属性预测值,对真实值与预测值之间的差值进行编码。
(3)属性变换编码(Transform):属性变换编码中包含三种模式,可在不同条件下使用。
(a)预测变换编码(Predicting Transform):根据距离选择子点集,将点云划分成多个不同的层级(Level of Detail,LoD),实现由粗糙到精细化的点云表示。相邻层之间可以实现自下而上的预测,即由粗糙层中的邻近点预测精细层中引入的点的属性信息,获得对应的残差信号。其中,最底层的点作为参考信息进行编码。
(b)提升变换编码(Lifting Transform):在LoD相邻层预测的基础上,引入邻域点的权重更新策略,最终获得各点的预测属性值,获得对应的残差信号。
(c)分层区域自适应变换编码(Region Adaptive Hierarchical Transform,RAHT):属性信息经过RAHT变换,将信号转换到变换域中,称之为变换系数。
(4)属性信息量化(Attribute quantization):量化的精细程度通常由量化参数(QP)来决定。在预测变换编码及提升变换编码中,是对残差值进行量化后进行熵编码;在RAHT中,是对变换系数进行量化后进行熵编码。
(5)属性熵编码(Attribute entropy coding):量化后的属性残差信号或变换系数一般使用行程编码(run length coding)及算数编码(arithmetic coding)实现最终的压缩。相应的编码方式,量化参数等信息也同样采用熵编码器进行编码。
图3是本申请实施例提供的解码框架的示意性框图。
如图3所示,解码框架300可以从编码设备获取点云的码流,通过解析码得到点云中的点的位置信息和属性信息。点云的解码包括位置解码和属性解码。
位置解码的过程包括:对几何码流进行算术解码;构建八叉树后进行合并,对点的位置信息进行重建,以得到点的位置信息的重建信息;对点的位置信息的重建信息进行坐标变换,得到点的位置信息。点的位置信息也可称为点的几何信息。
属性解码过程包括:通过解析属性码流,获取点云中点的属性信息的残差值;通过对点的属性信息的残差值进行反量化,得到反量化后的点的属性信息的残差值;基于位置解码过程中获取的点的位置信息的重建信息,选择三种预测模式的一种进行点云预测,得到点的属性信息的重建值;对点的属性信息的重建值进行颜色空间反转化,以得到解码点云。
如图3所示,位置解码可通过以下单元实现:
熵解码单元301、八叉树重建单元302、逆坐标量化单元303以及逆坐标平移单元304。
属性编码可通过以下单元实现:
熵解码单元310、逆量化单元311、属性重建单元312以及逆空间变换单元313。
解压缩是压缩的逆过程,类似的,解码框架300中的各个单元的功能可参见编码框架200中相应的单元的功能。
在解码端,解码设备获得压缩码流后,首先进行熵解码,获得各种模式信息及量化后的几何信息以及属性信息。首先,几何信息经过逆量化,得到重建的3D点位置信息。另一方面,属性信息经过逆量化得到残差信息,并根据采用的变换模式确认参考信号,得到重建的属性信息,按顺序与几何信息一一对应,产生输出的重建点云数据。
例如,解码框架300可根据点云中点与点之间的欧式距离将点云划分为多个LoD;然后,依次对LoD中点的属性信息进行解码;例如,计算零行程编码技术中零的数量(zero_cnt),以基于zero_cnt对残差进行解码;接着,解码框架300可基于解码出的残差值进行逆量化,并基于逆量化后的残差值与当前点的预测值相加得到该点云的重建值,直到解码完所有的点云。当前点将会作为后续LoD中点的最近邻居,并利用当前点的重建值对后续点的属性信息进行预测。
下面对本申请实施例涉及的相关技术进行介绍。
1、预处理
确定包围盒的原点和尺寸
输入点云的k-th点的浮点类型的坐标表示为(xk,yk,zk),k=0,...,K-1,K是点云中的点数,坐标点(xmin,ymin,zmin)和(xmax,ymax,zmax)表示如下:
xmin=min(x0,x1,...,xK-1)
ymin=min(y0,y1,...,yK-1)
zmin=min(z0,z1,...,zK-1)
xmax=max(x0,x1,...,xK-1)
ymax=max(y0,y1,...,yK-1)
zmax=max(z0,z1,...,zK-1)
函数min(s0,s1,...,sK-1),max(s0,s1,...,sK-1)表示取当前输入的最小值最大值。
如下图4所示,包围盒表示包含输入点云中所有点的最小长方体。
包围盒的原点(xorigin,yorigin,zorigin)可以计算如下:
xorigin=int(floor(xmin))
yorigin=int(floor(ymin))
zorigin=int(floor(zmin))
包围盒在x,y,z方向上的尺寸可以计算如下:
BoudingBoxSizex=int(xmax-xorigin)+1
BoudingBoxSizey=int(ymax-yorigin)+1
BoudingBoxSizez=int(zmax-zorigin)+1
int(s)是取整函数,floor(s)函数返回小于或等于s的最大整数值
2、八叉树编码
八叉树是一种树形数据结构,目前在G-PCC或是AVS-PCC中主要采用八叉树结构对点云进行划分。对3D空间中的点云数据,八叉树划分方式是逐层次地对预先设定的包围盒进行均匀划分,每个节点都具有八个子节点。通过对八叉树各个子节点的占用与否采用‘1’和‘0’指示,如图5A所示,获得占用码信息(occupancy code)作为点云几何信息的码流。
基于莫顿序(Morton)实现八叉树的构建,即将点云数据的3D坐标信息通过查询莫顿顺序表,转换成对应的莫顿码。根据每一位莫顿码的排序,获得每层八叉树的对应点。目前主流的点云编码技术是利用八叉树划分对点云数据进行表示,对几何信息和属性信息采用不同的处理流程。
3、隐式四叉树和二叉树编码方式
如果三维场景的包围盒是个大小为(2N-1,2N-1,2N-1)立方体,八叉树用于划分这个立方体:每一个立方体被递归地划分成8个子立方体,对应于八叉树的8个子节点,如果其中一个子节点中包含至少一个三维点,那么这个子节点会进一步划分为8个更小的子节点(子立方体),直到划分到最小单元,即1×1×1大小的子立方体。这里N表示最大的八叉树划分层数。
如果三维场景的包围盒长宽高不对称,即大小为其中(dx≠dy≠dz)。那么在某些情况下八叉树可以简化为四叉树或者二叉树划分,。如图5B所示,四叉树编码方式中只需要编码4个比特,比八叉树编码节省4个比特;如图5C所示,二叉树编码方式中只需要编码2个比特,节省6个比特。跳过的比特可以在解码端推测出为0。
4、块结构编码
块结构编码方法引入类似于视频编码中编码块的概念,将三维空间划分成若干大小的不重叠的编码宏块,每个宏块作为基本的编码单元。用户可以设置八叉树划分深度d或者通过参数,nodeSizeLog2,来控制3D宏块的大小。当八叉树划分到每个节点的大小为并且满足下列条件时:
nodeSizeLog2>max(dx,dy,dz)
每个节点按照宏块(LCU)进行编码。如图5D所示,在2D四叉树划分的第二层开始按照宏块(LCU)顺序编码,每一个宏块可以看作一个单独的树划分结构。
目前实现中,每个编码宏块内部采用广度优先遍历,替代现有的深度优先遍历方法。这种块结构编码方法带来很大灵活性,在每个宏块,可以根据其特性采用不同的几何编码方法,也可以在对一个宏块几何编码完后进行属性编码。这样不需要等待整个点云几何编码后才能进行属性编码。
由上述可知,目前的点云编码的块结构编码,通过初始设置限定宏块的大小,来判断宏块是否进入宏块编码模式。对每一个宏块选择一种不同的几何编码方式,可以实现并行编码。但是,目前判断宏块是否进行宏块编码模式的条件较单一,判断不准确,存在对于不适用于宏块编码的宏块采用宏块编码模式进行编码时,造成编码效率低的问题。
为了解决上述技术问题,本申请实施例通过获取当前块的第一信息,根据当前块的第一信息,确定是否采用宏块编码模式对当前块进行编码,其中第一信息用于指示当前块的块划分信息,例如包括当前块的划分深度、当前块的包围盒尺寸、当前块内的点数、当前块内的点密度中的至少一个,这样根据当前块的块划分信息,可以准确判断出当前块是否采用宏块编码模式进行编码,进而提高了当前块的编码效率。
下面将对本申请技术方案进行详细阐述:
首先以编码端为例,对本申请实施例提供的点云编码方法进行描述。
图6为本申请一实施例提供的点云编码方法的流程图,该方法的执行主体是编码设备,该编码设备也称为编码器。如图6所示,该方法包括如下步骤:
S601、获取点云,并对点云进行块划分,得到当前块。
本申请实施例所示的方案,可以直接应用于整体的3D点云数据,可在不同的块中并行地实现差异化的点云几何、属性编码,可应用于3D点云编码产品中。
编码设备可以通过如下方式获取点云:
方式一,若编码设备具有点云采集功能,则该点云可以为编码设备采集得到的。
方式二,上述点云为编码设备从其他存储设备处获取的,例如点云采集设备将采集的点云存储在存储设备中,编码设备从该存储设备中读取上述点云。
方式三,上述点云为编码设备从点云采集设备处获取的,例如点云采集设备将采集的点云发送给编码设备。
编码设备根据上述方式获取点云后,对获取的点云进行块划分,例如采用八叉树、四叉树、二叉树或其他的块划分方式,对点云进行块划分,对于划分到的当前块,执行如下S602和S603的步骤。
S602、获取当前块的第一信息。
上述第一信息用于指示当前块的块划分信息,其中当前块的块划分信息可以为当前块的特征信息,例如当前块的大小、当前块的位置等信息。
在一种示例中,当前块的第一信息包括:当前块的划分深度、当前块的包围盒尺寸、当前块内的点数、当前块内的点密度中的至少一个。
S603、根据当前块的第一信息,确定是否采用宏块编码模式对当前块进行编码。
其中,宏块编码模式为对当前块进行单独编码的编码方式。
上述S602中根据当前块的第一信息,确定是否采用宏块编码模式对当前块进行编码的方式包括但不限于如下几种方式:
方式一,根据当前块的划分深度,确定是否采用宏块编码模式对当前块进行编码。
在方式一中,根据当前块的划分深度,确定是否采用宏块编码模式对当前块进行编码的实现方式包括但不限于如下几种子方式:
第一子方式,若当前块对应的划分深度等于或大于第一预设划分深度时,则确定采用宏块编码模式对当前块进行编码。
本申请对上述第一预设划分深度的具体取值不做限制,具体根据实际需要确定。
在一种可能的实现方式中,上述第一预设划分深度为预设的点云的划分深度下限,其中点云的划分深度下限可以理解为点云的最小划分层数。
第二子方式,若当前块的划分深度等于或大于第一预设划分深度时,则根据当前块的包围盒尺寸、当前块内的点数、当前块内的点密度中的至少一个,确定是否采用宏块编码模式对当前块进行编码。
第三子方式,若当前块的划分深度等于第二预设划分深度时,则确定不采用宏块编码模式对当前块进行编码。
若当前块的划分深度较深时,即当前块较小时,采用宏块编码模式对当前块进行编码反而会降低编码效率。因此,若判断当前块的划分深度等于第二预设划分深度时,则确定不采用宏块编码模式对当前块进行编码。
本申请对上述第二预设划分深度的具体取值不做限制,具体根据实际需要确定。
在一种可能的实现方式中,上述第二预设划分深度为点云的划分深度上限,其中点云的划分深度上限可以理解为点云的最大划分层数。
方式二,根据当前块的包围盒尺寸、当前块内的点数、当前块内的点密度中的至少一个,确定是否采用宏块编码模式对当前块进行编码。
在第一种示例,上述方式二中,可以根据当前块的包围盒尺寸、当前块内的点数、当前块内的点密度中任意一个,确定是否采用宏块编码模式对当前块进行编码。例如,若当前块的包围盒尺寸L位于第一阈值范围内时,确定采用宏块编码模式对当前块进行编码;或者,若当前块内的点数N位于第二阈值范围内时,确定采用宏块编码模式对当前块进行编码;或者,若当前块内的点密度D位于第三阈值范围内时,确定采用宏块编码模式对当前块进行编码。
第二种示例中,上述方式二中,可以根据当前块的包围盒尺寸、当前块内的点数、当前块内的点密度中任意两个,确定是否采用宏块编码模式对当前块进行编码。例如,若当前块的包围盒尺寸L位于第一阈值范围内、且当前块内的点数N位于第二阈值范围内时,确定采用宏块编码模式对当前块进行编码;或者,若当前块的包围盒尺寸L位于第一阈值范围内、且当前块内的点密度D位于第三阈值范围内时时,确定采用宏块编码模式对当前块进行编码;或者,若当前块内的点数N位于第二阈值范围内、且当前块内的点密度D位于第三阈值范围内时,确定采用宏块编码模式对当前块进行编码。
第三种示例中,上述方式二中,可以根据当前块的包围盒尺寸、当前块内的点数和当前块内的点密度,确定是否采用宏块编码模式对当前块进行编码。例如,若当前块的包围盒尺寸L位于第一阈值范围内、且当前块内的点数N位于第二阈值范围内、且当前块内的点密度D位于第三阈值范围内时,确定采用宏块编码模式对当前块进行编码。
需要说明的是,本申请对上述第一阈值范围、第二阈值范围和第三阈值范围的具体取值不做限制,具体根据实际需要确定。
第四种示例中,上述方式二包括:获取点云的块划分指标信息,点云的块划分指标信息包括:划分后节点的包围盒尺寸、划分后节点内的点数、划分后节点内的点密度中的至少一个;将当前块的包围盒尺寸、当前块内的点数、当前块内的点密度中的至少一个,与划分后节点的包围盒尺寸、划分后节点内的点数、划分后节点内的点密度中的至少一个进行比较,确定是否采用宏块编码模式对当前块进行编码。
例如,将当前块的包围盒尺寸与划分后节点的包围盒尺寸进行比较,若当前块的包围盒尺寸等于或小于划分后节点的包围盒尺寸时,确定采用宏块编码模式对当前块进行编码。
再例如,将当前块内的点数与划分后节点内的点数进行比较,若当前块内的点数等于或小于划分后节点内的点数时,确定采用宏块编码模式对当前块进行编码。
再例如,将当前块内的点密度与划分后节点内的点密度进行比较,若当前块内的点密度等于或小于划分后节点内的点密度时,确定采用宏块编码模式对当前块进行编码。
再例如,将当前块的包围盒尺寸与划分后节点的包围盒尺寸进行比较、且将当前块内的点数与划分后节点内的点数进行比较,若当前块的包围盒尺寸等于或小于划分后节点的包围盒尺寸、且当前块内的点数等于或小于划分后节点内的点数时,确定采用宏块编码模式对当前块进行编码。
再例如,将当前块的包围盒尺寸与划分后节点的包围盒尺寸进行比较、且当前块内的点密度与划分后节点内的点密度进行比较,若当前块的包围盒尺寸等于或小于划分后节点的包围盒尺寸、且当前块内的点密度等于或小于划分后节点内的点密度时,确定采用宏块编码模式对当前块进行编码。
再例如,将当前块内的点数与划分后节点内的点数进行比较、且将当前块内的点密度与划分后节点内的点密度进行比较,若当前块内的点数等于或小于划分后节点内的点数、且当前块内的点密度等于或小于划分后节点内的点密度时,确定采用宏块编码模式对当前块进行编码。
再例如,将当前块的包围盒尺寸与划分后节点的包围盒尺寸进行比较、且将当前块内的点数与划分后节点内的点数进行比较、以及将当前块内的点密度与划分后节点内的点密度进行比较,若当前块的包围盒尺寸等于或小于划分后节点的包围盒尺寸、且当前块内的点数等于或小于划分后节点内的点数、且当前块内的点密度等于或小于划分后节点内的点密度时,确定采用宏块编码模式对当前块进行编码。
在一些实施例中,在执行上述S603之前,编码设备获取宏块编码标志,若该宏块编码标志的值为第一值,例如为1时,则确定该点云中的宏块可以采用宏块编码方式进行编码,接着,执行上述S603。
若该宏块编码标志的值为第二值,例如为0时,则确定该点云中的宏块可以不能采用宏块编码方式进行编码,则不执行上述S603的步骤。
本申请实施例提供的点云编码方式,通过获取点云,并对点云进行块划分,得到当前块;获取当前块的第一信息,根据当前块的第一信息,确定是否采用宏块编码模式对当前块进行编码,其中第一信息用于指示当前块的块划分信息,例如包括当前块的划分深度、当前块的包围盒尺寸、当前块内的点数、当前块内的点密度中的至少一个,这样根据当前块的块划分信息,可以准确判断出当前块是否采用宏块编码模式进行编码,进而提高了当前块的编码效率。
图7为本申请一实施例提供的点云编码方式的流程图,在上述实施例的基础上,在确定当前块采用宏块编码模式进行编码时,本申请还包括对当前编码块进行宏块编码的过程。
如图7所示,本申请实施例的方法包括:
S701、获取点云,并对点云进行块划分,得到当前块;
S702、获取当前块的第一信息,第一信息用于指示当前块的块划分信息;
S703、根据当前块的第一信息,确定是否采用宏块编码模式对当前块进行编码。
其中,宏块编码模式为对当前块进行单独编码的编码方式。
上述S701至S703的实现方式与上述S601至S603的实现方式基本一致,参照上述S701至S703的描述,在此不再赘述。
在一些实施例中,若确定采用宏块编码模式对当前块进行编码时,本实施例还包括:向解码设备发送第一指示信息,该第一指示信息用于指示当前块采用宏块编码模式进行编码。这样解码设备可以根据第一指示信息,采用宏块解码模式对当前块进行解码。
可选的,上述第一指示信息为编码设备通过其他的通信协议,单独向解码设备发送的信息。
可选的,上述第一指示信息包括在点云的码流中发送给解码设备。
S704、若确定采用宏块编码模式对当前块进行编码时,确定当前块的目标编码方式。
上述S704中确定当前块的目标编码方式的方式包括但不限于如下几种方式:
方式一,将预测树编码方式确定为当前块的目标编码方式。
方式二,采用率失真优化方法,从预设的M个编码方式中确定当前块的目标编码方式,M为大于1的正整数。
例如,使用预设的M个编码方式中每一个编码方式对当前块进行编码,得到每一个编码方式对应的编码代价,将编码代价最小的一个编码方式确定为当前块的目标编码方式。
方式三,将默认的编码方式,确定为当前块的目标编码方式。
方式二,根据当前块的第一信息,确定当前块的目标编码方式。
在该方式二中,第一信息包括当前块的包围盒尺寸、当前块内的点数、当前块内的点密度中的至少一个,这样可以根据当前块的包围盒尺寸、当前块内的点数、当前块内的点密度中的至少一个,确定当前块的目标编码方式。
例如,若当前块的包围盒尺寸、当前块内的点数、当前块内的点密度中的至少一个满足对应的预设条件时,则确定当前块的目标编码方式为预测树编码方式。
本申请对上述预设条件的具体内容不做限制。
可选的,当前块内的点数满足对应的预设条件包括:当前块内的点数大于第一预设值,或者,当前块内的点数小于第二预设值,或者当前块内的点数大于第一预设值且小于第二预设值。
可选的,当前块内的点密度满足对应的预设条件包括:当前块内的点密度大于第三预设值,或者,当前块内的点密度小于第四预设值,或者当前块内的点密度大于第三预设值且小于第四预设值。
可选的,当前块的包围盒尺寸满足对应的预设条件包括:当前块的包围盒尺寸大于第五预设值,或者,当前块的包围盒尺寸小于第六预设值,或者当前块的包围盒尺寸大于第五预设值且小于第六预设值。
在一种示例中,假设当前块内的点数为N,第一预设值为N1,第二预设值为N2,则当N2<N<N1时,确定当前块的目标编码方式为预测树编码方式。
在一种示例中,假设当前块内的点密度为D,第三预设值为D1,第四预设值为D2,则当D2<D<D1时,确定当前块的目标编码方式为预测树编码方式。
在一种示例中,假设当前块的包围盒尺寸为L,第五预设值为L1,第六预设值为L2,则当L2<D<L1时,确定当前块的目标编码方式为预测树编码方式。
在一种示例中,当N2<N<N1且D2<D<D1时,确定当前块的目标编码方式为预测树编码方式。
在一种示例中,当N2<N<N1且L2<D<L1时,确定当前块的目标编码方式为预测树编码方式。
在一种示例中,当D2<D<D1且L2<D<L1时,确定当前块的目标编码方式为预测树编码方式。
在一种示例中,当N2<N<N1、D2<D<D1且L2<D<L1时,确定当前块的目标编码方式为预测树编码方式。
根据上述方式,确定出当前块的目标编码方式后,执行S705,对当前块进行编码。
S705、采用目标编码方式对当前块的第一信息进行编码。
其中,第一信息包括几何信息和属性信息中的至少一个。
本步骤中,编码设备可以根据目标编码方式,采用已有技术对当前块的第一信息进行编码,本申请对此不作限制。
在一些实施例中,本申请实施例还包括:编码设备将当前块的目标编码方式发送给解码设备,例如编码设备向解码设备发送第二指示信息,该第二指示信息用于指示所述当前块的目标编码方式。这样解码设备直接根据该第二指示信息确定当前块的目标编码模式,进而根据目标编码模式对当前块进行解码,以提高解码效率。
可选的,上述第二指示信息为编码设备通过其他的通信协议,单独向解码设备发送的信息。
可选的,上述第二指示信息包括在点云的码流中发送给解码设备。
本实施例,不仅提出了如何根据当前块的第一信息,确定是否对当前块采用宏块编码模式进行编码的方案,还提出了在确定采用宏块编码模式对当前块进行编码时,如何确定当前块的目标编码方式的方案,进一步提高了点云的编码效率。
上文以编码端为例对本申请实施例提供的点云编码方法进行描述,下面结合图8,以解码端为例,对本申请的技术方案进行介绍。
图8为本申请一实施例提供的点云解码方法的流程图,该方法的执行主体是解码设备,该解码设备也称为解码器。如图8所示,包括:
S801、解码点云码流,得到待解码的当前块。
具体的,解码点云的几何码流,根据点云的块划分方式,进行点云几何位置的重建,例如,点云的块划分方式为八叉树方式,则根据点云的几何码流,进行八叉树重建,得到待解码的当前块。
需要说明的是,可以根据已有技术,根据点云码流,得到待解码的当前块,本申请实施例在此不再赘述。
S802、确定当前块在编码时是否采用宏块编码模式进行编码。
其中,宏块编码模式为对当前块进行单独编码的编码方式。
上述S802中确定当前块在编码时是否采用宏块编码模式进行编码的方式包括但不限于如下几种方式:
方式一,获取第一指示信息,并根据第一指示信息,确定当前块在编码时采用宏块编码模式进行编码,该第一指示信息用于指示当前块采用宏块编码模式进行编码。
可选的,上述第一指示信息为编码设备单独发送的。
可选的,解码点云码流,得到第一指示信息。
方式二,获取当前块的第一信息,并根据当前块的第一信息,确定当前块在编码时是否采用宏块编码模式进行编码。
其中,第一信息用于指示当前块的块划分信息。
在一种示例中,当前块的第一信息包括:当前块的划分深度、当前块的包围盒尺寸、当前块内的点数、当前块内的点密度中的至少一个。
上述方式二中,根据当前块的第一信息,确定当前块在编码时是否采用宏块编码模式进行编码的实现方式包括但不限于如下几种子方式:
第一子方式,根据当前块的划分深度,确定当前块在编码时是否采用宏块编码模式进行编码。
在第一子方式的一种示例中,若当前块对应的划分深度等于或大于第一预设划分深度时,则确定当前块在编码时采用宏块编码模式进行编码。
可选的,第一预设划分深度为点云的划分深度下限。
在第一子方式的另一种示例中,若当前块的划分深度等于或大于第一预设划分深度时,则根据当前块的包围盒尺寸、当前块内的点数、当前块内的点密度中的至少一个,确定当前块在编码时是否采用宏块编码模式进行编码。
在第一子方式的另一种示例中,若当前块的划分深度等于第二预设划分深度时,则确定当前块在编码时未采用宏块编码模式进行编码。
可选的,第二预设划分深度为点云的划分深度上限。
第二子方式,根据当前块的包围盒尺寸、当前块内的点数、当前块内的点密度中的至少一个,确定当前块在编码时是否采用宏块编码模式进行编码。
其中,第二子方式以及上述在第一子方式的另一种示例中的根据当前块的包围盒尺寸、当前块内的点数、当前块内的点密度中的至少一个,确定当前块在编码时是否采用宏块编码模式进行编码的实现方式可以包括如下步骤:
步骤1,获取点云的块划分指标信息,点云的块划分指标信息包括:划分后节点的包围盒尺寸、划分后节点内的点数、划分后节点内的点密度中的至少一个;
步骤2,将当前块的包围盒尺寸、当前块内的点数、当前块内的点密度中的至少一个,与划分后节点的包围盒尺寸、划分后节点内的点数、划分后节点内的点密度中的至少一个进行比较,确定当前块在编码时是否采用宏块编码模式进行编码。
本申请实施例提供的点云解码方式,通过解码点云码流,得到待解码的当前块,确定当前块在编码时是否采用宏块编码模式进行编码,例如根据当前块的划分深度、当前块的包围盒尺寸、当前块内的点数、当前块内的点密度中的至少一个,确定当前块在编码时是否采用宏块编码模式进行编码,进而可以准确判断出当前块是否采用宏块编码模式进行编码,进而实现对当前块的准确解码,提高了当前块的解码效率。
图9为本申请一实施例提供的点云解码方法的流程图,如图9所示,解码过程包括:
S901、解码点云码流,得到待解码的当前块。
S902、确定当前块在编码时是否采用宏块编码模式进行编码。
上述S901和S902与上述S801和S802的实现过程基本一致,参照上述S801和S802的描述,在此不再赘述。
S903、若确定当前块在编码时采用宏块编码模式进行编码时,则确定当前块的目标编码方式。
上述S903中确定当前块的目标编码方式的方式包括但不限于如下几种:
方式一,获取第二指示信息,并根据第二指示信息确定当前块的目标编码方式,第二指示信息用于指示当前块的目标编码方式。
可选的,该第二指示信息为编码设备单独发送给解码设备的。
可选的,该第二指示信息携带在码流中,解码设备通过解码点云码流,得到该第二指示信息。
方式二,将预测树编码方式确定为当前块的目标编码方式。
方式三,根据当前块的第一信息,确定当前块的目标编码方式。
其中,当前块的第一信息包括当前块的包围盒尺寸、当前块内的点数、当前块内的点密度中的至少一个。
解码设备根据当前块的包围盒尺寸、当前块内的点数、当前块内的点密度中的至少一个,确定当前块的目标编码方式。
例如,若当前块的包围盒尺寸、当前块内的点数、当前块内的点密度中的至少一个满足对应的预设条件时,则确定当前块的目标编码方式为预测树编码方式。
可选的,当前块内的点数满足对应的预设条件包括:当前块内的点数大于第一预设值,或者,当前块内的点数小于第二预设值,或者当前块内的点数大于第一预设值且小于第二预设值。
可选的,当前块内的点密度满足对应的预设条件包括:当前块内的点密度大于第三预设值,或者,当前块内的点密度小于第四预设值,或者当前块内的点密度大于第三预设值且小于第四预设值。
可选的,当前块的包围盒尺寸满足对应的预设条件包括:当前块的包围盒尺寸大于第五预设值,或者,当前块的包围盒尺寸小于第六预设值,或者当前块的包围盒尺寸大于第五预设值且小于第六预设值。
S904、根据当前块的目标编码方式,对当前块的第一信息进行解码。
其中,第一信息包括几何信息和属性信息。
例如,目标编码方式为预测树编码方式,则从该当前块对应的预测树中的起始点开始解码,获取起始点的第一信息,接着,解码码流,得到预测树中的第二个点的第一信息的残差值,将该第二个点的第一信息的残差值和起始点的第一信息之和,作为第二个点的第一信息的重建值。接着,解码码流,得到第三个点的第一信息的残差值,将该第三个点的第一信息的残差值和第二个点的第一信息的重建值之和,作为第三个点的第一信息的重建值。以此类推,直到当前块对应的预测树中的最后一个点解码结束为止。
需要说明的是,上述解码过程可能还包括反量化、坐标转换等一些步骤,具体参照已有技术的描述,在此不再赘述。
应理解,点云解码方法为上述点云编码方法的逆过程。点云解码方法中的步骤可以参考点云编码方法中的相应步骤,为了避免重复,在此不再赘述。
以上结合附图详细描述了本申请的优选实施方式,但是,本申请并不限于上述实施方式中的具体细节,在本申请的技术构思范围内,可以对本申请的技术方案进行多种简单变型,这些简单变型均属于本申请的保护范围。例如,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本申请对各种可能的组合方式不再另行说明。又例如,本申请的各种不同的实施方式之间也可以进行任意组合,只要其不违背本申请的思想,其同样应当视为本申请所公开的内容。
还应理解,在本申请的各种方法实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
上文结合图1至图9,详细描述了本申请的方法实施例,下文结合图10至图12,详细描述本申请的装置实施例。
图10是本申请实施例的一编码设备的示意性框图。
如图10所示,编码设备10可包括:
第一获取单元11,用于获取点云,并对所述点云进行块划分,得到当前块;
第二获取单元12,用于获取所述当前块的第一信息,所述第一信息用于指示所述当前块的块划分信息;
确定单元13,用于根据所述当前块的第一信息,确定是否采用宏块编码模式对所述当前块进行编码,所述宏块编码模式为对所述当前块进行单独编码的编码方式。
可选的,所述当前块的第一信息包括:所述当前块的划分深度、所述当前块的包围盒尺寸、所述当前块内的点数、所述当前块内的点密度中的至少一个。
在一些实施例中,确定单元13,具体用于根据所述当前块的划分深度,确定是否采用宏块编码模式对所述当前块进行编码;或者,
根据所述当前块的包围盒尺寸、所述当前块内的点数、所述当前块内的点密度中的至少一个,确定是否采用宏块编码模式对所述当前块进行编码。
在一些实施例中,确定单元13,具体用于若所述当前块对应的划分深度等于或大于第一预设划分深度时,则确定采用所述宏块编码模式对所述当前块进行编码;或者,
若所述当前块的划分深度等于或大于第一预设划分深度时,则根据所述当前块的包围盒尺寸、所述当前块内的点数、所述当前块内的点密度中的至少一个,确定是否采用宏块编码模式对所述当前块进行编码;或者,
若所述当前块的划分深度等于第二预设划分深度时,则确定不采用宏块编码模式对所述当前块进行编码。
可选的,所述第一预设划分深度为所述点云的划分深度下限。
可选的,所述第二预设划分深度为所述点云的划分深度上限。
在一些实施例中,确定单元13,具体用于获取所述点云的块划分指标信息,所述点云的块划分指标信息包括:划分后节点的包围盒尺寸、划分后节点内的点数、划分后节点内的点密度中的至少一个;将所述当前块的包围盒尺寸、所述当前块内的点数、所述当前块内的点密度中的至少一个,与所述划分后节点的包围盒尺寸、划分后节点内的点数、划分后节点内的点密度中的至少一个进行比较,确定是否采用宏块编码模式对所述当前块进行编码。
在一些实施例中,确定单元13,还用于若确定采用宏块编码模式对所述当前块进行编码时,确定所述当前块的目标编码方式;采用所述目标编码方式对所述当前块的第一信息进行编码,所述第一信息包括几何信息和属性信息中的至少一个。
在一些实施例中,确定单元13,还用于将预测树编码方式确定为所述当前块的目标编码方式;或者,
根据所述当前块的第一信息,确定所述当前块的目标编码方式;或者,
采用率失真优化方法,从预设的M个编码方式中确定所述当前块的目标编码方式,所述M为大于1的正整数。
在一些实施例中,确定单元13,还用于若所述当前块的包围盒尺寸、所述当前块内的点数、所述当前块内的点密度中的至少一个满足对应的预设条件时,则确定所述当前块的目标编码方式为预测树编码方式。
可选的,所述当前块内的点数满足对应的预设条件包括:所述当前块内的点数大于第一预设值,或者,所述当前块内的点数小于第二预设值,或者所述当前块内的点数大于所述第一预设值且小于所述第二预设值。
可选的,所述当前块内的点密度满足对应的预设条件包括:所述当前块内的点密度大于第三预设值,或者,所述当前块内的点密度小于第四预设值,或者所述当前块内的点密度大于所述第三预设值且小于所述第四预设值。
可选的,所述当前块的包围盒尺寸满足对应的预设条件包括:所述当前块的包围盒尺寸大于第五预设值,或者,所述当前块的包围盒尺寸小于第六预设值,或者所述当前块的包围盒尺寸大于所述第五预设值且小于所述第六预设值。
可选的,编码设备还包括发送单元14,用于若所述当前块采用宏块编码模式进行编码时,向解码设备发送第一指示信息,所述第一指示信息用于指示所述当前块采用宏块编码模式进行编码。
可选的,所述点云的码流中包括所述第一指示信息。
可选的,发送单元14,还用于向解码设备发送第二指示信息,所述第二指示信息用于指示所述当前块的目标编码方式。
可选的,所述点云的码流中包括所述第二指示信息。
应理解的是,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图10所示的装置10可以执行上述编码方法的实施例,并且装置10中的各个模块的前述和其它操作和/或功能分别为了实现编码设备对应的方法实施例,为了简洁,在此不再赘述。
图11是本申请实施例的一解码设备的示意性框图。
如图11所示,解码设备20可包括:
解码单元21,用于解码点云码流,得到待解码的当前块;
确定单元22,用于确定所述当前块在编码时是否采用宏块编码模式进行编码,所述宏块编码模式为对所述当前块进行单独编码的编码方式。
在一些实施例中,确定单元22,具体用于获取所述当前块的第一信息,并根据所述当前块的第一信息,确定所述当前块在编码时是否采用宏块编码模式进行编码,所述第一信息包括所述当前块的块划分信息;或者,
获取所述第一指示信息,并根据所述第一指示信息,确定所述当前块在编码时采用宏块编码模式进行编码,所述第一指示信息用于指示所述当前块采用宏块编码模式进行编码。
可选的,所述当前块的第一信息包括:所述当前块的划分深度、所述当前块的包围盒尺寸、所述当前块内的点数、所述当前块内的点密度中的至少一个。
在一些实施例中,确定单元22,具体用于根据所述当前块的划分深度,确定所述当前块在编码时是否采用宏块编码模式进行编码;或者,
根据所述当前块的包围盒尺寸、所述当前块内的点数、所述当前块内的点密度中的至少一个,确定所述当前块在编码时是否采用宏块编码模式进行编码。
在一些实施例中,确定单元22,具体用于若所述当前块对应的划分深度等于或大于第一预设划分深度时,则确定所述当前块在编码时采用所述宏块编码模式进行编码;或者,
若所述当前块的划分深度等于或大于第一预设划分深度时,则根据所述当前块的包围盒尺寸、所述当前块内的点数、所述当前块内的点密度中的至少一个,确定所述当前块在编码时是否采用宏块编码模式进行编码;或者,
若所述当前块的划分深度等于第二预设划分深度时,则确定所述当前块在编码时未采用宏块编码模式进行编码。
可选的,所述第一预设划分深度为所述点云的划分深度下限。
可选的,所述第二预设划分深度为所述点云的划分深度上限。
在一些实施例中,确定单元22,具体用于获取所述点云的块划分指标信息,所述点云的块划分指标信息包括:划分后节点的包围盒尺寸、划分后节点内的点数、划分后节点内的点密度中的至少一个;
将所述当前块的包围盒尺寸、所述当前块内的点数、所述当前块内的点密度中的至少一个,与所述划分后节点的包围盒尺寸、划分后节点内的点数、划分后节点内的点密度中的至少一个进行比较,确定所述当前块在编码时是否采用宏块编码模式进行编码。
在一些实施例中,确定单元22,还用于若确定所述当前块在编码时采用宏块编码模式进行编码时,则确定所述当前块的目标编码方式;根据所述当前块的目标编码方式,对所述当前块的第一信息进行解码,所述第一信息包括几何信息和属性信息。
在一些实施例中,确定单元22,具体用于获取第二指示信息,并根据所述第二指示信息确定所述当前块的目标编码方式,所述第二指示信息用于指示所述当前块的目标编码方式;或者,
将预测树编码方式确定为所述当前块的目标编码方式;或者,
根据所述当前块的第一信息,确定所述当前块的目标编码方式。
在一些实施例中,确定单元22,具体用于若所述当前块的包围盒尺寸、所述当前块内的点数、所述当前块内的点密度中的至少一个满足对应的预设条件时,则确定所述当前块的目标编码方式为预测树编码方式。
可选的,所述当前块内的点数满足对应的预设条件包括:所述当前块内的点数大于第一预设值,或者,所述当前块内的点数小于第二预设值,或者所述当前块内的点数大于所述第一预设值且小于所述第二预设值。
可选的,所述当前块内的点密度满足对应的预设条件包括:所述当前块内的点密度大于第三预设值,或者,所述当前块内的点密度小于第四预设值,或者所述当前块内的点密度大于所述第三预设值且小于所述第四预设值。
可选的,所述当前块的包围盒尺寸满足对应的预设条件包括:所述当前块的包围盒尺寸大于第五预设值,或者,所述当前块的包围盒尺寸小于第六预设值,或者所述当前块的包围盒尺寸大于所述第五预设值且小于所述第六预设值。
在一些实施例中,所述解码单元21,还用于解码所述点云码流,得到所述第一指示信息。
在一些实施例中,所述解码单元21,还用于解码所述点云码流,得到所述第二指示信息。
应理解的是,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图11所示的装置20可以执行解码方法实施例,并且装置20中的各个模块的前述和其它操作和/或功能分别为了实现解码设备对应的方法实施例,为了简洁,在此不再赘述。
上文中结合附图从功能模块的角度描述了本申请实施例的装置。应理解,该功能模块可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件模块组合实现。具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。可选地,软件模块可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。
图12是本申请实施例提供的电子设备的示意性框图,图12的电子设备900可以为上述的视频编码设备或者为视频解码设备。
如图12所示,该电子设备900可包括:
存储器910和处理器920,该存储器910用于存储计算机程序911,并将该程序代码911传输给该处理器920。换言之,该处理器920可以从存储器910中调用并运行计算机程序911,以实现本申请实施例中的方法。
例如,该处理器920可用于根据该计算机程序911中的指令执行上述方法200中的步骤。
在本申请的一些实施例中,该处理器920可以包括但不限于:
通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
在本申请的一些实施例中,该存储器910包括但不限于:
易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(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 DataRate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
在本申请的一些实施例中,该计算机程序911可以被分割成一个或多个模块,该一个或者多个模块被存储在该存储器910中,并由该处理器920执行,以完成本申请提供的录制页面的方法。该一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序911在该电子设备900中的执行过程。
如图12所示,该电子设备900还可包括:
收发器930,该收发器930可连接至该处理器920或存储器910。
其中,处理器920可以控制该收发器930与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器930可以包括发射机和接收机。收发器930还可以进一步包括天线,天线的数量可以为一个或多个。
应当理解,该电子设备900中的各个组件通过总线***相连,其中,总线***除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
根据本申请的一个方面,提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。或者说,本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
根据本申请的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法实施例的方法。
换言之,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。例如,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。
Claims (34)
1.一种点云编码方法,其特征在于,包括:
获取点云,并对所述点云进行块划分,得到当前块;
获取所述当前块的第一信息,所述第一信息用于指示所述当前块的块划分信息;
根据所述当前块的第一信息,确定是否采用宏块编码模式对所述当前块进行编码,所述宏块编码模式为对所述当前块进行单独编码的编码方式。
2.根据权利要求1所述的方法,其特征在于,所述当前块的第一信息包括:所述当前块的划分深度、所述当前块的包围盒尺寸、所述当前块内的点数、所述当前块内的点密度中的至少一个。
3.根据权利要求2所述的方法,其特征在于,所述根据所述当前块的第一信息,确定是否采用宏块编码模式对所述当前块进行编码,包括:
根据所述当前块的划分深度,确定是否采用宏块编码模式对所述当前块进行编码;或者,
根据所述当前块的包围盒尺寸、所述当前块内的点数、所述当前块内的点密度中的至少一个,确定是否采用宏块编码模式对所述当前块进行编码。
4.根据权利要求3所述的方法,其特征在于,所述根据所述当前块的划分深度,确定是否采用宏块编码模式对所述当前块进行编码,包括:
若所述当前块对应的划分深度等于或大于第一预设划分深度时,则确定采用所述宏块编码模式对所述当前块进行编码;或者,
若所述当前块的划分深度等于或大于第一预设划分深度时,则根据所述当前块的包围盒尺寸、所述当前块内的点数、所述当前块内的点密度中的至少一个,确定是否采用宏块编码模式对所述当前块进行编码;或者,
若所述当前块的划分深度等于第二预设划分深度时,则确定不采用宏块编码模式对所述当前块进行编码。
5.根据权利要求4所述的方法,其特征在于,所述第一预设划分深度为所述点云的划分深度下限,和/或所述第二预设划分深度为所述点云的划分深度上限。
6.根据权利要求3或4所述的方法,其特征在于,所述根据所述当前块的包围盒尺寸、所述当前块内的点数、所述当前块内的点密度中的至少一个,确定是否采用宏块编码模式对所述当前块进行编码,包括:
获取所述点云的块划分指标信息,所述点云的块划分指标信息包括:划分后节点的包围盒尺寸、划分后节点内的点数、划分后节点内的点密度中的至少一个;
将所述当前块的包围盒尺寸、所述当前块内的点数、所述当前块内的点密度中的至少一个,与所述划分后节点的包围盒尺寸、划分后节点内的点数、划分后节点内的点密度中的至少一个进行比较,确定是否采用宏块编码模式对所述当前块进行编码。
7.根据权利要求2-5任一项所述的方法,其特征在于,所述方法还包括:
若确定采用宏块编码模式对所述当前块进行编码时,确定所述当前块的目标编码方式;
采用所述目标编码方式对所述当前块的第一信息进行编码,所述第一信息包括几何信息和属性信息中的至少一个。
8.根据权利要求7所述的方法,其特征在于,所述确定所述当前块的目标编码方式,包括:
将预测树编码方式确定为所述当前块的目标编码方式;或者,
根据所述当前块的第一信息,确定所述当前块的目标编码方式;或者,
采用率失真优化方法,从预设的M个编码方式中确定所述当前块的目标编码方式,所述M为大于1的正整数。
9.根据权利要求8所述的方法,其特征在于,所述根据所述当前块的第一信息,确定所述当前块的目标编码方式,包括:
若所述当前块的包围盒尺寸、所述当前块内的点数、所述当前块内的点密度中的至少一个满足对应的预设条件时,则确定所述当前块的目标编码方式为预测树编码方式。
10.根据权利要求9所述的方法,其特征在于,所述当前块内的点数满足对应的预设条件包括:
所述当前块内的点数大于第一预设值,或者,所述当前块内的点数小于第二预设值,或者所述当前块内的点数大于所述第一预设值且小于所述第二预设值。
11.根据权利要求9所述的方法,其特征在于,所述当前块内的点密度满足对应的预设条件包括:
所述当前块内的点密度大于第三预设值,或者,所述当前块内的点密度小于第四预设值,或者所述当前块内的点密度大于所述第三预设值且小于所述第四预设值。
12.根据权利要求9所述的方法,其特征在于,所述当前块的包围盒尺寸满足对应的预设条件包括:
所述当前块的包围盒尺寸大于第五预设值,或者,所述当前块的包围盒尺寸小于第六预设值,或者所述当前块的包围盒尺寸大于所述第五预设值且小于所述第六预设值。
13.根据权利要求7所述的方法,其特征在于,所述方法还包括:
若所述当前块采用宏块编码模式进行编码时,向解码设备发送第一指示信息,所述第一指示信息用于指示所述当前块采用宏块编码模式进行编码。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
向解码设备发送第二指示信息,所述第二指示信息用于指示所述当前块的目标编码方式。
15.根据权利要求14所述的方法,其特征在于,所述点云的码流中包括所述第一指示信息和/或所述第二指示信息。
16.一种点云解码方法,其特征在于,包括:
解码点云码流,得到待解码的当前块;
确定所述当前块在编码时是否采用宏块编码模式进行编码,所述宏块编码模式为对所述当前块进行单独编码的编码方式。
17.根据权利要求16所述的方法,其特征在于,所述确定当前块在编码时是否采用宏块编码模式进行编码,包括:
获取所述当前块的第一信息,并根据所述当前块的第一信息,确定所述当前块在编码时是否采用宏块编码模式进行编码,所述第一信息用于指示所述当前块的块划分信息;或者,
获取第一指示信息,并根据所述第一指示信息,确定所述当前块在编码时采用宏块编码模式进行编码,所述第一指示信息用于指示所述当前块采用宏块编码模式进行编码。
18.根据权利要求17所述的方法,其特征在于,所述当前块的第一信息包括:所述当前块的划分深度、所述当前块的包围盒尺寸、所述当前块内的点数、所述当前块内的点密度中的至少一个。
19.根据权利要求18所述的方法,其特征在于,所述根据所述当前块的第一信息,确定所述当前块在编码时是否采用宏块编码模式进行编码,包括:
根据所述当前块的划分深度,确定所述当前块在编码时是否采用宏块编码模式进行编码;或者,
根据所述当前块的包围盒尺寸、所述当前块内的点数、所述当前块内的点密度中的至少一个,确定所述当前块在编码时是否采用宏块编码模式进行编码。
20.根据权利要求19所述的方法,其特征在于,所述根据所述当前块的划分深度,确定所述当前块在编码时是否采用宏块编码模式进行编码,包括:
若所述当前块对应的划分深度等于或大于第一预设划分深度时,则确定所述当前块在编码时采用所述宏块编码模式进行编码;或者,
若所述当前块的划分深度等于或大于第一预设划分深度时,则根据所述当前块的包围盒尺寸、所述当前块内的点数、所述当前块内的点密度中的至少一个,确定所述当前块在编码时是否采用宏块编码模式进行编码;或者,
若所述当前块的划分深度等于第二预设划分深度时,则确定所述当前块在编码时未采用宏块编码模式进行编码。
21.根据权利要求20所述的方法,其特征在于,所述第一预设划分深度为所述点云的划分深度下限,和/或所述第二预设划分深度为所述点云的划分深度上限。
22.根据权利要求19或20所述的方法,其特征在于,所述根据所述当前块的包围盒尺寸、所述当前块内的点数、所述当前块内的点密度中的至少一个,确定所述当前块在编码时是否采用宏块编码模式进行编码,包括:
获取所述点云的块划分指标信息,所述点云的块划分指标信息包括:划分后节点的包围盒尺寸、划分后节点内的点数、划分后节点内的点密度中的至少一个;
将所述当前块的包围盒尺寸、所述当前块内的点数、所述当前块内的点密度中的至少一个,与所述划分后节点的包围盒尺寸、划分后节点内的点数、划分后节点内的点密度中的至少一个进行比较,确定所述当前块在编码时是否采用宏块编码模式进行编码。
23.根据权利要求18-21任一项所述的方法,其特征在于,所述方法还包括:
若确定所述当前块在编码时采用宏块编码模式进行编码时,则确定所述当前块的目标编码方式;
根据所述当前块的目标编码方式,对所述当前块的第一信息进行解码,所述第一信息包括几何信息和属性信息。
24.根据权利要求23所述的方法,其特征在于,所述确定所述当前块的目标编码方式,包括:
获取第二指示信息,并根据所述第二指示信息确定所述当前块的目标编码方式,所述第二指示信息用于指示所述当前块的目标编码方式;或者,
将预测树编码方式确定为所述当前块的目标编码方式;或者,
根据所述当前块的第一信息,确定所述当前块的目标编码方式。
25.根据权利要求24所述的方法,其特征在于,所述根据所述当前块的第一信息,确定所述当前块的目标编码方式,包括:
若所述当前块的包围盒尺寸、所述当前块内的点数、所述当前块内的点密度中的至少一个满足对应的预设条件时,则确定所述当前块的目标编码方式为预测树编码方式。
26.根据权利要求25所述的方法,其特征在于,所述当前块内的点数满足对应的预设条件包括:
所述当前块内的点数大于第一预设值,或者,所述当前块内的点数小于第二预设值,或者所述当前块内的点数大于所述第一预设值且小于所述第二预设值。
27.根据权利要求25所述的方法,其特征在于,所述当前块内的点密度满足对应的预设条件包括:
所述当前块内的点密度大于第三预设值,或者,所述当前块内的点密度小于第四预设值,或者所述当前块内的点密度大于所述第三预设值且小于所述第四预设值。
28.根据权利要求25所述的方法,其特征在于,所述当前块的包围盒尺寸满足对应的预设条件包括:
所述当前块的包围盒尺寸大于第五预设值,或者,所述当前块的包围盒尺寸小于第六预设值,或者所述当前块的包围盒尺寸大于所述第五预设值且小于所述第六预设值。
29.一种编码设备,其特征在于,包括:
第一获取单元,用于获取点云,并对所述点云进行块划分,得到当前块;
第二获取单元,用于获取所述当前块的第一信息,所述第一信息用于指示所述当前块的块划分信息;
确定单元,用于根据所述当前块的第一信息,确定是否采用宏块编码模式对所述当前块进行编码,所述宏块编码模式为对所述当前块进行单独编码的编码方式。
30.一种解码设备,其特征在于,包括:
解码单元,用于解码点云码流,得到待解码的当前块;
确定单元,用于确定所述当前块在编码时是否采用宏块编码模式进行编码,所述宏块编码模式为对所述当前块进行单独编码的编码方式。
31.一种编码设备,其特征在于,包括:
处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行权利要求1至15任一项所述的方法。
32.一种解码设备,其特征在于,包括:
处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行权利要求16至28任一项所述的方法。
33.一种电子设备,其特征在于,包括:
处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行权利要求1至15或16至28中任一项所述的方法。
34.一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序使得计算机执行如权利要求1至15或16至28中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110975157.6A CN115733990A (zh) | 2021-08-24 | 2021-08-24 | 点云编解码方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110975157.6A CN115733990A (zh) | 2021-08-24 | 2021-08-24 | 点云编解码方法、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115733990A true CN115733990A (zh) | 2023-03-03 |
Family
ID=85289574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110975157.6A Pending CN115733990A (zh) | 2021-08-24 | 2021-08-24 | 点云编解码方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115733990A (zh) |
-
2021
- 2021-08-24 CN CN202110975157.6A patent/CN115733990A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114175100A (zh) | 用于处理点云数据的方法和装置 | |
CN114930858A (zh) | 用于基于几何的点云压缩的高级语法 | |
US11601488B2 (en) | Device and method for transmitting point cloud data, device and method for processing point cloud data | |
TW202141984A (zh) | 用於在基於幾何形狀的點雲壓縮中的預測變換的預測器索引訊號傳遞 | |
CN115299055A (zh) | 基于几何形状的点云压缩的trisoup语法信令 | |
US20240242390A1 (en) | Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device | |
CN115086658B (zh) | 点云数据的处理方法、装置、存储介质及编解码设备 | |
CN114598883A (zh) | 点云属性的预测方法、编码器、解码器及存储介质 | |
JP2024505798A (ja) | 点群符号化・復号化方法及びシステム、点群符号器並びに点群復号器 | |
TWI806481B (zh) | 點雲中鄰居點的選擇方法及裝置、編碼設備、解碼設備及電腦設備 | |
CN118075464A (zh) | 点云属性的预测方法、装置及编解码器 | |
CN115733990A (zh) | 点云编解码方法、设备及存储介质 | |
CN115474041B (zh) | 点云属性的预测方法、装置及相关设备 | |
WO2024065269A1 (zh) | 点云编解码方法、装置、设备及存储介质 | |
WO2023024842A1 (zh) | 点云编解码方法、装置、设备及存储介质 | |
US20230412837A1 (en) | Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device | |
WO2024145933A1 (zh) | 点云编解码方法、装置、设备及存储介质 | |
WO2024065272A1 (zh) | 点云编解码方法、装置、设备及存储介质 | |
US20240087174A1 (en) | Coding and decoding point cloud attribute information | |
WO2023024840A1 (zh) | 点云编解码方法、编码器、解码器及存储介质 | |
WO2022140937A1 (zh) | 点云编解码方法与***、及点云编码器与点云解码器 | |
WO2024065270A1 (zh) | 点云编解码方法、装置、设备及存储介质 | |
WO2024145912A1 (zh) | 点云编解码方法、装置、设备及存储介质 | |
WO2024145913A1 (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 | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40083057 Country of ref document: HK |