一種用于視頻編碼的碼率估計方法
【專利摘要】本發明公開一種用于視頻編碼的碼率估計方法,包括:S1.將變換單元劃分成多個4x4的系數子塊,提取系數子塊的特征參數;S2.根據特征參數,對系數子塊進行分組;S3.根據分組,計算系數子塊產生的編碼長度Rcoeff;S4.根據采用哥倫布編碼的系數個數,計算系數子塊最優編碼總長度Ropt;S5.根據采用哥倫布編碼的最大系數,計算哥倫布編碼補償值Rc;S6.重復步驟S1~S5,計算所有系數子塊的編碼總長度Rtotal;S7.計算LastXY編碼長度Rlastxy;S8.計算輔助信息編碼總長度Rside;S9.根據Rtotal、Rlastxy和Rside,計算變換單元的碼率估計值R。
【專利說明】一種用于視頻編碼的碼率估計方法
【技術領域】
[0001]本發明涉及視頻處理【技術領域】,特別涉及一種用于視頻編碼的碼率的估計方法。【背景技術】
[0002]高效視頻編碼(High Efficiency Video Coding, HEVC)標準采用靈活的編碼塊劃分方法,針對不同的目的,將待壓縮圖像劃分成不同的像素單元,包括編碼單元(CodingUnit, CU)、變換單兀(Transform Unit, TU)和預測單兀(Prediction Unit, PU)。在編碼過程中,編碼器必須嘗試所有的⑶/PU/TU組合,來尋找最佳的編碼方式,即具有最小的率失真代價(Rate-Distortion Cost, RD Cost)的編碼方式,此過程稱為率失真優化(Rate-Distortion Optimization, RDO)。RD Cost是同時考慮編碼的碼率和失真這兩個對立事物之后得出的用來評估編碼效率的指標。在HEVC的參考軟件HM中,碼率R是通過對殘差進行變換、量化之后的系數以及輔助信息進行熵編碼后獲得的,失真D是通過將原始圖像塊與通過反量化、反變換重建出來的圖像塊求差獲得的,RD Cost通過公式
[0003]RD Cost=D+入 R
[0004]求得。在HEVC標準中,為了提高編碼效率,熵編碼器采用自適應二元算數編碼(CABAC)。CABAC雖然具有較高的壓縮率,但編碼過程較復雜,計算非常耗時。如果采用HEVC參考軟件中的做法,直接使用CABAC熵編碼器來計算碼率R,由于RDO過程會搜索各種編碼模式,反復進行復雜的CABAC熵編碼過程使得編碼速度非常慢。
【發明內容】
[0005](一)解決的技術問題
[0006]本發明解決的技術問題是目前熵編碼器采用自適應二元算數編碼(CABAC),直接使用CABAC熵編碼器來計算碼率R,由于RDO過程會搜索各種編碼模式,反復進行復雜的CABAC熵編碼過程使得編碼速度非常慢。
[0007](二)技術方案
[0008]為了解決上述問題,本發明提出一種用于視頻編碼的碼率估計方法,該方法包括:
[0009]S1.將變換單元TU劃分成多個4x4的系數子塊,提取系數子塊的特征參數;
[0010]S2.根據特征參數,對系數子塊進行分組;
[0011]S3.根據分組,計算系數子塊產生的編碼長度Rrarff ;
[0012]S4.根據采用哥倫布編碼的系數個數,計算系數子塊最優編碼總長度Rtjpt ;
[0013]S5.根據采用哥倫布編碼的最大系數,計算哥倫布編碼補償值R。;
[0014]S6.重復步驟SI?S5,計算所有系數子塊的編碼總長度Rtotal ;
[0015]S7.計算 LastXY 編碼長度 Rlastxy ;
[0016]S8.計算輔助信息編碼總長度Rside ;
[0017]S9.將Rtotal、Rlastxy和Rside求和,計算整個變換單元熵編碼產生的碼率估計值R。[0018]其中,在步驟S1中,所述特征參數包括:
[0019]ηnz:系數子塊中非零系數的個數;
[0020]ηz:在第一個非零系數之后,零系數的個數;
[0021]ηlz:在第一個非零系數之前,零系數的個數;
[0022]ηzb零系數塊”個數,所述零系數塊為連續的若干個零系數;
[0023]ηo:在前8個非零系數中,非零系數為I的個數;
[0024]ηgl:在前8個非零系數中,非零系數大于I的個數。
[0025]其中,在步驟S2中,所述分組包括:
[0026]S21.設置參數CBFb和CBFp判斷系數子塊下方子塊是否包含非0系數,若包含,則CBFb=I,否則CBFb=O ;判斷系數子塊右方子塊是否包含非0系數,若包含,則CBF^l,否則,CBFr=O ;
[0027]S22.判斷系數子塊的屬性,若系數子塊為亮度子塊,則執行步驟S23,若系數子塊為色度子塊,則執行步驟S24;
[0028]S23.按照圖3所示流程進行分組;
[0029]S24.按照圖4所示流程進行分組。
[0030]其中,在步驟S3中,所述RMeff的計算包括:
[0031]設HiJk為常數,其中0≤i≤1,1≤j≤13,0≤k≤5。
[0032]S31.判斷系數子塊的屬性,若系數子塊為亮度子塊,則設i=0 ;若系數子塊為色度子塊,則設i=l ;
[0033]S32.判斷系數子塊所在組的組號,若組號為1,則判斷11。=1是否成立,若成立,則^coeff-Hij (|,否則 Rcoeff-Hi, 1; 1 ;
[0034]若組號為3 =Rcoeff=Hi,3,0X;
[0035]若組號為j,其中j關I且j關3,則
[0036]Rcoeff-Hi,j,” …Hi,丄5] X [ nnz,rIz? rUz, nzb,n。,ngl]。
[0037]其中,在步驟S4中,所述R_的計算包括:
[0038]設X為被編碼系數,定義最優編碼長度函數f(x):
[0039]
【權利要求】
1.一種用于視頻編碼的碼率估計方法,其特征在于,該方法包括: S1.將變換單元TU劃分成多個4x4的系數子塊,提取系數子塊的特征參數; S2.根據特征參數,對系數子塊進行分組; S3.根據分組,計算系數子塊產生的編碼長度Rc^ff; S4.根據采用哥倫 布編碼的系數個數,計算系數子塊最優編碼總長度R_; S5.根據采用哥倫布編碼的最大系數,計算哥倫布編碼補償值R。; S6.重復步驟SI~S5,計算所有系數子塊的編碼總長度Rttrtal; S7.計算LastXY編碼長度Rlastxy; S8.計算輔助信息編碼總長度Rside; S9.將Rt(rtal、Rlastxy和Rside求和,計算整個變換單元熵編碼產生的碼率估計值R。
2.根據權利要求1所述的方法,其特征在于,在步驟SI中,所述特征參數包括: nnz:系數子塊中非零系數的個數; nz:在第一個非零系數之后,零系數的個數; nlz:在第一個非零系數之前,零系數的個數; nzb零系數塊”個數,所述零系數塊為連續的若干個零系數; n。:在前8個非零系數中,非零系數為I的個數; ngl:在前8個非零系數中,非零系數大于I的個數。
3.根據權利要求2所述的方法,其特征在于,在步驟S2中,所述分組包括: S21.設置參數CBFb和CBFp判斷系數子塊下方子塊是否包含非O系數,若包含,則CBFb=I,否則CBFb=O ;判斷系數子塊右方子塊是否包含非0系數,若包含,則CBF^l,否則,CBFr=O ; S22.判斷系數子塊的屬性,若系數子塊為亮度子塊,則執行步驟S23,若系數子塊為色度子塊,則執行步驟S24; S23.按照圖3所示流程進行分組; S24.按照圖4所示流程進行分組。
4.根據權利要求1所述的方法,其特征在于,在步驟S3中,所述R_ff的計算包括: 設Huk為常數,其中0≤i≤1,1≤j≤13,0≤k≤5。 S31.判斷系數子塊的屬性,若系數子塊為亮度子塊,則設i=0;若系數子塊為色度子塊,則設i=l ; S32.判斷系數子塊所在組的組號,若組號為1,則判斷1=1是否成立,若成立,則^coeff-Hij (|,否則 Rcoeff-Hi, 1; 1 ; 若組號為3:
Rcoeff =Hij3j0X H Z+Hi, 3,1 ; 若組號為j,其中j古I且j古3,則
Rcoeff-[Hi,丄O,Hi,j,” …HiJ5] X [ r[nz, nz, rIizj rIzb, r10, rIg1]。
5.根據權利要求1所述的方法,其特征在于,在步驟S4中,所述R_的計算包括: 設X為被編碼系數,定義最優編碼長度函數f(x):
6.根據權利要求1所述的方法,其特征在于,在步驟S5中,所述R。的計算包括: 設系數子塊中進行哥倫布編碼的最大系數為x_,F1~F4為常數,其中F^F2JXF4,則
7.根據權利要求1所述的方法,其特征在于,在步驟S6中,所述Rtotal的計算包括: 設當前變換單元TU中共有m個4x4子塊,其中第i個系數子塊的1?。。@、1?_、艮、Hnz值分力1J 為 Rc()eff—1、R0pt_1、Re—1、nz_i,則
8.根據權利要求1所述的方法,其特征在于,在步驟S7中,所述Rlastxy的計算包括: 定義函數h(x):
9.根據權利要求1所述的方法,其特征在于,在步驟S8中,所述Rside的計算包括: 設量化參數為QP^ i種輔助信息的第j位值為v(i,j), Mi;Jj0j0,Mi;J,0;1,Mi;J,1;0,Mi;J,1;1為常數,則
【文檔編號】H04N19/169GK103686176SQ201310744117
【公開日】2014年3月26日 申請日期:2013年12月30日 優先權日:2013年12月30日
【發明者】劉振宇, 郭三川, 汪東升 申請人:清華大學, 華為技術有限公司