蔣驍辰 李國平王國中 趙海武 藤國偉
(上海大學通信與信息工程學院 上海 200072)
AVS標準[1]作為我國制定的具有自主知識產權的音視頻編解碼標準,對我國數字化音視頻產業的發展具有重要意義。AVS與H.264相比大大降低了算法復雜度,然而編碼效率也有不少降低。為了進一步提高AVS的編碼效率,2012年3月18成立了AVS+工作推進組,在原有AVS標準基礎上,在運動矢量預測、量化、熵編碼等方面增加4項關鍵技術,形成了 AVS+視頻編碼標準[2]。AVS+標準于2012年7月發布成為廣電行業標準,2013年3月18日正式應用于衛星電視播放。
由于 AVS+新增了多項關鍵技術,雖然提高了編碼效率,但其編碼端的復雜度必然會大大提升,而且該標準主要應用于 3D高清電視,這些都為編碼器的實現提出極大的挑戰,因此研究編碼器加速的實現方法是AVS+產業化的關鍵課題。
近年來,隨著多核處理器浪潮的不斷來襲,利用多核處理器的視頻編碼并行加速成為了標準制定以及編解碼產品設計的主流方向。在快速發展的多核硬件系統以及并行工具的條件下[3],需要有更好的并行編碼的軟件和算法來實現更加快速有效的視頻編碼功能。對于傳統的視頻編碼系統,在MPEG-2之后引入了slice的概念,大大提升了編碼系統的抗誤碼能力,而且逐漸出現了并行編碼的理念,slice的相關技術也一直應用于后續的并行編碼算法。但是仍然存在對于邊緣數據主要是邊緣運動矢量和幀內預測的無法預測性,并且降低了并行編碼效率。當前基于H.264的并行視頻壓縮是國內外學者研究并行編碼的熱點。Intel研究中心的研究人員提出了基于Intel超線程體系結構下的H.264編碼器的并行編碼模型[46]-。對于如何進行幀級并行化,slice級并行化和宏塊級并行化分別進行了討論,并采用slice級并行的方法進行實施,編碼速度顯著提高,加速比接近處理器核心的數目,這樣做的后果是顯著地增大碼率。浙江大學和Intel中國研究中心的研究人員對 H.264的離散余弦變換(Discrete Cosine Transform, DCT)和解碼[7]進行了并行化研究,采用Intel的擴展指令集(Streaming Simd Extensions,SSE)的向量運算特性,對H.264計算量較大的變換和量化部分進行了指令集的優化。文獻[8]中提出了將編碼和運動估計并行處理,并且通過原始圖像作為運動估計參考幀來充分解決依賴性問題,雖然這種并行處理提高了硬件的利用率,但是沒有完全去除編碼線程和運動估計之間依賴性。對于新一代視頻編碼標準HEVC, JCT-VC (Joint Collaborative Team on Video Coding)也專門針對提高并行編碼性能提出了有價值的技術,如 WPP (Wavefront Parallel Processing)和 Tiles[9]。WPP[10]技術簡單來說只需要上一行的第 2個最大編碼單元(LCU),編解碼完畢即可以開始當前行的編解碼,以此提高編解碼器的并行處理能力。而Tiles技術[11]則是利用垂直和水平的邊界將圖像劃分為一些行和列,劃分出的矩形區域為一個 Tile,每一個 Tile包含整數個LCU且Tile之間相互獨立,以此來實現并行。上述兩種技術只適用于HEVC標準,且都是利用空間并行化,因此并行化程度不高,且難以處理好碼率分配問題。AVS+標準不支持WPP和Tiles并行化技術,只有slice編碼可用于并行化計算,而幀內slice的并行編碼不僅降低編碼效率,而且也會產生條帶效應[12]。
通過對上述傳統并行編碼技術的分析,我們發現傳統的視頻編碼框架是影響并行編碼的最主要因素,因此,本文改變了傳統的編碼框架,提出了一種新的視頻并行編碼框架。該框架包括并行視頻預處理,并行運動估計,幀內/幀間并行編碼結構,并將新的編碼框架應用于基于 AVS+標準的實時編碼器中,得到一種基于 AVS+實時編碼的視頻并行編碼算法。本文實驗表明,該并行編碼算法有效地去除幀間參考相關性,從而充分利用了多核多處理器的運算能力,極大地提高了視頻編碼速度。
傳統的視頻編碼標準的語法結構層次由高到低依次為序列(sequence),圖像組(group of pictures),幀(frame),片(slice),宏塊(macroblock)和塊(block)。一個視頻序列可以包含一個或多個圖像組,每個圖像組總是由I幀開始。
一幀圖像可以分為一個或多個片,每個片在編碼時不能參考同個圖像的其它片,這樣可以限制誤碼的擴散。因此片間是編碼獨立的。由于標準中有其特有的片語法結構,因此幀內并行編碼采用片級并行更易實現碼流的封裝,因為,在編碼數據流中所有的視頻序列頭信息、圖像頭信息和片頭信息都放置在輸出碼流的前部,所以主線程將各個任務線程的壓縮數據流收集后,進行數據同步和封裝更容易些[13]。
幀內片級并行編碼的基本原理如圖1所示。將1幀圖像分成4個片,每個片通過1條工作線程進行編碼,各工作線程之間并行工作,所有線程完成編碼任務之后進行數據同步。雖然片級并行編碼充分利用了語法結構特點實現編碼并行化,且易于實現,但編碼效率不高,且會產生條紋效應。

圖1 幀內片級并行編碼示意圖
傳統的幀間級并行編碼模式主要利用幾幀之間可共用參考幀的特點進行并行化編碼,對于一個序列,在串行編碼起始的I幀和P幀后,可以將使用相同參考幀的P幀和B幀同時進行編碼。
如圖2所示,假設輸入視頻為IBBPBBP的形式,第1個 I 幀I(0)和P幀P(3)必須串行編碼,第2個P幀P(6)和前兩個B幀B(1), B(2),它們不需要相互參考,沒有數據相關性,所以可以并行編碼。這3幀的參考幀都是I(0)和P(3),因此在串行編碼完I(0)和P(3)后,我們可以分出3個線程來并行處理P(6), B(1)和B(2)。這3幀并行編碼完成后,程序又回到主線程,準備編碼 P(9), B(4)和 B(5)。這種并行方式的缺點在于沒有很大程度地消除幀間相關性,從而并行度不是很高,且由于幀間較大的依賴性和參考性以及各個幀編碼時間的不完全一致性,難免會在某些時候造成延時等待,削弱了系統性能。另外,其算法擴展性也不佳,它的加速比較大地受限于圖像組B幀的數量。
根據運動物體存在連續性的特點,視頻圖像中的宏塊的搜索范圍是有限的,因此無需等待當前幀全部編完,只要后面參考當前幀的待編碼幀已經獲得所需要的參考信息,它就可以同時進行編碼[14]。

圖2 幀間并行示意圖
如圖 3所示,假設輸入序列為IBBPBBP,序列中的每幀都采用片級的并行編碼方式進行編碼,而在各幀之間,其基本編碼順序與傳統幀間編碼方式相同,只是每幀之間有時間上的延遲,而不是如圖2那樣各級之間是一種串行模式。在圖3中,當編碼第1個I(0)時,只要P(3)已經獲得所需要的參考數據時它就能開始并行地進行編碼,同理B(1),B(2)和P(6)也不需要等待前面兩幀編完就可以開始并行編碼。但這種方式造成了參考圖像之間存在依賴性,從而導致編碼并行度的下降,為了提高編碼速度,往往會采用加大并行幀數的方式,這樣會導致比特數的分配不準。

圖3 具有參考依賴性的幀間并行編碼示意圖
對于傳統的視頻編碼框架,主要包括兩條編碼路徑:前向路徑和重構路徑。原始圖像nF通過前向路徑:預測(幀內或幀間)、整數變換、量化和熵編碼獲得編碼碼流,而重構路徑:反量化、反變換、運動補償來獲得重建圖像,用于預測編碼的參考幀。這樣由前向路徑和重構路徑構成了整個編碼反饋環。由于這個編碼反饋環的存在,很難在這種結構下實現編碼的并行性。因此我們需要改變傳統的編碼框架,設計一種新的并行編碼結構。
在實際的視頻編碼器中一般都會存在一定的時間延遲,具體延遲時間根據實際的應用情況而定。基于這個特點,本文提出一種新的并行視頻編碼框架,充分利用這個延時特性,改變了傳統的視頻編碼框架,充分讓編碼模塊并行工作,設計了如圖 4所示的結構。

圖4 并行編碼模塊框圖
該框架主要包括3個主要模塊,分別為預處理模塊、運動估計模塊、以及編碼模塊。雖然3個模塊串行地對編碼序列進行相應處理,但各模塊之間有一定的幀數量延遲時間,因此各個模塊就可以獨立并行工作:當第1個模塊進行了M幀數據的處理后,第2個模塊便開始運行;當第2個模塊對數據進行了N幀處理后,第3個模塊就開始進行編碼處理。
整個并行編碼系統完整的結構框圖如圖 5所示。相比傳統的視頻編碼結構,新的框架改變了反饋回路,主要添加了預處理模塊和并行整像素運動估計模塊,在并行編碼模塊中,主要用亞像素運動估計代替原來的運動估計。圖中為進行并行預處理后的原始圖像,MV'為經過整像素運動估計后的運動矢量,MV為經過亞像素運動估計后的最終運動矢量。
(1)并行預處理 圖5中的并行預處理模塊中首先對原始視頻圖像序列進行去噪濾波,平滑濾波以及RGB到YUV顏色空間轉換等預處理,由于預處理在空間和時間上都基于原始幀進行,因此不存在相互之間的依賴性,可以并行進行處理。另外在這個模塊中,最重要的工作是通過相關性參數的計算,來對序列進行場景檢測和幀類型的判斷,通過并行濾波以及并行場景檢測和幀類型判斷,快速地為后續運動估計模塊和并行編碼模塊提供所需的相關數據信息。
(2)并行運動估計 由于在實際的視頻編碼系統中,除去視頻數據的輸入輸出,存儲設備的初始化及讀寫時間以及硬件平臺的準備時間,單純在編碼模塊中運動估計部分往往需要花費最大量的時間。而在運動估計中,整像素運動估計在多參考幀模式下占據最大的計算量和計算時間,因此,整像素的并行化運動估計是解決問題的關鍵。然而并行化運動估計需要滿足下面條件:(1)參考幀之間沒有相關性;(2)可以同時獲得運動估計參考幀和被估計幀;(3)必須已經確定好被估計幀和參考幀之間的參考關系。

圖5 并行編碼結構框圖
如 3.1節中所述,由于傳統編碼框架中重建幀編碼回路的設計,很難在傳統的編碼結構中進行并行化運動估計。針對上述問題,如圖5所示,本文采用將原始圖像序列作為參考幀的方法,將消耗最大編碼時間的運動估計部分獨立分開,進行并行化運動估計。由于在并行預處理模塊中原始幀數據也已經被緩存,且已經獲得了所有圖像的幀類型參數(I, P, B幀類型),這里只需要根據幀類型參數進行原始參考幀選擇,因此滿足并行化運動估計的所需條件,多幀可以同時并行進行整像素運動矢量搜索,從而大大提高了編碼并行度。
將原始圖像序列作為參考幀的方法首次在MPEG-2的開源編碼器TM5中得到使用,旨在提高運動估計的準確度,因此這種方法能夠保證運動估計的正確性。在文獻[8]中提出了將編碼和運動估計并行處理,也采用原始圖像作為參考幀來解決運動估計對參考幀的依賴性,但是它只能保證編碼反饋環內的運動估計的獨立性,無法實現多幀間運動估計的并行性。
本文提出的編碼框架,利用編碼延遲能夠緩沖幀的特點,同時充分利用預處理模塊獲得的幀類型參數,使運動估計模塊對每幀數據獨立地并行化運動估計,經過運動估計后的視頻幀才能進入編碼模塊。這種并行運動估計極大地提高了整個編碼框架的并行性,也極大地提高了并行硬件計算資源的利用率。并行運動估計參考結構如圖6所示,假設輸入序列為 IBBPBBP,箭頭所指方向即為當前幀進行運動估計的可選參考幀,根據上面的分析,如果硬件計算資源足夠,圖6中的所有幀可以同時進行并行運動估計。
(3)并行幀內、幀間編碼 通過之前兩個模塊已經獲得了幀類型參數以及運動矢量,使得在編碼模塊中的計算量大大減小,這里采用隔行編碼的方式,每個場作為一個片,各個場之間獨立進行編碼,并且采用2.3節中所示的幀間編碼方式,如圖5所示,首先進行宏塊模式選擇,并將第2個模塊中獲得的整像素運動矢量 'MV作為亞像素搜索的起始點,進行亞像素搜索得到最終的運動矢量 MV,然后經過運動補償,對殘差圖像進行整數變換、量化以及熵編碼來得到AVS碼流。由于在這個模塊中沒有進行整像素運動估計,因此計算速度提高很多,也提高了幀間預測的效率,從而能夠減小并行幀數,克服了2.3節中所述方法的缺點。
AVS+視頻編碼標準不支持WPP和Tiles并行化技術,只有片編碼可用于并行化計算。AVS+標準主要應用于未來高清及 3D的網絡視頻和數字電視,適用于處理大分辨率下的單向視頻快速編碼,故而允許一定的延時。且 AVS+支持隔行編碼。根據 AVS+標準的上述特點,我們將上述并行編碼框架應用到 AVS+視頻編碼標準的實時編碼器中,得到了基于 AVS+實時編碼的并行視頻編碼算法。該算法適用于 3D及高清的數字電視和網絡電視,對于大分辨率單向視頻編碼有很大優勢,而對于雙向視頻通信,若同樣處理高清視頻,考慮其緩存時延和信道時延,再加上編碼延遲時間,難以滿足實際雙向視頻通信的最低延遲要求。算法的具體步驟如下:
步驟1 建立L個并行預處理線程。由于預處理是在原始圖像上進行,并且算法復雜度不高,因此預處理線程之間沒有相關性,線程數L一般不要超過2,每個線程對應一幀原始圖像。
步驟 2 建立 2×M 個整像素并行運動估計線程。由于經過步驟1后,每幀的編碼幀類型已經確定,因此根據各自對應的原始圖像參考幀進行并行運動估計。AVS+視頻編碼標準主要應用于隔行圖像,在運動估計中,每幀圖像分成2個場,每個場的運動估計獨立作為一個線程工作。
步驟3 建立2×N個編碼線程。每個編碼線程根據步驟 2獲得的整像素運動矢量進行亞像素搜索,這樣有效降低了編碼的復雜度。每幀間編碼采用 2.3節介紹的參考幀之間相互依賴的并行編碼方式;考慮到 AVS+視頻編碼標準主要應用于隔行圖像,因此每幀內分為2場,每場作為一個片,各個場之間獨立進行編碼,這樣既提高了編碼的并行度,也沒有編碼效率的損失和條帶效應的出現。
步驟4 并行編碼線程的碼率控制。由于步驟2進行運動估計之后,不僅獲得了編碼圖像的運動矢量,而且也得到了編碼圖像的絕對差值和(SAD),這樣獲得的SAD可以作為編碼圖像的復雜度參考,為編碼圖像的比特分配提供了依據。
步驟 5 編碼延遲控制。從上面的編碼步驟可以推導出編碼器的編碼延遲為L+M+N幀的時間,其值越小,說明編碼延遲越小。L和M的選取主要取決于硬件資源條件,其值越大占用的硬件資源越多,對整個編碼系統的并行度影響越大。而N的取值在占用硬件資源的同時也影響系統的編碼并行度,一般來說,N越大編碼并行度越大,但N達到一定數量后由于重建幀之間的相關性導致并行度不變,但N越大將會給碼率控制造成更大的誤差。因此,L, M, N的分配原則是,在硬件資源CPU核心足夠的情況下L和M越大越好,而N的取值要綜合考慮編碼速度和碼率控制誤差,在不影響編碼速度的前提下取較小值。
根據上面的算法步驟,以及編碼器硬件資源的可得性,可以確定編碼器延遲要求以及線程處理瓶頸,合理地分配L, M, N。
為了驗證所提出的并行編碼框架性能,本文使用一臺Dell服務器作為多核測試平臺,CPU為Intel Xeon, 2×12核,單核主頻3.06 GHz,測試序列采用廣電總局廣播科學院規劃院的 1920×1080高清序列:parterre, dial, basketball, volleyball, leaf,birdcage,以及一個將上述6個序列拼接而成的高清測試序列。編碼順序為IPBB, GOP是30,搜索范圍±32,測試軟件為根據 AVS+視頻編碼標準[15]開發的 AVS+高清實時編碼器,該編碼器既支持傳統的 AVS+視頻編碼方式(串行編碼),也支持本文提出的基于 AVS+的并行視頻編碼算法(并行編碼)。實驗中分配預處理線程L為1,并行運動估計線程M為4, N為幀間并行幀數,其它參數名稱的意義描述如表1所示。

表1 參數名稱的意義描述
當計算機利用多核處理器進行并行運算時,CPU利用率是體現算法效率的一個重要特性。若程序運行時能充分調動各個CPU核同時工作,必然會大大提高計算速率。
圖 7(a)為采用串行編碼對測試序列進行編碼時的CPU利用率,僅有第11個線程在進行工作,說明串行編碼無法充分利用 CPU核。而圖 7(b)中采用本文的算法進行并行編碼,運動估計設置為ME2,使用亞像素搜索 3,且設置幀間編碼幀數為16,可以看到每個CPU核都參與了計算,且利用率都較高。
加速比是衡量并行計算算法性能的一個重要指標,反映了并行優化后和優化前程序運算速度之間的關系。本文的編碼算法中,加速比定義為并行算法優化后編碼幀率和優化前的編碼幀率的比:式中SU為加速比,其值越大,算法的并行性越好,編碼速度也越快。


圖7 CPU利用率比較
表2所示為測試1500幀拼接高清序列在不同的運動估計參數ME1和ME2以及亞像素搜索1, 2, 3下實現的加速比,fps表示編碼幀率。可以看出,采用本文并行算法能夠獲得足夠的平均加速比,完全滿足實際需求。

表2 不同運動估計復雜度下的加速比
如上所述,并行幀間預測編碼中的并行幀數是一個決定編碼并行度的關鍵問題。若幀間并行編碼幀數N太少,并行度就達不到預期的目標,從而影響編碼速率;而并行幀數太大,會增大碼率分配的誤差。因此確定適當的幀間并行編碼幀數是一個關鍵問題。
表3給出了在不同幀間并行幀數下進行并行編碼得出的實驗結果。設置亞像素搜索參數為 3。由于并行幀數越大,越有利于提高解碼幀主觀質量,但同時需要考慮幀率是否也能獲得相應增加。由表3可見,幀間并行幀數為8時,編碼速率已經完全滿足實際編碼器的要求,而此時的編碼延遲為13幀(L=1, M=4, N=8)。而幀間并行幀數越少,對編碼器碼率控制越有利。另外,由表3可見,當并行幀數從4開始累加后,幀率有大幅度提高,但當其達到12以后,幀率開始出現波動且沒有繼續增長,因此,我們可以在滿足編碼速度的前提下盡量減少幀間并行幀數,這為更好地實現碼率控制提供了有利的條件。

表3 幀間并行幀數對編碼速率的影響
我們對6個高清序列進行測試后,繪制不同比特率下,在并行和串行條件下編碼的率失真曲線圖,如圖8所示,兩條不同黑白的曲線分別是串行編碼和并行編碼的結果。對于重建幀的質量主要通過PSNR在不同比特率下的率失真曲線來比較。通過計算得到6組序列的平均PSNR損失值為0.14 dB,最小損失為0 dB,最大損失在0.23 dB以內。
采用原始幀作為運動估計的參考幀雖然可以大大提高編碼并行度,但對運動估計的準確性還有一定影響,因為在運動補償的時候使用了解碼回路的重建幀。對6個序列進行測試后,圖8給出了2個PSNR損失最大序列的率失真曲線(我們需要考慮在最壞環境下的編碼情況,其它4個序列效果較好),兩條曲線分別是在不同碼率下串行編碼和并行編碼的結果。可以看出,即使在最差的條件下也僅有0.2 dB左右的損失,故采用原始幀作為運動估計參考圖像的方式對此并行編碼框架下的編碼圖像結果的影響極小,是切實可行的,因此在解碼圖像質量方面,本文提出的并行編碼算法能和一般串行編碼一樣獲得比較好的效果,而并行編碼在速率上的提升很明顯,這也進一步驗證了本文算法性能好且損耗低的優勢。

圖8 不同序列的率失真曲線
本文改變了傳統視頻編碼框架,利用編碼器延遲的特點,設計了一種新的并行編碼框架,將這種并行編碼框架應用于 AVS+標準高清視頻編碼標準,提出了一種基于 AVS+實時視頻編碼的并行視頻編碼算法。實驗結果表明,該算法能充分發揮多核處理器的運算能力,在編碼性能損失極小,編碼延遲可控(在0.5 s以上)的條件下,極大地提高了視頻的編碼速度。
[1] 張曉亮. AVS地面數字電視產業化推廣和應用[J]. 電視技術,2012, 36(22): 3-4.Zhang X L. The promotion and application of terrestrial digital TV industrialization[J]. Video Engineering, 2012,36(22): 3-4.
[2] 董文輝, 鄧向冬. AVS+視頻壓縮技術及應用[J]. 廣播與電視技術, 2012, 12(s1): 41-43.Dong W H and Deng X D. Techniques and applications of AVS+video compressing[J]. Radio & TV Broadcast Engineering, 2012, 12(s1): 41-43.
[3] Chen Da and Singh D. Fractal video compression in OpenCL:an evaluation of CPUs, GPUs, and FPGAs AS Acceleration platforms[C]. 18th Asia and South Pacific Design Automation Conference(ASP-DAC), Yokohama, 2013:297-304.
[4] Ge S, Tian X, and Chen Y K. Efficient multithreading implementation of H.264 encoder on Intel hyper-threading architectures[C]. IEEE Proceedings of the 2003 Joint Conference of the Fourth International Conference, Singapore,2003: 469-473.
[5] Tian X, Chen Y K, Girkar M, et al.. Exploring the use of hyper-threading technology for multimedia applications with Intel OpenMP compiler[C]. Proceedings of the Intel Parallel& Distributed Processing Symposium, Nice, 2003: 36-43.
[6] Chen Y K, Tian X, Ge S, et al.. Towards efficient multi-level threading of H.264 encoder on Intel hyper-threading architectures[C]. Proceedings of the 18th Intel Parallel and Distributed Processing Symposium, Santa Fe, 2004: 63-72.
[7] Ye Jian-hong and Liu Ji-lin. Fast parallel implementation of H.264/AVC transform exploiting SIMD instructions[C].Intelligent Signal Processing and Communication Systems,Xi’an, 2007: 870-873.
[8] 張超. 基于TILE64的H.264多線程并行編碼[D]. [碩士論文],西安電子科技大學, 2011.Zhang C. Multithreaded parallel programming of H.264 on TILE 64[D]. [Master dissertation], Xidian University, 2011.
[9] Alvarez-Mesa M, Chi C C, and Juurlink B. Parallel video decoding in the emerging HEVC standard[C]. IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), Kyoto, 2012: 1545-1548.
[10] Chi Ching-chi, Alvarez-Mesa M, and Juurlink B. Parallel scalability and efficiency of HEVC parallelization approaches[J]. IEEE Transactions on Circuit and System for Video Technology, 2012, 22(12): 1827-1838.
[11] Fuldseth, A, Horowitz M, and Xu Shi-li. Tiles for managing computational complexity of video encoding and decoding[C].Picture Coding Symposium (PCS), Krakow, 2012: 382-392.
[12] 許昌滿, 李國平, 王國中. AVS 編碼器Slice 并行處理算法研究與實現[J]. 中國圖象圖形學報, 2009, 14(6): 1108-1113.Xu C M, Li G P, and Wang G Z. Study and implementation of AVS encoding algorithm based on slice parallel[J]. Journal of Image and Graphics, 2009, 14(6): 1108-1113.
[13] 寧華, 梅錚, 李錦濤. 基于slice的H.264并行視頻編碼算法[J].計算機工程, 2005, 31(4): 181-182, 211.Ning H, Mei Z, and Li J T. Slice-based parallel algorithm of H.264 video encoder[J]. Computer Engineering, 2005, 31(4):181-182, 211.
[14] 于俊清, 李江, 魏海濤. 基于同構多核處理器的 H264多粒度并行編碼器[J]. 計算機學報, 2009, 32(6): 1100-1109.Yu J Q, Li J, and Wei H T. Multi-Grain parallel H.264 encoder for homogeneous multi-core architecture[J]. Chinese Journal of Computers, 2009, 32(6): 1100-1109.
[15] AVS Working Group. GY/T257.1-2012, Radio and television-Advanced coding and decoding of audio and video-Part 1:Video[S]. 2012.
[16] Zhao W Q and Xu S. Research and optimization of UMHexagons algorithm based on H.264[C]. 2012 Fourth International Conference on Multimedia Information Networking and Security (MINES), Nanjing, 2012: 600-603.