1 引言
目前,用于數(shù)字視頻監(jiān)控的圖像壓縮標(biāo)準(zhǔn)主要是H.261 和MPEG-1,他們在實(shí)際應(yīng)用中有一定的局限性。第一,他們的適應(yīng)性差,不能根據(jù)網(wǎng)絡(luò)情況自適應(yīng)的調(diào)節(jié)傳輸率,使得網(wǎng)絡(luò)發(fā)生擁塞時(shí)性能急劇下降;第二,他們不具備較強(qiáng)的用戶交互性。MPEG-4 能彌補(bǔ)以上不足,還具有在監(jiān)控應(yīng)用中的獨(dú)特優(yōu)勢:由于壓縮比是同質(zhì)量的MPEG-1 的十倍多,所以可大大節(jié)約存儲(chǔ)空間和網(wǎng)絡(luò)帶寬;錯(cuò)誤恢復(fù)能力強(qiáng):當(dāng)網(wǎng)絡(luò)傳輸有誤碼或丟包現(xiàn)象時(shí),MPEG4 受的影響很小并且能夠迅速恢復(fù);圖像質(zhì)量高:可以達(dá)到接近DVD 的效果。
2 設(shè)計(jì)思路
根據(jù)視頻監(jiān)控的圖像特點(diǎn)及其實(shí)時(shí)性要求,考慮到實(shí)際中網(wǎng)絡(luò)的不穩(wěn)定性,進(jìn)行了編碼軟件的設(shè)計(jì)。視頻監(jiān)控的原始圖像有一個(gè)顯著的特點(diǎn),即有大量的背景對象是靜止不動(dòng)的或極少運(yùn)動(dòng)的。MPEG-4 最基本的思想是基于對象的編碼,編解碼的基本單元是對象。所以可以把圖像分割為運(yùn)動(dòng)物體對象和背景對象。背景對象采用壓縮比較高、損失較大的方法進(jìn)行編碼,運(yùn)動(dòng)物體對象采用壓縮比較低、損失較小的方法編碼。基于此,我們采用MPEG-4 中Sprite 編碼的思想來對背景對象編碼。這是軟件實(shí)現(xiàn)的一個(gè)重點(diǎn)所在。針對視頻監(jiān)控的實(shí)時(shí)性要求,算法的設(shè)計(jì)與選擇上,除盡可能提高壓縮比外,還要考慮到算法的復(fù)雜性,使其盡量滿足實(shí)時(shí)性要求。這一思想貫穿于編碼的整個(gè)過程,具體的,如VOP 的定義與生成,Sprite 編碼等。另外考慮到網(wǎng)絡(luò)的不穩(wěn)定性,采用了MPEG-4 的可分級編碼思想。
3 MPEG-4 的軟件實(shí)現(xiàn)過程
現(xiàn)在,基于MPEG-4 標(biāo)準(zhǔn)的應(yīng)用大多為硬件方案,采用專門的MPEG-4 編碼芯片,難以實(shí)現(xiàn)升級,靈活性也較差,而本文中使用軟件方案,可按實(shí)際應(yīng)用要求進(jìn)行編碼,易于以后的升級,具有很好的靈活性。本文中,實(shí)現(xiàn)的是自然視頻編碼,不涉及音頻編碼。軟件設(shè)計(jì)的總體步驟是首先利用圖像分割技術(shù)生VOP,接下來是Sprite 生成,最后是對各VOP 的編碼。軟件實(shí)現(xiàn)流程如圖1 所示。下面對其中的關(guān)鍵技術(shù)作介紹,重點(diǎn)是以前的標(biāo)準(zhǔn)中所沒有的:視頻對象平面VOP(video object plane)的定義與生成,Sprite 生成與編碼,形狀、運(yùn)動(dòng)、紋理編碼,可擴(kuò)展編碼。MPEG-4 中,VOP 分四種,I-VOP、P-VOP、B-VOP、S-VOP,對于普通視頻對象,只涉及到前三種,S-VOP 指SpriteVOP。

3.1 VOP 的定義與生成
MPEG-4 的編碼單位是VOP,但標(biāo)準(zhǔn)并未規(guī)定生成VOP 的具體算法,而將其列入公開研究的內(nèi)容。VOP 的生成是通過視頻分割實(shí)現(xiàn)的。視頻分割是實(shí)現(xiàn)基于對象的視頻編碼系統(tǒng)的基礎(chǔ),也是MPEG-4 編碼的一個(gè)難點(diǎn)。圖像分割技術(shù)根據(jù)分割所利用的信息,分為基于紋理的分割、基于運(yùn)動(dòng)的分割和基于時(shí)空的分割三類。按照人工參與的程度,圖像分割分為自動(dòng)分割和半自動(dòng)分割。自動(dòng)分割不需要用戶的參與,只需要設(shè)置一些基本的參數(shù),就可以由分割算法自動(dòng)將視頻對象分割出來,但是結(jié)果不很準(zhǔn)確,主要用于實(shí)時(shí)編碼;半自動(dòng)分割需要用戶的參與,因此可以得到準(zhǔn)確的語義對象和邊界,主要用于基于內(nèi)容的操縱和交互式訪問;诰幋a對圖像分割的要求不是很高,主要在于實(shí)時(shí)性上,這里,選用了一種時(shí)空聯(lián)合自動(dòng)視頻對象分割算法。該算法首先對時(shí)域分割采用基于F-假設(shè)檢驗(yàn)的方法來得到初始的變化檢測模板,然后通過與基于形態(tài)學(xué)的空域分割融合來獲得最終的運(yùn)動(dòng)對象。此算法計(jì)算比較簡單,能較好的將前景運(yùn)動(dòng)對象從背景中分離出來,算法詳見。
3.2 Sprite 編碼
Sprite 編碼是新一代的編碼技術(shù),它利用全局運(yùn)動(dòng)估計(jì)生成視頻段背景的Sprite 圖像(全景圖),然后將這個(gè)Sprite 圖像編碼,以后各幀的背景編碼都只是對該幀相對于Sprite 圖像的運(yùn)動(dòng)參數(shù)進(jìn)行編碼;诒尘暗钠交图y理相關(guān)性大的特點(diǎn),對Sprite 全景圖的編碼采用一種直接空間預(yù)測方法,基于篇幅限制,這里不作介紹,可參考[2]。Sprite 編碼包括兩部分,一是Sprite 的生成,使用全局運(yùn)動(dòng)估計(jì)來生成;二是Sprite 編碼。Sprite 在最初的VOP 編碼之前建立, MPEG-4標(biāo)準(zhǔn)中定義了兩種類型的Sprite:靜態(tài)Sprite 和動(dòng)態(tài)Sprite。在這里選用動(dòng)態(tài)Sprite,因此我們僅討論動(dòng)態(tài)Sprite 的生成與編碼。
動(dòng)態(tài)Sprite 的編碼如圖2 所示:視頻序列的第一幀采用I-VOP 方法編碼,而第一幀的重構(gòu)圖像在編碼端和解碼端建立相同的初始Sprite 圖像;第二幀用全局運(yùn)動(dòng)估計(jì)算法估計(jì)當(dāng)前VOP 與前一幀VOP 之間的全局運(yùn)動(dòng),用參考點(diǎn)的軌跡描述兩個(gè)VOP 之間的運(yùn)動(dòng)。采用P-VOP 方法編碼第二幀的紋理,不同的是編碼該VOP 各個(gè)宏塊時(shí),運(yùn)動(dòng)補(bǔ)償?shù)姆绞匠撕陦K和塊運(yùn)動(dòng)補(bǔ)償外,還可以用Sprite圖像為參考進(jìn)行運(yùn)動(dòng)補(bǔ)償,此時(shí)宏塊的運(yùn)動(dòng)補(bǔ)償為全局運(yùn)動(dòng)補(bǔ)償。解碼器的解碼參考點(diǎn)的軌跡得到全局運(yùn)動(dòng)參數(shù),然后解碼紋理信息得到第二幀的重構(gòu)圖像,根據(jù)全局運(yùn)動(dòng)參數(shù)和第二幀重構(gòu)圖像更新Sprite 圖像。同樣的方法用來編碼序列后面的VOP。

圖2 動(dòng)態(tài)Sprite 編碼框圖
3.3 可擴(kuò)展編碼
根據(jù)視頻監(jiān)控的特點(diǎn),當(dāng)傳輸圖像的分辨率和幀率不是很高時(shí),仍能達(dá)到一般要求下的監(jiān)控效果。因此我們可以采用MPEG-4 的基于對象的分層傳輸思想,使用空域分級功能調(diào)節(jié)空間分辨率,使用時(shí)域分級功能調(diào)節(jié)幀率。這樣做一方面可以方便地實(shí)現(xiàn)碼率控制,對網(wǎng)絡(luò)帶寬的變化具有很好的自適應(yīng)性,另一方面,用戶可以通過交互功能選擇分辨率和幀率,以得到更好的視頻效果或獲得某一對象局部的細(xì)節(jié)。MPEG-4 定義了一種通用的可分級擴(kuò)展框架來實(shí)現(xiàn)空間和時(shí)間可分級擴(kuò)展,如圖3 所示。

圖3 MPEG-4 通用的可分級擴(kuò)展框架圖
當(dāng)用于空域擴(kuò)展時(shí),可擴(kuò)展預(yù)處理器對輸入的VOP 下采樣,得到由VOP編碼器處理的基本層VOP。中間處理器處理重建的基本層VOP,并對其進(jìn)行上采樣,原始VOP 與中間處理器輸出的差作為增強(qiáng)層編碼器的輸入。在增強(qiáng)層中的編碼是以P-VOP 或B-VOP 方式編碼的。通過反復(fù)接器可以分別訪問基本層和增強(qiáng)層解碼器對應(yīng)的基本層和增強(qiáng)層碼流,解碼器端的中間處理器與編碼端執(zhí)行相同的操作,擴(kuò)展后處理器執(zhí)行必要的轉(zhuǎn)換工作。
當(dāng)擴(kuò)展編碼使用時(shí)域擴(kuò)展編碼時(shí),可擴(kuò)展預(yù)處理器在時(shí)域上將一個(gè)VO 分解成VOP 的兩個(gè)子流,其中一個(gè)被輸入到基本層編碼器中,另一個(gè)輸入到增強(qiáng)層編碼器中。在這種情況下,不需要中間處理器,而是簡單地將解碼的VOP 基本層輸入到VOP 增強(qiáng)層編碼器,增強(qiáng)層編碼器將使用它們進(jìn)行時(shí)域預(yù)測?蓴U(kuò)展后處理器只是簡單地輸出基本層的VOP,并不進(jìn)行任何轉(zhuǎn)換,但是在時(shí)域上混合基本層和增強(qiáng)層VOP,以產(chǎn)生更高時(shí)域分辨率的增強(qiáng)輸出。
3.4 普通VOP 的形狀、運(yùn)動(dòng)、紋理編碼
形狀編碼是其他的編碼標(biāo)準(zhǔn)中所沒有的,編碼的信息有兩類:二值形狀信息(binary shapeinformation)和灰度級形狀信息(gray scale shape information)。二值形狀信息就是用0、1 的方法表示編碼的VOP 的形狀,0 表示非VOP 區(qū)域,1 表示VOP 的區(qū)域;灰度級形狀信息可取值0~255,類似于圖形學(xué)中的α 平面的概念,0 表示非VOP 區(qū)域(即透明區(qū)域),1~255 表示VOP 區(qū)域透明程度的不同,255 表示完全不透明;叶燃壭螤信息的引入主要是為了使前景物體疊加到背景上時(shí)不至于界太明顯、太生硬,進(jìn)行一下模糊處理。這里二值形狀采用基于上下文的算術(shù)編碼方法[4],整個(gè)編碼過程可分為以下五步:①對于給定VOP 的二值形狀圖重新確定形狀邊界,并將它分為若干個(gè)16×16 二值α塊(Binary Alpha Block,縮寫為BAB)。②對即將編碼的BAB 塊進(jìn)行運(yùn)動(dòng)估計(jì),得到運(yùn)動(dòng)矢量MVs(MV for shape 縮寫為MVs)。③對該VOP 中待編碼的BAB 塊確定編碼方式。④對待編碼的BAB 塊確定分辨率。⑤對BAB 塊進(jìn)行編碼;叶燃壘幋a形狀編碼與此類似。對普通視頻對象,MPEG-4 編碼算法支持三種類型的VOP:I-VOP、P-VOP、B-VOP。在MPEG-4 中運(yùn)動(dòng)預(yù)測和運(yùn)動(dòng)補(bǔ)償可以是基于16×16 宏塊,也可以為8×8 塊。如果宏塊完全位于VOP 內(nèi),運(yùn)動(dòng)估計(jì)使用一般的方法進(jìn)行;倘若宏塊位于VOP 邊界,則使用圖像填充技術(shù)給VOP 外的像素指定值。然后利用這些值計(jì)算SAD。對于P-VOP 和B-VOP,運(yùn)動(dòng)矢量首先被差分編碼,然后再用可變長編碼運(yùn)動(dòng)矢量。
視頻對象的紋理信息用亮度Y 和兩個(gè)色差分量Cb、Cr 表示,對于I-VOP,紋理信息直接包含在亮度和色差分量中,在有運(yùn)動(dòng)補(bǔ)償?shù)那闆r下,紋理信息用運(yùn)動(dòng)補(bǔ)償后的殘差表示。紋理信息的編碼使用了標(biāo)準(zhǔn)的8*8 的DCT。紋理編碼中,幀內(nèi)VOP 和運(yùn)動(dòng)補(bǔ)償后的殘差數(shù)據(jù)都用相同的8×8 塊DCT 方案編碼,對亮度和色度分別做DCT。對于VOP 之內(nèi)的宏塊用與H.263 相同的技術(shù)編碼,對位于VOP 形狀邊緣的宏塊,有兩種選擇,一是用圖像填充技術(shù)填滿宏塊中VOP 以外的部分,另一種是用形狀自適應(yīng)DCT 編碼的方法。后者只對VOP 內(nèi)部的像素編碼,從而在比特率相同的情況下有較高的質(zhì)量,代價(jià)是應(yīng)用的復(fù)雜度稍高,考慮到視頻監(jiān)控的實(shí)時(shí)要求,選用了圖像填充技術(shù)中的低通外推(Low PassExtrapolotion)方法。接著再做DCT。對DCT 后的數(shù)據(jù)量化、掃描與可變長編碼操作類似于MPEG- 2 和H.263,在此就不詳述了。
4 小結(jié)
本文根據(jù)圖像監(jiān)控系統(tǒng)的特點(diǎn),吸取MPEG-4 編碼標(biāo)準(zhǔn)的思想,提出了用軟件實(shí)現(xiàn)MPEG-4 在視頻監(jiān)控應(yīng)用中的編碼的主要框架,相較目前使用較多的硬件方案,更能貼近實(shí)際應(yīng)用的要求,具有很好的靈活性和可升級性,又可降低成本。但由于MPEG-4 的編碼非常復(fù)雜,加上其技術(shù)上還不是很完善,所以實(shí)現(xiàn)上有一定的難度尤其如何保持其實(shí)時(shí)性能上難度更大。隨著高速處理芯片的不斷出現(xiàn)及MPEG-4 在技術(shù)上的發(fā)展完善,這些問題將迎刃而解。 