程寶平 陶曉明 黃敏峰 謝小燕 杜金 楊栩
摘 要:基于高效視頻編碼標(biāo)準(zhǔn)的x265編碼器根據(jù)圖像復(fù)雜度來(lái)分配比特,復(fù)雜圖像往往包含運(yùn)動(dòng)變化較大的高頻信息,其時(shí)域相關(guān)性較弱且消耗較多比特,導(dǎo)致分配給運(yùn)動(dòng)變化平緩圖像的比特減少,進(jìn)而影響編碼質(zhì)量且碼率波動(dòng)較大。同時(shí),x265編碼器采用獨(dú)立率失真優(yōu)化技術(shù)編碼,忽略了編碼單元間在時(shí)域上的相關(guān)性,進(jìn)而損失編碼性能。針對(duì)上述問(wèn)題,提出一種基于時(shí)域依賴(lài)的編碼樹(shù)單元級(jí)碼率控制算法。首先,根據(jù)迭代策略尋找最合適的量化參數(shù)進(jìn)行幀級(jí)比特分配;其次,建立零延時(shí)的失真時(shí)域反向傳播模型并計(jì)算失真影響因子;最后,將失真影響因子用于調(diào)整編碼單元的拉格朗日乘子及量化參數(shù)。實(shí)驗(yàn)結(jié)果顯示,相較于x265-3.6的碼率控制算法,所提算法的平均BD-rate碼率節(jié)省達(dá)到5.6%。
關(guān)鍵詞:比特分配;拉格朗日乘子;碼率控制;量化參數(shù);x265
中圖分類(lèi)號(hào):TN919.81?? 文獻(xiàn)標(biāo)志碼:A??? 文章編號(hào):1001-3695(2024)05-029-1489-07
doi: 10.19734/j.issn.1001-3695.2023.09.0428
CTU level zero-delay rate control algorithm based on temporal dependency
Abstract:The x265 encoder, based on the efficient video coding standard, allocates bits according to the complexity of the image. Complex images often include high-frequency information with significant motion changes, characterized by weak temporal correlation and high bit consumption. This results in a reduction of bits assigned to images with smooth motion changes, consequently affecting encoding quality and causing significant bitrate fluctuations. Additionally, the x265 encoder employs independent rate-distortion optimization techniques for encoding, neglecting the temporal correlation between encoding units and consequently leading to a loss in encoding performance. To address these issues, this paper proposed a temporal-dependent coding tree unit-level rate control algorithm. Firstly, it explored the most suitable quantization parameters for frame-level bit allocation based on an iterative strategy. Secondly, it established a distortion temporal back-propagation model and calculated distortion impact factors. Lastly, it used these distortion impact factors to adjust the Lagrange multipliers and quantization parameters of coding units. Experimental results demonstrate that compared to the rate control algorithm of x265-3.6, the proposed algorithm achieves an average BD-rate savings of 5.6%.
Key words:bit allocation; Lagrange multiplier; rate control; quantization parameter; x265
0 引言
碼率控制(RC)[1]是數(shù)字視頻編碼中的一個(gè)重要技術(shù),它在視頻編碼過(guò)程中起到關(guān)鍵的作用,旨在平衡視頻質(zhì)量、壓縮效率和傳輸需求。隨著數(shù)字視頻應(yīng)用的普及,如實(shí)時(shí)視頻通信、流媒體傳輸、廣播和存儲(chǔ)等領(lǐng)域,高效的碼率控制算法成為實(shí)現(xiàn)優(yōu)質(zhì)視覺(jué)體驗(yàn)的關(guān)鍵一環(huán)。
數(shù)字視頻編碼技術(shù)的目標(biāo)是將原始視頻信號(hào)進(jìn)行高效壓縮,以便在有限的帶寬、存儲(chǔ)和傳輸資源下進(jìn)行傳輸和存儲(chǔ)。在這一過(guò)程中,碼率控制扮演著調(diào)整壓縮比特率的角色,以滿(mǎn)足特定應(yīng)用場(chǎng)景下的質(zhì)量和帶寬要求。通過(guò)動(dòng)態(tài)分配比特率,碼率控制可以在不同時(shí)間段對(duì)視頻質(zhì)量進(jìn)行權(quán)衡,從而在網(wǎng)絡(luò)傳輸或存儲(chǔ)媒體時(shí)實(shí)現(xiàn)平滑的視覺(jué)體驗(yàn)。然而,碼率控制面臨著多重挑戰(zhàn)。首先,不同視頻片段的復(fù)雜性和動(dòng)態(tài)性會(huì)導(dǎo)致難以預(yù)測(cè)的碼率變化,要求碼率控制算法能夠靈活地適應(yīng)各種場(chǎng)景。其次,碼率控制需要在保證視頻質(zhì)量的前提下盡可能地減小比特率,以節(jié)省帶寬和存儲(chǔ)空間。這涉及到要如何在編碼過(guò)程中動(dòng)態(tài)分配比特率,以獲得最佳的視覺(jué)感知質(zhì)量。由于傳輸帶寬的限制,大多數(shù)應(yīng)用場(chǎng)景采用的是有損視頻編碼,即在保證一定編碼質(zhì)量的情況下盡可能降低編碼碼流大小。雖然碼率控制技術(shù)并沒(méi)有在編碼標(biāo)準(zhǔn)中指定,但是其對(duì)于提高編碼性能而言是非常重要的。當(dāng)編碼器產(chǎn)生的碼流大于傳輸帶寬時(shí),接收端會(huì)產(chǎn)生解碼延時(shí),嚴(yán)重時(shí)會(huì)導(dǎo)致丟包,進(jìn)而引起網(wǎng)絡(luò)擁塞。當(dāng)編碼器產(chǎn)生的碼流小于傳輸帶寬時(shí),會(huì)導(dǎo)致帶寬資源的浪費(fèi)。另外,如果編碼器所產(chǎn)生的碼流大小不穩(wěn)定,則會(huì)使視頻的質(zhì)量劇烈波動(dòng),從而產(chǎn)生難以接受的主觀質(zhì)量。
目前,碼率控制技術(shù)通過(guò)控制編碼參數(shù)來(lái)控制生成的碼流,包括變換系數(shù)零系數(shù)比例、量化參數(shù)、拉格朗日乘子等。具體應(yīng)該選擇哪個(gè)關(guān)鍵參數(shù)來(lái)建立碼率控制模型,與編碼標(biāo)準(zhǔn)和具體的編碼器設(shè)計(jì)相關(guān),因?yàn)椴煌木幋a標(biāo)準(zhǔn)規(guī)定了可以使用的工具,而具體的編碼器又是在編碼標(biāo)準(zhǔn)的基礎(chǔ)上進(jìn)行工具縮減或優(yōu)化。與編碼參數(shù)對(duì)應(yīng),碼率控制技術(shù)經(jīng)歷了在ρ域[2]、Q域[3]以及λ域[4]建立符合視頻圖像特征的率失真(rate-distortion,R-D)模型,并在該模型下進(jìn)行比特分配和碼率控制。相對(duì)其他參數(shù),拉格朗日乘子對(duì)碼率控制有著明顯優(yōu)勢(shì)。因?yàn)樵诼适д娲鷥r(jià)函數(shù)中,拉格朗日乘子直接作用在碼率變量上,對(duì)碼率的控制更加直接[5],模型參數(shù)設(shè)計(jì)簡(jiǎn)單,便于估計(jì)和更新,H.265/(high efficiency video coding,HEVC)[6]及H.266/(versatile video coding,VVC)[7, 8]編碼標(biāo)準(zhǔn)確立了λ域的碼率控制技術(shù),x265[9]也以拉格朗日乘子作為碼率控制的關(guān)鍵參數(shù),并確立了拉格朗日乘子和量化參數(shù)之間的映射關(guān)系。目前,學(xué)術(shù)界對(duì)碼率控制的研究主要集中在優(yōu)化圖像組(group of pictures,GoP)級(jí)比特分配[10]、優(yōu)化幀級(jí)比特分配[11~13]以及優(yōu)化編碼樹(shù)單元(coding tree unit,CTU)級(jí)比特分配[1,14~16]。
雖然碼率控制技術(shù)在實(shí)際應(yīng)用中非常重要,但是編碼標(biāo)準(zhǔn)并未對(duì)其作出明確的規(guī)定,不同的編碼器可以自由地設(shè)計(jì)自 己的碼率控制算法。目前工業(yè)界普遍使用的x265編碼器,其高效實(shí)用的碼率控制算法可以產(chǎn)生平穩(wěn)的碼流,同時(shí)會(huì)根據(jù)編碼單元的重要性進(jìn)行自適應(yīng)比特分配,指導(dǎo)編碼器在目標(biāo)碼率下編碼出更小的碼流。但是x265編碼器的碼率控制算法存在如下問(wèn)題。首先,當(dāng)前編碼器僅單純根據(jù)圖像復(fù)雜度來(lái)分配比特,碼流波動(dòng)較大,導(dǎo)致率失真性能較差,主要原因?yàn)閺?fù)雜度較高的圖像高頻信息較多,這類(lèi)圖像較大概率存在運(yùn)動(dòng)目標(biāo),其編碼質(zhì)量對(duì)后續(xù)圖像的影響反而較小,如果將有限的大多數(shù)比特分配給這種含有較多高頻信息的圖像,會(huì)相對(duì)減少其余圖像的編碼比特,而人眼對(duì)這部分運(yùn)動(dòng)平緩的視頻圖像更加敏感,這也會(huì)影響編碼的主觀質(zhì)量,所以如果直接根據(jù)圖像復(fù)雜度來(lái)分配比特,會(huì)極大損失率失真性能。其次,x265編碼器仍然采用獨(dú)立率失真優(yōu)化(independent rate distortion optimization,IRDO)技術(shù),其碼率控制算法也是基于編碼參數(shù)相互獨(dú)立的率失真優(yōu)化技術(shù)。然而,根據(jù)幀間預(yù)測(cè)技術(shù)以及運(yùn)動(dòng)向量預(yù)測(cè)技術(shù),時(shí)域上相鄰的編碼單元間存在極強(qiáng)的相關(guān)性,尤其是參考單元的編碼失真對(duì)后續(xù)編碼單元的失真有非常大的影響,特別是采用SKIP編碼模式[6]的編碼單元的失真完全由其參考單元的編碼失真決定。因此,基于時(shí)域依賴(lài)的率失真優(yōu)化技術(shù)(temporal dependent rate distortion optimization,TDRDO)[17~23]對(duì)于提升編碼器的率失真性能尤其重要,然而,TDRDO還未應(yīng)用到x265的碼率控制算法中。雖然x265根據(jù)時(shí)域依賴(lài)特性采用cuTree來(lái)優(yōu)化編碼,但是會(huì)緩存幀進(jìn)而產(chǎn)生延時(shí),不利于實(shí)時(shí)通信或者對(duì)延時(shí)非常敏感的應(yīng)用場(chǎng)景。而本文采用后向失真?zhèn)鞑ユ渷?lái)量化時(shí)域依賴(lài)大小,不存在緩存和時(shí)延。
本文針對(duì)x265 編碼器的碼率控制算法進(jìn)行研究。首先,幀級(jí)采用迭代算法找到最合適的QP使得ABR模式下I幀和P幀分配的比特接近CQP模式下I幀和P幀的編碼比特;其次,編碼樹(shù)單元級(jí)采用基于時(shí)域依賴(lài)的碼率控制算法,根據(jù)不同編碼樹(shù)單元的失真影響大小來(lái)調(diào)整編碼參數(shù),以期在相同碼率下,通過(guò)優(yōu)化編碼參數(shù)來(lái)得到更高的視頻質(zhì)量及編碼性能;最后,通過(guò)建立反向失真?zhèn)鞑ユ渷?lái)求解失真影響因子,這種方式不用緩存編碼幀,而是利用已編碼幀的信息來(lái)計(jì)算失真影響因子,極大地降低了編碼復(fù)雜度。
1 基于時(shí)域依賴(lài)的碼率控制
1.1 基于復(fù)雜度預(yù)分析的幀級(jí)比特分配
碼率控制算法的一般步驟為:根據(jù)編碼幀特性、碼率控制目標(biāo)等因素確定當(dāng)前幀的目標(biāo)比特,將目標(biāo)比特代入碼率控制模型計(jì)算關(guān)鍵控制參數(shù)的值,利用關(guān)鍵控制參數(shù)確定量化參數(shù)、拉格朗日乘子、編碼模式等編碼參數(shù)。
x265 編碼器作為一款通用性非常強(qiáng)的編碼器,針對(duì)瞬時(shí)碼率、單幀碼率以及平均碼率等提供了多種靈活的碼率控制模式,即定量化參數(shù)模式(constant quantization parameter,CQP)、固定瞬時(shí)碼率模式(constant bitrate,CBR)、平均碼率模式(average bitrate,ABR)、有緩存的可變碼率模式(variable bitrate,VBR)和固定碼率因子模式(constant rate factor,CRF)。本文討論的是對(duì)平均碼率模式ABR算法的優(yōu)化。ABR模式的應(yīng)用場(chǎng)景有很多,比如流媒體、直播等場(chǎng)景。因?yàn)閷?duì)于瞬時(shí)碼率的準(zhǔn)確度要求不高,只需要一次編碼,編碼復(fù)雜度低、速度快,另外,控制短時(shí)間內(nèi)的平均碼率可以兼顧對(duì)視頻質(zhì)量和帶寬的要求。
x265的ABR碼率控制算法首先進(jìn)行圖像降采樣并進(jìn)行預(yù)分析,計(jì)算當(dāng)前幀的編碼復(fù)雜度,編碼復(fù)雜度由預(yù)測(cè)殘差的哈達(dá)瑪變換絕對(duì)值之和(sum of absolute transformed difference,SATD)代替率失真代價(jià);再統(tǒng)計(jì)歷史編碼過(guò)程產(chǎn)生的累積復(fù)雜度以及累積碼率,計(jì)算碼率控制模型參數(shù)。
Csum(i)=0.5Csum(i-1)+Satd(i)(1)
其中:Csum(i)表示編碼第i幀時(shí)的累計(jì)復(fù)雜度;Satd(i)表示第i幀的預(yù)測(cè)殘差的哈達(dá)瑪變換絕對(duì)值之和。為了保證碼率和質(zhì)量的穩(wěn)定,x265編碼器為當(dāng)前幀估計(jì)編碼參數(shù)時(shí)考慮的并不只是當(dāng)前編碼幀的信息,而是采用這種時(shí)域加權(quán)的方式,將最近編碼的幾幀編碼信息也考慮在內(nèi)。采用0.5的衰減系數(shù),將歷史信息納入當(dāng)前幀的編碼信息中。而累計(jì)加權(quán)幀數(shù)為
N(i)=0.5×N(i-1)+1(2)
其中:N(i)為編碼第i幀時(shí)的累計(jì)加權(quán)幀數(shù)。則當(dāng)前編碼幀的模糊復(fù)雜度為
再根據(jù)復(fù)雜度計(jì)算當(dāng)前編碼幀的拉格朗日乘子:
其中:s為比例系數(shù)。最后根據(jù)λ計(jì)算當(dāng)前幀編碼的量化參數(shù),即
QP=12+6×log2(λ/0.85)(5)
1.2 優(yōu)化幀級(jí)比特分配
幀級(jí)碼率控制可以認(rèn)為是在滿(mǎn)足目標(biāo)碼率的要求下,選擇一組幀級(jí)編碼參數(shù),假設(shè)編碼n幀圖像,目標(biāo)碼率為RT,目標(biāo)就是如何選擇一組參數(shù)(QP1,QP2,…,QPn)來(lái)進(jìn)行編碼,使得其產(chǎn)生的碼流滿(mǎn)足要求。參數(shù)的選擇實(shí)際相當(dāng)于在多維的參數(shù)空間尋找滿(mǎn)足要求的點(diǎn),只關(guān)注碼流的大小時(shí),可以用多維變量(R1,R2,…,Rn)表示生成的碼流,以滿(mǎn)足碼率控制的目標(biāo),表示為
根據(jù)式(6)可知,滿(mǎn)足條件的編碼參數(shù)集合(QP1,QP2,…,QPn)是n維參數(shù)空間的一個(gè)平面,滿(mǎn)足碼率控制條件的幀級(jí)量化參數(shù)組合有無(wú)數(shù)種。x265的ABR算法通過(guò)啟發(fā)式搜索方式,按照編碼順序,不斷地根據(jù)前一幀編碼的實(shí)際大小調(diào)整后一幀的參數(shù),通過(guò)后續(xù)幀的碼率調(diào)整使整體的碼率和滿(mǎn)足要求,從而確定參數(shù)平面中最優(yōu)的編碼參數(shù)向量。這種啟發(fā)式的算法最終可以找到滿(mǎn)足條件的編碼參數(shù),但是在最小失真的 要求下,x265的ABR算法往往無(wú)法得到一個(gè)令人滿(mǎn)意的解。主要原因是:在x265啟發(fā)式的幀級(jí)碼率分配算法下,忽略了編碼幀之間的重要性關(guān)系,所有幀具有相同的目標(biāo)碼率。在x265的CQP編碼模式下,由于沒(méi)有目標(biāo)碼率的限制,相當(dāng)于在更大的模式空間中進(jìn)行模式選擇,編碼器可以搜索到更優(yōu)的編碼模式。圖1是測(cè)試序列BodeMuseum在兩種編碼模式下的率失真性能對(duì)比。編碼同一個(gè)序列,在相近的編碼質(zhì)量下,CQP較ABR模式節(jié)省38.96%的碼率。CQP相較于ABR模式,最大的區(qū)別在于不同幀之間的碼率分配,CQP模式下,不同幀之間的碼率分配充分反映了幀之間的編碼復(fù)雜度。于是本文對(duì)原x265編碼算法進(jìn)行優(yōu)化,在碼率分配時(shí),利用幀級(jí)編碼復(fù)雜度進(jìn)行編碼比特估計(jì),在保持CQP模式相同的碼率比例條件下進(jìn)行碼率分配。
CQP編碼模式下,編碼器只需要指定P幀的編碼QP,編碼器通過(guò)ipfactor參數(shù)計(jì)算I幀的編碼參數(shù),從而得到整個(gè)碼流。具體而言,在ABR編碼模式下,根據(jù)ipfactor參數(shù)遍歷所有可能QP,尋找最接近目標(biāo)碼率下的碼率分配比例。最終選擇QP為22時(shí)CQP的對(duì)比結(jié)果(圖2),其中每一個(gè)柱狀表示一個(gè)編碼幀,柱狀高低表示編碼比特的多少。可以看到,在相同碼率下,沒(méi)有更多的模式限制,CQP的I幀和P幀碼率比例約為12∶1,而在ABR中I幀和P幀碼率比例約為4∶1。因此,可以了解到,在相同參數(shù)平面的限制下,CQP所選擇編碼參數(shù)點(diǎn)和ABR所選的編碼參數(shù)點(diǎn)仍有非常大的差距。
x265的碼率模型中的比特分配以λ為關(guān)鍵控制參數(shù),具體為
為了能達(dá)到與CQP編碼模式下相近的比特分配比例,通過(guò)遍歷找到一個(gè)合適的編碼I幀的QPI以滿(mǎn)足
RI+RP×(PI-1) 其中:Rtarget為ABR模式下的平均幀級(jí)目標(biāo)碼率;PI為I幀間隔。假設(shè)CI、CP分別為I幀和P幀的降采樣復(fù)雜度, I幀和P幀分配的幀級(jí)目標(biāo)比特RI、RP分別為 其中:sI、sp分別為I幀與P幀的相關(guān)系數(shù)。 2 基于失真時(shí)域傳播的編碼樹(shù)單元級(jí)碼率控制 2.1 基于時(shí)域依賴(lài)的率失真優(yōu)化問(wèn)題 由于每個(gè)編碼單元的紋理特征和運(yùn)動(dòng)特征存在差異,其對(duì)整幀或整合序列的失真影響不同。本節(jié)將基于幀間預(yù)測(cè)和運(yùn)動(dòng)向量預(yù)測(cè)編碼,在時(shí)域上建立失真?zhèn)鞑ユ湶⒂?jì)算失真的時(shí)域影響因子,該因子可用于量化當(dāng)前編碼單元對(duì)后續(xù)編碼單元的失真影響,最后根據(jù)失真?zhèn)鞑ヒ蜃觼?lái)調(diào)整編碼單元的量化參數(shù)以?xún)?yōu)化編碼。率失真優(yōu)化過(guò)程中利用率失真代價(jià)作為度量標(biāo)準(zhǔn)來(lái)評(píng)價(jià)不同編碼模式的優(yōu)劣,率失真代價(jià)的計(jì)算過(guò)程中用拉格朗日乘子調(diào)整碼率和失真兩部分的權(quán)重。更大的拉格朗日乘子意味著在同等的率失真代價(jià)下,編碼單元具有更大的失真和更小的碼率,也就是說(shuō)更大的拉格朗日乘子允許容忍更多的失真。反之,在相同率失真代價(jià)下,編碼塊會(huì)傾向于選擇更小的編碼失真以及更大的傳輸碼率。對(duì)不同的編碼單元,通過(guò)控制拉格朗日乘子來(lái)控制其碼率和失真之間的折中程度。所以,基于拉格朗日乘子的率失真優(yōu)化問(wèn)題轉(zhuǎn)換為 其中:λ為拉格朗日乘子;n為編碼單元個(gè)數(shù);QPi為編碼第i個(gè)編碼單元的量化參數(shù);Ri、Di分別為對(duì)應(yīng)的碼率與失真。 HEVC標(biāo)準(zhǔn)中的每個(gè)編碼工具相當(dāng)于一個(gè)特征,視頻編碼的過(guò)程就是為每一個(gè)特征選擇一個(gè)合適的參數(shù)。由于過(guò)高的參數(shù)空間維數(shù),簡(jiǎn)單遍歷所有的編碼參數(shù)組合來(lái)確定最佳的編碼模式是無(wú)法實(shí)現(xiàn)的,真實(shí)的率失真優(yōu)化算法會(huì)對(duì)模式遍歷過(guò)程進(jìn)行簡(jiǎn)化。首先,確定整個(gè)序列的最優(yōu)編碼參數(shù)被分解為每幀獨(dú)立確定最優(yōu)編碼參數(shù),即編碼當(dāng)前幀時(shí)只考慮當(dāng)前編碼幀的失真和碼率,而非考慮編碼參數(shù)對(duì)整個(gè)序列整體的碼率和失真的影響[24]。其次,在進(jìn)行每個(gè)編碼塊的模式遍歷時(shí),只考慮當(dāng)前編碼塊的失真和碼率,忽略當(dāng)前編碼塊對(duì)幀內(nèi)其他塊以及后續(xù)幀中編碼塊的影響。這種簡(jiǎn)化的獨(dú)立率失真優(yōu)化過(guò)程,在編碼復(fù)雜度和編碼性能之間起到了很好的平衡效果。當(dāng)只考慮當(dāng)前編碼塊或當(dāng)前幀的編碼影響時(shí),率失真優(yōu)化問(wèn)題可以描述為 然而,由于視頻編碼采用幀間預(yù)測(cè)技術(shù),當(dāng)前編碼單元的失真不僅受到其自身的編碼參數(shù)影響,還會(huì)受到其參考單元的編碼失真的影響,這種影響在時(shí)域上形成傳播鏈。根據(jù)文獻(xiàn)[17],編碼單元的重建失真Di+1與運(yùn)動(dòng)補(bǔ)償失真DMCPi+1之間存在如下關(guān)系: 其中:b為與信源分布有關(guān)的常數(shù);Ri+1為只與自身編碼參數(shù)相關(guān)的編碼比特。運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)誤差可以進(jìn)一步表示為 浮點(diǎn)數(shù)。所以,結(jié)合式(13)(14)可得當(dāng)前編碼單元失真對(duì)時(shí)域傳播鏈上下一個(gè)編碼單元失真的影響為 Di+1=e-bRi+1×α×(Di+DOMCPi+1)=ki+1×Di+γi+1(15) 其中:ki+1為失真時(shí)域影響因子;γi+1為編碼參數(shù)無(wú)關(guān)量。依此類(lèi)推,可以得到當(dāng)前編碼單元失真對(duì)失真?zhèn)鞑ユ溕系趎個(gè)編碼單元失真的影響為 Dn=kn×kn-1…ki+1×Di+γn(16) 當(dāng)編碼當(dāng)前編碼單元時(shí),時(shí)域傳播鏈上所有編碼單元的率失真優(yōu)化問(wèn)題轉(zhuǎn)換為 2.2 編碼樹(shù)單元級(jí)量化參數(shù)調(diào)整 當(dāng)編碼一個(gè)CTU時(shí),為了調(diào)整其編碼參數(shù),將式(17)進(jìn)一步轉(zhuǎn)換為 根據(jù)文獻(xiàn)[25]可得,量化步長(zhǎng)Q和拉格朗日乘子λ之間的關(guān)系為 λ=δ×Q2(19) 如果考慮當(dāng)前編碼CTU對(duì)失真?zhèn)鞑ユ溕虾罄m(xù)CTU編碼失真的影響,則幀級(jí)拉格朗日乘子λ和量化步長(zhǎng)Q的關(guān)系變?yōu)?/p> 量化參數(shù)QP和量化步長(zhǎng)Q之間的關(guān)系為 其中:φ為與編碼結(jié)構(gòu)相關(guān)的常量。 考慮時(shí)域依賴(lài)調(diào)整后的量化參數(shù)與不考慮時(shí)域依賴(lài)的量化參數(shù)之間的差值QPoffset為 所以,編碼CTU的量化參數(shù)調(diào)整后為 QPi=QPi+QPoffset(23) 2.3 算法流程 算法1 基于時(shí)域依賴(lài)的編碼樹(shù)單元級(jí)零延時(shí)碼率控制算法 本文算法可以分為比特分配和編碼兩個(gè)階段,比特分配階段通過(guò)循環(huán)找到合適的QP,以滿(mǎn)足目標(biāo)碼率,循環(huán)結(jié)束后,I幀的QP以及P幀的目標(biāo)比特已經(jīng)確定,在編碼階段,如果沒(méi)有本文算法的優(yōu)化,將用相同的QP去編碼所有的CTU,而本文算法則根據(jù)每個(gè)CTU的失真影響大小去調(diào)整QP,所以一幀中的不同CTU有可能會(huì)使用不同的QP編碼。算法中CI、CP分別為I幀和P幀的降采樣復(fù)雜度,Rsum為實(shí)際編碼比特之和,Rtareget為ABR模式下的平均幀級(jí)目標(biāo)碼率,PI為I幀間隔,RI、RP分別為優(yōu)化后I幀和P幀的幀級(jí)目標(biāo)碼率,QPI、QPp分別為I幀及P幀的量化參數(shù)。 3 實(shí)驗(yàn)分析 3.1 實(shí)驗(yàn)設(shè)置 本節(jié)通過(guò)實(shí)驗(yàn)驗(yàn)證提出的幀級(jí)量化參數(shù)估計(jì)算法的性能。實(shí)驗(yàn)環(huán)境為一臺(tái)PC機(jī),具體配置為:Intel CoreTM i7-8700 CPU @ 3.20 GHz 3.19 GHz,內(nèi)存(RAM)16 GB,操作系統(tǒng)為 Windows 10 64位。x265基準(zhǔn)版本為x265-3.6,相應(yīng)的優(yōu)化算法也基于當(dāng)前版本改進(jìn)。 由于本文設(shè)計(jì)的算法面向場(chǎng)景都為零時(shí)延編碼場(chǎng)景,所以測(cè)試視頻序列集都為實(shí)時(shí)場(chǎng)景視頻序列,選用的測(cè)試序列如表1所示。測(cè)試序列集由九個(gè)序列組成,序列的特性描述包括拍攝視角(固定視角和自由視角)、背景特性(靜止背景和運(yùn)動(dòng)背景)、前景特性(運(yùn)動(dòng)規(guī)律、運(yùn)動(dòng)多變)。序列具體情況如圖3所示。其中:PeopleOnStreet序列是一個(gè)十字路口的拍攝場(chǎng)景,有很多細(xì)節(jié)的運(yùn)動(dòng)行人,以及密集排布的人行橫道;ParkRunning序列是在公園跑步的場(chǎng)景,具有晃動(dòng)的鏡頭和前進(jìn)變化的背景;BodeMuseum鏡頭運(yùn)動(dòng)十分緩慢,但是背景的紋理十分復(fù)雜;FoodMarket序列是拍攝的菜市場(chǎng)鏡頭,包括兩個(gè)不同的場(chǎng)景,并且包含了一個(gè)漸入漸出的鏡頭切換。 3.2 率失真性能對(duì)比 實(shí)驗(yàn)計(jì)算本文提出的優(yōu)化CTU級(jí)比特分配算法(OBA_RC)相較于x265自帶的碼率控制算法(x265_RC)的BD-rate。BD-rate是評(píng)價(jià)視頻編碼算法性能的主要參數(shù)之一,表示新算法在相同編碼質(zhì)量條件下,相對(duì)于原來(lái)的算法的碼率節(jié)省。在視頻編碼中,碼率的高低反映壓縮量的大小;PSNR值的高低能反映出客觀質(zhì)量的好壞。因此,對(duì)于一種編碼算法,如果在相同的客觀質(zhì)量下,BD-rate為負(fù),表明節(jié)省了碼率,編碼性能得到提升;同理,如果在相同的碼率下,PSNR反映客觀質(zhì)量得到提升,并且編碼性能同樣得到了提升。 表2是當(dāng)前優(yōu)化碼率控制算法和x265原碼率控制算法的率失真性能對(duì)比結(jié)果,分別對(duì)Y、U、V三個(gè)分量的BD-Rate進(jìn)行對(duì)比。可以看出,本文所提碼率控制算法在率失真性能上要明顯優(yōu)于x265本身的碼率控制算法,在1080P分辨率下,Y、U、V分量的平均碼率節(jié)省分別為4.9%、16.2%和16.9%;在720P分辨率下,Y、U、V分量的平均碼率節(jié)省分別為6.2%、16.5%和17.1%;在480P分辨率下,Y、U、V分量的平均碼率節(jié)省分別為5.8%、16.3%和15.6%%;在9個(gè)測(cè)試序列中,BodeMuseum序列表現(xiàn)最佳,其Y分量的碼率節(jié)省在1080P、720P和480P下分別達(dá)到了10.1、11.7%和9.2%。這主要得益于基于復(fù)雜度分析的I幀量化參數(shù)估計(jì)算法,原x265算法中,I幀的量化參數(shù)估計(jì)算法過(guò)度依賴(lài)經(jīng)驗(yàn)值參數(shù)的設(shè)置,而B(niǎo)odeMuseum序列背景復(fù)雜且靜止,前景運(yùn)動(dòng)也比較簡(jiǎn)單,這種情況下I幀的編碼性能非常重要,會(huì)影響到后續(xù)多幀的失真。而本文算法通過(guò)對(duì)I幀碼率控制模型的建模,可以為I幀分配一個(gè)比較合適的量化參數(shù),使得后續(xù)P幀的編碼質(zhì)量得到增強(qiáng)。同時(shí),其背景靜止使得編碼單元的時(shí)域依賴(lài)較強(qiáng),考慮時(shí)域依賴(lài)的CTU級(jí)QP調(diào)整能較大提升編碼性能。 為了更充分說(shuō)明本文算法的有效性,表3將本文算法與同類(lèi)算法PFRC(parallel-friendly rate control)[26]、QERC(quality enhancement based rate control)[27]、IDRC(inter-block dependent rate control)[28]及STRC(slice type based rate control)[29]進(jìn)行比較,可以看出,本文算法的BD-rate碼率節(jié)省平均達(dá)到8.7%,編碼性能更優(yōu)。需要說(shuō)明的是,x265正逐步成為最主流的工業(yè)應(yīng)用編碼器,其研究具有非常高的應(yīng)用價(jià)值,然而,工業(yè)界的學(xué)術(shù)論文相對(duì)有限,學(xué)術(shù)界大都致力于HM參考軟件的優(yōu)化,所以本文在對(duì)比中用優(yōu)化算法與基準(zhǔn)的碼率節(jié)省作為統(tǒng)一標(biāo)準(zhǔn)。 另外,PeopleOnStreet序列表現(xiàn)最差,該序列對(duì)應(yīng)的場(chǎng)景是十字路口的行人通行,雖然背景靜止,但是前景中存在大量的不規(guī)則運(yùn)動(dòng)行人,并且行人的紋理也比較豐富,運(yùn)動(dòng)也為非剛性運(yùn)動(dòng)。在這種情況下,x265本身碼率控制算法對(duì)于I幀的量化參數(shù)估計(jì)已經(jīng)比較合理,優(yōu)化空間較少。但是本文所提出的碼率控制算法仍在720P分辨率和480P分辨率下分別取得了1.9%和2.1%的碼率節(jié)省,這得益于基于失真依賴(lài)的CU級(jí)的量化參數(shù)估計(jì)算法,對(duì)前景中失真影響較大的塊分配更小的量化參數(shù),使得整體的編碼失真更小。為了更清楚地展示本文所提出的碼率控制算法的率失真性能,以Johnny序列為例,分別展示其率失真性能圖和CU級(jí)QP偏移實(shí)例。圖4展示的是優(yōu)化算法和基準(zhǔn)算法的R-D曲線對(duì)比。其中藍(lán)色曲線是x265基準(zhǔn)碼率控制算法,紅色曲線是本文提出的碼率控制優(yōu)化算法(參見(jiàn)電子版)??梢钥吹?,本文優(yōu)化算法率失真性能明顯更優(yōu)。此外,圖5展示了Johnny序列在CU級(jí)的QP調(diào)整結(jié)果,越明亮的區(qū)域?qū)?yīng)更大的失真影響因子和更小的QP,越灰暗的區(qū)域?qū)?yīng)更小的影響因子和更大的QP??梢钥吹剑瑘D中快速運(yùn)動(dòng)或者紋理復(fù)雜的前景區(qū)域,具有更小的傳播因子。而對(duì)于靜止的背景部分或紋理簡(jiǎn)單的前景區(qū)域,有較大可能性被后續(xù)編碼單元選為參考?jí)K。另外,可以看到即使靜止的背景中仍存在噪聲,紋理簡(jiǎn)單的背景部分中某些區(qū)域因?yàn)樵肼暤拇嬖冢谙噜弮蓭腥援a(chǎn)生了較大誤差。 3.3 主觀質(zhì)量對(duì)比 根據(jù)實(shí)驗(yàn)結(jié)果可知,在運(yùn)動(dòng)規(guī)律規(guī)則穩(wěn)定的序列上表現(xiàn)出更優(yōu)秀的編碼性能,而在運(yùn)動(dòng)復(fù)雜的序列上編碼性能相對(duì)差一些。另外,由于針對(duì)會(huì)造成更多額外失真的區(qū)域進(jìn)行了額外的比特分配,編碼的塊效應(yīng)等負(fù)面影響也得到削減,圖6展示了序列BodeMuseum 1 280×720在碼率設(shè)置為2 000 kbps時(shí)的編碼結(jié)果,圖6(a)是x265編碼器的ABR碼率控制算法編碼結(jié)果,圖6(b)是優(yōu)化碼率控制算法的編碼結(jié)果。從圖6中選取了兩個(gè)對(duì)比明顯的區(qū)域進(jìn)行了放大顯示,可以看出,由于x265碼率控制算法本身進(jìn)行比特分配時(shí)僅考慮到了當(dāng)前編碼幀的編碼復(fù)雜度以及短期平均復(fù)雜度,并沒(méi)有區(qū)分不同編碼幀對(duì)于全局失真的重要性,在比特?cái)?shù)不足的情況下無(wú)法對(duì)紋理復(fù)雜的區(qū)域編碼出較好的質(zhì)量。而最優(yōu)比特分配算法下,可以觀察到,截取的兩個(gè)圖像區(qū)域雖然紋理十分復(fù)雜,但是在編碼過(guò)程中一直是靜止的,靜止的復(fù)雜區(qū)域失真重要性較高,因?yàn)槠涫д鏁?huì)持續(xù)傳遞到后面多個(gè)編碼幀。因?yàn)檫@些區(qū)域在編碼起始階段就分配了較多的比特,在后續(xù)的編碼幀中僅需少量的比特就可以編碼得到很好的質(zhì)量。 3.4 控制精度對(duì)比 表4統(tǒng)計(jì)了測(cè)試序列在不同分辨率下碼率控制誤差以及BD-PSNR。測(cè)試序列在1080P下的目標(biāo)碼率為3 000、2 000、1 500、1 000 kbit;720P下的目標(biāo)碼率分別為2 000、1 500、1 000、500 kbit;480P下的目標(biāo)碼率分別為1 500、1 000、500、250 kbit。通過(guò)對(duì)比x265_RC及OBA_RC算法的控制精度,可以看出,在1080P分辨率下,控制誤差由2.59%下降到3.64%,而在720P和480P分辨率下,控制誤差分別由3.61%、4.16%提升到2.82%和2.81%??梢钥闯鰞?yōu)化算法的碼率控制精度和基準(zhǔn)相比相差無(wú)幾,主要原因?yàn)閮?yōu)化算法仍然采用平滑窗來(lái)控制誤差,沒(méi)有對(duì)控制精度進(jìn)行優(yōu)化處理。BD-PSNR在三種分辨率下平均提升0.15、0.24及0.31,編碼性能均得到了提升。 4 結(jié)束語(yǔ) 針對(duì)x265編碼器碼率控制算法存在比特分配不合理以及獨(dú)立率失真優(yōu)化編碼沒(méi)有考慮編碼單元的時(shí)域依賴(lài)性等問(wèn)題,本文提出一種基于時(shí)域依賴(lài)的碼率控制算法。通過(guò)迭代尋找最優(yōu)量化參數(shù)以進(jìn)行幀級(jí)比特分配,再計(jì)算編碼單元的失真影響因子,最后通過(guò)該因子調(diào)整編碼參數(shù)以?xún)?yōu)化編碼。實(shí)驗(yàn)結(jié)果顯示,本文算法能較大地提升編碼性能以及碼率控制精度。 針對(duì)工業(yè)應(yīng)用中對(duì)視頻編碼的低復(fù)雜度、輕量化等實(shí)際需求,下一步將對(duì)并行編碼等做進(jìn)一步的探索和研究。 參考文獻(xiàn): [1]Guo Hongwei,Zhu Ce,Xu Mai,et al. Inter-block dependency-based CTU level rate control for HEVC[J]. IEEE Trans on Broadcas-ting,2020,66(1): 113-126. [2]He Zhihai,Kim Y K,Mitra S K. Low-delay rate control for DCT video coding via/spl rho/-domain source modeling[J]. IEEE Trans on Circuits and Systems for Video Technology,2001,11(8): 928-940. [3]Liu Yang,Li Z G,Soh Y C. A novel rate control scheme for low delay video communication of H.264/AVC standard[J]. IEEE Trans on Circuits and Systems for Video Technology,2006,17(1): 68-78. [4]Li Bin,Li Houqiang,Li Li,et al. λ domain rate control algorithm for high efficiency video coding[J]. IEEE Trans on Image Proces-sing,2014,23(9): 3841-3854. [5]Li Bin,Li Houqiang,Li Li. Adaptive bit allocation for R-lambda mo-del rate control in HM[C]//Proc of the 13th Meeting of Joint Collabo-rative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11. 2013: 18-26. [6]Sullivan G J,Ohm J R,Han W J,et al. Overview of the high efficiency video coding(HEVC) standard [J]. IEEE Trans on Circuits and Systems for Video Technology,2012,22(12): 1649-1668. [7]Bross B,Wang Yekui,Ye Yan,et al. Overview of the versatile video coding(VVC) standard and its applications[J]. IEEE Trans on Circuits and Systems for Video Technology,2021,31(10): 3736-3764. [8]楊栩,郭紅偉,李婉雪. 基于熵平衡的全景視頻編碼[J]. 計(jì)算機(jī)應(yīng)用研究,2023,40(6): 1894-1899. (Yang Xu,Guo Hongwei,Li Wanxue. Panoramic video coding based on entropy balancing[J]. Application Research of Computers,2023,40(6): 1894-1899.) [9]Hu Qiang,Zhang Xiaoyun,Gao Zhiyong,et al. Analysis and optimization of x265 encoder[C]// Proc of IEEE Visual Communications and Image Processing Conference. Piscataway,NJ: IEEE Press,2014: 502-505. [10]Song F,Zhu Ce,Liu Yipeng,et al. A new GOP level bit allocation method for HEVC rate control[C]// Proc of IEEE International Symposium on Broadband Multimedia Systems and Broadcasting. Piscata-way,NJ: IEEE Press,2017: 1-4. [11]Kamaci N,Altunbasak Y,Mersereau R M. Frame bit allocation for the H.264/AVC video coder via Cauchy-density-based rate and distortion models[J]. IEEE Trans on Circuits and Systems for Video Technology,2005,15(8): 994-1006. [12]Lee B,Kim M,Nguyen T Q. A frame-level rate control scheme based on texture and nontexture rate models for high efficiency video coding[J]. IEEE Trans on Circuits and Systems for Video Technology,2013,24(3): 465-479. [13]Liu Zhenyu,Wang Libo,Li Xiaobo,et al. Optimize x265 rate control: an exploration of lookahead in frame bit allocation and slice type decision[J]. IEEE Trans on Image Processing,2018,28(5): 2558-2573. [14]Li Shengxi,Xu Mai,Wang Zulin,et al. Optimal bit allocation for CTU level rate control in HEVC[J]. IEEE Trans on Circuits and Systems for Video Technology,2016,27(11): 2409-2424. [15]Li Yang,Mou Xuanqin. Joint optimization for SSIM-based CTU-level bit allocation and rate distortion optimization[J]. IEEE Trans on Broadcasting,2021,67(2): 500-511. [16]楊栩,郭紅偉,李婉雪. 優(yōu)化編碼樹(shù)單元級(jí)比特分配算法[J]. 計(jì)算機(jī)應(yīng)用,2023,43(10): 3195-3201. (Yang Xu,Guo Hongwei,Li Wanxue. Optimized bit allocation algorithm for coding tree unit level[J]. Journal of Computer Applications,2023,43(10): 3195-3201.) [17]Yang Tianwu,Zhu Ce,F(xiàn)an Xiaojiu,et al. Source distortion temporal propagation model for motion compensated video coding optimization [C]// Proc of IEEE International Conference on Multimedia and Expo. Piscataway,NJ: IEEE Press,2012: 85-90. [18]Gao Yanbo,Zhu Ce,Li Shuai,et al. Temporally dependent rate-distortion optimization for low-delay hierarchical video coding [J]. IEEE Trans on Image Processing,2017,26(9): 4457-4470. [19]Gao Yanbo,Zhu Ce,Li Shuai,et al. Source distortion temporal propagation analysis for random-access hierarchical video coding optimization[J]. IEEE Trans on Circuits and Systems for Video Technology,2019,29(2): 546-559. [20]Guo Hongwei,Zhu Ce,Liu Yuyang,et al. Temporal dependency based Lagrange multiplier adaptation for HEVC[C]// Proc of IEEE International Symposium on Broadband Multimedia Systems and Broadcas-ting. Piscataway,NJ: IEEE Press,2020: 1-5. [21]Li Shuai,Zhu Ce,Gao Yanbo,et al. Lagrangian multiplier adaptation for rate-distortion optimization with inter-frame dependency[J]. IEEE Trans on Circuits and Systems for Video Technology,2016,26(1): 117-129. [22]楊栩,朱策,郭紅偉,等. 基于球域失真空-時(shí)依賴(lài)的全景視頻編碼[J]. 通信學(xué)報(bào),2023,44(10): 58-71. (Yang Xu,Zhu Ce,Guo Hongwei,et al. Panoramic video coding based on spherical distortion with spatio-temporal dependency[J]. Journal on Communications,2023,44(10): 58-71.) [23]Yang Xu,Huang Minfeng,Luo Lei,et al. Efficient panoramic video coding for immersive metaverse experience [J]. IEEE Network,2023,37(6):58-66. [24]郭紅偉,朱策,楊栩,等. 基于失真反向傳播的時(shí)域依賴(lài)率失真優(yōu)化[J]. 通信學(xué)報(bào),2022,43(12): 222-232. (Guo Hongwei,Zhu Ce,Yang Xu,et al. Temporal dependent rate-distortion optimization based on distortion backward propagation[J]. Journal on Communications,2022,43(12): 222-232.) [25]Sullivan G J,Wiegand T. Rate-distortion optimization for video compression[J]. IEEE Signal Processing Magazine,1998,15(6): 74-90. [26]Xie Jianfeng,Song Li,Xie Rong,et al. A novel parallel-friendly rate control scheme for HEVC[C]// Proc of Asia-Pacific Signal and Information Processing Association Annual Summit and Conference. Piscataway,NJ: IEEE Press,2016: 1-7. [27]Zhao Fei,Ku C,Xiang Guoqing,et al. A novel quality enhanced low complexity rate control algorithm for HEVC[C]// Proc of IEEE International Conference on Visual Communications and Image Processing. Piscataway,NJ: IEEE Press,2020: 278-280. [28]Guo Hongwei,Zhu Ce,Li Shengxi,et al. Optimal bit allocation at frame level for rate control in HEVC[J]. IEEE Trans on Broadcasting,2019,65(2): 270-281. [29]Liu Zhenyu,Wang Libo,Li Xiaobo. Rate control optimization of x265 using information from quarter-resolution pre-motion-estimation[C]// Proc of the 25th IEEE International Conference on Image Processing. Piscataway,NJ: IEEE Press,2018: 3623-3627.