王念之
(西安郵電大學 西安 710121)
對于上一代視頻編解碼技術H.264,H.265/HEVC在繼承其基本編碼結構的前提下,加入了許多新技術。如H.265/HEVC舍棄了前一代中以宏塊作為編碼單元,采用了樹形編碼結構,在此基礎下定義了編碼樹單元(CTU)、編碼單元(CU)、預測單元(PU)、變換單元(TU)等新型結構單元;并且引入了運動合并技術(Merge),先進的位移矢量預測技術AMVP(Advanced Motion Vector Prediction)等技術,來提高預測的準確度;擴展了幀內(nèi)預測方向。同時引入了樣點自適應補償技術SAO(Sample Adaptive Offset),以此來提高重建圖像的質(zhì)量。在碼率方面,H.265/HEVC比H.264降低了約50%。
近年來,國內(nèi)外的許多學者都不斷的在探索優(yōu)化HEVC編碼過程,這些研究主要從兩個方向展開,包括CU(編碼模塊)的快速劃分以及PU(預測模塊)模式的選擇。有文獻提出了一種基于DCT的快速幀內(nèi)判決算法(Outlier-based Fast Intra Mode Decision,OIMD)。OIMD算法利用TCM(Transparent Composite Model)識別的異常值快速決定是否分割當前編碼單元(CU),減少了幀內(nèi)預測模式數(shù)。另有文獻提出了一種利用圖像紋理復雜度來進行快速CU劃分的方法。首先根據(jù)CTU及其子塊紋理復雜度的關系,排除不滿足劃分條件的單元。而后根據(jù)相鄰PU的尺寸大小,直接選擇跳過尺寸關系不滿足順序排列的層。以4k視頻為編碼對象時,該算法提升了46.8%的編碼速率。
本文提出一種優(yōu)化方案:在原H.265/HEVC編碼標準實現(xiàn)平臺X.265的幀內(nèi)編碼過程中加入一個預處理塊,如圖1所示,其作用:在正式進行幀內(nèi)編碼之前先排除掉一些出現(xiàn)概率較低的幀內(nèi)預測模式以及CTU劃分方式的組合,從而在盡可能保證解碼圖像質(zhì)量的前提下,降低幀內(nèi)預測編碼的計算復雜度和儲存資源使用,最終達到優(yōu)化的目的。
預處理塊的主要工作流程如圖1所示。
圖1 預處理塊工作流程
本文提出一種優(yōu)化的圖像紋理測度計算方法,具體步驟如下:
1)首先定義一個值Pe(x,y)來表示圖像中x,y位置上的像素數(shù)值;
2)計算水平方向的紋理測度SA DHOR,如圖2所示。
圖2 水平方向紋理測度計算
由于相鄰的像素之間有很強的關聯(lián)性,因此采取每三列計算一次像素的平均值的方法,在不損失編碼性能的前提下提高了編碼速度,其計算公式如下:
其中i,y表示像素的坐標值;
3)計算垂直方向的紋理測度S A DVER,如圖3所示。
圖3 垂直方向紋理度計算
對于垂直紋理測度同樣采用每三行計算一次平均值的方式,其公式如下:
4)定義一個當前編碼塊的參考像素平均值AV GBLK,將其作為一個離散度計算的標準,分別用水平和垂直方向的紋理測度與其進行離散度計算,其計算公式如下:
5)對待編碼區(qū)域中所有原始像素做SAD計算(取差值的絕對值后求和),得到局部紋理測度SA DTX:
在得到上述紋理測度計算方法后,以輸入的一個CTU開始,首先將其全部劃分成為8×8大小的塊,按照上一節(jié)中提出的方式計算每個8×8塊在水平和垂直方向上以及局部的紋理測度,按照這三個參數(shù)出現(xiàn)的次數(shù)確定最終的局部紋理特征。我們先將輸入的一個CTU全部劃分成為8×8塊,開始計算每個8×8塊S ADTX、S A DHOR以及SA DVER的值,比較這三個值的大小,考慮到預測模式可能性的多樣化,此處可以將三個值的大小對比分為四種可能性:
1)S A DTX>SA DHOR S ADHOR>SA DVER,記為A組;
2)S A DTX>SA DVER S A DVER>SADHOR,記為B組;
3)S A DHOR>SADVER,記為C組;
4)S A DVER>S ADHOR,記為D組。
隨后使用數(shù)個1920×1080視頻序列(BQSquare,BasketballDrill,Bigbuckbunny,BQTerrace),在QP一定的情況下,對A~D四種組合所得的最優(yōu)模式在不同序列的8×8塊中作為最優(yōu)預測模式出現(xiàn)的概率進行統(tǒng)計,給出測試結果。
表1 相同QP下預測模式出現(xiàn)概率統(tǒng)計表
由表中數(shù)據(jù)可知,此預測模式選擇方法預測水平和垂直方向上的預測模式,在四個視頻序列中平均命中概率超過75%,可以認為能正確的給出圖像的紋理方向并由此得到正確的預測模式。而當圖像的紋理較為復雜時,大概率會選擇角度模式作為最佳預測模式時,就需要接貨組其他判定條件來完成紋理度的判斷和預測模式的選擇。
圖4 幀內(nèi)預測角度模式及其對應的偏移量
由圖中的各種角度模式偏移量可以大致將33種模式簡化分為4組:
其余角度均可看做是近似于水平或者垂直方向,因此不做分組。
結合本文之前的水平以及垂直方向紋理測度的計算方法,給出上述四種分組的紋理測度計算公式:
目前我們得到了總計七個紋理測度值,將其加入到之前的預測模式選擇算法中,可得到完整的流程。
1)首先計算S ADTX和SA D+30、SAD-30的值,如果SA D+30>SADTX或者SAD-30>S ADTX,則將±30度所對應的所有候選模式加入可能合集中{2,3,33,34,17,18,19},結束選擇;否則進行步驟2);
2)若SA D+30和SA D-30的值均小于或等于5,則說明紋理度不存在與±30度的合集中,進行步驟3),否則進行步驟4);
3)計算剩余所有的紋理測度的值,得到所有特征值,進行排序,得到最優(yōu)預測模式選擇合集;
4)當SA D+30或SA D-30中有一個的值大于5,記錄其值,并舍棄另一個值,進入步驟3)。
為了測試本文提出的算法的優(yōu)化程度,本節(jié)將通過峰值信噪比、比特率以及該模塊所需編碼時間三個參數(shù)對其進行測試分析。在H.265/HEVC編碼標準實現(xiàn)平臺X.265中,將本算法添加進幀內(nèi)預測部分,并刪除相關原算法,選擇出五組不同的測試序列在不同的QP環(huán)境下進行分測試(FourPeople,ParkScene,BQSquare,Traffic,Basketball Drill)得出以下結論。
表2 本文算法與HEVC原幀內(nèi)編碼部分算法性能對比
由表中數(shù)據(jù)可得出結論:本文算法相較原HEVC幀內(nèi)編碼模塊PSNR平均降低0.294dB,比特率平均升高2.098%,平均降低60.94%的編碼時間。
綜上所述,本文所提出的優(yōu)化過的幀內(nèi)預測模式選擇算法相比于原算法,在基本保證不降低編碼效率的同時,較大幅度地提升了編碼速度。