陳志江,劉 暉,肖 澤
(中國酒泉衛(wèi)星發(fā)射中心,甘肅酒泉 732750)
基于幀頻信號的圖像存儲時序控制方法
陳志江,劉 暉,肖 澤
(中國酒泉衛(wèi)星發(fā)射中心,甘肅酒泉 732750)
針對長時間服役光學設(shè)備圖像存儲系統(tǒng)性能退化和可靠性降低的問題,設(shè)計了新的圖像存儲系統(tǒng)結(jié)構(gòu);提出了一種基于幀頻信號的時序控制方法,以幀頻信號為基準驅(qū)動系統(tǒng)軟硬件工作,結(jié)合秒信號、幀頻信號與串口時間生成絕對時間,實現(xiàn)了四路獨立數(shù)據(jù)流的同步采集,通過兩級緩存機制保證數(shù)據(jù)采集-打包-存儲之間的速率冗余匹配,對圖像轉(zhuǎn)移時間誤差進行了修正;檢測結(jié)果表明,系統(tǒng)時序得到了有效控制,長時間采集存儲數(shù)據(jù)穩(wěn)定可靠不丟幀,時間同步精度優(yōu)于1 ms。
圖像存儲;時序控制;時間同步精度
光學設(shè)備具有數(shù)據(jù)直觀、測量精度高等優(yōu)點,在天文觀察、航天測控等領(lǐng)域有著廣泛應用。隨著設(shè)備的數(shù)字化,圖像分辨率與拍攝頻率的提高,每秒需實時處理的數(shù)據(jù)量很大,對圖像存儲系統(tǒng)的性能要求很高[1-3]。正在服役的光學設(shè)備,受研制時技術(shù)條件與硬件性能的限制,圖像存儲系統(tǒng)采用分塊并行存儲的方法,即將一幀圖像分成多個數(shù)據(jù)塊同時存儲至獨立介質(zhì),事后導出時再將數(shù)據(jù)塊重新組合成完整的一幀,系統(tǒng)采用硬件實現(xiàn),達到了不低于400 MB/s的存儲性能指標。隨著服役時間增加,圖像存儲系統(tǒng)性能下降、可靠性降低,容易出現(xiàn)圖像丟幀、錯幀、附加信息錯亂等問題,嚴重影響了設(shè)備的正常使用。
基于上述情況,在當前技術(shù)背景下,使用可編程圖像采集卡與PCI-E固態(tài)硬盤,重新設(shè)計了圖像存儲系統(tǒng)結(jié)構(gòu)。為解決系統(tǒng)中圖像采集與存儲過程的時序控制問題,提出一種基于幀頻信號的方法,實現(xiàn)了各數(shù)據(jù)流之間的同步采集與存儲,保證了時間同步精度。
圖像存儲系統(tǒng)結(jié)構(gòu)如圖1所示,以一臺工控機為硬件主體,通過軟件實現(xiàn)圖像的實時采集與存儲功能。光耦觸發(fā)卡接收外部時統(tǒng)終端的幀頻信號與秒信號,并將兩個信號傳送至圖像采集卡,秒信號作為圖像采集卡的工作基準,幀頻信號通過Camera Link接口傳送到相機[4-5],作為相機的拍攝驅(qū)動信號,同時也作為圖像采集卡的采集驅(qū)動信號,保證了相機拍攝與圖像采集之間的時序同步,此外秒信號與幀頻信號可以通過API接口函數(shù)訪問,作為軟件工作線程的驅(qū)動信號。串口卡實時采集頻率為400 Hz的三路串口數(shù)據(jù),其中串口A與串口E的數(shù)據(jù)分別為光學設(shè)備跟蹤架的方位與俯仰值,串口T的數(shù)據(jù)包括時間、方位俯仰修正值、曝光時間、焦距等,三路串口的數(shù)據(jù)共同組成相機拍攝時刻對應的圖像附加信息。軟件需要實現(xiàn)的功能,就是通過采集卡獲取圖像原始數(shù)據(jù),與對應時刻的串口數(shù)據(jù)組合,形成一幀完整的測量圖像存儲至固態(tài)硬盤中,獲取的數(shù)據(jù)使用過雙頭顯卡實時顯示。
系統(tǒng)的主要數(shù)據(jù)流包括:圖像采集卡通過Camera Link獲取的原始圖像數(shù)據(jù),以及通過3個串口獲取的附加信息數(shù)據(jù)。四路數(shù)據(jù)的物理鏈路獨立,需要保證獲取數(shù)據(jù)流的連續(xù)穩(wěn)定不缺失,同時還要確保高精度的時刻匹配,這是整個系統(tǒng)正確性與可靠性的關(guān)鍵,歸根結(jié)底是時序的高精度控制問題。
2.1 絕對時間生成算法
通過實際測算,串口T存在恒定的數(shù)據(jù)傳輸延遲(恒小于1 s),因此其數(shù)據(jù)中的時間信息是不準確的。系統(tǒng)沒有直接通過時統(tǒng)終端獲取絕對時間,因此當前系統(tǒng)最大的問題是缺乏絕對時間的有效源。解決該問題的辦法,一是增加時統(tǒng)終端和相關(guān)處理模塊,但會造成系統(tǒng)成本與復雜度的增加;二是基于系統(tǒng)現(xiàn)有的信號條件生成絕對時間,該方法既不增加成本也不改變系統(tǒng)結(jié)構(gòu),使用軟件方式即能夠方便靈活地完成。
圖1 圖像存儲系統(tǒng)結(jié)構(gòu)圖
觀察發(fā)現(xiàn),每次系統(tǒng)啟動后串口T獲取的時間延遲值都不一樣,但單次啟動后延遲值恒定小于1 s且后續(xù)數(shù)據(jù)流穩(wěn)定。圖像采集卡為光耦觸發(fā)卡轉(zhuǎn)發(fā)的秒信號與頻率信號接供了API函數(shù)接口,這意味著每次秒信號到來時獲取的串口T時間值在秒量級上恒定差1 s,此時毫秒位為0,在秒與秒信號之間的毫秒位可以通過幀頻信號步進生成。因此,設(shè)計基于串口T時間信息、秒信號和幀頻信號的絕對時間生成算法,如圖2所示。
圖2 絕對時間生成算法流程圖
每次秒信號到來時,將毫秒計數(shù)器ms_cnt置為0,將秒計數(shù)器s_cnt加1,判斷當前秒計數(shù)器若小于N(N為數(shù)據(jù)流穩(wěn)定性的判斷周期,根據(jù)實情況選?。?,則采集串口時間信息并與上一次時間比較,若時間差為1秒則將設(shè)置當前的秒時間,若時間差不為1秒則表示當前數(shù)據(jù)流不穩(wěn)定,將s_cnt置為0。通過N個周期的數(shù)據(jù)流穩(wěn)定性判斷后,便獲取了準確的秒時間,后續(xù)秒信號到來時只需將秒時間步進加1即可。而在每一個幀頻信號到來時,將幀頻計數(shù)器步進加1。通過秒時間、幀頻與毫秒計數(shù)器的計算,即可得到當前幀頻時刻的絕對時間,計算公式如下所示:
式中,abs_time為絕對時間 (ms),s_time為秒時間值 (ms),ms_cnt為當前時刻的頻率計數(shù)值,frequency 為系統(tǒng)當前使用的頻率值。
通過以上算法實現(xiàn)了絕對時間生成,但存在的風險性是:當秒信號到來的同時有一個幀頻信號需要響應,從宏觀的理想狀況看這兩個信號是同時到來的,但從微觀的實際軟硬件處理機制上分析,系統(tǒng)對這兩個信號的處理存在不確定的先后順序,這導致一個秒信號周期內(nèi)處理的幀頻信號總數(shù)可能是frequency±1個,這種不確定性稱之為競爭冒險,會嚴重影響系統(tǒng)時序同步控制。
為消除秒信號與幀頻信號的競爭冒險帶來的不確定性因素,對幀頻信號進行取反。如圖3所示,幀頻信號的脈寬為ΔT,信號觸發(fā)以上升沿為準,進行取反操作后,相當于將上升沿延遲了ΔT,這樣確保了在每個秒信號到來時,同時到來的幀頻信號永遠滯后ΔT時間觸發(fā),從而不再存在競爭冒險問題。ΔT的取值為微秒級,對于系統(tǒng)而言這樣極微小的延遲不會影響后序處理的時序控制。
圖3 消除競爭冒險時序圖
2.2 數(shù)據(jù)同步采集方法
系統(tǒng)的數(shù)據(jù)主要由兩部分組成:(1)圖像原始數(shù)據(jù),由相機通過Camera Link接口傳送至圖像采集卡,采集卡將數(shù)據(jù)映射至內(nèi)存中,通過API接口函數(shù)可獲取原始圖像數(shù)據(jù),數(shù)據(jù)頻率與幀頻一致;(2)附加信息數(shù)據(jù),通過串口卡同時采集A、E和T三個獨立串口傳輸?shù)臄?shù)據(jù)流,數(shù)據(jù)頻率為固定400 Hz。最終的數(shù)據(jù)經(jīng)由4個獨立接口提供,需要通過時序控制保證數(shù)據(jù)采集同步進行。
絕對時間由秒信號與幀頻信號共同生成,而幀頻信號同時也是相機的工作時序,盡管串口數(shù)據(jù)頻率固定為400 Hz,但系統(tǒng)的工作幀頻一定可以整除400,因此以幀頻信號作為數(shù)據(jù)同步采集的基準時序。如圖4所示,每一個幀頻驅(qū)動信號到來時,采集的是上一幀周期內(nèi)完成傳輸?shù)膱D像以及3個串口的數(shù)據(jù)幀,這樣就保證了4個獨立通道的數(shù)據(jù)采集的同步。當幀頻為frequency時,從串口中每次采集的數(shù)據(jù)幀數(shù)為400/frequency個,要使數(shù)據(jù)的同步精度最高,則以最新一幀數(shù)據(jù)為準,舍棄其他數(shù)據(jù),并以幀頻信號時刻生成的絕對時間作為附加信息的時間值。
圖4 數(shù)據(jù)同步采集時序圖
圖像采集卡與串口卡中都存在數(shù)據(jù)緩存處理機制,數(shù)據(jù)采集時采用先入先出的方法優(yōu)先采集緩存數(shù)據(jù),初始的數(shù)據(jù)緩存將極大地影響數(shù)據(jù)之間的同步精度。因此,在系統(tǒng)完成初始化正式進行數(shù)據(jù)同步采集之前,首先進行M個周期大批量的數(shù)據(jù)采集,清空緩存數(shù)據(jù),使后續(xù)數(shù)據(jù)的傳輸與采集達到實時同步。M根據(jù)實際情況選取,以達到完全清空緩存數(shù)據(jù)為準。
2.3 數(shù)據(jù)同步存儲方法
絕對時間的生成與數(shù)據(jù)的同步采集,都是軟硬件相配合完成的時序控制過程,實現(xiàn)了數(shù)據(jù)流從硬件接口到計算機內(nèi)存的轉(zhuǎn)移,而數(shù)據(jù)存儲通過純軟件方式完成,為實現(xiàn)這一過程中的時序控制,在軟件中使用了兩級緩存機制[6],如圖5所示。
圖5 數(shù)據(jù)存儲的兩級緩存機制
串口數(shù)據(jù)采集線程與圖像數(shù)據(jù)采集線程在幀頻信號的驅(qū)動下按時序進行工作,保證了數(shù)據(jù)采集的同步與正確。緩存數(shù)據(jù)結(jié)構(gòu)均使用先入先出隊列實現(xiàn),一級緩存有兩個:一個存放完整附加信息幀,由3個串口獲取的數(shù)據(jù)和絕對時間重新組合而成;另一個存放原始圖像數(shù)據(jù)數(shù)據(jù)幀。軟件在接收到存儲指令后,從下一個幀頻信號開始,首先清空一級緩存拋棄無用過時的數(shù)據(jù),后續(xù)的過程中一旦兩個一級緩存中均有超過L幀的數(shù)據(jù),便各提取一幀打包為最終需要的存儲格式,放入二級緩存中;文件寫入線程在檢測到二級緩存中的數(shù)據(jù)超過L幀時,則將其寫入到硬件中保存為數(shù)據(jù)文件。緩存中預留的L幀數(shù)據(jù)進行彈性處理,方便進行彈性誤差修正,同時也能減少其他工程實現(xiàn)上問題的產(chǎn)生[7]。
根據(jù)相機的工作原理[8],相機的工作時序如圖6所示。圖像完成曝光后,需要經(jīng)過一個轉(zhuǎn)移時間t_out才能完成圖像數(shù)據(jù)的送出,即圖像數(shù)據(jù)的獲取總是滯后于曝光完成時刻,在數(shù)據(jù)存儲時需要進行修正。在軟件中,附加信息的時間通過秒信號與幀頻信號生成,對應這一時刻的絕對時間,與圖像曝光完成時的時刻存在不一致。相機完成圖像數(shù)據(jù)轉(zhuǎn)移所需的幀周期n=t_out\t_frequency+1,“\”為整除運算,t_out為圖像轉(zhuǎn)移時間,t_frequency 為幀頻周期時間。相機手冊給出的圖像轉(zhuǎn)移時間t_out為8 ms左右,當系統(tǒng)以400 Hz頻率工作時,附加信息應該修正2幀;當系統(tǒng)以低于400 Hz頻率工作時,附加信息應該修正1幀。由于在緩存中預留了L幀的彈性處理空間,在軟件上能夠非常方便地實現(xiàn)修正。
圖6 相機圖像曝光與轉(zhuǎn)移時序
在高速數(shù)據(jù)存儲方面,通過使用兩級緩存機制,第一級緩存給數(shù)據(jù)采集線程與數(shù)據(jù)打包線程間增加了彈性量,第二級緩存在數(shù)據(jù)打包線程與文件寫入線程中增加了彈性量,解決了使用軟件方法實現(xiàn)可能存在的采集-打包-存儲三級線程執(zhí)行的速率不匹配問題,同時通過緩存中預留的彈性處理空間,能夠很好地解決相機圖像數(shù)據(jù)幀轉(zhuǎn)移時間帶來的滯后誤差修正問題。
基于前文介紹的系統(tǒng)結(jié)構(gòu)與時序控制方法,在工控機上實現(xiàn)了該圖像存儲系統(tǒng),工控機配置上Intel Core i5四核3.4 GHz,內(nèi)存8 G,搭載480 G的PICE接口固態(tài)硬盤。
對實現(xiàn)的圖像存儲系統(tǒng)進行系統(tǒng)檢測,檢測方法為:對相機常用的5個工作頻率,單次記錄5萬幀以上圖像,記錄20次,分別檢測所存儲圖像數(shù)據(jù)的性能指標。指標總有3個:1)圖像丟幀數(shù),即存儲過程中是否有未存儲的圖像幀數(shù),通過開啟相機的幀記數(shù)器功能輔助檢測;2)附加信息丟幀率,即是否存在附加信息丟失未記錄的情況,通過附加信息時間的連續(xù)性進行檢測;3)時間同步精度,即圖像曝光時刻與附加信息的絕對時間的差值,使用自研的時間同步精度檢測儀[9]進行檢測,該儀器的最小測量精度為1 ms,對每次記錄的圖像抽檢100幀進行計算。
測試結(jié)果如表1所示,可以發(fā)現(xiàn),在5個工作頻率下分別進行20次超過5萬幀的連續(xù)記錄,系統(tǒng)均未出現(xiàn)圖像和附加信息丟幀的情況,且時間同步精度均優(yōu)于1 ms。
表1 系統(tǒng)檢測結(jié)果表
本文介紹了一種軟硬件結(jié)合的圖像存儲系統(tǒng)結(jié)構(gòu),提出了基于幀頻信號的方法,實現(xiàn)了高速數(shù)據(jù)采集與存儲的時序同步控制。檢測結(jié)果表明,該系統(tǒng)結(jié)構(gòu)與實現(xiàn)方法有效保證了存儲功能的穩(wěn)定性和可靠性。該系統(tǒng)的結(jié)構(gòu)具有較強可移植性,實現(xiàn)的圖像采集存儲軟件功能可靈活擴展,能夠推廣應用到其他相關(guān)設(shè)備與領(lǐng)域。
[1]蔣偉林,胡躍明,陳 安.基于FPGA實時圖像采集系統(tǒng)[J].計算機測量與控制,2011,19(5):1215-1216.
[2]崔麗杰,張彥軍,劉文怡.基于FPGA和DSP的圖像壓縮系統(tǒng)設(shè)計[J].計算機測量與控制,2014,22(10):3423-3425.
[3]李 勇,劉文怡.一種高速圖像數(shù)據(jù)采集存儲系統(tǒng)設(shè)計[J].計算機測量與控制,2013,21(2):535-539.
[4]劉 偉.基于Camera Link接口的車載便攜式圖像實時采集與顯示系統(tǒng)的設(shè)計[D].西安:長安大學,2013.
[5]沈崟洵,鄭力新.基于Camera Link的圖像采集系統(tǒng)[J].微型機與應用,2011,30(19):60-62.
[6]戴 鵬,王衛(wèi)東,任盛偉,等.高速車載數(shù)字圖像采集關(guān)鍵技術(shù)研究[J].計算機測量與控制,2014,22(1):267-269.
[7]張 冬.大話存儲[J].北京:清華大學出版設(shè),2015.
[8]劉 彪.基于FPGA高分辨率高幀CMOS相機設(shè)計[D].長春:中國科學院大學,2014.
[9]李英環(huán).高速圖像數(shù)字記錄同步精度檢測系統(tǒng)設(shè)計與實現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學,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-),男,湖南瀏陽人,碩士研究生,主要從事光學測量及圖像處理方向的研究。