多年來,圖像和視頻編碼技術(shù)經(jīng)歷了一系列變革,從第一代典型的基于像素編碼器到第二代基于分割、分形、模型等編碼器。但第二代視頻編碼器中仍有許多編碼技術(shù)還有待于進一步的研究和探索。本文主要從編碼器的結(jié)構(gòu)原理來探討視頻編碼技術(shù),希望讀者朋友能有所收獲。
文/深圳市朗馳欣創(chuàng)科技有限公司
隨著信息網(wǎng)絡(luò)化的不斷發(fā)展,以多媒體和網(wǎng)絡(luò)為基礎(chǔ)的數(shù)字化監(jiān)控技術(shù)已經(jīng)深入到人們的工作、學習和生活中。監(jiān)控技術(shù)朝著網(wǎng)絡(luò)化、數(shù)字化不斷發(fā)展,而監(jiān)控信息的一個主要特征就是多媒體技術(shù)的廣泛應用。多媒體包括文字、聲音、圖像、圖形等,具有信息量大、表達能力強等特點,因此它代替單一的信息模式已經(jīng)成為不可阻擋的趨勢。作為多媒體信息中最重要的成分,數(shù)字視頻所提供的視頻信息具備直觀性、確切性、高效性、廣泛性等一系列的優(yōu)點,但是視頻信息具有信息量過大的問題。因此必須解決視頻壓縮的效率和視頻壓縮解碼的質(zhì)量問題,這兩者是相互矛盾的。
眾所周知,常用的MPEG/H系列壓縮是一種帶預測性的壓縮格式,與原始圖像有一定程度的差異。雖然壓縮比很高,圖像清晰度也有一定保證,但因過多引入預測,則無法與真實圖像完全一一對應,顯然達不到作為證據(jù)的要求。目前,MPEG壓縮技術(shù)錄制的圖像在歐美國家尚不能作為可靠的法庭證據(jù)。反之,M-JPEG采用靜態(tài)圖像壓縮格式,追求質(zhì)量,但壓縮比太小,不能滿足當前網(wǎng)絡(luò)環(huán)境的要求。
視頻編碼技術(shù)的發(fā)展
自1948年提出電視信號數(shù)字化以來,圖像編碼壓縮技術(shù)已有50多年的歷史,其主要思路就是從圖像信息中去除去冗余。通常這些冗余可以分類為:空間冗余、時間冗余、信息量冗余、結(jié)構(gòu)冗余、知識冗余、統(tǒng)計冗余等。統(tǒng)計冗余與圖像及圖像序列電平的近似程度有關(guān);空間冗余與同一幀圖像亮度和色度值的近似程度有關(guān);時間冗余則與連續(xù)幀間的近似程度有關(guān)。
多年來,圖像和視頻編碼技術(shù)經(jīng)歷了一系列變革。從第一代典型的基于像素編碼器,到第二代基于分割、分形、模型等編碼器。ITU和ISO都發(fā)布了關(guān)于靜態(tài)圖像和視頻的編碼算法,來均衡壓縮效率和重構(gòu)信息質(zhì)量。其中,第一代視頻編碼技術(shù)僅考慮圖像及圖像序列中的空間冗余、時間冗余和信息熵冗余,其編碼方法主要以像素或像素塊作為編碼實體,沒有或較少考慮人類視覺系統(tǒng),使在低碼率時不能提供良好的視覺質(zhì)量。第二代視頻編碼技術(shù)在八十年代初開始產(chǎn)生,它是建立在圖像分析和合成、計算機圖形學、計算機視覺等基礎(chǔ)上,是基于內(nèi)容的視頻壓縮技術(shù),相比第一代視頻編碼技術(shù)的基礎(chǔ)上,進一步考慮到了視覺數(shù)據(jù)中的結(jié)構(gòu)冗余、知識冗余和視覺冗余,從而獲得了更高的壓縮效率。但同時,第二代視頻編碼中仍有許多編碼技術(shù)還有待于進一步的研究和探索。
現(xiàn)行國際視頻編碼標準
近年來,視頻編碼技術(shù)得到了迅速發(fā)展和廣泛應用,并且日臻成熟,其標志是多個關(guān)于視頻編碼的國際標準的制定。其可分為兩大系列:即國際標準化組織(ISO)和國際電工委員會(IEC)的運動圖像專家組MPEG(Motion Picture Expert Group)關(guān)于活動圖像的編碼標準MPEG系列,以及國際電信聯(lián)盟(ITU)的視頻編碼專家組VCEG(Video Coding Expert Group)制定的視頻編碼標準H.26X系列。
MPEG4/H.264/AVC標準
MPEG4/H.264/AVC是一種有損壓縮,以處理后的圖像無限接近和還原真實圖像為目標。MPEG4/H.264/AVC對編解碼器如何實現(xiàn)并沒有明確規(guī)定,而是規(guī)定編碼視頻比特流的句法和該比特流的解碼方法。這種技術(shù),使得各個廠商的編碼器和解碼器在此框架下應能夠互通,在實現(xiàn)上具有較大靈活性,而且有利于相互競爭。
從圖1和圖2可以看出,MPEG4/H.264/AVC和以前標準(如H.261、H.263、MPEG-1、MPEG-4)的編解碼器功能塊組成并沒有什么區(qū)別,仍是變換和預測相結(jié)合的混合編碼法,不同點在于各功能塊的細節(jié)。
由圖1可見,輸入的幀或場Fn以宏塊為單位被編碼器處理。首先,判定幀是否按幀內(nèi)還是幀間預測編碼方式進行預測。如果采用幀間預測,其預測值PRED(圖中用P表示)由當前序列中已編碼并解碼重建和濾波的圖像作為參考圖像(如圖1中的F’n-1),經(jīng)運動補償(MC)得到。為了提高預測精度,從而提高壓縮比,實際的參考圖像可在過去或未來(指顯示次序上)的重建幀中進行選擇。參考圖像選擇的準確與否,很大程度決定了真實圖像與呈現(xiàn)圖像之間的差值大小。
預測值PRED和當前塊的相應值相減后,產(chǎn)生一個殘差塊Dn,經(jīng)塊變換、量化后產(chǎn)生一組量化后的變換系數(shù)X,再經(jīng)熵編碼,與解碼所需的一些信息(如預測模式量化參數(shù)、運動矢量等)一起組成一個壓縮后的碼流,經(jīng)NAL(網(wǎng)絡(luò)自適應層)供傳輸和存儲用。
正如上述,為了提供進一步預測用的參考圖像,編碼器必須有重建圖像的功能。因此必須使殘差圖像經(jīng)反量化、反變換后得到的Dn’與預測值P相加,得到uFn’(未經(jīng)濾波的幀)。為了去除編碼解碼環(huán)路中產(chǎn)生的噪聲,提高參考幀的圖像質(zhì)量和壓縮圖像性能,設(shè)置了一個環(huán)路濾波器,濾波后的輸出重建圖像Fn’可用作參考圖像。在這一步驟中,重建圖像是通過預測值來實現(xiàn)的,雖然從算法上降低了失誤性,卻進一步加大了人為改變原始圖像的因素。
由圖1可知,編碼器的NAL輸出一個壓縮比特流。該比特流在圖2中經(jīng)熵解碼得到量化后的一組變換系數(shù)X,再經(jīng)反量化、反變換,得到殘差Dn’。 Dn’和該解碼器產(chǎn)生的PRED(與編碼器產(chǎn)生的PRED相同)相加后,得到uFu’,經(jīng)濾波后,最后得Fn’,F(xiàn)n’即最后的解碼輸出圖像。
JPEG標準
1991年3月ISO/IEC正式通過了靜止圖像壓縮編碼標準,稱為JPEG建議。JPEG標準分為基本系統(tǒng)、擴展系統(tǒng)和信息保持系統(tǒng)三個部分。基本系統(tǒng)提供對順序掃描靜止圖像的高效有損編碼,輸入圖像精度為8bit/像素。
(1)圖3為JPEG基本系統(tǒng)的編解碼器方框圖,輸入的彩色圖像為Y、U、V三個分量,JPEG對他們分別進行編碼。
(2)編碼時,先將一幀圖像分為互不重疊的8×8像素塊,接著對各塊進行DCT變換,然后對各變換系數(shù)進行線性量化。
量化步長Q應結(jié)合人眼視覺敏感性,亮度和色差信號的量化步長矩陣見表1和表2。
量化后系數(shù)為:
反量化后DCT系數(shù)為:
(3)熵編碼,一般采用哈夫曼(VLC)編碼。AC系數(shù)量化后為少數(shù)稀疏的值,大部分為零,采用鋸齒形(Zig-Zag)掃描,然后以游程編碼表示方式進行變長的哈夫曼編碼。
(4)數(shù)據(jù)交換格式
熵編碼后得到變長度的碼流。為便于數(shù)據(jù)的交換,JPEG規(guī)定了統(tǒng)一的壓縮后數(shù)據(jù)交換格式,如圖4所示。
第一行:SOI表示圖像數(shù)據(jù)開始;EOI為一幀圖像結(jié)束,各占兩個字節(jié)。
第二行:表/雜項中放置量化表、哈夫曼表;幀首包括編碼方法、取樣精度、量化系數(shù)、源圖像行數(shù)、每行取樣數(shù)等;DNL重新定義幀內(nèi)的行數(shù)。
第三行:掃描首說明掃描起始信息、分量圖像號碼、參數(shù)、熵編碼表選擇(ECS);RST為重新開始標志。
第四行:為熵編碼區(qū),MCV為最小編碼單元,包括4個亮度塊,1個Cr塊和1個Cb塊。 熵編碼是無損壓縮編碼方式,它生成的碼流可以經(jīng)解碼無失真地恢復出原數(shù)據(jù)。熵編碼是建立在隨機過程的統(tǒng)計特性的基礎(chǔ)上的。
上述可見,JPEG標準的編碼方式,是一種以DCT(Discrete Cosine Transform)為基礎(chǔ)的壓縮方法的壓縮格式,也稱為基線順序編解碼(Baseline Sequential Codec)方法,通過各種算式來降低圖像數(shù)據(jù)量。缺點在于壓縮量有限。這種方法的優(yōu)點是先進、有效、簡單、易于交流,因此應用廣泛。
M-JPEG標準
MJPEG全名為“Motion”JPEG,Motion JPEG技術(shù)是將來自攝像機的模擬視頻信號“翻譯”成視頻流,并存儲在硬盤上。典型的應用如數(shù)字視頻記錄器等。MJPEG不像MPEG,不使用幀間編碼,因此用一個非線性編輯器就很容易編輯。MJPEG的壓縮算法與MPEG一脈相承,功能很強大,能發(fā)送高質(zhì)圖片,生成完全動畫視頻等。但相應地,MJPEG對帶寬的要求也很高,相當于T-1,MJPEG信息是存儲在數(shù)字媒體中的龐然大物,需要大量的存儲空間以滿足如今多數(shù)用戶的需求。因此從另一個角度說,在某些條件下,MJPEG也許是效率最低的編碼/解碼器之一。
兼顧碼率控制與圖像真實
視頻是利用人的視覺獲取的信息,它具有直觀性的特點,不易和其他信息相混淆,保證了信息的準確性。同時,由于視覺,可以并行地觀察圖像,因而獲取信息的效率比音頻高得多。
與此同時,視頻信號具有顯著的高帶寬特性。視頻信息的表示形式是視頻電信號,通過網(wǎng)絡(luò)傳送至終端用戶,并在屏幕上顯示。視頻信號所包含的信息量大,其內(nèi)容可以是活動的,也可以是靜止的;可以是彩色的,也可以是黑白的;有時變化多、細節(jié)多,有時十分平坦。一般而言,視頻信號信息量大,傳輸網(wǎng)絡(luò)所需要的帶寬較寬。例如,一路監(jiān)控視頻信號,由于其活動內(nèi)容較少,所需帶寬較窄,但要達到良好質(zhì)量,不壓縮約需若干Mbps,壓縮后需要300~400Kbps。可見,視頻信息雖然具有直觀性、確定性、高效性等優(yōu)越性能,但要傳送卻需要較高的網(wǎng)絡(luò)帶寬。這就是為獲得視頻信息所需付出的代價。
如上所述,視頻信號由于信息量大,傳輸網(wǎng)絡(luò)帶寬要求較高,就像一輛龐大的貨車只有在寬闊的馬路上才能行駛一樣,必須將視頻信號在傳送前先進行壓縮編碼,然后在網(wǎng)絡(luò)上進行傳送,以便節(jié)省傳送帶寬和存儲空間。
一旦采用MPEG4/H.26X系列的壓縮方式,勢必引起呈現(xiàn)圖像跟真實圖像之間的預測差,雖然呈現(xiàn)的圖像是盡可能地對真實圖像進行還原,畢竟不是完全真實的圖像。若采用M-JPEG的壓縮方式,雖然圖像質(zhì)量得到了保證,但壓縮比過小,無法在現(xiàn)實網(wǎng)絡(luò)中使用,而無意義。
而JPEG壓縮雖是有損壓縮,但它利用的是人視覺系統(tǒng)的特性,使用量化和無損壓縮編碼相結(jié)合,來去掉視覺的冗余信息和數(shù)據(jù)本身的冗余信息。JPEG算法壓縮編碼大致分成三個步驟:
1、使用正向離散余弦變換(forward discrete cosine transform,F(xiàn)DCT)把空間域表示的圖像變換成頻率域表示的圖像。
2、使用加權(quán)函數(shù)對DCT系數(shù)進行量化,這個加權(quán)函數(shù)對于人的視覺系統(tǒng)是最佳的。
3、使用霍夫曼可變字長編碼器對量化系數(shù)進行編碼。
結(jié)語
因此,要使獲取高質(zhì)量的視頻信息,在前端實現(xiàn)JPEG抓拍更有優(yōu)勢。即圖像采用MPEG/H系列的壓縮格式壓縮后予以傳輸、觀看、存儲,但有移動觸發(fā)、視頻遮擋觸發(fā)等規(guī)則性報警行為,以及人為認定報警信息發(fā)生時,瞬時即進行前端JPEG格式高清晰度抓拍,間隔極短,能作為有效的證據(jù),這樣兼顧了MPEG/H和M-JPEG兩系列的優(yōu)勢。