專利名稱:一種gpu加速編碼器碼率控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種編碼器碼率控制方法,尤其是涉及一種GPU加速編碼器碼率控制方法。
背景技術(shù):
隨著高清視頻漸漸融入人們的生活,GPU(Graphic Processing Unit,圖形處理器)加速編解碼的應(yīng)用場合逐步增多。其中GPU加速編碼應(yīng)用越來越多的被用進(jìn)高清視頻會(huì)議、網(wǎng)絡(luò)監(jiān)控、流媒體服務(wù)器等實(shí)時(shí)性視頻傳輸平臺。GPU加速編碼固 然可以提高編碼效率,但以上這些應(yīng)用都要求編碼器的輸出碼率符合信道的傳輸限制。傳輸信道的帶寬受限,或網(wǎng)絡(luò)狀況有一定波動(dòng),這就要求視頻編碼器要根據(jù)信道的特點(diǎn)控制輸出碼率,以適應(yīng)信道的傳輸速率。而現(xiàn)今由于基于GPU加速的編碼器碼率控制方法并不靈活,導(dǎo)致傳輸效果不理想。隨著視頻編碼標(biāo)準(zhǔn)的更新,有不同的碼率控制提案被相繼提出。RM8碼率控制模型被用在H. 261視頻編碼器中。它采用了一個(gè)緩沖編碼模型,編碼器的輸出與一個(gè)緩沖區(qū)相連。該模型構(gòu)造了一種編碼量化參數(shù)與緩沖區(qū)充滿度的線性關(guān)系。但該模型僅通過緩沖區(qū)的充滿度的大小調(diào)整量化參數(shù)的大小,并沒有考慮到緩沖區(qū)本身的充滿情況,使得緩沖區(qū)很容易產(chǎn)生上溢出和下溢出。Tihao Chiang等人在“IEEE Transactions on Circuits andSystems for Video Technology,,中發(fā)表的“A new rate control scheme using quadraticrate distortion model”中提到的基于TM5模型的碼率控制方法,需要通過已知的目標(biāo)碼率對一個(gè)GOP畫面組做比特?cái)?shù)分配,這也給編碼器應(yīng)用在實(shí)時(shí)傳輸系統(tǒng)中造成了不便。在 Ribas-Corbera J.等人的文章 “Rate control in DCT video coding for low-delaycommunications”中,采用了對數(shù)R-D模型,這就需要計(jì)算巾貞中的方差信息。在基于GPU加速的編碼器中,計(jì)算方差會(huì)降低編碼器效率,將計(jì)算瓶頸轉(zhuǎn)移到方差的計(jì)算上。JVT-G012是JVT組織關(guān)于碼率控制的會(huì)議論文,在《Adaptive Basic Unit Layer Rate Control forJVT)) 一文中,JVT-G012提出了一種H. 264碼率控制的提案。但是在該算法中,計(jì)算MAD和率失真優(yōu)化都需要在基本單元層進(jìn)行,這使得在基于GPU加速的編碼器中很難應(yīng)用到此算法。
發(fā)明內(nèi)容
本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種可應(yīng)用在GPU加速視頻編碼器中,并可在不清楚目標(biāo)碼率的情況下動(dòng)態(tài)調(diào)整碼率的GPU加速編碼器碼率控制方法。本發(fā)明的目的可以通過以下技術(shù)方案來實(shí)現(xiàn)一種GPU加速編碼器碼率控制方法,該方法包括以下步驟I)編碼器當(dāng)前畫面組以初始量化參數(shù)編碼,并將編碼好的視頻碼流輸入緩沖區(qū),緩沖區(qū)根據(jù)傳輸信道的情況將視頻碼流輸出;
2)碼率控制器監(jiān)視緩沖區(qū)充滿度,碼率控制器根據(jù)緩沖區(qū)充滿度的值及緩沖區(qū)充滿度變化率計(jì)算出新的量化參數(shù);3)在每個(gè)畫面組的編碼開始前,將當(dāng)前新的量化參數(shù)傳入編碼器,作為該畫面組的量化參數(shù)。所述的步驟2)中的計(jì)算新的量化參數(shù)的公式為
權(quán)利要求
1.一種GPU加速編碼器碼率控制方法,其特征在于,該方法包括以下步驟 1)編碼器當(dāng)前畫面組以初始量化參數(shù)編碼,并將編碼好的視頻碼流輸入緩沖區(qū),緩沖區(qū)根據(jù)傳輸信道的情況將視頻碼流輸出; 2)碼率控制器監(jiān)視緩沖區(qū)充滿度,碼率控制器根據(jù)緩沖區(qū)充滿度的值及緩沖區(qū)充滿度變化率計(jì)算出新的量化參數(shù); 3)在每個(gè)畫面組的編碼開始前,將當(dāng)前新的量化參數(shù)傳入編碼器,作為該畫面組的量化參數(shù)。
2.根據(jù)權(quán)利要求I所述的一種GPU加速編碼器碼率控制方法,其特征在于,所述的步驟2)中的計(jì)算新的量化參數(shù)的公式為QPi = max {0,min {31,QPi-Afunc I (Bf) +func2 (dBf)}} 式中,QPi為新的量化參數(shù),QPh為上一次的量化參數(shù),Bf為緩沖區(qū)充滿度值,0 ^ Bf ^ I, 沖區(qū)充滿度變化率,fund為根據(jù)當(dāng)前緩沖區(qū)充滿度值來調(diào)整量化參數(shù)的函數(shù),func2為根據(jù)當(dāng)前緩沖區(qū)充滿度變化率來調(diào)整量化參數(shù)的函數(shù),每一次的量化參數(shù)保持在0 31的范圍內(nèi)。
3.根據(jù)權(quán)利要求2所述的一種GPU加速編碼器碼率控制方法,其特征在于,所述的fund的計(jì)算公式為 fund (Bf) = E (Bf-Bfd- ^ ) -E (Bfd-Bf- 3 ) 其中,Bfd為理想的緩沖區(qū)充滿度值,[Bfd-¢, Bfd+^ ]為緩沖區(qū)充滿度的理想?yún)^(qū)間,E函數(shù)為單位階躍函數(shù),即當(dāng)Bf值落在以Bfd為中心,長度為20的區(qū)間外時(shí),funcl取值為0;當(dāng)Bf小于理想?yún)^(qū)間時(shí),funcl取值為-1,表明減小量化參數(shù)以增大輸出碼率,使Bf增長到理想?yún)^(qū)間,當(dāng)Bf大于理想?yún)^(qū)間時(shí),funcl取值為1,表明增大量化參數(shù)以減小輸出碼率,使Bf減小到理想?yún)^(qū)間。
4.根據(jù)權(quán)利要求3所述的一種GPU加速編碼器碼率控制方法,其特征在于,所述的緩 沖區(qū)充滿度變化率
5.根據(jù)權(quán)利要求4所述的一種GPU加速編碼器碼率控制方法,其特征在于,所述的func2的計(jì)算公式為
全文摘要
本發(fā)明涉及一種GPU加速編碼器碼率控制方法,該方法包括以下步驟1)編碼器當(dāng)前畫面組以初始量化參數(shù)編碼,并將編碼好的視頻碼流輸入緩沖區(qū),緩沖區(qū)根據(jù)傳輸信道的情況將視頻碼流輸出;2)碼率控制器監(jiān)視緩沖區(qū)充滿度,碼率控制器根據(jù)緩沖區(qū)充滿度的值及緩沖區(qū)充滿度變化率計(jì)算出新的量化參數(shù);3)在每個(gè)畫面組的編碼開始前,將當(dāng)前新的量化參數(shù)傳入編碼器,作為該畫面組的量化參數(shù)。與現(xiàn)有技術(shù)相比,本發(fā)明具有不增加時(shí)間空間復(fù)雜度、可在不清楚目標(biāo)碼率的情況下動(dòng)態(tài)調(diào)整碼率等優(yōu)點(diǎn)。
文檔編號H04N7/26GK102724507SQ20121020167
公開日2012年10月10日 申請日期2012年6月18日 優(yōu)先權(quán)日2012年6月18日
發(fā)明者盛斌, 趙清宇, 馬利莊 申請人:上海交通大學(xué)