1 引言
傳統的視頻監控架構主要有三種方式:模擬監控、數字監控和網絡監控。模擬監控多采用模擬攝像機+監控矩陣的方式。數字監控多采用模擬攝像機+DVR的方式。網絡監控則多采用網絡攝像機(或者模擬攝像機+視頻編碼終端)+平臺/NVR的結構。隨著圖像壓縮存儲技術和網絡傳輸技術的發展,能夠滿足大多數市場需求的網絡監控模式(網絡攝像機+平臺/NVR)已成為市場主流。
2 視頻監控需要高清實現
對于視頻監控而言,圖像清晰度是一個至關重要的指標。只有圖像清晰度上去了,才能使用戶體驗更好,智能應用等業務準確性也會更高。而今,高清這個概念已經在市場的角逐中廣為使用。而根據美國電影電視工程師協會以及我們國家廣電的標準,真正的高清是指720p和1080i/p,其中720P(1280×720)分辨率是高清和標清的一個分界線,當前市場上的主流應用CIF(352*288)和D1(720×576)分辨率還是屬于標清的應用。近年來,視頻壓縮技術的發展(以H.264為代表)和網絡帶寬的不斷提升為高清在視頻監控領域的普及提供了契機。
高清的實現,必然要求視頻監控解決方案的各環節:視頻采集、視頻編碼壓縮、視頻傳輸、視頻存儲、視頻數字信號的控制與交換、視頻瀏覽、錄像文件的回放等都支持高清。并且這些環節幾乎都對視頻編解碼有所要求。視頻的采集,考慮到高清的數據量,很多時候會選擇將采集下來的圖像進行一定程度的近似無損壓縮(JPEG或M-JPEG多被采用);視頻的傳輸和視頻序列的數據量有著直接的關系,分辨率越大、清晰度越高,意味著在進行數據傳輸的時候碼流也會增大,增加網絡帶寬壓力,因而視頻壓縮效率越高越能夠提高傳輸的QoS;數據流量的增大也增加了視頻存儲的壓力,視頻的編碼壓縮率直接影響到視頻的存儲容量;視頻的瀏覽和視頻編解碼的質量直接關聯,清晰度越高,可以容忍的瑕疵也會越少;錄像文件的回放和網絡適應性、視頻編解碼的質量掛鉤。可見,高清在視頻監控中普及的關鍵在于視頻編解碼的質量、壓縮率以及網絡適應性。其中,對編解碼最核心的需求是:在盡可能的降低碼率的同時,獲得盡可能好的圖像質量。
3 H.264的優勢
2003年,由IEO/IEC和ITU—T兩大國際標準化組織聯手推出的視頻標準H.264更好的滿足了這一要求。H.264也稱為MPEG4-Part10,相較于以前的視頻編解碼,可以達到更低的碼率,更好的圖像質量,更好的IP和無線信道適應性。同時我們也要注意到的是,H.264性能得到大幅提升的同時,計算復雜度也大大增加。下面主要介紹下H.264較諸其他視頻編解碼標準的優勢:
(1)支持更小的塊(最小可到4×4)和更細的運動矢量(Y分量為1/4像素)。宏塊被切分成更多尺寸更小的小塊,這樣可以使細小的運動可以更容易的被區分出來,使得運動矢量的精度得以提高,提高了編碼質量與效率,節省了碼流。
(2)幀內預測。不適合運用運動估計的地方,就采用幀內估計用來消除空間冗余。幀內預測并不是H.264所獨有的,但是相對其它編碼標準中的幀內變換是在變換域中進行,H.264的幀內預測是在空間域中進行的。首先根據其周圍的宏塊內部估計通過在一個預定義的集合上的不同方向的鄰近塊推測相鄰像素來預測當前塊。然后預測塊和真實塊之間的不同點被編碼。這種方法對于經常存在空間冗余的平坦背景特別有用,可以節省碼流和提高編碼質量。
(3)整數DCT 4×4變換與量化。MPEG-2,MPEG-4,H.263使用浮點DCT8X8變換。H.264使用更小的4×4塊,可以減少塊效應和明顯的人工痕跡。整數系數消除了在MPEG-2,MPEG-4,H.263中進行浮點系數運算時導致的精度損失。在量化上,量化步長的變化不象以前視頻編解碼標準中的每次遞增一個常量,而是將量化步長的變化幅度控制在12.5%左右,即可以改善編碼質量,又提高對碼率的控制能力(見圖1)。
圖1 整數DCT 4×4變換與量化
(4)熵編碼。H.264提供了兩種可選方式的熵編碼模式:全局VLC(即UVLC,Universal VLC)和基于語法的上下文自適應二值算術編碼CABAC(Context Adaptive Binary Arithmetic Coding)。UVLC使用一個相同的碼表進行編碼,而解碼器很容易識別碼字的前綴,UVLC在發生比特錯誤時能快速獲得重同步。UVLC計算復雜度較低,主要針對對編碼時間要求很嚴格的應用,缺點就是效率低,壓縮率不高;CABAC其編碼性能比UVLC有提升,但復雜度較高。
(5)多參考幀的運動補償和加權預測。使用多幀運動補償可以提高編碼質量和效率,且有利于恢復丟包。加權預測可用于修正P幀或B幀內中的運動補償預測像素的方法,可以提高編碼質量。
(6)環內濾波。視頻編解碼器中加入濾波器的方法有兩種:環外濾波器和環內濾波器。環外濾波器只處理編碼環路外的顯示緩沖器中的數據,所以它不是標準化過程中的規范內容,在標準中只是可選項。相反,環路濾波器處理編碼環路中的數據。在編解碼器中,被濾波的圖像幀作為后續編解碼幀運動補償的參考幀;在解碼器中,濾波后的圖像輸出顯示。這要求所有與本標準一致的解碼器采用同一個濾波器以與編碼器同步。當然如果有必要,解碼器也還可以在使用環路濾波器的同時使用后置濾波器。由于考慮了塊數據的邊界等信息,環內濾波器的效果要好于環外濾波器。H.264采用了環內濾波器,通過對宏塊邊緣的平滑濾波, 減輕視頻編碼中的塊效應,既減弱“塊效應”的影響又避免濾掉圖像的客觀特征,同時在相同主觀質量下使比特率減少 5%~10%。
2005年增加的H.264 High Profile,由于其更高的編碼壓縮率和網絡適應性,被很多應用領域關注,其中包括高清視頻會議、高清視頻監控、無線監控等。
H.264 High Profile是目前H.264各種Profile中編碼最高效的Profile。在H.264 Main Profile的基礎上增加了8x8幀內預測、自定義量化矩陣、無損視頻編碼、支持輸入圖像為YUV400格式。與其他標準相比,在相同失真率條件下H.264 High Profile的編碼效率提高了50%左右。其中,對提升編碼壓縮率的主要有CABAC編碼、多參考幀、8x8幀內預測、8x8DCT變換。
4 H.264的改進
H.264為了更好的適應網絡的多樣性,增強魯棒性,做了以下的改進:
在概念上可以分為兩層:視頻編碼層(VCL,Video Coding Layer)和網絡提取層(NAL,Network Abstraction Layer)。VCL和NAL分層編碼設計的目標就是使H.264標準對各種網絡協議有更廣泛的適應性,并在一定的網絡特性條件下實現最優壓縮性能,從而使其有更廣泛的應用空間。VCL和NAL在功能上是分工協作的關系,VCL負責基于塊的運動補償混合編碼。而NAL專門負責網絡的適配,包括為視頻編碼信息提供文件頭信息,以適當的方式對視頻數據進行打包和傳送。即以NAL包為單位的方式來做為VCL編解碼的基本單元,這樣網絡層拿到NAL包之后只需附加該傳輸協議的頭信息就可以傳送出去。可以將NAL當成是一個專做數據封裝的模塊,用來將VCL壓縮過的H.264碼流封裝成適當大小的數據包,并在數據包頭記載數據包的類型,每種類型分別對應到VCL中不同的編解碼工具
在H.264標準中引入NAL層,其碼流結構對網絡的適應性更強,增加了差錯恢復能力,能夠很好地適應不同網絡的應用。在這種分層結構中,高編碼效率和網絡友好性的任務分別由VCL和NAL來完成。利用這種特性,我們還可以實現對數據的封裝和對數據進行更好的優先控制。
NAL層的另一個重要功能是當網絡狀況發生惡化時,導致NAL包丟失或者接受次序錯亂時,接收方可以根據預設的方案,進行相應的糾錯處理。H.264規范中一共規定了12種NAL單元的類型,來定義不同的NAL內容,這樣當發生錯誤時,調度層就可以根據不同的NAL類型做不同的處理操作。這一功能在可靠性較低的網絡中,特別有用。
考慮到H.264 High Profile較諸其他編解碼協議在圖像質量、數據壓縮性能和網絡適應性的壓倒性的優勢,可以預見,采用H.264 High Profile的產品會有更大的競爭力,在不遠的將來,H.264 High Profile必然成為視頻監控、高清網絡攝像機的事實標準。這也對視頻監控行業提出了新的要求,去深入理解并引入H.264 High Profile。