3G無(wú)線視頻監(jiān)控系統(tǒng)設(shè)計(jì)
H.264標(biāo)準(zhǔn)中,碼率控制根據(jù)式(1)計(jì)算第i個(gè)z幀組的第j幀配比特?cái)?shù):
其中:u(ni,j)表示編碼第i組第j幀時(shí)信道可獲帶寬;Fr表示預(yù)定幀率;Tbl(ni,j)表示第i個(gè)幀組編碼第j幀時(shí)目標(biāo)緩沖區(qū)的使用量;Bc(ni,j)表示編碼完第j-1幀時(shí)緩沖區(qū)的占用量。
式(1)強(qiáng)調(diào)通用性而沒(méi)有對(duì)無(wú)線環(huán)境以及嵌入式設(shè)備進(jìn)行相關(guān)處理。本文結(jié)合無(wú)線網(wǎng)絡(luò)誤碼率高以及移動(dòng)終端處理能力弱的特點(diǎn)對(duì)標(biāo)準(zhǔn)中算法進(jìn)行了優(yōu)化。首先移動(dòng)終端統(tǒng)計(jì)誤碼率和丟包率,分別記為Ei,j和Li,j,并設(shè)定一個(gè)值Mi,j表示移動(dòng)終端反饋的其緩沖使用度。移動(dòng)終端定時(shí)把幾項(xiàng)數(shù)據(jù)反饋給網(wǎng)絡(luò)代理模塊,網(wǎng)絡(luò)代理根據(jù)移動(dòng)終端的反饋信息重新對(duì)網(wǎng)絡(luò)帶寬可用度進(jìn)行評(píng)估并對(duì)原算法公式進(jìn)行調(diào)整,計(jì)算式為:
其中:BWij表示根據(jù)移動(dòng)終端反饋信息獲取的當(dāng)前帶寬可用度;γi,j表示移動(dòng)終端承載能力因子;β1、β2、β3和β4為加權(quán)系數(shù)。在幀組層碼率控制計(jì)算第j幀分配的碼字時(shí)把原算法的式(1)調(diào)整為式(4)。
3.2 跳幀
為了避免溢出,當(dāng)緩存區(qū)內(nèi)比特?cái)?shù)超過(guò)緩存區(qū)空間的85%時(shí),跳過(guò)當(dāng)前幀而不對(duì)其進(jìn)行編碼,直到其低于臨界值后再進(jìn)行編碼。在H.264碼率控制算法的第二步中,根據(jù)目標(biāo)緩存使用量、幀率、可用帶寬和實(shí)際緩存占用度以及當(dāng)前編碼圖像的復(fù)雜度,可以由下式計(jì)算得到第i個(gè)幀組第j幀的目標(biāo)比特?cái)?shù),計(jì)算式如下:
其中:。f(ni,j)表示考慮剩余比特?cái)?shù)和圖像復(fù)雜度后應(yīng)該增加的比特?cái)?shù);γ為一常數(shù),一般取值0.5,當(dāng)沒(méi)有B幀的情況下取值0.25;.f(ni,j)與式(1)的意義相同。本文利用該公式結(jié)果進(jìn)行碼率控制的同時(shí),優(yōu)化跳幀策略,即當(dāng)預(yù)測(cè)的碼率加上當(dāng)前緩沖區(qū)使用量大于預(yù)定閾值Kmax(目前定位為95%)時(shí),可進(jìn)行主動(dòng)丟幀處理,即如果不是i幀,就將其丟掉,不作編碼處理。
計(jì)算如下:
當(dāng)收到移動(dòng)終端的反饋值M大于85%時(shí),同樣采取跳幀策略,避免造成移動(dòng)終端緩沖區(qū)不夠的丟幀現(xiàn)象發(fā)生,因?yàn)閬G幀丟的如果是i幀,會(huì)影響后續(xù)視頻幀的重建。該策略可以通過(guò)跳過(guò)一些復(fù)雜度較低、對(duì)于整個(gè)序列而言并不重要的圖像來(lái)為后面復(fù)雜度較高、不能丟失的圖像留出緩存區(qū)空間。
4 測(cè)試結(jié)果
針對(duì)本文的無(wú)線視頻系統(tǒng)和優(yōu)化算法,主要測(cè)試系統(tǒng)總體性能和碼率控制優(yōu)化的效果,碼率控制的結(jié)果主要以傳輸比特?cái)?shù)和PSNR值來(lái)衡量。在接收端程序中加入了iBufSizeTotal變量,用來(lái)統(tǒng)計(jì)發(fā)送的數(shù)據(jù)大小的總和;在拍攝端加入了編碼啟動(dòng)時(shí)間iTimeStart和編碼結(jié)束時(shí)間iTimeEnd,并加入了變量iFrameCount來(lái)統(tǒng)計(jì)共編碼了多少幀。針對(duì)計(jì)算碼率控制的效果,計(jì)算碼率控制算法優(yōu)化前和優(yōu)化后平均每秒的輸出比特?cái)?shù)(碼率),計(jì)算式如下:
針對(duì)編碼優(yōu)化的效果計(jì)算出編碼器優(yōu)化前后編碼的平均每秒編碼幀數(shù)(幀率),計(jì)算式如下所示:
在進(jìn)行系統(tǒng)的測(cè)試時(shí),將拍攝節(jié)點(diǎn)放置在以下四種背景環(huán)境中:
a)紋理簡(jiǎn)單,運(yùn)動(dòng)緩慢;
b)紋理比較豐富,運(yùn)動(dòng)平緩;
c)紋理豐富,運(yùn)動(dòng)中等;
d)紋理復(fù)雜,運(yùn)動(dòng)劇烈。拍攝的攝像頭采樣模式均設(shè)為YUV的4∶2∶0格式。表1顯示了編碼器優(yōu)化前后的四種背景下每秒幀率的情況。
對(duì)于碼率控制優(yōu)化算法實(shí)驗(yàn)的結(jié)果通過(guò)表格的形式給出。
表2給出了標(biāo)準(zhǔn)中原碼率控制算法和本文提出的算法對(duì)于六種標(biāo)準(zhǔn)序列在不同目標(biāo)碼率和幀率下的實(shí)際編碼碼率和平均重建圖像的峰值信噪比PSNR值的測(cè)試結(jié)果;表3給出了原標(biāo)準(zhǔn)算法和本文算法對(duì)應(yīng)的比特率偏移與平均PSNR值差值比較。
從表3中可以看出,本文提出的算法可以更為合理地控制碼率,六個(gè)序列中四個(gè)的峰值信噪比原算法有一定提高,表明本文提出的圖像復(fù)雜度因子是合理有效的。
為了進(jìn)一步對(duì)比改進(jìn)算法的效果,本文將視頻序列每幀的PSNR值通過(guò)坐標(biāo)圖的形式給出,圖中橫坐標(biāo)為幀的編號(hào),縱坐標(biāo)為對(duì)應(yīng)的PSNR值。本文中給出了具有mobile(碼率限制較高比特128kbps)的視頻序列PSNR圖,如圖4所示,即限定碼率分別為32kbps、64kbps和128kbps的典型視頻。從圖4中可以看出,改進(jìn)算法的PSNR值波動(dòng)相對(duì)較小,從而在視覺(jué)上不會(huì)感覺(jué)到明顯的圖像質(zhì)量變化,這就保證了圖像質(zhì)量的平穩(wěn)過(guò)渡,具有較高的主觀視覺(jué)質(zhì)量。
5 結(jié)語(yǔ)
本文設(shè)計(jì)并實(shí)現(xiàn)了基于3G和H.264技術(shù)的無(wú)線實(shí)時(shí)監(jiān)控系統(tǒng),并結(jié)合無(wú)線傳輸以及智能手機(jī)處理能力弱的特點(diǎn),對(duì)H.264標(biāo)準(zhǔn)中碼率控制策略進(jìn)行了優(yōu)化。
評(píng)論