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