基于ARM9的嵌入式3G無線視頻監(jiān)控系統(tǒng)設計
相對于有線網(wǎng)絡而言,無線網(wǎng)絡狀況更不穩(wěn)定,除去網(wǎng)絡流量所造成的傳輸速率的波動外, 設備的移動速度和所在位置也會嚴重地影響到傳輸速率。其次, 無線信道的環(huán)境也要比有線信道惡劣得多,數(shù)據(jù)的誤碼率也要高許多,而高壓縮的碼流對傳輸錯誤非常敏感, 還會造成錯誤向后面的圖像擴散, 因此無線流媒體在信源和信道編碼上需要很好的容錯技術。錯誤恢復的工具隨著視頻壓縮編碼技術的提高在不斷改進。舊的標準(H.261、H.263、MPEG-2 的第二部分)中,使用片和宏塊組的劃分、幀內(nèi)編碼宏塊、幀內(nèi)編碼片和幀內(nèi)編碼圖像來防止錯誤的擴散。之后改進的標準(H.263+,MPEG-4)中,使用多幀參考和數(shù)據(jù)分割技術來恢復錯誤。H.264 標準在以前的基礎上提出了三種關鍵技術來進行錯誤的恢復, 分別是參數(shù)集合、靈活的宏塊次序(FMO)和冗余片(RS)。FMO 是H.264 的一大特色,可以是一幀中的宏塊順序分割,使分割后的片的尺寸小于無線網(wǎng)絡的MTU 尺寸,避免在網(wǎng)絡層再進行一次數(shù)據(jù)分割,降低了數(shù)據(jù)傳輸?shù)念~外開銷。
3.4 嵌入式Web 服務器設計
本系統(tǒng)選用適合嵌入式系統(tǒng)的Boa 服務器, 它是單任務HTTP 服務器, 占用空間小, 另外支持動態(tài)Web 技術的CGI 技術, 源代碼開放, 性能高。嵌入式Boa 服務器移植到Linux 系統(tǒng)中的網(wǎng)上相關資料很多, 不再贅述。
下面重點介紹應用程序接口CGI 程序設計。
公共網(wǎng)關接口CGI 是HTTP 服務器與其他機器上的程序進行“ 交談” 的一種工具, 其程序須運行在網(wǎng)絡服務器上。CGI 是一個用于Web 服務器與外部程序之間通信方式的標準, 使得外部程序能生成HTML、圖像或其他內(nèi)容,而服務器處理的方式與那些非外部程序生成的HTML、圖像或其他內(nèi)容的處理方式是相同的。使用CGI的原因在于它是一個定義良好并被廣泛支持的標準, 沒有CGI 就不可能實現(xiàn)動態(tài)的Web 頁面, 除非使用一些服務器中提供的特殊方法。
CGI 程序入口為main () 函數(shù), 函數(shù)首先執(zhí)行初始化用到的變量, 然后根據(jù)提供的環(huán)境變量Environmentv 獲取當前訪問用戶的用戶名, 判斷用戶的訪問權限, 然后根據(jù)REQUESM 得到用戶的請求方法。如果是POST, 則根據(jù)Contentl 獲取用戶請求內(nèi)容并分析;如果是GET, 則根據(jù)Querys 獲取信息并分析請求內(nèi)容, 最后根據(jù)用戶權限做出相應的處理;如果是其他的請求方法, 則返回錯誤, 不支持該請求方法。流程圖如圖5 所示。
圖5 CGI 程序處理流程
S3C2410 憑借其高性價比、豐富的接口以及對網(wǎng)絡的強大支持, 使其非常適合做網(wǎng)絡視頻監(jiān)控系統(tǒng)的Web視頻服務器的處理器。H.264 算法具有很高的編碼效率, 在相同的重建圖像質(zhì)量下, 能夠比H.263 降低50%左右的碼率。H.264 的碼流結(jié)構(gòu)網(wǎng)絡適應性強, 增加了差錯恢復能力,能夠很好地適應IP 和無線網(wǎng)絡。本系統(tǒng)支持動態(tài)IP, 可以直接連入以太網(wǎng), 能夠即插即看。通過局域網(wǎng)(100 Mb/s 以太網(wǎng)) 內(nèi)部測試, 可以達到25 幀/秒CIF 圖像(320×240) 要求, 傳輸延遲0.6 s 以內(nèi), 編碼后的碼率150 Kbit/s , 由客戶端軟件解碼恢復后的視頻圖像清晰、流暢、沒有抖動現(xiàn)象, 能獲得較好的視頻質(zhì)量。
評論