湯 昊,范志芳
(1.中國空間技術研究院西安分院,西安 710000;2.航天東方紅衛(wèi)星有限公司,北京 100094)
近年來,遙感系列衛(wèi)星的衛(wèi)星數(shù)據(jù)類型和數(shù)據(jù)量越來越多,載荷類型呈現(xiàn)多樣化,遙感衛(wèi)星的分辨率從米級到亞米級,幅寬從幾公里到幾百公里。新型遙感衛(wèi)星的快速發(fā)展,一次性可觀測數(shù)萬平方公里,重訪頻次越來越高,甚至要求可持續(xù)監(jiān)視,數(shù)據(jù)任務量成量級增長,數(shù)據(jù)類型也變化多端,隨著衛(wèi)星種類越來越多,多維信息不斷增強,因此,相應的對遙感地面處理也提出了更好的需求,地面處理必須要考慮衛(wèi)星處理協(xié)同才能發(fā)揮效能,為地面處理帶來新的難題。
目前衛(wèi)星由于處理數(shù)據(jù)量較大,實時性要求較高、數(shù)據(jù)類型多樣化[1-10]等特點,對地面設備在進行基帶處理的時候提出了更高的要求,在設計時如何保證數(shù)據(jù)的多樣化自適應處理成為設計難點。
隨著數(shù)傳技術的飛速發(fā)展,衛(wèi)星數(shù)據(jù)傳輸也呈現(xiàn)越來越多樣化,而相對應的,地面接收處理的需求也隨之逐漸多樣化,如何更加高效地、高速率地完成地面數(shù)據(jù)傳輸?shù)暮A繑?shù)據(jù)處理成為了難點。針對數(shù)據(jù)類型多樣化的實際需求,數(shù)據(jù)格式也呈現(xiàn)多樣化的特點,對不同數(shù)據(jù)格式需要對應的處理方式也不同。例如,不同的數(shù)據(jù)格式長度,就不能使用傳統(tǒng)的固定位置搜索該數(shù)據(jù),必須采用適應范圍更廣泛的搜索方法。文章所論述的處理驗證系統(tǒng)就是以研制基于任意長度幀頭的數(shù)據(jù)流搜索的實現(xiàn)方法,并且以滿足當前衛(wèi)星數(shù)傳基帶處理系統(tǒng)的設計理念而確立的。
衛(wèi)星地面基帶處理系統(tǒng)[11-12]主要對衛(wèi)星下傳數(shù)據(jù)進行處理,恢復出原始數(shù)據(jù),其系統(tǒng)方案設計如圖1所示,分別由格式解析、解壓縮、數(shù)據(jù)監(jiān)控[13]等3部分組成。各模塊具體功能介紹如下:
1)格式解析處理模塊完成對原始基帶數(shù)據(jù)的格式解析處理。接收到前端原始基帶數(shù)據(jù)后,首先進行數(shù)據(jù)幀頭搜索,完成對數(shù)據(jù)的判讀、實時處理、去除格式信息、虛擬信道分離、有效數(shù)據(jù)提取等操作,并實時發(fā)送給后端解壓縮節(jié)點。其前后端的數(shù)據(jù)接收和發(fā)送均是通過網(wǎng)絡傳輸?shù)姆绞絹韺崿F(xiàn),此外,該模塊還具備存儲功能,可將需要的中間某級數(shù)據(jù)存儲在本地服務器,以便分析查看。
2)解壓縮處理模塊接收到格式解析模塊輸出的數(shù)據(jù)后,分別進行幀頭搜索和解壓縮處理,并對處理后的數(shù)據(jù)進行網(wǎng)絡格式打包、信息判讀等操作,將最終的網(wǎng)絡格式數(shù)據(jù)發(fā)送給后端的數(shù)據(jù)監(jiān)控處理模塊。此外,該模塊也應具備存儲功能,把需要的中間某級數(shù)據(jù)存儲在本地服務器,以便后續(xù)分析查看。
3)數(shù)據(jù)監(jiān)控處理模塊對解壓縮處理模塊輸出的數(shù)據(jù)進行幀頭搜索和信息判讀。與前兩個模塊相同,數(shù)據(jù)監(jiān)控模塊也應具備存儲功能,以便后續(xù)分析查看。
圖1 衛(wèi)星地面基帶處理系統(tǒng)總體設計圖Fig.1 Overall design of the satellite ground baseband processing system
1.1節(jié)介紹的衛(wèi)星地面基帶處理系統(tǒng)總體設計方案主要包括3大模塊,分別是格式解析模塊、解壓縮模塊、數(shù)據(jù)監(jiān)控模塊。這3大模塊有一個共同特點,就是每個模塊接收到前端的輸入數(shù)據(jù)之后,都會首先進行幀頭的搜索,然后再進行后續(xù)各自具體的功能處理,因此文章提出的基于任意長度的數(shù)據(jù)幀頭搜索方法對這3大模塊均可適用。下面的介紹中把這3大模塊統(tǒng)稱為數(shù)據(jù)處理模塊。
地面基帶處理系統(tǒng)的數(shù)據(jù)處理模塊的具體數(shù)據(jù)處理流程如圖2所示,對于地面基帶數(shù)據(jù)來說,可能包括n路不同信道的數(shù)據(jù),對于每一路數(shù)據(jù)都需要進行相似的流程處理。
1) 首先進入數(shù)據(jù)接收模塊,接收到前一級的輸出數(shù)據(jù)作為本級的輸入數(shù)據(jù),然后對接收到的輸入數(shù)據(jù)進行幀頭搜索,對于每個模塊而言,搜索的幀頭可能并不相同,但是搜索的機制是一致的,因此統(tǒng)一均可用本文提出的這種幀頭搜索方法實現(xiàn)各種模塊、各種不同字節(jié)幀頭的搜索。
2)對步驟2搜索到的每兩個幀頭之間的數(shù)據(jù)進行數(shù)據(jù)處理,不同的模塊分別進行不同的處理,對于某些特殊的衛(wèi)星型號 ,數(shù)據(jù)處理模塊內(nèi)部也許還會用到二次幀頭搜索,對于這種二次搜索幀頭同樣也可采用本文提出的方法實現(xiàn)。
3)對數(shù)據(jù)處理之后的數(shù)據(jù)進行數(shù)據(jù)格式的編排,根據(jù)實際后級的需求,需要將輸出的數(shù)據(jù)格式編排成指定的數(shù)據(jù)格式,然后將編排之后的數(shù)據(jù)發(fā)送給后級設備。
圖2 地面基帶處理系統(tǒng)流程圖Fig.2 Ground baseband processing system flowchart
衛(wèi)星地面基帶數(shù)據(jù)是一種大容量的數(shù)據(jù)流,一次成像任務,基帶處理系統(tǒng)每次接收到少則幾個G,多則幾十個G,甚至幾百G的數(shù)據(jù),接收到數(shù)據(jù)之后,地面基帶處理系統(tǒng)需要對這些數(shù)據(jù)進行實時的處理。鑒于衛(wèi)星數(shù)傳的處理特點,衛(wèi)星處理的時候給數(shù)據(jù)流增加了一些特定的網(wǎng)絡幀頭,以便標識和查找定位,因此,在地面基帶處理的過程中,就需要不斷的搜索尋找某個特定的網(wǎng)絡幀頭,直到找到需要處理的最終有效的數(shù)據(jù)流,然后對該數(shù)據(jù)流進行后續(xù)真正的處理。
對于以往的衛(wèi)星來說,增加特定網(wǎng)絡幀頭的時候,每兩個網(wǎng)絡幀頭之間的長度是固定的,因此相對應的,對于地面基帶數(shù)據(jù)處理來說,搜索尋找網(wǎng)絡幀頭的時候,只要從固定長度處即可尋找到需要的最終有效的數(shù)據(jù)流。具體流程如下:
1)接收輸入數(shù)據(jù),并放入固定大小的緩存A中;
2)判斷該緩存的固定位置的起始幾個字節(jié)是否為幀頭,如果是,把該緩存的數(shù)據(jù)拷貝到另外一個大緩存B里面,執(zhí)行下面第3步;如果不是,若該步驟是第一次執(zhí)行,那么丟棄,重新繼續(xù)步驟1接收輸入數(shù)據(jù),若不是第一次執(zhí)行,那么同樣把該緩存的數(shù)據(jù)拷貝到另外一個大緩存B里面,執(zhí)行下面第3步;。
3)繼續(xù)接收輸入數(shù)據(jù),重復步驟1、2。
然而,隨著衛(wèi)星發(fā)展的多樣化,根據(jù)某些需要,衛(wèi)星星上壓縮和數(shù)據(jù)處理在增加網(wǎng)絡幀頭的時候,是隨機增加的,每兩個網(wǎng)絡幀頭之間的長度是任意的,并不固定且大小隨機,因此每個幀頭在固定緩存的位置并不固定,這種設計給后端地面基帶數(shù)據(jù)處理增加了一定的難度,而地面基帶數(shù)據(jù)處理在處理的時候搜索尋找網(wǎng)絡幀頭又是必需的一個步驟,因此,文章提出的一種基于任意長度幀頭的數(shù)據(jù)流搜索的實現(xiàn)方法,不僅解決了這個設計難題,而且提高了數(shù)據(jù)處理速度和精確度。
文章提出的一種基于任意長度幀頭的數(shù)據(jù)流搜索的實現(xiàn)方法的具體實現(xiàn)流程圖如圖3所示。
圖3 任意幀頭搜索方法的具體實現(xiàn)流程圖Fig.3 Flowchart of the implementation of any frame header search method
具體實現(xiàn)步驟描述如下:
1)采用引進向量容器(vector)[13-14]的方法,向量容器的數(shù)據(jù)安排以及操作方式與數(shù)組很相似,但是向量容器是動態(tài)的,隨著元素的加入,它會根據(jù)需要自動擴充空間以便容納新的元素。這種方法比較靈活,應用范圍非常廣泛,既可以適用于固定長度的數(shù)據(jù)幀頭搜索,也可以適用于不固定任意長度的數(shù)據(jù)幀頭搜索,而且適用的長度長短隨機。
把數(shù)據(jù)放在一定大小的緩存中,對緩存中的數(shù)據(jù),首先只進行搜索幀頭(幀頭假設為XXXXXXXX),每搜索到一次幀頭,都把該幀頭(XXXXXXXX)所在的位置(設為j),存儲在向量容器中,如:index.push_back(j)即可,對該緩存中的搜頭完畢后,判斷當前該向量容器的大小是否為0,若為0,則表示沒有搜到幀頭XXXXXXXX,若不為0,則進行下一步的操作,對每兩個幀頭XXXXXXXX之間的數(shù)據(jù)進行后續(xù)的基帶處理,如此循環(huán),直到最后一個幀頭XXXXXXXX,把最后一個以XXXXXXXX開頭的數(shù)據(jù)流存儲在一個局部緩存中即可,這樣不會因為搜索幀頭而造成數(shù)據(jù)的丟失。
2)采用定義一個局部緩存的方法,把每次拷貝進來的數(shù)據(jù)(假設大小為BIG_LENGTH)拷貝到該局部緩存A中,把該局部緩存的大小定義為2倍的拷貝數(shù)據(jù)大小(即為2*BIG_LENGTH),原因如下:把最后一個幀頭XXXXXXXX開頭的碼流拷貝到該局部緩存中,且該碼流的大小一定是小于等于拷貝進來的數(shù)據(jù)大小BIG_LENGTH的,因此,只要定義該局部緩存大小為2*BIG_LENGTH,則不會出現(xiàn)數(shù)據(jù)溢出的問題。
根據(jù)以上方法,選取500幅,1536×3072像素的衛(wèi)星圖像[15]作為測試數(shù)據(jù),在相同的硬件平臺上,分別對傳統(tǒng)的搜索方法和本文提出的搜索方法進行對比測試。統(tǒng)計兩種搜頭機制下對每組數(shù)據(jù)處理所需要的時間和計算的精確度,具體統(tǒng)計結(jié)果如表1、表2所列。
表1 新的搜頭機制與傳統(tǒng)搜頭機制測試時間比較Tab.1 Comparison of test time between new search mechanism and traditional search mechanism
表2 新的搜頭機制與傳統(tǒng)搜頭機制測試精確度比較Tab.2 Comparison of testing accuracy between new search mechanism and traditional search mechanism
可以看出,本文提出的新的搜頭機制所消耗的時間少、處理速度更快、精確度更高。
通過該種幀頭搜索的方法,可以實現(xiàn)對任意長度、任意形式的網(wǎng)絡數(shù)據(jù)幀頭的搜索查找。該方法已經(jīng)成功應用于目前地面基帶數(shù)據(jù)處理系統(tǒng)中,成功應用于多個型號衛(wèi)星,數(shù)據(jù)處理效率得到了很大的提升。
目前衛(wèi)星地面接收處理軟件內(nèi)部會涉及到海量數(shù)據(jù)的處理工作,如何提高數(shù)據(jù)處理的任意性、廣泛性、實時性以及準確性是軟件設計的重點和難點。因此文章提出了一種基于任意長度幀頭的數(shù)據(jù)流搜索的實現(xiàn)方法。經(jīng)過大量的測試驗證,通過該種方法,地面處理軟件能夠完成實時對任意長度數(shù)據(jù)幀頭的搜索查找,該機制對于軟件搜索的廣泛性具有較大的提升,具有很好的應用價值。