專利名稱:控制視頻序列速率的方法和裝置及視頻編碼裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于控制視頻序列編碼速率的方法和裝置以及一種視頻編碼裝置,其中考慮了可用信道帶寬和計算資源。
背景技術(shù):
速率控制在諸如因特網(wǎng)或者無線網(wǎng)絡(luò)的有限帶寬的信道上的實況視頻編碼中扮演著十分重要的角色,并且許多研究人員對其進行了廣泛的研究。在[1],[2],[3],[4]中披露的關(guān)于速率控制的已有成果都基于計算資源總是足夠的假設(shè),從而總可以保證可以得到預期的編碼幀速率。
然而,在多任務(wù)環(huán)境中,通過軟件對實況視頻編碼時,對于編碼進程而言,中央處理單元(CPU)的計算資源可能并不總是足夠。這是由于CPU的計算資源可能被其它具有更高優(yōu)先級的進程所占據(jù)。在實時視頻編碼系統(tǒng)中,已編碼比特在被經(jīng)由網(wǎng)絡(luò)傳輸?shù)浇獯a器之前,存儲在緩沖區(qū)中。當為編碼進程分配的計算資源不足時,實際的編碼幀速率小于所述預期幀速率,緩沖區(qū)中存儲的生成的比特的數(shù)量也很低。結(jié)果,浪費了可用信道的帶寬。當視頻編碼進程在僅具備有限計算能力的手提裝置上執(zhí)行時,這種現(xiàn)象尤其常見。
同樣,多數(shù)現(xiàn)有的速率控制方法專注在用于視頻傳輸?shù)目捎眯诺缼捄愣ǖ那闆r。然而,當實況視頻通過諸如因特網(wǎng)或者無線網(wǎng)絡(luò)的有限帶寬信道傳輸時,用于視頻傳輸?shù)目捎眯诺缼挸3J请S時間變化的。當信道可用帶寬降低時,緩沖區(qū)中的比特的數(shù)量積累。當緩沖區(qū)中的比特數(shù)量過大時,編碼器常常跳過一些幀,以減少緩沖區(qū)延時并避免緩沖區(qū)溢出。跳幀將導致所不希望看到的視頻序列中的動態(tài)不連續(xù)。
參考書目[5]中的近來的教學資料披露了一種速率控制方法,其能調(diào)整編碼速率使之適應(yīng)不斷變化的可用帶寬。此速率控制方法使用了流動模型來計算所述視頻序列的每一幀的目標比特率。然而,[5]中披露的速率控制方法并沒有考慮可用的計算資源。而且,分配給每個圖片組(GOP)的比特總數(shù)在該GOP的每個P幀上平均分配。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種適用于具有可變計算資源和可變可用帶寬的實況視頻編碼進程的速率控制方法。
此目的通過一種用于控制視頻序列編碼速率的方法來實現(xiàn),其中,所述視頻序列包括多個圖片組(GOP),其中,每個圖片組至少包括I幀和幀間幀,此方法包括以下步驟來對所述圖片組中的各幀間幀進行編碼基于用于傳輸所述視頻序列的信道的可用帶寬以及用于所述編碼進程的可用計算資源確定預期幀速率;基于該所需幀速率以及所述幀間幀關(guān)于所述I幀的位置確定目標緩沖區(qū)級別;以及基于該目標緩沖區(qū)級別和所述可用信道帶寬確定目標比特率,其中,所述目標比特率用于控制所述視頻序列編碼速率。
假定所述視頻序列的GOP包括I幀(關(guān)鍵幀,即,無需進行動態(tài)估計和動態(tài)補償就可完全編碼的幀)以及作為幀間幀的多個P幀(預測幀,即,利用動態(tài)估計和動態(tài)補償進行編碼的幀)或者B幀(雙向預測幀,即,利用動態(tài)估計和動態(tài)補償從兩個相鄰的關(guān)鍵幀編碼的幀)。利用根據(jù)本發(fā)明的速率控制方法,比特基于其復雜度被分配給I幀,并且所述比特被分配給每一個幀間幀,尤其是每個P幀。
盡管所述速率控制方法,具體而言,所述對于目標緩沖區(qū)級別和相應(yīng)目標比特率的確定更適宜在所述GOP的P幀上進行,但仍然需要注意到,根據(jù)本發(fā)明的速率控制方法也可以在B幀上進行。
當編碼幀間幀時,優(yōu)選地當編碼P幀時,首先基于用于編碼進程的可用信道帶寬和可用計算資源來確定預期幀速率。所述預期幀速率并非穩(wěn)定不變,而是依據(jù)所述可用信道帶寬和所述可用計算資源,對每一個幀間幀進行適應(yīng)地改變。
當可用計算資源不足以獲得所述預期幀速率時,在所述編碼器緩沖區(qū)中累積的已編碼比特會因此較少,導致緩沖區(qū)下溢和信道帶寬的浪費。因此,通過考慮用于所述編碼進程的可用計算資源,可以預先定義目標緩沖區(qū)級別,以防止緩沖區(qū)下溢。
所述目標緩沖區(qū)級別定義了如何將分配給所述GOP的比特總數(shù)分配給該GOP的各個幀間幀(優(yōu)選地為P幀),即,各幀間幀的預算。然而,各幀間幀的預算與其使用的實際比特通常是有差異的。為保證每個幀間幀并因此每個GOP使用其自己的預算,就要計算各幀間幀的目標比特率。所述目標比特率通過利用流動模型和線性系統(tǒng)控制理論來計算,并考慮了所述目標緩沖區(qū)級別和所述可用信道帶寬。
通過確定所述優(yōu)選地為P幀的幀間幀的目標編碼時間間隔,即,編碼所述幀間幀所需要的時間,來確定所述預期幀速率。所述目標編碼時間反比于所述預期幀速率,其基于所述可用帶寬并且優(yōu)選地也基于平均編碼時間確定。所述用于編碼幀間幀的平均編碼時間間隔正比于所述計算資源,并因此可用來指示所述可用計算資源。所述可用帶寬可以用[6]中披露的方法來進行估計。
用于編碼所述幀間幀的所述目標編碼時間間隔利用如下等式確定如果Bmad(n)>B1*TBmad(n),則Tfi(n)=A1*Tfi(n-1),如果Bmad(n)<B2*TBmad(n),則Tfi(n)=A2*Tfi(n-1),否則,Tfi(n)=Tfi(n-1)。其中,Tfi(n)為目標編碼時間間隔或者編碼幀間幀所需要的目標時間,A1為參數(shù),且0.80<A1<1.00,A2為參數(shù),且1.00<A2<1.10,B1為參數(shù),且1.00<B1<2.00,B2為參數(shù),且0<B2<1.00,TBmad(n)為Bmad(n)的平均值,且Bmad(n)與平均編碼時間間隔Tave通過下式關(guān)聯(lián)Bmad(n)=u(n)max{Tave(n-1),Tfi(n-1)}MAD(n)]]>其中,u(n)為可用信道帶寬,Tave(n-1)為幀間幀的平均編碼時間間隔,以及MAD(n)為當前幀和前一幀之間的絕對平均差。
根據(jù)本發(fā)明,A1優(yōu)選地被設(shè)置為0.9,A2優(yōu)選地被設(shè)為1.05,B1優(yōu)選地被設(shè)為1.5,而B2優(yōu)選地被設(shè)為0.25。
所獲得的目標編碼時間間隔Tfi(n)的數(shù)值優(yōu)選地利用以下等式進行進一步調(diào)整Tfi(n)=min{54Fr,max{34Fr,Tfi(n)}}]]>所述目標編碼時間間隔Tfi(n)與所述預期幀速率反向相關(guān)。
利用編碼所述幀間幀所用的實際編碼時間間隔、所述目標編碼時間間隔以及因緩沖區(qū)溢出引起的跳幀的數(shù)目等信息確定所述平均編碼時間間隔。
所述平均編碼時間間隔由以下等式確定Tave(n)=(1-x)Tave(n-1)+χ*max{Tc(n),1Fr-RTst(n-1)}]]>其中,Tave(n)為編碼所述幀間幀所用的平均時間間隔,χ為權(quán)重因子,Tc(n)為編碼所述幀間幀所用的實際時間,F(xiàn)r為預定義幀速率,以及RTst被進一步定義為如果max{Tc(n),Tfi(n)}<1Fr-RTst(n-1)]]>或者,Npost(n)>0則RTst(n)=0否則,RTst(n)=max{Tc(n),Tfi(n)}+RTst(n-1)-[(max{Tc(n),Tfi(n)}+RTst(n-1))Fr]Fr]]>其中,Npost(n)為緩沖區(qū)溢出導致的跳幀的數(shù)目,[a]指小于a的最大整數(shù)。
利用基于滑動窗口的方法來計算Tfi(n)對于整個編碼進程的全面性能而言,具有降低突發(fā)噪聲的效果。
依據(jù)本發(fā)明的調(diào)整所述預期幀速率的簡單方法能夠在時變信道帶寬和突發(fā)動態(tài)變化的情況下,在容忍范圍內(nèi)保持幀間幀的質(zhì)量,而所感知的動態(tài)平滑度不會有明顯的降低。
利用所述平均編碼時間間隔Tave(n)的信息,并因此基于所述可用計算資源來確定所述預期幀速率。
在各GOP中,每幀中的目標緩沖區(qū)級別以如下方式預定義,相比屬于同一GOP中離所述I幀較遠的那些幀間幀,該GOP中的幀間幀,優(yōu)選地為P幀,其越接近于該I幀,就分配到越多的比特。這樣,接近于所述I幀的幀間幀以高質(zhì)量編碼,而從這些高質(zhì)量的幀間幀預測得到的后面的幀間幀,也就有了較高的質(zhì)量。于是,基于這些幀間幀的預測增益得到了改進。
所述幀間幀的目標緩沖區(qū)級別利用如下等式預定義并確定Target(n)=Target(n-1)-Bc(ti,I)-δ*BsNgop-1*Σj=0Npost(n-1)+Sc(n-1)Wpos(n+j)]]>其中,Target(n)為目標緩沖區(qū)級別,Ngop為GOP中的幀的數(shù)量,Bs為緩沖區(qū)大小,Bc為對I幀編碼后的實際緩沖區(qū)占用量,Sc為由于用于根據(jù)所述預期幀速率對所述幀間幀編碼的可用計算資源不足而導致的跳幀的平均數(shù),并且Wpos(l)為第l個幀間幀的位置權(quán)重,其滿足Σl=1Ngop-1Wpos(l)=Ngop-1,]]>以及Wpos(1)≤Wpos(2)≤…≤Wpos(Ngop-1)。
基于當對所述幀間幀編碼時由于計算資源不足而引起的跳幀的即時數(shù) 來確定所述由于計算資源不足而引起的跳幀的平均數(shù)。利用所述實際編碼時間間隔和所述目標編碼時間間隔的信息來確定所述由于計算資源不足而引起的跳幀的即時數(shù)。所述由于計算資源不足而引起的跳幀的即時數(shù)的確定可用如下等式概括S~c(n)=[TST(n)*Fr]]]>其中,TST(n)可進一步定義為TST(n)=max{0,T~S~T~(n-1)+max{Tc(n),Tfi(n)}-1Fr}]]>而 定義為T~S~T~(n-1)=TST(n-1)-[TST(n-1)*Fr]Fr]]>其中,Tc為實際編碼時間間隔,而Fr為預定義幀速率。
所述由于計算資源不足引起的跳幀的平均數(shù)然后利用如下等式確定Sc(n)=[(1-θ)Sc(n-1)+θ*S~c(n)]]]>其中θ為權(quán)重因子。
利用所述跳幀平均數(shù)Sc而不用跳幀即時數(shù)來計算所述目標緩沖區(qū)級別的優(yōu)點在于Sc數(shù)值變化緩慢。Sc的這種緩慢變化與對用于視頻編碼進程的量化參數(shù)Q的緩慢調(diào)整一致。
然而,應(yīng)該注意到,在本發(fā)明的可選實施例中,所述跳幀的即時數(shù) 可代替所述跳幀的平均數(shù)Sc(n),以確定所述目標緩沖區(qū)級別。
在所述信道帶寬穩(wěn)定不變的情況下,各幀的復雜度相同并且可確保所述預期幀速率,第i個GOP中的第n個幀間幀的目標緩沖區(qū)級別可簡化為Target(n)=uFr-Bc(ti,I)-δ*BsNgop-1*Wpos(n).]]>從以上等式可看出,當前幀間幀的目標緩沖區(qū)級別大于隨后的幀間幀的目標緩沖區(qū)級別。換言之,與距離所述I幀,也即所述關(guān)鍵幀較遠的幀間幀相比,屬于同一GOP的離所述I幀更近的幀間幀可分配到更多的比特。
根據(jù)本發(fā)明的優(yōu)選實施例的目標比特率基于所述平均編碼時間間隔,所述計算資源不足引起的跳幀的平均數(shù),所述目標緩沖區(qū)級別,所述可用信道帶寬以及所述實際緩沖區(qū)占用量來確定。具體而言,根據(jù)本發(fā)明優(yōu)選實施例的目標比特率利用下式確定f~(n)=max{0,u(tn,i)*max{Tave(n-1),Tfi(n)}+(γ-1)(Bc(tn,i)-Target(n))}]]>其中, 為目標比特率,tn,i為編碼第i個GOP中的第n個幀間幀的即時時間,γ為常數(shù)。
由于所述可用信道帶寬u(tn,i)和所述平均編碼時間間隔Tave(n-1)被用來確定所述幀間幀的目標比特率,根據(jù)本發(fā)明的比特速率控制方法適合于所述可用信道帶寬和所述可用計算資源。
如前確定的所述幀間幀的目標比特率可進一步根據(jù)下式利用加權(quán)時間平滑進行調(diào)整f(n)=max{u(tn,i)*max{Tave(n-1),Tf,i(n)}3+Hhdr(n-1),μ×f~(n)+(1-μ)×f(n-1)}]]>其中,f(n)為經(jīng)過平滑的目標比特率,μ為加權(quán)控制因子常數(shù),以及Hhdr(n)為用于形狀信息、動態(tài)向量以及前一幀報頭的比特數(shù)。
應(yīng)該注意到,在可選實施例中,所述實際編碼時間間隔Tfi(n)可代替所述平均編碼時間間隔Tave(n)用來確定所述目標比特率。使用所述平均編碼時間間隔Tavc而不是Tc來計算所述目標比特率的優(yōu)勢在于Tave變化緩慢。這也正好與用于視頻編碼進程的量化參數(shù)Q的緩慢調(diào)整相一致。并且,當所述實際幀速率小于所述預定義幀速率時,即Tave>1Fr]]>時,各幀可分配到更多的比特。因此,與任何已有的速率控制方法相比,緩沖區(qū)下溢的可能性降低了,同時,所述信道帶寬得到了更好的利用。
一旦計算了各幀間幀的目標比特率,就可以計算所述編碼進程的相應(yīng)量化參數(shù),優(yōu)選地使用[5]中所描述的速率失真(R-D)方法。
在依據(jù)本發(fā)明的速率控制方法的編碼后階段,編碼進程的休眠時間利用下式進行更新STc(n)=max{1Fr-RTst(n-1)-max{Tfi(n),Tc(n)},0}+Npost(n)Fr]]>其中STc(n)為所述編碼進程的休眠時間。
下一幀的起始編碼時間如下給出SCT(n)=Tc(n)+SCT(n-1)+STc(n)其中,SCT(n)為起始編碼時間。
下一幀的起始解碼時間如下給出SDT(n)=[SCT(n)*Fr]Fr]]>其中,SDT(n)為起始解碼時間。所述起始解碼時間將發(fā)送給解碼器來為解碼所述已編碼視頻序列的每一幀提供時間信息。
當確定休眠時間STc(n)和起始解碼時間SDT(n)時,有三點需要考慮到。任何幀都不能編碼兩次,時間辨析率為 以及當緩沖區(qū)存在溢出危險時所需要經(jīng)過的時間。
以下參照附圖,具體描述所給出的各實施例,進而說明根據(jù)本發(fā)明的其它目標、特點和優(yōu)勢。
圖1示出了根據(jù)本發(fā)明優(yōu)選實施例的速率控制方法的框圖;圖2示出了用于視頻序列“天氣”和“兒童”的每幀的信道帶寬;圖3示出了利用本發(fā)明的優(yōu)選實施例,編碼所述視頻序列“天氣”和“兒童”的每幀所需要的計算時間;圖4示出了視頻序列“天氣”的PSNR的比較;圖5示出了視頻序列“兒童”的PSNR的比較;圖6示出了視頻序列“天氣”的實際緩沖區(qū)占用量的比較;圖7示出了視頻序列“兒童”的實際緩沖區(qū)占用量的比較。
具體實施例方式
圖1示出了根據(jù)本發(fā)明優(yōu)選實施例的速率控制方法的框圖。
根據(jù)本發(fā)明的速率控制方法包括如下三個階段初始化階段,編碼前階段以及編碼后階段。
在步驟101中,幀速率Fr被預定義以用于圖片組(GOP)的編碼進程。當在此選擇合適的編碼幀速率時,諸如編碼器和解碼器的參數(shù)/規(guī)范之類的實際問題都需要考慮到。此外,不一定能夠獲知用于運行所述視頻編碼進程,包括所述速率控制的硬件,是否能支持所述預定義的幀速率。
在步驟102中,各視頻幀的緩沖區(qū)大小基于等待時間的需要被設(shè)置。在編碼所述I幀前,緩沖區(qū)被初始化為Bs*δ,其中Bs為緩沖區(qū)大小,δ則為定義為0≤δ≤0.5的參數(shù)。然后,在步驟103中使用量化參數(shù)Q0的預定義初始值對所述I幀進行編碼。在步驟103中,對所述I幀的編碼可以使用[1]、[3]、[4]、[5]中描述的任何一種方法實現(xiàn)。
對所述I幀編碼后,用于隨后確定用于編碼所述視頻相應(yīng)幀的適合的量化參數(shù)的速率失真(R-D)模型的參數(shù)在編碼后階段得到更新(步驟104)。在編碼后階段的步驟105中,優(yōu)選地使用[5]中披露的方法確定由緩沖區(qū)溢出導致的跳幀數(shù)Npost(n)。
在步驟106中,在當前幀之后的編碼進程的休眠時間STc(n)被確定,其中,所述休眠時間STc(n)被用來確定下一幀的起始編碼時間SCT(n)。所述已確定的起始編碼時間SCT(n)隨后用來在步驟107中確定下一幀的起始解碼時間SDT(n),其中該SDT(n)被傳送給所述解碼器。
一旦所述I幀的編碼完成,使用在前的編碼后階段所確定的量化參數(shù)對下一幀,也是幀間幀進行編碼。
當所述信道帶寬或者視頻內(nèi)容的統(tǒng)計隨時間改變時,如果所述編碼幀速率固定為預定義的幀速率Fr,則所述視頻序列各幀的質(zhì)量將有顯著變化。為避免此類情況,在所述編碼前階段,根據(jù)所述可用信道帶寬和任何突發(fā)動態(tài)改變來確定目標或預期幀速率。
在步驟108中確定平均編碼時間間隔Tave(n),或者用于對P幀編碼的平均時間間隔。平均編碼時間間隔Tave(n)然后用于在步驟109中確定目標編碼時間間隔Tfi(n)。所述目標編碼時間間隔Tfi(n)與所述預期幀速率反向相關(guān)。
所述已確定的預期幀速率然后用于在步驟110中確定所述P幀的目標緩沖區(qū)級別。在步驟111中,所述目標緩沖區(qū)級別,所述實際緩沖區(qū)占用量,所述可用信道帶寬,所述預期幀速率以及所述平均編碼時間間隔Tave被用于確定所述P幀的目標比特率f(n)。
在步驟112中,基于所述目標比特率f(n),各比特被分配給所述的P幀。在步驟113中使用來自步驟104的更新的R-D模型進行如[5]中所描述的對相應(yīng)量化參數(shù)Q的計算。所述量化參數(shù)Q用于在步驟114中編碼所述P幀。
當下一幀是P幀時,所述R-D模型在所述編碼后階段的步驟104中再次更新,且所述編碼后和編碼前階段整體重復以對下一個P幀進行編碼。如果下一幀為下一個圖片組(GOP)的I幀,所述編碼進程從步驟101再次開始從而對下一個I幀進行編碼。
下面具體描述根據(jù)本發(fā)明的編碼前階段的步驟108到步驟111以及編碼后階段的步驟106和步驟107的執(zhí)行。
在編碼第i個I幀后,所述目標緩沖區(qū)級別的初始值被初始化為Target(0)=Bc(ti,I)(1)
其中,Bc(ti,I)為第i個I幀編碼后的實際緩沖區(qū)占用量,并且ti,I為所述第i個I幀被編碼的即時時間。
為確定所述GOP中各P幀的目標比特率,需要確定所述P幀的目標緩沖區(qū)級別。確定所述目標緩沖區(qū)級別的第一步是確定所述預期幀速率。這通過首先利用如下等式確定所述P幀的平均編碼時間間隔Tave(n)來實現(xiàn)(步驟108)Tave(n)=(1-x)Tave(n-1)+χ*max{Tc(n),1Fr-RTst(n-1)}---(2)]]>其中,χ為權(quán)重因子,Tc(n)為編碼所述P幀的實際時間,以及RTst被定義為如果max{Tc(n),Tfi(n)}<1Fr-RTst(n-1)]]>或者Npost(n)>0,則RTst(n)=0(3)否則,RTst(n)=max{Tc(n),Tfi(n)}+RTst(n-1)-[(max{Tc(n),Tfi(n)}+RTst(n-1))Fr]Fr---(4)]]>其中,[a]指小于a的最大整數(shù)。
權(quán)重因子χ滿足0<χ<1,且優(yōu)選地被設(shè)置為0.125的值。所述平均編碼時間間隔Tave(n)的初始值由下式給出Tave(0)=1Fr---(5)]]>且RTst(n)的初始值由下式給出RTst(0)=0(6)變量Bmad(n)進一步由如下等式定義Bmad(n)=u(n)max{Tave(n-1),Tfi(n-1)}MAD(n)---(7)]]>其中,u(n)為可用信道帶寬,以及MAD(n)為當前幀和前一幀之間的絕對平均差。
所述可用信道帶寬u(n)可通過[6]中描述的方法進行估計。
然后,利用如下等式計算Bmad(n)的平均值
TBmad(n)=(1-ξ)TBmad(n-1)+ξBmad(n) (8)其中TBmad(n)為Bmad(n)的平均值,以及ξ為權(quán)重因子,優(yōu)選地為0.125的值。
計算得到TBmad(n)的值后,可如下計算所述目標編碼時間間隔Tfi(n)(步驟109)如果Bmad(n)>B1*TBmad(n),Tfi(n)=A1*Tfi(n-1)(9)如果Bmad(n)<B2*TBmad(n),Tfi(n)=A2*Tfi(n-1)(10)否則,Tfi(n)=Tfi(n-1) (11)其中,A1為參數(shù),且0.80<A1<1.00,A2為參數(shù),且1.00<A2<1.10,B1為參數(shù),且1.00<B1<2.00,B2為參數(shù),且0<B2<1.00,從等式(9),(10)或(11)確定的目標編碼時間間隔Tfi(n)的數(shù)值可進一步利用以下等式進行調(diào)整Tfi(n)=min{54Fr,max{34Fr,Tfi(n)}}---(12)]]>其中Tfi(n)的初始值如下給出Tfi(0)=1Fr---(13)]]>在所述預期幀速率從所述目標編碼時間間隔Tfi(n)的倒數(shù)確定后,為確定所述目標緩沖區(qū)級別,需要先確定因計算資源不足導致的跳幀的平均數(shù)Sc(n)。
兩個時間變量如下定義T~S~T~(n-1)=TST(n-1)-[TST(n-1)*Fr]Fr---(14)]]>TST(n)=max{0,T~S~T~(n-1)+max{Tc(n),Tfi(n)}-1Fr}---(15)]]>其中TST(n)的初始值如下給出TST(0)=0(16)所述因計算資源不足導致的跳幀的即時數(shù) 如下給出S~c(n)=[TST(n)*Fr]---(17)]]>
并且,所述因計算資源不足導致的跳幀的平均數(shù)Sc(n)如下給出Sc(n)=[(1-θ)Sc(n-1)+θ*S~c(n)]---(18)]]>其中,θ滿足0<θ<1,且其優(yōu)選地被設(shè)置為0.125的值。Sc(n)的初始值如下給出Sc(0)=0(19)所述P幀的目標緩沖區(qū)級別現(xiàn)在可以利用如下等式確定(步驟110)Target(n)=Target(n-1)-Bc(ti,I)-δ*BsNgop-1*Σj=0Npost(n-1)Sc(n-1)Wpos(n+j)---(20)]]>其中Target(n)為目標緩沖區(qū)級別,Ngop為GOP中的幀數(shù),且Wpos(l)為第l個幀間幀的位置權(quán)重,其滿足,Σl=1Ngop-1Wpos(l)=Ngop-1]]>以及Wpos(1)≤Wpos(2)≤…≤Wpos(Ngop-1)。
當所述R-D模型不準確時,在各幀的目標緩沖區(qū)級別和實際緩沖區(qū)占用量之間常常存在差別。因此,需要計算各幀的目標比特率以使得實際緩沖區(qū)占用量維持為目標緩沖區(qū)級別。所述各幀的目標比特率如下確定f~(n)=max{0,u(tn,i)*max{Tave(n-1),Tfi(n)}+(γ-1)(Bc(tn,i)-Target(n))}---(21)]]>其中 為目標比特率,tn,i為第i個GOP中的第n個P幀被編碼的即時時間,以及γ為常數(shù),其滿足0<γ<1,且優(yōu)選地被設(shè)置為0.25的值。
由于所述可用信道帶寬u(tn,i)和所述平均編碼時間間隔Tave(n-1)被用來確定各P幀的目標比特率,根據(jù)本發(fā)明的比特率控制方法適合于所述信道帶寬和所述計算資源。
所述目標比特率可利用如下加權(quán)時間平滑等式進行進一步調(diào)整f(n)=max{u(tn,i)*max{Tave(n-1),Tf,i(n)}3+Hhdr(n-1),μ×f~(n)+(1-μ)×f(n-1)}---(22)]]>其中,f(n)為經(jīng)過平滑的目標比特率,μ為加權(quán)控制因子常數(shù),其優(yōu)選地被設(shè)置為0.5的值,以及Hhdr(n)為用于形狀信息、動態(tài)向量以及前一幀報頭的比特數(shù)。
一旦所述目標比特率確定,各比特就基于此目標比特率被分配給各P幀(步驟112)。所述相應(yīng)的量化參數(shù)Q也利用[5]中所披露的方法進行計算(步驟113)。所述相應(yīng)的量化參數(shù)Q然后用于編碼所述P幀(步驟114)。
所述P幀編碼完成后,使用[5]中所披露的方法,分別地在所述編碼后階段更新所述R-D模型的參數(shù),以及確定因緩沖區(qū)溢出導致的跳幀的數(shù)量(步驟104,105)。
在所述編碼后階段進一步的步驟中(步驟106),當前幀之后的編碼進程的休眠時間利用如下等式確定STc(n)=max{1Fr-RTst(n-1)-max{Tfi(n),Tc(n)},0}+Npost(n)Fr---(23)]]>其中STc(n)為所述編碼進程的休眠時間。
然后,下一幀的起始編碼時間可利用如下等式獲得SCT(n)=Tc(n)+SCT(n-1)+STc(n) (24)其中,SCT(n)為起始編碼時間。下一幀的起始解碼時間可利用如下等式獲得(步驟107)SDT(n)=[SCT(n)*FrFr---(25)]]>其中,SDT(n)為起始解碼時間。所述下一幀的SDT(n)然后將被發(fā)送給解碼器,以便在SDT(n)所指示的時間對該下一幀解碼。
應(yīng)該注意到,在確定STc(n)和SDT(n)時,任何幀都不能進行兩次編碼,時間辨析率為 并且,當所述緩沖區(qū)存在溢出危險時,應(yīng)當經(jīng)過必須的時間。
為證明根據(jù)本發(fā)明的速率控制方法已經(jīng)實現(xiàn)所述目標,將根據(jù)本發(fā)明的速率控制方法以及在標準MPEG-4編碼裝置中使用的速率控制方法應(yīng)用于兩個視頻序列,從而對它們的性能進行比較。
所述兩個視頻序列分別稱為“天氣”和“兒童”,且其大小為QCIF。所述預定義幀速率Fc為30fps(幀/秒),且各GOP的長度為50。所述可用信道帶寬以及用于編碼視頻序列各幀的計算時間分別在圖2和圖3中示出。
實際幀速率為17fps以上,但小于30fps的預定義幀速率。所述初始緩沖區(qū)充滿度被設(shè)置為Bs/8,并且,所述初始量化參數(shù)Q0被設(shè)置為15。
圖4和圖5分別示出了使用了根據(jù)本發(fā)明的速率控制方法和MPEG-4中所用的速率控制方法的視頻序列“天氣”和“兒童”的峰值信噪比(PSNR)。
使用了根據(jù)本發(fā)明的速率控制方法的視頻序列“天氣”的平均PSNR為34.16dB,而使用了MPEG-4中所使用的速率控制方法的視頻序列“天氣”的平均PSNR為32.6dB。類似地,使用了根據(jù)本發(fā)明的速率控制方法的視頻序列“兒童”的平均PSNR為30.51dB,而使用了MPEG-4中所使用的速率控制方法的視頻序列“兒童”的平均PSNR為29.87dB。
因此,可看出,使用根據(jù)本發(fā)明的速率控制方法比使用MPEG-4的速率控制方法所得的視頻序列的平均PSNR高。
圖6和圖7分別示出了使用了根據(jù)本發(fā)明的速率控制方法和MPEG-4中的速率控制方法的視頻序列“天氣”和“兒童”的實際緩沖區(qū)占用量。
從圖6和圖7可看出,在使用MPEG-4的速率控制方法時,視頻序列“天氣”中出現(xiàn)了12次緩沖區(qū)下溢,而視頻序列“兒童”中出現(xiàn)了18次。而使用根據(jù)本發(fā)明的速率控制方法時,兩個視頻序列都未出現(xiàn)緩沖區(qū)下溢。
本說明書中使用了下列文獻[1]H.J.Lee and T.H.Chiang and Y.Q.Zhang.Scalable Rate Control forMPEG-4 Video.IEEE Trans.Circuit Syst.Video Technology,10878-894,2000. T.Chang and Y.Q.Zhang.A new rate control scheme using quadraticrate-distortion modeling.IEEE Trans.Circuit Syst.Video Technology,7246-250,1997. J.Ribas-Corbera and S.Lei.Rate control in DCT video coding forlow-delay communications.IEEE Trans.Circuit Syst.Video Technology,9172-185,1999. A.Vetro,H.Sun and Y.Wang.MPEG-4 rate control for multiple videoobjects.IEEE Trans.Circuit Syst.Video Technology,9186-199,1999. Z.G.Li,X.Lin,C.Zhu and F.Pan.A novel rate control scheme for videoover the internet.In Proceedings ICASSP 2002,F(xiàn)lorida,USA,Vol.2,pp.2065-2068,May 2002. Z.G.Li,N.Ling,C.Zhu,X.K.Yang,G.N.Feng,S.Wu and F.Pan.Packetization algorithm for MPEG-4 Fine Granularity Scalability over theinternet.In the 3rdworkshop and Exhibition on MPEG-4,USA,California,pp 17-20,June 25-27,2002.
權(quán)利要求
1.一種控制視頻序列編碼速率的方法,其中,所述視頻序列包括多個圖片組,其中每個圖片組至少包括I幀和幀間幀,該方法包括如下步驟來對所述圖片組中的各幀間幀進行編碼基于用于傳輸所述視頻序列的信道的可用帶寬以及用于所述編碼進程的可用計算資源確定預期幀速率;基于所述預期幀速率以及所述幀間幀關(guān)于所述I幀的位置確定目標緩沖區(qū)級別;以及基于所述目標緩沖區(qū)級別和所述可用信道帶寬確定目標比特率,其中,所述目標比特率用于控制所述視頻序列編碼速率。
2.根據(jù)權(quán)利要求1的速率控制方法,進一步包括下列步驟確定所述幀間幀的目標編碼時間間隔;以及基于該已確定的目標編碼時間間隔確定所述預期幀速率。
3.根據(jù)權(quán)利要求2的速率控制方法,其中,基于所述可用信道帶寬和用于編碼所述幀間幀的平均編碼時間間隔來確定所述幀間幀的目標編碼時間間隔,且所述幀間幀的平均編碼時間間隔正比于所述編碼進程的可用計算資源。
4.根據(jù)權(quán)利要求3的速率控制方法,其中,所述幀間幀的目標編碼時間間隔利用如下等式確定如果Bmad(n)>B1*TBmad(n),則Tfi(n)=A1*Tfi(n-1)如果Bmad(n)<B2*TBmad(n),則Tfi(n)=A2*Tfi(n-1)否則,Tfi(n)=Tfi(n-1)其中,Tfi(n)為所述幀間幀的目標編碼時間間隔,A1為參數(shù),且0.80<A1<1.00,A2為參數(shù),且1.00<A2<1.10,B1為參數(shù),且1.00<B1<2.00,B2為參數(shù),且0<B2<1.00,TBmad(n)為Bmad(n)的平均值,且Bmad(n)定義為Bmad(n)=u(n)max{Tave(n-1),Tfi(n-1)}MAD(n)]]>其中,u(n)為所述可用信道帶寬,Tave(n-1)為所述幀間幀的平均編碼時間間隔,以及MAD(n)為當前幀和前一幀之間的絕對平均差。
5.根據(jù)權(quán)利要求4的速率控制方法,其中所述目標編碼時間間隔進一步用下式調(diào)整Tfi(n)=min{54Fr,max{34Fr,Tfi(n)}}]]>
6.根據(jù)權(quán)利要求3的速率控制方法,其中基于所述幀間幀的實際編碼時間間隔確定所述幀間幀的平均編碼時間間隔。
7.根據(jù)權(quán)利要求6的速率控制方法,其中基于所述目標編碼時間間隔以及因緩沖區(qū)溢出引起的跳幀數(shù)進一步確定所述幀間幀的平均編碼時間間隔。
8.根據(jù)權(quán)利要求7的速率控制方法,其中所述幀間幀的平均編碼時間間隔利用如下等式確定Tave(n)=(1-x)Tave(n-1)+χ*max{Tc(n),1Fr-RTst(n-1)}]]>其中,x為權(quán)重因子,Tc(n)為所述實際編碼時間,F(xiàn)r為預定義幀速率,以及RTst被進一步定義為如果max{Tc(n),Tfi(n)}<1Fr-RTst(n-1)]]>或者Npost(n)>0,則RTst(n)=0否則,RTst(n)=max{Tc(n),Tfi(n)}+RTst(n-1)-[(max{Tc(n),Tfi(n)}+RTst(n-1))Fr]Fr]]>其中,Npost(n)為由緩沖區(qū)溢出引發(fā)的跳幀的數(shù)目。
9.根據(jù)權(quán)利要求5的速率控制方法,其中,確定所述目標緩沖區(qū)級別以使得與屬于相同GOP的離所述I幀較遠的其它幀間幀相比,該GOP中的離所述I幀更近的幀間幀具有更高的目標緩沖區(qū)級別高。
10.根據(jù)權(quán)利要求9的速率控制方法,其中所述目標緩沖區(qū)級別利用如下等式確定Target(n)=Target(n-1)-Bc(ti,1)-δ*BsNgop-1*Σj=0Npost(n-1)+Sc(n-1)Wpos(n+j)]]>其中,Target(n)為所述目標緩沖區(qū)級別,Ngop為GOP中的幀的數(shù)量,Bs為緩沖區(qū)大小,Bc為實際緩沖區(qū)占用量,Sc為由于用于根據(jù)所述預期幀速率對所述幀間幀編碼的可用計算資源不足而導致的跳幀的平均數(shù),且Wpos(l)為第l個幀間幀的位置權(quán)重,其滿足,Σl=1Ngop-1Wpos(l)=Ngop-1]]>以及Wpos(1)≤Wpos(2)≤…≤Wpos(Ngop-1)。
11.根據(jù)權(quán)利要求10的速率控制方法,其中,基于當對所述幀間幀編碼時由于可用計算資源不足而導致的跳幀的即時數(shù)來確定由于用于根據(jù)所述預期幀速率編碼所述幀間幀的計算資源不足而導致的跳幀的平均數(shù)。
12.根據(jù)權(quán)利要求11的速率控制方法,其中,基于所述實際編碼時間間隔和所述目標編碼時間間隔確定所述因計算資源不足導致的跳幀的即時數(shù)。
13.根據(jù)權(quán)利要求12的速率控制方法,其中所述跳幀的即時數(shù)可用如下等式確定S~c(n)=[TST(n)*Fr]]]>其中,TST(n)可進一步定義為TST(n)=max{0,T~S~T~(n-1)+max{Tc(n),Tfi(n)}-1Fr}]]>而 定義為T~S~T~(n-1)=TST(n-1)-[TST(n-1)*Fr]Fr]]>其中, 為所述因計算資源不足而導致的跳幀的即時數(shù),Tc(n)為所述實際編碼時間間隔,以及Fr為預定義幀速率。
14.根據(jù)權(quán)利要求13的速率控制方法,其中所述因計算資源不足而導致的跳幀的平均數(shù)用如下等式確定Sc(n)=[(1-θ)Sc(n-1)+θ*S~c(n)]]]>其中θ為權(quán)重因子。
15.根據(jù)權(quán)利要求14的速率控制方法,其中,基于所述幀間幀的平均編碼時間間隔,所述因計算資源不足而導致的跳幀的平均數(shù),所述目標緩沖區(qū)級別,所述可用信道帶寬以及實際緩沖區(qū)占用量來確定所述目標比特率。
16.根據(jù)權(quán)利要求8和權(quán)利要求15的速率控制方法,其中所述目標比特率利用下式確定f~(n)=max{0,u(tn,i)*max{Tave(n-1),Tfi(n)}+(γ-1)(Bc(tn,i)-Target(n))}]]>其中, 為所述目標比特率,tn,i為編碼第i個GOP中的第n個幀間幀的即時時間,以及γ為常數(shù)。
17.根據(jù)權(quán)利要求16的速率控制方法,其中所述目標比特速率可進一步通過下式利用加權(quán)時間平滑進行調(diào)整f(n)=max{u(tn,i)*max{Tave(n-1),Tf,i(n)}3+Hhdr(n-1),μ×f~(n)+(1-μ)×f(n-1)}]]>其中,f(n)為經(jīng)過平滑的目標比特率,μ為加權(quán)控制因子常數(shù),以及Hhdr(n)為用于形狀信息、動態(tài)向量以及前一幀報頭的比特數(shù)。
18.根據(jù)權(quán)利要求1的速率控制方法,進一步包括如下步驟在對每一幀編碼后,確定該幀的休眠時間,基于所述計算得到的休眠時間確定各幀的起始編碼時間,基于所述計算得到的起始編碼時間確定下一幀的起始解碼時間,將所述已確定的起始解碼時間傳送給被設(shè)計用于解碼所述視頻序列的解碼器。
19.根據(jù)權(quán)利要求18的速率控制方法,其中所述休眠時間根據(jù)如下公式確定STc(n)=max{1Fr-RTst(n-1)-max{Tfi(n),Tc(n)},0}+Npost(n)Fr]]>其中STc(n)為所述編碼進程的休眠時間。
20.根據(jù)權(quán)利要求19的速率控制方法,其中,所述起始編碼時間根據(jù)下式確定SCT(n)=Tc(n)+SCT(n-1)+STc(n)其中,SCT(n)為所述起始編碼時間。
21.根據(jù)權(quán)利要求20的速率控制方法,其中,所述起始解碼時間根據(jù)下式確定SDT(n)=[SCT(n)*Fr]Fr]]>其中,SDT(n)為所述起始解碼時間。
22.一種用于控制視頻序列編碼速率的裝置,其中,所述視頻序列包括多個圖片組,其中每個圖片組至少包括I幀和幀間幀,此裝置包括處理單元,其用于執(zhí)行如下步驟來對所述圖片組中的各幀間幀進行編碼基于用于傳輸所述視頻序列的信道的可用帶寬以及用于所述編碼進程的可用計算資源確定預期幀速率;基于所述預期幀速率以及所述幀間幀關(guān)于所述I幀的位置確定目標緩沖區(qū)級別;以及基于所述目標緩沖區(qū)級別和所述可用信道帶寬確定目標比特率,其中,所述目標比特率用于控制所述視頻序列編碼速率。
23.一種用于控制視頻序列編碼速率的視頻編碼裝置,其中,所述視頻序列包括多個圖片組,其中每個圖片組至少包括I幀和幀間幀,此編碼裝置包括處理單元,其用于執(zhí)行如下步驟來對所述圖片組中的各幀間幀進行編碼基于用于傳輸所述視頻序列的信道的可用帶寬以及用于所述編碼進程的可用計算資源確定預期幀速率;基于所述預期幀速率以及所述幀間幀關(guān)于所述I幀的位置和復雜度確定目標緩沖區(qū)級別;以及基于所述目標緩沖區(qū)級別和所述可用信道帶寬確定目標比特率,其中,所述目標比特率用于控制所述視頻序列編碼速率。
全文摘要
一種控制視頻序列編碼速率的方法,其中,所述視頻序列包括多個圖片組,其中每個圖片組至少包括I幀和幀間幀,此方法包括如下步驟來對所述圖片組中的幀間幀進行編碼基于用于傳輸所述視頻序列的信道的可用帶寬以及用于所述編碼進程的可用計算資源確定預期幀速率;基于所述預期幀速率以及所述幀間幀關(guān)于所述I幀的位置確定目標緩沖區(qū)級別;以及基于所述目標緩沖區(qū)級別和所述可用信道帶寬確定目標比特率,其中,所述目標比特率用于控制所述視頻序列編碼速率。
文檔編號H04N7/46GK1685734SQ02829753
公開日2005年10月19日 申請日期2002年9月5日 優(yōu)先權(quán)日2002年9月5日
發(fā)明者李政國, 潘峰, 林慶帆, 吳達軍, 俞容山, 馮革楠, 王都生 申請人:新加坡科技研究局