摘 要: 利用監(jiān)控視頻中靜態(tài)場景較多且無意義和動態(tài)場景明顯且集中的特點,基于業(yè)內(nèi)領(lǐng)先的HITAV編解碼算法,提出了一種結(jié)合動靜態(tài)場景分析的監(jiān)控視頻編解碼方案。運用該方案和TI公司推出的雙核架構(gòu)高性能芯片OMAPL138,實現(xiàn)了一個基于異構(gòu)多核的嵌入式視頻監(jiān)控系統(tǒng)。實驗證明,該方案降低了系統(tǒng)在有靜態(tài)場景時的平均傳輸碼流,提高了視頻的平均壓縮比。
關(guān)鍵詞: 場景分析;監(jiān)控系統(tǒng);OMAPL138;Syslink
0 引言
監(jiān)控視頻不同于其他用于廣告、宣傳、娛樂等的多媒體視頻,它存在的目的是確保被監(jiān)控區(qū)域的安全、檢測被監(jiān)控區(qū)域發(fā)生的變動。在相當長的時間里,監(jiān)控區(qū)域是沒有變動且冗余的靜態(tài)場景,因此,按照固定幀率工作的通用視頻編解碼算法在視頻監(jiān)控系統(tǒng)中并不合適。為了既能靈活有效地檢測出被監(jiān)控區(qū)域發(fā)生的變動,又不影響監(jiān)控視頻的分辨率,提高監(jiān)控的效率,同時最大程度地減少視頻傳輸?shù)臄?shù)據(jù)量,本文提出了一種動靜態(tài)場景分析算法,來檢測監(jiān)控視頻中的場景變動,把監(jiān)控視頻分類為靜態(tài)場景和動態(tài)場景視頻。通過動靜態(tài)場景分析算法與編解碼算法的結(jié)合,實現(xiàn)了一種基于動靜態(tài)場景分析的監(jiān)控視頻編解碼優(yōu)化方案,該方案能有效區(qū)分監(jiān)控視頻的場景狀態(tài),并根據(jù)不同的場景特征進行不同的處理,一旦檢測到靜態(tài)場景,監(jiān)控視頻數(shù)據(jù)無需編碼和傳輸。通過把該算法成功移植于OMAPL138,驗證了算法在降低碼流上的有效性。
1 算法設(shè)計
1.1 動靜態(tài)場景分析算法
動態(tài)場景視頻即所在區(qū)域的視頻畫面有運動物體出現(xiàn),與背景幀在某些區(qū)域有很大的差別;靜態(tài)場景視頻即視頻畫面在一定范圍內(nèi)沒有變化,與背景圖像差別不大。目前,運動檢測中最常用的方法有:幀間差分法、背景減除法、光流計算法和基于統(tǒng)計學(xué)的方法等[1]。幀間差分法相對于其他運動檢測算法,具有算法實現(xiàn)簡單、靈敏度高、實時性好、對場景光線和動態(tài)環(huán)境適應(yīng)性較強等特點[2]。由于本文只檢測視頻場景狀態(tài)即視頻中運動物體的有和無,因此很好地避免了幀間差分法在目標檢測中目標區(qū)域產(chǎn)生“空洞”的問題[3]?;诖?,本文提出了基于監(jiān)控視頻的動靜態(tài)場景分析算法,算法是基于“怎樣快速地檢索到兩幀圖像有差別”這個基本問題提出的。場景分析算法不必檢測出兩幀圖像的所有差別,檢測的是一幀視頻的整體狀態(tài),故只需要對有代表性的少數(shù)像素點進行運算,這是動靜態(tài)場景分析算法區(qū)別于其他所有運動目標檢測算法的最大優(yōu)勢。算法實現(xiàn)步驟如下:
(1)對視頻進行前期處理,主要是把彩色圖像轉(zhuǎn)化為灰度圖像(YUV格式的視頻提取Y分量即可)。
(2)對得到的灰度圖像進行采樣處理,提高算法效率。
?。?)設(shè)第一幀為背景幀,G(n)表示第n幀圖像,BG表示背景幀,背景幀的更新公式如下:
?。?)第二幀開始與背景幀逐像素值相減,相減后大于閾值T1,則f(k)等于1,否則等于0。G(k,n)表示第n幀第k個像素點的像素值,其中1≤k≤M×N(圖像有M行N列),BG(k)表示背景幀第k個點的像素值,公式如下:
?。?)f(k)的累加值一旦超過閾值T2,則判定G(n)為動態(tài)幀且退出,否則為靜態(tài)幀,公式如下:
動靜態(tài)場景分析算法與運動目標檢測算法的區(qū)別如下:
?。?)通過動靜態(tài)場景分析后只有兩種狀態(tài):動態(tài)場景和靜態(tài)場景。
?。?)場景分析算法不必檢測出兩幀圖像的所有差別,檢測的是一幀視頻的整體狀態(tài),只需要對少數(shù)像素點進行運算是動靜態(tài)場景分析算法區(qū)別于其他所有運動目標檢測算法的最大優(yōu)勢。
?。?)場景越復(fù)雜,算法運行時間越短。
?。?)場景分析算法不求差分圖像,滿足條件立即退出。
對算法的進一步優(yōu)化:(1)雖然第(2)步采樣會有一定的抑制噪聲的能力,但因為是采樣后的逐像素相減,還是不可避免地會有噪聲的干擾,為了抑制噪聲的影響,可以在小區(qū)域內(nèi)利用統(tǒng)計量的方法,如在4個點的小區(qū)域內(nèi)有3個點的差值大于T1才判斷f(k)=1;(2)考慮到從中間開始會縮短檢索時間且處理算法的DSP有多個運算器,故采用從中間向兩端檢索的方式,上半部分從左到右從下到上,下半部分從左到右從上到下。
1.2 HITAV編解碼算法
本文用到的HITAV算法,即為翰華信息科技有限公司自主研發(fā)的音視頻編解碼算法,HITAV的基本壓縮算法是小波模型(wavelet)[4]、多級樹集合群、廣義小波和數(shù)學(xué)形態(tài)小波,不同于基于離散余弦(DCT)模型的H264/MPEG4算法。HITAV利用小波模型和多級樹集合群的多級分解與收斂算法,它不是靠降幀率(犧牲流暢性)或者利用人的視覺誤差(犧牲畫質(zhì))限制靜態(tài)場景來實現(xiàn)低碼流,而是從源頭-視頻編碼模型上實現(xiàn)真正意義上的低碼流,它的編碼效率(壓縮比)根據(jù)不同的分辨率分別是H.264的2~5倍。在監(jiān)控系統(tǒng)中,HITAV的低碼流能大大地提高程序的運行效率和實時性。HITAV編碼后的幀結(jié)構(gòu)主要部分如圖1所示。
其中,width和height表示視頻圖像的寬和高;添加st_cnt字段用于標示靜態(tài)場景狀態(tài)的持續(xù)時間;stream_length表示編碼后視頻數(shù)據(jù)的長度,本文的場景狀態(tài)也由stream_length標示,stream_length等于零表示靜態(tài)場景,stream_length大于零表示動態(tài)場景。
1.3 動靜態(tài)場景分析算法與HITAV的結(jié)合
編碼時,原始視頻通過動靜態(tài)場景分析之后分成動態(tài)幀和靜態(tài)幀,動態(tài)幀通過HITAV算法編碼,并把標記值flag設(shè)為1,編碼后的幀結(jié)構(gòu)體中的stream_length不變;只有當flag=1時才做靜態(tài)幀處理并把處理后的flag值設(shè)為0,通過靜態(tài)幀處理后,stream_length=0,即無數(shù)據(jù)部分。故經(jīng)過編碼,所有的動態(tài)幀都得以壓縮,連續(xù)出現(xiàn)靜態(tài)幀表明系統(tǒng)進入靜態(tài)場景狀態(tài),并對第一幀做靜態(tài)幀處理,其余靜態(tài)幀拋棄;在處理動態(tài)幀時,動態(tài)幀中st_cnt記錄了在它之前的靜態(tài)幀量,以便存儲。編碼流程如圖2所示。
解碼時,根據(jù)接收到的視頻數(shù)據(jù)結(jié)構(gòu)體中的stream_length值判斷視頻監(jiān)控的場景狀態(tài),如果為動態(tài)場景(即stream_length>0)則進行HITAV算法解碼,并把解碼后的數(shù)據(jù)覆蓋顯示緩沖區(qū);如果為靜態(tài)場景(即stream_length=0)則標志系統(tǒng)進入靜態(tài)場景狀態(tài),并持續(xù)到下一個動態(tài)場景幀的出現(xiàn)。解碼流程如圖3所示。
2 實驗與分析
2.1 基于OMAPL138的實驗
OMAPL138 CPU基于C674x Fixed/Floating-Point VLIWDSP+ARM926EJ-S雙核設(shè)計,集成128 MB DDR2和512 MB NAND Flash,DDR2作為運行內(nèi)存,NAND Flash用于存儲bootloader、啟動時系統(tǒng)環(huán)境變量、Linux內(nèi)核、文件系統(tǒng)。系統(tǒng)接口模塊主要有JTAG調(diào)試接口、自適應(yīng)10/100 M網(wǎng)絡(luò)接口、RS232串口等[5]。
系統(tǒng)靈活運用Davinci架構(gòu)的異構(gòu)多核通信的基礎(chǔ)組件Syslink[6],實現(xiàn)了視頻數(shù)據(jù)在ARM核心和DSP核心之間的傳輸。Syslink為異構(gòu)多核處理器間提供了高效的多核協(xié)作和通信機制。系統(tǒng)視頻信號處理流程如圖4所示。在ARM9中把捕獲的視頻數(shù)據(jù)復(fù)制到共享內(nèi)存區(qū),通過Syslink的地址映射,使得DSP得以訪問。DSP中運行了基于場景分析的編碼/解碼算法,ARM9主處理器完成網(wǎng)絡(luò)功能和本地播放。
2.2 分析
通過在OMAPL138中同時運行基于動靜態(tài)場景分析的HITAV算法和原始的HITAV算法,實驗生成了兩組數(shù)據(jù),一組為視頻通過動靜態(tài)場景分析編碼后的視頻數(shù)據(jù),一組為通過原始的HITAV編碼后的視頻數(shù)據(jù)。編碼后視頻幀的長度變化和場景狀態(tài)變化如圖5所示,視頻分辨率為480×800,選取其中1 000幀。
視頻格式為YUV420,一幀原始視頻的大小為480×800×1.5 B。由圖5可知,通過基于場景分析的HITAV算法編碼后長度為零即表示監(jiān)控視頻在靜態(tài)場景狀態(tài),這部分的視頻幀在經(jīng)過該算法后得以濾去?;趫鼍胺治龅木幗獯a算法攔截了無意義的靜態(tài)場景視頻數(shù)據(jù)。有場景分析和無場景分析的靜態(tài)視頻百分比與平均壓縮比如表1所示。
由表1可知,基于場景分析的HITAV算法的平均壓縮比明顯高于原始HITAV算法的平均壓縮比,且靜態(tài)視頻百分比越大,平均壓縮比的差值越大。
3 結(jié)論
本文介紹了一種基于動靜態(tài)場景分析的監(jiān)控視頻編解碼優(yōu)化方案,詳細介紹了動靜態(tài)場景分析算法的基本原理,描述了動靜態(tài)場景分析算法與HITAV算法的結(jié)合。通過實驗證明,動靜態(tài)場景分析算法有效地避免了視頻監(jiān)控中靜態(tài)場景視頻幀的傳輸,從而降低了視頻的傳輸量,提高了視頻的平均壓縮比。
參考文獻
[1] SONKA M, HLAVAC V, BOYLE R. 圖像處理、分析與機器視覺(第二版)[M].艾海舟,武勃,譯.北京:人民郵電出版社,2003.
[2] MONNET A, MITTAL A, PARAGIOS N, et al. Background modeling and subtraction of dynamic scenes[C]. IEEE International Conference on Computer Vision, 2003:1305-1312.
[3] 呂國亮,趙曙光,趙俊.基于三幀差分和連通性檢驗的圖像運動目標檢測新方法[J].液晶與顯示,2007,22(1):87-93.
[4] 王相海,張躍平.基于小波的圖像及視頻編碼研究進展[J].計算機工程與應(yīng)用,2004(11):78-80.
[5] Texas Instruments Incorporated. OMAP-L138 C6000 DSP+ARM processor[EB/OL]. http://www.ti.com.cn/cn/lit/ds/symlink/omap-l138.pdf,2011.
[6] Texas Instruments Incorporated. Syslink user guide[EB/OL].[2012-09-04](2015-03-01). http://processors.wiki.ti.com/index.php/SysLink_ UserGuide.