摘 要:該文提出一種新的碼率控制算法,基于人眼顯著性區(qū)域的檢測(cè),以優(yōu)化視頻編碼效率。該算法利用像素級(jí)的恰可感知失真(JND)模型,精準(zhǔn)預(yù)測(cè)人眼對(duì)圖像失真感知的閾值。通過(guò)分析相鄰幀間的像素值變化,識(shí)別出圖像中的顯著性區(qū)域,并基于JND模型進(jìn)一步細(xì)分這些區(qū)域。通過(guò)構(gòu)建一個(gè)多級(jí)碼率分配框架,以指導(dǎo)不同區(qū)域的碼率分配。實(shí)驗(yàn)結(jié)果顯示,在低碼率環(huán)境下,該算法能夠顯著提升顯著性區(qū)域的視覺(jué)質(zhì)量,同時(shí)保持碼率控制的精確性。相比現(xiàn)有的HM16.9算法,在碼率精確性基本不變的情況下,該文算法的BD-Rate下降0.028 9%,BD-PSNR提升0.001 6%,多個(gè)測(cè)試序列的結(jié)構(gòu)相似性ΔSSIM平均提升0.000 69。
關(guān)鍵詞:HEVC;顯著性區(qū)域;碼率控制;恰可感知失真模型;原始圖像
中圖分類號(hào):TN919.8 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):2095-2945(2024)34-0011-07
Abstract: This paper proposes a new bitrate control algorithm based on human visual saliency detection to optimize video coding efficiency. This algorithm utilizes a pixel-level Just Noticeable Distortion (JND) model to accurately predict the threshold for human eye perception of image distortion. By analyzing the pixel value changes between adjacent frames, salient regions in the image are identified, and these regions are further subdivided based on the JND model. By constructing a multi-level rate allocation framework to guide rate allocation in different regions. The experimental results show that in low-bitrate environments, this algorithm can significantly improve the visual quality of saliency while maintaining the accuracy of bit rate control. Compared with the existing HM16.9 algorithm, while the bit rate accuracy remains basically unchanged, the BD-Rate of the algorithm in this paper decreases by 0.028 9%, the BD-PSNR increases by 0.001 6%, and the average structural similarity ΔSSIM of multiple test sequences increases by 0.000 69.
Keywords: HEVC; saliency; bitrate control; Just Noticeable Distortion (JND) model; original image、
傳統(tǒng)的圖像/視頻編碼技術(shù)主要針對(duì)空間域冗余、時(shí)間域冗余以及統(tǒng)計(jì)冗余進(jìn)行壓縮編碼,但很少考慮到人眼視覺(jué)系統(tǒng)特性和心理效應(yīng),因此大量視覺(jué)冗余數(shù)據(jù)被編碼并傳輸,為了進(jìn)一步提高編碼的效率,基于心理學(xué)和生理學(xué)的最小可察覺(jué)失真模型廣泛關(guān)注。恰可感知失真(Just Noticeable Distortion,JND)模型基于人眼視覺(jué)系統(tǒng)的生理特性,通過(guò)對(duì)圖像中每個(gè)像素的亮度、對(duì)比度等視覺(jué)特性進(jìn)行分析,來(lái)預(yù)測(cè)人眼能夠察覺(jué)到的最小失真程度。常用來(lái)指導(dǎo)圖像或視頻的感知編碼和處理,如預(yù)處理、碼流控制、運(yùn)動(dòng)估計(jì)等。
新一代高效視頻編碼標(biāo)準(zhǔn)HEVC(High Efficiency Video Coding)標(biāo)準(zhǔn)[1]中采用的是λ域的碼率控制模型,該模型主要通過(guò)拉格朗日參數(shù)λ來(lái)控制碼率。針對(duì)λ域的碼率控制模型的改進(jìn)與優(yōu)化有許多研究方向,其中將人眼視覺(jué)特性與碼率控制相結(jié)合的方法是研究的熱點(diǎn)之一。無(wú)論哪種研究方法,歸根結(jié)底都是為了提升編碼性能,在盡可能低的碼率下,實(shí)現(xiàn)更優(yōu)的圖像質(zhì)量。文獻(xiàn)[2]采用JND計(jì)算空域視覺(jué)敏感度,通過(guò)幀差法計(jì)算時(shí)域視覺(jué)敏感度,從而獲得基于空-時(shí)域的碼率分配權(quán)重。文獻(xiàn)[3]通過(guò)時(shí)\空域顯著圖來(lái)確定視頻幀的感興趣區(qū)域,然后指導(dǎo)幀級(jí)和最大編碼單元(Largest Coding Unit,LCU)級(jí)比特位分配。文獻(xiàn)[4]提出一種基于感興趣區(qū)域(Region of Interest,ROI)和JND相結(jié)合的分級(jí)量化方法,針對(duì)低碼率視頻的應(yīng)用,指導(dǎo)各區(qū)域的量化。
本文主要研究基于人眼顯著性檢測(cè)的碼率分配算法,通過(guò)空域JND模型預(yù)測(cè)視頻幀中人眼最小可察覺(jué)失真度,估計(jì)每一個(gè)LCU的碼率分配權(quán)重。利用相鄰幀之間的同位置上像素值差異,判斷圖像中的顯著性區(qū)域。本文算法在HEVC的λ域碼率控制模型的基礎(chǔ)上,結(jié)合空域JND模型和時(shí)域幀差法,對(duì)視頻幀顯著性區(qū)域建立分級(jí)、分區(qū)域的碼控策略,優(yōu)化和改進(jìn)原有HEVC碼率控制算法,將碼率更好地分配到人眼感興趣的區(qū)域上,提高圖像質(zhì)量。
1 HEVC碼率控制算法
目前HEVC標(biāo)準(zhǔn)采用R-λ碼控模型[5],該模型已被證明要優(yōu)于R-Q、R-ρ模型,其表達(dá)式為
λ=α×Rβ 。 (1)
HEVC碼率控制算法主要包含2個(gè)步驟:碼率分配和量化參數(shù)確定。碼率分配過(guò)程分為圖像組(Group of Pictures,GOP)級(jí)、幀級(jí)和LCU級(jí),如下所示。
GOP級(jí):根據(jù)總碼率、幀率、GOP長(zhǎng)度及已編碼幀的比特消耗,預(yù)分配GOP級(jí)的比特。GOP級(jí)比特分配的計(jì)算公式
式中:RPicAvg是每幀的理論目標(biāo)比特?cái)?shù);Ncoded是視頻序列已經(jīng)編碼的總幀數(shù);Rcoded是已編碼幀的實(shí)際編碼比特?cái)?shù);SW是平滑比特分配的滑動(dòng)窗口,用于使比特消耗和編碼圖像的質(zhì)量更加平緩,通常設(shè)置為40。
幀級(jí):根據(jù)GOP級(jí)剩余比特?cái)?shù),為每幀圖像按權(quán)重分配幀級(jí)目標(biāo)比特?cái)?shù)。在幀級(jí)碼率分配中,每一幀依照自身權(quán)重與未編碼內(nèi)容的總權(quán)重之比在剩余的比特?cái)?shù)中分配比特。幀級(jí)比特分配的計(jì)算公式
式中:權(quán)重參數(shù)ω是根據(jù)幀的編碼結(jié)構(gòu)以及bpp(bits per pixel,每像素比特?cái)?shù))查表決定。
LCU級(jí):根據(jù)幀級(jí)剩余比特?cái)?shù),為每個(gè)LCU按權(quán)重分配目標(biāo)比特?cái)?shù)。JCTVC-M0036提案[6]采用自適應(yīng)比率的方法計(jì)算每個(gè)編碼單元的比特分配權(quán)重。LCU級(jí)比特分配的計(jì)算公式
式中:權(quán)重參數(shù)ω是根據(jù)前一編碼單元的參數(shù)進(jìn)行計(jì)算,見(jiàn)公式(5)。
由于率失真優(yōu)化過(guò)程所獲得的量化參數(shù)(Quantization Parameter,QP)的編碼復(fù)雜度較高,為了降低編碼復(fù)雜度,Li等[5]通過(guò)大量實(shí)驗(yàn)獲得了ln(λ)與QP之間存在線性關(guān)系,如計(jì)算公式
, (6)
。 (7)
量化參數(shù)確定后,即可對(duì)當(dāng)前圖像進(jìn)行編碼,該圖像編碼完成后得到實(shí)際編碼比特bpp。利用bpp更新參數(shù)α和β,以便后續(xù)圖像碼率控制時(shí)使用。參數(shù)具體更新方法
, (8)
,(9)
, (10)
式中:λreal表示編碼中實(shí)際的拉格朗日乘子;Rreal表示編碼中實(shí)際的編碼比特;δα和δβ是與bpp相關(guān)的常量,用于調(diào)節(jié)公式的收斂速度。
2 基于顯著性區(qū)域檢測(cè)的分等級(jí)碼控策略
2.1 JND預(yù)測(cè)與顯著性區(qū)域檢測(cè)
本文研究采用像素域中的JND模型,該模型綜合考量了亮度掩蔽(Luminance Masking,LM)和對(duì)比度掩蔽(Contrast Masking,CM)兩大關(guān)鍵視覺(jué)效應(yīng)。在亮度較高的區(qū)域,人眼對(duì)亮度的變化較為敏感;而在亮度較低的區(qū)域,人眼對(duì)亮度的變化則不太敏感。在紋理復(fù)雜度高的區(qū)域,人眼對(duì)這些區(qū)域不是很敏感;而對(duì)紋理復(fù)雜度低的區(qū)域表現(xiàn)敏感,比如平坦區(qū)域出現(xiàn)塊效應(yīng)、噪聲等,人眼很容易察覺(jué)。
借鑒文獻(xiàn)[7]中的JND模型,本研究建立了一個(gè)能夠精確映射人類視覺(jué)特性的模型。該模型通過(guò)空間掩蔽效應(yīng)函數(shù)和亮度能見(jiàn)度函數(shù)的協(xié)同作用,精確計(jì)算了圖像中每個(gè)像素區(qū)域的最大可容忍失真量,公式如下
,(11)
式中:f1和f2分別為空域掩蔽效應(yīng)函數(shù)和亮度能見(jiàn)度函數(shù);bg(x,y)與mg(x,y)分別表示像素(x,y)區(qū)域的背景亮度函數(shù)與最大亮度梯度函數(shù)。其中,bg(x,y)函數(shù)是通過(guò)一個(gè)加權(quán)低通濾波器計(jì)算像素(x,y)區(qū)域的平均背景亮度值,mg(x,y)函數(shù)是計(jì)算像素(x,y)周圍水平、左對(duì)角、右對(duì)角和垂直4個(gè)方向亮度變化的最大加權(quán)平均值。
圖1是序列BasketballPass和BQSquare的原始灰度圖像,分別對(duì)應(yīng)圖1(a)、圖1(b)。圖2是經(jīng)過(guò)JND模型預(yù)測(cè)得到的圖像,黑色區(qū)域表示JND值較小,白色區(qū)域表示JND值較大。白色區(qū)域多數(shù)為亮度、對(duì)比度較大和紋理復(fù)雜的區(qū)域。減少這些區(qū)域的比特?cái)?shù)分配,人眼察覺(jué)不到圖像質(zhì)量的變化,從而將節(jié)省的比特?cái)?shù)用于提升其他區(qū)域的圖像質(zhì)量。圖3為失真圖像,是原始圖像與JND圖像的差值生成的。主觀測(cè)試顯示觀察者難以辨識(shí)出原始圖像與失真圖像之間的差異?;谝陨戏治?,該模型能夠反映人眼對(duì)圖像失真感知能力,從而指導(dǎo)LCU級(jí)碼率分配權(quán)重。
時(shí)域視覺(jué)特征主要關(guān)注的是圖像中像素值隨時(shí)間的變化情況。由于人眼對(duì)于圖像中運(yùn)動(dòng)物體的變化和動(dòng)態(tài)特性更為敏感,更容易成為視覺(jué)注意的焦點(diǎn)。通過(guò)比較相鄰幀之間的同位置上像素值差異,可以反映出圖像中物體的運(yùn)動(dòng)情況。因此,采用幀差技術(shù)來(lái)精確評(píng)估視頻幀之間的動(dòng)態(tài)變化。定義全局雙向幀差為
式中:W和H分別為當(dāng)前幀的寬度和高度;fn(i,j)、 fn-1(i,j)和fn+1(i,j)分別為當(dāng)前幀、前一參考幀和后一參考幀對(duì)應(yīng)(i,j)位置的像素值。對(duì)于局部編碼單元,引入LCU雙向差值度量,其定義為
式中:lcun(i,j)、lcun-1(i,j)和lcun+1(i,j)分別為當(dāng)前LCU、前一參考幀中對(duì)應(yīng)LCU和后一參考幀中對(duì)應(yīng)LCU編碼單元(i,j)位置的像素值。由于式(12)揭示出時(shí)域上視頻幀變化的平均水平,這為算法提供了一個(gè)基準(zhǔn):當(dāng)LCU局部變化程度DLCU超出幀平均水平Dframe,這些區(qū)域更有可能吸引觀察者的注意力;反之,當(dāng)DLCU小于Dframe,則這些區(qū)域不太可能成為視覺(jué)焦點(diǎn)。
圖4(a)為序列BasketballPass的原始圖像,畫面中的人是主要的運(yùn)動(dòng)區(qū)域,很顯然是人眼關(guān)注的焦點(diǎn)。通過(guò)實(shí)驗(yàn)發(fā)現(xiàn),圖4(b)所示的白色區(qū)域?yàn)轱@著性區(qū)域,黑色為非顯著性區(qū)域,檢測(cè)結(jié)果與人眼視覺(jué)觀察的區(qū)域基本吻合。因此,利用雙向差分均值可以較好地反映視頻中變化區(qū)域,找出顯著性區(qū)域,并結(jié)合碼率分配算法,提升顯著性區(qū)域的圖像質(zhì)量。
2.2 結(jié)合JND和SR的分等級(jí)策略
傳統(tǒng)的視頻編碼方法通?;诟信d趣區(qū)域(Region of Interest,ROI)進(jìn)行幀內(nèi)劃分,但這種方法往往未能充分考慮人眼的視覺(jué)特性。為了更精細(xì)地適應(yīng)人眼的視覺(jué)特性,結(jié)合JND模型和顯著性區(qū)域(SR),將視頻幀細(xì)分為非顯著性區(qū)域(NSR)、顯著性區(qū)域級(jí)別1(SR_level1)和顯著性區(qū)域級(jí)別2(SR_level2)。基于這一細(xì)分,構(gòu)建了一個(gè)新的三級(jí)碼率分配模型,實(shí)現(xiàn)更優(yōu)化的碼率資源分配。
根據(jù)公式(11),JNDLCU和JNDframe的計(jì)算公式分別為
式中:W為圖像的寬度;H為圖像的高度;n為L(zhǎng)CU的大小。
當(dāng)LCU屬于NSR區(qū)域時(shí),則LCU級(jí)權(quán)重WLCU由式(16)得到。
, (16)
式中:WSLCU是空域視覺(jué)靈敏度權(quán)重,與JND(i,j)成反比;WTLCU是時(shí)域視覺(jué)靈敏度權(quán)重,計(jì)算非視覺(jué)顯著性區(qū)域的D(i)平均值[2]。
當(dāng)LCU屬于SR區(qū)域,且JNDLCU小于閾值JNDframe時(shí),該區(qū)域?qū)儆赟R_level1,適當(dāng)減少編碼比特?cái)?shù)的分配,LCU級(jí)權(quán)重WLCU由式(17)得到。
, (17)
式中:感興趣因子P的參數(shù)η1、η2分別取值為0.2、3。WTLCU是時(shí)域視覺(jué)靈敏度權(quán)重,計(jì)算視覺(jué)顯著性區(qū)域的D(i)平均值[2]。
當(dāng)LCU屬于SR區(qū)域,且JNDLCU大于閾值JNDframe時(shí),該區(qū)域?qū)儆赟R_level2,適當(dāng)增加編碼比特?cái)?shù)的分配,LCU級(jí)權(quán)重WLCU由式(18)得到。
, (18)
式中:感興趣因子P的參數(shù)η1、η2分別取值為0.25、20。
在視頻幀的視覺(jué)分析中,引入了一個(gè)關(guān)鍵參數(shù)——感興趣因子P。當(dāng)SR區(qū)域占據(jù)較大的幀面積時(shí),人眼對(duì)其的興趣度相對(duì)降低,導(dǎo)致P值減小。這種視覺(jué)特性反映了人眼傾向于關(guān)注那些具有較小面積但高顯著性的區(qū)域。因此,P值與SR區(qū)域的面積成反比關(guān)系,公式為
式中:Sframe是當(dāng)前幀的面積;SROI是感興趣區(qū)域的總面積;參數(shù)η1、η2決定P的取值大小和范圍。
2.3 算法流程
提出的碼率控制算法流程如圖5所示,具體步驟如下。
步驟1:根據(jù)公式(2)獲得GOP級(jí)目標(biāo)比特?cái)?shù)TGOP;
步驟2:由公式(3)計(jì)算幀級(jí)目標(biāo)比特TCurrPic;
步驟3:將整幀圖像劃分為NSR,SR_level1,SR_le
vel2的三級(jí)碼率分配區(qū)域;
步驟4:根據(jù)LCU所屬區(qū)域類別,計(jì)算LCU級(jí)權(quán)重WLCU;
步驟5:將WLCU作為碼率分配權(quán)重ωCurrLCU,代入HEVC的LCU級(jí)碼率分配公式(4),計(jì)算每個(gè)LCU的目標(biāo)比特?cái)?shù)TCurrLCU;
步驟6:由公式(6)、公式(7)計(jì)算得到LCU級(jí)的λCurrLCU、QPCurrLCU用于編碼;
步驟7:當(dāng)單個(gè)LCU編碼完成后,將依據(jù)公式(8)至公式(10)對(duì)R-λ模型的參數(shù)進(jìn)行更新,然后返回步驟3,直到單幀的所有LCU編碼完成后。
步驟8:完成單幀編碼后,返回步驟2,以此循環(huán)直到GOP、視頻序列編碼完成。
3 實(shí)驗(yàn)結(jié)果
將本文提出的算法添加到HEVC的標(biāo)準(zhǔn)測(cè)試模型HM16.9中,并以HM16.9的方法為基準(zhǔn),從碼率精確性、率失真性能等角度測(cè)試本文算法的性能。采用的配置文件為“encoder_randomaccess_main.cfg”。視頻測(cè)試序列見(jiàn)表1。
通常采用德爾塔碼率(Bj?ntegaard-Delta Rate,BD-Rate)來(lái)衡量碼率控制算法的率失真性能。為了方便計(jì)算BD-Rate,本文每個(gè)序列只使用4個(gè)目標(biāo)碼率值,見(jiàn)表2。
4.1碼率精確性
3.1 碼率精確性
碼率精確性體現(xiàn)了算法對(duì)輸出碼率的控制能力,目標(biāo)碼碼率與實(shí)際編碼碼率之間的誤差越小,說(shuō)明算法的碼率控制能力越好,精確性越高。目標(biāo)碼率與編碼實(shí)際輸出碼率之間誤差定義為Rerror,計(jì)算公式為
式中:Rtarget為初始設(shè)置的目標(biāo)碼率;Ractual為編碼后實(shí)際的輸出碼率。
從測(cè)試結(jié)果(表3)可知,本文所提算法的實(shí)際輸出碼率與目標(biāo)碼率之間的誤差平均值在6.8%。本文算法與K0103算法[5]、HM16.9算法的碼率控制誤差基本一致。
3.2 率失真性能
率失真性能比較(以德爾塔碼率(Bj?ntegaard-Delta rate,BD-Rate)和峰值信噪比(Bj?ntegaard-Delta PSNR,BD-PSNR)形式)是視頻壓縮中使用的客觀度量指標(biāo),用于在目標(biāo)比特率下比較2種不同視頻編碼器或同一視頻編碼器的不同算法的碼率失真性能或壓縮效率,是一種常用的視頻編碼器評(píng)價(jià)方法。表4顯示了HM16.9與本文提出的新算法的測(cè)試結(jié)果。
從實(shí)驗(yàn)結(jié)果(表4)可知,相比HM16.9算法,本文提出的碼率控制算法的BD-Rate下降0.028 9%,BD-PSNR提升0.001 6%。其中,序列BlowingBubbles的BD-Rate提升0.817 6%,BD-PSNR提升0.032 3%,在低碼率下性能提升明顯。
3.3 SSIM性能比較
結(jié)構(gòu)相似度(Structure Similarity Index Measure,SSIM)是圖像主觀質(zhì)量的客觀評(píng)價(jià)指標(biāo),是一種常用的視頻編碼器評(píng)價(jià)方法。結(jié)構(gòu)相似度差值定義為
, (21)
式中:ΔSSIMnew為本文提出算法的結(jié)構(gòu)相似度指標(biāo)值。ΔSSIManchor為HM16.9算法的結(jié)構(gòu)相似度指標(biāo)值。實(shí)驗(yàn)結(jié)果見(jiàn)表5。
從測(cè)試結(jié)果(表5)可知,相比于K0103算法、HM16.9算法,本文算法的SSIM值有所提高,圖像的主觀質(zhì)量得到有效改善。以序列FourPeople為例,如圖6所示,本文算法的SSIM性能表現(xiàn)更好。
3.4 圖像主觀質(zhì)量
為了更好地衡量視頻編碼后的圖像質(zhì)量,基于人眼主觀對(duì)編碼重建視頻質(zhì)量作出評(píng)價(jià),分別針對(duì)K0103算法、HM16.9算法和本文算法對(duì)HEVC標(biāo)準(zhǔn)測(cè)試序列進(jìn)行比對(duì)測(cè)試。
圖7是序列BlowingBubbles在目標(biāo)碼率150 kbps下,3種算法編碼后的圖像效果對(duì)比。在低碼率下,本文算法的重建視頻質(zhì)量表現(xiàn)更好,小女孩的人臉部分更清晰,圖像中塊效應(yīng)更少,明顯優(yōu)于其他2種算法。
4 結(jié)論
為了提高視頻在有限帶寬下的圖像質(zhì)量,本文提出一種基于人眼顯著性區(qū)域檢測(cè)的碼率控制算法。通過(guò)像素域的JND模型來(lái)預(yù)測(cè)和指導(dǎo)LCU級(jí)碼率分配權(quán)重。其次,采用幀差法找出圖像中的SR區(qū)域。最后,結(jié)合JND模型對(duì)SR區(qū)域進(jìn)行再劃分,建立多級(jí)碼率分配模型,指導(dǎo)各區(qū)域碼率分配的選擇。實(shí)驗(yàn)結(jié)果表明,相比HM16.9算法,在保證碼率精確性的情況下,本文所提的分區(qū)域等級(jí)的碼率分配算法更符合人眼視覺(jué)特性,能夠有效提升視頻的主觀質(zhì)量。
參考文獻(xiàn):
[1] SULLIVAN,OHM J G, et al. Overview of the High Efficiency Video Coding (HEVC) Standard[J].IEEE Transactions on Circuits and Systems for Video Technology,2012,22(12):1649-1668.
[2] 楊鄭龍,王國(guó)中,朱林林.基于空-時(shí)域視覺(jué)敏感度的碼率分配算法[J].計(jì)算機(jī)應(yīng)用與軟件,2019,36(1):239-245,276.
[3] 周建政,施偉元,毛科技.一種興趣區(qū)域檢測(cè)的H.265碼率控制方法[J].浙江工業(yè)大學(xué)學(xué)報(bào),2018,46(3):316-320.
[4] 喻莉,馮慧,張軍濤,等.低碼率下基于ROI與JND的分級(jí)量化方法[J].電視技術(shù),2013,37(17):33-35.
[5] LI B,LI H,LI L. JCTVC-K0103,Rate control by R-lambda model for HEVC[S].[S.L.]: ITU-T SG16 Contribution,2012.
[6] LI B,LI H,LI L. JCTVC-M0036,Adaptive bit allocation for R-lambda model rate control in HM[C]//JCT-VC of ITU-T SG16 WP3 and ISO / IEC JTC1 / SC29 / WG11 13th Meeting,Incheon,Rep.of Korea,Doc,2013.
[7] CHUN H C, YUN C L. A perceptually tuned subband image coder based on the measure of just-noticeable-distortion profile[J].IEEE Transactions on Circuits and Systems for Video Technology,1995,5(6):467.
作者簡(jiǎn)介:亢潤(rùn)龍(1989-),男,碩士,助教。研究方向?yàn)橐曨l編解碼。