摘 要: 利用監(jiān)控視頻中靜態(tài)場景較多且無意義和動態(tài)場景明顯且集中的特點,基于業(yè)內(nèi)領先的HITAV編解碼算法,,提出了一種結合動靜態(tài)場景分析的監(jiān)控視頻編解碼方案,。運用該方案和TI公司推出的雙核架構高性能芯片OMAPL138,實現(xiàn)了一個基于異構多核的嵌入式視頻監(jiān)控系統(tǒng),。實驗證明,該方案降低了系統(tǒng)在有靜態(tài)場景時的平均傳輸碼流,,提高了視頻的平均壓縮比,。
關鍵詞: 場景分析;監(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)場景分析算法與編解碼算法的結合,,實現(xiàn)了一種基于動靜態(tài)場景分析的監(jiān)控視頻編解碼優(yōu)化方案,,該方案能有效區(qū)分監(jiān)控視頻的場景狀態(tài),并根據(jù)不同的場景特征進行不同的處理,,一旦檢測到靜態(tài)場景,,監(jiān)控視頻數(shù)據(jù)無需編碼和傳輸。通過把該算法成功移植于OMAPL138,,驗證了算法在降低碼流上的有效性,。
1 算法設計
1.1 動靜態(tài)場景分析算法
動態(tài)場景視頻即所在區(qū)域的視頻畫面有運動物體出現(xiàn),,與背景幀在某些區(qū)域有很大的差別;靜態(tài)場景視頻即視頻畫面在一定范圍內(nèi)沒有變化,,與背景圖像差別不大,。目前,運動檢測中最常用的方法有:幀間差分法,、背景減除法,、光流計算法和基于統(tǒng)計學的方法等[1]。幀間差分法相對于其他運動檢測算法,,具有算法實現(xiàn)簡單,、靈敏度高、實時性好,、對場景光線和動態(tài)環(huán)境適應性較強等特點[2],。由于本文只檢測視頻場景狀態(tài)即視頻中運動物體的有和無,因此很好地避免了幀間差分法在目標檢測中目標區(qū)域產(chǎn)生“空洞”的問題[3],?;诖耍疚奶岢隽嘶诒O(jiān)控視頻的動靜態(tài)場景分析算法,,算法是基于“怎樣快速地檢索到兩幀圖像有差別”這個基本問題提出的,。場景分析算法不必檢測出兩幀圖像的所有差別,檢測的是一幀視頻的整體狀態(tài),,故只需要對有代表性的少數(shù)像素點進行運算,,這是動靜態(tài)場景分析算法區(qū)別于其他所有運動目標檢測算法的最大優(yōu)勢。算法實現(xiàn)步驟如下:
?。?)對視頻進行前期處理,,主要是把彩色圖像轉(zhuǎn)化為灰度圖像(YUV格式的視頻提取Y分量即可)。
?。?)對得到的灰度圖像進行采樣處理,,提高算法效率。
?。?)設第一幀為背景幀,,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)勢,。
?。?)場景越復雜,算法運行時間越短,。
(4)場景分析算法不求差分圖像,,滿足條件立即退出,。
對算法的進一步優(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ù)學形態(tài)小波,,不同于基于離散余弦(DCT)模型的H264/MPEG4算法。HITAV利用小波模型和多級樹集合群的多級分解與收斂算法,,它不是靠降幀率(犧牲流暢性)或者利用人的視覺誤差(犧牲畫質(zhì))限制靜態(tài)場景來實現(xiàn)低碼流,,而是從源頭-視頻編碼模型上實現(xiàn)真正意義上的低碼流,它的編碼效率(壓縮比)根據(jù)不同的分辨率分別是H.264的2~5倍。在監(jiān)控系統(tǒng)中,,HITAV的低碼流能大大地提高程序的運行效率和實時性,。HITAV編碼后的幀結構主要部分如圖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的結合
編碼時,,原始視頻通過動靜態(tài)場景分析之后分成動態(tài)幀和靜態(tài)幀,動態(tài)幀通過HITAV算法編碼,,并把標記值flag設為1,,編碼后的幀結構體中的stream_length不變;只有當flag=1時才做靜態(tài)幀處理并把處理后的flag值設為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ù)結構體中的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雙核設計,集成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)試接口、自適應10/100 M網(wǎng)絡接口,、RS232串口等[5],。
系統(tǒng)靈活運用Davinci架構的異構多核通信的基礎組件Syslink[6],實現(xiàn)了視頻數(shù)據(jù)在ARM核心和DSP核心之間的傳輸,。Syslink為異構多核處理器間提供了高效的多核協(xié)作和通信機制,。系統(tǒng)視頻信號處理流程如圖4所示。在ARM9中把捕獲的視頻數(shù)據(jù)復制到共享內(nèi)存區(qū),,通過Syslink的地址映射,,使得DSP得以訪問。DSP中運行了基于場景分析的編碼/解碼算法,,ARM9主處理器完成網(wǎng)絡功能和本地播放,。
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 結論
本文介紹了一種基于動靜態(tài)場景分析的監(jiān)控視頻編解碼優(yōu)化方案,,詳細介紹了動靜態(tài)場景分析算法的基本原理,描述了動靜態(tài)場景分析算法與HITAV算法的結合,。通過實驗證明,,動靜態(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].計算機工程與應用,,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.