本文根據(jù)視頻監(jiān)控的特點,主要討論了MPEG-4" title="MPEG-4">MPEG-4 在視頻監(jiān)控應(yīng)用中的軟件實現(xiàn)過程與涉及的關(guān)鍵技術(shù),其中重點講述了以前的標(biāo)準(zhǔn)中沒有的部分,包括VOP" title="VOP">VOP 的生成" title="生成">生成,形狀、紋理、運動編碼" title="編碼">編碼,特別強調(diào)了Sprite" title="Sprite">Sprite 編碼和可擴展編碼" title="可擴展編碼">可擴展編碼。
關(guān)鍵詞 MPEG-4 VOP 生成 Sprite 編碼 可擴展編碼
The Software Realization of MPEG-4 Based on video surveillance application
Li Qing-ping , Shi Zhong-suo,Chen Ming (University of Science and Technology Beijing, Information Engineering Institute, Beijing,100083)Abstract Due to the characters of video surveillance, this paper mainly discusses the softwarerealization of MPEG-4 based on video surveillance application. Also the related key techniquesincluding the generation of VOP, shape coding, texture coding, motion coding are presented andthe novel techniques that do not appear in the previous standard are emphasized, for example,Sprite coding and scalable coding.
Key words MPEG-4, VOP generation, Sprite coding, Scalable coding
1 引言
目前,用于數(shù)字視頻監(jiān)控的圖像壓縮標(biāo)準(zhǔn)主要是H.261 和MPEG-1,他們在實際應(yīng)用中有一定的局限性。第一,他們的適應(yīng)性差,不能根據(jù)網(wǎng)絡(luò)情況自適應(yīng)的調(diào)節(jié)傳輸率,使得網(wǎng)絡(luò)發(fā)生擁塞時性能急劇下降;第二,他們不具備較強的用戶交互性。MPEG-4 能彌補以上不足,還具有在監(jiān)控應(yīng)用中的獨特優(yōu)勢:由于壓縮比是同質(zhì)量的MPEG-1 的十倍多,所以可大大節(jié)約存儲空間和網(wǎng)絡(luò)帶寬;錯誤恢復(fù)能力強:當(dāng)網(wǎng)絡(luò)傳輸有誤碼或丟包現(xiàn)象時,MPEG4 受的影響很小并且能夠迅速恢復(fù);圖像質(zhì)量高:可以達到接近DVD 的效果。
2 設(shè)計思路
根據(jù)視頻監(jiān)控的圖像特點及其實時性要求,考慮到實際中網(wǎng)絡(luò)的不穩(wěn)定性,進行了編碼軟件的設(shè)計。視頻監(jiān)控的原始圖像有一個顯著的特點,即有大量的背景對象是靜止不動的或極少運動的。MPEG-4 最基本的思想是基于對象的編碼,編解碼的基本單元是對象。所以可以把圖像分割為運動物體對象和背景對象。背景對象采用壓縮比較高、損失較大的方法進行編碼,運動物體對象采用壓縮比較低、損失較小的方法編碼?;诖耍覀儾捎肕PEG-4 中Sprite 編碼的思想來對背景對象編碼。這是軟件實現(xiàn)的一個重點所在。針對視頻監(jiān)控的實時性要求,算法的設(shè)計與選擇上,除盡可能提高壓縮比外,還要考慮到算法的復(fù)雜性,使其盡量滿足實時性要求。這一思想貫穿于編碼的整個過程,具體的,如VOP 的定義與生成,Sprite 編碼等。另外考慮到網(wǎng)絡(luò)的不穩(wěn)定性,采用了MPEG-4 的可分級編碼思想。
3 MPEG-4 的軟件實現(xiàn)過程
現(xiàn)在,基于MPEG-4 標(biāo)準(zhǔn)的應(yīng)用大多為硬件方案,采用專門的MPEG-4 編碼芯片,難以實現(xiàn)升級,靈活性也較差,而本文中使用軟件方案,可按實際應(yīng)用要求進行編碼,易于以后的升級,具有很好的靈活性。本文中,實現(xiàn)的是自然視頻編碼,不涉及音頻編碼。軟件設(shè)計的總體步驟是首先利用圖像分割技術(shù)生VOP,接下來是Sprite 生成,最后是對各VOP 的編碼。軟件實現(xiàn)流程如圖1 所示。下面對其中的關(guān)鍵技術(shù)作介紹,重點是以前的標(biāo)準(zhǔn)中所沒有的:視頻對象平面VOP(video object plane)的定義與生成,Sprite 生成與編碼,形狀、運動、紋理編碼,可擴展編碼。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 的生成是通過視頻分割實現(xiàn)的。視頻分割是實現(xiàn)基于對象的視頻編碼系統(tǒng)的基礎(chǔ),也是MPEG-4 編碼的一個難點。圖像分割技術(shù)根據(jù)分割所利用的信息,分為基于紋理的分割、基于運動的分割和基于時空的分割三類。按照人工參與的程度,圖像分割分為自動分割和半自動分割。自動分割不需要用戶的參與,只需要設(shè)置一些基本的參數(shù),就可以由分割算法自動將視頻對象分割出來,但是結(jié)果不很準(zhǔn)確,主要用于實時編碼;半自動分割需要用戶的參與,因此可以得到準(zhǔn)確的語義對象和邊界,主要用于基于內(nèi)容的操縱和交互式訪問。基于編碼對圖像分割的要求不是很高,主要在于實時性上,這里,選用了一種時空聯(lián)合自動視頻對象分割算法。該算法首先對時域分割采用基于F-假設(shè)檢驗的方法來得到初始的變化檢測模板,然后通過與基于形態(tài)學(xué)的空域分割融合來獲得最終的運動對象。此算法計算比較簡單,能較好的將前景運動對象從背景中分離出來,算法詳見。
3.2 Sprite 編碼
Sprite 編碼是新一代的編碼技術(shù),它利用全局運動估計生成視頻段背景的Sprite 圖像(全景圖),然后將這個Sprite 圖像編碼,以后各幀的背景編碼都只是對該幀相對于Sprite 圖像的運動參數(shù)進行編碼?;诒尘暗钠交图y理相關(guān)性大的特點,對Sprite 全景圖的編碼采用一種直接空間預(yù)測方法,基于篇幅限制,這里不作介紹,可參考[2]。Sprite 編碼包括兩部分,一是Sprite 的生成,使用全局運動估計來生成;二是Sprite 編碼。Sprite 在最初的VOP 編碼之前建立, MPEG-4標(biāo)準(zhǔn)中定義了兩種類型的Sprite:靜態(tài)Sprite 和動態(tài)Sprite。在這里選用動態(tài)Sprite,因此我們僅討論動態(tài)Sprite 的生成與編碼。
動態(tài)Sprite 的編碼如圖2 所示:視頻序列的第一幀采用I-VOP 方法編碼,而第一幀的重構(gòu)圖像在編碼端和解碼端建立相同的初始Sprite 圖像;第二幀用全局運動估計算法估計當(dāng)前VOP 與前一幀VOP 之間的全局運動,用參考點的軌跡描述兩個VOP 之間的運動。采用P-VOP 方法編碼第二幀的紋理,不同的是編碼該VOP 各個宏塊時,運動補償?shù)姆绞匠撕陦K和塊運動補償外,還可以用Sprite圖像為參考進行運動補償,此時宏塊的運動補償為全局運動補償。解碼器的解碼參考點的軌跡得到全局運動參數(shù),然后解碼紋理信息得到第二幀的重構(gòu)圖像,根據(jù)全局運動參數(shù)和第二幀重構(gòu)圖像更新Sprite 圖像。同樣的方法用來編碼序列后面的VOP。
圖2 動態(tài)Sprite 編碼框圖
3.3 可擴展編碼
根據(jù)視頻監(jiān)控的特點,當(dāng)傳輸圖像的分辨率和幀率不是很高時,仍能達到一般要求下的監(jiān)控效果。因此我們可以采用MPEG-4 的基于對象的分層傳輸思想,使用空域分級功能調(diào)節(jié)空間分辨率,使用時域分級功能調(diào)節(jié)幀率。這樣做一方面可以方便地實現(xiàn)碼率控制,對網(wǎng)絡(luò)帶寬的變化具有很好的自適應(yīng)性,另一方面,用戶可以通過交互功能選擇分辨率和幀率,以得到更好的視頻效果或獲得某一對象局部的細(xì)節(jié)。MPEG-4 定義了一種通用的可分級擴展框架來實現(xiàn)空間和時間可分級擴展,如圖3 所示。
圖3 MPEG-4 通用的可分級擴展框架圖
當(dāng)用于空域擴展時,可擴展預(yù)處理器對輸入的VOP 下采樣,得到由VOP編碼器處理的基本層VOP。中間處理器處理重建的基本層VOP,并對其進行上采樣,原始VOP 與中間處理器輸出的差作為增強層編碼器的輸入。在增強層中的編碼是以P-VOP 或B-VOP 方式編碼的。通過反復(fù)接器可以分別訪問基本層和增強層解碼器對應(yīng)的基本層和增強層碼流,解碼器端的中間處理器與編碼端執(zhí)行相同的操作,擴展后處理器執(zhí)行必要的轉(zhuǎn)換工作。
當(dāng)擴展編碼使用時域擴展編碼時,可擴展預(yù)處理器在時域上將一個VO 分解成VOP 的兩個子流,其中一個被輸入到基本層編碼器中,另一個輸入到增強層編碼器中。在這種情況下,不需要中間處理器,而是簡單地將解碼的VOP 基本層輸入到VOP 增強層編碼器,增強層編碼器將使用它們進行時域預(yù)測??蓴U展后處理器只是簡單地輸出基本層的VOP,并不進行任何轉(zhuǎn)換,但是在時域上混合基本層和增強層VOP,以產(chǎn)生更高時域分辨率的增強輸出。
3.4 普通VOP 的形狀、運動、紋理編碼
形狀編碼是其他的編碼標(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ù)編碼方法[4],整個編碼過程可分為以下五步:①對于給定VOP 的二值形狀圖重新確定形狀邊界,并將它分為若干個16×16 二值α塊(Binary Alpha Block,縮寫為BAB)。②對即將編碼的BAB 塊進行運動估計,得到運動矢量MVs(MV for shape 縮寫為MVs)。③對該VOP 中待編碼的BAB 塊確定編碼方式。④對待編碼的BAB 塊確定分辨率。⑤對BAB 塊進行編碼。灰度級編碼形狀編碼與此類似。對普通視頻對象,MPEG-4 編碼算法支持三種類型的VOP:I-VOP、P-VOP、B-VOP。在MPEG-4 中運動預(yù)測和運動補償可以是基于16×16 宏塊,也可以為8×8 塊。如果宏塊完全位于VOP 內(nèi),運動估計使用一般的方法進行;倘若宏塊位于VOP 邊界,則使用圖像填充技術(shù)給VOP 外的像素指定值。然后利用這些值計算SAD。對于P-VOP 和B-VOP,運動矢量首先被差分編碼,然后再用可變長編碼運動矢量。
視頻對象的紋理信息用亮度Y 和兩個色差分量Cb、Cr 表示,對于I-VOP,紋理信息直接包含在亮度和色差分量中,在有運動補償?shù)那闆r下,紋理信息用運動補償后的殘差表示。紋理信息的編碼使用了標(biāo)準(zhǔn)的8*8 的DCT。紋理編碼中,幀內(nèi)VOP 和運動補償后的殘差數(shù)據(jù)都用相同的8×8 塊DCT 方案編碼,對亮度和色度分別做DCT。對于VOP 之內(nèi)的宏塊用與H.263 相同的技術(shù)編碼,對位于VOP 形狀邊緣的宏塊,有兩種選擇,一是用圖像填充技術(shù)填滿宏塊中VOP 以外的部分,另一種是用形狀自適應(yīng)DCT 編碼的方法。后者只對VOP 內(nèi)部的像素編碼,從而在比特率相同的情況下有較高的質(zhì)量,代價是應(yīng)用的復(fù)雜度稍高,考慮到視頻監(jiān)控的實時要求,選用了圖像填充技術(shù)中的低通外推(Low PassExtrapolotion)方法。接著再做DCT。對DCT 后的數(shù)據(jù)量化、掃描與可變長編碼操作類似于MPEG- 2 和H.263,在此就不詳述了。
4 小結(jié)
本文根據(jù)圖像監(jiān)控系統(tǒng)的特點,吸取MPEG-4 編碼標(biāo)準(zhǔn)的思想,提出了用軟件實現(xiàn)MPEG-4 在視頻監(jiān)控應(yīng)用中的編碼的主要框架,相較目前使用較多的硬件方案,更能貼近實際應(yīng)用的要求,具有很好的靈活性和可升級性,又可降低成本。但由于MPEG-4 的編碼非常復(fù)雜,加上其技術(shù)上還不是很完善,所以實現(xiàn)上有一定的難度尤其如何保持其實時性能上難度更大。隨著高速處理芯片的不斷出現(xiàn)及MPEG-4 在技術(shù)上的發(fā)展完善,這些問題將迎刃而解。