3G無線視頻監(jiān)控系統(tǒng)設計
掃描二維碼
隨時隨地手機看文章
引言
本文針對網絡視頻監(jiān)控設備的實際應用需求,融合視頻壓縮、嵌入式系統(tǒng)無線通信等新技術,設計實現(xiàn)了基于3G技術的H.264無線視頻監(jiān)控系統(tǒng)。由于H.264標準中碼率控制策略過于強調通用性而沒有考慮無線網絡的誤碼率高、抖動性大以及嵌入式終端處理能力有限的因素,而本系統(tǒng)在實現(xiàn)了H.264標準中碼率控制策略的基礎上進行了優(yōu)化,增強了系統(tǒng)的穩(wěn)定性。
1 視頻監(jiān)控系統(tǒng)總體結構
視頻監(jiān)控系統(tǒng)由視頻拍攝節(jié)點、視頻采集控制模塊、網絡代理模塊和觀看終端組成。其中,拍攝節(jié)點為高精度攝像機,負責采集原始視頻;視頻采集控制模塊由采集卡以及控制軟件組成,采集卡安裝在嵌入式主板上,把攝像機采集的原始視頻數(shù)據(jù)壓縮成H.264格式的碼流并回調給系統(tǒng)處理;控制軟件運行在嵌入式Linux系統(tǒng)上,通過采集卡的驅動程序獲取壓縮后的H.264格式的碼流,并控制與網絡代理模塊的連接以及數(shù)據(jù)和命令的傳輸及響應,如將壓縮后的碼流傳輸給網絡代理,對某個攝像機通過串口發(fā)控制命令;網絡代理模塊負責與視頻觀看終端進行網絡連接的管理以及控制命令和視頻數(shù)據(jù)的傳輸;觀看終端為主流的基于Symbian操作系統(tǒng)的智能手機。
2 系統(tǒng)硬件構成及主要模塊
手機視頻監(jiān)控系統(tǒng)的硬件環(huán)境由攝像機、采集卡、嵌入式主板以及智能手機組成。攝像機使用的是SONYFCB2EX480CP;嵌入式主板使用的是威盛EPIANR系列Nano2ITX嵌入式主板,型號為EPIANR10000EG;智能手機使用當前主流的基于Symbian操作系統(tǒng)的手機諾基亞N95。系統(tǒng)框圖如圖1所示,拍攝節(jié)點為可控制攝像頭。下面主要介紹視頻采集控制模塊和網絡代理模塊的功能及構成。
2.1 視頻采集控制
視頻采集控制模塊主要負責視頻的采集、壓縮和控制命令的響應,采集視頻時主要負責采集卡的啟動、初始化和各種控制操作,同時也負責攝像頭相關的一些控制操作。具體的軟件構架如圖2所示。其中:NCCMain模塊負責管理各個子模塊,打開Socket監(jiān)聽7020端口,當有從網絡代理模塊的連接請求時,則響應并接收數(shù)據(jù);數(shù)據(jù)處理模塊負責處理各種命令(如視頻的開啟和焦距調整命令),并對這些命令發(fā)送確認消息進行響應;RS2232串口線控制模塊通過RS2232串口線控制攝像機的拍攝焦距,以響應焦距調整命令;板卡采集管理模塊主要負責板卡的初始化、采集信道的開啟、H.264各種參數(shù)(I、P幀的間距、量化參數(shù)、編碼格式(CIF、QCIF)等)的設置、回調函數(shù)的設置,與代理進行連接從而向代理發(fā)送視頻流等操作。該模塊基于采集卡開發(fā)包,通過接口調用廠商提供的驅動程序來實現(xiàn)各種功能。
該模塊的工作流程如下:
a)調用廠商提供的驅動程序設置視頻采集的初始參數(shù);
b)啟動網絡管理程序,打開套接字監(jiān)聽7020端口,當收到連接請求便響應連接請求并接收命令,收到命令后調用命令處理模塊,根據(jù)不同命令進行不同處理;
c)當收到啟動視頻命令,向代理發(fā)連接請求,請求響應后連接建立,通過該連接向代理發(fā)送視頻數(shù)據(jù),并將連接描述符保存到轉發(fā)表中;
d)當收到視頻關閉命令,關閉與代理的視頻傳輸連接,將轉發(fā)表對應的表項清空;
e)當收到焦距調整命令后,調用RS2232串口控制模塊設置攝像頭的拍攝焦距,然后與網絡代理監(jiān)聽的7005端口建立連接,將當前的焦距級數(shù)信息報告給網絡代理。
2.2 網絡代理
網絡代理模塊主要負責響應手持設備的連接請求和控制命令,并向其發(fā)送視頻數(shù)據(jù),它又包含以下子模塊:
a)連接請求監(jiān)聽模塊。該模塊作為一個單獨的線程,監(jiān)聽9000端口,如收到手持設備的代理信息請求命令則回送一個確認消息。
b)控制命令處理模塊。它負責處理手持設備發(fā)來的各種命令,并向視頻采集控制模塊發(fā)送對應的處理命令;接收視頻采集控制模塊的命令響應,并對手持設備的命令作相應的響應。
c)視頻數(shù)據(jù)收發(fā)模塊。當接收到來自視頻采集控制模塊的H.264視頻碼流便將此視頻數(shù)據(jù)流轉發(fā)給發(fā)出點播命令的手持設備。網絡代理模塊的結構關系如圖3所示。
2.3 視頻監(jiān)控系統(tǒng)通信流程
無線視頻監(jiān)控系統(tǒng)的總體流程如下:
a)手持設備接入網絡。手持設備通過3G無線網絡跨過移動網關接入有線網,與視頻服務網絡代理交互,注冊自己的信息,并從代理節(jié)點得到網絡中采集設備的信息。
b)進行視頻瀏覽操作。手持設備接入網絡后,可根據(jù)需要進行視頻瀏覽,用戶選定要進行瀏覽的節(jié)點和攝像頭,向其發(fā)送控制命令,開啟攝像頭進行采集,得到的視頻數(shù)據(jù)通過視頻服務網絡代理經3G網絡傳輸給手持設備,在手持設備上進行觀看。
c)進行視頻控制操作。手持設備獲得拍攝節(jié)點視頻后,可根據(jù)需要對拍攝節(jié)點進行控制以獲取更感興趣的視頻區(qū)域,如用戶對拍攝節(jié)點更遠處的場景感興趣,可發(fā)送放大指令,讓采集視頻的攝像機向遠處變焦;用戶也可以根據(jù)自己的需要發(fā)送攝像機或節(jié)點切換指令給代理,代理進行響應并按用戶需求啟動相應的攝像機。
3 碼率控制優(yōu)化算法
在H.264標準中,碼率控制是根據(jù)當前的帶寬和緩沖區(qū)使用情況來動態(tài)地調節(jié)量化參數(shù)等系數(shù)實現(xiàn)的??紤]到移動終端的處理能力差異大以及無線網絡誤碼率高抖動大等因素,本系統(tǒng)在實現(xiàn)了H.264標準中碼率控制策略的基礎上進行了優(yōu)化,即在碼率控制過程中,不僅考慮到帶寬和緩沖區(qū)的使用度,還結合終端的視頻處理能力以及無線網絡的狀況,動態(tài)地調節(jié)編碼器的參數(shù),此外,增加了跳幀策略,并結合本系統(tǒng)優(yōu)化了跳幀策略,從而達到更好的碼率控制效果。[!--empirenews.page--]3.1 移動終端反饋信息優(yōu)化
H.264標準中,碼率控制根據(jù)式(1)計算第i個z幀組的第j幀配比特數(shù):
其中:u(ni,j)表示編碼第i組第j幀時信道可獲帶寬;Fr表示預定幀率;Tbl(ni,j)表示第i個幀組編碼第j幀時目標緩沖區(qū)的使用量;Bc(ni,j)表示編碼完第j-1幀時緩沖區(qū)的占用量。
式(1)強調通用性而沒有對無線環(huán)境以及嵌入式設備進行相關處理。本文結合無線網絡誤碼率高以及移動終端處理能力弱的特點對標準中算法進行了優(yōu)化。首先移動終端統(tǒng)計誤碼率和丟包率,分別記為Ei,j和Li,j,并設定一個值Mi,j表示移動終端反饋的其緩沖使用度。移動終端定時把幾項數(shù)據(jù)反饋給網絡代理模塊,網絡代理根據(jù)移動終端的反饋信息重新對網絡帶寬可用度進行評估并對原算法公式進行調整,計算式為:
其中:BWij表示根據(jù)移動終端反饋信息獲取的當前帶寬可用度;γi,j表示移動終端承載能力因子;β1、β2、β3和β4為加權系數(shù)。在幀組層碼率控制計算第j幀分配的碼字時把原算法的式(1)調整為式(4)。
3.2 跳幀
為了避免溢出,當緩存區(qū)內比特數(shù)超過緩存區(qū)空間的85%時,跳過當前幀而不對其進行編碼,直到其低于臨界值后再進行編碼。在H.264碼率控制算法的第二步中,根據(jù)目標緩存使用量、幀率、可用帶寬和實際緩存占用度以及當前編碼圖像的復雜度,可以由下式計算得到第i個幀組第j幀的目標比特數(shù),計算式如下:
其中:。f(ni,j)表示考慮剩余比特數(shù)和圖像復雜度后應該增加的比特數(shù);γ為一常數(shù),一般取值0.5,當沒有B幀的情況下取值0.25;.f(ni,j)與式(1)的意義相同。本文利用該公式結果進行碼率控制的同時,優(yōu)化跳幀策略,即當預測的碼率加上當前緩沖區(qū)使用量大于預定閾值Kmax(目前定位為95%)時,可進行主動丟幀處理,即如果不是i幀,就將其丟掉,不作編碼處理。
計算如下:
當收到移動終端的反饋值M大于85%時,同樣采取跳幀策略,避免造成移動終端緩沖區(qū)不夠的丟幀現(xiàn)象發(fā)生,因為丟幀丟的如果是i幀,會影響后續(xù)視頻幀的重建。該策略可以通過跳過一些復雜度較低、對于整個序列而言并不重要的圖像來為后面復雜度較高、不能丟失的圖像留出緩存區(qū)空間。
4 測試結果
針對本文的無線視頻系統(tǒng)和優(yōu)化算法,主要測試系統(tǒng)總體性能和碼率控制優(yōu)化的效果,碼率控制的結果主要以傳輸比特數(shù)和PSNR值來衡量。在接收端程序中加入了iBufSizeTotal變量,用來統(tǒng)計發(fā)送的數(shù)據(jù)大小的總和;在拍攝端加入了編碼啟動時間iTimeStart和編碼結束時間iTimeEnd,并加入了變量iFrameCount來統(tǒng)計共編碼了多少幀。針對計算碼率控制的效果,計算碼率控制算法優(yōu)化前和優(yōu)化后平均每秒的輸出比特數(shù)(碼率),計算式如下:
針對編碼優(yōu)化的效果計算出編碼器優(yōu)化前后編碼的平均每秒編碼幀數(shù)(幀率),計算式如下所示:
在進行系統(tǒng)的測試時,將拍攝節(jié)點放置在以下四種背景環(huán)境中:
a)紋理簡單,運動緩慢;
b)紋理比較豐富,運動平緩;
c)紋理豐富,運動中等;
d)紋理復雜,運動劇烈。拍攝的攝像頭采樣模式均設為YUV的4∶2∶0格式。表1顯示了編碼器優(yōu)化前后的四種背景下每秒幀率的情況。
對于碼率控制優(yōu)化算法實驗的結果通過表格的形式給出。
表2給出了標準中原碼率控制算法和本文提出的算法對于六種標準序列在不同目標碼率和幀率下的實際編碼碼率和平均重建圖像的峰值信噪比PSNR值的測試結果;表3給出了原標準算法和本文算法對應的比特率偏移與平均PSNR值差值比較。
從表3中可以看出,本文提出的算法可以更為合理地控制碼率,六個序列中四個的峰值信噪比原算法有一定提高,表明本文提出的圖像復雜度因子是合理有效的。
為了進一步對比改進算法的效果,本文將視頻序列每幀的PSNR值通過坐標圖的形式給出,圖中橫坐標為幀的編號,縱坐標為對應的PSNR值。本文中給出了具有mobile(碼率限制較高比特128kbps)的視頻序列PSNR圖,如圖4所示,即限定碼率分別為32kbps、64kbps和128kbps的典型視頻。從圖4中可以看出,改進算法的PSNR值波動相對較小,從而在視覺上不會感覺到明顯的圖像質量變化,這就保證了圖像質量的平穩(wěn)過渡,具有較高的主觀視覺質量。
5 結語
本文設計并實現(xiàn)了基于3G和H.264技術的無線實時監(jiān)控系統(tǒng),并結合無線傳輸以及智能手機處理能力弱的特點,對H.264標準中碼率控制策略進行了優(yōu)化。