視頻監(jiān)視系統(tǒng)中視頻質(zhì)量優(yōu)化策略研究
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:為了對(duì)視頻監(jiān)視系統(tǒng)中監(jiān)視質(zhì)量的進(jìn)行優(yōu)化,提出了3種優(yōu)化控制策略:零拷貝緩沖區(qū)策略、網(wǎng)絡(luò)擁塞抑制策略、編解碼速率協(xié)調(diào)策略。零拷貝緩沖區(qū)策略降低了終端負(fù)載,提高了系統(tǒng)處理能力,網(wǎng)絡(luò)擁塞抑制策略有效地減少了丟包率,編解碼速率協(xié)調(diào)策略平衡了系統(tǒng)延時(shí)與流暢性。實(shí)驗(yàn)測試結(jié)果顯示,隨著監(jiān)視時(shí)間的增加,優(yōu)化后系統(tǒng)時(shí)延基本穩(wěn)定、丟包率顯著減少、視頻播放流暢,系統(tǒng)性能滿足一般應(yīng)用需要。
關(guān)鍵詞:視頻監(jiān)視;優(yōu)化;實(shí)時(shí)數(shù)據(jù)處理;視頻播放的流暢性
隨著自動(dòng)化技術(shù)和軟硬件技術(shù)的不斷發(fā)展,傳統(tǒng)工業(yè)對(duì)于自動(dòng)化技術(shù)的要求顯著提高,極大地促進(jìn)了視頻監(jiān)視技術(shù)的發(fā)展;同時(shí)由于“911”事件的影響,世界對(duì)于安全的注重超過以往任何時(shí)候,安全防護(hù)成了各項(xiàng)活動(dòng)的重中之重。在工業(yè)中,儀器設(shè)備的正常運(yùn)行對(duì)工廠
的安全正常運(yùn)行有著決定性的意義,所以很有必要對(duì)這些儀器、設(shè)備進(jìn)行監(jiān)視。在安防中,由于涉及到巨大的人身及財(cái)產(chǎn)傷害,對(duì)于監(jiān)視的實(shí)時(shí)性以及準(zhǔn)確性的要求不言而喻?;诖?,視頻監(jiān)視技術(shù)取得了長足的發(fā)展。而在視頻監(jiān)視技術(shù)的發(fā)展過程中,監(jiān)視視頻的質(zhì)量成為視頻監(jiān)視系統(tǒng)中最重要的部分。因此對(duì)監(jiān)視視頻質(zhì)量的優(yōu)化策略研究直接影響整個(gè)視頻監(jiān)視系統(tǒng)的性能。
1 存在的問題
監(jiān)視視頻的質(zhì)量主要體現(xiàn)在實(shí)時(shí)性、流暢性和清晰度等性能指標(biāo)上。在一般視頻監(jiān)視系統(tǒng)中,實(shí)時(shí)性主要由監(jiān)視終端視頻處理性能決定。實(shí)時(shí)性要求客戶端軟件以最快的速率進(jìn)行網(wǎng)絡(luò)視頻數(shù)據(jù)解碼。由于遠(yuǎn)程監(jiān)視系統(tǒng)中,監(jiān)視終端存在接收緩沖區(qū),緩存網(wǎng)絡(luò)數(shù)據(jù)流,因此實(shí)時(shí)性要求數(shù)據(jù)在緩沖區(qū)中幾乎不進(jìn)行緩存。而對(duì)于視頻流暢性,主要由監(jiān)視終端解碼、顯示速率與網(wǎng)絡(luò)視頻流接收速率的相對(duì)關(guān)系決定,當(dāng)解碼、顯示速率比視頻流接收速率高時(shí),解碼、顯示會(huì)阻塞等待視頻接收,由于此等待過程并非平均分布在每一幀,因此會(huì)造成播放視頻流暢性問題。清晰度主要和視頻數(shù)據(jù)的丟包率有關(guān),在網(wǎng)絡(luò)狀況理想的情況下,丟包率主要與監(jiān)視終端數(shù)據(jù)處理效率有關(guān),當(dāng)終端數(shù)據(jù)處理速率較低時(shí),由于視頻數(shù)據(jù)累積,會(huì)造成接收緩沖區(qū)溢出,從而導(dǎo)致丟包率升高,引起清晰度問題。在實(shí)際應(yīng)用中,網(wǎng)絡(luò)擁塞對(duì)丟包率影響很大,決定了視頻的清晰度。
由上述分析可知,要想保證視頻實(shí)時(shí)性能,必須提高視頻終端的處理性能。而同時(shí)由于實(shí)時(shí)性和流暢性存在矛盾:實(shí)時(shí)性要求監(jiān)視終端以最快速率進(jìn)行數(shù)據(jù)處理;流暢性要求視頻流進(jìn)行緩沖,同時(shí)控制監(jiān)視終端解碼、顯示速率。為了達(dá)到好的監(jiān)視效果,必須找到均衡控制策略,一方面讓視頻進(jìn)行緩沖,保證視頻解碼、顯示不阻塞,另一方面保證數(shù)據(jù)快速解碼,不產(chǎn)生累積時(shí)延。同時(shí)必須對(duì)網(wǎng)絡(luò)擁塞進(jìn)行抑制,以保證視頻清晰度。
2 優(yōu)化控制策略
2.1 零拷貝緩沖區(qū)策略
流媒體編程中處理的數(shù)據(jù)量非常大,減少數(shù)據(jù)拷貝可以提高客戶端對(duì)流媒體數(shù)據(jù)的處理速度、降低時(shí)延以及減輕處理器的負(fù)載;也可以減少客戶端因?yàn)閿?shù)據(jù)拷貝,來不及處理后續(xù)數(shù)據(jù)包而帶來的丟包現(xiàn)象。從而節(jié)約系統(tǒng)資源,提高流媒體的播放質(zhì)量。零拷貝緩沖區(qū)策略通過合理的緩沖區(qū)設(shè)計(jì),能減少90%的數(shù)據(jù)拷貝工作,大大提高系統(tǒng)性能。
零拷貝緩沖區(qū)策略合并接收緩沖區(qū)和解碼器輸入緩沖區(qū),使得緩沖區(qū)間的數(shù)據(jù)拷貝操作變成指針操作。
零拷貝緩沖區(qū)原理圖如圖1所示,Read-ptr:視頻解碼指針,指向待解碼的數(shù)據(jù);Write_ptr:接收數(shù)據(jù)指針,指向網(wǎng)絡(luò)數(shù)據(jù)的存放地址;valid_data_ptr:有效緩沖區(qū)首地址,網(wǎng)絡(luò)數(shù)據(jù)存放的首地址。備用緩沖區(qū)不存放從網(wǎng)絡(luò)接收的視頻流,當(dāng)如圖2所示,有效數(shù)據(jù)分為2塊時(shí),并且解碼數(shù)據(jù)分別存在于緩沖區(qū)中的2個(gè)部分,則傳遞給解碼器Read-ptr并不能滿足要求,因此需要使用到備用緩沖區(qū),具體策略是將Read-ptr后的數(shù)據(jù)拷貝到Buffer_ptr里,使得解碼數(shù)據(jù)變成一塊連續(xù)緩沖區(qū)。由于在視頻監(jiān)視系統(tǒng)中,一幀數(shù)據(jù)的數(shù)據(jù)量比接收緩沖區(qū)小得多,因此發(fā)生這種拷貝的幾率很少,而且每次拷貝的數(shù)據(jù)量也很少,能大大優(yōu)化系統(tǒng)性能,提高監(jiān)視終端解碼、顯示的效率。
[!--empirenews.page--]
2.2 網(wǎng)絡(luò)擁塞抑制策略
當(dāng)通信網(wǎng)絡(luò)中有太多的分組需要傳輸時(shí),會(huì)使整個(gè)網(wǎng)絡(luò)的性能降低,傳輸質(zhì)量下降,產(chǎn)生網(wǎng)絡(luò)擁塞現(xiàn)象。當(dāng)發(fā)生網(wǎng)絡(luò)擁塞時(shí),如果不能及時(shí)地對(duì)網(wǎng)絡(luò)擁塞進(jìn)行抑制,視頻延時(shí)會(huì)上升、網(wǎng)絡(luò)丟包率急劇增長,同時(shí)也會(huì)帶來一定的流暢性問題,給視頻質(zhì)量造成很大的影響。對(duì)于擁塞的解決辦法無非只有2種:增加網(wǎng)絡(luò)資源和降低負(fù)荷。前者由整個(gè)互連網(wǎng)絡(luò)決定,沒有辦法進(jìn)行控制,后者由每個(gè)用戶決定。當(dāng)出現(xiàn)網(wǎng)絡(luò)擁塞時(shí),適當(dāng)?shù)販p少服務(wù)器端視頻采集的速率,這樣既減少了傳輸?shù)臄?shù)據(jù),降低了網(wǎng)絡(luò)負(fù)載,同時(shí)又降低了客戶端數(shù)據(jù)的需求,減少了視頻質(zhì)量下降的幾率。
在RTP協(xié)議中,使用RTCP(實(shí)時(shí)傳送控制協(xié)議)來進(jìn)行流量控制和擁塞控制。在RTP會(huì)話期間,各參與者周期性地傳送RTCP包。RTCP包中有5種不同類型的RTCP控制分組,其中有2種:SR(Sender Report)發(fā)送者報(bào)告,用于當(dāng)前發(fā)送者的發(fā)送情況和接收情況的統(tǒng)計(jì);RR(Receiver Report)接受者報(bào)告,用于當(dāng)前接受者的接受情況的統(tǒng)計(jì)。
RTCP包中含有已發(fā)送的數(shù)據(jù)包的數(shù)量、丟失的數(shù)據(jù)包的數(shù)量等統(tǒng)計(jì)資料,可以利用這些信息動(dòng)態(tài)地改變傳輸速率,甚至改變有效載荷類型。
在客戶端可以周期性統(tǒng)計(jì)接收數(shù)據(jù)包的總個(gè)數(shù)以及丟失數(shù)據(jù)包的個(gè)數(shù),然后按照RTCP的數(shù)據(jù)包格式填充數(shù)據(jù)包,發(fā)送至服務(wù)器端,然后服務(wù)器端通過相應(yīng)的流量控制算法,利用客戶端傳輸過來的具體參數(shù),則可以動(dòng)態(tài)的調(diào)節(jié)數(shù)據(jù)包的采集以及發(fā)送速率。
2.3 編解碼速率協(xié)調(diào)策略
在一般視頻監(jiān)視系統(tǒng),監(jiān)視終端進(jìn)行視頻解碼時(shí),為了確保每幀數(shù)據(jù)的完整性,需要判斷接收緩沖區(qū)中數(shù)據(jù)是否達(dá)到一定要求Limit_ A,但是由于監(jiān)視圖像在背景固定和背景劇烈運(yùn)動(dòng)時(shí),每幀數(shù)據(jù)量相差非常大,劇烈運(yùn)動(dòng)時(shí)的數(shù)量量往往是靜止時(shí)的幾倍,因此對(duì)于Limit_A的選擇比較困難。當(dāng)Limit_A選擇較小時(shí),在劇烈運(yùn)動(dòng)的情況下,解碼數(shù)據(jù)可能不是完整一幀,造成視頻質(zhì)量問題;當(dāng)Limit_A選擇較大時(shí),在幾乎靜止的情況下,可能會(huì)造成視頻的停頓以及長時(shí)間的視頻延時(shí)。因此Limit_A必須是動(dòng)態(tài)變化的,同時(shí)緩沖區(qū)中的數(shù)據(jù)由于靜止和運(yùn)動(dòng)時(shí)的數(shù)據(jù)量不同,數(shù)據(jù)量也必須進(jìn)行嚴(yán)格的控制,防止在靜止情況下出現(xiàn)大規(guī)模延時(shí)。
在監(jiān)視系統(tǒng)中,接收緩沖區(qū)就像一個(gè)漏斗,從網(wǎng)絡(luò)接收數(shù)據(jù)寫入緩沖區(qū)就像往漏斗里注水,從緩沖區(qū)取出數(shù)據(jù)進(jìn)行解碼播放,就像從漏斗出水一樣。在一個(gè)漏斗中,當(dāng)入水和出水相同時(shí),不僅能使水流順暢,同時(shí)漏斗里的儲(chǔ)水量也幾乎恒定,如圖3所示。當(dāng)然在監(jiān)視的系統(tǒng)中,由于存在時(shí)間差(往緩沖區(qū)里存儲(chǔ)的幀與從緩沖區(qū)中取出的幀在時(shí)間上存在著差異),“出水速率”和“入水速率”(幀的大小)往往不相同;當(dāng)視頻從運(yùn)動(dòng)變?yōu)殪o止時(shí),“出水速率”會(huì)比“入水速率”大,當(dāng)視頻從靜止變?yōu)檫\(yùn)動(dòng)時(shí),“出水速率”會(huì)比“入水速率”小。因此不能簡單地套用此模型。
由于視頻顯示速度不是以比特(bit)為單位而是以“f/s”為單位,所以當(dāng)“水”的單位變?yōu)?ldquo;f”,相應(yīng)的“出水速率”和“入水速率”也變成“f/s”,則整個(gè)系統(tǒng)模型變?yōu)椋寒?dāng)輸入幀率和輸出幀率相同時(shí),就可以保證緩沖區(qū)中具有恒定的幀數(shù)stay_M,如圖4所示。同時(shí)只要確保Limit_A的值正確,那么每幀數(shù)據(jù)都可以是完整的,視頻也會(huì)是流暢、完整的。
輸入速率就是從網(wǎng)絡(luò)接收視頻幀的速率,理想地來講,也即是監(jiān)視服務(wù)器采集、發(fā)送視頻的速率;而輸出速率應(yīng)是從緩沖區(qū)取出數(shù)據(jù)進(jìn)行解碼的速率,由于視頻質(zhì)量最后呈現(xiàn)給用戶的部分是顯示部分,因此將輸出速率改為顯示速率更為妥當(dāng),同時(shí)為了保證視頻幀的完整性,解碼速率也要進(jìn)行適當(dāng)?shù)目刂啤?br />
此策略的實(shí)施辦法就是控制服務(wù)器端視頻采集、編碼的速率和客戶端視頻顯示的速率,使它們速度相同,同時(shí)在Limit_A的選取上,根據(jù)視頻連續(xù)性的關(guān)系,由實(shí)際消耗數(shù)據(jù)決定下一幀Limit_A的值,同時(shí)平滑解碼速率,使得每幀的解碼過程能夠平均分布。
[!--empirenews.page--]
3 實(shí)驗(yàn)結(jié)果分析
本文的測試環(huán)境為:監(jiān)視服務(wù)器運(yùn)行Davinci開發(fā)平臺(tái),具有ARM+DSP雙核結(jié)構(gòu),ARM子系統(tǒng)進(jìn)行常規(guī)處理,DSP子系統(tǒng)進(jìn)行快速數(shù)字信號(hào)處理。ARM子系統(tǒng)最高主頻為297 MHz,DSP子系統(tǒng)最高主頻為594 MHz,最高速度為每秒4 752百萬條指令;監(jiān)視終端運(yùn)行于PC機(jī),處理器為奔騰42.8 GHz,內(nèi)存1 GB,顯存256 MB,內(nèi)置100 Mb/s網(wǎng)卡,160 GB硬盤,操作系統(tǒng)為Windows XP。監(jiān)視服務(wù)器與監(jiān)視終端通過校園網(wǎng)絡(luò)相連。測試內(nèi)容主要是針對(duì)客戶端發(fā)出連接請(qǐng)求后5 s,10 s,30 s,60 s,90 s,120 s,150 s,200 s,250 s,300 s時(shí)的系統(tǒng)狀態(tài):主要包括時(shí)延、丟包率以及產(chǎn)生停頓現(xiàn)象幀的百分比率。測試過程為單用戶情況下,對(duì)優(yōu)化前后視頻質(zhì)量進(jìn)行比較。如圖5所示為優(yōu)化前、后的時(shí)延變化圖。從圖中可以觀察出,優(yōu)化前時(shí)延隨著監(jiān)視時(shí)間的增加而增長,這是由于監(jiān)視終端緩沖區(qū)之間拷貝操作過多,造成客戶端解碼顯示、速度相對(duì)較低,因而引起監(jiān)視終端累積延時(shí)。而優(yōu)化后的時(shí)延基本穩(wěn)定,大概在1.5 s左右,沒有累積時(shí)延。這是由于緩沖區(qū)策略的控制,監(jiān)視終端視頻解碼、顯示速度有了大幅提高,同時(shí)在編解碼速率協(xié)調(diào)策略的控制下,視頻編解碼速度相對(duì)比較平均,有效的抑制了累積時(shí)延,保證了系統(tǒng)實(shí)時(shí)性。因此優(yōu)化控制策略對(duì)于時(shí)延的控制十分有效。
如圖6所示為優(yōu)化前、后的丟包率變化圖。從圖中可以觀察出,優(yōu)化前,系統(tǒng)丟包率在開始監(jiān)視的時(shí)比較穩(wěn)定,但隨著監(jiān)視時(shí)間的增長,丟包率迅速增加。由于累積時(shí)延存在,緩沖區(qū)必定會(huì)溢出,因此導(dǎo)致丟包率迅速增加。而在優(yōu)化后的系統(tǒng)中,由于不存在累積時(shí)延,因此系統(tǒng)緩沖區(qū)利用率比較小,不會(huì)造成由于緩沖區(qū)溢出而產(chǎn)生的丟包現(xiàn)象,因此確保了系統(tǒng)的監(jiān)視視頻質(zhì)量。在優(yōu)化后的系統(tǒng)中,丟包率依然存在較大波動(dòng),這是因?yàn)樵诰W(wǎng)絡(luò)擁塞的情況下,不可避免會(huì)產(chǎn)生較大丟包率,但是由于擁塞控制的作用,丟包率會(huì)受到抑制,緩慢恢復(fù)到正常水平。
圖7為停頓幀百分比的變化圖。從圖中可以看出,優(yōu)化后的停頓幀百分比比優(yōu)化前有了較大的提升,優(yōu)化后的停頓幀百分比大概穩(wěn)定在1.5%左右。隨著視頻實(shí)時(shí)性的提高,視頻緩沖的時(shí)間也大大減小,緩沖區(qū)數(shù)據(jù)量也大大減小,因此造成監(jiān)視終端解碼、線程間歇性等待網(wǎng)絡(luò)數(shù)據(jù)流,從而造成停頓百分比增高,視頻出現(xiàn)停頓現(xiàn)象。由于優(yōu)化后視頻停頓百分比基本穩(wěn)定且居于可以接受的范圍,這也進(jìn)一步表明編解碼速率協(xié)調(diào)策略進(jìn)行了有效的控制。
4 結(jié)語
視頻監(jiān)視系統(tǒng)中,對(duì)系統(tǒng)軟件硬件設(shè)計(jì)實(shí)現(xiàn)完成后,很重要的工作就是對(duì)監(jiān)視視頻質(zhì)量的優(yōu)化,只有監(jiān)視視頻的質(zhì)量達(dá)到要求,系統(tǒng)才能滿足實(shí)際應(yīng)用的需求。因此本文基于這個(gè)問題,首先分析了監(jiān)視視頻性能指標(biāo)的影響因素,然后提出2種優(yōu)化策略,實(shí)驗(yàn)結(jié)果表明,這兩種策略有效地提高了監(jiān)視視頻的質(zhì)量,保證了監(jiān)視視頻的實(shí)時(shí)性,流暢性和高清晰度。