關鍵詞 視頻服務器 嵌入式 MPEG-4 存儲體系
1引言
視頻監控系統是日常生產生活中的重要輔助設備,應用十分廣泛。當前視頻監控系統正逐步由模擬化走向數字化。隨著視頻壓縮技術和網絡技術的發展,開發新一 代的基于計算機網絡和多媒體MPEG-4壓縮算法的視頻監控系統已成為整個行業技術發展的主要方向之一。視頻服務器是視頻監控系統中最關鍵的組成部分,主 要負責視頻資源的存儲播放,其工作能力極大地影響著視頻監控系統的服務能力和服務質量。本文提出并研究設計了一種基于MPEG-4的嵌入式網絡視頻服務 器。該系統采用目前計算機領域最為活躍的嵌入式系統技術,以高性能嵌入式處理器、DSP處理器和嵌入式Linux操作系統為核心對嵌入式視頻監控模塊進行 設計,并采用流媒體MPEG-4技術,通過IP多播技術、RTP/RTCP協議實時傳送視頻監控流。服務器外部有多種網絡接口,可方便地接入網絡。可實現 通過Internet或Intranet對任意一個監控點進行實時監控,實現一個監控中心,多個監控點的控制。非常適合對那些有眾多的監控單元,又分布比 較松散的對象進行集中和即時監控。在監控端,工作人員只需一臺與視頻服務器聯網的計算機即可觀看實時圖像。視頻服務器每秒鐘所傳輸的幀數可以根據網絡情況 自動調節,以適應通信網情況的變化。如圖1所示為視頻監控系統的基本結構。
圖1 視頻監控系統的基本結構
2 視頻服務器采用嵌入式Linux的優點
從目前的監控系統來看,監控系統產品都是基于通用PC平臺的。與嵌入式平臺的系統相比,PC平臺的系統普遍存在著一些問題:首先,當前PC操作系統的主流 Windows主要是針對個人的辦公應用,面向通用目的的沒有專用系統的針對性,在資源的使用上不一定能做到物盡其用、按需配置,可能會存在資源配置的浪 費,因此,PC系統價格上與嵌入式系統相比處于一定的劣勢;其次,在實踐中Windows存在穩定性較差和實時性不夠強的問題。使用嵌入式Linux操作 系統是我們設計視頻服務器的最大特色。它既不同于大多數的監控系統使用商業化的操作系統存在版權、高價位、非開放性等問題,又不影響監控系統使用上的可靠 性、面向用戶開發的靈活性和用戶承受能力。這使其真正適合于有高可靠性要求的監控場合。操作系統由于其源代碼的完全開放和免費,通過研究Linux其內核 代碼,可對它的可移植性、可裁剪性、良好的穩定性和可靠性有比較透徹的了解,內寬的網絡和強大的Linux團體的支持可以作為我們開發監控系統的最佳選 擇。
3 視頻服務器的設計
我們設計的視頻服務器分為4個部分:視頻壓縮系統、存儲系統、通信系統和操作系統。這4個系統分別實現視頻節目的壓縮、大容量視頻存儲、快速的傳輸通道和節目檢索與服務等功能。以下對所設計視頻服務器的這幾個方面分別進行論述。
1.1視頻壓縮系統
視頻服務器的工作主要是編碼和解碼。圖像視頻壓縮的標準有H.120、H.261、H.263、JPEG、MPEG-1、MPEG-2等。以上標準均偏重 于某幾個應用領域,交互性較差,不能提供對各種網絡的一致性訪問,容錯性、靈活性和可擴展性比較差。1998年11月MPEG-4成為國際標準。與 MPEG-1和MPEG-2相比,它對于傳輸速率要求較低,在4800~64000bits/sec之間。MPEG-4利用很窄的帶寬,通過幀重建技術來 壓縮和傳輸數據,以求利用最少的數據獲得最佳的圖像質量。
MPEG-4引入了基于對象表達的概念,用來表達視聽對象AVO(audio/visual objects);它具有高效編碼、高效存儲與傳播及可交互性的特性。MPEG-4允許已有的AVO生成復合的AVO,由此生成AV場景,并采用SNHC 的方法來組織這些AVO。對于AVO的的數據還能靈活地多路合成與同步,以便選擇合適的網絡來傳輸這些AVO數據,并允許接受端的用戶在AV場景中對 AVO進行交互操作。圖2簡單描述了MPEG-4視頻編碼原理。通過對輸入視頻序列的分析,確認n個視覺目的的對象為編碼對象,將其認定為n個VO(n= 1,2…),對每一個VO編碼后形成的這個VO的VOP數據流。VOP的編碼包括對運動(采用運動預測方法)及形狀、紋理(采用變換編碼方法)的編碼。由 于VOP具有任意形狀,因此要求編碼方案可以處理形狀和透明信息。除去VO的圖像的其余部分?-背景,仍采用傳統的矩形DCT變形編碼。最后VO場景描述 信息的編碼、VOP流、背景一起送入MPEG-4幀復合器,形成MPEG-4流輸出。MPEG-4技術應用在視頻監控系統中具有節約存儲空間、占用網絡傳 輸帶寬少、錯誤恢復能力強、圖像質量高等特點,所以我們選用MPEG-4進行圖像編解碼。
視頻服務器另一個很重要的功能就是節目播出,這需要在解碼通道設計中提供兩種基本功能:多個文件的連續無縫解碼輸出和任意并準確地定位解碼文件的入點和出點。只有實現了這兩個功能才能達到視頻服務器的播出功能。
2.2 存儲系統
視頻服務器所使用的硬盤不同于普通計算機硬盤,由于視頻信號數據量大、傳輸速率高,因此對硬盤的速度要求高。所以為了服務器的效率,視頻文件的存放過程必須進行優化。我們采用的優化方法主要是采用高性能的存儲設備——磁盤陣列RAID,以及將視頻文件分段儲存。
磁盤陣列RAID是指一組具有可靠性和可得性的相對獨立的硬盤存貯序列。RAID分為6個級別:RAID0到RAID5。其中RAID3和RAID5被廣 泛使用。兩者都采用N+1的數據冗余體系,通過奇偶校驗運算記錄校驗數據。RAID3的校驗位固定記錄在指定的物理硬盤。RAID5則將校驗位分布在陣列 的各個硬盤中。另一個關鍵的區別是RAID5主要是針對小數據多文件的讀寫設計(如數據庫),其一次讀寫的數據塊比RAID3少。由于視音頻文件較大,寫 數據時會連續占用陣列的多個數據塊。正是因為視頻數據記錄的這一特點,決定了用何種RAID方式能更滿足數據讀寫高速度、低延時的要求。數據存儲絕大多數 是多進程并發的過程,因此數據讀寫性能需要在多進程條件下判斷。根據RAID3和RAID5的特性,我們發現在寫文件時RAID3表現出來的不僅是數據寫 速度快,而且延時小。同樣的,由于RAID3和RAID5的校驗位不一樣,RAID3的讀速度和低延時性能都比RAID5優越。從以上的分析我們可以看出 RAID3更適合視音頻數據大文件、低延時要求的文件讀寫。因為視頻文件分段儲存策略與存儲I/O密切相關,所以考慮到充分利用I/O帶寬的理由,我們把 節目數據分成小數據塊放置到不同的硬盤或者服務器上。未分塊的節目數據容易造成負載不平衡現象,可以采用每20秒為一段來存放數據。
另外我們設計的視頻服務器采用獨立的RAID控制器,而不是依賴系統平臺的RAID卡方式。因為后者如果遇到系統崩潰,數據將很難恢復;前者只要重建系統連接即可找回原數據,保證數據的完整性。RAID控制器還具有故障自動報警和數據自動恢復功能。
2.3 操作系統
該部分主要負責CPU的調度、定時器的操作、線程的管理和進程間通信等問題。
由于VOD業務實時性的特點,視頻服務器每接收到一個客戶的請求,都會開辟一個新的線程,這個線程負責用戶的各種操作,包括:播放、控制云臺轉向、各種計 劃任務的制定等操作。這個線程是由兩個線程組成的生產者—消費者模型。其中生產者從磁盤中讀取媒體數據,并將數據發送到內存中。消費者負責從內存中讀取這 些數據并通過網絡發送到點播用戶。
為實現快進、快退功能,有兩種可供選擇的方法。其一是,當用戶發出快進指令后,視頻服務器以高于正常播放兩到三倍的速率讀取數據,并發往用戶。同時,用戶 的回放速率也提高到對應的水平。這與錄像機中的快進操作過程很相似,優點是服務器只需存儲一份正常速率的視頻文件,從而節省了存儲空間。缺點是視頻服務器 和用戶終端的工作負載會成倍增加,傳輸網絡也會因流量的增大而易于出現擁塞。這一方法還有一個缺點,就是很難實現快退操作。另一種方法是分別存儲正常、快 進、快退三個文件。首先從正常速率的文件中,抽取部分I幀圖像,以順序的方式形成快進文件,以逆序的方式形成快退文件。三種播放文件之間存在確定的對應關 系,當從一種播放狀態轉移到另一種播放狀態時,生產者線程便從對應的文件位置開始讀取數據,以保持用戶視覺上的連續。這種方法的不足之處就是需要較大的存 儲空間,但因具有易操作的優點,所以我們采用這種方法。
為了響應用戶在正常播放中的交互操作,還須解決進程間的通信問題。我們采用利用信號量的方法,即在生產者、消費者兩個工作進程之外,創立第三個控制進程,通過信號量獲取從監聽進程發來的工作狀態轉換命令,去調整兩個工作線程的工作方式。
2.4通信系統
該子系統主要解決兩方面的問題,一是服務器對用戶點播的接納,另一個是視頻數據向網絡的發送。我們采用的是服務器推動(server push)模型。讓服務器以一定的速率發送數據到客戶,客戶接收到數據后進行解碼和回放。一旦視頻對話開始,視頻服務器就連續傳送數據。在視頻服務中,服 務器推動的傳輸模式與客戶拉動模式相比,能夠支持更多的并發用戶且傳輸效率更高。
在網絡上傳輸視頻信號非常消耗網絡帶寬,為了滿足服務器的控制功能,必須設計一個自己的網絡傳輸協議,為控制通信留出帶寬,以保證控制命令的完成時間可以 預測。目前因特網上數據的傳輸主要采用TCP和UDP協議。TCP協議能提供有序、可靠的服務,但是一旦數據丟失會帶來嚴重的延遲,無法保證實時性; UDP是小的、節約資源的傳輸層協議,其操作執行比TCP快得多。它適合于不斷出現的、和時間相關的應用。
由于UDP的不可靠性,基于UDP的應用程序在不可靠子網使用時必須自己解決可靠性,諸如報文丟失、重復、失序和流量控制等問題。在實現連續媒體數據傳輸 時,發送方和接受方應該能處理圖像傳輸中發生的數據丟失、延遲等一些問題。因此,在UDP協議之上,采用RTP(實時傳輸協議)和RTCP(實時傳輸控制 協議)來完成視頻數據的傳輸。
以RTP協議標準把數據封裝,再由IP網絡層封裝為IP包傳輸。RTP協議通過報頭中的序號字段排序RTP報文分組,以消除重復分組,保證視頻和音頻流內 同步和連續的播放;時戳字段可作為流間同步標識,以保證視頻和音頻流間同步和連續的播放。另外,需要周期性的發送RTCP報文,并根據傳輸質量的反饋來控 制RTP包的傳輸。
由于音、視頻數據對實時性要求比較高,而控制數據則對可靠性要求較高,因此,本系統采用兩種通信協議;TCP/IP協議傳輸通信控制數據,UDP/IP協議傳輸視頻數據。其RTP的數據封裝如圖3。
圖3 UDP/IP封裝的RTP數據
4 視頻服務器的特征
本視頻服務器具有以下的一些特征。
采用嵌入式實時操作系統和專用的硬件結構,無論是軟件還是硬件都保證了嵌入式網絡視頻服務器比基于PC機的系統具有更高的實時性、穩定性和可靠性。可以方 便的聯動其他安全防范設備,如濕度、溫度、煙感等報警器。本視頻服務器使用MPEG-4視頻壓縮技術,與MJPEG和H.263等壓縮方式比,具有壓縮比 高、碼流小、圖像質量好等優點,特別適合于Internet環境下的實時監控,并且可以節省存儲空間。
5 結束語
隨著VOD業務的不斷普及,人們對視頻服務器的設計不斷提出新的要求。有些問題值得密切關注。其一是,當系統突然面對大量的客戶請求時,必須解決圖像、聲 音數據流播放的高速、連續、可靠和同步的問題。這就要求視頻服務器在設計時采用一定的策略來改善這方面的性能。另一方面是為了進一步提高視頻服務器的服務 用戶數,節省視頻服務器的系統資源,減輕骨干網的流量負載,可采用多播的方式把那些點播同一節目且具有相同(相近)路由的用戶統一進行服務。
參考文獻
[1]GREIFFENHAGEN M, COMANICIU D, NIEMANNH. et al. Design, analysis and engineering of video monitoring systems: an approach and a case study[J], Proceeding of the IEEE, 2001,90(10):1498~1517
[2]Jack Y B Lee.UVoD:An unified architecture for video-on-demand services.IEEE Communication Letters,1999,3(9):277~279
[3]SCHULZRINNE H, CASNER S, FREDERICK R, etal. RTP: a transport protocol for real-time applications[J], RFC3550,2003
[4]盧江輝.視頻服務器設計與基于VDCP的應用.現代電視技術,2004(1):105~110
[5]鐘玉琢,向哲,沈洪.流媒體和視頻服務器.北京:清華大學出版社,2003:65~70
[6]涂杰,郭曉輝等.MPEG-4在數字視頻遠程監控系統中的應用.計算機應用與軟件,2004(2):22~23
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
