專利名稱:基于分層b幀結(jié)構(gòu)的碼率控制的自適應(yīng)比特分配方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻編碼中的碼率控制技術(shù)領(lǐng)域,特別涉及一種基于分層B幀結(jié)構(gòu)的碼率控制的自適應(yīng)比特分配方法。
背景技術(shù):
近年來隨著多媒體技術(shù)的發(fā)展,人們對(duì)網(wǎng)絡(luò)視頻的清晰度、流暢度等要求越來越高,然而網(wǎng)絡(luò)帶寬的大小決定了單位時(shí)間內(nèi)傳輸比特的數(shù)量,不同的網(wǎng)絡(luò)終端對(duì)視頻質(zhì)量高低、網(wǎng)絡(luò)帶寬大小的需求不盡相同,正是由于這種需求,SVC (SVC為英文 Scalable Video Coding的縮寫,其中文譯名為可伸縮視頻編碼)技術(shù)成為了解決視頻適配的關(guān)鍵技術(shù)之一,SVC在保持了 H. 264高效編碼的基礎(chǔ)上,采用了由FraunhoferHHI (Heinrich-Hertz-Institute)提出的基于分層B幀的預(yù)測(cè)編碼結(jié)構(gòu),獲得了較高的編碼效率,同時(shí)也增加了預(yù)測(cè)的計(jì)算復(fù)雜度。碼率控制技術(shù)主要通過對(duì)視頻編碼器的輸出比特進(jìn)行實(shí)時(shí)調(diào)整,以獲得視頻質(zhì)量和帶寬利用之間的最佳均衡,碼率控制技術(shù)包括VBR (VBR為英文Variable Bit Rate的縮寫,其中文譯名為可變比特控制)和CBR (CBR為英文Constant Bit Rate的縮寫,其中文譯名為固定比特控制)兩種模式,其中,CBR模式是一種閉環(huán)處理模式,其輸入為視頻序列和目標(biāo)比特率,根據(jù)對(duì)視頻序列的復(fù)雜度的估計(jì)、解碼器緩沖區(qū)的占用情況以及信道帶寬,將 QP (QP為英文quantization parameter的縮寫,其中文譯名為量化步長(zhǎng))進(jìn)行動(dòng)態(tài)調(diào)整, 得到符合要求的碼率。本發(fā)明的碼率控制的自適應(yīng)比特分配方法是針對(duì)碼率控制技術(shù)中的 CBR模式。分層B幀結(jié)構(gòu)將視頻序列按照時(shí)間方向分成多個(gè)時(shí)間層進(jìn)行編碼,包括了一個(gè)基本層和多個(gè)增強(qiáng)層。在編碼時(shí)基本層的圖像不需要依賴其他圖像層而進(jìn)行獨(dú)立編碼,但是增強(qiáng)層的圖像必須依賴于其他圖像層的圖像。文獻(xiàn)1提出了一種當(dāng)前較為流行的基于分層B幀結(jié)構(gòu)的比特分配方法,該方法根據(jù)分層B幀結(jié)構(gòu)中基本層與各個(gè)增強(qiáng)層之間依賴關(guān)系,為每一個(gè)時(shí)間層分配了一個(gè)固定的進(jìn)行比特分配的權(quán)重值。在進(jìn)行碼率控制的過程中依據(jù)各個(gè)時(shí)間層的權(quán)重值大小為其分配目標(biāo)比特?cái)?shù)。這種固定權(quán)重值比特分配方法雖然考慮到了基本層與各個(gè)增強(qiáng)層之間時(shí)間預(yù)測(cè)上的依賴關(guān)系,但是卻忽視了視頻編碼過程中的兩大差異1、有的視頻序列幀間運(yùn)動(dòng)平滑,有的視頻序列幀間運(yùn)動(dòng)激烈,不同的視頻序列編碼復(fù)雜度各不相同;2、在同一視頻序列內(nèi),有的部分幀間運(yùn)動(dòng)平滑,有的部分幀間運(yùn)動(dòng)激烈,即使在同一個(gè)時(shí)間層上的各個(gè)圖像幀之間編碼復(fù)雜度也不一樣。采用固定權(quán)重值比特分配方法,對(duì)不同的視頻序列的各個(gè)時(shí)間層采用固定的比特分配的權(quán)重值大小,對(duì)同一時(shí)間層內(nèi)的各個(gè)圖像幀采用相同的比特分配的權(quán)重值大小,完全沒有考慮到視頻編碼中的這兩大差異,這將會(huì)降低整個(gè)視頻序列的編碼效率,從而降低了最終解碼的圖像質(zhì)量。文獻(xiàn)1 Y. Liu, Z. Li, Y. C. Soh, "Rate Control of H. 264/AVC Scalable Extension”,IEEE Trans. Circuits Syst. Video Technol. , Vol. 18, No. 1, pp. 116—121,Jan. 2008。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種基于分層B幀結(jié)構(gòu)的碼率控制的自適應(yīng)比特分配方法,在不提高視頻編碼實(shí)際消耗的比特?cái)?shù)的條件下,通過準(zhǔn)確預(yù)測(cè)視頻序列中各圖像幀的編碼復(fù)雜度,計(jì)算分層B幀結(jié)構(gòu)中各個(gè)時(shí)間層的比特分配的權(quán)重值大小,提高視頻序列的編碼效率和解碼后各個(gè)圖像幀圖像的質(zhì)量。為達(dá)到上述目的,本發(fā)明的構(gòu)思如
圖1所示,首先,由視頻序列所附帶的配置文件中對(duì)視頻序列及GOP (G0P為英文group of pictures的縮寫,其中文譯名為圖像組)的長(zhǎng)度要求和目標(biāo)比特的速率要求,計(jì)算出分配給各個(gè)GOP的目標(biāo)比特?cái)?shù);接著,由上述得到的每個(gè)GOP分配的目標(biāo)比特?cái)?shù),根據(jù)分層B幀結(jié)構(gòu)計(jì)算出分配給各個(gè)時(shí)間層的目標(biāo)比特?cái)?shù);然后,由上述得到的各個(gè)時(shí)間層的目標(biāo)比特?cái)?shù),根據(jù)相同時(shí)間層內(nèi)編碼復(fù)雜度的不同計(jì)算出分配給各個(gè)圖像幀的目標(biāo)比特?cái)?shù);最后,根據(jù)上一步中分配得到的各個(gè)圖像幀目標(biāo)比特?cái)?shù)對(duì)各個(gè)圖像幀進(jìn)行編碼,由相同時(shí)間層中各個(gè)圖像幀編碼得到的編碼信息通過迭代計(jì)算更新該時(shí)間層的權(quán)重值。本發(fā)明可以在不提高視頻編碼實(shí)際消耗的比特率的條件下,通過準(zhǔn)確預(yù)測(cè)視頻序列及其各個(gè)圖像幀的編碼復(fù)雜度,合理地計(jì)算出分配給視頻序列中的各個(gè)圖像幀的目標(biāo)比特?cái)?shù),有效地提高編碼效率和各個(gè)圖像幀的質(zhì)量。在通常的視頻序列中,運(yùn)動(dòng)程度在不同的GOP之間有大范圍的波動(dòng),以及在同一 GOP中的不同圖像幀間,運(yùn)動(dòng)也有相當(dāng)大的波動(dòng),無論運(yùn)動(dòng)程度如何,因?yàn)樵诜謱覤幀結(jié)構(gòu)中,基本層圖像采用獨(dú)立編碼,所以均需要分配較多的比特?cái)?shù)來提高圖像的編碼質(zhì)量,但是在運(yùn)動(dòng)劇烈的GOP中,由于基本層的圖像與增強(qiáng)層的圖像相關(guān)性小,幀間預(yù)測(cè)不準(zhǔn)確,因此增強(qiáng)層的圖像也需要分配較多的目標(biāo)比特?cái)?shù);另一方面,在運(yùn)動(dòng)平滑的GOP中,基本層的圖像與增強(qiáng)層的圖像相關(guān)性大,幀間預(yù)測(cè)較為準(zhǔn)確,因此增強(qiáng)層的圖像無需分配較多的目標(biāo)比特?cái)?shù),只需將大部分目標(biāo)比特?cái)?shù)分配給基本層圖像以提高參考幀的質(zhì)量。為此,分層B幀的基本層與各個(gè)增強(qiáng)層的目標(biāo)比特?cái)?shù)的權(quán)重值大小需要根據(jù)GOP中各圖像幀的編碼復(fù)雜度自適應(yīng)調(diào)節(jié)。分層B幀結(jié)構(gòu)由各個(gè)圖像幀的播放順序以及GOP的長(zhǎng)度來決定各個(gè)圖像幀所在的時(shí)間層,因此在相同時(shí)間層上各個(gè)圖像幀的編碼復(fù)雜度也存在較大的差異。為此,相同時(shí)間層中的各個(gè)圖像幀在分配目標(biāo)比特?cái)?shù)時(shí)不能一味按照所在時(shí)間層的權(quán)重值大小,還應(yīng)該根據(jù)其編碼復(fù)雜度進(jìn)行調(diào)節(jié)。本發(fā)明通過提取當(dāng)前時(shí)間層中各個(gè)圖像幀對(duì)應(yīng)的參考幀的實(shí)際消耗比特?cái)?shù)和編碼質(zhì)量PSNR (PSNR為英文Peak Signal to Noise Ratio的縮寫, 其中文譯名為峰值信噪比)等編碼信息來分析當(dāng)前時(shí)間層中各個(gè)圖像幀的編碼復(fù)雜度。鑒于此,本發(fā)明提出了一種基于已編碼圖像的編碼信息分別自適應(yīng)調(diào)節(jié)時(shí)間層權(quán)重值大小和相同時(shí)間層中各個(gè)圖像幀預(yù)測(cè)編碼復(fù)雜度大小的方法,該方法利用了視頻序列中各個(gè)圖像幀在時(shí)間方向上的相關(guān)性。參見圖2、圖3,分層B幀結(jié)構(gòu)的特點(diǎn)是每隔一段特定的時(shí)間間隔插入一幅關(guān)鍵幀, 在兩個(gè)關(guān)鍵幀之間的圖像幀稱為非關(guān)鍵幀,一個(gè)GOP是由一個(gè)關(guān)鍵幀和一組非關(guān)鍵幀構(gòu)成,其中關(guān)鍵幀采用幀內(nèi)預(yù)測(cè)編碼或者單向幀間預(yù)測(cè)編碼,構(gòu)成時(shí)間層中的基本層,而非關(guān)鍵幀采用雙向幀間預(yù)測(cè)編碼,構(gòu)成時(shí)間層中的增強(qiáng)層,與以往的視頻編碼不同的是,基于分層B幀結(jié)構(gòu)的視頻編碼并非按照視頻序列中各個(gè)圖像幀的顯示順序編碼,而是按照時(shí)間層從底層向最高層編碼。因此GOP的長(zhǎng)度不同,圖像幀所在的時(shí)間層就會(huì)發(fā)生變化,從而導(dǎo)致它的參考幀和編碼順序也不相同,圖中的箭頭方向是由參考幀指向編碼幀,比如顯示順序中的第8幀,在圖2中,它是關(guān)鍵幀,采用單向幀間預(yù)測(cè)編碼,位于時(shí)間層的第0層,即基本層,只有第0幀一個(gè)參考幀;而在圖3中,它是非關(guān)鍵幀,采用雙向幀間預(yù)測(cè)編碼,位于時(shí)間層的第1層,即增強(qiáng)層,包含了第0幀和第16幀兩個(gè)參考幀。 假設(shè)當(dāng)前GOP的分層B幀結(jié)構(gòu)中各個(gè)時(shí)間層的權(quán)重值大小分別為叫¢ = 0,1..Jf),其中2 = 0表示基本層,Σ = 表示增強(qiáng)層中的最高層,除了基本層外,各個(gè)
時(shí)間層的圖像幀總數(shù)均為2〃,根據(jù)各個(gè)時(shí)間層的權(quán)重值大小,計(jì)算出分配給各個(gè)時(shí)間層的目標(biāo)比特?cái)?shù),其計(jì)算表達(dá)式為
權(quán)利要求
1.一種基于分層B幀結(jié)構(gòu)的碼率控制的自適應(yīng)比特分配方法,其特征在于,該方法具體步驟是(1)、GOP的碼率控制由視頻序列所附帶的配置文件中對(duì)視頻序列及GOP的長(zhǎng)度要求和目標(biāo)比特的速率要求,計(jì)算出分配給各個(gè)GOP的目標(biāo)比特?cái)?shù);(2)、時(shí)間層的碼率控制由上述得到的每個(gè)GOP分配的目標(biāo)比特?cái)?shù),根據(jù)分層B幀結(jié)構(gòu)計(jì)算出分配給各個(gè)時(shí)間層的目標(biāo)比特?cái)?shù);(3)、圖像幀的碼率控制由上述得到的各個(gè)時(shí)間層的目標(biāo)比特?cái)?shù),根據(jù)相同時(shí)間層內(nèi)編碼復(fù)雜度的不同計(jì)算出分配給各個(gè)圖像幀的目標(biāo)比特?cái)?shù);(4)、權(quán)重值更新根據(jù)上一步中分配得到的各個(gè)圖像幀目標(biāo)比特?cái)?shù)對(duì)各個(gè)圖像幀進(jìn)行編碼,由相同時(shí)間層中各個(gè)圖像幀編碼得到的編碼信息通過迭代計(jì)算更新該時(shí)間層的權(quán)重值。
2.根據(jù)權(quán)利要求1所述基于分層B幀結(jié)構(gòu)的碼率控制的自適應(yīng)比特分配方法,其特征在于,上述步驟(1)所述的GOP的碼率控制,由視頻序列所附帶的配置文件中對(duì)視頻序列及GOP的長(zhǎng)度要求和目標(biāo)比特的速率要求,計(jì)算出分配給各個(gè)GOP的目標(biāo)比特?cái)?shù),其步驟如下(1-1)、根據(jù)GOP的長(zhǎng)度,確定分層B幀結(jié)構(gòu),GOP的長(zhǎng)度不同將會(huì)導(dǎo)致分層B幀結(jié)構(gòu)的不同;(1-2)、基于步驟(1-1)中GOP的長(zhǎng)度與視頻序列的長(zhǎng)度,確定視頻序列中GOP的個(gè)數(shù);(1-3)、基于步驟(1- 確定的GOP的個(gè)數(shù),確定分配給各個(gè)GOP的目標(biāo)比持?jǐn)?shù)TM-1U , 其目標(biāo)比持?jǐn)?shù)計(jì)筲為其中《丨表示視頻序列的目標(biāo)比特率,F(xiàn)表示視頻序列中圖像幀的速率,Λ gap表示GOP的B長(zhǎng)度,g是解碼器緩沖區(qū)占有率的期望値,而"C ,Ngop ..,是第i個(gè)cop在編碼前緩沖區(qū)的實(shí)際占有率情ffi
3.根據(jù)權(quán)利要求2所述基于分層B幀結(jié)構(gòu)的碼率控制的自適應(yīng)比特分配方法,其特征在于,上述步驟(2)所述的時(shí)間層的碼率控制,是根據(jù)分層B幀結(jié)構(gòu)確定GOP中的各個(gè)圖像幀所處的時(shí)間層,然后根據(jù)時(shí)間層的權(quán)重值大小,計(jì)算出分配給各個(gè)時(shí)間層的目標(biāo)比特?cái)?shù), 其步驟是(2-1)、根據(jù)上一個(gè)GOP中各個(gè)圖像幀的編碼信息獲取當(dāng)前GOP中各個(gè)時(shí)間層的權(quán)重值大小O^i = CU.. J#),其中2 = 0表示基本層, = 表示增強(qiáng)層中的最高層,若當(dāng)前GOP是視頻序列的第一個(gè)G0P,則按照式(7)設(shè)置各個(gè)時(shí)間層的權(quán)重值大??;(2-2)、由步驟(.1)分配給每個(gè)GOP的目標(biāo)比恃數(shù)丁((ろ),按照步驟(2-1)中各個(gè)時(shí)間層的杈重值大小( ,計(jì)算出GOP中分配給各個(gè)時(shí)間層的目標(biāo)比持?jǐn)?shù)ぶ(み),其計(jì)算表Ji 式為
4.根據(jù)權(quán)利要求3所述基于分層B幀結(jié)構(gòu)的碼率控制的自適應(yīng)比特分配方法,其特征 在干,上述步驟(3)所述的圖像幀的碼率控制,首先通過提取參考幀圖像的編碼信息得到相 同時(shí)間層內(nèi)各個(gè)圖像幀的預(yù)測(cè)編碼復(fù)雜度,接著再根據(jù)步驟(2)中分配給各個(gè)時(shí)間層的目 標(biāo)比特?cái)?shù),計(jì)算出分配給相同時(shí)間層內(nèi)的各個(gè)圖像幀的目標(biāo)比特?cái)?shù),其步驟是(3-1)、由分層B幀結(jié)構(gòu)找到各個(gè)圖像幀所對(duì)應(yīng)的兩個(gè)參考幀,并提取參考幀的實(shí)際消 耗比特?cái)?shù)和編碼質(zhì)量PSNR等編碼信息,根據(jù)下式分別計(jì)算兩個(gè)參考幀所提供的參考預(yù)測(cè)編碼復(fù)雜度
5.根據(jù)權(quán)利要求4所述基于分層B幀結(jié)構(gòu)的碼率控制的自適應(yīng)比特分配方法,其特征在于,上述步驟(4)所述的權(quán)重值更新首先按照步驟(3)中得到的各個(gè)圖像幀的目標(biāo)比特?cái)?shù),對(duì)各個(gè)圖像幀進(jìn)行編碼,接著根據(jù)各個(gè)圖像幀的編碼信息計(jì)算時(shí)間層的權(quán)重值,其步驟如下G-1)、由步驟(3)中分配給各個(gè)圖像幀的目標(biāo)比特?cái)?shù),根據(jù)二項(xiàng)式率失真模型W》-H =i + 計(jì)算出各個(gè)圖像幀編碼的QP值,其中 (Mean Absolute MAD QP QF2MADDifference的縮寫)為平均絕對(duì)誤差;約和約是兩個(gè)遞歸模型參數(shù),H表示編碼打包的頭文件信息比特?cái)?shù);0-2)、根據(jù)步驟中計(jì)算得到的QP值對(duì)圖像幀進(jìn)行編碼,并得到每個(gè)圖像幀實(shí)際消耗的比特?cái)?shù);G-3)、由步驟G-2)中各個(gè)圖像幀實(shí)際消耗的比特?cái)?shù),根據(jù)每個(gè)圖像幀所處的時(shí)間層的不同,計(jì)算各個(gè)時(shí)間層的權(quán)重值礙,其計(jì)算式為Σ 其中胞、i表示第層時(shí)間層中第幀的實(shí)際消耗比特?cái)?shù);興表示第 層時(shí)間層中圖像幀的總數(shù)。全文摘要
本發(fā)明公開了一種基于分層B幀結(jié)構(gòu)的碼率控制的自適應(yīng)比特分配方法,其步驟是1、基于視頻序列所附帶的配置文件中對(duì)視頻序列及GOP的長(zhǎng)度要求和目標(biāo)比特的速率要求,計(jì)算出分配給各個(gè)GOP的目標(biāo)比特?cái)?shù);2、基于步驟(1)中得到的各個(gè)GOP的目標(biāo)比特?cái)?shù),計(jì)算出分配給分層B幀結(jié)構(gòu)中各個(gè)時(shí)間層的目標(biāo)比特?cái)?shù);3、基于步驟(2)中得到的各個(gè)時(shí)間層的目標(biāo)比特?cái)?shù),計(jì)算出同一時(shí)間層中分配給各個(gè)圖像幀的目標(biāo)比特?cái)?shù);4、根據(jù)編碼圖像的編碼信息,通過迭代計(jì)算更新各個(gè)時(shí)間層的權(quán)重值。該方法在不提高視頻編碼實(shí)際消耗比特?cái)?shù)的前提下,準(zhǔn)確預(yù)測(cè)了視頻序列中各圖像幀的編碼復(fù)雜度,通過迭代計(jì)算更新分層B幀結(jié)構(gòu)中各個(gè)時(shí)間層比特分配權(quán)重值,為各幀圖像合理地分配目標(biāo)比特?cái)?shù),從而提高了視頻序列的編碼效率和各幀圖像的解碼質(zhì)量。
文檔編號(hào)H04N7/32GK102420987SQ20111039087
公開日2012年4月18日 申請(qǐng)日期2011年12月1日 優(yōu)先權(quán)日2011年12月1日
發(fā)明者姜益中, 沈禮權(quán), 王向前 申請(qǐng)人:上海大學(xué)