一種適用于hevc標(biāo)準(zhǔn)的幀內(nèi)預(yù)測塊大小劃分的快速算法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于數(shù)字高清視頻壓縮編解碼技術(shù)領(lǐng)域,具體涉及一種適用于ffiVC視頻 編碼標(biāo)準(zhǔn)的、加速幀內(nèi)預(yù)測塊大小劃分過程的快速算法。
【背景技術(shù)】
[0002] 作為下一代視頻編解碼標(biāo)準(zhǔn),HEVC (High Efficiency Video Coding)是于 2013 年 由國際電信組織(ITU)和運動圖像專家組(MPEG)聯(lián)合成立的組織JCTVC所提出。其目標(biāo) 是,與上一代標(biāo)準(zhǔn)H. 264/AVC相比,在相同的視覺效果的前提下,比特率減少50%。
[0003] 在HEVC中,一幀圖像會劃分成一個個IXU塊,其大小可以為64x64,也可以為 32x32或其他。然后LCU會依據(jù)四叉樹劃分方法劃分成更小的編碼單元(CU),其大小從8x8 到64x64,且不大于IXU大小。與H. 264/AVC類似,HEVC使用基于塊的預(yù)測變換編碼方式, 使用幀內(nèi)預(yù)測的方式壓縮視頻的空間冗余。ffiVC幀內(nèi)預(yù)測過程基于預(yù)測單元(PU)進行預(yù) 測,對大小為16xl6、32x32、64x64的CU塊,PU與CU大小相等,當(dāng)CU塊大小為8x8時,PU大 小可在4x4和8x8中選擇,因此PU塊有4x4、8x8、16xl6、32x32、64x64共五種可選大小(且 不大于LCU大小)。在幀內(nèi)預(yù)測過程中需要尋找最佳的塊大小劃分方式以獲得最佳性能,尋 找最佳塊大小劃分方式的過程稱為塊大小劃分(partition,參見圖1)。
[0004] 在標(biāo)準(zhǔn)參考軟件HM10. 0中,幀內(nèi)預(yù)測模塊的塊大小劃分過程通過迭代完成。首先 計算出4x4塊的優(yōu)化結(jié)果,接著計算出8x8塊的優(yōu)化結(jié)果,最后將四個4x4塊的結(jié)果之和與 其組成的8x8塊進行比較,取更為優(yōu)化的結(jié)果。以此類推,可以得到16xl6、32x32、64x64塊 的比較結(jié)果,最終得到當(dāng)前LCU的最優(yōu)塊大小劃分方案。這樣的塊大小劃分方式運算量極 大,不適合硬件實現(xiàn),因此需要引入快速算法加速塊大小劃分過程。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于提出一種可適用于HEVC標(biāo)準(zhǔn)的幀內(nèi)預(yù)測塊大小劃分的快速算 法。
[0006] HEVC幀內(nèi)預(yù)測單元有5種可選塊大小,即4x4、8x8、16xl6、32x32以及64x64。本 發(fā)明通過引入梯度算法,可以大致獲得當(dāng)前PU的圖像復(fù)雜度,基于這一圖像復(fù)雜度信息可 以大致判斷最有可能的塊大小劃分方式,從而大大加速塊大小劃分過程。具體步驟如下: (1) 首先,在原始視頻流中,把一幀圖像劃分為若干ffiVC標(biāo)準(zhǔn)的最大編碼單元(LCU), 將最大編碼單元(LCU)內(nèi)部可進行操作的點進行梯度計算,得到當(dāng)前點周邊像素值的變化 情況; (2) 然后,將某一預(yù)測單元(PU)內(nèi)所有點的梯度計算結(jié)果相加,得到當(dāng)前預(yù)測單元 (PU)的圖像復(fù)雜度; (3) 最后,根據(jù)計算得到的圖像復(fù)雜度進行塊大小劃分。
[0007] 本發(fā)明中,所述HEVC標(biāo)準(zhǔn)的最大編碼單元(IXU),其大小可以為64x64,也可以為 32x32,或其他。
[0008] 本發(fā)明中,所述HEVC標(biāo)準(zhǔn)的幀內(nèi)預(yù)測單元(PU),其大小為4x4、8x8、16x16、32x32 或64x64中的一種,且不大于IXU大小。
[0009] 本發(fā)明中,所述的梯度計算,是基于sobel算子的計算,或者是基于其他類型的梯 度計算,獲得當(dāng)前像素點在X、Y兩個不同方向上的梯度值。
[0010] 本發(fā)明中,計算獲得的圖像復(fù)雜度越高,即圖像越復(fù)雜,則塊大小劃分結(jié)果越趨向 于小塊,反之則趨向于大塊。
【附圖說明】
[0011]圖1 :HEVC幀內(nèi)預(yù)測的塊大小劃分。其中,(a)為劃分示例(b)為相對應(yīng)的四叉樹 劃分結(jié)構(gòu)。
[0012] 圖2 :基于sobel算子的梯度計算。
【具體實施方式】
[0013] 下面結(jié)合附圖,對本發(fā)明做進一步的描述。
[0014] 本發(fā)明提出的適用于HEVC標(biāo)準(zhǔn)的幀內(nèi)預(yù)測塊大小劃分的快速算法,使用了梯度 算法,大大加速了幀內(nèi)預(yù)測塊大小劃分的速度。
[0015] 首先,進行梯度計算。這一步期望獲得當(dāng)前點在x及y方向上的梯度變化情況。 [0016]如附圖2所示,以基于sobel算子的梯度計算為例,為獲得在X方向的梯度變化情 況(Gx),將當(dāng)前像素點左側(cè)和右側(cè)的3個點像素值按1:2:1加權(quán)后相減,得到X方向的梯度 變化情況,同理,為得到Y(jié)方向的梯度變化情況(Gy),可將上下兩側(cè)3個點像素值按1:2:1 加權(quán)后相減。Gx及Gy的計算公式如公式(1)所示。
[0017]
式中,Px,y代指不同像素點的數(shù)值,下標(biāo)i,j分別代表其在X、Y軸方向上與中心點的 位置關(guān)系。
[0018] 接著,對某一個預(yù)測單元PU,將其中所有點的梯度值相加得到當(dāng)前PU的圖像復(fù)雜 度(K),其公式如公式(2)所示。
[0019] 最后,依據(jù)圖像復(fù)雜度信息,得出最有可能的塊大小劃分方法。這里的判斷可以根 據(jù)經(jīng)驗閾值完成,下面給出一種基于經(jīng)驗閾值,從大塊到小塊依次判斷的劃分方法。
[0020] 以64x64塊為例,如果64x64塊中每一個32x32子塊的圖像復(fù)雜度均小于某一閾 值,則可認為這個64x64塊圖像復(fù)雜度較低,不需要劃分,此時選用64x64作為最有可能的 塊大小劃分;若不滿足,則將64x64塊劃分為4個32x32子塊,并對四個32x32子塊依次進 行圖像復(fù)雜度分析。依次類推,可以完成32x32、16xl6、8x8塊的劃分選擇,并最后得到最有 可能的塊大小劃分方案。這里的經(jīng)驗閾值與圖像特性相關(guān),一個可能的經(jīng)驗閾值方案如下 表所示。
[0021] 這樣,通過梯度算法,可以快速得出PU的圖像復(fù)雜度,繼而依據(jù)圖像復(fù)雜度數(shù)據(jù) 可以完成一個最大編碼單元(LCU)的塊大小劃分,從而大大加速幀內(nèi)預(yù)測的塊大小劃分過 程。
【主權(quán)項】
1. 一種適用于HEVC標(biāo)準(zhǔn)的幀內(nèi)預(yù)測塊大小劃分的快速算法,HEVC幀內(nèi)預(yù)測單元有5 種可選塊大小,即4x4、8x8、16xl6、32x32、64x64,其特征在于引入梯度算法,大致獲得當(dāng)前 預(yù)測單元(PU)的圖像復(fù)雜度信息,基于這一復(fù)雜度信息大致判斷最有可能的塊大小劃分方 案,從而大大加速模式判決過程;具體步驟如下: (1) 首先,在原始視頻流中,把一幀圖像劃分為若干HEVC標(biāo)準(zhǔn)的最大編碼單元(LCU), 將最大編碼單元(LCU)內(nèi)部可進行操作的點進行梯度計算,得到當(dāng)前點周邊像素值的變化 情況; (2) 然后,將某一預(yù)測單元(PU)內(nèi)所有點的梯度計算結(jié)果相加,得到當(dāng)前預(yù)測單元 (PU)的圖像復(fù)雜度; (3) 最后,根據(jù)計算得到的圖像復(fù)雜度進行塊大小劃分。2. 根據(jù)權(quán)利要求1所述的快速算法,其特征在于所述HEVC標(biāo)準(zhǔn)的最大編碼單元 (LCU),其大小為32x32或64x64中的一種。3. 根據(jù)權(quán)利要求1或2所述的快速算法,其特征在于所述HEVC標(biāo)準(zhǔn)的預(yù)測單元(PU), 其大小為4x4、8x8、16xl6、32x32、64x64中的一種,且預(yù)測單元必定小于編碼單元。4. 根據(jù)權(quán)利要求3所述的快速算法,其特征在于所述的梯度計算,是基于sobel算子的 計算,或者是基于其他類型的梯度計算,獲得當(dāng)前像素點在X、Y兩個不同方向上的梯度值。5. 根據(jù)權(quán)利要求4所述的快速算法,其特征在于所述基于sobel算子的梯度計算步驟 為: 將當(dāng)前像素點左側(cè)和右側(cè)的3個點像素值按1:2:1加權(quán)后相減,得到X方向的梯度變 化情況Gx,將當(dāng)前像素點上下兩側(cè)3個點像素值按1:2: 1加權(quán)后相減,得到Y(jié)方向的梯度 變化情況Gy,Gx及Gy的計算公式如公式(1)所示:式中,Px,y指不同像素點的數(shù)值,下標(biāo)i,j分別代表其在X、Y軸方向上與中心點的位 置關(guān)系; 對某一個預(yù)測單元PU,將其中所有點的梯度值相加得到當(dāng)前的圖像復(fù)雜度K,其公 式如公式(2)所示:最后,依據(jù)圖像復(fù)雜度信息,確定最有可能的塊大小劃分方法。6. 根據(jù)權(quán)利要求5所述的快速算法,其特征在于所述依據(jù)圖像復(fù)雜度信息,確定最有 可能的塊大小劃分方法,判斷的根據(jù)為經(jīng)驗閾值,具體如下: 如果64x64塊中每一個32x32子塊的圖像復(fù)雜度均小于某一閾值,則認為這個64x64 塊圖像復(fù)雜度較低,不需要劃分,此時選用64x64作為最有可能的塊大小劃分;若不滿足, 則將64x64塊劃分為4個32x32子塊,并對四個32x32子塊依次進行圖像復(fù)雜度分析;依次 類推,可以完成32x32、16xl6、8x8塊的劃分選擇,并最后得到最有可能的塊大小劃分方案; 這里的經(jīng)驗閾值與圖像特性相關(guān),一組可行的經(jīng)驗閾值如下表所示:
【專利摘要】本發(fā)明屬于數(shù)字高清視頻壓縮編解碼技術(shù)領(lǐng)域,具體為一種適用于HEVC標(biāo)準(zhǔn)的幀內(nèi)預(yù)測塊大小劃分的快速算法。在HEVC標(biāo)準(zhǔn)中,可以選擇使用幀內(nèi)預(yù)測的方式進行視頻壓縮,幀內(nèi)預(yù)測單元大小有4x4、8x8、16x16、32x32、64x64五種,在編碼時需要根據(jù)圖像選擇合適的塊大小劃分方式。本發(fā)明基于最大編碼單元進行處理,首先是梯度計算:將LCU內(nèi)部可進行操作的點進行梯度計算;接著將某一預(yù)測單元塊范圍內(nèi)所有點梯度計算結(jié)果相加得到這一預(yù)測單元的圖像復(fù)雜度;最后根據(jù)計算獲得的每一個預(yù)測單元的復(fù)雜度值進行塊大小劃分。本發(fā)明通過快速算法得到預(yù)測單元的最優(yōu)塊大小劃分方式,加速了幀內(nèi)預(yù)測塊大小劃分過程。
【IPC分類】H04N19/176, H04N19/119
【公開號】CN104883566
【申請?zhí)枴緾N201510277356
【發(fā)明人】范益波, 陸彥珩, 程魏, 黃磊磊, 曾曉洋
【申請人】復(fù)旦大學(xué)
【公開日】2015年9月2日
【申請日】2015年5月27日