一種基于分布式計算機系統(tǒng)的并行hevc編碼系統(tǒng)及方法
【技術領域】
[0001]本發(fā)明涉及電子信息學科視頻編碼技術領域,尤其是涉及一種基于分布式計算機系統(tǒng)的并行HEVC編碼系統(tǒng)及方法。
【背景技術】
[0002]隨著社會的發(fā)展和技術的進步,特別是互聯(lián)網(wǎng)近些年的快速發(fā)展,數(shù)字視頻采集、傳輸和存儲逐步進入人們日常生活。視頻數(shù)據(jù)以數(shù)據(jù)量大而著稱,通常需要經(jīng)過壓縮編碼后才進行存儲和傳輸。目前國際上常用的視頻編碼標準有ISO/IEC制定的MPEG-1標準、MPEG-2 標準、MPEG-4ASP 標準,ITU-T 制定的 H.261 標準、H.263 標準,和 ISO/IEC 和 ITU-T聯(lián)合制定的MPEG-4AVC/ITU-T H.264標準等。但這些標準已不能滿足大圖像尺寸高畫質視頻的編碼需要,因此ISO/IEC MPEG專家組和ITU-T VCEG專家組聯(lián)合成立的JVT-VC工作組2013年制定了最新的高效視頻編碼(HEVC)標準。目前該標準已正式被ISO/IEC批準為MPEG-H Part 2標準,被ITU-T批準為H.265標準。據(jù)報道符合HEVC標準的編碼器在編碼壓縮效率上已經(jīng)較MPEG-4AVC/ITU-T H.264標準有50%以上的提高。同時針對大圖像尺寸視頻編碼時計算復雜度高難于實時編碼的問題,在HEVC標準中增加了一些并行處理的工具,以便可以采用并行處理的方法解決這一問題。因此HEVC將成為今后視頻編碼的主流標準。
[0003]HEVC為了獲得更高的壓縮效率,和以前的視頻編碼標準相比,壓縮相同尺寸的視頻圖像,其編碼的復雜度高出很多。同時由于實際應用中對于更大圖像尺寸的視頻壓縮編碼的需求越來越強烈,導致今后實際應用中的HEVC編碼器的計算復雜度會非常高。因此在HEVC標準制定時就考慮了并行處理的方案,新引入了如Tiles,Wavefont parallelprocessing (WPP),Overlaped Wavefront (OffF)和并行 CABAC 等編碼工具。但這些方案主要是針對多核系統(tǒng)提出的并行處理解決方法。多核系統(tǒng)的一個重要特點就是多個處理器核集成在一個芯片上共享緩存,處理器核之間以及處理器和緩存之間通信有很高的傳輸帶寬,可以達到每秒鐘傳輸數(shù)十個G甚至上百個G字節(jié)。因此HEVC標準里的這些并行處理方案并沒有考慮處理器模塊之間傳輸帶寬對參考幀在處理器之間實時傳輸?shù)挠绊憽?br>[0004]隨著云計算等分布式計算機系統(tǒng)近幾年的快速發(fā)展,利用分布式計算機系統(tǒng)進行實時視頻編碼是視頻編碼技術發(fā)展的主要方向之一。分布式計算機系統(tǒng)是一種多處理器的計算機系統(tǒng),各處理器通過互連網(wǎng)絡構成統(tǒng)一的系統(tǒng)。系統(tǒng)采用分布式計算結構,即把原來系統(tǒng)內中央處理器處理的任務分散給相應的處理器,實現(xiàn)不同功能的各個處理器相互協(xié)調。與多核系統(tǒng)相比,分布式系統(tǒng)的子系統(tǒng)之間的互連網(wǎng)絡帶寬有限,導致參考幀不能在各子系統(tǒng)之間實時傳輸,成為分布式系統(tǒng)并行視頻編碼的主要瓶頸。
[0005]如圖1所示,圖為符合HEVC標準的編碼器的基本原理框圖,編碼器主要模塊包括:變換比例縮放和量化模塊、比例縮放和反變換模塊、濾波器控制分析模塊、去塊效應濾波器和取樣適應偏置(SAO)濾波器模塊、運動估計模塊、運動補償模塊、幀內估計模塊、幀內預測模塊、熵編碼模塊編碼器通用控制模塊等,其中熵編碼模塊完成碼流頭格式形成和CABAC編碼功能。圖中實線箭頭表示數(shù)據(jù)流,虛線箭頭表示控制流。編碼的主要過程是首先將輸入圖像劃分為編碼樹單元(CTU),然后對圖像中的CTU按從左到右從上到下的次序一一進行編碼。每一個CTU編碼時將按PU單元(預測單元)進行幀內預測或幀間運動補償,然后按CU單元(編碼單元)對殘差進行變換和量化,量化后的殘差采用CABAC方法進行熵編碼。對于量化后的殘差同時進行反量化和反變換并和幀內預測值或幀間預測值相加為后續(xù)的編碼提供幀內預測的參考值,然后經(jīng)過去塊效應濾波和取樣適應偏置濾波形成后續(xù)的幀間預測的參考幀。在上述過程中形成的編碼器控制數(shù)據(jù)、幀間預測數(shù)據(jù)、濾波器控制數(shù)據(jù)和運動數(shù)據(jù)等將作為視頻流數(shù)據(jù)的一部分送至熵編碼模塊進行熵編碼。
[0006]如圖2所示,圖為符合HEVC標準的解碼器原理框圖,解碼器主要模塊包括:熵解碼模塊、解碼器控制模塊、比例縮放和反變換模塊、去塊效應濾波器和取樣適應偏置濾波器模塊、運動補償模塊、幀內估計模塊、幀內預測模塊等。圖中實線箭頭表示數(shù)據(jù)流,虛線箭頭表示控制流。解碼器接收到HEVC碼流后首先進行熵解碼,得到控制數(shù)據(jù)和圖像變數(shù)據(jù)。控制數(shù)據(jù)分別輸入解碼器控制模塊和去塊效應濾波器和取樣適應偏置濾波器模塊進行解碼控制。圖像數(shù)據(jù)首先經(jīng)過比例縮放和反變換;如果當前解碼幀是幀內預測幀,則利用當前圖像幀中已解碼重建的部分進行幀內預測,得到預測圖像;如果當前解碼幀是幀間預測幀,則利用前面已解碼重建的幀做為參考幀進行運動補償,得到預測的圖像;然后將預測的圖像和經(jīng)過比例縮放和反變換得到的殘差圖像相加;相加后的圖像進行去塊效應濾波和取樣適應偏置濾波,完成當前幀的解碼重建;解碼重建的圖像在輸出顯示的同時緩存入?yún)⒖紟彺婀┖罄m(xù)幀間預測幀解碼時使用。
【發(fā)明內容】
[0007]本發(fā)明的目的就是為了克服上述現(xiàn)有技術存在的缺陷而提供一種編碼效率高、編碼方式多樣、適用范圍廣的基于分布式計算機系統(tǒng)的并行HEVC編碼系統(tǒng)及方法。
[0008]本發(fā)明的目的可以通過以下技術方案來實現(xiàn):
[0009]一種基于分布式計算機系統(tǒng)的并行HEVC編碼系統(tǒng),包括多個依次連接的計算子系統(tǒng)、分別與多個計算子系統(tǒng)連接的互聯(lián)網(wǎng)絡和主HEVC編碼器以及與互聯(lián)網(wǎng)絡連接的合并輸出模塊,所述的互聯(lián)網(wǎng)絡包括高速傳輸網(wǎng)絡和參考幀緩存器,所述的計算子系統(tǒng)包括并行解碼器和并行HEVC視頻編碼器,且每個并行HEVC視頻編碼器分別通過高速傳輸網(wǎng)絡和參考幀緩存器與其他計算子系統(tǒng)中的并行解碼器連接。
[0010]所述的并行解碼器包括熵解碼模塊、解碼比例縮放反變化模塊、解碼去塊效應及取樣適應偏置濾波模塊、解碼幀內預測模塊、解碼運動補償模塊、解碼器控制模塊和解碼幀內幀間選擇模塊,所述的熵解碼模塊分別與互聯(lián)網(wǎng)絡、解碼比例縮放反變化模塊、解碼去塊效應及取樣適應偏置濾波模塊、解碼幀內預測模塊、解碼運動補償模塊和解碼器控制模塊連接,所述的解碼幀內幀間選擇模塊分別與解碼幀內預測模塊、解碼運動補償模塊和解碼器控制模塊連接,所述的解碼比例縮放反變化模塊分別與解碼去塊效應及取樣適應偏置濾波模塊和解碼器控制模塊連接,所述的解碼比例縮放反變化模塊通過高速傳輸網(wǎng)絡與其他計算子系統(tǒng)中的并行HEVC視頻編碼器連接,所述的解碼去塊效應及取樣適應偏置濾波模塊通過參考幀緩存器與并行HEVC視頻編碼器連接。
[0011]所述的并行HEVC視頻編碼器包括編碼樹單元劃分模塊、變換比例縮放量化模塊、熵編碼模塊、編碼器控制模塊、編碼比例縮放反變換模塊、編碼幀內估計模塊、編碼幀內預測模塊、編碼運動估計模塊、編碼運動補償模塊、編碼幀內幀間選擇模塊、濾波器控制分析模塊和編碼去塊效應及取樣適應偏置濾波模塊,所述的編碼器控制模塊分別與主HEVC編碼器、編碼樹單元劃分模塊、變換比例縮放量化模塊、熵編碼模塊、編碼幀內估計模塊、編碼運動估計模塊和編碼幀內幀間選擇模塊連接,所述的編碼樹單元劃分模塊分別與變換比例縮放量化模塊、編碼運動估計模塊和濾波器控制分析模塊連接,所述的熵編碼模塊分別與互聯(lián)網(wǎng)絡、變換比例縮放量化模塊、編碼幀內估計模塊、編碼運動估計模塊和濾波器控制分析模塊連接,所述的編碼比例縮放反變換模塊分別與變換比例縮放量化模塊和濾波器控制分析模塊連接,所述的濾波器控制分析模塊分別與編碼幀內估計模塊、編碼幀內預測模塊和編碼去塊效應及取樣適應偏置濾波模塊連接,所述的編碼幀內幀間選擇模塊分別與編碼幀內預測模塊和編碼運動補償模塊連接,所述的編碼幀內預測模塊分別與編碼幀內估計模塊以及其他計算子系統(tǒng)中并行解碼器的解碼比例縮放反變化模塊連接,所述的解碼去塊效應及取樣適應偏置濾波模塊通過參考幀緩存器分別與編碼運動估計模塊和編碼運動補償模塊連接。
[0012]所述的互連網(wǎng)絡為以太網(wǎng)或高速廣域網(wǎng)。
[0013]一種基于分布式計算機系統(tǒng)的并行HEVC編碼方法,包括以下步驟:
[0014]I)主HEVC編碼器將視頻流中的待編碼幀分為多個不重疊的行幀信息,并且依次發(fā)到多個計算子系統(tǒng)中;
[0015]2)每個計算子系統(tǒng)根據(jù)獲取到的多個不重疊的行幀信息,并將不重疊的行幀信息分為多個CTU幀單元,且計算子系統(tǒng)中的每一個線程對應一行CTU幀單元;
[0016]3)計算子系統(tǒng)開始在一個線程中對一行CTU幀單元進行編碼,并行HEVC視頻編碼器獲取當前待編碼的CTU幀單元信息,根據(jù)控制信息進行幀內預測或是幀間預測,并將編碼完成的當前CTU幀單元的編碼比特流分別發(fā)送給其他計算子系統(tǒng)的并行解碼器和合并輸出模塊;
[0017]4)當計算子系統(tǒng)中的所有線程全部完成對當前待編碼幀的編碼時,合并輸出模塊將獲取到的多個CTU幀單元的編碼比特流整合為一個完整的編碼幀比特流發(fā)出。
[0018]所述的步驟3)中的幀內預測包括以下步驟:
[0019]311)并行HEVC視頻編碼器在編碼器控制模塊控制下,獲取當前待編碼的CTU幀單元信息;
[0020]312)并行解碼器根據(jù)解碼器控制模塊的控制下,獲取其他計算子系統(tǒng)對應線程中的CTU幀單元的編碼比特流,在熵解碼模塊中進行解碼后,進行比例縮放和反變換得到幀內預測數(shù)據(jù),并且通過高速傳輸網(wǎng)絡發(fā)送