公衍超,呂顯龍,楊楷芳,劉穎,林慶帆,4,王富平
(1.西安郵電大學通信與信息工程學院,710121,西安;2.西安郵電大學電子信息現(xiàn)場勘驗應用技術公安部重點實驗室,710121,西安;3.陜西師范大學計算機科學學院,710119,西安;4.矽景公司,787820,新加坡)
近年來,隨著網(wǎng)絡、多媒體及硬件技術的飛速發(fā)展,視頻監(jiān)控作為重要的視頻應用之一,在公安安全、智能安防、智能家居等領域得到了廣泛的應用。在視頻監(jiān)控系統(tǒng)中,碼率控制是一項非常關鍵的技術,其可以在滿足信道傳輸帶寬的限制條件下,獲得更高質量的編碼重建視頻。
當前大部分的視頻監(jiān)控系統(tǒng)都屬于高清視頻監(jiān)控視頻。高清視頻可以提供更加豐富更加清晰的視頻內容。針對高清視頻,ITU-T的視頻編碼專家組和ISO/IEC的運動圖像專家組聯(lián)合制定了先進的高效視頻編碼(HEVC)標準[1-4]。與之前的H.264/AVC標準相比,HEVC采用了許多新技術[1,4],大大提高了編碼效率。在HEVC標準化過程中,根據(jù)使用的碼率R與量化參數(shù)Q的關系模型R-Q,碼率控制算法可以分為3類:基于二次R-Q模型的碼率控制算法[5],ρ域碼率控制算法[6](ρ表示量化變換系數(shù)中取值為0的系數(shù)的百分比)和λ域碼率控制算法[7](λ表示拉格朗日因子)。與前兩類碼率控制算法相比,λ域碼率控制算法的編碼效率更高,得到了更加廣泛的研究。
λ域碼率控制算法在文獻[7]中被首次提出。文獻[7]指出,相比于傳統(tǒng)的量化參數(shù),λ與碼率的關系更加密切,使用λ能更加準確地反映視頻編碼的碼率特性。由此,文獻[7]建立了以λ為紐帶的R-λ-Q模型,并基于此模型提出了面向HEVC的碼率控制算法。λ域碼率控制算法包含兩個主要步驟,即目標碼率分配和Q的確定。首先,根據(jù)信道帶寬、緩沖器狀態(tài)等因素為每個基本單元(圖像或最大編碼單元)分配合適的目標碼率。然后,根據(jù)R-λ-Q模型為每個基本單元確定優(yōu)化的Q。
近幾年,一些針對λ域碼率控制算法的改進算法被相繼提出[8-13]。文獻[8-9]面向視頻編碼中的幀內圖像提出了相應的改進算法。文獻[8]考慮并量化了幀內圖像編碼過程中的失真漂移現(xiàn)象,并將其應用于碼率控制過程中,建立了更加準確的R-λ模型。文獻[9]指出,文獻[7]提出的算法沒有有效考慮圖像的內容復雜度,因此采用梯度表征圖像的內容復雜度,構建了基于梯度的R-λ模型,用于提升幀內圖像的碼率控制性能。
在視頻編碼中,相比于幀內圖像,幀間圖像的實際應用更加廣泛。面向幀內幀間圖像混合的編碼結構,文獻[10-12]提出了改進的碼率控制算法。文獻[10]調研了HEVC隨機接入(RA)結構中時間層圖像之間的參考依賴性,并將其應用于指導不同時間層圖像目標碼率分配和量化參數(shù)確定步驟中。文獻[11]將恰可感知失真作為失真測度,提出了基于恰可感知失真的感知率失真模型R-D,并將此模型應用于傳統(tǒng)的碼率控制框架中以提高編碼視頻的主觀感知質量。文獻[12]指出,文獻[7]提出的算法在計算目標碼率分配權重時沒有有效考慮視頻的內容特性,因此進一步補充提出了考慮視頻內容特性的失真與λ的關系模型D-λ?;赗-λ與D-λ模型,文獻[12]創(chuàng)建了能夠準確反映不同視頻內容編碼失真和碼率特性的R-D模型,并進一步提出了更加優(yōu)化的目標碼率分配權重計算算法。目前的實驗證明,文獻[7,12]的算法具有高效的碼率控制性能,已經(jīng)被HEVC建議使用,并且集成到最新版本的HEVC測試模型HM中。
在λ域碼率控制算法中,目標碼率分配結果直接影響R-λ-Q模型中的碼率,顯著影響碼率控制的性能。在進行目標碼率分配時,最核心的是要給每個基本單元計算優(yōu)化的目標碼率分配權重。當前,HM中集成的碼率控制算法包含3種目標碼率分配權重的計算方式,即:平均比率的目標碼率分配權重計算、固定比率的目標碼率分配權重計算、自適應比率的目標碼率分配權重計算。然而,上述3種方式在計算目標碼率分配權重時都沒有考慮圖像間編碼參考的依賴性。HEVC和之前大部分的主流視頻編碼標準一樣,都是采用基于預測、變換、量化、熵編碼的混合編碼框架。視頻在編碼時會采用幀內預測與幀間預測技術,以消除視頻中的空域和時域冗余信息。這導致編碼圖像與其參考圖像間存在非常強的依賴關系。特別是監(jiān)控視頻,背景區(qū)域通常近似靜止,只有前景中的目標在動,所以圖像間內容的相關性更大。這最終導致相比于其他類型的視頻,監(jiān)控視頻中圖像間的編碼參考依賴性會更大。理論上而言,在設計視頻編碼的相關算法時,有效地考慮參考依賴性會顯著提高視頻編碼的效率[13-14]。
本文針對監(jiān)控視頻,提出了一種考慮編碼圖像與其所有幀間參考圖像參考依賴性的目標碼率分配權重計算算法,并基于此提出了一種有效的HEVC圖像級碼率控制算法。實驗驗證了提出算法的有效性,與HM中采用的平均比率目標碼率分配權重的碼率控制算法相比,德爾塔碼率ΔR平均降低9.54%,且碼率估計更加準確。
HM中支持全幀內、低時延(LD)和RA共3種編碼結構用于通常的視頻編碼測試及實際應用[15-16]。
圖1和圖2分別是RA結構和LD結構。在兩種結構中,視頻的第一幅圖像被編碼為即時解碼刷新圖像,剩余的圖像被編碼為通常的P或者B(GPB)圖像或B圖像。在編碼時,視頻中的圖像會被劃分到各個圖像組(GOP)。在每個GOP中,圖像被劃分到不同的時間層。在圖1和圖2中,藍色、綠色、黃色標記的圖像分別屬于第1、2、3個時間層。
rPOC—相對圖像序列號。圖1 RA結構
I1~I4—當前圖像的第1~4個參考圖像。圖2 LD結構
在圖1和圖2中,箭頭方向表示參考幀來源。在RA結構中,雙向預測技術被使用。雙向預測技術可以有效地消除視頻中的時域冗余信息,提高視頻編碼的率失真性能,但是也增大了視頻編碼的結構時延。所以,RA結構適用于對實時性要求不高的視頻應用中,例如視頻點播。相對應地,在LD結構中為了獲得低的結構時延,只有前向預測技術被使用。所以,LD結構被廣泛應用于對實時性要求較高的視頻應用中,例如視頻會議、視頻監(jiān)控。
HM使用幀間預測編碼圖像時會采用多參考圖像預測技術,即從多個備選圖像中選擇最優(yōu)的匹配信息來源。LD結構中默認的圖像組大小為4[16]。HM中LD結構對應的多參考圖像來源如表1所示,表中POC為圖像序列號,視頻編碼中通常使用POC和rPOC分別表示圖像在視頻和GOP中的位置。
表1 HM中LD結構對應的多參考圖像來源[16]
POC的初始值和最大值分別為0和Np-1,Np表示視頻中的圖像總數(shù)。rPOC的初始值和最大值分別為1和GS,GS表示GOP的大小。表1中,用當前圖像與其參考圖像之間的POC差值指示了參考圖像的來源。以第3個GOP中的第一個圖像為例,其rPOC為1,POC為x,則其對應的參考圖像序列號是分別是x-1、x-2、x-5、x-9。換言之,當前圖像的參考圖像通常包括與當前圖像相鄰的前一個已編碼的圖像和屬于最低時間層的其他3個最近的已編碼圖像。特別地,對于視頻的前幾個圖像,當其對應的已編碼的圖像不足4幅時,則參考圖像數(shù)目為實際已編碼圖像數(shù)目。
在HM碼率控制算法完成GOP級的目標碼率分配后,GOP對應的目標碼率就被確定。緊接著,需要確定GOP中的每個圖像的目標碼率分配權重,以給每個圖像分配更加合理的目標碼率。通常,重要的圖像會被分配更大目標碼率分配權重以分配更多的目標碼率,從而保證編碼質量。
HM中采用的第一種目標碼率分配權重的計算方式是平均比率的目標碼率分配權重計算,即GOP中所有圖像的目標碼率分配權重是一樣的。這種計算方式顯然是不優(yōu)化的。這是因為視頻采用LD結構編碼時,處在不同時間層的圖像的重要性是不一樣的。為了進一步提高碼率控制性能,HM也采用了固定比率的目標碼率分配權重計算和自適應比率的目標碼率分配權重計算。
固定比率的目標碼率分配權重計算首先考慮了圖像層的影響。在一個GOP中,rPOC為1、2、3、4的圖像分別處于第3、2、3、1個時間層,如圖1和圖2所示。對于整個視頻的編碼率失真性能,通常越低時間層的圖像越重要[13-14],所以越低時間層圖像對應的目標碼率分配權重應該越大。另外,這種算法也考慮了像素點碼率A的影響,A的公式為
(1)
式中:Rtar表示編碼配置文件中設置的目標碼率(b/s);f、w和h分別表示視頻的幀率、視頻圖像的寬度和高度;A表示像素點碼率(b/像素)。表2為固定比率的目標碼率分配權重。
表2 固定比率的目標碼率分配權重
使用固定比率的目標碼率分配權重計算算法時,一個視頻的所有GOP中的圖像都按表2確定目標碼率分配權重。這種算法對于運動慢的視頻是比較有效的,可以有效權衡碼率控制算法的碼率估計準確度、率失真性能和算法復雜度。但是,對于運動快、前后GOP圖像內容差別較大的視頻,固定比率的目標碼率分配權重計算算法顯然不太適用。相應地,自適應比率的目標碼率分配權重計算算法被提出。使用自適應比率的目標碼率分配權重計算算法時,視頻中的第一個GOP的圖像仍然按照表2確定圖像的目標碼率分配權重。后續(xù)的GOP利用前一個GOP中最后一個圖像的λ、預估的R-λ模型參數(shù)和層級信息動態(tài)確定GOP中各圖像的目標碼率分配權重。
通過本節(jié)分析可知,視頻采用LD結構編碼時,圖像間存在很強的編碼參考依賴關系,而HM當前采用的目標碼率分配權重計算算法雖然考慮了時間層、A、λ等因素的影響,但忽略了參考依賴關系這一重要因素。因此,本文提出了一種面向視頻監(jiān)控應用的考慮全幀間參考依賴性的目標碼率分配權重計算算法。
本文提出的全幀間參考依賴的碼率控制法包括目標碼率分配及Q的確定兩部分。目標碼率分配包括GOP級的目標碼率分配和圖像級的目標碼率分配。提出算法的GOP級的目標碼率分配和Q確定與HM中采用的算法相同,這些算法的詳細步驟本文不再詳述,具體見參考文獻[16]。本文的主要貢獻是構建了考慮全參考依賴性的失真模型,并基于此模型提出了優(yōu)化的圖像級目標碼率分配權重計算算法。
3.1.1 考慮全參考依賴性的失真模型 如第1節(jié)所述,視頻在采用LD結構編碼時,當前圖像與其參考圖像之間存在很強的參考依賴關系。當前圖像的期望失真為
(2)
表3 主要編碼參數(shù)設置
(a)Overbridge(b)Campus圖與Di,1,1的關系
特別說明,在GOP大小及參考圖像數(shù)目都默認為4的情況下,一個GOP中的所有圖像與其對應的各個參考圖像的失真關系圖一共有16幅。由于文章篇幅有限,圖3只給了部分圖像的結果,其他圖像的擬合曲線也都滿足圖3所示的冪函數(shù)形式,但是冪函數(shù)中的兩個模型參數(shù)取值有差別。最終,圖3所示的關系可以表征為
(3)
式中ai,j,r和bi,j,r是模型參數(shù)。將式(3)代入式(2),可得
(4)
3.1.2 目標碼率分配權重計算 根據(jù)拉格朗日率失真優(yōu)化[18],編碼視頻總的率失真代價為
(5)
式中:λi,j和Ri,j分別表示第i個GOP中第j個圖像的拉格朗日因子和碼率;Ng表示視頻中GOP的數(shù)量。
文獻[17]的研究表明,冪函數(shù)形式的率失真關系可以準確地描述HM編碼器的率失真特性,具體公式為
D=CR-K
(6)
式中C和K是與序列內容特征相關的模型參數(shù)。因此,拉格朗日因子被進一步求解為
λ=-?D/?R=CKR-K-1=αRβ
(7)
式中α和β是與視頻內容特性相關的模型參數(shù)。
在第3.1.1小節(jié)描述的實驗中,不僅可以獲得失真數(shù)據(jù),還可以獲得相應的碼率數(shù)據(jù)。Overbridge和Campus監(jiān)控視頻的Ri,4,1與Ri,4的關系如圖4所示,Ri,4,1與Ri,4用像素點碼率表征。
(a)Overbridge(b)Campus圖4 Ri,4,1與Ri,4的關系
圖4所示的關系可表征為
Ri,j,r=di,j,rRi,j
(8)
式中:Ri,j,r是第i個GOP中第j個圖像的第r個參考圖像的碼率;di,j,r是模型參數(shù)。將式(4)(6)(7)(8)代入式(5),得到
(9)
將式(9)對Ri,j求偏導,然后讓偏導數(shù)?J/?Ri,j為0,從而獲得使率失真代價J最小的Ri,j的優(yōu)化值Ri,j,opt。根據(jù)牛頓-拉斐遜方法[19],求得使?J/?Ri,j=0的Ri,j,opt的近似解為
(10)
式中θi,j為牛頓-拉斐遜參數(shù),公式為
(11)
其中χi,j是伸縮因子,具體取值如表4所示。
表4 χi,j取值
式(10)中的牛頓-拉斐遜參數(shù)表示圖像分配的目標碼率初始值,且牛頓-拉斐遜參數(shù)越大,給圖像分配的目標碼率通常就越多。而且,式(11)中的伸縮因子與牛頓-拉斐遜參數(shù)是正相關的。所以,圖像的伸縮因子越大,給圖像分配的目標碼率就越大。由于在LD結構中,時間層越低的圖像對于整個視頻編碼性能的影響越大[20],所以在編碼時要優(yōu)先保證低時間層圖像的質量,給低時間層圖像分配更多的目標碼率。所以,表4中隨著時間層的降低,圖像對應的伸縮因子取值是增大的趨勢。
一些實驗[16]證明,在目標碼率不充裕時,若要保證整個視頻的編碼效率,則需要優(yōu)先保證低時間層圖像的編碼質量,即給低時間層圖像分配更大比例的目標碼率。當目標碼率充裕時,低時間層圖像的編碼質量已經(jīng)很好,給其分配更多的碼率對于整個視頻編碼效率的提升也已經(jīng)不顯著了,這時把更多比例的碼率分配給其他更高時間層圖像,反而會帶來整個視頻編碼效率的明顯提升。所以,表4中隨著目標碼率的增大,時間1層圖像對應的伸縮因子與所有時間層圖像對應的伸縮因子和的比值是減少的,而其他更高時間層圖像對應的伸縮因子與所有時間層圖像對應的伸縮因子和的比值是增大的。表4中的伸縮因子的具體取值是以固定比率目標碼率分配權重計算算法中的伸縮因子取值為基礎,通過實驗調整后確定的優(yōu)化的經(jīng)驗值。
最終,GOP中每個圖像的目標碼率分配權重為
(12)
式中〈〉表示四舍五入運算。
為了便于描述,HM中采用的基于平均比率目標碼率分配權重的圖像級碼率控制算法、基于固定比率目標碼率分配權重的圖像級碼率控制算法和基于自適應比率目標碼率分配權重的圖像級碼率控制被分別簡寫為EBA-PRC、FRBA-PRC和ARBA-PRC。本文提出的碼率控制算法的完整步驟如下。
第1步 對于給定的監(jiān)控視頻,使用ARBA-PRC對前4個GOP的圖像進行編碼,獲得其編碼失真和碼率數(shù)據(jù)。根據(jù)式(3)使用最小二乘擬合算法,擬合失真數(shù)據(jù)獲得ai,j,r和bi,j,r。同理,分別根據(jù)式(6)和式(8),采用最小二乘法擬合失真和碼率數(shù)據(jù)得到Ci,j、Ki,j、Ci,j,r、Ki,j,r、di,j,r。在對相應圖像進行編碼后,Pi,j,r的準確數(shù)據(jù)可以直接統(tǒng)計得到。
第2步 根據(jù)式(10)~(12),計算獲得GOP中每個圖像對應的目標碼率分配權重,即ωi,j。
第3步 使用第2步計算得到的ωi,j對視頻后續(xù)GOP的圖像進行碼率控制。
目前,文獻[7,12]提出的碼率控制算法由于其高效的編碼性能已經(jīng)被HEVC建議使用,并被集成到HM中(包括EBA-PRC、FRBA-PRC和ARBA-PRC算法)。本文算法將與這3種算法進行比較。
測試視頻包括6個不同分辨率和內容特征的標準監(jiān)控視頻,其中:Overbridge、Crossroad、Campus視頻的空間分辨率是720×576像素,幀率是30幀/s,編碼幀數(shù)是300;Lowlight視頻的空間分辨率是1 280×720像素,幀率是30幀/s,編碼幀數(shù)是200;Metro、Runners視頻的空間分辨率是1 920×1 080像素,幀率分別是60和30幀/s,編碼幀數(shù)分別是188和300。編碼器為HM16.17,編碼結構為LD結構。首先,將HM中的碼率控制功能關閉,使用HM中固定的Q分配方式對每個測試視頻進行編碼以獲得從高到低的4個目標碼率[10]。固定的Q分配方式中幀內圖像的Q被分別設定為22、27、32、37。然后,將HM中的碼率控制功能打開,在給定的4個目標碼率下,分別用EBA-PRC、FRBA-PRC、ARBA-PRC和本文提出的算法編碼每一個測試視頻。其他的主要編碼參數(shù)設置與HM配置文件encoder_lowdelay_P_main[16]中的設置相同。
碼率估計準確度是衡量一個碼率控制算法性能關鍵的基礎性指標。只有在碼率估計準確的基礎上再分析碼率控制算法的其他性能才是有意義的。本文采用被廣泛使用的BE(BE)[7,12]來衡量碼率估計的準確度,公式為
BE=|Btar-Bact|/Btar×100%
(13)
式中Btar和Bact分別表示配置文件中設定的目標碼率和碼率控制算法的實際碼率(kb/s)。
表5為各種碼率控制算法的BE。BE越小,對應的碼率控制算法獲得的碼率估計誤差越小,即碼率估計更加準確。可以看出,對于大部分視頻,本文算法都可以獲得最小的BE,且對于所有的視頻,提出算法對應的平均BE也是最小的,為0.223 2%。所以,相較其他3種算法,本文算法的碼率估計更加準確。
表5 不同碼率控制算法的BE %
采用被廣泛使用的ΔR[21]衡量碼率控制算法的率失真性能,ΔR為負值時表示與基準算法相比,比較算法可以用更少的碼率獲得同等質量的編碼重建視頻,即比較算法的率失真性能越好。本文實驗在計算ΔR時將EBA-PRC算法設定為基準算法,其中視頻質量用像素亮度分量的峰值信噪比衡量。
表6為4種碼率控制算法對應的ΔR。可以看出:對于所有的視頻,本文算法對應的ΔR最小,即率失真性能更好;與EBA-PRC相比,對于所有視頻,本文算法的ΔR為-9.54%,即本文算法可以在獲得同等質量重建視頻的前提下,碼率減少9.54%;FRBA-PRC算法與ARBA-PRC算法的性能近似,FRBA-PRC可以獲得更加準確的碼率估計,而ARBA-PRC可以獲得更高的率失真性能。
表6 不同碼率控制算法的ΔR %
采用編碼時間衡量算法的運行復雜度,公式為
ΔT=(Tcom-Tbac)/Tbac×100%
(14)
式中:Tbac表示EBA-PRC算法對應的編碼時間;Tcom表示其他碼率控制算法對應的編碼時間。
表7為4種碼率控制算法對應的ΔT。可以看出:與EBA-PRC算法相比,FRBA-PRC、ARBA-PRC、本文算法的編碼時間都更短,且ΔT取值近似,對于所有測試視頻,平均ΔT分別為-0.03%、-0.04%、-0.02%。
表7 不同碼率控制算法的ΔT %
從目標碼率分配權重計算的角度分析,EBA-PRC算法和FRBA-PRC算法對應的目標碼率分配權重的計算過程是很簡單的,而ARBA-PRC算法與本文算法在計算圖像的目標碼率分配權重時都需要更加復雜的參數(shù)更新與優(yōu)化過程,所以復雜度相對較高。但是,相較于EBA-PRC算法,FRBA-PRC、ARBA-PRC、本文算法都會增大高時間層圖像的Q,且高時間層圖像數(shù)占視頻總圖像數(shù)的比例更大。一些編碼實驗[10]已經(jīng)證明,使用大的Q編碼圖像會顯著降低圖像的編碼時間。綜上所述,雖然EBA-PRC算法中簡單的目標碼率分配權重計算會節(jié)約一部分編碼時間,但是由于會給高時間層圖像選擇更大的Q,所以總的編碼時間是最長的。
在圖像級碼率控制算法中,優(yōu)化的圖像目標碼率分配權重是影響算法性能的關鍵因素。HEVC標準中的碼率控制算法在計算目標碼率分配權重時未考慮幀間參考依賴性,編碼效率低。本文針對HEVC編碼的監(jiān)控視頻,提出了一種有效的考慮全幀間參考依賴性的圖像級碼率控制算法。本文得出的主要結論及對未來工作的展望如下。
(1)在監(jiān)控視頻HEVC碼率控制中,考慮當前幀與其所有參考幀之間的參考依賴關系可以構建更加準確地反映編碼特性的率失真代價函數(shù),顯著提高碼率控制算法的性能。
(2)本文的考慮全參考依賴關系的思路也可以被拓展應用到針對RA結構的的碼率控制算法設計中。RA結構與本文研究的LD結構類似,也采用了多參考幀預測技術,但其新增加了后向的參考幀來源。
(3)本文的考慮全參考依賴關系的思路也可以應用到針對其他類型視頻的碼率控制算法設計中,例如電影電視視頻。但是,其他類型的視頻通常會包括運動快的視頻。針對運動快的視頻,本文算法中提出的一些模型的具體形式、模型參數(shù)的獲得算法及算法步驟的設計都需要進一步進行性能驗證或做相應的調整。