CN117291789B - 点云数据存储方法、装置、设备及可读存储介质 - Google Patents

点云数据存储方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN117291789B
CN117291789B CN202311589590.1A CN202311589590A CN117291789B CN 117291789 B CN117291789 B CN 117291789B CN 202311589590 A CN202311589590 A CN 202311589590A CN 117291789 B CN117291789 B CN 117291789B
Authority
CN
China
Prior art keywords
point cloud
cache
characteristic value
cache address
address
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
CN202311589590.1A
Other languages
English (en)
Other versions
CN117291789A (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.)
Beijing Chaoxing Future Technology Co ltd
Original Assignee
Beijing Chaoxing Future 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 Beijing Chaoxing Future Technology Co ltd filed Critical Beijing Chaoxing Future Technology Co ltd
Priority to CN202311589590.1A priority Critical patent/CN117291789B/zh
Publication of CN117291789A publication Critical patent/CN117291789A/zh
Application granted granted Critical
Publication of CN117291789B publication Critical patent/CN117291789B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请实施例中提供了一种点云数据存储方法、装置、设备及可读存储介质,涉及数据处理技术领域,方法包括:获取第一点云数据;通过第一标号对N进行求模,得到目标值;根据目标值,确定M个第一缓存地址;在M个第一缓存地址中存在第二缓存地址的情况下,对第一点云特征值和第二点云特征值进行运算,得到第三点云特征值;将第三点云特征值存储至第二缓存地址。根据本申请实施例,提高了体素化过程中的运算效率,以及降低了内存访问功耗开销。

Description

点云数据存储方法、装置、设备及可读存储介质
技术领域
本申请涉及数据处理技术领域,具体涉及一种点云数据存储方法、装置、设备及可读存储介质。
背景技术
体素(Voxel)是三维空间中的一个立方体单元,类似于二维空间中的像素。体素是将三维空间离散化的基本单位,可以将其看作是一个三维网格的一个小立方体。体素化以后的体素数据可以高效的利用空间卷积,进而提取多尺度、多层次的局部特征信息。要得到体素数据,需要对激光雷达采集到的原始点云数据进行体素化过程。所谓的体素化过程,也就是将落在同一个体素中的多个点云的特征进行合并运算,包括但不限于取最大值、最小值、均值等等。
在相关技术的体素化过程中,每次都需要去DDR中读取之前写的体素特征,然后在对体素特征和落在该体素的点云特征进行运算,得到合并之后的体素特征,再将合并之后的体素特征重新写回DDR。然而,频繁的访问DDR导致点云体素化过程的运算效率低,以及内存访问功耗开销过高。
发明内容
有鉴于此,本申请实施例提供一种点云数据存储方法、装置、设备及可读存储介质,至少部分解决相关技术中存在的问题。
第一方面,本申请实施例提供了一种点云数据存储方法,应用于电子设备,电子设备包括M个缓存组,M个缓存组中每一缓存组均包括N个缓存地址,M和N均为大于等于1的整数,方法包括:
获取第一点云数据,第一点云数据包括第一点云坐标和第一点云特征值,第一点云数据采用流数据的传输方式;
通过第一标号对N进行求模,得到目标值,第一标号为压缩编码地址对应的标号,压缩编码地址由第一点云坐标进行压缩编码得到;
根据目标值,确定M个第一缓存地址,M个第一缓存地址中每一第一缓存地址的第二标号为目标值;
在M个第一缓存地址中存在第二缓存地址的情况下,对第一点云特征值和第二点云特征值进行运算,得到第三点云特征值,第二缓存地址中存储的第三标号与第一标号相同,第二点云特征值为第二缓存地址中存储的点云特征值;
将第三点云特征值存储至第二缓存地址。
根据本申请实施例的一种具体实现方式,M个缓存组中每一缓存组还包括与N个缓存地址中每一缓存地址对应的有效位和一致位;
在M个第一缓存地址中存在第二缓存地址的情况下,对第一点云特征值和第二点云特征值进行运算,得到第三点云特征值,包括:
在M个第一缓存地址中存在第二缓存地址,且第二缓存地址对应的有效位为第一预设值的情况下,对第一点云特征值和第二点云特征值进行运算,得到第三点云特征值,并将第二缓存地址对应的一致位和第二缓存地址对应的有效位均设置为第一预设值;
其中,第二缓存地址对应的有效位为第一预设值用于指示第二点云特征值为有效数据;第二缓存地址对应的一致位为第一预设值,用于指示第二点云特征值与电子设备中目标存储器内存储的第四点云特征值不同。
根据本申请实施例的一种具体实现方式,第一点云数据还包括聚合标识,聚合标识用于指示第一点云数据是否为第一次聚合;
根据目标值,确定M个第一缓存地址之后,方法还包括:
在M个第一缓存地址中不存在第二缓存地址,聚合标识指示第一点云数据为第一次聚合,且存在第三缓存地址的情况下,将第一点云特征值存储至第三缓存地址,第三缓存地址为M个第一缓存地址中任一个未存储点云特征值的第一缓存地址;
或者,在M个第一缓存地址中不存在第二缓存地址,聚合标识指示第一点云数据不为第一次聚合,且存在第三缓存地址的情况下,将第一点云特征值与第五点云特征值进行运算,得到第六点云特征值,第五点云特征值为电子设备中目标存储器内与第一标号对应的点云特征值;
将第六点云特征值存储至第三缓存地址。
根据本申请实施例的一种具体实现方式,M个缓存组中每一缓存组还包括与N个缓存地址中每一缓存地址对应的有效位;第一点云数据还包括聚合标识,聚合标识用于指示第一点云数据是否为第一次聚合;
根据目标值,确定M个第一缓存地址之后,方法还包括:
在M个第一缓存地址中存在第二缓存地址,第二缓存地址对应的有效位为第二预设值,聚合标识指示第一点云数据为第一次聚合,且存在第三缓存地址的情况下,将第一点云特征值存储至第三缓存地址,第三缓存地址为M个第一缓存地址中任一个未存储点云特征值的第一缓存地址,第二缓存地址对应的有效位为第二预设值用于指示第二点云特征值为无效数据;
或者,在M个第一缓存地址中存在第二缓存地址,第二缓存地址对应的有效位为第二预设值,聚合标识指示第一点云数据不为第一次聚合,且存在第三缓存地址的情况下,将第一点云特征值与第五点云特征值进行运算,得到第六点云特征值,第五点云特征值为电子设备中目标存储器内与第一标号对应的点云特征值;
将第六点云特征值存储至第三缓存地址。
根据本申请实施例的一种具体实现方式,第一点云数据还包括聚合标识,聚合标识用于指示第一点云数据是否为第一次聚合;
根据目标值,确定M个第一缓存地址之后,方法还包括:
在M个第一缓存地址中不存在第二缓存地址,聚合标识指示第一点云数据为第一次聚合,且不存在第三缓存地址的情况下,将第一点云特征值存储至第四缓存地址,第三缓存地址为M个第一缓存地址中任一个未存储点云特征值的第一缓存地址,第四缓存地址为M个第一缓存地址中近期最少使用的第一缓存地址;
或者,在M个第一缓存地址中不存在第二缓存地址,聚合标识指示第一点云数据不为第一次聚合,且不存在第三缓存地址的情况下,将第一点云特征值与第五点云特征值进行运算,得到第六点云特征值,第五点云特征值为电子设备中目标存储器内与第一标号对应的点云特征值;
将第六点云特征值存储至第四缓存地址。
根据本申请实施例的一种具体实现方式,M个缓存组中每一缓存组还包括与N个缓存地址中每一缓存地址对应的有效位;第一点云数据还包括聚合标识,聚合标识用于指示第一点云数据是否为第一次聚合;
根据目标值,确定M个第一缓存地址之后,方法还包括:
在M个第一缓存地址中存在第二缓存地址,第二缓存地址对应的有效位为第二预设值,聚合标识指示第一点云数据为第一次聚合,且不存在第三缓存地址的情况下,将第一点云特征值存储至第四缓存地址,第三缓存地址为M个第一缓存地址中任一个未存储点云特征值的第一缓存地址,第二缓存地址对应的有效位为第二预设值用于指示第二点云特征值为无效数据,第四缓存地址为M个第一缓存地址中近期最少使用的第一缓存地址;
或者,在M个第一缓存地址中存在第二缓存地址,第二缓存地址对应的有效位为第二预设值,聚合标识指示第一点云数据不为第一次聚合,且不存在第三缓存地址的情况下,将第一点云特征值与第五点云特征值进行运算,得到第六点云特征值,第五点云特征值为电子设备中目标存储器内与第一标号对应的点云特征值;
将第六点云特征值存储至第四缓存地址。
根据本申请实施例的一种具体实现方式,第一点云数据还包括点云序号,点云标识用于表征第一点云数据在第一点云数据所属的体素中的序号;
将第一点云特征值存储至第四缓存地址,包括:
在点云序号小于等于预设序号值的情况下,将第一点云特征值存储至第四缓存地址;
将第六点云特征值存储至第四缓存地址,包括:
在点云序号小于等于预设序号值的情况下,将第六点云特征值存储至第四缓存地址。
第二方面,本申请实施例提供了一种点云数据存储装置,应用于电子设备,电子设备包括M个缓存组,M个缓存组中每一缓存组均包括N个缓存地址,M和N均为大于等于1的整数,装置包括:
获取模块,用于获取第一点云数据,第一点云数据包括第一点云坐标和第一点云特征值,第一点云数据采用流数据的传输方式;
求模模块,用于通过第一标号对N进行求模,得到目标值,第一标号为压缩编码地址对应的标号,压缩编码地址由第一点云坐标进行压缩编码得到;
确定模块,用于根据目标值,确定M个第一缓存地址,M个第一缓存地址中每一第一缓存地址的第二标号为目标值;
第一运算模块,用于在M个第一缓存地址中存在第二缓存地址的情况下,对第一点云特征值和第二点云特征值进行运算,得到第三点云特征值,第二缓存地址中存储的第三标号与第一标号相同,第二点云特征值为第二缓存地址中存储的点云特征值;
第一存储模块,用于将第三点云特征值存储至第二缓存地址。
第三方面,本申请实施例还提供了一种电子设备,该电子设备包括:
处理器;以及存储有计算机程序指令的存储器;
处理器执行计算机程序指令时实现如第一方面中任意一项的点云数据存储方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现如第一方面中任意一项点云数据存储方法。
第五方面,本申请实施例还提供了一种计算机程序产品,该计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备能够执行如第一方面任意一项提供的点云数据存储方法。
根据本申请实施例提供的点云数据存储方法、装置、设备及可读存储介质,首先获取第一点云数据,第一点云数据包括第一点云坐标和第一点云特征值;然后通过第一标号对N进行求模,得到目标值;接着根据目标值,确定M个第一缓存地址;再在M个第一缓存地址中存在第二缓存地址的情况下,对第一点云特征值和第二点云特征值进行运算,得到第三点云特征值;最后将第三点云特征值存储至第二缓存地址。也就是说,本申请实施例通过将第三点云特征值存储至第二缓存地址,进而在体素化过程中可从第二缓存地址中获取第三点云特征值,无需从DDR中获取第三点云特征值,减少了访问DDR的频率,进而提高了体素化过程中的运算效率,以及降低了内存访问功耗开销。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的点云数据存储方法的一种流程示意图;
图2为本申请实施例提供的体素特征合并架构的一种结构示意图;
图3为本申请实施例提供的确定第四缓存地址的一种原理示意图;
图4为本申请实施例提供的点云数据存储装置的一种结构示意图;
图5为本申请实施例提供的电子设备的一种结构示意图。
具体实施方式
下面结合附图对本申请实施例进行详细描述。
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本申请,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本申请的基本构想,图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践所述方面。
为了更好地理解本申请实施例提供的点云数据存储方法,下面介绍体素相对于原始点云数据的优点。
相比于原始点云数据,体素具有以下的优点:
1、体素提供了一种离散化的空间表示方法,通过将连续的三维空间划分为离散的小立方体。这种离散化的空间表示方式可以使得对空间进行分析和处理更加的方便、体素化以后的体素数据可以在内存中有序存储;
2、体素可以看做是一种规则的数据结构,每个体素格子都有固定的位置以及邻居关系,这种规则的数据结构使得对体素数据的存储、索引和访问更加高效,从而更加方便的进行空间查询与遍历,同时也有利于减少随机内存访问,增加数据运算效率。
3、体素化以后的体素数据可以高效的利用空间卷积,进而提取多尺度、多层次的局部特征信息。
4、相比于原始点云数据,体素化后的体素数据通常具有更小的存储空间。因为体素化将原始点云数据离散化为体素格子,可以通过压缩算法对体素化的体素数据进行进一步的压缩,从而减少存储空间的占用。
体素化过程涉及对原始点云数据的遍历读取,同时还需要将合并以后的体素数据写回,对于合并以后的体素数据,其数据量仍然较大,无法将其全部存放在静态随机存取存储器(Static Random-Access Memory,SRAM),合并以后的体素数据仍然存储于DDR中,并且合并后的体素数据和原始点云数据分别存储在DDR的两个不同区域,保证空间不会重叠。
经发明人研究发现,对于原始点云数据的体素化过程而言,相关技术中通常将原始点云数据统一存放在双倍数据率(Double Data Rate,DDR)中,然后依靠中央处理器(Central Processing Unit,CPU)或者专用稀疏卷积模块从DDR中读取原始点云数据,完成体素合并运算之后再重新将运算之后得到的体素特征写回DDR。
以CPU进行点云体素化为例,其通常采用软件的方式实现点云的体素化过程。基于该方式需要反复访问DDR中的点云特征值,这使得体素化成为了一个访存密集型任务,带来了大量的开销。而DDR的访问速度相对较慢,而CPU计算速度通常更快,导致了计算和存储之间的不匹配,限制了整体性能。又由于数据一致性问题,导致该过程很难通过流水线来掩盖访存延迟。
而对于专用稀疏卷积硬件模块而言,相关技术中缺少对点云体素化这一过程的优化,没有充分利用原始点云数据的局部性特点,采用合理的缓存机制。因此同样也需要对DDR进行大量访问。
综上所述,相关技术中,在体素化过程中,每次都需要去DDR中读取之前写的体素特征,然后在对体素特征和落在该体素的点云特征进行运算,得到合并之后的体素特征,再将合并之后的体素特征重新写回DDR。这样使得体素化过程成为了典型的访存密集型任务。然而,频繁的访问DDR导致点云体素化过程的运算效率低,以及内存访问功耗开销过高。
经发明人大量研究发现,对于点云数据而言,其具有很强的局部性特点,即在物理空间上相邻的点云数据,往往会存放在相近的DDR位置上。因此对于点云数据而言,存放在相邻DDR位置的两个点云数据有很大的概率落在同一个体素当中。这种局部性意味着进行体素化的过程中,可以利用相邻点云数据的信息来优化计算和存储,通过合适的缓存机制和数据结构设计,同时采用合适的地址映射寻址方式以及替换策略。此外再基于专用硬件处理进行体素化的方式。一方面可以避免反复访问DDR从而减少功耗和时间开销。另一方面可以将CPU从该过程解耦合出来。
图1示出本申请实施例提供的点云数据存储方法的一种流程示意图。
本申请实施例提供一种点云数据存储方法。本申请实施例提供的点云数据存储方法可应用于电子设备,电子设备包括M个缓存组(Cache Set),M个缓存组中每一缓存组均包括N个缓存地址,M和N均为大于等于1的整数。M和N的取值均可根据实际情况设置,在此不做限定。例如,M和N的取值均为8。又例如,M的取值为8,N的取值为4。
本申请实施例提供的点云数据存储方法的执行主体可以为电子设备和点云数据装置等。下面以点云数据存储方法的执行主体为电子设备进行说明。
如图1所示,本申请实施例提供的点云数据存储方法可包括S110至S150。
S110、获取第一点云数据,第一点云数据包括第一点云坐标和第一点云特征值,第一点云数据采用流数据的传输方式;
S120、通过第一标号对N进行求模,得到目标值,第一标号为压缩编码地址对应的标号,压缩编码地址由第一点云坐标进行压缩编码得到;
S130、根据目标值,确定M个第一缓存地址,M个第一缓存地址中每一第一缓存地址的第二标号为目标值;
S140、在M个第一缓存地址中存在第二缓存地址的情况下,对第一点云特征值和第二点云特征值进行运算,得到第三点云特征值,第二缓存地址中存储的第三标号与第一标号相同,第二点云特征值为第二缓存地址中存储的点云特征值;
S150、将第三点云特征值存储至第二缓存地址。
根据本申请实施例提供的点云数据存储方法,首先获取第一点云数据,第一点云数据包括第一点云坐标和第一点云特征值;然后通过第一标号对N进行求模,得到目标值;接着根据目标值,确定M个第一缓存地址;再在M个第一缓存地址中存在第二缓存地址的情况下,对第一点云特征值和第二点云特征值进行运算,得到第三点云特征值;最后将第三点云特征值存储至第二缓存地址。也就是说,本申请实施例通过将第三点云特征值存储至第二缓存地址,进而在体素化过程中可从第二缓存地址中获取第三点云特征值,无需从DDR中获取第三点云特征值,减少了访问DDR的频率,进而提高了体素化过程中的运算效率,以及降低了内存访问功耗开销。
下面介绍S110至S150的具体实现方式。
在S110中,第一点云坐标可为三维坐标,例如,(x,y,z)。
第一点云特征值可用于描述和表征第一点云数据中的特征和属性的数值或统计量。
获取第一点云数据可包括:
对原始点云数据进行精度量化,得到第一点云数据,原始点云数据为激光雷达采集到的点云数据。
示例性地,原始点云数据可包括原始点云坐标和反射率;对原始点云数据进行精度量化,得到第一点云数据,可包括:将64位(bit)的原始点云坐标进行压缩,得到32bit的第一点云坐标;利用原始点云坐标和反射率,计算得到第一点云特征值。
可选地,电子设备中可包括如图2所示的体素特征合并架构。图2中的体素特征合并架构可包括点云量化模块210、体素特征合并模块220和特征合并计算模块230。其中,A表示与门,B表示三态门,C表示或门,D表示选择器,E表示复用器,圆形中的“==”用于比较两个值是否相等,Dirty表示缓存组中的一致位,Valid表示缓存组中的有效位,TID表示缓存组中每一缓存地址的第二标号,点云特征值表示缓存组中每一缓存地址中存储的点云特征值,hit表示第二缓存地址中存储的第三标号与第一标号相同。需要说明的是,本申请实施例中体素特征合并模块220中可采用8路组相联的形成,图2仅示意出两路组相联。
电子设备可通过点云量化模块210对原始点云数据进行精度量化,得到第一点云数据。然后通过点云量化模块210以流数据的方式将第一点云数据传入体素特征合并模块220。电子设备可通过体素特征合并模块220对第一点云坐标进行压缩编码,得到压缩地址编码,并将该压缩地址编码作为哈希表的地址,且为该压缩地址编码分配对应的标号(ID),得到第一标号。电子设备可通过体素特征合并模块220将第一标号和第一点云特征值传输至特征合并计算模块230。
在本申请实施例中,通过流数据传输的第一点云数据的存储方式具有以下特点:在物理空间中坐标邻近的第一点云数据,在DDR中也存储于相邻的位置。这样就使得同一个体素的多个第一点云数据会连续的或者近似连续的输入到体素特征合并模块220。而对于落在同一个体素的第一点云数据而言,其经过压缩编码以后获得的第一标号也会一致。即第一标号一致的第一点云数据通常会连续的进入体素特征合并模块220,从而在缓存组中找到与该第一标识相对应的体素,而不需要去访存DDR就能做进一步的运算。
在本申请实施例中,点云数据的存储过程中首先依靠的是第一点云数据的空间局部性,即相邻的第一点云数据会连续进入体素特征合并模块220。该空间局部性进一步的体现为体素的时间局部性,即这些第一点云数据都落在同一个体素中,因此需要在很短的时间内重复的访问同一个体素。正是因为第一点云数据和体素的局部性特点,所以可以采用缓存策略,从而获得较高的缓存命中率,进而极大的降低读取DDR的次数。在不出现缓存丢失(Cache Miss)的情况下还可以用流水线的方式加速体素特征合并过程。
示例性地,可利用循环冗余校验(Cyclic Redundancy Check,CRC)编码规则对该压缩地址编码分配对应的标号。
在S120中,电子设备在获取第一点云数据之后,还可通过第一标号对N进行求模,得到目标值。
示例性地,电子设备包括8个缓存组,这8个缓存组分别为缓存组a、缓存组b、缓存组c、缓存组d、缓存组e、缓存组f、缓存组g和缓存组h。每个缓存组均包括8个缓存地址,例如,缓存组a包括缓存地址a0、缓存地址a1、缓存地址a2、缓存地址a3、缓存地址a4、缓存地址a5、缓存地址a6和缓存地址a7,缓存组b包括缓存地址b0、缓存地址b1、缓存地址b2、缓存地址b3、缓存地址b4、缓存地址b5、缓存地址b6和缓存地址b7,以此类推,缓存组h包括缓存地址h0、缓存地址h1、缓存地址h2、缓存地址h3、缓存地址h4、缓存地址h5、缓存地址h6和缓存地址h7。第一标号为4652551,N为8,则通过4652551对8求模,得到的目标值为7。
在S130中,电子设备在通过第一标号,对N进行求模,得到目标值之后,还可根据目标值,确定M个第一缓存地址。
示例性地,电子设备可通过特征合并计算模块230根据目标值,确定M个第一缓存地址。
示例性地,目标值为7,缓存地址a1的第二标号为1,缓存地址a2的第二标号为2,以此类推,缓存地址a7的第二标号为7,则确定8个第一缓存地址包括:缓存地址a7、缓存地址b7、缓存地址c7、缓存地址d7、缓存地址e7、缓存地址f7、缓存地址g7和缓存地址h7。
在S140中,电子设备在确定M个第一缓存地址之后,还可在M个第一缓存地址中存在第二缓存地址的情况下,对第一点云特征值和第二点云特征值进行运算,得到第三点云特征值。
也就是说,电子设备在M个第一缓存地址中存在第二缓存地址的情况下,从第二缓存地址中获取第二点云特征值,并将第一点云特征值和第二点云特征值进行运算,得到第三点云特征值。
第二缓存地址中存储的第三标号(Cache Tag)与第一标号相同,可认为命中;第二缓存地址中存储的第三标号与第一标号不同,可认为没有命中。
运算可包括但不限于取最大值、最小值和均值等。
示例性地,电子设备可通过体素特征合并模块220以并行的方式比较第一标号和M个第一缓存地址中每一第一缓存地址的存储的标号是否相同,若相同,则将该第一缓存地址确定为第二缓存地址,并在M个第一缓存地址中存在第二缓存地址的情况下,通过特征合并计算模块230对第一点云特征值和第二点云特征值进行运算,得到第三点云特征值。
在S150中,电子设备可在M个第一缓存地址中存在第二缓存地址的情况下,对第一点云特征值和第二点云特征值进行运算,得到第三点云特征值之后,将第三点云特征值存储至第二缓存地址。
示例性地,电子设备可通过体素特征合并模块220将第三点云特征值存储至第二缓存地址。
需要说明的是,在本申请实施例中,存储在第二缓存地址中的第三点云特征值也即体素特征。
根据本申请实施例的一种具体实现方式,M个缓存组中每一缓存组还包括与N个缓存地址中每一缓存地址对应的有效位和一致位;
在M个第一缓存地址中存在第二缓存地址的情况下,对第一点云特征值和第二点云特征值进行运算,得到第三点云特征值,包括:
在M个第一缓存地址中存在第二缓存地址,且第二缓存地址对应的有效位为第一预设值的情况下,对第一点云特征值和第二点云特征值进行运算,得到第三点云特征值,并将第二缓存地址对应的一致位和第二缓存地址对应的有效位均设置为第一预设值;
其中,第二缓存地址对应的有效位为第一预设值用于指示第二点云特征值为有效数据;第二缓存地址对应的一致位为第一预设值,用于指示第二点云特征值与电子设备中目标存储器内存储的与其对应的第四点云特征值不同。
在本实施方式中,在M个第一缓存地址中存在第二缓存地址,且第二缓存地址对应的有效位为第一预设值的情况下,才对第一点云特征值和第二点云特征值进行运算,得到第三点云特征值,确保了第三点云特征值的有效性,以及减少了对第一点云特征值和第二点云特征值的运算过程,进一步降低了内存访问功耗开销。同时,通过设置一致位,有利于快速准确地判断缓存组中存储的点云特征值与DDR中的第四点云特征值是否一致。
示例性地,有效位为Valid,一致位为Dirty。
第一预设值可根据实际情况设置,在此不做限定,例如,第一预设值可为1。也就是说,在Valid为1的情况下,说明第二点云特征值为有效数据;在Dirty值为1的情况下,说明第二点云特征值与DDR内存储的第四点云特征值不同。
示例性地,第四点云特征值可为DDR内存储的点云特征值。
示例性地,目标存储器可为DDR。
根据本申请实施例的一种具体实现方式,第一点云数据还包括聚合标识,聚合标识用于指示第一点云数据是否为第一次聚合;
根据目标值,确定M个第一缓存地址之后,方法还包括:
在M个第一缓存地址中不存在第二缓存地址,聚合标识指示第一点云数据为第一次聚合,且存在第三缓存地址的情况下,将第一点云特征值存储至第三缓存地址,第三缓存地址为M个第一缓存地址中任一个未存储点云特征值的第一缓存地址;
或者,在M个第一缓存地址中不存在第二缓存地址,聚合标识指示第一点云数据不为第一次聚合,且存在第三缓存地址的情况下,将第一点云特征值与第五点云特征值进行运算,得到第六点云特征值,第五点云特征值为电子设备中目标存储器内与第一标号对应的点云特征值;
将第六点云特征值存储至第三缓存地址。
也就是说,在M个第一缓存地址中不存在第二缓存地址,聚合标识指示第一点云数据为第一次聚合,且存在第三缓存地址的情况下,该第一点云数据是其所属体素的第一个点云数据,此时,不需要读取DDR,直接将该第一点云数据存储至第三缓存地址。
在M个第一缓存地址中不存在第二缓存地址,聚合标识指示第一点云数据不为第一次聚合,且存在第三缓存地址的情况下,才需要根据第一标号从DDR中读取第五点云特征值,并将第一点云特征值与第五点云特征值进行运算,得到第六点云特征值,最后将第六点云特征值存储至第三缓存地址。
示例性地,聚合标识可由电子设备中的点云量化模块210生成,且该聚合标识可为1bit的标识。
需要说明的是,在本申请实施例中,存储在第三缓存地址中的第一点云特征值和第六点云特征值也即体素特征。
根据本申请实施例的一种具体实现方式,M个缓存组中每一缓存组还包括与N个缓存地址中每一缓存地址对应的有效位;第一点云数据还包括聚合标识,聚合标识用于指示第一点云数据是否为第一次聚合;
根据目标值,确定M个第一缓存地址之后,方法还包括:
在M个第一缓存地址中存在第二缓存地址,第二缓存地址对应的有效位为第二预设值,聚合标识指示第一点云数据为第一次聚合,且存在第三缓存地址的情况下,将第一点云特征值存储至第三缓存地址,第三缓存地址为M个第一缓存地址中任一个未存储点云特征值的第一缓存地址,第二缓存地址对应的有效位为第二预设值用于指示第二点云特征值为无效数据;
或者,在M个第一缓存地址中存在第二缓存地址,第二缓存地址对应的有效位为第二预设值,聚合标识指示第一点云数据不为第一次聚合,且存在第三缓存地址的情况下,将第一点云特征值与第五点云特征值进行运算,得到第六点云特征值,第五点云特征值为电子设备中目标存储器内与第一标号对应的点云特征值;
将第六点云特征值存储至第三缓存地址。
第二预设值与第一预设值不同,在满足此条件的情况下,1第二预设值可根据实际情况设置,在此不做限定。
可理解的是,有效位Valid和一致位Dirty的初始值均为第二预设值。例如,第二预设值可以为0。也就是说,在Valid为0的情况下,说明第二点云特征值为无效数据;在Dirty值为0的情况下,说明第二点云特征值与DDR内存储的与其对应的第四点云特征值相同。
也就是说,在M个第一缓存地址中存在第二缓存地址,但第二缓存地址中存储的第二点云特征值为无效数据,聚合标识指示第一点云数据为第一次聚合,且存在第三缓存地址的情况下,该第一点云数据是其所属体素的第一个点云数据,此时,不需要读取DDR,直接将该第一点云数据存储至第三缓存地址。
在M个第一缓存地址中存在第二缓存地址,但第二缓存地址中存储的第二点云特征值为无效数据,聚合标识指示第一点云数据不为第一次聚合,且存在第三缓存地址的情况下,才需要根据第一标号从DDR中读取第五点云特征值,并将第一点云特征值与第五点云特征值进行运算,得到第六点云特征值,最后将第六点云特征值存储至第三缓存地址。
根据本申请实施例的一种具体实现方式,第一点云数据还包括聚合标识,聚合标识用于指示第一点云数据是否为第一次聚合;
根据目标值,确定M个第一缓存地址之后,方法还包括:
在M个第一缓存地址中不存在第二缓存地址,聚合标识指示第一点云数据为第一次聚合,且不存在第三缓存地址的情况下,将第一点云特征值存储至第四缓存地址,第三缓存地址为M个第一缓存地址中任一个未存储点云特征值的第一缓存地址,第四缓存地址为M个第一缓存地址中近期最少使用的第一缓存地址;
或者,在M个第一缓存地址中不存在第二缓存地址,聚合标识指示第一点云数据不为第一次聚合,且不存在第三缓存地址的情况下,将第一点云特征值与第五点云特征值进行运算,得到第六点云特征值,第五点云特征值为电子设备中目标存储器内与第一标号对应的点云特征值;
将第六点云特征值存储至第四缓存地址。
也就是说,该第一点云数据不属于缓存组中任一体素,且在第一标识对应的M个第一缓存地址全部被占用,也即不存在空闲位置的情况下,可将第一点云特征值或第六点云特征值存储至M个第一缓存地址中近期最少使用的第一缓存地址。
需要说明的是,在本申请实施例中,存储在第四缓存地址中的第一点云特征值或第六点云特征值也即体素特征。
对于本申请实施例的使用场景而言,以流数据进入的第一点云数据,具有空间局部性特点。即可以认为相邻的第一点云数据大概率会连续或近似连续进入体素特征合并模块220。而进入时间间隔较长的第一点云数据通常不会属于同一个体素,即当某一个体素很久不被访问的时候,我们认为后续进入的第一点云数据也不会属于该体素。基于该特点,采用近期最少使用法(Least Recently Used,LRU)替换策略便非常合适。考虑到硬件开销,本申请实施例采用“伪LRU”方法。
根据本申请实施例的一种具体实现方式,M个缓存组中每一缓存组还包括与N个缓存地址中每一缓存地址对应的有效位;第一点云数据还包括聚合标识,聚合标识用于指示第一点云数据是否为第一次聚合;
根据目标值,确定M个第一缓存地址之后,方法还包括:
在M个第一缓存地址中存在第二缓存地址,第二缓存地址对应的有效位为第二预设值,聚合标识指示第一点云数据为第一次聚合,且不存在第三缓存地址的情况下,将第一点云特征值存储至第四缓存地址,第三缓存地址为M个第一缓存地址中任一个未存储点云特征值的第一缓存地址,第二缓存地址对应的有效位为第二预设值用于指示第二点云特征值为无效数据,第四缓存地址为M个第一缓存地址中近期最少使用的第一缓存地址;
或者,在M个第一缓存地址中存在第二缓存地址,第二缓存地址对应的有效位为第二预设值,聚合标识指示第一点云数据不为第一次聚合,且不存在第三缓存地址的情况下,将第一点云特征值与第五点云特征值进行运算,得到第六点云特征值,第五点云特征值为电子设备中目标存储器内与第一标号对应的点云特征值;
将第六点云特征值存储至第四缓存地址。
相对于上述实施方式,本实施方式中还进一步考虑到
也就是说,在M个第一缓存地址中存在第二缓存地址,但第二缓存地址中存储的第二点云特征值为无效数据,聚合标识指示第一点云数据为第一次聚合,且不存在第三缓存地址的情况下,该第一点云数据是其所属体素的第一个点云数据,此时,不需要读取DDR,直接将该第一点云数据存储至第四缓存地址。
在M个第一缓存地址中存在第二缓存地址,但第二缓存地址中存储的第二点云特征值为无效数据,聚合标识指示第一点云数据不为第一次聚合,且不存在第三缓存地址的情况下,才需要根据第一标号从DDR中读取第五点云特征值,并将第一点云特征值与第五点云特征值进行运算,得到第六点云特征值,最后将第六点云特征值存储至第四缓存地址。
根据本申请实施例的一种具体实现方式,第一点云数据还包括点云序号,点云标识用于表征第一点云数据在第一点云数据所属的体素中的序号;
将第一点云特征值存储至第四缓存地址,包括:
在点云序号小于等于预设序号值的情况下,将第一点云特征值存储至第四缓存地址;
将第六点云特征值存储至第四缓存地址,包括:
在点云序号小于等于预设序号值的情况下,将第六点云特征值存储至第四缓存地址。
示例性地,一个体素可包括10个第一点云数据,则这个10个第一第一点云数据的点云序号可依次为1、2、3、4、5、6、7、8、9、10。假设预设序号值为10,在点云序号大于10,例如点云序号为11的情况下,可认为该第一点云数据不需要存储至缓存组,使用额外的1bit标记该第一点云数据,并将该第一点云数据写入DDR,在点云序号小于等于10,例如点云序号为8的情况下,需要将第一点云数据对应的第一点云特征值或第六点云特征值存储至第四缓存地址。
预设序号值可根据实际情况设置,在此不做限定。
在本申请实施例中,对于体素化过程,规定同一个体素的包含的点云不超过配置上限值,比如预设序号值为10,即一个体素最多包含10个第一点云数据。因此对于达到该情况的体素。可以直接优先踢出缓存组,写入DDR。并且该第一点云数据不需要缓存列表本身维护,点云量化模块210送入第一点云数据的时候会同步带着这是某个体素的第几个第一点云数据(即点云序号),缓存侧只需判断该值是否为10即可,如果是的话可使用额外的1bit进行标志。
可理解的是,本申请实施例提供的替换策略采用伪LRU与优先踢出达到上界相结合的替换策略。
下面结合具体的应用场景介绍本申请实施例提供的一种确定第四缓存地址的方法。
仍以N=8为例,8个缓存组分别为缓存组a、缓存组b、缓存组c、缓存组d、缓存组e、缓存组f、缓存组g和缓存组h。缓存组a的标号为000,缓存组b的标号为001,缓存组c的标号为010,缓存组d的标号为011,缓存组e的标号为100,缓存组f的标号为101,缓存组g的标号为110,缓存组h的标号为111。根据这8个缓存组中的体素特征是否被访问,将8个缓存组分为两组,第一组包括缓存组a、缓存组b、缓存组c和缓存组d,第二组包括缓存组e、缓存组f、缓存组g和缓存组h。也即,年龄位(即第一组的最高位)为0,表示该组中的缓存组最近未被访问过,年龄位(第二组的最高位)为1,表示该组中的缓存组被最近被访问过。
如图3所示,在第四缓存地址为011时,第四缓存地址的索引过程为,先索引到缓存组a、缓存组b、缓存组c和缓存组d,再索引到缓存组b和缓存组c,最后再索引到缓存组c,也即第四缓存地址即为缓存组c中与目标值对应的缓存地址。
也就是说采用二叉树的形成进行索引,以确定第四缓存地址,相比于直接索引而言,将年龄寄存器需要的bit从减少为了n-1,也减少了并行访问。对硬件更为友好,可以节省资源开销。
可以理解的是,本申请实施例提供的点云数据存储方法,通过合适的地址映射寻址方式和替换策略,以一种硬件友好的方式完成了体素化过程中开销最大的点云体素特征合并,解决了传统方案中基于软件进行体素化存在的高开销、低吞吐量问题。
基于相同的发明构思,本申请实施例还提供一种点云数据存储装置。下面结合附图介绍本申请实施例提供的点云数据存储装置。
图4为本申请实施例提供的点云数据存储装置的一种结构示意图;
本申请实施例提供了一种点云数据存储装置,应用于电子设备,电子设备包括M个缓存组,M个缓存组中每一缓存组均包括N个缓存地址,M和N均为大于等于1的整数,点云数据存储装置包括:
获取模块410,用于获取第一点云数据,第一点云数据包括第一点云坐标和第一点云特征值,第一点云数据采用流数据的传输方式;
求模模块420,用于通过第一标号对N进行求模,得到目标值,第一标号为压缩编码地址对应的标号,压缩编码地址由第一点云坐标进行压缩编码得到;
确定模块430,用于根据目标值,确定M个第一缓存地址,M个第一缓存地址中每一第一缓存地址的第二标号为目标值;
第一运算模块440,用于在M个第一缓存地址中存在第二缓存地址的情况下,对第一点云特征值和第二点云特征值进行运算,得到第三点云特征值,第二缓存地址中存储的第三标号与第一标号相同,第二点云特征值为第二缓存地址中存储的点云特征值;
第一存储模块450,用于将第三点云特征值存储至第二缓存地址。
根据本申请实施例提供的点云数据存储装置、设备及可读存储介质,首先获取第一点云数据,第一点云数据包括第一点云坐标和第一点云特征值;然后通过第一标号对N进行求模,得到目标值;接着根据目标值,确定M个第一缓存地址;再在M个第一缓存地址中存在第二缓存地址的情况下,对第一点云特征值和第二点云特征值进行运算,得到第三点云特征值;最后将第三点云特征值存储至第二缓存地址。也就是说,本申请实施例通过将第三点云特征值存储至第二缓存地址,进而在体素化过程中可从第二缓存地址中获取第三点云特征值,无需从DDR中获取第三点云特征值,减少了访问DDR的频率,进而提高了体素化过程中的运算效率,以及降低了内存访问功耗开销。
根据本申请实施例的一种具体实现方式,M个缓存组中每一缓存组还包括与N个缓存地址中每一缓存地址对应的有效位和一致位;
第一运算模块440,可具体用于:
在M个第一缓存地址中存在第二缓存地址,且第二缓存地址对应的有效位为第一预设值的情况下,对第一点云特征值和第二点云特征值进行运算,得到第三点云特征值,并将第二缓存地址对应的一致位和第二缓存地址对应的有效位均设置为第一预设值;
其中,第二缓存地址对应的有效位为第一预设值用于指示第二点云特征值为有效数据;第二缓存地址对应的一致位为第一预设值,用于指示第二点云特征值与电子设备中目标存储器内存储的第四点云特征值不同。
根据本申请实施例的一种具体实现方式,第一点云数据还包括聚合标识,聚合标识用于指示第一点云数据是否为第一次聚合;
点云数据存储装置,还包括:
第二存储模块,用于在M个第一缓存地址中不存在第二缓存地址,聚合标识指示第一点云数据为第一次聚合,且存在第三缓存地址的情况下,将第一点云特征值存储至第三缓存地址,第三缓存地址为M个第一缓存地址中任一个未存储点云特征值的第一缓存地址;
或者,第二运算模块,用于在M个第一缓存地址中不存在第二缓存地址,聚合标识指示第一点云数据不为第一次聚合,且存在第三缓存地址的情况下,将第一点云特征值与第五点云特征值进行运算,得到第六点云特征值,第五点云特征值为电子设备中目标存储器内与第一标号对应的点云特征值;
第三存储模块,用于将第六点云特征值存储至第三缓存地址。
根据本申请实施例的一种具体实现方式,M个缓存组中每一缓存组还包括与N个缓存地址中每一缓存地址对应的有效位;第一点云数据还包括聚合标识,聚合标识用于指示第一点云数据是否为第一次聚合;
点云数据存储装置,还包括:
第四存储模块,用于在M个第一缓存地址中存在第二缓存地址,第二缓存地址对应的有效位为第二预设值,聚合标识指示第一点云数据为第一次聚合,且存在第三缓存地址的情况下,将第一点云特征值存储至第三缓存地址,第三缓存地址为M个第一缓存地址中任一个未存储点云特征值的第一缓存地址,第二缓存地址对应的有效位为第二预设值用于指示第二点云特征值为无效数据;
或者,第三运算模块,用于在M个第一缓存地址中存在第二缓存地址,第二缓存地址对应的有效位为第二预设值,聚合标识指示第一点云数据不为第一次聚合,且存在第三缓存地址的情况下,将第一点云特征值与第五点云特征值进行运算,得到第六点云特征值,第五点云特征值为电子设备中目标存储器内与第一标号对应的点云特征值;
第五存储模块,用于将第六点云特征值存储至第三缓存地址。
根据本申请实施例的一种具体实现方式,第一点云数据还包括聚合标识,聚合标识用于指示第一点云数据是否为第一次聚合;
点云数据存储装置,还包括:
第六存储模块,用于在M个第一缓存地址中不存在第二缓存地址,聚合标识指示第一点云数据为第一次聚合,且不存在第三缓存地址的情况下,将第一点云特征值存储至第四缓存地址,第三缓存地址为M个第一缓存地址中任一个未存储点云特征值的第一缓存地址,第四缓存地址为M个第一缓存地址中近期最少使用的第一缓存地址;
或者,第四运算模块,用于在M个第一缓存地址中不存在第二缓存地址,聚合标识指示第一点云数据不为第一次聚合,且不存在第三缓存地址的情况下,将第一点云特征值与第五点云特征值进行运算,得到第六点云特征值,第五点云特征值为电子设备中目标存储器内与第一标号对应的点云特征值;
第七存储模块,用于将第六点云特征值存储至第四缓存地址。
根据本申请实施例的一种具体实现方式,M个缓存组中每一缓存组还包括与N个缓存地址中每一缓存地址对应的有效位;第一点云数据还包括聚合标识,聚合标识用于指示第一点云数据是否为第一次聚合;
点云数据存储装置,还包括:
第八存储模块,用于在M个第一缓存地址中存在第二缓存地址,第二缓存地址对应的有效位为第二预设值,聚合标识指示第一点云数据为第一次聚合,且不存在第三缓存地址的情况下,将第一点云特征值存储至第四缓存地址,第三缓存地址为M个第一缓存地址中任一个未存储点云特征值的第一缓存地址,第二缓存地址对应的有效位为第二预设值用于指示第二点云特征值为无效数据,第四缓存地址为M个第一缓存地址中近期最少使用的第一缓存地址;
或者,第五运算模块,用于在M个第一缓存地址中存在第二缓存地址,第二缓存地址对应的有效位为第二预设值,聚合标识指示第一点云数据不为第一次聚合,且不存在第三缓存地址的情况下,将第一点云特征值与第五点云特征值进行运算,得到第六点云特征值,第五点云特征值为电子设备中目标存储器内与第一标号对应的点云特征值;
第九存储模块,用于将第六点云特征值存储至第四缓存地址。
根据本申请实施例的一种具体实现方式,第一点云数据还包括点云序号,点云标识用于表征第一点云数据在第一点云数据所属的体素中的序号;
第六存储模块或第八存储模块,具体用于:
在点云序号小于等于预设序号值的情况下,将第一点云特征值存储至第四缓存地址;
第七存储模块或第九存储模块,具体用于:
在点云序号小于等于预设序号值的情况下,将第六点云特征值存储至第四缓存地址。
图4所示装置可以对应的执行上述方法实施例中的内容,本实施例未详细描述的部分,参照上述方法实施例中记载的内容,在此不再赘述。
本申请实施例还提供了一种电子设备,该电子设备包括:处理器以及存储有程序指令的存储器;处理器执行程序指令时实现任意一个实施例提供的点云数据存储方法。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现如任意一个实施例提供的点云数据存储方法。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备能够执行如任意一个实施例提供的点云数据存储方法。
图5示出了本申请实施例提供的电子设备的硬件结构示意图。
该电子设备可以包括处理器501以及存储有程序指令的存储器502。
具体地,上述处理器501可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit ,ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
存储器502可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器502可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器502可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器502可在综合网关容灾设备的内部或外部。在特定实施例中,存储器502是非易失性固态存储器。
在特定实施例中,存储器502包括只读存储器(ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。
存储器可包括只读存储器(ROM),随机存取存储器(RAM),磁盘存储介质设备,光存储介质设备,闪存设备,电气、光学或其他物理/有形的存储器存储设备。因此,通常,存储器包括一个或多个编码有包括计算机可执行指令的软件的有形(非暂态)可读存储介质(例如,存储器设备),并且当该软件被执行(例如,由一个或多个处理器)时,其可操作来执行参考根据本申请的一方面的方法所描述的操作。
处理器501通过读取并执行存储器502中存储的程序指令,以实现上述实施例中的任意一种点云数据存储方法。
在一个示例中,电子设备还可包括通信接口503和总线510。其中,如图5所示,处理器501、存储器502、通信接口503通过总线510连接并完成相互间的通信。
通信接口503,主要用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。
总线510包括硬件、软件或两者,将电子设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线510可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
本申请实施例可提供一种可读存储介质来实现。该可读存储介质上存储有程序指令;该程序指令被处理器执行时实现上述实施例中的任意一种方法。
需要明确的是,本申请并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本申请的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本申请的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本申请的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本申请中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本申请不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
上面参考根据本申请的实施例的方法、装置(系统)和程序产品的流程图和/或框图描述了本申请的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由程序指令实现。这些程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
以上所述,仅为本申请的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。

Claims (9)

1.一种点云数据存储方法,应用于电子设备,所述电子设备包括M个缓存组,所述M个缓存组中每一缓存组均包括N个缓存地址,M和N均为大于等于1的整数,其特征在于,所述方法包括:
获取第一点云数据,所述第一点云数据包括第一点云坐标和第一点云特征值,所述第一点云数据采用流数据的传输方式;
通过第一标号对N进行求模,得到目标值,所述第一标号为压缩编码地址对应的标号,所述压缩编码地址由所述第一点云坐标进行压缩编码得到;
根据所述目标值,确定M个第一缓存地址,所述M个第一缓存地址中每一第一缓存地址的第二标号为所述目标值;
在所述M个第一缓存地址中存在第二缓存地址的情况下,对所述第一点云特征值和第二点云特征值进行运算,得到第三点云特征值,所述第二缓存地址中存储的第三标号与所述第一标号相同,所述第二点云特征值为所述第二缓存地址中存储的点云特征值;
将所述第三点云特征值存储至所述第二缓存地址;
所述M个缓存组中每一缓存组还包括与所述N个缓存地址中每一缓存地址对应的有效位和一致位;
所述在所述M个第一缓存地址中存在第二缓存地址的情况下,对所述第一点云特征值和第二点云特征值进行运算,得到第三点云特征值,包括:
所述M个第一缓存地址中存在第二缓存地址,且所述第二缓存地址对应的有效位为第一预设值的情况下,对所述第一点云特征值和第二点云特征值进行运算,得到第三点云特征值,并将所述第二缓存地址对应的一致位和所述第二缓存地址对应的有效位均设置为所述第一预设值;
其中,所述第二缓存地址对应的有效位为所述第一预设值用于指示所述第二点云特征值为有效数据;所述第二缓存地址对应的一致位为所述第一预设值,用于指示所述第二点云特征值与所述电子设备中目标存储器内存储的第四点云特征值不同。
2.根据权利要求1所述的点云数据存储方法,其特征在于,所述第一点云数据还包括聚合标识,所述聚合标识用于指示所述第一点云数据是否为第一次聚合;
所述根据所述目标值,确定M个第一缓存地址之后,所述方法还包括:
在所述M个第一缓存地址中不存在所述第二缓存地址,所述聚合标识指示所述第一点云数据为第一次聚合,且存在第三缓存地址的情况下,将所述第一点云特征值存储至所述第三缓存地址,所述第三缓存地址为所述M个第一缓存地址中任一个未存储点云特征值的第一缓存地址;
或者,在所述M个第一缓存地址中不存在所述第二缓存地址,所述聚合标识指示所述第一点云数据不为第一次聚合,且存在所述第三缓存地址的情况下,将所述第一点云特征值与第五点云特征值进行运算,得到第六点云特征值,所述第五点云特征值为所述电子设备中目标存储器内与所述第一标号对应的点云特征值;
将所述第六点云特征值存储至所述第三缓存地址。
3.根据权利要求1所述的点云数据存储方法,其特征在于,所述M个缓存组中每一缓存组还包括与所述N个缓存地址中每一缓存地址对应的有效位;所述第一点云数据还包括聚合标识,所述聚合标识用于指示所述第一点云数据是否为第一次聚合;
所述根据所述目标值,确定M个第一缓存地址之后,所述方法还包括:
在所述M个第一缓存地址中存在所述第二缓存地址,所述第二缓存地址对应的有效位为第二预设值,所述聚合标识指示所述第一点云数据为第一次聚合,且存在第三缓存地址的情况下,将所述第一点云特征值存储至所述第三缓存地址,所述第三缓存地址为所述M个第一缓存地址中任一个未存储点云特征值的第一缓存地址,所述第二缓存地址对应的有效位为所述第二预设值用于指示所述第二点云特征值为无效数据;
或者,在所述M个第一缓存地址中存在所述第二缓存地址,所述第二缓存地址对应的有效位为第二预设值,所述聚合标识指示所述第一点云数据不为第一次聚合,且存在所述第三缓存地址的情况下,将所述第一点云特征值与第五点云特征值进行运算,得到第六点云特征值,所述第五点云特征值为所述电子设备中目标存储器内与所述第一标号对应的点云特征值;
将所述第六点云特征值存储至所述第三缓存地址。
4.根据权利要求1所述的点云数据存储方法,其特征在于,所述第一点云数据还包括聚合标识,所述聚合标识用于指示所述第一点云数据是否为第一次聚合;
所述根据所述目标值,确定M个第一缓存地址之后,所述方法还包括:
在所述M个第一缓存地址中不存在所述第二缓存地址,所述聚合标识指示所述第一点云数据为第一次聚合,且不存在第三缓存地址的情况下,将所述第一点云特征值存储至第四缓存地址,所述第三缓存地址为所述M个第一缓存地址中任一个未存储点云特征值的第一缓存地址,所述第四缓存地址为所述M个第一缓存地址中近期最少使用的第一缓存地址;
或者,在所述M个第一缓存地址中不存在所述第二缓存地址,所述聚合标识指示所述第一点云数据不为第一次聚合,且不存在所述第三缓存地址的情况下,将所述第一点云特征值与第五点云特征值进行运算,得到第六点云特征值,所述第五点云特征值为所述电子设备中目标存储器内与所述第一标号对应的点云特征值;
将所述第六点云特征值存储至所述第四缓存地址。
5.根据权利要求1所述的点云数据存储方法,其特征在于,所述M个缓存组中每一缓存组还包括与所述N个缓存地址中每一缓存地址对应的有效位;所述第一点云数据还包括聚合标识,所述聚合标识用于指示所述第一点云数据是否为第一次聚合;
所述根据所述目标值,确定M个第一缓存地址之后,所述方法还包括:
在所述M个第一缓存地址中存在所述第二缓存地址,所述第二缓存地址对应的有效位为第二预设值,所述聚合标识指示所述第一点云数据为第一次聚合,且不存在第三缓存地址的情况下,将所述第一点云特征值存储至第四缓存地址,所述第三缓存地址为所述M个第一缓存地址中任一个未存储点云特征值的第一缓存地址,所述第二缓存地址对应的有效位为所述第二预设值用于指示所述第二点云特征值为无效数据,所述第四缓存地址为所述M个第一缓存地址中近期最少使用的第一缓存地址;
或者,在所述M个第一缓存地址中存在所述第二缓存地址,所述第二缓存地址对应的有效位为第二预设值,所述聚合标识指示所述第一点云数据不为第一次聚合,且不存在所述第三缓存地址的情况下,将所述第一点云特征值与第五点云特征值进行运算,得到第六点云特征值,所述第五点云特征值为所述电子设备中目标存储器内与所述第一标号对应的点云特征值;
将所述第六点云特征值存储至所述第四缓存地址。
6.根据权利要求4或5所述的点云数据存储方法,其特征在于,所述第一点云数据还包括点云标识,所述点云标识用于表征所述第一点云数据在所述第一点云数据所属的体素中的序号;
所述将所述第一点云特征值存储至所述第四缓存地址,包括:
在所述点云序号小于等于预设序号值的情况下,将所述第一点云特征值存储至所述第四缓存地址;
所述将所述第六点云特征值存储至所述第四缓存地址,包括:
在所述点云序号小于等于所述预设序号值的情况下,将所述第六点云特征值存储至所述第四缓存地址。
7.一种点云数据存储装置,应用于电子设备,所述电子设备包括M个缓存组,所述M个缓存组中每一缓存组均包括N个缓存地址,M和N均为大于等于1的整数,其特征在于,所述装置包括:
获取模块,用于获取第一点云数据,所述第一点云数据包括第一点云坐标和第一点云特征值,所述第一点云数据采用流数据的传输方式;
求模模块,用于通过第一标号对N进行求模,得到目标值,所述第一标号为压缩编码地址对应的标号,所述压缩编码地址由所述第一点云坐标进行压缩编码得到;
确定模块,用于根据所述目标值,确定M个第一缓存地址,所述M个第一缓存地址中每一第一缓存地址的第二标号为所述目标值;
第一运算模块,用于在所述M个第一缓存地址中存在第二缓存地址的情况下,对所述第一点云特征值和第二点云特征值进行运算,得到第三点云特征值,所述第二缓存地址中存储的第三标号与所述第一标号相同,所述第二点云特征值为所述第二缓存地址中存储的点云特征值;
第一存储模块,用于将所述第三点云特征值存储至所述第二缓存地址;
所述M个缓存组中每一缓存组还包括与所述N个缓存地址中每一缓存地址对应的有效位和一致位;
所述在所述M个第一缓存地址中存在第二缓存地址的情况下,对所述第一点云特征值和第二点云特征值进行运算,得到第三点云特征值,包括:
所述M个第一缓存地址中存在第二缓存地址,且所述第二缓存地址对应的有效位为第一预设值的情况下,对所述第一点云特征值和第二点云特征值进行运算,得到第三点云特征值,并将所述第二缓存地址对应的一致位和所述第二缓存地址对应的有效位均设置为所述第一预设值;
其中,所述第二缓存地址对应的有效位为所述第一预设值用于指示所述第二点云特征值为有效数据;所述第二缓存地址对应的一致位为所述第一预设值,用于指示所述第二点云特征值与所述电子设备中目标存储器内存储的第四点云特征值不同。
8.一种电子设备,其特征在于,所述电子设备包括:处理器以及存储有计算机程序指令的存储器;
所述处理器执行所述计算机程序指令时实现如权利要求1至6中任意一项所述的点云数据存储方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1至6中任意一项所述点云数据存储方法。
CN202311589590.1A 2023-11-27 2023-11-27 点云数据存储方法、装置、设备及可读存储介质 Active CN117291789B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311589590.1A CN117291789B (zh) 2023-11-27 2023-11-27 点云数据存储方法、装置、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311589590.1A CN117291789B (zh) 2023-11-27 2023-11-27 点云数据存储方法、装置、设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN117291789A CN117291789A (zh) 2023-12-26
CN117291789B true CN117291789B (zh) 2024-02-27

Family

ID=89253908

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311589590.1A Active CN117291789B (zh) 2023-11-27 2023-11-27 点云数据存储方法、装置、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN117291789B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108804714A (zh) * 2018-06-30 2018-11-13 浙江同创空间技术有限公司 点云数据存储方法及装置
CN115328394A (zh) * 2022-08-05 2022-11-11 深圳办事宝信息服务有限公司 基于链式映射的云数据存储方法、装置、设备及存储介质
CN115601272A (zh) * 2022-12-16 2023-01-13 海纳云物联科技有限公司(Cn) 点云数据处理方法、装置及设备
CN115761119A (zh) * 2022-11-09 2023-03-07 深圳数马电子技术有限公司 邻域体素存储方法、装置、计算机设备和存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11422725B2 (en) * 2017-07-25 2022-08-23 General Electric Company Point-cloud dataset storage structure and method thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108804714A (zh) * 2018-06-30 2018-11-13 浙江同创空间技术有限公司 点云数据存储方法及装置
CN115328394A (zh) * 2022-08-05 2022-11-11 深圳办事宝信息服务有限公司 基于链式映射的云数据存储方法、装置、设备及存储介质
CN115761119A (zh) * 2022-11-09 2023-03-07 深圳数马电子技术有限公司 邻域体素存储方法、装置、计算机设备和存储介质
CN115601272A (zh) * 2022-12-16 2023-01-13 海纳云物联科技有限公司(Cn) 点云数据处理方法、装置及设备

Also Published As

Publication number Publication date
CN117291789A (zh) 2023-12-26

Similar Documents

Publication Publication Date Title
US9158689B2 (en) Aggregating cache eviction notifications to a directory
US11954879B2 (en) Methods, systems and apparatus to optimize pipeline execution
CN112953550A (zh) 数据压缩的方法、电子设备及存储介质
CN102176750B (zh) 高性能自适应二进制算术编码器
Andrzejewski et al. GPU-WAH: Applying GPUs to compressing bitmap indexes with word aligned hybrid
CN103021016B (zh) 一种渲染过程中海量三维地理信息数据处理方法
CN107315694A (zh) 一种缓存一致性管理方法及节点控制器
CN115905601A (zh) 图重排序和铺瓦技术
CN117291789B (zh) 点云数据存储方法、装置、设备及可读存储介质
CN107003932B (zh) 多核处理器系统的缓存目录处理方法和目录控制器
CN116665772B (zh) 一种基于内存计算的基因组图分析方法、装置和介质
CN113257352A (zh) 一种基因测序数据排序方法、集成电路及排序设备
CN105187162B (zh) 一种多粒度并行解速率匹配方法和装置
CN111159074A (zh) 一种基于FPGA的超大规模数据hash运算加速卡
US20180004669A1 (en) Cache device and method for storing tag data and cache data in cache device
CN104715070A (zh) 一种大图像文件及生成和读取方法
CN112379929A (zh) 一种指令替换方法、装置、处理器、电子设备及存储介质
CN114943021B (zh) 一种tb级增量数据筛选方法和装置
CN107145453B (zh) 一种缓存失效率的预测方法、装置、可读介质和设备
CN113160321B (zh) 一种实时图像序列的几何映射方法和装置
CN113449152B (zh) 图数据预取器及预取方法
WO2021138785A1 (zh) 划分方法、编码器、解码器及计算机存储介质
CN111858665B (zh) 一种提升软拷贝读性能的方法、系统、终端及存储介质
KR20220100030A (ko) 패턴 기반 캐시 블록 압축
Ali et al. A bandwidth in-sensitive low stall sparse matrix vector multiplication architecture on reconfigurable fpga platform

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