安豐光,羅 旭,程承旗,濮國梁,宋樹華
(1. 北京大學 遙感與地理信息系統研究所,北京100871; 2.中煤科技集團公司,北京100013)
2008年5月12日,四川汶川8.0級大地震波及了半個中國,也牽動了全國人民的心。地震發生后,震中附近的重災區道路中斷,通信中斷。在“運輸是基礎,通信是關鍵”的緊急時刻,國際海事衛星也很“湊巧”地被關閉了十多個小時,使得災區成為失去和外界一切通信聯系的“孤城”。而我首批武警官兵于當晚22點左右到達地震重災區,利用北斗衛星導航定位系統用戶終端機連夜陸續發回的實時災情數據,是地震重災區發出的第一束生命急救電波[1-2]。
但由于北斗一號衛星導航定位系統[3]是主動式雙向測距二維導航,用戶需向北斗系統發送消息請求才能獲得服務[4-5],且發送第一條消息后需隔Δt時間才能發送第二條消息,而不同等級北斗用戶卡的等待間隔Δt從數秒到幾十分鐘不等、每次發送的字節數不等。同時,北斗短報文系統的通信帶寬只有幾百字節[6],適合傳輸關于災情的文字信息。因此,利用北斗傳輸真實場面影像數據時,會遇到如下問題:
1) 通信帶寬窄與影像數量大之間的矛盾。相對于北斗短報文系統一百多漢字的通信帶寬而言,影像數據量相當大,因此傳輸整幅影像數據需要很長的時間。
2) 系統服務時間長,數據傳輸時效性差。由于用戶連續發送兩次消息之間有Δt等待時間[6],因此利用北斗連續傳輸大數據量影像數據時,整個文件接收過程耗時較長,從而導致數據傳輸時效性較差。
3) 北斗短報文系統連續傳輸信息時存在數據包丟失現象。由于北斗轉發的信號較弱,易受地面目標遮擋影響,因此在傳輸連續的數據時,容易出現數據包丟失的現象。
4) 影像數據缺乏支持局部數據更新的數據結構與機制。目前,影像數據更新一般采用更新整個影像文件的方式,這種更新方式在高帶寬的通信網絡中沒有問題,但通過類似于北斗短報文系統的通信環境進行數據更新就非常困難。因此,造成影像數據更新困難的原因之一就是缺乏一種支持影像局部更新的數據結構與機制。
為解決上述問題,本文提出基于剖分影像金字塔模型(subdivision image pyramid,SIP)的北斗衛星短報文系統影像傳輸策略與方法,為應急情況下傳輸遙感影像提供理論支撐。
北斗衛星導航定位系統不同于GPS的一個重要特色是,除提供定位服務外,還能提供簡短報文通信服務,只是不同級別的用戶服務時間間隔、一次傳輸數據量大小等存在差別[7]。因此,在利用北斗衛星短報文系統數據傳輸應用方面,國內也有少數學者進行相關研究,如張東等[8]于2005年利用北斗衛星進行文件傳輸;成方林等[9]2008年對北斗衛星傳輸大數據的傳輸協議進行了探討。但由于北斗衛星通信帶寬和服務頻率的限制,采用北斗衛星傳輸大數據文件的應用很少。
針對傳統的影像金字塔模型缺乏對局部影像數據的快速索引,從而導致影像數據局部更新困難的問題,北京大學空天信息工程研究中心項目組2009年提出了影像金字塔內分層、分塊的策略,以及剖分影像塊按照Hilbert曲線[10]進行編碼與組織的剖分金字塔SIP模型[11-12]。這種基于數據塊組織的數據結構有利于局部數據的快速提取與更新。
基于北斗衛星遙感影像的傳輸框架如圖1所示。其中,剖分影像金字塔SIP是整個影像更新的基礎,其基本制作過程是先根據北斗衛星短報文通信帶寬,分析最佳傳輸的影像塊粒度并建立影像SIP文件;然后將SIP數據預裝到接收終端,并作為底圖數據。當需對接收端進行影像數據更新時,發送端會對數據更新的影像塊進行變化檢測,然后將信息變化的影像塊經壓縮分包處理后與影像塊編碼一起,并由北斗短報文系統發送給接收端。接收端則根據數據編碼將影像塊放到恰當的影像位置,從而實現對接收端遙感影像數據的更新。

圖1 基于北斗衛星短報文系統的遙感影像傳輸框架圖
針對北斗衛星通信資源有限而遙感影像數據量相對較大的矛盾,根據前文所述數據傳輸框架,本文采用了以下傳輸策略。
(1) 基于影像塊的數據傳輸
針對影像數據量大與通信帶寬窄的矛盾和北斗更新整個文件方式時效性低的問題,本文采用影像壓縮技術和傳輸局部目標區域數據塊的傳輸策略,減少傳輸數據量和次數,以解決窄帶寬通信傳輸大影像數據的矛盾,達到提高數據傳輸的時效性。因此,數據塊大小的設計是傳輸的關鍵。為此,建立SIP時,應根據實際通信帶寬、遙感影像的位深(bit depth)、圖像壓縮比例(scale)等信息,來確定SIP影像塊大小。
(2) 基于變化信息的影像塊傳輸
鑒于同一區域時間相近的不同時相遙感影像存在大量信息冗余的特點和SIP局部數據更新的優勢,本文提出只更新信息變化的數據塊的策略,以代替傳統傳輸整幅影像數據方式,通過減少傳輸數據量,實現數據快速更新。具體方法是,在發送端采用比值法對SIP中影像塊進行變化檢測,確定是否需對影像進行數據更新;對需更新的影像塊,通過壓縮打包等處理后,由北斗發送給接收端,為接收端進行影像數據更新。
圖2中,遙感影像變化檢測方法采用目前成熟的比值法。在進行變化監測時,先設置閾值k0=0.75,并比較變化信息與原信息的百分比值k與k0的大小來確定是否應該更新影像。若k≥k0,認為信息發生了變化,數據須更新;若k 圖2 基于變化信息的遙感影像更新流程圖 (3) 基于圖標編碼的信息傳輸 針對北斗通信帶寬窄和影像數據量大的現狀,本文提出傳輸圖標編碼的傳輸策略,即對狀態有限的目標,如道路是否暢通、橋梁是否完好等情況,發送端和服務端對這些目標狀態的影像塊或圖標進行編號。當某一方發送這些目標信息時,只需將目標編號和相應的地址編碼信息發送給另一方,然后另一方通過編碼解譯將對應目標狀態的影像數據塊對數據底圖進行更新。這種通過傳輸地物狀態圖標編碼方式,可極大地降低數據傳輸量和傳輸次數,適應窄帶寬的北斗通信環境,提高北斗數據傳輸效率。 鑒于北斗通信信號易受高目標遮擋而出現數據包丟失的現象,若因丟失某個數據包而重傳整個文件,將花費更長的時間。因此,本文針對北斗通信沒有對丟失數據包進行補傳的機制,專門設計了數據包丟失檢測和重傳技術。但為了防止因接收補傳數據包而長時間等待,先介紹丟包處理的一些規則。 規則1 因第一個數據包含有影像塊編碼、大小,以及傳輸包數等信息,故若第一個數據包丟失,則接收端放棄接收后續的其他數據包。 規則2 接收端反饋丟失數據包信息時,最多反饋2次,每次等待時間為2Δt;若等待時間超過4Δt且仍沒有接收到發送端補發的消息,則接收端放棄反饋丟失數據包信息并銷毀已接收的數據。 規則3 接收端反饋丟包信息且獲得補發的數據包后,當補發的數據包仍有數據包丟失,仍繼續反饋補發所丟失的數據包信息。但若第二次補發數據包仍有數據包丟失,此后放棄反饋丟失的數據包信息并銷毀已接收的數據。 基于前文的處理規則,北斗通信數據包丟失檢測和重傳機制如圖3所示。在圖3中,為了確保通信成功,發送端在請求消息發送時,在A時刻開始進行時間t1統計,若t1>2Δt且仍無信息反饋,則繼續進行發送申請消息;若重復4次申請后仍然無響應,則放棄申請。若通信正常,接收端在接收到第一個數據包后(B時刻)開始進行統計丟失數據包。如果沒有數據包丟失,則表示接收數據成功;如果存在數據包丟失,則當接收端接收到文件結束消息后(C時刻),開始反饋丟包信息并統計時間t2和反饋次數m。若t2>2Δt且沒有收到反饋信息,則再次發送重傳申請;若t2>4Δt時仍沒收到重傳數據包則放棄反饋且銷毀已接收的數據;若反饋次數m>2且仍有數據包丟失,則放棄反饋并銷毀已有相關信息。 圖3 北斗衛星數據丟包檢測與重傳機制 下面是本文設計的數據傳輸協議頭結構: typedef struct tagBDPACKETHEADER{ DWORD dwdBDID;∥發送端北斗衛星用戶ID DWORD dwdBDDestID;∥接收端北斗衛星用戶ID BYTE btPacketID;∥標識;0x0為消息,0x01為一般文件,0x02為影像,0x03為圖標 WORD wdPacketNo;∥傳輸數據包的序號 BYTE btPacketType;∥數據包的類型;0x0為第一次發送,0x01為補發 DWORD dwdPacketLength;∥傳輸內容的長度 }; 在數據接收時,接收端通過分析包頭的包序號wdPacketNo判斷是否丟包并將所丟失包的序號進行記錄;通過判斷數據包類型btPacketType來判斷所接收的數據包是第一次發送還是補發的。 (1)發送端 發送端對遙感影像塊進行JPEG2000[10]壓縮處理并添加傳輸協議頭結構,制作成北斗系統標準的數據包后,由北斗衛星通信組件模塊發送給接收端。此外,發送端還需補發接收端反饋丟失的數據包。發送端信息處理流程如圖4所示。 (2) 接收端 接收端收到數據包后,首先對數據包進行分析,判斷是否存在丟包,以及數據包是第一次發送的還是補發的。若是第一次發送的數據包,則直接將除傳輸協議頭結構外的影像數據追加到接收影像數據的緩沖區中,并進行JPEG2000數據包解壓;若是補發的數據包,則根據數據包序號信息將影像數據插入到影像緩沖區相應的位置;若數據包是第一次發送的但并不是已接收的數據包的后續包,則表明存在丟包,需進行丟包信息統計,并將丟包信息通過北斗反饋給發送端。圖5是接收端信息處理流程。 圖4 發送端處理流程圖 圖5 接收端處理流程圖 本文以北斗衛星在5·12汶川地震救援為背景,利用Microsoft Embedded Visual C++4.0開發了一套利用北斗衛星短報文系統傳輸遙感影像手持終端模擬系統,并采用大小為10 888 B×9960 B×3 B、分辨率為0.61 m的遙感影像作為模擬試驗數據。 模擬系統發送端為一臺PC服務器,通過串口與北斗用戶機相連;接收端為一個北斗手持終端,終端中使用的北斗衛星用戶卡和北斗衛星OEM通信模塊均由成都國騰電子集團提供。模擬系統采用北斗衛星用戶卡一次傳輸數據包大小為106 B、服務時間間隔Δt為45 s。在模擬試驗時,發送端通過串口由北斗用戶機將信息發送給北斗衛星,接收端通過OEM模塊提供的接口接收北斗衛星傳輸的數據信息。 考慮到傳輸環境的特殊性和手持終端的資源有限性,模擬系統在對道路是否暢通、橋梁是否損毀等信息傳輸時,采用傳輸圖標編碼方式進行信息更新;而對山體滑坡、堰塞湖等信息,采用傳輸影像的方式。 鑒于北斗用戶卡的通信限制,在模擬試驗過程中,測試數據按16像素×16像素大小進行分塊、2像素×2像素合成1個像素的方法生成7層不同分辨率的剖分影像金字塔SIP,并作為接收端和發送端底圖數據。表1為傳輸不同大小的剖分遙感影像或目標編碼時所需的時間,圖6是采用丟包重傳機制對38次數據傳輸試驗結果統計圖。其中,8次丟包重傳試驗中,4次是由于第一個數據包丟失而導致的數據接收失敗。 圖6 采用丟包重傳機制的試驗統計 影像傳輸方式大小/B所用時間/s次數/次影像塊78K33930754(理論值)影像塊(16像素×16像素)8222706圖標編碼411 由表1可知,采用傳輸16像素×16像素的影像塊和圖標編碼方式時,所用時間為270 s和1 s,數據傳輸效率和實效性明顯提高。 系統測試的配置如下:發送端為Intel(R) Core(Tm)2 Duo CPU E4600,2.4 GHz,內存2 GB,硬盤240 GB的PC機;接收端為Intel(R) PXA263處理器,400 MHz,內存64 MB, Flash 32 MB,固存1 GB手持終端PDA。 試驗證明,基于SIP的北斗衛星短報文系統傳輸影像技術及所采用的傳輸策略,較好地解決了北斗衛星系統數據傳輸丟包問題,并將北斗窄帶寬通信環境下的影像數據更新的實時性提高至分鐘級,使得大數據量的遙感影像數據近實時更新成為可能,使得北斗通信功能得到了更大的發揮,具有重要的應用價值。 參考文獻: [1] 宋麗芳,陳全育.集團公司研制的衛星助力抗震救災[EB/OL].[2008-05-20]. http:∥www.spacechina.com/n25/n144/n206/n214/ c60255/ content.html. [2] 羊城晚報.“北斗”衛星系統通信功能獨特 汶川地震救災立功[EB/OL]. [2008-11-08]. http:∥www. chinanews.com/gn/ news/2008/11-08/ 1442200.shtml. [3] 劉傳潤.北斗衛星導航定位系統的功能原理與前景展望[J].中國水運,2008,8(1):165-166. [4] 李猛,李穎.論我國衛星導航的應用現狀與發展[J].科技傳播,2011(1):190-191. [5] 范本堯,李祖洪,劉天雄.北斗衛星導航定位系統在汶川地震中的應用及建議[J].航天器工程,2008,17(4):6-13. [6] 李罡,王志明,呂晶.衛星導航技術專題講座(二)第3講 我國衛星導航定位系統簡介[J].軍事通信技術,2009,30(4):94-97. [7] 呂偉,朱建軍.北斗衛星導航定位系統發展綜述[J].地礦測繪,2007,23(3):29-32. [8] 張東,王志良,孟謙.基于北斗衛星技術的交通服務系統[J].微計算機信息,2005,21(2):186-189. [9] 成方林,張翼飛,劉佳佳.基于“北斗衛星”衛星導航系統的長報文通信協議[J].海洋技術,2008,27(1):26-28. [10] 冉令輝.全球空間信息剖分編碼模型研究[D].北京:北京大學,2008. [11] 萬元嵬. 影像數據剖分金字塔結構研究[D].北京:北京大學, 2009. [12] 程承旗,張恩東,萬元嵬,等.遙感影像剖分金字塔研究[J].地理與地理信息科學,2010,26(1):19-23. [13] 趙冬青,呂志平,張西光,等.基于北斗的大地測量一體化生產系統研究[J].測繪通報,2009(3):1-4. [14] 朱永輝,白征東,過靜珺,等.基于北斗一號的地質災害自動監測系統[J].測繪通報,2010(2):5-7.
四、關鍵技術和設計流程
1. 數據包丟失檢測和重傳技術

2. 設計流程


五、實例應用


六、結束語