羅 瑜
(陜西中醫藥大學基礎醫學院 西安 712046)
2019 年,中國電信發布的《中國電信8k 智能機頂盒白皮書20191121》明確提出對8K 視頻的要求。在市場需求逐漸明確的同時,視頻編解碼組織也推出了對8K 分辨率的視頻編解碼標準[1],如AV1、VVC 和AVS3 等。同年,5G 技術得到了大規模發展,為大量數據的實時無線傳輸提供了技術保障。隨著“市場+技術”的驅動,視頻圖像的主流分辨率從4K 發展到8K。
圖像分辨率的增大直接增加了DDR 的讀寫需求,為了不降低圖像主觀性能質量的同時有效降低視頻帶寬,基于幀存技術[2-4]的輕量級視頻壓縮技術被提出,包括無損壓縮[5-7]和有損壓縮[8-9]。相對無損壓縮技術,有損壓縮增加了視頻殘差的量化環節,即在盡量降低圖像峰值信噪(Peak signal to noise ratio, PSNR)的同時,盡可能地提升壓縮效率[10-11]。在該研究中,內容感知自適應量化的幀存壓縮技術[12](parallel content aware adaptive equantization oriented lossy frame memory recompression for HEVC, CAQO)被提出,其對有損壓縮的研究最為優秀。CAQO 首先在7 個紋理方向中自適應的找到最優預測方向,并計算得到最優預測殘差(prediction residual, PR),然后根據率失真模型計算量化參數(quantize parameter, QP),接著利用QP對PR 進行編碼前的量化操作,計算得到量化殘差(quantize residual, QR),最后根據一元指數哥倫布編碼算法完成QR 的熵編碼。
CAQO 算法[13-14]包含方向性預測、離散平穩高斯率失真模型和哥倫布一元編碼3 個子算法模塊,編碼單元(coding unit, CU)為block 16×16,子模塊算法細節分析如下。
如圖1 所示,根據以下步驟,通過當前預測像素附近已重建像素計算得到PR,其中Px,y為當前像素。

圖1 方向性預測坐標示意圖
首先,計算區域A 內的水平垂直梯度值DIRAH和DIRAV,區域B 內的水平垂直梯度值DIRBH和DIRBV,計算如式(1)所示。
接著,將DIRAV、DIRAH、DIRBV、DIRBH代入式(2)得到DVMAX、DHMAX,并根據DVMAX和DHMAX之比得到預測方向θ。
最后,根據θ 是否為預測方向的主方向,選取或計算得到參考像素,即若θ 為主方向,則直接選取對應方向的臨近像素作為參考像素;若θ 為輔方向,則計算該方向臨近像素值之和的均值作為參考像素。


CAQO 采用離散平穩高斯[15]率失真函數[16],通過式(3),以QP 為媒介,在圖像質量Distortion和壓縮率rate 之間進行動態的平衡,如式(3)所示。

式中,離散變換塊Ψ和量化噪聲的功率譜密度 Δ由Mvx 和Mvy 計算得到,并由式(4)計算得到QP,此時像素的QR 為PR 右移QP 個bit。


表1 QUO 碼表
哥倫布編碼通過式(5)拆分QR 為k值、商QUO和余數REM。如表1 所示,對QUO 進行查表編碼,對REM 直接傳輸,根據紋理相關性原則,k值為已編碼的臨近像素所采用的k值。

通過分析發現CAQO 有如下待改進之處:
1)方向性預測僅采用最大梯度作為最優預測方向,會導致預測的穩定性較差,并且預測方向的數量限制不能使PR 進一步減少。
2)離散平穩高斯率失真模型中,不僅沒有考慮到紋理方向對功率譜密度的影響,而且也沒有考慮傳遞效應對QS 的影響,以至于計算得到的QP 不是最優解。
3)在QUO 碼表中,QR 沒有考慮符號位的相關性,只是簡單地進行單獨編碼;不對商進行限幅處理,一定概率會產生最終編碼bit 數遠超過原始數據bit 數的膨脹現象;對于圖像紋理較復雜的區域,利用圖像方向相關性的原則去計算k值,該方法的適應性較差;對于圖像紋理較平坦區域,壓縮率提升空間較小。
為解決上述問題,本文提出了一種紋理感知多模式編碼的幀存有損壓縮算法(a texture perception multimode coding for frame memory lossy compression,TPMC)。實驗結果顯示,相對于CAQO 算法,本算法不但有著更高的壓縮率,同時在峰值信噪比和平均編碼時間兩方面和CAQO 算法保持性能持平。
由于CAQO 算法存在一定的缺陷,因此為了在不影響圖像性能質量的前提下進一步提高壓縮效率,本文提出TPMC 算法。它基于 block 16×16(長和寬各有16 個像素)作為預測和量化的基本單元,以block 16×1(長有16 個像素,寬只有一個像素)作為熵編碼的基本單元,首先對當前像素進行紋理感知,并采用權重插值的方法計算PR,然后根據優化的離散平穩高斯率失真公式得到新的QP 和QR,最后對QR 進行多模式自適應編碼。
為了充分利用當前像素Pij周圍的4 個重建像素,獲得更小的PR,采用如下步驟:
1)根據不同位置的權重,采用式(6)獲取4 個紋理梯度值,并計算其中梯度最小值Dminst和次小值Dminer,分別對應紋理主方向和輔方向,4 個紋理方向如圖2 所示。
2)如式(7)所示,若紋理主方向和輔方向差異為90°,說明該區域紋理復雜,則采用均值策略計算參考像素值;否則采用權重插值策略計算參考像素值。式(7)中Pminst和Pminer分別為與當前緊相鄰的4 個像素中,紋理主方向和輔方向對應的像素值。

圖2 預測示意圖

首先,為了更大限度地滿足自然圖像的紋理特征,通過式(8),針對梯度值和運動矢量,從僅有的水平和垂直方向的擬合擴展到4 個方向的擬合,并選取最小梯度值方向為最終梯度方向:

其次,在根據當前壓縮單元計算當前幀重建圖像的同時,由于傳遞效應的存在,重建圖像作為參考幀也會影響后續其他幀的編碼,即誤差在幀間的傳遞和擴散,因此在計算高斯平穩率失真模型中的QS 時,需要考慮到運動方向(motion vector, MV)的相關性和多幀時幀間相同位置QS 的相關性,如式(9)所示。

式中,CUcur_mvn 表示當前位置對應的編碼單元經過MV 的n次迭代運算后所指向的編碼單元;refnum 表示解碼過程中參考幀的個數。
最終,將更新的QS 和Ψ取代式(4)中的QS和Ψ,重新計算得到當前壓縮單元的QP,并采用式(10)以消除符號位,從而得到QR:

對于紋理復雜區域,QR 差異較大導致k值相關性較差,且由于沒有對k值限幅,因此哥倫布一元編碼會導致壓縮率較差甚至過膨脹現象;對于紋理平坦區域,QR 較小且大多為0,因此哥倫布一元編碼不能進一步減少編碼比特數。為了克服以上問題,多模式編碼被提出。多模式編碼針對不同紋理區域,采用不同的編碼模式,流程圖如圖3 所示。

圖3 多模式編碼圖
對于每個block 16×1 的熵編碼單元,若當前的量化殘差全為0,則采用游程模式進行編碼,以最大程度的降低編碼bit 數,否則采用自適應k的哥倫布編碼和直傳編碼兩種模式同時進行預編碼,然后根據預編碼bit 數的多少選擇bit 數較少的編碼模式作為最終的編碼模式。同時消耗2 bit 把最終選擇的編碼模式寫入到碼流。對于3 種編碼模式,具體說明如下:
1)游程編碼采用1 個符號位表示16×1 個QR全部為0 的情況:解碼端若解析到編碼模式為游程編碼,則恢復該編碼單元的所有QR 全部為0。
2)直傳編碼,首先計算該編碼單元所有QR 的最大比特位寬,然后把最大位寬寫入碼流,最后按該位寬把每個QR 寫入碼流。解碼端首先解析最大比特位寬,然后按照該位寬解析每個QR。
3)自適應k的哥倫布編碼,根據式(11),k值由上一個QR 計算得到:

由于k值范圍擴大,降低了最大商出現的可能性,因此多維碼表可以變為1 維碼表,且為了限制膨脹,碼表中應規定商的逃逸值,1 維的商碼表如表2 所示。

表2 哥倫布商碼表
相對CAQO 算法,本文算法分別從壓縮率和運算量兩方面進行分析。
在壓縮率方面,本算法首先在預測步驟中采用了紋理感知的特性,并利用周圍重建像素和權重插值,提高了預測精度和穩定性;同時在量化步驟中優化了率失真模型,得到了更優的QP 并消除了符號位;最后在編碼步驟中區分紋區域理特性以采用不同的編碼模式,最終提高了壓縮率。
在計算量方面,CAQO 在預測過程中有23次加減等基本運算和2 次乘除運算,TPMC 有34 次加減基本運算和3 次乘除法運算;CAQO 和TPMC 在量化過程中的運算量差不多;相對CAQO采用的哥倫布編碼,TPMC 采用的游程編碼和直傳編碼在編碼過程中省去了更多計算步驟,計算量有明顯下降。
為了比較本文算法與CAQO 的算法性能,將算法嵌入HEVC 后,分別從壓縮率(compression ratio, CR)、PSNR 和相對編碼時間(relative encoding time, RET)3 個維度進行測試。整個實驗可分為兩類,第一類實驗將兩種算法單獨步驟的性能對比,第二類實驗將兩種算法的整體性能對比。測試平臺為HM16.8,運行環境為Inter I5-6 400 CPU@2.7GHz、8G 內存、Win7 64 位系統。CR 和RET 計算公式如式(12)所示。

式中,Sizeori和Sizebs分別為壓縮前后數據量大小;TimeTPMC和TimeCAQO分別為本算法和CAQO算法的編碼時間;PSNRalg和PSNRori分別為算法嵌入HEVC 和不嵌入HEVC 后的峰值信噪比。CR 越大,說明本文算法壓縮率越好;RET 越小,說明本文算法的編碼時間相對越少;△PSNR越小,說明對應算法嵌入HEVC 后,HEVC 編碼的圖像質量下降越少。
在測試序列的選擇上,本實驗根據圖像紋理的復雜度情況,選擇了3 類共9 個序列進行對比分析,以確保涵蓋不同的特征圖像,即3 個圖像紋理較復雜序列、3 個圖像紋理中等序列和3 個圖像紋理較簡單序列。
第一類實驗結果如表3 所示。從橫向對比可以看出,本文的預測模塊由于采用了方向擬合預測,較CAQO 的7 種方向預測有更多的預測方向,所以在CR 方面,對于racehorses 序列有3.33%的收益,但是RET 增長較為明顯;本文的率失真模塊在CR 方面,較CAQO 更有平均6.47%的增長,在RET 方面和CAAQ 算法持平;本文的編碼模塊,由于采用了游程編碼,RET 有大幅度的下降。縱向對比可以看出,預測模塊和編碼模塊對CR 的提高幫助最大。
第二類實驗結果如表4 所示。在CR 方面,相對CAQO,本文算法的魯棒性更強,插值預測的精度更高,因此得到的預測殘差較小;其次,由于本文算法優化了高斯平穩噪聲率失真模型,得到更準確的量化殘差;最后針對不同的圖像紋理區域特量化殘差的特性,在不同的編碼模式之間自適應選擇,從而提高壓縮率。由表4 可以看出,本算法對于簡單紋理序列Tennis,由于游程編碼的使用,壓縮率提高最大,為18.24%;對于復雜紋理序列,由于直傳編碼的采用,壓縮率也有很大的提高;因此本文算法較CAQO,平均CR 有14.8%的提高。

表3 本文算法與CAQO 算法各模塊的壓縮性能對比

表4 本文算法與CAQO 算法壓縮的性能對比
在算法復雜度方面,對于量化步驟,本文算法與CAQO 的計算復雜度基本一致;對于預測步驟,本文算法是CAQO 的計算復量的1.5 倍;對于編碼步驟,本文算法較CAQO,游程編碼和直傳編碼節約了大量的編碼時間。由表4 可以看出,簡單紋理序列本文算法RET 較小,反之較大。綜上分析,兩種算法的平均計算復雜度基本相同。
為了解決日益突出的圖像帶寬問題,本文對基于幀存技術的CAQO 算法原理和缺點做了深入分析,提出了TPMC 算法。TPMC 首先感知當前像素的紋理方向,為每個像素進行方向性插值得到的參考像素,并計算獲得PR;然后從功率譜密度和QS維度優化了率失真模型,得到QP;最后針對不同類型的紋理區域和QR 分布,分別采用游程、直傳或自適應k的哥倫布進行編碼,最終在不提升算法復雜度的前提下,進一步提高了壓縮率。實驗結果顯示,與CAQO算法相比,在編碼時間相同的情況下,本文算法提升平均14.8%的CR。