CN117581549A - 帧内预测、编解码方法及装置、编解码器、设备、介质 - Google Patents

帧内预测、编解码方法及装置、编解码器、设备、介质 Download PDF

Info

Publication number
CN117581549A
CN117581549A CN202180099712.1A CN202180099712A CN117581549A CN 117581549 A CN117581549 A CN 117581549A CN 202180099712 A CN202180099712 A CN 202180099712A CN 117581549 A CN117581549 A CN 117581549A
Authority
CN
China
Prior art keywords
node
sub
current
predicted
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180099712.1A
Other languages
English (en)
Inventor
魏红莲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Publication of CN117581549A publication Critical patent/CN117581549A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/96Tree 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)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请实施例公开了帧内预测、编解码方法及装置、编解码器、设备、介质;其中,帧内预测方法包括:基于第一搜索范围,搜索得到当前子节点的第一预测子节点;在第一预测子节点的数目小于第一阈值的情况下,基于第二搜索范围,搜索得到当前子节点的第二预测子节点;在第一和第二预测子节点的总数小于第一阈值且搜索轮次数小于N的情况下,基于第三搜索范围,搜索得到所述当前子节点的第三预测子节点;当搜索轮次数达到N时,或者,当搜索轮次数未达到N时得到的所有预测子节点的数目大于或等于第一阈值时,基于得到的预测子节点的属性值,确定当前子节点的属性预测值;各个搜索范围互不交叠,N为大于或等于2的门限值。

Description

帧内预测、编解码方法及装置、编解码器、设备、介质 技术领域
本申请实施例涉及点云处理技术,涉及但不限于帧内预测、编解码方法及装置、编解码器、设备、介质。
背景技术
点云是空间中一组无规则分布的、表达三维物体或场景的空间结构及表面属性的离散点集。点云数据通常包括三维位置信息(x,y,z)、三维颜色信息(r,g,b)和一维反射率信息(r)所组成的属性信息。
点云可以灵活方便地表达三维物体或场景的空间结构及表面属性,并且由于点云通过直接对真实物体采样获得,在保证精度的前提下能够提供极强的真实感,因而应用广泛,其范围包括虚拟现实游戏、计算机辅助设计、地理信息系统、自动导航系统、数字文化遗产、自由视点广播、三维沉浸远程呈现和生物组织器官三维重建等。
伴随着应用需求的增长,海量三维(Three Dimensional,3D)点云数据的处理遭遇存储空间和传输带宽限制的瓶颈。为更好地实现数据管理,节省服务器的存储空间,降低服务器与客户端之间的传输流量及传输时间,点云压缩成为促进点云产业发展的关键问题。
点云压缩主要分为几何压缩和属性压缩,其中在提高属性压缩中的帧内预测的准确性的同时,如何进一步提高编解码效率具有一定意义。
发明内容
本申请实施例提供的帧内预测、编解码方法及装置、编解码器、设备、介质,能够在提高帧内预测的准确性,进一步提高点云的编解码效率。本申请实施例提供的帧内预测、编解码方法及装置、编解码器、设备、介质,是这样实现的:
本申请实施例提供的帧内预测方法,应用于解码端,所述方法包括:基于第一搜索范围,搜索得到当前子节点的第一预测子节点;在所述第一预测子节点的数目小于第一阈值的情况下,基于第二搜索范围,搜索得到所述当前子节点的第二预测子节点;在所述第一和第二预测子节点的总数小于所述第一阈值且搜索轮次数小于N的情况下,基于第三搜索范围,搜索得到所述当前子节点的第三预测子节点;当搜索轮次数达到N时,或者当搜索轮次数未达到N时得到的所有预测子节点的数目大于或等于所述第一阈值时,基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值;其中,各个搜索范围互不交叠,N为大于或等于2的门限值。
本申请实施例提供的点云解码方法,所述方法包括:对接收的属性码流进行解析,得到当前子节点的重建残差;对所述当前子节点执行本申请解码端的帧内预测方法中的步骤,得到所述当前子节点的属性预测值;根据所述当前子节点的属性预测值与所述当前子节点的重建残差,确定所述当前子节点的属性重建值。
本申请实施例提供的帧内预测方法,应用于编码端,所述方法包括:基于第一搜索范围,搜索得到所述当前子节点的第一预测子节点;在所述第一预测子节点的数目小于第一阈值的情况下,基于第二搜索范围,搜索得到所述当前子节点的第二预测子节点;在所述第一和第二预测子节点的总数小于所述第一阈值且搜索轮次数小于N的情况下,基于第三搜索范围,搜索得到所述当前子节点的第三预测子节点;当搜索轮次数达到N时,或者当搜索轮次数未达到N时得到的所有预测子节点的数目大于或等于所述第一阈值时,基于得到的预测子节点的属性值,得到所述当前子节点的属性预测值;其中,各个搜索范围互不交叠,N为大于或等于2的门限值。
本申请实施例提供的点云编码方法,应用于编码端,所述方法包括:对点云的当前子节点执行如本申请编码端的帧内预测方法中的步骤,得到所述当前子节点的属性预测值;确定所述当前子节点的属性预测值与所述当前子节点的原始属性值之间的残差;将所述当前子节点的残差编码为属性码流。
本申请实施例提供的帧内预测装置,应用于解码端,包括:第一搜索模块,配置成:基于第一搜索范围,搜索得到当前子节点的第一预测子节点;在所述第一预测子节点的数目小于第一阈值的情况下,基于第二搜索范围,搜索得到所述当前子节点的第二预测子节点;以及,在所述第一和第二预测子节点的总数小于所述第一阈值,且搜索轮次数小于N的情况下,基于第三搜索范围,搜索得到所述当前子节点的第三预测子节点;当搜索轮次数达到N时,或者,当搜索轮次数未达到N时得到的所有预测子节点的数目大于或等于所述第一阈值时,触发第一帧内预测模块;其中,各个搜索范围互不交叠,N为大于或等于2的门限值;所述第一帧内预测模块,配置成基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值。
本申请实施例提供的解码装置,包括:解析模块,配置成对接收的属性码流进行解析,得到当前子节点的重建残差;帧内预测装置,配置成对所述当前子节点执行如本申请解码端所述的帧内预测方法中 的步骤,得到所述当前子节点的属性预测值;重建模块,配置成根据所述当前子节点的属性预测值与所述当前子节点的重建残差,确定所述当前子节点的属性重建值。
本申请实施例提供的解码器,包括存储器和处理器;其中,所述存储器,用于存储能够在所述处理器上运行的计算机程序;所述处理器,用于在运行所述计算机程序时,执行如本申请实施例所述的适用于解码端的帧内预测方法,或者执行如本申请实施例所述的点云解码方法。
本申请实施例提供的帧内预测装置,应用于编码端,包括:第二搜索模块,配置成基于第一搜索范围,搜索得到所述当前子节点的第一预测子节点;以及在所述第一预测子节点的数目小于第一阈值的情况下,基于第二搜索范围,搜索得到所述当前子节点的第二预测子节点;在所述第一和第二预测子节点的总数小于所述第一阈值,且搜索轮次数小于N的情况下,基于第三搜索范围,搜索得到所述当前子节点的第三预测子节点;当搜索轮次数达到N时,或者,当搜索轮次数未达到N时得到的所有预测子节点的数目大于或等于所述第一阈值时,触发第二帧内预测模块;其中,各个搜索范围互不交叠,N为大于或等于2的门限值;所述第二帧内预测模块,配置成基于得到的预测子节点的属性值,得到所述当前子节点的属性预测值。
本申请实施例提供的编码装置,包括:帧内预测装置,配置成对点云的当前子节点执行本申请编码端所述的帧内预测方法中的步骤,得到所述当前子节点的属性预测值;确定模块,配置成确定所述当前子节点的属性预测值与所述当前子节点的原始属性值之间的残差;编码模块,配置成将所述当前子节点的残差编码为属性码流。
本申请实施例提供的一种编码器,包括存储器和处理器;所述存储器,用于存储能够在所述处理器上运行的计算机程序;所述处理器,用于在运行所述计算机程序时,执行如本申请实施例所述的适用于编码端的帧内预测方法,或者执行如本申请实施例所述的点云编码方法。
本申请实施例提供的一种电子设备,包括存储器和处理器;所述存储器,用于存储能够在所述处理器上运行的计算机程序;所述处理器,用于在运行所述计算机程序时,执行如本申请实施例所述的适用于解码端的帧内预测方法,或者执行如本申请实施例所述的点云解码方法,或者执行如本申请实施例所述的适用于编码端的帧内预测方法,或者执行如本申请实施例所述的点云编码方法。
本申请实施例提供的计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本申请实施例所述的适用于解码端的帧内预测方法,或者,该计算机程序被处理器执行时实现本申请实施例所述的点云解码方法,或者,该计算机程序被处理器执行时实现本申请实施例所述的适用于编码端的帧内预测方法,该计算机程序被处理器执行时实现本申请实施例所述的点云编码方法。
在本申请实施例中,通过N这一门限值,限制预测子节点的搜索轮次,如此经过N轮搜索(也即已使用的搜索范围数达到该门限值),即使得到的所有预测子节点的数目小于第一阈值也要结束基于搜索范围的预测子节点的搜索,从而缩短搜索时延,提高编码效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本申请的实施例,并与说明书一起用于说明本申请的技术方案。
显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1为三维点云图像和局部放大图的示意图;
图2为一幅点云图像及其对应的数据存储格式的示意图;
图3A为音视频编码标准(Audio Video Standard,AVS)点云压缩专题组所提供的点云压缩参考平台,也即点云参考模型(Point Cloud Reference Model,PCRM)的编码框架示意图;
图3B为AVS点云压缩专题组所提供的点云压缩参考平台PCRM的解码框架示意图;
图4A为将整幅点云放置在一个正方体包围盒的示意图;
图4B为对点云的八叉树划分过程示意图;
图5为莫顿码在二维空间中的编码顺序的示意图;
图6为莫顿码在三维空间中的编码顺序的示意图;
图7A为当前子节点与其共面子节点的示意图;
图7B为当前子节点与其共线子节点的示意图;
图7C为当前子节点与其共点子节点的示意图;
图8为本申请实施例帧内预测方法的实现流程示意图;
图9为本申请实施例的第一搜索范围和第二搜索范围的示例示意图;
图10为本申请实施例第二搜索范围的示例示意图;
图11为本申请实施例第二搜索范围的示例示意图;
图12为本申请实施例的第一搜索范围的示例示意图;
图13(a)和(b)分别为本申请实施例的第一搜索范围和第二搜索范围的一种示例示意图;
图14为本申请实施例第二搜索范围的示例示意图;
图15为本申请实施例第二搜索范围的一种示例示意图;
图16为本申请实施例帧内预测装置的结构示意图;
图17为本申请实施例编码装置的结构示意图;
图18为本申请实施例帧内预测装置的结构示意图;
图19为本申请实施例解码装置的结构示意图;
图20为本申请实施例的电子设备的硬件实体示意图;
图21为本申请实施例的编码器的硬件实体示意图;
图22为本申请实施例的解码器的硬件实体示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,将结合本申请实施例中的附图,对本申请的具体技术方案做进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
需要指出,本申请实施例所涉及的术语“第一\第二\第三”是为了区别类似或不同的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
本申请实施例描述的编解码框架以及业务场景是为了更加清楚地说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定。本领域普通技术人员可知,随着编解码框架的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
在对本申请实施例进行进一步说明之前,对本申请实施例涉及的点云的数据形式、编解码框架和点云的规则化处理等进行说明。其中,本申请实施例描述的编解码框架以及业务场景是为了更加清楚地说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定。本领域普通技术人员可知,随着编解码框架的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
(1)点云的数据形式
点云是空间中一组无规则分布的、表达三维物体或场景的空间结构及表面属性的离散点集。举例来说,如图1所示,其中,101为三维点云图像。102为该点云图像的局部放大图,可以看到,点云表面是由分布稠密的点所组成的。
点云中的点在三维空间中的分布具有随机性和不规则性,因此需要记录每一个点在空间中的位置,才能完整地表达一幅点云。每一个位置均有对应的属性信息,通常为红绿蓝三维颜色信息(r,g,b),反映的是物体的色彩;反射率(reflectance)也是比较常见的属性信息,反射率反映的是物体的表面材质。因此,点云数据通常包括三维位置信息(x,y,z)、三维颜色信息(r,g,b)和一维反射率信息(r)所组成的属性信息。
如图2所示为一幅点云图像及其对应的数据存储格式,其中,201提供了点云图像的六个观看角度;202展示了该点云图像的数据存储格式,由文件头信息部分和数据部分组成,头信息包含了数据格式、数据表示类型、点云总点数、以及点云所表示的内容,如202中的点云为“.ply”格式,由ASCII码表示,总点数为207242,每个点具有三维位置信息(x,y,z)和三维颜色信息(r,g,b)。
(2)点云压缩的相关介绍
点云的采集主要有以下途径:计算机生成、3D激光扫描和3D摄影测量等。计算机可以生成虚拟三维物体及场景的点云;3D激光扫描可以获得静态现实世界三维物体或场景的点云,每秒可以获取百万级点云;3D摄影测量可以获得动态现实世界三维物体或场景的点云,每秒可以获取千万级点云。这些技术降低了点云数据获取成本和时间周期,提高了数据的精度。点云数据的获取方式的变革,使得大量点云数据的获取成为可能。然而,伴随着应用需求的增长,海量3D点云数据的处理遭遇存储空间和 传输带宽限制的瓶颈。
以帧率为30帧每秒(fps)的点云视频为例,每帧点云的点数为70万,每个点具有浮点型(float)的三维位置信息(x,y,z)和uchar类型的三维颜色信息(r,g,b),则10s的点云视频的数据量大约为0.7million×(4Byte×3+1Byte×3)×30fps×10s=3.15GB,而YUV采样格式为4:2:0,帧率为24fps的1280×720二维视频,其10s的数据量约为1280×720×12bit×24frames×10s≈0.33GB,10s的两视角3D视频的数据量约为0.33×2=0.66GB。由此可见,点云视频的数据量远超过相同时长的二维视频和三维视频的数据量。因此,为更好地实现数据管理,节省服务器的存储空间,降低服务器与客户端之间的传输流量及传输时间,点云压缩成为促进点云产业发展的关键问题。
点云压缩通常采用对点的三维位置信息和点的属性信息分别进行压缩的方式。在编码端,首先在几何编码器中编码点的三维位置信息,得到重建三维位置信息;然后将重建三维位置信息作为附加信息输入到属性编码器中,从而辅助点的属性信息的压缩;在解码端,首先在几何解码器中解码点的三维位置信息,然后将解码后的三维位置信息作为附加信息输入到属性解码器中,辅助点的属性信息的压缩。整个编解码器由预处理/后处理、几何编码/解码、属性编码/解码几部分组成。
图3A为AVS点云压缩专题组所提供的点云压缩参考平台PCRM的编码框架,图3B为AVS点云压缩专题组所提供的点云压缩参考平台PCRM的解码框架。需要说明的是,对本申请实施例的技术方案适用的平台类型不做限定,本申请实施例的技术方案不仅适用于点云压缩参考平台PCRM,还适用于其他各种类型的点云压缩参考平台。
对于PCRM参考软件,如图3A所示,在编码端的几何编码部分,首先,对采集得到的三维位置信息进行预处理,通过坐标平移将几何原点归一化到点云空间中的最小值位置,通过坐标量化将三维位置信息从浮点型转化为整型,得到规则化的三维位置信息,即得到规则化的点云空间,从而便于后续的规则化处理;然后,对规则化的三维位置信息进行几何编码。例如,在一些实施例中,可以采用八叉树结构对规则化的点云空间进行递归划分,每次将当前节点划分成八个相同大小的子块,并判断每个子块的占有码字情况,当子块内没有点时记为空,否则记为非空,在递归划分的最后一层记录所有块的占有码字信息,并进行编码。
如图3A所示,通过八叉树结构表达的三维位置信息一方面输入到几何熵编码器中形成几何码流,另一方面在编码器内进行几何重建处理,重建后的三维位置信息作为附加信息输入到属性编码器中。在属性编码部分,首先对采集得到的属性信息进行预处理,由于三维位置信息在几何编码之后有所异动,因此需要为几何编码后的每一个点重新分配属性值,这个过程叫做属性重上色,此外,如果处理的属性信息为三维颜色信息,还需要将原始颜色进行颜色空间变换,将其转变成更符合人眼视觉特性的YUV色彩空间;然后对预处理后的属性信息进行属性编码。在一些实施例中,对于属性编码,首先需要将点云进行重排序,重排序的方式是莫顿码,因此属性编码的遍历顺序为莫顿顺序,PCRM中的属性预测方法为基于莫顿顺序的单点预测,即按照莫顿顺序从当前待编码点(即下文实施例中所称的当前子节点)向前回溯一个点,找到的点为当前待编码点的预测参考点(即下文实施例中所称的预测子节点),然后将预测参考点的属性重建值作为属性预测值,属性残差为当前待编码点的预处理后的属性值与属性预测值之间的差值;最后对残差进行量化,将量化残差输入到属性熵编码器中形成属性码流。
需要说明的是,由于相关PCRM的编解码框架仅涉及单帧,因此属性预测特指帧内预测。
在解码端,如图3B所示,采用对几何码流和属性码流分别进行解码的方式。在几何码流的解码部分,首先对几何码流进行熵解码,得到每个子节点的三维位置信息,然后按照与几何编码相同的方式构建八叉树结构,重建出坐标变换后的、通过八叉树结构表达的三维位置信息,一方面将该信息进行坐标反量化和反平移,得到解码后的三维位置信息,另一方面将解码后的三维位置信息作为附加信息输入到属性解码器中。在属性码流的解码部分,按照与编码端相同的方式构建莫顿顺序,先对属性码流进行熵解码,得到量化后的残差信息;然后对残差信息进行反量化,得到残差值;类似地,按照与属性编码相同的方式,获得当前待解码点(即下文实施例中所称的当前子节点)的属性预测值,然后将属性预测值与残差值相加,可以恢复出当前待解码点的YUV属性值;最后,经过颜色空间反变换得到解码后的属性信息。
(3)点云的规则化处理
由于点云在空间中无规则分布的特性,给编码过程带来了挑战,因此采用递归八叉树的结构,将点云中的点规则化地表达成立方体的中心。如图4A所示,首先将整幅点云放置在一个正方体包围盒内,点云中点的坐标表示为(x q,y q,z q),q=0,...,Q-1,其中,Q是点云的总点数,点云在x、y、z方向上的边界值,如下式(1)至式(6)所示,分别为:
x min=min(x 0,x 1,...x q-1) 式(1);
y min=min(y 0,y 1,...y q-1) 式(2);
z min=min(z 0,z 1,...z q-1) 式(3);
x max=max(x 0,x 1,...x q-1) 式(4);
y max=max(y 0,y 1,...y q-1) 式(5);
z max=max(z 0,z 1,...z q-1) 式(6);
则包围盒的原点(x origin,y origin,z origin)可以根据下式(7)至式(9)计算得到:
x origin=int(floor(x min)) 式(7);
y origin=int(floor(y min)) 式(8);
z origin=int(floor(z min)) 式(9);
包围盒在x、y、z方向上的尺寸可以根据下式(10)至式(12)计算得到:
BoudingBoxSize x=int(x max-x origin)+1 式(10);
BoudingBoxSize y=int(y max-y origin)+1 式(11);
BoudingBoxSize z=int(z max-z origin)+1 式(12);
然后,如图4B所示,首先对正方体包围盒进行八叉树划分,每次得到八个子块,然后对子块中的非空块(即包含点的块)进行再一次的八叉树划分,如此递归划分直到某个深度,将最终大小的非空子块称作体素(voxel),每个voxel中包含一个或多个点,将这些点的几何位置归一化为voxel的中心点(即下文实施例所称的子节点),该中心点的属性值取voxel中所有点的属性值的平均值(即原始属性值)。
可以理解地,将点云规则化为空间中的块,有利于点云中点与点的关系描述,进而能够表达特定的编码顺序,按照一定的顺序编码每一个voxel,即编码voxel所代表的点(或称“子节点”)。一种常用的编码顺序为交叉分离式的莫顿顺序,图5展示了莫顿码在二维空间中的编码顺序,以8×8大小的块为例,其中箭头的顺序表示莫顿顺序下子节点的编码顺序。501为块中2×2个像素的“z”字形莫顿编码顺序,502为4个2×2块之间的“z”字形莫顿编码顺序,503为4个4×4块之间的“z”字形莫顿编码顺序,组成为整个8×8块的莫顿编码顺序。扩展到三维空间中的莫顿编码顺序如图6所示,图中展示了16个子节点,每个“z”字内部,每个“z”与“z”之间的莫顿编码顺序都是先沿x轴方向编码,再沿y轴,最后沿z轴。
(4)点云压缩中的属性帧内预测
点云压缩中的属性帧内预测部分,对于颜色属性,主要参考当前子节点的相邻子节点对当前子节点进行预测,根据属性预测值与当前子节点的原始属性值计算残差信息后经量化等过程,将残差信息编入码流后传输到解码端;解码端接收并解析码流后,经反变换与反量化等步骤得到残差信息,解码端以相同过程预测得到属性预测值,与残差信息叠加后得到当前子节点的属性重建值。
在此过程中,属性帧内预测利用子节点与子节点之间的几何关系,以当前子节点的几何共面、共线和/或共点子节点作为预测子节点,同时预测子节点需要满足的条件是在当前子节点之前编码完成,然后将权重值设为预测子节点与当前子节点的几何曼哈顿距离的倒数,即共面子节点权重为1,共线子节点权重为1/2,共点子节点权重为1/3,计算所有预测子节点的属性重建值的加权平均值为属性预测值(特别地,对于编码的第一个子节点,没有参考点进行预测,其属性预测值设为0)。根据这两个条件:
条件a)与当前子节点满足共面、共线关系和/或共点关系;
条件b)在当前子节点之前编码。
如图7A至7C所示,假设当前子节点O的序号为7,共有6个面,12条边,8个顶点,如图7A所示,共面子节点有3、5、6、14、21和35;如图7B所示,共线子节点有1、2、4、10、12、17、20、28、33、34、42和49;如图7C所示,共点子节点有0、8、16、24、32、40、48和56。
在所有这些共面子节点、共线子节点和共点子节点中,无论当前子节点的位置如何,可能满足“在当前子节点之前编码完成”条件的为共面子节点3、5和6,以及共线子节点1、2、4、10、12、17、20、33和34,以及共点子节点0、8、16、24、32、40和48,因此预测子节点在共面子节点3、5和6,以 及共线子节点1、2、4、10、12、17、20、33和34,以及共点子节点0、8、16、24、32、40和48中产生。
(5)属性帧内预测在点云编码框架中的位置
如图3A和图3B所示,该技术作用于PCRM点云编码框架中的帧内预测部分,对编码端和解码端同时作用。
本申请实施例提供一种帧内预测方法,所述方法适用于编码端,该方法可以应用于具有信息处理能力的电子设备,所述电子设备可以是笔记本电脑、电视机、投影仪、手机、计算机、平板电脑、虚拟现实(Virtual Reality,VR)头戴设备等任何具有点云视频编解码功能或者具有编码功能的设备。
图8为本申请实施例帧内预测方法的实现流程示意图,如图8所示,所述方法可以包括以下步骤801至步骤804:
步骤801,基于第一搜索范围,搜索得到当前子节点的第一预测子节点;
步骤802,在所述第一预测子节点的数目小于第一阈值的情况下,基于第二搜索范围,搜索得到所述当前子节点的第二预测子节点;
步骤803,在所述第一和第二预测子节点的总数小于所述第一阈值且搜索轮次数小于N的情况下,基于第三搜索范围,搜索得到所述当前子节点的第三预测子节点,直至达到搜索结束条件,进入步骤804;其中,搜索结束条件包括:搜索轮次数达到N或者搜索轮次数未达到N时得到的所有预测子节点的数目大于或等于所述第一阈值;其中,各个搜索范围互不交叠;其中,N为大于或等于2的门限值;
步骤804,基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值。
在本申请实施例中,通过N这一门限值,限制预测子节点的搜索轮次,如此经过N轮搜索(也即已使用的搜索范围数达到该门限值),即使得到的所有预测子节点的数目小于第一阈值也要结束基于搜索范围的预测子节点的搜索,从而缩短搜索时延,提高编码效率。
以下分别对上述各个步骤的进一步的可选的实施方式以及相关名词等进行说明。
在步骤801中,基于第一搜索范围,搜索得到当前子节点的第一预测子节点。
在一些实施例中,可以基于当前子节点的上级节点和第一条件,确定第一目标上级节点;以所述第一目标上级节点作为所述第一搜索范围。
在本申请中,上级节点可以是当前子节点的父节点,也可以是其祖父节点或曾祖父节点等,对于上级节点的类型不做限制。当然,确定的目标上级节点与当前子节点的上级节点的级别可以相同,也可以不同。比如,当前子节点的上级节点为父节点,目标上级节点也是父节点级别的,即该节点也包括8个子节点。又如,当前子节点的上级节点为父节点,目标上级节点是祖父级别的,即该节点包括8×8=64个字节点。但是当前子节点的上级节点和目标上级节点的类型不局限于上述示例。
所谓第一条件,就是选取第一目标上级节点的准则。在本申请中,对于第一条件不做限制,可以是任意的,以最终能够得到准确的属性预测值为宜。
在一些实施例中,第一条件包括:当前子节点占据其所在父节点的边的一个或多个共线父节点、占据的边的端点的一个或多个共点父节点、占据该父节点的面的一个或多个共面父节点和/或当前子节点的父节点、且这些父节点是在当前子节点之前编码完成的非空节点。
示例性的,如图9所示的901,假设当前子节点在父节点(索引号为7)中的方位为左下前方,即图中白色圆点所示的位置,第一条件包括:当前子节点占据该父节点的边的共线父节点、以及占据该父节点的面的共面父节点、且这些父节点是在当前子节点之前编码完成的非空节点,得到该当前子节点的第一目标上级节点的索引号为3、5、6、1、2和4。同理,如图9所示的902至908,可以得到当前子节点在其父节点中的不同方位所对应的第一目标上级节点,在此不再一一描述。
在一些实施例中,当前子节点的上级节点为祖父节点,相应的第一条件可以与上述示例类似,第一条件包括:当前子节点的父节点在当前子节点的祖父节点中占据的边的一个或多个共线祖父节点、占据的边的端点的一个或多个共点祖父节点和/或占据的面的一个或多个共面祖父节点。
当然,第一条件并不局限于上述实施例。在另一些实施例中,第一条件还可以包括:与当前子节点的上级节点的距离小于第一距离的在当前子节点之前编码的上级节点。第一距离的类型可以是曼哈顿距离或欧式距离等。
在步骤802中,在所述第一预测子节点的数目小于第一阈值的情况下,基于第二搜索范围,搜索得到所述当前子节点的第二预测子节点。
在一些实施例中,所述方法还包括:在第一预测子节点的数目大于或等于第一阈值的情况下,基于第一预测子节点的属性值(例如属性重建值、插值等),确定当前子节点的属性预测值。
在本申请中,对于第一阈值的大小不做限制,可以是任意值,以最终能够得到准确的属性预测值为宜。示例性的,第一阈值为3或6等。
在一些实施例中,可以这样实现步骤802:基于当前子节点的上级节点和第二条件,确定第二目标上级节点;以所述第二目标上级节点作为所述第二搜索范围。
所谓第二条件,同样是选取第二目标上级节点的准则。在本申请中,对于第二条件不做限制,可以是任意的,以最终能够得到准确的属性预测值为宜。
在一些实施例中,第二条件包括:当前子节点的父节点的一个或多个共线父节点、一个或多个共面父节点和/或一个或多个共点父节点,且是在当前子节点之前编码的非空的非第一目标上级节点。
示例性的,如图9所示的902,假设当前子节点的父节点(索引号为7)中的方位为左上前方,即图中白色圆点所示的位置,第二条件包括:当前子节点的父节点的共面父节点、且是在当前子节点之前编码的非空的非第一目标上级节点,得到该当前子节点的第二目标上级节点的索引号为6、2和4。同理,如图9所示的903至908,可以得到当前子节点在其父节点中的不同方位所对应的第二目标上级节点,在此不再一一描述。
在一些实施例中,当前子节点的上级节点为祖父节点,相应的第二条件可以与上述示例类似,第二条件包括:当前子节点的祖父节点的一个或多个共线祖父节点、一个或多个共面祖父节点和/或一个或多个共点祖父节点,且是在当前子节点之前编码的非空的非第一目标上级节点。
当然,第二条件并不局限于上述实施例,第二目标上级节点也不局限于是父节点或祖父节点级别的,还可以是更高级别的节点。
在另一些实施例中,第二条件还可以包括:与当前子节点的上级节点的距离小于第二距离的在当前子节点之前编码的上级节点。第二距离的类型可以是曼哈顿距离或欧式距离等。第二距离大于或等于第一距离。
在步骤803中,在所述第一和第二预测子节点的总数小于所述第一阈值且搜索轮次数小于N的情况下,基于第三搜索范围,搜索得到所述当前子节点的第三预测子节点,直至达到搜索结束条件,进入步骤804;其中,搜索结束条件包括:搜索轮次数达到N或者搜索轮次数未达到N时得到的所有预测子节点的数目大于或等于所述第一阈值;其中,各个搜索范围互不交叠;其中N为大于或等于2的门限值。
在一些实施例中,在所述第一预测子节点和所述第二预测子节点的总数大于或等于所述第一阈值的情况下,根据所述第一预测子节点和所述第二预测子节点的属性值,确定所述当前子节点的属性预测值。
在所述搜索轮次数达到N,一种实施例是进入步骤804;另一种实施例是:从所述当前子节点的编码顺序下的前K个非空的候选子节点中,搜索得到所述当前子节点的第四预测子节点;然后进入步骤804。
所谓各个搜索范围互不交叠,是指各个搜索范围包括的节点不同。
在一些实施例中,在搜索轮次数达到N且得到的所有预测子节点的数目大于或等于所述第一阈值的情况下,基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值。
在一些实施例中,在搜索轮次数达到N时,无论得到的所有预测子节点的数目是否大于或等于第一阈值,均结束预测子节点的搜索,基于已得到的当前子节点的所有预测子节点的属性值,确定当前子节点的属性预测值。
在另一些实施例中,在搜索轮次数达到N且得到的所有预测子节点的数目小于所述第一阈值的情况下,从所述当前子节点的编码顺序下的前K个非空的候选子节点中,搜索得到所述当前子节点的第四预测子节点;基于所述第一、第二、第三和第四预测子节点的属性值,即得到的当前子节点的所有预测子节点的属性值,确定所述当前子节点的属性预测值。
进一步地,在一些实施例中,可以这样搜索得到第四预测子节点,即,按照所述编码顺序或编码顺序的反向顺序,依次遍历所述前K个非空的候选子节点:
当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;
当预测子节点的当前总数大于或等于所述第一阈值且小于第二阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,将当前候选子节点确定为第四预测子节点;
当预测子节点的当前总数等于所述第二阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点;或者,当预测子节点的当前总数等于所述第二阈值时,如果当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前编码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
在另一些实施例中,也可以这样搜索得到第四预测子节点,即,按照所述编码顺序或编码顺序的反 向顺序,依次遍历所述前K个非空的候选子节点:
当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;
当预测子节点的当前总数大于或等于所述第一阈值且小于第二阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,将当前候选子节点确定为第四预测子节点;
当预测子节点的当前总数等于所述第二阈值时,如果当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前编码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
在本申请实施例中,K可以是任意值,对于K的范围不做限定。例如,K为32、56、128或256等。这里,对于第一阈值和第二阈值的数值也不做限定,以既不失帧内预测的准确性又不失搜索效率为宜。例如,第一阈值为3,第二阈值为6;再如,第一阈值为3,第二阈值为16等。
在另一些实施例中,也可以不设定第二阈值,即也可以这样搜索得到第四预测子节点,即,按照所述编码顺序或者编码顺序的反向顺序,依次遍历所述前K个非空的候选子节点:
当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;
当预测子节点的当前总数等于所述第一阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
在又一些实施例中,也可以这样搜索得到第四预测子节点,即,按照所述编码顺序或者编码顺序的反向顺序,依次遍历所述前K个非空的候选子节点:
当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;
当预测子节点的当前总数等于所述第一阈值时,如果当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前编码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
这里,第一阈值可以是任意值,以既不失帧内预测的准确性又不失搜索效率为宜。例如,第一阈值为3、6等。
可以理解地,在本申请实施例中,在设定N这一门限值的前提下,使得电子设备在得到的预测子节点的数量不够的情况下,能够尽可能地在搜索范围内找够,即,尽量避免因为不够而从所述当前子节点的编码顺序下的前K个非空的候选子节点中进行搜索,从而进一步节约搜索时延,进而进一步提升编码效率。之所以搜索范围少于前K个非空的候选子节点,是因为搜索范围中未必一定包括当前子节点之前已编码的这K个非空的候选子节点。
需要说明的是,在本申请实施例中,对于采用何种编码顺序,对子节点依次进行编码,对此不做限定。编码顺序可以是莫顿顺序、希尔伯特顺序或者其他编码顺序等。
在本申请实施例中,对于第一阈值和第二阈值的具体数值不做限定,可以是任意范围,以不失搜索效率的同时以满足帧内预测准确性为宜。在一些实施例中,第一阈值为3,第二阈值为6;如此,在不大幅增加搜索复杂度的情况下,使用更多的预测子节点能够提高帧内预测准确性,从而减小残差占用的带宽。
需要说明的是,在遍历前K个非空的候选子节点,仍未找够第一阈值个预测子节点,或者少于第二阈值个预测子节点,可以直接基于已有的预测子节点的属性值进行属性预测,也可以将预测子节点填充够第二阈值个再确定属性预测值;其中,填充的预测子节点的属性值可以是任意值,例如,其属性值是已确定的任一预测子节点的属性重建值,又如,其属性值为一固定常数,再如,其属性值是已确定的预测子节点中与当前预测子节点的距离最近的预测子节点的属性值。
在一些实施例中,当前子节点为待编码的第M个子节点;其中,M大于或等于4,这样在保证当前子节点之前的子节点不少于4的情况下,确保找出尽可能准确的预测子节点,从而提高当前子节点的属性预测值的准确性,进而使得相应的残差占用更小的带宽。
对于第一个子节点至第M-1个子节点,在一些实施例中,在当前子节点为第一个子节点的情况下,将特定属性值设置为所述第一个子节点的属性预测值;在所述当前子节点为所述第一个子节点的后续子节点且为所述第M个子节点之前的子节点的情况下,根据已编码的子节点的属性重建值,得到所述后续子节点的属性预测值。
其中,特定属性值可以是任意值,在本申请实施例中对此不做限定。例如,特定属性值为(0,0,0);又如,特定属性值为(128,128,128);再如,特定属性值为(0,64,0);又如,特定属性值为 (128,0,0)。当然,对于特定属性值的三个分量可以相等,也可以不相等。
上文提到了搜索范围是上级节点级别的,在另一些实施例中,搜索范围还可以是子节点级别的,但是前者相比于后者,计算量较小,这是因为在同等搜索范围内,前者需要确定的目标上级节点较少。举例而言,假设目标上级节点的级别为父节点,需要确定7个目标上级节点,那么根据设置的条件需要计算7次索引号;而如果搜索范围是子节点级别的,则需要计算计算7×8=56次索引号,显然前者的计算量较小。
对于搜索范围是上级节点级别的,无论是第一搜索范围还是第二搜索范围或其他搜索范围等,在一些实施例中,可以基于距离从目标上级节点包括的子节点中选取预测子节点;例如,将目标上级节点中与当前子节点的距离小于特定距离的且在当前子节点之前编码的非空子节点,确定为预测子节点。该距离的类型可以是多种多样的,比如,可以是曼哈顿距离或欧式距离等。
以下以子节点级别的搜索范围为例进行说明。
在一些实施例中,所述方法还包括:基于当前子节点和第三条件,确定第一目标子节点;以所述第一目标子节点作为所述第一搜索范围;基于所述当前子节点和第四条件,确定第二目标子节点;以所述第二目标子节点作为所述第二搜索范围。
进一步地,在一些实施例中,第三条件包括:与所述当前子节点的距离小于或等于第三距离的子节点;所述第四条件包括:与所述当前子节点的距离小于或等于第四距离的子节点;其中,所述第四距离大于或等于所述第三距离。
需要说明的是,对于第三距离和第四距离的类型不做限定,可以是曼哈顿距离或欧式距离等。
可以理解地,在第一搜索范围内进行预测子节点的查找过程中,可能还未遍历完所有子节点,第一预测子节点的总数已经达到第一阈值了,此时可以结束查找,直接基于这些预测子节点的属性值得到当前子节点的属性预测值,还可以继续查找下一子节点,如果下一子节点为在当前子节点之前编码的非空子节点且与当前子节点的距离(例如曼哈顿距离)小于当前预测子节点中与当前子节点的最大距离,则将该子节点作为第一预测子节点替换该最大距离对应的第一预测子节点。
在一些实施例中,在遍历第一搜索范围内的每一子节点之后,确定的第一预测子节点的总数大于或等于第一阈值但是小于第二阈值,此时,可以不再继续查找更多的预测子节点,而是基于当前得到的第一预测子节点的属性值,得到当前子节点的属性预测值;或者,还可以从所述当前子节点的编码顺序下的前K个非空的候选子节点中,搜索得到所述当前子节点的第四预测子节点。
需要说明的是,在第一搜索范围内的子节点中确定第一预测子节点时,可以遍历搜索第一搜索范围内的子节点,也可以按照与当前子节点的距离由近到远的顺序进行遍历搜索。例如,先遍历搜索与当前子节点的距离为第一子距离的子节点,如果在此范围内确定的第一预测子节点的总数满足结束查找条件(例如结束查找条件为当前确定的预测子节点的总数大于或等于第一阈值、或者等于第二阈值),则不再继续扩大范围搜索,也就是不再搜索第一搜索范围内的其他子节点,基于当前得到的第一预测子节点的属性值,得到当前子节点的属性预测值;如果在第一子距离的范围内确定的第一预测子节点的总数不满足结束查找条件,则进一步扩大搜索范围,基于遍历搜索与当前子节点的距离为第二子距离的子节点,以此类推。
在一些实施例中,可以将已编码的子节点的属性重建值的均值作为后续子节点的属性预测值。在一些实施例中,也可以将已编码的子节点的属性重建值的加权平均值作为后续子节点的属性预测值;其中,已编码的子节点的权重与该子节点相对于当前子节点的距离呈负相关。例如,已编码的子节点的权重为该子节点到当前子节点的距离的倒数。
与前文类似地,在一些实施例中,在第二搜索范围内的子节点中进行查找的过程中,可能还未遍历完所有子节点,当前确定的第二预测子节点的总数已经达到第一阈值或第二阈值了,此时可以结束查找,直接基于这些预测子节点的属性值得到当前子节点的属性预测值,还可以继续查找下一子节点,如果下一子节点为在当前子节点之前编码的非空子节点且与当前子节点的距离(例如曼哈顿距离)小于当前第二预测子节点中与当前子节点的最大距离,则将该子节点作为第二预测子节点替换该最大距离对应的第二预测子节点。
进一步地,在一些实施例中,所述第一目标子节点包括所述当前子节点的一个或多个共面子节点、所述当前子节点的一个或多个共线子节点和/或所述当前子节点的一个或多个共点子节点。
更进一步地,在一些实施例中,所述第一目标子节点和所述第二目标子节点包括在所述当前子节点之前完成编码的子节点。
例如,以编码顺序为莫顿顺序为例,所述当前子节点的共面子节点包括索引为3、5和6的子节点,所述当前子节点的共线子节点包括索引为1、2、4、10、12、17、20、33和34的子节点,所述当前子节点的共点子节点包括索引为0、8、16、24、32、40和48的子节点。
以曼哈顿距离为例,如图10所示,所述第三距离大于或等于3,例如图10所示,第四距离为6(相应地,从垂直距离的角度来讲,第四距离为2,单位为子节点,即,目标子节点到当前子节点的表面所在的平面的距离为2个子节点),所述第二目标子节点为与当前子节点的曼哈顿距离为2和/或3的子节点。例如图11的(a)至(f)所示,第二目标子节点包括索引为24、40、48、10、12、17、20、25、26、33、34、41、44、50、52、84、98、140、161、266、273的子节点。
在步骤804中,基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值。
在一些实施例中,可以根据所述当前子节点的预测子节点的属性重建值,得到所述当前子节点的属性预测值。
进一步地,在一些实施例中,可以将上述这些预测子节点的属性重建值的平均值或者加权平均值作为当前子节点的属性预测值;其中,预测子节点的权重值和与当前子节点的距离呈负相关,例如,权重值为该预测子节点与当前子节点的距离的倒数。
需要说明的是,本申请实施例中在一个搜索范围内进行预测子节点的搜索时,可以按照某种规则进行逐步搜索。比如,对于上级节点级别的搜索范围,先搜索共面目标上级节点中的子节点、再搜索共线目标上级节点中的子节点等。又如,对于子节点级别的搜索范围,先搜索共面子节点、再搜索共线子节点、最后搜索共点子节点。当然也不限于此示例,还可以按照其他规则进行逐步搜索。
还需要说明的是,无论是上级级别的搜索范围,还是子节点级别的搜索范围,在每一轮搜索中,可以针对相应搜索范围内的所有子节点进行搜索,也可以是针对相应搜索范围内的部分子节点进行搜索,从而得到预测子节点。可以理解地,在某一搜索范围内,可能还未遍历所有子节点,当前得到的所有预测子节点的数目已达到了第一阈值或第二阈值,在一些实施例中,此时可以结束搜索,基于当前得到的所有预测子节点的属性值进行当前子节点的属性预测;在另一些实施例中,还可以继续搜索,遍历其中的每一候选子节点,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,或者,当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前编码/解码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
本申请实施例提供一种点云编码方法,所述方法包括:对点云的当前子节点执行上述编码端的帧内预测方法中的步骤,得到所述当前子节点的属性预测值;确定所述当前子节点的属性预测值与所述当前子节点的原始属性值之间的残差;将所述当前子节点的残差编码为属性码流。
在一些实施例中,确定所述当前子节点的重建残差;将重建残差与所述当前子节点的属性预测值叠加,得到所述当前子节点的属性重建值。
在一些实施例中,可以从当前子节点的残差进行变换和/或量化等处理,然后将处理后的残差进行反量化和/或反变换等后处理,从而得到当前子节点的重建残差。
需要说明的是,以上点云编码方法的实施例的描述,与上述编码端的帧内预测方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请点云编码方法实施例中未披露的技术细节,请参照本申请编码端的帧内预测方法实施例的描述而理解。
相应地,本申请实施例提供一种帧内预测方法,该方法适用于解码端,该方法可以应用于具有信息处理能力的电子设备,所述电子设备可以是电视机、投影仪、手机、计算机、平板电脑、虚拟现实(Virtual Reality,VR)头戴设备等任何具有点云视频编解码功能或者具有解码功能的设备。该方法可以包括以下步骤121至步骤124(因为与图8所示的步骤相同,为避免重复,这里省略了相应附图):
步骤121,基于第一搜索范围,搜索得到当前子节点的第一预测子节点;
步骤122,在所述第一预测子节点的数目小于第一阈值的情况下,基于第二搜索范围,搜索得到所述当前子节点的第二预测子节点;
步骤123,在所述第一和第二预测子节点的总数小于所述第一阈值且搜索轮次数小于N的情况下,基于第三搜索范围,搜索得到所述当前子节点的第三预测子节点,直至达到搜索结束条件,进入步骤124;其中,搜索结束条件包括:搜索轮次数达到N或者搜索轮次数未达到N时得到的所有预测子节点的数目大于或等于所述第一阈值;其中,各个搜索范围互不交叠;其中,N为大于或等于2的门限值
步骤124,基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值。
在一些实施例中所述方法还包括:在搜索轮次数达到N且得到的所有预测子节点的数目大于或等于所述第一阈值的情况下,基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值。
在一些实施例中,所述方法还包括:在搜索轮次数达到N且得到的所有预测子节点的数目小于所述第一阈值的情况下,从所述当前子节点的解码顺序下的前K个非空的候选子节点中,搜索得到所述当前子节点的第四预测子节点;基于所述第一、第二、第三和第四预测子节点的属性值,确定所述当前子节点的属性预测值。
进一步地,在一些实施例中,所述从所述当前子节点的解码顺序下的前K个候选子节点中,搜索得到所述当前子节点的第四预测子节点,包括:按照所述解码顺序或者所述解码顺序的反向顺序,依次遍历所述前K个非空的候选子节点:
当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;
当预测子节点的当前总数大于或等于所述第一阈值且小于第二阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,将当前候选子节点确定为第四预测子节点;
当预测子节点的当前总数等于所述第二阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,或者,当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前解码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
在另一些实施例中,所述从所述当前子节点的解码顺序下的前K个候选子节点中,搜索得到所述当前子节点的第四预测子节点,包括:
按照所述解码顺序或者所述解码顺序的反向顺序,依次遍历所述前K个非空的候选子节点:
当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;
当预测子节点的当前总数等于所述第一阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,或者,当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前解码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
在一些实施例中,所述方法还包括:在所述第一预测子节点和所述第二预测子节点的总数大于或等于所述第一阈值的情况下,或者,所述第一预测子节点的数目大于或等于所述第一阈值的情况下,根据所述第一预测子节点和所述第二预测子节点的属性值,确定所述当前子节点的属性预测值。
在一些实施例中,所述当前子节点为第M个子节点;其中,M大于或等于4。
在一些实施例中,所述方法还包括:在所述当前子节点为第一个子节点的情况下,将特定属性值设置为所述第一个子节点的属性预测值;在所述当前子节点为所述第一个子节点的后续子节点且为所述第M个子节点之前的子节点的情况下,根据已解码的子节点的属性重建值,得到所述后续子节点的属性预测值。
在一些实施例中,所述方法还包括:基于当前子节点的上级节点和第一条件,确定第一目标上级节点;以所述第一目标上级节点作为所述第一搜索范围;基于当前子节点的上级节点和第二条件,确定第二目标上级节点;以所述第二目标上级节点作为所述第二搜索范围。
进一步地,在一些实施例中,所述第一条件包括:所述当前子节点占据其所在父节点的边的共线父节点、占据的边的端点的共点父节点占据该父节点的面的共面父节点和/或当前子节点的父节点、且这些父节点是在当前子节点之前编码完成的非空节点。这里不限定共线父节点、共点父节点以及共面父节点等各个节点的数目是一个还是多个。
在一些实施例中,所述第一条件包括:与当前子节点的上级节点的距离小于第一距离的在当前子节点之前编码的上级节点。
进一步地,在一些实施例中,所述第二条件包括:当前子节点的父节点的共线父节点、共面父节点和/或共点父节点,且是在当前子节点之前编码的非空的非第一目标上级节点;或者,所述第二条件包括:与当前子节点的上级节点的距离小于第二距离的在当前子节点之前编码的上级节点;所述第二距离大于或等于所述第一距离。
需要说明的是,第二条件中所指的共线父节点可以是当前子节点的父节点的一个或多个共线父节点,第二条件中所指的共面父节点可以是当前子节点的父节点的一个或多个共面父节点,第二条件中所指的共点父节点可以是当前子节点的父节点的一个或多个共点父节点。总之,对于第二目标节点的数目不做限制,以获得预测准确性的同时不失搜索效率为宜。
在一些实施例中,所述方法还包括:基于当前子节点和第三条件,确定第一目标子节点;以所述第一目标子节点作为所述第一搜索范围;基于所述当前子节点和第四条件,确定第二目标子节点;以所述第二目标子节点作为所述第二搜索范围。
进一步地,在一些实施例中,所述第三条件包括:与所述当前子节点的距离小于或等于第三距离的子节点;所述第四条件包括:与所述当前子节点的距离小于或等于第四距离的子节点;其中,所述第四距离大于或等于所述第三距离。
示例性地,所述第一目标子节点包括所述当前子节点的共面子节点、所述当前子节点的共线子节点和/或所述当前子节点的共点子节点。例如,所述当前子节点的共面子节点包括索引为3、5和6的子节点,所述当前子节点的共线子节点包括索引为1、2、4、10、12、17、20、33和34的子节点,所述当前子节点的共点子节点包括索引为0、8、16、24、32、40和48的子节点。
在一些实施例中,所述第四距离大于或等于3,所述第二目标子节点为与当前子节点的曼哈顿距离为2和/或3的子节点。例如,所述第二目标子节点包括索引为24、40、48、10、12、17、20、25、26、33、34、41、44、50、52、84、98、140、161、266、273的子节点。
进一步地,所述第一目标子节点和所述第二目标子节点包括在所述当前子节点之前完成解码的子节点。
在一些实施例中,所述预测子节点包括在所述当前子节点之前解码的非空子节点。
在一些实施例中,所述基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值,包括:基于得到的预测子节点的属性重建值,得到所述当前子节点的属性预测值。
可以理解地,解码端的帧内预测方法与编码端的帧内预测方式是相同的,因此,以上解码端的帧内预测方法的实施例的描述,与上述编码端的帧内预测方法实施例的描述是类似的,具有同编码端的帧内预测方法实施例相似的有益效果。对于本申请解码端的帧内预测方法实施例中未披露的技术细节和其他实施例,请参照本申请编码端的帧内预测方法实施例的描述而理解。
本申请实施例提供一种点云解码方法,所述方法包括:对接收的属性码流进行解析,得到当前子节点的重建残差;对当前子节点执行如解码端所述的帧内预测方法中的步骤,得到当前子节点的属性预测值;根据当前子节点的属性预测值与所述重建残差,确定当前子节点的属性重建值。
需要说明的是,以上点云解码方法的实施例的描述,其中帧内预测方法与上述编码端的帧内预测方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请点云解码方法实施例中未披露的技术细节,请参照本申请编码端的帧内预测方法实施例的描述而理解。
应当注意,尽管在附图中以特定顺序描述了本申请中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等;或者,将不同实施例中步骤组合为新的技术方案。
下面将说明本申请实施例在一个实际的应用场景中的示例性应用。
PCRM的属性编码器的实施方法如下。在实施例1中,几何重建点云被八叉树递归划分成若干个voxel,每个voxel中的子节点按照莫顿编码顺序分别进行帧内预测过程计算属性预测值,对于编码的第一个子节点执行如下的a1)、c1)、d1)过程,对于其余子节点执行b1)、c1)、d1)过程:
a1)当当前子节点为编码的第一个子节点时,此时没有可参考的子节点进行预测,该当前子节点的属性预测值设为(128,128,128);
b1)以当前子节点的共面子节点3、5和6,以及共线子节点1、2、4、10、12、17、20、33和34,以及共点子节点0、8、16、24、32、40和48作为预测子节点的查找范围,确定最少3个、最多6个子节点作为预测子节点,如下式(13)所示,计算所有预测子节点的属性重建值的加权平均值,将该加权平均值作为当前子节点的属性预测值。
其中,R为预测子节点集合, 为预测子节点的属性重建值,w i为预测子节点的权重,当预测子节点为空子节点时,w i=0。权重值为预测子节点与当前子节点的几何曼哈顿距离的倒数。
假设在上述共面子节点、共线子节点和共点子节点的范围内确定的预测子节点数小于3,则在当前子节点的莫顿顺序下的前32个子节点中查找曼哈顿距离最近的子节点,补齐3个子节点作为预测子节点,属性预测值为这3个子节点的加权平均值;
c1)残差为当前子节点的原始属性值和属性预测值之间的差,再对残差进行变换、量化等操作;
d1)将属性预测值与反量化、反变换等操作后的残差信息叠加,得到当前子节点的属性重建值,该值用来作为后续编码单元的参考信息。
PCRM的属性解码器的实施方法如下。几何重建点云被八叉树递归划分成若干个voxel,每个voxel中的子节点按照与编码过程相同的莫顿顺序分别进行帧内预测过程计算属性预测值,对于解码的第一个子节点执行a2)、c2)过程,其余点执行b2)、c2)过程:
a2)当前子节点为解码的第一个子节点时,没有可参考的子节点进行预测,该当前子节点的属性预测 值直接设为(128,128,128);
b)以当前子节点的共面子节点3、5和6,以及共线子节点1、2、4、10、12、17、20、33和34,以及共点子节点0、8、16、24、32、40和48作为预测子节点的查找范围,确定最少3个、最多6个子节点作为预测子节点,如下式(14)所示,计算所有预测子节点的属性重建值的加权平均值,将该加权平均值作为当前子节点的属性预测值,
其中,R为预测子节点集合, 为预测子节点的属性重建值,w i为预测子节点的权重,当预测子节点为空子节点时,w i=0。
假设在上述共面子节点、共线子节点和共点子节点的范围内确定的预测子节点数小于3,则在当前子节点的莫顿顺序下的前32个子节点中查找曼哈顿距离最近的子节点,补齐3个子节点作为预测子节点,属性预测值为这3个子节点的加权平均值;
c2)从码流中读取当前子节点的残差信息,经反量化、反变换等操作后与当前子节点的属性预测值进行叠加,得到当前子节点的属性重建值,该值可以用来作为后续编码单元的参考信息。
在一些实施例中,PCRM所采用的帧内预测方法,分成两个步骤:
a)以当前子节点的共面子节点、共线子节点和共点子节点作为预测子节点的查找范围,确定最少3个、最多6个子节点作为预测子节点;
b)当在共面子节点、共线子节点和共点子节点范围内确定的预测子节点数小于3时,在当前子节点的莫顿顺序下的前32个子节点中遍历查找曼哈顿距离最近的子节点,补齐3个子节点作为预测子节点。
本申请实施例的技术方案在编解码端均实行,在进行帧内预测时实行本技术方案,针对所有子节点,在实施例2中,提供一种基于距离优先的帧内预测算法。相比于上述实施例1,能够最大效率地找到距离最近的预测子节点。
实施例2的技术方案在编码端的帧内预测部分的一种具体实现如下。几何重建点云被八叉树递归划分成若干个voxel,每个voxel中的子节点按照莫顿编码顺序分别进行帧内预测过程计算属性预测值,对于编码的第1、2、3个子节点执行a)、f)、g)过程,其余点执行b)、c)、d)、e)、f)、g)过程。
a)当当前子节点为编码的第一个子节点时,没有可参考的子节点进行预测,该当前子节点的属性预测值直接设为(128,128,128);当前子节点为编码的第二个子节点时,以第一个子节点作为预测子节点,其属性预测值为第一个子节点的属性重建值;当前子节点为编码的第三个子节点时,以第一个子节点和第二个子节点作为预测子节点,其属性预测值为第一个子节点和第二个子节点的属性重建值的加权平均值;
b)如图12所示,以当前子节点的共面子节点3、5和6,以及共线子节点1、2、4、10、12、17、20、33和34,以及共点子节点0、8、16、24、32、40和48作为预测子节点的查找范围(因为这19个子节点是在第三距离下,可能在当前子节点之前编码完成的点),在这19个子节点的范围内(即第一搜索范围的一种示例)确定最少3(即第一阈值的一种示例)个、最多6(即第二阈值的一种示例)个子节点作为预测子节点;
c)假设在b)中确定的预测子节点数小于3,则将查找范围扩大一圈,即在b)中,预测子节点存在于如图13所示的3×3×3的范围内(即第一搜索范围的一种示例),扩大一圈后的预测子节点存在于如图13所示的5×5×5的范围内(即第二搜索范围的一种示例)。
此时当前子节点的索引为56,预测子节点查找范围为与当前子节点的曼哈顿距离为2的子节点24、40和48,以及与当前子节点的曼哈顿距离为3的子节点10、12、17、20、25、26、33、34、41、44、50、52、84、98、140、161、266和273(在第四距离下,可能在当前子节点之前编码完成的子节点一共有79个,但考虑到选的点数越多编解码复杂度也会相应增加,因此选择79个子节点中的21个),在这21个子节点的范围内(即第二搜索范围的一种示例)确定最少3个、最多6个子节点作为预测子节点。
如图11所示为当前子节点的左、前、下、右、后、上方向上的预测子节点查找范围的示意图。
d)假设在c)中确定的预测子节点数仍然小于3,则在当前子节点的莫顿顺序下的前32个子节点中查找曼哈顿距离最近的子节点,确定最少3个、最多6个子节点作为预测子节点,确定方法:
首先,按照莫顿顺序遍历判断32个第三候选子节点中的每一个子节点,当预测子节点数小于3时,将当前第三子节点直接确定为预测子节点,然后将所有的预测子节点按照与当前子节点的曼哈顿距离由 小到大排列;
当预测子节点数大于等于3且小于6时,若当前第三候选子节点的曼哈顿距离小于末尾的预测子节点的曼哈顿距离,则将该候选子节点选为预测子节点,然后将所有的预测子节点按照与当前子节点的曼哈顿距离由小到大的顺序重新排列;
当预测子节点数等于6时,若当前第三候选子节点的曼哈顿距离小于末尾的预测子节点的曼哈顿距离,或者,当前第三候选子节点的曼哈顿距离等于末尾的预测子节点的曼哈顿距离且当前第三候选子节点的索引小于末尾的预测子节点的索引,则用该候选子节点替换原末尾的预测子节点,然后将所有的预测子节点按照曼哈顿距离由小到大的顺序重新排列;
e)如下式(15)所示,计算所有预测子节点的属性重建值的加权平均值作为当前子节点的属性预测值:
其中,R为预测子节点集合, 为预测子节点的属性重建值,w i为预测子节点的权重,权重值为预测子节点与当前子节点的几何曼哈顿距离的倒数;
f)残差为当前子节点的原始属性值和预测值之间的差,然后对残差进行变换、量化等操作;
g)将属性预测值与反量化、反变换等操作后的残差信息叠加,得到当前子节点的属性重建值作为后续编码单元的参考信息。
实施例2的技术方案在解码端帧内预测具体流程如下。几何重建点云被八叉树递归划分成若干个voxel,每个voxel中的子节点按照与编码过程相同的莫顿顺序分别进行帧内预测过程计算属性预测值,对于解码的第一个子节点执行a)、f)过程,其余子节点执行b)、c)、d)、e)、f)过程:
a)当前子节点为解码的第一个子节点时,没有参考点进行预测,其属性预测值直接设为(128,128,128);当前子节点为解码的第二个子节点时,以第一个子节点作为预测子节点,其属性预测值为第一个子节点的属性解码值(即属性重建值);当前子节点为解码的第三个子节点时,以第一个子节点和第二个子节点作为预测子节点,其属性预测值为第一个子节点和第二个子节点的属性解码值的加权平均值;;
b)以当前子节点的共面子节点3、5和6,以及共线子节点1、2、4、10、12、17、20、33和34,以及共点子节点0、8、16、24、32、40和48作为预测子节点的查找范围,在这19个子节点的范围内确定最少3个、最多6个子节点作为预测子节点;
c)假设在b)中确定的预测子节点数小于3,则将查找范围扩大一圈,此时当前子节点的索引为56,预测子节点的查找范围为与当前子节点的曼哈顿距离为2的24、40、48,以及与当前子节点的曼哈顿距离为3的10、12、17、20、25、26、33、34、41、44、50、52、84、98、140、161、266和273,此时在这21个子节点的范围内确定最少3个、最多6个子节点作为预测子节点;
d)假设在c)中确定的预测子节点数仍然小于3,则在当前子节点莫顿顺序下的前32个子节点中查找曼哈顿距离最近的子节点,确定最少3个、最多6个子节点作为预测子节点,确定方法为:
首先,按照莫顿顺序遍历判断32个第三候选子节点中的每一个子节点,当预测子节点数小于3时,将当前第三子节点直接确定为预测子节点,然后将所有的预测子节点按照与当前子节点的曼哈顿距离由小到大排列;
当预测子节点数大于等于3且小于6时,若当前第三候选子节点的曼哈顿距离小于末尾的预测子节点的曼哈顿距离,则将该候选子节点选为预测子节点,然后将所有的预测子节点按照与当前子节点的曼哈顿距离由小到大的顺序重新排列;
当预测子节点数等于6时,若当前第三候选子节点的曼哈顿距离小于末尾的预测子节点的曼哈顿距离,或者,当前第三候选子节点的曼哈顿距离等于末尾的预测子节点的曼哈顿距离且当前第三候选子节点的索引小于末尾的预测子节点的索引,则用该候选子节点替换原末尾的预测子节点,然后将所有的预测子节点按照曼哈顿距离由小到大的顺序重新排列;
e)如下式(16)所示,计算所有预测子节点的属性解码值的加权平均值作为当前子节点的属性预测值:
其中,R为预测子节点集合, 为预测子节点的属性重建值,w i为预测子节点的权重,权重值为预测子节点与当前子节点的几何曼哈顿距离的倒数;
f)从码流中读取当前子节点的残差信息,经反量化、反变换等操作后与当前子节点的属性预测值进行叠加,得到当前子节点的属性重建值作为后续编码单元的参考信息。
实施例2的技术方案作用于编解码框架中的帧内预测部分。
在本申请实施例中,可以采用多种编码顺序,包括但不限于莫顿顺序或希尔伯特顺序等;
在上述实施例中“最少3个、最多6个节点作为预测子节点”所描述的3和6可以是其它数值组合,例如3和16,等等;
本申请实施例中,对于第四距离下的预测子节点查找范围(即第二搜索范围)可以扩大成79个;
基于距离优先的帧内预测算法可以采用多种权重值选取方法,包括但不限于基于欧式距离的权重、固定常数权重等。
本申请实施例将适用于帧内预测编解码部分,通过第三距离与第四距离的查找范围,首先定位到距离当前子节点最近的子节点,当找不到时,才在莫顿顺序下的前32个子节点当中进行全搜索,这样可以最大效率地找到离当前子节点最近的预测子节点,从而能够提升编码效率。
在一些实施例中,可以将上述实施例中第四距离下的预测子节点查找范围(即第二搜索范围的一种示例)扩大成79个子节点,如图14所示,加上索引为0、1、2、3、4、5、6、8、9、11、13、16、18、19、22、27、32、36、37、38、45、54、64、66、68、70、80、82、86、96、100、102、128、129、132、133、136、137、141、160、164、165、192、196、256、257、258、259、264、265、267、272、274、275、320、322、384和385的子节点。
在一些实施例中,将该实施例中采用基于曼哈顿距离的加权平均方式改为其它方式,如基于欧式距离的加权平均、基于固定常数的加权平均等。
实施例中“假设在c)中确定的预测子节点数仍然小于3,则在当前子节点莫顿顺序下的前32个点中查找曼哈顿距离最近的点”所述的32可以是其它数值,如128,等等;
实施例中“计算所有预测子节点的属性解码值计算当前子节点的属性预测值”所使用的加权平均公式也可以用其它计算方式替换;
“按照权重值由大到小的顺序”等价于按照权重值的倒数由小到大的顺序;
在本申请实施例中,可以采用多种权重值选取方法,包括但不限于基于曼哈顿距离的权重、基于欧式距离的权重、固定常数权重等;
如图15所示,第二搜索范围可增加至58个子节点,相应索引号为:0、1、2、3、4、5、6、8、9、11、13、16、18、19、22、27、32、36、37、38、45、54、64、66、68、70、80、82、86、96、100、102、128、129、132、133、136、137、141、160、164、165、192、196、256、257、258、259、264、265、267、272、274、275、320、322、384、385。
实施例中分为两层,当在b)中确定的范围内查找到的预测子节点数小于3时,则将范围扩大为c)中所述,在此处可以扩展为:分为N层,如1、2、4、10、12、17、20、33、34为一层,8、16、24、32、40、48为一层,25、26、41、44、50、52、84、98、140、161、266、273,等等;
需要说明的是,本文中提到的子节点级别的搜索范围,同样适用于目标上级节点级别的搜索范围,只不过索引号指代的是上级节点级别的节点。比如,图15所示的第二搜索范围,同样适用于上级节点级别的搜索范围,即,第二搜索范围包括58个第二目标上级节点,相应索引号为:0、1、2、3、4、5、6、8、9、11、13、16、18、19、22、27、32、36、37、38、45、54、64、66、68、70、80、82、86、96、100、102、128、129、132、133、136、137、141、160、164、165、192、196、256、257、258、259、264、265、267、272、274、275、320、322、384、385。其他示例也是如此,这里不再一一说明。
基于前述的实施例,本申请实施例提供的帧内预测装置,包括所包括的各模块、以及各模块所包括的各单元,可以通过电子设备中的编码器或处理器来实现;当然也可以通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)或图形处理器(Graphics Processing Unit,GPU)等。
图16为本申请实施例帧内预测装置的结构示意图,如图16所示,帧内预测装置160,应用于编码端,包括:
第二搜索模块161,配置成基于第一搜索范围,搜索得到所述当前子节点的第一预测子节点;以及在所述第一预测子节点的数目小于第一阈值的情况下,基于第二搜索范围,搜索得到所述当前子节点的第二预测子节点;在所述第一和第二预测子节点的总数小于所述第一阈值且搜索轮次数小于N,基于第三搜索范围,搜索得到所述当前子节点的第三预测子节点;当搜索轮次数达到N时或者,当搜索轮次数未达到N时得到的所有预测子节点的数目大于或等于所述第一阈值时,触发第二帧内预测模块;其中,各个搜索范围互不交叠,N为大于或等于2的门限值;
所述第二帧内预测模块162,配置成基于得到的预测子节点的属性值,得到所述当前子节点的属性 预测值。
在一些实施例中,第二帧内预测模块162,配置成:在搜索轮次数达到N且得到的所有预测子节点的数目大于或等于所述第一阈值的情况下,基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值。
在一些实施例中,第二搜索模块161,配置成:在搜索轮次数达到N且得到的所有预测子节点的数目小于所述第一阈值的情况下,从所述当前子节点的编码顺序下的前K个非空的候选子节点中,搜索得到所述当前子节点的第四预测子节点;触发第二帧内预测模块,以使其基于所述第一、第二、第三和第四预测子节点的属性值,确定所述当前子节点的属性预测值。
在一些实施例中,第二搜索模块161,配置成:按照所述编码顺序或编码顺序的反向顺序,依次遍历所述前K个非空的候选子节点:当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;当预测子节点的当前总数大于或等于所述第一阈值且小于第二阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,将当前候选子节点确定为第四预测子节点;当预测子节点的当前总数等于所述第二阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点;或者,当预测子节点的当前总数等于所述第二阈值时,如果当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前编码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
在一些实施例中,第二搜索模块161,配置成:按照所述编码顺序或编码顺序的反向顺序,依次遍历所述前K个非空的候选子节点:当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;当预测子节点的当前总数大于或等于所述第一阈值且小于第二阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,将当前候选子节点确定为第四预测子节点;当预测子节点的当前总数等于所述第二阈值时,如果当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前编码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
在一些实施例中,第二搜索模块161,配置成:按照所述编码顺序或编码顺序的反向顺序,依次遍历所述前K个非空的候选子节点:当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;当预测子节点的当前总数等于所述第一阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点;或者,当预测子节点的当前总数等于所述第一阈值时,如果当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前编码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
在一些实施例中,第二搜索模块161,配置成:按照所述编码顺序或编码顺序的反向顺序,依次遍历所述前K个非空的候选子节点:当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;当预测子节点的当前总数等于所述第一阈值时,如果当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前编码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
在一些实施例中,第二搜索模块161,配置成:在所述第一预测子节点和所述第二预测子节点的总数大于或等于所述第一阈值的情况下,或者,所述第一预测子节点的数目大于或等于所述第一阈值的情况下,触发第二帧内预测模块162,使其根据所述第一预测子节点和所述第二预测子节点的属性值,确定所述当前子节点的属性预测值。
在一些实施例中,所述当前子节点为第M个子节点;其中,M大于或等于4。
在一些实施例中,第二帧内预测模块162,还配置成:在所述当前子节点为第一个子节点的情况下,将特定属性值设置为所述第一个子节点的属性预测值;在所述当前子节点为所述第一个子节点的后续子节点且为所述第M个子节点之前的子节点的情况下,根据已编码的子节点的属性重建值,得到所述后续子节点的属性预测值。
在一些实施例中,第二搜索模块161,还配置成,所述方法还包括:基于当前子节点的上级节点和第一条件,确定第一目标上级节点;以所述第一目标上级节点作为所述第一搜索范围;基于当前子节点的上级节点和第二条件,确定第二目标上级节点;以所述第二目标上级节点作为所述第二搜索范围。
在一些实施例中,所述第一条件包括:所述当前子节点占据其所在父节点的边的共线父节点、占据的边的端点的共点父节点占据该父节点的面的共面父节点和/或当前子节点的父节点、且这些父节点是在当前子节点之前编码完成的非空节点;或者,所述第一条件包括:与当前子节点的上级节点的距离小于第一距离的在当前子节点之前编码的上级节点。
在一些实施例中,所述第二条件包括:当前子节点的父节点的共线父节点、共面父节点和/或共点父节点,且是在当前子节点之前编码的非空的非第一目标上级节点;或者,所述第二条件包括:与当前子节点的上级节点的距离小于第二距离的在当前子节点之前编码的上级节点;所述第二距离大于或等于所述第一距离。
在一些实施例中,第二搜索模块161,还配置成:基于当前子节点和第三条件,确定第一目标子节点;以所述第一目标子节点作为所述第一搜索范围;基于所述当前子节点和第四条件,确定第二目标子节点;以所述第二目标子节点作为所述第二搜索范围。
在一些实施例中,所述第三条件包括:与所述当前子节点的距离小于或等于第三距离的子节点;所述第四条件包括:与所述当前子节点的距离小于或等于第四距离的子节点;其中,所述第四距离大于或等于所述第三距离。
在一些实施例中,所述第一目标子节点包括所述当前子节点的共面子节点、所述当前子节点的共线子节点和/或所述当前子节点的共点子节点。
在一些实施例中,所述第一目标子节点和所述第二目标子节点包括在所述当前子节点之前完成编码的子节点。
以上关于装置160的实施例的描述,与上述编码端的帧内预测方法实施例的描述是类似的,具有同这些方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请编码端的帧内预测方法实施例的描述而理解。
基于前述的实施例,本申请实施例提供的编码装置,包括所包括的各模块、以及各模块所包括的各单元,可以通过电子设备中的编码器或处理器来实现;当然也可以通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)或图形处理器(Graphics Processing Unit,GPU)等。
图17为本申请实施例编码装置的结构示意图,如图17所示,编码装置170,包括:
帧内预测装置160,配置成对点云的当前子节点执行编码端的帧内预测方法中的步骤,得到所述当前子节点的属性预测值;
确定模块171,配置成确定所述当前子节点的属性预测值与所述当前子节点的原始属性值之间的残差;
编码模块172,配置成将所述当前子节点的残差编码为属性码流。
在一些实施例中,确定模块171,还配置成:确定所述当前子节点的重建残差;重建模块,用于将重建残差与所述当前子节点的属性预测值叠加,得到所述当前子节点的属性重建值。
以上关于装置170的实施例的描述,与上述编码端的帧内预测方法实施例的描述是类似的,具有同这些方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请编码端的帧内预测方法实施例的描述而理解。
图18为本申请实施例帧内预测装置的结构示意图,如图18所示,帧内预测装置180应用于解码端,包括:
第一搜索模块181,配置成:基于第一搜索范围,搜索得到当前子节点的第一预测子节点;在所述第一预测子节点的数目小于第一阈值的情况下,基于第二搜索范围,搜索得到所述当前子节点的第二预测子节点;以及,在所述第一和第二预测子节点的总数小于所述第一阈值且搜索轮次数小于N的情况下,基于第三搜索范围,搜索得到所述当前子节点的第三预测子节点;当搜索轮次数达到N时,或者,当搜索轮次数未达到N时得到的所有预测子节点的数目大于或等于所述第一阈值时,触发第一帧内预测模块182;其中,各个搜索范围互不交叠,N为大于或等于2的门限值;
第一帧内预测模块182,配置成基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值。
在一些实施例中,在搜索轮次数达到N且得到的所有预测子节点的数目大于或等于所述第一阈值的情况下,基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值。
在一些实施例中,第一搜索模块181,还配置成:在搜索轮次数达到N且得到的所有预测子节点的数目小于所述第一阈值的情况下,从所述当前子节点的解码顺序下的前K个非空的候选子节点中,搜索得到所述当前子节点的第四预测子节点;基于所述第一、第二、第三和第四预测子节点的属性值,确定所述当前子节点的属性预测值。
进一步地,在一些实施例中,第一搜索模块181,配置成:按照所述解码顺序或者所述解码顺序的反向顺序,依次遍历所述前K个非空的候选子节点:当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;当预测子节点的当前总数大于或等于所述第一阈值且小于第二阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,将当前候选子节点确定为第四预测子节点;当预测子节点的当前总数等于所述第二阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,或者,当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前解码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
进一步地,在一些实施例中,第一搜索模块181,配置成:按照所述解码顺序或者所述解码顺序的反向顺序,依次遍历所述前K个非空的候选子节点:当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;当预测子节点的当前总数等于所述第一阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,或者,当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前解码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
在一些实施例中,第一搜索模块181,配置成:在所述第一预测子节点和所述第二预测子节点的总数大于或等于所述第一阈值的情况下,或者,所述第一预测子节点的数目大于或等于所述第一阈值的情况下,触发第一帧内预测模块182,使其根据所述第一预测子节点和所述第二预测子节点的属性值,确定所述当前子节点的属性预测值。
在一些实施例中,所述当前子节点为第M个子节点;其中,M大于或等于4。
在一些实施例中,第一帧内预测模块182,还配置成:在所述当前子节点为第一个子节点的情况下,将特定属性值设置为所述第一个子节点的属性预测值;在所述当前子节点为所述第一个子节点的后续子节点且为所述第M个子节点之前的子节点的情况下,根据已解码的子节点的属性重建值,得到所述后续子节点的属性预测值。
在一些实施例中,第一搜索模块181,还配置成:基于当前子节点的上级节点和第一条件,确定第一目标上级节点;以所述第一目标上级节点作为所述第一搜索范围;基于当前子节点的上级节点和第二条件,确定第二目标上级节点;以所述第二目标上级节点作为所述第二搜索范围。
在一些实施例中,所述第一条件包括:所述当前子节点占据其所在父节点的边的共线父节点、占据的边的端点的共点父节点占据该父节点的面的共面父节点和/或当前子节点的父节点、且这些父节点是在当前子节点之前编码完成的非空节点;或者,所述第一条件包括:与当前子节点的上级节点的距离小于第一距离的在当前子节点之前编码的上级节点。
在一些实施例中,所述第二条件包括:当前子节点的父节点的共线父节点、共面父节点和/或共点父节点,且是在当前子节点之前编码的非空的非第一目标上级节点;或者,所述第二条件包括:与当前子节点的上级节点的距离小于第二距离的在当前子节点之前编码的上级节点;所述第二距离大于或等于所述第一距离。
在一些实施例中,第一搜索模块181,还配置成:基于当前子节点和第三条件,确定第一目标子节点;以所述第一目标子节点作为所述第一搜索范围;基于所述当前子节点和第四条件,确定第二目标子节点;以所述第二目标子节点作为所述第二搜索范围。
在一些实施例中,所述第三条件包括:与所述当前子节点的距离小于或等于第三距离的子节点;所述第四条件包括:与所述当前子节点的距离小于或等于第四距离的子节点;其中,所述第四距离大于或等于所述第三距离。
在一些实施例中,所述第一目标子节点包括所述当前子节点的共面子节点、所述当前子节点的共线子节点和/或所述当前子节点的共点子节点。
在一些实施例中,所述第一目标子节点和所述第二目标子节点包括在所述当前子节点之前完成解码的子节点。
在一些实施例中,所述预测子节点包括在所述当前子节点之前解码的非空子节点。
在一些实施例中,所述基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值,包括:基于得到的预测子节点的属性重建值,得到所述当前子节点的属性预测值。
以上帧内预测装置180的实施例的描述,与上述帧内预测方法实施例的描述是类似的,具有同这些方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请编码端的帧内预测方法实施例的描述而理解。
基于前述的实施例,本申请实施例提供的解码装置,包括所包括的各模块、以及各模块所包括的各单元,可以通过电子设备中的解码器或处理器来实现;当然也可以通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)或图形处理器(Graphics Processing Unit,GPU)等。
图19为本申请实施例解码装置的结构示意图,如图19所示,解码装置190,包括:
解析模块191,配置成对接收的属性码流进行解析,得到当前子节点的重建残差;
帧内预测装置180,配置成对所述当前子节点执行本申请实施例解码端所述的帧内预测方法中的步骤,得到所述当前子节点的属性预测值;
重建模块192,配置成根据所述当前子节点的属性预测值与所述当前子节点的重建残差,确定所述当前子节点的属性重建值。
以上关于解码装置190的实施例的描述,与上述帧内预测方法实施例的描述是类似的,具有同这些方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请编码端的帧内预测方法实施例的描述而理解。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得电子设备执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
对应地,本申请实施例提供一种电子设备,图20为本申请实施例的电子设备的硬件实体示意图,如图20所示,所述电子设备200包括存储器201和处理器202,所述存储器201存储有可在处理器202上运行的计算机程序,所述处理器202执行所述程序时实现上述实施例中提供的方法中的步骤。
本申请实施例一种编码器,图21为本申请实施例的编码器的硬件实体示意图,编码器210包括存储器211和处理器212;其中,所述存储器211,用于存储能够在所述处理器212上运行的计算机程序;所述处理器212,用于在运行所述计算机程序时,执行上述实施例中提供的方法中的步骤。
本申请实施例一种解码器,图22为本申请实施例的解码器的硬件实体示意图,解码器22包括存储器221和处理器222;其中,所述存储器221,用于存储能够在所述处理器222上运行的计算机程序;所述处理器222,用于在运行所述计算机程序时,执行上述实施例中提供的方法中的步骤。
需要说明的是,存储器配置为存储由处理器可执行的指令和应用,还可以缓存待处理器以及相应设备中各模块待处理或已经处理的数据(例如,点云数据、图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random Access Memory,RAM)实现。
对应地,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中提供的方法中的步骤。
这里需要指出的是:以上电子设备、编码器、解码器和存储介质实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请电子设备、编码器、解码器和存储介质实施例中未披露的技术细节,可以参照本申请方法实施例的描述而理解。。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”或“一些实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”或“在一些实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者设备中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的触摸屏系统的实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个模块或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连 接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的模块可以是、或也可以不是物理上分开的,作为模块显示的部件可以是、或也可以不是物理模块;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部模块来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能模块可以全部集成在一个处理单元中,也可以是各模块分别单独作为一个单元,也可以两个或两个以上模块集成在一个单元中;上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得电子设备执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (43)

  1. 一种帧内预测方法,应用于解码端,所述方法包括:
    基于第一搜索范围,搜索得到当前子节点的第一预测子节点;
    在所述第一预测子节点的数目小于第一阈值的情况下,基于第二搜索范围,搜索得到所述当前子节点的第二预测子节点;
    在所述第一和第二预测子节点的总数小于所述第一阈值且搜索轮次数小于N的情况下,基于第三搜索范围,搜索得到所述当前子节点的第三预测子节点;
    当搜索轮次数达到N时,或者,当搜索轮次数未达到N时得到的所有预测子节点的数目大于或等于所述第一阈值时,基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值;其中,各个搜索范围互不交叠,N为大于或等于2的门限值。
  2. 根据权利要求1所述的方法,其中,
    在搜索轮次数达到N且得到的所有预测子节点的数目大于或等于所述第一阈值的情况下,基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值。
  3. 根据权利要求1所述的方法,其中,所述方法还包括:
    在搜索轮次数达到N且得到的所有预测子节点的数目小于所述第一阈值的情况下,从所述当前子节点的解码顺序下的前K个非空的候选子节点中,搜索得到所述当前子节点的第四预测子节点;
    基于所述第一、第二、第三和第四预测子节点的属性值,确定所述当前子节点的属性预测值。
  4. 根据权利要求3所述的方法,其中,所述从所述当前子节点的解码顺序下的前K个候选子节点中,搜索得到所述当前子节点的第四预测子节点,包括:
    按照所述解码顺序或者所述解码顺序的反向顺序,依次遍历所述前K个非空的候选子节点:
    当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;
    当预测子节点的当前总数大于或等于所述第一阈值且小于第二阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,将当前候选子节点确定为第四预测子节点;
    当预测子节点的当前总数等于所述第二阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,或者,当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前解码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
  5. 根据权利要求3所述的方法,其中,所述从所述当前子节点的解码顺序下的前K个候选子节点中,搜索得到所述当前子节点的第四预测子节点,包括:
    按照所述解码顺序或者所述解码顺序的反向顺序,依次遍历所述前K个非空的候选子节点:
    当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;
    当预测子节点的当前总数等于所述第一阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点;或者,
    当预测子节点的当前总数等于所述第一阈值时,如果当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前解码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
  6. 根据权利要求1所述的方法,其中,所述方法还包括:
    在所述第一预测子节点和所述第二预测子节点的总数大于或等于所述第一阈值的情况下,或者,所述第一预测子节点的数目大于或等于所述第一阈值的情况下,根据所述第一预测子节点和所述第二预测子节点的属性值,确定所述当前子节点的属性预测值。
  7. 根据权利要求1所述的方法,其中,所述当前子节点为第M个子节点;其中,M大于或等于4。
  8. 根据权利要求7所述的方法,其中,所述方法还包括:
    在所述当前子节点为第一个子节点的情况下,将特定属性值设置为所述第一个子节点的属性预测值;
    在所述当前子节点为所述第一个子节点的后续子节点且为所述第M个子节点之前的子节点的情况下,根据已解码的子节点的属性重建值,得到所述后续子节点的属性预测值。
  9. 根据权利要求1至8任一项所述的方法,其中,所述方法还包括:
    基于当前子节点的上级节点和第一条件,确定第一目标上级节点;以所述第一目标上级节点作为所述第一搜索范围;
    基于当前子节点的上级节点和第二条件,确定第二目标上级节点;以所述第二目标上级节点作为所述第二搜索范围。
  10. 根据权利要求9所述的方法,其中,所述第一条件包括:所述当前子节点占据其所在父节点的边的共线父节点、占据的边的端点的共点父节点占据该父节点的面的共面父节点和/或当前子节点的父节点、且这些父节点是在当前子节点之前编码完成的非空节点;
    或者,所述第一条件包括:与当前子节点的上级节点的距离小于第一距离的在当前子节点之前编码的上级节点。
  11. 根据权利要求8所述的方法,其中,所述第二条件包括:当前子节点的父节点的共线父节点、共面父节点和/或共点父节点,且是在当前子节点之前编码的非空的非第一目标上级节点;
    或者,所述第二条件包括:与当前子节点的上级节点的距离小于第二距离的在当前子节点之前编码的上级节点;所述第二距离大于或等于所述第一距离。
  12. 根据权利要求1至11任一项所述的方法,其中,所述方法还包括:
    基于当前子节点和第三条件,确定第一目标子节点;以所述第一目标子节点作为所述第一搜索范围;
    基于所述当前子节点和第四条件,确定第二目标子节点;以所述第二目标子节点作为所述第二搜索范围。
  13. 根据权利要求12所述的方法,其中,
    所述第三条件包括:与所述当前子节点的距离小于或等于第三距离的子节点;
    所述第四条件包括:与所述当前子节点的距离小于或等于第四距离的子节点;
    其中,所述第四距离大于或等于所述第三距离。
  14. 根据权利要求13所述的方法,其中,所述第一目标子节点包括所述当前子节点的共面子节点、所述当前子节点的共线子节点和/或所述当前子节点的共点子节点。
  15. 根据权利要求14所述的方法,其中,所述第一目标子节点和所述第二目标子节点包括在所述当前子节点之前完成解码的子节点。
  16. 根据权利要求1所述的方法,其中,所述预测子节点包括在所述当前子节点之前解码的非空子节点。
  17. 根据权利要求1所述的方法,其中,所述基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值,包括:
    基于得到的预测子节点的属性重建值,得到所述当前子节点的属性预测值。
  18. 一种点云解码方法,所述方法包括:
    对接收的属性码流进行解析,得到当前子节点的重建残差;
    对所述当前子节点执行如权利要求1至17任一项所述的方法中的步骤,得到所述当前子节点的属性预测值;
    根据所述当前子节点的属性预测值与所述当前子节点的重建残差,确定所述当前子节点的属性重建值。
  19. 一种帧内预测方法,应用于编码端,所述方法包括:
    基于第一搜索范围,搜索得到所述当前子节点的第一预测子节点;
    在所述第一预测子节点的数目小于第一阈值的情况下,基于第二搜索范围,搜索得到所述当前子节点的第二预测子节点;
    在所述第一和第二预测子节点的总数小于所述第一阈值且搜索轮次数小于N的情况下,基于第三搜索范围,搜索得到所述当前子节点的第三预测子节点;
    当搜索轮次数达到N时,或者,当搜索轮次数未达到N时得到的所有预测子节点的数目大于或等于所述第一阈值时,基于得到的预测子节点的属性值,得到所述当前子节点的属性预测值;其中,各个搜索范围互不交叠,N为大于或等于2的门限值。
  20. 根据权利要求19所述的方法,其中,
    在搜索轮次数达到N且得到的所有预测子节点的数目大于或等于所述第一阈值的情况下,基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值。
  21. 根据权利要求19所述的方法,其中,所述方法还包括:
    在搜索轮次数达到N且得到的所有预测子节点的数目小于所述第一阈值的情况下,从所述当前子节点的编码顺序下的前K个非空的候选子节点中,搜索得到所述当前子节点的第四预测子节点;
    基于所述第一、第二、第三和第四预测子节点的属性值,确定所述当前子节点的属性预测值。
  22. 根据权利要求21所述的方法,其中,所述从所述当前子节点的编码顺序下的前K个候选子节点中,搜索得到所述当前子节点的第四预测子节点,包括:
    按照所述编码顺序或编码顺序的反向顺序,依次遍历所述前K个非空的候选子节点:
    当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;
    当预测子节点的当前总数大于或等于所述第一阈值且小于第二阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,将当前候选子节点确定为第四预测子节点;
    当预测子节点的当前总数等于所述第二阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点;或者,当预测子节点的当前总数等于所述第二阈值时,如果当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前编码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
  23. 根据权利要求21所述的方法,其中,所述从所述当前子节点的编码顺序下的前K个候选子节点中,搜索得到所述当前子节点的第四预测子节点,包括:
    按照所述编码顺序或编码顺序的反向顺序,依次遍历所述前K个非空的候选子节点:
    当预测子节点的当前总数小于所述第一阈值时,将当前候选子节点确定为第四预测子节点;
    当预测子节点的当前总数等于所述第一阈值时,如果当前候选子节点与所述当前子节点的距离小于当前得到的所有预测子节点中与所述当前子节点的最大距离,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点;或者,
    当预测子节点的当前总数等于所述第一阈值时,如果当前候选子节点与所述当前子节点的距离等于当前得到的所有预测子节点中与所述当前子节点的最大距离且当前候选子节点是在所述最大距离对应的预测子节点之前编码的,将当前候选子节点作为第四预测子节点替换所述最大距离对应的预测子节点。
  24. 根据权利要求19所述的方法,其中,所述方法还包括:
    在所述第一预测子节点和所述第二预测子节点的总数大于或等于所述第一阈值的情况下,或者,所述第一预测子节点的数目大于或等于所述第一阈值的情况下,根据所述第一预测子节点和所述第二预测子节点的属性值,确定所述当前子节点的属性预测值。
  25. 根据权利要求19所述的方法,其中,所述当前子节点为第M个子节点;其中,M大于或等于4。
  26. 根据权利要求25所述的方法,其中,所述方法还包括:
    在所述当前子节点为第一个子节点的情况下,将特定属性值设置为所述第一个子节点的属性预测值;
    在所述当前子节点为所述第一个子节点的后续子节点且为所述第M个子节点之前的子节点的情况下,根据已编码的子节点的属性重建值,得到所述后续子节点的属性预测值。
  27. 根据权利要求19至26任一项所述的方法,其中,所述方法还包括:
    基于当前子节点的上级节点和第一条件,确定第一目标上级节点;以所述第一目标上级节点作为所述第一搜索范围;
    基于当前子节点的上级节点和第二条件,确定第二目标上级节点;以所述第二目标上级节点作为所述第二搜索范围。
  28. 根据权利要求27所述的方法,其中,所述第一条件包括:所述当前子节点占据其所在父节点的边的共线父节点、占据的边的端点的共点父节点占据该父节点的面的共面父节点和/或当前子节点的父节点、且这些父节点是在当前子节点之前编码完成的非空节点;
    或者,所述第一条件包括:与当前子节点的上级节点的距离小于第一距离的在当前子节点之前编码的上级节点。
  29. 根据权利要求27所述的方法,其中,所述第二条件包括:当前子节点的父节点的共线父节点、共面父节点和/或共点父节点,且是在当前子节点之前编码的非空的非第一目标上级节点;
    或者,所述第二条件包括:与当前子节点的上级节点的距离小于第二距离的在当前子节点之前编码的上级节点;所述第二距离大于或等于所述第一距离。
  30. 根据权利要求19至26任一项所述的方法,其中,所述方法还包括:
    基于当前子节点和第三条件,确定第一目标子节点;以所述第一目标子节点作为所述第一搜索范围;
    基于所述当前子节点和第四条件,确定第二目标子节点;以所述第二目标子节点作为所述第二搜索范围。
  31. 根据权利要求30所述的方法,其中,
    所述第三条件包括:与所述当前子节点的距离小于或等于第三距离的子节点;
    所述第四条件包括:与所述当前子节点的距离小于或等于第四距离的子节点;
    其中,所述第四距离大于或等于所述第三距离。
  32. 根据权利要求31所述的方法,其中,所述第一目标子节点包括所述当前子节点的共面子节点、所述当前子节点的共线子节点和/或所述当前子节点的共点子节点。
  33. 根据权利要求32所述的方法,其中,所述第一目标子节点和所述第二目标子节点包括在所述当前子节点之前完成编码的子节点。
  34. 一种点云编码方法,应用于编码端,所述方法包括:
    对点云的当前子节点执行如权利要求19至33任一项所述的方法中的步骤,得到所述当前子节点的属性预测值;
    确定所述当前子节点的属性预测值与所述当前子节点的原始属性值之间的残差;
    将所述当前子节点的残差编码为属性码流。
  35. 根据权利要求34所述的方法,其中,所述方法还包括:
    确定所述当前子节点的重建残差;
    将重建残差与所述当前子节点的属性预测值叠加,得到所述当前子节点的属性重建值。
  36. 一种帧内预测装置,应用于解码端,包括:
    第一搜索模块,配置成:基于第一搜索范围,搜索得到当前子节点的第一预测子节点;在所述第一预测子节点的数目小于第一阈值的情况下,基于第二搜索范围,搜索得到所述当前子节点的第二预测子节点;以及,在所述第一和第二预测子节点的总数小于所述第一阈值且搜索轮次数小于N的情况下,基于第三搜索范围,搜索得到所述当前子节点的第三预测子节点;当搜索轮次数达到N时,或者当搜索轮次数未达到N时得到的所有预测子节点的数目大于或等于所述第一阈值时,触发第一帧内预测模块;其中,各个搜索范围互不交叠,N为大于或等于2的门限值;
    所述第一帧内预测模块,配置成基于得到的预测子节点的属性值,确定所述当前子节点的属性预测值。
  37. 一种解码装置,包括:
    解析模块,配置成对接收的属性码流进行解析,得到当前子节点的重建残差;
    帧内预测装置,配置成对所述当前子节点执行如权利要求1至17任一项所述的方法中的步骤,得到所述当前子节点的属性预测值;
    重建模块,配置成根据所述当前子节点的属性预测值与所述当前子节点的重建残差,确定所述当前子节点的属性重建值。
  38. 一种解码器,包括存储器和处理器;其中,
    所述存储器,配置成存储能够在所述处理器上运行的计算机程序;
    所述处理器,配置成在运行所述计算机程序时,执行如权利要求1至17任一项所述的帧内预测方法,或者执行如权利要求18所述的点云解码方法。
  39. 一种帧内预测装置,应用于编码端,包括:
    第二搜索模块,配置成基于第一搜索范围,搜索得到所述当前子节点的第一预测子节点;以及在所述第一预测子节点的数目小于第一阈值的情况下,基于第二搜索范围,搜索得到所述当前子节点的第二预测子节点;在所述第一和第二预测子节点的总数小于所述第一阈值且搜索轮次数小于N的情况下,基于第三搜索范围,搜索得到所述当前子节点的第三预测子节点;当搜索轮次数达到N时,或者当搜索轮次数未达到N时得到的所有预测子节点的数目大于或等于所述第一阈值时,触发第二帧内预测模块;其中,各个搜索范围互不交叠,N为大于或等于2的门限值;
    所述第二帧内预测模块,配置成基于得到的预测子节点的属性值,得到所述当前子节点的属性预测值。
  40. 一种编码装置,包括:
    帧内预测装置,配置成对点云的当前子节点执行如权利要求19至33任一项所述的方法中的步骤,得到所述当前子节点的属性预测值;
    确定模块,配置成确定所述当前子节点的属性预测值与所述当前子节点的原始属性值之间的残差;
    编码模块,配置成将所述当前子节点的残差编码为属性码流。
  41. 一种编码器,包括存储器和处理器;
    所述存储器,配置成存储能够在所述处理器上运行的计算机程序;
    所述处理器,配置成在运行所述计算机程序时,执行如权利要求19至33任一项所述的帧内预测方法,或者执行如权利要求34或35所述的点云编码方法。
  42. 一种电子设备,包括存储器和处理器;
    所述存储器,配置成存储能够在所述处理器上运行的计算机程序;
    所述处理器,配置成在运行所述计算机程序时,执行如权利要求1至17任一项所述的帧内预测方法,或者执行如权利要求18所述的点云解码方法,或者执行如权利要求19至33任一项所述的帧内预测方法,或者执行如权利要求34或35所述的点云编码方法。
  43. 一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现权利要求1至17任一项所述的帧内预测方法,或者,该计算机程序被处理器执行时实现权利要求18所述的点云解码方法,或者,该计算机程序被处理器执行时实现如权利要求19至33任一项所述的帧内预测方法,该计算机程序被处理器执行时实现权利要求34或35所述的点云编码方法。
CN202180099712.1A 2021-08-23 2021-08-23 帧内预测、编解码方法及装置、编解码器、设备、介质 Pending CN117581549A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/114153 WO2023023914A1 (zh) 2021-08-23 2021-08-23 帧内预测、编解码方法及装置、编解码器、设备、介质

Publications (1)

Publication Number Publication Date
CN117581549A true CN117581549A (zh) 2024-02-20

Family

ID=85321409

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180099712.1A Pending CN117581549A (zh) 2021-08-23 2021-08-23 帧内预测、编解码方法及装置、编解码器、设备、介质

Country Status (2)

Country Link
CN (1) CN117581549A (zh)
WO (1) WO2023023914A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021003726A1 (zh) * 2019-07-10 2021-01-14 深圳市大疆创新科技有限公司 一种数据编码、数据解码方法、设备及存储介质
US11409998B2 (en) * 2019-10-02 2022-08-09 Apple Inc. Trimming search space for nearest neighbor determinations in point cloud compression
WO2021141090A1 (ja) * 2020-01-10 2021-07-15 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
CN113179410B (zh) * 2021-06-10 2022-08-23 上海交通大学 一种点云属性的编解码方法、装置和系统

Also Published As

Publication number Publication date
WO2023023914A1 (zh) 2023-03-02

Similar Documents

Publication Publication Date Title
US20230162402A1 (en) Method and apparatus for processing a point cloud
KR20230021675A (ko) 인코딩 및 디코딩 방법, 인코더, 디코더 및 소프트웨어
KR20140089426A (ko) 예측성 위치 디코딩
CN118075494A (zh) 点云数据编码方法、解码方法、装置、设备及存储介质
CN113518226A (zh) 一种基于地面分割的g-pcc点云编码改进方法
JP2024050705A (ja) 属性情報の予測方法、エンコーダ、デコーダ及び記憶媒体
KR20230060534A (ko) 2차원 정규화 평면 투사에 기초한 포인트 클라우드 인코딩 및 디코딩 방법과 장치
CN112256652B (zh) 一种三维点云属性压缩方法、系统及终端
CN114600464A (zh) 编码和解码的方法、编码器、解码器和软件
CN114598883A (zh) 点云属性的预测方法、编码器、解码器及存储介质
CN114095735A (zh) 一种基于块运动估计和运动补偿的点云几何帧间预测方法
CN117581549A (zh) 帧内预测、编解码方法及装置、编解码器、设备、介质
KR20230119690A (ko) 대규모 포인트 클라우드-지향형 2 차원 정규화된 평면투영, 및 인코딩 및 디코딩 방법
CN117321996A (zh) 帧内预测、编解码方法及装置、编解码器、设备、介质
CN116458158A (zh) 帧内预测方法及装置、编解码器、设备、存储介质
CN116941242A (zh) 帧内预测方法及装置、编解码器、设备、存储介质
WO2023193533A1 (en) Apparatus for coding vertex position for point cloud, and data stream including vertex position
WO2023193534A1 (en) Methods and apparatus for coding presence flag for point cloud, and data stream including presence flag
WO2024031585A1 (en) Method for encoding and decoding a 3d point cloud, encoder, decoder
WO2023097694A1 (zh) 解码方法、编码方法、解码器以及编码器
RU2812090C1 (ru) Способ кодирования и декодирования, кодер и декодер
WO2023173238A1 (zh) 编解码方法、码流、编码器、解码器以及存储介质
WO2024065406A1 (zh) 编解码方法、码流、编码器、解码器以及存储介质
WO2024031586A1 (en) Method for encoding and decoding a 3d point cloud, encoder, decoder
WO2023173237A1 (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