文献标识码:A
DOI:10.16157/j.issn.0258-7998.2017.02.012
中文引用格式:牛京玉,胡坚,孟凡荣,等. 基于多核DSP的激光点云解算算法并行设计[J].电子技术应用,2017,43(2):54-57.
英文引用格式:Niu Jingyu,Hu Jian,Meng Fanrong,et al. The parallel processing design of LiDAR point cloud calculation based on multicore DSP[J].Application of Electronic Technique,2017,43(2):54-57.
0 引言
近年来,将遥感技术与自动化控制技术、通信技术、传感器检测技术相结合,快速获取并实时处理分析环境、时间等多维遥感信息是一种新型的遥感应用方式。该方式融合了多种专业的技术特点,已成为促进遥感技术在多领域得以广泛应用的重点研究问题。其中,机载激光雷达技术(Light Detection And Ranging,LiDAR)作为一种实现高精度地表多维信息快速获取的新兴航空遥感技术[1],已被广泛应用于油气勘测、电力传输、城市规划、土地资源调查、灾害评估等领域。
目前,国内外针对机载激光雷达的研究和商业化应用不断发展[2],其中 LiDAR系统直接获取的原始数据(包括发射角、测距值)必须经过点云解算才能形成三维数据,因此,点云解算是LiDAR系统数据处理算法中不可或缺的环节。然而,面对当今应用对精度、实时性要求不断提升的需求,具有计算量很大、处理算法复杂等特点的点云解算需要依托于高性能的机载处理平台。其中,DSP凭借着运算能力强、功耗低、资源丰富、灵活性强等优势,在图像视频处理、数字通信、神经网络等方面[3,4]得到了广泛运用。
随着超大规模集成电路技术的日益发展,DSP技术已发展至可高效共享资源、降低功耗成本[5,6]的高性能多核DSP阶段。这也是面对不断向大带宽、高精度、高实时性要求发展的信号处理趋势的必然选择。
本文将利用多核DSP展开面向机载阵列推扫式激光雷达系统的点云解算方法的并行设计与实现,在点云解算原理、多核DSP系统资源方面介绍基础上,对点云解算算法的并行模型设计、核间通信设计、效能测试方面进行研究与分析。
1 点云解算原理
阵列推扫式机载激光雷达系统建立三维点云解算模型的数据采集模块,而点云解算则是将该系统获取的激光点数据通过一系列处理得到三维空间信息的过程。首先,利用激光雷达载荷获得激光脉冲的往返时间间隔及载荷位置姿态信息;然后,将激光扫描坐标系下的测距值经激光扫描坐标系、惯性导航坐标系、导航投影坐标系、地心坐标系转换后,求出每个激光脚点精确的三维空间坐标(X,Y,Z),从而完成激光点云解算。为提高激光点云的解算精度,在解算的过程中需将系统检校参数代入,进行校正处理[1]。
另外,由于扫描过程中会出现误将低空飞行物当作被测目标记录,或受到多路径误差或激光测距仪误差影响等情况,可能导致数据中出现粗差。为保证机上处理速度,在算法中加入基于扫描距离值的快速粗差滤除阈值处理。处理流程如图1所示。
2 基于多核DSP的并行设计
2.1 硬件平台资源介绍
相比于单核DSP,多核DSP具有更强的并行处理能力和更优化的功耗管理能力[7],因而得到了更多的关注。各主要数字信号处理器厂商,如Cradle、TI、ADI以及Freescale公司都相继推出多核DSP。其中,TI公司的TMS320C6678在内核数、主频、功耗、运算能力等方面均具有较为突出的优势。
TMS320C6678是基于Keystone架构的定点/浮点混合多核DSP[8],内置8个C66x DSP核,最高工作频率可达1.4 GHz,具有320GMACS的定点处理能力和160 GFLOPS的浮点运算能力。其还拥有丰富的片内资源,多种高速互联接口[9]。此外,TI公司还提供了具有任务调度、资源管理等功能的SYS/BIOS实时操作系统,可大大缩短开发周期。可见,C6678能很好地适应对低功耗、高性能、可编程性等多方面有严格要求的应用环境,是实现实时处理复杂算法的最佳选择。
2.2 并行模型设计
在多核DSP的系统设计中,并行处理模型的构建包括任务调度、消息通信、内存访问三者间的综合考虑,只有采用最优化的结合方案,才能达到处理效果和资源功耗间的平衡状态,从而获得处理系统的高性能。因此,选择适合的并行模型无疑是多核DSP系统开发的最关键步骤之一。目前,多核DSP并行模型主要有两种:数据流模型(Data Flow Model)和主从模型(Master Slave Model)[10]。其中,数据流模型描述了DSP的多个内核串行的工作方式,具有思路简单、实时性较好、模块间依赖性强、通信频繁的特点,较为适合处理流程单一、内核间强相关性的应用;主从模型则是从多个内核中选定一个作为主核负责总体控制,其余内核作为从核执行具体计算任务的工作方式,具有各从核间相互独立、配置灵活的特点,更适于处理流程算法复杂、核间弱相关性的应用。
本次设计中应用的点云解算算法具有处理流程复杂、浮点运算量大的特点,且待处理的数据将以一行的量为基本处理单位,处理过程独立。可见该算法并不适合将整体算法分块拆分至不同核的设计思路,这样会造成大量由于机载点云数据质量检测引入的逻辑消耗、核间同步以及数据通信消耗,是一种得不偿失的做法。因此,本文将采用主从方式设计点云解算的并行模型。
本文的具体设计思路是:将0核设置为主核,其任务包括监控所有从核的任务进度、建立与多种外设以及从核间的有效通信桥梁;1~7核为从核,其任务包括当前状态反馈、点云解算主体操作。
2.3 核间通信设计
核间通信是多核处理器实现并行处理的重要组成部分[11],其主要有消息通信和数据搬移两方面。消息通信通常用于实现核间同步通知以及状态反馈,而数据移动则适用于大量的运算数据传输。C6678中也提供了多种通信方式和模块库,主要的有:同步变量监视、核间直接中断、Event Notify、MessageQ Queue、多核导航器以及EDMA3[10,12,13]。
其中,同步变量监视模式所需模块最少,实现简单,但需不断维护Cache一致性和CPU占有情况;核间直接中断方式无BIOS参与,实现思路清晰,但频繁的中断增加额外耗时,灵活度低;Event Notify方式简单快捷,但数据传输能力弱,复杂度较高;Message Queue方式提供了更精细的数据消息,灵活性和适应性强,应用广泛,但复杂度高;多核导航器方式实现设备内的数据高性能传输,灵活度大,但复杂度很大;增强型直接内存访问(Enhanced Direct Memory Access 3,EDMA3)方式可实现数据的高效传输,且该过程几乎不占用CPU时钟[14],但复杂度也高。因此,同步变量监视、核间直接中断、Event Notify和Message Queue这4种方式比较适合于核间同步消息通知,而多核导航器和EDMA3则更适合于数据通信。
本文待实现的点云解算算法在多核通信方面有如下需求:消息通信方面,需要实现主核和从核间的同步通知,用于监控处理的进度;数据通信方面,需要实现对原始数据块、各阶段处理结果的划分及高速数据传输过程。
再结合DSP内部存储器空间小但访问速度快、外部存储器DDR3空间大而访问速度慢以及阵列推扫式激光雷达系统具有按描行存储处理数据的特点,为了尽可能提高传输效率,以PING-PONG传输方式建立数据缓存机制:先将采集的数据流逐行缓存到DDR3中,并在从核内部存储器建立两个缓存区,以EDMA3方式实现数据在DDR3与内部存储器之间的高速传输,并且采用灵活度高的Message Queue实现核间同步消息通信。图2展示了本文基于TMS320C6678的点云解算总体设计构架。
3 实验结果分析
本文实验采用TMDXEVM6678L EVM C6678 DSP开发板,这是一款用于对TMS320C6678进行评估开发的硬件平台。实验时,DSP核主频设置为1 GHz。实验激光点云原始数据来自某线阵推扫LiDAR载荷飞行试验获取的一段数据,行数为8 400行,每行208 B,总数据量约为1.67 MB;载荷位置数据也选取对应的8 400行,每行52 B,总数据量约为426.56 KB。
实验分析了不同大小数据块对基于多核DSP主从模型的LiDAR数据实时处理运行效率的影响,在数据处理总行数一定的条件下,分别以1、2、4、6、8、10行数划分每次处理数据传输块,从而获取数据传输及点云解算处理的耗时测试数据。同时,实验还对比记录了相同总数据量、每次处理行数不变的条件下,单核实现点云解算处理的耗时,如表1所示。
从表1可知,设计的点云解算多核并行模型在7核并行运算的情况下,效率达不到7倍单核的理想状态,原因为实际的运算过程会由于核间通信、数据传输等原因产生时间消耗和资源竞争。需要注意的是,不合理的方案设置反而会增加整体的运行耗时,造成与资源消耗情况相距甚远的结果。文中设计充分考虑并平衡了通信消耗和传输资源竞争等方面的影响,将效率提升到单核的6.6倍左右,使得性能得到了较大提升。
图3显示了单/多核模型的总耗时与处理行数间的关系。针对多核并行处理方式,如图3(a)所示,运行耗时由核间通信和EDMA3模块调用的次数变化共同影响,其随着每次处理行数的增加而降低。在处理总行数一定的情况下,每次处理的行数越多,总体处理方案调用核间同步通信和EDMA 3模块的次数越少,通信传输消耗降低。此外,从图3(a)中还能看出:曲线斜率随着行数的增加而变缓,其原因在于增加每核处理行数,也会增大每次传输时间和内部缓存压力,体现出核间调度和数据传输两者的矛盾关系,需要遇到具体问题具体划分数据块行数。图3(b)显示了单核处理方式下,运行耗时和每次处理行数的关系,其变化趋势与多核一致。随着每次处理的行数增多,每次EDMA3传输的数据量增加,对EDMA3相关控制器设置的总次数减少,而EDMA3控制器的设置耗时相对较少。由此可得:EDMA3每次传输数据量的不同导致了耗时的不同,充分验证了EDMA3在传输大数据量时具有一定的优势。在具体的设计过程中,需要合理选择每次的处理行数,以达到效率最优化。
4 结论
本文采用TMS320C6678硬件平台,设计搭建了基于机载阵列式推扫激光雷达系统的点云解算算法的多核并行主从处理模型,执行效率达到了单核的6.6倍,使得性能得到了很大的提升,证明了对激光雷达技术的嵌入式实时处理系统的可行性。为进一步的遥感三维影像生成技术的嵌入式实时处理系统的设计实现奠定了坚实的基础。
参考文献
[1] 黎荆梅,周梅,李传荣.阵列推扫式机载激光雷达三维点云解算方法研究[J].遥感技术应用,2013,28(6):1033-1038.
[2] 李番,邬双阳,杨红果,等.机关雷达多元阵列探测技术[J].红外与激光工程,2009,38(2):295-299.
[3] 贺文静,胡坚,李子扬,等.基于多DSP的遥感图像实时压缩系统设计[J].电子技术应用,2015,41(5):46-56.
[4] SEUI J,SUNG S K.Hardware implementation of a real-time neural network controller with a DSP and an FPGA for nonlinear systems[J].Industrial Electronics,IEEE Transactions on 2007,54(1):265-71.
[5] 李鑫,姜明.多核DSP告诉实时信号处理系统设计[J].光学设计,2012,38(1):116-120.
[6] 赵振华,郑红.嵌入式可重构的多DSP图像并行处理系统[J].单片机与嵌入式系统应用,2009(2):12-15.
[7] 绳伟光,蒋建飞,何卫锋.高性能DSP的发展现状与未来趋势[J].中国集成电路,2011(4):20-25.
[8] Texas Instruments.TMS320C66x DSP CPU and instruction set reference guide(Literature Number: SPRUGH7)[EB/OL].(2010)[2016].www.ti.com.
[9] Texas Instruments.TMS320C6678 multicore fixed and floating-point digital signal processor data manual[EB/OL].(2014)[2016].www.ti.com.
[10] Texas Instruments.Multicore programming guide(Literature Number:SPRAB27B)[EB/OL].(2011)(2016).www.ti.com.
[11] 吴灏,肖吉阳,范红旗,等.TMS320C6678多核DSP的核间通信方法[J].电子技术应用,2012,38(9):11-13.
[12] Texas Instruments.SYS/BIOS inter-processor communication user’s guide(Literature Number: SPRUGO6E)[EB/OL].(2012)[2016].www.ti.com.
[13] 刘力,张鹏,杨军.基于EDMA3控制器的多通道音频数据传输[J].电声技术,2014,38(8):59-61.
[14] 但永平,彭红涛,王东云,等.EDMA3在图像数据快速传输中的应用[J].液晶与显示,2013,28(1):99-104.
作者信息:
牛京玉,胡 坚,孟凡荣,贺文静
(中国科学院光电研究院 中国科学院定量遥感信息技术重点实验室,北京100094)