CN116233467A - 点云属性的编解码方法、装置、设备及存储介质 - Google Patents
点云属性的编解码方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116233467A CN116233467A CN202111478233.9A CN202111478233A CN116233467A CN 116233467 A CN116233467 A CN 116233467A CN 202111478233 A CN202111478233 A CN 202111478233A CN 116233467 A CN116233467 A CN 116233467A
- Authority
- CN
- China
- Prior art keywords
- attribute information
- point
- current point
- value
- decoding
- 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 121
- 230000009466 transformation Effects 0.000 claims description 33
- 238000004590 computer program Methods 0.000 claims description 30
- 230000003044 adaptive effect Effects 0.000 claims description 13
- 108091026890 Coding region Proteins 0.000 claims description 9
- 230000001131 transforming effect Effects 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 23
- 238000013139 quantization Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 15
- 230000006835 compression Effects 0.000 description 11
- 238000007906 compression Methods 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 10
- 238000002310 reflectometry Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000002595 magnetic resonance imaging Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000002591 computed tomography Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000007654 immersion Methods 0.000 description 2
- 239000000463 material Substances 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
- 230000008447 perception Effects 0.000 description 2
- 238000011002 quantification Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 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
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009365 direct transmission Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000011423 initialization method Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000011159 matrix material Substances 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
- 238000005192 partition Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000007670 refining 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
- 238000012546 transfer Methods 0.000 description 1
- 238000011426 transformation method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请提供了一种点云属性的编解码方法、装置、设备及存储介质,该方法包括:获取点云,点云中的每一个点包括N个属性信息;在检测到当前点的前一个点的N个属性信息编码结束后,确定当前点的N个属性信息分别对应的待编码值;对当前点的N个属性信息分别对应的待编码值进行编码,得到点云的码流。即本申请在编码时对点云中点的属性信息进行逐点编码,在解码时,可以对点云中的任意一个点或几个点的属性信息进行解码,进而提高了点云属性信息的编解码的灵活性。
Description
技术领域
本申请实施例涉及视频编解码技术领域,尤其涉及一种点云属性的编解码方法、装置、设备及存储介质。
背景技术
通过采集设备对物体表面进行采集,形成点云数据,点云数据包括几十万甚至更多的点。在视频制作过程中,将点云数据以点云媒体文件的形式在视频制作设备和点云编码设备之间传输。但是,如此庞大的点给传输带来了挑战,因此,视频制作设备需要对点云数据进行压缩后传输。
点云数据的压缩主要包括位置信息的压缩和属性信息的压缩,在属性信息压缩时,对点云的多类属性信息逐一进行压缩,例如先对点云的颜色属性进行编码,再对点云的反射率属性进行编码。
但是,对点云的各属性信息逐一进行压缩时,无法实现对点云中部分点云的编码或解码,使得点云的属性信息的编解码灵活性差。
发明内容
本申请提供一种点云属性的编解码方法、装置、设备及存储介质,提高点云属性的编解码灵活性。
第一方面,本申请提供一种点云属性的编码方法,包括:
获取点云,所述点云中的每一个点包括N个属性信息,所述N为大于1正整数;
在检测到当前点的前一个点的N个属性信息编码结束后,确定所述当前点的N个属性信息分别对应的待编码值;
对所述当前点的N个属性信息分别对应的待编码值进行编码,得到所述点云的码流。
第二方面,本申请提供一种点云属性的编码方法,包括:
获取点云的码流,所述点云中的每一个点包括N个属性信息,所述N为大于1正整数;
在检测到当前点的前一个点的N个属性信息解码结束后,对所述码流进行解码,得到所述当前点的N个属性信息分别对应的待解码值;
根据所述当前点的N个属性信息分别对应的待解码值,得到所述当前点的N个属性信息分别对应的重建值。
第三方面,提供了一种点云属性的编码装置,用于执行上述第一方面或其各实现方式中的方法。具体地,所述点云编码装置包括用于执行上述第一方面或其各实现方式中的方法的功能模块。
第四方面,提供了一种点云属性的解码装置,用于执行上述第二方面或其各实现方式中的方法。具体地,所述点云解码装置包括用于执行上述第二方面或其各实现方式中的方法的功能模块。
第五方面,提供了一种编码设备,包括处理器和存储器。所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行上述第一方面或其各实现方式中的方法。
第六方面,提供了一种解码设备,包括处理器和存储器。所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行上述第二方面或其各实现方式中的方法。
第七方面,提供了一种编解码***,包括第五方面中的编码设备,以及第六方面中的解码设备。
第八方面,提供了一种芯片,用于实现上述第一方面至第二方面中任一方面或其各实现方式中的方法。具体地,所述芯片包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行如上述第一方面至第二方面中任一方面或其各实现方式中的方法。
第九方面,提供了一种计算机可读存储介质,用于存储计算机程序,所述计算机程序使得计算机执行上述第一方面至第二方面中任一方面或其各实现方式中的方法。
第十方面,提供了一种计算机程序产品,包括计算机程序指令,所述计算机程序指令使得计算机执行上述第一方面至第二方面中任一方面或其各实现方式中的方法。
第十一方面,提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面至第二方面中任一方面或其各实现方式中的方法。
第十二方面,提供了一种电设备,包括处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行第一方面和/或第二方面任一项所述的方法。
综上,本申请通过获取点云,点云中的每一个点包括N个属性信息;在检测到当前点的前一个点的N个属性信息编码结束后,确定当前点的N个属性信息分别对应的待编码值;对当前点的N个属性信息分别对应的待编码值进行编码,得到点云的码流。即本申请在编码时对点云中点的属性信息进行逐点编码,例如先编码点云中前一个点的所有属性信息,再编码点云中下一个点的所有属性信息。这样在解码时,可以对点云中的任意一个点或几个点的属性信息进行解码,进而提高了点云属性信息的编解码的灵活性。另外,本申请对各点属性信息的编码或解码可以并行进行,保证了点云编码的随机接入需求,极大地降低了多属性点云的编解码计算复杂度,提高了点云的编解码效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例涉及的一种点云编解码***的示意性框图;
图2是本申请实施例提供的编码框架的示意性框图;
图3是本申请实施例提供的解码框架的示意性框图;
图4为本申请一实施例提供的点云属性的编码方法的流程图;
图5A为本申请实施例涉及的一种点云排序方式示意图;
图5B为本申请实施例涉及的另一种点云排序方式示意图;
图5C为本申请涉及的一种参考点搜索过程示意图;
图6为本申请一实施例提供的点云属性的解码方法的流程图;
图7为本申请一实施例提供的点云属性的解码方法的另一流程图;
图8是本申请一实施例的点云属性的编码装置的示意性框图;
图9是本申请一实施例的点云属性的解码装置的示意性框图;
图10是本申请实施例提供的电子设备的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应理解,在本发明实施例中,“与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)属性预测(Predict)及属性变换(Transform):
(a)预测:根据距离或空间关系等信息,在已编码点中确定待编码点的邻居点作为预测点,根据设定的准则计算该点的预测值。计算当前点属性值与预测值之间的差值作为残差,对残差信息进行量化、变换(可选)及熵编码。
(b)变换:利用离散余弦变换(Discrete Cosine Transform,简称DCT)、哈尔变换(简称Haar)等变换方法,对属性信息进行分组、变换,对变换系数做量化;通过逆量化,逆变换后得到属性重建值;计算原始属性和属性重建值的差得到属性残差并对其量化;将量化后的变换系数和属性残差编码。
(3)属性信息量化(Attribute quantization):量化的精细程度通常由量化参数(Quantization Parameter,简称QP)来决定。在预测编码中,是对残差值进行量化后进行熵编码;在变换编码中,是对变换系数进行量化后进行熵编码。
(4)属性熵编码(Attribute entropy coding):量化后的属性残差信号或变换系数一般使用行程编码(run length coding)及算数编码(arithmetic coding)实现最终的压缩。相应的编码模式,量化参数等信息也同样采用熵编码器进行编码。
由上述图2可知,点云编码器200从功能上主要包括了两部分:位置编码模块和属性编码模块,其中位置编码模块用于实现点云的位置信息的编码,形成几何码流,属性编码模块用于实现点云的属性信息的编码,形成属性码流,本申请主要涉及属性信息的编码。
图3是本申请实施例提供的解码框架的示意性框图。
如图3所示,解码框架300可以从编码设备获取点云的码流,通过解析码得到点云中的点的位置信息和属性信息。点云的解码包括位置解码和属性解码。
位置解码的过程包括:对几何码流进行算术解码;构建八叉树后进行合并,对点的位置信息进行重建,以得到点的位置信息的重建信息;对点的位置信息的重建信息进行坐标变换,得到点的位置信息。点的位置信息也可称为点的几何信息。
属性解码过程包括:通过解析属性码流,获取点云中点的属性信息的残差值;通过对点的属性信息的残差值进行反量化,得到反量化后的点的属性信息的残差值;基于位置解码过程中获取的点的位置信息的重建信息,选择三种预测模式的一种进行点云预测,得到点的属性信息的重建值;对点的属性信息的重建值进行颜色空间反转化,以得到解码点云。
如图3所示,位置解码可通过以下单元实现:
熵解码单元301、八叉树重建单元302、逆坐标量化单元303以及逆坐标平移单元304。
属性编码可通过以下单元实现:
熵解码单元310、逆量化单元311、属性重建单元312以及逆空间变换单元313。
解压缩是压缩的逆过程,类似的,解码框架300中的各个单元的功能可参见编码框架200中相应的单元的功能。
在解码端,解码器获得压缩码流后,首先进行熵解码,获得各种模式信息及量化后的几何信息以及属性信息。首先,几何信息经过逆量化,得到重建的3D点位置信息。另一方面,属性信息经过逆量化得到残差信息,并根据采用的变换模式确认参考信号,得到重建的属性信息,按顺序与几何信息一一对应,产生输出的重建点云数据。
需要说明的是,编码端属性信息编码时确定的预测、量化、编码、滤波等模式信息或者参数信息等在必要时携带在属性码流中。解码端通过解析属性码流及根据已有信息进行分析确定与编码端相同的预测、量化、编码、滤波等模式信息或者参数信息,从而保证编码端获得的属性信息的重建值和解码端获得的属性信息的重建值相同。
上述是基于G-PCC编解码框架下的点云编解码器的基本流程,随着技术的发展,该框架或流程的一些模块或步骤可能会被优化,本申请适用于该基于G-PCC编解码框架下的点云编解码器的基本流程,但不限于该框架及流程。
行程编码(run-length coding)
(1)对转换后的有符号属性预测残差进行二值化以及熵编码。具体方法如下:
遍历每点的属性预测残差Res,统计连续属性预测残差值为0的点数run_length。如果属性预测残差Res非零,则首先对run_length值进行编码,然后对该非零属性预测残差进行编码,最后将run_length值置为0重新开始计数;
(2)对非零属性预测残差Res的各个分量Resi(i=0,1,2)依次进行编码,编码方式为:
步骤1,当待编码属性信息为颜色时,首先利用上下文对属性残差分量Resi是否为0进行算术编码。当待编码属性信息为反射率时,非零属性预测残差无需进行此步判断。
步骤2,在Resi不为0的情况下,对其符号使用bypass coding。
步骤3,利用上下文对属性残差分量Resi绝对值是否等于1进行算术编码。
步骤4,在属性残差分量Resi绝对值大于1的情况下,利用上下文对属性残差分量Resi绝对值是否等于2进行算术编码。
步骤5,在属性残差分量Resi绝对值大于2的情况下,利用上下文对(Resi绝对值-3)进行指数哥伦布编码。当属性信息为反射率时,采用3阶指数哥伦布码,当属性信息为颜色时,采用1阶指数哥伦布码。
目前在点云属性编码过程中,对点云的多个属性信息进行逐一编码,例如先对点云的颜色属性进行编码,再对点云的反射率属性进行编码。但是,对点云的各属性信息逐一进行压缩时,无法实现对点云中部分点云的编码或解码,例如,解码时必须对点云中所有点的颜色属性解码后,对点云中所有点的反射率属性再解码,无法实现对点云中部分点的属性信息进行解码,使得点云的属性信息的编解码灵活性差。
为了解决上述技术问题,本申请在编码时对点云中点的属性信息进行逐点编码,例如先编码点云中前一个点的所有属性信息,再编码点云中下一个点的所有属性信息。这样在解码时,可以对点云中的任意一个点或几个点的属性信息进行解码,进而提高了点云属性信息的编解码的灵活性。另外,本申请对各点属性信息的编码或解码可以并行进行,降低了编解码复杂度,提高了点云的编解码效率。
下面通过一些实施例对本申请实施例的技术方案进行详细说明。下面这几个实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
首先以编码端为例,对本申请实施例提供的点云属性的编码方法进行描述。
图4为本申请一实施例提供的点云属性的编码方法的流程图。该方法的执行主体是具有编码点云属性信息功能的装置,例如点云编码装置,该点云编码装置可以为上述所述的点云编码设备或者为点云编码设备中的一部分。为了便于描述,下面实施例以执行主体为点云编码设备为例进行介绍。如图4所示,本实施例的方法包括:
S401、获取点云,该点云中的每个点包括N个属性信息。
其中,N为大于1的正整数。
本申请实施例的点云可以是指整体点云,也可以是部分点云,例如通过八叉树或者其他方式获得的部分点云,比如整体点云的一个子集。
点云编码设备可以通过如下方式获取点云:
方式一,若点云编码设备具有点云采集功能,则该点云可以为点云编码设备采集得到的。
方式二,上述点云为点云编码设备从其他存储设备处获取的,例如点云采集设备将采集的点云存储在存储设备中,点云编码设备从该存储设备中读取上述点云。
方式三,上述点云为点云编码设备从点云采集设备处获取的,例如点云采集设备将采集的点云发送给点云编码设备。
若上述点云为整体点云,则点云编码设备将通过上述方式获得整体点云作为本申请的研究对象进行后续的编码步骤。
若上述点云为部分点云,则上述点云编码设备将获得的整体点云进行划分,获得部分点云。例如点云编码设备采用八叉树或四叉树等方法对整体点云进行划分,将一个节点对应的部分点云作为本申请的研究对象,进行后续的编码步骤。
根据上述方法获得点云后,对点云中的点进行几何编码和属性编码,例如先进行几何编码,在几何编码结束后再进行属性编码。本申请主要涉及点云的属性编码。
上述N类属性信息包括颜色属性、反射率属性、法向量属性、材质属性等。本申请对此不做限制。
S402、在检测到当前点的前一个点的N个属性信息编码结束后,确定当前点的N个属性信息分别对应的待编码值。
本申请中点云属性编码是逐点进行编码,例如,对点云中的前一个点的N个属性信息进行编码,接着对点云中的下一个点的N个属性信息进行编码,这样点云中每个点的N个属性信息相互独立,互不干涉,便于解码端对点云中的一个或几个点的属性信息进行解码,进而提高点云的编解码灵活性。
当前点可以理解为点云中正在编码的点,在对当前点进行编码时,首先需要判断当前点的前一个点的N个属性信息是否编码结束,在当前点的前一个点的N个属性信息编码结束后,对当前点的N个属性信息进行编码。
点云中所有点的属性信息编码过程与当前点的属性信息的编码过程一致,本申请实施例以当前点为例进行介绍。
在对当前点进行编码时,确定当前点的N个属性信息分别对应的待编码值。N个属性信息采用的编码方式可以相同,也可以不同,本申请对此不做限制。其中待编码值可以理解为进行熵编码的数据。
在一些实施例中,当前点的N个属性信息中每个属性信息采用的编码方式相同,对应的,N个属性信息中每个属性信息分别对应的待编码值的类型也相同。
在一些实施例中,当前点的N个属性信息中每个属性信息采用的编码方式不同,对应的,N个属性信息中每个属性信息分别对应的待编码值的类型也不同。
在一些实施例中,当前点的N个属性信息中部分属性信息采用的编码方式相同,部分属性信息采用的编码方式不同,对应的,N个属性信息中部分属性信息分别对应的待编码值的类型相同,部分属性信息分别对应的待编码值的类型不同。
在一些实施例中,N个属性信息中的每个属性信息对应的待编码值包括:属性信息的残差值、属性信息的变换系数、属性残差的变换系数中的任意一个。
在一些实施例中,对当前点的N个属性信息进行编码时,可以根据预设的编码顺序对上述N个属性信息依次进行编码,例如先编码当前点的颜色属性,再编码当前点的反射率属性。或者,先编码当前点的反射率属性,再编码当前点的颜色属性。本申请对当前点的N个属性信息的编码顺序不做限制,具体根据实际需要确定。在一些实施例中,还可以对当前点的N个属性信息进行并行编码,以提高编码效率。
需要说明的是,若编码端采用预设的编码顺序对当前点的N个属性信息进行编码时,解码端也根据该编码顺序,对当前点的N个属性信息进行依次解码。可选的,上述N个属性信息的编码顺序为默认的,这样则解码端根据该默认的编码顺序对当前点的N个属性信息进行依次解码。可选的,若编码端采用的N个属性信息的编码顺序不是默认的时,则编码端将该编码顺序指示给解码端,使得解码端根据该编码顺序对当前点的N个属性信息进行依次解码,保证了编解码的一致性。
本申请对上述S402中确定当前点的N个属性信息分别对应的待编码值的方式包括但不限于如下几种:
方式一,若待编码值包括当前点的第j个属性信息的残差值或属性残差的变换系数时,则上述S402包括如下S402-A1至S402-A4的步骤:
S402-A1、针对N个属性信息中的第j个属性信息,从点云的已编码点中的确定当前点的K个参考点。
其中,K为正整数,j为N中的任一值。
该方式一中,以当前点的N个属性信息中的第j个属性信息为例进行说明。需要说明的是,当前点的N个属性信息中的每一个属性信息均可以采用该方式一的方式确定待编码值。也可以是当前点的N个属性信息中一个或多个属性信息采用该方式一的方式确定待编码值,本申请对此不做限制。
若当前点的第j个属性信息采用该方式一的方式确定待编码值时,首先执行上述S402-A1,确定当前点的K个参考点。
在一些实施例中,当前点的K个参考点也称为当前点的K个预测点,或者当前点的K个邻居点。
本步骤中,确定当前点的K个参考点的方式包括但不限于如下几种示例:
示例1,对点云中的点进行重排序,获得点云的莫顿序或希尔伯特序,在莫顿序或希尔伯特序的前maxNumOfNeighbours(邻居点的最大数量)个点中,查找距离当前点最近的K个点。
可选的,maxNumOfNeighbours默认取128,k默认取3,距离计算方法为曼哈顿距离,即d=|x1-x2|+|y1-y2|+|z1-z2|,可选的,距离计算方法还可以是其他的距离计算方法。
在一种可能的实现方式中,确定点云的莫顿序的方式可以是:获取所有点云的坐标,并按照莫顿排序得到莫顿顺序1,如图5A所示。
在一些实施例中,将所有点云的坐标(x,y,z)加上一个固定值(j1,j2,j3),用新的坐标(x+j1,y+j2,z+j3)生成点云对应的莫顿码,按照莫顿排序得到莫顿顺序2,如图5B所示。注意在图5A中的A,B,C,D移到图5B中的不同位置,对应的莫顿码也发生了变化,但它们的相对位置保持不变。另外,在图5B中,点D的莫顿码是23,它的邻居点B的莫顿码是21,所以从点D向前最多搜索两个点就可以找到点B。但在图5A中,从点D(莫顿码16)最多需要向前搜索14个点才能找到点B(莫顿码2)。
根据莫顿顺序,查找当前点的最近预测点,例如,在莫顿顺序1中选取所述当前点的前N1个点作为备选,N1取值范围是大于等于1,在莫顿顺序2中选取所述当前点的前N2个点作为备选,N2的取值范围是大于等于1。
上述N1个点和N2个点构成maxNumOfNeighbours,在maxNumOfNeighbours中计算每个点到当前点的距离d,当前点的坐标为(x,y,x),候选点的坐标为(x1,y1,z1),可选的,距离d计算方法为d=|x-x1|+|y-y1|+|z-z1|,从这N1+N2个点中选取距离最小的K个已解码点作为当前点的参考点。
示例2,对点云中的点进行重排序,获得点云的莫顿序或希尔伯特序,基于莫顿序或希尔伯特序中点云的空间关系和距离,确定当前点的K个参考点。具体包括如下步骤:
步骤11,对点云采样计算初始右移:确定用于LOD划分搜索的初始邻居范围大小,即确定初始右移位数(初始邻居范围的大小为2N0)。其中,N0确定为点云中的点在其邻居范围内进行邻居的查找,满足点的平均邻居数大于等于1的条件的最小值。若在该条件下,采样点存在邻居的比例小于0.6,则表示的邻居范围扩大一次,即N0值加3。获取此N0之后,N0+6为当前块对应的右移位数,N0+9为父块对应的初始右移位数。
步骤12,点云按照一定顺序遍历,如图5C所示,当前待解码点点P在其所在B块的父块及与其共面、共线以及共点的邻居块的范围内的已解码点(限制在前maxNumOfNeighbours个点的范围内)中进行最近邻的搜索。若未找够邻居,则在层内向前搜索maxNumOfNeighbours个点,搜索当前点的最近邻。
步骤13,在所有邻居候选点中,计算每个点(x1,y1,z1)到当前待解码点(x,y,z)的曼哈顿距离d=|x-x1|+|y-y1|+|z-z1|,确定p个距离最小的点中的最大距离值,将所有距离小于等于最大距离值的邻居候选点作为当前点的邻居,即确定距离最近的K个点作为当前点的参考点。
示例3,对点云中的点进行重排序,获得点云的希尔伯特序,根据点云的希尔伯特序对点云进行分组,在当前点所在的分组中查找当前点的K个参考点。具体包括如下步骤:
步骤21,基于希尔伯特码分组。
对重排序之后的点云几何点依次分组,将希尔伯特码后L位相同的点归为一组。若一组点的几何点总数大于等于8,则进行组内的细划分。细化分时,依次将每四个点划分为一组,如果最后一组总点数小于四,则与倒数第二组合并。细划分可以确保K_i≤8。如果一组点的几何点总数小于等于8,不进行细划分。
步骤22,同组加权属性预测。
在希尔伯特序下,在当前点所在组中第一个点的前序maxNumOfNeighbours个点中,查找距离当前点最近的K个点。
可选的其中maxNumOfNeighbours默认取128,k默认取3。
可选的,距离计算方法为曼哈顿距离,即d=|x1-x2|+|y1-y2|+|z1-z2|。
需要说明的是,本申请实施例中确定当前点的K个参考点的方式包括但不限于如上3个示例。
根据上述各示例的方式,确定出当前点的K个参考点后,执行如下步骤S402-A2。
S402-A2、根据K个参考点对应的第j个属性信息,确定当前点的第j个属性信息的预测值。
例如,将K个参考点分别对应的第j个属性信息的平均值,确定为当前点的第j个属性信息的预测值。
再例如,将K个参考点分别对应的第j个属性信息的加权平均值,确定为当前点的第j个属性信息的预测值。
在一种示例中,根据如下公式(1),确定参考点的属性权重:
其中,wij为当前点i的第j个邻居点的属性权重,(xi,yi,zi)为当前点的几何信息,(xij,yij,zij)为第j个邻居点的几何信息。
可选的,公式(1)中的权重计算在x、y、z方向的分量采用不同权重,则每个邻居的权重计算变为如下公式(2)所示:
其中,a为当前点的第一分量的权重系数,b为当前点的第二分量的权重系数,c为当前点的第三分量的权重系数。可选的,该a、b、c可以查表获得,或者为预设的固定值。
根据上述公式确定出邻居点的属性权重后,根据如下公式(3),计算出当前点的属性预测值:
在另一种示例中,基于距离和其他参数的K个点中每个点对应的权重。具体是,每个参考点的权重为w=1/d,距离等于最大距离值的邻居候选点的优化权重为wk=(1/d)*dwk,其中dwk的大小为Qstep(属性量化步长)和距离等于最大距离值的邻居候选点的个数两者之间的最小值。计算K个参考点的属性信息的加权平均值,得到当前点的属性信息的预测值。
可选的,K小于或等于16。
在一些实施例中,若点云中存在重复点,即将点云中几何信息相同的点称为重复点,且当前点为重复点中的一个点时,则可以将当前点的前一个重复点确定为当前点的参考点,即K=1,进而根据该重复点的第j个属性信息的重建值,确定为当前点的第j个属性信息的预测值。
在执行上述步骤之前,首先需要对点云的重复点进行排序,其中,对重复点进行排序的方式包括但不限于如下几种方式:
方式1,根据预设的编码顺序,对重复点的N个属性信息进行分别排序。
例如,点云包括10个重复点,N个属性信息包括属性A和属性B,编码顺序是先编码属性A,再编码属性B。这样,针对属性A的大小,按照从小到大的顺序对这10个重复点进行排序,得到这10个重复点在属性A下的排序。在预测当前点的属性A时,在属性A下的排序中,查找当前点的前一个重复点1,将该重复点1的属性A重建值,确定为当前点的属性A的预测值。同理,针对属性B的大小,按照从小到大的顺序对这10个重复点进行排序,得到这10个重复点在属性B下的排序。在预测当前点的属性B时,在属性B下的排序中,查找当前点的前一个重复点2,将该重复点2的属性B重建值,确定为当前点的属性B的预测值。
在一种示例中,还可以先根据属性A的大小对10个重复点进行排序,对这10个重复点中属性A相同的点,再根据属性B的大小对剩余点进行排序,得到10个重复点的一个排序,在该排序中查找当前点的前一个重复点,将该前一个重复点确定为当前点的参考点,进而根据该参考点的N个属性信息,确定当前点的N个属性信息的预测值。
方式2,根据N个属性信息中的某一属性信息的大小,对上述重复点进行排序。
例如,根据颜色属性的大小,按照从小到大的顺序对上述重复点进行排序,并在该排序中,将当前点的前一个重复点,确定为当前点的参考点。
根据上述方式,确定出当前点的第j个属性信息的预测值后,执行如下S402-A3的步骤。
S402-A3、根据当前点的第j个属性信息的原始值和预测值,确定第j个属性信息的残差值。
例如,将当前点的第j个属性信息的原始值和预测值的差值,确定为当前点的第j个属性信息的残差值。
S402-A4、根据第j个属性信息的残差值,确定当前点的第j个属性信息对应的待编码值。
在一种示例中,将第j个属性信息的残差值,确定为当前点的第j个属性信息对应的待编码值。
在另一种示例中,对第j个属性信息的残差值进行变换,得到当前点的第j个属性信息的属性残差的变换系数,将第j个属性信息的属性残差的变换系数,确定为当前点的第j个属性信息对应的待编码值。
例如,采用上述示例2的方式确定出当前点的K个参考点时,则对当前点所在的分组中每个点的第j个属性信息的残差值进行K_i元DCT变换(K_i=2…8),得到当前点的第j个属性信息对应的待编码值。
K_i=1时,不进行任何变换计算,直接将属性残差值进行熵编码或者将属性残差值进行量化后熵编码。
可选的,对DCT变换矩阵放大512倍,实现定点化估计。
根据上述方式一可以确定出当前点的第j个属性信息的属性残差值或属性残差的变换系数。
方式二,若待编码值包括当前点的第j个属性信息的变换系数时,则上述S402包括如下S402-B1至S402-B2的步骤:
S402-B1、对当前点第j个属性信息进行变换,得到第j个属性信息的变换系数,j为N中的任一值。
例如,对点云进行分组,得到当前点所在的小组,对当前点所在的小组内的点的第j个属性信息进行变换,得到当前点的第j个属性信息的变换系数。
本步骤对点云进行分组的方式不做限制,可以采用已有的任意分组方式实现。
S402-B2、将第j个属性信息的变换系数,确定为当前点的第j个属性信息对应的待编码值。
该方式二,通过确定当前点的第j个属性信息的变换系数,将该变换系数确定为当前点的第j个属性信息对应的待编码值。
在一些实施例中,当前点的N个属性信息中,所有属性信息均采用上述方式一或方式二,确定待编码值。
在一些实施例中,当前点的N个属性信息中,部分属性信息采用上述方式一确定待编码值,部分属性信息采用上述方式二确定待编码值。
需要说明的是,本申请实施例中确定当前点的N个属性信息分别对应的待编码值的方式包括但不限于上述方式一和方式二。
根据上述方式,确定当前点的N个属性信息分别对应的待编码值后,执行如下S403的步骤。
S403、对当前点的N个属性信息分别对应的待编码值进行编码,得到点云的码流。
上述S403的实现方式包括但不限于如下方式:
方式一,按照预设的编码顺序,将当前点的N个属性信息分别对应的待编码值写入码流。
该方式一中,直接将当前点的N个属性信息分别对应的待编码值编入码流中。
可选的,在将当前点的N个属性信息分别对应的待编码值编入码流中之前,对当前点的N个属性信息分别对应的待编码值进行量化,将当前点的N个属性信息分别对应的量化后待编码值编入码流。
在方式一中,解码端解码码流,可以直接得到当前点的N个属性信息分别对应的待编码值,进而根据当前点的N个属性信息分别对应的待编码值,得到当前点的N个属性信息分别对应的重建值,整个过程简单,降低了编解码的复杂度,提高编解码效率。
方式二,采用行程编码方式对当前点的N个属性信息分别对应的待编码值进行编码。
具体是,针对当前点的N个属性信息中的第i个属性信息,若第i个属性信息对应的待编码值不为0时,则确定第i个属性信息对应的长度标记的取值为第一数值,并采用行程编码方式,将第i个属性信息对应的长度标记和待编码值分别写入码流。
上述长度标记用于指示第i个属性信息对应的待编码值是否为0。
码流中写入的长度标记的取值为第一数值,第一数值用于指示当前点的第i个属性信息对应的待编码值不为0。
可选的,上述第一数值为0。
其中,i为从1到N的正整数。
示例性的,用字符len(i)表示上述长度标记。
例如,第i个属性信息为A,若该A对应的待编码值不等于0时,则将len(A)=0和当前点的属性信息A对应的待编码值编入码流。例如,当前点的属性信息A对应的待编码值为残差值res(A),则将len(A)=0和res(A)编入码流中。
根据上述方式,可以对当前点的N个属性信息中每一个属性信息对应的待编码值进行行程编码,得到码流。
在一些实施例中,在行程编码时,可以将点云中每个点的同一个属性信息作为一个整体,进行行程编码。例如,根据上述方法,逐点确定出点云中每个点的N个属性信息分别对应的待编码值,针对N个属性信息中的每一个属性信息,将该属性信息下点云中所有点对应的待编码值进行行程编码,得到点云在该属性信息下的码流。以颜色属性为例,对点云中每个点的颜色属性的待编码值作为一个整体,进行行程编码,得到点云在颜色属性下的码流。在行程编码时,统计点云的颜色属性残差为零的长度记为len(A),当残差不为零时,编码len(A)=0和当前点对应的颜色属性残差。
在一些实施例中,上述S403包括:
S403-A、采用同一个熵编码器或不同熵编码器,对当前点的N个属性信息分别对应的待编码值进行编码。
也就是说,上述点云的N个属性信息在编码时,可以采用相同的熵编码器,也可以采用不同的熵编码器。
在一些实施例中,熵编码器采用的编码方式包括:指数哥伦布编码、算数编码和自适应上下文算数编码中的至少一个。
在一些实施例中,若熵编码器采用自适应上下文算数编码方式,则上述S403-A1中采用同一个熵编码器或不同熵编码器,对当前点的N个属性信息分别对应的待编码值进行编码至少包括如下几种实现示例:
示例1,采用同一个熵编码器和同一个上下文模型,对当前点的N个属性信息分别对应的待编码值进行编码。
示例1,采用同一个熵编码器和不同上下文模型,对当前点的N个属性信息分别对应的待编码值进行编码。
示例3,采用不同熵编码器和不同上下文模型,对当前点的N个属性信息分别对应的待编码值进行编码。
示例4,采用不同熵编码器和同一个上下文模型,对当前点的N个属性信息分别对应的待编码值进行编码。
在一些实施例中,使用上述上下文模型进行属性信息编码时,需要对上下文模型进行初始化,具体包括如下几种示例:
示例1,若采用同一个熵编码器和同一个上下文模型,对当前点的N个属性信息分别对应的待编码值进行编码时,在编码N个属性信息之前对上下文模型进行初始化,或在编码N个属性信息中的第一个属性信息时对上下文模型进行初始化。
示例2,若采用同一个熵编码器和不同上下文模型,对当前点的N个属性信息分别对应的待编码值进行编码时,在编码N个属性信息之前,分别对不同的上下文模型进行初始化。
示例3,若采用不同熵编码器和不同上下文模型,对当前点的N个属性信息分别对应的待编码值进行编码时,在编码N个属性信息之前,分别对不同的上下文模型进行初始化。
示例4,若采用不同熵编码器和同一个上下文模型,对当前点的N个属性信息分别对应的待编码值进行编码时,在编码N个属性信息之前,对上下文模型进行初始化。
本申请实施例提供的点云属性的编码方法,通过获取点云,点云中的每一个点包括N个属性信息,N为大于1正整数;在检测到当前点的前一个点的N个属性信息编码结束后,确定当前点的N个属性信息分别对应的待编码值;对当前点的N个属性信息分别对应的待编码值进行编码,得到点云的码流。即本申请在编码时对点云中点的属性信息进行逐点编码,例如先编码点云中前一个点的所有属性信息,再编码点云中下一个点的所有属性信息。这样在解码时,可以对点云中的任意一个点或几个点的属性信息进行解码,进而提高了点云属性信息的编解码的灵活性。另外,本申请对各点属性信息的编码或解码可以并行进行,保证了点云编码的随机接入需求,极大地降低了多属性点云的编解码计算复杂度,提高了点云的编解码效率。
上文以编码端为例对本申请实施例提供的点云编码方法进行描述,下面结合图6,以解码端为例,对本申请的技术方案进行介绍。
图6为本申请一实施例提供的点云属性的解码方法的流程图。该方法的执行主体是具有解码点云属性信息功能的装置,例如点云解码装置,该点云解码装置可以为上述所述的点云解码设备或者为点云解码设备中的一部分。为了便于描述,下面实施例以执行主体为点云解码设备为例进行介绍。如图6所示,包括:
S601、获取点云的码流,其中点云中的每一个点包括N个属性信息。
其中,N为大于1正整数。
S602、在检测到当前点的前一个点的N个属性信息解码结束后,对码流进行解码,得到当前点的N个属性信息分别对应的待解码值。
需要说明的是,本实施例涉及点云的属性信息的解码过程,点云的属性信息解码是在点云的位置信息解码后执行的。其中点云的位置信息也称为点云的几何信息。
本申请实施例中,已解码的点可以理解为几何信息已解码的点和属性信息已解码的点。具体的,点云码流包括几何码流和属性码流,解码端首先对点云的几何码流进行解码,得到点云中点的几何信息的重建值。接收,对点云的属性码流进行解码,得到点云中点的属性信息的重建值,点云中点的几何信息和属性信息结合,得到解码后的点云。本申请实施例涉及到点云属性码流的解码过程。
在对点云的属性码流的解码过程中,对点云中每个点的解码过程相同,以点云中待解码的当前点为例。
本申请待解码的当前点包括N类属性信息,例如当前点包括颜色属性、反射率属性、法向量属性、材质属性等。
在一些实施例中,当前点包括N类属性信息可以理解为点云中所有的点均包括N类属性信息。点云中所有点的属性信息解码过程与当前点的属性信息的解码过程一致,本申请实施例以当前点为例进行介绍。
本申请在编码时是对点云中的点进行逐点编码,对应的解码时对点云中的点进行逐点解码。
具体的,在解码当前点时,首先判断当前点的前一个点的N个属性信息是否解码结束,在检测到当前点的前一个点的N个属性信息解码结束后,对码流进行解码,得到当前点的N个属性信息分别对应的待解码值。
在一些实施例中,N个属性信息中的每个属性信息对应的待解码值包括:属性信息的残差值、属性信息的变换系数、属性残差的变换系数中的任意一个。
上述S602中对码流进行解码,得到当前点的N个属性信息分别对应的待解码值的方式包括但不限于如下几种:
方式一,按照预设的解码顺序,对码流中当前点的N个属性信息分别对应的待解码值进行解码,得到当前点的N个属性信息分别对应的待解码值。
方式二,针对当前点的N个属性信息中的第i个属性信息,解码码流,得到第i个属性信息对应的长度标记,若长度标记的值为第一数值(例如0)时,则继续解码码流,得到第i个属性信息对应的待编码值.
其中,长度标记用于指示第i个属性信息对应的待编码值是否为0,第一数值用于指示当前点的第i个属性信息对应的待编码值不为0,i为从1到N的正整数。
示例性的,假设上述N个属性信息包括属性A,B,待解码值为res(Ai)和res(Bi)为例,逐点解析点云中每个点对应属性的行程长度len(A)和残差值res(Ai),以及len(B)和res(Bi)。具体的,如图7所示,包括如下步骤:
步骤60,开始。
步骤61,首先初始化i=0,lenA=0,lenB=0。
步骤62,判断lenA是否大于0,若是则执行步骤67,即确定resAi=0,且令lenA=lenA-1,用于下一个点的判断。接着,执行如下步骤68,对点i的属性B进行解析。
若判断lenA等于0时,说明点i的属性A的残差值可能不为0,此时解码码流,执行步骤63至步骤65,解析得到resAi。
步骤63,解析码流,并更新lenA。
步骤64,判断更新后的lenA是否大于0。若是则执行步骤67,若否则执行如下步骤65。若lenA大于0说明resAi为0,若lenA等于0说明resAi不为0。
步骤65,解析码流,得到resAi。
步骤67,令resAi=0,令lenA=lenA-1。执行如下步骤68。
该示例中,点i的属性信息A解码结束后,解码点i的属性信息B,而不是解码下一个点的属性信息A,也就是说,本申请是对点i的所有属性信息解码结束后,解码下一个点的属性信息,实现逐点解码。
步骤68,判断lenB是否大于0,若是则执行步骤72,若否则执行如下步骤69。
属性B的解析过程与上述属性A的解析过程基本一致,参照上述描述。
步骤69,解析码流,并更新lenB。
步骤70,判断更新后的lenB是否大于0。若是则执行步骤72,若否则执行如下步骤71。若lenB大于0说明resBi为0,若lenB等于0说明resBi不为0。
步骤71,解析码流,得到resBi。
步骤72,令resBi=0,令lenB=lenB-1。
点i的属性A和属性B解析结束后,执行步骤73,进行下一个点的属性A和属性B的解析。
步骤73,令i=i+1。
步骤74,判断当前i是否小于M,若是返回执行上述步骤62,若否则结束。
步骤75,结束。
本申请实施例,通过对点云中各点的属性信息进行逐点解码,这样当需要解码点云中的部分点时,只需要解码部分点的N个属性信息即可,不需要解码点云中的其他点的属性信息,进而提高了解码的灵活性。
在一些实施例中,上述S602中对码流进行解码,得到当前点的N个属性信息分别对应的待解码值包括:
S602-A、采用同一个熵解码器或不同熵解码器对码流进行解码,得到当前点的N个属性信息分别对应的待解码值。
在一些实施例中,熵编码器采用的编码方式包括:指数哥伦布编码、算数编码和自适应上下文算数编码中的至少一个。
在一些实施例中,若熵编码器采用自适应上下文算数编码方式时,则上述S602-A包括但不限于如下几种示例:
示例一采用同一个熵解码器和同一个上下文模型,对码流进行解码,得到当前点的N个属性信息分别对应的待解码值。
示例二,采用同一个熵解码器和不同上下文模型,对码流进行解码,得到当前点的N个属性信息分别对应的待解码值。
示例三,采用不同熵解码器和不同上下文模型,对码流进行解码,得到当前点的N个属性信息分别对应的待解码值。
示例四,采用不同熵解码器和同一个上下文模型,对码流进行解码,得到当前点的N个属性信息分别对应的待解码值。
在使用上下文模型对码流进行解码时,需要对上下文模型进行初始化,其中初始化方式包括如下几种示例:
示例一,若采用同一个熵解码器和同一个上下文模型对码流进行解码时,在解码码流之前对上下文模型进行初始化,或在解码N个属性信息中的第一个属性信息时对上下文模型进行初始化。
示例二,若采用同一个熵解码器和不同上下文模型对码流进行解码时,在解码码流之前,分别对不同的上下文模型进行初始化。
示例三,若采用不同熵解码器和不同上下文模型对码流进行解码时,在解码码流之前,分别对不同的上下文模型进行初始化。
示例四,若采用不同熵解码器和同一个上下文模型对码流进行解码时,在解码码流之前,对上下文模型进行初始化。
S603、根据当前点的N个属性信息分别对应的待解码值,得到当前点的N个属性信息分别对应的重建值。
上述S603的实现方式包括但不限于如下几种:
方式一,若待解码值包括属性信息的残差值,则上述S603包括如下S603-A1至S603-A3的步骤:
S603-A1、针对N个属性信息中的第j个属性信息,从点云的已解码点中的确定当前点的K个参考点,K为正整数,j为N中的任一值;
S603-A2、根据K个参考点对应的第j个属性信息,确定当前点的第j个属性信息的预测值;
S603-A3、根据当前点的第j个属性信息的预测值和残差值,确定当前点的第j个属性信息的重建值。
方式二,若待解码值包括属性残差的变换系数,则上述S603包括如下S603-B1至S603-B4的步骤:
S603-B1、针对N个属性信息中的第j个属性信息,从点云的已解码点中的确定当前点的K个参考点,K为正整数,j为N中的任一值;
S603-B2、根据K个参考点对应的第j个属性信息,确定当前点的第j个属性信息的预测值;
S603-B3、对第j个属性信息对应的属性残差的变换系数进行反变换,得到第j个属性信息的残差值;
S603-B4、根据当前点的第j个属性信息的预测值和残差值,确定当前点的第j个属性信息的重建值。
方式三,若待解码值包括属性信息的变换系数,则上述S603包括如下S603-C1的步骤:
S603-C1、针对N个属性信息中的第j个属性信息,对第j个属性信息的变换系数进行反变换,得到第j个属性信息的重建值。
应理解,点云属性的解码方法为上述点云属性的编码方法的逆过程。点云属性的云解码方法中的步骤可以参考点云属性的编码方法中的相应步骤,为了避免重复,在此不再赘述。
本申请实施例提供的点云解码方法,通过获取点云的码流,点云中的每一个点包括N个属性信息;在检测到当前点的前一个点的N个属性信息解码结束后,对码流进行解码,得到当前点的N个属性信息分别对应的待解码值;根据当前点的N个属性信息分别对应的待解码值,得到当前点的N个属性信息分别对应的重建值。即本申请在解码时,可以对点云中的任意一个点或几个点的属性信息进行解码,进而提高了点云属性信息的编解码的灵活性。另外,本申请对各点属性信息的解码可以并行进行,极大地降低了多属性点云的编解码计算复杂度,提高了点云的解码效率。
以上结合附图详细描述了本申请的优选实施方式,但是,本申请并不限于上述实施方式中的具体细节,在本申请的技术构思范围内,可以对本申请的技术方案进行多种简单变型,这些简单变型均属于本申请的保护范围。例如,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本申请对各种可能的组合方式不再另行说明。又例如,本申请的各种不同的实施方式之间也可以进行任意组合,只要其不违背本申请的思想,其同样应当视为本申请所公开的内容。
还应理解,在本申请的各种方法实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
上文结合图1至图7,详细描述了本申请的方法实施例,下文结合图8至图10,详细描述本申请的装置实施例。
图8是本申请一实施例的点云属性的编码装置的示意性框图。
如图8所示,点云属性的编码装置10可以包括:
获取单元11,用于获取点云,所述点云中的每一个点包括N个属性信息,所述N为大于1正整数;
确定单元12,用于在检测到当前点的前一个点的N个属性信息编码结束后,确定所述当前点的N个属性信息分别对应的待编码值;
编码单元13,用于对所述当前点的N个属性信息分别对应的待编码值进行编码,得到所述点云的码流。
在一些实施例中,所述N个属性信息中的每个属性信息对应的待编码值包括:属性信息的残差值、属性信息的变换系数、属性残差的变换系数中的任意一个。
在一些实施例中,编码单元13,具体用于按照预设的编码顺序,将所述当前点的N个属性信息分别对应的待编码值写入所述码流;或者,
针对所述当前点的N个属性信息中的第i个属性信息,若所述第i个属性信息对应的待编码值不为0时,则确定所述第i个属性信息对应的长度标记的取值为第一数值,并采用行程编码方式,将所述第i个属性信息对应的长度标记和待编码值分别写入所述码流,所述长度标记用于指示所述第i个属性信息对应的待编码值是否为0,所述第一数值用于指示所述当前点的第i个属性信息对应的待编码值不为0,所述i为从1到N的正整数。
在一些实施例中,编码单元13,具体用于采用同一个熵编码器或不同熵编码器,对所述当前点的N个属性信息分别对应的待编码值进行编码。
在一些实施例中,所述熵编码器采用的编码方式包括:指数哥伦布编码、算数编码和自适应上下文算数编码中的至少一个。
在一些实施例中,若所述熵编码器采用自适应上下文算数编码方式,则在一些实施例中,编码单元13,具体用于采用同一个熵编码器和同一个上下文模型,对所述当前点的N个属性信息分别对应的待编码值进行编码;或者,
采用同一个熵编码器和不同上下文模型,对所述当前点的N个属性信息分别对应的待编码值进行编码;或者,
采用不同熵编码器和不同上下文模型,对所述当前点的N个属性信息分别对应的待编码值进行编码;或者,
采用不同熵编码器和同一个上下文模型,对所述当前点的N个属性信息分别对应的待编码值进行编码。
在一些实施例中,编码单元13,还用于若采用同一个熵编码器和同一个上下文模型,对所述当前点的N个属性信息分别对应的待编码值进行编码时,在编码所述N个属性信息之前对所述上下文模型进行初始化,或在编码所述N个属性信息中的第一个属性信息时对所述上下文模型进行初始化;或者,
若采用同一个熵编码器和不同上下文模型,对所述当前点的N个属性信息分别对应的待编码值进行编码时,在编码所述N个属性信息之前,分别对所述不同的上下文模型进行初始化;或者,
若采用不同熵编码器和不同上下文模型,对所述当前点的N个属性信息分别对应的待编码值进行编码时,在编码所述N个属性信息之前,分别对所述不同的上下文模型进行初始化;或者,
若采用不同熵编码器和同一个上下文模型,对所述当前点的N个属性信息分别对应的待编码值进行编码时,在编码所述N个属性信息之前,对所述上下文模型进行初始化。
在一些实施例中,确定单元12,具体用于针对所述N个属性信息中的第j个属性信息,从所述点云的已编码点中的确定所述当前点的K个参考点,所述K为正整数,所述j为N中的任一值;根据所述K个参考点对应的第j个属性信息,确定所述当前点的第j个属性信息的预测值;根据所述当前点的第j个属性信息的原始值和预测值,确定所述第j个属性信息的残差值;根据所述第j个属性信息的残差值,确定所述当前点的第j个属性信息对应的待编码值。
在一些实施例中,确定单元12,具体用于将所述第j个属性信息的残差值,确定为所述当前点的第j个属性信息对应的待编码值;或者,对所述第j个属性信息的残差值进行变换,得到所述第j个属性信息的属性残差的变换系数,将所述第j个属性信息的属性残差的变换系数,确定为所述当前点的第j个属性信息对应的待编码值。
在一些实施例中,确定单元12,具体用于针对所述N个属性信息中的第j个属性信息,对所述第j个属性信息进行变换,得到所述第j个属性信息的变换系数,所述j为N中的任一值;将所述第j个属性信息的变换系数,确定为所述当前点的第j个属性信息对应的待编码值。
应理解的是,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图8所示的装置10可以执行上述点云属性的编码方法的实施例,并且装置10中的各个模块的前述和其它操作和/或功能分别为了实现编码设备对应的方法实施例,为了简洁,在此不再赘述。
图9是本申请一实施例的点云属性的解码装置的示意性框图。
如图9所示,点云属性的解码装置20可以包括:
获取单元21,用于获取点云的码流,所述点云中的每一个点包括N个属性信息,所述N为大于1正整数;
解码单元22,用于在检测到当前点的前一个点的N个属性信息解码结束后,对所述码流进行解码,得到所述当前点的N个属性信息分别对应的待解码值;
重建单元23,用于根据所述当前点的N个属性信息分别对应的待解码值,得到所述当前点的N个属性信息分别对应的重建值。
在一些实施例中,所述N个属性信息中的每个属性信息对应的待解码值包括:属性信息的残差值、属性信息的变换系数、属性残差的变换系数中的任意一个。
在一些实施例中,解码单元22,具体用于按照预设的解码顺序,对所述码流中所述当前点的N个属性信息分别对应的待解码值进行解码,得到所述当前点的N个属性信息分别对应的待解码值;或者,针对所述当前点的N个属性信息中的第i个属性信息,解码所述码流,得到所述第i个属性信息对应的长度标记,若所述长度标记的值为第一数值时,则继续解码所述码流,得到所述第i个属性信息对应的待编码值,所述长度标记用于指示所述第i个属性信息对应的待编码值是否为0,所述第一数值用于指示所述当前点的第i个属性信息对应的待编码值不为0,所述i为从1到N的正整数。
在一些实施例中,解码单元22,具体用于采用同一个熵解码器或不同熵解码器对所述码流进行解码,得到所述当前点的N个属性信息分别对应的待解码值。
在一些实施例中,所述熵解码器采用的解码方式包括:指数哥伦布解码、算数解码和自适应上下文算数解码中的至少一个。
在一些实施例中,若所述熵解码器采用自适应上下文算数解码方式,则解码单元22,具体用于采用同一个熵解码器和同一个上下文模型,对所述码流进行解码,得到所述当前点的N个属性信息分别对应的待解码值;或者,
采用同一个熵解码器和不同上下文模型,对所述码流进行解码,得到所述当前点的N个属性信息分别对应的待解码值;或者,
采用不同熵解码器和不同上下文模型,对所述码流进行解码,得到所述当前点的N个属性信息分别对应的待解码值;或者,
采用不同熵解码器和同一个上下文模型,对所述码流进行解码,得到所述当前点的N个属性信息分别对应的待解码值。
在一些实施例中,解码单元22,还用于若采用同一个熵解码器和同一个上下文模型对所述码流进行解码时,在解码所述码流之前对所述上下文模型进行初始化,或在解码所述N个属性信息中的第一个属性信息时对所述上下文模型进行初始化;或者,
若采用同一个熵解码器和不同上下文模型对所述码流进行解码时,在解码所述码流之前,分别对所述不同的上下文模型进行初始化;或者,
若采用不同熵解码器和不同上下文模型对所述码流进行解码时,在解码所述码流之前,分别对所述不同的上下文模型进行初始化;或者,
若采用不同熵解码器和同一个上下文模型对所述码流进行解码时,在解码所述码流之前,对所述上下文模型进行初始化。
在一些实施例中,若所述待解码值包括属性信息的残差值,重建单元23,具体用于针对所述N个属性信息中的第j个属性信息,从所述点云的已解码点中的确定所述当前点的K个参考点,所述K为正整数,所述j为N中的任一值;根据所述K个参考点对应的第j个属性信息,确定所述当前点的第j个属性信息的预测值;根据所述当前点的第j个属性信息的预测值和残差值,确定所述当前点的第j个属性信息的重建值。
在一些实施例中,若所述待解码值包括属性残差的变换系数,重建单元23,具体用于针对所述N个属性信息中的第j个属性信息,从所述点云的已解码点中的确定所述当前点的K个参考点,所述K为正整数,所述j为N中的任一值;根据所述K个参考点对应的第j个属性信息,确定所述当前点的第j个属性信息的预测值;对所述第j个属性信息对应的属性残差的变换系数进行反变换,得到所述第j个属性信息的残差值;根据所述当前点的第j个属性信息的预测值和残差值,确定所述当前点的第j个属性信息的重建值。
在一些实施例中,若所述待解码值包括属性信息的变换系数,重建单元23,具体用于针对所述N个属性信息中的第j个属性信息,对所述第j个属性信息的变换系数进行反变换,得到所述第j个属性信息的重建值。
应理解的是,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图9所示的装置20可以执行点云属性的解码方法实施例,并且装置20中的各个模块的前述和其它操作和/或功能分别为了实现解码设备对应的方法实施例,为了简洁,在此不再赘述。
上文中结合附图从功能模块的角度描述了本申请实施例的装置。应理解,该功能模块可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件模块组合实现。具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。可选地,软件模块可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。
图10是本申请实施例提供的电子设备的示意性框图,图10的电子设备可以为上述的点云编码设备或者为点云解码设备,或者同时具有编码设备和解码设备的功能。
如图10所示,该电子设备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中的执行过程。
如图10所示,该电子设备900还可包括:
收发器930,该收发器930可连接至该处理器920或存储器910。
其中,处理器920可以控制该收发器930与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器930可以包括发射机和接收机。收发器930还可以进一步包括天线,天线的数量可以为一个或多个。
应当理解,该电子设备900中的各个组件通过总线***相连,其中,总线***除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
根据本申请的一个方面,提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。或者说,本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
根据本申请的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法实施例的方法。
换言之,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。例如,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。
Claims (26)
1.一种点云属性的编码方法,其特征在于,包括:
获取点云,所述点云中的每一个点包括N个属性信息,所述N为大于1正整数;
在检测到当前点的前一个点的N个属性信息编码结束后,确定所述当前点的N个属性信息分别对应的待编码值;
对所述当前点的N个属性信息分别对应的待编码值进行编码,得到所述点云的码流。
2.根据权利要求1所述的方法,其特征在于,所述N个属性信息中的每个属性信息对应的待编码值包括:属性信息的残差值、属性信息的变换系数、属性残差的变换系数中的任意一个。
3.根据权利要求1所述的方法,其特征在于,所述对所述当前点的N个属性信息分别对应的待编码值进行编码,包括:
按照预设的编码顺序,将所述当前点的N个属性信息分别对应的待编码值写入所述码流;或者,
针对所述当前点的N个属性信息中的第i个属性信息,若所述第i个属性信息对应的待编码值不为0时,则确定所述第i个属性信息对应的长度标记的取值为第一数值,并采用行程编码方式,将所述第i个属性信息对应的长度标记和待编码值分别写入所述码流,所述长度标记用于指示所述第i个属性信息对应的待编码值是否为0,所述第一数值用于指示所述当前点的第i个属性信息对应的待编码值不为0,所述i为从1到N的正整数。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述对所述当前点的N个属性信息分别对应的待编码值进行编码,包括:
采用同一个熵编码器或不同熵编码器,对所述当前点的N个属性信息分别对应的待编码值进行编码。
5.根据权利要求4所述的方法,其特征在于,所述熵编码器采用的编码方式包括:指数哥伦布编码、算数编码和自适应上下文算数编码中的至少一个。
6.根据权利要求5所述的方法,其特征在于,若所述熵编码器采用自适应上下文算数编码方式,则所述采用同一个熵编码器或不同熵编码器,对所述当前点的N个属性信息分别对应的待编码值进行编码,包括:
采用同一个熵编码器和同一个上下文模型,对所述当前点的N个属性信息分别对应的待编码值进行编码;或者,
采用同一个熵编码器和不同上下文模型,对所述当前点的N个属性信息分别对应的待编码值进行编码;或者,
采用不同熵编码器和不同上下文模型,对所述当前点的N个属性信息分别对应的待编码值进行编码;或者,
采用不同熵编码器和同一个上下文模型,对所述当前点的N个属性信息分别对应的待编码值进行编码。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若采用同一个熵编码器和同一个上下文模型,对所述当前点的N个属性信息分别对应的待编码值进行编码时,在编码所述N个属性信息之前对所述上下文模型进行初始化,或在编码所述N个属性信息中的第一个属性信息时对所述上下文模型进行初始化;或者,
若采用同一个熵编码器和不同上下文模型,对所述当前点的N个属性信息分别对应的待编码值进行编码时,在编码所述N个属性信息之前,分别对所述不同的上下文模型进行初始化;或者,
若采用不同熵编码器和不同上下文模型,对所述当前点的N个属性信息分别对应的待编码值进行编码时,在编码所述N个属性信息之前,分别对所述不同的上下文模型进行初始化;或者,
若采用不同熵编码器和同一个上下文模型,对所述当前点的N个属性信息分别对应的待编码值进行编码时,在编码所述N个属性信息之前,对所述上下文模型进行初始化。
8.根据权利要求1-3任一项所述的方法,其特征在于,所述确定当前点的N个属性信息分别对应的待编码值,包括:
针对所述N个属性信息中的第j个属性信息,从所述点云的已编码点中的确定所述当前点的K个参考点,所述K为正整数,所述j为N中的任一值;
根据所述K个参考点对应的第j个属性信息,确定所述当前点的第j个属性信息的预测值;
根据所述当前点的第j个属性信息的原始值和预测值,确定所述第j个属性信息的残差值;
根据所述第j个属性信息的残差值,确定所述当前点的第j个属性信息对应的待编码值。
9.根据权利要求8所述的方法,其特征在于,所述根据所述第j个属性信息的残差值,确定所述当前点的第j个属性信息对应的待编码值,包括:
将所述第j个属性信息的残差值,确定为所述当前点的第j个属性信息对应的待编码值;或者,
对所述第j个属性信息的残差值进行变换,得到所述第j个属性信息的属性残差的变换系数,将所述第j个属性信息的属性残差的变换系数,确定为所述当前点的第j个属性信息对应的待编码值。
10.根据权利要求1-3任一项所述的方法,其特征在于,所述确定当前点的N个属性信息分别对应的待编码值,包括:
针对所述N个属性信息中的第j个属性信息,对所述第j个属性信息进行变换,得到所述第j个属性信息的变换系数,所述j为N中的任一值;
将所述第j个属性信息的变换系数,确定为所述当前点的第j个属性信息对应的待编码值。
11.一种点云属性的解码方法,其特征在于,包括:
获取点云的码流,所述点云中的每一个点包括N个属性信息,所述N为大于1正整数;
在检测到当前点的前一个点的N个属性信息解码结束后,对所述码流进行解码,得到所述当前点的N个属性信息分别对应的待解码值;
根据所述当前点的N个属性信息分别对应的待解码值,得到所述当前点的N个属性信息分别对应的重建值。
12.根据权利要求11所述的方法,其特征在于,所述N个属性信息中的每个属性信息对应的待解码值包括:属性信息的残差值、属性信息的变换系数、属性残差的变换系数中的任意一个。
13.根据权利要求11所述的方法,其特征在于,所述对所述码流进行解码,得到所述当前点的N个属性信息分别对应的待解码值,包括:
按照预设的解码顺序,对所述码流中所述当前点的N个属性信息分别对应的待解码值进行解码,得到所述当前点的N个属性信息分别对应的待解码值;或者,
针对所述当前点的N个属性信息中的第i个属性信息,解码所述码流,得到所述第i个属性信息对应的长度标记,若所述长度标记的值为第一数值时,则继续解码所述码流,得到所述第i个属性信息对应的待编码值,所述长度标记用于指示所述第i个属性信息对应的待编码值是否为0,所述第一数值用于指示所述当前点的第i个属性信息对应的待编码值不为0,所述i为从1到N的正整数。
14.根据权利要求11-13任一项所述的方法,其特征在于,所述对所述码流进行解码,得到所述当前点的N个属性信息分别对应的待解码值,包括:
采用同一个熵解码器或不同熵解码器对所述码流进行解码,得到所述当前点的N个属性信息分别对应的待解码值。
15.根据权利要求14所述的方法,其特征在于,所述熵解码器采用的解码方式包括:指数哥伦布解码、算数解码和自适应上下文算数解码中的至少一个。
16.根据权利要求15所述的方法,其特征在于,若所述熵解码器采用自适应上下文算数解码方式,则所述采用同一个熵解码器或不同熵解码器对所述码流进行解码,得到所述当前点的N个属性信息分别对应的待解码值,包括:
采用同一个熵解码器和同一个上下文模型,对所述码流进行解码,得到所述当前点的N个属性信息分别对应的待解码值;或者,
采用同一个熵解码器和不同上下文模型,对所述码流进行解码,得到所述当前点的N个属性信息分别对应的待解码值;或者,
采用不同熵解码器和不同上下文模型,对所述码流进行解码,得到所述当前点的N个属性信息分别对应的待解码值;或者,
采用不同熵解码器和同一个上下文模型,对所述码流进行解码,得到所述当前点的N个属性信息分别对应的待解码值。
17.根据权利要求16所述的方法,其特征在于,所述方法还包括:
若采用同一个熵解码器和同一个上下文模型对所述码流进行解码时,在解码所述码流之前对所述上下文模型进行初始化,或在解码所述N个属性信息中的第一个属性信息时对所述上下文模型进行初始化;或者,
若采用同一个熵解码器和不同上下文模型对所述码流进行解码时,在解码所述码流之前,分别对所述不同的上下文模型进行初始化;或者,
若采用不同熵解码器和不同上下文模型对所述码流进行解码时,在解码所述码流之前,分别对所述不同的上下文模型进行初始化;或者,
若采用不同熵解码器和同一个上下文模型对所述码流进行解码时,在解码所述码流之前,对所述上下文模型进行初始化。
18.根据权利要求11-13任一项所述的方法,其特征在于,若所述待解码值包括属性信息的残差值,所述根据所述当前点的N个属性信息分别对应的待解码值,得到所述当前点的N个属性信息分别对应的重建值,包括:
针对所述N个属性信息中的第j个属性信息,从所述点云的已解码点中的确定所述当前点的K个参考点,所述K为正整数,所述j为N中的任一值;
根据所述K个参考点对应的第j个属性信息,确定所述当前点的第j个属性信息的预测值;
根据所述当前点的第j个属性信息的预测值和残差值,确定所述当前点的第j个属性信息的重建值。
19.根据权利要求11-13任一项所述的方法,其特征在于,若所述待解码值包括属性残差的变换系数,所述根据所述当前点的N个属性信息分别对应的待解码值,得到所述当前点的N个属性信息分别对应的重建值,包括:
针对所述N个属性信息中的第j个属性信息,从所述点云的已解码点中的确定所述当前点的K个参考点,所述K为正整数,所述j为N中的任一值;
根据所述K个参考点对应的第j个属性信息,确定所述当前点的第j个属性信息的预测值;
对所述第j个属性信息对应的属性残差的变换系数进行反变换,得到所述第j个属性信息的残差值;
根据所述当前点的第j个属性信息的预测值和残差值,确定所述当前点的第j个属性信息的重建值。
20.根据权利要求11-13任一项所述的方法,其特征在于,若所述待解码值包括属性信息的变换系数,所述根据所述当前点的N个属性信息分别对应的待解码值,得到所述当前点的N个属性信息分别对应的重建值,包括:
针对所述N个属性信息中的第j个属性信息,对所述第j个属性信息的变换系数进行反变换,得到所述第j个属性信息的重建值。
21.一种点云属性的编码装置,其特征在于,包括:
获取单元,用于获取点云,所述点云中的每一个点包括N个属性信息,所述N为大于1正整数;
确定单元,用于在检测到当前点的前一个点的N个属性信息编码结束后,确定所述当前点的N个属性信息分别对应的待编码值;
编码单元,用于对所述当前点的N个属性信息分别对应的待编码值进行编码,得到所述点云的码流。
22.一种点云属性的解码装置,其特征在于,包括:
获取单元,用于获取点云的码流,所述点云中的每一个点包括N个属性信息,所述N为大于1正整数;
解码单元,用于在检测到当前点的前一个点的N个属性信息解码结束后,对所述码流进行解码,得到所述当前点的N个属性信息分别对应的待解码值;
重建单元,用于根据所述当前点的N个属性信息分别对应的待解码值,得到所述当前点的N个属性信息分别对应的重建值。
23.一种编码设备,其特征在于,包括:
处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行权利要求1至10任一项所述的方法。
24.一种解码设备,其特征在于,包括:
处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行权利要求11至20任一项所述的方法。
25.一种电子设备,其特征在于,包括:
处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行权利要求1至10或11至20中任一项所述的方法。
26.一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序使得计算机执行如权利要求1至10或11至20中任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111478233.9A CN116233467A (zh) | 2021-12-06 | 2021-12-06 | 点云属性的编解码方法、装置、设备及存储介质 |
PCT/CN2022/123793 WO2023103565A1 (zh) | 2021-12-06 | 2022-10-08 | 点云属性信息的编解码方法、装置、设备及存储介质 |
US18/512,223 US20240087174A1 (en) | 2021-12-06 | 2023-11-17 | Coding and decoding point cloud attribute information |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111478233.9A CN116233467A (zh) | 2021-12-06 | 2021-12-06 | 点云属性的编解码方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116233467A true CN116233467A (zh) | 2023-06-06 |
Family
ID=86581107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111478233.9A Pending CN116233467A (zh) | 2021-12-06 | 2021-12-06 | 点云属性的编解码方法、装置、设备及存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240087174A1 (zh) |
CN (1) | CN116233467A (zh) |
WO (1) | WO2023103565A1 (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3836089A4 (en) * | 2018-08-10 | 2021-09-01 | Panasonic Intellectual Property Corporation of America | METHOD FOR CODING THREE-DIMENSIONAL DATA, METHOD FOR DECODING THREE-DIMENSIONAL DATA, DEVICE FOR CODING THREE-DIMENSIONAL DATA AND DEVICE FOR DECODING THREE-DIMENSIONAL DATA |
BR112021026353A2 (pt) * | 2019-06-27 | 2022-02-08 | Huawei Tech Co Ltd | Decodificador de referência hipotético para v-pcc |
CN114930394A (zh) * | 2019-12-26 | 2022-08-19 | 松下电器(美国)知识产权公司 | 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置 |
-
2021
- 2021-12-06 CN CN202111478233.9A patent/CN116233467A/zh active Pending
-
2022
- 2022-10-08 WO PCT/CN2022/123793 patent/WO2023103565A1/zh unknown
-
2023
- 2023-11-17 US US18/512,223 patent/US20240087174A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2023103565A1 (zh) | 2023-06-15 |
US20240087174A1 (en) | 2024-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12010350B2 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
US11601488B2 (en) | Device and method for transmitting point cloud data, device and method for processing point cloud data | |
WO2022121650A1 (zh) | 点云属性的预测方法、编码器、解码器及存储介质 | |
CN115086658B (zh) | 点云数据的处理方法、装置、存储介质及编解码设备 | |
CN115086660B (zh) | 基于点云属性预测的解码、编码方法、解码器及编码器 | |
CN117242493A (zh) | 点云解码、上采样及模型训练方法与装置 | |
KR20230075426A (ko) | 포인트 클라우드 인코딩 및 디코딩 방법과 시스템 및 포인트 클라우드 인코더와 포인트 클라우드 디코더 | |
KR20230124017A (ko) | 포인트 클라우드 인코딩 및 디코딩 방법과 시스템,포인트 클라우드 인코더 및 포인트 클라우드 디코더 | |
CN116250008A (zh) | 点云的编码、解码方法、编码器、解码器以及编解码*** | |
CN115086716B (zh) | 点云中邻居点的选择方法、装置及编解码器 | |
CN117321991A (zh) | 点云属性的预测方法、装置及编解码器 | |
CN115474041B (zh) | 点云属性的预测方法、装置及相关设备 | |
CN116233467A (zh) | 点云属性的编解码方法、装置、设备及存储介质 | |
CN116325732A (zh) | 点云的解码、编码方法、解码器、编码器和编解码*** | |
WO2023024842A1 (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 | |
CN115733990A (zh) | 点云编解码方法、设备及存储介质 | |
CN118055254A (zh) | 点云属性编解码方法、装置、设备 | |
CN117354496A (zh) | 点云编解码方法、装置、设备及存储介质 | |
CN115914650A (zh) | 点云编解码方法、编码器、解码器及存储介质 | |
JP2024500701A (ja) | 点群符号化方法、点群復号化方法、点群符号化と復号化システム、点群エンコーダ及び点群デコーダ | |
CN116866615A (zh) | 点云编码方法及设备 | |
CN117426093A (zh) | 点云编解码方法、装置、点云编解码器及存储介质 | |
CN115720273A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40088799 Country of ref document: HK |