陈志江,刘 晖,肖 泽
(中国酒泉卫星发射中心,甘肃酒泉 732750)
基于帧频信号的图像存储时序控制方法
陈志江,刘 晖,肖 泽
(中国酒泉卫星发射中心,甘肃酒泉 732750)
针对长时间服役光学设备图像存储系统性能退化和可靠性降低的问题,设计了新的图像存储系统结构;提出了一种基于帧频信号的时序控制方法,以帧频信号为基准驱动系统软硬件工作,结合秒信号、帧频信号与串口时间生成绝对时间,实现了四路独立数据流的同步采集,通过两级缓存机制保证数据采集-打包-存储之间的速率冗余匹配,对图像转移时间误差进行了修正;检测结果表明,系统时序得到了有效控制,长时间采集存储数据稳定可靠不丢帧,时间同步精度优于1 ms。
图像存储;时序控制;时间同步精度
光学设备具有数据直观、测量精度高等优点,在天文观察、航天测控等领域有着广泛应用。随着设备的数字化,图像分辨率与拍摄频率的提高,每秒需实时处理的数据量很大,对图像存储系统的性能要求很高[1-3]。正在服役的光学设备,受研制时技术条件与硬件性能的限制,图像存储系统采用分块并行存储的方法,即将一帧图像分成多个数据块同时存储至独立介质,事后导出时再将数据块重新组合成完整的一帧,系统采用硬件实现,达到了不低于400 MB/s的存储性能指标。随着服役时间增加,图像存储系统性能下降、可靠性降低,容易出现图像丢帧、错帧、附加信息错乱等问题,严重影响了设备的正常使用。
基于上述情况,在当前技术背景下,使用可编程图像采集卡与PCI-E固态硬盘,重新设计了图像存储系统结构。为解决系统中图像采集与存储过程的时序控制问题,提出一种基于帧频信号的方法,实现了各数据流之间的同步采集与存储,保证了时间同步精度。
图像存储系统结构如图1所示,以一台工控机为硬件主体,通过软件实现图像的实时采集与存储功能。光耦触发卡接收外部时统终端的帧频信号与秒信号,并将两个信号传送至图像采集卡,秒信号作为图像采集卡的工作基准,帧频信号通过Camera Link接口传送到相机[4-5],作为相机的拍摄驱动信号,同时也作为图像采集卡的采集驱动信号,保证了相机拍摄与图像采集之间的时序同步,此外秒信号与帧频信号可以通过API接口函数访问,作为软件工作线程的驱动信号。串口卡实时采集频率为400 Hz的三路串口数据,其中串口A与串口E的数据分别为光学设备跟踪架的方位与俯仰值,串口T的数据包括时间、方位俯仰修正值、曝光时间、焦距等,三路串口的数据共同组成相机拍摄时刻对应的图像附加信息。软件需要实现的功能,就是通过采集卡获取图像原始数据,与对应时刻的串口数据组合,形成一帧完整的测量图像存储至固态硬盘中,获取的数据使用过双头显卡实时显示。
系统的主要数据流包括:图像采集卡通过Camera Link获取的原始图像数据,以及通过3个串口获取的附加信息数据。四路数据的物理链路独立,需要保证获取数据流的连续稳定不缺失,同时还要确保高精度的时刻匹配,这是整个系统正确性与可靠性的关键,归根结底是时序的高精度控制问题。
2.1 绝对时间生成算法
通过实际测算,串口T存在恒定的数据传输延迟(恒小于1 s),因此其数据中的时间信息是不准确的。系统没有直接通过时统终端获取绝对时间,因此当前系统最大的问题是缺乏绝对时间的有效源。解决该问题的办法,一是增加时统终端和相关处理模块,但会造成系统成本与复杂度的增加;二是基于系统现有的信号条件生成绝对时间,该方法既不增加成本也不改变系统结构,使用软件方式即能够方便灵活地完成。
图1 图像存储系统结构图
观察发现,每次系统启动后串口T获取的时间延迟值都不一样,但单次启动后延迟值恒定小于1 s且后续数据流稳定。图像采集卡为光耦触发卡转发的秒信号与频率信号接供了API函数接口,这意味着每次秒信号到来时获取的串口T时间值在秒量级上恒定差1 s,此时毫秒位为0,在秒与秒信号之间的毫秒位可以通过帧频信号步进生成。因此,设计基于串口T时间信息、秒信号和帧频信号的绝对时间生成算法,如图2所示。
图2 绝对时间生成算法流程图
每次秒信号到来时,将毫秒计数器ms_cnt置为0,将秒计数器s_cnt加1,判断当前秒计数器若小于N(N为数据流稳定性的判断周期,根据实情况选取),则采集串口时间信息并与上一次时间比较,若时间差为1秒则将设置当前的秒时间,若时间差不为1秒则表示当前数据流不稳定,将s_cnt置为0。通过N个周期的数据流稳定性判断后,便获取了准确的秒时间,后续秒信号到来时只需将秒时间步进加1即可。而在每一个帧频信号到来时,将帧频计数器步进加1。通过秒时间、帧频与毫秒计数器的计算,即可得到当前帧频时刻的绝对时间,计算公式如下所示:
式中,abs_time为绝对时间 (ms),s_time为秒时间值 (ms),ms_cnt为当前时刻的频率计数值,frequency 为系统当前使用的频率值。
通过以上算法实现了绝对时间生成,但存在的风险性是:当秒信号到来的同时有一个帧频信号需要响应,从宏观的理想状况看这两个信号是同时到来的,但从微观的实际软硬件处理机制上分析,系统对这两个信号的处理存在不确定的先后顺序,这导致一个秒信号周期内处理的帧频信号总数可能是frequency±1个,这种不确定性称之为竞争冒险,会严重影响系统时序同步控制。
为消除秒信号与帧频信号的竞争冒险带来的不确定性因素,对帧频信号进行取反。如图3所示,帧频信号的脉宽为ΔT,信号触发以上升沿为准,进行取反操作后,相当于将上升沿延迟了ΔT,这样确保了在每个秒信号到来时,同时到来的帧频信号永远滞后ΔT时间触发,从而不再存在竞争冒险问题。ΔT的取值为微秒级,对于系统而言这样极微小的延迟不会影响后序处理的时序控制。
图3 消除竞争冒险时序图
2.2 数据同步采集方法
系统的数据主要由两部分组成:(1)图像原始数据,由相机通过Camera Link接口传送至图像采集卡,采集卡将数据映射至内存中,通过API接口函数可获取原始图像数据,数据频率与帧频一致;(2)附加信息数据,通过串口卡同时采集A、E和T三个独立串口传输的数据流,数据频率为固定400 Hz。最终的数据经由4个独立接口提供,需要通过时序控制保证数据采集同步进行。
绝对时间由秒信号与帧频信号共同生成,而帧频信号同时也是相机的工作时序,尽管串口数据频率固定为400 Hz,但系统的工作帧频一定可以整除400,因此以帧频信号作为数据同步采集的基准时序。如图4所示,每一个帧频驱动信号到来时,采集的是上一帧周期内完成传输的图像以及3个串口的数据帧,这样就保证了4个独立通道的数据采集的同步。当帧频为frequency时,从串口中每次采集的数据帧数为400/frequency个,要使数据的同步精度最高,则以最新一帧数据为准,舍弃其他数据,并以帧频信号时刻生成的绝对时间作为附加信息的时间值。
图4 数据同步采集时序图
图像采集卡与串口卡中都存在数据缓存处理机制,数据采集时采用先入先出的方法优先采集缓存数据,初始的数据缓存将极大地影响数据之间的同步精度。因此,在系统完成初始化正式进行数据同步采集之前,首先进行M个周期大批量的数据采集,清空缓存数据,使后续数据的传输与采集达到实时同步。M根据实际情况选取,以达到完全清空缓存数据为准。
2.3 数据同步存储方法
绝对时间的生成与数据的同步采集,都是软硬件相配合完成的时序控制过程,实现了数据流从硬件接口到计算机内存的转移,而数据存储通过纯软件方式完成,为实现这一过程中的时序控制,在软件中使用了两级缓存机制[6],如图5所示。
图5 数据存储的两级缓存机制
串口数据采集线程与图像数据采集线程在帧频信号的驱动下按时序进行工作,保证了数据采集的同步与正确。缓存数据结构均使用先入先出队列实现,一级缓存有两个:一个存放完整附加信息帧,由3个串口获取的数据和绝对时间重新组合而成;另一个存放原始图像数据数据帧。软件在接收到存储指令后,从下一个帧频信号开始,首先清空一级缓存抛弃无用过时的数据,后续的过程中一旦两个一级缓存中均有超过L帧的数据,便各提取一帧打包为最终需要的存储格式,放入二级缓存中;文件写入线程在检测到二级缓存中的数据超过L帧时,则将其写入到硬件中保存为数据文件。缓存中预留的L帧数据进行弹性处理,方便进行弹性误差修正,同时也能减少其他工程实现上问题的产生[7]。
根据相机的工作原理[8],相机的工作时序如图6所示。图像完成曝光后,需要经过一个转移时间t_out才能完成图像数据的送出,即图像数据的获取总是滞后于曝光完成时刻,在数据存储时需要进行修正。在软件中,附加信息的时间通过秒信号与帧频信号生成,对应这一时刻的绝对时间,与图像曝光完成时的时刻存在不一致。相机完成图像数据转移所需的帧周期n=t_out\t_frequency+1,“\”为整除运算,t_out为图像转移时间,t_frequency 为帧频周期时间。相机手册给出的图像转移时间t_out为8 ms左右,当系统以400 Hz频率工作时,附加信息应该修正2帧;当系统以低于400 Hz频率工作时,附加信息应该修正1帧。由于在缓存中预留了L帧的弹性处理空间,在软件上能够非常方便地实现修正。
图6 相机图像曝光与转移时序
在高速数据存储方面,通过使用两级缓存机制,第一级缓存给数据采集线程与数据打包线程间增加了弹性量,第二级缓存在数据打包线程与文件写入线程中增加了弹性量,解决了使用软件方法实现可能存在的采集-打包-存储三级线程执行的速率不匹配问题,同时通过缓存中预留的弹性处理空间,能够很好地解决相机图像数据帧转移时间带来的滞后误差修正问题。
基于前文介绍的系统结构与时序控制方法,在工控机上实现了该图像存储系统,工控机配置上Intel Core i5四核3.4 GHz,内存8 G,搭载480 G的PICE接口固态硬盘。
对实现的图像存储系统进行系统检测,检测方法为:对相机常用的5个工作频率,单次记录5万帧以上图像,记录20次,分别检测所存储图像数据的性能指标。指标总有3个:1)图像丢帧数,即存储过程中是否有未存储的图像帧数,通过开启相机的帧记数器功能辅助检测;2)附加信息丢帧率,即是否存在附加信息丢失未记录的情况,通过附加信息时间的连续性进行检测;3)时间同步精度,即图像曝光时刻与附加信息的绝对时间的差值,使用自研的时间同步精度检测仪[9]进行检测,该仪器的最小测量精度为1 ms,对每次记录的图像抽检100帧进行计算。
测试结果如表1所示,可以发现,在5个工作频率下分别进行20次超过5万帧的连续记录,系统均未出现图像和附加信息丢帧的情况,且时间同步精度均优于1 ms。
表1 系统检测结果表
本文介绍了一种软硬件结合的图像存储系统结构,提出了基于帧频信号的方法,实现了高速数据采集与存储的时序同步控制。检测结果表明,该系统结构与实现方法有效保证了存储功能的稳定性和可靠性。该系统的结构具有较强可移植性,实现的图像采集存储软件功能可灵活扩展,能够推广应用到其他相关设备与领域。
[1]蒋伟林,胡跃明,陈 安.基于FPGA实时图像采集系统[J].计算机测量与控制,2011,19(5):1215-1216.
[2]崔丽杰,张彦军,刘文怡.基于FPGA和DSP的图像压缩系统设计[J].计算机测量与控制,2014,22(10):3423-3425.
[3]李 勇,刘文怡.一种高速图像数据采集存储系统设计[J].计算机测量与控制,2013,21(2):535-539.
[4]刘 伟.基于Camera Link接口的车载便携式图像实时采集与显示系统的设计[D].西安:长安大学,2013.
[5]沈崟洵,郑力新.基于Camera Link的图像采集系统[J].微型机与应用,2011,30(19):60-62.
[6]戴 鹏,王卫东,任盛伟,等.高速车载数字图像采集关键技术研究[J].计算机测量与控制,2014,22(1):267-269.
[7]张 冬.大话存储[J].北京:清华大学出版设,2015.
[8]刘 彪.基于FPGA高分辨率高帧CMOS相机设计[D].长春:中国科学院大学,2014.
[9]李英环.高速图像数字记录同步精度检测系统设计与实现[D].哈尔滨:哈尔滨工业大学,2013.
Image Storage Sequential Control Method Based on Frequency Signal
Chen Zhijiang,Liu Hui,Xiao Ze
(Jiuquan Satellite Launch Center,Jiuquan 732750,China)
The image storage system of optical devices,which have been serving for a long time,have problems of performance degradation and reliability reduction,a new image storage system structure is designed aim at this situation.A sequential control method base on frequency signal is proposed,driving the hardware and software of the image storage system with the frequency signal,generating absolute time by combining second signal,frequency signal and time information from serial port,implements the four independent synchronous data acquisition,two levels of cache mechanism is raised up to ensure the redundant matching of data rate between collection,packaging,and storing,the image transfer time error is corrected.Test results show that,the image storage system sequence has been effectively controlled,the data collection and storage is stable and reliable for a long time without losing a frame of image,the accuracy of time synchronization is better than 1 ms.
image storage;sequential control;the accuracy of time synchronization
1671-4598(2016)08-0304-03
10.16526/j.cnki.11-4762/tp.2016.08.083
:TP273
:A
2016-03-23;
:2016-04-28。
陈志江(1987-),男,湖南浏阳人,硕士研究生,主要从事光学测量及图像处理方向的研究。