基于FPGA的点云压缩加速装置及方法

文档序号:36655303发布日期:2024-01-06 23:42阅读:25来源:国知局
基于FPGA的点云压缩加速装置及方法

本发明涉及点云数据处理,具体涉及一种基于fpga的点云压缩加速装置及方法。


背景技术:

1、近年来,点云技术越来越普遍见于虚拟/增强现实、全景通讯、自动驾驶以及机器人导航等。点云中的点除了几何坐标以外还包含一些属性特征,如颜色rgb、反射率等。点云具有无序性、稀疏性的特点,各点之间没有顺序关系,点在空间的分布非常稀疏。点云数据可以很好地描述一个物体的3d特征,但往往一帧点云图由十万以上数量级的点,以及对应的属性信息组成,对后续的点云存储、处理、传输显示都带来了严峻的挑战。目前的主流点云压缩方案分别有基于视频编码的点云压缩(v-pcc)和基于几何的点云压缩(g-pcc),这些主流方案都存在计算时间过大、计算复杂度高,而且通常情况下在cpu上运行,cpu对点云数据进行串行处理,无法实现流水线并行处理,会占据较长的处理时间,无法满足汽车等嵌入式平台实时性、高效性的需求。


技术实现思路

1、本发明的目的是为了解决现有技术中的上述缺陷,提供一种基于fpga的点云压缩加速装置及方法。

2、本发明的第一个目的可以通过采取如下技术方案达到:

3、一种基于fpga的点云压缩加速装置,所述点云压缩加速装置包括pl端、ps端和ddr,所述ps端分别与所述pl端、ddr电连接;其中,

4、所述ps端,用于向pl端发送点云数据压缩命令,并标记每三帧点云图的第一帧为前帧,第二帧和第三帧为后帧,用向pl端发送本帧点云的前后帧标志信号;

5、所述pl端包括数据搬移模块、体素化模块、八叉树数组计算模块、几何信息压缩模块、属性特征压缩模块,体素化模块分别与数据搬移模块、八叉树数组计算模块电连接,八叉树数组计算模块还分别与几何信息压缩模块、属性特征压缩模块电连接,几何信息压缩模块、属性特征压缩模块还与数据搬移模块电连接;

6、所述体素化模块,用于根据点云数据压缩命令生成点云数据读取命令,向数据搬移模块发送点云数据读取命令,从数据搬移模块接收初始点云数据,初始点云数据包括一组点的坐标以及点的rgb值,并采用流水线技术对初始点云数据进行体素化,生成体素特征图并传至八叉树数组计算模块;

7、所述八叉树数组计算模块,用于通过由fifo连接的莫顿码生成模块和八叉树信息生成模块采用数据流并行方式处理体素特征图;所述莫顿码生成模块,用于对所述体素特征图进行莫顿码的计算,得到莫顿码数组;所述八叉树信息生成模块,用于根据所述莫顿码数组数据生成基于八叉树结构的父数组。

8、所述几何信息压缩模块,用于根据所述八叉树数组计算模块生成的莫顿码数组和父数组进行八叉树占用位信息计算,根据占用位信息对八叉树节点进行广度排序,输出为二进制编码流并传至数据搬移模块。

9、所述属性特征压缩模块,用于根据八叉树数组计算模块生成的莫顿码数组对本帧的体素进行分段,并根据本帧的前后帧标志信号进行模式选择,选择启用子模块帧内点云压缩模块或帧间点云压缩模块之一进行工作,生成属性特征压缩码流并传至数据搬移模块;

10、所述数据搬移模块,还用于将几何信息压缩码流和属性特征压缩码流发送至ddr中进行存储;

11、所述ddr,用于存储初始点云数据及压缩完成后的几何信息压缩码流和属性特征压缩码流。

12、进一步地,所述属性特征压缩模块包含帧内属性特征压缩模块和帧间属性特征压缩模块,其中,帧内属性特征压缩模块,用于计算每个体素段内的属性特征平均值及段内体素的属性特征值相对于平均值的偏移值,并对偏移值进行量化编码;帧间属性特征压缩模块,用于为每一个体素段寻找相似度高的前帧体素段,为后帧体素段生成相对应的前帧体素段的索引指针。

13、进一步地,所述属性特征压缩模块根据所述本帧的前后帧标志信号进行模式选择,若信号为前帧,则启用帧内属性特征压缩模块;若信号为后帧,则启用帧间属性特征压缩模块。

14、本发明的第二个目的可以通过采取如下技术方案达到:

15、一种基于fpga的点云压缩加速方法,所述点云压缩加速方法包括以下步骤:

16、ps端标记每三帧点云图的第一帧为前帧,第二帧和第三帧为后帧,向pl端发送本帧点云的前后帧标志信号和点云数据压缩命令。

17、数据搬移模块从ddr读取初始点云数据并传至体素化模块,体素化模块采用流水线的方法对初始点云数据进行体素化,生成体素特征图;

18、八叉树数组计算模块通过由fifo连接的莫顿码生成模块和八叉树信息生成模块对体素特征图进行处理,生成莫顿码数组和父数组存储于片上存储;

19、几何信息压缩模块根据莫顿码数组和父数组计算占用位信息,根据占用位信息对八叉树节点进行广度排序得到几何信息压缩码流并输出到数据搬移模块;

20、属性特征压缩模块根据莫顿码数组对本帧体素进行分段,并根据本帧的前后帧标志信号进行模式选择,若为前帧,则由帧内属性特征压缩模块计算每个体素段内的属性特征平均值及段内体素的属性特征值相对于平均值的偏移值,并对偏移值进行量化编码,生成帧内属性特征压缩码流并传至数据搬移模块;若为后帧,则由帧间属性特征压缩模块为本帧的每一个体素段寻找相似度高的前帧体素段,计算后帧点云段对前帧对应点云段的索引指针,生成帧间属性特征压缩码流并传至数据搬移模块。

21、数据搬移模块将几何信息压缩码流和属性特征压缩码流发送至ddr中进行存储。

22、进一步地,所述八叉树数组计算模块对体素特征图进行处理的具体计算过程如下:莫顿码生成模块根据所述体素特征图,对其中的非零体素进行莫顿编码,将所有体素的三维坐标转化为一维的莫顿码数组,存储于片上缓存;八叉树信息生成模块遍历莫顿码数组的元素,对每个莫顿码从高位开始的每3比特数值进行截取,获得该体素所在八叉树当前层次的节点的索引,进而获得八叉树所有节点的父节点信息,并行构造八叉树,存储于片上缓存。

23、进一步地,所述几何信息压缩模块和属性特征压缩模块并行地构成两条计算链路,两个模块不存在依赖关系、独立运行。

24、本发明相对于现有技术具有如下的优点及效果:

25、(1)本发明采用并行莫顿编码生成八叉树的方法,基于fpga为点云压缩加速算法设计了一种高效的硬件装置。该装置对功能模块进行划分,各模块之间形成数据流流动,几何信息压缩模块和属性特征压缩模块独立运行互不干涉,大幅度提高了点云压缩流程的吞吐率。

26、(2)相对于cpu串行构造八叉树的方式,本发明实现对点云压缩关键算法的并行化处理,如并行计算莫顿码、并行计算八叉树占用位信息,结合fpga的并行化编程特点,可以大幅度提高计算流程的速度,实现对点云压缩的加速。

27、(3)相比于传统的帧内点云压缩方法,本发明利用相邻帧之间相似度高的特点,采用帧间属性特征匹配压缩的方法,进一步提高压缩率。该硬件装置对数据存储结构进行了优化,关键存储如莫顿码数组和父数组采用片上存储,减少对外部ddr的访存操作。



技术特征:

1.一种基于fpga的点云压缩加速装置,其特征在于,所述点云压缩加速装置包括pl端、ps端和ddr,所述ps端分别与所述pl端、ddr电连接;其中,

2.根据权利要求1所述的基于fpga的点云压缩加速装置,其特征在于,所述属性特征压缩模块包含帧内属性特征压缩模块和帧间属性特征压缩模块,其中,

3.根据权利要求1所述的基于fpga的点云压缩加速装置,其特征在于,所述属性特征压缩模块根据本帧的前后帧标志信号进行模式选择,若信号为前帧,则启用帧内属性特征压缩模块;若信号为后帧,则启用帧间属性特征压缩模块。

4.一种基于fpga的点云压缩加速方法,其特征在于,应用于权利要求1至3任一项所述的点云压缩加速装置,所述点云压缩加速方法包括以下步骤:

5.根据权利要求4所述的基于fpga的点云压缩加速方法,其特征在于,所述八叉树数组计算模块对体素特征图进行处理的过程如下:

6.根据权利要求4所述的基于fpga的点云压缩加速方法,其特征在于,所述几何信息压缩模块和属性特征压缩模块并行地构成两条计算链路,两个模块不存在依赖关系、独立运行。

7.根据权利要求4所述的基于fpga的点云压缩加速方法,其特征在于,所述占用位信息是对莫顿码数组和父数组进行逐位的或运算得到的,表达式如下:

8.根据权利要求4所述的基于fpga的点云压缩加速方法,其特征在于,所述偏移值是指体素的属性特征值与所在体素段的属性特征值平均值的差值,量化编码的方式是均匀量化,量化编码是将偏移值从区间[-256,256)的整数映射到区间[-64,64)的整数,表达式为:

9.根据权利要求4所述的基于fpga的点云压缩加速方法,其特征在于,本帧体素段与前帧体素段的相似度是根据点云段之间的2范数属性距离来衡量的,计算方式为:


技术总结
本发明公开了一种基于FPGA的点云压缩加速装置及方法,点云压缩加速装置包括:PL端、PS端和DDR,PS端用于向PL端发送点云数据压缩命令和前后帧标志信号;DDR,用于存储初始点云数据及压缩完成后的压缩码流;体素化模块,采用流水线技术对点云数据进行体素化,生成体素特征图;八叉树数组计算模块,用于通过由FIFO连接的的莫顿码生成模块和八叉树信息生成模块采用数据流并行方式处理体素特征图,生成八叉树数组信息;几何信息压缩模块,用于根据八叉树数组信息计算占用位,生成几何信息压缩码流;属性特征压缩模块,用于根据八叉树数组信息及前后帧标志信号对属性特征进行压缩,生成属性特征压缩码流。本发明可提高点云压缩的吞吐率、降低延时。

技术研发人员:周拱朗,陈翔,梁国华
受保护的技术使用者:中山大学
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1