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