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