羅 瑜
(陜西中醫(yī)藥大學(xué)基礎(chǔ)醫(yī)學(xué)院 西安 712046)
2019 年,中國(guó)電信發(fā)布的《中國(guó)電信8k 智能機(jī)頂盒白皮書(shū)20191121》明確提出對(duì)8K 視頻的要求。在市場(chǎng)需求逐漸明確的同時(shí),視頻編解碼組織也推出了對(duì)8K 分辨率的視頻編解碼標(biāo)準(zhǔn)[1],如AV1、VVC 和AVS3 等。同年,5G 技術(shù)得到了大規(guī)模發(fā)展,為大量數(shù)據(jù)的實(shí)時(shí)無(wú)線傳輸提供了技術(shù)保障。隨著“市場(chǎng)+技術(shù)”的驅(qū)動(dòng),視頻圖像的主流分辨率從4K 發(fā)展到8K。
圖像分辨率的增大直接增加了DDR 的讀寫(xiě)需求,為了不降低圖像主觀性能質(zhì)量的同時(shí)有效降低視頻帶寬,基于幀存技術(shù)[2-4]的輕量級(jí)視頻壓縮技術(shù)被提出,包括無(wú)損壓縮[5-7]和有損壓縮[8-9]。相對(duì)無(wú)損壓縮技術(shù),有損壓縮增加了視頻殘差的量化環(huán)節(jié),即在盡量降低圖像峰值信噪(Peak signal to noise ratio, PSNR)的同時(shí),盡可能地提升壓縮效率[10-11]。在該研究中,內(nèi)容感知自適應(yīng)量化的幀存壓縮技術(shù)[12](parallel content aware adaptive equantization oriented lossy frame memory recompression for HEVC, CAQO)被提出,其對(duì)有損壓縮的研究最為優(yōu)秀。CAQO 首先在7 個(gè)紋理方向中自適應(yīng)的找到最優(yōu)預(yù)測(cè)方向,并計(jì)算得到最優(yōu)預(yù)測(cè)殘差(prediction residual, PR),然后根據(jù)率失真模型計(jì)算量化參數(shù)(quantize parameter, QP),接著利用QP對(duì)PR 進(jìn)行編碼前的量化操作,計(jì)算得到量化殘差(quantize residual, QR),最后根據(jù)一元指數(shù)哥倫布編碼算法完成QR 的熵編碼。
CAQO 算法[13-14]包含方向性預(yù)測(cè)、離散平穩(wěn)高斯率失真模型和哥倫布一元編碼3 個(gè)子算法模塊,編碼單元(coding unit, CU)為block 16×16,子模塊算法細(xì)節(jié)分析如下。
如圖1 所示,根據(jù)以下步驟,通過(guò)當(dāng)前預(yù)測(cè)像素附近已重建像素計(jì)算得到PR,其中Px,y為當(dāng)前像素。
圖1 方向性預(yù)測(cè)坐標(biāo)示意圖
首先,計(jì)算區(qū)域A 內(nèi)的水平垂直梯度值DIRAH和DIRAV,區(qū)域B 內(nèi)的水平垂直梯度值DIRBH和DIRBV,計(jì)算如式(1)所示。
接著,將DIRAV、DIRAH、DIRBV、DIRBH代入式(2)得到DVMAX、DHMAX,并根據(jù)DVMAX和DHMAX之比得到預(yù)測(cè)方向θ。
最后,根據(jù)θ 是否為預(yù)測(cè)方向的主方向,選取或計(jì)算得到參考像素,即若θ 為主方向,則直接選取對(duì)應(yīng)方向的臨近像素作為參考像素;若θ 為輔方向,則計(jì)算該方向臨近像素值之和的均值作為參考像素。
CAQO 采用離散平穩(wěn)高斯[15]率失真函數(shù)[16],通過(guò)式(3),以QP 為媒介,在圖像質(zhì)量Distortion和壓縮率rate 之間進(jìn)行動(dòng)態(tài)的平衡,如式(3)所示。
式中,離散變換塊Ψ和量化噪聲的功率譜密度 Δ由Mvx 和Mvy 計(jì)算得到,并由式(4)計(jì)算得到QP,此時(shí)像素的QR 為PR 右移QP 個(gè)bit。
表1 QUO 碼表
哥倫布編碼通過(guò)式(5)拆分QR 為k值、商QUO和余數(shù)REM。如表1 所示,對(duì)QUO 進(jìn)行查表編碼,對(duì)REM 直接傳輸,根據(jù)紋理相關(guān)性原則,k值為已編碼的臨近像素所采用的k值。
通過(guò)分析發(fā)現(xiàn)CAQO 有如下待改進(jìn)之處:
1)方向性預(yù)測(cè)僅采用最大梯度作為最優(yōu)預(yù)測(cè)方向,會(huì)導(dǎo)致預(yù)測(cè)的穩(wěn)定性較差,并且預(yù)測(cè)方向的數(shù)量限制不能使PR 進(jìn)一步減少。
2)離散平穩(wěn)高斯率失真模型中,不僅沒(méi)有考慮到紋理方向?qū)β首V密度的影響,而且也沒(méi)有考慮傳遞效應(yīng)對(duì)QS 的影響,以至于計(jì)算得到的QP 不是最優(yōu)解。
3)在QUO 碼表中,QR 沒(méi)有考慮符號(hào)位的相關(guān)性,只是簡(jiǎn)單地進(jìn)行單獨(dú)編碼;不對(duì)商進(jìn)行限幅處理,一定概率會(huì)產(chǎn)生最終編碼bit 數(shù)遠(yuǎn)超過(guò)原始數(shù)據(jù)bit 數(shù)的膨脹現(xiàn)象;對(duì)于圖像紋理較復(fù)雜的區(qū)域,利用圖像方向相關(guān)性的原則去計(jì)算k值,該方法的適應(yīng)性較差;對(duì)于圖像紋理較平坦區(qū)域,壓縮率提升空間較小。
為解決上述問(wèn)題,本文提出了一種紋理感知多模式編碼的幀存有損壓縮算法(a texture perception multimode coding for frame memory lossy compression,TPMC)。實(shí)驗(yàn)結(jié)果顯示,相對(duì)于CAQO 算法,本算法不但有著更高的壓縮率,同時(shí)在峰值信噪比和平均編碼時(shí)間兩方面和CAQO 算法保持性能持平。
由于CAQO 算法存在一定的缺陷,因此為了在不影響圖像性能質(zhì)量的前提下進(jìn)一步提高壓縮效率,本文提出TPMC 算法。它基于 block 16×16(長(zhǎng)和寬各有16 個(gè)像素)作為預(yù)測(cè)和量化的基本單元,以block 16×1(長(zhǎng)有16 個(gè)像素,寬只有一個(gè)像素)作為熵編碼的基本單元,首先對(duì)當(dāng)前像素進(jìn)行紋理感知,并采用權(quán)重插值的方法計(jì)算PR,然后根據(jù)優(yōu)化的離散平穩(wěn)高斯率失真公式得到新的QP 和QR,最后對(duì)QR 進(jìn)行多模式自適應(yīng)編碼。
為了充分利用當(dāng)前像素Pij周?chē)? 個(gè)重建像素,獲得更小的PR,采用如下步驟:
1)根據(jù)不同位置的權(quán)重,采用式(6)獲取4 個(gè)紋理梯度值,并計(jì)算其中梯度最小值Dminst和次小值Dminer,分別對(duì)應(yīng)紋理主方向和輔方向,4 個(gè)紋理方向如圖2 所示。
2)如式(7)所示,若紋理主方向和輔方向差異為90°,說(shuō)明該區(qū)域紋理復(fù)雜,則采用均值策略計(jì)算參考像素值;否則采用權(quán)重插值策略計(jì)算參考像素值。式(7)中Pminst和Pminer分別為與當(dāng)前緊相鄰的4 個(gè)像素中,紋理主方向和輔方向?qū)?yīng)的像素值。
圖2 預(yù)測(cè)示意圖
首先,為了更大限度地滿足自然圖像的紋理特征,通過(guò)式(8),針對(duì)梯度值和運(yùn)動(dòng)矢量,從僅有的水平和垂直方向的擬合擴(kuò)展到4 個(gè)方向的擬合,并選取最小梯度值方向?yàn)樽罱K梯度方向:
其次,在根據(jù)當(dāng)前壓縮單元計(jì)算當(dāng)前幀重建圖像的同時(shí),由于傳遞效應(yīng)的存在,重建圖像作為參考幀也會(huì)影響后續(xù)其他幀的編碼,即誤差在幀間的傳遞和擴(kuò)散,因此在計(jì)算高斯平穩(wěn)率失真模型中的QS 時(shí),需要考慮到運(yùn)動(dòng)方向(motion vector, MV)的相關(guān)性和多幀時(shí)幀間相同位置QS 的相關(guān)性,如式(9)所示。
式中,CUcur_mvn 表示當(dāng)前位置對(duì)應(yīng)的編碼單元經(jīng)過(guò)MV 的n次迭代運(yùn)算后所指向的編碼單元;refnum 表示解碼過(guò)程中參考幀的個(gè)數(shù)。
最終,將更新的QS 和Ψ取代式(4)中的QS和Ψ,重新計(jì)算得到當(dāng)前壓縮單元的QP,并采用式(10)以消除符號(hào)位,從而得到QR:
對(duì)于紋理復(fù)雜區(qū)域,QR 差異較大導(dǎo)致k值相關(guān)性較差,且由于沒(méi)有對(duì)k值限幅,因此哥倫布一元編碼會(huì)導(dǎo)致壓縮率較差甚至過(guò)膨脹現(xiàn)象;對(duì)于紋理平坦區(qū)域,QR 較小且大多為0,因此哥倫布一元編碼不能進(jìn)一步減少編碼比特?cái)?shù)。為了克服以上問(wèn)題,多模式編碼被提出。多模式編碼針對(duì)不同紋理區(qū)域,采用不同的編碼模式,流程圖如圖3 所示。
圖3 多模式編碼圖
對(duì)于每個(gè)block 16×1 的熵編碼單元,若當(dāng)前的量化殘差全為0,則采用游程模式進(jìn)行編碼,以最大程度的降低編碼bit 數(shù),否則采用自適應(yīng)k的哥倫布編碼和直傳編碼兩種模式同時(shí)進(jìn)行預(yù)編碼,然后根據(jù)預(yù)編碼bit 數(shù)的多少選擇bit 數(shù)較少的編碼模式作為最終的編碼模式。同時(shí)消耗2 bit 把最終選擇的編碼模式寫(xiě)入到碼流。對(duì)于3 種編碼模式,具體說(shuō)明如下:
1)游程編碼采用1 個(gè)符號(hào)位表示16×1 個(gè)QR全部為0 的情況:解碼端若解析到編碼模式為游程編碼,則恢復(fù)該編碼單元的所有QR 全部為0。
2)直傳編碼,首先計(jì)算該編碼單元所有QR 的最大比特位寬,然后把最大位寬寫(xiě)入碼流,最后按該位寬把每個(gè)QR 寫(xiě)入碼流。解碼端首先解析最大比特位寬,然后按照該位寬解析每個(gè)QR。
3)自適應(yīng)k的哥倫布編碼,根據(jù)式(11),k值由上一個(gè)QR 計(jì)算得到:
由于k值范圍擴(kuò)大,降低了最大商出現(xiàn)的可能性,因此多維碼表可以變?yōu)? 維碼表,且為了限制膨脹,碼表中應(yīng)規(guī)定商的逃逸值,1 維的商碼表如表2 所示。
表2 哥倫布商碼表
相對(duì)CAQO 算法,本文算法分別從壓縮率和運(yùn)算量?jī)煞矫孢M(jìn)行分析。
在壓縮率方面,本算法首先在預(yù)測(cè)步驟中采用了紋理感知的特性,并利用周?chē)亟ㄏ袼睾蜋?quán)重插值,提高了預(yù)測(cè)精度和穩(wěn)定性;同時(shí)在量化步驟中優(yōu)化了率失真模型,得到了更優(yōu)的QP 并消除了符號(hào)位;最后在編碼步驟中區(qū)分紋區(qū)域理特性以采用不同的編碼模式,最終提高了壓縮率。
在計(jì)算量方面,CAQO 在預(yù)測(cè)過(guò)程中有23次加減等基本運(yùn)算和2 次乘除運(yùn)算,TPMC 有34 次加減基本運(yùn)算和3 次乘除法運(yùn)算;CAQO 和TPMC 在量化過(guò)程中的運(yùn)算量差不多;相對(duì)CAQO采用的哥倫布編碼,TPMC 采用的游程編碼和直傳編碼在編碼過(guò)程中省去了更多計(jì)算步驟,計(jì)算量有明顯下降。
為了比較本文算法與CAQO 的算法性能,將算法嵌入HEVC 后,分別從壓縮率(compression ratio, CR)、PSNR 和相對(duì)編碼時(shí)間(relative encoding time, RET)3 個(gè)維度進(jìn)行測(cè)試。整個(gè)實(shí)驗(yàn)可分為兩類,第一類實(shí)驗(yàn)將兩種算法單獨(dú)步驟的性能對(duì)比,第二類實(shí)驗(yàn)將兩種算法的整體性能對(duì)比。測(cè)試平臺(tái)為HM16.8,運(yùn)行環(huán)境為Inter I5-6 400 CPU@2.7GHz、8G 內(nèi)存、Win7 64 位系統(tǒng)。CR 和RET 計(jì)算公式如式(12)所示。
式中,Sizeori和Sizebs分別為壓縮前后數(shù)據(jù)量大小;TimeTPMC和TimeCAQO分別為本算法和CAQO算法的編碼時(shí)間;PSNRalg和PSNRori分別為算法嵌入HEVC 和不嵌入HEVC 后的峰值信噪比。CR 越大,說(shuō)明本文算法壓縮率越好;RET 越小,說(shuō)明本文算法的編碼時(shí)間相對(duì)越少;△PSNR越小,說(shuō)明對(duì)應(yīng)算法嵌入HEVC 后,HEVC 編碼的圖像質(zhì)量下降越少。
在測(cè)試序列的選擇上,本實(shí)驗(yàn)根據(jù)圖像紋理的復(fù)雜度情況,選擇了3 類共9 個(gè)序列進(jìn)行對(duì)比分析,以確保涵蓋不同的特征圖像,即3 個(gè)圖像紋理較復(fù)雜序列、3 個(gè)圖像紋理中等序列和3 個(gè)圖像紋理較簡(jiǎn)單序列。
第一類實(shí)驗(yàn)結(jié)果如表3 所示。從橫向?qū)Ρ瓤梢钥闯?,本文的預(yù)測(cè)模塊由于采用了方向擬合預(yù)測(cè),較CAQO 的7 種方向預(yù)測(cè)有更多的預(yù)測(cè)方向,所以在CR 方面,對(duì)于racehorses 序列有3.33%的收益,但是RET 增長(zhǎng)較為明顯;本文的率失真模塊在CR 方面,較CAQO 更有平均6.47%的增長(zhǎng),在RET 方面和CAAQ 算法持平;本文的編碼模塊,由于采用了游程編碼,RET 有大幅度的下降??v向?qū)Ρ瓤梢钥闯?,預(yù)測(cè)模塊和編碼模塊對(duì)CR 的提高幫助最大。
第二類實(shí)驗(yàn)結(jié)果如表4 所示。在CR 方面,相對(duì)CAQO,本文算法的魯棒性更強(qiáng),插值預(yù)測(cè)的精度更高,因此得到的預(yù)測(cè)殘差較小;其次,由于本文算法優(yōu)化了高斯平穩(wěn)噪聲率失真模型,得到更準(zhǔn)確的量化殘差;最后針對(duì)不同的圖像紋理區(qū)域特量化殘差的特性,在不同的編碼模式之間自適應(yīng)選擇,從而提高壓縮率。由表4 可以看出,本算法對(duì)于簡(jiǎn)單紋理序列Tennis,由于游程編碼的使用,壓縮率提高最大,為18.24%;對(duì)于復(fù)雜紋理序列,由于直傳編碼的采用,壓縮率也有很大的提高;因此本文算法較CAQO,平均CR 有14.8%的提高。
表3 本文算法與CAQO 算法各模塊的壓縮性能對(duì)比
表4 本文算法與CAQO 算法壓縮的性能對(duì)比
在算法復(fù)雜度方面,對(duì)于量化步驟,本文算法與CAQO 的計(jì)算復(fù)雜度基本一致;對(duì)于預(yù)測(cè)步驟,本文算法是CAQO 的計(jì)算復(fù)量的1.5 倍;對(duì)于編碼步驟,本文算法較CAQO,游程編碼和直傳編碼節(jié)約了大量的編碼時(shí)間。由表4 可以看出,簡(jiǎn)單紋理序列本文算法RET 較小,反之較大。綜上分析,兩種算法的平均計(jì)算復(fù)雜度基本相同。
為了解決日益突出的圖像帶寬問(wèn)題,本文對(duì)基于幀存技術(shù)的CAQO 算法原理和缺點(diǎn)做了深入分析,提出了TPMC 算法。TPMC 首先感知當(dāng)前像素的紋理方向,為每個(gè)像素進(jìn)行方向性插值得到的參考像素,并計(jì)算獲得PR;然后從功率譜密度和QS維度優(yōu)化了率失真模型,得到QP;最后針對(duì)不同類型的紋理區(qū)域和QR 分布,分別采用游程、直傳或自適應(yīng)k的哥倫布進(jìn)行編碼,最終在不提升算法復(fù)雜度的前提下,進(jìn)一步提高了壓縮率。實(shí)驗(yàn)結(jié)果顯示,與CAQO算法相比,在編碼時(shí)間相同的情況下,本文算法提升平均14.8%的CR。