專利名稱:自適應(yīng)速率控制編碼器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明通常涉及一種視頻編碼器,以及更具體地,涉及一種使用自適應(yīng)速率控制的視頻解碼器。
背景技術(shù):
在聯(lián)合視頻工作組(JVT)視頻編碼器中,當(dāng)具有有限緩沖器大小的固定信道帶寬應(yīng)用需要時(shí),需要速率控制來實(shí)現(xiàn)特定的恒定比特率。避免緩沖器上溢或下溢在視頻內(nèi)容上更具挑戰(zhàn)性,包括具有不同復(fù)雜度特征的部分,如,場(chǎng)景改變及分解的部分。
先前的視頻壓縮標(biāo)準(zhǔn)已對(duì)速率控制進(jìn)行研究。為H.263+提出了TMN8。TMN8速率控制使用幀層速率控制為當(dāng)前幀選擇目標(biāo)比特?cái)?shù),以及宏塊層速率控制為宏塊選擇量化參數(shù)(QP)值。
在幀層速率控制中,用于當(dāng)前幀的目標(biāo)比特?cái)?shù)通過以下確定B=R/F-Δ (1) W=max(Wprev+B′-R/F,0) (3)其中,B是一幀的目標(biāo)比特?cái)?shù)、R是每秒比特為單位的信道速率、F是每秒幀為單位的幀速率、W是編碼器緩沖器中的比特?cái)?shù)、M是最大緩沖器大小、Wprev是緩沖器中的先前比特?cái)?shù)、B’是用于編碼先前幀的實(shí)際比特?cái)?shù)、以及默認(rèn)設(shè)置Z=0.1來獲得低延時(shí)。
宏塊層速率控制選擇用于幀中所有宏塊的量化階(step)大小的值,使得宏塊總比特?cái)?shù)接近于幀目標(biāo)比特?cái)?shù)B。用于幀中的宏塊i的最優(yōu)量化階大小Qi*能夠由下式確定Qi*=AKβi-ANiCσiαiΣk=1Nαkσk,---(4)]]>其中,K是模型參數(shù)、A是宏塊中的像素?cái)?shù)、Ni是幀中剩余要編碼的宏塊數(shù)、σi是第i個(gè)宏塊中的標(biāo)準(zhǔn)殘留偏差、αi是第i個(gè)宏塊的失真權(quán)重、C是開銷速率、以及βi是通過在初始階段設(shè)置βi=B,用于編碼幀的剩余位數(shù)。
TMN8方案易于及已知能夠?qū)崿F(xiàn)高質(zhì)量及精確的比特速率,但是并不特別適合H.264。速率失真優(yōu)化(RDO)(如,速率限制運(yùn)動(dòng)估計(jì)及模式判決)是H.264中廣泛接受的用于模式判決及運(yùn)動(dòng)估計(jì)的方法,其中,需要在執(zhí)行RDO之前決定量化參數(shù)(QP)(用于決定拉格朗日最優(yōu)化中的λ)。但是,TMN8模型需要預(yù)測(cè)誤差信號(hào)(殘余量)的統(tǒng)計(jì)量來估計(jì)QP,這意味著,需要在確定QP之前執(zhí)行運(yùn)動(dòng)估計(jì)及模式判決,這樣導(dǎo)致了必須先計(jì)算相關(guān)參數(shù)(dependent parameter)的難題,因?yàn)槊總€(gè)值都需要知道其它未計(jì)算的值,并基于此進(jìn)行判決。
為了克服上述難題,為H.264速率控制提出了一種方法(下面稱為“第一傳統(tǒng)方法”)、并將該方法并入JVT JM參考軟件版本JM7.4,該方法使用在具有相同類型的最新編碼的畫面中配置的宏塊的殘余量來預(yù)測(cè)當(dāng)前宏塊的殘余量。此外,也為克服難題,為H.264速率控制提出了另一種方法(下面稱為“第二傳統(tǒng)方法”),該方法使用兩級(jí)編碼,其中,先前畫面的QP(QPprev)首先用于生成殘余量,然后基于該殘余量來估計(jì)當(dāng)前宏塊的QP。前面的方法(即,第一傳統(tǒng)方法)較為簡(jiǎn)單,但是缺乏精度。后面的方法(即,第二傳統(tǒng)方法)比較精確,但是需要多次編碼,這樣大大增加了復(fù)雜度。
發(fā)明內(nèi)容
本發(fā)明解決了現(xiàn)有技術(shù)的這些及其它缺點(diǎn),并提出使用自適應(yīng)速率控制的編碼器。
根據(jù)本發(fā)明的一方面,提供了一種視頻編碼器,用于對(duì)分為宏塊的圖像幀進(jìn)行編碼。視頻編碼器包括用于對(duì)圖像幀的宏塊生成量化參數(shù)(QP)的裝置。視頻編碼器還包括使用對(duì)宏塊QP估計(jì)的均值、中值、及模之一,來選擇用于圖像幀的幀級(jí)QP的裝置。
根據(jù)本發(fā)明的另一方面,提供了一種用于對(duì)分為宏塊的圖像幀進(jìn)行編碼的方法。該方法包括對(duì)圖像幀的宏塊生成量化參數(shù)(QP)的步驟。該方法還包括使用對(duì)宏塊QP估計(jì)的均值、中值、及模(mode)之一,來選擇用于圖像幀的幀級(jí)QP的步驟。
結(jié)合附圖,本發(fā)明的這些及其它方面、特征和優(yōu)點(diǎn)將從下面示例性實(shí)施例的詳細(xì)描述中變得顯而易見。
根據(jù)下面的示例性圖示,可以更好地理解本發(fā)明,其中圖1示出了視頻編碼器結(jié)構(gòu)框圖;以及圖2示出了根據(jù)本發(fā)明原則的使用速率控制的編碼過程的流程圖。
具體實(shí)施例方式
本發(fā)明提出了一種使用自適應(yīng)速率控制的編碼器。有益地,本發(fā)明避免了視頻編碼器中緩沖器的上溢或下溢,尤其,在包括具有不同復(fù)雜度特征的部分的視頻內(nèi)容的情況下。
本發(fā)明的描述說明了本發(fā)明的原則。因而將認(rèn)識(shí)到,盡管這里沒有明確地描述或示出,但本領(lǐng)域的技術(shù)人員將能夠想到包含了本發(fā)明原則、以及包括于本發(fā)明的精神和范圍之內(nèi)的不同的方案。
在這里敘述的所有示例及條件術(shù)語用于示教目的,意在幫助讀者理解本發(fā)明的原則及由發(fā)明人提出以推進(jìn)該技術(shù)的概念,并且應(yīng)理解為并不局限于這里所具體闡明的示例和條件。
此外,在這里敘述了本發(fā)明的原則、方案、實(shí)施例、及特定示例的所有陳述意在包括結(jié)構(gòu)及功能的等同物。此外,這意味著這樣的等同物既包括當(dāng)前熟知的等同物、也包括將來開發(fā)的等同物,即,不管結(jié)構(gòu)如何,為執(zhí)行相同的功能而開發(fā)的任何元件。
因此,例如,本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,在這里呈現(xiàn)的結(jié)構(gòu)框圖表示體現(xiàn)本發(fā)明原則的示例性電路的概念圖。類似地,將認(rèn)識(shí)到,無論是否明確地示出了這樣的計(jì)算機(jī)或處理器,任何流程圖、流程圖表、狀態(tài)轉(zhuǎn)移圖、偽碼及其它表示多種的處理過程,實(shí)質(zhì)上都可以在計(jì)算機(jī)可讀介質(zhì)中表示,并由計(jì)算機(jī)或處理器執(zhí)行。
附圖中示出的多種元件的功能可以通過使用專用硬件、以及能夠執(zhí)行軟件的硬件來提供,其中,這些硬件與適合的軟件相關(guān)。當(dāng)由處理器提供時(shí),可以由各個(gè)專用處理器、各個(gè)共享處理器、或由其中一些被共享的多個(gè)獨(dú)立處理器來提供功能。此外,明確使用的名詞“處理器”或“控制器”不應(yīng)理解為專指能夠執(zhí)行軟件的硬件,而是可以暗含地不受限制的包括數(shù)字信號(hào)處理器(“DSP”)硬件、用于存儲(chǔ)軟件的只讀存儲(chǔ)器(“ROM”)、隨機(jī)存取存儲(chǔ)器(“RAM”)、以及非易失性存儲(chǔ)器。
還可以包括傳統(tǒng)的和/或定制的其它硬件。類似地,附圖中示出的任何開關(guān)也只是概念性的??梢酝ㄟ^操作程序邏輯、專用邏輯、程序控制與專用邏輯的相互作用、或甚至手動(dòng)地來執(zhí)行這些開關(guān)的功能,以從上下文中更加詳細(xì)地理解可由實(shí)施者選擇的特定技術(shù)。
在權(quán)利要求中,表示為用于執(zhí)行指定功能的裝置的任何元件意在包括執(zhí)行指定功能的任何方式,這些元件包括,例如,a)執(zhí)行指定功能的電路元件的組合、或b)任何形式的軟件,因而包括固件、微碼或類似軟件,這些軟件與用于執(zhí)行該軟件以實(shí)現(xiàn)功能的適合的電路相結(jié)合。由這樣的權(quán)利要求定義的發(fā)明存在的事實(shí)是,由不同所述裝置所提供的功能被合并,并以權(quán)利要求所要求的方式組合。因而申請(qǐng)者將能夠提供這些功能的任何裝置都視為在這里示出的那些裝置的等同物。
在圖1中,示出了視頻編碼器,具有在信號(hào)通信中與求和節(jié)點(diǎn)(summing junction)110的同相輸入端相連的編碼器100輸入。在信號(hào)通信中,求和節(jié)點(diǎn)110的輸出與塊轉(zhuǎn)換器120相連。在信號(hào)通信中,塊轉(zhuǎn)換器120與量化器130的第一輸入相連。在信號(hào)通信中,量化器130的輸出與可變長(zhǎng)度編碼器(“VLC”)140相連,其中,VLC 140的輸出是編碼器100的外部可用輸出。速率控制器177的第一輸入在信號(hào)通信中與求和節(jié)點(diǎn)110的輸出相連,速率控制器177的第二輸入在信號(hào)通信中VLC 140的輸出相連,以及速率控制器177的輸出在信號(hào)通信中與量化器130的第二輸入相連。
量化器130的輸出在信號(hào)通信中還與反相量化器150相連。反相量化器150在信號(hào)通信中與反相塊轉(zhuǎn)換器160相連,其中,反向塊轉(zhuǎn)換器160在信號(hào)通信中與參考畫面存儲(chǔ)器170相連。參考畫面存儲(chǔ)器170的第一輸入在信號(hào)通信中與運(yùn)動(dòng)估計(jì)器180的第一輸入相連。編碼器100的輸入在信號(hào)通信中還與運(yùn)動(dòng)估計(jì)器180的第二輸入相連。運(yùn)動(dòng)估計(jì)器180的輸出在信號(hào)通信中與運(yùn)動(dòng)補(bǔ)償器190的第一輸入相連。參考畫面存儲(chǔ)器170的第二輸出在信號(hào)通信中與運(yùn)動(dòng)補(bǔ)償器190的第二輸入相連。運(yùn)動(dòng)補(bǔ)償器190的輸出在信號(hào)通信中與求和節(jié)點(diǎn)110的反相輸入相連。
現(xiàn)在轉(zhuǎn)向圖2,用于對(duì)具有速率控制的圖像塊進(jìn)行編碼的示例性處理通常由參考數(shù)字200表示。該處理包括初始化塊205,該初始化塊205初始化緩沖器、計(jì)算平均目標(biāo)幀比特、或平均目標(biāo)畫面組(GOP)比特,設(shè)置所有速率控制相關(guān)參數(shù)的初始值等。初始化塊205將控制傳遞至有限循環(huán)塊210,該有限循環(huán)塊210開始第一循環(huán)并設(shè)置i=0(范圍為0至frame_number-1),并將控制傳遞至判決塊215。
在判決塊215中,(對(duì)于當(dāng)前幀)確定緩沖器充滿程度(buffer_fullness)是否大于第一門限T1、以及對(duì)幀進(jìn)行編碼的可用比特(bit_budget)是否小于第二門限T2。
如果buffer_fullness大于T1和/或bit_budget小于T2,則,將控制傳遞至功能塊220,執(zhí)行虛擬幀跳過,并對(duì)于下一幀(i<frame_number),將控制傳遞至結(jié)束循環(huán)塊275或結(jié)束第一循環(huán)(i==frame_number)。否則,如果buffer_fullness小于等于T1并且bit_budget大于等于T2,則將控制傳遞至功能塊225。
功能塊225依據(jù)畫面類型執(zhí)行幀的預(yù)處理,以獲得預(yù)測(cè)殘余量的估計(jì),并將控制傳遞至功能塊230。對(duì)于I畫面,由功能塊225執(zhí)行的預(yù)處理可以包括使用容許幀內(nèi)預(yù)測(cè)模式子集以形成預(yù)測(cè)的內(nèi)部編碼、以及可以使用針對(duì)利用子集形成的預(yù)測(cè)的預(yù)測(cè)殘余量的均方誤差,以便從容許幀內(nèi)預(yù)測(cè)模式的子集中確定最佳模式。對(duì)于P畫面,由功能塊225執(zhí)行的預(yù)處理可以包括僅使用16×16塊類型以及1參考畫面來執(zhí)行運(yùn)動(dòng)估計(jì)。將認(rèn)識(shí)到,如在這里使用的,詞組“最佳模式”指對(duì)于給出的幀和/或圖像塊,得出最精確預(yù)測(cè)的預(yù)測(cè)模式。
功能塊230執(zhí)行基于由預(yù)處理塊225生成的統(tǒng)計(jì)量的幀量化參數(shù)(QP)估計(jì),并將控制傳遞至有限循環(huán)塊235。有限循環(huán)塊235開始第二循環(huán),設(shè)置j=0(范圍為0至MB_number-1)、并將控制傳遞至判決塊240。
判決塊240確定是否允許宏塊級(jí)速率控制。如果不允許宏塊級(jí)速率控制,則將控制傳遞至功能塊260,使用幀QP對(duì)幀的每一宏塊進(jìn)行編碼,并且將控制傳遞到結(jié)束循環(huán)塊265,用于結(jié)束第二循環(huán)。如果允許宏塊級(jí)速率控制,則將控制傳遞至功能塊245,根據(jù)RD(速率失真)模型和幀QP來估計(jì)每一個(gè)宏塊的QP,并將控制傳遞至功能塊250。
功能塊250對(duì)當(dāng)前宏塊進(jìn)行編碼,并將控制傳遞至功能塊255。功能塊255在對(duì)一個(gè)宏塊進(jìn)行編碼之后被執(zhí)行、同其它統(tǒng)計(jì)量一起更新RD模型、并將控制傳遞至結(jié)束循環(huán)塊265。
結(jié)束循環(huán)塊265將控制傳遞至功能塊270,當(dāng)完成幀編碼之后,功能塊270更新緩沖器充滿程序及其它統(tǒng)計(jì)量(如,下一幀的目標(biāo)比特及RD模型中的參數(shù)),并將控制傳遞至結(jié)束循環(huán)塊275,結(jié)束循環(huán)塊275在對(duì)所有幀進(jìn)行編碼之后將控制傳遞至結(jié)束塊280。
本發(fā)明提供了用于視頻數(shù)據(jù)編碼的自適應(yīng)速率控制,下面將對(duì)本發(fā)明提出的諸多問題中的一些進(jìn)行描述。本發(fā)明基于用于H.263+的TMN8中的模型建立。該模型使用拉格朗日優(yōu)化來將由于目標(biāo)碼率約束而引起的失真最小化。為使該模型適應(yīng)國(guó)際通信聯(lián)盟電信部門(ITU-T)H.264標(biāo)準(zhǔn)、并進(jìn)一步提高性能,必須考慮幾個(gè)問題。第一,速率失真優(yōu)化(RDO)(如,速率受限的運(yùn)動(dòng)估計(jì)和模式判決)是H.264中用于模式判決和運(yùn)動(dòng)估計(jì)的廣泛接受的方法,其中,需要在執(zhí)行RDO之前決定量化參數(shù)(QP)(用于決定拉格朗日優(yōu)化中的λ)。但是,TMN8模型需要預(yù)測(cè)誤差信號(hào)(殘余量)的統(tǒng)計(jì)量以估計(jì)QP,這意味著,需要在得到QP之前執(zhí)行運(yùn)動(dòng)估計(jì)和模式判決,這樣導(dǎo)致了必須先計(jì)算相關(guān)參數(shù)的難題,因?yàn)槊總€(gè)值都需要知道其它未計(jì)算的值,并基于此進(jìn)行判決。
第二,TMN8以低延時(shí)應(yīng)用為目標(biāo),但是H.264能夠用于多種應(yīng)用。因此,對(duì)于多種內(nèi)容需要新的比特分配和緩沖管理方案。第三,TMN8使QP適用于宏塊級(jí)。盡管在當(dāng)前宏塊和最后編碼的宏塊之間的QP差(DQUANT)上作出約束,但是能夠觀察到相同畫面內(nèi)大QP變化的主觀效應(yīng),并且具有消極主觀效應(yīng)。此外,已知對(duì)于整個(gè)圖像使用恒定QP可以為DQUANT編碼節(jié)約附加比特,因而對(duì)于非常低的比特速率,得到較高的PSNR。最后,H.264使用4×4整數(shù)轉(zhuǎn)換,以及如果編解碼器使用諸如在JM參考軟件中的一些門限技術(shù),則會(huì)丟失細(xì)節(jié)。因此,在速率控制中采用感知模型以保持細(xì)節(jié)是非常有用的。
預(yù)處理階段從等式(4)中,能夠看出TMN8模型需要知道殘余的標(biāo)準(zhǔn)偏差來估計(jì)QP。然而,RDO需要知道QP來執(zhí)行運(yùn)動(dòng)估計(jì)和模式判決以生成殘余量。為克服該難題,上面提到的第一傳統(tǒng)方法使用在具有相同類型的最新編碼的畫面中配置的宏塊的殘余量來預(yù)測(cè)當(dāng)前宏塊的殘余量,以及上面提到的第二傳統(tǒng)方法使用二級(jí)編碼,其中,先前畫面的QP(QPprev)首先用于生成殘余量,然后基于該殘余量來估計(jì)當(dāng)前宏塊的QP。前面的方法(即,第一傳統(tǒng)方法)簡(jiǎn)單,但是缺乏精度。后面的方法(即,第二傳統(tǒng)方法)比較精確,但是需要多次編碼,這樣大大增加了復(fù)雜度。
根據(jù)本發(fā)明,采用不同的方法來估計(jì)殘余量,該方法比上面提到的第二傳統(tǒng)方法簡(jiǎn)單,但比上面提到的第一傳統(tǒng)方法精確。實(shí)驗(yàn)顯示,簡(jiǎn)單的預(yù)處理階段能夠給出殘余量的良好估計(jì)。對(duì)于I畫面,僅測(cè)試3種最可能內(nèi)部16×16模式(垂直、水平以及離散余弦(DC)模式)、以及預(yù)測(cè)殘余量的MSE(均方誤差)用于選擇最佳模式。為降低復(fù)雜度,僅測(cè)試三種模式。然而,在本發(fā)明的其它實(shí)施例中,在保持本發(fā)明精神的同時(shí),能夠測(cè)試或多或少的模式。然后使用最佳模式生成空間殘余量。應(yīng)當(dāng)注意,僅由于重構(gòu)象素不可用,所以不是重構(gòu)像素值、而是原始像素值用于幀內(nèi)預(yù)測(cè)。
對(duì)于P圖像,僅使用16×16塊類型和1參考畫面,來執(zhí)行速率限制運(yùn)動(dòng)搜索。在該模式中,使用最佳運(yùn)動(dòng)向量生成暫時(shí)殘余量。先前編碼畫面的平均值QP用于決定在速率限制運(yùn)動(dòng)搜索上的λ。實(shí)驗(yàn)顯示,通過限制先前編碼畫面和當(dāng)前畫面之間的QP差,基于QPprev的λ對(duì)運(yùn)動(dòng)估計(jì)產(chǎn)生較小影響。該方法的次要優(yōu)點(diǎn)是,在編碼期間,預(yù)處理階段中的結(jié)果運(yùn)動(dòng)向量能夠用作運(yùn)動(dòng)估計(jì)中的初始運(yùn)動(dòng)向量。
幀層速率控制TMN8的目標(biāo)是低延時(shí)和低比特速率應(yīng)用,其中,假設(shè)在第一I畫面后僅編碼P畫面,因而應(yīng)當(dāng)重新定義如等式(1)中示出的比特分配模型,以適應(yīng)使用更多頻率/畫面的多種應(yīng)用。等式(4)的QP估計(jì)模型能夠?qū)е乱粋€(gè)圖像之內(nèi)的大QP變化,這樣,首次較好的估計(jì)幀級(jí)QP以對(duì)宏塊(MB)QP的變化作出約束。此外,對(duì)于低比特速率,由于編碼DQUANT的開銷,可以更有效的使用恒定的圖像QP。因此,良好的速率控制方案應(yīng)既允許幀級(jí)的速率控制,又允許MB級(jí)的速率控制。
將首先按照本發(fā)明的原則,提供對(duì)新比特分配方案的描述。然后,將按照本發(fā)明的原則,提供對(duì)判決幀級(jí)QP的簡(jiǎn)單方案的描述。
在許多應(yīng)用中,如,在實(shí)時(shí)編碼器中,編碼器不會(huì)預(yù)先知道需要編碼的總幀數(shù)、或何時(shí)將發(fā)生場(chǎng)景改變。因此,對(duì)于每一畫面,采用畫面組(GOP)層速率控制來分配目標(biāo)比特。H.264標(biāo)準(zhǔn)實(shí)際不包括畫面組,但是這里使用的術(shù)語表示I畫面之間的距離。GOP的長(zhǎng)度由NGOP表示。如果NGOP→∞,則下面設(shè)置NGOP=F,NGOP與幀的一秒的長(zhǎng)度相對(duì)應(yīng)。注意BGi,j用于表示在編碼畫面j-1之后GOP中的剩余比特,BGi,j等于
在上面的等式中,RGi-1是對(duì)GOP i-1編碼之后的剩余比特?cái)?shù),由RGi-1=R/F*Ncoded-Bcoded得到,其中,Bcoded是GOP i完成之后使用的比特、以及Ncoded是GOP i完成之后的編碼畫面數(shù)。Bi,j和B′i,j分別是用于GOP i的幀j的目標(biāo)比特和實(shí)際使用的比特。在等式(5)中,當(dāng)內(nèi)容的復(fù)雜度等級(jí)顯著地從一個(gè)GOP改變?yōu)榱硪粋€(gè)GOP時(shí),對(duì)GOP i在分配的總比特?cái)?shù)上加上一個(gè)約束,以防止緩沖器上溢。例如,考慮先前GOP具有極低復(fù)雜度的場(chǎng)景,例如全黑,所以緩沖器滿等級(jí)將變得很低。作為將所有未使用的比特從先前GOP分配至當(dāng)前GOP的替代,通過不允許各個(gè)GOP有多于0.2M的附加比特,將未使用的比特分配至幾個(gè)接下來的GOP上。然后根據(jù)畫面類型分配目標(biāo)幀比特Bi,j。如果第j個(gè)畫面是P,則目標(biāo)比特是Bi,jP=BGi,j/(KINI+NP),]]>其中,KI是I畫面和P畫面之間的比特比率,能夠使用滑窗方法進(jìn)行估計(jì);NI是GOP i中的I畫面的剩余畫面數(shù)、以及NP是GOP i中的P畫面的剩余畫面數(shù);否則,Bi,jI=KIBi,jP.]]>由于通過相同GOP中接下來的P畫面,將P畫面用作參考量,所以為在GOP開始的P畫面分配更多的目標(biāo)比特,以確保能夠從較高質(zhì)量的參考量中預(yù)測(cè)出后面的P畫面、并且能夠提高編碼質(zhì)量。線性加權(quán)P畫面目標(biāo)比特分配使用如下Bi,jP+=R/F*0.2*(NGOP-2j)/(NGOP-2)---(6)]]>添加另一約束條件以更好地滿足GOP的目標(biāo)比特Bi,j+=0.1*Bdiff其中,Bdiff,j-1=Bi,j-1-B′i,j-1,以及Bdiff,j-1=sign(Bdiff,j-1)min(|Bdiff,j-1|,R/F)。
作為根據(jù)本發(fā)明的示例性速率控制,尋求50%的緩沖器空間。為防止緩沖器上溢或下溢,目標(biāo)比特需要聯(lián)合地適合緩沖器等級(jí)。緩沖器等級(jí)W在編碼每一畫面的結(jié)束時(shí)通過等式(3)更新。根據(jù)本發(fā)明的原則,不使用實(shí)際緩沖器等級(jí)來調(diào)整目標(biāo)比特,而提出由W′=max(W,0.4M)給出虛擬緩沖器的等級(jí)W’。這有助于防止這樣的情景如果先前編碼的畫面具有諸如黑色場(chǎng)景之類的非常低的復(fù)雜度以及消耗非常少的比特,則緩沖器等級(jí)將變得非常低。如果如在等式(7)中,實(shí)際緩沖器等級(jí)用于調(diào)整目標(biāo)幀比特,則可以分配太多的比特,這將導(dǎo)致QP非常迅速地減少。一段時(shí)間之后,當(dāng)場(chǎng)景轉(zhuǎn)為正常時(shí),低QP將很容易導(dǎo)致緩沖器上溢。因此,需要顯著地增加QP或跳過這些幀。這導(dǎo)致了暫時(shí)的質(zhì)量的明顯變化。因而,通過緩沖器控制調(diào)整比特如下Bi,j=Bi,j*(2M-W′)/(M+W′)(7)為保證最小等級(jí)的質(zhì)量,下面設(shè)置Bi,j=max(0.6*R/F,Bi,j)。為了進(jìn)一步避免緩沖器上溢或下溢,將用于I畫面的緩沖器安全頂部余量WT和底部余量WB設(shè)置為W′T=0.75M,以及W′B=0.25M。對(duì)于P畫面,符合等式(5)并允許足夠緩沖器用于下一GOP中的下一I畫面,下面設(shè)置WTP=(1-((0.4-0.2)/(N-1)*j+0.2))*M,]]>以及WBP=0.1M.]]>最終目標(biāo)比特確定如下。下面設(shè)置WVT=W+Bi,j,WVB=WVT-R/F。如果WVT<WT,則B-=WVT-WT,否則如果WVB<WB,則B+=WB-WVB。
要注意的是,如果使用場(chǎng)景改變檢測(cè)器,則在場(chǎng)景改變處的畫面要編碼為I畫面,并且新的GOP從這個(gè)I畫面開始。仍然能夠使用上述方案。
提出根據(jù)本發(fā)明的新方法,基于等式(4)中得到的宏塊級(jí)QP來決定幀級(jí)QP。等式(4)修改如下Q^i=AKB-C^σiαiΣk=1Nαkσk,---(8)]]>其中, 是來自上一編碼畫面具有相同類型的開銷,在預(yù)處理階段如上所述來估計(jì)σi。根據(jù)本發(fā)明原則的兩種方法能夠用來得到幀級(jí)的恒定QP,表示為QPf。第一方法是設(shè)置αi=σi,使得所有MB QP相等。第二方法是如下面所定義的,使用相同的αi作為MB級(jí)QP,然后使用 值的直方圖的均值、中值或模來得到QPf。
在本發(fā)明的優(yōu)選實(shí)施例中,得到QPf的第二方法用于更好地匹配MB QP。幀級(jí)量化步長(zhǎng)由 值地均值決定,Q^f=Σi=1NQ^i/N.]]>注意,存在通過Q=2(QP-6)/6在量化參數(shù)QP和量化步長(zhǎng)Q之間進(jìn)行的轉(zhuǎn)換。為降低相鄰畫面之間的暫時(shí)的質(zhì)量變化,下面設(shè)置QPf=max(QPf′-Df,min(QPf,QPf′+Df)),其中,QPf’是最近編碼幀的幀QP,并且 由于場(chǎng)景變化通常導(dǎo)致較高的緩沖器等級(jí),所以當(dāng)發(fā)生場(chǎng)景改變時(shí),采用了暫時(shí)掩蔽效應(yīng)的優(yōu)點(diǎn)、并且將Df設(shè)置為較高值。
MB層速率控制MB層速率控制中的第一關(guān)鍵特征是適當(dāng)?shù)剡x擇加權(quán)失真αi以得到較好的感知質(zhì)量。第二關(guān)鍵特征是降低相同畫面中的MB QP的變化。
對(duì)于低細(xì)節(jié)內(nèi)容,諸如海浪,需要較低QP保持細(xì)節(jié)。然而,從RDO觀點(diǎn)中,由于較低細(xì)節(jié)內(nèi)容會(huì)給出較高PSNR,所以優(yōu)選較高QP。為保持平衡,對(duì)于I和P畫面,分別采用不同的αi的設(shè)置。對(duì)于I畫面,將較高的失真賦給具有較少細(xì)節(jié)的MB,使得能夠更好地保持細(xì)節(jié)。此外,下面設(shè)置αi=(σi+2σavg)/(2σi+σavg),其中,σavg=Σi=1Nσ/N.]]>對(duì)于P畫面,將較高的失真權(quán)重賦予具有較多殘留誤差(residueerror)的MB。此外, 這樣,保持了I畫面較好的感知質(zhì)量,并且能夠?qū)畫面?zhèn)鬟f至下面的P畫面,同時(shí)仍保持較高的客觀質(zhì)量。為了防止一幅畫面內(nèi)部質(zhì)量的大的變化,下面設(shè)置QPi=max(QPf-2,min(QPi,QPf+2))。如果使用幀級(jí)速率控制,則QPi=QPf。
虛擬幀跳過在編碼一幅畫面之后,通過等式(3)更新W。如果W>0.9M,則虛擬地跳過下一幀,直到緩沖器等級(jí)低于0.9M。虛擬幀跳過要對(duì)P畫面中每一個(gè)MB進(jìn)行編碼,以成為跳過模式。這樣,能夠依句法(syntactically)保持恒定的幀速率。如果當(dāng)前幀被確定為虛擬的跳過幀,則下面設(shè)置QPf=QP’f+2。
總之,根據(jù)本發(fā)明的速率控制包括下面的步驟預(yù)處理、幀目標(biāo)比特分配及幀級(jí)恒定QP估計(jì)、MB級(jí)QP估計(jì)、緩沖器更新及虛擬幀跳過控制。有益地,本發(fā)明能夠既允許幀級(jí)速率控制,又允許MB級(jí)速率控制。
根據(jù)本發(fā)明的多種示例性實(shí)施例,將給出對(duì)本發(fā)明的諸多附加優(yōu)點(diǎn)/特征的描述。例如,一個(gè)優(yōu)點(diǎn)/特征是使用初始宏塊QP估計(jì)的均值/中值/模來選擇幀級(jí)QP。另一優(yōu)點(diǎn)/特征出現(xiàn)在選擇的幀級(jí)QP用于計(jì)算各個(gè)宏塊QP時(shí)。還有另一優(yōu)點(diǎn)/特征出現(xiàn)在執(zhí)行幀內(nèi)預(yù)測(cè)時(shí),使用容許幀內(nèi)預(yù)測(cè)模式來形成用于QP選擇過程中的殘余量。此外,另一優(yōu)點(diǎn)/特征是使用了較少數(shù)量的幀內(nèi)預(yù)測(cè)模式(如,3種(3))。另一優(yōu)點(diǎn)/特征出現(xiàn)使用大量未用比特對(duì)先前GOP進(jìn)行編碼時(shí),將分配至當(dāng)前GOP的附加比特限制至預(yù)定門限值。另一優(yōu)點(diǎn)/特征出現(xiàn)在虛擬緩沖器等級(jí)用于緩沖器控制而不是實(shí)際緩沖器等級(jí)用于緩沖器控制時(shí)。
基于在此的示教,本領(lǐng)域的技術(shù)人員可以容易地得知本發(fā)明的這些和其它特征及優(yōu)點(diǎn)。可以理解,本發(fā)明的示教可以按硬件、軟件、固件、特殊目的的處理器、或上述的組合的多種形式來實(shí)現(xiàn)。
最優(yōu)選地,以硬件和軟件組合的形式來執(zhí)行本發(fā)明的示教。此外,優(yōu)選地,以有形地實(shí)現(xiàn)于程序存儲(chǔ)單元的應(yīng)用程序的形式來執(zhí)行軟件。可以由包含任何適合結(jié)構(gòu)的機(jī)器來更新及執(zhí)行應(yīng)用程序。優(yōu)選地,在具有諸如一個(gè)或多個(gè)中央處理單元(“CPU”)、隨機(jī)存取存儲(chǔ)器(“RAM”)、及輸入/輸出(“I/O”)接口之類的硬件的計(jì)算機(jī)平臺(tái)上來實(shí)現(xiàn)該機(jī)器。計(jì)算機(jī)平臺(tái)還可以包括操作系統(tǒng)和微指令代碼。這里描述的多種處理和功能可以是可由CPU執(zhí)行的部分微指令代碼或部分應(yīng)用程序、或是上述的任何組合。此外,多種其他外設(shè)單元可以連接至計(jì)算機(jī)平臺(tái),如附加數(shù)據(jù)存儲(chǔ)器單元及打印單元。
還將理解,由于附圖中描述的一些組成系統(tǒng)組件及方法優(yōu)選地以軟件來執(zhí)行,所以系統(tǒng)組件或處理功能塊間的實(shí)際連接可以根據(jù)對(duì)本發(fā)明進(jìn)行編程的方式而不同。根據(jù)這里給出的示教,本領(lǐng)域的技術(shù)人員將能夠設(shè)想本發(fā)明的這些及類似的實(shí)施方式或配置。
盡管已參照附圖對(duì)示例性實(shí)施例進(jìn)行了描述,但是將理解,本發(fā)明并不局限于這些精確的實(shí)施例,并且在不偏離本發(fā)明的范圍和精神的情況下,本領(lǐng)域的技術(shù)人員可以作出多種變化和修改。所有的這些變化和修改都意在包括于所附權(quán)利要求中提出的本發(fā)明的范圍之內(nèi)。
權(quán)利要求
1.一種用于對(duì)被分為宏塊的圖像幀進(jìn)行編碼的視頻編碼器,所述視頻編碼器包括裝置(130),用于生成圖像幀宏塊的量化參數(shù)(QP)估計(jì);以及裝置(130),用于使用宏塊QP估計(jì)的均值、中值、及模的其中之一,來選擇圖像幀的幀級(jí)QP。
2.如權(quán)利要求1所述的視頻編碼器,其中,所述圖像幀包括符合國(guó)際電信聯(lián)盟電信部門(ITU-T)H.264標(biāo)準(zhǔn)的視頻數(shù)據(jù)。
3.如權(quán)利要求1所述的視頻編碼器,還包括與所述幀級(jí)QP選擇裝置進(jìn)行信號(hào)通信的宏塊QP計(jì)算器(130),用于使用所選的幀級(jí)QP來計(jì)算各個(gè)宏塊QP。
4.如權(quán)利要求3所述的視頻編碼器,其中,所述宏塊QP計(jì)算器(130)基于畫面類型來調(diào)整各個(gè)宏塊QP。
5.如權(quán)利要求4所述的視頻編碼器,其中,所述宏塊QP計(jì)算器(130)調(diào)整各個(gè)宏塊QP來為幀內(nèi)編碼畫面保持比幀間編碼畫面更多的細(xì)節(jié),并且為幀間編碼畫面實(shí)現(xiàn)比幀內(nèi)編碼畫面更低的均方誤差。
6.如權(quán)利要求1所述的視頻編碼器,還包括幀內(nèi)預(yù)測(cè)裝置,用于使用容許幀內(nèi)預(yù)測(cè)模式的子集對(duì)宏塊進(jìn)行幀內(nèi)預(yù)測(cè),以形成對(duì)宏塊的預(yù)測(cè);以及與所述幀內(nèi)預(yù)測(cè)裝置和所述宏塊QP預(yù)測(cè)裝置進(jìn)行信號(hào)通信的預(yù)測(cè)殘余量計(jì)算裝置(110),用于計(jì)算所述預(yù)測(cè)的預(yù)測(cè)殘余量,以及其中,所述宏塊QP估計(jì)裝置使用由所述預(yù)測(cè)殘余量計(jì)算裝置計(jì)算的殘余量中的至少一個(gè)來生成QP估計(jì)。
7.如權(quán)利要求6所述的視頻編碼器,還包括與所述預(yù)測(cè)殘余量計(jì)算裝置進(jìn)行信號(hào)通信的模式選擇裝置(180),用于使用預(yù)測(cè)殘余量的均方誤差來選擇子集中的一種模式。
8.如權(quán)利要求7所述的視頻編碼器,其中,所述子集中的所選的一種模式為當(dāng)前幀提供了相比于子集中的其它模式的最精確的預(yù)測(cè)。
9.如權(quán)利要求6所述的視頻編碼器,其中,所述子集包括三種幀內(nèi)預(yù)測(cè)模式。
10.如權(quán)利要求9所述的視頻編碼器,其中,所述三種幀內(nèi)預(yù)測(cè)模式是垂直幀內(nèi)預(yù)測(cè)模式、水平幀內(nèi)預(yù)測(cè)模式、以及(DC)幀內(nèi)預(yù)測(cè)模式。
11.如權(quán)利要求1所述的視頻編碼器,其中,每一個(gè)圖像幀表示單個(gè)畫面,并且所述視頻編碼器還包括與所述幀級(jí)QP選擇裝置進(jìn)行信號(hào)通信的比特分配裝置(177),用于為畫面組(GOP)的開始處的畫面分配比GOP中的后續(xù)畫面更多的目標(biāo)比特。
12.如權(quán)利要求1所述的視頻編碼器,其中,每一個(gè)圖像幀表示單個(gè)畫面,并且所述圖像編碼器還包括與所述幀級(jí)QP選擇裝置進(jìn)行信號(hào)通信的比特分配裝置(177),用于當(dāng)使用低于預(yù)定最小門限并高于預(yù)定最大門限的比特?cái)?shù)對(duì)先前GOP進(jìn)行編碼時(shí),限制分配置當(dāng)前畫面組(GOP)的總比特?cái)?shù)。
13.如權(quán)利要求12所述的視頻編碼器,其中,所述比特分配裝置(177)使用線性加權(quán)分配方案來限制總比特?cái)?shù)。
14.如權(quán)利要求12所述的視頻編碼器,其中,所述比特分配裝置(177)基于虛擬緩沖器等級(jí)來限制總比特?cái)?shù),所述虛擬緩沖器等級(jí)用于模擬實(shí)際使用的緩沖器充滿程度、以及相對(duì)于實(shí)際使用緩沖器容量上受到限制。
15.如權(quán)利要求12所述的視頻編碼器,其中,所述比特分配裝置(177)按照最低質(zhì)量、以及與緩沖器上溢有關(guān)的緩沖器安全頂部余量和與緩沖器下溢有關(guān)的緩沖器安全底部余量中的至少一個(gè),來限制總比特?cái)?shù)。
16.如權(quán)利要求1所述的視頻編碼器,還包括與所述幀級(jí)QP選擇裝置進(jìn)行信號(hào)通信的虛擬幀跳過裝置,用于在當(dāng)前緩沖器等級(jí)高于預(yù)定最大門限時(shí),虛擬地跳過要編碼的下一幀。
17.一種用于對(duì)分為宏塊的圖像幀進(jìn)行編碼的方法,包括以下步驟生成(225)圖像幀宏塊的量化參數(shù)(QP)估計(jì);以及使用宏塊QP估計(jì)的均值、中值、及模的其中之一,來選擇(230)圖像幀的幀級(jí)QP。
18.如權(quán)利要求17所述的方法,其中,所述圖像幀包括符合國(guó)際電信聯(lián)盟電信部門(ITU-T)H.264標(biāo)準(zhǔn)的視頻數(shù)據(jù)。
19.如權(quán)利要求17所述的方法,還包括使用選擇的幀級(jí)QP來計(jì)算(245)各個(gè)宏塊QP的步驟。
20.如權(quán)利要求19所述的方法,還包括基于畫面類型來調(diào)整各個(gè)宏塊QP的步驟。
21.如權(quán)利要求20所述的方法,其中,調(diào)整各個(gè)宏塊QP來為幀內(nèi)編碼畫面保持比幀間編碼畫面更多的細(xì)節(jié),以及為幀間編碼畫面實(shí)現(xiàn)比幀內(nèi)編碼畫面更低的均方誤差。
22.如權(quán)利要求17所述的方法,還包括以下步驟使用容許幀內(nèi)預(yù)測(cè)模式的子集對(duì)宏塊進(jìn)行幀內(nèi)預(yù)測(cè)(225),以形成對(duì)宏塊的預(yù)測(cè);以及計(jì)算(225)所述預(yù)測(cè)的預(yù)測(cè)殘余量,其中,所述生成步驟使用在所述計(jì)算步驟中計(jì)算出的殘余量中的至少一個(gè),來生成所述QP估計(jì)。
23.如權(quán)利要求22所述的方法,還包括使用預(yù)測(cè)殘余量的均方誤差來選擇(225)子集中的一種模式的步驟。
24.如權(quán)利要求23所述的方法,其中,所述子集中所選的一種模式為當(dāng)前幀提供了相比于子集中的其它模式的最精確的預(yù)測(cè)。
25.如權(quán)利要求22所述的方法,其中,所述子集包括三種幀內(nèi)預(yù)測(cè)模式。
26.如權(quán)利要求25所述的方法,其中,所述三種幀內(nèi)預(yù)測(cè)模式是垂直幀內(nèi)預(yù)測(cè)模式、水平幀內(nèi)預(yù)測(cè)模式、以及DC幀內(nèi)預(yù)測(cè)模式。
27.如權(quán)利要求17所述的方法,其中,每一個(gè)圖像幀表示單個(gè)畫面,以及所述方法還包括為在畫面組(GOP)的開始處的畫面分配比GOP中的后續(xù)畫面更多的目標(biāo)比特的步驟。
28.如權(quán)利要求17所述的方法,其中,每一個(gè)圖像幀表示單個(gè)畫面,并且所述方法還包括步驟當(dāng)使用低于預(yù)定最小門限及高于預(yù)定最大門限的比特?cái)?shù)對(duì)先前GOP進(jìn)行編碼時(shí),限制分配置當(dāng)前畫面組(GOP)的總比特?cái)?shù)。
29.如權(quán)利要求28所述的方法,其中,所述限制步驟使用線性加權(quán)分配方案來限制總比特?cái)?shù)。
30.如權(quán)利要求28所述的方法,其中,所述限制步驟基于虛擬緩沖器等級(jí)來限制總比特?cái)?shù),所述虛擬緩沖器等級(jí)用于模擬實(shí)際使用的緩沖器充滿程度、并且相對(duì)于實(shí)際使用的緩沖器在容量上受到限制。
31.如權(quán)利要求28所述的方法,其中,所述限制步驟按照最低質(zhì)量、以及與緩沖器上溢有關(guān)的緩沖器安全頂部余量和與緩沖器下溢有關(guān)的緩沖器安全底部余量中的至少一個(gè),來限制總比特?cái)?shù)。
32.如權(quán)利要求17所述的方法,還包括步驟在當(dāng)前緩沖器等級(jí)高于預(yù)定最大門限時(shí),虛擬地跳過(220)要編碼的下一幀。
33.一種用于對(duì)被分為宏塊的圖像幀進(jìn)行編碼的視頻編碼器(100),所述視頻編碼器(100)包括量化器(130),用于生成圖像幀宏塊的量化參數(shù)(QP)估計(jì),并且用于使用宏塊QP估計(jì)的均值、中值、及模的其中之一來選擇圖像幀的幀級(jí)QP。
全文摘要
公開了一種視頻編碼器(100),該編碼器用于對(duì)被分為宏塊的圖像幀進(jìn)行編碼。視頻編碼器(100)包括用于生成圖像幀的宏塊的QP估計(jì)的裝置(130)。視頻編碼器還包括用于使用宏塊的QP估計(jì)的均值、中值及模的其中之一,為選擇圖像幀的幀級(jí)量化參數(shù)(QP)的裝置(130)。公開了一種用于對(duì)分為宏塊的圖像幀進(jìn)行編碼的方法。該方法生成(225)用于圖像幀的宏塊的量化參數(shù)(QP)估計(jì),并使用宏塊QP估計(jì)的均值、中值及模的其中之一,來選擇(230)用于圖像幀的幀級(jí)QP。
文檔編號(hào)H04N7/26GK1910934SQ200580002423
公開日2007年2月7日 申請(qǐng)日期2005年1月11日 優(yōu)先權(quán)日2004年1月30日
發(fā)明者尹鵬, 吉爾·麥克唐納·布瓦斯 申請(qǐng)人:湯姆森許可貿(mào)易公司