魏建新
(中國飛行試驗研究院 陜西 西安 710089)
隨著信息技術的發展和社會的進步,人們對于多媒體業務的需求不斷增長,多媒體不再局限于文本、語音和圖片,視頻圖像將為用戶提供功能更強大、更完善的服務。視頻技術被廣泛應用于視頻會議、可視電話、視頻點播(VOD)、電子商務、遠程教育等多個領域[1]。與語音、圖片等媒體形式不同,數字視頻數據量龐大,對存儲器的存儲容量、通信信道的傳輸率以及計算機的處理速度等都提出了相當高的要求。解決這個問題單純用增加存儲器容量和通信信道的帶寬以及提高計算機的運算速度等方法是不經濟也是不現實的。因此,視頻數據的高效編碼技術意義重大,是降低存儲成本,緩解網絡帶寬,突破存儲空間和處理器主頻限制的關鍵技術。
在飛行試驗過程中,將飛機上所攝取或抽引的圖像畫面[2]通過視頻遙測傳輸系統實時傳輸到地面監控站,提供給地面工程技術人員、指揮人員使其能夠及時分析和了解實時試飛情況,已成為飛行試驗中必不可少的一種監控手段。隨著數字技術的迅猛發展,數字視頻在飛行試驗方面的應用與發展也日益成熟,圖像畫面的清晰度與模擬視頻信號相比有了質的飛躍。
視頻實時采集系統采用C/S模式,服務器端主要通過采集卡實時采集、保存、往客戶端發送等功能,客戶端主要選擇性的查看某一路視頻數據。網絡傳輸主要采用TCP協議。要求每秒采最大25幀(設為可調),客戶端實時顯示最大25幀(設為可調),保存為MPEG-4格式,畫面要求為最大分辯率為 1024×768。
在試飛實時監控中,對視頻數據編碼來說,所采用的編碼標準應該既要保證編碼后的視頻圖像具有高的質量和好的兼容性,又要盡可能減小記錄器的容量。圖1為常用的視頻編碼標準的比較。
通過對以上視頻編碼標準的比較[3-4],我們覺得MPEG-4更適合在飛行試驗實時監控中對視頻數據編碼的需求。
視頻實時采集系統主要實現對前端四路視頻數據的實時采集,在服務器端可同時采集和儲存四路視頻數據,也可以一次只采集一路視頻數據,再經網絡實時傳輸到客戶端顯示,服務器端也實時顯示所采集的視頻。
本系統服務器端用的是海康威視視頻采集卡,相應的硬件環境已搭建好,現在主要是將上述的數據采集、數據傳輸、保存等功能用軟件如何實現,這也是本論文的主題。系統硬件框架圖見圖2。

圖1 視頻編碼標準的比較Fig.1 Comparison of video coding standard

圖2 系統硬件框架圖Fig.2 The system hardware frame diagram
圖3為服務器端實時采集、記錄、發送視頻數據的程序流程圖。視頻數據量較大 ,這就要求視頻數據處理系統具有實時處理的特點。在服務器端的實現是整個系統的關鍵,在此也承擔了整個軟件系統的大部分工作,因此對軟件和硬件方面要求也很高就成為必然。
軟件要實現對視頻數據的實時采集、控制視頻接口、把視頻數據實時編碼保存并發送到多個客戶端。以上是在服務器上實現的主要功能。
在采集方面最主要是實時性,在此以事件驅動的方法從端口獲取數據,采集到視頻數據在桌面顯示的同時再編碼保存,采集的數據要用軟件的相應模塊處理成以位圖型式的視頻幀流,以利于在服務器端的顯示和編碼保存,在此采用MPEG-4編碼。有利于向客戶端發送以幀為單位的視頻數據流。

圖3 服務器端程序流程圖Fig.3 Server-side program flow chart
在軟件實現方面主要應用了相應的SDK(Software development kit)和 API(應用編程接口)[5],對于視頻的采集用SDK和API更加靈活。在服務器實現軟件方面主要有以下幾個主要模塊:一是采集;二是記錄;三是向客戶端發送;四是圖像的形成;五是桌面顯示;六是對圖像亮度、顏色、位置等的調整;七是采集通道、采樣率、采集時間的選擇。
在服務器桌面顯示的畫面是沒經編碼處理的,但網絡傳輸和保存的視頻數據是經MPEG-4編碼的,這樣有效的減輕了網絡傳輸和服務器的負擔。

圖4 視頻采集服務器端軟件界面Fig.4 Video capture server software interface

圖5 視頻采集參數調整界面Fig.5 Video capture server software interface
用局域網實時傳輸視頻數據已在一些領域大量的應用,局域網以有線局域網居多,因為有線局域網技術成熟、傳輸速度快,但是長時間傳輸大量視頻數據時也會引起傳輸速率不穩定,引起數據堵塞,會導致視頻傳輸的質量大幅度下降,容易引起畫面的重影、抖動、花屏、延遲等現象。
為了在局域網上有效的、高質量的實時傳輸媒體流,需要多種技術的支持,包括網絡傳輸層協議的選擇、編(解)碼技術,網絡傳輸層質量控制技術等等。
網絡傳輸層質量控制技術采用的是TCP/UDP協議,UDP是一種不可靠的、無連接的協議[6],UDP適用于對可靠性要求不高的應用環境。它不提供檢錯和糾錯功能,一旦網絡出現堵塞時,大量的數據報文會丟失。對于MPEG-4編解碼技術,是以幀為單位進行編解碼的,分為關鍵幀和非關鍵幀。在傳輸過程中,由于壓縮率比較高,只要一幀中錯一比特位,將影響其后的更多的比特位,直接造成圖像的模糊、花屏等現象。只有等到下一次關鍵幀的到來才有可能恢復圖像的清晰。如此一來,只能選擇使用TCP來進行網絡通信,TCP提供可靠的數據傳輸,并在相互進行通信的設備或服務之間保持一個虛擬連接。TCP在數據包接收無序、丟失或在交付期間被破壞時,負責數據恢復。它通過為其發送的每個數據包提供一個序號來完成此恢復。再輔助以暫停發送的控制策略,較好的解決局域網中實時視頻傳輸容易引起的重影、抖動、花屏的問題。為了達到視頻傳輸的實時性,總的思想是最少的發送冗余信息,最大程度上發送最新的視頻數據。
在服務器端視頻采集采用從視頻采集卡捕獲視頻數據,經相應軟件模塊處理成位圖型式的視頻幀,然后用MPEG-4編碼進行壓縮,通過TCP實現壓縮后的視頻數據在局域網中的實時傳輸,在客戶端接收完的數據交給MPEG-4解碼器解碼,最后實現視頻顯示。如圖6所示。

圖6 網絡間傳輸流程圖Fig.6 Network transmission flow chart
如果局域網通信速率很高且狀態穩定,則進行實時視頻傳輸就可以達到非常好的效果。但是在網絡出現異常時會導致數據傳輸率不穩定或明顯下降,造成發送端數據積壓。此時就要采取一定的策略來控制發送端(服務器端),以達到實時性的要求,暫停發送策略很好的解決了這一現象。使用此策略有時會有丟幀的現象,但對客戶端的顯示要求是滿足的,在服務器端的采集、顯示、保存不受暫停發送策略的影響,也就是不會有丟幀的現象,雖然應用了暫停發送策略,但已經能夠滿足在客戶端實時監控需求了。
在客戶端可以自行選擇要顯示的某一路視頻,實現客戶端時,主要是要實時監聽和服務器網絡連接狀態、判斷接收的視頻數據是否正常、是否啟用暫停發送策略等。每秒接收的幀數可自行調節,但不能大于服務器端每秒采集的幀數。
在客戶端還要實時對經MPEG-4編碼的視頻數據進行解碼與顯示,MPEG-4解碼速度是完全可以達到實時顯示的要求。

圖7 客戶端程序流程圖Fig.7 Client program flow chart

圖8 客戶端軟件界面Fig.8 Client software interface
本系統對四路視頻進行實時監控,并負責視頻數據的實時采集、記錄和視頻編解碼算法的實現,基于C/S結構的視頻數據實時采集與傳輸系統,在通過各種測試后在試運行期間能夠實現對四路視頻的實時監控,并且在飛行試驗中得到了相應的應用,取得了良好的效果。
[1]陳莉.關于計算機多媒體技術發展趨勢的探討[J].電腦知識與技術,2012(6):3-7.CHEN Li.Discussion on the development trend of computer multimedia technology [J].Computer Knowledge and Technology,2012(6):3-7.
[2]李翠娟,陳川,張曉曦,等.幾種機載視頻技術要點分析與發展趨勢討論[J].航空計算技術,2012(1):129-131,134.LI Cui-juan,CHEN Chuan,ZHANG Xiao-xi,er al.Several airborne video technology development trend analysis and discussion points[J].Aeronautical Computing Technique,2012(1):129-131,134.
[3]畢厚杰,王健.新一代視頻壓縮編碼標準[M].北京:人民郵電出版社,2009.
[4]Andy Beach著.視頻壓縮寶典[M].田尊華,程鋼,譯.北京:清華大學出版社,2009.
[5]劉瑞寧,宋坤.Visual C++從入門到精通[M].北京:清華大學出版社,2008.
[6]王艷芳,戴永,劉東華,等.基于UDP的數據可靠傳輸技術研究與應用[J].計算機工程與應用,2010(3):105-108.WANG Yan-fang,DAI Yong,LIU Dong-hua,et al.Research and application of reliable data transmission technology based on UDP[J].Computer Engineering and Applications,2010(3):105-108.