主流視頻編碼技術
MPEG(Moving Picture Expert Group)是在1988年由國際標準化組織(International Organization for Standardization , ISO)和國際電工委員會(international Electrotechnical Commission ,IEC)聯合成立的專家組。本公司是是一家從事鄭州監控設計、鄭州監控安裝、鄭州監控維修的專業監控安裝公司,同時承接鄭州網絡布線、鄭州綜合布線、鄭州光纖熔接、無線網絡覆蓋、光纖熔接、防盜報警等弱電系統。
開發電視圖像數據和聲音數據的編碼、解碼和它們的同步等標準。MPEG標準時一個面向運動圖像壓縮的標準系列,到目前為止,已經開發和正在開發的標準有:
MJPEG壓縮。
MPEG-1——數字電視標準,1992年正式發布。
MPEG-2——數字電視標準,1994年成為國際標準草案。
MPEG-4——多媒體應用標準(1999年發布)。
視頻圖像編碼壓縮技術的評價準則:碼率(Bitrate)、重建圖像的質量、編碼/解碼延時錯誤修復能力、算法復雜程度。視頻圖像編碼壓縮技術對來普通的監控安裝人員來說確實沒多大用途,但對用專業的監控安裝技術人員還是有必要了解的。
MJPEG編碼壓縮
MJPEG編碼壓縮方式是一種基于靜態圖像壓縮技術發展而來的動態圖像壓縮方式,可以對連續的視頻流進行壓縮產生一個圖像序列。MJPEG的特點是不考慮視頻序列前后幀之間的相關性而僅僅考慮同一幀內視頻圖像的空間冗余性并進行壓縮,因此MJPEG編碼方式實現起來比較簡單、編碼延時較小、畫面可以任意剪接(畫面之間沒有關系)、可以靈活調整壓縮幀率及分辨率;缺點是由于不考慮相鄰幀圖像之間的空域冗余性,因此壓縮比不高。MJPEG可以實現各種分辨率,如從QVGA、4CIF到百萬像素的編碼。
在MJPEG編碼壓縮方式中,由于壓縮每一幅圖像,而忽略了多幅圖像序列之間的關聯,因此,發送的信息中有大量的冗余信息。如果每秒傳輸多幀視頻的情況下,實質上除了幅圖像,之后一遍一遍地傳輸著大量、重復的信息,這是一種巨大的資源浪費。在之后要介紹的視頻編碼方式,MPEG系列及H.264算法中,它們不發送重復的信息,編碼器僅僅每隔一段時間(取決于GOP Size大小)發送一幅完整的參照幀數據,其他時間僅僅發送圖像的變化信息。在多數視頻監控系統中,監控安裝圖像的大部分內容并不變化,僅僅一部分變化,因此,這樣可以節省大量的網絡帶寬及存儲資源。如MJPEG可能發送的圖像每幀都在100KB大小,而MPEG-4可能幅及以后的參考圖像幀也在100KB左右大小,但是中間的圖像(預測幀,B、P幀)大小可能僅僅10KB大小,節省碼流可達50%到80%。
MPEG-4技術介紹
MPEG-4標準于1998年11月公布,MPEG-4不僅是針對一定比特率下的視頻、音頻編碼,而是更加注重多媒體系統的交互性和靈活性,目的是為視聽數據的編碼和交互播放開發算法和工具,它是一個數據速率很低的多媒體通信標準。MPEG-4算法的核心是“支持基于內容”的編碼和解碼功能,也就是對監控安裝場景中使用分割算法抽取的單獨的物理對象進行編碼和解碼。MPEG-4標準規定了各種音頻視頻對象的編碼,除了包括自然的音頻視頻對象,還包括圖像、文字、2D和3D圖形以及合成語音等。MPEG-4通過描述監控安裝場景結構信息,即各種對象的空間位置和時間關系等,來建立一個多媒體監控安裝場景,并將它與編碼的對象一起傳輸。由于對各個對象進行獨立地編碼,從而可以達到很高的壓縮率,同時也為在接收端根據需要對內容進行操作提供了可能,適應了多媒體應用中“人機交互”的需求。MPEG-4標準的視頻編碼分為合成視頻編碼和自然視頻編碼。
MPEG-4視頻編碼技術
MPEG-4標準采用的仍然是類似以前標準(H.261/3和MPEG-1/2)的基本編碼框架,即典型的三步:預測編碼、變換量化和熵編碼。新的壓縮編碼標準都是基于優化的思想進行設計的,將先前標準中的某些技術加以改進。例如,在原來的基礎上提出1/4和1/8像素精度的運動補償技術,使得預測編碼的性能大大提高。MPEG-4標準不僅僅給出了具體壓縮算法,它是針對數字電視、交互式多媒體應用、視頻監控安裝等整合及壓縮技術的需要而制定的。MPEG-4將多種多媒體應用集成在一個完整的框架里,為不同的應用提供了相應的類別(Profile)和檔次(Level)。
MPEG-4標準中采用了“基于對象”的編碼理念。傳統的視頻編碼方法依照信源編碼理論的框架,利用輸入信號的隨機特性達到視頻數據壓縮的目的,而并沒有考慮信息獲取者的主觀特性以及事件本身的具體含義、重要性及后果等。MPEG-4標準中引用了視頻對象的概念,打破了過去以“宏塊”為單位編碼的限制,其目的在于采用現代圖像編碼方法,利用人眼的視覺特性,抓住圖像信息傳輸的本質,從輪廓、紋理的思路出發,支持基于視頻內容的交互功能。注意以上這些改進都是根據人眼的一些自然特性提出來的。
VO與VOP概念的引入
傳統的視頻編碼方式是將整個視頻信號作為一個內容整體來進行處理,其本身不可再分割,而這與人類對視覺信息的識別習慣是不同的。傳統的編碼方式(MPEG-1、MPEG-2)不能將一個監控安裝視頻信息完整地從視頻信號中提取出來,比如將加有電視臺臺標和字幕的視頻恢復成無臺標、無字幕的視頻。而解決此類問題的辦法就是在編碼時就將不同的視頻信息載體,即視頻對象VO(Video Objects)區分對待,分別獨立地進行編碼與傳輸,將圖像序列中的每一幀,看成是由不同的VO加上活動的背景所組成。VO可以是人、車、動物、其他物類,也可以是計算機生成的圖形。VO具有音頻屬性,但音頻的具體內容數據是獨立于視頻編碼傳輸的。VO概念的引入,更加符合人眼對視覺信息的處理方式,提高了視頻信號的交互性和靈活性,使得更廣泛的視頻應用和更多的內容交互功能成為可能。
視頻對象平面(Video Object Plane ,VOP)是視頻對象(VO)在某一時刻的采樣,VOP是MPEG-4視頻編碼的核心概念。VOP的編碼主要由兩部分組成:一個是形狀編碼,另一個是紋理和運動信息編碼。VOP紋理編碼和運動信息的預測、補償在原理上同MPEG-2標準基本一致,而形狀編碼技術則是應用在視頻編碼領域。
VOP編碼類型
VOP編碼類型有4種。
內部VOP(I-VOP):只用到當前幀的信息編碼。
單向預測VOP(P-VOP):參考前面的I或P-VOP,利用運動補償技術來編碼。
雙向預測VOP(B-VOP):參考前后的I或P-VOP,利用運動補償技術來編碼。
全景VOP(S-VOP),用來編碼Sprite對象。
MPEG-4編碼架構
為了支持高效的編碼壓縮,MPEG-4仍然采用了交換、預測混合編碼的框架。MPEG-4可以用來對矩形和任意形狀的輸入圖像序列進行編碼。這個基本編碼算法結構圖包含了移動矢量(Motion Vector,MV)的編碼,以及以離散余弦變換(DCT)為基礎的紋理編碼。可見,MPEG-4為了支持基于對象的編碼,引入了形狀編碼模塊,對每個視頻對象的形狀、運動和紋理信息編碼,形成單獨的視頻對象。
MPEG-4編碼過程
如先前所述,MPEG-4編碼的一個重要特點是“基于內容的編碼”。所謂“基于內容”,是指它在交互使用過程中可從監控安裝圖像中選擇某一部分對象進行單獨的編碼和操作。例如,一幅監控安裝圖像含有若干個不同對象,位于各個不同位置,同時還有文字說明和背景等,MPEG-4可按操作者的需要把各個對象或文字說明、背景等單獨提取出來進行編碼和操作,最后還可分別譯碼,重組成一幅新的監控安裝圖像,這種功能在交互業務中很重要。
MPEG-4的編碼流程的步是VO的形成(VO Formation),先要從原始視頻中分割出VO,其次由編碼控制(Coding Control)機制為不同的VO以及各個VO的三類信息分配碼率,之后各個VO分別獨立編碼,最后將各個VO的碼流復合成一個位流。其中,在編碼控制和復合階段可以加入用戶的交互控制或由智能化的算法進行控制。目前的MPEG-4標準中包含了基于網絡模型的編碼和Sprite技術。在進行圖像分析后,先考察每個VO是否符合一個模型,典型的如人頭肩像,如果是就按模型編碼;再考慮背景能否采用Sprite技術,如果可以則將背景產生一幅大圖,為每幀產生一個仿射變換和一個位置信息即可;最后才對其余的VO按上述流程編碼。MPEG-4的解碼流程基本上為編碼的反過程。
MPEG-4中的視頻對象VO
MPEG-4中把對視頻對象(VO)分成以下幾類:自然視頻(傳統的)、2D和3D網格(Mesh)、靜態紋理(靜態圖)、Sprite(通過拼接生成的背景圖)、FBA(Face and Body Animation,人臉和人體動畫),以便有針對性地對這些類別分別進行編碼和處理。
自然視頻編碼
首先,對自然視頻流進行VOP分割,由編碼控制器為不同VO的形狀、運動、紋理信息分配碼率,并由VO編碼器對各個VO分別進行獨立編碼,然后將編碼的基本碼流復合成一個輸出碼流,編碼控制和復用(Multiplex,多路復用)部分可以加入用戶的交互控制或智能算法控制。接收端經解復用(Demultiplex,多路信號分離),將各個VO分別解碼,然后將解碼后的VO合成監控安裝場景輸出。
視頻對象(VO)編碼器包括三個部分:形狀編碼部分、運動補償部分以及紋理編碼部分。在視頻監控系統應用中對視頻進行編碼時,常采用MPEG-4標準進行壓縮,因為視頻監控安裝的場景中圖像背景通常是固定不變的,人物活動情況比較少,基于對象編碼能得到較高的數據壓縮率。
3D人臉和身體對象
3D人臉對象是用3D網格模型來描述人臉的形狀、表情等各種面部特征,MPEG-4定義了兩套參數來描述人臉的形狀和運動,面部定義參數FDP(Facial Define Parameter)和面部動畫參數FAP(Facial Animation Parameter)。在3D人臉對象的編碼過程中,FDP參數只需要編碼傳輸一次,關鍵幀的FAP參數編碼驅動面部運動,關鍵幀之間通過插值技術生成一些中間圖像,使人臉的各種運動看起來更平滑、自然。
Sprite編碼技術
Sprite對象是針對背景對象的特點提出的,圖3.36是表示Sprite編碼的一個實際例子。左上角的圖是背景全景圖。左下角的圖是一個沒有背景的子圖像前景圖,可以把兩個“潛伏人員”當作是一個視頻對象(VO),通常把這種可以獨立移動的小圖像稱為子圖像(Sprite子圖像)。右面的圖是接收端合成的全景圖。在編碼之前這個子圖像全景圖從背景全景圖序列中抽出來,然后分別對它們進行編碼、傳送和解碼,最后再合成。