薛瑞斌,馬明躍,金書竹,代媛
(西北農(nóng)林科技大學(xué)信息工程學(xué)院,楊凌712100)
隨著視頻監(jiān)控技術(shù)的日益成熟和社會安全意識的提升,越來越多的監(jiān)控攝像機(jī)被廣泛應(yīng)用于社會生產(chǎn)和生活,基于數(shù)字視頻的監(jiān)控系統(tǒng)對重要區(qū)域管控、維護(hù)公共安全及工業(yè)生產(chǎn)等起到了十分重要的作用。視頻監(jiān)控是繼數(shù)字電視、視頻會議之后的一個新的大型視頻應(yīng)用[1]。然而,面對海量的監(jiān)控視頻和高成本的存儲成本,如何對其進(jìn)行有效地編碼是當(dāng)前多媒體處理面臨的重大挑戰(zhàn)之一。
對于監(jiān)控視頻,其內(nèi)容通常是針對固定的場景使用固定鏡頭拍攝的一組連續(xù)的視頻,視頻中的重點(diǎn)內(nèi)容一般為在場景中出現(xiàn)的位置不斷變化的人或物體,而背景如路面、風(fēng)景以及建筑物等在很長一段時間保持靜止不動,故其存在較多背景冗余[2]。因此,本文將視頻內(nèi)容分為背景區(qū)域和目標(biāo)對象區(qū)域,即采用基于對象的視頻編碼方法[3],對目標(biāo)和背景分別進(jìn)行編碼,并且給目標(biāo)區(qū)域分配較多的比特和計算資源,給背景區(qū)域分配較少的比特和計算資源,這樣在相同編碼比特率和傳輸帶寬的條件下,提高視頻的主觀質(zhì)量,并且可有效去除監(jiān)控視頻存在的背景冗余,從而提高其視頻的編碼效率。
針對監(jiān)控視頻存在大量背景冗余問題,文獻(xiàn)[4]將編碼方法與目標(biāo)檢測方法相結(jié)合,把待編碼的圖像分解成兩個圖層:靜止圖層和運(yùn)動圖層,有效地減少了靜止區(qū)域的壓縮率,但是對運(yùn)動圖層和靜止圖層的劃分有待研究。文獻(xiàn)[5]利用輪廓檢測和運(yùn)動檢測等方法對監(jiān)控視頻進(jìn)行內(nèi)容分析,對監(jiān)控視頻提出了一種分層次壓縮算法,大大降低了壓縮后的監(jiān)控視頻碼率,但是只適用于包含人臉的監(jiān)控視頻。文獻(xiàn)[6]提出一種針對對象的編碼方法,提取視頻中的感興趣區(qū)域并對其進(jìn)行可控增強(qiáng),從而提高視覺效果,但是對視頻的客觀重建質(zhì)量難以保證。
同時,關(guān)于監(jiān)控視頻的運(yùn)動目標(biāo)檢測技術(shù)也得到了很快的發(fā)展。文獻(xiàn)[7]提出的ViBe 非參數(shù)化前景檢測算法采用了隨機(jī)背景更新策略,提高了背景建模的速度,但是仍然存在目標(biāo)不完整且存在鬼影問題。文獻(xiàn)[8]對ViBe 算法進(jìn)行改進(jìn),選取一段視頻中每個像素點(diǎn)的鄰域隨機(jī)像素點(diǎn),建立一種具有時間和空間信息的背景模型,再經(jīng)過運(yùn)算去除檢點(diǎn),能有效去除空洞、鬼影。文獻(xiàn)[9]提出一種加強(qiáng)型ViBe 算法,擴(kuò)大了樣本的選取范圍,同時添加了去除陰影部分,用于增強(qiáng)算法對陰影的魯棒性,但是增加了算法的復(fù)雜度。
基于對象編碼方法從監(jiān)控視頻的特點(diǎn)和需求出發(fā),先利用運(yùn)動目標(biāo)檢測技術(shù)將視頻分割為感興趣的監(jiān)控對象部分和存在視覺冗余的背景部分,然后提取出背景圖層和運(yùn)動目標(biāo)信息,最后對兩者分別編碼,其編碼框架如圖1 所示。
圖1 基于對象的編碼框架
針對ViBe 算法存在影鬼、空洞、背景更新不及時等問題[10],本文在算法實現(xiàn)中背景模型初始化時添加了預(yù)處理,并將視頻以時間軸分段進(jìn)行背景建模,然后為每個像素點(diǎn)的像素值和其相鄰點(diǎn)的像素值建立樣本集,通過將每一個新的像素值和樣本集進(jìn)行比較來判斷是否進(jìn)行背景模型的更新,用將ViBe 算法和OSTU算法[11]相結(jié)合的方法較大程度地提高了目標(biāo)檢測的準(zhǔn)確率,最終利用運(yùn)動目標(biāo)檢測技術(shù)形成一張完整的背景圖像。由于監(jiān)控視頻中場景大多是固定的,所以靜止背景圖序列也是變化很少的。
當(dāng)前使用較多的視頻編碼標(biāo)準(zhǔn)主要有兩大系列:ITU.T 制定的H.26X 系列標(biāo)準(zhǔn)和ISO/BBC 制定的MPEG 系列標(biāo)準(zhǔn)。與其他編碼方式相比,H.264 在H.263 的改良基礎(chǔ)上吸收了MPEG 的一些優(yōu)勢,其壓縮性能好且碼流差錯恢復(fù)能力強(qiáng)。因此,本文在H.264的基礎(chǔ)上實現(xiàn)目標(biāo)和背景的編碼。
(1)視頻編碼
①背景編碼
利用改進(jìn)的ViBe 算法提取運(yùn)動目標(biāo)并建立背景,其往往包含大量多幀視頻共用的信息,所以無需每幀編碼,本文設(shè)置一個編碼間隔(記作Econding_period),表示一個背景圖可作為相鄰Econding_period 張圖像的背景,這樣有望更好地提高編碼速度。靜止背景圖編碼一幀圖像的算法流程如下:
第一步,判斷該圖是否是本視頻的第一張靜止背景圖,如果是,則進(jìn)入第二步,否則,進(jìn)入第三步。
第二步,對輸入的整幀圖像采用幀內(nèi)預(yù)測編碼,幀內(nèi)預(yù)測編碼過程和傳統(tǒng)編碼器一致,利用給定幀中相鄰宏塊的空間相關(guān)性預(yù)測當(dāng)前宏塊,然后選擇預(yù)測模式,對預(yù)測誤差進(jìn)行變換、量化,并進(jìn)行熵編碼。
第三步,對輸入的整幀圖像采用幀間預(yù)測和幀內(nèi)預(yù)測兩種方式編碼,通過編碼代價比較選擇最佳模式。其中幀間預(yù)測是利用連續(xù)的靜止背景圖中的時間冗余來進(jìn)行運(yùn)動估計和運(yùn)動補(bǔ)償。
②目標(biāo)提取
運(yùn)動目標(biāo)是一塊形狀可變且不規(guī)則的區(qū)域圖像,該區(qū)域是經(jīng)過利用當(dāng)前幀與靜止背景圖相減且數(shù)值大于閾值得到的前景圖像。為了方便編碼,將其放入形狀規(guī)則的矩形塊中,本文以16×16 為例,將其稱為目標(biāo)塊。具體的實現(xiàn)方法是將整幀圖像分為若干個16×16的宏塊,每次編碼時只需編碼其中的目標(biāo)塊即可。如圖2 所示,(a)為原圖,(b)為目標(biāo)對象的掩模,(c)為對應(yīng)的目標(biāo)塊。
③目標(biāo)編碼
經(jīng)過目標(biāo)提取,每一幀圖像都含若干個16×16 的目標(biāo)塊。由于每幀圖像運(yùn)動目標(biāo)塊的數(shù)量和位置不是固定的,所以對每幀圖像的目標(biāo)編碼包括對運(yùn)動目標(biāo)塊位置信息的編碼和對運(yùn)動塊圖像數(shù)據(jù)的編碼兩部分。對目標(biāo)編碼一幀圖像的算法流程如下:
第一步,輸入檢測的運(yùn)動目標(biāo)信息。根據(jù)本幀圖像是否有運(yùn)動目標(biāo)塊來選擇是否跳過編碼,若選擇跳過編碼,則本幀目標(biāo)編碼結(jié)束,否則轉(zhuǎn)至第二步。
第二步,判斷該幀圖像是否是本視頻的第一張圖像,如果是,進(jìn)入第三步,否則,進(jìn)入第四步。
第三步,對輸入的所有目標(biāo)塊都采用幀內(nèi)預(yù)測編碼,由于目標(biāo)塊不是一張完整的圖像,所以只需利用本幀圖像中其他目標(biāo)塊的相關(guān)性預(yù)測當(dāng)前目標(biāo)塊。
第四步,對輸入的每個目標(biāo)塊采用幀間預(yù)測編碼和幀內(nèi)預(yù)測編碼。這里的幀間預(yù)測則是利用連續(xù)幀中運(yùn)動目標(biāo)塊的時間冗余來進(jìn)行運(yùn)動估計和運(yùn)動補(bǔ)償。
圖2 目標(biāo)提取示例
(2)視頻解碼
在靜止背景圖和運(yùn)動目標(biāo)分別解碼后,需要按照一定規(guī)則而整合形成圖像,即存在對應(yīng)運(yùn)動目標(biāo)時,取值為該運(yùn)動目標(biāo)像素值,否則取值為靜止背景圖的像素值。通過后面的實驗證明,最終合成圖像與原圖主觀質(zhì)量上差別不大。
本文提出的基于對象的監(jiān)控視頻編碼方法分別采用6 段不同的視頻序列從不同的角度測試其性能,其Ecoding_period 均取200。視頻序列信息如表1。
表1 視頻序列信息表
以car2,hall_monitor、Candela_m1.10 三個監(jiān)控視頻作為編碼測試序列,將本文提出的方法與原始H.264編碼方法相比較,圖3 為各個視頻序列運(yùn)動區(qū)域的RD Curve 圖。從圖中可以看出,同一個視頻序列,當(dāng)QP值較小時,兩種方法在運(yùn)動區(qū)域的PSNR 值相差不大,但是基于對象的方法壓縮有顯著提高;當(dāng)QP 值較大時,兩種方法的PSNR 值和壓縮效率差別都不大。
以test、subway、desk 三個監(jiān)控視頻作為編碼測試序列,取QP=27,分別記錄10、20、50、100、150、200 幀視頻的壓縮文件,其結(jié)果如表2 所示,從表中可以看出本文提出的方法(記為new)比H.264 方法(記為old)的壓縮效率有了明顯的提高。
表2 壓縮文件數(shù)據(jù)
圖3 三個視頻序列的R-D Curve圖
如圖4 中的(a)、(b)、(c)所示,其中左側(cè)圖表示壓縮文件大小與壓縮幀數(shù)的關(guān)系,右側(cè)圖表示解碼后的圖像。從圖表數(shù)據(jù)可以看出,本文提出的監(jiān)控視頻編碼方法比H.264 的壓縮率都有所提高,但是各個視頻序列又有所差別。相比較而言,圖4(c)中視頻序列壓縮率提高程度比較明顯,約為90.9%,其主要原因是該視頻序列的場景位于圖書館比較僻靜的角落,運(yùn)動目標(biāo)出現(xiàn)比較少。而圖4(a)中視頻序列壓縮率提高相對較少,約為48.1%,其主要原因是該視頻序列的場景位于地鐵站,運(yùn)動目標(biāo)出現(xiàn)頻率比較高,并且所占畫面的比例比較大。由此可以看出,本文提出的基于對象的視頻編碼方法對于運(yùn)動目標(biāo)出現(xiàn)頻率低、所占面積比較小的監(jiān)控視頻有著更大的優(yōu)勢。
本文提出了一個針對運(yùn)動對象的監(jiān)控視頻編碼算法,該方法將編碼圖像分解成兩部分:靜止背景部分和運(yùn)動目標(biāo)部分。靜止背景部分由多幀圖像的靜止部分累加所得,可作為其他幀圖像的背景參考,也可代替沒有運(yùn)動目標(biāo)時的運(yùn)動場景,有效地提高了靜止區(qū)域的壓縮率;同時,對運(yùn)動目標(biāo)部分采用較多碼率編碼,保證監(jiān)控視頻的主觀質(zhì)量。對不同內(nèi)容的視頻進(jìn)行測試,其結(jié)果表明,該方法相比傳統(tǒng)方法可有效提高視頻壓縮率并保持較好的視覺質(zhì)量,尤其適合運(yùn)動目標(biāo)比較少的監(jiān)控視頻。
圖4 壓縮效率與圖像質(zhì)量