基于復雜度均衡的并行編解碼方法、裝置及系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明屬于視頻編解碼技術領域,具體而言,涉及一種基于復雜度均衡的并行編解碼方法、裝置及系統(tǒng)。
【背景技術】
[0002]隨著高清視頻技術的不斷發(fā)展以及視頻壓縮能力的不斷提高,視頻編解碼算法的復雜度也在不斷提升,單核處理器已無法滿足編解碼的計算量需求,在此情勢下,處理器多核化則應運而生。
[0003]目前,在當前處理器的多核發(fā)展趨勢下,對視頻編碼器標準的并行編碼的支持也提出了比較高的要求。
[0004]傳統(tǒng)的高級視頻編解碼標準包含多種圖像編碼劃分。在主流高級視頻編解碼標準中,如在H.264等標準中采取片(Slice)對圖像進行圖像編碼劃分,或在HEVC (HighEfficiency Video Coding,高效率視頻編碼)標準中米取 WPP (Wavefront ParallelProcessing,波前并行處理)(如圖1所示)、Tile (子圖像)劃分(如圖2所示)、或Slice對圖像進行圖像編碼劃分。而片(Slice)的劃分不是針對于并行編碼提出的,在碼流結構設計、視頻壓縮率等方面都不能很好的支持并行視頻編碼。
[0005]隨著高級視頻編解碼標準的發(fā)展,最新被提出的HEVC標準與之前的視頻編解碼標準在支持并行編解碼方面有很大的提高,特別是WPP與Tile工具集的提出,使得編碼器從碼流結構到編碼器的算法工具集的支持都有了很大的提升。雖然這些圖像編碼劃分(WPP與Tile)提供了并行的可能,但要最大限度的發(fā)展編碼器的性能,如何提高算法并行度是我們不得不考慮的途徑之一。在計算機體系結構中,算法并行度是指總算法計算在多核架構下能夠并行的程度,如算法在單核處理器下的執(zhí)行時間為D,如果在η個核的處理器下計算時間為d,那這個算法在η核處理器下的并行度則為D/ (n*d)。顯而易見地,如果算法不支持并行,且只能在單核上運行,無法利用多核的優(yōu)勢,從而算法實時性會受到很大影響。
[0006]據(jù)標準組織統(tǒng)計,HEVC編解碼標準中提供的WPP與Tile算法工具集隨著圖像編碼劃分的增多,其處理的算法并行度快速下降,例如在對8個核的處理器中對高清視頻序列(分辨率1920x1080)使用Tile與WPP工具集進行編碼,對于大部分視頻序列進行處理的算法并行度通常不足70%,當然,對于具有更多的圖像編碼劃分,編解碼算法的并行度越低?,F(xiàn)有視頻編碼標準解碼架構中圖像編碼區(qū)域劃分示意如圖3所示。
[0007]假設某段1080p視頻采用HEVC進行編碼壓縮,通過8核處理器支持1080p的HEVC編碼器。如果在視頻內(nèi)容中,其某個區(qū)域的運動復雜度比較高,而其他的區(qū)域則相對較低,使用HEVC標準中的Tile與WPP算法工具集對圖像進行圖像編碼劃分,并劃分未8個Tile的編碼區(qū)域,要完成一幀的編碼,則需要等待8個Tile中最耗時的那個Tile編碼完成。如果算法并行度太低,勢必會影響編碼器的實時性,增加使用成本。除此之外,較低的算法并行度還會增加編碼器的功耗。
[0008]因此,如何發(fā)揮處理器的性能,提高編碼器的實時性是亟待需要解決的問題。
【發(fā)明內(nèi)容】
[0009]鑒于此,本發(fā)明實施例的目的在于提供一種基于復雜度均衡的并行編解碼方法、裝置及系統(tǒng)。
[0010]本發(fā)明實施例采用以下技術方案實現(xiàn):
[0011]一種基于復雜度均衡的并行編碼方法,包括:
[0012]初始化圖像編碼劃分,依據(jù)初始圖像編碼劃分參數(shù)對輸入的第一視頻幀進行編碼,并將所述初始圖像編碼劃分參數(shù)編入第一輸出碼流;
[0013]統(tǒng)計分別依據(jù)所述初始圖像編碼劃分參數(shù)處理所述第一視頻幀的多核處理器的核心的前向復雜度統(tǒng)計參數(shù);
[0014]依據(jù)統(tǒng)計的前向復雜度統(tǒng)計參數(shù)、采用復雜度均衡算法動態(tài)計算得到當前圖像編碼劃分參數(shù),并依據(jù)所述當前圖像編碼劃分參數(shù)對輸入的第二視頻幀進行編碼,且將所述當前圖像編碼劃分參數(shù)編入第二輸出碼流。
[0015]優(yōu)選地,根據(jù)多核處理器的核心個數(shù)、每個核心的性能參數(shù),以及編碼器算法復雜度初始化圖像編碼劃分,得到初始圖像編碼劃分參數(shù)。
[0016]優(yōu)選地,將所述當前圖像編碼劃分參數(shù)編入第二輸出碼流的策略為:
[0017]根據(jù)熵編碼代價選擇比特代價最小的熵編碼方式將所述當前圖像編碼劃分參數(shù)編入第二輸出碼流。
[0018]優(yōu)選地,如果所述當前圖像編碼劃分參數(shù)與上次圖像編碼劃分參數(shù)一致,則維持采用上次圖像編碼劃分參數(shù)對輸入的視頻幀進行編碼,并將上次圖像編碼劃分參數(shù)編入相應的輸出碼流之中。
[0019]一種編碼裝置,包括:
[0020]復雜度均衡單元,用于初始化圖像編碼劃分,得到初始圖像編碼劃分參數(shù);進一步用于統(tǒng)計分別依據(jù)所述初始圖像編碼劃分參數(shù)處理所述第一視頻幀的多核處理器的核心的前向復雜度統(tǒng)計參數(shù),并依據(jù)統(tǒng)計的前向復雜度統(tǒng)計參數(shù)、采用復雜度均衡算法動態(tài)計算得到當前圖像編碼劃分參數(shù);
[0021]視頻圖像劃分編碼單元,用于依據(jù)初始圖像編碼劃分參數(shù)對輸入的第一視頻幀進行編碼,并將所述初始圖像編碼劃分參數(shù)編入第一輸出碼流;進一步用于依據(jù)所述當前圖像編碼劃分參數(shù)對輸入的第二視頻幀進行編碼,且將所述當前圖像編碼劃分參數(shù)編入第二輸出碼流。
[0022]優(yōu)選地,復雜度均衡單元根據(jù)多核處理器的核心個數(shù)、每個核心的性能參數(shù),以及編碼器算法復雜度初始化圖像編碼劃分,得到初始圖像編碼劃分參數(shù)。
[0023]優(yōu)選地,視頻圖像劃分編碼單元根據(jù)熵編碼代價選擇比特代價最小的熵編碼方式將所述當前圖像編碼劃分參數(shù)編入第二輸出碼流。
[0024]優(yōu)選地,所述視頻圖像劃分編碼單元還用于對所述當前圖像編碼劃分參數(shù)與上次圖像編碼劃分參數(shù)進行判斷,如果所述當前圖像編碼劃分參數(shù)與上次圖像編碼劃分參數(shù)一致,則維持采用上次圖像編碼劃分參數(shù)對輸入的視頻幀進行編碼,并將上次圖像編碼劃分參數(shù)編入相應的輸出碼流之中。
[0025]一種基于如上所述的基于復雜度均衡的并行編碼方法的解碼方法,包括:
[0026]獲取視頻碼流,解析出圖像編碼劃分參數(shù);
[0027]依據(jù)所述圖像編碼劃分參數(shù)執(zhí)行相應重建區(qū)域的解碼圖像重建。
[0028]優(yōu)選地,獲取視頻碼流中與圖像編碼劃分參數(shù)對應的碼字,熵解碼所述碼字,并解析出圖像編碼劃分參數(shù)。
[0029]一種解碼裝置,包括:
[0030]熵解碼單元,用于獲取視頻碼流,并解析出圖像編碼劃分參數(shù);
[0031]視頻圖像劃分解碼單元,用于依據(jù)所述圖像編碼劃分參數(shù)執(zhí)行相應重建區(qū)域的解碼圖像重建。
[0032]優(yōu)選地,熵解碼單元包括:
[0033]獲取子單元,用于獲取視頻碼流中與圖像編碼劃分參數(shù)對應的碼字;
[0034]熵解碼子單元,用于熵解碼所述碼字;
[0035]參數(shù)解析子單元,用于解析出圖像編碼劃分參數(shù)。
[0036]一種系統(tǒng),包括編碼端以及解碼端,其中:
[0037]在所述編碼端:
[0038]初始化圖像編碼劃分,依據(jù)初始圖像編碼劃分參數(shù)對輸入的第一視頻幀進行編碼,并將所述初始圖像編碼劃分參數(shù)編入第一輸出碼流;統(tǒng)計分別依據(jù)所述初始圖像編碼劃分參數(shù)處理所述第一視頻幀的多核處理器的核心的前向復雜度統(tǒng)計參數(shù);依據(jù)統(tǒng)計的前向復雜度統(tǒng)計參數(shù)、采用復雜度均衡算法動態(tài)計算得到當前圖像編碼劃分參數(shù),并依據(jù)所述當前圖像編碼劃分參數(shù)對輸入的第二視頻幀進行編碼,且將所述當前圖像編碼劃分參數(shù)編入第二輸出碼流。
[0039]在所述解碼端:
[0040]獲取視頻碼流,解析出圖像編碼劃分參數(shù);依據(jù)所述圖像編碼劃分參數(shù)執(zhí)行相應重建區(qū)域的解碼圖像重建。
[0041]本發(fā)明提供一種在多核處理器的情況下方便于進行復雜度均衡以實現(xiàn)并行編碼的視頻編解碼結構。該結構能夠解決基于編碼器在多核處理器編碼下,由于多個核的編碼復雜度不均衡而導致編碼器的效率急劇下降、從而不利于編解碼器的多核處理器下實現(xiàn)的問題。本發(fā)明能夠降低使用多核處理器的使用頻率,減小使用處理器的成本,提高編碼器的并行度,從而提高視頻編解碼的性能。
【附圖說明】
[0042]圖1是現(xiàn)有HEVC編碼標準中的WPP劃分示意圖。
[0043]圖2是現(xiàn)有HEVC編碼標準中的Tile劃分示意圖。<