專利名稱:使用參數(shù)方程式進(jìn)行視頻編碼的速率控制技術(shù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字視頻處理,且更具體而言,涉及對視頻序列的速率受控編碼。
背景技術(shù):
數(shù)字視頻功能可包含于各種各樣的裝置中,包括數(shù)字電視、數(shù)字直接廣播系統(tǒng)、無線通信裝置、個人數(shù)字助理(PDA)、膝上型計算機(jī)、桌上型計算機(jī)、數(shù)字照相機(jī)、數(shù)字錄制裝置、移動電話或衛(wèi)星無線電電話、及類似裝置中。數(shù)字視頻裝置可在形成、修改、傳輸、存儲、記錄及播放全動態(tài)視頻序列方面提供優(yōu)于常規(guī)模擬視頻系統(tǒng)的顯著改良。
人們已制訂了若干種用于編碼數(shù)字視頻序列的不同視頻編碼標(biāo)準(zhǔn)。例如,動畫專家組(the Moving Picture Experts Group,MPEG)已開發(fā)出若干種標(biāo)準(zhǔn),包括MPEG-1、MPEG-2及MPEG-4。其它標(biāo)準(zhǔn)包括國際電信聯(lián)盟(International TelecommunicationUnion,ITU)H.263標(biāo)準(zhǔn)、由位于Cupertino California的Apple Computer公司開發(fā)的QuickTimeTM技術(shù)、由位于Redmond,Washington的Microsoft公司開發(fā)的Video forWindowsTM、由Intel公司開發(fā)的IndeoTM、來自位于Seattle,Washington的RealNetworks公司的RealVideoTM、及由SuperMac公司開發(fā)的CinepakTM。此外,新標(biāo)準(zhǔn)也在持續(xù)地涌現(xiàn)及演進(jìn),包括ITU H.264標(biāo)準(zhǔn)及若干種專屬標(biāo)準(zhǔn)。
許多視頻編碼標(biāo)準(zhǔn)可通過以壓縮方式對數(shù)據(jù)編碼來實現(xiàn)提高的視頻序列傳輸速率。壓縮可減小需要傳輸?shù)臄?shù)據(jù)總量以便有效地傳輸視頻幀。例如,大多數(shù)視頻編碼標(biāo)準(zhǔn)利用圖形及視頻壓縮技術(shù),所述圖形及視頻壓縮技術(shù)設(shè)計成利于在一無需壓縮即可獲得的變窄帶寬上傳輸視頻及圖像。例如,MPEG標(biāo)準(zhǔn)及ITU H.263及ITU H.264標(biāo)準(zhǔn)支持那些利用各順序性視頻幀之間相似性(稱作時間或幀間相關(guān))來提供幀間壓縮的視頻編碼技術(shù)。此種幀間壓縮通常是通過運(yùn)動估計及運(yùn)動補(bǔ)償編碼技術(shù)來實現(xiàn)。此外,某些視頻編碼技術(shù)可利用幀內(nèi)相似性(稱作空間或幀內(nèi)相關(guān))來進(jìn)一步壓縮視頻幀。
人們已開發(fā)出若干種用于視頻編碼的速率控制技術(shù)。速率控制技術(shù)對于為利于視頻序列的實時傳輸而言尤其重要,但也可用于非實時編碼設(shè)定。對于速率控制,所述編碼技術(shù)動態(tài)地調(diào)整每幀所編碼的位數(shù)量。具體而言,速率控制可限制每幀所編碼的位數(shù)量,以便確??梢约榷ㄋ俾视行У貙σ曨l序列實施編碼并因此在所分配帶寬上傳輸。如果所述編碼技術(shù)不可響應(yīng)于視頻序列的景物變化,則視頻序列實時傳輸?shù)奈凰俾士呻S著景物變化而顯著變化。因此,為界定一基本恒定的位速率,在編碼期間動態(tài)地調(diào)整每幀的位數(shù)量。
一種實現(xiàn)速率受控編碼的方法是容許調(diào)整在視頻編碼過程中所用的量化參數(shù)(QP)。QP界定在視頻編碼期間出現(xiàn)的量化,并直接影響每秒所編碼的位數(shù)量。當(dāng)QP增大時,保存較少的數(shù)據(jù)且視頻編碼的質(zhì)量可能會降低。而當(dāng)QP減小時,保存較多的數(shù)據(jù)且視頻編碼的質(zhì)量提高。然而,如果QP過小,則每秒所編碼的位數(shù)量可能會超出所分配的帶寬,并損害在該有限大小的帶寬內(nèi)傳送幀的能力。通過以一動態(tài)方式選擇QP,可使視頻幀傳輸?shù)奈凰俾驶竞愣?。對于某些視頻應(yīng)用而言,非常期望位速率具有小的變化。
發(fā)明內(nèi)容
本發(fā)明說明可改良視頻編碼的速率控制技術(shù)。具體而言,所述速率控制技術(shù)是利用每幀所編碼的位數(shù)量與量化后視頻塊的非零系數(shù)數(shù)量之間的關(guān)系。量化后幀的視頻塊的非零系數(shù)數(shù)量稱作rho(ρ)。ρ的值大體正比于在視頻編碼中所用位的數(shù)量。為實現(xiàn)速率受控的視頻編碼,本發(fā)明利用ρ與一量化參數(shù)(QP)之間的關(guān)系。更具體而言,本發(fā)明利用參數(shù)方程式將預(yù)測的ρ的值映射至一QP。該參數(shù)方程式可呈如下形式 ρ=nc×e-f(qp), 其中e代表歐拉(Euler)數(shù)(常數(shù)2.71828182845904523536028747135…),ρ代表預(yù)測的在量化后幀視頻塊的非零系數(shù)數(shù)量,nc代表以所考慮的單位表示的系數(shù)數(shù)量(例如一幀或視頻塊中系數(shù)的數(shù)量),且f(qp)是該量化參數(shù)的參數(shù)函數(shù)。例如,f(qp)可包含一簡單的多項式或指數(shù)函數(shù)。在某些情形中,可使用不同的常數(shù)來取代歐拉數(shù)(e),例如值2或者可能其它常數(shù)(k)。
在速率受控視頻編碼過程中,可根據(jù)用于界定f(qp)的可編程變量將該參數(shù)方程式初始化。然后,可針對所選QP值來計算ρ的實際值(實際ρ)。然后,可調(diào)整用于界定f(qp)的可編程變量,以便更佳地逼近預(yù)測的ρ與QP之間的關(guān)系。所述技術(shù)可應(yīng)用于視頻塊級速率控制(例如宏塊級)、或者幀級速率控制。在一個較佳實施方案中,應(yīng)用視頻塊級速率控制,但在幀級調(diào)整該參數(shù)方程式中的變量。
在一個實施例中,本發(fā)明提供一種視頻編碼裝置,其包括一存儲視頻序列的存儲器及一編碼器,該編碼器使用參數(shù)方程式來選擇用于對該視頻序列進(jìn)行速率受控視頻編碼的量化參數(shù)(QP),該參數(shù)方程式將量化后非零系數(shù)的預(yù)測數(shù)量(預(yù)測的ρ)映射至量化參數(shù)(QP)。
在另一實施例中,本發(fā)明提供一種速率受控視頻編碼方法,其包括使用一將量化后非零系數(shù)的預(yù)測數(shù)量(預(yù)測的ρ)映射至量化參數(shù)(QP)的參數(shù)方程式來選擇一量化參數(shù)(QP),并使用該所選QP對一個或多個視頻塊實施編碼。
本文所述的這些及其它技術(shù)可按硬件形式、軟件形式、固件形式、或其任一組合形式實施于數(shù)字視頻裝置中。如果以軟件形式實施,則該軟件可在例如數(shù)字信號處理器(DSP)等可編程處理器中執(zhí)行。在此種情形中,用于執(zhí)行所述技術(shù)的軟件可首先存儲于計算機(jī)可讀媒體中、加載于該可編程處理器中并在該可編程處理器中執(zhí)行,以在數(shù)字視頻裝置中實施有效的速率受控編碼。
各個實施例的其它詳情將在附圖及下文說明中提及。根據(jù)本說明及圖式及根據(jù)權(quán)利要求書,將易知其它特征、目的及優(yōu)點。
圖1是一方塊圖,其顯示一其中源數(shù)字視頻裝置向接收數(shù)字視頻裝置傳輸經(jīng)編碼的視頻數(shù)據(jù)序列的實例性系統(tǒng); 圖2是根據(jù)本發(fā)明一實施例的數(shù)字視頻裝置的實例性方塊圖; 圖3是一流程圖,其顯示一種使用一將ρ的預(yù)測值映射至量化參數(shù)(QP)的參數(shù)方程式進(jìn)行幀級速率控制的技術(shù); 圖4是一流程圖,其顯示一種使用一將ρ的預(yù)測值映射至量化參數(shù)(QP)的參數(shù)方程式進(jìn)行視頻塊級速率控制的技術(shù); 圖5是一流程圖,其顯示一種使用一在幀級加以調(diào)整的參數(shù)方程式進(jìn)行視頻塊級速率控制的技術(shù)。
具體實施例方式 本發(fā)明說明可用于改良視頻編碼的速率控制技術(shù)。所述技術(shù)可與各種各樣的視頻編碼標(biāo)準(zhǔn)(例如MPEG-4標(biāo)準(zhǔn),ITU H.263,ITU H.264標(biāo)準(zhǔn)或其它標(biāo)準(zhǔn))中的任一種標(biāo)準(zhǔn)一起使用。所述技術(shù)利用每幀所編碼的位數(shù)量(編碼速率)與量化后幀的視頻塊的非零系數(shù)數(shù)量之間的關(guān)系。量化后幀的視頻塊的非零系數(shù)數(shù)量稱作rho(ρ)。ρ的值大體正比于在視頻編碼中所用的量化參數(shù)(QP)。相應(yīng)地,本發(fā)明說明一種利用ρ與QP之間的關(guān)系來實現(xiàn)速率受控視頻編碼的技術(shù)。
更具體而言,本發(fā)明中所述的技術(shù)利用一將ρ的預(yù)測值映射至一量化參數(shù)(QP)的參數(shù)方程式。由于ρ大體正比于編碼速率,因而可界定一所需的ρ并用其來選擇一應(yīng)產(chǎn)生所需編碼速率的所期望QP??蓪⒃搮?shù)方程式初始化,但然后在視頻編碼過程中加以調(diào)整,以使由該參數(shù)方程式所界定的預(yù)測的ρ更佳地逼近自一所選QP得到的實際ρ。通過此種方式,在視頻編碼過程中動態(tài)地調(diào)整該參數(shù)方程式,以使所選QP更精確地映射至實際ρ并因此更精確地得到所需編碼速率。
用于界定預(yù)測的ρ的參數(shù)方程式可呈如下形式 ρ=nc×e-f(qp), 其中e代表一通常稱作歐拉(Euler)數(shù)(2.71828182845904523536028747135...)的算術(shù)常數(shù),ρ代表預(yù)測的量化后幀的視頻塊的非零系數(shù)數(shù)量,nc代表以所考慮的單位表示的系數(shù)數(shù)量(例如一幀或視頻塊中系數(shù)的數(shù)量),且f(qp)是該量化參數(shù)的參數(shù)函數(shù)。例如,f(qp)可包含一簡單的多項式或指數(shù)函數(shù)。在某些情形中,可使用不同的常數(shù)來取代e的值,例如使用值2或者更一般而言使用另一常數(shù)(k)??傊蛇m用的f(qp)的實例包括如下 f(qp)=α×qp, f(qp)=α×qp+β, f(qp)=α×qp2+β×qp+δ, 或者指數(shù)函數(shù) f(qp)=α×qpβ。
在這些實例中,qp代表量化參數(shù)(在本文中也稱作QP)。
變量α、β及δ包含可編程參數(shù),這些可編程參數(shù)可在速率控制技術(shù)過程中加以調(diào)整,以更佳地逼近該參數(shù)方程式中ρ與qp之間的關(guān)系。具體而言,在編碼過程期間,調(diào)整所述可編程參數(shù),以使對于不同的QP,預(yù)測的ρ實質(zhì)上對應(yīng)于實際ρ。本文中闡述可由本發(fā)明的技術(shù)使用的參數(shù)方程式的若干實例,當(dāng)然許多其它參數(shù)方程式也可適用。
圖1是一方塊圖,其顯示一其中源裝置12通過通信鏈路15向接收裝置14傳輸經(jīng)編碼視頻數(shù)據(jù)序列的實例性系統(tǒng)10。源裝置12與接收裝置14二者均為數(shù)字視頻裝置。具體而言,源裝置12依據(jù)一種可利用速率受控視頻編碼的視頻標(biāo)準(zhǔn)(例如MPEG-4標(biāo)準(zhǔn),ITU H.263,ITU H.264標(biāo)準(zhǔn)或各種各樣其它標(biāo)準(zhǔn)中的任一種標(biāo)準(zhǔn))對視頻數(shù)據(jù)編碼。如下文所更詳細(xì)說明,系統(tǒng)10的裝置12、14中的一者或二者均執(zhí)行速率控制技術(shù),以便改良視頻編碼過程。此等速率控制技術(shù)尤其適用于在例如無線通信鏈路等有限帶寬通信鏈路15上實時傳輸視頻序列。
通信鏈路15可包括無線鏈路、實體傳輸線、光纖、基于數(shù)據(jù)包的網(wǎng)絡(luò),例如局域網(wǎng)、廣域網(wǎng)、或例如因特網(wǎng)等全球網(wǎng)絡(luò)、公共交換電話網(wǎng)絡(luò)(PSTN)、或者任何其它能夠傳送數(shù)據(jù)的通信鏈路。因此,通信鏈路15代表用于自源裝置12向接收裝置14傳輸視頻數(shù)據(jù)的任何適合的通信媒體、或者可能不同網(wǎng)絡(luò)及鏈路的集合。然而,如上所述,通信鏈路15可能具有有限的帶寬,從而使速率控制對于在鏈路15上實時傳輸視頻序列而言極其重要。該有限的帶寬可能歸因于對通信鏈路15的實體約束、或者可能歸因于由通信鏈路15的提供商所施加的服務(wù)質(zhì)量(QoS)限制。
源裝置12可包含任一能夠編碼及傳輸視頻數(shù)據(jù)的數(shù)字視頻裝置。源裝置12可包括一用于存儲數(shù)字視頻序列的視頻存儲器16、一用于對所述序列編碼的視頻編碼器18、及一用于將所述已編碼序列通過通信鏈路15傳輸至源裝置14的發(fā)射器20。視頻編碼器18可包含(例如)各種硬件、軟件或固件、或者一個或多個執(zhí)行可編程軟件模塊以如本文所述控制所述視頻編碼技術(shù)的數(shù)字信號處理器(DSP)。可提供相關(guān)聯(lián)存儲器及邏輯電路以在控制所述視頻編碼技術(shù)方面支持DSP。
源裝置12也可包括一視頻捕獲裝置23,例如視頻照相機(jī),以捕獲視頻序列并將所捕獲序列存儲于存儲器16中。具體而言,視頻捕獲裝置23可包括電荷耦合裝置(CCD)、電荷注入裝置、光電二極管陣列、互補(bǔ)金屬氧化物半導(dǎo)體(CMOS)裝置、或者任何其它能夠捕獲視頻圖像或數(shù)字視頻序列的光敏裝置。
再例如,視頻捕獲裝置23可包含視頻轉(zhuǎn)換器,用于例如自電視機(jī)、錄像機(jī)、攝錄機(jī)、或另一視頻裝置將模擬視頻數(shù)據(jù)轉(zhuǎn)換成數(shù)字視頻數(shù)據(jù)。在某些實施例中,源裝置12可配置成通過通信鏈路15傳輸實時視頻序列。在此種情形中,接收裝置14可接收所述實時視頻序列并向使用者顯示所述視頻序列。另一選擇為,源裝置12可捕獲并編碼以視頻數(shù)據(jù)文件(即不為實時形式)形式發(fā)送至接收裝置14的視頻序列。因而,源裝置12及接收裝置14可在例如移動無線網(wǎng)絡(luò)中支持例如視頻通信、視頻剪輯播放、視頻郵件、或者視頻會議等應(yīng)用。裝置12及14可包括未在圖1中具體顯示的各種其它元件。
接收裝置14可呈任一種能夠接收及解碼視頻數(shù)據(jù)的數(shù)字視頻裝置形式。例如,接收裝置14可包括接收器22,以經(jīng)由例如中間鏈路、路由器、其它網(wǎng)絡(luò)設(shè)備及類似物自發(fā)射器20接收經(jīng)編碼的數(shù)字視頻序列。接收裝置14也可包括一用于解碼所述序列的視頻解碼器24、及一用于向使用者顯示所述序列的顯示裝置26。然而,在某些實施例中,接收裝置14可不包括集成顯示裝置14。在這些情形中,接收裝置14可用作接收器來解碼所接收視頻數(shù)據(jù)以驅(qū)動一分立顯示裝置,例如電視機(jī)或監(jiān)視器。
源裝置12及接收裝置14的實例性裝置包括位于計算機(jī)網(wǎng)絡(luò)上的服務(wù)器、工作站或其它桌上型計算裝置、及例如膝上型計算機(jī)或個人數(shù)字助理(PDA)等移動計算裝置。其它實例包括數(shù)字電視廣播衛(wèi)星及例如數(shù)字電視、數(shù)字照相機(jī)、數(shù)字?jǐn)z像機(jī)或其它數(shù)字記錄裝置等接收裝置、例如具有視頻功能的移動電話等數(shù)字視頻電話、具有視頻功能的直接雙向通信裝置、其它無線視頻裝置、及類似裝置。
在某些情形中,源裝置12及接收裝置14各自包括一用于對數(shù)字視頻數(shù)據(jù)實施編碼及解碼的編碼器/解碼器(CODEC)。具體而言,源裝置12與接收裝置14二者均可包括發(fā)射器和接收器以及存儲器和顯示器。下文所概述的編碼技術(shù)中的許多種是在包含編碼器的數(shù)字視頻裝置上下文中加以說明。然而,應(yīng)了解,該編碼器可構(gòu)成CODEC的一部分。在此種情形中,該CODEC可構(gòu)建于硬件、軟件、固件、DSP、微處理器、應(yīng)用專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)、離散硬件組件、或其各種組合中。
源裝置12內(nèi)的視頻編碼器18對一視頻幀序列內(nèi)的像素塊實施處理,以便編碼該視頻數(shù)據(jù)。例如,視頻編碼器18可執(zhí)行運(yùn)動估計及運(yùn)動補(bǔ)償技術(shù)-其中將欲傳輸?shù)囊曨l幀劃分成若干像素塊(稱作視頻塊)。為便于例示,所述視頻塊可包含任意大小的塊并可在一既定視頻序列中有所變化。作為一實例,ITU H.264標(biāo)準(zhǔn)支持16×16視頻塊、16×8視頻塊、8×16視頻塊、8×8視頻塊、8×4視頻塊、4×8視頻塊及4×4視頻塊。在視頻編碼中使用愈小的視頻塊可在編碼中產(chǎn)生愈佳的分辨率,并可專門用于包含愈高詳細(xì)程度的視頻幀位置。此外,視頻編碼器18可設(shè)計成對4×4視頻塊實施處理,并根據(jù)需要自所述4×4視頻塊重構(gòu)更大的視頻塊。對于例如MPEG-4等標(biāo)準(zhǔn),視頻塊可包括16×16視頻塊-有時稱作「宏塊」。
視頻塊中的每一像素可由各種可界定像素的可視特性(例如以色度及發(fā)光度值表示的色彩及亮度)的n-位值(例如8個位)來表示。每一像素均可具有一個或多個用于色度及發(fā)光度二者的8-位值。然而,本發(fā)明的技術(shù)并不受限于像素格式,并可以更簡單的更少位像素格式或更復(fù)雜的更多位像素格式來擴(kuò)充。也可根據(jù)其它顏色座標(biāo)系來界定像素。此外,視頻塊可由離散余弦變換(DCT)系數(shù)后跟由像素值表示的所述視頻塊的DCT來表示。另一選擇為,視頻塊可由非零小波值后跟像素值的小波變換來表示。簡單地說,本文所述的速率控制技術(shù)可應(yīng)用于各種各樣的編碼標(biāo)準(zhǔn)、像素格式及視頻塊大小及形狀。所選量化參數(shù)(QP)界定并限制在對一既定視頻幀實施編碼中將產(chǎn)生的非零系數(shù)的數(shù)量。
所述速率控制技術(shù)可在視頻編碼過程中執(zhí)行,并可在此種編碼過程中加以修改或調(diào)整。為對視頻幀實施編碼,對于該視頻幀中的每一視頻塊,源裝置12的視頻編碼器18均可通過如下方式實施運(yùn)動估計查找存儲于存儲器16中的視頻塊有無一個或多個早已傳輸?shù)南惹耙曨l幀(或者后續(xù)視頻幀),以識別一類似視頻塊-稱作一預(yù)測視頻塊。在某些情形中,該預(yù)測視頻塊可包含來自前一或后一視頻幀的“最佳預(yù)測”,當(dāng)然本發(fā)明并不受限于該方面。視頻編碼器18實施運(yùn)動補(bǔ)償來創(chuàng)建一表示欲編碼的當(dāng)前視頻塊與該最佳預(yù)測之間的差異的差異塊。運(yùn)動補(bǔ)償通常是指使用一運(yùn)動向量拿取該最佳預(yù)測、然后自一輸入塊中減去該最佳預(yù)測以產(chǎn)生一差異塊的作業(yè)。所述速率控制技術(shù)界定用于在視頻編碼過程中用于量化經(jīng)編碼視頻塊的量化參數(shù)(QP)。如本文所述,本發(fā)明涵蓋使用參數(shù)方程式來界定在視頻塊級或幀級上進(jìn)行速率受控編碼的QP。
在該運(yùn)動補(bǔ)償過程已創(chuàng)建該差異塊之后,通常實施一系列額外編碼步驟對該差異塊進(jìn)行編碼。這些額外編碼步驟可相依于所用的編碼標(biāo)準(zhǔn)。在符合MPEG-4的編碼器中,例如,所述額外編碼步驟可包括一8×8離散余弦變換、隨后實施純量量化、隨后再實施一光柵至鋸齒形重排序、隨后實施行程長度編碼、隨后再實施霍夫曼編碼。然而,在某些情形中,可使用對視頻塊的小波變換或其它變換來代替DCT變換。量化后非零系數(shù)的數(shù)量是極為重要的問題,因為該值會影響為對一既定塊或幀實施編碼所需的位數(shù)量。
在編碼之后,可將經(jīng)編碼的差異塊連同運(yùn)動向量一起傳輸,該運(yùn)動向量可將該視頻塊與用于編碼的前一幀(或后一幀)鑒別開。通過此種方式,并非將每一幀作為一獨立的圖片實施編碼,視頻編碼器18是對相鄰幀之間的差異實施編碼。此等技術(shù)可明顯減少為精確地表示視頻序列中每一幀所需的數(shù)據(jù)量。
該運(yùn)動向量可界定關(guān)于所編碼視頻塊的左上角的像素位置,當(dāng)然也可使用其它格式的運(yùn)動向量??傊?,通過使用運(yùn)動向量對視頻塊實施編碼,可明顯減小為傳輸視頻數(shù)據(jù)流所需的帶寬。
在某些情形中,視頻編碼器18除可支持幀間編碼外,也可支持幀內(nèi)編碼。幀內(nèi)編碼是利用幀內(nèi)的相似性(稱作空間或幀內(nèi)相關(guān))來進(jìn)一步壓縮視頻幀。幀內(nèi)壓縮通常是基于用于壓縮靜止圖像的紋理編碼,例如離散余弦變換(DCT)編碼。幀內(nèi)壓縮常常與幀間壓縮結(jié)合使用。
接收裝置14的接收器22可接收呈運(yùn)動向量形式的經(jīng)編碼視頻數(shù)據(jù)及可表示所編碼視頻塊與在運(yùn)動估計中所用最佳預(yù)測之間的經(jīng)編碼差異的經(jīng)編碼差異塊。然而,在某些情形中,并非發(fā)送運(yùn)動向量,而是傳輸運(yùn)動向量與一先前計算出的運(yùn)動向量預(yù)測值(MVP)之間的差異??傊?,解碼器24可執(zhí)行視頻解碼,以便產(chǎn)生視頻序列來通過顯示裝置26顯示給使用者。接收裝置14的解碼器24也可構(gòu)建為一編碼器/解碼器(CODEC)。在此種情形中,源裝置12與接收裝置14二者均能夠?qū)?shù)字視頻序列實施編碼、傳輸、接收及解碼。
根據(jù)本發(fā)明,視頻編碼器18以一種動態(tài)方式選擇用于視頻編碼的量化參數(shù)(QP),以便實現(xiàn)速率受控編碼。QP會界定當(dāng)對視頻塊編碼時將產(chǎn)生的位數(shù)量。因而,所選QP會直接影響每秒所編碼的位數(shù)量。當(dāng)QP增大時,保存較少的數(shù)據(jù)且視頻編碼的質(zhì)量可能會降低。而當(dāng)QP減小時,保存較多的數(shù)據(jù)且視頻編碼的質(zhì)量提高。然而,如果QP過小,則每秒所編碼的位數(shù)量可能會超出一所分配的帶寬,并損害在該有限大小的帶寬內(nèi)傳送幀的能力。通過以一動態(tài)方式選擇QP,可使視頻幀傳輸?shù)奈凰俾驶竞愣ā?br>
更具體而言,視頻編碼器18根據(jù)一參數(shù)方程式來選擇QP,以便將rho(ρ)的值映射至在視頻編碼中所用的量化參數(shù)(QP)。同樣,量(ρ)代表量化后視頻塊的非零系數(shù)的數(shù)量,并大體正比于在視頻編碼中所用位的數(shù)量。相應(yīng)地,視頻編碼器18利用ρ與QP之間的關(guān)系,以便實現(xiàn)速率受控視頻編碼。由于ρ近似與位速率線性相關(guān),因而該ρ-QP參數(shù)方程式可用于選擇會得到有效速率受控視頻編碼的QP。
可將該參數(shù)方程式初始化,但然后在視頻編碼過程中加以調(diào)整,以使由該參數(shù)方程式所界定的預(yù)測的ρ更佳地逼近自一所選QP得到的實際ρ。對該參數(shù)方程式的此種調(diào)整可對每一視頻塊或者對每一幀進(jìn)行。在一個較佳實施方案中,采用視頻塊級速率控制,但在幀級上調(diào)整該參數(shù)方程式中的變量。
圖2是一裝置30的實例性方塊圖,裝置30可對應(yīng)于源裝置12。一般而言,裝置30包括一能夠執(zhí)行本文所述的速率受控編碼技術(shù)的數(shù)字視頻裝置。裝置30可符合一種視頻編碼標(biāo)準(zhǔn),例如MPEG-4、ITU H.263、ITU H.264、或者另一種可受益于本文所述速率控制技術(shù)的視頻編碼標(biāo)準(zhǔn)。
如圖2所示,裝置30包括一用于對視頻序列實施編碼的視頻編碼裝置32、及一用于在編碼之前及之后存儲所述視頻序列的視頻存儲器34。裝置30也可包括一用于將經(jīng)編碼的序列傳輸至另一裝置的發(fā)射器36、及可能一用于捕獲視頻序列并將所捕獲視頻序列存儲于存儲器34中的視頻捕獲裝置38(例如攝像機(jī))。裝置30的各種元件可經(jīng)由一通信總線35以通信方式相耦接。在裝置30中也可包含各種其它元件,例如幀內(nèi)編碼元件、各種濾波器、或者其它元件,但為簡明起見未具體顯示。
視頻存儲器34通常包括相對大的存儲空間。視頻存儲器34,例如,可包含動態(tài)隨機(jī)存取存儲器(DRAM)、或者FLASH(閃速)存儲器。在其它實例中,視頻存儲器34可包含非易失性存儲器或任一其它數(shù)據(jù)存儲裝置。
視頻編碼裝置32可包含一用于移動無線電電話的芯片組,該芯片組包括硬件、軟件、固件、及/或處理器或數(shù)字信號處理器(DSP)的一組合。視頻編碼裝置32一般包括一耦接至本地存儲器37的視頻編碼器28。本地存儲器37可包括一相對于視頻存儲器34更小且更快的存儲空間。例如,本地存儲器37可包括同步隨機(jī)存取存儲器(SRAM)。本地存儲器37可包括與視頻編碼裝置32的其它組件集成于一起的“單芯片”存儲器,以在處理器密集的編碼過程期間實現(xiàn)對數(shù)據(jù)的極快速存取。在對一既定視頻幀編碼過程中,可將要編碼的當(dāng)前視頻塊自視頻存儲器34加載至本地存儲器37。也可將一在對該最佳預(yù)測進(jìn)行定位時所用的查找空間自視頻存儲器34加載至本地存儲器37。然而,執(zhí)行本文所述的技術(shù)并非必需使用不同的存儲器。換句話說,視頻編碼器28可存取一單芯片或芯片外存儲器來獲得所述視頻塊及該查找空間。
該查找空間可包含一個或多個先前視頻幀(或后續(xù)幀)的一像素子集。所選子集可被預(yù)識別為一可能的位置以用于識別一與要編碼的當(dāng)前視頻塊緊密匹配的最佳預(yù)測。此外,如果使用不同的查找級,則該查找空間可能會在運(yùn)動估計過程中有所變化。在此種情形中,該查找空間可在查找空間的大小方面逐漸變小,其中這些后面的查找是以較前面的查找更高的分辨率來實施。
本地存儲器37加載有一要編碼的當(dāng)前視頻塊及一查找空間一其包含在幀間編碼中所用的某些或所有一個或多個視頻幀。運(yùn)動估計器40將當(dāng)前視頻塊與該查找空間中的各個視頻塊相比較,以便識別出一最佳預(yù)測。然而,在某些情形中,無需具體地檢查每一可能的候選者即可更快速地為該編碼識別出一恰當(dāng)匹配者。在此種情形中,該恰當(dāng)匹配者可實際上并非“最佳”預(yù)測,但對于實施有效視頻編碼而言已足夠。一般而言,用語“預(yù)測視頻塊”是指一恰當(dāng)匹配者,該恰當(dāng)匹配者可為最佳預(yù)測。
運(yùn)動估計器40實施所要編碼的當(dāng)前視頻塊與存儲器37的查找空間中的候選視頻塊之間的比較,在某些情形中,候選視頻塊可包括針對分?jǐn)?shù)內(nèi)插而產(chǎn)生的非整數(shù)像素值。例如,運(yùn)動估計器40可執(zhí)行絕對差求和(SAD)技術(shù)、平方差求和(SSD)技術(shù)、或者其它比較技術(shù),以便為候選視頻塊界定差值。差值愈小,通常表示候選視頻塊是愈佳的匹配者,因而是一較其它會產(chǎn)生更高差值的候選視頻塊更佳的供用于運(yùn)動估計編碼的候選者。
最后,運(yùn)動估計器識別一“最佳預(yù)測”-其是與要編碼的視頻塊最緊密匹配的候選視頻塊。然而,應(yīng)了解,在許多情形中,可在最佳預(yù)測之前對恰當(dāng)匹配者進(jìn)行定位,且在這些情形中,可使用恰當(dāng)匹配者來實施編碼。同樣,一預(yù)測視頻塊是指一恰當(dāng)匹配者,該恰當(dāng)匹配者可為最佳預(yù)測。
一旦運(yùn)動估計器40為視頻塊識別出最佳預(yù)測,運(yùn)動補(bǔ)償器42即形成一指示當(dāng)前視頻塊與該最佳預(yù)測之間的差異的差異塊。差異塊編碼器44可進(jìn)一步對該差異塊編碼,以壓縮該差異塊,且可轉(zhuǎn)接經(jīng)編碼的差異塊,以將其連同一運(yùn)動向量(或者該運(yùn)動向量與一運(yùn)動向量預(yù)測值的差)一起傳輸至另一裝置,以識別該查找空間中哪一候選視頻塊曾用于實施編碼。為簡明起見,將用于在運(yùn)動補(bǔ)償后實施編碼的其它組件歸納為差異塊編碼器44,因為具體組件將視所支持的具體標(biāo)準(zhǔn)而異。換句話說,差異塊編碼器44可對如本文所述而產(chǎn)生的差異塊執(zhí)行一種或多種常規(guī)編碼技術(shù)。
在編碼過程中,速率控制可確保用于對一既定序列實施編碼的位數(shù)量不會超過一與發(fā)射器36相關(guān)聯(lián)的通信通道的帶寬限制。為執(zhí)行此種速率控制,視頻編碼器28包含一速率控制單元46。速率控制單元46利用每幀的所編碼位數(shù)量與量化后視頻塊的非零系數(shù)數(shù)量之間的關(guān)系。ρ的值代表量化后視頻塊的非零系數(shù)數(shù)量,其大體正比于每幀所編碼的位數(shù)量(并因而大體正比于在一恒定幀速率下每秒所編碼的位數(shù)量)。相應(yīng)地,為實現(xiàn)速率受控視頻編碼,速率控制單元46利用ρ與QP之間的關(guān)系。
更具體而言,速率控制單元46應(yīng)用一將ρ的值映射至不同QP的參數(shù)方程式。然后,可為對應(yīng)于視頻編碼所期望速率的ρ值選擇QP。在編碼過程期間,可更新該參數(shù)方程式以更佳地反映ρ與QP之間的實際關(guān)系。換句話說,可將該參數(shù)方程式初始化,但然后在視頻編碼過程中加以調(diào)整,以使由該參數(shù)方程式所界定的預(yù)測的ρ更佳地逼近自一所選QP得到的實際ρ。對該參數(shù)方程式的此種調(diào)整可對每一視頻塊或者對每一幀進(jìn)行。在一個較佳實施方案中,采用視頻塊級速率控制,但在幀級上調(diào)整該參數(shù)方程式中的變量。
由速率控制單元46用于界定預(yù)測的ρ的參數(shù)方程式可呈如下形式 ρ=nc×e-f(qp), 其中e代表一通常稱作歐拉(Euler)數(shù)(2.71828182845904523536028747135)的算術(shù)常數(shù),ρ代表預(yù)測的量化后幀的視頻塊的非零系數(shù)數(shù)量,nc代表以所考慮的單位表示的系數(shù)數(shù)量(例如一幀或視頻塊中系數(shù)的數(shù)量),且f(qp)是該量化參數(shù)的參數(shù)函數(shù)。例如,f(qp)可包含一簡單的多項式或指數(shù)函數(shù)。在某些情形中,可使用不同的常數(shù)來取代e的值,例如使用值2或者類似值。
同樣,可適用的f(qp)的實例包括如下 f(qp)=α×qp, f(qp)=α×qp+β, f(qp)=α×qp2+β×qp+δ, 或者指數(shù)函數(shù) f(qp)=α×qpβ。
在這些實例中,qp代表量化參數(shù)(在本文中也稱作QP)。變量α、β及δ包含可編程參數(shù),這些可編程參數(shù)可在速率控制技術(shù)過程中加以調(diào)整,以更佳地逼近ρ與qp之間的關(guān)系。具體而言,在編碼過程期間,調(diào)整所述可編程參數(shù),以使對于不同的QP,預(yù)測的ρ實質(zhì)上對應(yīng)于實際ρ。
在另一實例中,速率控制單元46所用的參數(shù)方程式可實質(zhì)上對應(yīng)于 ρ=nc×2-α×qp-β, 其中ρ界定預(yù)測的ρ,nc代表以所考慮的單位表示的系數(shù)數(shù)量并界定預(yù)測的ρ的最大值,且α及β包含可調(diào)參數(shù)。該參數(shù)方程式可尤其適用于MPEG-4及H.263速率控制。在此種情形中,為使該實施方案更為有效而不會在曲線精度中引起任何嚴(yán)重?fù)p失,以常數(shù)2來取代方程式ρ=nc×e-f(qp)中的歐拉數(shù)(e)。
此外,也對于MPEG-4及H.263速率控制,可優(yōu)先于f(qp)的其它候選項而使用f(qp)=α×qp+β,因為其代表曲線精確度與實施該方程式的復(fù)雜度之間的折衷。曾在各種模擬中對參數(shù)方程式家族中其它成員(例如指數(shù)方程式、二次多項式及一次多項式方程式)的精確度實施比較。盡管發(fā)現(xiàn)指數(shù)曲線最為精確,然而也發(fā)現(xiàn)與其他方程式相比,指數(shù)曲線具有最高階復(fù)雜度。一次參數(shù)方程式f(qp)=α×qp+β,與二次方程式之間在精確度方面的差異可忽略不計。然而,二次方程式具有3個未知量且其實施更為復(fù)雜,而一次方程式卻僅具有2個未知量且也較不復(fù)雜。
在某些實施方案中,如果視頻編碼器早已產(chǎn)生一ρ-QP表,則本發(fā)明的技術(shù)可利用該ρ-QP表。例如,如果速率控制單元48需要求解兩個未知量α及β,則其可在兩個點處對一ρ-QP表取樣(如果早已得到該表)。該第一點可包含QP,而該第二點可近似為2×QP。速率控制技術(shù)的此種變化形式的例外可為當(dāng)QP>25時的情形,例如對于MPEG-4及H.263而言,在此種情形中,僅取樣一個點并可將β設(shè)定為零。速率控制單元48也可處理其它例外情形,例如當(dāng)?shù)诙犹幍谋碇祷蛘哌@兩個取樣處的表值為零時的情形。可每幀對這兩個未知量α及β實施一次更新,當(dāng)然在不同實施方案中也可更頻繁或更不頻繁的實施更新。
然而,ρ-QP表并非為執(zhí)行本文所述速率控制技術(shù)所必需的。如果例如在一傳統(tǒng)上使用一ρ-QP表的遺留編碼器中可得到ρ-QP表,則仍可利用ρ-QP表來加速對參數(shù)方程式中可調(diào)參數(shù)的選擇。然而,無需使用該表即可容易地確定所述可調(diào)參數(shù)。
事實上,傳統(tǒng)速率控制技術(shù)與本文所述參數(shù)速率控制技術(shù)之間的一個主要區(qū)別在于并非產(chǎn)生并查找一ρ-QP查詢表(LUT)中來得到qp的最佳值,而是可使用一例如以下的參數(shù)方程式來計算量化參數(shù)qp的值 qp=(-log2(ρ/nc)-β)/α, 其中ρ界定預(yù)測的ρ,nc代表以所考慮的單位表示的系數(shù)數(shù)量(例如一幀中系數(shù)的數(shù)量)并界定預(yù)測的ρ的最大值,且α及β包含可調(diào)參數(shù)。同樣,在編碼過程期間,對可編程參數(shù)加以調(diào)整,以使對于不同的QP,預(yù)測的ρ均實質(zhì)上對應(yīng)于實際ρ。如果早已得到一ρ-QP表,則可使用該ρ-QP表來調(diào)整所述可編程參數(shù),但如果不具有一ρ-QP表,則可根據(jù)用于界定自特定QP得到的實際ρ的特定取樣點來選擇所述可編程參數(shù)。
對f(qp)使用指數(shù)函數(shù)背后的直覺化知識是基于ρ-QP曲線與一廣義高斯(Gaussian)分布的一半的相似性,而使用一次及二次多項式函數(shù)背后的直覺化知識則分別對應(yīng)于使用一類似于拉普拉斯分布(Laplacian-distribution)或高斯分布的曲線。
圖3是一流程圖,其顯示一種使用一將ρ的預(yù)測值映射至量化參數(shù)(QP)的幀級速率控制技術(shù)。如圖3所示,視頻編碼器28的速率控制單元46使用一參數(shù)方程式為一幀確定一QP(301)。首先,可使用初始化值對該參數(shù)方程式編程,以使該參數(shù)方程式將ρ的預(yù)測值映射至QP。然后,速率控制單元46對視頻塊實施編碼(302)。如果該幀包含更多要編碼的視頻塊(303的否(no)分支),則速率控制單元46使用該幀的量化參數(shù)對其他視頻塊實施編碼(302)。
一旦到達(dá)該幀的末尾(303的是(yes)分支),便將下一幀加載至本地存儲器37中實施編碼(304)。此時,速率控制單元46更新參數(shù)方程式(305)。具體而言,速率控制單元46可確定自為前一幀的視頻塊所選的QP得到的ρ的實際值,該ρ的實際值可略微不同于由該參數(shù)方程式映射至所選QP的預(yù)測ρ。通過此種方式,將使用一更為精確的參數(shù)方程式對下一幀實施編碼。
在更新該參數(shù)方程式(305)后,對任何后續(xù)幀重復(fù)該過程(306的是(yes)分支)。在此種情形中,使用已更新的參數(shù)方程式為下一幀確定一QP(301)??蓪σ灰曨l序列中的所有幀重復(fù)該過程,以實現(xiàn)對該序列的幀級速率受控視頻編碼。同樣,如果需要,則該過程可對一既定視頻幀實施多遍,例如,當(dāng)該過程開始時,以便更精確地界定該參數(shù)方程式而不使用初始化方程式來實際編碼視頻塊。然而,在大多數(shù)情形中,在幾個幀之后,該參數(shù)方程式將迅速收斂,因而無需每一幀實施多遍編碼。
圖4是一流程圖,其顯示一種使用一將ρ的預(yù)測值映射至量化參數(shù)(QP)來進(jìn)行視頻塊級速率控制的技術(shù)。如圖4所示,視頻編碼器28的速率控制單元46使用參數(shù)方程式為視頻塊確定一QP(401)。首先,可使用初始化值對該參數(shù)方程式編程,以使該參數(shù)方程式將ρ的預(yù)測值映射至QP。然后,速率控制單元46對視頻塊實施編碼(402),并更新參數(shù)方程式(403)。具體而言,速率控制單元46可確定自為該幀中一個或多個前面視頻塊所選的QP得到的ρ的實際值,該ρ的實際值可略微不同于由該參數(shù)方程式映射至所選QP的預(yù)測ρ。通過此種方式,將使用一更為精確的參數(shù)方程式對后續(xù)視頻塊實施編碼。
如果該幀包含更多要編碼的視頻塊(403的否(no)分支),則速率控制單元46使用通過已更新參數(shù)方程式確定出的量化參數(shù)對其他視頻塊實施編碼(402)。可對一幀中的所有視頻塊重復(fù)該過程,以實現(xiàn)對該序列的視頻塊級速率受控視頻編碼。如同圖3一樣,圖4所示過程可經(jīng)調(diào)整以實施多遍編碼,在此種情形中是對一既定視頻塊實施多遍編碼,例如,當(dāng)該過程開始時,以便更精確地界定該參數(shù)方程式而不使用初始化方程式來實際編碼視頻塊。然而,在大多數(shù)情形中,在幾個幀之后,該參數(shù)方程式將迅速收斂,因而無需每一視頻塊實施多遍編碼。
一旦到達(dá)該幀的末尾(404的是(yes)分支),則將下一幀加載至本地存儲器37中實施編碼(405)。此時,速率控制單元46對任何后續(xù)幀重復(fù)該過程(406的是(yes)分支)。對于下一幀,使用最近所更新的參數(shù)方程式來確定一QP(401)。
圖5是一流程圖,其說明一種使用一在幀級上加以調(diào)整的參數(shù)方程式進(jìn)行視頻塊級速率控制的技術(shù)。出于舉例及說明目的,將在以參數(shù)方程式ρ=nc×e-f(qp)編程的速率控制單元46的情境中描述圖5,其中e代表歐拉數(shù),ρ代表量化后幀的視頻塊的非零系數(shù)的預(yù)測數(shù)量,nc代表一視頻塊中的系數(shù)數(shù)量,且f(qp)是由f(qp)=α×qp+β給定的量化參數(shù)的參數(shù)函數(shù),其中qp是量化參數(shù),且α及β界定該參數(shù)方程式的可調(diào)參數(shù)。當(dāng)然,也可使用許多其它參數(shù)方程式,例如上文所界定各方程式之一或者一不同的參數(shù)方程式。
如圖5所示,將速率控制初始化(501)。該初始化界定α及β的初始值,并可依據(jù)在制造及測試裝置30期間通過仿真所確定的α及β的平均值。為開始該速率受控編碼過程,將一幀自視頻存儲器34加載至本地存儲器37(502)。速率控制單元使用該參數(shù)方程式確定一用于對視頻塊實施編碼的QP(503)。然后,速率控制單元406使用所確定QP對該視頻塊實施編碼(504)。如果該幀包含更多要編碼的視頻塊(505的否(no)分支),則速率控制單元46使用該參數(shù)方程式為每一視頻塊確定各自的QP(503)并使用各自的QP對所述視頻塊實施編碼。在此種意義上,是在視頻塊級上確定QP,但對于一既定幀而言,用于界定QP的參數(shù)方程式未發(fā)生變化。
一旦到達(dá)該幀的末尾(505的是(yes)分支),速率控制單元即會更新參數(shù)方程式的可調(diào)參數(shù)(α及β)(305)。具體而言,速率控制單元46可確定自為前一幀的視頻塊所選的QP得到的ρ的實際值,該ρ的實際值可略微不同于由該參數(shù)方程式映射至所選QP的預(yù)測ρ。速率控制單元46可選擇新的α及β值以便由參數(shù)方程式將ρ的實際值更準(zhǔn)確地映射至QP的值。通過此種方式,將使用一可更佳地反映ρ與QP之間實際關(guān)系的更為精確的參數(shù)方程式對下一幀實施編碼。
在更新該參數(shù)方程式的參數(shù)(506)后,對該視頻序列中的任何后續(xù)幀重復(fù)該過程(507的是(yes)分支)。在此種情形中,將下一幀加載至本地存儲器37內(nèi)(502),且速率控制單元46使用參數(shù)方程式為每一視頻塊確定各自的QP(503)并使用各自的QP對所述視頻塊實施編碼(504)。
可對一視頻序列中的所有幀重復(fù)該過程,以實現(xiàn)對該序列的視頻塊級速率受控視頻編碼,其中對于每一幀均實施參數(shù)方程式調(diào)整。同樣,該過程可對一既定視頻幀實施多遍,例如,當(dāng)該過程開始時,以便更精確地界定序列中前幾個幀的參數(shù)方程式而不使用初始化方程式來實際編碼視頻塊。此可提高速率控制的精確度,代價是計算量增加。然而,在大多數(shù)情形中,在已對幾個幀實施編碼之后,該參數(shù)方程式將迅速收斂至一精確的ρ-QP關(guān)系表示式。因此,通??蔁o需每一幀實施多遍。
至此已闡述了各個實施例。具體而言,已提出各種使用一參數(shù)方程式來代表量化參數(shù)QP與非零系數(shù)數(shù)量ρ之間的映射的速率控制技術(shù)。已識別出能夠精確地代表此種關(guān)系的某些適用參數(shù)方程式的一非窮盡性列表。所述技術(shù)可用于限制用于界定所編碼視頻塊的量化DCT系數(shù)的數(shù)量,當(dāng)然也可使用其它類型的系數(shù),例如經(jīng)小波變換的系數(shù)。此外,可僅就P-Frames(預(yù)測的幀)方面、或者可就I-Frames(幀間)與P-Frames兩個方面來采用本文所述技術(shù)。例如,諸如H.263、MPEG-4及H.264等許多種編碼標(biāo)準(zhǔn)是利用此等I-Frames及P-Frames。在此種情形中,可僅就P-Frames(預(yù)測的幀)方面、或者可就I-Frames(幀間)與P-Frames兩個方面來采用本文所述技術(shù)。
本文所述參數(shù)速率控制具有可提供幀級速率控制或者視頻塊級速率控制的靈活性。在一較佳實施例中,是將視頻塊級速率控制與對參數(shù)方程式的幀級更新一起使用。此外,所述視頻塊級速率控制技術(shù)就可設(shè)定兩個QP偏移量(此又決定可容忍的變化量)而言是可配置的。通常,所述偏移量的值愈高,即會保證變化量水平愈低,代價是視頻質(zhì)量愈低。仿真已表明,通過本文所述的速率控制技術(shù),可顯著減小變化量,同時保持幾乎相同水平的視頻質(zhì)量。此外,使用一參數(shù)方程式為每一視頻塊計算qp可比產(chǎn)生及/或查找一ρ-QP表更為精確及更具計算有效性。
本文所述的技術(shù)可構(gòu)建于硬件、軟件、固件、或其任一組合中。如果構(gòu)建于軟件中,則所述技術(shù)可涉及一種包含程序代碼的計算機(jī)可讀媒體,該程序代碼當(dāng)在一對視頻序列實施編碼的裝置中執(zhí)行時會執(zhí)行上文所述的一種或多種方法。在此種情形中,該計算機(jī)可讀媒體可包括隨機(jī)存取存儲器(RAM)-例如同步動態(tài)隨機(jī)存取存儲器(SDRAM)、只讀存儲器(ROM)、非易失性隨機(jī)存取存儲器(NVRAM)、電可擦可編程只讀存儲器(EEPROM)、FLASH(快閃)存儲器、及類似存儲器。
該程序代碼可以計算機(jī)可讀指令形式存儲于存儲器上。在彼種情形中,一處理器(例如DSP)可執(zhí)行存儲于存儲器中的指令,以便執(zhí)行本文所述的一種或多種技術(shù)。在某些情形中,所述技術(shù)可由一會調(diào)用各種硬件組件來加速編碼過程的DSP來執(zhí)行。在其它情形中,該視頻編碼器可構(gòu)建為一微處理器、一個或多個應(yīng)用專用集成電路(ASIC)、一個或多個現(xiàn)場可編程門陣列(FPGA)、或者某些其它硬件-軟件組合。這些及其它實施例歸屬于下述權(quán)利要求書的范疇內(nèi)。
權(quán)利要求
1.一種視頻編碼裝置,其包括
存儲器,其存儲視頻序列;及
編碼器,其使用參數(shù)方程式來選擇用于對所述視頻序列進(jìn)行速率受控視頻編碼的量化參數(shù)(QP),所述參數(shù)方程式將預(yù)測數(shù)量的量化后非零系數(shù)(預(yù)測的ρ)映射至量化參數(shù)(QP)。
2.如權(quán)利要求1所述的視頻編碼裝置,其中所述編碼器為所述視頻序列的不同的各個幀選擇各自的QP,并使用所述不同的各個幀各自的QP對所述視頻序列實施幀級速率受控視頻編碼。
3.如權(quán)利要求1所述的視頻編碼裝置,其中所述編碼器為所述視頻序列中的視頻幀的不同的各個視頻塊選擇各自的QP,并使用所述不同的各個視頻塊各自的,對所述視頻序列實施視頻塊級速率受控視頻編碼。
4.如權(quán)利要求1所述的視頻編碼裝置,其中所述參數(shù)方程式包括一個或多個可調(diào)參數(shù),且所述編碼器確定從一個或多個選擇的QP中產(chǎn)生的一個或多個實際數(shù)量的量化后非零系數(shù)(實際ρ)并調(diào)整所述參數(shù)方程式的所述可調(diào)參數(shù),以使所述預(yù)測的ρ更佳地對應(yīng)于所述實際ρ。
5.如權(quán)利要求4所述的視頻編碼裝置,其中所述參數(shù)方程式實質(zhì)上對應(yīng)于
ρ=nc×e-f(qp),
其中e代表歐拉(Euler)數(shù),ρ界定所述預(yù)測的ρ,nc代表以所考慮的單位表示的系數(shù)數(shù)量并界定所述預(yù)測的ρ的最大值,且f(qp)是所述量化參數(shù)(QP)的參數(shù)函數(shù)。
6.如權(quán)利要求5所述的視頻編碼裝置,其中f(qp)包括多項式函數(shù)與指數(shù)函數(shù)中的一者。
7.如權(quán)利要求5所述的視頻編碼裝置,其中f(qp)包括實質(zhì)上對應(yīng)于下式的一次多項式函數(shù)
f(qp)=α×qp,
其中qp對應(yīng)于所述量化參數(shù)(QP)且α界定一次可調(diào)參數(shù)。
8.如權(quán)利要求5所述的視頻編碼裝置,其中f(qp)包括實質(zhì)上對應(yīng)于下式的二次多項式函數(shù)
f(qp)=α×qp+β,
其中qp對應(yīng)于所述量化參數(shù)(QP)且α界定一次可調(diào)參數(shù),且β界定二次可調(diào)參數(shù)。
9.如權(quán)利要求5所述的視頻編碼裝置,其中f(qp)包括實質(zhì)上對應(yīng)于下式的二次多項式函數(shù)
f(qp)=α×qp2+β×qp+δ,
其中qp對應(yīng)于所述量化參數(shù)(QP)且α界定一次可調(diào)參數(shù),β界定二次可調(diào)參數(shù),且δ界定三次可調(diào)參數(shù)。
10.如權(quán)利要求5所述的視頻編碼裝置,其中f(qp)包括實質(zhì)上對應(yīng)于下式的指數(shù)函數(shù)
f(qp)=α×qpβ,
其中qp對應(yīng)于所述量化參數(shù)(QP)且α及β界定所述可調(diào)參數(shù)。
11.如權(quán)利要求4所述的視頻編碼裝置,其中所述參數(shù)方程式實質(zhì)上對應(yīng)于
ρ=nc×2-α×qp-β,
其中ρ界定所述預(yù)測的ρ,nc代表以所考慮的單位表示的系數(shù)數(shù)量并界定所述預(yù)測的ρ的最大值,且α及β包含所述可調(diào)參數(shù)。
12.一種速率受控視頻編碼方法,其包括
使用參數(shù)方程式選擇量化參數(shù)(QP),所述參數(shù)方程式將預(yù)測數(shù)量的量化后非零系數(shù)(預(yù)測的ρ)映射至量化參數(shù)(QP);及
使用所述選擇的QP對一個或多個視頻塊進(jìn)行編碼。
13.如權(quán)利要求12所述的方法,其進(jìn)一步包括選擇擬用于視頻序列的不同視頻幀的不同QP,以對所述視頻序列進(jìn)行幀級速率受控視頻編碼。
14.如權(quán)利要求12所述的方法,其進(jìn)一步包括選擇擬用于視頻幀的不同視頻塊的不同QP,以對視頻序列進(jìn)行視頻塊級速率受控視頻編碼。
15.如權(quán)利要求12所述的方法,其中所述參數(shù)方程式包括一個或多個可調(diào)參數(shù),所述方法進(jìn)一步包括
確定從一個或多個選擇的QP中產(chǎn)生的一個或多個實際數(shù)量的量化后非零系數(shù)(實際ρ);及
調(diào)整所述參數(shù)方程式的可調(diào)參數(shù),以使所述預(yù)測的β更佳地對應(yīng)于所述實際ρ。
16.如權(quán)利要求15所述的方法,其中所述參數(shù)方程式實質(zhì)上對應(yīng)于
ρ=nc×e-f(qp),
其中e代表歐拉(Euler)數(shù),ρ界定所述預(yù)測的ρ,nc代表以所考慮的單位表示的系數(shù)數(shù)量并界定所述預(yù)測的ρ的最大值,且f(qp)是所述量化參數(shù)(QP)的參數(shù)函數(shù)。
17.如權(quán)利要求16所述的方法,其中f(qp)包括多項式函數(shù)與指數(shù)函數(shù)中的一者。
18.如權(quán)利要求16所述的方法,其中f(qp)包括實質(zhì)上對應(yīng)于下式的一次多項式函數(shù)
f(qp)=α×qp,
其中qp對應(yīng)于所述量化參數(shù)(QP)且α界定一次可調(diào)參數(shù)。
19.如權(quán)利要求16所述的方法,其中f(qp)包括實質(zhì)上對應(yīng)于下式的二次多項式函數(shù)
f(qp)=α×qp+β,
其中qp對應(yīng)于所述量化參數(shù)(QP)且α界定一次可調(diào)參數(shù),且β界定二次可調(diào)參數(shù)。
20.如權(quán)利要求16所述的方法,其中f(qp)包括實質(zhì)上對應(yīng)于下式的二次多項式函數(shù)
f(qp)=α×qp2+β×qp+δ,
其中qp對應(yīng)于所述量化參數(shù)(QP)且α界定一次可調(diào)參數(shù),β界定二次可調(diào)參數(shù),且δ界定三次可調(diào)參數(shù)。
21.如權(quán)利要求16所述的方法,其中f(qp)包括實質(zhì)上對應(yīng)于下式的指數(shù)函數(shù)
f(qp)=α×qpβ,
其中qp對應(yīng)于所述量化參數(shù)(QP),且α及β界定所述可調(diào)參數(shù)。
22.如權(quán)利要求15所述的方法,其中所述參數(shù)方程式實質(zhì)上對應(yīng)于
ρ=nc×2-α×qp-β,
其中ρ界定所述預(yù)測的ρ,nc代代表以所考慮的單位表示的系數(shù)數(shù)量并界定所述預(yù)測的ρ的最大值,且α及β包含所述可調(diào)參數(shù)。
23.一種包含程序代碼的計算機(jī)可讀媒體,所述程序代碼在被執(zhí)行時會使可編程處理器
使用參數(shù)方程式選擇量化參數(shù)(QP),所述參數(shù)方程式將預(yù)測數(shù)量的量化后非零系數(shù)(預(yù)測的ρ)映射至量化參數(shù)(QP);及
使用所述選擇的QP對一個或多個視頻塊進(jìn)行編碼。
24.如權(quán)利要求23所述的計算機(jī)可讀媒體,所述媒體進(jìn)一步包括致使所述可編程處理器選擇擬用于視頻序列的不同視頻幀的不同QP以對所述視頻序列進(jìn)行幀級速率受控視頻編碼的指令。
25.如權(quán)利要求23所述的計算機(jī)可讀媒體,所述媒體進(jìn)一步包括致使所述可編程處理器選擇擬用于視頻幀的不同視頻塊的不同QP以對視頻序列進(jìn)行視頻塊級速率受控視頻編碼的指令。
26.如權(quán)利要求23所述的計算機(jī)可讀媒體,其中所述參數(shù)方程式包括一個或多個可調(diào)參數(shù),所述媒體進(jìn)一步包括使所述可編程處理器執(zhí)行如下操作的指令
確定從一個或多個選擇的QP中產(chǎn)生的一個或多個實際數(shù)量的量化后非零系數(shù)(實際ρ);及
調(diào)整所述參數(shù)方程式的可調(diào)參數(shù),以使所述預(yù)測的ρ更佳地對應(yīng)于所述實際ρ。
27.如權(quán)利要求26所述的計算機(jī)可讀媒體,其中所述參數(shù)方程式實質(zhì)上對應(yīng)于
ρ=nc×e-f(qp),
其中e代表歐拉(Euler)數(shù),ρ界定所述預(yù)測的ρ,nc代表以所考慮的單位表示的系數(shù)數(shù)量并界定所述預(yù)測的ρ的最大值,且f(qp)是所述量化參數(shù)(QP)的參數(shù)函數(shù)。
28.如權(quán)利要求27所述的計算機(jī)可讀媒體,其中f(qp)包括多項式函數(shù)與指數(shù)函數(shù)中的一者。
29.如權(quán)利要求27所述的計算機(jī)可讀媒體,其中f(qp)包括實質(zhì)上對應(yīng)于下式的一次多項式函數(shù)
f(qp)=α×qp,
其中qp對應(yīng)于所述量化參數(shù)(QP),且α界定一次可調(diào)參數(shù)。
30.如權(quán)利要求27所述的計算機(jī)可讀媒體,其中f(qp)包括實質(zhì)上對應(yīng)于下式的二次多項式函數(shù)
f(qp)=α×qp+β,
其中qp對應(yīng)于所述量化參數(shù)(QP),且α界定一次可調(diào)參數(shù),且β界定二次可調(diào)參數(shù)。
31.如權(quán)利要求27所述的計算機(jī)可讀媒體,其中f(qp)包括實質(zhì)上對應(yīng)于下式的二次多項式函數(shù)
f(qp)=α×qp2+β×qp+δ,
其中qp對應(yīng)于所述量化參數(shù)(QP),且α界定一次可調(diào)參數(shù),且β界定二次可調(diào)參數(shù),且δ界定三次可調(diào)參數(shù)。
32.如權(quán)利要求27所述的計算機(jī)可讀媒體,其中f(qp)包括實質(zhì)上對應(yīng)于下式的指數(shù)函數(shù)
f(qp)=α×qpβ,
其中qp對應(yīng)于所述量化參數(shù)(QP),且α及β界定所述可調(diào)參數(shù)。
33.如權(quán)利要求26所述的計算機(jī)可讀媒體,其中所述參數(shù)方程式實質(zhì)上對應(yīng)于
ρ=nc×2-α×qp-β,
其中ρ界定所述預(yù)測的ρ,nc代代表以所考慮的單位表示的系數(shù)數(shù)量并界定所述預(yù)測的ρ的最大值,且α及β包含所述可調(diào)參數(shù)。
全文摘要
本發(fā)明說明可改良視頻編碼的速率控制技術(shù)。所述速率控制技術(shù)利用每幀所編碼位的數(shù)量與量化后視頻塊的非零系數(shù)的數(shù)量之間的關(guān)系,量化后視頻塊的非零系數(shù)的數(shù)量被稱作rho(ρ)。ρ的值大體上與視頻編碼中所使用位的數(shù)量成比例。本發(fā)明利用ρ與量化參數(shù)(QP)之間的關(guān)系,以便實現(xiàn)速率受控的視頻編碼。更具體來說,本發(fā)明利用參數(shù)方程式將預(yù)測的ρ的值映射至QP。
文檔編號H04N7/30GK101112101SQ200580047232
公開日2008年1月23日 申請日期2005年11月22日 優(yōu)先權(quán)日2004年11月29日
發(fā)明者普拉桑吉特·潘達(dá) 申請人:高通股份有限公司