CN112352431B - 一种数据编码、解码方法、设备及存储介质 - Google Patents

一种数据编码、解码方法、设备及存储介质 Download PDF

Info

Publication number
CN112352431B
CN112352431B CN201980038685.XA CN201980038685A CN112352431B CN 112352431 B CN112352431 B CN 112352431B CN 201980038685 A CN201980038685 A CN 201980038685A CN 112352431 B CN112352431 B CN 112352431B
Authority
CN
China
Prior art keywords
channel
context model
attribute residual
preset threshold
cloud point
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.)
Active
Application number
CN201980038685.XA
Other languages
English (en)
Other versions
CN112352431A (zh
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.)
Zhejiang University ZJU
SZ DJI Technology Co Ltd
Original Assignee
Zhejiang University ZJU
SZ DJI Technology Co 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 Zhejiang University ZJU, SZ DJI Technology Co Ltd filed Critical Zhejiang University ZJU
Publication of CN112352431A publication Critical patent/CN112352431A/zh
Application granted granted Critical
Publication of CN112352431B publication Critical patent/CN112352431B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3068Precoding preceding compression, e.g. Burrows-Wheeler transformation
    • H03M7/3079Context modeling
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6005Decoder aspects
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6011Encoder aspects
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/70Type of the data to be coded, other than image and sound
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

一种数据编码、解码方法、设备及存储介质,方法包括:获取当前点云点的属性残差(S201);对属性残差进行二值化,得到用于指示第一标志位的二元码和用于指示第二标志位的二元码(S202);根据第一条件从上下文模型列表中选择用于编码第一标志位的二元码的第一上下文模型(S203);根据第二条件从上下文模型列表中选择用于编码第二标志位的二元码的第二上下文模型(S204),其中,第一上下文模型和第二上下文模型对应上下文模型列表中的同一个索引时,第一条件与第二条件不相同;采用第二上下文模型对第二标志位的二元码进行编码(S205);采用第一上下文模型对第一标志位的二元码进行编码(S206),在不增加额外复杂度的情况下,提高了编码效率。

Description

一种数据编码、解码方法、设备及存储介质
技术领域
本发明涉及点云编/解码领域,尤其涉及一种数据编码、解码方法、设备及存储介质。
背景技术
目前,在动态图像专家组(Moving Picture Experts Group,MPEG)的参考软件中,将点云数据分为几何和属性两部分进行编/解码,其中,在对属性进行编/解码时,会对属性值进行变换/预测、量化、熵编码等环节。
在现有的点云编/解码方案中,属性编/解码采用基于上下文模型的算术编码,基于上下文模型的算术编码对属性进行编/解码的方法中包括用于指示两个标志位的属性的上下文模型,且该用于指示两个标志位的属性的上下文模型的选择条件相同。通过这种方式选择的上下文模型没有最优化,从而可能导致属性编/解码效率较低。因此,如何更好地提高点云数据中属性编/解码效率成为研究的重点。
发明内容
本发明实施例提供了一种数据编码、解码方法、设备及存储介质,实现了在不增加额外复杂度的情况下,提高了编/解码效率。
第一方面,本发明实施例提供了一种数据编码方法,包括:
获取当前点云点的属性残差;
对所述属性残差进行二值化,得到所述当前点云点的二元码,其中,所述当前点云点的二元码包括用于指示第一标志位的二元码和用于指示第二标志位的二元码;
根据第一条件从上下文模型列表中选择用于编码所述第一标志位的二元码的第一上下文模型;
根据第二条件从所述上下文模型列表中选择用于编码所述第二标志位的二元码的第二上下文模型,其中,所述第一上下文模型和所述第二上下文模型对应所述上下文模型列表中的同一个索引时,所述第一条件与所述第二条件不相同;
采用所述第一上下文模型对所述第一标志位的二元码进行编码;
采用所述第二上下文模型对所述第二标志位的二元码进行编码。
第二方面,本发明实施例提供了另一种数据编码方法,包括:
获取当前点云点的属性残差,其中,所述属性残差包括第一通道的属性残差和第二通道的属性残差;
对每个通道的属性残差进行二值化,得到每个通道对应的二元码,其中,所述第二通道对应的二元码包括用于指示第一标志位的二元码;所述第一标志位用于指示所述当前点云点的第二通道的属性残差是否为N,N大于或等于0;
根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的二元码进行编码,其中,所述第一预设阈值大于0。
第三方面,本发明实施例提供了一种数据解码方法,包括:
获取当前点云点的码流数据,所述码流数据包括第一标志位的码流数据和第二标志位的码流数据;
根据第一条件从上下文模型列表中选择用于解码所述第一标志位的码流数据的第一上下文模型,对所述第一标志位的码流数据进行解码,得到用于指示所述第一标志位的二元码;
根据第二条件从上下文模型列表中选择用于解码所述第二标志位的码流数据的第二上下文模型,对所述第二标志位的码流数据进行解码,得到用于指示所述第二标志位的二元码;
对所述用于指示所述第一标志位的二元码以及用于指示所述第二标志位的二元码进行逆二值化,得到所述当前点云点的属性残差。
第四方面,本发明实施例提供了另一种数据解码方法,包括:
获取当前点云点的码流数据,所述码流数据中包括第一通道的属性残差的码流数据和第二通道的属性残差的码流数据,所述第二通道的属性残差的码流数据包括第一标志位的码流数据,所述第一标志位用于指示所述当前点云点的第二通道的属性残差是否为N,N大于或等于0;
对所述第一通道的属性残差的码流数据解码得到所述第一通道的属性残差;
根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的码流数据进行解码,其中,所述第一预设阈值大于0。
第五方面,本发明实施例提供了一种数据编码设备,包括:存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于调用所述程序,当所述程序被执行时,用于执行以下操作:
获取当前点云点的属性残差;
对所述属性残差进行二值化,得到所述当前点云点的二元码,其中,所述当前点云点的二元码包括用于指示第一标志位的二元码和用于指示第二标志位的二元码;
根据第一条件从上下文模型列表中选择用于编码所述第一标志位的二元码的第一上下文模型;
根据第二条件从所述上下文模型列表中选择用于编码所述第二标志位的二元码的第二上下文模型,其中,所述第一上下文模型和所述第二上下文模型对应所述上下文模型列表中的同一个索引时,所述第一条件与所述第二条件不相同;
采用所述第一上下文模型对所述第一标志位的二元码进行编码;
采用所述第二上下文模型对所述第二标志位的二元码进行编码。
第六方面,本发明实施例提供了另一种数据编码设备,包括:存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于调用所述程序,当所述程序被执行时,用于执行以下操作:
获取当前点云点的属性残差,其中,所述属性残差包括第一通道的属性残差和第二通道的属性残差;
对每个通道的属性残差进行二值化,得到每个通道对应的二元码,其中,所述第二通道对应的二元码包括用于指示第一标志位的二元码;所述第一标志位用于指示所述当前点云点的第二通道的属性残差是否为N,N大于或等于0;
根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的二元码进行编码,其中,所述第一预设阈值大于0。
第七方面,本发明实施例提供了一种数据解码设备,包括:存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于调用所述程序,当所述程序被执行时,用于执行以下操作:
获取当前点云点的码流数据,所述码流数据包括第一标志位的码流数据和第二标志位的码流数据;
根据第一条件从上下文模型列表中选择用于解码所述第一标志位的码流数据的第一上下文模型,对所述第一标志位的码流数据进行解码,得到用于指示所述第一标志位的二元码;
根据第二条件从上下文模型列表中选择用于解码所述第二标志位的码流数据的第二上下文模型,对所述第二标志位的码流数据进行解码,得到用于指示所述第二标志位的二元码;
对所述用于指示所述第一标志位的二元码以及用于指示所述第二标志位的二元码进行逆二值化,得到所述当前点云点的属性残差。
第八方面,本发明实施例提供了另一种数据解码设备,包括:存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于调用所述程序,当所述程序被执行时,用于执行以下操作:
获取当前点云点的码流数据,所述码流数据中包括第一通道的属性残差的码流数据和第二通道的属性残差的码流数据,所述第二通道的属性残差的码流数据包括第一标志位的码流数据,所述第一标志位用于指示所述当前点云点的第二通道的属性残差是否为N,N大于或等于0;
对所述第一通道的属性残差的码流数据解码得到所述第一通道的属性残差;
根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的码流数据进行解码,其中,所述第一预设阈值大于0。
第九方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面和第二方面所述的数据编码方法,以及如上述第三方面和第四方面所述的数据解码方法。
本发明实施例,通过对当前点云点的属性残差进行二值化,得到包括用于指示第一标志位的二元码和用于指示第二标志位的二元码,根据第一条件从上下文模型列表中选择用于编码第一标志位的二元码的第一上下文模型,并采用所述第一上下文模型对所述第一标志位的二元码进行编码;以及根据第二条件从所述上下文模型列表中选择用于编码所述第二标志位的二元码的第二上下文模型,并采用所述第二上下文模型对所述第二标志位的二元码进行编码,以实现在不增加额外复杂度的情况下,提高编码效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是一种零游程编码方法的示意图;
图2是本发明实施例提供的一种数据编码方法的流程示意图;
图3是本发明实施例提供的另一种数据编码方法的流程示意图;
图4是本发明实施例提供的一种数据解码方法的流程示意图;
图5是本发明实施例提供的另一种数据解码方法的流程示意图;
图6是本发明实施例提供的一种数据编码设备的结构示意图;
图7是本发明实施例提供的另一种数据编码设备的结构示意图;
图8是本发明实施例提供的一种数据解码设备的结构示意图;
图9是本发明实施例提供的另一种数据解码设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
本发明实施例提出的数据编码方法可以应用于数据编码设备,所述数据编码设备可以设置在智能终端(如手机、平板电脑等)上。在某些实施例中,本发明实施例可应用于飞行器(如无人机)上,在其他实施例中,本发明实施例还可以应用于其他可移动平台(如无人船、无人汽车、机器人等)上,本发明实施例不做具体限定。
本发明的一个实施例提出的数据编码方法是对点云编码中的属性变换系数或是属性残差的零游程(zero run length)编码做出改进,对于其中某些语法元素的算术编码所利用的上下文模型提出了一种更全面、更有效的构造方法,在不改变任何编码复杂度的情况下,使得点云数据中属性编码的性能获得提升。在介绍本发明实施例之前,先对zerorun length编码以及算术编码中的上下文模型进行说明。
在一个示例中,将点云数据分为几何和属性两部分进行编码,在对属性部分进行编码时,属性部分的编码首先通过变换或是预测,将属性值转换为变换系数或是属性残差,再对变换系数或是属性残差进行量化及熵编码,其中,变换/预测后,原来属性信息的概率分布就发生了改变,当预测方法合理,预测比较精准时,得到的属性残差分布就会在0附近(理想情况下所有残差都是0)。因此对于属性编码主要使用了zero run length的编码方法,这种编码方法会对送进编码器中的属性残差或变换系数串进行是否为0的统计,对于连续的0使用一个zero run语法元素记录连续出现0的次数,并不再对这些0进行残差编码。而对于非零的值,zero run自然等于0,并需要对这些非零值进行残差编码。对于这些非零的属性残差,并不是直接进行熵编码,而是进行如下的操作:对属性残差减1,判断它减1之后是否为0,如果是零,则将第二标志位isZero置1,且这个值的编码结束,如果减1后不为0,则第二标志位isZero置0,并判断该属性残差是否为1,如果是1,则第一标志位isOne置1,并结束该属性残差的编码,否则第一标志位isOne置0,对该属性残差减去2后的值进行算术编码(如果进行到这一步,该属性残差一定不等于0或1或2,所以可以减2)。
在一个示例中,具体可以图1为例进行说明,图1是一种零游程编码方法的示意图。假设待编码的点云数据中当前点云点的一个通道的属性残差为:73,50,32,15,0,12,0,0,0,...,0,由于最开始的值都不为零,所以最开始时,zero run的值都为0,当出现连续N个0时,zero run的值为N。如图1所示,对待编码的点云数据中当前点云点的一个通道的属性残差:73,50,32,15,0,12,0,0,0,...,0,进行编码得到增加zero run后的编码值为:0,73,0,50,0,32,0,15,1,12,N,然后再对该编码值0,73,0,50,0,32,0,15,1,12,N进行二值化,得到用于指示第一标志位和/或第二标志位的二元码。在某些实施例中,所述第一标志位可以为isOne,所述第二标志位可以为isZero。
在一个示例中,在对编码值0,73,0,50,0,32,0,15,1,12,N进行二值化时,对于zero run,先用截断一元码进行二值化后再送入算术编码器进行编码,对于isZero和isOne两个1bit的标志位,则构建相应的上下文模型后,根据上下文模型进行算术编码。由于属性残差一般有三个通道(如RGB、YUV等),所以可以使用已编码的那个通道的属性残差来构建上下文。
一个示例中,将三个通道的属性残差分别记作C1、C2、C3,在编码C1的isZero和isOne时,没有上下文模型可以参考;在编码C2的isZero和isOne时,参考C1的值是否为零,根据C1是否为零构建两个不同的上下文模型;同理,在编码C3的isZero和isOne时,参考C1和C2是否为零,相应的有四个上下文模型。所以,isZero和isOne分别有7个上下文模型供选择,具体如表1所示,表1是一种现有的上下文模型构建的表格。
某些实施例中,所述属性残差的三个通道可以包括RGB,其中,R是红色通道,G是绿色通道,B是蓝色通道。某些实施例中,所述属性残差的三个通道还可以包括YUV,其中,Y是亮度通道,U、V是色度通道。
在算术编码中,已编码的语法元素的符号信息又称为上下文,准确地利用上下文信息显然有利于提高属性编码的效率,其中,合适的上下文信息的统计信息(主要是概率分布)就是上下文模型。
表1
Figure BDA0002827743860000081
由于现有的方案中,isOne的上下文模型选择方法和isZero的上下文模型选择方法条件一样,即都是判断已编码的通道的值是否为0,但已编码的值是否为0在统计上对该值是否为1的相关性没有那么强,因此现有的isOne的上下文模型没有最优化,isOne的上下文模型选择不合理。
本发明实施例针对上述问题,对isOne这个标志位建立新的上下文模型构建方法,isZero的上下文模型构建方法保持不变,两个标志位的上下文模型仍然各自保持在7个,以实现在没有增加额外的复杂度的情况下,缩短了isOne标志位的算术编码总的平均码长,提高了点云数据属性编码的性能和效率。
下面结合附图2-3对本发明实施例提供的数据编码方法进行示意性说明。
具体请参见图2,图2是本发明实施例提供的一种数据编码方法的流程示意图。所述方法可以应用于数据编码设备,其中,所述数据编码设备的解释如前所述,此处不再赘述。具体地,本发明实施例的所述方法包括如下步骤。
S201:获取当前点云点的属性残差。
本发明实施例中,数据编码设备可以获取当前点云点的属性残差。
在某些实施例中,所述当前点云点的属性残差包括第一通道的属性残差、第二通道的属性残差以及第三通道的属性残差。
在某些实施例中,所述第一通道包括R通道或Y通道,所述第二通道包括G通道或U通道,所述第三通道包括B通道或V通道。
在某些实施例中,所述第一通道包括R通道或Y通道,所述第二通道包括B通道或V通道,所述第三通道包括G通道或U通道。
在某些实施例中,所述当前点云点的属性残差为大于或等于0的数值。
S202:对所述属性残差进行二值化,得到所述当前点云点的二元码,其中,所述当前点云点的二元码包括用于指示第一标志位的二元码和用于指示第二标志位的二元码。
本发明实施例中,数据编码设备可以对所述属性残差进行二值化,得到所述当前点云点的二元码,其中,所述当前点云点的二元码包括用于指示第一标志位的二元码和用于指示第二标志位的二元码。
在某些实施例中,所述当前点云点的二元码包括第一通道的属性残差的二元码、第二通道的属性残差的二元码以及第三通道的属性残差的二元码。在某些实施例中,所述第一通道、第二通道、第三通道是不相同的通道。
在一些实施例中,所述第一标志位用于指示所述当前点云点的一个通道的属性残差是否为N+1,所述第二标志位用于指示所述当前点云点的一个通道的属性残差是否为N,N大于或等于0。
在一个示例中,所述第一标志位用于指示所述当前点云点的一个通道的属性残差是否为2,所述第二标志位用于指示所述当前点云点的一个通道的属性残差是否为1。
在一些实施例中,当第一通道、第二通道以及第三通道这三个通道的属性残差都相同且不等于0时,所述第一通道的属性残差的二元码的第二标志位用于指示所述第一通道的属性残差是否为1;或者,所述第一通道的属性残差的二元码的第一标志位用于指示所述第一通道的属性残差是否为2。
在一些实施例中,当第一通道、第二通道以及第三通道这三个通道的属性残差不完全相同时,所述第一通道的属性残差的二元码的第二标志位用于指示所述第一通道的属性残差是否为0;或者,所述第一通道的属性残差的二元码的第一标志位用于指示所述第一通道的属性残差是否为1。
在某些实施例中,当第一通道的属性残差为小于或等于1时,包括用于指示所述第一通道的属性残差的二元码的第二标志位;当第一通道的属性残差大于或等于2时,包括用于指示所述第一通道的属性残差的二元码的第二标志位和第一标志位。
在一个实施例中,所述数据编码设备在对所述属性残差进行二值化,得到所述当前点云点的二元码时,可以根据预设的编码方法对所述当前点云点属性残差进行编码,得到编码值,并对所述编码值进行二值化,得到所述当前点云点的二元码。
在一种实施方式,数据编码设备在根据预设的编码方法对所述当前点云点属性残差进行编码,得到编码值时,可以使用zero run length的编码方法,将所述当前点云点的一个通道的属性残差进行中重复且连续出现多次的0使用一个zero run语法元素来记录连续出现0的次数,并不再对这些0进行残差编码,而对于一个通道中的属性残差中非零的值,zero run自然等于0,且需要对这些非零值进行编码,从而得一个通道的属性残差的编码值。
在一个示例中,以图1为例进行说明,假设当前点云点的第一通道的属性残差为73,50,32,15,0,12,0,0,0,...,0,其中,该第一通道的属性残差中包括连续N个0,则可以使用zero run length的编码方法对所述第一通道的属性残差73,50,32,15,0,12,0,0,0,...,0进行编码,得到编码值为:0,73,0,50,32,0,15,1,12,N。
在一种实施方式,数据编码设备在对所述编码值进行二值化,得到所述当前点云点的二元码时,对于这些非零的属性残差的编码值,并不是直接进行熵编码,而是进行如下的操作:对该属性残差减1,判断该属性残差减1之后是否为0,如果是0,则将第二标志位isZero置1,且这个值的编码结束,如果该属性残差减1后不为0,则将第二标志位isZero置0,并判断该属性残差减1后是否为1,如果是1,则将第一标志位isOne置1,并结束该值的编码,如果该属性残差减1后不为1,否则将第一标志位isOne置0,并对该值减去2后的值进行算术编码。
在一个示例中,以图1为例进行说明,当前点云点的第一通道的属性残差为73,50,32,15,0,12,0,0,0,...,0的编码值为:0,73,0,50,32,0,15,1,12,N;数据编码设备可以对所述编码值0,73,0,50,32,0,15,1,12,N进行二值化,在二值化过程中,由于73,50,32,15分别减1后的值均不为1,则可以将73,50,32,15各自对应的第一标志位isOne置0,由于编码值中的1减1后的值为0,则可以将1对应的第二标志位isZero置1,对与其余为0的编码值不进行编码,因此,得到由0和1组成的所述当前点云点的第一通道的属性残差的二元码。
通过这种实施方式对当前点云点的属性残差进行二值化,得到包括用于指示第一标志位和第二标志位的二元码,可以简化二值化的过程,降低二值化的复杂度,以便后续编码时根据不同标志位选取对应的上下文模型对不同标志位对应的二元码进行编码,有助于提高编码效率。
S203:根据第一条件从上下文模型列表中选择用于编码所述第一标志位的二元码的第一上下文模型。
本发明实施例中,数据编码设备可以根据第一条件从上下文模型列表中选择用于编码所述第一标志位的二元码的第一上下文模型。
在一个实施例中,数据编码设备在根据第一条件从上下文模型列表中选择用于编码所述第一标志位的二元码的第一上下文模型时,可以根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从所述上下文模型列表中选择用于编码第二通道的属性残差的第一标志位的二元码的第一上下文模型,其中,所述第一预设阈值大于0。在某些实施例中,所述第一预设阈值大于或者等于1。在某些实施例中,所述第一通道的属性残差的第一标志位和第二标志位分别有1种上下文模型。在某些实施例中,所述第二通道的属性残差的第一标志位和第二标志位分别有2种上下文模型。
在一种实施例方式中,所述当前点云点的第一通道的属性残差大于所述第一预设阈值时,选择的用于编码所述第二通道的属性残差的第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第一索引对应的上下文模型。所述当前点云点的第一通道的属性残差不大于所述第一预设阈值时,选择的用于编码所述第二通道的属性残差的第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第二索引对应的上下文模型。
在一个示例中,具体可以表2为例进行说明,表2是本发明实施例提供的一种上下文模型构建的表格。如表2所示,所述第一预设阈值大于或等于1,第一通道的属性残差为C1,第二通道的属性残差为C2,所述当前点云点的第一通道的属性残差C1大于1时,选择的用于编码所述第二通道的属性残差C2的第一标志位isOne的二元码的第一上下文模型,是所述上下文模型列表中第一索引即索引2对应的上下文模型。所述当前点云点的第一通道的属性残差C1小于或等于1时,选择的用于编码所述第二通道的属性残差C2的第一标志位isOne的二元码的第一上下文模型,是所述上下文模型列表中第二索引即索引1对应的上下文模型。
表2
Figure BDA0002827743860000131
在一种实施例方式中,所述当前点云点的第一通道的属性残差不等于所述第一预设阈值时,选择的用于编码所述第二通道的属性残差的第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第一索引对应的上下文模型。所述当前点云点的第一通道的属性残差等于所述第一预设阈值时,选择的用于编码所述第二通道的属性残差的第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第二索引对应的上下文模型。
在一个示例中,具体可以表3为例进行说明,表3是本发明实施例提供的另一种上下文模型构建的表格。如表3所示,所述第一预设阈值等于1,第一通道的属性残差为C1,第二通道的属性残差为C2,第三通道的属性残差为C3,所述当前点云点的第一通道的属性残差C1不等于1时,选择的用于编码所述第二通道的属性残差C2的第一标志位isOne的二元码的第一上下文模型,是所述上下文模型列表中第一索引即索引2对应的上下文模型。所述当前点云点的第一通道的属性残差C1等于1时,选择的用于编码所述第二通道的属性残差C2的第一标志位isOne的二元码的第一上下文模型,是所述上下文模型列表中第二索引即索引1对应的上下文模型。
在一个实施例中,数据编码设备在根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从所述上下文模型列表中选择用于编码第二通道的属性残差的第一标志位的二元码的第一上下文模型时,可以判断所述当前点云点的第一通道的属性残差是否大于所述第一预设阈值,以及第三通道的属性残差是否大于所述第一预设阈值,并根据判断结果从所述上下文模型列表中选择用于编码第二通道中所述第一标志位的二元码的第一上下文模型。在某些实施例中,所述第一通道的属性残差的第一标志位和第二标志位分别有1种上下文模型。在某些实施例中,所述第三通道的属性残差的第一标志位和第二标志位分别有2种上下文模型。在某些实施例中,所述第二通道的属性残差的第一标志位和第二标志位分别有4种上下文模型。
表3
Figure BDA0002827743860000141
在一种实施例方式中,如果所述当前点云点的第一通道中的属性残差小于或等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第一预设阈值,则选择的用于编码所述第二通道中所述第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第三索引对应的上下文模型。
在一个示例中,以表2为例进行说明,所述第一预设阈值大于或等于1,第一通道的属性残差为C1,第二通道的属性残差为C3,第三通道的属性残差为C2,如果所述当前点云点的第一通道中的属性残差C1小于或等于1,以及所述当前点云点的第三通道中的属性残差C2小于或等于1,则选择的用于编码所述第二通道C3中所述第一标志位isOne的二元码的第一上下文模型,是所述上下文模型列表中第三索引即索引3对应的上下文模型。
在一种实施例方式中,如果所述当前点云点的第一通道中的属性残差等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差不等于所述第一预设阈值,则选择的用于编码所述第二通道中所述第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第三索引对应的上下文模型。
在一个示例中,以表3为例进行说明,所述第一预设阈值等于1,第一通道的属性残差为C1,第二通道的属性残差为C3,第三通道的属性残差为C2,如果所述当前点云点的第一通道中的属性残差C1等于1,以及所述当前点云点的第三通道中的属性残差C2不等于1,则选择的用于编码所述第二通道C3中所述第一标志位isOne的二元码的第一上下文模型,是所述上下文模型列表中第三索引即索引3对应的上下文模型。
在一种实施例方式中,如果所述当前点云点的第一通道中的属性残差小于或等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第一预设阈值,则选择的用于编码所述第二通道中所述第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第四索引对应的上下文模型。
在一个示例中,以表2为例进行说明,所述第一预设阈值大于或等于1,第一通道的属性残差为C1,第二通道的属性残差为C3,第三通道的属性残差为C2,如果所述当前点云点的第一通道中的属性残差C1小于或等于1,以及所述当前点云点的第三通道中的属性残差C2大于1,则选择的用于编码所述第二通道C3中所述第一标志位isOne的二元码的第一上下文模型,是所述上下文模型列表中第四索引即索引4对应的上下文模型。
在一种实施例方式中,如果所述当前点云点的第一通道中的属性残差等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差等于所述第一预设阈值,则选择的用于编码所述第二通道中所述第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第四索引对应的上下文模型。
在一个示例中,以表3为例进行说明,所述第一预设阈值等于1,第一通道的属性残差为C1,第二通道的属性残差为C3,第三通道的属性残差为C2,如果所述当前点云点的第一通道中的属性残差C1等于1,以及所述当前点云点的第三通道中的属性残差C2等于1,则选择的用于编码所述第二通道C3中所述第一标志位isOne的二元码的第一上下文模型,是所述上下文模型列表中第四索引即索引4对应的上下文模型。
在一种实施例方式中,如果所述当前点云点的第一通道中的属性残差大于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第一预设阈值,则选择的用于编码所述第二通道中所述第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第五索引对应的上下文模型。
在一个示例中,以表2为例进行说明,所述第一预设阈值大于或等于1,第一通道的属性残差为C1,第二通道的属性残差为C3,第三通道的属性残差为C2,如果所述当前点云点的第一通道中的属性残差C1大于1,以及所述当前点云点的第三通道中的属性残差C2小于或等于1,则选择的用于编码所述第二通道C3中所述第一标志位isOne的二元码的第一上下文模型,是所述上下文模型列表中第五索引即索引5对应的上下文模型。
在一种实施例方式中,如果所述当前点云点的第一通道中的属性残差不等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差等于所述第一预设阈值,则选择的用于编码所述第二通道中所述第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第五索引对应的上下文模型。
在一个示例中,以表3为例进行说明,所述第一预设阈值等于1,第一通道的属性残差为C1,第二通道的属性残差为C3,第三通道的属性残差为C2,如果所述当前点云点的第一通道中的属性残差C1不等于1,以及所述当前点云点的第三通道中的属性残差C2等于1,则选择的用于编码所述第二通道C3中所述第一标志位isOne的二元码的第一上下文模型,是所述上下文模型列表中第五索引即索引5对应的上下文模型。
在一种实施例方式中,如果所述当前点云点的第一通道中的属性残差大于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第一预设阈值,则选择的用于编码所述第二通道中所述第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第六索引对应的上下文模型。
在一个示例中,以表2为例进行说明,所述第一预设阈值大于或等于1,第一通道的属性残差为C1,第二通道的属性残差为C3,第三通道的属性残差为C2,如果所述当前点云点的第一通道中的属性残差C1大于1,以及所述当前点云点的第三通道中的属性残差C2大于1,则选择的用于编码所述第二通道C3中所述第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第六索引即索引6对应的上下文模型。
在一种实施例方式中,如果所述当前点云点的第一通道中的属性残差不等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差不等于所述第一预设阈值,则选择的用于编码所述第二通道中所述第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第六索引对应的上下文模型。
在一个示例中,以表3为例进行说明,所述第一预设阈值等于1,第一通道的属性残差为C1,第二通道的属性残差为C3,第三通道的属性残差为C2,如果所述当前点云点的第一通道中的属性残差C1不等于1,以及所述当前点云点的第三通道中的属性残差C2不等于1,则选择的用于编码所述第二通道C3中所述第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第六索引即索引6对应的上下文模型。
在某些实施例中,所述第一索引、第二索引、第三索引、第四索引、第五索引、第六索引是不相同的索引。
通过这种实施方式,可以在没有增加额外复杂度的情况下,优化第一标志位的二元码的上下文模型,缩短第一标志位的二元码的平均长度,有助于提高后续对第一标志位的二元码进行编码的效率。
S204:根据第二条件从所述上下文模型列表中选择用于编码所述第二标志位的二元码的第二上下文模型。
本发明实施例中,数据编码设备可以根据第二条件从所述上下文模型列表中选择用于编码所述第二标志位的二元码的第二上下文模型,其中,所述第一上下文模型和所述第二上下文模型对应所述上下文模型列表中的同一个索引时,所述第一条件与所述第二条件不相同。
在一些实施例中,所述第一上下文模型与所述第二上下文模型分别是用于编码同一个通道的属性残差的不同标志位的二元码的上下文模型。在某些实施例中,所述第一上下文模型与所述第二上下文模型可以是上下文模型列表中同一个索引对应的上下文模型。在某些实施例中,所述第一上下文模型与所述第二上下文模型可以是上下文模型列表中不同索引对应的上下文模型。在某些实施例中,所述索引可以包括但不限于数字、字母等字符。
在一个示例中,所述第一上下文模型可以是用于编码第一通道的属性残差的第一标志位isOne的二元码的上下文模型列表中索引0对应的上下文模型;所述第二上下文模型可以是用于编码第一通道的属性残差的第二标志位isZero的二元码的上下文模型列表中索引0对应的上下文模型。
在另一个示例中,所述第一上下文模型可以是用于编码第二通道的属性残差的第一标志位isOne的二元码的上下文模型列表中索引1对应的上下文模型;所述第二上下文模型可以是用于编码第二通道的属性残差的第二标志位isZero的二元码的上下文模型列表中索引2对应的上下文模型。
在一个实施例中,数据编码设备在根据第二条件从所述上下文模型列表中选择用于编码所述第二标志位的二元码的第二上下文模型时,可以根据所述当前点云点的第一通道的属性残差是否等于第二预设阈值,从所述上下文模型列表中选择用于编码所述第二通道的属性残差的所述第二标志位的二元码的第二上下文模型。在某些实施例中,所述第二预设阈值为0。在某些实施例中,所述第二预设阈值与所述第一预设阈值可以相同,也可以不相同,在此不做具体限定。
在一种实施方式中,如果所述当前点云点的第一通道的属性残差等于所述第二预设阈值,则数据编码设备可以从所述上下文模型列表中选择用于编码所述第二通道的属性残差的所述第二标志位的二元码的第二上下文模型为第二索引对应的上下文模型。如果所述当前点云点的第一通道的属性残差不等于所述第二预设阈值,则数据编码设备可以从所述上下文模型列表中选择用于编码所述第二通道的属性残差的所述第二标志位的二元码的第二上下文模型为第一索引对应的上下文模型。
在一个示例中,以表2为例,所述第二预设阈值与所述第一预设阈值不相同,第一通道的属性残差为C1,第二通道的属性残差为C2,所述第二预设阈值为0,如果所述当前点云点的第一通道的属性残差C1等于0,则数据编码设备可以从所述上下文模型列表中选择用于编码所述第二通道的属性残差C2的所述第二标志位isZero的二元码的第二上下文模型为索引1对应的上下文模型。如果所述当前点云点的第一通道的属性残差C1不等于0,则数据编码设备可以从所述上下文模型列表中选择用于编码所述第二通道的属性残差C2的所述第二标志位isZero的二元码的第二上下文模型为索引2对应的上下文模型。
在一种实施方式中,如果所述当前点云点的第一通道的属性残差等于所述第二预设阈值,以及所述当前点云点的第三通道的属性残差等于所述第二预设阈值,则数据编码设备可以从所述上下文模型列表中选择用于编码所述第二通道的属性残差的所述第二标志位的二元码的第二上下文模型为第三索引对应的上下文模型。如果所述当前点云点的第一通道的属性残差等于所述第二预设阈值,以及所述当前点云点的第三通道的属性残差不等于所述第二预设阈值,则数据编码设备可以从所述上下文模型列表中选择用于编码所述第二通道的属性残差的所述第二标志位的二元码的第二上下文模型为第四索引对应的上下文模型。如果所述当前点云点的第一通道的属性残差部等于所述第二预设阈值,以及所述当前点云点的第三通道的属性残差等于所述第二预设阈值,则数据编码设备可以从所述上下文模型列表中选择用于编码所述第二通道的属性残差的所述第二标志位的二元码的第二上下文模型为第五索引对应的上下文模型。如果所述当前点云点的第一通道的属性残差不等于所述第二预设阈值,以及所述当前点云点的第三通道的属性残差不等于所述第二预设阈值,则数据编码设备可以从所述上下文模型列表中选择用于编码所述第二通道的属性残差的所述第二标志位的二元码的第二上下文模型为第六索引对应的上下文模型。
在一个示例中,以表2为例,所述第二预设阈值与所述第一预设阈值不相同,第一通道的属性残差为C1,第二通道的属性残差为C3,第三通道的属性残差为C2,所述第二预设阈值为0,如果所述当前点云点的第一通道的属性残差C1等于0,以及所述第三通道的属性残差C2等于0,则数据编码设备可以从所述上下文模型列表中选择用于编码所述第二通道的属性残差C2的所述第二标志位isZer0的二元码的第二上下文模型为第三索引即索引3对应的上下文模型。
在一个实施例中,数据编码设备在根据第二条件从所述上下文模型列表中选择用于编码所述第二标志位的二元码的第二上下文模型时,可以判断所述当前点云点的第一通道的属性残差是否大于第二预设阈值,以及所述第三通道的属性残差是否大于所述第二预设阈值,并根据判断结果从所述上下文模型列表中选择用于编码第二通道中所述第二标志位的二元码的第二上下文模型;其中,所述第一预设阈值和所述第二预设阈值不同。
在一种实施方式中,如果所述当前点云点的第一通道中的属性残差小于或等于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第二预设阈值,则选择的用于编码所述第二通道中所述第二标志位的二元码的第二上下文模型,是所述上下文模型列表中第三索引对应的上下文模型。
在一个示例中,具体可以表4为例进行说明,所述第二预设阈值与所述第一预设阈值相同,表4是本发明实施例提供的又一种上下文模型构建的表格,如表4所示,所述第二预设阈值大于或等于1,第一通道的属性残差为C1,第二通道的属性残差为C2,第三通道的属性残差为C3,如果所述当前点云点的第一通道中的属性残差C1小于或等于1,以及所述当前点云点的第三通道中的属性残差C2小于或等于1,则选择的用于编码所述第二通道C3中所述第二标志位isZero的二元码的第二上下文模型,是所述上下文模型列表中第三索引即索引3对应的上下文模型。
表4
Figure BDA0002827743860000211
在一种实施方式中,如果所述当前点云点的第一通道中的属性残差小于或等于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第二预设阈值,则选择的用于编码所述第二通道中所述第二标志位的二元码的第二上下文模型,是所述上下文模型列表中第四索引对应的上下文模型。
在一个示例中,以表4为例进行说明,所述第二预设阈值与所述第一预设阈值相同,所述第二预设阈值大于或等于1,第一通道的属性残差为C1,第二通道的属性残差为C2,第三通道的属性残差为C3,如果所述当前点云点的第一通道中的属性残差C1小于或等于1,以及所述当前点云点的第三通道中的属性残差C2大于1,则选择的用于编码所述第二通道C3中所述第二标志位isZero的二元码的第二上下文模型,是所述上下文模型列表中第四索引即索引4对应的上下文模型。
如果所述当前点云点的第一通道中的属性残差大于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第二预设阈值,则选择的用于编码所述第二通道中所述第二标志位的二元码的第二上下文模型,是所述上下文模型列表中第五索引对应的上下文模型。
在一个示例中,以表4为例进行说明,所述第二预设阈值与所述第一预设阈值相同,所述第二预设阈值大于或等于1,第一通道的属性残差为C1,第二通道的属性残差为C2,第三通道的属性残差为C3,如果所述当前点云点的第一通道中的属性残差C1大于1,以及所述当前点云点的第三通道中的属性残差C2小于或等于1,则选择的用于编码所述第二通道C3中所述第二标志位isZero的二元码的第二上下文模型,是所述上下文模型列表中第五索引即索引5对应的上下文模型。
如果所述当前点云点的第一通道中的属性残差大于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第二预设阈值,则选择的用于编码所述第二通道中所述第二标志位的二元码的第二上下文模型,是所述上下文模型列表中第六索引对应的上下文模型。
在一个示例中,以表4为例进行说明,所述第二预设阈值与所述第一预设阈值相同,所述第二预设阈值大于或等于1,第一通道的属性残差为C1,第二通道的属性残差为C2,第三通道的属性残差为C3,如果所述当前点云点的第一通道中的属性残差C1大于1,以及所述当前点云点的第三通道中的属性残差C2大于1,则选择的用于编码所述第二通道C3中所述第二标志位isZero的二元码的第二上下文模型,是所述上下文模型列表中第六索引即索引6对应的上下文模型。
通过这种实施方式,可以在没有增加额外复杂度的情况下,优化第二标志位的二元码的上下文模型,有助于提高后续对第二标志位的二元码进行编码的效率。
S205:采用所述第二上下文模型对所述第二标志位的二元码进行编码。
本发明实施例中,数据编码设备可以采用根据第二条件从所述上下文模型列表中选择用于编码所述第二标志位的二元码的第二上下文模型,对所述第二标志位的二元码进行编码。
在一个实施例中,由于在利用zero run length编码方法对属性残差进行编码时可以得到第二标志位;或者,编码得到第二标志位和第一标志位。
在一种实施方式中,在利用zero run length编码方法对属性残差进行编码得到第二标志位和第一标志位时,按照zero run length编码先后顺序依次得到第二标志位、第一标志位。因此,在数据编码设备在对当前点云点进行编码时,可以首先采用所述第二上下文模型对所述第二标志位的二元码进行编码,然后,再采用所述第一上下文模型对所述第一标志位的二元码进行编码。
S206:采用所述第一上下文模型对所述第一标志位的二元码进行编码。
本发明实施例中,数据编码设备可以采用根据第一条件从上下文模型列表中选择用于编码所述第一标志位的二元码的第一上下文模型,对所述第一标志位的二元码进行编码。
本发明实施例中,数据编码设备可以对当前点云点的属性残差进行二值化,得到包括用于指示第一标志位的二元码和用于指示第二标志位的二元码,根据第一条件从上下文模型列表中选择用于编码第一标志位的二元码的第一上下文模型,并采用所述第一上下文模型对所述第一标志位的二元码进行编码;以及根据第二条件从所述上下文模型列表中选择用于编码所述第二标志位的二元码的第二上下文模型,并采用所述第二上下文模型对所述第二标志位的二元码进行编码。通过这种实施方式,可以在不增加额外复杂度的情况下,提高编码效率。
请参见图3,图3是本发明实施例提供的另一种数据编码方法的流程示意图。所述方法可以应用于数据编码设备,其中,所述数据编码设备的解释如前所述,此处不再赘述。具体地,本发明实施例的所述方法包括如下步骤。
S301:获取当前点云点的属性残差,其中,所述属性残差包括第一通道的属性残差和第二通道的属性残差。
本发明实施例中,数据编码设备可以获取当前点云点的属性残差,其中,所述属性残差包括第一通道的属性残差和第二通道的属性残差。在某些实施例中,所述属性残差还包括第三通道的属性残差。
在某些实施例中,所述第一通道包括R通道或Y通道,所述第二通道包括G通道或U通道,所述第三通道包括B通道或V通道。
在某些实施例中,所述第一通道包括R通道或Y通道,所述第二通道包括B通道或V通道,所述第三通道包括G通道或U通道。
在某些实施例中,所述当前点云点的属性残差为大于或等于0的数值。
S302:对每个通道的属性残差进行二值化,得到每个通道对应的二元码,其中,所述第二通道对应的二元码包括用于指示第一标志位的二元码。
本发明实施例中,数据编码设备可以对每个通道的属性残差进行二值化,得到每个通道对应的二元码,其中,所述第二通道对应的二元码包括用于指示第一标志位的二元码。在某些实施例中,所述第一标志位用于指示所述当前点云点的第二通道的属性残差是否为N,N大于或等于0;在一个示例中,所述第一标志位用于指示所述当前点云点的一个通道的属性残差是否为2。
在一个实施例中,数据编码设备在对每个通道的属性残差进行二值化,得到每个通道对应的二元码时,可以根据预设的编码方法对所述每个通道的属性残差进行编码,得到编码值,并对所述编码值进行二值化,得到所述每个通道对应的二元码。
在一种实施方式,数据编码设备在根据预设的编码方法对所述当前点云点属性残差进行编码,得到编码值时,可以使用zero run length的编码方法,将所述当前点云点的一个通道的属性残差进行中重复且连续出现多次的0使用一个zero run语法元素来记录连续出现0的次数,并不再对这些0进行残差编码,而对于一个通道中的属性残差中非零的值,zero run自然等于0,且需要对这些非零值进行编码,从而得一个通道的属性残差的编码值。具体实施例举例如前所述,此处不再赘述。
在一种实施方式,数据编码设备在对所述编码值进行二值化,得到所述当前点云点的二元码时,对于这些非零的属性残差的编码值,并不是直接进行熵编码,而是进行如下的操作:对该属性残差减1,判断该属性残差减1之后是否为0,如果是0,则将第二标志位isZero置1,且这个值的编码结束,如果该属性残差减1后不为0,则将第二标志位isZero置0,并判断该属性残差减1后是否为1,如果是1,则将第一标志位isOne置1,并结束该值的编码,如果该属性残差减1后不为1,否则将第一标志位isOne置0,并对该值减去2后的值进行算术编码。具体实施例举例如前所述,此处不再赘述。
在某些实施例中,所述当前点云点的二元码包括第一通道的属性残差的二元码、第二通道的属性残差的二元码以及第三通道的属性残差的二元码。在某些实施例中,所述第一通道、第二通道、第三通道是不相同的通道。
通过这种实施方式对当前点云点的属性残差进行二值化,得到包括用于指示第一标志位和第二标志位的二元码,可以简化二值化的过程,降低二值化的复杂度,以便后续编码时根据不同标志位选取对应的上下文模型对不同标志位对应的二元码进行编码,有助于提高编码效率。
S303:根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的二元码进行编码。
本发明实施例中,数据编码设备可以根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的二元码进行编码,其中,所述第一预设阈值大于0。在某些实施例中,所述第一预设阈值大于或者等于1。
在一个实施例中,所述数据编码设备在根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的二元码进行编码时,可以判断所述当前点云点的第一通道的属性残差是否大于第一预设阈值,如果判断结果为否,则可以从所述上下文模型列表中选择第一索引对应的上下文模型,对所述第二通道中所述第一标志位的二元码进行编码,如果判断结果为是,则可以从所述上下文模型列表中选择第二索引对应的上下文模型,对所述第二通道中所述第一标志位的二元码进行编码。
在一种实施方式中,如果判断出所述当前点云点的第一通道的属性残差大于第一预设阈值,则可以从所述上下文模型列表中选择第一索引对应的上下文模型,对所述第二通道中所述第一标志位的二元码进行编码,如果判断出所述当前点云点的第一通道的属性残差不大于第一预设阈值,则可以从所述上下文模型列表中选择第二索引对应的上下文模型,对所述第二通道中所述第一标志位的二元码进行编码。
在一个示例中,以表2为例进行说明,所述第一预设阈值大于或等于1,第一通道的属性残差为C1,第二通道的属性残差为C2,如果判断出所述当前点云点的第一通道的属性残差C1大于1时,选择的用于编码所述第二通道的属性残差C2的第一标志位isOne的二元码的第一上下文模型,是所述上下文模型列表中第一索引即索引2对应的上下文模型,并对所述第二通道C2中所述第一标志位isOne的二元码进行编码。如果判断出所述当前点云点的第一通道的属性残差C1小于或等于1时,选择的用于编码所述第二通道的属性残差C2的第一标志位isOne的二元码的第一上下文模型,是所述上下文模型列表中第二索引即索引1对应的上下文模型,并对所述第二通道C2中所述第一标志位isOne的二元码进行编码。
在一个实施例中,所述第二通道对应的二元码还包括用于指示第二标志位的二元码;所述数据编码设备可以根据所述当前点云点的第一通道的属性残差是否等于第二预设阈值,从所述上下文模型列表中选择用于编码所述第二通道的属性残差的所述第二标志位的二元码的上下文模型。在某些实施例中,所述第二预设阈值为0。在某些实施例中,所述第二预设阈值与所述第一预设阈值可以相同,也可以不相同,本发明实施例不做具体限定。
在一种实施方式中,如果所述当前点云点的第一通道的属性残差等于所述第二预设阈值,则数据编码设备可以从所述上下文模型列表中选择用于编码所述第二通道的属性残差的所述第二标志位的二元码的第二上下文模型为第二索引对应的上下文模型。如果所述当前点云点的第一通道的属性残差不等于所述第二预设阈值,则数据编码设备可以从所述上下文模型列表中选择用于编码所述第二通道的属性残差的所述第二标志位的二元码的第二上下文模型为第一索引对应的上下文模型。具体实施例举例如前所述,此处不再赘述。
在一种实施方式中,如果所述当前点云点的第一通道的属性残差等于所述第二预设阈值,以及所述当前点云点的第三通道的属性残差等于所述第二预设阈值,则数据编码设备可以从所述上下文模型列表中选择用于编码所述第二通道的属性残差的所述第二标志位的二元码的第二上下文模型为第三索引对应的上下文模型。如果所述当前点云点的第一通道的属性残差等于所述第二预设阈值,以及所述当前点云点的第三通道的属性残差不等于所述第二预设阈值,则数据编码设备可以从所述上下文模型列表中选择用于编码所述第二通道的属性残差的所述第二标志位的二元码的第二上下文模型为第四索引对应的上下文模型。如果所述当前点云点的第一通道的属性残差部等于所述第二预设阈值,以及所述当前点云点的第三通道的属性残差等于所述第二预设阈值,则数据编码设备可以从所述上下文模型列表中选择用于编码所述第二通道的属性残差的所述第二标志位的二元码的第二上下文模型为第五索引对应的上下文模型。如果所述当前点云点的第一通道的属性残差不等于所述第二预设阈值,以及所述当前点云点的第三通道的属性残差不等于所述第二预设阈值,则数据编码设备可以从所述上下文模型列表中选择用于编码所述第二通道的属性残差的所述第二标志位的二元码的第二上下文模型为第六索引对应的上下文模型。具体实施例举例如前所述,此处不再赘述。
在一个实施例中,数据编码设备在根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的二元码进行编码时,可以判断所述当前点云点的第一通道的属性残差是否大于所述第一预设阈值,以及第三通道的属性残差是否大于所述第一预设阈值,并根据判断结果从所述上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的二元码进行编码。
在一种实施例方式中,数据编码设备在根据判断结果从所述上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的二元码进行编码时,如果所述当前点云点的第一通道中的属性残差小于或等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第一预设阈值,则数据编码设备可以从所述上下文模型列表中选择第三索引对应的上下文模型,对所述第二通道中所述第一标志位的二元码进行编码。
在一个示例中,以表2为例进行说明,所述第二预设阈值与所述第一预设阈值不相同,所述第一预设阈值大于或等于1,第一通道的属性残差为C1,第二通道的属性残差为C3,第三通道的属性残差为C2,如果所述当前点云点的第一通道中的属性残差C1小于或等于1,以及所述当前点云点的第三通道中的属性残差C2小于或等于1,则选择的用于编码所述第二通道C3中所述第一标志位isOne的二元码的第一上下文模型,是所述上下文模型列表中第三索引即索引3对应的上下文模型,并对所述第二通道中所述第一标志位的二元码进行编码。
在一个实施例中,数据编码设备在根据判断结果从所述上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的二元码进行编码时,如果所述当前点云点的第一通道中的属性残差小于或等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第一预设阈值,则从所述上下文模型列表中选择第四索引对应的上下文模型,对所述第二通道中所述第一标志位isOne的二元码进行编码。
在一个示例中,以表2为例进行说明,所述第二预设阈值与所述第一预设阈值不相同,所述第一预设阈值大于或等于1,第一通道的属性残差为C1,第二通道的属性残差为C3,第三通道的属性残差为C2,如果所述当前点云点的第一通道中的属性残差C1小于或等于1,以及所述当前点云点的第三通道中的属性残差C2大于1,则选择的用于编码所述第二通道C3中所述第一标志位isOne的二元码的第一上下文模型,是所述上下文模型列表中第四索引即索引4对应的上下文模型,并对所述第二通道中所述第一标志位isOne的二元码进行编码。
在一个实施例中,数据编码设备在根据判断结果从所述上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的二元码进行编码时,如果所述当前点云点的第一通道中的属性残差大于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第一预设阈值,则从所述上下文模型列表中选择第五索引对应的上下文模型,对所述第二通道中所述第一标志位的二元码进行编码。
在一个示例中,以表2为例进行说明,所述第二预设阈值与所述第一预设阈值不相同,所述第一预设阈值大于或等于1,第一通道的属性残差为C1,第二通道的属性残差为C3,第三通道的属性残差为C2,如果所述当前点云点的第一通道中的属性残差C1大于1,以及所述当前点云点的第三通道中的属性残差C2小于或等于1,则选择的用于编码所述第二通道C3中所述第一标志位isOne的二元码的第一上下文模型,是所述上下文模型列表中第五索引即索引5对应的上下文模型,并对所述第二通道中所述第一标志位的二元码进行编码。
在一个实施例中,数据编码设备在根据判断结果从所述上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的二元码进行编码时,如果所述当前点云点的第一通道中的属性残差大于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第一预设阈值,则从所述上下文模型列表中选择第六索引对应的上下文模型,对所述第二通道中所述第一标志位的二元码进行编码。
在一个示例中,以表2为例进行说明,所述第二预设阈值与所述第一预设阈值不相同,所述第一预设阈值大于或等于1,第一通道的属性残差为C1,第二通道的属性残差为C3,第三通道的属性残差为C2,如果所述当前点云点的第一通道中的属性残差C1大于1,以及所述当前点云点的第三通道中的属性残差C2大于1,则选择的用于编码所述第二通道C3中所述第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第六索引即索引6对应的上下文模型,并对所述第二通道中所述第一标志位的二元码进行编码。
在一个实施例中,数据编码设备可以判断所述当前点云点的第一通道的属性残差是否大于第二预设阈值,以及第三通道的属性残差是否大于所述第二预设阈值,并根据判断结果从所述上下文模型列表中选择用于编码第二通道中第二标志位的二元码的上下文模型,其中,所述第一预设阈值和所述第二预设阈值不同。
在一个实施例中,如果所述当前点云点的第一通道中的属性残差小于或等于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第二预设阈值,则选择的用于编码所述第二通道中所述第二标志位的二元码的上下文模型,是所述上下文模型列表中第三索引对应的上下文模型。具体实施例举例如前所述,此处不再赘述。
在一个实施例中,如果所述当前点云点的第一通道中的属性残差小于或等于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第二预设阈值,则选择的用于编码所述第二通道中所述第二标志位的二元码的上下文模型,是所述上下文模型列表中第四索引对应的上下文模型。具体实施例举例如前所述,此处不再赘述。
在一个实施例中,如果所述当前点云点的第一通道中的属性残差大于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第二预设阈值,则选择的用于编码所述第二通道中所述第二标志位的二元码的上下文模型,是所述上下文模型列表中第五索引对应的上下文模型。具体实施例举例如前所述,此处不再赘述。
在一个实施例中,如果所述当前点云点的第一通道中的属性残差大于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第二预设阈值,则选择的用于编码所述第二通道中所述第二标志位的二元码的上下文模型,是所述上下文模型列表中第六索引对应的上下文模型。具体实施例举例如前所述,此处不再赘述。
在一些实施例中,所述第一通道的属性残差的二元码的第二标志位用于指示所述第一通道的属性残差是否为1;或者,所述第一通道的属性残差的二元码的第一标志位用于指示所述第一通道的属性残差是否为2。
在一些实施例中,所述第一通道的属性残差的二元码的第二标志位用于指示所述第一通道的属性残差是否为0;或者,所述第一通道的属性残差的二元码的第一标志位用于指示所述第一通道的属性残差是否为1。
本发明实施例中,数据编码设备可以对当前点云点的每个通道的属性残差进行二值化,得到每个通道对应的二元码,其中,第二通道对应的二元码包括用于指示第一标志位的二元码,并根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的二元码进行编码。通过这种实施方式,可以在不增加额外复杂度的情况下,提高编码效率。
下面结合附图4-5对本发明实施例提供的数据解码方法进行示意性说明。
请参见图4,图4是本发明实施例提供的一种数据解码方法的流程示意图。所述方法可以应用于数据解码设备,其中,所述数据解码设备可以设置在智能终端(如手机、平板电脑等)上。具体地,本发明实施例的所述方法包括如下步骤。
S401:获取当前点云点的码流数据,所述码流数据包括第一标志位的码流数据和第二标志位的码流数据。
本发明实施例中,数据解码设备可以获取当前点云点的码流数据,所述码流数据包括第一标志位的码流数据和第二标志位的码流数据。
在某些实施例中,所述码流数据包括第一通道的属性残差的码流数据、第二通道的属性残差的码流数据以及第三通道的属性残差的码流数据。
在某些实施例中,所述第一通道包括R通道或Y通道,所述第二通道包括G通道或U通道,所述第三通道包括B通道或V通道。在某些实施例中,所述第一通道包括R通道或Y通道,所述第二通道包括B通道或V通道,所述第三通道包括G通道或U通道。
在一些实施例中,所述第一标志位用于指示所述当前点云点的一个通道的属性残差是否为N+1,所述第二标志位用于指示所述当前点云点的一个通道的属性残差是否为N,N大于或等于0。
在一些实施例中,所述第一通道的属性残差的码流数据的第二标志位用于指示所述第一通道的属性残差是否为1;或者,所述第一通道的属性残差的码流数据的第一标志位用于指示所述第一通道的属性残差是否为2。
在一些实施例中,所述第一通道的属性残差的码流数据的第二标志位用于指示所述第一通道的属性残差是否为0;或者,所述第一通道的属性残差的码流数据的第一标志位用于指示所述第一通道的属性残差是否为1。
S402:根据第一条件从上下文模型列表中选择用于解码所述第一标志位的码流数据的第一上下文模型,对所述第一标志位的码流数据进行解码,得到用于指示所述第一标志位的二元码。
本发明实施例中,数据解码设备可以根据第一条件从上下文模型列表中选择用于解码所述第一标志位的码流数据的第一上下文模型,对所述第一标志位的码流数据进行解码,得到用于指示所述第一标志位的二元码。
在一个实施例中,数据解码设备在根据第一条件从上下文模型列表中选择用于解码所述第一标志位的码流数据的第一上下文模型时,可以对所述当前点云点的第一通道的属性残差的码流数据解码得到所述第一通道的属性残差,并根据所述第一通道的属性残差是否大于第一预设阈值,从所述上下文模型列表中选择用于解码第二通道的属性残差的第一标志位的码流数据的第一上下文模型,其中,所述第一预设阈值大于0。在某些实施例中,所述第一预设阈值大于或者等于1。在某些实施例中,所述第一通道的属性残差的第一标志位和第二标志位分别有1种上下文模型。在某些实施例中,所述第二通道的属性残差的第一标志位和第二标志位分别有2种上下文模型。
在一种实施方式中,所述当前点云点的第一通道的属性残差大于所述第一预设阈值时,选择的用于解码所述第二通道的属性残差的第一标志位的码流数据的第一上下文模型,是所述上下文模型列表中第一索引对应的上下文模型。
在一个示例中,以表2为例进行说明,假设所述第一预设阈值大于或等于1,第一通道的属性残差为C1,第二通道的属性残差为C2,在对所述当前点云点的第一通道的属性残差C1的码流数据解码得到所述第一通道的属性残差C1大于1时,选择的用于解码所述第二通道的属性残差C2的第一标志位isOne的码流数据的第一上下文模型,是所述上下文模型列表中第一索引即索引2对应的上下文模型。
在一种实施方式中,所述当前点云点的第一通道的属性残差不大于所述第一预设阈值时,选择的用于解码所述第二通道的属性残差的第一标志位的码流数据的第一上下文模型,是所述上下文模型列表中第二索引对应的上下文模型。
在一个示例中,以表2为例进行说明,假设所述第一预设阈值大于或等于1,第一通道的属性残差为C1,第二通道的属性残差为C2,在对所述当前点云点的第一通道的属性残差C1的码流数据解码得到所述第一通道的属性残差C1小于或等于1时,选择的用于解码所述第二通道的属性残差C2的第一标志位isOne的码流数据的第一上下文模型,是所述上下文模型列表中第二索引即索引1对应的上下文模型。
在一个实施例中,数据解码设备在根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从所述上下文模型列表中选择用于解码第二通道的属性残差的第一标志位的码流数据的第一上下文模型时,可以判断所述当前点云点的第一通道的属性残差是否大于所述第一预设阈值,以及第三通道的属性残差是否大于所述第一预设阈值,并根据判断结果从所述上下文模型列表中选择用于解码所述第二通道中所述第一标志位的码流数据的第一上下文模型。在某些实施例中,所述第一通道的属性残差的第一标志位和第二标志位分别有1种上下文模型。在某些实施例中,所述第三通道的属性残差的第一标志位和第二标志位分别有2种上下文模型。在某些实施例中,所述第二通道的属性残差的第一标志位和第二标志位分别有4种上下文模型。
在一种实施方式中,如果所述当前点云点的第一通道中的属性残差小于或等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第一预设阈值,则选择的用于解码所述第二通道中所述第一标志位的码流数据的第一上下文模型,是所述上下文模型列表中第三索引对应的上下文模型。
在一个示例中,以表2为例进行说明,所述第一预设阈值大于或等于1,第一通道的属性残差为C1,第二通道的属性残差为C3,第三通道的属性残差为C2,如果所述当前点云点的第一通道中的属性残差C1小于或等于1,以及所述当前点云点的第三通道中的属性残差C2小于或等于1,则选择的用于解码所述第二通道C3中所述第一标志位isOne的码流数据的第一上下文模型,是所述上下文模型列表中第三索引即索引3对应的上下文模型。
在一种实施例方式中,如果所述当前点云点的第一通道中的属性残差等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差不等于所述第一预设阈值,则选择的用于解码所述第二通道中所述第一标志位的码流数据的第一上下文模型,是所述上下文模型列表中第三索引对应的上下文模型。
在一个示例中,以表3为例进行说明,所述第一预设阈值等于1,第一通道的属性残差为C1,第二通道的属性残差为C3,第三通道的属性残差为C2,如果所述当前点云点的第一通道中的属性残差C1等于1,以及所述当前点云点的第三通道中的属性残差C2不等于1,则选择的用于解码所述第二通道C3中所述第一标志位isOne的码流数据的第一上下文模型,是所述上下文模型列表中第三索引即索引3对应的上下文模型。
在一种实施方式中,如果所述当前点云点的第一通道中的属性残差小于或等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第一预设阈值,则选择的用于解码所述第二通道中所述第一标志位的码流数据的第一上下文模型,是所述上下文模型列表中第四索引对应的上下文模型。
在一个示例中,以表2为例进行说明,所述第一预设阈值大于或等于1,第一通道的属性残差为C1,第二通道的属性残差为C3,第三通道的属性残差为C2,如果所述当前点云点的第一通道中的属性残差C1小于或等于1,以及所述当前点云点的第三通道中的属性残差C2大于1,则选择的用于解码所述第二通道C3中所述第一标志位isOne的码流数据的第一上下文模型,是所述上下文模型列表中第四索引即索引4对应的上下文模型。
在一种实施例方式中,如果所述当前点云点的第一通道中的属性残差等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差等于所述第一预设阈值,则选择的用于解码所述第二通道中所述第一标志位的码流数据的第一上下文模型,是所述上下文模型列表中第四索引对应的上下文模型。
在一个示例中,以表3为例进行说明,所述第一预设阈值等于1,第一通道的属性残差为C1,第二通道的属性残差为C3,第三通道的属性残差为C2,如果所述当前点云点的第一通道中的属性残差C1等于1,以及所述当前点云点的第三通道中的属性残差C2等于1,则选择的用于解码所述第二通道C3中所述第一标志位isOne的码流数据的第一上下文模型,是所述上下文模型列表中第四索引即索引4对应的上下文模型。
在一种实施方式中,如果所述当前点云点的第一通道中的属性残差大于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第一预设阈值,则选择的用于解码所述第二通道中所述第一标志位的码流数据的第一上下文模型,是所述上下文模型列表中第五索引对应的上下文模型。
在一个示例中,以表2为例进行说明,所述第一预设阈值大于或等于1,第一通道的属性残差为C1,第二通道的属性残差为C3,第三通道的属性残差为C2,如果所述当前点云点的第一通道中的属性残差C1大于1,以及所述当前点云点的第三通道中的属性残差C2小于或等于1,则选择的用于解码所述第二通道C3中所述第一标志位isOne的码流数据的第一上下文模型,是所述上下文模型列表中第五索引即索引5对应的上下文模型。
在一种实施例方式中,如果所述当前点云点的第一通道中的属性残差不等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差等于所述第一预设阈值,则选择的用于解码所述第二通道中所述第一标志位的码流数据的第一上下文模型,是所述上下文模型列表中第五索引对应的上下文模型。
在一个示例中,以表3为例进行说明,所述第一预设阈值等于1,第一通道的属性残差为C1,第二通道的属性残差为C3,第三通道的属性残差为C2,如果所述当前点云点的第一通道中的属性残差C1不等于1,以及所述当前点云点的第三通道中的属性残差C2等于1,则选择的用于解码所述第二通道C3中所述第一标志位isOne的码流数据的第一上下文模型,是所述上下文模型列表中第五索引即索引5对应的上下文模型。
在一种实施方式中,如果所述当前点云点的第一通道中的属性残差大于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第一预设阈值,则选择的用于解码所述第二通道中所述第一标志位的码流数据的第一上下文模型,是所述上下文模型列表中第六索引对应的上下文模型。
在一个示例中,以表2为例进行说明,所述第一预设阈值大于或等于1,第一通道的属性残差为C1,第二通道的属性残差为C3,第三通道的属性残差为C2,如果所述当前点云点的第一通道中的属性残差C1大于1,以及所述当前点云点的第三通道中的属性残差C2大于1,则选择的用于解码所述第二通道C3中所述第一标志位的码流数据的第一上下文模型,是所述上下文模型列表中第六索引即索引6对应的上下文模型。
在一种实施例方式中,如果所述当前点云点的第一通道中的属性残差不等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差不等于所述第一预设阈值,则选择的用于解码所述第二通道中所述第一标志位的码流数据的第一上下文模型,是所述上下文模型列表中第六索引对应的上下文模型。
在一个示例中,以表3为例进行说明,所述第一预设阈值等于1,第一通道的属性残差为C1,第二通道的属性残差为C3,第三通道的属性残差为C2,如果所述当前点云点的第一通道中的属性残差C1不等于1,以及所述当前点云点的第三通道中的属性残差C2不等于1,则选择的用于解码所述第二通道C3中所述第一标志位的码流数据的第一上下文模型,是所述上下文模型列表中第六索引即索引6对应的上下文模型。
在某些实施例中,所述第一索引、第二索引、第三索引、第四索引、第五索引、第六索引是不相同的索引。
通过这种实施方式,可以在没有增加额外复杂度的情况下,优化第一标志位的码流数据的上下文模型,有助于提高后续对第一标志位的码流数据进行解码的效率。
S403:根据第二条件从上下文模型列表中选择用于解码所述第二标志位的码流数据的第二上下文模型,对所述第二标志位的码流数据进行解码,得到用于指示所述第二标志位的二元码。
本发明实施例中,数据解码设备可以根据第二条件从上下文模型列表中选择用于解码所述第二标志位的码流数据的第二上下文模型,对所述第二标志位的码流数据进行解码,得到用于指示所述第二标志位的二元码。在某些实施例中,所述第一上下文模型和所述第二上下文模型对应所述上下文模型列表中的同一个索引时,所述第一条件与所述第二条件不相同。
在一个实施例中,所述当前点云点的码流数据包括第二标志位的码流数据;或者,所述当前点云点的码流数据包括第二标志位的码流数据和第一标志位的码流数据。
在一个实施例中,当所述当前点云点的码流数据包括第二标志位的码流数据和第一标志位的码流数据时,首先根据第二条件从上下文模型列表中选择用于解码所述第二标志位的码流数据的第二上下文模型,对所述第二标志位的码流数据进行解码,得到用于指示所述第二标志位的二元码,然后,再根据第一条件从上下文模型列表中选择用于解码所述第一标志位的码流数据的第一上下文模型,对所述第一标志位的码流数据进行解码,得到用于指示所述第一标志位的二元码。
在一些实施例中,所述第一上下文模型与所述第二上下文模型分别是用于解码同一个通道的属性残差的不同标志位的码流数据的上下文模型。在某些实施例中,所述第一上下文模型与所述第二上下文模型可以是上下文模型列表中同一个索引对应的上下文模型。在某些实施例中,所述第一上下文模型与所述第二上下文模型可以是上下文模型列表中不同索引对应的上下文模型。在某些实施例中,所述索引可以包括但不限于数字、字母等字符。
在一个示例中,所述第一上下文模型可以是用于解码第一通道的属性残差的第一标志位isOne的码流数据的上下文模型列表中索引0对应的上下文模型;所述第二上下文模型可以是用于解码第一通道的属性残差的第二标志位isZero的码流数据的上下文模型列表中索引0对应的上下文模型。
在另一个示例中,所述第一上下文模型可以是用于解码第二通道的属性残差的第一标志位isOne的码流数据的上下文模型列表中索引1对应的上下文模型;所述第二上下文模型可以是用于解码第二通道的属性残差的第二标志位isZero的码流数据的上下文模型列表中索引2对应的上下文模型。
在一个实施例中,数据解码设备在根据第二条件从上下文模型列表中选择用于解码所述第二标志位的码流数据的第二上下文模型时,可以根据所述当前点云点的第一通道的属性残差是否等于第二预设阈值,从所述上下文模型列表中选择用于解码第二通道的属性残差的所述第二标志位的码流数据的第二上下文模型;在某些实施例中,所述第二预设阈值为0。在某些实施例中,所述第二预设阈值与所述第一预设阈值可以相同,所述第二预设阈值与所述第一预设阈值可以不相同。
在一种实施方式中,如果所述当前点云点的第一通道的属性残差等于所述第二预设阈值,则数据解码设备可以从所述上下文模型列表中选择用于解码所述第二通道的属性残差的所述第二标志位的码流数据的第二上下文模型为第二索引对应的上下文模型。如果所述当前点云点的第一通道的属性残差不等于所述第二预设阈值,则数据解码设备可以从所述上下文模型列表中选择用于解码所述第二通道的属性残差的所述第二标志位的码流数据的第二上下文模型为第一索引对应的上下文模型。
在一个示例中,以表2为例,所述第二预设阈值与所述第一预设阈值不相同,第一通道的属性残差为C1,第二通道的属性残差为C2,所述第二预设阈值为0,如果所述当前点云点的第一通道的属性残差C1等于0,则数据解码设备可以从所述上下文模型列表中选择用于解码所述第二通道的属性残差C2的所述第二标志位isZero的码流数据的第二上下文模型为索引1对应的上下文模型。如果所述当前点云点的第一通道的属性残差C1不等于0,则数据解码设备可以从所述上下文模型列表中选择用于解码所述第二通道的属性残差C2的所述第二标志位isZero的码流数据的第二上下文模型为索引2对应的上下文模型。
在一个实施例中,数据解码设备在根据第二条件从上下文模型列表中选择用于解码所述第二标志位的码流数据的第二上下文模型时,可以判断所述当前点云点的第一通道的属性残差是否大于第二预设阈值,以及所述第三通道的属性残差是否大于所述第二预设阈值,并根据判断结果从所述上下文模型列表中选择用于解码所述第二通道中所述第二标志位的码流数据的第二上下文模型,其中,所述第一预设阈值和所述第二预设阈值不同。
在一种实施方式中,如果所述当前点云点的第一通道中的属性残差小于或等于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第二预设阈值,则选择的用于解码所述第二通道中所述第二标志位的码流数据的第二上下文模型,是所述上下文模型列表中第三索引对应的上下文模型。
在一个示例中,以表4为例进行说明,所述第二预设阈值与所述第一预设阈值相同,所述第二预设阈值大于或等于1,第一通道的属性残差为C1,第二通道的属性残差为C2,第三通道的属性残差为C3,如果所述当前点云点的第一通道中的属性残差C1小于或等于1,以及所述当前点云点的第三通道中的属性残差C2小于或等于1,则选择的用于解码所述第二通道C3中所述第二标志位isZero的码流数据的第二上下文模型,是所述上下文模型列表中第三索引即索引3对应的上下文模型。
在一种实施方式中,如果所述当前点云点的第一通道中的属性残差小于或等于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第二预设阈值,则选择的用于解码所述第二通道中所述第二标志位的码流数据的第二上下文模型,是所述上下文模型列表中第四索引对应的上下文模型。
在一个示例中,以表4为例进行说明,所述第二预设阈值与所述第一预设阈值相同,所述第二预设阈值大于或等于1,第一通道的属性残差为C1,第二通道的属性残差为C2,第三通道的属性残差为C3,如果所述当前点云点的第一通道中的属性残差C1小于或等于1,以及所述当前点云点的第三通道中的属性残差C2大于1,则选择的用于解码所述第二通道C3中所述第二标志位isZero的码流数据的第二上下文模型,是所述上下文模型列表中第四索引即索引4对应的上下文模型。
在一种实施方式中,如果所述当前点云点的第一通道中的属性残差大于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第二预设阈值,则选择的用于解码所述第二通道中所述第二标志位的码流数据的第二上下文模型,是所述上下文模型列表中第五索引对应的上下文模型。
在一个示例中,以表4为例进行说明,所述第二预设阈值与所述第一预设阈值相同,所述第二预设阈值大于或等于1,第一通道的属性残差为C1,第二通道的属性残差为C2,第三通道的属性残差为C3,如果所述当前点云点的第一通道中的属性残差C1大于1,以及所述当前点云点的第三通道中的属性残差C2小于或等于1,则选择的用于解码所述第二通道C3中所述第二标志位isZero的码流数据的第二上下文模型,是所述上下文模型列表中第五索引即索引5对应的上下文模型。
在一种实施方式中,如果所述当前点云点的第一通道中的属性残差大于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第二预设阈值,则选择的用于解码所述第二通道中所述第二标志位的码流数据的第二上下文模型,是所述上下文模型列表中第六索引对应的上下文模型。
在一个示例中,以表4为例进行说明,所述第二预设阈值与所述第一预设阈值相同,所述第二预设阈值大于或等于1,第一通道的属性残差为C1,第二通道的属性残差为C2,第三通道的属性残差为C3,如果所述当前点云点的第一通道中的属性残差C1大于1,以及所述当前点云点的第三通道中的属性残差C2大于1,则选择的用于解码所述第二通道C3中所述第二标志位isZero的码流数据的第二上下文模型,是所述上下文模型列表中第六索引即索引6对应的上下文模型。
通过这种实施方式,可以在没有增加额外复杂度的情况下,优化第二标志位的码流数据的上下文模型,有助于提高对第二标志位的码流数据进行解码的效率。
S404:对所述用于指示所述第一标志位的二元码以及用于指示所述第二标志位的二元码进行逆二值化,得到所述当前点云点的属性残差。
本发明实施例中,数据解码设备可以对所述用于指示所述第一标志位的二元码以及用于指示所述第二标志位的二元码进行逆二值化,得到所述当前点云点的属性残差。
在一个实施例中,数据解码设备在对所述用于指示所述第一标志位的二元码以及用于指示所述第二标志位的二元码进行逆二值化时,可以对所述用于指示所述第一标志位的二元码以及用于指示所述第二标志位的二元码进行逆二值化,得到编码值,并根据预设的解码方法对所述编码值进行解码,得到所述当前点云点的属性残差。
以图1为例,数据解码设备可以用于指示第一标志位isOne的二元码以及用于指示第二标志位isZero的二元码进行逆二值化,得到编码值0,73,0,50,32,0,15,1,12,N,并根据与zero run length的编码方法对应的解码方法对所述编码值进行解码,删除编码值中的0,解码所述编码值中的1为0,解码所述编码值中的N为N个连续的0,从而得到所述当前点云点的属性残差为73,50,32,15,0,12,0,0,0,...,0,其中,包括N个连续的0。
本发明实施例中,数据解码设备可以获取当前点云点包括第一标志位的码流数据和第二标志位的码流数据,并根据第一条件从上下文模型列表中选择用于解码所述第一标志位的码流数据的第一上下文模型,对所述第一标志位的码流数据进行解码,得到用于指示所述第一标志位的二元码;以及根据第二条件从上下文模型列表中选择用于解码所述第二标志位的码流数据的第二上下文模型,对所述第二标志位的码流数据进行解码,得到用于指示所述第二标志位的二元码;从而对所述用于指示所述第一标志位的二元码以及用于指示所述第二标志位的二元码进行逆二值化,得到所述当前点云点的属性残差。通过这种事实施方式,可以在不增加额外复杂度的情况下,提高解码效率。
请参见图5,图5是本发明实施例提供的另一种数据解码方法的流程示意图。所述方法可以应用于数据解码设备,其中,所述数据解码设备可以设置在智能终端(如手机、平板电脑等)上。具体地,本发明实施例的所述方法包括如下步骤。
S501:获取当前点云点的码流数据,所述码流数据中包括第一通道的属性残差的码流数据和第二通道的属性残差的码流数据,所述第二通道的属性残差的码流数据包括第一标志位的码流数据。
本发明实施例中,数据解码设备可以获取当前点云点的码流数据,所述码流数据中包括第一通道的属性残差的码流数据和第二通道的属性残差的码流数据,所述第二通道的属性残差的码流数据包括第一标志位的码流数据,其中,所述第一标志位用于指示所述当前点云点的第二通道的属性残差是否为N,N大于或等于0。
S502:对所述第一通道的属性残差的码流数据解码得到所述第一通道的属性残差。
本发明实施例中,数据解码设备可以对所述第一通道的属性残差的码流数据解码得到所述第一通道的属性残差。在某些实施例中,所述第一通道的属性残差大于或等于0。在一个示例中,以表2为例进行说明,数据解码设备可以对第一通道的属性残差C1的码流数据解码得到所述第一通道的属性残差C1。
S503:根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的码流数据进行解码。
本发明实施例中,数据解码设备可以根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的码流数据进行解码,其中,所述第一预设阈值大于0。在某些实施例中,所述第一预设阈值大于或者等于1。
在一个实施例中,数据解码设备在根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的码流数据进行解码时,可以判断所述当前点云点的第一通道的属性残差是否大于所述第一预设阈值,如果判断结果为否,则可以从所述上下文模型列表中选择第一索引对应的上下文模型,对所述第二通道中所述第一标志位的码流数据进行编码,如果判断结果为是,则可以从所述上下文模型列表中选择第二索引对应的上下文模型,对所述第二通道中所述第一标志位的码流数据进行编码。具体实施例及举例如前所述。
在一个实施例中,所述第二通道对应的码流数据还包括第二标志位的码流数据,数据解码设备可以根据所述当前点云点的第一通道的属性残差是否等于第二预设阈值,从所述上下文模型列表中选择用于解码所述第二通道的属性残差的所述第二标志位的码流数据的上下文模型。在某些实施例中,所述第二预设阈值与第一预设阈值可以相同,也可以不相同,本发明实施例不做具体限定。
在一个实施例中,数据解码设备在根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的码流数据进行解码时,可以判断所述当前点云点的第一通道的属性残差是否大于所述第一预设阈值,以及第三通道的属性残差是否大于所述第一预设阈值,并根据判断结果从所述上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的码流数据进行解码。
在某些实施例中,所述第一通道包括R通道或Y通道,所述第二通道包括G通道或U通道,所述第三通道包括B通道或V通道;或者,所述第一通道包括R通道或Y通道,所述第二通道包括B通道或V通道,所述第三通道包括G通道或U通道。
在某些实施例中,所述第一通道的属性残差的二元码的第二标志位用于指示所述第一通道的属性残差是否为1;或者,所述第一通道的属性残差的二元码的第一标志位用于指示所述第一通道的属性残差是否为2。
在某些实施例中,所述第一通道的属性残差的二元码的第二标志位用于指示所述第一通道的属性残差是否为0;或者,所述第一通道的属性残差的二元码的第一标志位用于指示所述第一通道的属性残差是否为1。
在一种实施方式中,数据解码设备在根据判断结果从所述上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的码流数据进行解码时,如果所述当前点云点的第一通道中的属性残差小于或等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第一预设阈值,则可以从所述上下文模型列表中选择第三索引对应的上下文模型,对所述第二通道中所述第一标志位的码流数据进行解码。具体实施例及举例如前所述。
在一种实施方式中,如果所述当前点云点的第一通道中的属性残差小于或等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第一预设阈值,则数据解码设备可以从所述上下文模型列表中选择第四索引对应的上下文模型,对所述第二通道中所述第一标志位的码流数据进行解码。具体实施例及举例如前所述。
在一种实施方式中,如果所述当前点云点的第一通道中的属性残差大于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第一预设阈值,则数据解码设备可以从所述上下文模型列表中选择第五索引对应的上下文模型,对所述第二通道中所述第一标志位的码流数据进行解码。
在一种实施方式中,如果所述当前点云点的第一通道中的属性残差大于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第一预设阈值,则数据解码设备可以从所述上下文模型列表中选择第六索引对应的上下文模型,对所述第二通道中所述第一标志位的码流数据进行解码。具体实施例及举例如前所述。
在一个实施例中,数据解码设备可以判断所述当前点云点的第一通道的属性残差是否大于第二预设阈值,以及第三通道的属性残差是否大于所述第二预设阈值,并根据判断结果从所述上下文模型列表中选择用于解码第二通道中第二标志位的二元码的上下文模型。在某些实施例中,所述第二预设阈值为0。具体实施例及举例如前所述。
在一种实施方式中,如果所述当前点云点的第一通道中的属性残差小于或等于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第二预设阈值,则选择的用于解码所述第二通道中所述第二标志位的码流数据的上下文模型,是所述上下文模型列表中第三索引对应的上下文模型。具体实施例及举例如前所述。
在一种实施方式中,如果所述当前点云点的第一通道中的属性残差小于或等于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第二预设阈值,则选择的用于解码所述第二通道中所述第二标志位的码流数据的上下文模型,是所述上下文模型列表中第四索引对应的上下文模型。具体实施例及举例如前所述。
在一种实施方式中,如果所述当前点云点的第一通道中的属性残差大于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第二预设阈值,则选择的用于解码所述第二通道中所述第二标志位的码流数据的上下文模型,是所述上下文模型列表中第五索引对应的上下文模型。具体实施例及举例如前所述。
在一种实施方式中,如果所述当前点云点的第一通道中的属性残差大于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第二预设阈值,则选择的用于解码所述第二通道中所述第二标志位的码流数据的上下文模型,是所述上下文模型列表中第六索引对应的上下文模型。具体实施例及举例如前所述。
本发明实施例中,数据解码设备可以获取当前点云点的包括第一通道的属性残差的码流数据和第二通道的属性残差的码流数据,所述第二通道的属性残差的码流数据包括第一标志位的码流数据,并对所述第一通道的属性残差的码流数据解码得到所述第一通道的属性残差,以及根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的码流数据进行解码。通过这种实施方式,可以在不增加额外复杂度的情况下,提高解码效率。
请参见图6,图6是本发明实施例提供的一种数据编码设备的结构示意图,具体的,所述数据编码设备包括:存储器601、处理器602以及数据接口603。
所述存储器601可以包括易失性存储器(volatile memory);存储器601也可以包括非易失性存储器(non-volatile memory);存储器601还可以包括上述种类的存储器的组合。所述处理器602可以是中央处理器(central processing unit,CPU)。所述处理器602还可以进一步包括硬件数据编码设备。上述硬件数据编码设备可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmablelogic device,PLD)或其组合。具体例如可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gatearray,FPGA)或其任意组合。
进一步地,所述存储器601用于存储程序,当程序被执行时所述处理器602可以调用存储器601中存储的程序,用于执行如下步骤:
获取当前点云点的属性残差;
对所述属性残差进行二值化,得到所述当前点云点的二元码,其中,所述当前点云点的二元码包括用于指示第一标志位的二元码和用于指示第二标志位的二元码;
根据第一条件从上下文模型列表中选择用于编码所述第一标志位的二元码的第一上下文模型;
根据第二条件从所述上下文模型列表中选择用于编码所述第二标志位的二元码的第二上下文模型,其中,所述第一上下文模型和所述第二上下文模型对应所述上下文模型列表中的同一个索引时,所述第一条件与所述第二条件不相同;
采用所述第一上下文模型对所述第一标志位的二元码进行编码;
采用所述第二上下文模型对所述第二标志位的二元码进行编码。
进一步地,所述当前点云点的二元码包括第一通道的属性残差的二元码、第二通道的属性残差的二元码以及第三通道的属性残差的二元码。
进一步地,所述第一上下文模型与所述第二上下文模型分别是用于编码同一个通道的属性残差的不同标志位的二元码的上下文模型。
进一步地,所述第一标志位用于指示所述当前点云点的一个通道的属性残差是否为N+1,所述第二标志位用于指示所述当前点云点的一个通道的属性残差是否为N,N大于或等于0。
进一步地,所述处理器602根据第一条件从上下文模型列表中选择用于编码所述第一标志位的二元码的第一上下文模型时,具体用于:
根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从所述上下文模型列表中选择用于编码第二通道的属性残差的第一标志位的二元码的第一上下文模型,其中,所述第一预设阈值大于0。
进一步地,所述当前点云点的第一通道的属性残差大于所述第一预设阈值时,选择的用于编码所述第二通道的属性残差的第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第一索引对应的上下文模型;
所述当前点云点的第一通道的属性残差不大于所述第一预设阈值时,选择的用于编码所述第二通道的属性残差的第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第二索引对应的上下文模型。
进一步地,所述处理器602根据第二条件从所述上下文模型列表中选择用于编码所述第二标志位的二元码的第二上下文模型时,具体用于:
根据所述当前点云点的第一通道的属性残差是否等于第二预设阈值,从所述上下文模型列表中选择用于编码所述第二通道的属性残差的所述第二标志位的二元码的第二上下文模型。
进一步地,所述处理器602根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从所述上下文模型列表中选择用于编码第二通道的属性残差的第一标志位的二元码的第一上下文模型时,具体用于:
判断所述当前点云点的第一通道的属性残差是否大于所述第一预设阈值,以及第三通道的属性残差是否大于所述第一预设阈值;
根据判断结果从所述上下文模型列表中选择用于编码第二通道中所述第一标志位的二元码的第一上下文模型。
进一步地,如果所述当前点云点的第一通道中的属性残差小于或等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第一预设阈值,则选择的用于编码所述第二通道中所述第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第三索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差小于或等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第一预设阈值,则选择的用于编码所述第二通道中所述第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第四索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差大于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第一预设阈值,则选择的用于编码所述第二通道中所述第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第五索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差大于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第一预设阈值,则选择的用于编码所述第二通道中所述第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第六索引对应的上下文模型。
进一步地,所述处理器602根据第二条件从所述上下文模型列表中选择用于编码所述第二标志位的二元码的第二上下文模型时,具体用于:
判断所述当前点云点的第一通道的属性残差是否大于第二预设阈值,以及所述第三通道的属性残差是否大于所述第二预设阈值;
根据判断结果从所述上下文模型列表中选择用于编码第二通道中所述第二标志位的二元码的第二上下文模型。
进一步地,如果所述当前点云点的第一通道中的属性残差小于或等于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第二预设阈值,则选择的用于编码所述第二通道中所述第二标志位的二元码的第二上下文模型,是所述上下文模型列表中第三索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差小于或等于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第二预设阈值,则选择的用于编码所述第二通道中所述第二标志位的二元码的第二上下文模型,是所述上下文模型列表中第四索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差大于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第二预设阈值,则选择的用于编码所述第二通道中所述第二标志位的二元码的第二上下文模型,是所述上下文模型列表中第五索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差大于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第二预设阈值,则选择的用于编码所述第二通道中所述第二标志位的二元码的第二上下文模型,是所述上下文模型列表中第六索引对应的上下文模型。
进一步地,所述第一预设阈值大于或者等于1。
进一步地,所述第二预设阈值为0。
进一步地,所述第一通道包括R通道或Y通道,所述第二通道包括G通道或U通道,所述第三通道包括B通道或V通道;或者,
所述第一通道包括R通道或Y通道,所述第二通道包括B通道或V通道,所述第三通道包括G通道或U通道。
进一步地,所述第一通道的属性残差的二元码的第二标志位用于指示所述第一通道的属性残差是否为1;或者,
所述第一通道的属性残差的二元码的第一标志位用于指示所述第一通道的属性残差是否为2。
进一步地,所述第一通道的属性残差的二元码的第二标志位用于指示所述第一通道的属性残差是否为0;或者,
所述第一通道的属性残差的二元码的第一标志位用于指示所述第一通道的属性残差是否为1。
进一步地,所述处理器602对所述属性残差进行二值化,得到所述当前点云点的二元码时,具体用于:
根据预设的编码方法对所述当前点云点属性残差进行编码,得到编码值;
对所述编码值进行二值化,得到所述当前点云点的二元码。
本发明实施例中,数据编码设备可以对当前点云点的属性残差进行二值化,得到包括用于指示第一标志位的二元码和用于指示第二标志位的二元码,根据第一条件从上下文模型列表中选择用于编码第一标志位的二元码的第一上下文模型,并采用所述第一上下文模型对所述第一标志位的二元码进行编码;以及根据第二条件从所述上下文模型列表中选择用于编码所述第二标志位的二元码的第二上下文模型,并采用所述第二上下文模型对所述第二标志位的二元码进行编码。通过这种实施方式,可以在不增加额外复杂度的情况下,提高编码效率。
请参见图7,图7是本发明实施例提供的另一种数据编码设备的结构示意图,具体的,所述数据编码设备包括:存储器701、处理器702以及数据接口703。
所述存储器701可以包括易失性存储器(volatile memory);存储器701也可以包括非易失性存储器(non-volatile memory);存储器701还可以包括上述种类的存储器的组合。所述处理器702可以是中央处理器(central processing unit,CPU)。所述处理器702还可以进一步包括硬件数据编码设备。上述硬件数据编码设备可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmablelogic device,PLD)或其组合。具体例如可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gatearray,FPGA)或其任意组合。
进一步地,所述存储器701用于存储程序,当程序被执行时所述处理器702可以调用存储器701中存储的程序,用于执行如下步骤:
获取当前点云点的属性残差,其中,所述属性残差包括第一通道的属性残差和第二通道的属性残差;
对每个通道的属性残差进行二值化,得到每个通道对应的二元码,其中,所述第二通道对应的二元码包括用于指示第一标志位的二元码;所述第一标志位用于指示所述当前点云点的第二通道的属性残差是否为N,N大于或等于0;
根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的二元码进行编码,其中,所述第一预设阈值大于0。
进一步地,所述处理器702根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的二元码进行编码时,具体用于:
判断所述当前点云点的第一通道的属性残差是否大于所述第一预设阈值;
如果判断结果为否,则从所述上下文模型列表中选择第一索引对应的上下文模型,对所述第二通道中所述第一标志位的二元码进行编码;
如果判断结果为是,则从所述上下文模型列表中选择第二索引对应的上下文模型,对所述第二通道中所述第一标志位的二元码进行编码。
进一步地,所述第二通道对应的二元码还包括用于指示第二标志位的二元码;所述处理器702还用于:
根据所述当前点云点的第一通道的属性残差是否等于第二预设阈值,从所述上下文模型列表中选择用于编码所述第二通道的属性残差的所述第二标志位的二元码的上下文模型。
进一步地,所述处理器702根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的二元码进行编码时,具体用于:
判断所述当前点云点的第一通道的属性残差是否大于所述第一预设阈值,以及第三通道的属性残差是否大于所述第一预设阈值;
根据判断结果从所述上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的二元码进行编码。
进一步地,所述处理器702根据判断结果从所述上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的二元码进行编码时,具体用于:
如果所述当前点云点的第一通道中的属性残差小于或等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第一预设阈值,则从所述上下文模型列表中选择第三索引对应的上下文模型,对所述第二通道中所述第一标志位的二元码进行编码。
进一步地,所述处理器702根据判断结果从所述上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的二元码进行编码时,具体用于:
如果所述当前点云点的第一通道中的属性残差小于或等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第一预设阈值,则从所述上下文模型列表中选择第四索引对应的上下文模型,对所述第二通道中所述第一标志位的二元码进行编码。
进一步地,所述处理器702根据判断结果从所述上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的二元码进行编码时,具体用于:
如果所述当前点云点的第一通道中的属性残差大于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第一预设阈值,则从所述上下文模型列表中选择第五索引对应的上下文模型,对所述第二通道中所述第一标志位的二元码进行编码。
进一步地,所述处理器702根据判断结果从所述上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的二元码进行编码时,具体用于:
如果所述当前点云点的第一通道中的属性残差大于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第一预设阈值,则从所述上下文模型列表中选择第六索引对应的上下文模型,对所述第二通道中所述第一标志位的二元码进行编码。
进一步地,所述处理器702还用于:
判断所述当前点云点的第一通道的属性残差是否大于第二预设阈值,以及第三通道的属性残差是否大于所述第二预设阈值;
根据判断结果从所述上下文模型列表中选择用于编码第二通道中第二标志位的二元码的上下文模型。
进一步地,如果所述当前点云点的第一通道中的属性残差小于或等于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第二预设阈值,则选择的用于编码所述第二通道中所述第二标志位的二元码的上下文模型,是所述上下文模型列表中第三索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差小于或等于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第二预设阈值,则选择的用于编码所述第二通道中所述第二标志位的二元码的上下文模型,是所述上下文模型列表中第四索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差大于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第二预设阈值,则选择的用于编码所述第二通道中所述第二标志位的二元码的上下文模型,是所述上下文模型列表中第五索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差大于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第二预设阈值,则选择的用于编码所述第二通道中所述第二标志位的二元码的上下文模型,是所述上下文模型列表中第六索引对应的上下文模型。
进一步地,所述第一预设阈值大于或者等于1。
进一步地,所述第二预设阈值为0。
进一步地,所述第一通道包括R通道或Y通道,所述第二通道包括G通道或U通道,所述第三通道包括B通道或V通道;或者,
所述第一通道包括R通道或Y通道,所述第二通道包括B通道或V通道,所述第三通道包括G通道或U通道。
进一步地,所述第一通道的属性残差的二元码的第二标志位用于指示所述第一通道的属性残差是否为1;或者,
所述第一通道的属性残差的二元码的第一标志位用于指示所述第一通道的属性残差是否为2。
进一步地,所述第一通道的属性残差的二元码的第二标志位用于指示所述第一通道的属性残差是否为0;或者,
所述第一通道的属性残差的二元码的第一标志位用于指示所述第一通道的属性残差是否为1。
进一步地,所述处理器702对每个通道的属性残差进行二值化,得到每个通道对应的二元码时,具体用于:
根据预设的编码方法对所述每个通道的属性残差进行编码,得到编码值;
对所述编码值进行二值化,得到所述每个通道对应的二元码。
本发明实施例中,数据编码设备可以对当前点云点的每个通道的属性残差进行二值化,得到每个通道对应的二元码,其中,第二通道对应的二元码包括用于指示第一标志位的二元码,并根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的二元码进行编码。通过这种实施方式,可以在不增加额外复杂度的情况下,提高编码效率。
请参见图8,图8是本发明实施例提供的一种数据解码设备的结构示意图,具体的,所述数据解码设备包括:存储器801、处理器802以及数据接口803。
所述存储器801可以包括易失性存储器(volatile memory);存储器801也可以包括非易失性存储器(non-volatile memory);存储器801还可以包括上述种类的存储器的组合。所述处理器802可以是中央处理器(central processing unit,CPU)。所述处理器802还可以进一步包括硬件数据解码设备。上述硬件数据解码设备可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmablelogic device,PLD)或其组合。具体例如可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gatearray,FPGA)或其任意组合。
进一步地,所述存储器801用于存储程序,当程序被执行时所述处理器802可以调用存储器801中存储的程序,用于执行如下步骤:
获取当前点云点的码流数据,所述码流数据包括第一标志位的码流数据和第二标志位的码流数据;
根据第一条件从上下文模型列表中选择用于解码所述第一标志位的码流数据的第一上下文模型,对所述第一标志位的码流数据进行解码,得到用于指示所述第一标志位的二元码;
根据第二条件从上下文模型列表中选择用于解码所述第二标志位的码流数据的第二上下文模型,对所述第二标志位的码流数据进行解码,得到用于指示所述第二标志位的二元码;
对所述用于指示所述第一标志位的二元码以及用于指示所述第二标志位的二元码进行逆二值化,得到所述当前点云点的属性残差。
进一步地,所述码流数据包括第一通道的属性残差的码流数据、第二通道的属性残差的码流数据以及第三通道的属性残差的码流数据。
进一步地,所述第一上下文模型与所述第二上下文模型分别是用于解码同一个通道的属性残差的不同标志位的码流数据的上下文模型。
进一步地,所述第一标志位用于指示所述当前点云点的一个通道的属性残差是否为N+1,所述第二标志位用于指示所述当前点云点的一个通道的属性残差是否为N,N大于或等于0。
进一步地,所述处理器802根据第一条件从上下文模型列表中选择用于解码所述第一标志位的码流数据的第一上下文模型时,具体用于:
对所述当前点云点的第一通道的属性残差的码流数据解码得到所述第一通道的属性残差;
根据所述第一通道的属性残差是否大于第一预设阈值,从所述上下文模型列表中选择用于解码第二通道的属性残差的第一标志位的码流数据的第一上下文模型,其中,所述第一预设阈值大于0。
进一步地,所述当前点云点的第一通道的属性残差大于所述第一预设阈值时,选择的用于解码所述第二通道的属性残差的第一标志位的码流数据的第一上下文模型,是所述上下文模型列表中第一索引对应的上下文模型;
所述当前点云点的第一通道的属性残差不大于所述第一预设阈值时,选择的用于解码所述第二通道的属性残差的第一标志位的码流数据的第一上下文模型,是所述上下文模型列表中第二索引对应的上下文模型。
进一步地,所述处理器802根据第二条件从上下文模型列表中选择用于解码所述第二标志位的码流数据的第二上下文模型时,具体用于:
根据所述当前点云点的第一通道的属性残差是否等于第二预设阈值,从所述上下文模型列表中选择用于解码第二通道的属性残差的所述第二标志位的码流数据的第二上下文模型。
进一步地,所述处理器802根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从所述上下文模型列表中选择用于解码第二通道的属性残差的第一标志位的码流数据的第一上下文模型时,具体用于:
判断所述当前点云点的第一通道的属性残差是否大于所述第一预设阈值,以及第三通道的属性残差是否大于所述第一预设阈值;
根据判断结果从所述上下文模型列表中选择用于解码所述第二通道中所述第一标志位的码流数据的第一上下文模型。
进一步地,如果所述当前点云点的第一通道中的属性残差小于或等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第一预设阈值,则选择的用于解码所述第二通道中所述第一标志位的码流数据的第一上下文模型,是所述上下文模型列表中第三索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差小于或等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第一预设阈值,则选择的用于解码所述第二通道中所述第一标志位的码流数据的第一上下文模型,是所述上下文模型列表中第四索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差大于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第一预设阈值,则选择的用于解码所述第二通道中所述第一标志位的码流数据的第一上下文模型,是所述上下文模型列表中第五索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差大于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第一预设阈值,则选择的用于解码所述第二通道中所述第一标志位的码流数据的第一上下文模型,是所述上下文模型列表中第六索引对应的上下文模型。
进一步地,所述处理器802根据第二条件从上下文模型列表中选择用于解码所述第二标志位的码流数据的第二上下文模型时,具体用于:
判断所述当前点云点的第一通道的属性残差是否大于第二预设阈值,以及所述第三通道的属性残差是否大于所述第二预设阈值;
根据判断结果从所述上下文模型列表中选择用于解码所述第二通道中所述第二标志位的码流数据的第二上下文模型。
进一步地,如果所述当前点云点的第一通道中的属性残差小于或等于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第二预设阈值,则选择的用于解码所述第二通道中所述第二标志位的码流数据的第二上下文模型,是所述上下文模型列表中第三索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差小于或等于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第二预设阈值,则选择的用于解码所述第二通道中所述第二标志位的码流数据的第二上下文模型,是所述上下文模型列表中第四索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差大于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第二预设阈值,则选择的用于解码所述第二通道中所述第二标志位的码流数据的第二上下文模型,是所述上下文模型列表中第五索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差大于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第二预设阈值,则选择的用于解码所述第二通道中所述第二标志位的码流数据的第二上下文模型,是所述上下文模型列表中第六索引对应的上下文模型。
进一步地,所述第一预设阈值大于或者等于1。
进一步地,所述第二预设阈值为0。
进一步地,所述第一通道包括R通道或Y通道,所述第二通道包括G通道或U通道,所述第三通道包括B通道或V通道;或者,
所述第一通道包括R通道或Y通道,所述第二通道包括B通道或V通道,所述第三通道包括G通道或U通道。
进一步地,所述第一通道的属性残差的码流数据的第二标志位用于指示所述第一通道的属性残差是否为1;或者,
所述第一通道的属性残差的码流数据的第一标志位用于指示所述第一通道的属性残差是否为2。
进一步地,所述第一通道的属性残差的二元码的第二标志位用于指示所述第一通道的属性残差是否为0;或者,
所述第一通道的属性残差的二元码的第一标志位用于指示所述第一通道的属性残差是否为1。
进一步地,所述处理器802对所述用于指示所述第一标志位的二元码以及用于指示所述第二标志位的二元码进行逆二值化,得到所述当前点云点的属性残差时,具体用于:
对所述用于指示所述第一标志位的二元码以及用于指示所述第二标志位的二元码进行逆二值化,得到编码值;
根据预设的解码方法对所述编码值进行解码,得到所述当前点云点的属性残差。
本发明实施例中,数据解码设备可以获取当前点云点包括第一标志位的码流数据和第二标志位的码流数据,并根据第一条件从上下文模型列表中选择用于解码所述第一标志位的码流数据的第一上下文模型,对所述第一标志位的码流数据进行解码,得到用于指示所述第一标志位的二元码;以及根据第二条件从上下文模型列表中选择用于解码所述第二标志位的码流数据的第二上下文模型,对所述第二标志位的码流数据进行解码,得到用于指示所述第二标志位的二元码;从而对所述用于指示所述第一标志位的二元码以及用于指示所述第二标志位的二元码进行逆二值化,得到所述当前点云点的属性残差。通过这种事实施方式,可以在不增加额外复杂度的情况下,提高解码效率。
请参见图9,图9是本发明实施例提供的另一种数据解码设备的结构示意图,具体的,所述数据解码设备包括:存储器901、处理器902以及数据接口903。
所述存储器901可以包括易失性存储器(volatile memory);存储器901也可以包括非易失性存储器(non-volatile memory);存储器901还可以包括上述种类的存储器的组合。所述处理器902可以是中央处理器(central processing unit,CPU)。所述处理器902还可以进一步包括硬件数据解码设备。上述硬件数据解码设备可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmablelogic device,PLD)或其组合。具体例如可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gatearray,FPGA)或其任意组合。
进一步地,所述存储器901用于存储程序,当程序被执行时所述处理器802可以调用存储器901中存储的程序,用于执行如下步骤:
获取当前点云点的码流数据,所述码流数据中包括第一通道的属性残差的码流数据和第二通道的属性残差的码流数据,所述第二通道的属性残差的码流数据包括第一标志位的码流数据,所述第一标志位用于指示所述当前点云点的第二通道的属性残差是否为N,N大于或等于0;
对所述第一通道的属性残差的码流数据解码得到所述第一通道的属性残差;
根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的码流数据进行解码,其中,所述第一预设阈值大于0。
进一步地,所述处理器802根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的码流数据进行解码时,具体用于:
判断所述当前点云点的第一通道的属性残差是否大于所述第一预设阈值;
如果判断结果为否,则从所述上下文模型列表中选择第一索引对应的上下文模型,对所述第二通道中所述第一标志位的码流数据进行编码;
如果判断结果为是,则从所述上下文模型列表中选择第二索引对应的上下文模型,对所述第二通道中所述第一标志位的码流数据进行编码。
进一步地,所述第二通道对应的码流数据还包括第二标志位的码流数据;所述处理器802还用于:
根据所述当前点云点的第一通道的属性残差是否等于第二预设阈值,从所述上下文模型列表中选择用于解码所述第二通道的属性残差的所述第二标志位的码流数据的上下文模型。
进一步地,所述处理器802根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的码流数据进行解码时,具体用于:
判断所述当前点云点的第一通道的属性残差是否大于所述第一预设阈值,以及第三通道的属性残差是否大于所述第一预设阈值;
根据判断结果从所述上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的码流数据进行解码。
进一步地,所述处理器802根据判断结果从所述上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的码流数据进行解码时,具体用于:
如果所述当前点云点的第一通道中的属性残差小于或等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第一预设阈值,则从所述上下文模型列表中选择第三索引对应的上下文模型,对所述第二通道中所述第一标志位的码流数据进行解码;或者,
如果所述当前点云点的第一通道中的属性残差小于或等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第一预设阈值,则从所述上下文模型列表中选择第四索引对应的上下文模型,对所述第二通道中所述第一标志位的码流数据进行解码;或者,
如果所述当前点云点的第一通道中的属性残差大于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第一预设阈值,则从所述上下文模型列表中选择第五索引对应的上下文模型,对所述第二通道中所述第一标志位的码流数据进行解码;或者,
如果所述当前点云点的第一通道中的属性残差大于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第一预设阈值,则从所述上下文模型列表中选择第六索引对应的上下文模型,对所述第二通道中所述第一标志位的码流数据进行解码。
进一步地,所述处理器802还用于:
判断所述当前点云点的第一通道的属性残差是否大于第二预设阈值,以及第三通道的属性残差是否大于所述第二预设阈值;
根据判断结果从所述上下文模型列表中选择用于解码第二通道中第二标志位的二元码的上下文模型。
进一步地,如果所述当前点云点的第一通道中的属性残差小于或等于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第二预设阈值,则选择的用于解码所述第二通道中所述第二标志位的码流数据的上下文模型,是所述上下文模型列表中第三索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差小于或等于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第二预设阈值,则选择的用于解码所述第二通道中所述第二标志位的码流数据的上下文模型,是所述上下文模型列表中第四索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差大于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第二预设阈值,则选择的用于解码所述第二通道中所述第二标志位的码流数据的上下文模型,是所述上下文模型列表中第五索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差大于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第二预设阈值,则选择的用于解码所述第二通道中所述第二标志位的码流数据的上下文模型,是所述上下文模型列表中第六索引对应的上下文模型。
进一步地,所述第一预设阈值大于或者等于1。
进一步地,所述第二预设阈值为0。
进一步地,所述第一通道包括R通道或Y通道,所述第二通道包括G通道或U通道,所述第三通道包括B通道或V通道;或者,
所述第一通道包括R通道或Y通道,所述第二通道包括B通道或V通道,所述第三通道包括G通道或U通道。
进一步地,所述第一通道的属性残差的二元码的第二标志位用于指示所述第一通道的属性残差是否为1;或者,
所述第一通道的属性残差的二元码的第一标志位用于指示所述第一通道的属性残差是否为2。
进一步地,所述第一通道的属性残差的二元码的第二标志位用于指示所述第一通道的属性残差是否为0;或者,
所述第一通道的属性残差的二元码的第一标志位用于指示所述第一通道的属性残差是否为1。
本发明实施例中,数据解码设备可以获取当前点云点的包括第一通道的属性残差的码流数据和第二通道的属性残差的码流数据,所述第二通道的属性残差的码流数据包括第一标志位的码流数据,并对所述第一通道的属性残差的码流数据解码得到所述第一通道的属性残差,以及根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从上下文模型列表中选择对应的上下文模型对所述第二通道中所述第一标志位的码流数据进行解码。通过这种实施方式,可以在不增加额外复杂度的情况下,提高解码效率。
在本发明的实施例中还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例图2或图3中描述的数据编码方法方式,也可以实现本发明实施例图4或图5中描述的数据解码方法方式,也可实现图6或图7所述本发明所对应实施例的数据编码设备,也可实现图8或图9所述本发明所对应实施例的数据解码设备,在此不再赘述。
所述计算机可读存储介质可以是前述任一项实施例所述的设备的内部存储单元,例如设备的硬盘或内存。所述计算机可读存储介质也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述设备所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明部分实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (69)

1.一种数据编码方法,其特征在于,包括:
获取当前点云点的属性残差;
对所述属性残差进行二值化,得到所述当前点云点的二元码,其中,所述当前点云点的二元码包括用于指示第一标志位的二元码和用于指示第二标志位的二元码;
根据第一条件从上下文模型列表中选择用于编码所述第一标志位的二元码的第一上下文模型;
根据第二条件从所述上下文模型列表中选择用于编码所述第二标志位的二元码的第二上下文模型,其中,所述第一上下文模型和所述第二上下文模型对应所述上下文模型列表中的同一个索引时,所述第一条件与所述第二条件不相同;
采用所述第一上下文模型对所述第一标志位的二元码进行编码;
采用所述第二上下文模型对所述第二标志位的二元码进行编码。
2.根据权利要求1所述的方法,其特征在于,
所述当前点云点的二元码包括第一通道的属性残差的二元码、第二通道的属性残差的二元码以及第三通道的属性残差的二元码。
3.根据权利要求2所述的方法,其特征在于,
所述第一上下文模型与所述第二上下文模型分别是用于编码同一个通道的属性残差的不同标志位的二元码的上下文模型。
4.根据权利要求2所述的方法,其特征在于,
所述第一标志位用于指示所述当前点云点的一个通道的属性残差是否为N+1,所述第二标志位用于指示所述当前点云点的一个通道的属性残差是否为N,N大于或等于0。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述根据第一条件从上下文模型列表中选择用于编码所述第一标志位的二元码的第一上下文模型,包括:
根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从所述上下文模型列表中选择用于编码第二通道的属性残差的第一标志位的二元码的第一上下文模型,其中,所述第一预设阈值大于0。
6.根据权利要求5所述的方法,其特征在于,
所述当前点云点的第一通道的属性残差大于所述第一预设阈值时,选择的用于编码所述第二通道的属性残差的第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第一索引对应的上下文模型;
所述当前点云点的第一通道的属性残差不大于所述第一预设阈值时,选择的用于编码所述第二通道的属性残差的第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第二索引对应的上下文模型。
7.根据权利要求5所述的方法,其特征在于,所述根据第二条件从所述上下文模型列表中选择用于编码所述第二标志位的二元码的第二上下文模型,包括:
根据所述当前点云点的第一通道的属性残差是否等于第二预设阈值,从所述上下文模型列表中选择用于编码所述第二通道的属性残差的所述第二标志位的二元码的第二上下文模型。
8.根据权利要求1-3任一项所述的方法,其特征在于,所述根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从所述上下文模型列表中选择用于编码第二通道的属性残差的第一标志位的二元码的第一上下文模型,包括:
判断所述当前点云点的第一通道的属性残差是否大于所述第一预设阈值,以及第三通道的属性残差是否大于所述第一预设阈值;
根据判断结果从所述上下文模型列表中选择用于编码第二通道中所述第一标志位的二元码的第一上下文模型。
9.根据权利要求8所述的方法,其特征在于,
如果所述当前点云点的第一通道中的属性残差小于或等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第一预设阈值,则选择的用于编码所述第二通道中所述第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第三索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差小于或等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第一预设阈值,则选择的用于编码所述第二通道中所述第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第四索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差大于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第一预设阈值,则选择的用于编码所述第二通道中所述第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第五索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差大于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第一预设阈值,则选择的用于编码所述第二通道中所述第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第六索引对应的上下文模型。
10.根据权利要求8所述的方法,其特征在于,所述根据第二条件从所述上下文模型列表中选择用于编码所述第二标志位的二元码的第二上下文模型,包括:
判断所述当前点云点的第一通道的属性残差是否大于第二预设阈值,以及所述第三通道的属性残差是否大于所述第二预设阈值;
根据判断结果从所述上下文模型列表中选择用于编码第二通道中所述第二标志位的二元码的第二上下文模型。
11.根据权利要求10所述的方法,其特征在于,
如果所述当前点云点的第一通道中的属性残差小于或等于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第二预设阈值,则选择的用于编码所述第二通道中所述第二标志位的二元码的第二上下文模型,是所述上下文模型列表中第三索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差小于或等于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第二预设阈值,则选择的用于编码所述第二通道中所述第二标志位的二元码的第二上下文模型,是所述上下文模型列表中第四索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差大于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第二预设阈值,则选择的用于编码所述第二通道中所述第二标志位的二元码的第二上下文模型,是所述上下文模型列表中第五索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差大于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第二预设阈值,则选择的用于编码所述第二通道中所述第二标志位的二元码的第二上下文模型,是所述上下文模型列表中第六索引对应的上下文模型。
12.根据权利要求5所述的方法,其特征在于,所述第一预设阈值大于或者等于1。
13.根据权利要求11所述的方法,其特征在于,所述第二预设阈值为0。
14.根据权利要求2所述的方法,其特征在于,
所述第一通道包括R通道或Y通道,所述第二通道包括G通道或U通道,所述第三通道包括B通道或V通道;或者,
所述第一通道包括R通道或Y通道,所述第二通道包括B通道或V通道,所述第三通道包括G通道或U通道。
15.根据权利要求2所述的方法,其特征在于,
所述第一通道的属性残差的二元码的第二标志位用于指示所述第一通道的属性残差是否为1;或者,
所述第一通道的属性残差的二元码的第一标志位用于指示所述第一通道的属性残差是否为2。
16.根据权利要求2所述的方法,其特征在于,
所述第一通道的属性残差的二元码的第二标志位用于指示所述第一通道的属性残差是否为0;或者,
所述第一通道的属性残差的二元码的第一标志位用于指示所述第一通道的属性残差是否为1。
17.根据权利要求1所述的方法,其特征在于,所述对所述属性残差进行二值化,得到所述当前点云点的二元码,包括:
根据预设的编码方法对所述当前点云点属性残差进行编码,得到编码值;
对所述编码值进行二值化,得到所述当前点云点的二元码。
18.一种数据解码方法,其特征在于,包括:
获取当前点云点的码流数据,所述码流数据包括第一标志位的码流数据和第二标志位的码流数据;
根据第一条件从上下文模型列表中选择用于解码所述第一标志位的码流数据的第一上下文模型,对所述第一标志位的码流数据进行解码,得到用于指示所述第一标志位的二元码;
根据第二条件从上下文模型列表中选择用于解码所述第二标志位的码流数据的第二上下文模型,对所述第二标志位的码流数据进行解码,得到用于指示所述第二标志位的二元码;
对所述用于指示所述第一标志位的二元码以及用于指示所述第二标志位的二元码进行逆二值化,得到所述当前点云点的属性残差。
19.根据权利要求18所述的方法,其特征在于,
所述码流数据包括第一通道的属性残差的码流数据、第二通道的属性残差的码流数据以及第三通道的属性残差的码流数据。
20.根据权利要求19所述的方法,其特征在于,
所述第一上下文模型与所述第二上下文模型分别是用于解码同一个通道的属性残差的不同标志位的码流数据的上下文模型。
21.根据权利要求19所述的方法,其特征在于,
所述第一标志位用于指示所述当前点云点的一个通道的属性残差是否为N+1,所述第二标志位用于指示所述当前点云点的一个通道的属性残差是否为N,N大于或等于0。
22.根据权利要求19所述的方法,其特征在于,所述根据第一条件从上下文模型列表中选择用于解码所述第一标志位的码流数据的第一上下文模型,包括:
对所述当前点云点的第一通道的属性残差的码流数据解码得到所述第一通道的属性残差;
根据所述第一通道的属性残差是否大于第一预设阈值,从所述上下文模型列表中选择用于解码第二通道的属性残差的第一标志位的码流数据的第一上下文模型,其中,所述第一预设阈值大于0。
23.根据权利要求22所述的方法,其特征在于,
所述当前点云点的第一通道的属性残差大于所述第一预设阈值时,选择的用于解码所述第二通道的属性残差的第一标志位的码流数据的第一上下文模型,是所述上下文模型列表中第一索引对应的上下文模型;
所述当前点云点的第一通道的属性残差不大于所述第一预设阈值时,选择的用于解码所述第二通道的属性残差的第一标志位的码流数据的第一上下文模型,是所述上下文模型列表中第二索引对应的上下文模型。
24.根据权利要求22或23所述的方法,其特征在于,所述根据第二条件从上下文模型列表中选择用于解码所述第二标志位的码流数据的第二上下文模型,包括:
根据所述当前点云点的第一通道的属性残差是否等于第二预设阈值,从所述上下文模型列表中选择用于解码第二通道的属性残差的所述第二标志位的码流数据的第二上下文模型。
25.根据权利要求22所述的方法,其特征在于,所述根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从所述上下文模型列表中选择用于解码第二通道的属性残差的第一标志位的码流数据的第一上下文模型,包括:
判断所述当前点云点的第一通道的属性残差是否大于所述第一预设阈值,以及所述第三通道的属性残差是否大于所述第一预设阈值;
根据判断结果从所述上下文模型列表中选择用于解码所述第二通道中所述第一标志位的码流数据的第一上下文模型。
26.根据权利要求25所述的方法,其特征在于,
如果所述当前点云点的第一通道中的属性残差小于或等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第一预设阈值,则选择的用于解码所述第二通道中所述第一标志位的码流数据的第一上下文模型,是所述上下文模型列表中第三索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差小于或等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第一预设阈值,则选择的用于解码所述第二通道中所述第一标志位的码流数据的第一上下文模型,是所述上下文模型列表中第四索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差大于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第一预设阈值,则选择的用于解码所述第二通道中所述第一标志位的码流数据的第一上下文模型,是所述上下文模型列表中第五索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差大于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第一预设阈值,则选择的用于解码所述第二通道中所述第一标志位的码流数据的第一上下文模型,是所述上下文模型列表中第六索引对应的上下文模型。
27.根据权利要求25所述的方法,其特征在于,所述根据第二条件从上下文模型列表中选择用于解码所述第二标志位的码流数据的第二上下文模型,包括:
判断所述当前点云点的第一通道的属性残差是否大于第二预设阈值,以及所述第三通道的属性残差是否大于所述第二预设阈值;
根据判断结果从所述上下文模型列表中选择用于解码所述第二通道中所述第二标志位的码流数据的第二上下文模型。
28.根据权利要求27所述的方法,其特征在于,
如果所述当前点云点的第一通道中的属性残差小于或等于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第二预设阈值,则选择的用于解码所述第二通道中所述第二标志位的码流数据的第二上下文模型,是所述上下文模型列表中第三索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差小于或等于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第二预设阈值,则选择的用于解码所述第二通道中所述第二标志位的码流数据的第二上下文模型,是所述上下文模型列表中第四索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差大于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第二预设阈值,则选择的用于解码所述第二通道中所述第二标志位的码流数据的第二上下文模型,是所述上下文模型列表中第五索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差大于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第二预设阈值,则选择的用于解码所述第二通道中所述第二标志位的码流数据的第二上下文模型,是所述上下文模型列表中第六索引对应的上下文模型。
29.根据权利要求22、23、25-28中任一项所述的方法,其特征在于,所述第一预设阈值大于或者等于1。
30.根据权利要求28所述的方法,其特征在于,所述第二预设阈值为0。
31.根据权利要求19所述的方法,其特征在于,
所述第一通道包括R通道或Y通道,所述第二通道包括G通道或U通道,所述第三通道包括B通道或V通道;或者,
所述第一通道包括R通道或Y通道,所述第二通道包括B通道或V通道,所述第三通道包括G通道或U通道。
32.根据权利要求19所述的方法,其特征在于,
所述第一通道的属性残差的码流数据的第二标志位用于指示所述第一通道的属性残差是否为1;或者,
所述第一通道的属性残差的码流数据的第一标志位用于指示所述第一通道的属性残差是否为2。
33.根据权利要求19所述的方法,其特征在于,
所述第一通道的属性残差的二元码的第二标志位用于指示所述第一通道的属性残差是否为0;或者,
所述第一通道的属性残差的二元码的第一标志位用于指示所述第一通道的属性残差是否为1。
34.根据权利要求18所述的方法,其特征在于,所述对所述用于指示所述第一标志位的二元码以及用于指示所述第二标志位的二元码进行逆二值化,得到所述当前点云点的属性残差,包括:
对所述用于指示所述第一标志位的二元码以及用于指示所述第二标志位的二元码进行逆二值化,得到编码值;
根据预设的解码方法对所述编码值进行解码,得到所述当前点云点的属性残差。
35.一种数据编码设备,其特征在于,包括存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于调用所述程序,当所述程序被执行时,用于执行以下操作:
获取当前点云点的属性残差;
对所述属性残差进行二值化,得到所述当前点云点的二元码,其中,所述当前点云点的二元码包括用于指示第一标志位的二元码和用于指示第二标志位的二元码;
根据第一条件从上下文模型列表中选择用于编码所述第一标志位的二元码的第一上下文模型;
根据第二条件从所述上下文模型列表中选择用于编码所述第二标志位的二元码的第二上下文模型,其中,所述第一上下文模型和所述第二上下文模型对应所述上下文模型列表中的同一个索引时,所述第一条件与所述第二条件不相同;
采用所述第一上下文模型对所述第一标志位的二元码进行编码;
采用所述第二上下文模型对所述第二标志位的二元码进行编码。
36.根据权利要求35所述的设备,其特征在于,
所述当前点云点的二元码包括第一通道的属性残差的二元码、第二通道的属性残差的二元码以及第三通道的属性残差的二元码。
37.根据权利要求36所述的设备,其特征在于,
所述第一上下文模型与所述第二上下文模型分别是用于编码同一个通道的属性残差的不同标志位的二元码的上下文模型。
38.根据权利要求36所述的设备,其特征在于,
所述第一标志位用于指示所述当前点云点的一个通道的属性残差是否为N+1,所述第二标志位用于指示所述当前点云点的一个通道的属性残差是否为N,N大于或等于0。
39.根据权利要求35-37任一项所述的设备,其特征在于,所述根据第一条件从上下文模型列表中选择用于编码所述第一标志位的二元码的第一上下文模型,包括:
根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从所述上下文模型列表中选择用于编码第二通道的属性残差的第一标志位的二元码的第一上下文模型,其中,所述第一预设阈值大于0。
40.根据权利要求39所述的设备,其特征在于,
所述当前点云点的第一通道的属性残差大于所述第一预设阈值时,选择的用于编码所述第二通道的属性残差的第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第一索引对应的上下文模型;
所述当前点云点的第一通道的属性残差不大于所述第一预设阈值时,选择的用于编码所述第二通道的属性残差的第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第二索引对应的上下文模型。
41.根据权利要求39所述的设备,其特征在于,所述根据第二条件从所述上下文模型列表中选择用于编码所述第二标志位的二元码的第二上下文模型,包括:
根据所述当前点云点的第一通道的属性残差是否等于第二预设阈值,从所述上下文模型列表中选择用于编码所述第二通道的属性残差的所述第二标志位的二元码的第二上下文模型。
42.根据权利要求35-37任一项所述的设备,其特征在于,所述根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从所述上下文模型列表中选择用于编码第二通道的属性残差的第一标志位的二元码的第一上下文模型,包括:
判断所述当前点云点的第一通道的属性残差是否大于所述第一预设阈值,以及第三通道的属性残差是否大于所述第一预设阈值;
根据判断结果从所述上下文模型列表中选择用于编码所述第二通道中所述第一标志位的二元码的第一上下文模型。
43.根据权利要求42所述的设备,其特征在于,
如果所述当前点云点的第一通道中的属性残差小于或等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第一预设阈值,则选择的用于编码所述第二通道中所述第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第三索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差小于或等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第一预设阈值,则选择的用于编码所述第二通道中所述第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第四索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差大于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第一预设阈值,则选择的用于编码所述第二通道中所述第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第五索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差大于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第一预设阈值,则选择的用于编码所述第二通道中所述第一标志位的二元码的第一上下文模型,是所述上下文模型列表中第六索引对应的上下文模型。
44.根据权利要求42所述的设备,其特征在于,所述根据第二条件从所述上下文模型列表中选择用于编码所述第二标志位的二元码的第二上下文模型,包括:
判断所述当前点云点的第一通道的属性残差是否大于第二预设阈值,以及所述第三通道的属性残差是否大于所述第二预设阈值;
根据判断结果从所述上下文模型列表中选择用于编码所述第二通道中所述第二标志位的二元码的第二上下文模型。
45.根据权利要求35所述的设备,其特征在于,
如果所述当前点云点的第一通道中的属性残差小于或等于第二预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第二预设阈值,则选择的用于编码第二通道中所述第二标志位的二元码的第二上下文模型,是所述上下文模型列表中第三索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差小于或等于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第二预设阈值,则选择的用于编码所述第二通道中所述第二标志位的二元码的第二上下文模型,是所述上下文模型列表中第四索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差大于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第二预设阈值,则选择的用于编码所述第二通道中所述第二标志位的二元码的第二上下文模型,是所述上下文模型列表中第五索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差大于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第二预设阈值,则选择的用于编码所述第二通道中所述第二标志位的二元码的第二上下文模型,是所述上下文模型列表中第六索引对应的上下文模型。
46.根据权利要求39所述的设备,其特征在于,所述第一预设阈值大于或者等于1。
47.根据权利要求45所述的设备,其特征在于,所述第二预设阈值为0。
48.根据权利要求36所述的设备,其特征在于,
所述第一通道包括R通道或Y通道,所述第二通道包括G通道或U通道,所述第三通道包括B通道或V通道;或者,
所述第一通道包括R通道或Y通道,所述第二通道包括B通道或V通道,所述第三通道包括G通道或U通道。
49.根据权利要求36所述的设备,其特征在于,
所述第一通道的属性残差的二元码的第二标志位用于指示所述第一通道的属性残差是否为1;或者,
所述第一通道的属性残差的二元码的第一标志位用于指示所述第一通道的属性残差是否为2。
50.根据权利要求36所述的设备,其特征在于,
所述第一通道的属性残差的二元码的第二标志位用于指示所述第一通道的属性残差是否为0;或者,
所述第一通道的属性残差的二元码的第一标志位用于指示所述第一通道的属性残差是否为1。
51.根据权利要求35所述的设备,其特征在于,所述对所述属性残差进行二值化,得到所述当前点云点的二元码,包括:
根据预设的编码方法对所述当前点云点属性残差进行编码,得到编码值;
对所述编码值进行二值化,得到所述当前点云点的二元码。
52.一种数据解码设备,其特征在于,包括存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于调用所述程序,当所述程序被执行时,用于执行以下操作:
获取当前点云点的码流数据,所述码流数据包括第一标志位的码流数据和第二标志位的码流数据;
根据第一条件从上下文模型列表中选择用于解码所述第一标志位的码流数据的第一上下文模型,对所述第一标志位的码流数据进行解码,得到用于指示所述第一标志位的二元码;
根据第二条件从上下文模型列表中选择用于解码所述第二标志位的码流数据的第二上下文模型,对所述第二标志位的码流数据进行解码,得到用于指示所述第二标志位的二元码;
对所述用于指示所述第一标志位的二元码以及用于指示所述第二标志位的二元码进行逆二值化,得到所述当前点云点的属性残差。
53.根据权利要求52所述的设备,其特征在于,
所述码流数据包括第一通道的属性残差的码流数据、第二通道的属性残差的码流数据以及第三通道的属性残差的码流数据。
54.根据权利要求53所述的设备,其特征在于,
所述第一上下文模型与所述第二上下文模型分别是用于解码同一个通道的属性残差的不同标志位的码流数据的上下文模型。
55.根据权利要求53所述的设备,其特征在于,
所述第一标志位用于指示所述当前点云点的一个通道的属性残差是否为N+1,所述第二标志位用于指示所述当前点云点的一个通道的属性残差是否为N,N大于或等于0。
56.根据权利要求53所述的设备,其特征在于,所述根据第一条件从上下文模型列表中选择用于解码所述第一标志位的码流数据的第一上下文模型,包括:
对所述当前点云点的第一通道的属性残差的码流数据解码得到所述第一通道的属性残差;
根据所述第一通道的属性残差是否大于第一预设阈值,从所述上下文模型列表中选择用于解码所述第二通道的属性残差的第一标志位的码流数据的第一上下文模型,其中,所述第一预设阈值大于0。
57.根据权利要求56所述的设备,其特征在于,
所述当前点云点的第一通道的属性残差大于所述第一预设阈值时,选择的用于解码所述第二通道的属性残差的第一标志位的码流数据的第一上下文模型,是所述上下文模型列表中第一索引对应的上下文模型;
所述当前点云点的第一通道的属性残差不大于所述第一预设阈值时,选择的用于解码所述第二通道的属性残差的第一标志位的码流数据的第一上下文模型,是所述上下文模型列表中第二索引对应的上下文模型。
58.根据权利要求56或57所述的设备,其特征在于,所述根据第二条件从上下文模型列表中选择用于解码所述第二标志位的码流数据的第二上下文模型,包括:
根据所述当前点云点的第一通道的属性残差是否等于第二预设阈值,从所述上下文模型列表中选择用于解码所述第二通道的属性残差的所述第二标志位的码流数据的第二上下文模型。
59.根据权利要求56所述的设备,其特征在于,所述根据所述当前点云点的第一通道的属性残差是否大于第一预设阈值,从所述上下文模型列表中选择用于解码所述第二通道的属性残差的第一标志位的码流数据的第一上下文模型,包括:
判断所述当前点云点的第一通道的属性残差是否大于所述第一预设阈值,以及第三通道的属性残差是否大于所述第一预设阈值;
根据判断结果从所述上下文模型列表中选择用于解码所述第二通道中所述第一标志位的码流数据的第一上下文模型。
60.根据权利要求59所述的设备,其特征在于,
如果所述当前点云点的第一通道中的属性残差小于或等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第一预设阈值,则选择的用于解码所述第二通道中所述第一标志位的码流数据的第一上下文模型,是所述上下文模型列表中第三索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差小于或等于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第一预设阈值,则选择的用于解码所述第二通道中所述第一标志位的码流数据的第一上下文模型,是所述上下文模型列表中第四索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差大于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第一预设阈值,则选择的用于解码所述第二通道中所述第一标志位的码流数据的第一上下文模型,是所述上下文模型列表中第五索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差大于所述第一预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第一预设阈值,则选择的用于解码所述第二通道中所述第一标志位的码流数据的第一上下文模型,是所述上下文模型列表中第六索引对应的上下文模型。
61.根据权利要求59所述的设备,其特征在于,所述根据第二条件从上下文模型列表中选择用于解码所述第二标志位的码流数据的第二上下文模型,包括:
判断所述当前点云点的第一通道的属性残差是否大于第二预设阈值,以及所述第三通道的属性残差是否大于所述第二预设阈值;
根据判断结果从所述上下文模型列表中选择用于解码所述第二通道中所述第二标志位的码流数据的第二上下文模型。
62.根据权利要求61所述的设备,其特征在于,
如果所述当前点云点的第一通道中的属性残差小于或等于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第二预设阈值,则选择的用于解码所述第二通道中所述第二标志位的码流数据的第二上下文模型,是所述上下文模型列表中第三索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差小于或等于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第二预设阈值,则选择的用于解码所述第二通道中所述第二标志位的码流数据的第二上下文模型,是所述上下文模型列表中第四索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差大于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差小于或等于所述第二预设阈值,则选择的用于解码所述第二通道中所述第二标志位的码流数据的第二上下文模型,是所述上下文模型列表中第五索引对应的上下文模型;或者,
如果所述当前点云点的第一通道中的属性残差大于所述第二预设阈值,以及所述当前点云点的第三通道中的属性残差大于所述第二预设阈值,则选择的用于解码所述第二通道中所述第二标志位的码流数据的第二上下文模型,是所述上下文模型列表中第六索引对应的上下文模型。
63.根据权利要求56、57、59-62中任一项所述的设备,其特征在于,所述第一预设阈值大于或者等于1。
64.根据权利要求62所述的设备,其特征在于,所述第二预设阈值为0。
65.根据权利要求53所述的设备,其特征在于,
所述第一通道包括R通道或Y通道,所述第二通道包括G通道或U通道,所述第三通道包括B通道或V通道;或者,
所述第一通道包括R通道或Y通道,所述第二通道包括B通道或V通道,所述第三通道包括G通道或U通道。
66.根据权利要求53所述的设备,其特征在于,
所述第一通道的属性残差的码流数据的第二标志位用于指示所述第一通道的属性残差是否为1;或者,
所述第一通道的属性残差的码流数据的第一标志位用于指示所述第一通道的属性残差是否为2。
67.根据权利要求53所述的设备,其特征在于,
所述第一通道的属性残差的二元码的第二标志位用于指示所述第一通道的属性残差是否为0;或者,
所述第一通道的属性残差的二元码的第一标志位用于指示所述第一通道的属性残差是否为1。
68.根据权利要求52所述的设备,其特征在于,所述对所述用于指示所述第一标志位的二元码以及用于指示所述第二标志位的二元码进行逆二值化,得到所述当前点云点的属性残差,包括:
对所述用于指示所述第一标志位的二元码以及用于指示所述第二标志位的二元码进行逆二值化,得到编码值;
根据预设的解码方法对所述编码值进行解码,得到所述当前点云点的属性残差。
69.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至34任一项所述方法。
CN201980038685.XA 2019-09-30 2019-09-30 一种数据编码、解码方法、设备及存储介质 Active CN112352431B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/109691 WO2021062768A1 (zh) 2019-09-30 2019-09-30 一种数据编码、解码方法、设备及存储介质

Publications (2)

Publication Number Publication Date
CN112352431A CN112352431A (zh) 2021-02-09
CN112352431B true CN112352431B (zh) 2023-01-10

Family

ID=74367917

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980038685.XA Active CN112352431B (zh) 2019-09-30 2019-09-30 一种数据编码、解码方法、设备及存储介质

Country Status (3)

Country Link
US (1) US20220222861A1 (zh)
CN (1) CN112352431B (zh)
WO (1) WO2021062768A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112995662B (zh) * 2021-03-12 2022-10-25 北京大学深圳研究生院 一种点云的属性熵编码和熵解码的方法及设备
CN116233387A (zh) * 2021-12-03 2023-06-06 维沃移动通信有限公司 点云编码、解码方法、装置及通信设备
WO2023097694A1 (zh) * 2021-12-03 2023-06-08 Oppo广东移动通信有限公司 解码方法、编码方法、解码器以及编码器
CN116347105A (zh) * 2021-12-24 2023-06-27 中兴通讯股份有限公司 一种点云编码方法、装置、通信节点及存储介质
WO2024103304A1 (zh) * 2022-11-16 2024-05-23 Oppo广东移动通信有限公司 点云编解码方法、编码器、解码器、码流及存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10897269B2 (en) * 2017-09-14 2021-01-19 Apple Inc. Hierarchical point cloud compression
US10861196B2 (en) * 2017-09-14 2020-12-08 Apple Inc. Point cloud compression
EP3474233A1 (en) * 2017-10-19 2019-04-24 Thomson Licensing A method and apparatus for encoding/decoding the geometry of a point cloud representing a 3d object
CN108322742B (zh) * 2018-02-11 2019-08-16 北京大学深圳研究生院 一种基于帧内预测的点云属性压缩方法
CN110278443B (zh) * 2018-03-16 2022-02-11 华为技术有限公司 划分标志位的上下文建模方法及装置
CN108632607B (zh) * 2018-05-09 2019-06-21 北京大学深圳研究生院 一种基于多角度自适应帧内预测的点云属性压缩方法
US10708627B2 (en) * 2019-03-04 2020-07-07 Intel Corporation Volumetric video compression with motion history

Also Published As

Publication number Publication date
WO2021062768A1 (zh) 2021-04-08
CN112352431A (zh) 2021-02-09
US20220222861A1 (en) 2022-07-14

Similar Documents

Publication Publication Date Title
CN112352431B (zh) 一种数据编码、解码方法、设备及存储介质
US9906789B2 (en) Encoding or decoding method and apparatus
US8977066B2 (en) Image compression using sub-resolution images
EP3135036B1 (en) Method and apparatus for palette table prediction and signaling
US9807402B2 (en) Method of color palette coding applicable to electronic device and electronic device using the same
US11871004B2 (en) Video image processing method and device, and storage medium
US20140015698A1 (en) System and method for fixed rate entropy coded scalar quantization
CN110191341B (zh) 一种深度数据的编码方法和解码方法
CN115474044B (zh) 一种Bayer域图像有损压缩方法
CN113099269B (zh) 串匹配预测方法、编码和解码方法及相关设备、装置
CN113784147A (zh) 一种基于卷积神经网络的高效视频编码方法及系统
CN112449201B (zh) 解码方法、编码方法、相应的装置、电子设备及存储介质
CN111699681A (zh) 一种视频图像处理方法、设备及存储介质
CN113473150B (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
GR01 Patent grant
GR01 Patent grant