一種自適應的從h264到hevc的幀間快速轉碼方法及裝置的制造方法
【專利摘要】本發明涉及視頻編解碼領域,尤其是一種自適應的從H264到HEVC的幀間快速轉碼方法及裝置。本發明針對現有技術存在的問題,提供一種快速轉碼方法及裝置。本發明針對H264到HEVC轉碼中的幀間預測加速問題,提出了一種綜合了自適應的模式映射、運動向量的合理重復利用的方案。幀間預測階段,可能進行一系列四叉樹分割,然后得到CU8;也有可能提前中止,有些不用最終深入到CU8,不用分割到CU16,最理想的直接將CU64作為一個整體進行編碼;其中CU32、CU16以及CU8幀間預測得到的都是臨時的最優模式;在整個Cu64幀間預測結束后得到最優編碼模式,根據最優編碼模式進行編碼。
【專利說明】
一種自適應的從H264到HEVC的幀間快速轉碼方法及裝置
技術領域
[0001 ]本發明涉及視頻編解碼領域,尤其是一種自適應的從H264到HEVC的幀間快速轉碼 方法及裝置。
【背景技術】
[0002] 近年來隨著視頻業務的飛速發展,人們對觀看高清乃至超高清視頻的需求也越來 越高,目前主流的視頻壓縮編碼標準H.264/AVC已經不能適應高數據量下的視頻的網絡傳 輸,于是新一代視頻壓縮編碼標準H.265/HEVC應運而生。HEVC最主要的目標是在壓縮效率 上獲得顯著提高,即在保持視頻質量基本不變的同時減少50%左右的碼率,但編碼的計算 復雜度也由此急劇增加。
[0003] HEVC相對于H.264在編碼性能上的大幅提升主要體現在:(1)采用了更加靈活的編 碼結構來提高編碼效率,包括編碼單元CU、預測單元PU和變換單元TU,同時將宏塊的大小從 H. 264的16 X 16擴展到了64 X64,更適用于高分辨率視頻的壓縮;(2)采用了更多的幀內預 測方向,每種PU尺寸最多可達30余種預測方向,更大范圍的PU尺寸和更多的PU幀內預測方 向使得HEVC比H.264/AVC有了更高的幀內預測壓縮性能;(3)采用了更多的幀間預測模式, 包含了對稱PU模式和非對稱模式,使得HEVC有了更加多樣化的運動塊匹配,從而提高了 幀間運動估計的壓縮性能,等等。
[0004] 目前高清及超高清視頻逐漸成為目前網絡存儲和傳輸的主要業務,因此,將視頻 采用壓縮比相對H. 264標準提高一倍的HEVC標準應用于視頻的存儲和網絡傳輸,將帶來很 大的性能提升。然而,目前既有的數以億計的多媒體資源,其中視頻部分大多均是采用老一 代的H. 264標準壓縮。因此,研究從H. 264標準到HEVC標準的視頻轉碼技術具有充分的現實 意義和經濟價值。
[0005] 傳統的H. 264向HEVC轉碼的方法是將H. 264解碼器與HEVC的編碼器級聯,直接對 H. 264標準解碼得到的圖像進行HEVC編碼。這種方法解碼器和編碼器相互獨立,沒有對 H. 264碼流中所包含的信息進行解碼后的充分利用,而是遍歷了編碼中的所有過程,因此復 雜度很高。因此,針對利用解碼信息降低轉碼器的計算復雜度的技術,目前已經有學者進行 了 一定的研究。
[0006] 利用解碼信息的轉碼技術研究,多數集中在加速幀間預測和加速幀內預測這兩個 方面。由于H. 264和HEVC編碼中,參考幀號、運動矢量、運動估計的預測方式等是相同的。因 此,可以在H. 264碼流中提取參考幀號、宏塊位置坐標、宏塊類型、運動矢量等信息,并應用 在HEVC編碼端,對幀間和幀內預測等環節進行優化,從而大幅降低整個轉碼的計算復雜度。
[0007] 以幀間預測為例,典型的技術如:Eduardo Peixoto和Tamer Shanableh等人以運 動矢量的方差等建立特征,利用模式分類的思想,提取H.264碼流中的特征信息,通過一種 線性判別函數,確定出ffiVC編碼器中圖像的編碼單元的劃分方式,從而大大減少了確定分 塊方式的計算量。Qingxiong Huangyuan和Li Song等人則以H.264分塊信息等為特征,利用 機器學習的思想,采用SVM分類器預測HEVC編碼中的CU編碼塊層次深度范圍,從而大大降低 了HEVC中四叉樹結構編碼的復雜度。
【發明內容】
[0008] 本發明所要解決的技術問題是:針對現有技術存在的問題,提供一種自適應的從 H264到HEVC的幀間快速轉碼方法及裝置。本發明主要針對H. 264到HEVC轉碼中的幀間預測 加速問題,提出了一種綜合了自適應的模式映射、運動向量的合理重復利用的技術方案。幀 間預測階段,結束后,進行編碼(包括變換編碼及熵編碼等)。幀間預測階段,可能進行一系 列⑶64、CU32、⑶16的四叉樹分割,然后得到⑶8;也有可能提前中止,有些不用最終深入到 ⑶8,有些甚至不用分割到⑶16,最理想的有些連⑶32都不用幀間預測,而是直接將⑶64作 為1個整體進行編碼;其中CU32幀間預測、CU16幀間預測以及CU8幀間預測得到的最優模式, 都只是一個臨時最優模式,并且CU32幀間預測、CU16幀間預測以及CU8幀間預測都只是為了 得到臨時最優模式,而不進行任何編碼;編碼是在整個Cu64幀間預測結束后得到最優編碼 模式,根據最優編碼模式進行編碼。
[0009] 本發明采用的技術方案如下:
[0010] -種自適應的從H264到HEVC的幀間快速轉碼方法包括:
[0011] 步驟1:輸入原始H264視頻流,并對該視頻進行解碼,提取當前解碼幀的宏塊殘差、 編碼模式、參考幀、運動向量;將ffiVC編碼樹單元覆蓋的區域對應至當前解碼幀的各個宏 塊;
[0012] 步驟2:進行⑶64幀間預測,得到⑶64不分割時的最優模式,然后判斷當前⑶64幀 間預測是否可以提前終止,當⑶64對應的各MB參考幀相同、各MB全部是Pskip模式或16*16 模式并且各MB的運動向量MV相近且16個MB對應的殘差系數幅值之和小于⑶64閾值時,則不 需要對CTU進行分割,直接采用CU64不分割時的最優模式作為最優編碼模式,否則,將CTU進 行四叉樹分割,形成4個第一級子單元CU32,對每個CU32分別執行步驟3之后,將所有第一級 子單元CU32幀間預測中當前CU的最優模式時對應的代價連同分割標志編碼代價一起求和, 求和結果與CU64不分割時CU在最優模式時的代價對比,選擇代價小者對應的模式作為當前 ⑶64最優編碼模式,以⑶64最優編碼模式對CTU進行編碼:其中⑶64為64*64大小的⑶;CU32 為32*32的CU;CU16為16*16的CU;C8為8*8的CU;CU64是將64*64大小的宏塊分割為4個32*32 大小的區域CU32;
[0013] 步驟3:進行⑶32幀間預測,得到⑶32不分割時的最優模式;然后判斷當前⑶32幀 間預測是否可以提前終止,當當前CU32對應的MB參考幀相同、對應的MB為Skip或16x16模 式、4個MB的運動向量MV相近及4個MB對應的殘差系數幅值之和小于CU32閾值時,則當前 CU32可以提前終止,直接以CU32不分割時的最優模式作為CU32的最優模式,然后進行下一 個CU32的幀間預測,否則,進入當前第一級子單元的CU32四叉樹分割,形成4個第二級子單 元CU16,對每個CU16分別執行步驟4之后,將所有第二級子單元CU16幀間預測中當前CU的最 優模式時對應的代價連同分割標志編碼代價一起求和,求和結果與CU32不分割時CU在最優 模式時的代價對比,選擇代價小者對應的模式作為當前CU32的最優模式,然后才進行下一 個CU32的幀間預測;
[0014]步驟4:進行CU16幀間預測,得到CU16不分割時的最優模式,然后判斷當前CU16幀 間預測是否可以提前終止,當當前CU16對應MB是PSkip模式或者對應MB不是幀內模式、對應 的MB未劃分為亞宏塊且MB對應的殘差系數幅值之和小于等于⑶16閾值時,則當前⑶16可以 提前終止,直接以CU16不分割時的最優模式作為CU16的最優模式,然后進行下一個CU16的 幀間預測,否則進入CU16的四叉樹分割,形成4個第三級子單元CU8,對每個CU8分別執行步 驟5,執行步驟5之后,將所有CU8幀間預測中當前CU在最優模式時的代價連同分割標志編碼 代價一起求和,求和結果與當前CU16不分割時CU在最優模式時的代價對比,選擇代價小者 對應的模式作為當前CU16最優模式,然后才進行下一個CU16的幀間預測;CU16進行四叉樹 分割指的是將16*16大小宏塊分給為4個8*8大小的區域CU8;
[0015] 步驟5:進行CU8幀間預測,然后進行下一個CU8的幀間預測。
[0016] 進一步的,所述⑶64幀間預測具體包括:
[0017] 步驟21:對HEVC編碼樹單元的編碼單元⑶執行merge/skip模式,將HEVC區域的當 前CU對應于H264的16個MB,計算16個MB的參考幀是否相同;若參考幀相同,則執行步驟22; 否則,執行步驟23;
[0018] 步驟22:當16個MB全被H264編碼為16x16或Skip模式、16個MB的運動向量MV相近且 判定當前CU所對應的所有MB對應的殘差系數幅值之和小于CU64閾值時,則根據16個MB的運 動向量信息做一個小范圍運動估計,確定當前CU在為2N*2N模式時的代價,然后直接跳過其 他幀間模式,將當前CU在2Nx2N模式的代價與當前CU執行merge/skip模式得到的代價進行 比較,比較后選擇代價小者對應的模式作為當前CU在不分割時的最優模式;否則,利用 H. 264的運動信息,對其他幀間模式進行縮小范圍運動估計;確定當前CU其他幀間模式的代 價,然后將當前CU在其他幀間模式的代價與當前CU執行merge/skip模式得到的代價進行比 較,比較后選擇代價小者對應的模式作為當前CU在不分割時的最優模式,然后進行CU64四 叉樹分割;CU64模式包括2N*2N模式和其他幀間模式;其中其他幀間模式包括2N*N模式、N* 2N模式對稱模式及2版111]、2啦11〇、111^21111^2~等非對稱模式 ;其中1]指的是1^,表示小于_勺 在編碼單元CU上部;D表示Down,表示小于N的在編碼單元CU下部;L指的是left,表示小于N 的在編碼單元CU左部;R指的是right,表示小于N的在編碼單元CU右部;
[0019] 步驟23:對當前CU進行2NX2N按搜索范圍進行正常運動估計,對其余幀間模式對應 的預測單元PU做判斷,考察每一個PU對應的所有宏塊MB,若宏塊MB的參考幀相同且宏塊MB 都是PSkip或16x16模式;則對CU64幀間預測模塊對應的預測單元PU做小范圍運動估計,否 貝1J,進行正常運動估計,執行步驟24;
[0020] 步驟24:計算當前CU在所有其余幀間模式和幀內模式的代價后,然后將當前CU在 其他模式的代價、幀內模式的代價對應與當前CU執行merge/skip模式得到的代價進行比 較,比較后選擇代價最小的作為當前CU在不分割時的最優模式,然后進行CU64四叉樹分割。
[0021] 進一步的,所述⑶32幀間預測具體包括:
[0022] 步驟211:對HEVC編碼樹單元的編碼單元⑶執行merge/skip模式,將HEVC區域的當 前CU對應于H264的4個MB,計算4個MB的參考幀是否相同;若參考幀相同,則執行步驟212;否 貝1J,執行步驟213;
[0023] 步驟212:當4個MB全被H264編碼為16x16或Skip模式、4個MB的運動向量MV相近且 判定當前CU所對應的所有MB對應的殘差系數幅值之和小于CU32閾值時,則根據4個MB的運 動向量信息做一個小范圍運動估計,確定當前CU在為2N*2N模式時的代價,然后直接跳過其 他幀間模式,將當前CU在2Nx2N模式的代價與當前CU執行merge/skip模式得到的代價進行 比較,比較后選擇代價小者對應的模式作為當前CU在不分割時的最優模式;否則,利用 H. 264的運動信息,對其他幀間模式進行縮小范圍運動估計;確定當前CU其他幀間模式的代 價,然后將當前CU在其他幀間模式的代價與當前CU執行merge/skip模式得到的代價進行比 較,比較后選擇代價小者對應的模式作為當前CU在不分割時的最優模式,然后進行CU32四 叉樹分割;CU32模式包括2N*2N模式和其他幀間模式;其中其他幀間模式包括2N*N模式、N* 2N模式對稱模式及2版111]、2啦11〇、111^21111^2~等非對稱模式 ;其中1]指的是1^,表示小于_勺 在編碼單元CU上部;D表示Down,表示小于N的在編碼單元CU下部;L指的是left,表示小于N 的在編碼單元CU左部;R指的是right,表示小于N的在編碼單元CU右部;
[0024]步驟213:對當前CU進行2Nx2N按搜索范圍進行正常運動估計,對其余幀間模式對 應的預測單元PU做判斷,考察每一個對應的所有宏塊MB及宏塊MB的局部區域,若宏塊MB 及宏塊MB的局部區域的參考幀相同且宏塊MB及宏塊MB的局部區域都是完整劃分;則對CU64 幀間預測模塊對應的預測單元PU做小范圍運動估計,否則,進行正常運動估計,執行步驟 214;完整劃分指的是宏塊MB都是PSkip、16x16模式,宏塊MB的局部區域的內部不存在MB模 式劃分形成的分界;宏塊MB的局部區域指的是宏塊MB的一部分;
[0025]步驟214:計算當前CU在所有其余幀間模式和幀內模式的代價后,然后將當前CU在 其他模式的代價、幀內模式的代價對應與當前CU執行merge/sk ip模式得到的代價進行比 較,比較后選擇代價最小的作為當前CU在不分割時的最優模式,然后進行CU32四叉樹分割。 [0026]進一步的,所述⑶16幀間預測具體處理過程是:
[0027] 步驟31:對當前⑶執行Merge/Skip模式,計算當前⑶對應的MB是否已經劃分到 SubMB(亞宏塊)級別,如果是,則跳過其它幀間模式的測試,進行CU16四叉樹分割,將4個CU8 中當前CU在最優模式時的代價連同分割標志編碼代價一起求和,求和結果與CU16不分割時 CU在最優模式時的代價對比,選擇代價小者對應的模式作為當前CU16最優模式;否則,執行 步驟32;
[0028]步驟32:若當前⑶對應的MB是否編碼為PSkip模式,如果是,則跳過其他幀間模式, 以merge/skip模式作為當前⑶16不分割時的最優模式;如果當前⑶對應的MB不是PSkip,而 是幀內模式,貝IJ跳過其他幀間模式,執行幀內模式,與當前CU執行merge/skip模式得到的代 價進行比較,選擇代價較小的作為當前CU在不分割時的最優模式,然后進行CU16四叉樹分 害U;如果當前CU對應的MB不是PSkip,也不是幀內模式,則MB為16x16、16x8或8x16模式,執行 步驟33;
[0029]步驟33:判斷當前⑶對應的MB對應的殘差系數幅值之和是否大于⑶16閾值,如果 大于閾值,則進行CU16四叉樹分割;否則,采用H. 264宏塊既有的幀間預測模式作為當前 CU16不分割時的最優模式,同時米用H. 264宏塊既有的運動向量,不進行CU16其他的幀間模 式計算。
[0030]進一步的,所述⑶8幀間預測具體處理過程是:
[0031 ] 步驟41:對HEVC編碼樹單元的編碼單元CU執行merge/skip模式,接著先看當前CU 所在的H. 264的宏塊模式;如果當前CU對應的MB模式為PSkip模式,則直接結束;若當前CU對 應的MB是幀內模式,則計算當前CU所有剩余模式的代價,并與當前CU執行執行merge/skip 模式得到的代價進行比較,選擇代價小者對應的模式作為當前CU最優模式;如果當前CU對 應的MB即不是PSkip模式也不是幀內模式,則先判斷當前CU對應的MB的劃分是否大于等于 當前的⑶8,也即是否為16*16模式、16x8模式、8x16模式、8x8模式這幾種模式;如果是,則當 前⑶的2Nx2N模式的MV采取覆蓋當前⑶的對應MB或子塊的運動向量MV,并跳過其他剩余模 式;否則,執行步驟42;其他剩余模式指的是2N*N模式、N*2N模式對稱模式和幀內模式;所有 剩余模式指的是2Nx2N模式和其他剩余模式;
[0032] 步驟42:當當前CU對應的亞宏塊是8x4或4x8模式,則CU對應采用2NxN或Nx2N模式, 同時采用2NxN或Nx2N模式對應運動向量MV,與當前⑶采用merge/skip模式得到的代價比較 后選出最優模式;如果當前CU對應的亞宏塊是4x4模式,則根據H264對應區域的運動向量 MV,分別做縮小范圍運動估計,遍歷剩余模式,最后與merge/skip模式得到的代價比較選出 最優模式;剩余模式指的是2N*N模式、N*2N模式對稱模式。
[0033]進一步的,一種自適應的從H264到HEVC的幀間快速轉碼裝置包括:
[0034] H264解碼模塊,用于對輸入原始H264視頻流進行解碼,提取當前解碼幀的宏塊殘 差、編碼模式、參考幀、運動向量;將ffiVC編碼樹單元覆蓋的區域對應至當前解碼幀的各個 宏塊;
[0035] CU64預測模塊,用于進行CU64幀間預測,得到CU64不分割時的最優模式,然后判斷 當前⑶64幀間預測是否可以提前終止,當⑶64對應的各MB參考幀相同、各MB全部是Pskip模 式或16*16模式并且各MB的運動向量MV相近且16個MB對應的殘差系數幅值之和小于⑶64閾 值時,則不需要對CTU進行分割,直接采用CU64不分割時的最優模式作為最優編碼模式,否 貝1J,將CTU進行四叉樹分割,形成4個第一級子單元⑶32,對每個⑶32通過⑶32預測模塊進行 處理,然后將所有第一級子單元CU32幀間預測中當前CU的最優模式時對應的代價連同分割 標志編碼代價一起求和,求和結果與CU64不分割時CU在最優模式時的代價對比,選擇代價 小者對應的模式作為當前CU64最優編碼模式,以CU64最優編碼模式對CTU進行編碼:其中 CU64 為64*64大小的 CU;CU32 為 32*32 的 CU;CU16 為 16*16 的 CU;C8 為 8*8 的 CU;CU64 是將 64*64 大小的宏塊分割為4個32*32大小的區域CU32;
[0036] CU32預測模塊,用于進行CU32幀間預測,得到CU32不分割時的最優模式;然后判斷 當前CU32幀間預測是否可以提前終止,當當前CU32對應的MB參考幀相同、對應的MB為Skip 或16x16模式、4個MB的運動向量MV相近及4個MB對應的殘差系數幅值之和小于⑶32閾值時, 則當前CU32可以提前終止,直接以CU32不分割時的最優模式作為CU32的最優模式,然后進 行下一個CU32的幀間預測,否則,進入當前第一級子單元的CU32四叉樹分割,形成4個第二 級子單元⑶16,對每個⑶16通過⑶16預測模塊進行處理,然后將所有第二級子單元⑶16幀 間預測中當前CU的最優模式時對應的代價連同分割標志編碼代價一起求和,求和結果與 CU32不分割時CU在最優模式時的代價對比,選擇代價小者對應的模式作為當前CU32的最優 模式,然后才進行下一個CU32的幀間預測;
[0037] CU16預測模塊,用于進行CU16幀間預測,得到CU16不分割時的最優模式,然后判斷 當前CU16幀間預測是否可以提前終止,當當前CU16對應MB是PSkip模式或者對應MB不是幀 內模式、當前CU16對應的MB未劃分為亞宏塊且當前CU16對應的MB對應的殘差系數幅值之和 小于等于C U16閾值時,則當前C U16可以提前終止,直接以C U16不分割時的最優模式作為 CU16的最優模式,然后進行下一個CU16的幀間預測,否則進入CU16的四叉樹分割,形成4個 第三級子單元CU8,對每個CU8通過CU8預測模塊進行處理,然后將所有CU8幀間預測中當前 CU在最優模式時的代價連同分割標志編碼代價一起求和,求和結果與當前CU16不分割時CU 在最優模式時的代價對比,選擇代價小者對應的模式作為當前CU16最優模式,然后才進行 下一個CU16的幀間預測;CU16進行四叉樹分割指的是將16*16大小宏塊分給為4個8*8大小 的區域CU8;
[0038] CU8預測模塊,用于進行CU8幀間預測,然后進行下一個CU8幀間預測。
[0039]進一步的,所述⑶64幀間預測模塊具體處理過程包括:
[0040] 步驟21:對HEVC編碼樹單元的編碼單元⑶執行merge/skip模式,將HEVC區域的當 前CU對應于H264的16個MB,計算16個MB的參考幀是否相同;若參考幀相同,則執行步驟22; 否則,執行步驟23;
[0041 ] 步驟22:當16個MB全被H264編碼為16x16或Skip模式、16個MB的運動向量MV相近且 判定當前CU所對應的所有MB對應的殘差系數幅值之和小于CU64閾值時,則根據16個MB的運 動向量信息做一個小范圍運動估計,確定當前CU在為2N*2N模式時的代價,然后直接跳過其 他幀間模式,將當前CU在2Nx2N模式的代價與當前CU執行merge/skip模式得到的代價進行 比較,比較后選擇代價小者對應的模式作為當前CU在不分割時的最優模式;否則,利用 H. 264的運動信息,對其他幀間模式進行縮小范圍運動估計;確定當前CU其他幀間模式的代 價,然后將當前CU在其他幀間模式的代價與當前CU執行merge/skip模式得到的代價進行比 較,比較后選擇代價小者對應的模式作為當前CU在不分割時的最優模式,然后進行CU64四 叉樹分割;CU64模式包括2N*2N模式和其他幀間模式;其中其他幀間模式包括2N*N模式、N* 2N模式對稱模式及2版111]、2啦11〇、111^21111^2~等非對稱模式 ;其中1]指的是1^,表示小于_勺 在編碼單元CU上部;D表示Down,表示小于N的在編碼單元CU下部;L指的是left,表示小于N 的在編碼單元CU左部;R指的是right,表示小于N的在編碼單元CU右部;
[0042]步驟23:對當前CU進行2Nx2N按搜索范圍進行正常運動估計,對其余幀間模式對應 的預測單元PU做判斷,考察每一個PU對應的所有宏塊MB,若宏塊MB的參考幀相同且宏塊MB 都是PSkip或16x16模式;則對CU64幀間預測模塊對應的預測單元PU做小范圍運動估計,否 貝1J,進行正常運動估計,執行步驟24;
[0043]步驟24:計算當前CU在所有其余幀間模式和幀內模式的代價后,然后將當前CU在 其他模式的代價、幀內模式的代價對應與當前CU執行merge/skip模式得到的代價進行比 較,比較后選擇代價最小的作為當前CU在不分割時的最優模式,然后進行CU64四叉樹分割
[0044] 進一步的,所述⑶32幀間預測模塊具體處理過程包括:
[0045] 步驟211:對HEVC編碼樹單元的編碼單元⑶執行merge/skip模式,將HEVC區域的當 前CU對應于H264的4個MB,計算4個MB的參考幀是否相同;若參考幀相同,則執行步驟212;否 貝1J,執行步驟213;
[0046] 步驟212:當4個MB全被H264編碼為16x16或Skip模式、4個MB的運動向量MV相近且 判定當前CU所對應的所有MB對應的殘差系數幅值之和小于CU32閾值時,則根據4個MB的運 動向量信息做一個小范圍運動估計,確定當前CU在為2N*2N模式時的代價,然后直接跳過其 他幀間模式,將當前CU在2Nx2N模式的代價與當前CU執行merge/skip模式得到的代價進行 比較,比較后選擇代價小者對應的模式作為當前CU在不分割時的最優模式;否則,利用 H. 264的運動信息,對其他幀間模式進行縮小范圍運動估計;確定當前CU其他幀間模式的代 價,然后將當前CU在其他幀間模式的代價與當前CU執行merge/skip模式得到的代價進行比 較,比較后選擇代價小者對應的模式作為當前CU在不分割時的最優模式,然后進行CU32四 叉樹分割;CU32模式包括2N*2N模式和其他幀間模式;其中其他幀間模式包括2N*N模式、N* 2N模式對稱模式及2版111]、2啦11〇、111^21111^2~等非對稱模式;其中1]指的是1^,表示小于_勺 在編碼單元CU上部;D表示Down,表示小于N的在編碼單元CU下部;L指的是left,表示小于N 的在編碼單元CU左部;R指的是right,表示小于N的在編碼單元CU右部;
[0047]步驟213:對當前CU進行2Nx2N按搜索范圍進行正常運動估計,對其余幀間模式對 應的預測單元PU做判斷,考察每一個HJ對應的所有宏塊MB及宏塊MB的局部區域,若宏塊MB 及宏塊MB的局部區域的參考幀相同且宏塊MB及宏塊MB的局部區域都是完整劃分;則對CU64 幀間預測模塊對應的預測單元PU做小范圍運動估計,否則,進行正常運動估計,執行步驟 214;完整劃分指的是宏塊MB都是PSkip、16x16模式,宏塊MB的局部區域的內部不存在MB模 式劃分形成的分界;宏塊MB的局部區域指的是宏塊MB的一部分;
[0048] 步驟214:計算當前CU在所有其余幀間模式和幀內模式的代價后,然后將當前CU在 其他模式的代價、幀內模式的代價對應與當前CU執行merge/sk ip模式得到的代價進行比 較,比較后選擇代價最小的作為當前CU在不分割時的最優模式,然后進行CU32四叉樹分割。
[0049] 進一步的,所述⑶16幀間預測模塊具體處理過程包括:
[0050] 步驟31:對當前⑶執行Merge/Skip模式,計算當前⑶對應的MB是否已經劃分到 SubMB(亞宏塊)級別,如果是,則跳過其它幀間模式的測試,進行CU16四叉樹分割,將4個CU8 中當前CU在最優模式時的代價連同分割標志編碼代價一起求和,求和結果與CU16不分割時 CU在最優模式時的代價對比,選擇代價小者對應的模式作為當前CU16最優模式;否則,執行 步驟32;
[00511步驟32:若當前⑶對應的MB是否編碼為PSkip模式,如果是,則跳過其他幀間模式, 以merge/skip模式作為當前⑶16不分割時的最優模式;如果當前⑶對應的MB不是PSkip,而 是幀內模式,貝IJ跳過其他幀間模式,執行幀內模式,與當前CU執行merge/skip模式得到的代 價進行比較,選擇代價較小的作為當前CU在不分割時的最優模式,然后進行CU16四叉樹分 害U;如果當前CU對應的MB不是PSkip,也不是幀內模式,則MB為16x16、16x8或8x16模式,執行 步驟33;
[0052]步驟33:判斷當前CU對應的MB對應的殘差系數幅值之和是否大于CU16閾值,如果 大于閾值,則進行CU16四叉樹分割;否則,采用H. 264宏塊既有的幀間預測模式作為當前 CU16不分割時的最優模式,同時米用H. 264宏塊既有的運動向量,不進行CU16其他的幀間模 式計算。
[0053]進一步的,所述在于⑶8幀間預測模塊具體處理過程是:
[0054] 步驟41:對HEVC編碼樹單元的編碼單元CU執行merge/skip模式,接著先看當前CU 所在的H. 264的宏塊模式;如果當前CU對應的MB模式為PSkip模式,則直接結束;若當前CU對 應的MB是幀內模式,則計算當前CU所有剩余模式的代價,并與當前CU執行執行merge/skip 模式得到的代價進行比較,選擇代價小者對應的模式作為當前CU最優模式;如果當前CU對 應的MB即不是PSkip模式也不是幀內模式,則先判斷當前CU對應的MB的劃分是否大于等于 當前的⑶8,也即是否為16*16模式、16x8模式、8x16模式、8x8模式這幾種模式;如果是,則當 前⑶的2Nx2N模式的MV采取覆蓋當前⑶的對應MB或子塊的運動向量MV,并跳過其他剩余模 式;否則,執行步驟42;其他剩余模式指的是2N*N模式、N*2N模式對稱模式和幀內模式;所有 剩余模式指的是2Nx2N模式和其他剩余模式;
[0055] 步驟42:當當前CU對應的亞宏塊是8x4或4x8模式,則CU對應采用2NxN或Nx2N模式, 同時采用2NxN或Nx2N模式對應運動向量MV,與當前⑶采用merge/skip模式得到的代價比較 后選出最優模式;如果當前CU對應的亞宏塊是4x4模式,則根據H264對應區域的運動向量 MV,分別做縮小范圍運動估計,遍歷剩余模式,最后與merge/skip模式得到的代價比較選出 最優模式;剩余模式指的是2N*N模式、N*2N模式對稱模式。
[0056] 綜上所述,由于采用了上述技術方案,本發明的有益效果是:
[0057] 1.以專利號CN201310173401.2為代表的轉碼方案,往往缺失了最大編碼單元為 CU64的優化設計。由于HEVC的編碼性能提高很大程度上在于比H.264標準更大的編碼單元, 因此該缺失不利于充分發揮轉碼性能。而且該方案主要僅僅判斷了運動向量信息,對H.264 的編碼模式及編碼殘差等分析利用不充分,轉碼優化的設計不足,也有損于轉碼質量。本方 案則充分考慮了 ffiVC編碼標準中最大的編碼單元CU64,并且綜合H. 264的編碼模式、運動向 量、殘差等各種信息,充分考慮了轉碼器的性能和準確性。
[0058] 2.以Eduardo Peixoto等人為代表的基于模式分類或機器學習的轉碼方法,往往 依賴于在線訓練來達到視頻內容的自適應性,雖然提高了率失真質量,但缺點是整個視頻 中需要舍棄不少幀用于訓練,這部分訓練幀不能進行快速轉碼。本發明則是一套不依賴于 在線訓練H. 264解碼數據的,自適應的CTU劃分提前中止方法,包括從上至⑶64下到⑶16均 相應有針對性的優化設計。特別的,對于⑶64和⑶32,在MV近似度等標準基礎上,利用了自 適應的殘差閾值判別CU是否提前終止拆分,組合的措施能在保證編碼效果的基礎上降低復 雜度,并且能類同于在線訓練技術滿足算法對視頻內容的自適應,又避免了用一些視頻幀 單獨做訓練。
[0059] 3. -種依據H. 264運動信息的縮小范圍的HEVC運動搜索設計,包括優化的搜索中 心點的選取和搜索范圍的設定。其中搜索范圍,由于是相對于自定義的核心MV的離散度而 設計,相對現有技術,搜索范圍可以非常的小,從而大大降低運動搜索的復雜度。搜索中心 點方面,則打破了圍繞MVP進行運動搜索的常規,可以有條件的選擇自定義的核心MV作為搜 索起點。眾所周知,在運動估計快速算法中,即使當搜索范圍仍然并不太小的時候,一個更 佳的搜索中心點往往意味著有機會更早的滿足算法收斂條件,使得搜索更容易提前完成。 因此上述兩方面的組合改善,可以大大降低運動搜索的復雜度。
【附圖說明】
[0060]本發明將通過例子并參照附圖的方式說明,其中:
[0061 ]圖la是⑶32下該模式的劃分比例示意圖。
[0062] 圖lb是⑶32對應的4個16x16宏塊示意圖。
[0063]圖lc是符合⑶32縮小范圍運動估計條件的H. 264對應模式例示意圖。
[0064]圖Id是不符合⑶32縮小范圍運動估計條件的H. 264對應模式例示意圖。
[0065]圖2總體設計流程圖。
[0066]圖3是⑶64幀間預測流程圖。
[0067]圖4是⑶32幀間預測流程圖。
[0068]圖5是⑶16幀間預測流程圖 [0069] 圖6是⑶8幀間預測圖。
[0070] 圖7是裝置模塊圖。
【具體實施方式】
[0071] 本說明書中公開的所有特征,或公開的所有方法或過程中的步驟,除了互相排斥 的特征和/或步驟以外,均可以以任何方式組合。
[0072] 本說明書中公開的任一特征,除非特別敘述,均可被其他等效或具有類似目的的 替代特征加以替換。即,除非特別敘述,每個特征只是一系列等效或類似特征中的一個例子 而已。
[0073]本發明相關說明:
[0074] 1、H264結構中,一個視頻圖像編碼后的數據叫做一幀,一幀由一個片或多個片組 成,一個片由一個或多個宏塊(MB)組成,一個宏塊由16*16的yuv數據組成。宏塊MB作為H264 編碼的基本單位。
[0075] 2、四叉樹索引的基本思想是將空間遞歸劃分為不同層次的樹結構。它將已知范圍 的空間等分成四個相等的子空間,如此遞歸下去,直至樹的層次達到一定深度或者滿足某 種要求后停止分割。ffiVC中CTU的四叉樹句法指定了它所屬的亮度和色度CB的尺寸和位置。 四叉樹的根與CTU相關聯。因此,亮度CB的最大尺寸為其所屬的亮度CTB的尺寸。對于一個 CTU來說,其亮度CB和色度CB的劃分標志都是使用的同一個。一個亮度CB通常和兩個色度CB 及它們相關的句法共同組成一個編碼單元(CU)。一個CTB可能只包含一個CU,也可能被劃分 成多個CU,每個CU包含著與之相關聯的預測單元(PU)和變換單元(TU)。
[0076] 決定一個圖像區域是以幀間還是幀內方式進行預測是在CU層進行的。一個PU劃分 結構的根在CU層。根據基本的預測類型,亮度CB和色度CB可以繼續進行劃分并利用其它的 亮度PB和色度PB進行預測。HEVC支持多種PB尺寸,最大為64 X 64到最小4 X 4。
[0077] 3、HEVC將2NxXX作為一種模式,在CU64、CU32、CU16及CU8中N值不同。在Cu64中N值 等于32;CU32中N值等于16;在CU16中N值等于8<XU8中N值等于4。
[0078] 4、正常運動估計,以UMHexag〇nS、EPZS等算法來進行運動搜索。正常運動估計中, 搜索范圍由編碼器指定,有默認值。
[0079] 5、分割標志編碼指的是對當前⑶的分割標志(split_cu_flag)進行編碼后得到的 代價。具體實施部分:
[0080] 本發明主要針對H. 264到HEVC轉碼中的幀間預測加速問題,提出了一種綜合了自 適應的模式映射、運動向量的合理重復利用的技術方案。總體方案如下:
[0081] 先判斷當前H. 264編碼幀是否為I幀,如果是,其轉碼技術不在本文討論之列,可直 接按照標準的級聯轉碼實施。反之,如果H. 264編碼是P幀,則進入本文討論之技術范疇,具 體步驟為:
[0082] 對每一個HEVC的CTU(編碼樹單元),首先判斷當前64x64大小的⑶(簡稱⑶64),所 對應的16個H. 264編碼的16x16宏塊(以下簡稱MB),是否全被H. 264編碼為幀內模式,即I塊。 如果是,說明H. 264無法提供任何該CU64的運動信息,則采取常規HEVC幀間預測方式執行。 否則可以按優化的CU64幀間預測步驟執行。
[0083]設計原理:幀間預測階段,結束后,進行編碼(包括變換編碼及熵編碼等)幀間預測 階段,可能進行一系列⑶64、⑶32、⑶16的四叉樹分割,然后得到⑶8;也有可能提前中止,有 些不用最終深入到⑶8,有些甚至不用分割到⑶16,最理想的有些連⑶32都不用幀間預測, 而是直接將CU64作為1個整體進行編碼;
[0084] 其中CU32幀間預測、CU16幀間預測以及CU8幀間預測得到的最優模式,都只是一個 臨時最優模式,并且CU32幀間預測、CU16幀間預測以及CU8幀間預測都只是為了得到臨時最 優模式,而不進行任何編碼;編碼是在整個Cu64幀間預測結束后得到最優編碼模式,根據最 優編碼模式進行編碼。
[0085] 其中從⑶8臨時最優模式遞歸到⑶16,⑶16選擇臨時最優模式;然后⑶16選擇的臨 時最優模式遞歸到CU32,CU32選擇臨時最優模式,遞歸到CU64,然后CU64選擇最優編碼模式 作為最終的編碼模式。
[0086] 其中,⑶64幀間預測、⑶32幀間預測、⑶16幀間預測、CU8幀間預測可以分為兩類: CU64和CU32的大小超過16x16,由多個H. 264對應的16x16大小的MB組成,為第一類;而CU16 和⑶8直接對應一個H. 264編碼的MB,故為第二類。
[0087]總體來說,第二類優化幀間預測相對直接,大致可以根據H. 264宏塊的編碼模式直 接映射到ffiVC的精神進行。而第一類優化幀間預測需要綜合多個宏塊的編碼信息進行判 斷,因而相對困難。
[0088] (1)CU64 幀間預測:
[0089]在正常情況下,P幀里的Skip編碼模式被選定最多的。由于HEVC的merge/skip模式 有別于1^.264標準,因此為確保率失真優化(抑丨6-(1181:〇1'1:;[011(^1:;[1111231:;[011,簡稱1^)0)質 量,我們總是先執行merge/skip模式。
[0090]接著將判斷⑶64所對應的16個H. 264宏塊,其運動向量是否都對應于同一個參考 幀。如果是,則CU64的預測將有機會得到大幅優化:接下來先判斷16個MB是否全被H. 264編 碼為16x16或Skip模式,如果是,說明每個MB都是各自均勻運動的。接下來判斷這些MB的運 動向量(MV)是否是相近的,如果是則說明全體MB都是一致運動的,這時如果H. 264編碼的殘 差系數幅值之和小于CU64閾值,則說明該CU64的2Nx2N幀間預測模式效果最好已經是大概 率事件,我們就可以根據這些MB的運動向量信息做一個小范圍運動估計,確定2Nx2N模式的 MV,然后直接跳過⑶64的其他模式,將2Nx2N的結果與前面merge/skip的結果比較后選擇最 優模式即可結束。同時,在上述條件下,由于區域內運動一致且MB對應的殘差系數幅值之和 小于Cu64閾值,可以認為CU64這一層的幀間預測結果已經足夠好,不必再進行后續更小的 四叉樹分割。反之,即使16個MB并非全被編碼為16x16或Skip模式,或者這些MB的運動向量 不夠一致,又或者H.264編碼的殘差仍然較大,我們依然可以利用H.264的運動信息,對各個 幀間預測模式只進行縮小范圍運動估計,從而降低復雜度。做完剩余幀間模式后,選擇最佳 模式即可。
[0091 ] 其中MB的運動向量MV相近指的是:定義一個"核心運動向量" coreMV,對所有運動 n 向量M V,如果其總數少于3個,則c 〇 r e M V取為M V的平均,S P HMVrx//1 corcMV.x = , n "否則取為各MV的中值,BPcoreMV. x = median(MV0 ? x,MV1 ? x,…), corcMV.y = ~! .; coreMV.y=median(MVO.y,MVl .y, **?) 〇
[0092]然后衡量運動向量MV相對于核心MV的離散度,即:
[0093] mvx_range =max(mvx_max-coreMV.x,coreMV.x-mvx_min)
[0094] mvy_range =max(mvy_max-coreMV.y,coreMV.y-mvy_min)
[0095] 其中mvx_max=max(MV0? x,MV1 ? x,…),mvx_min=min(MV0 ? x,MVl ? x,…),mvy_max =max(MV0.y,MV1 .y,???),mvy_min=min(MVO.y,MV1 .y,???)
[0096] 如果mvx_range和mvy_range都小于閾值T_mv,則說明MV總體比較一致。優選的,T_ mv = 1 〇
[0097] MB的運動向量MV做一個小范圍運動估計指的是:首先是搜索中心點的確立,常規 處理方式是以HEVC的預測運動向量MVP作為搜索中心點,本方案則增加了一個核心運動向 量coreMV作為候選:將coreMV與MVP比較,取對應SAD值小的作為中心點即可。其次是縮小搜 索范圍,設mv_range=max(mvx_range,mvy_range),若HEVC編碼預設的搜索范圍為SR_ori, 則縮小的搜索范圍SR=min(SR_ori,max(mv_range+SR_pad,SR_min))。其中,SR_pad和SR_ min為自然數,為確保搜索范圍不會過小的一種質量保證因素,優選的,SR_pad=l~2,SR_ min = 2 ~4〇
[0098]當前⑶64所對應的編碼殘差是否小于⑶64閾值指的是基于一種自適應的標準,即 對當前CU64周邊鄰近的CU64對應的H. 264殘差系數幅值之和進行統計平均,從而自適應的 求得⑶64閾值T_res,如果當前⑶64對應的H. 264殘差系數幅值之和小于該閾值,則認為依 據當前H. 264的編碼模式作為HEVC編碼模式的參考已經足夠好。優選的,T_res為Res(⑶64_ above)、Res (CU64_above_left)、Res (CU64_above_right)和Res (CU64_1 eft)的函數,BPT_ res=a*(Res(CU64_above)+Res(CU64_above_left)+Res(CU64_above_right)+Res(CU64_ left))/4。其中,CU64_abo ve、CU64_abo ve_l eft、CU64_above_r i ght 和 CU64_1 eft 分別為當 前⑶64正上方、左上方、右上方和左邊的⑶64,Res函數則求取其輸入參數⑶對應的MB殘差 系數幅值之和,而a為比例系數。優選的,a取值范圍[0.9,1)。當Res(當前CU64)〈T_res時,表 示當前⑶64對應的H. 264殘差小于⑶64閾值。其他⑶32閾值、CU16閾值、求解過程與⑶64閾 值求解過程類似,都指的是對當前CU32、CU16、CU8中CU對應區域進行計算。
[0099] (2)CU32 幀間預測:
[0100] ⑶32的優化幀間預測過程,與⑶64是屬于同一類H. 264的多宏塊映射關系,因此基 本是類似的。主要的不同在于,在CU32這一層,當HEVC劃分為非對稱模式時,部分預測單元 所能對應的已經不是完整的H. 264宏塊,而是子塊級別。例如2NxnU,如圖la為⑶32下該模 式的劃分比例,圖1 b顯示了 CU32對應的4個16x 16宏塊,圖1 c表明當下側的兩個MB為完整的 16xl6/PSkip且上側的兩個MB為水平分割的16x8模式時,能恰好對應于HEVC下CU32的2NxnU 模式,因為此時在2NxnU模式下的上下兩個PU內部,對應H.264除了宏塊的自然邊界(虛線所 示)外,沒有任何多余的實際分割(實線所示)。圖Id則是一個反例,當上側兩個MB為垂直分 害_8x16模式時,無法直接對應于HEVC的2NxnU。因此在本例下,如果4個MB的模式如(圖1 c) 所示,且2NxnU的上PU對應的子塊(即上側兩個MB的兩個上半16x8)參考幀相同,且2NxnU的 下PU對應的子塊(即上側兩個MB的兩個下半16x8,與下側兩個MB)參考幀一致,則可根據 H. 264的MV進行縮小范圍運動估計優化處理。其余類似CU64處理過程的,此處不再贅述。 [0101]當前⑶32所對應的編碼殘差小于⑶32閾值指的是基于一種自適應的標準,即對當 前⑶32周邊鄰近的⑶32對應的H. 264殘差進行統計平均,從而自適應的求得⑶32閾值T_ res,如果當前CU32對應的H. 264殘差小于該閾值,則認為依據當前H. 264的編碼模式作為 HEVC編碼模式的參考已經足夠好。優選的,CU32閾值T_res為Res(CU32_above)、Res(CU32_ above_left)、Res(CU32_above_right)和Res(CU32_left)的函數,BPT_res = a*(Res(CU32_ above)+Res(CU32_above_left)+Res(CU32_above_right)+Res(CU32_left) )/4。其中, 〇]32_&130¥6、〇]32_3130¥6_16代、〇]32_3130¥6_481^和〇]32_16忖分別為當前〇]32正上方、左 上方、右上方和左邊的⑶32,Res函數則求取其輸入參數⑶對應的MB殘差系數幅值之和,而a 為比例系數。優選的,a取值范圍[0.9,1)。當Res(當前CU32)〈T_res時,表示當前CU32對應的 H. 264殘差小于⑶32閾值。
[0102] (3)CU16 幀間預測
[0103] 先處理merge/skip模式,接下來判斷對應的H. 264宏塊是否已經劃分到SubMB(亞 宏塊)級別,也就是說:存在8x8或更小的劃分。如果有這種小的劃分,說明16x16范圍內的運 動不夠一致,因此我們可以跳過CU16其它模式的測試,直接轉到CU8級別的處理。反之,如果 對應MB沒有劃分到SubMB以下,我們可以繼續根據MB的模式進行一些優化。首先看對應MB是 否編碼為PSkip模式,如果是則說明當前CU層次下的Skip模式已經足夠好,我們可以直接略 過剩余模式,并設置不繼續四叉樹分割,以便后面可跳過CU8的處理。如果不是PSkip,而是 幀內模式,則說明當前CU16的幀間模式已經不夠好,我們可以略去其它幀間模式的測試,直 接進行幀內模式的測試。如果既不是PSkip也不是intra模式,則說明是普通的16x16、16x8 或8x16模式,這時我們首先看H. 264的編碼殘差水平如何。如果殘差大于CU16閾值,說明 H. 264的編碼效果尚且不夠好,我們可以令HEVC編碼跳至下一級CU8的處理。反之,我們就可 以直接采用H.264宏塊既有的幀間預測模式及其運動向量,并且不必再考慮下一級CU8的劃 分。
[0104]其中判定當前⑶16所對應的MB編碼殘差是否大于⑶16閾值,同樣是基于一種自適 應的標準,即對當前CU16周邊鄰近的H. 264宏塊殘差進行統計平均,從而自適應的求得CU16 閾值T_res,如果當前CU16對應的H. 264殘差大于該閾值,則認為依據當前H. 264的編碼模式 作為HEVC編碼模式的參考仍然不夠好。優選的,T_res為Res(MB_above)、Res(MB_above_ 1〇;1^1:)、1^8(]\113_&13〇¥6_1'18111:)和1^8(]\113_16;1^1:)的函數,艮口1'_代8 = 0*(1^8(]\113_&13〇¥6)+1^8 (MB_above_left)+Res(MB_above_right)+Res(MB_left) )/4。其中,MB_above、MB_above_ left、MB_above_right和MB_left分別為當前⑶16正上方、左上方、右上方和左邊的宏塊, Res函數則求取輸入參數MB的殘差系數幅值之和,而0為比例系數。優選的,0取值范圍(1.2, I. 5]。當Res(當前CU16)>T_res時,表示當前CU16對應的H.264殘差大于CU16閾值。
[0105] (4)⑶8的幀間預測具體過程:
[0106]首先依然是做merge/skip模式,接著先看當前⑶8所在的H. 264的宏塊模式。如果 MB模式為PSkip,可以直接結束,否則如果是幀內模式,則CU8無法從H. 264宏塊得到任何運 動信息,只能按常規方法處理所有剩余模式。如果兩者都不是,則先判斷MB的劃分是否大于 等于當前的⑶8,也即是否為16xl6、16x8、8xl6、8x8這幾種。如果是,說明在當前⑶8范圍內 運動是整體性的,可以按2Nx2N模式處理,并直接采用MB或子塊對應于當前CU8的MV即可。如 果不是,說明對應MB存在8x4、4x8、4x4這樣的小劃分。由于HEVC在⑶8這一層最小編碼單元 只考慮2Nx2N、2NxN和Nx2N劃分,因此這時,我們先排除4x4,即如果MB只是8x4或4x8模式,我 們相應為HEVC對應模式定為2NxN或Nx2N并采納對應MV即可。反之如果是4x4,我們則不能省 略2NxN或Nx2N模式的測試,只能根據H. 264對應區域的MV,分別做縮小范圍的運動搜索,最 后從中選出最佳模式。
[0107]本發明并不局限于前述的【具體實施方式】。本發明擴展到任何在本說明書中披露的 新特征或任何新的組合,以及披露的任一新的方法或過程的步驟或任何新的組合。
【主權項】
1. 一種自適應的從H264到HEVC的幀間快速轉碼方法,其特征在于包括: 步驟1:輸入原始H264視頻流,并對該視頻進行解碼,提取當前解碼幀的宏塊殘差、編碼 模式、參考幀、運動向量;將HEVC編碼樹單元覆蓋的區域對應至當前解碼幀的各個宏塊; 步驟2:進行CU64幀間預測,得到CU64不分割時的最優模式,然后判斷當前CU64幀間預 測是否可以提前終止,當⑶64對應的各MB參考幀相同、各MB全部是Pskip模式或16*16模式 并且各MB的運動向量MV相近且16個MB對應的殘差系數幅值之和小于⑶64閾值時,則不需要 對CTU進行分割,直接采用CU64不分割時的最優模式作為最優編碼模式,否則,將CTU進行四 叉樹分割,形成4個第一級子單元CU32,對每個CU32分別執行步驟3之后,將所有第一級子單 元CU32幀間預測中當前CU的最優模式時對應的代價連同分割標志編碼代價一起求和,求和 結果與CU64不分割時CU在最優模式時的代價對比,選擇代價小者對應的模式作為當前CU64 最優編碼模式,以CU64最優編碼模式對CTU進行編碼:其中CU64為64*64大小的CU; CU32為 32*32的CU;CU16為16*16的CU;C8為8*8的CU;CU64是將64*64大小的宏塊分割為4個32*32大 小的區域CU32; 步驟3:進行CU32幀間預測,得到CU32不分割時的最優模式;然后判斷當前CU32幀間預 測是否可以提前終止,當當前CU32對應的MB參考幀相同、對應的MB為Skip或16x16模式、4個 MB的運動向量MV相近及4個MB對應的殘差系數幅值之和小于⑶32閾值時,則當前⑶32可以 提前終止,直接以CU32不分割時的最優模式作為CU32的最優模式,然后進行下一個CU32的 幀間預測,否則,進入當前第一級子單元的CU32四叉樹分割,形成4個第二級子單元CU16,對 每個CU16分別執行步驟4之后,將所有第二級子單元CU16幀間預測中當前CU的最優模式時 對應的代價連同分割標志編碼代價一起求和,求和結果與CU32不分割時CU在最優模式時的 代價對比,選擇代價小者對應的模式作為當前CU32的最優模式,然后才進行下一個CU32的 幀間預測; 步驟4:進行CU16幀間預測,得到CU16不分割時的最優模式,然后判斷當前CU16幀間預 測是否可以提前終止,當當前CU16對應MB是PSkip模式或者對應MB不是幀內模式、對應的MB 未劃分為亞宏塊且MB對應的殘差系數幅值之和小于等于CU16閾值時,則當前CU16可以提前 終止,直接以CU16不分割時的最優模式作為CU16的最優模式,然后進行下一個CU16的幀間 預測,否則進入CU16的四叉樹分割,形成4個第三級子單元CU8,對每個CU8分別執行步驟5, 執行步驟5之后,將所有CU8幀間預測中當前CU在最優模式時的代價連同分割標志編碼代價 一起求和,求和結果與當前CU16不分割時CU在最優模式時的代價對比,選擇代價小者對應 的模式作為當前CU16最優模式,然后才進行下一個CU16的幀間預測;CU16進行四叉樹分割 指的是將16*16大小宏塊分給為4個8*8大小的區域CU8; 步驟5:進行CU8幀間預測,然后進行下一個CU8的幀間預測。2. 根據權利要求1所述的一種自適應的從H264到HEVC的幀間快速轉碼方法,其特征在 于所述⑶64幀間預測具體包括: 步驟21:對HEVC編碼樹單元的編碼單元⑶執行merge/skip模式,將HEVC區域的當前⑶ 對應于H264的16個MB,計算16個MB的參考幀是否相同;若參考幀相同,則執行步驟22;否則, 執行步驟23; 步驟22:當16個MB全被H264編碼為16x16或Skip模式、16個MB的運動向量MV相近且判定 當前CU所對應的所有MB對應的殘差系數幅值之和小于CU64閾值時,則根據16個MB的運動向 量信息做一個小范圍運動估計,確定當前CU在為2N*2N模式時的代價,然后直接跳過其他幀 間模式,將當前CU在2Nx2N模式的代價與當前CU執行merge/skip模式得到的代價進行比 較,比較后選擇代價小者對應的模式作為當前CU在不分割時的最優模式;否則,利用H. 264 的運動信息,對其他幀間模式進行縮小范圍運動估計;確定當前CU其他幀間模式的代價,然 后將當前CU在其他幀間模式的代價與當前CU執行merge/skip模式得到的代價進行比較,比 較后選擇代價小者對應的模式作為當前CU在不分割時的最優模式,然后進行CU64四叉樹分 害J; CU64模式包括2N*2N模式和其他幀間模式;其中其他幀間模式包括2N*N模式、N*2N模式 對稱模式及2版111]、2啦11〇、111^21111^2~等非對稱模式 ;其中1]指的是邱,表示小于_勺在編碼 單元CU上部;D表示Down,表示小于N的在編碼單元CU下部;L指的是left,表示小于N的在編 碼單元CU左部;R指的是right,表示小于N的在編碼單元CU右部; 步驟23:對當前CU進行2Nx2N按搜索范圍進行正常運動估計,對其余幀間模式對應的預 測單元PU做判斷,考察每一個PU對應的所有宏塊MB,若宏塊MB的參考幀相同且宏塊MB都是 PSkip或16x16模式;則對CU64幀間預測模塊對應的預測單元PU做小范圍運動估計,否則,進 行正常運動估計,執行步驟24; 步驟24:計算當前CU在所有其余幀間模式和幀內模式的代價后,然后將當前CU在其他 模式的代價、幀內模式的代價對應與當前CU執行merge/skip模式得到的代價進行比較,比 較后選擇代價最小的作為當前CU在不分割時的最優模式,然后進行CU64四叉樹分割。3.根據權利要求1所述的一種自適應的從H264到HEVC的幀間快速轉碼方法,其特征在 于所述⑶32幀間預測具體包括: 步驟211:對HEVC編碼樹單元的編碼單元⑶執行merge/skip模式,將HEVC區域的當前⑶ 對應于H264的4個MB,計算4個MB的參考幀是否相同;若參考幀相同,則執行步驟212;否則, 執行步驟213; 步驟212:當4個MB全被H264編碼為16x16或Skip模式、4個MB的運動向量MV相近且判定 當前CU所對應的所有MB對應的殘差系數幅值之和小于CU32閾值時,則根據4個MB的運動向 量信息做一個小范圍運動估計,確定當前CU在為2N*2N模式時的代價,然后直接跳過其他幀 間模式,將當前CU在2Nx2N模式的代價與當前CU執行merge/skip模式得到的代價進行比較, 比較后選擇代價小者對應的模式作為當前CU在不分割時的最優模式;否則,利用H. 264的運 動信息,對其他幀間模式進行縮小范圍運動估計;確定當前CU其他幀間模式的代價,然后將 當前CU在其他幀間模式的代價與當前CU執行merge/skip模式得到的代價進行比較,比較后 選擇代價小者對應的模式作為當前CU在不分割時的最優模式,然后進行CU32四叉樹分割; ⑶32模式包括2N*2N模式和其他幀間模式;其中其他幀間模式包括2N*N模式、N*2N模式對稱 模式及2版111]、2版11〇、111^21111^2~等非對稱模式 ;其中1]指的是邱,表示小于_勺在編碼單元 CU上部;D表示Down,表示小于N的在編碼單元CU下部;L指的是left,表示小于N的在編碼單 元⑶左部;R指的是right,表示小于N的在編碼單元⑶右部; 步驟213:對當前CU進行2Nx2N按搜索范圍進行正常運動估計,對其余幀間模式對應的 預測單元PU做判斷,考察每一個PU對應的所有宏塊MB及宏塊MB的局部區域,若宏塊MB及宏 ±夬皿8的局部區域的參考幀相同且宏塊MB及宏塊MB的局部區域都是完整劃分;則對CU64幀間 預測模塊對應的預測單元PU做小范圍運動估計,否則,進行正常運動估計,執行步驟214;完 整劃分指的是宏塊MB都是PSkip、16xl6模式,宏塊MB的局部區域的內部不存在MB模式劃分 形成的分界;宏塊MB的局部區域指的是宏塊MB的一部分;; 步驟214:計算當前CU在所有其余幀間模式和幀內模式的代價后,然后將當前CU在其他 模式的代價、幀內模式的代價對應與當前CU執行merge/skip模式得到的代價進行比較,比 較后選擇代價最小的作為當前CU在不分割時的最優模式,然后進行CU32四叉樹分割。4. 根據權利要求1所述的一種自適應的從H264到HEVC的幀間快速轉碼方法,其特征在 于所述⑶16幀間預測具體處理過程是: 步驟31:對當前⑶執行Merge/Skip模式,計算當前⑶對應的MB是否已經劃分到SubMB (亞宏塊)級別,如果是,則跳過其它幀間模式的測試,進行CU16四叉樹分割,將4個CU8中當 前CU在最優模式時的代價連同分割標志編碼代價一起求和,求和結果與CU16不分割時CU在 最優模式時的代價對比,選擇代價小者對應的模式作為當前CU16最優模式;否則,執行步驟 32; 步驟32:若當前CU對應的MB是否編碼為PSkip模式,如果是,則跳過其他幀間模式,以 merge/skip模式作為當前⑶16不分割時的最優模式;如果當前⑶對應的MB不是PSkip,而是 幀內模式,貝1J跳過其他幀間模式,執行幀內模式,與當前CU執行merge/skip模式得到的代價 進行比較,選擇代價較小的作為當前CU在不分割時的最優模式,然后進行CU16四叉樹分割; 如果當前CU對應的MB不是PSkip,也不是幀內模式,則MB為16x16、16x8或8x16模式,執行步 驟33; 步驟33:判斷當前CU對應的MB對應的殘差系數幅值之和是否大于CU16閾值,如果大于 閾值,則進行CU16四叉樹分割;否則,采用H. 264宏塊既有的幀間預測模式作為當前CU16不 分割時的最優模式,同時米用H. 264宏塊既有的運動向量,不進行CUl6其他的幀間模式計 算。5. 根據權利要求1所述一種自適應的從H264到HEVC的幀間快速轉碼方法,其特征在于 CU8幀間預測具體處理過程是: 步驟41:對HEVC編碼樹單元的編碼單元CU執行merge/skip模式,接著先看當前CU所在 的H. 264的宏塊模式;如果當前CU對應的MB模式為PSkip模式,則直接結束;若當前CU對應的 MB是幀內模式,則計算當前CU所有剩余模式的代價,并與當前CU執行執行merge/skip模式 得到的代價進行比較,選擇代價小者對應的模式作為當前CU最優模式;如果當前CU對應的 MB即不是PSkip模式也不是幀內模式,則先判斷當前CU對應的MB的劃分是否大于等于當前 的⑶8,也即是否為16*16模式、16x8模式、8x16模式、8x8模式這幾種模式;如果是,則當前⑶ 的2Nx2N模式的MV采取覆蓋當前CU的對應MB或子塊的運動向量MV,并跳過其他剩余模式;否 貝IJ,執行步驟42;其他剩余模式指的是2N*N模式、N*2N模式對稱模式和幀內模式;所有剩余 模式指的是2Nx2N模式和其他剩余模式; 步驟42:當當前CU對應的亞宏塊是8x4或4x8模式,則CU對應采用2NxN或Nx2N模式,同時 采用2NxN或Nx2N模式對應運動向量MV,與當前CU采用merge/skip模式得到的代價比較后選 出最優模式;如果當前CU對應的亞宏塊是4x4模式,則根據H264對應區域的運動向量MV,分 別做縮小范圍運動估計,遍歷剩余模式,最后與merge/skip模式得到的代價比較選出最優 模式;剩余模式指的是2N*N模式、N*2N模式對稱模式。6. -種自適應的從H264到HEVC的幀間快速轉碼裝置,其特征在于包括: H264解碼模塊,用于對輸入原始H264視頻流進行解碼,提取當前解碼幀的宏塊殘差、編 碼模式、參考幀、運動向量;將HEVC編碼樹單元覆蓋的區域對應至當前解碼幀的各個宏塊; CU64預測模塊,用于進行CU64幀間預測,得到CU64不分割時的最優模式,然后判斷當前 ⑶64幀間預測是否可以提前終止,當⑶64對應的各MB參考幀相同、各MB全部是Pskip模式或 16*16模式并且各MB的運動向量MV相近且16個MB對應的殘差系數幅值之和小于⑶64閾值 時,則不需要對CTU進行分割,直接采用CU64不分割時的最優模式作為最優編碼模式,否則, 將CTU進行四叉樹分割,形成4個第一級子單元⑶32,對每個⑶32通過⑶32預測模塊進行處 理,然后將所有第一級子單元CU32幀間預測中當前CU的最優模式時對應的代價連同分割標 志編碼代價一起求和,求和結果與CU64不分割時CU在最優模式時的代價對比,選擇代價小 者對應的模式作為當前CU64最優編碼模式,以CU64最優編碼模式對CTU進行編碼:其中CU64 為64*64大小的 CU;CU32 為 32*32 的 CU;CU16 為 16*16 的 CU;C8 為 8*8 的 CU;CU64 是將64*64大小 的宏塊分割為4個32*32大小的區域CU32; CU32預測模塊,用于進行CU32幀間預測,得到CU32不分割時的最優模式;然后判斷當前 CU32幀間預測是否可以提前終止,當當前CU32對應的MB參考幀相同、對應的MB為Skip或 16x16模式、4個MB的運動向量MV相近及4個MB對應的殘差系數幅值之和小于⑶32閾值時,則 當前CU32可以提前終止,直接以CU32不分割時的最優模式作為CU32的最優模式,然后進行 下一個CU32的幀間預測,否則,進入當前第一級子單元的CU32四叉樹分割,形成4個第二級 子單元⑶16,對每個⑶16通過⑶16預測模塊進行處理,然后將所有第二級子單元⑶16幀間 預測中當前CU的最優模式時對應的代價連同分割標志編碼代價一起求和,求和結果與CU32 不分割時CU在最優模式時的代價對比,選擇代價小者對應的模式作為當前CU32的最優模 式,然后才進行下一個CU32的幀間預測; CU16預測模塊,用于進行CU16幀間預測,得到CU16不分割時的最優模式,然后判斷當前 CU16幀間預測是否可以提前終止,當當前CU16對應MB是PSkip模式或者對應MB不是幀內模 式、當前CU16對應的MB未劃分為亞宏塊且當前CU16對應的MB對應的殘差系數幅值之和小于 等于⑶16閾值時,則當前⑶16可以提前終止,直接以⑶16不分割時的最優模式作為⑶16的 最優模式,然后進行下一個CU16的幀間預測,否則進入CU16的四叉樹分割,形成4個第三級 子單元⑶8,對每個⑶8通過⑶8預測模塊進行處理,然后將所有⑶8幀間預測中當前⑶在最 優模式時的代價連同分割標志編碼代價一起求和,求和結果與當前CU16不分割時CU在最優 模式時的代價對比,選擇代價小者對應的模式作為當前CU16最優模式,然后才進行下一個 CU16的幀間預測;CU16進行四叉樹分割指的是將16*16大小宏塊分給為4個8*8大小的區域 CU8; CU8預測模塊,用于進行CU8幀間預測,然后進行下一個CU8幀間預測。7.根據權利要求6所述的一種自適應的從H264到HEVC的幀間快速轉碼裝置,其特征在 于所述⑶64幀間預測模塊具體處理過程包括: 步驟21:對HEVC編碼樹單元的編碼單元⑶執行merge/skip模式,將HEVC區域的當前⑶ 對應于H264的16個MB,計算16個MB的參考幀是否相同;若參考幀相同,則執行步驟22;否則, 執行步驟23; 步驟22:當16個MB全被H264編碼為16x16或Skip模式、16個MB的運動向量MV相近且判定 當前CU所對應的所有MB對應的殘差系數幅值之和小于CU64閾值時,則根據16個MB的運動向 量信息做一個小范圍運動估計,確定當前CU在為2N*2N模式時的代價,然后直接跳過其他幀 間模式,將當前CU在2Nx2N模式的代價與當前CU執行merge/skip模式得到的代價進行比較, 比較后選擇代價小者對應的模式作為當前CU在不分割時的最優模式;否則,利用H. 264的運 動信息,對其他幀間模式進行縮小范圍運動估計;確定當前CU其他幀間模式的代價,然后將 當前CU在其他幀間模式的代價與當前CU執行merge/skip模式得到的代價進行比較,比較后 選擇代價小者對應的模式作為當前CU在不分割時的最優模式,然后進行CU64四叉樹分割; ⑶64模式包括2N*2N模式和其他幀間模式;其中其他幀間模式包括2N*N模式、N*2N模式對稱 模式及2啦111]、2啦11〇、111^21111^2~等非對稱模式 ;其中1]指的是邱,表示小于~的在編碼單 元CU上部;D表示Down,表示小于N的在編碼單元CU下部;L指的是Ief t,表示小于N的在編碼 單元⑶左部;R指的是right,表示小于N的在編碼單元⑶右部; 步驟23:對當前CU進行2Nx2N按搜索范圍進行正常運動估計,對其余幀間模式對應的預 測單元PU做判斷,考察每一個PU對應的所有宏塊MB,若宏塊MB的參考幀相同且宏塊MB都是 PSkip或16x16模式;則對CU64幀間預測模塊對應的預測單元PU做小范圍運動估計,否則,進 行正常運動估計,執行步驟24; 步驟24:計算當前CU在所有其余幀間模式和幀內模式的代價后,然后將當前CU在其他 模式的代價、幀內模式的代價對應與當前CU執行merge/skip模式得到的代價進行比較,比 較后選擇代價最小的作為當前CU在不分割時的最優模式,然后進行CU64四叉樹分割。8.根據權利要求6所述的一種自適應的從H264到HEVC的幀間快速轉碼裝置,其特征在 于所述⑶32幀間預測模塊具體處理過程包括: 步驟211:對HEVC編碼樹單元的編碼單元⑶執行merge/skip模式,將HEVC區域的當前⑶ 對應于H264的4個MB,計算4個MB的參考幀是否相同;若參考幀相同,則執行步驟212;否則, 執行步驟213; 步驟212:當4個MB全被H264編碼為16x16或Skip模式、4個MB的運動向量MV相近且判定 當前CU所對應的所有MB對應的殘差系數幅值之和小于CU32閾值時,則根據4個MB的運動向 量信息做一個小范圍運動估計,確定當前CU在為2N*2N模式時的代價,然后直接跳過其他幀 間模式,將當前CU在2Nx2N模式的代價與當前CU執行merge/skip模式得到的代價進行比較, 比較后選擇代價小者對應的模式作為當前CU在不分割時的最優模式;否則,利用H. 264的 運動信息,對其他幀間模式進行縮小范圍運動估計;確定當前CU其他幀間模式的代價,然后 將當前CU在其他幀間模式的代價與當前CU執行merge/skip模式得到的代價進行比較,比較 后選擇代價小者對應的模式作為當前CU在不分割時的最優模式,然后進行CU32四叉樹分 害⑶32模式包括2N*2N模式和其他幀間模式;其中其他幀間模式包括2N*N模式、N*2N模式 對稱模式及2版111]、2啦11〇、111^21111^2~等非對稱模式 ;其中1]指的是邱,表示小于_勺在編碼 單元CU上部;D表示Down,表示小于N的在編碼單元CU下部;L指的是left,表示小于N的在編 碼單元CU左部;R指的是right,表示小于N的在編碼單元CU右部; 步驟213:對當前CU進行2Nx2N按搜索范圍進行正常運動估計,對其余幀間模式對應的 預測單元PU做判斷,考察每一個PU對應的所有宏塊MB及宏塊MB的局部區域,若宏塊MB及宏 ±夬皿8的局部區域的參考幀相同且宏塊MB及宏塊MB的局部區域都是完整劃分;則對CU64幀間 預測模塊對應的預測單元PU做小范圍運動估計,否則,進行正常運動估計,執行步驟214;完 整劃分指的是宏塊MB都是PSkip、16xl6模式,宏塊MB的局部區域的內部不存在MB模式劃分 形成的分界;宏塊MB的局部區域指的是宏塊MB的一部分; 步驟214:計算當前CU在所有其余幀間模式和幀內模式的代價后,然后將當前CU在其他 模式的代價、幀內模式的代價對應與當前CU執行merge/skip模式得到的代價進行比較,比 較后選擇代價最小的作為當前CU在不分割時的最優模式,然后進行CU32四叉樹分割。9. 根據權利要求6所述的一種自適應的從H264到HEVC的幀間快速轉碼裝置,其特征在 于所述⑶16幀間預測模塊具體處理過程包括: 步驟31:對當前⑶執行Merge/Skip模式,計算當前⑶對應的MB是否已經劃分到SubMB (亞宏塊)級別,如果是,則跳過其它幀間模式的測試,進行CU16四叉樹分割,將4個CU8中當 前CU在最優模式時的代價連同分割標志編碼代價一起求和,求和結果與CU16不分割時CU在 最優模式時的代價對比,選擇代價小者對應的模式作為當前CU16最優模式;否則,執行步驟 32; 步驟32:若當前CU對應的MB是否編碼為PSkip模式,如果是,則跳過其他幀間模式,以 merge/skip模式作為當前⑶16不分割時的最優模式;如果當前⑶對應的MB不是PSkip,而是 幀內模式,貝1J跳過其他幀間模式,執行幀內模式,與當前CU執行merge/skip模式得到的代價 進行比較,選擇代價較小的作為當前CU在不分割時的最優模式,然后進行CU16四叉樹分割; 如果當前CU對應的MB不是PSkip,也不是幀內模式,則MB為16x16、16x8或8x16模式,執行步 驟33; 步驟33:判斷當前CU對應的MB對應的殘差系數幅值之和是否大于CU16閾值,如果大于 閾值,則進行CU16四叉樹分割;否則,采用H. 264宏塊既有的幀間預測模式作為當前CU16不 分割時的最優模式,同時米用H. 264宏塊既有的運動向量,不進行CUl6其他的幀間模式計 算。10. 根據權利要求6所述的一種自適應的從H264到HEVC的幀間快速轉碼裝置,其特征在 于所述在于CU8幀間預測模塊具體處理過程是: 步驟41:對HEVC編碼樹單元的編碼單元CU執行merge/skip模式,接著先看當前CU所在 的H. 264的宏塊模式;如果當前CU對應的MB模式為PSkip模式,則直接結束;若當前CU對應的 MB是幀內模式,則計算當前CU所有剩余模式的代價,并與當前CU執行執行merge/skip模式 得到的代價進行比較,選擇代價小者對應的模式作為當前CU最優模式;如果當前CU對應的 MB即不是PSkip模式也不是幀內模式,則先判斷當前CU對應的MB的劃分是否大于等于當前 的⑶8,也即是否為16*16模式、16x8模式、8x16模式、8x8模式這幾種模式;如果是,則當前⑶ 的2Nx2N模式的MV采取覆蓋當前CU的對應MB或子塊的運動向量MV,并跳過其他剩余模式;否 貝IJ,執行步驟42;其他剩余模式指的是2N*N模式、N*2N模式對稱模式和幀內模式;所有剩余 模式指的是2Nx2N模式和其他剩余模式; 步驟42:當當前CU對應的亞宏塊是8x4或4x8模式,則CU對應采用2NxN或Nx2N模式,同時 采用2NxN或Nx2N模式對應運動向量MV,與當前CU采用merge/skip模式得到的代價比較后選 出最優模式;如果當前CU對應的亞宏塊是4x4模式,則根據H264對應區域的運動向量MV,分 別做縮小范圍運動估計,遍歷剩余模式,最后與merge/skip模式得到的代價比較選出最優 模式;剩余模式指的是2N*N模式、N*2N模式對稱模式。
【文檔編號】H04N19/176GK105959611SQ201610554211
【公開日】2016年9月21日
【申請日】2016年7月14日
【發明人】史方, 隆剛, 王標
【申請人】同觀科技(深圳)有限公司