視訊的時代終結了嗎?
本文章絕大部分參考吳楓博士的一場報告會,感覺挺有意思,就整理并整合了自己的想法。
摘要:
此篇文章主要講解了視訊編碼的流程,并且主要通過講解H.264,然後并在此基礎上講解了下一代視訊編碼HEVC的現狀,進而發出疑問,對未來視訊處理的研究空間和前景的發出一個探讨。
首先簡單介紹下現有的視訊壓縮曆史
1: 視訊壓縮(圖像壓縮)無處不在,其廣泛性直接看圖!
2:目前的标準有哪些?
其實視訊處理的标準主要有兩個 ITU 和 ISO
MPGE H.264到底是什麼?
下面簡單講述MPEG和H.264的曆史。
MPEG
MPEG标準主要有以下五個,MPEG-1、MPEG-2、MPEG-4、MPEG-7及MPEG-21等。該專家組建于1988年,專門負責為CD建立視訊和音頻标準,而成員都是為視訊、音頻及系統領域的技術專家。及後,他們成功将聲音和影像的記錄脫離了傳統的模拟方式,建立了ISO/IEC1172壓縮編碼标準,并制定出MPEG-格式,令視聽傳播方面進入了數位化時代。是以,大家現時泛指的MPEG-X版本,就是由ISO(International Organization for Standardization)所制定而釋出的視訊、音頻、資料的壓縮标準。
MPEG标準的視訊壓縮編碼技術主要利用了具有運動補償的幀間壓縮編碼技術以減小時間備援度,利用DCT技術以減小圖像的空間備援度,利用熵編碼則在資訊表示方面減小了統計備援度。這幾種技術的綜合運用,大大增強了壓縮性能。
MPEG-1
MPEG-1标準于1992年正式出版,其标題為“碼率約為1.5Mb/s用于數字存貯媒體活動圖像及其伴音的編碼”。
MPEG-1層1 數字盒式錄音帶
MPEG-1層2 DAB,VCD,DVD
MPEG-1層3 Internet,MP3音樂
MPEG-2
MPEG-2标準于1994年公布MPEG-2編碼标準希望囊括數字電視、圖像通信各領域的編碼标準,MPEG-2按壓縮比大小的不同分成五個,檔次(profile),每一個檔次又按圖像清晰度的不同分成四種圖像格式,或稱為級别(level)。五個檔次四種級别共有20種組合,但實際應用中有些組合不太可能出現,較常用的是11種組合。
MPEG-4
MPEG-4在1995年7月開始研究,1998年11月被ISO/IEC準許為正式标準,正式标準編号是ISO/IEC14496,它不僅針對一定比特率下的視訊、音頻編碼,更加注重多媒體系統的互動性和靈活性。這個标準主要應用于視像電話、視像電子郵件等,對傳輸速率要求較低,在4800-6400bits/s之間,分辨率為176*144。MPEG-4利用很窄的帶寬,通過幀重建技術、資料壓縮,以求用最少的資料獲得最佳的圖像品質。利用MPEG-4的高壓縮率和高的圖像還原品質可以把DVD裡面的MPEG-2視訊檔案轉換為體積更小的視訊檔案。經過這樣處理,圖像的視訊品質下降不大但體積卻可縮小幾倍,可以很友善地用CD-ROM來儲存DVD上面的節目。另外,MPEG-4在家庭攝影錄像、網絡實時影像播放也大有用武之地。
MPEG-4利用很窄的帶寬,通過幀重建技術,壓縮和傳輸資料,以求以最少的資料獲得最佳的圖象品質。
與MPEG-1和MPEG-2相比,MPEG-4的特點是其更适于互動AV服務以及遠端監控。MPEG-4是第一個使你由被動變為主動(不再隻是觀看,允許你加入其中,即有互動性)的動态圖象标準;它的另一個特點是其綜合性;從根源上說,MPEG-4試圖将自然物體與人造物體相溶合(視覺效果意義上的)。MPEG-4的設計目标還有更廣的适應性和可擴充性。
H264
H.264是國際标準化組織(ISO)和國際電信聯盟(ITU)共同提出的繼MPEG4之後的新一代數字視訊壓縮格式,它即保留了以往壓縮技術的優點和精華又具有其他壓縮技術無法比拟的許多優點。
1.低碼率(Low Bit Rate):和MPEG2和MPEG4 ASP等壓縮技術相比,在同等圖像品質下,采用H.264技術壓縮後的資料量隻有MPEG2的1/8,MPEG4的1/3。
顯然,H.264壓縮技術的采用将大大節省使用者的下載下傳時間和資料流量收費。
2.高品質的圖象:H.264能提供連續、流暢的高品質圖象(DVD品質)。
3.容錯能力強:H.264提供了解決在不穩定網絡環境下容易發生的丢包等錯誤的必要工具。
4.網絡适應性強:H.264提供了網絡抽象層(Network Abstraction Layer), 使得H.264的檔案能容易地在不同網絡上傳輸(例如網際網路,CDMA,GPRS,WCDMA,CDMA2000等)。
H.264 到底是什麼?
下面詳細講解下H.264的主要結構
H.264主要目标就是相比任何已有的視訊編碼标準提出一種能夠有穩定高品質的視訊編碼。
實作有幾個功能:
1:把輸入的圖像或者每一幀分割成若幹像素的小塊(16*16像素),這樣我們處理視訊的主要問題就轉移到處理這些像素塊。
2:對原始的這些16*16的像素塊進行最初的各種變換以便減少各種空間備援,這些空間變換主要包括:空間的預測,空間變換,量化,以及編碼。
3:減少視訊中各幀間的時間備援,因為視訊的每幀之間存在很大的相關性,是以備援很大。是以我們隻需記錄下這個幀和上個幀或幾個幀之間的變化即可。這裡主要用到了運動估計和運動補償。(這裡運動估計就是我們用前一幀或者前幾幀的資訊來預測後一幀的資訊,其實由于每幀都被塊狀話,應該說塊運動估計更準确。而運動補償就是為了實作無損壓縮,我們預測的幀肯定存在誤差,是以運動補償就是真實的後一幀減去預測的幀)。
4: 繼續去除存在着各幀間的空間備援(如,預測的幀和真實的幀之間存在差異,這些差異也會有不少備援)。當然這些備援也還是通過空間轉化,量化,和熵編碼實作。
對于運動估計和運動預測,H.264是通過不同大小的像素塊來實作的(16*16,8*8,4*4)。
這裡的空間變換是integer based transform (有點像DCT,但是克服了DCT的可逆不比對缺點)。 對于熵編碼:這裡可以有兩種方法,一個是VLC(variable length codes)變長編碼,另一個是具有内容自适應性的算術編碼。這兩種編碼的主要差別是 VLC的編碼長度是整數值,比較容易,計算複雜度低,而算術編碼編碼效率要高,其編碼長度可以精确到小數,平均碼長可以達到信源的熵值,但是計算複雜度高。
因為去除空間備援,熵編碼都是已經很成熟的研究,空間備援牽涉到的變換和量化在信号處理和通信原理等都已經很成熟了,熵編碼在資訊論等也都已經有原理支援,是以視訊進行中最核心的也就是運動預測了。
那麼H.264核心的運動預測是如何實作的呢?
下面就簡單講些運動預測的内容。
首先預測是針對的對象時塊元素,由于這裡運動估計和運動預測有幾種模式(也就是16*16像素塊的幾種不同的處理)。如下圖所示:
當然不同模式下的預測和運動補償都是有各自特點的,16*16像素塊分的塊越多,運動矢量也就越多。當然塊越小,預測也就越準确,但随之而來的複雜度也就高了。
比較常見的是下面這種模式:
既然模式出來後,那麼如何預測?
下面就拿其中的一種模式作為例子吧,比如Mode 0(vertical),那麼
a,e,i and m 和A相等
b,f,j and n 和B 相等
c,g,k and 0 和C相等
d,h,l,and p 和D相等
相信目前為止,大家對H.264的流程應該有個基本的了解。
下一代視訊編碼标準
由于H.264/MPEG-4 AVC是在03年釋出的,時值已經8年,那麼 随着網絡技術和終端處理能力的不斷提高,人們對目前廣泛使用的MPEG-2, MPEG-4, H.264等,提出了新的要求。希望能夠提供:1)高清,2)3D,3)移動無線,以滿足新的家庭影院、遠端監控、數字廣播、移動流媒體、便攜攝像、醫學成像等心領域的應用。另外,H.264/AVC釋出後,經過幾年的積累(新型運動補償、變換、插值和熵編碼等技術的發展), 具備了推出新一代視訊編碼标準的技術基礎。
2010年4月在德國德累斯頓召開了JCT-VT第一次會議,确定新一代視訊編碼标準名稱:HEVC(High Efficiency Video Coding),并且建立了測試模型(TMuC),成立了AD HOC小組,分領域搜集和審閱技術提案。初步定于2012年7月完成标準的最終稿。
新一代視訊壓縮标準的核心目标是在H.264/AVC high profile 的基礎上,壓縮效率提高一倍。即在保證相同視訊圖像品質的前提下,視訊流的碼率減少50%。在提高壓縮效率的同時,可以允許編碼端适當提高複雜度。
HEVC依然沿用H.263就開始采用的混合編碼架構。幀間和幀内預測編碼:消除時間域和空間域的相關性。變換編碼:對殘差進行變換編碼以消除空間相關性 。熵編碼:消除統計上的備援度。HEVC将在混合編碼架構内,着力研究新的編碼工具或技術,提高視訊壓縮效率。
現在HEVC具體有什麼進展嗎?
下面是一張HEVC混合編碼架構圖
從目前HEVC 對比H.264來看,因為HEVC的架構是基于H.264的,是以隻是在品質上的改善,沒有質的飛越。
具體來說: 從以前的16*16像素塊輸入到64*64像素塊的輸入,在更大空間上進行研究。可以支援 4*4 到 64*64更多的模式。計算精度也從 8 bits 到 10 bits。 提供了自适應環形濾波器。運動預測從以前的9個方面程式設計現在的34個方向(16*16 程式設計64*64必然會導緻方向的變化)。
目前總的來說HEVC利用更高的複雜度來追求更高,更好的效果。目前壓縮比确實提高了40%,編碼時間也提高了0.9 到2.4 倍。但是使用者對計算機的需求不可能像摩爾定律那樣一直更新,目前的計算機已經滿足基本使用者的需求。是以利用複雜度來換取精确度,壓縮比的模式還是很具有一定的局限性。
難道視訊壓縮的時代真的走到了盡頭?
看下面這圖,給我們的直覺感覺是如果追求更好的壓縮比必然以計算複雜度為代價!而且目前的HEVC也是這種趨勢,按照這種發展,使用者的計算機需求如果增長很慢的話,那視訊時代該往哪裡發展?
路該怎麼走?... …
視訊壓縮的空間到底有多大?… …
其實仔細想一想,我們的理論基礎都是基于傳統信号處理,信号分析的知識,計算機圖形的知識用的不是很多,說不定有很多其他的學科或者知識可以應用到視訊,開拓視訊的一個新的時代,或者走出視訊處理的原始架構(目前所有的視訊處理都是基于一個架構)?
還有,現在是多核和雲的世界,
而且多核和雲肯定也會對傳統的視訊編碼格式帶來一定的很大的沖擊,至少在傳統基礎上要改變你的程式設計結構,程式設計參數等以适應編碼需求。
由于視訊壓縮中最核心的一個環節是運動預測,由于運動預測的對象是基于像素塊的,而像素塊的預測并不是線性的,其預測關系如下圖:
是以這就給并行處理帶來很大的困難,如何并行處理?或是重新找一種線性的預測方式?
當多核和雲出來之後,那麼視訊中以複雜度為代價換取壓縮比的模式還繼續存在嗎?
我們的下一個視訊時代是HEVC嗎,難道就是她了嗎?