, , ,
(福州大學(xué)物理與信息工程學(xué)院,福州 福建 350116)
全景視頻是由多個攝像機(jī)同步運動拍攝得到的視頻內(nèi)容信息經(jīng)過拼接而成的球形視頻,現(xiàn)有HTC Vive、HoloLens等終端設(shè)備均支持全景視頻的播放[1]。但由于視頻自身的高分辨率和高幀率特性,在傳輸時需要通過碼率控制以達(dá)到當(dāng)前帶寬下視頻質(zhì)量最大化的目的[2]。
為了在編碼器中實現(xiàn)比特分配,碼率控制模塊通過圖像組(Group of Picture, GOP)、幀以及最大編碼單元(Largest Coding Unit, LCU)的逐級分配方案,實現(xiàn)了比特的合理分配并保障了視頻的質(zhì)量。文獻(xiàn)[3]提出了逐級分配的碼率控制方案,奠定了碼率控制流程的基礎(chǔ),文獻(xiàn)[4]改善了幀內(nèi)比特分配的模型,進(jìn)一步提高了碼率控制模塊的性能,文獻(xiàn)[5]中通過大量實驗得到了較為準(zhǔn)確的率失真信息,并以此為依據(jù)修改碼率控制中的分配模型,優(yōu)化了幀間與幀內(nèi)的比特分配。
但針對近年逐漸興起的全景視頻,現(xiàn)有編碼器效率存在進(jìn)一步提升的空間,因此需要改進(jìn)現(xiàn)有碼率控制模塊中的比特分配方案。設(shè)計適用于全景視頻的分配方案。文章分析了現(xiàn)有編碼器的碼率控制流程,并針對全景視頻的特性,研究了全景視頻在編碼器中的性能表現(xiàn),并以此為依據(jù)提出了一種改進(jìn)的全景視頻的比特分配方案。
碼率控制作為編碼器中的重要部分,其標(biāo)準(zhǔn)由聯(lián)合視頻編碼組提出。標(biāo)準(zhǔn)中規(guī)定,視頻的碼率控制分為圖像組、幀以及最大編碼單元三部分,各單位分配完比特后計算相應(yīng)的量化參數(shù)(Quantization parameter,QP)進(jìn)行實際編碼。
1.1.1 GOP的比特分配
碼率控制最先需要解決的是GOP的比特分配,通過式(1)和式(2)得到當(dāng)前GOP所分配的比特數(shù)。
TGOP=[Ravg·(Ncoded+SW)-Rcoded]/SW
(1)
Ravg=Rtar/f
(2)
其中Ravg表示每幀的平均比特數(shù),Ncoded表示已編碼幀數(shù),SW表示滑動窗口,默認(rèn)設(shè)置為40,Rcoded表示已編碼比特數(shù),Rtar表示視頻目標(biāo)比特數(shù),f表示視頻總幀數(shù)。
1.1.2 各幀的比特分配
在GOP分配比特確定之后,需要根據(jù)GOP中各幀的權(quán)重分配比特,文獻(xiàn)[1]中通過大量的實驗,對不同編碼方式的各幀權(quán)重進(jìn)行了規(guī)定,當(dāng)前幀分配的比特數(shù)計算公式如下:
(3)
其中RGOPcoded表示GOP中已編碼的比特數(shù),ωcurPic為當(dāng)前幀的權(quán)重,N表示當(dāng)前GOP中未編碼的幀數(shù)。
1.1.3 最大編碼單元的比特分配
碼率控制中進(jìn)行比特分配的最小單位是最大編碼單元,在當(dāng)前幀的比特分配完畢后,需要對幀內(nèi)所有的最大編碼單元進(jìn)行比特分配,公式如下:
(4)
其中Bithead表示頭比特數(shù)信息,RPiccoded表示當(dāng)前幀已編碼比特數(shù),M表示未編碼的LCU個數(shù),ωcurLCU為當(dāng)前LCU的權(quán)重。
通過GOP、幀以及LCU三步的比特分配,可以確定各單位的比特分配情況,根據(jù)得到的比特數(shù)計算各單位的量化參數(shù)。
根據(jù)分配到的比特數(shù)可以計算出每個像素的目標(biāo)比特數(shù)(bit per pixel, bpp),根據(jù)bpp可以得到各單位的量化參數(shù),碼率控制標(biāo)準(zhǔn)在計算量化參數(shù)時引入了一個中間變量,這是因為直接根據(jù)bpp得到量化參數(shù)的誤差較大,中間變量起到了過渡的作用,降低了計算誤差,公式如下:
λ=α·bppβQP=4.2005lnλ+13.7122
(5)
QP=4.2005lnλ+13.7122
(6)
其中λ是計算LCU比特數(shù)和量化參數(shù)之間關(guān)系的中間變量,α和β為模型參數(shù),分別設(shè)置為3.2003和-1.367。
碼率控制通過三步的比特分配方案計算出各單位的比特信息,并得到對應(yīng)的量化參數(shù)用于實際編碼,這一碼率控制流程保證了在給定傳輸帶寬的條件下,編碼后的視頻性能較好。對于全景視頻而言,由于分辨率和幀率較高,整體的傳輸碼率也遠(yuǎn)超普通視頻,這也給現(xiàn)有的碼率控制模塊帶來了新的挑戰(zhàn)。全景視頻的高幀率保證了視頻觀看的流暢性,但也使總體的碼率提高,高分辨率導(dǎo)致幀內(nèi)的最大編碼單元數(shù)目增多,對于幀內(nèi)的比特分配提出了更高的要求。因此碼率控制中的幀間和幀內(nèi)的比特分配需要根據(jù)全景視頻的特性進(jìn)行優(yōu)化,以保證全景視頻的編碼性能。
幀間與幀內(nèi)的比特分配方案影響視頻整體的質(zhì)量,針對全景視頻,通過分析經(jīng)過投影變換后的視頻在編碼中的性能表現(xiàn),并以此作為指導(dǎo)依據(jù),改進(jìn)碼率控制中的幀間與幀內(nèi)分配方案。
全景視頻由多個鏡頭在運動時同步進(jìn)行拍攝,并將得到的視頻信息進(jìn)行拼接,獲得最終的球形視頻[6]。但現(xiàn)有的HEVC編碼器只支持對平面視頻的處理,對于球形視頻,編碼器只有將視頻轉(zhuǎn)換為平面視頻后才能進(jìn)行處理,因此在對全景視頻進(jìn)行編碼時需要將其進(jìn)行投影變換[7],該過程如圖1所示。
圖1 全景視頻的投影
在圖1中,全景視頻在進(jìn)行投影變換的過程中,為了使最終獲取視頻符合矩形特性,保障編碼器能對視頻內(nèi)容進(jìn)行正常處理,需要將全景視頻不同緯度的區(qū)域進(jìn)行拉伸,因此投影變換導(dǎo)致這些區(qū)域存在不同程度的失真,并且靠近兩極區(qū)域的視頻失真較大,靠近赤道區(qū)域的視頻內(nèi)容保留較好。為了研究緯度因素在編碼器中的影響,以作為指導(dǎo)比特分配的依據(jù)。在量化參數(shù)為27的情況下,自上往下將視頻分為6個區(qū)域,統(tǒng)計不同區(qū)域的比特分配情況。結(jié)果如圖2所示。
圖2 幀內(nèi)各區(qū)域的比特分配
圖2表明,視頻不同區(qū)域的比特分配存在差異性,靠近兩極的區(qū)域,分配的比特數(shù)較少,而在中間區(qū)域,分配的比特數(shù)較多。根據(jù)這一特性,通過對全景視頻不同緯度的視頻內(nèi)容分配不同的比特數(shù),可以起到提升視頻總體質(zhì)量的效果。
全景視頻在GOP中各幀的比特分配同樣需要進(jìn)行研究,幀間比特分配的準(zhǔn)確與否直接影響幀內(nèi)比特分配的有效性。為了研究幀間的比特分配,在低延遲編碼結(jié)構(gòu)、量化參數(shù)為27的條件下,統(tǒng)計GOP內(nèi)各幀的比特占GOP總比特數(shù)的比例,結(jié)果如圖3所示。
圖3表明,在全景視頻中,GOP中序號為4的幀占整體比特數(shù)的比例較大,達(dá)到了0.7,而在普通測試序列中,第4幀的比例在0.6左右。比例的變化導(dǎo)致全景視頻在幀間比特分配時的權(quán)重需要進(jìn)行調(diào)整。
圖3 GOP內(nèi)各幀比特所占比例
在得到全景視頻幀間及幀內(nèi)的特性后,改進(jìn)現(xiàn)有碼率控制中的分配模型,使其適用于全景視頻。在分配給GOP的比特數(shù)確定之后,需要對GOP內(nèi)各幀以及幀內(nèi)部分進(jìn)行比特分配,針對幀間和幀內(nèi)的比特分配進(jìn)行優(yōu)化,達(dá)到提升碼率控制性能的目的。
2.2.1 幀間比特分配方案
原始碼率控制中GOP各幀的分配比特依據(jù)的是恒定的權(quán)重值,這種根據(jù)經(jīng)驗設(shè)定的權(quán)重值是在對普通視頻進(jìn)行大量測試的情況下得到的。在普通視頻中,GOP的比特分配確定后,通過對bpp的不同設(shè)定不同幀的分配權(quán)重,如表1所示。
表1 GOP各幀比特分配權(quán)重
表1表示編碼順序為1~4的幀在bpp不同的情況下的權(quán)重分配,bpp反映了視頻的內(nèi)容與紋理信息,因此可以指導(dǎo)權(quán)重的設(shè)定。全景視頻而言的bpp較大,根據(jù)bpp的不同對權(quán)重分配進(jìn)行微調(diào)的作用不大。借助第二章對幀間比特分配比例的分析,全景視頻GOP內(nèi)各幀的分配權(quán)重可以在表1的基礎(chǔ)上進(jìn)一步優(yōu)化。設(shè)定
ω1∶ω2∶ω3∶ω4=2∶3∶2∶20
(7)
其中ω1~ω4表示GOP內(nèi)各幀的權(quán)重,根據(jù)權(quán)重可以得到各幀的比特數(shù),權(quán)重分配的準(zhǔn)確保證了幀間分配的準(zhǔn)確性,也是整體性能優(yōu)化的前提。
2.2.2 幀內(nèi)比特分配方案
在得到當(dāng)前幀分配的比特數(shù)TcurPic后,根據(jù)通過式(8)得到各緯度區(qū)域的比特數(shù)。
(8)
其中x為當(dāng)前區(qū)域在幀中的序號,p表示共有的區(qū)域數(shù)。
分配完各區(qū)域的比特數(shù)后,對于區(qū)域內(nèi)部的各LCU單元,采用平均分配的方法,以保障區(qū)域內(nèi)部比特分配的公平性,同時也確保區(qū)域內(nèi)部的質(zhì)量變化不大,整體觀看效果較好,對于區(qū)域內(nèi)的LCU,分配的公式如下:
(9)
其中k表示區(qū)域內(nèi)部LCU的個數(shù)。
在各單位的比特分配都已確定之后,通過式(5)和式(6)得到對應(yīng)的量化參數(shù),并通過量化參數(shù)進(jìn)行實際的編碼。
為了驗證比特分配方案的有效性,選取6個全景視頻測試序列進(jìn)行測試,其中DrivingInCity、DrivingInCountry和AerialCity的分辨率為3840×1920,幀數(shù)為300,幀率為30。Hangpai_1、Hangpai_3和Fengjing_3的分辨率為4096×2048,幀數(shù)為300,幀率為30。
實驗中,使用JVET-F1030規(guī)定的全景視頻測試標(biāo)準(zhǔn)環(huán)境[8], 軟件平臺為HM-16.15,編碼方式為Low-Delay main10, GOP大小為4,采用等距長方體的投影方式,將球形視頻進(jìn)行投影,之后進(jìn)入編碼器處理,在比特數(shù)為0.5Mbps、1Mbps、2Mbps、4Mbps的情況下進(jìn)行測試。
將該方案與HEVC原始編碼器進(jìn)行性能比較,以體現(xiàn)該算法的有效性。由于WS-PSNR指標(biāo)相對于PSNR,能更好地反映全景視頻的質(zhì)量[9],并且WS-PSNR這一指標(biāo)在全景視頻的性能測試中應(yīng)用廣泛,因此測試分配方案的WS-PSNR平均提升量和比特誤差率,作為視頻的客觀評價指標(biāo)。其中WS-PSNR提升量直接反映該方案對比原始方案的效果提升,比特誤差率反映算法在編碼時的比特分配準(zhǔn)確性,保證了比特分配的準(zhǔn)確性。比特誤差率的計算公式如下所示。
(10)
其中Ractual表示實際比特,Rtarget表示目標(biāo)比特,測試結(jié)果如表2所示。
表2 測試序列的客觀評價指標(biāo)
由表2可得,該算法在不同比特率下均有一定程度的性能提升,WS-PSNR的性能提升平均為 0.0923,比特誤差率平均為0.17%,保證了比特分配的準(zhǔn)確性。相較于原始編碼器的碼率控制算法,該算法在保證誤差率的前提下,性能優(yōu)于原始算法。
為了直觀反映算法的性能提升,比較了該算法和原始碼率控制算法的BD-Rate指標(biāo),BD-Rate指標(biāo)表示在同等的WS-PSNR指標(biāo)下,算法相較于原始模型的比特減少量,如表3所示。
表3 測試序列的BD-Rate指標(biāo)
由表3可得,同等碼率下,比特分配方案的BD-Rate性能平均減少了3.70%,即使用較少的比特數(shù)便可達(dá)到相同的視頻質(zhì)量,因此提出的分配方案在碼率控制中的性能表現(xiàn)優(yōu)異。
針對全景視頻高分辨率和高幀率的特性,在分析編碼器碼率控制流程的基礎(chǔ)上,研究了全景視頻幀間以及幀內(nèi)的比特分配情況,并在此基礎(chǔ)上提出了一種改進(jìn)的全景視頻比特分配方案,通過對GOP內(nèi)各幀的權(quán)重進(jìn)行調(diào)整,提高了幀間分配模型的準(zhǔn)確性,并借助緯度特性,實現(xiàn)了幀內(nèi)比特的優(yōu)化分配。實驗結(jié)果表明,該分配方案的BD-Rate性能平均減少了3.70%,在傳輸帶寬確定的情況下,較原始的比特分配方案有更好的性能表現(xiàn)。