CN111684804A - 一种数据编码、数据解码方法、设备及存储介质 - Google Patents
一种数据编码、数据解码方法、设备及存储介质 Download PDFInfo
- Publication number
- CN111684804A CN111684804A CN201980008420.5A CN201980008420A CN111684804A CN 111684804 A CN111684804 A CN 111684804A CN 201980008420 A CN201980008420 A CN 201980008420A CN 111684804 A CN111684804 A CN 111684804A
- Authority
- CN
- China
- Prior art keywords
- data
- level
- code
- level data
- code stream
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/40—Tree coding, e.g. quadtree, octree
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
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)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明实施例提供了一种数据编码、数据解码方法、设备及存储介质,其中,该方法包括:获取待处理的点云数据;对所述点云数据进行编码得到码流数据;其中,所述码流数据包括一个或多个第一层级数据,每个所述第一层级数据中包括一个或多个第二层级数据;所述码流数据还包括用于标识每一层级数据的标识信息,所述标识信息包括起始码和用于标识所述层级数据的所属层级的码字。通过这种方式可以实现解码后随机访问不同层级的点云数据,提高了数据访问的灵活性。
Description
技术领域
本发明涉及数据编解码领域,尤其涉及一种数据编码、数据解码方法、设备及存储介质。
背景技术
现有技术中,通过激光雷达、激光扫描仪等设备可以采集得到点云数据,在对点云数据进行编码或解码时,通常采用的是按固定采集顺序对所述点云数据的不同层级数据进行编码或解码。
然而,这种按固定采集顺序对点云数据进行编码的方式,在解码时只能从点云数据码流最开始处开始一一访问,不能对点云数据中的任意一层级数据进行随机访问。因此,如何实现对点云数据的随机访问以提高数据访问灵活性成为研究的重点。
发明内容
本发明实施例提供了一种数据编码、数据解码方法、设备及存储介质,实现了对点云数据的随机访问,提高了对数据访问的灵活性。
第一方面,本发明实施例提供了一种数据编码方法,包括:
获取待处理的点云数据;
对所述点云数据进行编码得到码流数据;
其中,所述码流数据包括一个或多个第一层级数据,每个所述第一层级数据中包括一个或多个第二层级数据;
所述码流数据还包括用于标识每一层级数据的标识信息,所述标识信息包括起始码和用于标识所述层级数据的所属层级的码字。
第二方面,本发明实施例提供了一种数据解码方法,包括:
接收码流数据;
对所述码流数据进行解码,得到与所述码流数据对应的点云数据;
其中,所述码流数据包括多个第一层级数据,每个所述第一层级数据中包括多个第二层级数据;
所述码流数据还包括用于标识每一层级数据的标识信息,所述标识信息包括起始码和用于标识所述层级数据的所属层级的码字。
第三方面,本发明实施例提供了一种数据编码设备,其特征在于,包括:存储器和处理器;
所述存储器,用于存储程序指令;
所述处理器,用于调用所述程序指令,当所述程序指令被执行时,用于执行以下操作:
获取待处理的点云数据;
对所述点云数据进行编码得到码流数据;
其中,所述码流数据包括一个或多个第一层级数据,每个所述第一层级数据中包括一个或多个第二层级数据;
所述码流数据还包括用于标识每一层级数据的标识信息,所述标识信息包括起始码和用于标识所述层级数据的所属层级的码字。
第四方面,本发明实施例提供了一种数据解码设备,其特征在于,包括:存储器和处理器;
所述存储器,用于存储程序指令;
所述处理器,用于调用所述程序指令,当所述程序指令被执行时,用于执行以下操作:
接收码流数据;
对所述码流数据进行解码,得到与所述码流数据对应的点云数据;
其中,所述码流数据包括多个第一层级数据,每个所述第一层级数据中包括多个第二层级数据;
所述码流数据还包括用于标识每一层级数据的标识信息,所述标识信息包括起始码和用于标识所述层级数据的所属层级的码字。
第五方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面所述的数据编码方法或上述第二方面所述的数据解码方法。
本发明实施例,通过数据编码设备对待处理的每一层级数据添加标识信息,并对添加标识信息后的点云数据进行编码得到码流数据,可以实现解码后随机访问不同层级的点云数据,提高了数据访问的灵活性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种现有点云数据的编码流程示意图;
图2是本发明实施例提供的一种现有点云数据的解码流程示意图;
图3是本发明实施例提供的一种点云数据的层级结构示意图;
图4是本发明实施例提供的一种数据编码方法的流程示意图;
图5是本发明实施例提供的一种数据解码方法的流程示意图;
图6是本发明实施例提供的一种数据编码设备的结构示意图;
图7是本发明实施例提供的一种数据解码设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
本发明是针对点云数据产生的方法确定的点云数据编码和解码的方式,并根据点云数据的特点确定数据存储的文件格式方案。在介绍本发明之前,首先对点云数据进行如下相关介绍。
在一个实施例中,所述点云数据是三维物体或场景的一种表现形式,是由空间中一组无规则分布、表达三维物体或场景空间结构和表面属性的离散点集所构成。为了准确反映空间中的信息,所需离散点的数目是巨大的。为了减少点云数据存储和传输时所占用的带宽,可以对点云数据进行编码压缩处理。
在一个实施例中,一个点云数据通常由描述坐标信息的三维坐标(x,y,z)以及该位置的属性信息如颜色(R,G,B)或者反射率等属性构成。在一个实施例中,常见的点云数据压缩的编码流程如图1所示,图1是本发明实施例提供的一种现有点云数据的编码流程示意图。如图1所示,通过输入点云数据11,对输入的点云数据的位置坐标进行量化12,去除位置坐标中的重复坐标121,对处理后的位置坐标进行位置编码13,如使用八叉树进行编码,然后对输入的点云数据的属性进行属性转换14,并对位置编码后重排序的位置顺序对应的属性进行属性编码15,以及对编码后的二进制码流进行算术编码16,从而得到对点云数据编码后的码流数据17。
在一个实施例中,所述点云数据压缩的解码流程是图1所示的编码的逆过程,具体如图2所示,图2是本发明实施例提供的一种现有点云数据的解码流程示意图。如图2所示,获取待解码的码流数据21对其进行算术解码22,通过八叉树编码23对算术解码后的数据进行逆量化24,得到点云数据的位置坐标,通过属性解码25得到点云数据的属性,最后根据点云数据的属性和位置坐标,得到解码的点云数据26。
在一个实施例中,所述点云数据可以由采集设备采集得到,常见的采集设备包括但不限于激光雷达、激光扫描仪等。通过此类采集设备获取的点云数据通常可划分为以下几个维度:首先,在一个预设时间间隔内获取得到的点云数据可视为一个帧级数据;所述预设时间间隔为采集点云数据的一个时间窗,如50毫秒,即在该50毫秒内采集得到的点云数据均可认为是一个帧级数据。其次,点云数据通常可以是由多台采集设备同时采集得到的,因此所述一个帧级数据可以包含多个采集设备(如多台激光雷达)采集得到的采集设备级数据。再次,所述一个帧级数据中对应的一台采集设备的采集设备级数据可以包括若干不同的数据包级数据,所述数据包级数据可以包括不同的属性,如不同的采集时间、不同的采集精度等。
在一个实施例中,通过对所述点云数据按采集时间顺序编码,并加上一定的标识信息可以用于区分不同序列、不同帧、不同采集设备、不同属性的点云数据包的信息。例如,在采集点云数据的过程中,以预设时间间隔(如50毫秒)为单位将在所述预设时间间隔中的点云数据作为一个帧级数据进行编码,并在该帧级数据中标识所述帧级数据的数据量,该帧级数据的数据量包括点云数据的点数、该帧级数据的大小等。
在一个实施例中,当采集设备包含多台采集设备时,可以按采集顺序编码点云数据的帧级数据、帧级数据对应的多个采集设备级数据、所述采集设备级数据的数据包级数据。
本发明实施例提出了一种数据编码方法以及对应的数据解码方法,所述数据编码方法可以应用于数据编码设备,所述数据编码设备可以设置在智能终端(如手机、平板电脑等)上。所述数据解码方法可以应用于数据解码设备,所述数据解码设备也可以设置在智能终端(如手机、平板电脑等)上。在某些实施例中,本发明实施例还可应用于飞行器(如无人机)上,在其他实施例中,本发明实施例还可以应用于其他可移动平台(如无人船、无人汽车、机器人等)上,本发明实施例不做具体限定。
本发明实施例通过获取待编码的点云数据,对所述点云数据进行编码得到码流数据。在某些实施例中,所述点云数据包含多个帧级数据、每个帧级数据包含多个采集设备级数据、所述采集设备级数据包含多个数据包级数据。
在一个实施例中,所述帧级数据、采集设备级数据、数据包级数据可以通过定义起始码(start code)加码字(code ID)的方式来表示。一个示例中,该起始码可以是前缀符。在某些实施例中,所述起始码可以为点云数据编码得到的码流数据中唯一存在的标识,通过解析该标识可支持随机访问。在某些实施例中,所述码字可以包括目标数值集合中的一个数值,所述目标集合中的不同数值分别表示序列集数据、帧级数据、采集设备级数据、数据包级数据等。通过起始码和码字的组合可确定所述码流数据中某一段数据属于某一个序列级数据或某一个帧级数据或采集设备级数据或数据包级数据。
在一个实施例中,根据点云数据的采集特点可以将点云数据编码得到的码流数据分为四个层级的数据。所述分层结构如图3所示,图3是本发明实施例提供的一种点云数据的层级结构示意图。如图3所示,第一个层级为序列级数据31,此为点云数据的最高层级,所述序列级数据以序列头来标识;第二个层级为帧级数据32,所述序列级数据中可以包含多个帧级数据,每个帧级数据以帧头来标识;第三个层级为采集设备级数据33,所述帧级数据可以包含多个采集设备级数据,所述每个采集设备级数据对应一台采集设备,所述采集设备级数据以采集设备数据集头来表示;最后一个层级为数据包级数据34,所述采集设备级数据中包含多个数据包级数据,所述数据包级数据对应一个单独的属性,如该数据包级数据中点云数据的采集时间或起始采集时间或点云数据的数据精度,所述数据包级数据以数据包头来标识。
在一个实施例中,以起始码和码字为标识信息的方式对码流数据进行标识。在一个实施例中,所述码流数据中用于表示不同层级数据的起始码均相同,即码流数据中除了起始码本身不会出现与起始码相同的标识。
在一个实施例中,码流数据中有且仅有起始码具有该标识,数据解码设备或点云播放器可以通过查找该标识找到帧级数据或采集设备级数据或数据包级数据的起始位置。找到所述起始位置之后,可以通过解析所述起始码之后的码字,确定所述起始位置对应的帧级数据或采集设备级数据或数据包级数据。
在一个实施例中,在码流数据中除了起始码以外还有可能会出现不是起始码,但却跟起始码的二进制数据相同的伪起始码,当所述码流数据中存在伪起始码时,可以对所述码流数据进行去伪起始码操作。
例如,假设所述起始码为码流数据中从字节对齐处开始的23个连续的0加1个1,总共24个二进制位,即0x000001。在实际的码流数据中可能出现的码流数据的二进制位的组合是多样的,因此在码流数据中除了起始码以外还有可能会出现不是起始码但从字节对齐处开始出现了0x000001的数据,一般把这种情况称为伪起始码。
在一个实施例中,在对所述码流数据进行去伪起始码操作时,可以在所述码流数据除起始码以外的、与起始码一样的连续字节中插入预设去伪数据,以使所述插入预设去伪数据后的码流数据中不存在与所述起始码相同的数据。
在一个实施例中,所述预设去伪数据可以为整字节。具体可举例说明,假设所述起始码为码流数据中从字节对齐处开始的23个连续的0加1个1,总共24个二进制位,即0x000001。如果所述码流数据中出现伪起始码,则可以对所述码流数据进行去伪起始码操作。如果预设去伪数据为一个整字节0x03字节,则可以在编码时每遇到两个字节的0即0x0000,就插入一个字节0x03。即当点云数据经编码之后的码流数据除了起始码以外的数据,一旦出现字节对齐处有16个连续的0则插入一个0x03字节,以避免出现伪起始码的情况。
本发明实施例通过插入整字节的预设去伪数据的方式,码流操作简单,可以确保码流数据中除了起始码本身,其它码流数据不会出现与起始码一致的数据串,避免了出现伪起始码的情况。
在一个实施例中,所述预设去伪数据可以为非整字节,在对所述码流数据进行去伪起始码操作时,可以在所述码流数据除起始码以外的、与起始码一样的连续字节中插入非整字节的预设去伪数据。如果在插入所述非整字节的预设去伪数据之后,所述码流数据没有整字节对齐,则可以在码流数据后以0或1填充,以使所述插入所述非整字节的预设去伪数据后的码流数据整字节对齐,且码流数据中不存在与所述起始码相同的数据。
具体可举例说明,假设起始码为码流数据中从字节对齐处开始的23个连续的0加1个1,总共24个二进制位,即0x000001。如果在所述码流数据中除了起始码以外还出现不是起始码但从字节对齐处开始出现了0x000001的数据,则确定所述码流数据中出现伪起始码。如果预设去伪数据为一个非整字节的10,则可以在编码时每遇到两个字节的0即0x0000,就插入两比特数10,并在这一段码流数据结束之后进行整字节对齐,即对最后一个字节的码流数据进行填充0或填充1,以保证字节对齐。
本发明实施例通过插入非整字节的预设去伪数据的方式,码流少,可以确保码流数据中除了起始码本身,其它码流数据不会出现与起始码一致的数据串,避免了出现伪起始码的情况。
在一个实施例中,所述码字包括目标数值集合中的其中一个数值,用于标识不同层级数据的码字不同。假设本发明采用8bit数值来标识,所述码字所对应的不同的8bit数值表示不同的点云数据类型,具体可以如下示例进行说明:
Code ID=1:序列头;
Code ID=2:帧头;
Code ID=3:采集设备数据集头,具体的可以为激光雷达数据集头等;
Code ID=4:数据包头。
在一个实施例中,在点云数据实际采集过程中,所使用的采集设备的数量是有限的,因此可以对所述点云数据的采集设备进行编码,在码字code ID中编码其对应的采集设备编号,具体可以如下示例进行说明:
Code ID=1:序列头;
Code ID=2:帧头;
Code ID=3~31:采集设备数据集头,具体的可以为激光雷达数据集头,其中,Code ID值与3的差值表示所述点云数据的采集设备的编号;
Code ID=32:数据包头。
在一个实施例中,所述帧级数据包括不同的类型,如帧内编码帧、帧间编码帧,因此在码字中可以进一步表示所述帧级数据的类型,具体可以如下示例进行说明:
Code ID=1:序列头;
Code ID=2~7:帧头,所述Code ID值2~7表示不同的帧类型;
Code ID=8~31:采集设备数据集头,具体的可以为激光雷达数据集头,其中,Code ID值与8的差值可以表示所述点云数据的采集设备的编号。
Code ID=32:点云数据包头。
在一个实施例中,在实际编码时所述数据包级数据比较少,往往只包含了几百个或几千个点。在一些应用中,如果数据包级数据的数量较少,则数据包级数据不需要支持随机访问,此时数据包级数据不需要通过起始码加码字的方式进行标识。此时,在帧级数据中以采集数据包级的顺序存储数据包级数据。
在一个实施例中,通过在数据包级数据的起始位置以固定长度(如32bit)编码所述数据包级数据的大小。在某些实施例中,所述每个数据包级数据结尾需字节对齐,若不对齐则可以在所述数据包级数据编码完之后填充0或填充1以保证字节对齐,以便于提高数据解码设备以及及点云播放设备的解码效率。
在一个实施例中,数据编码设备在对所述点云数据进行编码得到码流数据时,一种编码方式可以如下示例进行说明:首先,数据编码设备可以编码序列头的起始码0x000001,然后编码序列级数据的序列头对应的码字0x01;其次,编码所述帧级数据的帧头的起始码0x000001,然后编码帧头对应的码字,若所述帧级数据为帧内编码数据,则编码Code ID值0x02;再次,编码所述采集设备级数据的采集设备数据集头的起始码0x000001,然后编码采集设备数据集头对应的码字,所述码字的值可以为所述采集设备编号值+n,其中,n为预设数值,例如,假设所述预设数值为8,所述采集设备编号为0,则所述采集设备集头对应的Code ID值为0x08;最后,编码所述数据包级数据的数据包头的起始码0x000001,并编码所述数据包头对应的码字0x20。
在一个实施例中,数据解码设备可以获取编码得到的码流数据,并对所述码流数据进行解码,得到与所述码流数据对应的点云数据。
在一个实施例中,数据解码设备在对所述码流数据进行解码,得到与所述码流数据对应的点云数据时,一种解码方式可以如下示例进行说明:首先,数据解码设备可以获取点云数据编码的码流数据,并对所述码流数据进行去伪起始码的逆操作;其次,数据解码设备解码获得起始码0x000001,并解码获得起始码对应的码字,若码字值为1则表示对应序列级数据;再次,解码获得起始码0x000001,并解码获得起始码对应的码字,若码字值为2~7,则表示对应帧级数据,其中,解析得到的Code ID值-2表示点云帧类型,若其值为0,则表示所述帧级数据为帧内编码数据;再次,解码获得起始码0x000001,并解码获得起始码对应的码字,若码字值为8~8+n,则表示对应采集设备级数据,其中,n为预设数值。例如,假设预设数值为8,若解析得到的Code ID值为8,则表示该数据对应编号为0的采集设备级数据;再次,解码获得起始码0x000001,并解码获得起始码对应的码字,若码字值为0x20,则表示数据包级数据;最后,以所述数据包级数据为单位进行解码。
在一个实施例中,数据编码设备在对所述点云数据进行编码得到码流数据时,一种编码方式可以如下示例进行说明:首先,数据编码设备可以编码点云序列头起始码0xFFFFFE,然后编码序列级数据的序列头对应的码字0x01;其次,编码所述帧级数据的帧头的起始码0xFFFFFE,然后编码帧头对应的码字,若所述帧级数据为帧内编码数据,则编码Code ID值0x02;再次,编码所述采集设备级数据的采集设备数据集头的起始码0xFFFFFE,然后编码云采集设备数据集头对应的码字,所述码字的值可以为所述点云采集设备编号值+n,其中n为编解码器约定的预设数值,例如,假设所述预设数值为8,所述采集设备编号为0,则所述采集设备集头对应的Code ID值为0x08;最后,编码所述数据包级数据的数据包头的起始码0xFFFFFE,并编码所述数据包头对应的码字0x20。
在一个实施例中,数据解码设备在对所述码流数据进行解码,得到与所述码流数据对应的点云数据时,一种解码方式可以如下示例进行说明:首先,数据解码设备可以获得点云数据编码的码流数据,并对所述码流数据进行去伪起始码的逆操作;其次,数据解码设备解码获得起始码0xFFFFFE,并解码获得起始码对应的码字,若码字值为1则表示对应序列级数据;再次,解码获得起始码0xFFFFFE,并解码获得起始码对应的码字,若码字值为2~7则表示对应帧级数据,其中,解析得到的Code ID值-2表示点云帧类型,若其值为0,则表示所述帧级数据为帧内编码数据;再次,解码获得起始码0xFFFFFE,并解码获得起始码对应的码字,若码字值为8~8+n,则表示对应采集设备级数据,其中,n为编解码器约定的预设数值;例如,假设预设数值为8,若解析得到的Code ID值为8,则表示该数据对应编号为0的采集设备级数据;再次,解码获得起始码0xFFFFFE,并解码获得起始码对应的码字,若码字值为0x20,则表示数据包级数据;最后,以所述数据包级数据为单位进行解码。
在一个实施例中,若数据包级数据较少,不支持随机访问功能,则在帧级数据中以数据包级数据的采集顺序存储所述数据包级数据,如果在数据包级数据的起始位置以固定长度(如32bit)描述所述数据包级的大小,则解码时解码所述固定长度的信息,以获得所述数据包级数据的大小。
本发明实施例,通过起始码和码字作为标识信息对点云数据进行编码,可以实现通过解析该标识信息,对所述点云数据进行随机访问;所述码字包括不同的数值,不同的数值分别表示点云帧、点云采集设备数据集、点云数据包等,通过起始码和码字的组合,有助于判断所述码流数据中某一段数据所属的层级。
下面结合附图对本发明实施例提供的数据编码、数据解码方法进行示意性说明。
具体请参见图4,图4是本发明实施例提供的一种数据编码方法的流程示意图。所述方法可以应用于数据编码设备,其中,所述数据编码设备的解释如前所述,此处不再赘述。具体地,本发明实施例的所述方法包括如下步骤。
S401:获取待处理的点云数据。
本发明实施例中,数据编码设备可以获取待处理的点云数据。
在一些实施例中,所述点云数据可以通过一个或多个采集设备获取得到;在某些实施例中,所述采集设备可以包括但不限于激光雷达、激光扫描仪等设备。
需要说明的是,所述激光雷达是一种感知传感器,可以获得场景的三维信息。其基本原理为主动对被探测对象发射激光脉冲信号,并获得其反射回来的脉冲信号,根据发射信号和接收信号之间的时间差计算被测对象的距离探测器的深度信息;基于激光雷达的已知发射方向,获得被测对象相对激光雷达的角度信息;结合前述深度信息和角度信息得到海量的探测点(称为点云数据)。
S402:对所述点云数据进行编码得到码流数据,其中,所述码流数据包括一个或多个第一层级数据,每个所述第一层级数据中包括一个或多个第二层级数据;所述码流数据还包括用于标识每一层级数据的标识信息,所述标识信息包括起始码和用于标识所述层级数据的所属层级的码字。
本发明实施例中,数据编码设备可以对所述点云数据进行编码得到码流数据,其中,所述码流数据包括一个或多个第一层级数据,每个所述第一层级数据中包括一个或多个第二层级数据;所述码流数据还包括用于标识每一层级数据的标识信息,所述标识信息包括起始码和用于标识所述层级数据的所属层级的码字。
在某些实施例中,所述标识信息位于所述层级数据的头信息内。在某些实施例中,用于标识不同层级数据的起始码均相同。在某些实施例中,所述起始码为二进制数据,所述码字为二进制数据。在某些实施例中,用于标识不同层级数据的码字不同。
通过起始码和码字的组合作为每一层级的点云数据的标识信息,可以确定所述码流数据中某一段数据所属的层级,有助于后续通过解析由起始码和码字组成的所述标识信息,实现对不同层级数据的随机访问。
在一个实施例中,所述第一层级数据包括序列级数据,所述第二层级数据包括帧级数据。在一个实施例中,所述序列级数据包括起始码和码字,所述点云数据可以根据预设时间间隔采集得到,将在预设时间间隔里获取到的点云数据为帧级数据进行编码。因此,如果按照预设时间间隔对所述点云数据进行划分,可以得到两个层级的数据,即第一层级为序列级数据,以及第二层级数据为帧级数据。
通过这种实施方式,可以根据不同时间间隔内采集到的点云数据进行编码,提高了编码效率,以及有助于解码后随机访问不同时间间隔的点云数据。
在一些实施例中,每个所述第二层级数据中可以包括一个或多个第三层级数据,所述第一层级数据包括序列级数据,所述第二层级数据包括帧级数据,所述第三层级数据包括采集设备级数据或数据包级数据。在一个实施例中,所述帧级数据是在固定时间段获取到的点云数据,所述在固定时间段获取到的点云数据可以通过不同位置的多台采集设备采集得到的。因此,如果按照点云数据的获取位置对所述码流数据进行层级划分可以得到,所述第一层级数据包括序列级数据,所述第二层级数据包括帧级数据,所述第三层级数据包括采集设备级数据。
通过这种实施方式,可以根据在不同时间间隔内、不同采集设备采集的点云数据进行编码,提高了编码效率,有助于随机访问不同时间间隔内、不同采集设备采集的点云数据。
在一个实施例中,所述第三层级数据包括采集设备级数据,每个所述第三层级数据包括一个或多个第四层级数据,所述第四层级数据包括数据包级数据。在一些实施例中,当获取到的所述点云数据的数据量非常大时,所述帧级数据中对应的各采集设备采集的点云数据(即采集设备级数据)可以包括数据包级数据,所述数据包级数据包括若干不同的点云数据包。此时,每个所述第三层级数据包括一个或多个第四层级数据,所述第四层级数据包括数据包级数据。即所述第一层级数据可以包括序列级数据,所述第二层级数据包括帧级数据,所述第三层级数据包括采集设备级数据,所述第四层级数据包括数据包级数据。
通过这种实施方式,可以在采集设备级的数据量较大的情况下对采集设备级数据进行划分,得到一个或多个数据包级数据,提高了编码效率,有助于提高在数据量较大的情况下解码后对点云数据访问的灵活性。
在一个实施例中,所述多个第二层级数据的码字分别为目标数值集合中的其中一个数值。在一个实施例中,所述第二层级数据包括帧级数据;所述目标数值集合中的不同数值用于指示帧的不同类型。在某些实施例中,所述帧的类型包括帧内编码帧或帧间编码帧,例如,目标数值集合中数值2~7对应表示不同的帧类型。
在一个实施例中,所述第一层级数据包括序列级数据,所述第二层级数据包括采集设备级数据。在一个实施例中,如果根据采集所述点云数据的设备对所述码流数据进行划分,则可以将所述码流数据划分为序列级数据和采集设备级数据。
通过这种实施方式,可以根据不同采集设备采集的点云数据进行编码,提高了编码效率,有助于解码后随机访问不同采集设备采集的点云数据。
在一个实施例中,所述第二层级数据包括多个第三层级数据,所述第三层级数据包括帧级数据。在一个实施例中,每个采集设备采集点云数据的时间不相同,如果按照每个点云设备采集点云数据的时间对所述码流数据进行划分,则可以划分得到所述第一层级数据包括序列级数据,所述第二层级数据包括采集设备级数据,所述第三层级数据包括帧级数据。
通过这种实施方式,可以根据不同采集设备在不同时间采集的点云数据进行编码,提高了编码效率,有助于解码后随机访问不同采集设备在不同时间采集的点云数据。
在一个实施例中,所述多个第二层级数据的码字分别为目标数值集合中的其中一个数值。在一个实施例中,所述第二层级数据包括采集设备级数据;所述目标数值集合中的不同数值用于指示数据来自不同的采集设备。例如,假设目标数值集合中数值3~31对应表示的采集设备的编号为0~28,如果当前码字为数值3,则可以确定所述点云数据来自采集设备0。
在一个实施例中,所述数据编码设备在获取到码流数据之后,可以确定所述码流数据中是否存在伪起始码,如果确定存在,则可以对所述码流数据进行去伪起始码操作。
在一个实施例中,所述数据编码设备在对所述码流数据进行去伪起始码操作时,可以在所述码流数据除起始码以外的数据中插入预设去伪数据,以使插入预设去伪数据后的码流数据与所述起始码不相同。在某些实施例中,所述预设去伪数据包括整字节数据或非整字节数据。
在一个实施例中,所述预设去伪数据可以为整字节数据,具体可举例说明,假设预设去伪数据为一个0x03字节,所述起始码为码流数据中从字节对齐处开始的23个连续的0加1个1,总共24个二进制位,即0x000001。如果在码流数据中除了起始码以外的数据中出现不是起始码但从字节对齐处开始出现了0x000001的数据,则可以在0x0000后插入一个字节0x03,以使插入0x03后的码流数据0x000003与所述起始码0x000001不相同,避免在码流数据中出现与起始码0x000001相同数据。
在一个实施例中,所述预设去伪数据可以为非整字节数据,所述数据编码设备可以在所述码流数据除起始码以外的数据中插入预设去伪数据之后的码流数据的结尾添加指定数值,以进行整字节对齐,以使插入预设去伪数据和指定数值后的码流数据与所述起始码不相同。
具体可举例说明,假设预设去伪数据为两比特数10,所述起始码为码流数据中从字节对齐处开始的23个连续的0加1个1,总共24个二进制位,即0x000001。如果在码流数据中除了起始码以外的数据中出现不是起始码但从字节对齐处开始出现了0x000001的数据,则可以在0x0000后插入10,并在码流数据结尾添加指定数值00,以使插入10和指定数值00后的码流数据0x001000与所述起始码0x000001不相同,避免在码流数据中出现与起始码0x000001相同数据。
通过这种实施方式,可以确保码流数据中除了起始码本身,其它码流数据不会出现与起始码一致的数据串,避免误判起始码。
在一个实施例中,当所述码流数据中数据包级数据的长度小于预设长度时,所述数据编码设备可以在所述码流数据的数据包级数据的结尾添加预设数值,以使所述码流数据中所述数据包级数据的长度等于所述预设长度。例如,假设数据包级数据的预设长度为32bit,如果所述码流数据中数据包级数据的长度为30bit,则可以在数据包机数据的结尾添加2bit的0或1。
本发明实施例中,数据编码设备可以获取待处理的点云数据,确定所述点云数据的不同层级,并对每一层级数据添加标识信息,以及根据所述点云数据的不同层级对所述点云数据进行编码得到码流数据。通过这种实施方式,可以提高编码效率,有助于解码后随机访问不同层级的点云数据。
请参见图5,图5是本发明实施例提供的一种数据解码方法的流程示意图,所述方法可以应用于数据解码设备,其中,所述数据解码设备的具体解释如前所述。具体地,本发明实施例的所述方法包括如下步骤。
S501:接收码流数据。
本发明实施例中,数据解码设备可以接收码流数据。
在一个实施例中,所述码流数据包括多个第一层级数据,每个所述第一层级数据中包括多个第二层级数据;在一些实施例中,所述码流数据还包括用于标识每一层级数据的标识信息,所述标识信息包括起始码和用于标识所述层级数据的所属层级的码字。在某些实施例中,所述标识信息位于所述层级数据的头信息内。在某些实施例中,用于标识不同层级数据的起始码均相同。在某些实施例中,所述起始码为二进制数据,所述码字为二进制数据。在某些实施例中,用于标识不同层级数据的码字不同。
S502:对所述码流数据进行解码,得到与所述码流数据对应的点云数据,其中,所述码流数据包括多个第一层级数据,每个所述第一层级数据中包括多个第二层级数据;所述码流数据还包括用于标识每一层级数据的标识信息,所述标识信息包括起始码和用于标识所述层级数据的所属层级的码字。
本发明实施例中,数据解码设备可以对所述码流数据进行解码,得到与所述码流数据对应的点云数据。
在一个实施例中,所述数据解码设备在对所述码流数据进行解码之前,可以检测所述码流数据是否进行了去伪起始码操作,如果检测结果为是,则可以对所述码流数据进行去伪起始码的逆操作。在一个实施例中,所述数据解码设备当检测到在所述码流数据中除起始码以外的数据中包括预设去伪数据时,可以确定所述码流数据进行了去伪起始码操作。
在一个实施例中,所述数据解码设备对所述码流数据进行去伪起始码的逆操作时,可以获取在所述码流数据中除起始码以外的数据,删除所述除起始码以外的数据中的预设去伪数据。在某些实施例中,所述预设去伪数据包括整字节数据或非整字节数据。
在一个实施例中,所述预设去伪数据可以为整字节数据,具体可举例说明,假设所述起始码为码流数据中从字节对齐处开始的23个连续的0加1个1,总共24个二进制位,即0x000001;假设预设二进制数据为一个0x03字节,如果所述码流数据中出现0x000003,则可以对所述码流数据进行去伪起始码的逆操作删除所述码流数据中的预设二进制数据0x03。
在一个实施例中,所述预设去伪数据可以为非整字节数据,所述数据解码设备可以获取在所述码流数据中除起始码以外的数据,并删除所述除起始码以外的数据中的预设去伪数据和指定数值。具体可举例说明,假设所述起始码为码流数据中从字节对齐处开始的23个连续的0加1个1,总共24个二进制位,即0x000001;假设预设二进制数据为两比特数10,指定数值为00,如果所述码流数据中出现0x001000,则可以对所述码流数据进行去伪起始码的逆操作删除所述码流数据中的两比特数的预设二进制数据10和码流数据结尾的指定数值00。
在一个实施例中,所述码字包括目标数值集合中的其中一个数值;所述数据解码设备在根据解码得到的码字,确定与所述码字对应的点云数据时,可以根据所述码字的目标数值集合中的其中一个数值,确定所述层级数据的所属层级的类型,并确定与所述层级数据的所属层级的类型对应的点云数据。具体实施例如前所述,此处不再赘述。
在一些实施例中,所述数据解码设备在确定与所述码字对应的点云数据之后,可以访问与所述码字对应的层级数据的点云数据。
在一个实施例中,所述数据解码设备在确定与所述码字对应的点云数据之后,可以根据对所述码流数据解码得到的标识信息,随机访问所述码流数据中的其中一个层级的层级数据。
例如,假设对码流数据进行解码得到的标识信息中的码字为8,如果码字8~31用于表示点云数据为采集设备级数据,所述码字与采集设备的编号的对应关系为:采集设备的编号为码字与8的差值,则可以确定所述采集设备的编号为0。
在一个实施例中,所述码流数据包括多个第一层级数据,每个所述第一层级数据中包括多个第二层级数据。
在一些实施例中,所述第一层级数据包括序列级数据,所述第二层级数据包括帧级数据。在一个实施例中,所述序列级数据包括起始码和码字,所述点云数据可以根据预设时间间隔采集得到,将在预设时间间隔里获取到的点云数据为帧级数据进行编码。因此,如果按照预设时间间隔对所述点云数据进行划分,可以得到两个层级的数据,即第一层级为序列级数据,以及第二层级数据为帧级数据。
通过这种实施方式,可以解码得到不同时间间隔内采集到的点云数据,有助于随机访问不同时间间隔的点云数据。
在一些实施例中,每个所述第二层级数据中可以包括一个或多个第三层级数据,所述第一层级数据包括序列级数据,所述第二层级数据包括帧级数据,所述第三层级数据包括采集设备级数据或数据包级数据。在一个实施例中,所述帧级数据是在固定时间段获取到的点云数据,所述在固定时间段获取到的点云数据可以通过不同位置的多台采集设备采集得到的。因此,如果按照点云数据的获取位置对所述码流数据进行层级划分可以得到,所述第一层级数据包括序列级数据,所述第二层级数据包括帧级数据,所述第三层级数据包括采集设备级数据。
通过这种实施方式,可以解码得到在不同时间间隔内、不同采集设备采集的点云数据,有助于随机访问不同时间间隔、不同采集设备采集的点云数据。
在一个实施例中,所述第三层级数据包括采集设备级数据,每个所述第三层级数据包括一个或多个第四层级数据,所述第四层级数据包括数据包级数据。在一些实施例中,当获取到的所述点云数据的数据量非常大时,所述帧级数据中对应的各采集设备采集的点云数据(即采集设备级数据)可以包括数据包级数据,所述数据包级数据包括若干不同的点云数据包。此时,每个所述第三层级数据包括一个或多个第四层级数据,所述第四层级数据包括数据包级数据。即所述第一层级数据可以包括序列级数据,所述第二层级数据包括帧级数据,所述第三层级数据包括采集设备级数据,所述第四层级数据包括数据包级数据。
通过这种实施方式,可以提高在采集设备级的数据量较大的情况下访问点云数据的灵活性。
在一个实施例中,所述多个第二层级数据的码字分别为目标数值集合中的其中一个数值。在一个实施例中,所述第二层级数据包括帧级数据;所述目标数值集合中的不同数值用于指示帧的不同类型。在某些实施例中,所述帧的类型包括帧内编码帧或帧间编码帧,例如,目标数值集合中数值2~7对应表示不同的帧类型。
在一个实施例中,所述第一层级数据包括序列级数据,所述第二层级数据包括采集设备级数据。在一个实施例中,如果根据采集所述点云数据的设备对所述码流数据进行划分,则可以将所述码流数据划分为序列级数据和采集设备级数据。
通过这种实施方式,可以解码得到不同采集设备采集的点云数据,有助于随机访问不同采集设备采集的点云数据。
在一个实施例中,所述第二层级数据包括多个第三层级数据,所述第三层级数据包括帧级数据。在一个实施例中,每个采集设备采集点云数据的时间不相同,如果按照每个点云设备采集点云数据的时间对所述码流数据进行划分,则可以划分得到所述第一层级数据包括序列级数据,所述第二层级数据包括采集设备级数据,所述第三层级数据包括帧级数据。
通过这种实施方式,可以解码得到不同采集设备在不同时间采集的点云数据,有助于随机访问不同采集设备在不同时间采集的点云数据。
本发明实施例中,数据解码设备可以对接收到的码流数据进行解码,得到与所述码流数据对应的包括不同层级数据和标识信息的点云数据。通过这种实施方式,可以实现根据标识信息随机访问所述码流数据中不同层级的数据,提高了数据访问的灵活性。
请参见图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中存储的程序指令,用于执行如下步骤:
获取待处理的点云数据;
对所述点云数据进行编码得到码流数据;
其中,所述码流数据包括一个或多个第一层级数据,每个所述第一层级数据中包括一个或多个第二层级数据;
所述码流数据还包括用于标识每一层级数据的标识信息,所述标识信息包括起始码和用于标识所述层级数据的所属层级的码字。
进一步地,所述第一层级数据包括序列级数据,所述第二层级数据包括帧级数据。
进一步地,每个所述第二层级数据中包括一个或多个第三层级数据,所述第三层级数据包括采集设备级数据或数据包级数据。
进一步地,所述第三层级数据包括采集设备级数据;
每个所述第三层级数据包括一个或多个第四层级数据,所述第四层级数据包括数据包级数据。
进一步地,所述第一层级数据包括序列级数据,所述第二层级数据包括采集设备级数据。
进一步地,所述第二层级数据包括多个第三层级数据,所述第三层级数据包括帧级数据。
进一步地,所述标识信息位于所述层级数据的头信息内。
进一步地,用于标识不同层级数据的起始码均相同。
进一步地,用于标识不同层级数据的码字不同。
进一步地,所述多个第二层级数据的码字分别为目标数值集合中的其中一个数值。
进一步地,所述第二层级数据包括采集设备级数据;
所述目标数值集合中的不同数值用于指示数据来自不同的采集设备。
进一步地,所述第二层级数据包括帧级数据;
所述目标数值集合中的不同数值用于指示帧的不同类型。
进一步地,所述帧的类型包括帧内编码帧或帧间编码帧。
进一步地,所述起始码为二进制数据,所述码字为二进制数据。
进一步地,所述处理器602还用于:
确定所述码流数据中是否存在伪起始码;
如果存在,则对所述码流数据进行去伪起始码操作。
进一步地,所述处理器602对所述码流数据进行去伪起始码操作时,具体用于:
在所述码流数据除起始码以外的数据中插入预设去伪数据,以使插入预设去伪数据后的码流数据与所述起始码不相同。
进一步地,所述预设去伪数据包括整字节数据或非整字节数据。
进一步地,所述预设去伪数据包括非整字节数据,所述处理器602还用于:
在插入预设去伪数据的码流数据的结尾添加指定数值,以进行整字节对齐。
进一步地,所述处理器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中存储的程序指令,用于执行如下步骤:
接收码流数据;
对所述码流数据进行解码,得到与所述码流数据对应的点云数据;
其中,所述码流数据包括多个第一层级数据,每个所述第一层级数据中包括多个第二层级数据;
所述码流数据还包括用于标识每一层级数据的标识信息,所述标识信息包括起始码和用于标识所述层级数据的所属层级的码字。
进一步地,所述处理器702对所述码流数据进行解码之前,还用于:
检测所述码流数据是否进行了去伪起始码操作;
如果检测结果为是,则对所述码流数据进行去伪起始码的逆操作。
进一步地,所述处理器702检测所述码流数据是否进行了去伪起始码操作时,具体用于:
当检测到在所述码流数据中除起始码以外的数据中包括预设去伪数据时,确定所述码流数据进行了去伪起始码操作。
进一步地,所述处理器702对所述码流数据进行去伪起始码的逆操作时,具体用于:
获取在所述码流数据中除起始码以外的数据;
删除所述除起始码以外的数据中的预设去伪数据。
进一步地,所述预设去伪数据包括整字节数据或非整字节数据。
进一步地,所述预设去伪数据包括非整字节数据;所述处理器702对所述码流数据进行去伪起始码的逆操作时,具体用于:
获取在所述码流数据中除起始码以外的数据;
删除所述除起始码以外的数据中的预设去伪数据和指定数值。
进一步地,所述码字包括目标数值集合中的其中一个数值;所述处理器702根据解码得到的码字,确定与所述码字对应的点云数据时,具体用于:
根据所述码字的目标数值集合中的其中一个数值,确定所述层级数据的所属层级的类型;
确定与所述层级数据的所属层级的类型对应的点云数据。
进一步地,所述处理器702确定与所述码字对应的点云数据之后,还用于:
访问与所述码字对应的层级数据的点云数据。
进一步地,每个所述第二层级数据中包括一个或多个第三层级数据,所述第三层级数据包括采集设备级数据或数据包级数据。
进一步地,所述第三层级数据包括采集设备级数据;
每个所述第三层级数据包括一个或多个第四层级数据,所述第四层级数据包括数据包级数据。
进一步地,所述第一层级数据包括序列级数据,所述第二层级数据包括采集设备级数据。
进一步地,所述第二层级数据包括一个或多个第三层级数据;所述第三层级数据包括帧级数据。
进一步地,所述标识信息位于所述层级数据的头信息内。
进一步地,用于标识不同层级数据的起始码均相同。
进一步地,用于标识不同层级数据的码字不同。
进一步地,所述多个第二层级数据的码字分别为目标数值集合中的其中一个数值。
进一步地,所述第二层级数据包括采集设备级数据;
所述目标数值集合中的不同数值用于指示数据来自不同的采集设备。
进一步地,所述第二层级数据包括帧级数据;
所述目标数值集合中的不同数值用于指示帧的不同类型。
进一步地,所述帧的类型包括帧内编码帧或帧间编码帧。
进一步地,根据对所述码流数据解码得到的标识信息,随机访问所述码流数据中的其中一个层级的层级数据。
进一步地,所述处理器702随机访问所述码流数据中的其中一个层级的层级数据时,具体用于:
逐一查找所述码流数据中的起始码,当确认所述起始码后的所述码字指示目标层级数据时,获取所述码字后的层级数据。
本发明实施例中,数据解码设备可以对接收到的码流数据进行解码,得到与所述码流数据对应的包括不同层级数据和标识信息的点云数据。通过这种实施方式,可以实现根据标识信息随机访问所述码流数据中不同层级的数据,提高了数据访问的灵活性。
在本发明的实施例中还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例图4中描述的数据编码方法方式,或图5中描述的数据解码方法方式,也可实现图6所述本发明所对应实施例的数据编码设备,或图7所述本发明所对应实施例的数据解码设备,在此不再赘述。
所述计算机可读存储介质可以是前述任一项实施例所述的设备的内部存储单元,例如设备的硬盘或内存。所述计算机可读存储介质也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述设备所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明部分实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (83)
1.一种数据编码方法,其特征在于,包括:
获取待处理的点云数据;
对所述点云数据进行编码得到码流数据;
其中,所述码流数据包括一个或多个第一层级数据,每个所述第一层级数据中包括一个或多个第二层级数据;
所述码流数据还包括用于标识每一层级数据的标识信息,所述标识信息包括起始码和用于标识所述层级数据的所属层级的码字。
2.根据权利要求1所述的方法,其特征在于,
所述第一层级数据包括序列级数据,所述第二层级数据包括帧级数据。
3.根据权利要求2所述的方法,其特征在于,
每个所述第二层级数据中包括一个或多个第三层级数据,所述第三层级数据包括采集设备级数据或数据包级数据。
4.根据权利要求3所述的方法,其特征在于,
所述第三层级数据包括采集设备级数据;
每个所述第三层级数据包括一个或多个第四层级数据,所述第四层级数据包括数据包级数据。
5.根据权利要求1所述的方法,其特征在于,
所述第一层级数据包括序列级数据,所述第二层级数据包括采集设备级数据。
6.根据权利要求5所述的方法,其特征在于,
所述第二层级数据包括多个第三层级数据,所述第三层级数据包括帧级数据。
7.根据权利要求1所述的方法,其特征在于,
所述标识信息位于所述层级数据的头信息内。
8.根据权利要求1所述的方法,其特征在于,
用于标识不同层级数据的起始码均相同。
9.根据权利要求1所述的方法,其特征在于,
用于标识不同层级数据的码字不同。
10.根据权利要求1所述的方法,其特征在于,
所述多个第二层级数据的码字分别为目标数值集合中的其中一个数值。
11.根据权利要求10所述的方法,其特征在于,
所述第二层级数据包括采集设备级数据;
所述目标数值集合中的不同数值用于指示数据来自不同的采集设备。
12.根据权利要求10所述的方法,其特征在于,
所述第二层级数据包括帧级数据;
所述目标数值集合中的不同数值用于指示帧的不同类型。
13.根据权利要求12所述的方法,其特征在于,
所述帧的类型包括帧内编码帧或帧间编码帧。
14.根据权利要求1所述的方法,其特征在于,
所述起始码为二进制数据,所述码字为二进制数据。
15.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述码流数据中是否存在伪起始码;
如果存在,则对所述码流数据进行去伪起始码操作。
16.根据权利要求15所述的方法,其特征在于,所述对所述码流数据进行去伪起始码操作,包括:
在所述码流数据除起始码以外的数据中插入预设去伪数据,以使插入预设去伪数据后的码流数据与所述起始码不相同。
17.根据权利要求16所述的方法,其特征在于,
所述预设去伪数据包括整字节数据或非整字节数据。
18.根据权利要求16所述的方法,其特征在于,所述预设去伪数据包括非整字节数据,所述方法还包括:
在插入预设去伪数据的码流数据的结尾添加指定数值,以进行整字节对齐。
19.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述码流数据中数据包级数据的长度小于预设长度时,在所述码流数据的数据包级数据的结尾添加预设数值,以使所述码流数据中所述数据包级数据的长度等于所述预设长度。
20.一种数据解码方法,其特征在于,包括:
接收码流数据;
对所述码流数据进行解码,得到与所述码流数据对应的点云数据;
其中,所述码流数据包括多个第一层级数据,每个所述第一层级数据中包括多个第二层级数据;
所述码流数据还包括用于标识每一层级数据的标识信息,所述标识信息包括起始码和用于标识所述层级数据的所属层级的码字。
21.根据权利要求20所述的方法,其特征在于,所述对所述码流数据进行解码之前,还包括:
检测所述码流数据是否进行了去伪起始码操作;
如果检测结果为是,则对所述码流数据进行去伪起始码的逆操作。
22.根据权利要求21所述的方法,其特征在于,所述检测所述码流数据是否进行了去伪起始码操作,包括:
当检测到在所述码流数据中除起始码以外的数据中包括预设去伪数据时,确定所述码流数据进行了去伪起始码操作。
23.根据权利要求21所述的方法,其特征在于,所述对所述码流数据进行去伪起始码的逆操作,包括:
获取在所述码流数据中除起始码以外的数据;
删除所述除起始码以外的数据中的预设去伪数据。
24.根据权利要求23所述的方法,其特征在于,
所述预设去伪数据包括整字节数据或非整字节数据。
25.根据权利要求23所述的方法,其特征在于,所述预设去伪数据包括非整字节数据;所述对所述码流数据进行去伪起始码的逆操作,包括:
获取在所述码流数据中除起始码以外的数据;
删除所述除起始码以外的数据中的预设去伪数据和指定数值。
26.根据权利要求20所述的方法,其特征在于,所述码字包括目标数值集合中的其中一个数值;所述根据解码得到的码字,确定与所述码字对应的点云数据,包括:
根据所述码字的目标数值集合中的其中一个数值,确定所述层级数据的所属层级的类型;
确定与所述层级数据的所属层级的类型对应的点云数据。
27.根据权利要求26所述的方法,其特征在于,所述确定与所述码字对应的点云数据之后,还包括:
访问与所述码字对应的层级数据的点云数据。
28.根据权利要求20所述的方法,其特征在于,
所述第一层级数据包括序列级数据,所述第二层级数据包括帧级数据。
29.根据权利要求28所述的方法,其特征在于,
每个所述第二层级数据中包括一个或多个第三层级数据,所述第三层级数据包括采集设备级数据或数据包级数据。
30.根据权利要求29所述的方法,其特征在于,
所述第三层级数据包括采集设备级数据;
每个所述第三层级数据包括一个或多个第四层级数据,所述第四层级数据包括数据包级数据。
31.根据权利要求20所述的方法,其特征在于,
所述第一层级数据包括序列级数据,所述第二层级数据包括采集设备级数据。
32.根据权利要求31所述的方法,其特征在于,
所述第二层级数据包括一个或多个第三层级数据;所述第三层级数据包括帧级数据。
33.根据权利要求20所述的方法,其特征在于,
所述标识信息位于所述层级数据的头信息内。
34.根据权利要求20所述的方法,其特征在于,
用于标识不同层级数据的起始码均相同。
35.根据权利要求20所述的方法,其特征在于,
用于标识不同层级数据的码字不同。
36.根据权利要求20所述的方法,其特征在于,
所述多个第二层级数据的码字分别为目标数值集合中的其中一个数值。
37.根据权利要求36所述的方法,其特征在于,
所述第二层级数据包括采集设备级数据;
所述目标数值集合中的不同数值用于指示数据来自不同的采集设备。
38.根据权利要求36所述的方法,其特征在于,
所述第二层级数据包括帧级数据;
所述目标数值集合中的不同数值用于指示帧的不同类型。
39.根据权利要求38所述的方法,其特征在于,
所述帧的类型包括帧内编码帧或帧间编码帧。
40.根据权利要求20所述的方法,其特征在于,所述方法还包括:
根据对所述码流数据解码得到的标识信息,随机访问所述码流数据中的其中一个层级的层级数据。
41.根据权利要求40所述的方法,其特征在于,所述随机访问所述码流数据中的其中一个层级的层级数据,包括:
逐一查找所述码流数据中的起始码,当确认所述起始码后的所述码字指示目标层级数据时,获取所述码字后的层级数据。
42.一种数据编码设备,其特征在于,包括:存储器和处理器,
所述存储器,用于存储程序指令;
所述处理器,用于调用所述程序指令,当所述程序指令被执行时,用于执行以下操作:
获取待处理的点云数据;
对所述点云数据进行编码得到码流数据;
其中,所述码流数据包括一个或多个第一层级数据,每个所述第一层级数据中包括一个或多个第二层级数据;
所述码流数据还包括用于标识每一层级数据的标识信息,所述标识信息包括起始码和用于标识所述层级数据的所属层级的码字。
43.根据权利要求42所述的设备,其特征在于,
所述第一层级数据包括序列级数据,所述第二层级数据包括帧级数据。
44.根据权利要求43所述的设备,其特征在于,
每个所述第二层级数据中包括一个或多个第三层级数据,所述第三层级数据包括采集设备级数据或数据包级数据。
45.根据权利要求44所述的设备,其特征在于,
所述第三层级数据包括采集设备级数据;
每个所述第三层级数据包括一个或多个第四层级数据,所述第四层级数据包括数据包级数据。
46.根据权利要求42所述的设备,其特征在于,
所述第一层级数据包括序列级数据,所述第二层级数据包括采集设备级数据。
47.根据权利要求46所述的设备,其特征在于,
所述第二层级数据包括多个第三层级数据,所述第三层级数据包括帧级数据。
48.根据权利要求42所述的设备,其特征在于,
所述标识信息位于所述层级数据的头信息内。
49.根据权利要求42所述的设备,其特征在于,
用于标识不同层级数据的起始码均相同。
50.根据权利要求42所述的设备,其特征在于,
用于标识不同层级数据的码字不同。
51.根据权利要求42所述的设备,其特征在于,
所述多个第二层级数据的码字分别为目标数值集合中的其中一个数值。
52.根据权利要求51所述的设备,其特征在于,
所述第二层级数据包括采集设备级数据;
所述目标数值集合中的不同数值用于指示数据来自不同的采集设备。
53.根据权利要求51所述的设备,其特征在于,
所述第二层级数据包括帧级数据;
所述目标数值集合中的不同数值用于指示帧的不同类型。
54.根据权利要求53所述的设备,其特征在于,
所述帧的类型包括帧内编码帧或帧间编码帧。
55.根据权利要求42所述的设备,其特征在于,
所述起始码为二进制数据,所述码字为二进制数据。
56.根据权利要求42所述的设备,其特征在于,所述处理器还用于:
确定所述码流数据中是否存在伪起始码;
如果存在,则对所述码流数据进行去伪起始码操作。
57.根据权利要求56所述的设备,其特征在于,所述处理器对所述码流数据进行去伪起始码操作时,具体用于:
在所述码流数据除起始码以外的数据中插入预设去伪数据,以使插入预设去伪数据后的码流数据与所述起始码不相同。
58.根据权利要求57所述的设备,其特征在于,
所述预设去伪数据包括整字节数据或非整字节数据。
59.根据权利要求57所述的设备,其特征在于,所述预设去伪数据包括非整字节数据,所述处理器还用于:
在插入预设去伪数据的码流数据的结尾添加指定数值,以进行整字节对齐。
60.根据权利要求42所述的设备,其特征在于,所述处理器还用于:
当所述码流数据中数据包级数据的长度小于预设长度时,在所述码流数据的数据包级数据的结尾添加预设数值,以使所述码流数据中所述数据包级数据的长度等于所述预设长度。
61.一种数据解码设备,其特征在于,包括:存储器和处理器,
所述存储器,用于存储程序指令;
所述处理器,用于调用所述程序指令,当所述程序指令被执行时,用于执行以下操作:
接收码流数据;
对所述码流数据进行解码,得到与所述码流数据对应的点云数据;
其中,所述码流数据包括多个第一层级数据,每个所述第一层级数据中包括多个第二层级数据;
所述码流数据还包括用于标识每一层级数据的标识信息,所述标识信息包括起始码和用于标识所述层级数据的所属层级的码字。
62.根据权利要求61所述的设备,其特征在于,所述处理器对所述码流数据进行解码之前,还用于:
检测所述码流数据是否进行了去伪起始码操作;
如果检测结果为是,则对所述码流数据进行去伪起始码的逆操作。
63.根据权利要求62所述的设备,其特征在于,所述处理器检测所述码流数据是否进行了去伪起始码操作时,具体用于:
当检测到在所述码流数据中除起始码以外的数据中包括预设去伪数据时,确定所述码流数据进行了去伪起始码操作。
64.根据权利要求62所述的设备,其特征在于,所述处理器对所述码流数据进行去伪起始码的逆操作时,具体用于:
获取在所述码流数据中除起始码以外的数据;
删除所述除起始码以外的数据中的预设去伪数据。
65.根据权利要求64所述的设备,其特征在于,
所述预设去伪数据包括整字节数据或非整字节数据。
66.根据权利要求64所述的设备,其特征在于,所述预设去伪数据包括非整字节数据;所述处理器对所述码流数据进行去伪起始码的逆操作时,具体用于:
获取在所述码流数据中除起始码以外的数据;
删除所述除起始码以外的数据中的预设去伪数据和指定数值。
67.根据权利要求61所述的设备,其特征在于,所述码字包括目标数值集合中的其中一个数值;所述处理器根据解码得到的码字,确定与所述码字对应的点云数据时,具体用于:
根据所述码字的目标数值集合中的其中一个数值,确定所述层级数据的所属层级的类型;
确定与所述层级数据的所属层级的类型对应的点云数据。
68.根据权利要求67所述的设备,其特征在于,所述处理器确定与所述码字对应的点云数据之后,还用于:
访问与所述码字对应的层级数据的点云数据。
69.根据权利要求61所述的设备,其特征在于,
所述第一层级数据包括序列级数据,所述第二层级数据包括帧级数据。
70.根据权利要求69所述的设备,其特征在于,
每个所述第二层级数据中包括一个或多个第三层级数据,所述第三层级数据包括采集设备级数据或数据包级数据。
71.根据权利要求70所述的设备,其特征在于,
所述第三层级数据包括采集设备级数据;
每个所述第三层级数据包括一个或多个第四层级数据,所述第四层级数据包括数据包级数据。
72.根据权利要求61所述的设备,其特征在于,
所述第一层级数据包括序列级数据,所述第二层级数据包括采集设备级数据。
73.根据权利要求72所述的设备,其特征在于,
所述第二层级数据包括一个或多个第三层级数据;所述第三层级数据包括帧级数据。
74.根据权利要求61所述的设备,其特征在于,
所述标识信息位于所述层级数据的头信息内。
75.根据权利要求61所述的设备,其特征在于,
用于标识不同层级数据的起始码均相同。
76.根据权利要求61所述的设备,其特征在于,
用于标识不同层级数据的码字不同。
77.根据权利要求61所述的设备,其特征在于,
所述多个第二层级数据的码字分别为目标数值集合中的其中一个数值。
78.根据权利要求77所述的设备,其特征在于,
所述第二层级数据包括采集设备级数据;
所述目标数值集合中的不同数值用于指示数据来自不同的采集设备。
79.根据权利要求77所述的设备,其特征在于,
所述第二层级数据包括帧级数据;
所述目标数值集合中的不同数值用于指示帧的不同类型。
80.根据权利要求79所述的设备,其特征在于,
所述帧的类型包括帧内编码帧或帧间编码帧。
81.根据权利要求61所述的设备,其特征在于,所述处理器还用于:
根据对所述码流数据解码得到的标识信息,随机访问所述码流数据中的其中一个层级的层级数据。
82.根据权利要求81所述的设备,其特征在于,所述处理器随机访问所述码流数据中的其中一个层级的层级数据时,具体用于:
逐一查找所述码流数据中的起始码,当确认所述起始码后的所述码字指示目标层级数据时,获取所述码字后的层级数据。
83.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至41任一项所述方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2019/085152 WO2020220249A1 (zh) | 2019-04-30 | 2019-04-30 | 一种数据编码、数据解码方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111684804A true CN111684804A (zh) | 2020-09-18 |
CN111684804B CN111684804B (zh) | 2022-05-13 |
Family
ID=72433223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980008420.5A Active CN111684804B (zh) | 2019-04-30 | 2019-04-30 | 一种数据编码、数据解码方法、设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111684804B (zh) |
WO (1) | WO2020220249A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023023969A1 (zh) * | 2021-08-25 | 2023-03-02 | 华为技术有限公司 | 一种视频传输方法、装置及电子设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1529228A (zh) * | 2003-10-16 | 2004-09-15 | 上海广电(集团)有限公司中央研究院 | 一种可随机访问数据流的组织方法及其对应的解码方法 |
CN101637028A (zh) * | 2007-02-28 | 2010-01-27 | 索尼株式会社 | 图像信息编码设备和编码方法 |
US20120128207A1 (en) * | 2010-08-11 | 2012-05-24 | Pasco Corporation | Data analysis device, data analysis method, and program |
CN102802023A (zh) * | 2012-08-29 | 2012-11-28 | 上海国茂数字技术有限公司 | 一种快速防止出现伪起始码的方法及装置 |
CN106407408A (zh) * | 2016-09-22 | 2017-02-15 | 北京数字绿土科技有限公司 | 一种海量点云数据的空间索引构建方法及装置 |
US20170347122A1 (en) * | 2016-05-28 | 2017-11-30 | Microsoft Technology Licensing, Llc | Scalable point cloud compression with transform, and corresponding decompression |
CN108009979A (zh) * | 2017-12-15 | 2018-05-08 | 湖北大学 | 基于时空数据融合的三维点云压缩存储方法及系统 |
CN108369751A (zh) * | 2015-12-14 | 2018-08-03 | 松下电器(美国)知识产权公司 | 三维数据编码方法、解码方法、编码装置、解码装置 |
CN109076247A (zh) * | 2016-02-09 | 2018-12-21 | 弗劳恩霍夫应用研究促进协会 | 允许图片/视频数据流的高效的可缩减性或高效的随机访问的技术 |
CN109478338A (zh) * | 2016-07-19 | 2019-03-15 | 松下电器(美国)知识产权公司 | 三维数据制作方法、发送方法、制作装置、发送装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101257624B (zh) * | 2007-02-27 | 2011-08-24 | 华为技术有限公司 | 实现随机访问的方法及解码器 |
US11297346B2 (en) * | 2016-05-28 | 2022-04-05 | Microsoft Technology Licensing, Llc | Motion-compensated compression of dynamic voxelized point clouds |
US10462485B2 (en) * | 2017-09-06 | 2019-10-29 | Apple Inc. | Point cloud geometry compression |
US10499054B2 (en) * | 2017-10-12 | 2019-12-03 | Mitsubishi Electric Research Laboratories, Inc. | System and method for inter-frame predictive compression for point clouds |
-
2019
- 2019-04-30 CN CN201980008420.5A patent/CN111684804B/zh active Active
- 2019-04-30 WO PCT/CN2019/085152 patent/WO2020220249A1/zh active Application Filing
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1529228A (zh) * | 2003-10-16 | 2004-09-15 | 上海广电(集团)有限公司中央研究院 | 一种可随机访问数据流的组织方法及其对应的解码方法 |
CN101637028A (zh) * | 2007-02-28 | 2010-01-27 | 索尼株式会社 | 图像信息编码设备和编码方法 |
US20120128207A1 (en) * | 2010-08-11 | 2012-05-24 | Pasco Corporation | Data analysis device, data analysis method, and program |
CN102802023A (zh) * | 2012-08-29 | 2012-11-28 | 上海国茂数字技术有限公司 | 一种快速防止出现伪起始码的方法及装置 |
CN108369751A (zh) * | 2015-12-14 | 2018-08-03 | 松下电器(美国)知识产权公司 | 三维数据编码方法、解码方法、编码装置、解码装置 |
CN109076247A (zh) * | 2016-02-09 | 2018-12-21 | 弗劳恩霍夫应用研究促进协会 | 允许图片/视频数据流的高效的可缩减性或高效的随机访问的技术 |
US20170347122A1 (en) * | 2016-05-28 | 2017-11-30 | Microsoft Technology Licensing, Llc | Scalable point cloud compression with transform, and corresponding decompression |
CN109478338A (zh) * | 2016-07-19 | 2019-03-15 | 松下电器(美国)知识产权公司 | 三维数据制作方法、发送方法、制作装置、发送装置 |
CN106407408A (zh) * | 2016-09-22 | 2017-02-15 | 北京数字绿土科技有限公司 | 一种海量点云数据的空间索引构建方法及装置 |
CN108009979A (zh) * | 2017-12-15 | 2018-05-08 | 湖北大学 | 基于时空数据融合的三维点云压缩存储方法及系统 |
Non-Patent Citations (1)
Title |
---|
马柏林: "激光点云数据索引和压缩方法研究", 《中国优秀硕士论文全文数据库(电子期刊)》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023023969A1 (zh) * | 2021-08-25 | 2023-03-02 | 华为技术有限公司 | 一种视频传输方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111684804B (zh) | 2022-05-13 |
WO2020220249A1 (zh) | 2020-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111699697B (zh) | 一种用于点云处理、解码的方法、设备及存储介质 | |
WO2020248187A1 (zh) | 一种点云编码方法、点云解码方法及相关设备 | |
EP3514969B1 (en) | Methods and devices using direct coding in point cloud compression | |
US9532056B2 (en) | Method for adaptive entropy coding of tree structures | |
KR101678223B1 (ko) | 멀티미디어 서명 코딩 및 디코딩 | |
CN112385238B (zh) | 一种数据编码、数据解码方法、设备及存储介质 | |
CN112470469B (zh) | 一种用于点云编码、解码的方法和设备 | |
US7511639B2 (en) | Data compression for communication between two or more components in a system | |
CN112352431B (zh) | 一种数据编码、解码方法、设备及存储介质 | |
CN112449754A (zh) | 一种数据编码、数据解码方法、设备及存储介质 | |
US11258458B2 (en) | Methods and devices for lossy coding of point cloud occupancy | |
KR101365989B1 (ko) | 트리 구조를 기반으로 한 엔트로피 부호화 및 복호화 장치및 방법 | |
CN113632492A (zh) | 一种用于点云处理、解码的方法、设备及存储介质 | |
CN111684804B (zh) | 一种数据编码、数据解码方法、设备及存储介质 | |
US7786903B2 (en) | Combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems | |
CN114244907B (zh) | 雷达数据的压缩方法和装置 | |
CN113312325B (zh) | 轨迹数据传输方法、装置、设备及存储介质 | |
US20220005229A1 (en) | Point cloud attribute encoding method and device, and point cloud attribute decoding method and devcie | |
CN113678460B (zh) | 一种数据编码、数据解码方法、设备及存储介质 | |
KR20230122095A (ko) | 스핀 센서 헤드에 의해 캐치된 포인트 클라우드 지오메트리데이터를 엔트로피 부호화/복호화하는 방법 및 장치 | |
CN113099269B (zh) | 串匹配预测方法、编码和解码方法及相关设备、装置 | |
CN116208171A (zh) | 数据压缩和解压缩方法、装置、电子设备及存储介质 | |
CN117272989B (zh) | 基于字符编码压缩的屏蔽词识别方法、装置、设备及介质 | |
US11818191B1 (en) | Stateless lossless compression | |
CN111342844B (zh) | 一种基于lzw编码与改进游程编码的雷达数据无损压缩及解压方法 |
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 |