用于目标跟踪内存管理的队列方法技术

技术编号:9033912 阅读:112 留言:0更新日期:2013-08-15 00:46
本发明专利技术提供一种用于目标跟踪内存管理的队列方法,可以避免目标跟踪过程过于频繁的内存分配和释放,保障跟踪系统不会因长时间、大量产生内存碎块影响性能。该方法在目标跟踪的初始状态,两个队列都是空队列,只具有首、尾指针;目标跟踪过程中,当需要为新轨迹分配数据节点时,首先查询缓冲队列是否存在空闲节点,如有则将其分离出来分配给新轨迹并加入到跟踪队列,如无则从计算机存储系统申请内存分配给新轨迹并加入到跟踪队列;当有目标轨迹跟踪消亡时,将节点添加到缓冲队列的队尾。

【技术实现步骤摘要】

本专利技术属于雷达数据处理
,具体涉及一种。
技术介绍
现代雷达数据处理的目标跟踪是一种以计算机为基础的“值班”系统,需要长时间不停机、不中断地运行。目标跟踪通常伴随着跟踪轨迹从创建到消亡的全过程生命周期管理,目标轨迹的创建和消亡需要进行内存分配和释放的动态管理。传统的目标跟踪采用动态链表数据结构作为跟踪队列,用链表节点对应目标跟踪的轨迹。在目标跟踪轨迹的生命周期管理过程中,相应于新目标的创建,需要分配新内存构造新轨迹节点插入跟踪队列;相应于老目标的消亡,需要从跟踪队列删除目标轨迹节点、释放所占用的内存。在多目标和复杂跟踪环境,以及不停机运行条件下,经常出现大量被跟踪的目标,需要频繁地进行轨迹“创建一消亡”的处理,以及频繁的内存分配、释放操作。传统方法所带来的问题是:频繁的内存分配、释放会造成大量的计算机内存碎块,长时间积累之后严重影响计算机运行性能,最终可能导致目标跟踪“值班”系统的崩溃。因此,为目标跟踪提供一种无需频繁动态内存管理的方法,对于目标跟踪系统的长时间稳定可靠运行至关重要。
技术实现思路
为了解决上述问题,本专利技术提供一种,可以避免目标跟踪过程过于频繁的内存分配和释放,保障跟踪系统不会因长时间、大量产生内存碎块影响性能。本专利技术解决现有问 题所采用的技术方案是:一种,在目标跟踪的初始状态,两个队列都是空队列,只具有首、尾指针;目标跟踪过程中,当需要为新轨迹分配数据节点时,首先查询缓冲队列是否存在空闲节点,如有则将其分离出来分配给新轨迹并加入到跟踪队列,如无则从计算机存储系统申请内存分配给新轨迹并加入到跟踪队列;当有目标轨迹跟踪消亡时,将节点添加到缓冲队列的队尾。本专利技术在目标跟踪开始的一段时间内建立的缓冲队列为空或只有少量消亡轨迹回收的节点,新建立目标轨迹所需要的内存直接或大部分从计算机存储系统申请。当系统运行一定时间后,跟踪状态达到平衡,缓冲队列所回收缓存的内存可以满足新建轨迹需要,则无需再向计算机存储系统申请。当系统运行终止时,一次性地释放两个队列所占用的内存回收到计算机存储系统。本专利技术的有益效果:与
技术介绍
雷达目标跟踪所采用的内存管理方法相比较,本专利技术用于管理轨迹动态内存的特有技术特征是建立一个专用的缓存队列,可以回收跟踪过程轨迹消亡所释放的内存,并用于之后建立新轨迹所需的内存分配,而不是将消亡轨迹占用内存直接释放到计算机存储系统,从而避免了频繁的内存分配和释放的操作,保证跟踪系统不会因长时间积累产生大量的内存碎块,解决了由此可能导致的系统性能下降乃至崩溃的问题。附图说明图1本专利技术方法中链表及节点数据结构示意图;图2本专利技术方法中建立新轨迹内存管理流程图;图3本专利技术方法中删除老轨迹内存管理流程图。具体实施例方式以下结合附图说明本专利技术的具体实现方式。本专利技术采用单向动态链表作为目标跟踪队列,根据具体跟踪应用需要和跟踪参数定义链表节点的数据结构,即定义如图1链表节点中指针域和参数域的具体内容。以链表跟踪队列为基础,目标跟踪过程的主要步骤包括跟踪初始化建立跟踪队列和缓冲队列,当有新目标进入跟踪时进行建立新轨迹的内存管理,当有老目标退出跟踪时进行建立老轨迹消亡的内存管理,具体如下:1.跟踪初始化①建立一个空的跟踪队列,设定指向跟踪队列的首、尾指针;②建立一个空的缓冲队列,设定指向缓冲队列的首、尾指针。2.建立新轨迹时的内存管理①如果缓冲队列首指针为空,跳转到第④步;②以新目标跟踪的轨迹参数初始化缓冲队列首指针所指向节点的数据域,并将该节点追加到跟踪队列的队尾;③缓冲队列首指针、将跟踪队列尾指针分别后移一个节点,跳转到第⑥步;④从计算机内存申请新节点,以新目标跟踪的轨迹参数初始化该节点的数据域,并将该节点追加到跟踪队列的队尾;⑤跟踪队列尾指针后移一个节点;⑥结束。3.删除老轨迹时的内存管理①设立临时指针指向跟S示队列队首;②遍历跟踪队列使临时指针指向待删除的轨迹节点;③建立待删除节点的前趋节点和后继节点之间的链接结构;④将临时指针指向的节点追加到缓冲队列的队尾;⑤缓冲队列尾指针后移一个节点;⑥ 结束。权利要求1.一种,其特征在于:在目标跟踪的初始状态,两个队列都是空队列,只具有首、尾指针;目标跟踪过程中,当需要为新轨迹分配数据节点时,首先查询缓冲队列是否存在空闲节点,如有则将其分离出来分配给新轨迹并加入到跟踪队列,如无则从计算机存储系统申请内存分配给新轨迹并加入到跟踪队列;当有目标轨迹跟踪消亡时,将节点添加到缓冲队列的队尾。2.如权利要求1所述的一种,其特征在于:所述的目标跟踪过程包括跟踪初始化、建立跟踪队列和缓冲队列,当有新目标进入跟踪时进行建立新轨迹的内存管理,当有老目标退出跟踪时进行建立老轨迹消亡的内存管理,具体步骤如下: 2.1跟踪初始化 ①建立一个空的跟踪队列,设定指向跟踪队列的首、尾指针; ②建立一个空的缓冲队列,设定指向缓冲队列的首、尾指针; 2.2建立新轨迹时的内存管理 ①如果缓冲队列首指针为空,跳转到第④步; ②以新目标跟踪的轨迹参数初始化缓冲队列首指针所指向节点的数据域,并将该节点追加到跟踪队列的队尾; ③缓冲队列首指针、将跟踪队列尾指针分别后移一个节点,跳转到第⑥步; ④从计算机内存申请新节点,以新目标跟踪的轨迹参数初始化该节点的数据域,并将该节点追加到跟踪队列的队尾; ⑤跟踪队列尾指针后移一个节点; ⑥结束; 2.3删除老轨迹时的内存管理 ①设立临时指针指向跟S示队列队首; ②遍历跟踪队列使临时指针指向待删除的轨迹节点; ③建立待删除节点的前趋节点和后继节点之间的链接结构; ④将临时指针指向的节点追加到缓冲队列的队尾; ⑤缓冲队列尾指针后移一个节点; ⑥结束。全文摘要本专利技术提供一种,可以避免目标跟踪过程过于频繁的内存分配和释放,保障跟踪系统不会因长时间、大量产生内存碎块影响性能。该方法在目标跟踪的初始状态,两个队列都是空队列,只具有首、尾指针;目标跟踪过程中,当需要为新轨迹分配数据节点时,首先查询缓冲队列是否存在空闲节点,如有则将其分离出来分配给新轨迹并加入到跟踪队列,如无则从计算机存储系统申请内存分配给新轨迹并加入到跟踪队列;当有目标轨迹跟踪消亡时,将节点添加到缓冲队列的队尾。文档编号G06F9/50GK103246567SQ20131009881公开日2013年8月14日 申请日期2013年3月26日 优先权日2013年3月26日专利技术者胡文龙, 付琨 申请人:中国科学院电子学研究所本文档来自技高网
...

【技术保护点】
一种用于目标跟踪内存管理的队列方法,其特征在于:在目标跟踪的初始状态,两个队列都是空队列,只具有首、尾指针;目标跟踪过程中,当需要为新轨迹分配数据节点时,首先查询缓冲队列是否存在空闲节点,如有则将其分离出来分配给新轨迹并加入到跟踪队列,如无则从计算机存储系统申请内存分配给新轨迹并加入到跟踪队列;当有目标轨迹跟踪消亡时,将节点添加到缓冲队列的队尾。

【技术特征摘要】

【专利技术属性】
技术研发人员:胡文龙付琨
申请(专利权)人:中国科学院电子学研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1