CN117896536A - 点云解码、编码方法、介质、电子设备及产品 - Google Patents
点云解码、编码方法、介质、电子设备及产品 Download PDFInfo
- Publication number
- CN117896536A CN117896536A CN202410084329.4A CN202410084329A CN117896536A CN 117896536 A CN117896536 A CN 117896536A CN 202410084329 A CN202410084329 A CN 202410084329A CN 117896536 A CN117896536 A CN 117896536A
- Authority
- CN
- China
- Prior art keywords
- node
- prediction
- nodes
- layer
- neighbor
- 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 122
- 230000009466 transformation Effects 0.000 claims abstract description 169
- 238000003860 storage Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 18
- 230000008569 process Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 14
- 238000013139 quantization Methods 0.000 description 13
- 238000007654 immersion Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 9
- 238000007906 compression Methods 0.000 description 8
- 238000010276 construction Methods 0.000 description 8
- 230000006835 compression Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 239000000463 material Substances 0.000 description 4
- 238000002310 reflectometry Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000010365 information processing Effects 0.000 description 3
- 238000002595 magnetic resonance imaging Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000004040 coloring Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000002591 computed tomography Methods 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 210000000056 organ Anatomy 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000004424 eye movement Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请公开了一种点云解码、编码方法、介质、电子设备及产品。方法包括在已构建的变换预测结构中,确定各个预测节点的邻居候选点,预测节点为基于预测模式计算属性预测值的节点;基于各个预测节点的邻居候选点,分别确定各个预测节点的邻居预测节点;基于各个预测节点的邻居预测节点的属性重建值分别确定各个预测节点的属性预测值。相较于在各个点中直接基于距离进行搜索而言,先确定变换预测结构中,各个预测节点的邻居候选点有利于减小搜索范围,基于较小的搜索范围进行邻居预测节点的搜索,可提高搜索效率,从而有利于提升编解码性能。
Description
技术领域
本申请涉及编解码技术领域,尤其涉及一种点云解码方法、点云编码方法、存储介质、电子设备及计算机程序产品。
背景技术
点云是采用测量仪器对物体表面进行数据采集所得到的点集合。点云在自动驾驶、高精度地图及虚拟现实等方面应用广泛,但由于点云往往是由数万个点到数亿个三维点组成,对数据存储、处理及传输显示都带来了严峻的挑战,对于目前的存储资源和传输带宽都难以承受,因此对点云进编码压缩得到点云码流,通过点云码流代替点云进行存储或传输是必不可少的。
目前比较常见的点云编码压缩方法如基于几何模型的点云压缩(Geometry-basedPoint Cloud Compression,GPCC),中国国家视频编解码标准(Audio Video CodingStandard,AVS)中的点云编码标准AVS-PCC等,一般会基于各个点的几何重建信息来计算任意两点之间的距离,从而基于距离来搜索最近的多个点作为邻居点,从而基于当前点的邻居点的预测值来计算当前点的预测值,由于搜索范围涉及的点较多,搜索过程会导致编解码性能降低。
发明内容
本申请旨在至少解决现有技术中存在的技术问题之一。为此,本申请提出一种点云解码方法、点云编码方法、存储介质、电子设备及计算机程序产品,有利于提高编解码性能。
第一方面,本申请提供了一种点云解码方法,包括在已构建的变换预测结构中,确定各个预测节点的邻居候选点,所述预测节点为基于预测模式计算属性预测值的节点;基于各个所述预测节点的邻居候选点,分别确定各个所述预测节点的邻居预测节点;基于各个所述预测节点的邻居预测节点的属性重建值分别确定各个所述预测节点的属性预测值。
第二方面,本申请提供了一种点云编码方法,包括在已构建的变换预测结构中,确定各个预测节点的邻居候选点,所述预测节点为基于预测模式计算属性预测值的节点;基于各个所述预测节点的邻居候选点,分别确定各个所述预测节点的邻居预测节点;基于各个所述预测节点的邻居预测节点的属性信息分别确定各个所述预测节点的属性预测值,并基于各个所述预测节点的属性信息和属性预测值分别确定各个所述预测节点的残差信息。
第三方面,本申请提供了一种点云解码装置,包括第一确定模块、第二确定模块和第三确定模块。所述第一确定模块用于在已构建的变换预测结构中,确定各个预测节点的邻居候选点,所述预测节点为基于预测模式计算属性预测值的节点;所述第二确定模块用于基于各个所述预测节点的邻居候选点,分别确定各个所述预测节点的邻居预测节点;所述第三确定模块用于基于各个所述预测节点的邻居预测节点的属性重建值分别确定各个所述预测节点的属性预测值。
第四方面,本申请提供了一种点云编码装置,包括第四确定模块、第五确定模块和第六确定模块。所述第四确定模块用于在已构建的变换预测结构中,确定各个预测节点的邻居候选点,所述预测节点为基于预测模式计算属性预测值的节点;所述第五确定模块用于基于各个所述预测节点的邻居候选点,分别确定各个所述预测节点的邻居预测节点;所述第六确定模块用于基于各个所述预测节点的邻居预测节点的属性信息分别确定各个所述预测节点的属性预测值,并基于各个所述预测节点的属性信息和属性预测值分别确定各个所述预测节点的残差信息。
第五方面,本申请提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施方式所述的点云解码方法或点云编码方法。
第六方面,本申请提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施方式所述的点云解码方法或点云编码方法。
第七方面,本申请提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述任一实施方式所述的点云解码方法或点云编码方法。
本申请实施例提供的点云解码方法、点云编码方法、点云解码装置、点云编码装置、存储介质、电子设备及计算机程序产品,通过在已经构建的变换预测结构中,确定各个预测节点的邻居候选点,然后基于邻居候选点,来确定预测节点的邻居预测节点,相较于在各个点中直接基于距离进行搜索而言,先确定变换预测结构中,各个预测节点的邻居候选点有利于减小搜索范围,基于较小的搜索范围进行邻居预测节点的搜索,可提高搜索效率,从而有利于提升编解码性能。
附图说明
本申请的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1a是是本申请实施例提供的一种3DoF的自由度展示示意图;
图1b是本申请实施例提供的一种3DoF+的自由度展示示意图;
图1c是本申请实施例提供的一种6DoF的自由度展示示意图;
图2是本申请实施例提供的点云媒体的点云处理系统的框架示意图;
图3是本申请实施例提供的点云编码的编码框架示意图;
图4是本申请实施例提供的点云解码方法的流程示意图;
图5是本申请实施例提供的点云解码方法的流程示意图;
图6是本申请实施例提供的点云解码方法的流程示意图;
图7是本申请实施例提供的点云解码方法的原理示意图;
图8是本申请实施例提供的点云解码方法的原理示意图;
图9是本申请实施例提供的点云编码方法的流程示意图;
图10是本申请实施例提供的点云解码装置的结构示意图;
图11本申请实施例提供的点云编码装置的结构示意图;
图12是本申请实施例提供的电子设备的结构示意图;
图13是本申请实施例提供的电子设备的硬件结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。
下面对本申请中涉及的部分技术术语进行介绍:
一、点云
点云是指空间中一组无规则分布的、表达三维物体或场景的空间结构及表面属性的离散点集。点云中的每个点至少包括几何数据,该几何数据用于表示点的三维位置信息。根据应用场景的不同,点云中的点还可以包括一组或多组属性数据,每一组属性数据用于反映点所具备的一种属性,该属性例如可以是色彩、材质或其他信息。通常,点云中的每个点都具有相同组数的属性数据。
点云可以灵活方便地表达三维物体或场景的空间结构及表面属性,因而应用广泛,可以应用于虚拟现实(Virtual Reality,VR)游戏、计算机辅助设计(Computer AidedDesign,CAD)、地理信息系统(Geography Information System,GIS)、自动导航系统(Autonomous Navigation System,ANS)、数字文化遗产、自由视点广播、三维沉浸远程呈现、生物组织器官三维重建等场景中。
点云的获取主要有以下途径:计算机生成、三维(3Dimension,3D)激光扫描、3D摄影测量等。具体来说,点云可以是通过采集设备(一组摄像机或具有多个镜头和传感器的摄像机设备)对现实世界的视觉场景进行采集得到的,通过3D激光扫描可以获得静态现实世界三维物体或场景的点云,每秒可以获取百万级点云;通过3D摄影可以获得动态现实世界三维物体或场景的点云,每秒可以获取千万级点云;此外,在医学领域,可以通过磁共振成像(Magnetic Resonance Imaging,MRI)、电子计算机断层扫描(Computed Tomography,CT)、电磁定位信息获得生物组织器官的点云。又如,点云还可以由计算机根据虚拟三维物体及场景直接生成,如计算机可以生成虚拟三维物体及场景的点云。伴随着大规模的点云数据不断积累,点云数据的高效存储、传输、发布、共享和标准化,成为点云应用的关键。
点云码流是对点云媒体编码压缩后的位流结构,其可以是内容呈现设备对封装文件进行解封装后提取出来的,点云媒体包括属性数据和几何数据,属性数据可以包括多种类型,比如颜色属性和反射率属性。编码压缩方法可以包括GPCC、AVS-PCC等。
点云序列(PCC_sequence)是点云码流的最高层语法结构,点云序列由序列头(sequence_header)开始,后面跟着一个或多个点云帧。每个点云帧之前应有几何头(geometry_header),属性头(attribute_header)和一个或多个点云片数据,点云片数据包括片头和数据位流。当成功解析序列头时,继续解析点云码流中的其他数据。
或者,点云序列由序列头、几何头、属性头开始,后面跟着一个或多个点云帧。每个点云帧之前应有帧头和一个或多个点云片数据。当成功解析序列头、几何头、属性头时,继续解析码流中的其他数据。
序列头包括点云序列解码所需的参数集合。几何头包括点云的几何数据解码所需的参数集合。属性头包括点云的属性数据解码所需的参数集合。
这里的点云片可以包括几何片信息(可简称几何片,geometry_slice),还可以包括属性片信息(可简称属性片,attribute_slice),每个点云片由片头和数据位流(geometry_data_bitstream)组成。
几何片包括几何片头和几何数据位流两个部分,几何数据位流包括相应几何片的几何数据。属性片包括属性片头和属性数据位流(general_attribute_data_bitstream)两个部分,属性数据位流包括相应属性片的属性数据。也即是说,片头包括几何片头和属性片头,数据位流包括几何数据位流和属性数据位流。
二、点云媒体
点云媒体是一种典型的6DoF沉浸媒体。沉浸媒体是指能够提供沉浸式的媒体内容,使沉浸于该媒体内容中的观看者能够获得现实世界中视觉、听觉等感官体验的媒体文件。沉浸式媒体按照观看者在消费媒体内容时的自由度,可以分为:6DoF(Degree ofFreedom)沉浸媒体,3DoF沉浸媒体,3DoF+沉浸媒体。其中,请参见图1a,图1a是本申请实施例提供的一种3DoF的自由度展示示意图,3DoF是指三自由度,即沉浸媒体的观看者在一个三维空间的中心点固定,沉浸媒体的观看者头部沿着X轴、Y轴和Z轴旋转来观看媒体内容提供的画面。请参见图1b,图1b是本申请实施例提供的一种3DoF+的自由度展示示意图,3DoF+是指在三自由度的基础上,沉浸媒体的观看者头部还拥有沿着X轴、Y轴和Z轴有限运动的自由度。请参见图1c,图1c是本申请实施例提供的一种6DoF的自由度展示示意图,6DoF是指在三自由度的基础上,沉浸媒体的观看者头部还拥有沿着X轴、Y轴和Z轴自由运动的自由度。
需要说明的是,本申请实施例提供的点云解码方法可应用于点云媒体的点云处理系统中,该点云处理系统可以包括内容制作设备(对应编码设备)和内容呈现设备(对应解码设备),内容制作设备可以是指点云媒体的提供者(例如点云媒体的内容制作者)所使用的计算机设备,该计算机设备可以是终端(如PC(Personal Computer,个人计算机)、智能移动设备(如智能手机)等)或服务器。其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。内容呈现设备可以是指点云媒体的使用者(例如点云媒体的观看者,即业务对象)所使用的计算机设备,该计算机设备可以是终端(如PC(Personal Computer,个人计算机)、智能移动设备(如智能手机)、VR设备(如VR头盔、VR眼镜等)、智能家电、车载终端、飞行器等),该计算机设备集成有客户端。其中,这里的客户端可以为具有显示文字、图像、音频以及视频等数据信息功能的客户端,包括但不限于多媒体客户端(例如,视频客户端)、社交类客户端(例如,即时通信客户端)、资讯类应用(例如,新闻客户端)、娱乐客户端(例如,游戏客户端)、购物客户端、车载客户端、浏览器等。其中,该客户端可以为独立的客户端,也可以为集成在某客户端(例如,社交客户端)中的嵌入式子客户端,在此不做限定。
内容制作设备和内容呈现设备可以是同一设备,也可以是不同设备,其均包括多个模块,不同的模块用于实现不同功能,这些模块可以集成于同一电子设备中,也可以位于不同电子设备中。内容制作设备可以用于实现点云媒体的采集、编码和封装等功能,相应地,内容呈现设备可以用于实现对封装文件的解封装、解码、渲染和显示等功能。请参见图2,图2是本申请实施例提供的点云媒体的点云处理系统的数据处理框架示意图。
在图2中,在内容制作设备侧,真实世界的视觉场景A由一组相机或一个具有多个镜头和传感器的相机设备捕获采集,采集结果为点云媒体B,点云媒体B是由大量点云帧组成的帧序列。一个或多个点云帧被编码为点云码流E,包括编码的几何位流和属性位流,之后,根据特定的媒体容器文件格式(如ISOBMFF)对点云码流E进行封装处理,得到用于流化传输的初始化片段和媒体片段的序列(Fs)或用于文件回放的媒体文件(F)。在封装过程中,还将元数据包含到文件F或媒体片段中Fs,之后,可使用传输机制将片段Fs传送给内容呈现设备。该传输机制可包括但不限于:DASH协议、HLS协议、SMTP协议、TCP协议等。
在内容呈现设备侧,对序列(Fs)或媒体文件(F)进行解封装,得到点云码流E'并解析元数据,然后再对点云码流E'解码生成点云媒体D',之后,再对点云媒体D'进行渲染,并呈现相应的视觉场景A'。在内容呈现设备侧的数据处理过程中,可以根据当前观看者的观看位置、观看方向或由各种类型的传感器(例如头部、位置或眼动传感器)确定的视窗,将解码的点云媒体D'渲染并显示到头戴式显示器或任何其他显示设备的屏幕上。通过当前观看位置或观看方向来部分访问解码的点云媒体,可用于优化点云媒体的处理过程。
可以理解的是,本申请涉及的点云处理技术(主要包括编码技术和解码技术)可以依托于云技术进行实现;例如,将云服务器作为内容制作设备。云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
三、点云数据(Point Cloud Data)。点云中各个点具备的几何信息和属性信息共同组成点云数据。其中,几何信息也可以称为三维位置信息,点云中某个点的几何信息是指该点的空间坐标(x,y,z),可以包括该点在三维坐标系统的各个坐标轴方向上的坐标值,例如,X轴方向上的坐标值x,Y轴方向上的坐标值y和Z轴方向上的坐标值z。点云中某个点的属性信息可以包括以下至少一种:颜色信息、材质信息、激光反射强度信息(也可以称为反射率);通常,点云中的每个点具有相同数量的属性信息,例如,点云中的每个点都可以具有颜色信息和激光反射强度两种属性信息,又如,点云中的每个点都可以具有颜色信息、材质信息和激光反射强度信息三种属性信息。
四、点云编码(Point Cloud Compression,PCC)。点云编码是指对点云中各点的几何信息和属性信息进行编码,得到压缩码流(也可以称为点云码流)的过程。点云编码可以包括几何信息编码和属性信息编码两个主要过程。目前主流的点云编码技术,针对点云的不同类型,可以分为基于几何结构的点云编码以及基于投影的点云编码,在此以MPEG(Moving Picture Expert Group,国际视音频编解码标准)中的G-PCC以及AVS-PCC为例进行介绍。
G-PCC及AVS-PCC的编码框架大致相同,以G-PCC为例,图3示出了GPCC的编码框架,可以分为几何信息编码过程以及属性信息编码过程。在几何信息编码过程中,对点云中各点的几何信息进行编码,得到几何比特流;在属性信息编码过程中,对点云中各点的属性信息进行编码,得到属性比特流;几何比特流和属性比特流共同组成点云的压缩码流。
对于几何信息编码过程,主要操作和处理可以参见如下描述:
1、预处理(Pre-Processing):可以包括坐标变换(Transform Coordinates)和体素化(Voxelize)。通过缩放和平移的操作,将三维空间中的点云数据转换成整数形式,并将其最小几何位置移至坐标原点处。
2、几何编码:几何编码中可以包括两种模式,分别是基于八叉树的几何编码(Octree)和基于三角表示的几何编码(Trisoup),这两种编码模式可以在不同的条件下使用。
其中:
基于八叉树的几何编码:八叉树是一种树形数据结构,在三维空间划分中,对预先设定的包围盒进行均匀划分,每个节点都具有八个子节点。通过对八叉树各个子节点的占用与否采用“1”和“0”指示,获得占用码信息(Occupancy Code)作为点云几何信息的码流。
基于三角表示的几何编码:将点云划分为一定大小的块(block),定位点云表面在块的边缘的交点并构建三角形。通过编码交点位置实现几何信息的压缩。
3、几何量化(Geometry Quantization):量化的精细程度通常由量化参数(Quantization Parameter,QP)来决定,QP取值越大,表示更大取值范围的系数将被量化为同一个输出,因此通常会带来更大的失真,及较低的码率;相反,QP取值越小,表示较小取值范围的系数将被量化为同一个输出,因此通常会带来较小的失真,同时对应较高的码率。
4、几何熵编码(Geometry Entropy Encoding):针对八叉树的占用码信息,进行统计压缩编码,最后输出二值化(0或者1)的压缩码流。统计编码是一种无损编码方式,可以有效的降低表达同样的信号所需要的码率。常用的统计编码方式是基于上下文的二值化算术编码(Content Adaptive Binary Arithmetic Coding,CABAC)。
对于属性信息编码过程,主要操作和处理可以参见如下描述:
1、属性重上色(Recoloring):有损编码情况下,在几何坐标信息编码后,需编码端解码并重建几何信息,即恢复点云中各点的几何信息。在原始的点云中寻找对应一个或多个邻近点的属性信息,作为该重建点的属性信息。
2、属性信息处理:属性信息处理可以包括三种属性编码模式,分别是属性预测(Prediction)、属性变换(Transform)、属性预测变换(Prediction&Transform),这三种属性编码模式可以在不同的条件下使用。
其中:
属性预测:根据距离或空间关系等信息,在已编码点中确定待编码点的邻居预测点,基于设定的准则,根据邻居预测点的属性信息计算待编码点的属性预测信息。计算待编码点的真实属性信息与预测属性信息之间的差值作为属性残差信息,对属性残差信息进行量化、以及熵编码。
属性变换:利用DCT(Discrete Cosine Transform,离散余弦变换)、Haar(HaarTransform,哈尔变换)等变换方法,对属性信息进行分组、变换得到变换系数,对变换系数进行量化、以及熵编码。以基于小波变换的属性编码为例,包括如下步骤:
属性预测变换:前序步骤与属性预测相同,在得到待编码点的属性残差信息之后,利用变换算法对待编码点的属性残差信息进行变换得到变换系数后,对变换系数进行量化、以及熵编码。
首先对经过颜色空间转换和重着色的待编码点云按照希尔伯特码由小到大进行重排序,然后采用自适应的分组和相应的V元变换。具体过程如下:
①点云分组
i)基于空间填充曲线的序对点云依次进行分组,将希尔伯特码前L位相同的点归为一组。
ii)细分组。当同组的点数多于预设限制点数时,进行细分组。
iii)可根据前序组的分组点数情况进行调整。
②组内预测
预测点选择范围在当前组第一个点的前序maxNumOfNeighbours个点中。
i)根据已有的预测方法进行逐点预测。
ii对各组选择或计算统一的预测值。如均采用当前组的第一个点的预测值作为当前组的预测值。
③基于残差值变换
每组点的预测属性残差值进行V_i元DCT变换(V_i=2…8),将变换系数进行量化熵编码。V_i=1时,不进行任何变换计算,直接将属性残差值进行量化熵编码。对所得变换系数进行量化。
(3)属性信息量化(Attribute Quantization):量化的精细程度通常由量化参数来决定。对属性信息处理得到的变换系数和/或属性残差信息进行量化,并对量化后的结果进行熵编码,例如,在属性预测中,是对量化后的属性残差信息进行熵编码;在属性变换和属性预测变换中,是对量化后的变换系数进行熵编码。
(4)属性熵编码(Attribute Entropy Coding):量化后的属性残差信息和/或变换系数一般使用行程编码(Run Length Coding)及算数编码(Arithmetic Coding)等熵编码方法实现最终的压缩。相应的属性编码模式,量化参数等信息也同样采用熵编码器进行编码。
五、点云解码。点云解码是指对点云编码得到的压缩码流进行解码,以重建点云的过程;详细地说,对点云流码进行解码主要涉及两部分内容:对点云媒体的几何位流(即目标几何数据)进行解码、以及对点云媒体的属性位流(即目标属性数据)进行解码。点云码流的解码过程和编码压缩过程是相逆的。在对点云码流进行解码后,内容呈现设备还可以进一步对解码数据进行渲染显示,以向用户呈现点云媒体(可参见上述图2)。
其中,以基于小波变换的属性编码为例,说明解码过程中的属性变换:
1、变换预测结构的构建
请参阅图4,基于排序点云数据以及排序点云数据之间的距离构建多层变换预测结构过程如下:
对于有N个几何点的点云,构建M层预测变换结构。将N个点作为最低层(M层,如图4中的第3层)的节点,计算当前点i与下一点i+1的距离di。如果di 2小于距离阈值thm,点i和点i+1为变换模式,两点合并构成它们在M-1层的父节点。这些父节点构成M-1层的节点,且按照合并的先后顺序排列,父节点的几何坐标为其两个子节点的中点位置。如果di 2大于距离阈值thm,点i为预测模式,继续处理下一个点。
对M-1层的所有节点,按照上述步骤合并,构成M-2层的节点,以此类推,对每一层的节点进行合并。当第m层的节点数少于128或者第m层的节点数大于等于m+1层的节点数的一半时,对所有节点进行两两合并,无需判断距离关系。当一层内没有节点合并时停止(如图4中的第1层)。
距离阈值的初始值,即最底层的距离阈值thM计算方法为,点云平均空间包围盒边长meanBB的平方除以点云点数numPoints,再除以预设比例ratio,最后取不小于1的整数。
预设比例ratio由自适应参数集(Adaptive Parameter Set,APS)中的颜色初始预测变换比例colorInitPredTransRatio或反射率初始预测变换比例reflInitPredTransRatio计算获得:
ratio=2colorInitPredTransRatio
ratio=2reflInitPredTransRatio
第m层距离阈值thm的更新方法为,第(m+1)层距离阈值乘上第(m+1)层节点数Nm+1,然后除以第m层节点数Nm,最后取不小于1的整数。
在构建变换预测结构的过程中,同一层的距离阈值thm也在更新。在第m层的构建过程中,统计连续出现预测编码模式节点和变换编码模式节点的个数,记为Np和Nt。对于点i,如果Np大于阈值Tp,更新距离阈值thm=thm*2;如果Nt大于阈值Tt且距离阈值thm不为1,更新距离阈值thm=max(1,thm/2)。使用更新后的距离阈值thm对后续点间距离进行比较。
划分结束后得到一个M层变换预测结构,基于此结构,进行分层变换和预测。
2、属性变换系数的反变换和预测
基于M层变换预测结构以及对应的解码方式分别对各节点进行点云属性解码。获取反量化后的属性变换系数(第一层的重建DC系数和其他层的重建AC系数),和反量化后的直流残差系数(DC残差系数),自上而下逐层解码。
(1)对属性变换系数(第一层的重建DC系数和其他层的重建AC系数),直流残差系数(DC残差系数)进行基于层的矫正。
分别对第一层节点的重建DC系数乘以对第m层节点的重建AC系数乘以对第m+1层节点的重建DC残差系数乘以/>(m=1,2,…M-1)。
(2)对矫正后的属性变换系数进行反变换与预测。
属性变换系数的反变换:对第m层的第j个节点,输入为j节点的属性变换系数(重建DC系数b1,重建AC系数b2),逆变换输出对应两个子节点的重建DC系数a1和a2:
a1=(b1+b2)/2
a2=(b1-b2)/2
如此,遍历m层的所有节点。
(3)直流残差系数的预测补偿。
对第m+1层的第j个节点,如果其没有父节点,则在层内搜索其距离最近的K(K=3)个已经计算过重建DC系数的节点,搜索范围为前向128点和后序128点,基于其邻居点计算第j个节点的DC预测值。将DC预测值与重建直流残差系数相加得到第j个节点的重建DC系数。如此,遍历m+1层的所有节点。
基于m=1,2,…,M-2,M-1,自上而下的遍历M层结构的每一层并且循环执行上述步骤(2)和步骤(3),进行相关计算。最终变换预测结构的第M层,每个节点的重建DC系数即为该点的属性解码值。
基于上述基础概念的介绍,本申请实施例提供一种点云解码方法、点云编码方法、装置、存储介质、电子设备及计算机程序产品。
请参见图5,图5是本申请实施例提供的点云解码方法的流程示意图,该点云解码方法可以应用于内容呈现设备,具体包括:
步骤011:在已构建的变换预测结构中,确定各个预测节点的邻居候选点,预测节点为基于预测模式计算属性预测值的节点;
其中,在编码端,变换预测结构为基于各个点的位置信息生成的多层结构。在解码端,变换预测结构为基于解码点云码流得到的各个点的几何重建信息生成的多层结构。变换预测结构包括多层,每层包括一个或多个节点,节点即对应几何点,以表征不同几何点之间的关系。
其中,预测节点为变换预测结构中基于预测模式计算属性预测值的节点,预测节点无父节点。
其中,邻居候选点为变换预测结构中与预测节点存在关联的节点。
可选地,预测节点的邻居候选点包括以下至少一种:
(1)变换预测结构中,与预测节点处于同一层且已确定属性重建值的至少部分节点;如基于预测节点前向搜索128个节点及后序搜索128个节点。
(2)变换预测结构中,与预测节点处于同一层且已确定属性重建值的至少部分预测节点(即索引值小于当前预测节点的索引值的预测节点),预测节点为使用预测模式计算得到属性重建值的节点;
(3)变换预测结构中,与预测节点处于同一层且已确定属性重建值的至少部分变换节点(当前层的所有变换节点),变换节点为使用变换模式计算得到属性预测值的节点;
(4)变换预测结构中,位于预测节点所在层的上一层且已确定属性重建值的至少部分节点,预测节点所在层为第L层,预测节点所在层的上一层为第L-1层,L小于等于变换预测结构的总层数(如M)。
如此,通过在变换预测结构中先确定邻居候选点,可缩小后续确定邻居预测节点时的搜索范围,有利于提升编解码效率。
可选地,可基于编解码端默认的邻居候选点的选取方式,确定各个预测节点的邻居候选点。
如编解码端默认预测节点的邻居候选点选取方式为选取变换预测结构中,与预测节点处于同一层且已确定属性重建值的节点(如索引值小于当前预测节点的索引值的预测节点和当前层的所有变换节点),则可确定预测节点的邻居候选点包括变换预测结构中,与预测节点处于同一层且已确定属性重建值的节点。
可选地,获取点云码流的解码指示信息,解码指示信息包括属性变换标志位;基于属性变换标志位的取值,确定各个预测节点的邻居候选点。
其中,解码指示信息用于对点云码流中不同的数据进行解码指示。解码指示信息可以设置于序列头、帧头、属性头及属性片头等。
如可在属性头、属性片头等中可设置属性变换标志位flag1,以指示解码对应的属性数据位流时,基于flag1的取值,来确定各个预测节点的邻居候选点的选取方式。
如集合[0,1,2,3]的取值分别对应上述4种邻居候选点的选取方式,属性变换标志位可包括该集合中的一个或多个值,如属性变换标志位包括0时,邻居候选点的选取方式即为方式(1),邻居候选点包括变换预测结构中,与预测节点处于同一层且已确定属性重建值的节点;属性变换标志位包括1时,邻居候选点的选取方式即为方式(2),邻居候选点包括变换预测结构中,与预测节点处于同一层且已确定属性重建值的预测节点(即索引值小于当前预测节点的索引值的预测节点);属性变换标志位包括1和2时,邻居候选点的选取方式即为方式(2)和方式(3),邻居候选点包括变换预测结构中,与预测节点处于同一层且已确定属性重建值的预测节点(即索引值小于当前预测节点的索引值的预测节点)、及变换预测结构中,与预测节点处于同一层且已确定属性重建值的变换节点(当前层的所有变换节点)。
如此,通过解码指示信息中的属性变换标志位来指示邻居候选点的选取方式,从而使得编解码端能够选择性地使用更多邻居候选点的选取方式,从而适应不同场景下的点云码流,有利于提升编解码性能。
步骤012:基于各个预测节点的邻居候选点,分别确定各个预测节点的邻居预测节点。
在确定预测节点的邻居候选点之后,即可在各个预测节点对应的邻居候选点中,进一步确定邻居预测节点。
可选地,可根据预测节点对应的邻居候选点的数量,在预测节点对应的邻居候选点中,确定预测节点对应的邻居预测节点,确定方式包括以下至少一种:
(1)在预测节点的邻居候选点的数量为0时,确定预测节点无邻居预测节点;
(2)在预测节点的邻居候选点的数量小于或等于N(如为3、4、5、10等)时,确定一个或多个邻居候选点为邻居预测节点;
如以N为128为例,在预测节点的邻居候选点的数量小于或等于3时,则可直接确定所有邻居候选点均为邻居预测节点;在预测节点的邻居候选点的数量大于3且小于128时,则可确定各个邻居候选点中,预测节点前序的3个邻居候选点为邻居预测节点。
(3)在预测节点的邻居候选点的数量大于N时,确定邻居候选点中距离预测节点最近的一个或多个邻居候选点为邻居预测节点;
如将各个邻居候选点与预设节点的距离进行排序,然后确定排序位于前N的邻居候选点作为距离预测节点最近的一个或多个邻居候选点,从而确定预测节点的邻居预测节点。
其中,对颜色属性预测值而言,若预测节点的邻居候选点的数量大于或等于3,则遍历查找距离预测节点最近的3个邻居候选点及最多13个等距离点(即与3个距离最近点中,距离最大的最近点距离相同的点)作为预测节点的邻居预测节点;对反射率属性预测值而言,若预测节点的邻居预测节点的数量大于或等于3,则遍历查找预测节点的3个距离最近的邻居候选点作为预测节点的邻居预测节点。
(4)在预测节点的邻居候选点的数量大于N且小于Q时,确定预测节点前序的一个或多个邻居候选点为邻居预测节点。
如预测节点的邻居候选点的数量大于N(如3、4等)且小于Q(如5、6、7等)时,可根据预测节点的索引值,根据索引值进行前向搜索,以得到预测节点前序的一个或多个(如N个)邻居候选点作为邻居预测节点。
可选地,还可根据预测节点的索引值,在预测节点对应的邻居候选点中,确定预测节点对应的邻居预测节点,确定方式包括以下至少一种:
(1)在预测节点的索引值为0时,确定预测节点无邻居预测节点,n为预测节点所在层的节点数量;其中,索引值为0的节点为当前层最先被处理的节点。如当前层的预测节点按第一解码顺序或第二解码顺序处理时,会最先处理索引值为0的节点(如第0节点或第n-1节点),此时则可确定索引值为0的节点无邻居预测节点。
其中,基于变换预测结构的几何顺序,各个节点依次为第0节点至第n-1节点,第一解码顺序可以是从第0节点到第n-1节点,第二解码顺序可以是从第n-1节点到第0节点。
(2)在预测节点的索引值为j(如3、4等)时,确定预测节点的邻居预测节点为索引值小于j的节点;其中,索引值小于j的节点的解码顺序早于索引值为j的节点的解码顺序。如当前层的预测节点按第一解码顺序或第二解码顺序处理时,会先处理索引值小于j的节点,再处理索引值为j的节点(如第j节点或第n-j节点)。此时若处理到索引值为j的节点,则可确定索引值小于j的节点为邻居预测节点。
(3)在预测节点的索引值大于j(如j为3、4等)时,确定邻居候选点中距离预测节点最近的多个邻居候选点为邻居预测节点。
如将各个邻居候选点与预设节点的距离进行排序,然后确定排序位于前N的邻居候选点作为距离预测节点最近的多个邻居候选点,从而确定预测节点的邻居预测节点。
其中,对颜色属性预测值而言,若预测节点的索引值大于或等于3,则遍历查找距离预测节点最近的3个邻居候选点及最多13个等距离点(即与3个距离最近点中,距离最大的最近点距离相同的点)作为预测节点的邻居预测节点;对反射率属性预测值而言,若预测节点的邻居预测节点的数量大于或等于3,则遍历查找预测节点的3个距离最近的邻居候选点作为预测节点的邻居预测节点。
可选地,针对当前层的最后一个节点为预测节点的情况,还可根据预测节点所在的当前层的节点数量,在预测节点对应的邻居候选点中,确定预测节点对应的邻居预测节点,确定方式包括:
若预测节点为变换预测结构的当前层的最后一个节点、当前层的节点数量小于预设节点阈值且当前层的节点数量为奇数时,确定预测节点前序的多个节点为预测节点的邻居预测节点,或者确定当前层中距离预测节点最近的多个节点为预测节点的邻居预测节点。
其中,预设节点阈值可以是强制变换模式的点数阈值。
如此,基于预测节点的不同情况,可基于邻居预测节点的数量、预测节点的索引值、以及预测节点所在的当前层的节点数量中的一者或多者,采用适配的方式确定对应的邻居预测节点,可减少确定邻居预测节点时的搜索范围,甚至无需搜索,即可快速而准确地确定预测节点对应的邻居预测节点。
步骤013:基于各个预测节点的邻居预测节点的属性重建值分别确定各个预测节点的属性预测值。
在确定预测节点的邻居预测节点之后,即可根据各个预测节点的邻居预测节点的属性重建值分别确定各个预测节点的属性预测值。
其中,基于预测节点的邻居预测节点的属性重建值来确定预测节点的属性预测值的方式包括以下至少一种:
(1)在预测节点的邻居预测节点的数量为0时,确定预测节点的属性预测值为预设属性预测值;
其中,对于颜色属性预测值而言,预设属性预测值为[128,128,128];对于反射率属性预测值而言,预设属性预测值为0。
(2)在预测节点的邻居预测节点的数量为1时,确定预测节点的邻居预测节点的属性重建值为预测节点的属性预测值;
(3)在预测节点的邻居预测节点的数量大于1时,基于预测节点对应的各个邻居预测节点的属性重建值确定预测节点的属性预测值。
例如,在预测节点的邻居预测节点的数量为2时,基于2个邻居预测节点到预测节点的距离,计算2个邻居预测节点的属性重建值的加权平均值。具体可根据邻居预测节点到预测节点的距离先确定邻居预测节点的属性重建值的权值,然后根据2个邻居预测节点各自对应的权值和属性重建值计算加权平均值,以作为预测节点的属性预测值。
再例如,在预测节点的邻居预测节点的数量大于或等于3时,基于多个邻居预测节点到预测节点的距离,计算多个邻居预测节点的属性重建值的加权平均值。具体可根据邻居预测节点到预测节点的距离先确定邻居预测节点的属性重建值的权值,然后根据多个邻居预测节点各自对应的权值和属性重建值计算加权平均值,以作为预测节点的属性预测值。
如此,基于预测节点的邻居预测节点的数量,快速确定预测节点的属性预测值,进一步减少解码得到属性重建信息所需的计算量,有利于提升编解码性能。
在一些实施例中,在得到预测节点的属性预测值之后,即可结合预测节点的属性预测值和残差信息,确定预测节点的输出重建值,其中,各个预测节点的残差信息可通过解码点云码流直接获取到。
在一些实施例中,解码点云码流的属性数据位流得到的变换系数一般包括第一变换系数、第二变换系数和第三变换系数,第一变换系数、第二变换系数和第三变换系数可基于编解码端默认的排列方式排列,从而方便解码端进行解析。
其中,以DCT变换方法为例,第一变换系数可以是重建DC系数,第二变换系数可以是重建AC系数,第三变换系数可以是直流残差系数(也叫DC残差系数)。
可选地,第一变换系数、第二变换系数和第三变换系数的排列方式包括以下至少一种:
(1)各个第一变换系数、各个第三变换系数和各个第二变换系数依次排列以形成变换系数集合。如第一变换系数为A,第二变换系数为B,第三变换系数为C,变换系数集合即为{A0,A1,……,Ai,B0,B1,……,Bi,C0,C1,……,Ci}。
(2)各个第一变换系数和各个第三变换系数依次排列形成一个变换系数集合,各个第二变换系数依次排列形成另一个变换系数集合;变换系数集合即为{A0,A1,……,Ai,C0,C1,……,Ci}和{B0,B1,……,Bi}。
(3)基于变换预测结构的各个节点的解码顺序,各个节点的变换系数依次排列以形成变换系数集合;如解码顺序为依次解码节点0至节点10,则节点0的变换系数、节点1的变换系数、……、节点10的变换系数依次排列,形成变换系数集合。
(4)变换预测结构的各个层的节点对应的变换系数依次排列以形成各个层分别对应的变换系数集合;如变换预测结构包括M层,第1层的各个节点对应的变换系数依次排列形成第1层对应的变换系数集合;第K层的各个节点对应的变换系数依次排列形成第K层对应的变换系数集合,K小于或等于M。
其中,对于排列方式(4)而言,各个变换系数集合的变换系数按照第一排列顺序、第二排列顺序排列或各个节点的解码顺序,第一排列顺序为第一变换系数、第三变换系数和第二变换系数依次排列,第二排列顺序排列为第二变换系数、第一变换系数和第三变换系数依次排列。
对于每个变换系数集合的变换系数,则可按照第一排列顺序或第二排列顺序排列,如第1层对应的变换系数集合为{A0,C0};其他层对应的变换系数集合为{B0,……,Bi,C1,……,Cj}或{C1,……,Cj,B0,……Bi}。
可选地,解码端还可获取点云码流的解码指示信息,解码指示信息包括属性变换标志位;基于属性变换标志位的取值,确定第一变换系数、第二变换系数和第三变换系数的排列方式。
如可在属性头、属性片头等中可设置属性变换标志位flag2,以指示解码对应的属性数据位流时,基于flag2的取值,来确定第一变换系数、第二变换系数和第三变换系数的排列方式。
如集合[0,1,2,3]的取值分别对应4种排列方式,属性变换标志位可包括该集合中的一个或多个值,如属性变换标志位包括0时,排列方式为方式(1);再例如,属性变换标志位包括1时,排列方式为方式(2);又例如,属性变换标志位包括1和2时,排列方式为方式(2)和(3)。
如此,通过解码指示信息中的属性变换标志位来指示第一变换系数、第二变换系数和第三变换系数的排列方式,从而使得编解码端能够选择性地使用更多排列方式,从而适应不同场景下的点云码流,有利于提升编解码性能。
在一些实施例中,请参阅图6,点云解码方法(具体为变换预测结构的构建)还可包括一下步骤:
步骤014:基于解码点云码流确定的各个点的几何重建信息,对各个点进行排序;
具体地,在解码点云码流中的几何数据位流之后,即可得到点云中的各个点的几何重建信息,即各个点的坐标(x,y,z),基于空间填充曲线生成每个点的莫顿码或希尔伯特码,并由小到大排序得到莫顿序或希尔伯特序。
步骤015:基于各个点的排序,确定各个点在变换预测结构的第M层的索引;
具体地,在将各个点排序完成后,即可将排序完成的各个点直接作为变换预测结构的第M层的各个节点,各个节点的索引可与各个点的排序相同。
步骤016:基于各个点在变换预测结构的第M层的索引,遍历各个点,以构建变换预测结构。
具体地,在确定各个点在第M层的索引之后,即可基于索引顺序,从小到大依次遍历各个节点。如各个点确定的第M层的节点数量为n,则第一个节点的索引为0,第n个节点的索引为n-1,按照从索引为0到索引为n-1的节点依次进行遍历,以将能够合并的变换节点合并生成在第M-1层的父节点,并不能合并的节点确定预测节点,从而生成第M-1层的节点,然后再次通过相同的方式遍历第M-1层的节点的各个节点,直至完成变换预测结构的构建。
可选地,请参阅图7和图8,在遍历过程中,为了尽量减少预测节点,可进行如下步骤:
确定当前遍历的第K层的第i节点与第i+1节点是否满足预设合并条件,K小于或等于M,K的初始值为M;
若满足预设合并条件,则合并第i节点和第i+1节点,以生成第i节点和第i+1节点在第K-1层的父节点;
若不满足预设合并条件,则将第i节点分配到变换预测结构的第K-1层;
在第K层的各个节点均遍历完成的情况下,将K减1,并再次进入确定当前遍历的第K层的第i节点与第i+1节点是否满足预设合并条件的步骤。
其中,预设合并条件为判断第i节点与第i+1节点是否能够进行合并以生成在第K-1层的父节点的条件。
可选地,预设合并条件可包括以下至少一种:
(1)第i节点与第i+1节点之间的距离小于预设阈值(预设阈值的确定具体请参阅前述对变换预测结构的构建的描述);及
(2)第i节点为第i+1节点的邻居前序点,第i+1节点在第K+1层时的节点索引为j,第i节点为第K+1层中第j-1节点和第j-2节点的父节点时,确定第i节点为第i+1节点的邻居前序点。
即可在第i节点与第i+1节点之间的距离小于预设阈值和/或第i节点为第i+1节点的邻居前序点时,合并第i节点和第i+1节点,以生成第i节点和第i+1节点在第K-1层的父节点,如图7中第3层的第1节点和第2节点、及第4节点和第5节点,第2层中的第1节点和第3节点。如此,通过设置更多合理的合并条件,尽量增加变换节点而减少预测节点,从而提高编解码性能。
而在第i节点与第i+1节点不满足预设合并条件时,不会立刻确定第i节点为预测节点,而是会先放到第K-1层,等到第K-1层遍历时,再次对第i节点重新进行合并判断,如图7中原本在第3层的第3节点,在遍历时与第4节点之间不满足预设合并条件,故先将第3节点放到第2层,然后在第2层再次对第3节点进行遍历。此时第i节点可能会满足预设合并条件,因此,可进一步减少变换预测结构中的预测节点,增加变换节点,以提高编解码性能。
在图8的例子中,第4层的第3节点在遍历第第4层时,并不满足合并条件,故放到第3层,然后在第3层遍历时,满足合并条件,与第3层的第1节点合并,最终生成的变换预测结构中,无预测节点。
在第K层遍历完成后,即可基于与第K层类似的遍历方法,继续进行第K-1层的遍历,如此循环,直至完成变换预测结构的构建。
可选地,在第K-1层的节点数少于128或者第K-1层的节点数大于等于第K层的节点数的一半时,对第K-1层所有节点进行两两合并,无需判断距离关系,从而得到第K-2层的各个节点。对第K-2层执行同样的处理,如此循环,直至构建到第1层,第1层中仅有一个节点,无法继续进行合并,从而完成整个变换预测结构的构建。
在一些实施例中,预设合并条件为编解码端默认的对变换预测结构中的相邻2节点进行合并的合并条件,如上述预设合并条件(1)和/或(2);
或者解码端可获取点云码流的解码指示信息,解码指示信息包括属性变换标志位;基于属性变换标志位的取值,确定预设合并条件。
如可在属性头、属性片头等中可设置属性变换标志位flag3,以指示解码对应的属性数据位流时,基于flag3的取值,来确定预设合并条件。
如集合[0,1]的取值分别对应上述2种预设合并条件,属性变换标志位可包括该集合中的一个或多个值,如属性变换标志位包括0时,确定预设合并条件为预设合并条件(1);如属性变换标志位包括1时,确定预设合并条件为预设合并条件(2);如属性变换标志位包括0和1时,确定预设合并条件为预设合并条件(1)和(2)。
如此,通过解码指示信息中的属性变换标志位来指示预设合并条件,从而使得编解码端能够选择性地使用更多预设合并条件,从而适应不同场景下的点云码流,有利于提升编解码性能。
在一些实施例中,在将第i节点分配到变换预测结构的第K-1层之前,需要确定第i节点是否为预测节点,预测节点的确定方案包括以下方案中至少一种:
方案1:基于第i节点的初始层数和第K层之间的层数差,来确定第i节点是否为预测节点。
其中,第i节点的初始层数为第i节点第一次被遍历到时的层数。
具体为,若第i节点的初始层数和第K层的层数差小于预设层数差阈值(如1、2、3等),存在合并的可能,则将第i节点被分配到第K-1层;若第i节点的初始层数和第K层的层数差大于预设层数差阈值,基本不存在合并的可能,则确定第i节点为预测节点。
方案2:基于第i节点所在的第K层在变换预测结构中的位置,来确定第i节点是否为预测节点。
具体为,若K大于预设层数阈值(如M-1、M-2等),此时第i节点所在层数较低,存在合并的可能,则将第i节点被分配到第K-1层;
若K小于预设层数阈值,此时第i节点所在层数较高,基本不存在合并的可能,则确定第i节点为预测节点。
方案3:基于第i-1节点是否为预测节点及第i节点是否为因不满足预设合并条件而被被分配的节点,来确定第i节点是否为预测节点。
具体为,若第i节点存在子节点或K等于M,则说明第i节点为合并生成的父节点或者第M层的节点(第M层的节点均不可能是被分配的点),并不是被分配的节点,存在后续合并的可能,则将第i节点分配到变换预测结构的第K-1层;
若第i节点不存在子节点且K不等于M,则可确定第i节点为被分配的节点,则在第i-1节点为预测节点的情况下,即第i节点的前一个节点为预测节点的情况下,第i节点基本不存在合并的可能,此时可确定第i节点为预测节点;在第i-1节点不为预测节点的情况下,可基于第i-1节点和第i节点是否满足预设合并条件,将第i节点分配到变换预测结构的第K-1层或合并第i-1节点和第i节点。
根据上述实施例描述的方法,本申请实施例还提供一种点云编码方法,请参见图9,图9是本申请实施例提供的点云编码方法的流程示意图,该点云编码方法可以应用于内容制作设备,具体包括:
步骤021:在已构建的变换预测结构中,确定各个预测节点的邻居候选点,预测节点为基于预测模式计算属性预测值的节点;
步骤022:基于各个预测节点的邻居候选点,分别确定各个预测节点的邻居预测节点;
步骤023:基于各个预测节点的邻居预测节点的属性信息分别确定各个预测节点的属性预测值,并基于各个预测节点的属性信息和属性预测值分别确定各个预测节点的残差信息(残差信息与前述描述的第三变换系数类似)。
需要指出的是,点云的编码过程和解码过程是可逆的,故本申请实施例提供的应用于内容制作设备的点云编码方法可以参见上述应用于内容呈现设备的点云解码方法的实施例,此处不再赘述。
根据上述实施例描述的方法,本申请实施例还提供了一种点云解码装置,用于执行上述应用于内容呈现设备的点云解码方法中的步骤。请参见图10,图10是本申请实施例提供的点云解码装置的结构示意图。该点云解码装置300应用于内容制作设备,其包括第一确定模块301、第二确定模块302和第三确定模块303。
第一确定模块301,用于在已构建的变换预测结构中,确定各个预测节点的邻居候选点,预测节点为基于预测模式计算属性预测值的节点;
第二确定模块302,用于基于各个预测节点的邻居候选点,分别确定各个预测节点的邻居预测节点;
第三确定模块303,用于基于各个预测节点的邻居预测节点的属性重建值分别确定各个预测节点的属性预测值。
需要说明的是,上述点云解码装置300中各模块单元的具体细节已经在上述应用于内容呈现设备的点云解码方法的实施例中进行了详细描述,这里不再赘述。
根据上述实施例描述的方法,本申请实施例还提供了一种点云编码装置,用于执行上述应用于内容制作设备的点云编码方法中的步骤。请参见图11,图11是本申请实施例提供的另一点云编码装置的结构示意图。该点云编码装置400应用于内容制作设备,包括第四确定模块401、第五确定模块402和第六确定模块403。
第四确定模块401,用于在已构建的变换预测结构中,确定各个预测节点的邻居候选点,预测节点为基于预测模式计算属性预测值的节点;
第五确定模块402,用于基于各个预测节点的邻居候选点,分别确定各个预测节点的邻居预测节点;
第六确定模块403,用于基于各个预测节点的邻居预测节点的属性信息分别确定各个预测节点的属性预测值,并基于各个预测节点的属性信息和属性预测值分别确定各个预测节点的残差信息。
需要说明的是,上述点云编码装置400中各模块单元的具体细节已经在上述应用于内容制作设备的点云编码方法的实施例中进行了详细描述,这里不再赘述。
在一些实施例中,本申请实施例中的点云解码装置和点云编码装置可以是电子设备,也可以是电子设备中的部件,例如集成电路或芯片。该电子设备可以是终端,也可以为除终端之外的其他设备。示例性的,电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、移动上网装置(Mobile Internet Device,MID)、增强现实(augmentedreality,AR)/虚拟现实(virtual reality,VR)设备、机器人、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本或者个人数字助理(personaldigital assistant,PDA)等,还可以为服务器、网络附属存储器(Network AttachedStorage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
在一些实施例中,如图12所示,本申请实施例还提供一种电子设备500,包括处理器501、存储器502及存储在存储器502上并可在处理器501上运行的计算机程序,该程序被处理器501执行时实现上述点云解码方法或点云编码方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备包括上述的移动电子设备和非移动电子设备。
图13为实现本申请实施例的一种电子设备的硬件结构示意图。
该电子设备600包括但不限于:射频单元601、网络模块602、音频输出单元603、输入单元604、传感器605、显示单元606、用户输入单元607、接口单元608、存储器609以及处理器610等部件。
本领域技术人员可以理解,电子设备600还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器610逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图13中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
应理解的是,本申请实施例中,输入单元604可以包括图形处理器(GraphicsProcessing Unit,GPU)6041和麦克风6042,图形处理器6041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元606可包括显示面板6061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板6061。用户输入单元607包括触控面板6071以及其他输入设备6072中的至少一种。触控面板6071,也称为触摸屏。触控面板6071可包括触摸检测装置和触摸控制器两个部分。其他输入设备6072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
存储器609可用于存储软件程序以及各种数据。存储器609可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器609可以包括易失性存储器或非易失性存储器,或者,存储器609可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请实施例中的存储器609包括但不限于这些和任意其它适合类型的存储器。
处理器610可包括一个或多个处理单元;处理器610集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器610中。
本申请实施例还提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述点云解码方法或点云编码方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,处理器为上述实施例中的电子设备中的处理器。可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。
本申请实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述点云解码方法或点云编码方法。
其中,处理器为上述实施例中的电子设备中的处理器。可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
在本申请的描述中,“多个”的含义是两个或两个以上。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。
尽管已经示出和描述了本申请的实施例,本领域的普通技术人员可以理解:在不脱离本申请的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本申请的范围由权利要求及其等同物限定。
Claims (20)
1.一种点云解码方法,其特征在于,包括:
在已构建的变换预测结构中,确定各个预测节点的邻居候选点,所述预测节点为基于预测模式计算属性预测值的节点;
基于各个所述预测节点的邻居候选点,分别确定各个所述预测节点的邻居预测节点;
基于各个所述预测节点的邻居预测节点的属性重建值,分别确定各个所述预测节点的属性预测值。
2.根据权利要求1所述的方法,其特征在于,所述确定各个预测节点的邻居候选点,包括:
基于编解码端默认的邻居候选点的选取方式,确定各个所述预测节点的邻居候选点;或者
基于在点云码流的解码指示信息中包括的属性变换标志位的取值,确定各个所述预测节点的邻居候选点。
3.根据权利要求1所述的方法,其特征在于,所述邻居候选点包括以下至少一种:
所述变换预测结构中,与所述预测节点处于同一层且已确定属性重建值的至少部分节点;
所述变换预测结构中,与所述预测节点处于同一层且已确定属性重建值的至少部分预测节点;
所述变换预测结构中,与所述预测节点处于同一层且已确定属性重建值的至少部分变换节点,所述变换节点为使用变换模式计算得到属性预测值的节点;及
所述变换预测结构中,位于所述预测节点所在层的上一层且已确定属性重建值的至少部分节点,所述预测节点所在层为第L层,所述预测节点所在层的上一层为第L-1层。
4.根据权利要求1所述的方法,其特征在于,所述基于各个所述预测节点的邻居候选点,分别确定各个所述预测节点的邻居预测节点,包括以下步骤至少一个:
在所述预测节点的邻居候选点的数量为0时,确定所述预测节点无邻居预测节点;
在所述预测节点的邻居候选点的数量小于或等于N时,确定一个或多个所述邻居候选点为所述邻居预测节点;
在所述预测节点的邻居候选点的数量大于N时,确定所述邻居候选点中距离所述预测节点最近的一个或多个所述邻居候选点为所述邻居预测节点;及
在所述预测节点的邻居候选点的数量大于N且小于Q时,确定所述预测节点前序的一个或多个所述邻居候选点为所述邻居预测节点。
5.根据权利要求1所述的方法,其特征在于,所述基于各个所述预测节点的邻居候选点,分别确定各个所述预测节点的邻居预测节点,包括以下步骤至少一个:
在所述预测节点的索引值为0时,确定所述预测节点无邻居预测节点,n为所述预测节点所在层的节点数量;
在所述预测节点的索引值为j时,确定所述预测节点的邻居预测节点为索引值小于j的节点;
在所述预测节点的索引值大于j时,确定所述邻居候选点中距离所述预测节点最近的多个所述邻居候选点为所述邻居预测节点。
6.根据权利要求1所述的方法,其特征在于,所述基于各个所述预测节点的邻居候选点,分别确定各个所述预测节点的邻居预测节点,包括:
若所述预测节点为所述变换预测结构的当前层的最后一个节点、所述当前层的节点数量小于预设节点阈值且所述当前层的节点数量为奇数时,确定所述预测节点前序的多个节点为所述预测节点的邻居预测节点,或者确定所述当前层中距离所述预测节点最近的多个节点为所述预测节点的邻居预测节点。
7.根据权利要求1所述的方法,其特征在于,所述基于各个所述预测节点的邻居预测节点的属性重建值分别确定各个所述预测节点的属性预测值,包括:
在所述预测节点的邻居预测节点的数量为0时,确定所述预测节点的属性预测值为预设属性预测值;
在所述预测节点的邻居预测节点的数量为1时,确定所述预测节点的邻居预测节点的属性重建值为所述预测节点的属性预测值;
在所述预测节点的邻居预测节点的数量大于1时,基于所述预测节点对应的各个邻居预测节点的属性重建值,确定所述预测节点的属性预测值。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于解码点云码流得到变换系数,所述变换系数包括第一变换系数、第二变换系数和第三变换系数,所述第一变换系数、第二变换系数和第三变换系数基于编解码端默认的排列方式排列;或者,
基于在点云码流的解码指示信息中包括的属性变换标志位的取值,确定所述第一变换系数、第二变换系数和第三变换系数的排列方式。
9.根据权利要求8所述的方法,其特征在于,所述第一变换系数、第二变换系数和第三变换系数的排列方式包括以下至少一种:
各个所述第一变换系数、各个所述第三变换系数和各个所述第二变换系数依次排列以形成变换系数集合;
各个所述第一变换系数和各个所述第三变换系数依次排列形成一个变换系数集合,各个所述第二变换系数依次排列形成另一个变换系数集合;
基于所述变换预测结构的各个节点的解码顺序,各个节点的变换系数依次排列以形成变换系数集合;
所述变换预测结构的各个层的节点对应的所述变换系数依次排列以形成各个层分别对应的变换系数集合;
其中,各个层对应的变换系数集合中的变换系数按照第一排列顺序、第二排列顺序排列或各个节点的解码顺序,所述第一排列顺序为所述第一变换系数、所述第三变换系数和所述第二变换系数依次排列,所述第二排列顺序排列为所述第二变换系数、所述第一变换系数和所述第三变换系数依次排列。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于解码点云码流确定的各个点的几何重建信息,对所述各个点进行排序;
基于所述各个点的排序,确定所述各个点在所述变换预测结构的第M层的索引;
基于所述各个点在所述变换预测结构的第M层的索引,遍历所述各个点,以构建所述变换预测结构。
11.根据权利要求10所述的方法,其特征在于,所述基于所述各个点在所述变换预测结构的第M层的索引,遍历所述各个点,以构建所述变换预测结构,包括:
确定当前遍历的第K层的第i节点与第i+1节点是否满足预设合并条件,K小于或等于M,K的初始值为M;
若是,则合并所述第i节点和第i+1节点,以生成所述第i节点和第i+1节点在第K-1层的父节点;
若否,则将所述第i节点分配到所述变换预测结构的第K-1层;
在所述第K层的各个节点均遍历完成的情况下,将K减1,并再次进入所述确定当前遍历的所述第K层的第i节点与第i+1节点是否满足预设合并条件的步骤。
12.根据权利要求11所述的方法,其特征在于,所述预设合并条件包括以下至少一种:
所述第i节点与第i+1节点之间的距离小于预设阈值;及
所述第i节点为所述第i+1节点的邻居前序点,所述第i+1节点在第K+1层时的节点索引为j,所述第i节点为第K+1层中第j-1节点和第j-2节点的父节点时,确定所述第i节点为所述第i+1节点的邻居前序点。
13.根据权利要求11所述的方法,其特征在于,所述方法还包括:
基于编解码端默认的合并条件,确定所述预设合并条件;或者
基于在点云码流的解码指示信息中包括的属性变换标志位的取值,确定所述预设合并条件。
14.根据权利要求11所述的方法,其特征在于,在将所述第i节点分配到所述变换预测结构的第K-1层之前,所述方法还包括:
若所述第i节点的初始层数和所述第K层的层数差小于预设层数差阈值,则将所述第i节点被分配到所述第K-1层;
若所述第i节点的初始层数和所述第K层的层数差大于预设层数差阈值,则确定所述第i节点为所述预测节点。
15.根据权利要求11所述的方法,其特征在于,在将所述第i节点分配到所述变换预测结构的第K-1层之前,所述方法还包括:
若K大于预设层数阈值,则将所述第i节点被分配到所述第K-1层;
若K小于预设层数阈值,则确定所述第i节点为所述预测节点。
16.根据权利要求11所述的方法,其特征在于,在将所述第i节点分配到所述变换预测结构的第K-1层之前,所述方法还包括:
若所述第i节点存在子节点或K等于M,则将所述第i节点分配到所述变换预测结构的第K-1层;
若所述第i节点不存在子节点且K不等于M,则在所述第i-1节点为所述预测节点的情况下,确定所述第i节点为所述预测节点、及在所述第i-1节点不为所述预测节点的情况下,基于所述第i-1节点和第i节点是否满足预设合并条件,将所述第i节点分配到所述变换预测结构的第K-1层或合并所述第i-1节点和第i节点。
17.一种点云编码方法,其特征在于,包括:
在已构建的变换预测结构中,确定各个预测节点的邻居候选点,所述预测节点为基于预测模式计算属性预测值的节点;
基于各个所述预测节点的邻居候选点,分别确定各个所述预测节点的邻居预测节点;
基于各个所述预测节点的邻居预测节点的属性信息分别确定各个所述预测节点的属性预测值,并基于各个所述预测节点的属性信息和属性预测值分别确定各个所述预测节点的残差信息。
18.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-16中任一项所述的点云解码方法或权利要求17所述的点云编码方法。
19.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-16中任一项所述的点云解码方法或权利要求17所述的点云编码方法。
20.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时实现如权利要求1-16中任一项所述的点云解码方法或权利要求17所述的点云编码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410084329.4A CN117896536A (zh) | 2024-01-19 | 2024-01-19 | 点云解码、编码方法、介质、电子设备及产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410084329.4A CN117896536A (zh) | 2024-01-19 | 2024-01-19 | 点云解码、编码方法、介质、电子设备及产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117896536A true CN117896536A (zh) | 2024-04-16 |
Family
ID=90641074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410084329.4A Pending CN117896536A (zh) | 2024-01-19 | 2024-01-19 | 点云解码、编码方法、介质、电子设备及产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117896536A (zh) |
-
2024
- 2024-01-19 CN CN202410084329.4A patent/CN117896536A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100450823B1 (ko) | 깊이 이미지 기반 3차원 물체의 표현을 위한 노드 구조 | |
WO2022121648A1 (zh) | 点云数据编码方法、解码方法、设备、介质及程序产品 | |
US11910017B2 (en) | Method for predicting point cloud attribute, encoder, decoder, and storage medium | |
CN115336243A (zh) | 基于哈尔的点云编码方法和装置 | |
Xu et al. | Introduction to point cloud compression | |
US20230134675A1 (en) | An apparatus, a method and a computer program for volumetric video | |
CN116016951A (zh) | 点云处理方法、装置、设备及存储介质 | |
CN115100302A (zh) | 点云处理方法、装置、设备以及介质 | |
CN117896536A (zh) | 点云解码、编码方法、介质、电子设备及产品 | |
US20230082456A1 (en) | Point cloud attribute prediction method and apparatus, and related device | |
WO2023024840A1 (zh) | 点云编解码方法、编码器、解码器及存储介质 | |
WO2022257143A1 (zh) | 帧内预测、编解码方法及装置、编解码器、设备、介质 | |
WO2023024842A1 (zh) | 点云编解码方法、装置、设备及存储介质 | |
WO2022257150A1 (zh) | 点云编解码方法、装置、点云编解码器及存储介质 | |
WO2023123284A1 (zh) | 一种解码方法、编码方法、解码器、编码器及存储介质 | |
WO2023023914A1 (zh) | 帧内预测、编解码方法及装置、编解码器、设备、介质 | |
WO2024065269A1 (zh) | 点云编解码方法、装置、设备及存储介质 | |
US20230412837A1 (en) | Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device | |
WO2023173237A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
WO2022257145A1 (zh) | 点云属性的预测方法、装置及编解码器 | |
US20240087174A1 (en) | Coding and decoding point cloud attribute information | |
WO2023173238A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
EP4358519A1 (en) | Point cloud data transmission device and method, and point cloud data reception device and method | |
CN115720273A (zh) | 点云编解码中的属性预测方法、装置、设备及存储介质 | |
CN117061770A (zh) | 一种点云处理方法、装置、设备、存储介质及产品 |
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 |